Browse Source

优化代码

java110 4 years ago
parent
commit
e2e9e590f7

+ 4 - 1
java110-db/src/main/resources/mapper/common/WorkflowServiceDaoImplMapper.xml

@@ -162,9 +162,12 @@
         <if test="flowType !=null and flowType != ''">
             , t.flow_type= #{flowType}
         </if>
-        <if test="processDefinitionKey !=null and processDefinitionKey != ''">
+        <if test="processDefinitionKey !=null and processDefinitionKey != '' and processDefinitionKey != '-1'">
             , t.process_definition_key= #{processDefinitionKey}
         </if>
+        <if test="processDefinitionKey !=null and processDefinitionKey == '-1'">
+            , t.process_definition_key= ''
+        </if>
         where 1=1
         <if test="bId !=null and bId != ''">
             and t.b_id= #{bId}

+ 61 - 54
service-api/src/main/java/com/java110/api/listener/workflow/UpdateWorkflowListener.java

@@ -60,13 +60,14 @@ public class UpdateWorkflowListener extends AbstractServiceApiPlusListener {
         Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含communityId");
         Assert.hasKeyAndValue(reqJson, "storeId", "请求报文中未包含商户ID");
 
-        if (!reqJson.containsKey("steps")) {
-            Assert.hasKeyAndValue(reqJson, "steps", "请求报文中未包含步骤节点");
-        }
+//        if (!reqJson.containsKey("steps")) {
+//            Assert.hasKeyAndValue(reqJson, "steps", "请求报文中未包含步骤节点");
+//        }
 
         JSONArray steps = reqJson.getJSONArray("steps");
         if (steps == null || steps.size() < 1) {
-            throw new IllegalArgumentException("未包含步骤");
+            //throw new IllegalArgumentException("未包含步骤");
+            return;
         }
         JSONObject step = null;
         JSONObject subStaff = null;
@@ -145,62 +146,68 @@ public class UpdateWorkflowListener extends AbstractServiceApiPlusListener {
 
         //保存 工作流程步骤
         JSONArray steps = reqJson.getJSONArray("steps");
-        JSONObject step = null;
-        JSONObject subStaff = null;
-        WorkflowStepStaffPo workflowStepStaffPo = null;
-        List<WorkflowStepDto> tmpWorkflowStepDtos = new ArrayList<>();
-        for (int stepIndex = 0; stepIndex < steps.size(); stepIndex++) {
-            step = steps.getJSONObject(stepIndex);
-            WorkflowStepPo workflowStepPo = new WorkflowStepPo();
-            workflowStepPo.setStepId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_flowId));
-            workflowStepPo.setCommunityId(workflowPo.getCommunityId());
-            workflowStepPo.setFlowId(workflowPo.getFlowId());
-            workflowStepPo.setSeq((stepIndex + 1) + "");
-            workflowStepPo.setType(step.getString("type"));
-            workflowStepPo.setStoreId(reqJson.getString("storeId"));
-            super.insert(context, workflowStepPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_WORKFLOW_STEP);
-            WorkflowStepDto tmpWorkflowStepDto = BeanConvertUtil.covertBean(workflowStepPo, WorkflowStepDto.class);
-            //正常流程
-            List<WorkflowStepStaffDto> workflowStepStaffDtos = new ArrayList<>();
-            workflowStepStaffPo = new WorkflowStepStaffPo();
-            workflowStepStaffPo.setWssId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_wssId));
-            workflowStepStaffPo.setCommunityId(workflowPo.getCommunityId());
-            workflowStepStaffPo.setStaffId(step.getString("staffId"));
-            workflowStepStaffPo.setStaffName(step.getString("staffName"));
-            workflowStepStaffPo.setStepId(workflowStepPo.getStepId());
-            workflowStepStaffPo.setFlowType(reqJson.getString("flowType"));
-            workflowStepStaffPo.setStaffRole(StringUtil.isEmpty(step.getString("staffRole")) ? "1001" : step.getString("staffRole"));
-            super.insert(context, workflowStepStaffPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_WORKFLOW_STEP_STAFF);
-            workflowStepStaffDtos.add(BeanConvertUtil.covertBean(workflowStepStaffPo, WorkflowStepStaffDto.class));
-            //会签流程
-            JSONArray subStaffs = step.getJSONArray("subStaff");
-            if (subStaffs != null && subStaffs.size() > 0) {
-                for (int subStaffIndex = 0; subStaffIndex < subStaffs.size(); subStaffIndex++) {
-                    subStaff = subStaffs.getJSONObject(subStaffIndex);
-                    workflowStepStaffPo = new WorkflowStepStaffPo();
-                    workflowStepStaffPo.setWssId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_wssId));
-                    workflowStepStaffPo.setCommunityId(workflowPo.getCommunityId());
-                    workflowStepStaffPo.setStaffId(subStaff.getString("staffId"));
-                    workflowStepStaffPo.setStaffName(subStaff.getString("staffName"));
-                    workflowStepStaffPo.setStepId(workflowStepPo.getStepId());
-                    workflowStepStaffPo.setStaffRole(StringUtil.isEmpty(subStaff.getString("staffRole")) ? "1001" : subStaff.getString("staffRole"));
-
-                    super.insert(context, workflowStepStaffPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_WORKFLOW_STEP_STAFF);
-                    workflowStepStaffDtos.add(BeanConvertUtil.covertBean(workflowStepStaffPo, WorkflowStepStaffDto.class));
+        String processDefinitionKey = "";
+        if(steps != null && steps.size() > 0) { // 有步骤
+            JSONObject step = null;
+            JSONObject subStaff = null;
+            WorkflowStepStaffPo workflowStepStaffPo = null;
+            List<WorkflowStepDto> tmpWorkflowStepDtos = new ArrayList<>();
+            for (int stepIndex = 0; stepIndex < steps.size(); stepIndex++) {
+                step = steps.getJSONObject(stepIndex);
+                WorkflowStepPo workflowStepPo = new WorkflowStepPo();
+                workflowStepPo.setStepId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_flowId));
+                workflowStepPo.setCommunityId(workflowPo.getCommunityId());
+                workflowStepPo.setFlowId(workflowPo.getFlowId());
+                workflowStepPo.setSeq((stepIndex + 1) + "");
+                workflowStepPo.setType(step.getString("type"));
+                workflowStepPo.setStoreId(reqJson.getString("storeId"));
+                super.insert(context, workflowStepPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_WORKFLOW_STEP);
+                WorkflowStepDto tmpWorkflowStepDto = BeanConvertUtil.covertBean(workflowStepPo, WorkflowStepDto.class);
+                //正常流程
+                List<WorkflowStepStaffDto> workflowStepStaffDtos = new ArrayList<>();
+                workflowStepStaffPo = new WorkflowStepStaffPo();
+                workflowStepStaffPo.setWssId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_wssId));
+                workflowStepStaffPo.setCommunityId(workflowPo.getCommunityId());
+                workflowStepStaffPo.setStaffId(step.getString("staffId"));
+                workflowStepStaffPo.setStaffName(step.getString("staffName"));
+                workflowStepStaffPo.setStepId(workflowStepPo.getStepId());
+                workflowStepStaffPo.setFlowType(reqJson.getString("flowType"));
+                workflowStepStaffPo.setStaffRole(StringUtil.isEmpty(step.getString("staffRole")) ? "1001" : step.getString("staffRole"));
+                super.insert(context, workflowStepStaffPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_WORKFLOW_STEP_STAFF);
+                workflowStepStaffDtos.add(BeanConvertUtil.covertBean(workflowStepStaffPo, WorkflowStepStaffDto.class));
+                //会签流程
+                JSONArray subStaffs = step.getJSONArray("subStaff");
+                if (subStaffs != null && subStaffs.size() > 0) {
+                    for (int subStaffIndex = 0; subStaffIndex < subStaffs.size(); subStaffIndex++) {
+                        subStaff = subStaffs.getJSONObject(subStaffIndex);
+                        workflowStepStaffPo = new WorkflowStepStaffPo();
+                        workflowStepStaffPo.setWssId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_wssId));
+                        workflowStepStaffPo.setCommunityId(workflowPo.getCommunityId());
+                        workflowStepStaffPo.setStaffId(subStaff.getString("staffId"));
+                        workflowStepStaffPo.setStaffName(subStaff.getString("staffName"));
+                        workflowStepStaffPo.setStepId(workflowStepPo.getStepId());
+                        workflowStepStaffPo.setStaffRole(StringUtil.isEmpty(subStaff.getString("staffRole")) ? "1001" : subStaff.getString("staffRole"));
+
+                        super.insert(context, workflowStepStaffPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_WORKFLOW_STEP_STAFF);
+                        workflowStepStaffDtos.add(BeanConvertUtil.covertBean(workflowStepStaffPo, WorkflowStepStaffDto.class));
+                    }
                 }
