| | |
| | | |
| | | } |
| | | |
| | | 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; |
| | | |