Browse Source

aps-排单功能自动增加可选设备

sucheng 3 months ago
parent
commit
a1c4da539f

+ 38 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProcessOperationProcessEquServiceImpl.java

@@ -2448,11 +2448,18 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
     public R scheduling(ChangingScheduleVo req) {
 //        ApsUtils.checkScheduling(null);
 
+        SysUserVo currentUser = CXCommonUtils.getCurrentUser();
         Date processingTime = req.getProcessingTime();
         if (processingTime.before(DateUtil.date())) {
             return R.error("开始时间必须大于当前时间");
         }
 
+        String rollerType = "";
+        if (req.getRollerId() != null) {
+            ApsRollerTypeDo rollerTypeDo = apsRollerTypeService.getById(req.getRollerId());
+            rollerType = rollerTypeDo.getRollertype();
+        }
+
         //作业明细集合
         List<String> processEquIdList = req.getProcessEquIdList();
         List<ApsProcessOperationProcessEquDo> apsProcessOperationProcessEquDos = apsProcessOperationProcessEquService.listByIds(processEquIdList).stream().collect(Collectors.toList());
@@ -2475,6 +2482,21 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
                 needUpdate.setId(apsProcessOperationProcessEquDo.getId());
                 needUpdate.setProcessdeviceid(req.getEquId());
                 needUpdate.setProcessdevice(req.getEquName());
+                //作业详情
+                ApsProcessOperationDo apsProcessOperationDo = apsProcessOperationService.getById(apsProcessOperationProcessEquDo.getProcessid());
+                //可选设备
+                String canchoosedeviceid = apsProcessOperationDo.getCanchoosedeviceid();
+                LinkedList<String> canChooseDeviceIdList = new LinkedList<>(Arrays.asList(canchoosedeviceid.split(",")));
+                ApsProcessOperationEquDo needInsert = new ApsProcessOperationEquDo();
+                if (!canChooseDeviceIdList.contains(req.getEquId())) {
+                    needInsert.setId(SecurityUtil.getUUID());
+                    needInsert.setTenantid(CXCommonUtils.getCurrentUserFactoryId(currentUser));
+                    needInsert.setBlankid(apsProcessOperationDo.getBlankid());
+                    needInsert.setMainid(apsProcessOperationDo.getId());
+                    needInsert.setResourcetype("设备");
+                    needInsert.setResourceid(req.getEquId());
+                }
+
                 if (ObjectUtil.isNotEmpty(req.getIsZhaji()) && ObjectUtil.isNotEmpty(req.getOldDeviceId())) {
                     //如果是轧机工序类别,并且(加工设备换了,或者加工设备没换并且辊类型不为空),则辊类型=所选辊类型
                     if (req.getIsZhaji()) {
@@ -2482,10 +2504,14 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
                         if (req.getOldDeviceId().equals(req.getEquId())) {
                             if (ObjectUtil.isNotEmpty(req.getRollerId())) {
                                 needUpdate.setRollerid(req.getRollerId());
+                                needInsert.setRollerid(req.getRollerId());
+                                needInsert.setRollertype(rollerType);
                             }
                         } else {
                             if (ObjectUtil.isNotEmpty(req.getRollerId())) {
                                 needUpdate.setRollerid(req.getRollerId());
+                                needInsert.setRollerid(req.getRollerId());
+                                needInsert.setRollertype(rollerType);
                             } else {
                                 throw new CustomException("换设备后轧机工序必须选择辊类型");
                             }
@@ -2500,6 +2526,18 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
                 nextStartDate = needUpdate.getPlanenddate();
 //            needUpdateList.add(needUpdate);
                 apsProcessOperationProcessEquService.updateById(needUpdate);
+                if (StringUtils.isNotBlank(needInsert.getId())) {
+                    apsProcessOperationEquService.save(needInsert);
+                    ApsProcessOperationDo needUpdateProcess = new ApsProcessOperationDo();
+                    needUpdateProcess.setId(apsProcessOperationDo.getId());
+                    canChooseDeviceIdList.add(req.getEquId());
+                    needUpdateProcess.setCanchoosedeviceid(String.join(",", canChooseDeviceIdList));
+                    String chooseEqu = apsProcessOperationDo.getChooseequ();
+                    LinkedList<String> chooseEquList = new LinkedList<>(Arrays.asList(chooseEqu.split(",")));
+                    chooseEquList.add(req.getEquName());
+                    needUpdateProcess.setChooseequ(String.join(",", chooseEquList));
+                    apsProcessOperationService.updateById(needUpdateProcess);
+                }
                 apsProcessOperationProcessEquDo.setProcessdeviceid(needUpdate.getProcessdeviceid());
                 apsProcessOperationProcessEquDo.setProcessdevice(needUpdate.getProcessdevice());
                 apsProcessOperationProcessEquDo.setRollerid(needUpdate.getRollerid());