Browse Source

0823

master
ruanqiJialidiannao 4 years ago
parent
commit
4e0c68afdb
  1. 14
      src/main/java/com/letian/modules/production/controller/DailyPlanController.java
  2. 192
      src/main/java/com/letian/modules/production/entity/DailyPlanInData.java
  3. 11
      src/main/java/com/letian/modules/production/service/DailyPlanService.java
  4. 65
      src/main/java/com/letian/modules/production/service/impl/DailyPlanServiceImpl.java

14
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<DailyPlanInData> inList){
dailyPlanService.savePlans(inList);
return R.ok();
}
}

192
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;
}
}

11
src/main/java/com/letian/modules/production/service/DailyPlanService.java

@ -125,4 +125,15 @@ public interface DailyPlanService {
* @throw
*/
List<SOTaskOrderHeaderData> getDailyPlanDetail(DailyPlanInData dailyPlanInData);
/**
* @Description 批量排产
* @Title savePlans
* @param
* @author rq
* @date 2021/8/13 14:08
* @return double
* @throw
*/
void savePlans(List<DailyPlanInData> inList);
}

65
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<DailyPlanInData> inList){
for(int x=0;x<inList.size();x++){
DailyPlanInData dailyPlanInData=inList.get(x);
List<SOTaskOrderHeaderData> searchDate = sOTaskOrderHeaderMapper.getWorkPlanDataByOrderDateAndSite(dailyPlanInData);
if (searchDate.size() > 0) {
throw new RuntimeException("该日期该班次已存在日计划:"+dailyPlanInData.getOrderNo());
}
//动态检验计划数量是否超过可排产数量
List<SoScheduledListData> 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<SOTaskOrderHeaderData> lsow = sOTaskOrderHeaderMapper.getWorkPlanDataByOrderNo(orderNo);
if (lsow.size() == 0) {
break;
} else {
i++;
}
}
String s = so.getOrderNo() + "-" + i;
so.setOrderNo(s);
sOTaskOrderHeaderMapper.savePlan(so);
//查询SoScheduledListMapper是否有记录 没有就新增 有就修改
List<SoScheduledListData> 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);
}
}
}
}
Loading…
Cancel
Save