| | |
| | | map.put("totalSum",totalSum); |
| | | return map; |
| | | } |
| | | |
| | | public boolean updateDeliveryMoney(OrderDetail orderDetail,Order order) { |
| | | List<Delivery> deliveryList=deliveryDetailMapper.getDeliverOrderNumber(orderDetail.getOrderId(),orderDetail.getOrderNumber()); |
| | | for (Delivery delivery : deliveryList) { |
| | | if(delivery.getDeliveryState()==0){ |
| | | List<DeliveryDetail> deliveryDetailList=deliveryDetailMapper.getDeliverDetailOrderNumber(orderDetail.getOrderId(),orderDetail.getOrderNumber(),delivery.getDeliveryId()); |
| | | for (DeliveryDetail deliveryDetail : deliveryDetailList) { |
| | | deliveryDetail = updateOrderMoneyComputeds(deliveryDetail,orderDetail,order.getCalculateType()); |
| | | deliveryDetailMapper.updateDeliveryDetailmonye(orderDetail.getPrice(),deliveryDetail); |
| | | } |
| | | BigDecimal money = new BigDecimal("0"); |
| | | List<DeliveryDetail> deliveryDetailListNew=deliveryDetailMapper.getIsNotDeliveryDetail(delivery.getDeliveryId()); |
| | | for (DeliveryDetail deliveryDetail : deliveryDetailListNew) { |
| | | BigDecimal getMoney= BigDecimal.valueOf(deliveryDetail.getMoney()); |
| | | money=money.add(getMoney); |
| | | } |
| | | deliveryDetailMapper.updateDeliverymonye(delivery.getDeliveryId(), (double) Math.round(money.doubleValue())); |
| | | |
| | | } |
| | | |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | private DeliveryDetail updateOrderMoneyComputeds(DeliveryDetail deliveryDetail,OrderDetail orderDetail, Integer calculateType) { |
| | | BigDecimal getPrice= BigDecimal.valueOf(orderDetail.getPrice()); |
| | | BigDecimal getQuantity= BigDecimal.valueOf(deliveryDetail.getQuantity()); |
| | | BigDecimal getComputeGrossArea= BigDecimal.valueOf(deliveryDetail.getArea()); |
| | | BigDecimal getComputeArea= BigDecimal.valueOf(orderDetail.getComputeArea()); |
| | | BigDecimal getWidth= BigDecimal.valueOf(orderDetail.getWidth()); |
| | | BigDecimal getHeight= BigDecimal.valueOf(orderDetail.getHeight()); |
| | | if (calculateType == 3) { |
| | | deliveryDetail.setMoney(getPrice.multiply(getQuantity).setScale(2, RoundingMode.HALF_UP).doubleValue()); |
| | | }else if (calculateType == 4) { |
| | | if(Objects.equals(orderDetail.getArea(), orderDetail.getComputeArea())&&Objects.equals(orderDetail.getGrossArea(), orderDetail.getComputeGrossArea())){ |
| | | deliveryDetail.setMoney(getWidth.multiply(getHeight).multiply(getQuantity).multiply(getPrice). |
| | | divide(BigDecimal.valueOf(1000000), 2, RoundingMode.HALF_UP).doubleValue()); |
| | | }else{ |
| | | deliveryDetail.setMoney(getPrice.multiply(getComputeGrossArea).setScale(2, RoundingMode.HALF_UP).doubleValue()); |
| | | } |
| | | }else if (calculateType == 1){ |
| | | deliveryDetail.setMoney(getPrice.multiply(getComputeArea).multiply(getQuantity).setScale(2, RoundingMode.HALF_UP).doubleValue()); |
| | | }else{ |
| | | deliveryDetail.setMoney(getPrice.multiply(getComputeGrossArea).setScale(2, RoundingMode.HALF_UP).doubleValue()); |
| | | } |
| | | return deliveryDetail; |
| | | } |
| | | } |