Ver código fonte

排程明细锁定

fangpy 8 meses atrás
pai
commit
e2f8228ecc

+ 1 - 1
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsBlankOrderDao.java

@@ -65,7 +65,7 @@ public interface ApsBlankOrderDao extends BaseMapper<ApsBlankOrderDo> {
             "BLANKID in (SELECT ID FROM aps_blank_order where DELETED='0' and SCHEDULINGSTATUS='10' and ID in (${hasIds}))")
     void setLockMarkNullByToAps(@Param("hasIds") String hasIds);
 
-    @Update("delete from aps_process_operation_process_equ where BLANKID in (${blankids})")
+    @Update("delete from aps_process_operation_process_equ where BLANKID in (${blankids}) and (CANCELROLL is null or CANCELROLL<PLANPROCESSRALL)")
     void deleteBlankDetail(@Param("blankids") String blankids);
 
     @Select("UPDATE aps_process_operation_process_equ set LOCKMARK='n' where DELETED='0' and BLANKID in (${hasIds}) " +

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

@@ -471,6 +471,8 @@ public class ApsServiceImpl implements ApsService {
         List<ApsBlankOrderVo> singleApsList = new ArrayList<>();
 
         List<ProductionScheduleVo> apsProductionSchedules = new ArrayList<>();
+        // 所有已取消的作业明细
+        List<ProductionProcesses> hasCancelsTotal = new ArrayList<>();
         // 多卷先排
         apsBlankOrders.forEach((bo)->{
             try{
@@ -483,6 +485,12 @@ public class ApsServiceImpl implements ApsService {
                 productionScheduleVos.add(productionScheduleVo);
                 dataMap.put(productionScheduleVo.getProductionScheduleId(),v);
 //                        int mergeThNum = mergeThNum(bo, productionScheduleVo);
+                // 去掉已取消的作业
+                List<ProductionProcesses> notCancels = productionScheduleVo.getProcesses().stream().filter(pop -> !pop.isCancel()).collect(Collectors.toList());
+                List<ProductionProcesses> hasCancels = productionScheduleVo.getProcesses().stream().filter(pop -> pop.isCancel()).collect(Collectors.toList());
+                hasCancelsTotal.addAll(hasCancels);
+                productionScheduleVo.setProcesses(notCancels);
+
                 // 排程计划设备集合
                 List<Equipment> equipmentList1 = new ArrayList<>();
                 List<ApsProcessOperationDo> operationDos1 = apsProcessOperationService.list(new LambdaQueryWrapper<ApsProcessOperationDo>()
@@ -826,6 +834,10 @@ public class ApsServiceImpl implements ApsService {
                                     .orderByAsc(ApsProcessOperationProcessEquDo::getPlanstartdate)
                             );
                         }
+                        // 过滤设备为空的明细
+                        if(processEqus != null && processEqus.size()>0){
+                            processEqus = processEqus.stream().filter(v->StringUtils.isNotBlank(v.getProcessdeviceid())).collect(Collectors.toList());
+                        }
 
                         // 查询当前设备最后一个生产任务、连续生产需要考虑使用
                         List<ApsProcessOperationProcessEquDo> lastpros = null;
@@ -846,6 +858,10 @@ public class ApsServiceImpl implements ApsService {
                                     .orderByDesc(ApsProcessOperationProcessEquDo::getPlanstartdate).last(" limit 100")
                             );
                         }
+                        // 过滤设备为空的明细
+                        if(lastpros != null && lastpros.size()>0){
+                            lastpros = lastpros.stream().filter(v->StringUtils.isNotBlank(v.getProcessdeviceid())).collect(Collectors.toList());
+                        }
 
                         BigDecimal hasLbs = null;
                         if (lastpros != null && lastpros.size() > 0) {
@@ -1186,6 +1202,10 @@ public class ApsServiceImpl implements ApsService {
                                 processes.setStartTime(processEquDos.get(i).getPlanstartdate().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
                                 processes.setEndTime(processEquDos.get(i).getPlanenddate().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
                             }
+                            // 判断是否已取消
+                            if(processEquDos.get(i).getCancelroll() != null && processEquDos.get(i).getCancelroll()>=processEquDos.get(i).getPlanprocessrall()){
+                                processes.setCancel(true);
+                            }
                         }
 
                         if(apsBlankOrderVo.getPlanhavematerialdate() != null){
@@ -1251,6 +1271,10 @@ public class ApsServiceImpl implements ApsService {
                                 processes.setStartTime(processEquDos.get(i).getPlanstartdate().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
                                 processes.setEndTime(processEquDos.get(i).getPlanenddate().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
                             }
+                            // 判断是否已取消
+                            if(processEquDos.get(i).getCancelroll() != null && processEquDos.get(i).getCancelroll()>=processEquDos.get(i).getPlanprocessrall()){
+                                processes.setCancel(true);
+                            }
                         }
                         if(apsBlankOrderVo.getPlanhavematerialdate() != null){
                             // 全局配置
@@ -1303,6 +1327,10 @@ public class ApsServiceImpl implements ApsService {
                                 processes.setStartTime(processEquDos.get(i).getPlanstartdate().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
                                 processes.setEndTime(processEquDos.get(i).getPlanenddate().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
                             }
+                            // 判断是否已取消
+                            if(processEquDos.get(i).getCancelroll() != null && processEquDos.get(i).getCancelroll()>=processEquDos.get(i).getPlanprocessrall()){
+                                processes.setCancel(true);
+                            }
                         }
                         if(apsBlankOrderVo.getPlanhavematerialdate() != null){
                             // 全局配置

+ 13 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/vo/ProductionProcesses.java

@@ -234,6 +234,11 @@ public class ProductionProcesses{
      */
     private String issubsection;
 
+    /**
+     * 是否已取消
+     */
+    private boolean isCancel = false;
+
     public String getEquipmentType() {
         return equipmentType;
     }
@@ -596,4 +601,12 @@ public class ProductionProcesses{
     public void setProcessName(String processName) {
         this.processName = processName;
     }
+
+    public boolean isCancel() {
+        return isCancel;
+    }
+
+    public void setCancel(boolean cancel) {
+        isCancel = cancel;
+    }
 }