|
|
|
@ -1357,8 +1357,9 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public void saveProductionReportAndDefect(String site, String orderNo, Float itemNo, Integer seqNo, |
|
|
|
String rollNo, String operator, List<ProductionReportData> reportList, String rollNo2) { |
|
|
|
public void saveProductionReportAndDefect(String site, String orderNo, Float itemNo, Integer seqNo, |
|
|
|
String rollNo, String operator, List<ProductionReportData> reportList, |
|
|
|
String rollNo2, List<Map<String, Object>> rollDefectDetails) { |
|
|
|
if (reportList == null || reportList.isEmpty()) { |
|
|
|
return; |
|
|
|
} |
|
|
|
@ -1375,12 +1376,16 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
// 批量插入排数据 |
|
|
|
schedulingMapper.batchInsertProductionReport(reportList); |
|
|
|
|
|
|
|
// 计算不良总数 |
|
|
|
// 计算不良总数和面损总数 |
|
|
|
float totalDefectQty = 0; |
|
|
|
float totalSurfaceLossQty = 0; |
|
|
|
for (ProductionReportData report : reportList) { |
|
|
|
if (report.getDefectQty() != null && report.getDefectQty() > 0) { |
|
|
|
totalDefectQty += report.getDefectQty(); |
|
|
|
} |
|
|
|
if (report.getSurfaceLossQty() != null && report.getSurfaceLossQty() > 0) { |
|
|
|
totalSurfaceLossQty += report.getSurfaceLossQty(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 如果有不良数量,插入不良历史记录 |
|
|
|
@ -1390,22 +1395,81 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
if (nextHistSeqNo == null) { |
|
|
|
nextHistSeqNo = 1; |
|
|
|
} |
|
|
|
int histSeqNoCursor = nextHistSeqNo; |
|
|
|
|
|
|
|
// 创建不良历史记录 |
|
|
|
List<SfdcDefectHistData> defectList = new ArrayList<>(); |
|
|
|
|
|
|
|
// 保留原有默认不良记录:数量改为 总不良 - 该卷面损 |
|
|
|
float defaultDefectQty = totalDefectQty - totalSurfaceLossQty; |
|
|
|
if (defaultDefectQty < 0) { |
|
|
|
defaultDefectQty = 0f; |
|
|
|
} |
|
|
|
|
|
|
|
SfdcDefectHistData defectData = new SfdcDefectHistData(); |
|
|
|
defectData.setSite(site); |
|
|
|
defectData.setOrderNo(orderNo); |
|
|
|
defectData.setItemNo(itemNo); |
|
|
|
defectData.setSeqNo(seqNo); |
|
|
|
defectData.setHistSeqNo(nextHistSeqNo); |
|
|
|
defectData.setHistSeqNo(histSeqNoCursor++); |
|
|
|
defectData.setReportedby(operator); |
|
|
|
defectData.setDefectCode("10001"); // 默认不良代码,可以根据实际情况调整 |
|
|
|
defectData.setDefectQty(totalDefectQty); |
|
|
|
defectData.setDefectQty(defaultDefectQty); |
|
|
|
defectData.setRollNo(rollNo2); |
|
|
|
defectData.setRemark("创建分卷自动记录"); |
|
|
|
defectData.setReRollNo(rollNo); |
|
|
|
defectList.add(defectData); |
|
|
|
|
|
|
|
// 新增每卷选择的不良原因记录(对应面损明细) |
|
|
|
if (rollDefectDetails != null && !rollDefectDetails.isEmpty()) { |
|
|
|
for (Map<String, Object> detail : rollDefectDetails) { |
|
|
|
if (detail == null) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
String defectCode = detail.get("defectCode") == null |
|
|
|
? "" |
|
|
|
: String.valueOf(detail.get("defectCode")).trim(); |
|
|
|
if ("".equals(defectCode)) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
|
|
|
|
Float detailDefectQty = null; |
|
|
|
Object defectQtyObj = detail.get("defectQty"); |
|
|
|
if (defectQtyObj != null) { |
|
|
|
try { |
|
|
|
detailDefectQty = Float.valueOf(String.valueOf(defectQtyObj)); |
|
|
|
} catch (Exception ignored) { |
|
|
|
detailDefectQty = null; |
|
|
|
} |
|
|
|
} |
|
|
|
if (detailDefectQty == null || detailDefectQty <= 0) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
|
|
|
|
SfdcDefectHistData detailDefectData = new SfdcDefectHistData(); |
|
|
|
detailDefectData.setSite(site); |
|
|
|
detailDefectData.setOrderNo(orderNo); |
|
|
|
detailDefectData.setItemNo(itemNo); |
|
|
|
detailDefectData.setSeqNo(seqNo); |
|
|
|
detailDefectData.setHistSeqNo(histSeqNoCursor++); |
|
|
|
detailDefectData.setReportedby(operator); |
|
|
|
detailDefectData.setDefectCode(defectCode); |
|
|
|
detailDefectData.setDefectQty(detailDefectQty); |
|
|
|
detailDefectData.setRollNo(rollNo2); |
|
|
|
detailDefectData.setReRollNo(rollNo); |
|
|
|
|
|
|
|
String defectDesc = detail.get("defectDesc") == null |
|
|
|
? "" |
|
|
|
: String.valueOf(detail.get("defectDesc")).trim(); |
|
|
|
if (!"".equals(defectDesc)) { |
|
|
|
detailDefectData.setRemark("创建分卷不良原因:" + defectDesc); |
|
|
|
} else { |
|
|
|
detailDefectData.setRemark("创建分卷不良原因"); |
|
|
|
} |
|
|
|
|
|
|
|
defectList.add(detailDefectData); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 批量插入不良历史数据 |
|
|
|
schedulingMapper.batchInsertSfdcDefectHist(defectList); |
|
|
|
|