瀏覽代碼

普通报销、差旅报销、用款增加特殊项目流向条件判断

chenjun 9 月之前
父節點
當前提交
ec5e390a56

+ 42 - 0
zjugis-business/src/main/java/com/zjugis/business/flow/commoncost/event/CommonCostEvent.java

@@ -39,6 +39,7 @@ import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicReference;
 
 import static com.zjugis.business.constants.FlowStatusConstants.*;
 import static com.zjugis.framework.common.util.collection.CollectionUtils.convertSet;
@@ -579,6 +580,47 @@ public class CommonCostEvent extends BaseController {
         }
     }
 
+
+    @PostMapping("/specialProject")
+    public String specialProject(@ParamModel Map flowInstance, @ParamModel Map flowDirectionInstance, @ParamModel Map previousActivityInstance, @ParamModel Map previousGatewayInstance, @ParamModel Map nextActivityTemplate, @ParamModel Map nextGatewayInstance) {
+        try {
+            String flowInstanceId = flowInstance.get("id").toString();
+            CommonCostDO entity = commonCostService.findByInstanceId(flowInstanceId);
+            List<CommonCostDetailDO> detailList = commonCostDetailService.getListByCommonCostId(entity.getId());
+            AtomicReference<String> flag = new AtomicReference<>("false");
+            detailList.forEach(x -> {
+                Project project = projectService.selectById(x.getProjectId());
+                if (project.getId().equals("31414c5bef38ca7eb9ce31612e84e8e8") || project.getId().equals("3ce706b5a67bb175929cda0117c11620")) {
+                    flag.set("true");
+                    return ;
+                }
+            });
+            return flag.get();
+        } catch (Exception ex) {
+            return error(ex.getMessage(), ErrorCode.DEFAULT);
+        }
+    }
+
+    @PostMapping("/not-specialProject")
+    public String notSpecialProject(@ParamModel Map flowInstance, @ParamModel Map flowDirectionInstance, @ParamModel Map previousActivityInstance, @ParamModel Map previousGatewayInstance, @ParamModel Map nextActivityTemplate, @ParamModel Map nextGatewayInstance) {
+        try {
+            String flowInstanceId = flowInstance.get("id").toString();
+            CommonCostDO entity = commonCostService.findByInstanceId(flowInstanceId);
+            List<CommonCostDetailDO> detailList = commonCostDetailService.getListByCommonCostId(entity.getId());
+            AtomicReference<String> flag = new AtomicReference<>("true");
+            detailList.forEach(x -> {
+                Project project = projectService.selectById(x.getProjectId());
+                if (project.getId().equals("31414c5bef38ca7eb9ce31612e84e8e8") || project.getId().equals("3ce706b5a67bb175929cda0117c11620")) {
+                    flag.set("false");
+                    return ;
+                }
+            });
+            return flag.get();
+        } catch (Exception ex) {
+            return error(ex.getMessage(), ErrorCode.DEFAULT);
+        }
+    }
+
     @PostMapping("/to-dept-manager")
     public String toDeptManager(String flowInstanceId) {
         try {

+ 33 - 3
zjugis-business/src/main/java/com/zjugis/business/flow/travelcost/event/TravelCostEvent.java

@@ -108,7 +108,7 @@ public class TravelCostEvent extends BaseController {
                 entity.setFlowStatus(FLOW_FINISHED);
                 entity.setFlowFinishtime(LocalDateTime.now());
                 travelCostService.updateTravelCostEntity(TravelCostConvert.INSTANCE.convert(entity));
-                projectCostService.updateTravelCost(entity.getTotalAmount(),entity.getProjectId());
+                projectCostService.updateTravelCost(entity.getTotalAmount(), entity.getProjectId());
                 projectService.calcProject(entity.getProjectId());
                 return ok("true");
             } else {
@@ -447,6 +447,36 @@ public class TravelCostEvent extends BaseController {
         }
     }
 
+    @PostMapping("/specialProject")
+    public String specialProject(@ParamModel Map flowInstance, @ParamModel Map flowDirectionInstance, @ParamModel Map previousActivityInstance, @ParamModel Map previousGatewayInstance, @ParamModel Map nextActivityTemplate, @ParamModel Map nextGatewayInstance) {
+        try {
+            String flowInstanceId = flowInstance.get("id").toString();
+            TravelCostDO entity = travelCostService.findByInstanceId(flowInstanceId);
+            Project project = projectService.selectById(entity.getProjectId());
+            if (project.getId().equals("31414c5bef38ca7eb9ce31612e84e8e8") || project.getId().equals("3ce706b5a67bb175929cda0117c11620")) {
+                return "true";
+            }
+            return "false";
+        } catch (Exception ex) {
+            return error(ex.getMessage(), ErrorCode.DEFAULT);
+        }
+    }
+
+    @PostMapping("/not-specialProject")
+    public String notSpecialProject(@ParamModel Map flowInstance, @ParamModel Map flowDirectionInstance, @ParamModel Map previousActivityInstance, @ParamModel Map previousGatewayInstance, @ParamModel Map nextActivityTemplate, @ParamModel Map nextGatewayInstance) {
+        try {
+            String flowInstanceId = flowInstance.get("id").toString();
+            TravelCostDO entity = travelCostService.findByInstanceId(flowInstanceId);
+            Project project = projectService.selectById(entity.getProjectId());
+            if (project.getId().equals("31414c5bef38ca7eb9ce31612e84e8e8") || project.getId().equals("3ce706b5a67bb175929cda0117c11620")) {
+                return "false";
+            }
+            return "true";
+        } catch (Exception ex) {
+            return error(ex.getMessage(), ErrorCode.DEFAULT);
+        }
+    }
+
     @PostMapping("/to-project-dept-manager")
     public String toProjectDeptManager(String flowInstanceId) {
         try {
@@ -454,10 +484,10 @@ public class TravelCostEvent extends BaseController {
                 TravelCostDO entity = travelCostService.findByInstanceId(flowInstanceId);
                 Project project = projectService.selectById(entity.getProjectId());
                 List<Map<String, String>> userMaps = new ArrayList<>();
-                if(project.getId().equals("31414c5bef38ca7eb9ce31612e84e8e8") || project.getId().equals("3ce706b5a67bb175929cda0117c11620") ){
+                if (project.getId().equals("31414c5bef38ca7eb9ce31612e84e8e8") || project.getId().equals("3ce706b5a67bb175929cda0117c11620")) {
                     //卓一瑞
                     HashMap<String, String> map = new HashMap<>();
-                    map.put("id","d05dc4f4-ead4-4925-9aaa-0c4d3bc470b6");
+                    map.put("id", "d05dc4f4-ead4-4925-9aaa-0c4d3bc470b6");
                     userMaps.add(map);
                     return ok(userMaps);
                 }

+ 31 - 0
zjugis-business/src/main/java/com/zjugis/business/flow/usemoney/event/UseMoneyEvent.java

@@ -15,6 +15,7 @@ import com.zjugis.business.flow.commoncost.entity.CommonCostDetailDO;
 import com.zjugis.business.flow.contractSub.service.FlowContractSubService;
 import com.zjugis.business.flow.outsourcePurchase.dao.OutsourcePurchaseDao;
 import com.zjugis.business.flow.outsourcePurchase.entity.OutsourcePurchaseDO;
+import com.zjugis.business.flow.travelcost.entity.TravelCostDO;
 import com.zjugis.business.flow.usemoney.entity.UseMoneyDO;
 import com.zjugis.business.flow.usemoney.entity.UseMoneyDetailDO;
 import com.zjugis.business.flow.usemoney.service.UseMoneyDetailService;
@@ -935,4 +936,34 @@ public class UseMoneyEvent extends BaseController {
             throw new BusinessException("执行事件出错,请联系管理员!");
         }
     }
+
+    @PostMapping("/specialProject")
+    public String specialProject(@ParamModel Map flowInstance, @ParamModel Map flowDirectionInstance, @ParamModel Map previousActivityInstance, @ParamModel Map previousGatewayInstance, @ParamModel Map nextActivityTemplate, @ParamModel Map nextGatewayInstance) {
+        try {
+            String flowInstanceId = flowInstance.get("id").toString();
+            UseMoneyDO entity = useMoneyService.findByInstanceId(flowInstanceId);
+            Project project = projectService.selectById(entity.getProjectId());
+            if (project.getId().equals("31414c5bef38ca7eb9ce31612e84e8e8") || project.getId().equals("3ce706b5a67bb175929cda0117c11620")) {
+                return "true";
+            }
+            return "false";
+        } catch (Exception ex) {
+            return error(ex.getMessage(), ErrorCode.DEFAULT);
+        }
+    }
+
+    @PostMapping("/not-specialProject")
+    public String notSpecialProject(@ParamModel Map flowInstance, @ParamModel Map flowDirectionInstance, @ParamModel Map previousActivityInstance, @ParamModel Map previousGatewayInstance, @ParamModel Map nextActivityTemplate, @ParamModel Map nextGatewayInstance) {
+        try {
+            String flowInstanceId = flowInstance.get("id").toString();
+            UseMoneyDO entity = useMoneyService.findByInstanceId(flowInstanceId);
+            Project project = projectService.selectById(entity.getProjectId());
+            if (project.getId().equals("31414c5bef38ca7eb9ce31612e84e8e8") || project.getId().equals("3ce706b5a67bb175929cda0117c11620")) {
+                return "false";
+            }
+            return "true";
+        } catch (Exception ex) {
+            return error(ex.getMessage(), ErrorCode.DEFAULT);
+        }
+    }
 }