Ver Fonte

aps-开工、报工、取消开工合并加工工序处理

sucheng há 5 meses atrás
pai
commit
4a00223e72

+ 9 - 4
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsReportRecordsServiceImpl.java

@@ -411,11 +411,16 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
                 List<ApsProcessOperationProcessEquDo> sameDeviceList = apsProcessOperationProcessEquDao.selectHaveOtherDevice(processdeviceid, apsProcessOperationProcessEquDoId);
                 if (!sameDeviceList.isEmpty()) {
                     //判断被占用的是否都是合并加工的
-                    List<String> processIdList = sameDeviceList.stream().map(ApsProcessOperationProcessEquDo::getProcessid).collect(Collectors.toList());
-                    List<ApsProcessOperationDo> apsProcessOperationDos = new ArrayList<>(apsProcessOperationService.listByIds(processIdList));
-                    long count = apsProcessOperationDos.stream().filter(item -> !item.getProcessway().equals("合并加工")).count();
+                    // 如果作业的加工方式是合并加工,
+                    // 并且工序作业明细加工设备已有其他作业明细正在加工(待报工记录ID不为空),
+                    // 并且正在加工的作业明细同炉次(原计划开工时间相同)有其他作业明细已经报工,
+                    // 则错误提示:正在加工的炉次还未报工完,不能开工新的炉次
+                    long count = sameDeviceList.stream().filter(item -> ObjectUtil.isNotEmpty(item.getOldplanstartdate()) && item.getOldplanstartdate().equals(apsProcessOperationProcessEquDo.getPlanstartdate())).count();
+//                    List<String> processIdList = sameDeviceList.stream().map(ApsProcessOperationProcessEquDo::getProcessid).collect(Collectors.toList());
+//                    List<ApsProcessOperationDo> apsProcessOperationDos = new ArrayList<>(apsProcessOperationService.listByIds(processIdList));
+//                    long count = apsProcessOperationDos.stream().filter(item -> !item.getProcessway().equals("合并加工")).count();
                     if (count > 0) {
-                        log.error("存在其他已占用设备:{},不为合并加工工序的作业:{}", processdeviceid, processIdList);
+                        log.error("存在其他已占用设备:{},不为合并加工工序(原计划开工时间相同)的作业,计划开工时间:{}", processdeviceid, apsProcessOperationProcessEquDo.getPlanstartdate());
                         return R.error("该设备当前加工中的作业还未报工,不能开工新的作业");
                     }
                 }

+ 1 - 1
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsServiceImpl.java

@@ -1060,7 +1060,7 @@ public class ApsServiceImpl implements ApsService {
 
             String[] sbIds = canchoosedeviceid.split(",");
             for (String equIds : sbIds) {
-                if (equIds.equals("0001be252874536843730b100017")) {
+                if (equIds.equals("0001be252874536843730b100190")) {
                     System.out.println(equIds);
                 }
                 String eqDateKey = apsPlanStartDateStr + " *** " + equIds;

+ 1 - 0
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsBlankOrderDao.xml

@@ -536,6 +536,7 @@
         if(apope.PROCESSDEVICEID!=preapope.PROCESSDEVICEID,#{workshopin},0))) MINUTE -- 机台流转时间
         ) &lt;= #{chongpaiEndDate}) -- 调度结束时间之前可以开工
         )
+        AND apope.BLANKID = 'cc1ba969d2c24f51996dcf723a0155f1'
     </select>
     <select id="selectAllNeedSortLenZha"
             resultType="com.rongwei.bsentity.domain.ApsProcessOperationProcessEquDo">