Browse Source

入离职与报销调整

wangqiang 1 year ago
parent
commit
4faf2b5f2d
36 changed files with 712 additions and 35 deletions
  1. 4 1
      jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/factory/RoleApiFallbackFactory.java
  2. 6 4
      jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/feign/IRoleApi.java
  3. 63 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/domain/HumanReimbursementDetailInfoProcured.java
  4. 5 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/mapper/CwReimbursementInfoMapper.java
  5. 9 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/mapper/HumanReimbursementDetailInfoProcuredMapper.java
  6. 40 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/mapper/xml/CwReimbursementInfoMapper.xml
  7. 33 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/service/CwReimbursementInfoService.java
  8. 1 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/service/dto/SaveInfoDto.java
  9. 3 0
      jeeplus-modules/jeeplus-flowable/src/main/java/com/jeeplus/flowable/controller/FlowableTaskController.java
  10. 2 1
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/depart/registration/mapper/xml/DepartMapper.xml
  11. 67 6
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/service/EnrollmentRegistrationService.java
  12. 1 1
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/logwrite/controller/RegistrationWorkLogController.java
  13. 3 0
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/logwrite/domain/RegistrationWorkLog.java
  14. 1 0
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/logwrite/domain/RegistrationWorkLogDetail.java
  15. 3 1
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/logwrite/mapper/xml/RegistrationWorkLogDetailMapper.xml
  16. 2 1
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/logwrite/mapper/xml/RegistrationWorkLogMapper.xml
  17. 9 0
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/logwrite/service/RegistrationWorkLogService.java
  18. 5 0
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/logwrite/service/dto/RegistrationWorkLogDto.java
  19. 65 0
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/register/controller/RegisterBankController.java
  20. 4 0
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/register/controller/RegisterController.java
  21. 26 0
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/register/domain/RegistrationBank.java
  22. 29 0
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/register/mapper/RegistrationBankMapper.java
  23. 3 1
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/register/mapper/xml/InterRegistrationMapper.xml
  24. 36 0
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/register/mapper/xml/RegistrationBankMapper.xml
  25. 109 0
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/register/service/RegistrationBankService.java
  26. 53 6
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/register/service/RegistrationService.java
  27. 6 0
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/register/service/dto/RegistrationDto.java
  28. 14 0
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/reimburseRegister/controller/ReimburseRegisterController.java
  29. 6 0
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/reimburseRegister/domain/ReimburseRegister.java
  30. 3 1
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/reimburseRegister/mapper/xml/ReimburseRegisterMapper.xml
  31. 62 0
      jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/reimburseRegister/service/ReimburseRegisterService.java
  32. 6 2
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/feign/RoleApiImpl.java
  33. 2 1
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/AreaMapper.java
  34. 1 1
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/AreaService.java
  35. 18 7
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/RoleService.java
  36. 12 1
      jeeplus-modules/jeeplus-xxl-job-executor-sample/src/main/java/com/xxl/job/executor/service/jobhandler/SampleXxlJob.java

+ 4 - 1
jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/factory/RoleApiFallbackFactory.java

@@ -6,6 +6,9 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * 角色服务降级处理
  *
@@ -27,7 +30,7 @@ public class RoleApiFallbackFactory implements FallbackFactory <IRoleApi> {
             }
 
             @Override
