Преглед на файлове

aps-如果坯料计划已发布,则不再校验,优化开工效率

sucheng преди 6 месеца
родител
ревизия
5f3a03b3f6

+ 3 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProcessOperationProcessEquDao.java

@@ -110,6 +110,9 @@ public interface ApsProcessOperationProcessEquDao extends BaseMapper<ApsProcessO
 
     @Update("update sys_serial_number set CURVALUE = ${nowValue} where MODULECODE = #{moduleCode}")
     void updateSerialNumberCurvalue(@Param("moduleCode") String moduleCode, @Param("nowValue") long nowValue);
+
+    @Select("select * from aps_process_operation_process_equ where DELETED = 0 AND PROCESSDEVICEID = #{processdeviceid} AND ID != #{apsProcessOperationProcessEquDoId} AND WAITREPORTID IS NOT NULL AND WAITREPORTID != '' AND PLANSTARTDATE != #{planstartdate}")
+    int selectOtherDeviceCount(@Param("processdeviceid") String processdeviceid,@Param("apsProcessOperationProcessEquDoId") String apsProcessOperationProcessEquDoId, @Param("planstartdate") Date planstartdate);
 }
 
 

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

@@ -463,6 +463,10 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
             List<ApsProductDetailDo> productDetailDoList = BeanUtil.copyToList(apsProductDetailVoList, ApsProductDetailDo.class);
             //================循环校验坯料计划===============
             for (int i = 0; i < apsBlankOrderDoList.size(); i++) {
+                //如果坯料计划已发布,则不再校验
+                if (Integer.parseInt(apsBlankOrderDoList.get(i).getProductstatus()) > 20) {
+                    continue;
+                }
                 CheckAndSaveOrUpdateBlankReq checkAndSaveOrUpdateBlankReq = new CheckAndSaveOrUpdateBlankReq();
                 checkAndSaveOrUpdateBlankReq.setApsBlankOrderDo(apsBlankOrderDoList.get(i));
                 checkAndSaveOrUpdateBlankReq.setApsProcessOutputProductDoList(apsProcessOutputProductService.list(new QueryWrapper<ApsProcessOutputProductDo>().lambda().eq(ApsProcessOutputProductDo::getBlankid, apsBlankOrderDoList.get(i).getId())));

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

@@ -433,22 +433,27 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
             //当前工序作业明细的ID
             String apsProcessOperationProcessEquDoId = apsProcessOperationProcessEquDo.getId();
             //查询当前工序作业的作业明细的 加工设备 对应的其他工序作业的作业明细 并且待报工记录ID不为空
-            List<ApsProcessOperationProcessEquDo> list = apsProcessOperationProcessEquDao.selectOtherDeviceList(processdeviceid, apsProcessOperationProcessEquDoId);
-//        List<ApsProcessOperationProcessEquDo> list = apsProcessOperationProcessEquService.list(
-//                new QueryWrapper<ApsProcessOperationProcessEquDo>().lambda()
-//                        .eq(ApsProcessOperationProcessEquDo::getProcessdeviceid, processdeviceid)//当前工序作业的作业明细的 加工设备
-//                        .ne(ApsProcessOperationProcessEquDo::getId, apsProcessOperationProcessEquDoId)//对应的其他工序作业的作业明细
-//                        .isNotNull(ApsProcessOperationProcessEquDo::getWaitreportid)//待报工记录ID不为空
-//        );
-            //存在已使用,判断是否是合并作业 (计划开工时间相同)
-            if (ObjectUtil.isNotEmpty(list)) {
-                //已开工的作业明细的计划开工时间
-                Date planstartdate = list.get(0).getPlanstartdate();
-                //开工时间不用
-                if (planstartdate.compareTo(apsProcessOperationProcessEquDo.getPlanstartdate()) != 0) {
-                    return R.error("该设备当前加工中的作业还未报工,不能开工新的作业");
-                }
-            }
+            //存在计划开工时间不同(非合并作业) 并且加工设备正在使用的作业明细数量
+            int count = apsProcessOperationProcessEquDao.selectOtherDeviceCount(processdeviceid, apsProcessOperationProcessEquDoId, apsProcessOperationProcessEquDo.getPlanstartdate());
+            if (count > 0) {
+                return R.error("该设备当前加工中的作业还未报工,不能开工新的作业");
+            }
+//            List<ApsProcessOperationProcessEquDo> list = apsProcessOperationProcessEquDao.selectOtherDeviceList(processdeviceid, apsProcessOperationProcessEquDoId);
+////        List<ApsProcessOperationProcessEquDo> list = apsProcessOperationProcessEquService.list(
+////                new QueryWrapper<ApsProcessOperationProcessEquDo>().lambda()
+////                        .eq(ApsProcessOperationProcessEquDo::getProcessdeviceid, processdeviceid)//当前工序作业的作业明细的 加工设备
+////                        .ne(ApsProcessOperationProcessEquDo::getId, apsProcessOperationProcessEquDoId)//对应的其他工序作业的作业明细
+////                        .isNotNull(ApsProcessOperationProcessEquDo::getWaitreportid)//待报工记录ID不为空
+////        );
+//            //存在已使用,判断是否是合并作业 (计划开工时间相同)
+//            if (ObjectUtil.isNotEmpty(list)) {
+//                //已开工的作业明细的计划开工时间
+//                Date planstartdate = list.get(0).getPlanstartdate();
+//                //开工时间不用
+//                if (planstartdate.compareTo(apsProcessOperationProcessEquDo.getPlanstartdate()) != 0) {
+//                    return R.error("该设备当前加工中的作业还未报工,不能开工新的作业");
+//                }
+//            }
 
 
 //        //设备的待加工ID