Explorar o código

1、新增依申请公开处理单设置流程、归档、作废等事件

fuwb hai 4 meses
pai
achega
bc7d348200

+ 0 - 1
zjugis-module-business/zjugis-module-business-biz/src/main/java/com/zjugis/module/business/flow/applicationinfo/controller/ApplicationInfoController.java

@@ -4,7 +4,6 @@ import com.zjugis.framework.workflow.model.BaseController;
 import com.zjugis.framework.workflow.workflow.WorkFlow;
 import com.zjugis.module.business.flow.applicationinfo.service.IApplicationInfoService;
 import com.zjugis.module.business.flow.applicationinfo.vo.ApplicationInfoVO;
-import com.zjugis.module.business.flow.procurement.vo.ProcurementVO;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;

+ 164 - 0
zjugis-module-business/zjugis-module-business-biz/src/main/java/com/zjugis/module/business/flow/applicationinfo/event/ApplicationInfoEvent.java

@@ -1,9 +1,32 @@
 package com.zjugis.module.business.flow.applicationinfo.event;
 
+import cn.hutool.core.bean.BeanUtil;
+import com.zjugis.framework.common.util.date.LocalDateTimeUtils;
+import com.zjugis.framework.workflow.exception.BusinessException;
 import com.zjugis.framework.workflow.model.BaseController;
