| | |
| | | calculateType=orderDetail.getOrder().getCalculateType(); |
| | | } |
| | | double deliveryDetailMoney = 0.0; |
| | | |
| | | double deliveryDetailArea = 0.0; |
| | | BigDecimal getComputeArea= BigDecimal.valueOf(orderDetail.getComputeArea()); |
| | | BigDecimal getQuantity= BigDecimal.valueOf(orderDetail.getDeliveryDetail().getQuantity()); |
| | | BigDecimal getPrice= BigDecimal.valueOf(orderDetail.getPrice()); |
| | |
| | | //根据订单计算方式进行金额计算 |
| | | if (calculateType==1){ |
| | | deliveryDetailMoney=singlePieceArea.doubleValue(); |
| | | deliveryDetailArea=getComputeArea.multiply(getQuantity).doubleValue(); |
| | | |
| | | }else if (calculateType==2){ |
| | | if(Objects.equals(orderDetail.getArea(), orderDetail.getComputeArea())){ |
| | | deliveryDetailMoney=getWidth.multiply(getHeight).multiply(getQuantity).divide(BigDecimal.valueOf(1000000), 2, RoundingMode.HALF_UP) |
| | | .multiply(getPrice).setScale(2, RoundingMode.HALF_UP).doubleValue(); |
| | | deliveryDetailArea=getWidth.multiply(getHeight).multiply(getQuantity).divide(BigDecimal.valueOf(1000000), 2, RoundingMode.HALF_UP).doubleValue(); |
| | | }else{ |
| | | deliveryDetailMoney=singlePieceArea.doubleValue(); |
| | | deliveryDetailArea=getComputeArea.multiply(getQuantity).doubleValue(); |
| | | } |
| | | }else if (calculateType==3){ |
| | | deliveryDetailMoney=getQuantity.multiply(getPrice).setScale(2, RoundingMode.HALF_UP).doubleValue(); |
| | | deliveryDetailArea=getComputeArea.multiply(getQuantity).doubleValue(); |
| | | |
| | | } |
| | | /*if (calculateType==1){ |
| | |
| | | |
| | | //对循环明细的数据进行累加 |
| | | quantity += orderDetail.getDeliveryDetail().getQuantity(); |
| | | area += orderDetail.getComputeArea() * orderDetail.getDeliveryDetail().getQuantity(); |
| | | area += deliveryDetailArea; |
| | | money += deliveryDetailMoney; |
| | | Integer deliveryDetailmaximum = deliveryDetailMapper.getdeliveryDetailmaximum(oddNumber); |
| | | |
| | |
| | | } |
| | | }); |
| | | } |
| | | |
| | | //新增发货明细数据 |
| | | deliveryDetailMapper.insertDeliveryDetail(orderDetail, oddNumber, deliveryDetailmaximum + 1,deliveryDetailMoney,deliveryDetailotherMoneys); |
| | | deliveryDetailMapper.insertDeliveryDetail(orderDetail, oddNumber, deliveryDetailmaximum + 1,deliveryDetailMoney,deliveryDetailotherMoneys,deliveryDetailArea); |
| | | //修改订单明细 |
| | | deliveryDetailMapper.updateOrderDetailDeliveryNum(orderDetail); |
| | | //修改库存表出库数量 |
| | |
| | | |
| | | } |
| | | |
| | | public Map<String, Object> getSelectOrderPrinting(OrderDetail orderDetail) { |
| | | public Map<String, Object> getSelectOrderPrinting(OrderDetail orderDetail,List<String> productId) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | List <Map<String, Object>> list=new ArrayList<Map<String, Object>>();//最终结果 |
| | | List <Map<String, Object>> moneryList=new ArrayList<Map<String, Object>>();//最终结果 |
| | | List<OrderDetail> orderDetailList=deliveryDetailMapper.getSelectOrderPrinting(orderDetail); |
| | | for (OrderDetail detail : orderDetailList) { |
| | | List<Map<String,Object>> orderProductDistinct; |
| | | if (!Objects.equals(productId.get(0), "null")){ |
| | | orderProductDistinct = orderDetailMapper.getOrderProductDistinctByIds(orderDetail.getOrderId(),productId); |
| | | }else{ |
| | | orderProductDistinct = orderDetailMapper.getOrderProductDistinctById(orderDetail.getOrderId()); |
| | | } |
| | | BigDecimal areSum=new BigDecimal("0"); |
| | | BigDecimal grossAmount=new BigDecimal("0"); |
| | | int quantity=0; |
| | | for (Map<String, Object> maps : orderProductDistinct) { |
| | | List<OrderDetail> orderDetails = deliveryDetailMapper.getSelectOrderPrinting(maps.get("productId"),orderDetail.getOrderId()); |
| | | for (OrderDetail detail : orderDetails) { |
| | | |
| | | Map<String, Object> itemmap = new HashMap<>(); |
| | | List<Map<String, Object>> deliveryDetailList2 = deliveryDetailMapper.getSelectOrderDetailPrinting( |
| | | detail.getProductId(), detail.getOrderId()); |
| | | for (Map<String, Object> stringObjectMap : deliveryDetailList2) { |
| | | areSum=areSum.add(BigDecimal.valueOf(detail.getArea())); |
| | | quantity+=detail.getQuantity(); |
| | | grossAmount=grossAmount.add(BigDecimal.valueOf(detail.getGrossAmount())); |
| | | |
| | | if(stringObjectMap.get("other_columns")!=null){ |
| | | JSONObject jsonObject = JSON.parseObject(stringObjectMap.get("other_columns").toString()); |
| | | for(String key : jsonObject.keySet()){ |
| | | boolean isnull = key.contains("M"); |
| | | if(isnull){ |
| | | Map<String, Object> moneryItemmap = new HashMap<>(); |
| | | Map<String, Object> deliveryDetailOtherMoney = deliveryDetailMapper.getSelectOrderotherMoney(detail.getOrderId(),Integer.parseInt(stringObjectMap.get("order_number").toString()),key,jsonObject.get(key).toString()); |
| | | moneryItemmap.put("DeliveryDetailOtherMoney", deliveryDetailOtherMoney); |
| | | moneryList.add(moneryItemmap); |
| | | Map<String, Object> itemmap = new HashMap<>(); |
| | | List<Map<String, Object>> deliveryDetailList2 = deliveryDetailMapper.getSelectOrderDetailPrinting( |
| | | detail.getProductId(), detail.getOrderId()); |
| | | for (Map<String, Object> stringObjectMap : deliveryDetailList2) { |
| | | |
| | | if(stringObjectMap.get("other_columns")!=null){ |
| | | JSONObject jsonObject = JSON.parseObject(stringObjectMap.get("other_columns").toString()); |
| | | for(String key : jsonObject.keySet()){ |
| | | boolean isnull = key.contains("M"); |
| | | if(isnull){ |
| | | Map<String, Object> moneryItemmap = new HashMap<>(); |
| | | Map<String, Object> deliveryDetailOtherMoney = deliveryDetailMapper.getSelectOrderotherMoney(detail.getOrderId(),Integer.parseInt(stringObjectMap.get("order_number").toString()),key,jsonObject.get(key).toString()); |
| | | grossAmount=grossAmount.add(BigDecimal.valueOf(Double.parseDouble(deliveryDetailOtherMoney.get("monery").toString()))); |
| | | moneryItemmap.put("DeliveryDetailOtherMoney", deliveryDetailOtherMoney); |
| | | moneryList.add(moneryItemmap); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | } |
| | | itemmap.put("DeliveryDetail", detail); |
| | | itemmap.put("DeliveryDetailList", deliveryDetailList2); |
| | | list.add(itemmap); |
| | | itemmap.put("productId",maps.get("productId")); |
| | | itemmap.put("productName",maps.get("productName")); |
| | | itemmap.put("DeliveryDetail", detail); |
| | | itemmap.put("DeliveryDetailList", deliveryDetailList2); |
| | | list.add(itemmap); |
| | | |
| | | } |
| | | } |
| | | |
| | | Order order=deliveryMapper.getSelectShippingOrderDetailPrinting(orderDetail); |
| | | order.setMoney((double) Math.round(grossAmount.doubleValue())); |
| | | order.setQuantity((long) quantity); |
| | | order.setArea(areSum.doubleValue()); |
| | | map.put("data", list); |
| | | map.put("otherMoney",moneryList); |
| | | map.put("delivery", deliveryMapper.getSelectShippingOrderDetailPrinting(orderDetail)); |
| | | map.put("delivery", order); |
| | | map.put("money", toChinese(order.getMoney().toString(), false)); |
| | | return map; |
| | | |