Browse Source

0412更新

master
ruanqi 2 years ago
parent
commit
d348f3874e
  1. 5
      src/main/java/com/heai/modules/production/controller/AbnormalController.java
  2. 23
      src/main/java/com/heai/modules/production/dao/DailyPlanMapper.java
  3. 34
      src/main/java/com/heai/modules/production/service/impl/DailyPlanServiceImpl.java
  4. 5
      src/main/java/com/heai/modules/production/util/BigDecimalUtils.java
  5. 8
      src/main/resources/mapper/production/DailyPlanMapper.xml

5
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();
}
}

23
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

34
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 <inData.getScheduleDetail().size() ; i++) {
int seqNo=dailyPlanMapper.getDataSequence();
dailyPlanMapper.updateDataSequence();
@ -866,6 +883,23 @@ public class DailyPlanServiceImpl implements DailyPlanService {
if(checkTool.size()==0){
throw new RuntimeException("该生产订单未维护工具!");
}
//防止多派
Double scheduledQty=dailyPlanMapper.getShopOrderScheduledQty(inData.getSite(),inData.getOrderRef1(),inData.getItemNo());
ShopOrderData getOrderNoLotSizeSchedulingSize=dailyPlanMapper.getOrderNoLotSizeSchedulingSize(inData.getSite(),inData.getOrderRef1());
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 <inData.getScheduleDetail().size() ; i++) {
int seqNo=dailyPlanMapper.getDataSequence();
dailyPlanMapper.updateDataSequence();

5
src/main/java/com/heai/modules/production/util/BigDecimalUtils.java

@ -230,6 +230,11 @@ public class BigDecimalUtils {
}
public static double formatDecimal(double n) {
return (Math.round(n * 100)) / 100d;
}
/**
* BigDecimal百分比格式化
* @param rate

8
src/main/resources/mapper/production/DailyPlanMapper.xml

@ -732,6 +732,14 @@
where SOT.site=#{site} and SOT.orderNo=#{orderNo}
</insert>
<select id="getShopOrderScheduledQty" resultType="Double">
select SUM(QtyRequired-isnull(circulation_qty,0)) from SOScheduledRouting where site=#{site} and OrderNo=#{orderNo} and itemNo=#{itemNo}
</select>
<select id="getOrderNoLotSizeSchedulingSize" resultType="com.heai.modules.production.entity.ShopOrderData">
select lotSize, dbo.Get_PartPlanQty(site,PartNo,OrderNo) schedulingSize from ShopOrder where site=#{site} and OrderNo=#{orderNo}
</select>
<select id="checkTask" resultType="com.heai.modules.production.entity.HunlianTaskDetailData">
select OrderNo as orderRef1 ,orderNo_hunlian as orderNo FROM view_KANBAN_SO_Hunlian_Plan
where site=#{site} and (erpStatus='已取消' or FinishedFlag in ('2','3') or dispatched_hunlian='Y' ) and orderNo_hunlian in

Loading…
Cancel
Save