From d348f3874e29ed8077d6648a515035770ecf5bc9 Mon Sep 17 00:00:00 2001 From: ruanqi Date: Tue, 15 Aug 2023 15:43:08 +0800 Subject: [PATCH] =?UTF-8?q?0412=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AbnormalController.java | 5 +++ .../production/dao/DailyPlanMapper.java | 23 +++++++++++++ .../service/impl/DailyPlanServiceImpl.java | 34 +++++++++++++++++++ .../production/util/BigDecimalUtils.java | 15 +++++--- .../mapper/production/DailyPlanMapper.xml | 8 +++++ 5 files changed, 80 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/heai/modules/production/controller/AbnormalController.java b/src/main/java/com/heai/modules/production/controller/AbnormalController.java index a3a3fd2..ef3ff9f 100644 --- a/src/main/java/com/heai/modules/production/controller/AbnormalController.java +++ b/src/main/java/com/heai/modules/production/controller/AbnormalController.java @@ -32,6 +32,8 @@ public class AbnormalController { return R.ok().put("rows", list).put("total",list.size()); } + + /** * @Description TODO * @Title getShopOrderData @@ -77,6 +79,7 @@ public class AbnormalController { abnormalService.saveAbnormalData(inData); return R.ok(); } + /** * @Description 保存明细 * @Title saveAbnormalData @@ -121,4 +124,6 @@ public class AbnormalController { abnormalService.openFeedBack(inData); return R.ok(); } + + } diff --git a/src/main/java/com/heai/modules/production/dao/DailyPlanMapper.java b/src/main/java/com/heai/modules/production/dao/DailyPlanMapper.java index 9db8704..0d124c1 100644 --- a/src/main/java/com/heai/modules/production/dao/DailyPlanMapper.java +++ b/src/main/java/com/heai/modules/production/dao/DailyPlanMapper.java @@ -617,6 +617,29 @@ public interface DailyPlanMapper { */ void saveHunlianTaskDetailData(HunlianTaskDetailData inData); + /** + * @Description TODO + * @Title getShopOrderScheduledQty + * @param site + * @param orderNo + * @param itemNo + * @author rq + * @date 2023/8/15 14:51 + * @return BigDecimal + * @throw + */ + Double getShopOrderScheduledQty(@Param("site") String site, @Param("orderNo") String orderNo, @Param("itemNo") Float itemNo); + /** + * @Description TODO + * @Title getOrderNoLotSizeSchedulingSize + * @param site + * @param orderNo + * @author rq + * @date 2023/8/15 15:08 + * @return ShopOrderData + * @throw + */ + ShopOrderData getOrderNoLotSizeSchedulingSize(@Param("site") String site, @Param("orderNo") String orderNo); /** * @Description TODO * @Title updateSOTaskCombineTime diff --git a/src/main/java/com/heai/modules/production/service/impl/DailyPlanServiceImpl.java b/src/main/java/com/heai/modules/production/service/impl/DailyPlanServiceImpl.java index 3d9b277..ac061da 100644 --- a/src/main/java/com/heai/modules/production/service/impl/DailyPlanServiceImpl.java +++ b/src/main/java/com/heai/modules/production/service/impl/DailyPlanServiceImpl.java @@ -818,6 +818,23 @@ public class DailyPlanServiceImpl implements DailyPlanService { if(checkScheduleList.size()==0){ dailyPlanMapper.saveScheduleList(inData); } + //防止多派 + Double scheduledQty=dailyPlanMapper.getShopOrderScheduledQty(inData.getSite(),inData.getOrderNo(),inData.getItemNo()); + ShopOrderData getOrderNoLotSizeSchedulingSize=dailyPlanMapper.getOrderNoLotSizeSchedulingSize(inData.getSite(),inData.getOrderNo()); + if(getOrderNoLotSizeSchedulingSize==null){ + throw new RuntimeException("该生产订单不存在!"); + } + Double maxSchedule=getOrderNoLotSizeSchedulingSize.getLotSize()*1.1; + if(getOrderNoLotSizeSchedulingSize.getSchedulingSize()!=null&&getOrderNoLotSizeSchedulingSize.getSchedulingSize()>0.0){ + maxSchedule= Math.ceil(maxSchedule/getOrderNoLotSizeSchedulingSize.getSchedulingSize())*getOrderNoLotSizeSchedulingSize.getSchedulingSize(); + } + Double toScheduledQty=inData.getSumQty().doubleValue(); + if(scheduledQty+toScheduledQty>maxSchedule){ + throw new RuntimeException("该生产订单已经派工 "+scheduledQty+",将超过最大允许派工数量 "+Math.ceil(maxSchedule)+"! 无法继续派工。"); + } + + + for (int i = 0; i 0.0){ + maxSchedule= Math.ceil(maxSchedule/getOrderNoLotSizeSchedulingSize.getSchedulingSize())*getOrderNoLotSizeSchedulingSize.getSchedulingSize(); + } + Double toScheduledQty=inData.getSumQty().doubleValue(); + if(scheduledQty+toScheduledQty>maxSchedule){ + throw new RuntimeException("该生产订单已经派工 "+scheduledQty+",将超过最大允许派工数量 "+Math.ceil(maxSchedule)+"! 无法继续派工。"); + } + + + for (int i = 0; i + + + +