Selaa lähdekoodia

aps-订单评审合并表单保存和流程事务

sucheng 7 kuukautta sitten
vanhempi
commit
cb3de91986

+ 37 - 35
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProductionOrderServiceImpl.java

@@ -528,24 +528,26 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
                 }
             }
 
-            String processinstid = nowApsProductionOrderDo.getProcessinstid();
-            RunTaskDo runTaskDo = runTaskService.getOne(new LambdaQueryWrapper<RunTaskDo>().eq(BaseDo::getDeleted, "0")
-                    .eq(RunTaskDo::getProcessinstid, processinstid)
-                    .in(RunTaskDo::getTaskstatus, "10", "20")
-                    .orderByDesc(BaseDo::getCreatedate), false);
-            RunTaskVo runTaskVo = new RunTaskVo();
-            BeanUtils.copyProperties(runTaskDo, runTaskVo);
-            runTaskVo.setProcessInstId(processinstid);
-            runTaskVo.setBusinesstableid(apsProductionOrderDo.getId());
-            runTaskVo.setProcesstitle("订单评审");
-            runTaskVo.setProcessdefid("order_review");
-            runTaskVo.setAuditoperation("10");
-            runTaskVo.setTaskstatusname("待处理");
-            try {
-                workFlowService.runTask(runTaskVo, true);
-            } catch (Exception e) {
-                log.error("流程更新失败");
-                throw new RuntimeException("执行流程失败,请刷新页面后重试");
+            if (req.getIsNeedRunTask()) {
+                String processinstid = nowApsProductionOrderDo.getProcessinstid();
+                RunTaskDo runTaskDo = runTaskService.getOne(new LambdaQueryWrapper<RunTaskDo>().eq(BaseDo::getDeleted, "0")
+                        .eq(RunTaskDo::getProcessinstid, processinstid)
+                        .in(RunTaskDo::getTaskstatus, "10", "20")
+                        .orderByDesc(BaseDo::getCreatedate), false);
+                RunTaskVo runTaskVo = new RunTaskVo();
+                BeanUtils.copyProperties(runTaskDo, runTaskVo);
+                runTaskVo.setProcessInstId(processinstid);
+                runTaskVo.setBusinesstableid(apsProductionOrderDo.getId());
+                runTaskVo.setProcesstitle("订单评审");
+                runTaskVo.setProcessdefid("order_review");
+                runTaskVo.setAuditoperation("10");
+                runTaskVo.setTaskstatusname("待处理");
+                try {
+                    workFlowService.runTask(runTaskVo, true);
+                } catch (Exception e) {
+                    log.error("流程更新失败");
+                    throw new RuntimeException("执行流程失败,请刷新页面后重试");
+                }
             }
         } finally {
             log.debug("校验-订单提交完毕,从map中清空当前订单锁,订单ID:{}", id);
@@ -1064,19 +1066,19 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
     public R generalMsInsert(OrderSaveOrUpdateVo req) {
         MasterSlaveInsertVo masterSlaveInsert = req.getMasterSlaveInsert();
         try {
-        sysGeneralCRUDService.generalMsInsert(masterSlaveInsert);
+            sysGeneralCRUDService.generalMsInsert(masterSlaveInsert);
         } catch (Exception e) {
             throw new RuntimeException("新增订单信息错误,请刷新页面后重试");
         }
         //发起流程
-        if (req.getIsStartWf()){
+        if (req.getIsStartWf()) {
             ApsProductionOrderDo oldOrder = req.getOldOrder();
             CreateProcessVo createProcessVo = new CreateProcessVo();
             createProcessVo.setProcessdefid("order_review");
             createProcessVo.setBusinesstablename("aps_production_order");
             createProcessVo.setBusinesstableid(oldOrder.getId());
             createProcessVo.setProcessname("订单评审");
-            createProcessVo.setProcesstitle(oldOrder.getOrderno()+"-订单评审-"+DateUtil.now());
+            createProcessVo.setProcesstitle(oldOrder.getOrderno() + "-订单评审-" + DateUtil.now());
             createProcessVo.setUserId(oldOrder.getId());
             createProcessVo.setNotifycontent("订单评审");
             //查询订单信息,map格式返回
@@ -1118,7 +1120,7 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
                 throw new RuntimeException("更新订单信息错误,请刷新页面后重试");
             }
             //提交流程
-            if (req.getIsSubmitWf()){
+            if (req.getIsSubmitWf()) {
                 String processinstid = nowApsProductionOrderDo.getProcessinstid();
                 RunTaskDo runTaskDo = runTaskService.getOne(new LambdaQueryWrapper<RunTaskDo>().eq(BaseDo::getDeleted, "0")
                         .eq(RunTaskDo::getProcessinstid, processinstid)
@@ -1141,27 +1143,27 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
                 }
             }
             //退回流程
-            if (req.getIsBackWf()){
-                try{
+            if (req.getIsBackWf()) {
+                try {
                     workFlowService.flowBackByType(req.getFlowBackVo());
                     return R.ok();
-                }catch (Exception e){
+                } catch (Exception e) {
                     log.error("流程退回失败");
                     throw new RuntimeException("执行退回流程失败,请刷新页面后重试");
                 }
             }
             //发起流程
-            if (req.getIsStartWf()){
+            if (req.getIsStartWf()) {
                 CreateProcessVo createProcessVo = new CreateProcessVo();
                 createProcessVo.setProcessdefid("order_review");
                 createProcessVo.setBusinesstablename("aps_production_order");
                 createProcessVo.setBusinesstableid(nowApsProductionOrderDo.getId());
                 createProcessVo.setProcessname("订单评审");
-                createProcessVo.setProcesstitle(nowApsProductionOrderDo.getOrderno()+"-订单评审-"+DateUtil.now());
+                createProcessVo.setProcesstitle(nowApsProductionOrderDo.getOrderno() + "-订单评审-" + DateUtil.now());
                 createProcessVo.setUserId(currentUser.getId());
                 createProcessVo.setNotifycontent("订单评审");
                 //查询订单信息,map格式返回
-                 Map<String, Object> map = this.baseMapper.getMapById(nowApsProductionOrderDo.getId());
+                Map<String, Object> map = this.baseMapper.getMapById(nowApsProductionOrderDo.getId());
                 createProcessVo.setBusinesstableValue(map);
                 try {
                     workFlowService.createProcessInstance(createProcessVo);
@@ -1619,7 +1621,7 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
                 //如果第一个月是今年的数据,全年只取月份
                 if (list.get(0).getYearmonth().split("-")[0].equals(nowYear)) {
                     list.forEach(item -> {
-                        item.setYearmonth(item.getYearmonth().split("-")[1]+" ");
+                        item.setYearmonth(item.getYearmonth().split("-")[1] + " ");
                     });
                 }
                 //如果第一个月不是今年的,第一个月取年月,第二年第一个月取年月,其余只取月份
@@ -1636,7 +1638,7 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
                             isNowYear = true;
                             item.setYearmonth(item.getYearmonth().split("-")[0] + "." + item.getYearmonth().split("-")[1]);
                         } else {
-                            item.setYearmonth(item.getYearmonth().split("-")[1]+" ");
+                            item.setYearmonth(item.getYearmonth().split("-")[1] + " ");
                         }
                     }
                 }
@@ -1854,10 +1856,10 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
         //==================本周计划接单量==================
         //获取 每个工厂、每年、每月的平均计划量
         List<Map<String, Object>> planMapList = this.baseMapper.selectPlanMap();
-        resInsertList.forEach(item->{
+        resInsertList.forEach(item -> {
             List<Map<String, Object>> mapList = planMapList.stream().filter(item2 -> ObjectUtil.isNotEmpty(item2.getOrDefault("tenantid", "").toString()) && item2.getOrDefault("tenantid", "").toString().equals(item.getTenantid()))
                     .collect(Collectors.toList());
-            if (ObjectUtil.isNotEmpty(mapList)){
+            if (ObjectUtil.isNotEmpty(mapList)) {
                 //获取当前周的7天日期
                 // 获取当前日期
                 LocalDate currentDate = LocalDate.now();
@@ -1870,7 +1872,7 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
                 List<String> dayWeekList = new LinkedList<>();
                 for (int i = 0; i < 7; i++) {
                     LocalDate day = firstDayOfWeek.plusDays(i);
-                    dayWeekList.add(DateUtil.format(day.atStartOfDay(),"yyyy-MM-dd"));
+                    dayWeekList.add(DateUtil.format(day.atStartOfDay(), "yyyy-MM-dd"));
                 }
                 //计算本周计划
                 BigDecimal weekPlan = BigDecimal.ZERO;
@@ -1880,8 +1882,8 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
                     String month = split[1];
                     Map<String, Object> map = mapList.stream().filter(item2 -> ObjectUtil.isNotEmpty(item2.getOrDefault("year", "")) && item2.getOrDefault("year", "").equals(year))
                             .findFirst().orElse(null);
-                    if (ObjectUtil.isNotEmpty(map) && ObjectUtil.isNotEmpty(map.getOrDefault(month,""))) {
-                        weekPlan = weekPlan.add(new BigDecimal(map.getOrDefault(month,"0").toString()));
+                    if (ObjectUtil.isNotEmpty(map) && ObjectUtil.isNotEmpty(map.getOrDefault(month, ""))) {
+                        weekPlan = weekPlan.add(new BigDecimal(map.getOrDefault(month, "0").toString()));
                     }
                 }
                 //保留两位小数

+ 2 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/vo/CheckAndSaveOrUpdateOrderReq.java

@@ -41,6 +41,8 @@ public class CheckAndSaveOrUpdateOrderReq {
     //页面上订单信息
     private ApsProductionOrderDo oldOrder;
 
+    //最后是否需要走流程
+    private Boolean isNeedRunTask = false;
     //流程的审批意见
     private String comment = "";
 }