| | |
| | | public void setUserUtil(UserUtil userUtil) { |
| | | this.userUtil = userUtil; |
| | | } |
| | | |
| | | @Transactional |
| | | public int save(PrOrder p) { |
| | | p.id = null; |
| | |
| | | } |
| | | |
| | | private void changeRate(PrOrder prOrder) { |
| | | List<PrOrderItem> items = prOrder.items; |
| | | for (int i = 1; i < items.size(); i++) { |
| | | for (int j = i - 1; j >= 0; j--) { |
| | | //拿着i依次跟上一个比较,如果产品相同,则上一个记录complete_number - number 如果 > 0 分给i ,如果 < 0 则将 complete_number 置为0 |
| | | if (items.get(j).getProId().intValue() == items.get(i).getProId().intValue()) { |
| | | int remainNumber = items.get(j).getCompleteNumber() - items.get(j).getNumber(); |
| | | if (remainNumber > 0) { |
| | | items.get(j).setCompleteNumber(items.get(j).getNumber()); |
| | | items.get(j).setCompleteRate("100.00%"); |
| | | items.get(i).setCompleteNumber(remainNumber); |
| | | BigDecimal remainBig = new BigDecimal(remainNumber * 100); |
| | | BigDecimal iNumberBig = new BigDecimal(items.get(i).getNumber()); |
| | | BigDecimal result = remainBig.divide(iNumberBig, 2, RoundingMode.HALF_UP); |
| | | items.get(i).setCompleteRate(result.toString() +"%"); |
| | | }else{ |
| | | items.get(i).setCompleteNumber(0); |
| | | items.get(i).setCompleteRate("0.00%"); |
| | | if (prOrder.items != null) { |
| | | List<PrOrderItem> items = prOrder.items; |
| | | for (int i = 1; i < items.size(); i++) { |
| | | for (int j = i - 1; j >= 0; j--) { |
| | | //拿着i依次跟上一个比较,如果产品相同,则上一个记录complete_number - number 如果 > 0 分给i ,如果 < 0 则将 complete_number 置为0 |
| | | if (items.get(j).getProId().intValue() == items.get(i).getProId().intValue()) { |
| | | int remainNumber = items.get(j).getCompleteNumber() - items.get(j).getNumber(); |
| | | if (remainNumber > 0) { |
| | | items.get(j).setCompleteNumber(items.get(j).getNumber()); |
| | | items.get(j).setCompleteRate("100.00%"); |
| | | items.get(i).setCompleteNumber(remainNumber); |
| | | BigDecimal remainBig = new BigDecimal(remainNumber * 100); |
| | | BigDecimal iNumberBig = new BigDecimal(items.get(i).getNumber()); |
| | | BigDecimal result = remainBig.divide(iNumberBig, 2, RoundingMode.HALF_UP); |
| | | items.get(i).setCompleteRate(result.toString() + "%"); |
| | | } else { |
| | | items.get(i).setCompleteNumber(0); |
| | | items.get(i).setCompleteRate("0.00%"); |
| | | } |
| | | break; |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | return orderList; |
| | | } |
| | | |
| | | /** |
| | | * 只更新状态,不更新其他字段 |
| | | * @param order |
| | | * 更新状态 如果有在执行中的任务,不让暂停 |
| | | * |
| | | * @param order 更新状态 如果有在执行中的任务,不让暂停 |
| | | * @return |
| | | */ |
| | | @Transactional |
| | | @Transactional |
| | | public int updateStatus(PrOrder order) { |
| | | if(order.status == OrderStatusEnum.NORMAL.getCode()){ |
| | | if (order.status == OrderStatusEnum.NORMAL.getCode()) { |
| | | PrOrder prOrder = orderDao.selectByPrimaryKey(order.id); |
| | | prOrder.status = order.status; |
| | | extractedCheck(prOrder); |
| | | } |
| | | PrOrder param = new PrOrder(); |
| | | param.id =order.id; |
| | | PrOrder param = new PrOrder(); |
| | | param.id = order.id; |
| | | param.status = order.status; |
| | | return orderDao.updateByPrimaryKeySelective(param); |
| | | } |
| | | |
| | | //如果交期小于当前时间,不允许设置为正常 |
| | | private void extractedCheck(PrOrder order) { |
| | | if(order.status == OrderStatusEnum.NORMAL.getCode()){ |
| | | if (order.status == OrderStatusEnum.NORMAL.getCode()) { |
| | | String deliveryDateStr = order.getDeliveryDate(); |
| | | LocalDate endDate = LocalDate.parse(deliveryDateStr, DateTimeFormatter.ISO_LOCAL_DATE); |
| | | LocalDate nextDay = endDate.plusDays(1); |