فهرست منبع

取消作业调整

DLC 11 ماه پیش
والد
کامیت
36cb6d3b98

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

@@ -73,6 +73,9 @@ public interface ApsProcessOperationDao extends BaseMapper<ApsProcessOperationDo
             "\t) e on o.ID=e.PROCESSID\n" +
             "\tWHERE o.DELETED = 0 and o.LEAVEWAITWORKROLL>0 AND o.ID in ('${nextIds}') \n" +
             ") p1 order by PLANSTARTDATE desc")
+    List<ApsProcessOperationDo> getNextProcessOperationsOrderBy(@Param("nextIds") String nextIds);
+
+    @Select("SELECT * FROM aps_process_operation WHERE DELETED = 0 AND o.ID in ('${nextIds}')")
     List<ApsProcessOperationDo> getNextProcessOperations(@Param("nextIds") String nextIds);
 
     @Select("SELECT * FROM aps_process_operation_process_equ WHERE DELETED = 0 AND PROCESSID = #{processid} order by PLANSTARTDATE desc")

+ 82 - 70
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProcessOperationServiceImpl.java

@@ -1941,79 +1941,96 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                 }
             }
 
-            //本道作业所有后道工序
-            List<ApsProcessOperationDo> apsProcessOperationDos = new ArrayList<>();
-            if (StringUtils.isNotBlank(apsProcessOperationDo.getNextprocessid())) {
-                apsProcessOperationDos = apsProcessOperationDao.getNextProcessOperations(apsProcessOperationDo.getNextprocessid().replace(",", "','"));
-            }
-
             //本道工序的输出
             Map<String, Object> map = new HashMap<>();
             map.put("MAINID", apsProcessOperationDo.getId());
             List<ApsProcessOperationOutMaterDo> apsProcessOperationOutMaterDos = apsProcessOperationOutMaterService.listByMap(map).stream().collect(Collectors.toList());
