sucheng 1 рік тому
батько
коміт
96eee5b687

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

@@ -1,6 +1,7 @@
 package com.rongwei.bscommon.sys.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwei.bsentity.domain.ApsProcessOperationDo;
 import com.rongwei.bsentity.domain.ApsProductionOrderDo;
 import com.rongwei.bsentity.vo.ProductDetailIdAndPlanOutPutRollCountAllVo;
 import com.rongwei.bsentity.vo.ProductTypeIdAndPidVo;
@@ -72,6 +73,8 @@ public interface ApsProductionOrderDao extends BaseMapper<ApsProductionOrderDo>
     ApsProductionOrderDo selectDataInfo(@Param("id") String id);
 
 
+    @Select("select * from aps_process_operation where DELETED = 0 AND PLANINPUTID = #{joboutputmaterialid} AND LEAVEWAITWORKROLL > 0 ORDER BY PLANSTARTDATE DESC LIMIT 1")
+    ApsProcessOperationDo selectNeedBorrowOperation(@Param("joboutputmaterialid") String joboutputmaterialid);
 }
 
 

+ 39 - 36
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsBlankOrderServiceImpl.java

@@ -669,11 +669,11 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                             ApsBlankOrderDo blankOrderDo = hasblanks.get(0);
                             if (blankOrderDo.getScheduledatestart().compareTo(endDate) > 0) {
                                 blankOrderDo.setScheduledatestart(endDate);
-                                blankOrderDo.setPromisedatestart(DateUtil.offsetDay(endDate,2));
+                                blankOrderDo.setPromisedatestart(DateUtil.offsetDay(endDate, 2));
                             }
                             if (blankOrderDo.getScheduledateend().compareTo(endDate) < 0) {
                                 blankOrderDo.setScheduledateend(endDate);
-                                blankOrderDo.setPromisedateend(DateUtil.offsetDay(endDate,2));
+                                blankOrderDo.setPromisedateend(DateUtil.offsetDay(endDate, 2));
                             }
                         } else {
                             ApsBlankOrderDo blankOrder = this.getById(order.getId());
@@ -682,8 +682,8 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                             updateBlank.setSchedulingstatus(TO_BE_PUBLISHED);
                             updateBlank.setScheduledatestart(endDate);
                             updateBlank.setScheduledateend(endDate);
-                            updateBlank.setPromisedatestart(DateUtil.offsetDay(endDate,2));
-                            updateBlank.setPromisedateend(DateUtil.offsetDay(endDate,2));
+                            updateBlank.setPromisedatestart(DateUtil.offsetDay(endDate, 2));
+                            updateBlank.setPromisedateend(DateUtil.offsetDay(endDate, 2));
                             // 自动加锁坯料计划
                             updateBlank.setLockmark("y");
                             blankIds.add(updateBlank);
@@ -1917,39 +1917,41 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                 //将这些作业明细的待加工料卷批次号去掉“{批次号},”
                 this.baseMapper.updateBatchNumberByBorrow(batchnumber, processoperationequid, joboutputmaterialid);
 
-                //更新工序作业的一借调卷数
-                ApsProcessOperationDo apsProcessOperationDo = apsProcessOperationService.getById(processoperationid);
-                Integer secondroll = apsProcessOperationDo.getSecondroll() + 1;
-
-                ApsProcessOperationDo needUpdateProcess = new ApsProcessOperationDo();
-                needUpdateProcess.setId(processoperationid);
-                needUpdateProcess.setSecondroll(secondroll);
-                apsProcessOperationService.updateById(needUpdateProcess);
-
-                /**
-                 * 如果已借调卷数>已取消卷数
-                 * 本次取消卷数=1
-                 * 根据本次取消卷数更新对应工序作业的取消卷数
-                 */
-                if (secondroll > apsProcessOperationDo.getCancelroll()) {
-                    CancelProcessOperationVo cancelProcessOperationVo = new CancelProcessOperationVo();
-                    apsProcessOperationDo.setSecondroll(secondroll);
-                    cancelProcessOperationVo.setApsprocessoperationdo(apsProcessOperationDo);
-                    cancelProcessOperationVo.setCurcancelroll(1);
-                    R r = apsProcessOperationService.cancelProcessOperation(cancelProcessOperationVo);
-                    if (!r.getCode().equals("200")) {
-                        throw new CustomException(r.getMsg());
-                    }
 
-                    //撤回订单
-                    //被撤回的作业明细
-                    ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo = apsProcessOperationProcessEquService.getById(processoperationequid);
-                    //被撤回的坯料计划
-                    ApsBlankOrderDo changeBlankOrder = apsBlankOrderService.getById(apsProcessOperationProcessEquDo.getBlankid());
-                    //被撤回的订单信息
-                    ApsProductionOrderDo apsProductionOrderDo = apsProductionOrderService.getById(changeBlankOrder.getProductionorderid());
-                    reportCheckService.goBackWf(processoperationequid, apsProcessOperationProcessEquDo.getBlankid(), apsProductionOrderDo);
-                }
+                //被借调作业=该在制品的作业输出物料ID对应所有后道工序作业中计划开工时间最晚的,剩余开工卷数>0的作业
+                ApsProcessOperationDo needBorrowOperation = apsProcessOperationDao.selectNeedBorrowOperation(joboutputmaterialid);
+                if (ObjectUtil.isNotEmpty(needBorrowOperation)) {
+                    //更新工序作业的一借调卷数
+                    Integer secondroll = needBorrowOperation.getSecondroll() + 1;
+                    ApsProcessOperationDo needUpdateProcess = new ApsProcessOperationDo();
+                    needUpdateProcess.setId(needBorrowOperation.getId());
+                    needUpdateProcess.setSecondroll(secondroll);
+                    apsProcessOperationService.updateById(needUpdateProcess);
+
+                    /**
+                     * 如果已借调卷数>已取消卷数
+                     * 本次取消卷数=1
+                     * 根据本次取消卷数更新对应工序作业的取消卷数
+                     */
+                    if (secondroll > needBorrowOperation.getCancelroll()) {
+                        CancelProcessOperationVo cancelProcessOperationVo = new CancelProcessOperationVo();
+                        needBorrowOperation.setSecondroll(secondroll);
+                        cancelProcessOperationVo.setApsprocessoperationdo(needBorrowOperation);
+                        cancelProcessOperationVo.setCurcancelroll(1);
+                        R r = apsProcessOperationService.cancelProcessOperation(cancelProcessOperationVo);
+                        if (!r.getCode().equals("200")) {
+                            throw new CustomException(r.getMsg());
+                        }
+
+                        //撤回订单
+                        //被撤回的作业明细
+                        ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo = apsProcessOperationProcessEquService.getById(processoperationequid);
+                        //被撤回的坯料计划
+                        ApsBlankOrderDo changeBlankOrder = apsBlankOrderService.getById(apsProcessOperationProcessEquDo.getBlankid());
+                        //被撤回的订单信息
+                        ApsProductionOrderDo apsProductionOrderDo = apsProductionOrderService.getById(changeBlankOrder.getProductionorderid());
+                        reportCheckService.goBackWf(processoperationequid, apsProcessOperationProcessEquDo.getBlankid(), apsProductionOrderDo);
+                    }
 
 
 //                //处理后续工序状态
@@ -1959,6 +1961,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
 //                if (!r2.getCode().equals("200")) {
 //                    return R.error(r2.getMsg());
 //                }
+                }
             }
         }