| 
															
																@@ -1,10 +1,8 @@ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 package com.ankaibei.workFlow.webadmin.ankaibei.service.impl; 
															 | 
															
															 | 
															
																 package com.ankaibei.workFlow.webadmin.ankaibei.service.impl; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-import cn.hutool.core.util.ObjectUtil; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import cn.hutool.core.util.StrUtil; 
															 | 
															
															 | 
															
																 import cn.hutool.core.util.StrUtil; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.alibaba.fastjson.JSON; 
															 | 
															
															 | 
															
																 import com.alibaba.fastjson.JSON; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.alibaba.fastjson.JSONObject; 
															 | 
															
															 | 
															
																 import com.alibaba.fastjson.JSONObject; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-import com.ankaibei.workFlow.common.core.constant.ErrorCodeEnum; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.ankaibei.workFlow.common.core.object.ResponseResult; 
															 | 
															
															 | 
															
																 import com.ankaibei.workFlow.common.core.object.ResponseResult; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.ankaibei.workFlow.common.core.object.TokenData; 
															 | 
															
															 | 
															
																 import com.ankaibei.workFlow.common.core.object.TokenData; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.ankaibei.workFlow.common.flow.constant.FlowConstant; 
															 | 
															
															 | 
															
																 import com.ankaibei.workFlow.common.flow.constant.FlowConstant; 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -16,7 +14,7 @@ import com.ankaibei.workFlow.common.flow.vo.TaskInfoVo; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.ankaibei.workFlow.webadmin.ankaibei.entity.*; 
															 | 
															
															 | 
															
																 import com.ankaibei.workFlow.webadmin.ankaibei.entity.*; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.ankaibei.workFlow.webadmin.ankaibei.enums.CodeEnum; 
															 | 
															
															 | 
															
																 import com.ankaibei.workFlow.webadmin.ankaibei.enums.CodeEnum; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.ankaibei.workFlow.webadmin.ankaibei.enums.DataIsDeleteEnum; 
															 | 
															
															 | 
															
																 import com.ankaibei.workFlow.webadmin.ankaibei.enums.DataIsDeleteEnum; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-import com.ankaibei.workFlow.webadmin.ankaibei.enums.ProjectPeriodEnum; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+import com.ankaibei.workFlow.webadmin.ankaibei.enums.ProjectStageEnum; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.ankaibei.workFlow.webadmin.ankaibei.enums.ProjectStatusEnum; 
															 | 
															
															 | 
															
																 import com.ankaibei.workFlow.webadmin.ankaibei.enums.ProjectStatusEnum; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.ankaibei.workFlow.webadmin.ankaibei.mapper.*; 
															 | 
															
															 | 
															
																 import com.ankaibei.workFlow.webadmin.ankaibei.mapper.*; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.ankaibei.workFlow.webadmin.ankaibei.service.ProjectInfoService; 
															 | 
															
															 | 
															
																 import com.ankaibei.workFlow.webadmin.ankaibei.service.ProjectInfoService; 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -70,27 +68,27 @@ public class ProjectInfoServiceImpl implements ProjectInfoService { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             UserInfoEntity userInfoEntity = userInfoMapper.findByUserIdEquals((map.get("projectPrincipal"))); 
															 | 
															
															 | 
															
																             UserInfoEntity userInfoEntity = userInfoMapper.findByUserIdEquals((map.get("projectPrincipal"))); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             map1.put("projectPrincipal", userInfoEntity != null ? userInfoEntity.getShowName() : null); 
															 | 
															
															 | 
															
																             map1.put("projectPrincipal", userInfoEntity != null ? userInfoEntity.getShowName() : null); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             String projectStage = map.get("projectStage"); 
															 | 
															
															 | 
															
																             String projectStage = map.get("projectStage"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            switch (ProjectPeriodEnum.getEnumByCode(projectStage)) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            switch (ProjectStageEnum.getEnumByCode(projectStage)) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 case BUSINESS_RESEARCHB: 
															 | 
															
															 | 
															
																                 case BUSINESS_RESEARCHB: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    map1.put("projectStage", ProjectPeriodEnum.BUSINESS_RESEARCHB.getReason()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    map1.put("projectStage", ProjectStageEnum.BUSINESS_RESEARCHB.getReason()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     break; 
															 | 
															
															 | 
															
																                     break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 case PRE_SALES: 
															 | 
															
															 | 
															
																                 case PRE_SALES: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    map1.put("projectStage", ProjectPeriodEnum.PRE_SALES.getReason()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    map1.put("projectStage", ProjectStageEnum.PRE_SALES.getReason()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     break; 
															 | 
															
															 | 
															
																                     break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 case PROJECT_START: 
															 | 
															
															 | 
															
																                 case PROJECT_START: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    map1.put("projectStage", ProjectPeriodEnum.PROJECT_START.getReason()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    map1.put("projectStage", ProjectStageEnum.PROJECT_START.getReason()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     break; 
															 | 
															
															 | 
															
																                     break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 case DELIVERY: 
															 | 
															
															 | 
															
																                 case DELIVERY: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    map1.put("projectStage", ProjectPeriodEnum.DELIVERY.getReason()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    map1.put("projectStage", ProjectStageEnum.DELIVERY.getReason()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     break; 
															 | 
															
															 | 
															
																                     break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 case CHECK_AND_ACCEPT: 
															 | 
															
															 | 
															
																                 case CHECK_AND_ACCEPT: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    map1.put("projectStage", ProjectPeriodEnum.CHECK_AND_ACCEPT.getReason()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    map1.put("projectStage", ProjectStageEnum.CHECK_AND_ACCEPT.getReason()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     break; 
															 | 
															
															 | 
															
																                     break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 case POST_PROJECT_THE_RECEIVABLE: 
															 | 
															
															 | 
															
																                 case POST_PROJECT_THE_RECEIVABLE: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    map1.put("projectStage", ProjectPeriodEnum.POST_PROJECT_THE_RECEIVABLE.getReason()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    map1.put("projectStage", ProjectStageEnum.POST_PROJECT_THE_RECEIVABLE.getReason()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     break; 
															 | 
															
															 | 
															
																                     break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 case CLOSE: 
															 | 
															
															 | 
															
																                 case CLOSE: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    map1.put("projectStage", ProjectPeriodEnum.CLOSE.getReason()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    map1.put("projectStage", ProjectStageEnum.CLOSE.getReason()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     break; 
															 | 
															
															 | 
															
																                     break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 default: 
															 | 
															
															 | 
															
																                 default: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     break; 
															 | 
															
															 | 
															
																                     break; 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -132,7 +130,7 @@ public class ProjectInfoServiceImpl implements ProjectInfoService { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         Optional<UserInfoEntity> projectPrincipal = userInfoMapper.findById(projectInfoEntity1.getProjectPrincipal()); 
															 | 
															
															 | 
															
																         Optional<UserInfoEntity> projectPrincipal = userInfoMapper.findById(projectInfoEntity1.getProjectPrincipal()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         UserInfoEntity userInfoEntity = projectPrincipal.orElse(null); 
															 | 
															
															 | 
															
																         UserInfoEntity userInfoEntity = projectPrincipal.orElse(null); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         projectInfoEntity1.setProjectPrincipal(userInfoEntity != null ? userInfoEntity.getShowName() : null); 
															 | 
															
															 | 
															
																         projectInfoEntity1.setProjectPrincipal(userInfoEntity != null ? userInfoEntity.getShowName() : null); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        projectInfoEntity1.setProjectStageStr(ProjectPeriodEnum.getEnumByCode(projectInfoEntity1.getProjectStage()).getReason()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        projectInfoEntity1.setProjectStageStr(ProjectStageEnum.getEnumByCode(projectInfoEntity1.getProjectStage()).getReason()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         return new ResMsg(CodeEnum.OK, projectInfoEntity1); 
															 | 
															
															 | 
															
																         return new ResMsg(CodeEnum.OK, projectInfoEntity1); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     } 
															 | 
															
															 | 
															
																     } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -144,64 +142,99 @@ public class ProjectInfoServiceImpl implements ProjectInfoService { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 return new ResMsg(CodeEnum.TNE_PROJECT_NAME_ALREADY_EXISTS); 
															 | 
															
															 | 
															
																                 return new ResMsg(CodeEnum.TNE_PROJECT_NAME_ALREADY_EXISTS); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             } 
															 | 
															
															 | 
															
																             } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         } 
															 | 
															
															 | 
															
																         } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        projectInfoEntity.setProjectStage(ProjectPeriodEnum.BUSINESS_RESEARCHB.getCode()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        //直接保存 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        projectInfoEntity.setProjectStage(ProjectStageEnum.BUSINESS_RESEARCHB.getCode()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         projectInfoEntity.setProjectStatus(ProjectStatusEnum.NORMAL.getCode()); 
															 | 
															
															 | 
															
																         projectInfoEntity.setProjectStatus(ProjectStatusEnum.NORMAL.getCode()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        projectInfoEntity.setIsDelete(DataIsDeleteEnum.NORMAL.getCode()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         projectInfoEntity.setCreateDate(new Date()); 
															 | 
															
															 | 
															
																         projectInfoEntity.setCreateDate(new Date()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        ProjectInfoEntity save = projectInfoMapper.save(projectInfoEntity); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        return new ResMsg(CodeEnum.OK, save); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        /** 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-         *调用新增项目信息申请流程的启动 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-         *获取流程开始节点之后的第一个任务节点的数据 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-         *param processDefinitionKey 新建项目信息审批流程--流程标识。 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-         */ 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        String processDefinitionKey = "ProjectAddApplyFlow"; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        ResponseResult<FlowEntry> flowEntryResult = flowTaskStart.verifyAndGetFlowEntry(processDefinitionKey); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        if (!flowEntryResult.isSuccess()) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            return ResMsg.newInstance(CodeEnum.FAIL, flowEntryResult); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    /** 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+     * 保存后提交 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+     */ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    @Override 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    public ResMsg submitProjectBySave(ProjectInfoEntity projectInfoEntity) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        ResMsg resMsg = addProject(projectInfoEntity); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        if (!"200".equals(resMsg.getCode())) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            return resMsg; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         } 
															 | 
															
															 | 
															
																         } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        FlowEntryPublish flowEntryPublish = flowEntryResult.getData().getMainFlowEntryPublish(); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        String initTaskInfo = flowEntryPublish.getInitTaskInfo(); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        com.ankaibei.workFlow.common.flow.vo.TaskInfoVo taskInfo = StrUtil.isBlank(initTaskInfo) 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                ? null : JSON.parseObject(initTaskInfo, TaskInfoVo.class); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        if (ObjectUtils.isNotEmpty(taskInfo)) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            String loginName = TokenData.takeFromRequest().getLoginName(); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            taskInfo.setAssignedMe(StrUtil.equalsAny( 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    taskInfo.getAssignee(), loginName, FlowConstant.START_USER_NAME_VAR)); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        ProjectInfoEntity data = (ProjectInfoEntity) resMsg.getData(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        resMsg = projectFlowStart(data); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        if (!"200".equals(resMsg.getCode())) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            return resMsg; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        return new ResMsg(CodeEnum.OK); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    /** 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+     * 批量提交项目 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+     * 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+     * @param list 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+     * @return 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+     */ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    @Override 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    public ResMsg submitProjectBatch(ArrayList<ProjectInfoEntity> list) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        //直接提交 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        for (ProjectInfoEntity info : list) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            info = projectInfoMapper.getById(info.getProjectId()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            ResMsg resMsg = projectFlowStart(info); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            if (!"200".equals(resMsg.getCode())) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                return resMsg; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         } 
															 | 
															
															 | 
															
																         } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        //用户在表单页面配置的操作按钮 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        FlowTaskCommentDto flowTaskCommentDto = new FlowTaskCommentDto(); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        //提交后进行到第二个节点 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        flowTaskCommentDto.setApprovalType("agree"); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        HashMap<String, Object> stringObjectHashMap = new HashMap<>(); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        stringObjectHashMap.put("project_name", projectInfoEntity.getProjectName()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        stringObjectHashMap.put("project_stage", projectInfoEntity.getProjectStage()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        stringObjectHashMap.put("project_status", projectInfoEntity.getProjectStatus()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        stringObjectHashMap.put("project_type", projectInfoEntity.getProjectType()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        stringObjectHashMap.put("relevance_client", projectInfoEntity.getRelevanceClient()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        stringObjectHashMap.put("peoject_money", projectInfoEntity.getPeojectMoney()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        stringObjectHashMap.put("staff_cost", projectInfoEntity.getStaffCost()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        stringObjectHashMap.put("project_cost", projectInfoEntity.getProjectCost()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        stringObjectHashMap.put("total_cost", projectInfoEntity.getTotalCost()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        stringObjectHashMap.put("linkman_phone", projectInfoEntity.getLinkmanPhone()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        stringObjectHashMap.put("project_principal", projectInfoEntity.getProjectPrincipal()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        stringObjectHashMap.put("project_node", projectInfoEntity.getProjectNode()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        stringObjectHashMap.put("project_describe", projectInfoEntity.getProjectDescribe()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        stringObjectHashMap.put("create_date", projectInfoEntity.getCreateDate()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        ProjectInfoEntity save = projectInfoMapper.save(projectInfoEntity); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        stringObjectHashMap.put("project_id", save.getProjectId()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        JSONObject masterData = (JSONObject) JSONObject.toJSON(stringObjectHashMap); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        Map<String, String> map = flowTaskStart.startAndTakeUserTaskSS(processDefinitionKey, flowTaskCommentDto, null, masterData, null, null).getData(); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        save.setProcessDefinitionId(map.get("processDefinitionId")); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        save.setProcessInstanceId(map.get("processInstanceId")); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        save.setFlowTaskStatus(FlowTaskStatus.SUBMITTED); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        save.setIsDelete(DataIsDeleteEnum.NORMAL.getCode()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        projectInfoMapper.save(save); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         return new ResMsg(CodeEnum.OK); 
															 | 
															
															 | 
															
																         return new ResMsg(CodeEnum.OK); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     } 
															 | 
															
															 | 
															
																     } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    /** 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+     * 编辑项目后保存 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+     * 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+     * @param entity 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+     * @return 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+     */ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     @Override 
															 | 
															
															 | 
															
																     @Override 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-    public ResMsg updateProject(ProjectInfoEntity projectInfoEntity) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    public ResMsg updateProject(ProjectInfoEntity entity) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        //获取原数据对象 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        ProjectInfoEntity byId = projectInfoMapper.getById(entity.getProjectId()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        String flowStatus = byId.getFlowTaskStatus().toString(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        //将修改的信息赋值给原数据对象 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        byId.setProjectName(entity.getProjectName());//项目名称 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        byId.setProjectPeriod(entity.getProjectPeriod());//项目周期 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        byId.setProjectType(entity.getProjectType());//项目类型 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        byId.setProjectStage(entity.getProjectStage());//项目阶段 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        byId.setProjectMoney(entity.getProjectMoney());//项目金额 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        byId.setStaffCost(entity.getStaffCost());//人员成本 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        byId.setProjectCost(entity.getProjectCost());//项目费用 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        byId.setTotalCost(entity.getTotalCost());//总成本 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        byId.setRelevanceClient(entity.getRelevanceClient());//关联客户 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        byId.setLinkmanPhone(entity.getLinkmanPhone());//客户电话 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        byId.setProjectPrincipal(entity.getProjectPrincipal());//项目负责人 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        byId.setProjectDescribe(entity.getProjectDescribe());//项目描述 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        byId.setProjectStatus(entity.getProjectStatus());//项目状态 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        if (FlowTaskStatus.REFUSED.equals(flowStatus)) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            // 更新流程状态和流程信息,以便建立下一个流程实例 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            byId.setFlowTaskStatus(FlowTaskStatus.DRAFT);//流程状态 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            byId.setProcessDefinitionId(null);//流程定义id 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            byId.setProcessInstanceId(null);//流程实例id 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        ProjectInfoEntity save = projectInfoMapper.save(byId); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        return new ResMsg(CodeEnum.OK, save); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        projectInfoMapper.updateProject(projectInfoEntity.getProjectStage(), projectInfoEntity.getProjectStatus(), projectInfoEntity.getProjectId()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    @Override 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    public ResMsg submitProjectByUpdate(ProjectInfoEntity projectInfoEntity) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        //先更新数据 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        ResMsg resMsg = updateProject(projectInfoEntity); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        ProjectInfoEntity save = (ProjectInfoEntity) resMsg.getData(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        if (!"200".equals(resMsg.getCode())) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            return resMsg; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        //再进行提交 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        ResMsg resMsg1 = projectFlowStart(save); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        if (!"200".equals(resMsg1.getCode())) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            return resMsg1; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         return new ResMsg(CodeEnum.OK); 
															 | 
															
															 | 
															
																         return new ResMsg(CodeEnum.OK); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     } 
															 | 
															
															 | 
															
																     } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -407,8 +440,59 @@ public class ProjectInfoServiceImpl implements ProjectInfoService { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																     @Override 
															 | 
															
															 | 
															
																     @Override 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     public ProjectInfoEntity getProjectInfoByCode(String projectCode) { 
															 | 
															
															 | 
															
																     public ProjectInfoEntity getProjectInfoByCode(String projectCode) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            ProjectInfoEntity pro = projectInfoMapper.findProjectInfoByCode(projectCode); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            return pro; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        ProjectInfoEntity pro = projectInfoMapper.findProjectInfoByCode(projectCode); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        return pro; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    //提交项目--创建流程实例 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    public ResMsg projectFlowStart(ProjectInfoEntity projectInfoEntity) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        /** 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+         *调用新增项目信息申请流程的启动 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+         *获取流程开始节点之后的第一个任务节点的数据 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+         *param processDefinitionKey 新建项目信息审批流程--流程标识。 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+         */ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        String processDefinitionKey = "ProjectAddApplyFlow"; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        ResponseResult<FlowEntry> flowEntryResult = flowTaskStart.verifyAndGetFlowEntry(processDefinitionKey); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        if (!flowEntryResult.isSuccess()) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            return ResMsg.newInstance(CodeEnum.FAIL, flowEntryResult); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        FlowEntryPublish flowEntryPublish = flowEntryResult.getData().getMainFlowEntryPublish(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        String initTaskInfo = flowEntryPublish.getInitTaskInfo(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        com.ankaibei.workFlow.common.flow.vo.TaskInfoVo taskInfo = StrUtil.isBlank(initTaskInfo) 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                ? null : JSON.parseObject(initTaskInfo, TaskInfoVo.class); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        if (ObjectUtils.isNotEmpty(taskInfo)) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            String loginName = TokenData.takeFromRequest().getLoginName(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            taskInfo.setAssignedMe(StrUtil.equalsAny( 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    taskInfo.getAssignee(), loginName, FlowConstant.START_USER_NAME_VAR)); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        }    //用户在表单页面配置的操作按钮 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        FlowTaskCommentDto flowTaskCommentDto = new FlowTaskCommentDto(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        //提交后进行到第二个节点 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        flowTaskCommentDto.setApprovalType("agree"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        HashMap<String, Object> stringObjectHashMap = new HashMap<>(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        stringObjectHashMap.put("project_name", projectInfoEntity.getProjectName()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        stringObjectHashMap.put("project_stage", projectInfoEntity.getProjectStage()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        stringObjectHashMap.put("project_status", projectInfoEntity.getProjectStatus()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        stringObjectHashMap.put("project_type", projectInfoEntity.getProjectType()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        stringObjectHashMap.put("relevance_client", projectInfoEntity.getRelevanceClient()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        stringObjectHashMap.put("project_money", projectInfoEntity.getProjectMoney()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        stringObjectHashMap.put("staff_cost", projectInfoEntity.getStaffCost()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        stringObjectHashMap.put("project_cost", projectInfoEntity.getProjectCost()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        stringObjectHashMap.put("total_cost", projectInfoEntity.getTotalCost()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        stringObjectHashMap.put("linkman_phone", projectInfoEntity.getLinkmanPhone()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        stringObjectHashMap.put("project_principal", projectInfoEntity.getProjectPrincipal()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        stringObjectHashMap.put("project_node", projectInfoEntity.getProjectNode()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        stringObjectHashMap.put("project_describe", projectInfoEntity.getProjectDescribe()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        stringObjectHashMap.put("create_date", projectInfoEntity.getCreateDate()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        stringObjectHashMap.put("project_id", projectInfoEntity.getProjectId()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        JSONObject masterData = (JSONObject) JSONObject.toJSON(stringObjectHashMap); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        Map<String, String> map = flowTaskStart.startAndTakeUserTaskSS(processDefinitionKey, flowTaskCommentDto, null, masterData, null, null).getData(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        projectInfoEntity.setProcessDefinitionId(map.get("processDefinitionId")); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        projectInfoEntity.setProcessInstanceId(map.get("processInstanceId")); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        projectInfoEntity.setFlowTaskStatus(FlowTaskStatus.SUBMITTED); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        projectInfoEntity.setIsDelete(DataIsDeleteEnum.NORMAL.getCode()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        projectInfoMapper.save(projectInfoEntity); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        return new ResMsg(CodeEnum.OK); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     } 
															 | 
															
															 | 
															
																     } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																     /** 
															 | 
															
															 | 
															
																     /** 
															 |