|
|
@@ -156,29 +156,31 @@ public class InventoryController extends BaseController {
|
|
|
meterStock.setMin(day.getMeterMin());
|
|
|
meterStock.setAvg(day.getMeterAvg());
|
|
|
meterStock.setDate(DateUtils.toLocalDate(day.getTime()));
|
|
|
-
|
|
|
- hourMap.get(meterMaxHour).stream()
|
|
|
- .filter(item -> item.getMeterNum() > 0)
|
|
|
- .sorted(Comparator.comparing(TwinCalcHourBp::getMeterNum).reversed())
|
|
|
- .collect(Collectors.groupingBy(TwinCalcHourBp::getMick))
|
|
|
- .forEach((mick, list) -> {
|
|
|
- int meterNum = list.stream().mapToInt(TwinCalcHourBp::getMeterNum).sum();
|
|
|
- BpVO.YarnTypeDetail detail = createDetail.apply(mick);
|
|
|
- detail.setNum(meterNum);
|
|
|
- detail.setRatio(new BigDecimal(meterNum).divide(new BigDecimal(day.getMeterMax()), 4, RoundingMode.HALF_UP));
|
|
|
- meterStock.getDetails().add(detail);
|
|
|
- });
|
|
|
-
|
|
|
- hourMap.get(meterMinHour).stream()
|
|
|
- .filter(item -> item.getMeterNum() > 0)
|
|
|
- .collect(Collectors.groupingBy(TwinCalcHourBp::getMick))
|
|
|
- .forEach((mick, list) -> {
|
|
|
- int meterNum = list.stream().mapToInt(TwinCalcHourBp::getMeterNum).sum();
|
|
|
- BpVO.YarnTypeDetail detail = createDetail.apply(mick);
|
|
|
- detail.setNum(meterNum);
|
|
|
- detail.setRatio(new BigDecimal(meterNum).divide(new BigDecimal(day.getMeterMin()), 4, RoundingMode.HALF_UP));
|
|
|
- meterStock.getMinDetails().add(detail);
|
|
|
- });
|
|
|
+ if (hourMap.get(meterMaxHour) != null) {
|
|
|
+ hourMap.get(meterMaxHour).stream()
|
|
|
+ .filter(item -> item.getMeterNum() > 0)
|
|
|
+ .sorted(Comparator.comparing(TwinCalcHourBp::getMeterNum).reversed())
|
|
|
+ .collect(Collectors.groupingBy(TwinCalcHourBp::getMick))
|
|
|
+ .forEach((mick, list) -> {
|
|
|
+ int meterNum = list.stream().mapToInt(TwinCalcHourBp::getMeterNum).sum();
|
|
|
+ BpVO.YarnTypeDetail detail = createDetail.apply(mick);
|
|
|
+ detail.setNum(meterNum);
|
|
|
+ detail.setRatio(new BigDecimal(meterNum).divide(new BigDecimal(day.getMeterMax()), 4, RoundingMode.HALF_UP));
|
|
|
+ meterStock.getDetails().add(detail);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (hourMap.get(meterMinHour) != null) {
|
|
|
+ hourMap.get(meterMinHour).stream()
|
|
|
+ .filter(item -> item.getMeterNum() > 0)
|
|
|
+ .collect(Collectors.groupingBy(TwinCalcHourBp::getMick))
|
|
|
+ .forEach((mick, list) -> {
|
|
|
+ int meterNum = list.stream().mapToInt(TwinCalcHourBp::getMeterNum).sum();
|
|
|
+ BpVO.YarnTypeDetail detail = createDetail.apply(mick);
|
|
|
+ detail.setNum(meterNum);
|
|
|
+ detail.setRatio(new BigDecimal(meterNum).divide(new BigDecimal(day.getMeterMin()), 4, RoundingMode.HALF_UP));
|
|
|
+ meterStock.getMinDetails().add(detail);
|
|
|
+ });
|
|
|
+ }
|
|
|
meterStock.getDetails().sort(Comparator.comparing(BpVO.YarnTypeDetail::getNum).reversed());
|
|
|
meterStock.getMinDetails().sort(Comparator.comparing(BpVO.YarnTypeDetail::getNum).reversed());
|
|
|
bpVO.getMeterMonthStocks().add(meterStock);
|
|
|
@@ -189,27 +191,33 @@ public class InventoryController extends BaseController {
|
|
|
weightStock.setMin(day.getWeightMin());
|
|
|
weightStock.setAvg(day.getWeightAvg());
|
|
|
weightStock.setDate(DateUtils.toLocalDate(day.getTime()));
|
|
|
- hourMap.get(weightMaxHour).stream()
|
|
|
- .filter(item -> item.getWeightNum() > 0)
|
|
|
- .collect(Collectors.groupingBy(TwinCalcHourBp::getMick))
|
|
|
- .forEach((mick, list) -> {
|
|
|
- int weightNum = list.stream().mapToInt(TwinCalcHourBp::getWeightNum).sum();
|
|
|
- BpVO.YarnTypeDetail detail = createDetail.apply(mick);
|
|
|
- detail.setNum(weightNum);
|
|
|
- detail.setRatio(new BigDecimal(weightNum).divide(new BigDecimal(day.getWeightMax()), 4, RoundingMode.HALF_UP));
|
|
|
- weightStock.getDetails().add(detail);
|
|
|
- });
|
|
|
|
|
|
- hourMap.get(weightMinHour).stream()
|
|
|
- .filter(item -> item.getWeightNum() > 0)
|
|
|
- .collect(Collectors.groupingBy(TwinCalcHourBp::getMick))
|
|
|
- .forEach((mick, list) -> {
|
|
|
- int weightNum = list.stream().mapToInt(TwinCalcHourBp::getWeightNum).sum();
|
|
|
- BpVO.YarnTypeDetail detail = createDetail.apply(mick);
|
|
|
- detail.setNum(weightNum);
|
|
|
- detail.setRatio(new BigDecimal(weightNum).divide(new BigDecimal(day.getWeightMin()), 4, RoundingMode.HALF_UP));
|
|
|
- weightStock.getMinDetails().add(detail);
|
|
|
- });
|
|
|
+ if (hourMap.get(weightMaxHour) != null) {
|
|
|
+ hourMap.get(weightMaxHour).stream()
|
|
|
+ .filter(item -> item.getWeightNum() > 0)
|
|
|
+ .collect(Collectors.groupingBy(TwinCalcHourBp::getMick))
|
|
|
+ .forEach((mick, list) -> {
|
|
|
+ int weightNum = list.stream().mapToInt(TwinCalcHourBp::getWeightNum).sum();
|
|
|
+ BpVO.YarnTypeDetail detail = createDetail.apply(mick);
|
|
|
+ detail.setNum(weightNum);
|
|
|
+ detail.setRatio(new BigDecimal(weightNum).divide(new BigDecimal(day.getWeightMax()), 4, RoundingMode.HALF_UP));
|
|
|
+ weightStock.getDetails().add(detail);
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if (hourMap.get(weightMinHour) != null) {
|
|
|
+ hourMap.get(weightMinHour).stream()
|
|
|
+ .filter(item -> item.getWeightNum() > 0)
|
|
|
+ .collect(Collectors.groupingBy(TwinCalcHourBp::getMick))
|
|
|
+ .forEach((mick, list) -> {
|
|
|
+ int weightNum = list.stream().mapToInt(TwinCalcHourBp::getWeightNum).sum();
|
|
|
+ BpVO.YarnTypeDetail detail = createDetail.apply(mick);
|
|
|
+ detail.setNum(weightNum);
|
|
|
+ detail.setRatio(new BigDecimal(weightNum).divide(new BigDecimal(day.getWeightMin()), 4, RoundingMode.HALF_UP));
|
|
|
+ weightStock.getMinDetails().add(detail);
|
|
|
+ });
|
|
|
+ }
|
|
|
weightStock.getDetails().sort(Comparator.comparing(BpVO.YarnTypeDetail::getNum).reversed());
|
|
|
weightStock.getMinDetails().sort(Comparator.comparing(BpVO.YarnTypeDetail::getNum).reversed());
|
|
|
bpVO.getWeightMonthStocks().add(weightStock);
|
|
|
@@ -220,29 +228,33 @@ public class InventoryController extends BaseController {
|
|
|
rollStock.setMin(day.getRollMin());
|
|
|
rollStock.setAvg(day.getRollAvg());
|
|
|
rollStock.setDate(DateUtils.toLocalDate(day.getTime()));
|
|
|
+ if (hourMap.get(rollMaxHour) != null) {
|
|
|
|
|
|
- hourMap.get(rollMaxHour).stream()
|
|
|
- .filter(item -> item.getRollNum() > 0)
|
|
|
- .sorted(Comparator.comparing(TwinCalcHourBp::getRollNum).reversed())
|
|
|
- .collect(Collectors.groupingBy(TwinCalcHourBp::getMick))
|
|
|
- .forEach((mick, list) -> {
|
|
|
- int rollNum = list.stream().mapToInt(TwinCalcHourBp::getRollNum).sum();
|
|
|
- BpVO.YarnTypeDetail detail = createDetail.apply(mick);
|
|
|
- detail.setNum(rollNum);
|
|
|
- detail.setRatio(new BigDecimal(rollNum).divide(new BigDecimal(day.getRollMax()), 4, RoundingMode.HALF_UP));
|
|
|
- rollStock.getDetails().add(detail);
|
|
|
- });
|
|
|
- hourMap.get(rollMinHour).stream()
|
|
|
- .filter(item -> item.getRollNum() > 0)
|
|
|
- .sorted(Comparator.comparing(TwinCalcHourBp::getRollNum).reversed())
|
|
|
- .collect(Collectors.groupingBy(TwinCalcHourBp::getMick))
|
|
|
- .forEach((mick, list) -> {
|
|
|
- int rollNum = list.stream().mapToInt(TwinCalcHourBp::getRollNum).sum();
|
|
|
- BpVO.YarnTypeDetail detail = createDetail.apply(mick);
|
|
|
- detail.setNum(rollNum);
|
|
|
- detail.setRatio(new BigDecimal(rollNum).divide(new BigDecimal(day.getRollMin()), 4, RoundingMode.HALF_UP));
|
|
|
- rollStock.getMinDetails().add(detail);
|
|
|
- });
|
|
|
+ hourMap.get(rollMaxHour).stream()
|
|
|
+ .filter(item -> item.getRollNum() > 0)
|
|
|
+ .sorted(Comparator.comparing(TwinCalcHourBp::getRollNum).reversed())
|
|
|
+ .collect(Collectors.groupingBy(TwinCalcHourBp::getMick))
|
|
|
+ .forEach((mick, list) -> {
|
|
|
+ int rollNum = list.stream().mapToInt(TwinCalcHourBp::getRollNum).sum();
|
|
|
+ BpVO.YarnTypeDetail detail = createDetail.apply(mick);
|
|
|
+ detail.setNum(rollNum);
|
|
|
+ detail.setRatio(new BigDecimal(rollNum).divide(new BigDecimal(day.getRollMax()), 4, RoundingMode.HALF_UP));
|
|
|
+ rollStock.getDetails().add(detail);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (hourMap.get(rollMinHour) != null) {
|
|
|
+ hourMap.get(rollMinHour).stream()
|
|
|
+ .filter(item -> item.getRollNum() > 0)
|
|
|
+ .sorted(Comparator.comparing(TwinCalcHourBp::getRollNum).reversed())
|
|
|
+ .collect(Collectors.groupingBy(TwinCalcHourBp::getMick))
|
|
|
+ .forEach((mick, list) -> {
|
|
|
+ int rollNum = list.stream().mapToInt(TwinCalcHourBp::getRollNum).sum();
|
|
|
+ BpVO.YarnTypeDetail detail = createDetail.apply(mick);
|
|
|
+ detail.setNum(rollNum);
|
|
|
+ detail.setRatio(new BigDecimal(rollNum).divide(new BigDecimal(day.getRollMin()), 4, RoundingMode.HALF_UP));
|
|
|
+ rollStock.getMinDetails().add(detail);
|
|
|
+ });
|
|
|
+ }
|
|
|
rollStock.getDetails().sort(Comparator.comparing(BpVO.YarnTypeDetail::getNum).reversed());
|
|
|
rollStock.getMinDetails().sort(Comparator.comparing(BpVO.YarnTypeDetail::getNum).reversed());
|
|
|
bpVO.getRollMonthStocks().add(rollStock);
|
|
|
@@ -276,7 +288,9 @@ public class InventoryController extends BaseController {
|
|
|
//当日统计,按米克重统计
|
|
|
Map<Integer, BpVO.Stock[]> stats = new HashMap<>(16);
|
|
|
List<TwinCalcHourBp> hourBpList = hourBpService.selectTwinCalcHourPtByDay(LocalDateTime.now().minusHours(7).toLocalDate());
|
|
|
- hourBpList.forEach(bp -> {
|
|
|
+ hourBpList.forEach(bp ->
|
|
|
+
|
|
|
+ {
|
|
|
BpVO.Stock[] stock = stats.computeIfAbsent(bp.getMick(), k -> {
|
|
|
BpVO.Stock[] newStock = new BpVO.Stock[3];
|
|
|
newStock[0] = new BpVO.Stock(); // 卷数
|
|
|
@@ -299,19 +313,31 @@ public class InventoryController extends BaseController {
|
|
|
List<BpVO.Stock> meterStocks = new ArrayList<>();
|
|
|
List<BpVO.Stock> weightStocks = new ArrayList<>();
|
|
|
|
|
|
- stats.values().stream().forEach(stockArray -> {
|
|
|
- stockArray[0].calcAvg((int) hours);
|
|
|
- stockArray[1].calcAvg((int) hours);
|
|
|
- stockArray[2].calcAvg((int) hours);
|
|
|
+ stats.values().
|
|
|
|
|
|
- rollStocks.add(stockArray[0]);
|
|
|
- meterStocks.add(stockArray[1]);
|
|
|
- weightStocks.add(stockArray[2]);
|
|
|
- });
|
|
|
+ stream().
|
|
|
+
|
|
|
+ forEach(stockArray ->
|
|
|
+
|
|
|
+ {
|
|
|
+ stockArray[0].calcAvg((int) hours);
|
|
|
+ stockArray[1].calcAvg((int) hours);
|
|
|
+ stockArray[2].calcAvg((int) hours);
|
|
|
+
|
|
|
+ rollStocks.add(stockArray[0]);
|
|
|
+ meterStocks.add(stockArray[1]);
|
|
|
+ weightStocks.add(stockArray[2]);
|
|
|
+ });
|
|
|
+
|
|
|
+ rollStocks.sort(Comparator.comparing(BpVO.Stock::getMick).
|
|
|
+
|
|
|
+ reversed());
|
|
|
+ meterStocks.sort(Comparator.comparing(BpVO.Stock::getMick).
|
|
|
+
|
|
|
+ reversed());
|
|
|
+ weightStocks.sort(Comparator.comparing(BpVO.Stock::getMick).
|
|
|
|
|
|
- rollStocks.sort(Comparator.comparing(BpVO.Stock::getMick).reversed());
|
|
|
- meterStocks.sort(Comparator.comparing(BpVO.Stock::getMick).reversed());
|
|
|
- weightStocks.sort(Comparator.comparing(BpVO.Stock::getMick).reversed());
|
|
|
+ reversed());
|
|
|
bpVO.setRollStocks(rollStocks);
|
|
|
bpVO.setMeterStocks(meterStocks);
|
|
|
bpVO.setWeightStocks(weightStocks);
|