Przeglądaj źródła

添加查询工作流程

java110 6 lat temu
rodzic
commit
c55f776f2a

+ 44 - 10
service-api/src/main/java/com/java110/api/listener/workflow/ListWorkflowStepsListener.java

@@ -5,9 +5,14 @@ import com.java110.api.listener.AbstractServiceApiListener;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.event.service.api.ServiceDataFlowEvent;
+import com.java110.core.smo.common.IWorkflowInnerServiceSMO;
 import com.java110.core.smo.common.IWorkflowStepInnerServiceSMO;
+import com.java110.core.smo.common.IWorkflowStepStaffInnerServiceSMO;
+import com.java110.dto.workflow.WorkflowDto;
 import com.java110.dto.workflow.WorkflowStepDto;
+import com.java110.dto.workflow.WorkflowStepStaffDto;
 import com.java110.utils.constant.ServiceCodeWorkflowStepConstant;
+import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -15,7 +20,6 @@ import org.springframework.http.HttpMethod;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 
-import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -27,6 +31,12 @@ public class ListWorkflowStepsListener extends AbstractServiceApiListener {
     @Autowired
     private IWorkflowStepInnerServiceSMO workflowStepInnerServiceSMOImpl;
 
+    @Autowired
+    private IWorkflowInnerServiceSMO workflowInnerServiceSMOImpl;
+
+    @Autowired
+    private IWorkflowStepStaffInnerServiceSMO workflowStepStaffInnerServiceSMOImpl;
+
     @Override
     public String getServiceCode() {
         return ServiceCodeWorkflowStepConstant.LIST_WORKFLOWSTEPS;
@@ -54,25 +64,49 @@ public class ListWorkflowStepsListener extends AbstractServiceApiListener {
 
     @Override
     protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-        super.validatePageInfo(reqJson);
+
+        Assert.hasKeyAndValue(reqJson, "flowId", "未包含流程ID");
+        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区ID");
+
+
     }
 
+    /**
+     * {"flowId":"752020061762800001","flowName":"投诉建议流程","describle":"xxxx",
+     * * "steps":[{"seq":0,"staffId":"302020060983230118","staffName":"孙印玉测试","type":"1",
+     * * "subStaff":[{"id":"d1aa0277-ff10-480e-855c-c90a1789909b","staffId":"302020061069500135","staffName":"天宫妹"}]},
+     * * {"seq":1,"staffId":"302020042299500115","staffName":"阿光","type":"2","subStaff":[]}]}"
+     *
+     * @param event   事件对象
+     * @param context 数据上文对象
+     * @param reqJson 请求报文
+     */
     @Override
     protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
 
-        WorkflowStepDto workflowStepDto = BeanConvertUtil.covertBean(reqJson, WorkflowStepDto.class);
+        WorkflowDto workflowDto = BeanConvertUtil.covertBean(reqJson, WorkflowDto.class);
+        List<WorkflowDto> workflowDtos = workflowInnerServiceSMOImpl.queryWorkflows(workflowDto);
+
+        Assert.listOnlyOne(workflowDtos,"查询条件错误");
 
-        int count = workflowStepInnerServiceSMOImpl.queryWorkflowStepsCount(workflowStepDto);
+        workflowDto = workflowDtos.get(0);
 
-        List<WorkflowStepDto> workflowStepDtos = null;
+        WorkflowStepDto workflowStepDto = new WorkflowStepDto();
+        workflowStepDto.setFlowId(workflowDto.getFlowId());
 
-        if (count > 0) {
-            workflowStepDtos = workflowStepInnerServiceSMOImpl.queryWorkflowSteps(workflowStepDto);
-        } else {
-            workflowStepDtos = new ArrayList<>();
+        List<WorkflowStepDto> workflowStepDtos = workflowStepInnerServiceSMOImpl.queryWorkflowSteps(workflowStepDto);
+
+        for(WorkflowStepDto tmpWorkflowStepDto : workflowStepDtos){
+            WorkflowStepStaffDto workflowStepStaffDto = new WorkflowStepStaffDto();
+            workflowStepStaffDto.setCommunityId(workflowDto.getCommunityId());
+            workflowStepStaffDto.setStepId(tmpWorkflowStepDto.getStepId());
+            List<WorkflowStepStaffDto> workflowStepStaffDtos = workflowStepStaffInnerServiceSMOImpl.queryWorkflowStepStaffs(workflowStepStaffDto);
+            tmpWorkflowStepDto.setWorkflowStepStaffs(workflowStepStaffDtos);
         }
 
-        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reqJson.getInteger("row")), count, workflowStepDtos);
+        workflowDto.setWorkflowSteps(workflowStepDtos);
+
+        ResultVo resultVo = new ResultVo(ResultVo.CODE_OK, ResultVo.MSG_OK, workflowDto);
 
         ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
 

+ 18 - 11
service-api/src/main/java/com/java110/api/listener/workflow/UpdateWorkflowListener.java

@@ -26,6 +26,7 @@ import com.java110.utils.util.BeanConvertUtil;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -163,20 +164,22 @@ public class UpdateWorkflowListener extends AbstractServiceApiPlusListener {
                 workflowStepStaffPo.setStepId(workflowStepPo.getStepId());
                 super.insert(context, workflowStepStaffPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_WORKFLOW_STEP_STAFF);
                 workflowStepStaffDtos.add(BeanConvertUtil.covertBean(workflowStepStaffPo, WorkflowStepStaffDto.class));
-                continue;
+                //continue;
             }
 
             JSONArray subStaffs = step.getJSONArray("subStaff");
-            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());
-                super.insert(context, workflowStepStaffPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_WORKFLOW_STEP_STAFF);
-                workflowStepStaffDtos.add(BeanConvertUtil.covertBean(workflowStepStaffPo, WorkflowStepStaffDto.class));
+            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());
+                    super.insert(context, workflowStepStaffPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_WORKFLOW_STEP_STAFF);
+                    workflowStepStaffDtos.add(BeanConvertUtil.covertBean(workflowStepStaffPo, WorkflowStepStaffDto.class));
+                }
             }
 
             tmpWorkflowStepDto.setWorkflowStepStaffs(workflowStepStaffDtos);
@@ -186,6 +189,10 @@ public class UpdateWorkflowListener extends AbstractServiceApiPlusListener {
         //提交
         commit(context);
 
+        if (context.getResponseEntity().getStatusCode() != HttpStatus.OK) {
+            return;
+        }
+
         workflowDto.setWorkflowSteps(tmpWorkflowStepDtos);
         workflowInnerServiceSMOImpl.addFlowDeployment(workflowDto);
         context.setResponseEntity(ResultVo.createResponseEntity(ResultVo.CODE_OK, ResultVo.MSG_OK));

+ 3 - 2
service-common/src/main/java/com/java110/common/smo/impl/WorkflowInnerServiceSMOImpl.java

@@ -23,6 +23,7 @@ import org.activiti.bpmn.model.StartEvent;
 import org.activiti.bpmn.model.UserTask;
 import org.activiti.engine.ProcessEngine;
 import org.activiti.engine.ProcessEngines;
+import org.activiti.engine.RepositoryService;
 import org.activiti.engine.repository.Deployment;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -112,8 +113,8 @@ public class WorkflowInnerServiceSMOImpl extends BaseServiceSMO implements IWork
 
         ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
 
-//        RepositoryService repositoryService  = processEngine.getRepositoryService();
-//        repositoryService.deleteDeployment("1");
+        RepositoryService repositoryService  = processEngine.getRepositoryService();
+        repositoryService.deleteDeployment("1");
 
         // 1. 建立模型
         BpmnModel model = new BpmnModel();