|
@@ -695,6 +695,80 @@ public class ProduceReportServiceImpl extends BaseServiceImpl<ProduceReportMappe
|
|
|
// 更新
|
|
|
report.setValue(new BigDecimal(reportStockPre.getValue()).add(new BigDecimal(inStock.getValue())).subtract(new BigDecimal(reportStock.getValue())).toString());
|
|
|
this.modModelByPrimaryKey(report);
|
|
|
+
|
|
|
+
|
|
|
+ // 重新计算当日单耗和月均单耗
|
|
|
+ // 每单当日单耗和977生产量,如果生产量为0,则当日单耗为0
|
|
|
+ Weekend<ProduceReport> weekendDanhao = new Weekend<>(ProduceReport.class);
|
|
|
+ WeekendCriteria<ProduceReport, Object> weekendCriteriaDanhao = weekendDanhao.weekendCriteria();
|
|
|
+ weekendCriteriaDanhao.andEqualTo(ProduceReport::getNo, "hy_" + no.replace("_hy", ""))
|
|
|
+ .andEqualTo(ProduceReport::getYear, date.getYear())
|
|
|
+ .andEqualTo(ProduceReport::getMonth, date.getMonthValue())
|
|
|
+ .andEqualTo(ProduceReport::getDay, date.getDayOfMonth())
|
|
|
+ .andEqualTo(ProduceReport::getDate, date);
|
|
|
+ ProduceReport danhao = mapper.selectOneByExample(weekendDanhao);
|
|
|
+
|
|
|
+ // 默认977
|
|
|
+ String sclNo = "scl_0300027";
|
|
|
+ BigDecimal rate = new BigDecimal(0.3);
|
|
|
+ if (no.equals("0100010_hy") || no.equals("0100065_hy") || no.equals("0100120_hy") || no.equals("0100160_hy") || no.equals("0100086_hy")) {
|
|
|
+ sclNo = "scl_0600032";// 902
|
|
|
+ rate = new BigDecimal(1);
|
|
|
+ }
|
|
|
+ Weekend<ProduceReport> weekend977 = new Weekend<>(ProduceReport.class);
|
|
|
+ WeekendCriteria<ProduceReport, Object> weekendCriteria977 = weekend977.weekendCriteria();
|
|
|
+ weekendCriteria977.andEqualTo(ProduceReport::getNo, sclNo)
|
|
|
+ .andEqualTo(ProduceReport::getYear, date.getYear())
|
|
|
+ .andEqualTo(ProduceReport::getMonth, date.getMonthValue())
|
|
|
+ .andEqualTo(ProduceReport::getDay, date.getDayOfMonth())
|
|
|
+ .andEqualTo(ProduceReport::getDate, date);
|
|
|
+ ProduceReport cs077 = mapper.selectOneByExample(weekend977);
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(cs077.getValue()) || new BigDecimal(cs077.getValue()).compareTo(new BigDecimal(0)) == 0 || new BigDecimal(cs077.getValue()).compareTo(new BigDecimal(0)) == 0) {
|
|
|
+ danhao.setValue("0");
|
|
|
+ } else {
|
|
|
+ danhao.setValue(new BigDecimal(report.getValue()).divide(new BigDecimal(cs077.getValue()), RoundingMode.HALF_UP).multiply(rate).setScale(2, RoundingMode.HALF_UP).toString());
|
|
|
+ }
|
|
|
+ this.modModelByPrimaryKey(danhao);
|
|
|
+
|
|
|
+ // 月均单耗=本月耗用/月累计产量,月均单耗和月产量977生产量,如果生产量为0,则单耗为0
|
|
|
+ Weekend<ProduceReport> weekendHyoMonth = new Weekend<>(ProduceReport.class);
|
|
|
+ WeekendCriteria<ProduceReport, Object> weekendCriteriaHyMonth = weekendHyoMonth.weekendCriteria();
|
|
|
+ weekendCriteriaHyMonth.andEqualTo(ProduceReport::getNo, "hy_" + no.replace("_hy", "_month"))
|
|
|
+ .andEqualTo(ProduceReport::getYear, date.getYear())
|
|
|
+ .andEqualTo(ProduceReport::getMonth, date.getMonthValue())
|
|
|
+ .andEqualTo(ProduceReport::getDay, date.getDayOfMonth())
|
|
|
+ .andEqualTo(ProduceReport::getDate, date);
|
|
|
+ ProduceReport danhaoMonth = mapper.selectOneByExample(weekendHyoMonth);
|
|
|
+
|
|
|
+ log.info("no: " + no);
|
|
|
+ Weekend<ProduceReport> weekendDanhaoMonth = new Weekend<>(ProduceReport.class);
|
|
|
+ WeekendCriteria<ProduceReport, Object> weekendCriteriaDanhaoMonth = weekendDanhaoMonth.weekendCriteria();
|
|
|
+ weekendCriteriaDanhaoMonth.andEqualTo(ProduceReport::getNo, "ck_" + no.replace("_hy", "_hy_month"))
|
|
|
+ .andEqualTo(ProduceReport::getYear, date.getYear())
|
|
|
+ .andEqualTo(ProduceReport::getMonth, date.getMonthValue())
|
|
|
+ .andEqualTo(ProduceReport::getDay, date.getDayOfMonth())
|
|
|
+ .andEqualTo(ProduceReport::getDate, date);
|
|
|
+ ProduceReport month = mapper.selectOneByExample(weekendDanhaoMonth);
|
|
|
+
|
|
|
+ Weekend<ProduceReport> weekend977Month = new Weekend<>(ProduceReport.class);
|
|
|
+ WeekendCriteria<ProduceReport, Object> weekendCriteria977Month = weekend977Month.weekendCriteria();
|
|
|
+ weekendCriteria977Month.andEqualTo(ProduceReport::getNo, sclNo + "_month")
|
|
|
+ .andEqualTo(ProduceReport::getYear, date.getYear())
|
|
|
+ .andEqualTo(ProduceReport::getMonth, date.getMonthValue())
|
|
|
+ .andEqualTo(ProduceReport::getDay, date.getDayOfMonth())
|
|
|
+ .andEqualTo(ProduceReport::getDate, date);
|
|
|
+ ProduceReport cs077Month = mapper.selectOneByExample(weekend977Month);
|
|
|
+ log.info("month: " + month.getValue());
|
|
|
+ log.info("cs077Month: " + cs077Month.getValue());
|
|
|
+ if (StringUtils.isBlank(cs077Month.getValue()) || new BigDecimal(cs077Month.getValue()).compareTo(new BigDecimal(0)) == 0) {
|
|
|
+ danhaoMonth.setValue("0");
|
|
|
+ } else {
|
|
|
+ danhaoMonth.setValue(new BigDecimal(month.getValue()).divide(new BigDecimal(cs077Month.getValue()), RoundingMode.HALF_UP).multiply(rate).setScale(2, RoundingMode.HALF_UP).toString());
|
|
|
+ }
|
|
|
+ this.modModelByPrimaryKey(danhaoMonth);
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/**
|