Selaa lähdekoodia

fix: 修复修改表单信息有误

Closes B0066210
huangzqa 3 vuotta sitten
vanhempi
sitoutus
07b82a9d97

+ 26 - 16
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/service/impl/ApproveServiceImpl.java

@@ -281,12 +281,12 @@ public class ApproveServiceImpl implements IApproveService {
         boolean sendMessageFlag = true;
         try {
             logger.info("=======" + JSONObject.toJSONString(approvalInfoUpdateReqVO) + "========");
-            ApprovalInfoReqVO approvalInfoReqVO = new ApprovalInfoReqVO();
-            BeanUtils.copyProperties(approvalInfoUpdateReqVO, approvalInfoReqVO);
             //实例id
             String instanceId = approvalInfoUpdateReqVO.getProcessInstanceId();
             //判断实例id是否存在,不存在的话,原本为草稿状态
             if (StringUtils.isEmpty(instanceId)) {
+                ApprovalInfoReqVO approvalInfoReqVO = new ApprovalInfoReqVO();
+                BeanUtils.copyProperties(approvalInfoUpdateReqVO, approvalInfoReqVO);
 
                 if (StringUtils.isNotEmpty(approvalId)) {
                     logger.info("====删除草稿信息====");
@@ -298,17 +298,27 @@ public class ApproveServiceImpl implements IApproveService {
                 ApproveRecordInfo result = approveService.saveBase(approvalInfoReqVO, ManageDisposeTypeEnum.UPDATE, approvalInfo.getCreateTime());
                 return ResponseUtil.newInstance(result.getProcessInstanceId());
             } else {
-                approvalInfo.setApplyReason(approvalInfoReqVO.getApplyReason());
-                approvalInfo.setApplyContent(approvalInfoReqVO.getApplyContent());
-                approvalInfo.setApplicantPhoneNo(approvalInfoReqVO.getApplicantPhoneNo());
-                approvalInfo.setPermissionValidType(approvalInfoReqVO.getPermissionValidType());
+                String processTitle = approvalInfoUpdateReqVO.getProcessTitle();
+                if (StrUtil.isBlank(processTitle)) {
+                    approvalInfoUpdateReqVO.setProcessTitle(approvalInfo.getProcessTitle());
+                }
+
+                if (StrUtil.isBlank(approvalInfoUpdateReqVO.getAppCode())) {
+                    approvalInfoUpdateReqVO.setAppCode(approvalInfo.getAppCode());
+                }
+                if (StrUtil.isBlank(approvalInfoUpdateReqVO.getFlowType())) {
+                    approvalInfoUpdateReqVO.setFlowType(approvalInfo.getFlowType());
+                }
+
+                approvalInfo.setResourceInfoVo(approvalInfoUpdateReqVO.getResourceInfoDTO());
+                BeanUtils.copyProperties(approvalInfoUpdateReqVO, approvalInfo);
                 //判断有效期类型
-                String permissionValidType = approvalInfoReqVO.getPermissionValidType();
+                String permissionValidType = approvalInfoUpdateReqVO.getPermissionValidType();
                 PermissionValidTypeEnum permissionValidTypeEnum = EnumUtils.enumOf(PermissionValidTypeEnum.class, permissionValidType);
                 if (permissionValidTypeEnum.equals(PermissionValidTypeEnum.CUSTOM)) {
                     //自定义类型,需设置开始、结束时间
-                    approvalInfo.setStartTime(approvalInfoReqVO.getStartTime());
-                    approvalInfo.setEndTime(approveBusiness.parseEndTime(approvalInfoReqVO.getEndTime()));
+                    approvalInfo.setStartTime(approvalInfoUpdateReqVO.getStartTime());
+                    approvalInfo.setEndTime(approveBusiness.parseEndTime(approvalInfoUpdateReqVO.getEndTime()));
                 } else {
                     //长期类型,开始、结束时间设置为空
                     approvalInfo.setStartTime(null);
@@ -318,7 +328,7 @@ public class ApproveServiceImpl implements IApproveService {
                 approvalInfo.setUpdateUser(ProofsUtil.getIdcard());
                 String flowType = approvalInfo.getFlowType();
                 FlowTypeEnum flowTypeEnum = EnumUtils.enumOf(FlowTypeEnum.class, flowType);
-                @Valid @NotNull ResourceInfoDTO resourceInfoDTO = approvalInfoReqVO.getResourceInfoDTO();
+                @Valid @NotNull ResourceInfoDTO resourceInfoDTO = approvalInfo.getResourceInfoVo();
                 ContentRespVO contentRespVO = approveBusiness.generalContentRespVO(flowTypeEnum, resourceInfoDTO);
                 approvalInfo.setApplyContent(JSON.toJSONString(contentRespVO));
                 //构建模式3新表单表对象
@@ -329,24 +339,24 @@ public class ApproveServiceImpl implements IApproveService {
 
                 //判断实例id是否存在,存在的话,原本为非草稿状态
                 //原本为非草稿状态,点击保存并提交,需要
-                @NotBlank String operateType = approvalInfoReqVO.getOperateType();
+                @NotBlank String operateType = approvalInfoUpdateReqVO.getOperateType();
                 CommitTypeEnum commitTypeEnum = EnumUtils.enumOf(CommitTypeEnum.class, operateType);
                 if (CommitTypeEnum.APPLY_COMMIT.equals(commitTypeEnum)) {
                     //根据实例id获取流程当前待办数组
                     List<TaskHistoryDetailVo> list = workflowClientFactory.getWorkflowProcessClient()
                             .queryTaskDetailByProcessInstanceId(approvalInfo.getProcessInstanceId());
                     TaskRequest<ApproveTaskRequestVo> taskRequest = new TaskRequest<>();
-                    String applicantIdcard = approvalInfoReqVO.getApplicantIdcard();
+                    String applicantIdcard = approvalInfoUpdateReqVO.getApplicantIdcard();
                     TaskRequestUserInfoDTO taskRequestUserInfoDTO = new TaskRequestUserInfoDTO();
                     taskRequestUserInfoDTO.setIdCard(applicantIdcard);
-                    taskRequestUserInfoDTO.setUserName(approvalInfoReqVO.getApplicantName());
-                    taskRequestUserInfoDTO.setOrgCode(approvalInfoReqVO.getApplicantOrgCode());
-                    taskRequestUserInfoDTO.setOrgName(approvalInfoReqVO.getApplicantOrgName());
+                    taskRequestUserInfoDTO.setUserName(approvalInfoUpdateReqVO.getApplicantName());
+                    taskRequestUserInfoDTO.setOrgCode(approvalInfoUpdateReqVO.getApplicantOrgCode());
+                    taskRequestUserInfoDTO.setOrgName(approvalInfoUpdateReqVO.getApplicantOrgName());
 
                     OperateRespVO operateRespVO = dcucAuthBusiness.checkHitRedList(applicantIdcard, flowTypeEnum, resourceInfoDTO);
 
                     //构建工作流请求体
-                    this.buildTaskRequest(taskRequest, approvalInfo, taskRequestUserInfoDTO, approvalInfoReqVO.getActivitiHolderList(), null, operateRespVO.getHitRedList());
+                    this.buildTaskRequest(taskRequest, approvalInfo, taskRequestUserInfoDTO, approvalInfoUpdateReqVO.getActivitiHolderList(), null, operateRespVO.getHitRedList());
 
                     for (TaskHistoryDetailVo taskDetailVo : list) {
                         String taskDetailVoId = taskDetailVo.getId();