| | |
| | | } |
| | | |
| | | // 状态 = 数量和完工数量比较 |
| | | if(i.getSchedulingNum().compareTo(new BigDecimal(0)) == 0){ |
| | | i.setStatus("未完成"); |
| | | } else if(i.getQuantity().compareTo(i.getSchedulingNum()) <= 0){ |
| | | if(i.getSuccessNum().compareTo(new BigDecimal(0)) == 0){ |
| | | i.setStatus("未开始"); |
| | | } else if(i.getQuantity().compareTo(i.getSuccessNum()) <= 0){ |
| | | i.setStatus("已完成"); |
| | | }else{ |
| | | i.setStatus("生产中"); |
| | | } |
| | | // 进度保留两位小数 |
| | | i.setProgress(i.getSchedulingNum().divide(i.getQuantity(),4,RoundingMode.CEILING).multiply(new BigDecimal(100))); |
| | | |
| | | }); |
| | | return list; |
| | |
| | | // 需要 / 损耗率 |
| | | Loss loss = lossMapper.selectOne(new LambdaQueryWrapper<Loss>().last("limit 1")); |
| | | BigDecimal lossNum = loss == null ? new BigDecimal(6) : loss.getRate(); //没有损耗率则默认为6 |
| | | |
| | | return new BigDecimal(totalNum.get()).multiply(new BigDecimal(100)).divide(lossNum, 2,RoundingMode.HALF_UP); |
| | | lossNum = new BigDecimal(100).subtract(lossNum); // 100 - 损耗率 |
| | | lossNum = lossNum.divide(new BigDecimal(100), 2,RoundingMode.DOWN); |
| | | return new BigDecimal(totalNum.get()).multiply(lossNum); |
| | | } |
| | | |
| | | private final LossMapper lossMapper; |