diff --git a/src/main/java/com/letian/modules/production/controller/DailyPlanController.java b/src/main/java/com/letian/modules/production/controller/DailyPlanController.java index d09dbb2..5518a91 100644 --- a/src/main/java/com/letian/modules/production/controller/DailyPlanController.java +++ b/src/main/java/com/letian/modules/production/controller/DailyPlanController.java @@ -185,5 +185,19 @@ public class DailyPlanController { return R.ok(); } + /** + * @Description 批量排产 + * @Title savePlans + * @param inList + * @author rq + * @date 2021/8/13 14:08 + * @return double + * @throw + */ + @PostMapping("/savePlans") + public R savePlans(@RequestBody List inList){ + dailyPlanService.savePlans(inList); + return R.ok(); + } } diff --git a/src/main/java/com/letian/modules/production/entity/DailyPlanInData.java b/src/main/java/com/letian/modules/production/entity/DailyPlanInData.java index 16fc16a..9cb08a4 100644 --- a/src/main/java/com/letian/modules/production/entity/DailyPlanInData.java +++ b/src/main/java/com/letian/modules/production/entity/DailyPlanInData.java @@ -5,7 +5,7 @@ import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; -@Data + public class DailyPlanInData { private String orderNo; @DateTimeFormat(pattern = "yyyy-MM-dd") @@ -51,5 +51,195 @@ public class DailyPlanInData { private String orderRef1; private Double unFinishQty; + public String getOrderNo() { + return orderNo; + } + + public void setOrderNo(String orderNo) { + this.orderNo = orderNo; + } + + public Date getStartDate1() { + return startDate1; + } + + public void setStartDate1(Date startDate1) { + this.startDate1 = startDate1; + } + + public Date getEndDate1() { + return endDate1; + } + + public void setEndDate1(Date endDate1) { + this.endDate1 = endDate1; + } + + public Date getStartDate2() { + return startDate2; + } + + public void setStartDate2(Date startDate2) { + this.startDate2 = startDate2; + } + + public Date getEndDate2() { + return endDate2; + } + + public void setEndDate2(Date endDate2) { + this.endDate2 = endDate2; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getPartNo() { + return partNo; + } + + public void setPartNo(String partNo) { + this.partNo = partNo; + } + + public Date getStartDate3() { + return startDate3; + } + + public void setStartDate3(Date startDate3) { + this.startDate3 = startDate3; + } + + public Date getEndDate3() { + return endDate3; + } + + public void setEndDate3(Date endDate3) { + this.endDate3 = endDate3; + } + + public String getSite() { + return site; + } + + public void setSite(String site) { + this.site = site; + } + + public String getPartDescription() { + return partDescription; + } + + public void setPartDescription(String partDescription) { + this.partDescription = partDescription; + } + + public Date getOrderDate() { + return orderDate; + } + + public void setOrderDate(Date orderDate) { + this.orderDate = orderDate; + } + + public Double getOrderQty() { + return orderQty; + } + + public void setOrderQty(Double orderQty) { + this.orderQty = orderQty; + } + + public int getShiftId() { + return shiftId; + } + + public void setShiftId(int shiftId) { + this.shiftId = shiftId; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public double getLotSize() { + return lotSize; + } + + public void setLotSize(double lotSize) { + this.lotSize = lotSize; + } + + public Date getPlanStartDate() { + return planStartDate; + } + + public void setPlanStartDate(Date planStartDate) { + this.planStartDate = planStartDate; + } + + public Date getNeedDate() { + return needDate; + } + + public void setNeedDate(Date needDate) { + this.needDate = needDate; + } + + public Double getSchedulingSize() { + return schedulingSize; + } + + public void setSchedulingSize(Double schedulingSize) { + this.schedulingSize = schedulingSize; + } + + public String getProductionType() { + return productionType; + } + + public void setProductionType(String productionType) { + this.productionType = productionType; + } + + public int getPlanAdd() { + return planAdd; + } + + public void setPlanAdd(int planAdd) { + this.planAdd = planAdd; + } + + public String getSql() { + return sql; + } + + public void setSql(String sql) { + this.sql = sql; + } + + public String getOrderRef1() { + return orderRef1; + } + + public void setOrderRef1(String orderRef1) { + this.orderRef1 = orderRef1; + } + + public Double getUnFinishQty() { + return unFinishQty; + } + public void setUnFinishQty(Double unFinishQty) { + this.unFinishQty = unFinishQty; + } } diff --git a/src/main/java/com/letian/modules/production/service/DailyPlanService.java b/src/main/java/com/letian/modules/production/service/DailyPlanService.java index 096a56b..ed5b006 100644 --- a/src/main/java/com/letian/modules/production/service/DailyPlanService.java +++ b/src/main/java/com/letian/modules/production/service/DailyPlanService.java @@ -125,4 +125,15 @@ public interface DailyPlanService { * @throw */ List getDailyPlanDetail(DailyPlanInData dailyPlanInData); + + /** + * @Description 批量排产 + * @Title savePlans + * @param + * @author rq + * @date 2021/8/13 14:08 + * @return double + * @throw + */ + void savePlans(List inList); } diff --git a/src/main/java/com/letian/modules/production/service/impl/DailyPlanServiceImpl.java b/src/main/java/com/letian/modules/production/service/impl/DailyPlanServiceImpl.java index 569c216..e0ca6c0 100644 --- a/src/main/java/com/letian/modules/production/service/impl/DailyPlanServiceImpl.java +++ b/src/main/java/com/letian/modules/production/service/impl/DailyPlanServiceImpl.java @@ -310,4 +310,69 @@ public class DailyPlanServiceImpl implements DailyPlanService { // } return list; } + + @Override + public void savePlans(List inList){ + for(int x=0;x searchDate = sOTaskOrderHeaderMapper.getWorkPlanDataByOrderDateAndSite(dailyPlanInData); + if (searchDate.size() > 0) { + throw new RuntimeException("该日期该班次已存在日计划:"+dailyPlanInData.getOrderNo()); + + } + //动态检验计划数量是否超过可排产数量 + List listx = soScheduledListMapper.getWorkPlanData(dailyPlanInData); + if (listx.size() > 0) { + double sqy = dailyPlanInData.getLotSize() - listx.get(0).getSchedulingSize(); + if (dailyPlanInData.getOrderQty() > sqy) { + throw new RuntimeException("计划数量超过可排产数量:"+dailyPlanInData.getOrderNo()); + + } + } else { + if (dailyPlanInData.getOrderQty() > dailyPlanInData.getLotSize()) { + throw new RuntimeException("计划数量超过可排产数量:"+dailyPlanInData.getOrderNo()); + + } + } + + //保存到SOTaskOrderHeader + SOTaskOrderHeaderData so = new SOTaskOrderHeaderData(); + so.setOrderNo(dailyPlanInData.getOrderNo()); + so.setSite(dailyPlanInData.getSite()); + so.setOrderDate(dailyPlanInData.getOrderDate()); + so.setUserName(dailyPlanInData.getUserName()); + so.setEnterDate(new Date()); + so.setOrderQty(dailyPlanInData.getOrderQty()); + so.setPlanOrderNo(dailyPlanInData.getOrderNo()); + so.setOrderQty(dailyPlanInData.getOrderQty()); + so.setPartNo(dailyPlanInData.getPartNo()); + so.setOrderRefType("生产订单"); + so.setShiftId(dailyPlanInData.getShiftId()); + + int i = 1; + for (int a = 1; a > 0; ) { + String orderNo = so.getOrderNo() + "-" + i; + List lsow = sOTaskOrderHeaderMapper.getWorkPlanDataByOrderNo(orderNo); + if (lsow.size() == 0) { + break; + } else { + i++; + } + } + String s = so.getOrderNo() + "-" + i; + so.setOrderNo(s); + sOTaskOrderHeaderMapper.savePlan(so); + + //查询SoScheduledListMapper是否有记录 没有就新增 有就修改 + List l1 = soScheduledListMapper.getWorkPlanData(dailyPlanInData); + if (l1.size() == 0) { + dailyPlanInData.setSchedulingSize(dailyPlanInData.getOrderQty()); + soScheduledListMapper.saveWorkPlanData(dailyPlanInData); + } else { + double size = l1.get(0).getSchedulingSize() + dailyPlanInData.getOrderQty(); + dailyPlanInData.setSchedulingSize(size); + soScheduledListMapper.updateWorkPlanData(dailyPlanInData); + } + } + } }