-            }
 
-            tmpWorkflowStepDto.setWorkflowStepStaffs(workflowStepStaffDtos);
+                tmpWorkflowStepDto.setWorkflowStepStaffs(workflowStepStaffDtos);
 
-            tmpWorkflowStepDtos.add(tmpWorkflowStepDto);
+                tmpWorkflowStepDtos.add(tmpWorkflowStepDto);
+            }
+
+            WorkflowDto workflowDto = BeanConvertUtil.covertBean(workflowPo, WorkflowDto.class);
+            workflowDto.setWorkflowSteps(tmpWorkflowStepDtos);
+            WorkflowDto tmpWorkflowDto = workflowInnerServiceSMOImpl.addFlowDeployment(workflowDto);
+            processDefinitionKey = tmpWorkflowDto.getProcessDefinitionKey();
+        }else{
+            processDefinitionKey = "-1";
         }
         //提交
         //commit(context);
-
-        WorkflowDto workflowDto = BeanConvertUtil.covertBean(workflowPo, WorkflowDto.class);
-        workflowDto.setWorkflowSteps(tmpWorkflowStepDtos);
-        WorkflowDto tmpWorkflowDto = workflowInnerServiceSMOImpl.addFlowDeployment(workflowDto);
-        workflowPo.setProcessDefinitionKey(tmpWorkflowDto.getProcessDefinitionKey());
+        workflowPo.setProcessDefinitionKey(processDefinitionKey);
         super.update(context, workflowPo, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_WORKFLOW);
 
 