-            Integer outval = 0;
             for (ApsProcessOperationOutMaterDo apsProcessOperationOutMaterDo : apsProcessOperationOutMaterDos) {
-                Integer curOutMaterCancelRoll = curcancelroll;//输出物料本次取消卷数
-                if (cancelProcessOperationVo.getUpdatecuropration()) {
-                    curOutMaterCancelRoll = curcancelroll * apsProcessOperationOutMaterDo.getOutval();//输出物料本次取消卷数
-                }
-                apsProcessOperationOutMaterDo.setOutcancelroll((apsProcessOperationDo.getInputunqualifiedroll() + apsProcessOperationDo.getCancelroll()) * apsProcessOperationOutMaterDo.getOutval());
-                Integer curStockCancelRoll = 0;//本次备料取消卷数
-                Integer curMoveCancelRoll = 0;//本次流转取消卷数
-                Integer curProdCancelRoll = 0;//本次成品取消卷数
-                if (apsProcessOperationOutMaterDo.getStockleaveoutroll() >= curOutMaterCancelRoll) {
-                    curStockCancelRoll = curOutMaterCancelRoll;
-                } else {
-                    curStockCancelRoll = apsProcessOperationOutMaterDo.getStockleaveoutroll();
-                    curOutMaterCancelRoll = curOutMaterCancelRoll - curStockCancelRoll;
-                    if (apsProcessOperationOutMaterDo.getMoveleaveoutroll() >= curOutMaterCancelRoll) {
-                        curMoveCancelRoll = curOutMaterCancelRoll;
-                    } else {
-                        curMoveCancelRoll = apsProcessOperationOutMaterDo.getMoveleaveoutroll();
-                        curOutMaterCancelRoll = curOutMaterCancelRoll - curMoveCancelRoll;
-                        if (apsProcessOperationOutMaterDo.getProdleaveoutroll() >= curOutMaterCancelRoll) {
-                            curProdCancelRoll = curOutMaterCancelRoll;
-                        } else {
-                            curProdCancelRoll = apsProcessOperationOutMaterDo.getProdleaveoutroll();
-                        }
-                    }
-                }
-                apsProcessOperationOutMaterDo.setProdcancelroll(apsProcessOperationOutMaterDo.getProdcancelroll() + curProdCancelRoll);
-                apsProcessOperationOutMaterDo.setProdleaveoutroll(apsProcessOperationOutMaterDo.getProdleaveoutroll() - curProdCancelRoll);
-                apsProcessOperationOutMaterDo.setStockcancelroll(apsProcessOperationOutMaterDo.getStockcancelroll() + curStockCancelRoll);
-                apsProcessOperationOutMaterDo.setStockleaveoutroll(apsProcessOperationOutMaterDo.getStockleaveoutroll() - curStockCancelRoll);
-                apsProcessOperationOutMaterDo.setMovecancelroll(apsProcessOperationOutMaterDo.getMovecancelroll() + curMoveCancelRoll);
-                apsProcessOperationOutMaterDo.setMoveleaveoutroll(apsProcessOperationOutMaterDo.getMoveleaveoutroll() - curMoveCancelRoll);
-
-                if (curMoveCancelRoll > 0 && apsProcessOperationDos.size() > 0) {
-                    List<ApsProcessOperationDo> processOperationDos = apsProcessOperationDos.stream().filter(apo -> apsProcessOperationOutMaterDo.getId().equals(apo.getPlaninputid())).collect(Collectors.toList());
-                    for (ApsProcessOperationDo processOperationDo : processOperationDos) {
-                        Integer cancelroll = 0;
-                        if (curMoveCancelRoll > 0) {
-                            CancelProcessOperationVo cancelProcessOperationVo1 = new CancelProcessOperationVo();
-                            cancelProcessOperationVo1.setCraftrouteid(craftrouteid);
-                            if (processOperationDo.getLeavewaitworkroll() >= curMoveCancelRoll) {
-                                cancelroll = curMoveCancelRoll;
-                                cancelProcessOperationVo1.setCurcancelroll(cancelroll);
-                            } else {
-                                cancelroll = processOperationDo.getLeavewaitworkroll();
-                                cancelProcessOperationVo1.setCurcancelroll(cancelroll);
-                            }
-//                            processOperationDo.setInputunqualifiedroll(getInputCancelRoll(apsProcessOperationDo.getPlanprocessrall(), apsProcessOperationDo.getCancelroll(), apsProcessOperationOutMaterDo));
-                            processOperationDo.setInputunqualifiedroll(processOperationDo.getInputunqualifiedroll() + cancelroll);
-                            cancelProcessOperationVo1.setApsprocessoperationdo(processOperationDo);
-                            cancelProcessOperationVo1.setSetincancelroll(false);
-                            cancelProcessOperation(cancelProcessOperationVo1);
-                        } else {
-                            break;
-                        }
-                        curMoveCancelRoll = curMoveCancelRoll - cancelroll;
-                    }
-                }
-                outval += apsProcessOperationOutMaterDo.getOutval();
+                apsProcessOperationOutMaterDo.setOutcancelroll(apsProcessOperationOutMaterDo.getOutcancelroll() + (curcancelroll * apsProcessOperationOutMaterDo.getPlanrollnum() / apsProcessOperationDo.getPlanprocessrall()));
+                apsProcessOperationOutMaterDo.setProdcancelroll(apsProcessOperationOutMaterDo.getProdcancelroll() + (curcancelroll * apsProcessOperationOutMaterDo.getPlanprodrollnum() / apsProcessOperationDo.getPlanprocessrall()));
+                apsProcessOperationOutMaterDo.setProdleaveoutroll(apsProcessOperationOutMaterDo.getProdleaveoutroll() - (curcancelroll * apsProcessOperationOutMaterDo.getPlanprodrollnum() / apsProcessOperationDo.getPlanprocessrall()));
+                apsProcessOperationOutMaterDo.setStockcancelroll(apsProcessOperationOutMaterDo.getStockcancelroll() + (curcancelroll * apsProcessOperationOutMaterDo.getPlanstockrollnum() / apsProcessOperationDo.getPlanprocessrall()));
+                apsProcessOperationOutMaterDo.setStockleaveoutroll(apsProcessOperationOutMaterDo.getStockleaveoutroll() - (curcancelroll * apsProcessOperationOutMaterDo.getPlanstockrollnum() / apsProcessOperationDo.getPlanprocessrall()));
+                apsProcessOperationOutMaterDo.setMovecancelroll(apsProcessOperationOutMaterDo.getMovecancelroll() + (curcancelroll * apsProcessOperationOutMaterDo.getPlanmoverollnum() / apsProcessOperationDo.getPlanprocessrall()));
+                apsProcessOperationOutMaterDo.setMoveleaveoutroll(apsProcessOperationOutMaterDo.getMoveleaveoutroll() - (curcancelroll * apsProcessOperationOutMaterDo.getPlanmoverollnum() / apsProcessOperationDo.getPlanprocessrall()));
+
+
+//                Integer curOutMaterCancelRoll = curcancelroll;//输出物料本次取消卷数
+//                if (cancelProcessOperationVo.getUpdatecuropration()) {
+//                    curOutMaterCancelRoll = curcancelroll * apsProcessOperationOutMaterDo.getOutval();//输出物料本次取消卷数
+//                }
+//                apsProcessOperationOutMaterDo.setOutcancelroll((apsProcessOperationDo.getInputunqualifiedroll() + apsProcessOperationDo.getCancelroll()) * apsProcessOperationOutMaterDo.getOutval());
+//                Integer curStockCancelRoll = 0;//本次备料取消卷数
+//                Integer curMoveCancelRoll = 0;//本次流转取消卷数
+//                Integer curProdCancelRoll = 0;//本次成品取消卷数
+//                if (apsProcessOperationOutMaterDo.getStockleaveoutroll() >= curOutMaterCancelRoll) {
+//                    curStockCancelRoll = curOutMaterCancelRoll;
+//                } else {
+//                    curStockCancelRoll = apsProcessOperationOutMaterDo.getStockleaveoutroll();
+//                    curOutMaterCancelRoll = curOutMaterCancelRoll - curStockCancelRoll;
+//                    if (apsProcessOperationOutMaterDo.getMoveleaveoutroll() >= curOutMaterCancelRoll) {
+//                        curMoveCancelRoll = curOutMaterCancelRoll;
+//                    } else {
+//                        curMoveCancelRoll = apsProcessOperationOutMaterDo.getMoveleaveoutroll();
+//                        curOutMaterCancelRoll = curOutMaterCancelRoll - curMoveCancelRoll;
+//                        if (apsProcessOperationOutMaterDo.getProdleaveoutroll() >= curOutMaterCancelRoll) {
+//                            curProdCancelRoll = curOutMaterCancelRoll;
+//                        } else {
+//                            curProdCancelRoll = apsProcessOperationOutMaterDo.getProdleaveoutroll();
+//                        }
+//                    }
+//                }
+//                apsProcessOperationOutMaterDo.setProdcancelroll(apsProcessOperationOutMaterDo.getProdcancelroll() + curProdCancelRoll);
+//                apsProcessOperationOutMaterDo.setProdleaveoutroll(apsProcessOperationOutMaterDo.getProdleaveoutroll() - curProdCancelRoll);
+//                apsProcessOperationOutMaterDo.setStockcancelroll(apsProcessOperationOutMaterDo.getStockcancelroll() + curStockCancelRoll);
+//                apsProcessOperationOutMaterDo.setStockleaveoutroll(apsProcessOperationOutMaterDo.getStockleaveoutroll() - curStockCancelRoll);
+//                apsProcessOperationOutMaterDo.setMovecancelroll(apsProcessOperationOutMaterDo.getMovecancelroll() + curMoveCancelRoll);
+//                apsProcessOperationOutMaterDo.setMoveleaveoutroll(apsProcessOperationOutMaterDo.getMoveleaveoutroll() - curMoveCancelRoll);
+
+//                if (curMoveCancelRoll > 0 && apsProcessOperationDos.size() > 0) {
+//                    List<ApsProcessOperationDo> processOperationDos = apsProcessOperationDos.stream().filter(apo -> apsProcessOperationOutMaterDo.getId().equals(apo.getPlaninputid())).collect(Collectors.toList());
+//                    for (ApsProcessOperationDo processOperationDo : processOperationDos) {
+//                        Integer cancelroll = 0;
+//                        if (curMoveCancelRoll > 0) {
+//                            CancelProcessOperationVo cancelProcessOperationVo1 = new CancelProcessOperationVo();
+//                            cancelProcessOperationVo1.setCraftrouteid(craftrouteid);
+//                            if (processOperationDo.getLeavewaitworkroll() >= curMoveCancelRoll) {
+//                                cancelroll = curMoveCancelRoll;
+//                                cancelProcessOperationVo1.setCurcancelroll(cancelroll);
+//                            } else {
+//                                cancelroll = processOperationDo.getLeavewaitworkroll();
+//                                cancelProcessOperationVo1.setCurcancelroll(cancelroll);
+//                            }
+////                            processOperationDo.setInputunqualifiedroll(getInputCancelRoll(apsProcessOperationDo.getPlanprocessrall(), apsProcessOperationDo.getCancelroll(), apsProcessOperationOutMaterDo));
+//                            processOperationDo.setInputunqualifiedroll(processOperationDo.getInputunqualifiedroll() + cancelroll);
+//                            cancelProcessOperationVo1.setApsprocessoperationdo(processOperationDo);
+//                            cancelProcessOperationVo1.setSetincancelroll(false);
+//                            cancelProcessOperation(cancelProcessOperationVo1);
+//                        } else {
+//                            break;
+//                        }
+//                        curMoveCancelRoll = curMoveCancelRoll - cancelroll;
+//                    }
+//                }
+
                 apsProcessOperationOutMaterDoList.add(apsProcessOperationOutMaterDo);
             }
 