+import com.zjugis.framework.workflow.rpc.remote.WorkflowClient;
+import com.zjugis.framework.workflow.spring.resovler.ParamModel;
+import com.zjugis.module.business.converter.procurement.ProcurementConvert;
+import com.zjugis.module.business.flow.applicationinfo.entity.ApplicationInfo;
+import com.zjugis.module.business.flow.applicationinfo.service.IApplicationInfoService;
+import com.zjugis.module.business.flow.applicationinfo.vo.ApplicationInfoVO;
+import com.zjugis.module.business.flow.procurement.entity.ProcurementApplication;
+import com.zjugis.module.business.flow.procurement.event.ProcurementApplicationEvent;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.Arrays;
+import java.util.Map;
+import java.util.Objects;
+
+import static com.zjugis.module.business.constants.FlowStatusConstants.*;
+
 /**
  * 依申请公开处理单 事件 接口层
  *
@@ -13,4 +36,145 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 @RequestMapping("/application-info")
 public class ApplicationInfoEvent extends BaseController {
+    public static final Logger log = LoggerFactory.getLogger(ApplicationInfoEvent.class);
+    @Resource
+    private IApplicationInfoService infoService;
+    @Resource
+    private WorkflowClient workflowClient;
+
+    /**
+     * 设置流程描述
+     *
+     * @param flowInstance     流程实例
+     * @param activityInstance 活动实例
+     * @return true/false
+     */
+    @PostMapping("/setFlowDesc")
+    public String setFlowDesc(@ParamModel Map flowInstance, @ParamModel Map activityInstance) {
+        try {
+            if (!Objects.isNull(activityInstance) && activityInstance.containsKey("flowInstanceId")) {
+                String flowInstanceId = activityInstance.get("flowInstanceId").toString();
+                ApplicationInfo entity = infoService.findByInstanceId(flowInstanceId);
+                String applyTime = LocalDateTimeUtils.format(entity.getCreateTime(), null);
+                String flowDesc = StringUtils.join(Arrays.asList(entity.getInputPerson(), applyTime, entity.getInputTime()), "/");
+                entity.setFlowStatus(FLOW_PROCESS);
+                infoService.updateApplicationInfo(BeanUtil.copyProperties(entity, ApplicationInfoVO.class));
+                workflowClient.saveFlowDescribe(flowInstanceId, flowDesc);
+                return ok("true");
+            } else {
+                throw new BusinessException("执行事件出错,请联系管理员!");
+            }
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            throw new BusinessException("执行事件出错,请联系管理员!");
+        }
+    }
+
+    /**
+     * 流程归档事件
+     *
+     * @param flowInstance                  流程实例
+     * @param triggerFinishActivityInstance 触发归档的结束活动实例
+     * @return
+     */
+    @PostMapping("/flowArchingEvent")
+    public String flowArchingEvent(@ParamModel Map flowInstance, @ParamModel Map triggerFinishActivityInstance) {
+        try {
+            if (!Objects.isNull(flowInstance) && flowInstance.containsKey("id")) {
+                String flowInstanceId = flowInstance.get("id").toString();
+                ApplicationInfo entity = infoService.findByInstanceId(flowInstanceId);
+                entity.setFlowStatus(FLOW_FINISHED);
+                entity.setFlowFinishtime(LocalDateTime.now());
+                infoService.updateApplicationInfo(BeanUtil.copyProperties(entity, ApplicationInfoVO.class));
+                return ok("true");
+            } else {
+                throw new BusinessException("执行事件出错,请联系管理员!");
+            }
+        } catch (Exception ex) {
+            log.error(ex.getMessage(), ex);
+            throw new BusinessException("执行事件出错,请联系管理员!");
+        }
+    }
+
+    /**
+     * 作废事件
+     *
+     * @param flowInstance     流程实例
+     * @param activityInstance 申请作废所在活动实例
+     * @param nullyApplyUserId 作废申请人ID
+     * @return
+     */
+    @PostMapping("/nullyEvent")
+    public String nullyEvent(@ParamModel Map flowInstance, @ParamModel Map activityInstance, String nullyApplyUserId) {
+        try {
+            if (!Objects.isNull(flowInstance) && flowInstance.containsKey("id")) {
+                String flowInstanceId = flowInstance.get("id").toString();
+                ApplicationInfo entity = infoService.findByInstanceId(flowInstanceId);
+                entity.setFlowStatus(FLOW_NULLY);
+                entity.setIsvalid(0);
+                infoService.updateApplicationInfo(BeanUtil.copyProperties(entity, ApplicationInfoVO.class));
+                return ok("true");
+            } else {
+                throw new BusinessException("执行事件出错,请联系管理员!");
+            }
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            throw new BusinessException("执行事件出错,请联系管理员!");
+        }
+    }
+
+    /**
+     * 作废恢复事件
+     *
+     * @param flowInstance      流程实例
+     * @param activityInstance  申请作废所在活动实例
+     * @param nullyApplyUserId  作废申请人ID
+     * @param nullyRecoverserId 作废恢复人ID
+     * @return
+     */
+    @PostMapping("/nullyRecoverEvent")
+    public String nullyRecoverEvent(@ParamModel Map flowInstance, @ParamModel Map activityInstance, String nullyApplyUserId, String nullyRecoverserId) {
+        try {
+            if (!Objects.isNull(flowInstance) && flowInstance.containsKey("id")) {
+                String flowInstanceId = flowInstance.get("id").toString();
+                ApplicationInfo entity = infoService.findByInstanceId(flowInstanceId);
+                entity.setFlowStatus(FLOW_PROCESS);
+                entity.setIsvalid(1);
+                infoService.updateApplicationInfo(BeanUtil.copyProperties(entity, ApplicationInfoVO.class));
+                return ok("true");
+            } else {
+                throw new BusinessException("执行事件出错,请联系管理员!");
+            }
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            throw new BusinessException("执行事件出错,请联系管理员!");
+        }
+    }
+
+    /**
+     * 彻底作废事件
+     *
+     * @param flowInstance        流程实例
+     * @param activityInstance    申请作废所在活动实例
+     * @param nullyApplyUserId    作废申请人ID
+     * @param nullyCompleteUserId 彻底作废人ID
+     * @return
+     */
+    @PostMapping("/nullyCompleteEvent")
+    public String nullyCompleteEvent(@ParamModel Map flowInstance, @ParamModel Map activityInstance, String nullyApplyUserId, String nullyCompleteUserId) {
+        try {
+            if (!Objects.isNull(flowInstance) && flowInstance.containsKey("id")) {
+                String flowInstanceId = flowInstance.get("id").toString();
+                ApplicationInfo entity = infoService.findByInstanceId(flowInstanceId);
+                infoService.deleteApplicationInfo(entity.getId());
+                return ok("true");
+            } else {
+                throw new BusinessException("执行事件出错,请联系管理员!");
+            }
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            throw new BusinessException("执行事件出错,请联系管理员!");
+        }
+    }
+
 }

+ 1 - 1
zjugis-module-business/zjugis-module-business-biz/src/main/resources/templates/ApplicationInfo/index.ftl

@@ -1,4 +1,4 @@
-<@w.workFlow javascripts=['/ProcurementApplication/js/index.js','/js/moment.js','/flow/js/formCommon.js','/OwCommon/OwCommon.js']
+<@w.workFlow javascripts=['/ApplicationInfo/js/index.js','/js/moment.js','/flow/js/formCommon.js','/OwCommon/OwCommon.js']
 styles=[ '/flow/css/formCommon.css','/OwCommon/OwCommon.css' ]>
     <div class="z-position form-boss ow-tabs" name="createReqVO">
         <div class="z-form-row" style="display: none;">

+ 1 - 1
zjugis-module-business/zjugis-module-business-biz/src/main/resources/templates/ApplicationInfo/js/index.js

@@ -29,7 +29,7 @@
         console.log(JSON.stringify(postData.createReqVO))
         z.ui.ajax({
             type: "post",
-            url: "/procurementApplication/update",
+            url: "/applicationInfo/update",
             data: JSON.stringify(postData.createReqVO),
 
             contentType: "application/json",