-            public RoleDTO getRoleDTOByNameAndTenantId(String name, String tenantId) {
+            public List<RoleDTO> getRoleDTOByNameAndTenantId(Map<String, String> keyMap) {
                 return null;
             }
 

+ 6 - 4
jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/feign/IRoleApi.java

@@ -4,8 +4,10 @@ import com.jeeplus.common.constant.AppNameConstants;
 import com.jeeplus.sys.factory.RoleApiFallbackFactory;
 import com.jeeplus.sys.service.dto.RoleDTO;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
 
 @FeignClient(contextId = "roleApi", name = AppNameConstants.APP_SYSTEM_SERVICE, fallbackFactory = RoleApiFallbackFactory.class)
 public interface IRoleApi {
@@ -22,8 +24,8 @@ public interface IRoleApi {
      *
      * @return
      */
-    @GetMapping(value = "/feign/sys/role/getRoleDTOByNameAndTenantId")
-    RoleDTO getRoleDTOByNameAndTenantId(@RequestParam(value = "name") String name,@RequestParam(value = "tenantId") String tenantId);
+    @RequestMapping(value = "/feign/sys/role/getRoleDTOByNameAndTenantId", method = RequestMethod.POST)
+    List<RoleDTO> getRoleDTOByNameAndTenantId(@RequestBody Map<String ,String > keyMap);
     /**
      * 获取角色
      *

+ 63 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/domain/HumanReimbursementDetailInfoProcured.java

@@ -0,0 +1,63 @@
+package com.jeeplus.finance.reimbursementApproval.approvalInfo.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+@Data
+@TableName(value = "human_reimbursement_detail_info_procured")
+public class HumanReimbursementDetailInfoProcured extends BaseEntity {
+
+    /**
+     * 关联id
+     */
+    private String infoId;
+
+    /**
+     * 报销人
+     */
+    private String userId;
+
+    /**
+     * 报销人名称
+     */
+    @TableField(exist = false)
+    private String userName;
+
+    /**
+     * 报销部门
+     */
+    private String deptId;
+
+    /**
+     * 报销部门名称
+     */
+    @TableField(exist = false)
+    private String deptName;
+
+    /**
+     * 报销类型
+     */
+    private String typeId;
+
+    /**
+     * 报销类型名称
+     */
+    @TableField(exist = false)
+    private String typeName;
+
+    /**
+     * 费用(元)
+     */
+    private String number;
+
+    /**
+     * 内容
+     */
+    private String content;
+    private String humanReimburseRegisterId;//实习报销项目id
+    private String reimbuserName;//实习报销项目名称
+    private String bankCardNumber;//银行卡号
+
+}

+ 5 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/mapper/CwReimbursementInfoMapper.java

@@ -52,6 +52,8 @@ public interface CwReimbursementInfoMapper extends BaseMapper<CwReimbursementInf
 
     List<CwReimbursementDetailInfoProcured> getProcuredDetailList(@Param("id") String id);
 
+    List<HumanReimbursementDetailInfoProcured> getHumanProcuredDetailList(@Param("id") String id);
+
     List<CwReimbursementDetailInfo> getDetailList(@Param("id") String id);
 
     /**
@@ -63,4 +65,7 @@ public interface CwReimbursementInfoMapper extends BaseMapper<CwReimbursementInf
 
     @InterceptorIgnore(tenantLine = "true")
     List<CwReimbursementAmountInfoDTO> getInvoiceReimbursementAmountList(@Param("idList") List<String> idList);
+
+    CwReimbursementInfo getById( @Param("id") String id);
+
 }

+ 9 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/mapper/HumanReimbursementDetailInfoProcuredMapper.java

@@ -0,0 +1,9 @@
+package com.jeeplus.finance.reimbursementApproval.approvalInfo.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.finance.reimbursementApproval.approvalInfo.domain.CwReimbursementDetailInfoProcured;
+import com.jeeplus.finance.reimbursementApproval.approvalInfo.domain.HumanReimbursementDetailInfoProcured;
+
+//@InterceptorIgnore(tenantLine = "true")
+public interface HumanReimbursementDetailInfoProcuredMapper extends BaseMapper<HumanReimbursementDetailInfoProcured> {
+}

+ 40 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/mapper/xml/CwReimbursementInfoMapper.xml

@@ -17,12 +17,14 @@
 			WHEN a.source_type = 2 THEN b2.type_id
 			WHEN a.source_type = 3 THEN b3.type_id
 			WHEN a.source_type = 4 THEN b4.type_id
+			WHEN a.source_type = 6 THEN b6.type_id
 									ELSE b5.type_id END) AS type_id,
 			(CASE
 			WHEN a.source_type = 1 THEN t.name
 			WHEN a.source_type = 2 THEN t2.name
 			WHEN a.source_type = 3 THEN t3.name
 			WHEN a.source_type = 4 THEN t4.name
+			WHEN a.source_type = 6 THEN t6.name
 									ELSE t5.name END) AS type_name,
 			(CASE
 			WHEN a.source_type = 1 THEN b.project_id
@@ -47,18 +49,21 @@
 			WHEN a.source_type = 2 THEN so2.name
 			WHEN a.source_type = 3 THEN so3.name
 			WHEN a.source_type = 4 THEN so4.name
+			WHEN a.source_type = 6 THEN so6.name
 									ELSE so5.name END) AS dept_name,
 			(CASE
 			WHEN a.source_type = 1 THEN us.name
 			WHEN a.source_type = 2 THEN us2.name
 			WHEN a.source_type = 3 THEN us3.name
 			WHEN a.source_type = 4 THEN us4.name
+			WHEN a.source_type = 6 THEN us6.name
 									ELSE us5.name END) AS name,
 			(CASE
 			WHEN a.source_type = 1 THEN b.`number`
 			WHEN a.source_type = 2 THEN b2.`number`
 			WHEN a.source_type = 3 THEN b3.`number`
 			WHEN a.source_type = 4 THEN b4.`number`
+			WHEN a.source_type = 6 THEN b6.`number`
 									ELSE b5.`number` END) AS `number`,
 			a.user_name,
 			a.reim_date,
@@ -103,6 +108,11 @@
 			left join sys_office so5 on so5.id = b5.dept_id and so5.del_flag = 0
 			left join sys_user us5 on us5.id = b5.user_id and us5.del_flag = 0
 
+			LEFT JOIN human_reimbursement_detail_info_procured b6 ON a.id = b6.info_id AND b6.del_flag = 0
+			left join cw_reimbursement_type_info t6 on b6.type_id = t6.id and t6.del_flag = 0
+			left join sys_office so6 on so6.id = b6.dept_id and so6.del_flag = 0
+			left join sys_user us6 on us6.id = b6.user_id and us6.del_flag = 0
+
 			LEFT JOIN sys_user c ON a.create_by_id =  c.id
 			left join sys_user_manage_office sumo on sumo.office_id = c.office_id
 			LEFT JOIN act_ru_task d ON a.proc_ins_id = d.PROC_INST_ID_
@@ -601,4 +611,34 @@
 			</foreach>
 		</where>
 	</select>
+    <select id="getHumanProcuredDetailList"
+            resultType="com.jeeplus.finance.reimbursementApproval.approvalInfo.domain.HumanReimbursementDetailInfoProcured">
+select
+		a.id,
+		a.create_by_id,
+		a.create_time,
+		a.del_flag,
+		a.info_id,
+		a.user_id,
+		a.dept_id,
+		a.type_id,
+		a.human_reimburse_register_id,
+		a.bank_card_number,
+		a.number,
+		a.content,
+		su.name as user_name,
+		so.name as dept_name,
+		cw_type.name as type_name,
+		a.reimbuser_name
+		from human_reimbursement_detail_info_procured a
+		left join sys_user su on a.user_id = su.id and su.del_flag = '0'
+		left join sys_office so on a.dept_id = so.id and so.del_flag = '0'
+		left join cw_reimbursement_type_info cw_type on cw_type.id = a.type_id and cw_type.del_flag = '0'
+		where a.del_flag = '0' and a.info_id = #{id}
+		order by a.number asc
+	</select>
+	<select id="getById"
+			resultType="com.jeeplus.finance.reimbursementApproval.approvalInfo.domain.CwReimbursementInfo">
+		select * from cw_reimbursement_info where id = #{id}
+	</select>
 </mapper>

+ 33 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/service/CwReimbursementInfoService.java

@@ -58,6 +58,8 @@ public class CwReimbursementInfoService {
 
     @Resource
     private CwReimbursementDetailInfoProcuredMapper cwReimbursementDetailInfoProcuredMapper;
+    @Resource
+    private HumanReimbursementDetailInfoProcuredMapper humanReimbursementDetailInfoProcuredMapper;
 
     @Resource
     private CwReimbursementDetailInfoMapper detailInfoMapper;
@@ -268,6 +270,7 @@ public class CwReimbursementInfoService {
     public CwReimbursementInfo save(SaveInfoDto dto) throws Exception{
         // 获取当前登录人信息
         UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
+        CwReimbursementInfo info = infoMapper.getById(dto.getId());
         if (StringUtils.isNotEmpty(dto.getId()) && !dto.getId().equals("false")) {
             return update(dto, userDTO);
         } else {
@@ -331,6 +334,16 @@ public class CwReimbursementInfoService {
                 cwReimbursementDetailInfoProcuredMapper.insert(detailInfo);
             }
         }
+        // 保存实习报销详情列表信息
+        if (CollectionUtils.isNotEmpty(dto.getHumanInfoProcured())) {
+            for (HumanReimbursementDetailInfoProcured detailInfo : dto.getHumanInfoProcured()) {
+                // 保存基础表信息主键值
+                detailInfo.setInfoId(id);
+                detailInfo.setCreateById(userDTO.getId());
+                detailInfo.setUpdateById(userDTO.getId());
+                humanReimbursementDetailInfoProcuredMapper.insert(detailInfo);
+            }
+        }
         if(StringUtils.isNotBlank(dto.getReimbursementType())){
             if("0".equals(dto.getReimbursementType())){
                 // 保存专用发票列表信息
@@ -424,6 +437,11 @@ public class CwReimbursementInfoService {
         detailWrapperProcured.eq(CwReimbursementDetailInfoProcured::getInfoId, dto.getId());
         cwReimbursementDetailInfoProcuredMapper.delete(detailWrapperProcured);
 
+        // 删除实习报销表
+        LambdaQueryWrapper<HumanReimbursementDetailInfoProcured> humanDetailWrapperProcured = new LambdaQueryWrapper<>();
+        humanDetailWrapperProcured.eq(HumanReimbursementDetailInfoProcured::getInfoId, dto.getId());
+        humanReimbursementDetailInfoProcuredMapper.delete(humanDetailWrapperProcured);
+
         // 保存项目详情列表信息
         if (CollectionUtils.isNotEmpty(dto.getDetailInfos())) {
             for (CwReimbursementDetailInfo detailInfo : dto.getDetailInfos()) {
@@ -469,6 +487,16 @@ public class CwReimbursementInfoService {
                 cwReimbursementDetailInfoProcuredMapper.insert(detailInfo);
             }
         }
+        // 保存实习报销详情列表信息
+        if (CollectionUtils.isNotEmpty(dto.getHumanInfoProcured())) {
+            for (HumanReimbursementDetailInfoProcured detailInfo : dto.getHumanInfoProcured()) {
+                // 保存基础表信息主键值
+                detailInfo.setInfoId(dto.getId());
+                detailInfo.setId("");
+                detailInfo.setUpdateById(userDTO.getId());
+                humanReimbursementDetailInfoProcuredMapper.insert(detailInfo);
+            }
+        }
         // 修改专用发票信息列表
         // 删除原有数据
         LambdaQueryWrapper<CwReimbursementAmountInfo> amountWrapper = new LambdaQueryWrapper<>();
@@ -577,6 +605,10 @@ public class CwReimbursementInfoService {
         LambdaQueryWrapper<CwReimbursementDetailInfoProcured> detailWrapperProcured = new LambdaQueryWrapper<>();
         detailWrapperProcured.eq(CwReimbursementDetailInfoProcured::getInfoId, id);
         cwReimbursementDetailInfoProcuredMapper.delete(detailWrapperProcured);
+        // 删除实习报销列表
+        LambdaQueryWrapper<HumanReimbursementDetailInfoProcured> humanDetailWrapperProcured = new LambdaQueryWrapper<>();
+        humanDetailWrapperProcured.eq(HumanReimbursementDetailInfoProcured::getInfoId, id);
+        humanReimbursementDetailInfoProcuredMapper.delete(humanDetailWrapperProcured);
         // 删除专用发票信息列表
         LambdaQueryWrapper<CwReimbursementAmountInfo> amountInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
         amountInfoLambdaQueryWrapper.eq(CwReimbursementAmountInfo::getInfoId, id);
@@ -626,6 +658,7 @@ public class CwReimbursementInfoService {
             dto.setDetailInfoOthers(infoMapper.getOtherDetailList(id));
             // 采购报销
             dto.setDetailInfoProcured(infoMapper.getProcuredDetailList(id));
+            dto.setHumanInfoProcured(infoMapper.getHumanProcuredDetailList(id));
             // 查询专用发票信息列表
             // 查询专用发票信息列表
             LambdaQueryWrapper<CwReimbursementAmountInfo> amountInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();

+ 1 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/service/dto/SaveInfoDto.java

@@ -68,6 +68,7 @@ public class SaveInfoDto extends BaseEntity {
     private List<CwReimbursementDetailInfoReport> detailInfoReports;
     private List<CwReimbursementDetailInfoOther> detailInfoOthers;
     private List<CwReimbursementDetailInfoProcured> detailInfoProcured;
+    private List<HumanReimbursementDetailInfoProcured> humanInfoProcured;
 
     private List<CwReimbursementAmountInfo> amountInfos;
     private List<CwReimbursementAmountInfo> invoiceReimbursements;

+ 3 - 0
jeeplus-modules/jeeplus-flowable/src/main/java/com/jeeplus/flowable/controller/FlowableTaskController.java

@@ -254,6 +254,9 @@ public class FlowableTaskController {
             } else if (key.equals("实习")){
                 String procInsId = getProcInsId(entry);
                 map1.put("实习", procInsId);
+            } else if (key.equals("入职")){
+                String procInsId = getProcInsId(entry);
+                map1.put("入职", procInsId);
             }
         }
         return map1 ;

+ 2 - 1
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/depart/registration/mapper/xml/DepartMapper.xml

@@ -30,7 +30,7 @@
         d.ID_ AS task_id,
         e.ID_ AS handover_task_id,
         su.name as projectManagerName,
-        su.mobile as mobile,
+        su2.mobile as mobile,
         so.name as departmentName,
         dh.id as handoverId,
         dh.proc_ins_id as handoverProcInsId,
@@ -54,6 +54,7 @@
         from human_resources_depart_registration a
         LEFT JOIN act_ru_task d ON a.proc_ins_id = d.PROC_INST_ID_
         left join sys_user su on a.project_manager = su.id
+        left join sys_user su2 on a.create_by_id = su2.id
         LEFT JOIN sys_office so on a.department = so.id
         left join human_resources_depart_handover dh on a.id = dh.registration_id
         LEFT JOIN act_ru_task e ON dh.proc_ins_id = e.PROC_INST_ID_

+ 67 - 6
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/service/EnrollmentRegistrationService.java

@@ -84,6 +84,8 @@ public class EnrollmentRegistrationService extends ServiceImpl<EnrollmentRegistr
     @Transactional(rollbackFor = Exception.class)
     public EnrollmentRegistration add(EnrollmentRegistration reportData) throws Exception{
 
+        String currentToken = TokenProvider.getCurrentToken();
+
         UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken ( ));
 
         EnrollmentRegistration report = new EnrollmentRegistration();
@@ -112,11 +114,59 @@ public class EnrollmentRegistrationService extends ServiceImpl<EnrollmentRegistr
             socialSecurityCardMapper.insert(securityCard);
         }
 
-        mapper.insert(report);
+        if (null == currentToken) {
+            //发起员工入职流程
+            Map map = SpringUtil.getBean(IFlowableApi.class).getByNameForFen("员工入职");
+            String procDefId = map.get("id")+"";
+
+            report.setProcessDefinitionId(procDefId);
+            mapper.insert(report);
+
+            Map<String ,Map<String,String >>  allMap = new HashMap<>();
+
+            String procDefKey = map.get("key")+"";
+            String businessTable = "human_resources_enrollment_registration";
+
+            String businessId = id;
+            String title = "管理员发起了- [" + report.getName() + "员工入职]";
+
+            //获取实习信息审核员信息
+            RoleDTO roleDTO = SpringUtil.getBean(IRoleApi.class).getRoleDTOByName2("实习信息审核员");
+            String assignee = getAssignee(roleDTO.getId());
+            String recordType = "";
+
+            Map<String, String> newMap = pingMap(procDefId, procDefKey, businessTable, businessId, title, assignee, recordType);
+            allMap.put("入职",newMap);
+            SpringUtil.getBean(IFlowableApi.class).startForFenNew(allMap);
+        } else {
+            mapper.insert(report);
+        }
 
         return report;
     }
 
+    public String getAssignee(String roleId){
+        List<UserDTO> userDTOS = SpringUtil.getBean(IUserApi.class).findListByRoleId(roleId);
+        StringJoiner idJoiner = new StringJoiner(",");
+        for (UserDTO user : userDTOS) {
+            idJoiner.add(String.valueOf(user.getId()));
+        }
+
+        return idJoiner.toString();
+    }
+    public Map<String,String> pingMap(String procDefId,String procDefKey,String businessTable,
+                                      String businessId,String title,String assignee,String recordType){
+        Map<String,String> map = new HashMap();
+        map.put("procDefId", procDefId);
+        map.put("procDefKey", procDefKey);
+        map.put("businessTable", businessTable);
+        map.put("businessId", businessId);
+        map.put("title", title);
+        map.put("assignee", assignee);
+        map.put("recordType", recordType);
+        return map;
+    }
+
     /**
      * 修改
      */
@@ -135,7 +185,7 @@ public class EnrollmentRegistrationService extends ServiceImpl<EnrollmentRegistr
         String amountId = UUID.randomUUID().toString().replace("-", "");
         report.setUserId(amountId);
 
-        if (StringUtils.isNotBlank(report.getType())){
+        if (StringUtils.isNotBlank(report.getType()) && !userDTO.isAdmin()){
             if (report.getType().equals("5")){
                 //获取当前的用户,审核的人
                 UserDTO dto = new UserDTO();
@@ -154,27 +204,36 @@ public class EnrollmentRegistrationService extends ServiceImpl<EnrollmentRegistr
                 OfficeDTO office = SpringUtil.getBean(IOfficeApi.class).getOfficeById(report.getDepartment());
 
                 String name = "兴光会计员工";
-                RoleDTO roleInfo = SpringUtil.getBean(IRoleApi.class).getRoleDTOByNameAndTenantId(name,office.getTenantId());
                 List <RoleDTO> roleIdList = new ArrayList<>();
-                roleIdList.add(roleInfo);
-                dto.setRoleDTOList(roleIdList);
-                dto.setOfficeDTO(officeDTO);
+
+//                roleIdList.add(roleInfo);
+
 
                 String officeName = "";
                 String networkAddress = "";
                 if (null != office) {
+                    Map<String,String> keyMap = new HashMap<>();
                     TenantDTO tenantDTO = new TenantDTO();
                     tenantDTO.setId(office.getTenantId());
                     dto.setTenantDTO(tenantDTO);
                     if (office.getTenantId().equals("10003")){
                         officeName = "会计业务管理公司";
                         networkAddress = "cpapmis.xgccpm.com";
+                        keyMap.put("name", "兴光会计员工,共有权限(会计)");
+                        keyMap.put("tenantId", office.getTenantId());
+                        roleIdList = SpringUtil.getBean(IRoleApi.class).getRoleDTOByNameAndTenantId(keyMap);
                     }else if (office.getTenantId().equals("10004")) {
                         officeName = "中审管理公司";
                         networkAddress = "zs.xgccpm.com";
+                        keyMap.put("name", "中审员工,共有权限(中审)");
+                        keyMap.put("tenantId", office.getTenantId());
+                        roleIdList = SpringUtil.getBean(IRoleApi.class).getRoleDTOByNameAndTenantId(keyMap);
                     }else if (office.getTenantId().equals("10001")) {
                         officeName = "评估管理公司";
                         networkAddress = "http://amc.xgccpm.com";
+                        keyMap.put("name", "评估员工,共有权限(评估)");
+                        keyMap.put("tenantId", office.getTenantId());
+                        roleIdList = SpringUtil.getBean(IRoleApi.class).getRoleDTOByNameAndTenantId(keyMap);
                     }
                 } else {
                     TenantDTO tenantDTO = new TenantDTO();
@@ -182,6 +241,8 @@ public class EnrollmentRegistrationService extends ServiceImpl<EnrollmentRegistr
                     dto.setTenantDTO(tenantDTO);
                     officeName = "综合管理公司";
                 }
+                dto.setRoleDTOList(roleIdList);
+                dto.setOfficeDTO(officeDTO);
 
                 SpringUtil.getBean ( IUserApi.class ).saveOrUpdate(dto);
 

+ 1 - 1
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/logwrite/controller/RegistrationWorkLogController.java

@@ -125,7 +125,7 @@ public class RegistrationWorkLogController {
     @GetMapping("/getWorkDay")
     public ResponseEntity<Integer> getWorkDay(@RequestParam String startTime, @RequestParam String endTime) throws IOException, ParseException {
         //根据当前年份获取今年的所有节假日工作日信息
-        SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd");
         // 解析日期时间字符串
         Date dateTime = dateTimeFormat.parse(startTime);
         Date dateTime2 = dateTimeFormat.parse(endTime);

+ 3 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/logwrite/domain/RegistrationWorkLog.java

@@ -57,6 +57,9 @@ public class RegistrationWorkLog extends BaseEntity {
     //实习工作日志名称
     private String workName;
 
+    //报销登记的金额汇总
+    private String allMoney;
+
     @TableField(exist = false)
     private List<RegistrationWorkLogDetail> amountInfos;
 

+ 1 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/logwrite/domain/RegistrationWorkLogDetail.java

@@ -24,5 +24,6 @@ public class RegistrationWorkLogDetail extends BaseEntity {
     private String locationId;          //地点id
     private String auditWorkContent;    //审计工作内容
     private String workLogId;           //实习日志id
+    private String checkType;           //地点类型:1:所内,2:所外
 
 }

+ 3 - 1
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/logwrite/mapper/xml/RegistrationWorkLogDetailMapper.xml

@@ -9,7 +9,8 @@
         b.week,
         b.audit_project_unit_name,
         b.audit_work_content,
-        b.audit_work_content
+        b.work_log_id,
+        b.check_type
     </sql>
     <delete id="deleteDetailInfo">
         update human_resources_practice_registration_work_log_detail set del_flag = '1' where work_log_id = #{id}
@@ -18,6 +19,7 @@
     <select id="getChildList" resultType="com.jeeplus.human.practice.logwrite.domain.RegistrationWorkLogDetail">
         select
         <include refid="Son_Column_List"></include>,
+        sa.id as locationId,
         sa.name as location
         from human_resources_practice_registration_work_log_detail b
         left join sys_area sa on b.location = sa.id

+ 2 - 1
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/logwrite/mapper/xml/RegistrationWorkLogMapper.xml

@@ -20,7 +20,8 @@
         a.work,
         a.remarks,
         a.project_manager,
-        a.work_name
+        a.work_name,
+        a.all_money
     </sql>
 
     <update id="removeById">

+ 9 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/logwrite/service/RegistrationWorkLogService.java

@@ -1,5 +1,6 @@
 package com.jeeplus.human.practice.logwrite.service;
 
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -65,6 +66,14 @@ public class RegistrationWorkLogService extends ServiceImpl<RegistrationWorkLogM
         if (StringUtils.isNotBlank(projectReportData.getWorkName())){
             queryWrapper.eq("a.work_name",projectReportData.getWorkName());
         }
+        if (ObjectUtil.isNotEmpty(projectReportData.getCreateDates())) {
+            queryWrapper.between("start_time", projectReportData.getCreateDates()[0], projectReportData.getCreateDates()[1])
+                    .or()
+                    .between("end_time", projectReportData.getCreateDates()[0], projectReportData.getCreateDates()[1]);
+        }
+        if (StringUtils.isNotBlank(projectReportData.getProjectManager())){
+            queryWrapper.eq("a.project_manager",projectReportData.getProjectManager());
+        }
         IPage<RegistrationWorkLogDto> list = mapper.findList(page, queryWrapper);
         list.getRecords().forEach(item -> {
             // 入库 修改申请

+ 5 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/logwrite/service/dto/RegistrationWorkLogDto.java

@@ -1,5 +1,6 @@
 package com.jeeplus.human.practice.logwrite.service.dto;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.jeeplus.core.domain.BaseEntity;
@@ -69,5 +70,9 @@ public class RegistrationWorkLogDto extends BaseEntity {
 
     private List<RegistrationWorkLogDetail> amountInfos;
 
+    @TableField(exist = false)
+    private String[] createDates;
 
+    //报销登记的金额汇总
+    private String allMoney;
 }

+ 65 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/register/controller/RegisterBankController.java

@@ -0,0 +1,65 @@
+package com.jeeplus.human.practice.register.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.jeeplus.common.utils.ResponseUtil;
+import com.jeeplus.human.practice.register.domain.RegistrationBank;
+import com.jeeplus.human.practice.register.service.RegistrationBankService;
+import com.jeeplus.logging.annotation.ApiLog;
+import com.jeeplus.logging.constant.enums.LogTypeEnum;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * @author 王强
+ * @version 1.0
+ * @date 2023-09-13 10:55
+ */
+@RestController
+@Api("实习人员银行卡表信息")
+@RequestMapping(value = "/registerBank")
+public class RegisterBankController {
+
+    @Resource
+    private RegistrationBankService service;
+
+    /**
+     * 保存实习人员登记信息
+     * @param registration
+     * @return
+     */
+    @ApiLog(value = "保存实习人员银行卡信息", type = LogTypeEnum.SAVE)
+    @PostMapping("save")
+    public ResponseEntity save(@Valid @RequestBody RegistrationBank registration) throws Exception {
+        RegistrationBank s = service.saveRegistration(registration);
+        return ResponseUtil.newInstance().add("businessTable", "human_resources_practice_registration_bank")
+                .add("businessId", s.getId())
+                .ok ("操作成功");
+    }
+
+    /**
+     * 查询
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "查询")
+    @GetMapping("/findById")
+    public ResponseEntity<RegistrationBank> findById(@RequestParam String id) throws Exception{
+        RegistrationBank dto = service.findById(id);
+        return ResponseEntity.ok(dto);
+    }
+
+    /**
+     * 根据id修改状态status
+     */
+    @ApiOperation(value = "根据id修改状态status")
+    @PostMapping(value = "updateStatusById")
+    public void updateStatusById(@RequestBody RegistrationBank dto) {
+        service.updateStatusById(dto);
+    }
+}

+ 4 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/register/controller/RegisterController.java

@@ -8,6 +8,7 @@ import com.jeeplus.common.utils.ResponseUtil;
 import com.jeeplus.human.enrollment.enrollmentRegistration.domain.EnrollmentRegistration;
 import com.jeeplus.human.enrollment.enrollmentRegistration.service.EnrollmentRegistrationService;
 import com.jeeplus.human.practice.register.domain.Registration;
+import com.jeeplus.human.practice.register.service.RegistrationBankService;
 import com.jeeplus.human.practice.register.service.RegistrationService;
 import com.jeeplus.human.practice.register.service.dto.RegistrationDto;
 import com.jeeplus.logging.annotation.ApiLog;
@@ -37,6 +38,8 @@ public class RegisterController {
 
     @Resource
     private RegistrationService service;
+    @Resource
+    private RegistrationBankService bankService;
 
     @Resource
     private EnrollmentRegistrationService enrollmentRegistrationService;
@@ -125,6 +128,7 @@ public class RegisterController {
     @GetMapping("/remove")
     public ResponseEntity<String> remove(@RequestParam String id){
         String s = service.remove(id);
+        bankService.deleteByRegistrationId(id);
         return ResponseEntity.ok(s);
     }
 

+ 26 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/register/domain/RegistrationBank.java

@@ -0,0 +1,26 @@
+package com.jeeplus.human.practice.register.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 实习人员银行卡号信息
+ * @author 王强
+ * @version 1.0
+ * @date 2023-12-01 17:43
+ */
+@Data
+@TableName("human_resources_practice_registration_bank")
+public class RegistrationBank extends BaseEntity {
+
+    private String type;                //流程状态
+    private String procInsId;
+    private String processDefinitionId;
+    private String remarks;      //备注
+    private String bankCardNumber;      //银行卡号
+    private String registerId;      //实习登记表id
+    private String userId;
+    private String name;
+
+}

+ 29 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/register/mapper/RegistrationBankMapper.java

@@ -0,0 +1,29 @@
+package com.jeeplus.human.practice.register.mapper;
+
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.human.practice.register.domain.Registration;
+import com.jeeplus.human.practice.register.domain.RegistrationBank;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 实习人员登记表 mapper
+ * @author 王强
+ * @version 1.0
+ * @date 2023-09-13 14:01
+ */
+@Mapper
+@InterceptorIgnore(tenantLine = "true")
+public interface RegistrationBankMapper extends BaseMapper<RegistrationBank> {
+
+    RegistrationBank getById(@Param("id") String id);
+
+    void updateStatusById(@Param("id") String id, @Param("type") String type);
+}

+ 3 - 1
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/register/mapper/xml/InterRegistrationMapper.xml

@@ -46,10 +46,12 @@
         select
         <include refid="Base_Column_List"></include>,
         d.ID_ AS task_id,
-        su.name as projectManagerName
+        su.name as projectManagerName,
+        so.name as departmentName
         from human_resources_practice_registration a
         LEFT JOIN act_ru_task d ON a.proc_ins_id = d.PROC_INST_ID_
         left join sys_user su on a.project_manager = su.id
+        LEFT JOIN sys_office so on a.practice_office = so.id
         ${ew.customSqlSegment}
         ORDER BY a.create_time DESC
     </select>

+ 36 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/register/mapper/xml/RegistrationBankMapper.xml

@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.human.practice.register.mapper.RegistrationBankMapper">
+
+    <sql id="Base_Column_List">
+        a.id,
+        a.create_by_id,
+        a.create_time,
+        a.update_by_id,
+        a.update_time,
+        a.del_flag,
+        a.type,
+        a.proc_ins_id,
+        a.process_definition_id,
+        a.register_id,
+        a.bank_card_number,
+        a.bank_card_number,
+        a.remarks,
+        a.user_id,
+        a.name
+    </sql>
+    <update id="updateStatusById">
+        UPDATE human_resources_practice_registration_bank SET type = #{type}
+		WHERE id = #{id}
+    </update>
+
+    <select id="getById" resultType="com.jeeplus.human.practice.register.domain.RegistrationBank">
+        select
+        <include refid="Base_Column_List"></include>,
+        su.name as name,
+        su.office_id as department
+        from human_resources_practice_registration_bank a
+        left join sys_user su on a.create_by_id = su.id
+        where a.id = #{id} and a.del_flag = '0'
+    </select>
+</mapper>

+ 109 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/register/service/RegistrationBankService.java

@@ -0,0 +1,109 @@
+package com.jeeplus.human.practice.register.service;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jeeplus.common.SecurityUtils;
+import com.jeeplus.common.TokenProvider;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.flowable.feign.IFlowableApi;
+import com.jeeplus.human.depart.handover.domain.HandoverRecovery;
+import com.jeeplus.human.practice.register.domain.Registration;
+import com.jeeplus.human.practice.register.domain.RegistrationBank;
+import com.jeeplus.human.practice.register.mapper.RegistrationBankMapper;
+import com.jeeplus.sys.feign.IOfficeApi;
+import com.jeeplus.sys.feign.IRoleApi;
+import com.jeeplus.sys.feign.IUserApi;
+import com.jeeplus.sys.service.dto.OfficeDTO;
+import com.jeeplus.sys.service.dto.RoleDTO;
+import com.jeeplus.sys.service.dto.TenantDTO;
+import com.jeeplus.sys.service.dto.UserDTO;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+
+/**
+ * @author 王强
+ * @version 1.0
+ * @date 2023-09-13 14:11
+ */
+@Service
+@Transactional
+public class RegistrationBankService extends ServiceImpl<RegistrationBankMapper, RegistrationBank> {
+
+    @Resource
+    private RegistrationBankMapper mapper;
+
+    public void deleteByRegistrationId(String id){
+        QueryWrapper<RegistrationBank> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("register_id",id);
+        mapper.delete(queryWrapper);
+    }
+
+    public RegistrationBank findById(String id) throws Exception {
+        // 查询基础信息表
+        RegistrationBank info = mapper.getById(id);
+        return info;
+    }
+
+    public void updateStatusById(RegistrationBank dto) {
+        mapper.updateStatusById(dto.getId(), dto.getType());
+
+    }
+
+    public RegistrationBank saveRegistration(RegistrationBank accounts) throws Exception {
+        if (StringUtils.isNotEmpty(accounts.getId())){
+
+            RegistrationBank report = mapper.getById(accounts.getId());
+            if (report != null){
+                return update(accounts);
+            }
+        }
+        return add(accounts);
+    }
+
+    /**
+     * 新增
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public RegistrationBank add(RegistrationBank reportData) throws Exception{
+
+        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken ( ));
+
+        RegistrationBank report = new RegistrationBank();
+        BeanUtils.copyProperties(reportData, report);
+        report.setCreateById(userDTO.getId());
+        report.setCreateTime(new Date());
+        report.setUpdateTime(new Date());
+        report.setUpdateById(userDTO.getId());
+        mapper.insert(report);
+
+        return report;
+    }
+    /**
+     * 修改
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public RegistrationBank update(RegistrationBank reportData) throws Exception{
+        //获取当前登录人信息
+        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken ( ));
+
+        RegistrationBank report = new RegistrationBank();
+        BeanUtils.copyProperties(reportData, report);
+        report.setUpdateById(userDTO.getId());
+        report.setUpdateTime(new Date());
+        mapper.updateById(report);
+
+        return report;
+    }
+
+}

+ 53 - 6
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/register/service/RegistrationService.java

@@ -12,8 +12,8 @@ import com.jeeplus.common.SecurityUtils;
 import com.jeeplus.common.TokenProvider;
 import com.jeeplus.core.query.QueryWrapperGenerator;
 import com.jeeplus.flowable.feign.IFlowableApi;
-import com.jeeplus.human.enrollment.enrollmentRegistration.domain.EnrollmentRegistration;
 import com.jeeplus.human.practice.register.domain.Registration;
+import com.jeeplus.human.practice.register.domain.RegistrationBank;
 import com.jeeplus.human.practice.register.domain.RegistrationExperience;
 import com.jeeplus.human.practice.register.domain.RegistrationFamilyMembers;
 import com.jeeplus.human.practice.register.mapper.FamilyMembersMapper;
@@ -49,6 +49,9 @@ public class RegistrationService extends ServiceImpl<InterRegistrationMapper, Re
     private FamilyMembersMapper familyMembersMapper;
 
     @Resource
+    private RegistrationBankService bankService;
+
+    @Resource
     private RegistrationExperienceMapper experienceMapper;
 
     public Integer findIdCardOnly(String idCard) throws Exception {
@@ -96,6 +99,15 @@ public class RegistrationService extends ServiceImpl<InterRegistrationMapper, Re
     public IPage<RegistrationDto> findList(Page<RegistrationDto> page, RegistrationDto projectReportData) throws Exception{
         QueryWrapper<RegistrationDto> queryWrapper = QueryWrapperGenerator.buildQueryCondition (projectReportData,RegistrationDto.class);
         queryWrapper.eq("a.del_flag","0");
+        if (StringUtils.isNotBlank(projectReportData.getPracticeOffice())) {
+            queryWrapper.eq("a.practice_office",projectReportData.getPracticeOffice());
+        }
+        if (StringUtils.isNotBlank(projectReportData.getMobilePhone())) {
+            queryWrapper.eq("a.mobile_phone",projectReportData.getMobilePhone());
+        }
+        if (StringUtils.isNotBlank(projectReportData.getName())) {
+            queryWrapper.like("a.name",projectReportData.getName());
+        }
         IPage<RegistrationDto> list = mapper.findList(page, queryWrapper);
         return list;
 
@@ -143,7 +155,7 @@ public class RegistrationService extends ServiceImpl<InterRegistrationMapper, Re
 
         //当审核通过的时候,将该人员加入到实习生角色中,根据联系电话发送短信到该实习生手机中,将实习状态改为“实习中”
         //根据他的姓名生成一个系统账号,就是创建一个用户信息
-        if (StringUtils.isNotBlank(report.getType())){
+        if (StringUtils.isNotBlank(report.getType()) && !userDTO.isAdmin()){
             if (report.getType().equals("5")){
                 //获取当前的用户,审核的人
                 UserDTO dto = new UserDTO();
@@ -164,9 +176,12 @@ public class RegistrationService extends ServiceImpl<InterRegistrationMapper, Re
 
                 OfficeDTO office = SpringUtil.getBean(IOfficeApi.class).getOfficeById(report.getPracticeOffice());
                 // 获取实习生角色id
-                RoleDTO roleInfo = SpringUtil.getBean(IRoleApi.class).getRoleDTOByNameAndTenantId("实习生",office.getTenantId());
-                List <RoleDTO> roleIdList = new ArrayList<>();
-                roleIdList.add(roleInfo);
+                Map<String,String> keyMap = new HashMap<>();
+                keyMap.put("name", "实习生");
+                keyMap.put("tenantId", office.getTenantId());
+                List <RoleDTO> roleIdList = SpringUtil.getBean(IRoleApi.class).getRoleDTOByNameAndTenantId(keyMap);
+//                List <RoleDTO> roleIdList = new ArrayList<>();
+//                roleIdList.add(roleInfo);
                 dto.setRoleDTOList(roleIdList);
 
 
@@ -217,6 +232,38 @@ public class RegistrationService extends ServiceImpl<InterRegistrationMapper, Re
 
                 report.setPracticeStatus("实习中");
                 report.setUserId(dto.getId());
+
+                //发送完善工资卡信息  实习生完善银行卡号
+                Map map = SpringUtil.getBean(IFlowableApi.class).getByNameForFen("实习生完善银行卡号");
+                String procDefId = map.get("id")+"";
+
+                //当流程结束的时候,发起工资卡信息完善流程
+                String uid = UUID.randomUUID().toString().replace("-", "");
+                RegistrationBank wageCard = new RegistrationBank();
+                wageCard.setId(uid);
+                wageCard.setCreateById("1");
+                wageCard.setUpdateById("1");
+                wageCard.setProcessDefinitionId(procDefId);
+                wageCard.setRegisterId(report.getId());
+                wageCard.setUserId(amountId);
+                wageCard.setType("2");
+                bankService.save(wageCard);
+
+                String procDefKey = map.get("key")+"";
+                String businessTable = "human_resources_practice_registration_bank";
+                String businessId = uid;
+                String title = "工资卡信息完善";
+                String assignee = amountId;
+                String recordType = "";
+                Map<String,String> newMap = new HashMap();
+                newMap.put("procDefId", procDefId);
+                newMap.put("procDefKey", procDefKey);
+                newMap.put("businessTable", businessTable);
+                newMap.put("businessId", businessId);
+                newMap.put("title", title);
+                newMap.put("assignee", assignee);
+                newMap.put("recordType", recordType);
+                String procInsId = SpringUtil.getBean(IFlowableApi.class).startForFen(newMap);
             }
         }
 
@@ -334,7 +381,7 @@ public class RegistrationService extends ServiceImpl<InterRegistrationMapper, Re
             String businessTable = "human_resources_practice_registration";
 
             String businessId = uid;
-            String title = "实习登记";
+            String title = "管理员发起了[" + report.getName() + "-实习登记]";
 
             //获取实习信息审核员信息
             RoleDTO roleDTO = SpringUtil.getBean(IRoleApi.class).getRoleDTOByName2("实习信息审核员");

+ 6 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/register/service/dto/RegistrationDto.java

@@ -58,4 +58,10 @@ public class RegistrationDto extends BaseDTO {
     private String lastCreateTime;
 
     private String workId;
+
+    @TableField(exist = false)
+    private String mobile;
+
+    @TableField(exist = false)
+    private String departmentName;
 }

+ 14 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/reimburseRegister/controller/ReimburseRegisterController.java

@@ -45,6 +45,20 @@ public class ReimburseRegisterController {
     }
 
     /**
+     * 查询财务项目信息列表
+     * @param projectReportData
+     * @param page
+     * @return
+     */
+    @ApiLog("查询实习报销登记列表")
+    @GetMapping("list2")
+    public ResponseEntity<IPage<ReimburseRegister>> data2(ReimburseRegister projectReportData, Page<ReimburseRegister> page) throws Exception {
+        IPage<ReimburseRegister> result = new Page<ReimburseRegister>();
+        result = registerService.findList2 (page,projectReportData);
+        return ResponseEntity.ok (result);
+    }
+
+    /**
      * 查询
      * @param id
      * @return

+ 6 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/reimburseRegister/domain/ReimburseRegister.java

@@ -64,4 +64,10 @@ public class ReimburseRegister extends BaseEntity {
     @TableField(exist = false)
     private String createName;
 
+    @TableField(exist = false)
+    private String[] amounts;
+
+    @TableField(exist = false)
+    private String[] createDates;
+
 }

+ 3 - 1
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/reimburseRegister/mapper/xml/ReimburseRegisterMapper.xml

@@ -32,11 +32,13 @@
         <include refid="Base_Column_List"></include>,
         d.ID_ AS task_id,
         su.name as createName,
-        su2.name as projectManagerName
+        su2.name as projectManagerName,
+        hbank.bank_card_number as bankCardNumber
         from human_resources_practice_reimburse_register a
         LEFT JOIN act_ru_task d ON a.proc_ins_id = d.PROC_INST_ID_
         left join sys_user su on a.create_by_id = su.id
         left join sys_user su2 on a.project_manager = su2.id
+        left join human_resources_practice_registration_bank hbank on a.create_by_id = hbank.user_id
         ${ew.customSqlSegment}
         ORDER BY a.create_time DESC
     </select>

+ 62 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/practice/reimburseRegister/service/ReimburseRegisterService.java

@@ -55,6 +55,7 @@ public class ReimburseRegisterService extends ServiceImpl<ReimburseRegisterMappe
         if (StringUtils.isNotEmpty(registration.getId())){
 
             ReimburseRegister report = registerMapper.getById(registration.getId());
+            registration.setCreateById(report.getCreateById());
             if (report != null){
                 return update(registration);
             }
@@ -75,6 +76,67 @@ public class ReimburseRegisterService extends ServiceImpl<ReimburseRegisterMappe
         if (StringUtils.isNotBlank(projectReportData.getType())){
             queryWrapper.eq("a.type",projectReportData.getType());
         }
+        if (StringUtils.isNotBlank(projectReportData.getReimbuserName())){
+            queryWrapper.like("a.reimbuser_name",projectReportData.getReimbuserName());
+        }
+        if (StringUtils.isNotBlank(projectReportData.getCreateById())){
+            queryWrapper.eq("a.create_by_id",projectReportData.getCreateById());
+        }
+        if (StringUtils.isNotBlank(projectReportData.getCreateById())){
+            queryWrapper.eq("a.create_by_id",projectReportData.getCreateById());
+        }
+
+        if (projectReportData.getCreateDates() != null && projectReportData.getCreateDates().length > 0) {
+            queryWrapper.between("a.create_time", projectReportData.getCreateDates()[0], projectReportData.getCreateDates()[1]);
+        }
+        if (projectReportData.getAmounts() != null && projectReportData.getAmounts().length > 0) {
+            queryWrapper.between("a.all_reimbursement_amount", projectReportData.getAmounts()[0], projectReportData.getAmounts()[1]);
+        }
+
+        IPage<ReimburseRegister> list = registerMapper.findList(page, queryWrapper);
+        list.getRecords().forEach(item -> {
+            // 入库 修改申请
+            if (com.jeeplus.utils.StringUtils.isNotBlank(item.getTaskId()) && com.jeeplus.utils.StringUtils.isNotBlank(item.getType())) {
+                if ("2".equals(item.getType())) { // “审核中”的数据要获取数据审核人
+                    item.setAuditUserIds(flowTaskService.getTaskAuditUsers(item.getTaskId()));  // 获取数据审核人
+                }
+            }
+        });
+        return list;
+
+    }
+
+    /**
+     * 实习报销登记信息
+     * @param page
+     * @param projectReportData
+     * @return
+     * @throws Exception
+     */
+    public IPage<ReimburseRegister> findList2(Page<ReimburseRegister> page, ReimburseRegister projectReportData) throws Exception{
+        QueryWrapper<ReimburseRegister> queryWrapper = QueryWrapperGenerator.buildQueryCondition (projectReportData,ReimburseRegister.class);
+        queryWrapper.eq("a.del_flag","0");
+        projectReportData.setType("5");
+        if (StringUtils.isNotBlank(projectReportData.getType())){
+            queryWrapper.eq("a.type",projectReportData.getType());
+        }
+        if (StringUtils.isNotBlank(projectReportData.getReimbuserName())){
+            queryWrapper.like("a.reimbuser_name",projectReportData.getReimbuserName());
+        }
+        if (StringUtils.isNotBlank(projectReportData.getCreateById())){
+            queryWrapper.eq("a.create_by_id",projectReportData.getCreateById());
+        }
+        if (StringUtils.isNotBlank(projectReportData.getCreateById())){
+            queryWrapper.eq("a.create_by_id",projectReportData.getCreateById());
+        }
+
+        if (projectReportData.getCreateDates() != null && projectReportData.getCreateDates().length > 0) {
+            queryWrapper.between("a.create_time", projectReportData.getCreateDates()[0], projectReportData.getCreateDates()[1]);
+        }
+        if (projectReportData.getAmounts() != null && projectReportData.getAmounts().length > 0) {
+            queryWrapper.between("a.all_reimbursement_amount", projectReportData.getAmounts()[0], projectReportData.getAmounts()[1]);
+        }
+
         IPage<ReimburseRegister> list = registerMapper.findList(page, queryWrapper);
         list.getRecords().forEach(item -> {
             // 入库 修改申请

+ 6 - 2
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/feign/RoleApiImpl.java

@@ -6,8 +6,12 @@ import com.jeeplus.sys.service.dto.RoleDTO;
 import com.jeeplus.sys.service.mapstruct.RoleWrapper;
 import com.jeeplus.sys.utils.TenantUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+import java.util.Map;
+
 @RestController
 public class RoleApiImpl implements IRoleApi {
 
@@ -21,8 +25,8 @@ public class RoleApiImpl implements IRoleApi {
     }
 
     @Override
-    public RoleDTO getRoleDTOByNameAndTenantId(String name, String tenantId) {
-        return roleService.getRoleDTOByNameAndTenantId(name,tenantId);
+    public List<RoleDTO> getRoleDTOByNameAndTenantId(@RequestBody Map<String, String> keyMap) {
+        return roleService.getRoleDTOByNameAndTenantId(keyMap);
     }
 
     @Override

+ 2 - 1
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/AreaMapper.java

@@ -5,6 +5,7 @@ package com.jeeplus.sys.mapper;
 
 import com.jeeplus.core.domain.TreeMapper;
 import com.jeeplus.sys.domain.Area;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -16,5 +17,5 @@ import java.util.List;
  */
 public interface AreaMapper extends TreeMapper <Area> {
 
-    List<Area> getAllArea();
+    List<Area> getAllArea(@Param("name") String name);
 }

+ 1 - 1
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/AreaService.java

@@ -44,6 +44,6 @@ public class AreaService extends TreeService <AreaMapper, Area> {
     }
 
     public List<Area> getAllArea(String name){
-        return mapper.getAllArea();
+        return mapper.getAllArea(name);
     }
 }

+ 18 - 7
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/RoleService.java

@@ -20,7 +20,9 @@ import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 角色管理类
@@ -173,14 +175,23 @@ public class RoleService extends ServiceImpl <RoleMapper, Role> {
 
     /**
      * 根据没名称与tenantId查询角色信息
-     * @param name
-     * @param tenantId
      * @return
      */
-    public RoleDTO getRoleDTOByNameAndTenantId(String name, String tenantId) {
-        Role role = baseMapper.getRoleDTOByNameAndTenantId(name,tenantId);
-        RoleDTO roleDTO = new RoleDTO();
-        BeanUtils.copyProperties(role, roleDTO);
-        return roleDTO;
+    public List<RoleDTO> getRoleDTOByNameAndTenantId(Map<String, String> keyMap) {
+        List<RoleDTO> dtos = new ArrayList<>();
+        String name = keyMap.get("name");
+        String tenantId = keyMap.get("tenantId");
+
+        String[] parts = name.split(",");
+        if (parts.length>0){
+            for (int i=0;i<parts.length;i++){
+                Role role = baseMapper.getRoleDTOByNameAndTenantId(parts[i],tenantId);
+                RoleDTO roleDTO = new RoleDTO();
+                BeanUtils.copyProperties(role, roleDTO);
+                dtos.add(roleDTO);
+            }
+        }
+
+        return dtos;
     }
 }

+ 12 - 1
jeeplus-modules/jeeplus-xxl-job-executor-sample/src/main/java/com/xxl/job/executor/service/jobhandler/SampleXxlJob.java

@@ -30,6 +30,7 @@ import java.io.InputStreamReader;
 import java.net.HttpURLConnection;
 import java.net.URL;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 
@@ -73,8 +74,18 @@ public class SampleXxlJob {
         //如果没删除则删除
         for (RegistrationInfo info : infos){
             SpringUtil.getBean(IUserApi.class).deleteById(info.getUserId());
+
+            // 获取当前日期
+            LocalDate currentDate = LocalDate.now();
+
+            // 获取年、月、日
+            int year = currentDate.getYear();
+            int month = currentDate.getMonthValue();
+            int day = currentDate.getDayOfMonth();
+
             //发送短信
-            String randomCode = info.getName() + "您好,您的账号已冻结!";
+            String randomCode = "你好" + info.getName() + "!恭喜你完成在我司的实习,希望你今后工作生活顺利。系统将在" + year + "年"+ month + "月" + day + "日晚上12点冻结账号,请尽快" +
+                    "处理好手头的工作!";
             Map<String, Object> stringObjectMap = SpringUtil.getBean(IUserApi.class).sendRandomCodes(info.getMobilePhone(), randomCode);
             String statusCode = (String) stringObjectMap.get("statusCode");
             if (("000000").equals(statusCode)) {