+ 5 - 6
service-common/src/main/java/com/java110/common/cmd/workflow/UpdateWorkflowCmd.java

@@ -21,16 +21,15 @@ import com.java110.core.annotation.Java110Transactional;
 import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.AbstractServiceCmdListener;
 import com.java110.core.event.cmd.CmdEvent;
-import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.core.log.LoggerFactory;
 import com.java110.intf.common.IWorkflowV1InnerServiceSMO;
 import com.java110.po.workflow.WorkflowPo;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.vo.ResultVo;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.slf4j.Logger;
-import com.java110.core.log.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 
 
 /**
@@ -46,7 +45,7 @@ import com.java110.core.log.LoggerFactory;
 @Java110Cmd(serviceCode = "workflow.updateWorkflow")
 public class UpdateWorkflowCmd extends AbstractServiceCmdListener {
 
-  private static Logger logger = LoggerFactory.getLogger(UpdateWorkflowCmd.class);
+    private static Logger logger = LoggerFactory.getLogger(UpdateWorkflowCmd.class);
 
 
     @Autowired
@@ -55,7 +54,7 @@ public class UpdateWorkflowCmd extends AbstractServiceCmdListener {
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         Assert.hasKeyAndValue(reqJson, "flowId", "flowId不能为空");
-Assert.hasKeyAndValue(reqJson, "communityId", "communityId不能为空");
+        Assert.hasKeyAndValue(reqJson, "communityId", "communityId不能为空");
 
     }
 
@@ -63,7 +62,7 @@ Assert.hasKeyAndValue(reqJson, "communityId", "communityId不能为空");
     @Java110Transactional
     public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
 
-       WorkflowPo workflowPo = BeanConvertUtil.covertBean(reqJson, WorkflowPo.class);
+        WorkflowPo workflowPo = BeanConvertUtil.covertBean(reqJson, WorkflowPo.class);
         int flag = workflowV1InnerServiceSMOImpl.updateWorkflow(workflowPo);
 
         if (flag < 1) {