+            //本道作业所有后道工序
+            List<ApsProcessOperationDo> apsProcessOperationDos = new ArrayList<>();
+            if (StringUtils.isNotBlank(apsProcessOperationDo.getNextprocessid())) {
+                apsProcessOperationDos = apsProcessOperationDao.getNextProcessOperations(apsProcessOperationDo.getNextprocessid().replace(",", "','"));
+                for (ApsProcessOperationDo processOperationDo : apsProcessOperationDos) {
+                    CancelProcessOperationVo cancelProcessOperationVo1 = new CancelProcessOperationVo();
+                    cancelProcessOperationVo1.setCraftrouteid(craftrouteid);
+                    Integer nextCurCancelRoll = curcancelroll * processOperationDo.getPlanprocessrall() / apsProcessOperationDo.getPlanprocessrall();
+                    cancelProcessOperationVo1.setCurcancelroll(nextCurCancelRoll);
+                    processOperationDo.setInputunqualifiedroll(processOperationDo.getInputunqualifiedroll() + nextCurCancelRoll);
+                    cancelProcessOperationVo1.setApsprocessoperationdo(processOperationDo);
+                    cancelProcessOperation(cancelProcessOperationVo1);
+                }
+            }
+
             //本道工序的作业明细
             List<ApsProcessOperationProcessEquDo> apsProcessOperationProcessEquDos = apsProcessOperationDao.getProcessOperationProcessEqus(apsProcessOperationDo.getId());
             if (cancelProcessOperationVo.getUpdatecuropration()) {
@@ -2071,11 +2088,6 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
             Optional<Date> maxDate = apsProcessOperationProcessEquDos.stream()
                     .map(ApsProcessOperationProcessEquDo::getPlanenddate).max(Comparator.naturalOrder());
             apsProcessOperationDo.setPlanenddate(new Date(maxDate.get().getTime()));
-            if (outval > 1) {
-                apsProcessOperationDo.setIssubsection("是");
-            } else {
-                apsProcessOperationDo.setIssubsection("否");
-            }
 
             boolean bool1 = apsProcessOperationService.saveOrUpdate(apsProcessOperationDo);
             boolean bool2 = apsProcessOperationOutMaterService.saveOrUpdateBatch(apsProcessOperationOutMaterDoList);