Quellcode durchsuchen

Update OrderServiceImpl.java

luseweixiao vor 3 Wochen
Ursprung
Commit
500e56cb85

+ 90 - 21
src/main/java/com/sl/ms/web/enterprise/service/impl/OrderServiceImpl.java

@@ -499,27 +499,34 @@ public class OrderServiceImpl implements OrderService {
         switch (type) {
             case 1:
                 ids.add(printRequest.getTransportOrderId());
-                createPrintData(printApiRequest, ids, null, null, null, null, null);
+                createPrintData(printApiRequest, ids, null, null, null, null, null,
+                        enterprise);
                 break;
             case 2:
                Integer subIndex = printRequest.getSubIndex();
-                createPrintData(printApiRequest, null, ids, null, null, null, null);
+               ids.add(generateSubOrderNumber(printRequest.getTransportOrderId(), subIndex, 1));
+                createPrintData(printApiRequest, null, ids, null, null, null, null,
+                        enterprise);
                 break;
             case 3:
                 ids.add("HD" + printRequest.getTransportOrderId());
-                createPrintData(printApiRequest, null, null, ids, null, null, null);
+                createPrintData(printApiRequest, null, null, ids, null, null, null,
+                        enterprise);
                 break;
             case 4:
                 ids.add("HD" + printRequest.getTransportOrderId());
-                createPrintData(printApiRequest, null, null, null, ids, null, null);
+                createPrintData(printApiRequest, null, null, null, ids, null, null,
+                        enterprise);
                 break;
             case 5:
                 ids.add(printRequest.getTransportOrderId());
-                createPrintData(printApiRequest, null, null, null, null, ids, null);
+                createPrintData(printApiRequest, null, null, null, null, ids, null,
+                        enterprise);
                 break;
             case 6:
                 ids.add(printRequest.getTransportOrderId());
-                createPrintData(printApiRequest, null, null, null, null, null, ids);
+                createPrintData(printApiRequest, null, null, null, null, null, ids,
+                        enterprise);
                 break;
 
         }
@@ -580,7 +587,8 @@ public class OrderServiceImpl implements OrderService {
                 senderReceiptOrderIdList,
                 receiverReceiptOrderIdList,
                 podSignedOrderIdList,
-                retentionCopyOrderIdList);
+                retentionCopyOrderIdList,
+                enterprise);
 
         PrintApiResponse printApiResponse;
         try {
@@ -625,12 +633,31 @@ public class OrderServiceImpl implements OrderService {
         return code;
     }
 
+    /**
+     * 不同的单据,付费方式,有些需要隐藏金额(客户金额)
+     * @param baseWaybill
+     * @param printType
+     */
+    private void needHideChargeFee(BaseWaybill baseWaybill, String printType) {
+        String paymentMethod = baseWaybill.getPaymentMethod();
+
+        if (ObjectUtil.isNotEmpty(paymentMethod) && ObjectUtil.isNotEmpty(printType)) {
+            if (printType.equals("子单") || printType.equals("回单")
+            || (printType.equals("签收联") && !paymentMethod.equals(OrderPaymentMethod.END_PAY.getValue()))
+            || (printType.equals("留存联") && !paymentMethod.equals(OrderPaymentMethod.END_PAY.getValue()))) {
+                baseWaybill.setChargeFee(BigDecimal.ZERO.doubleValue());
+                baseWaybill.setChargeFeePrint("**");
+            }
+        }
+    }
+
     private void createPrintData(PrintApiRequest printApiRequest, List<String> transportOrderIds,
                                  List<String> subTransportOrderIds,
                                  List<String> senderReceiptOrderIds,
                                  List<String> receiverReceiptOrderIds,
                                  List<String> podSignedOrderIds,
-                                 List<String> retentionCopyOrderIds) {
+                                 List<String> retentionCopyOrderIds,
+                                 EnterpriseWithSecretDTO enterprise) {
         // 1. 获取需要查询的运单号,查询运单详情
         Set<String> transportOrderIdSet = new HashSet<>();
         if (ObjectUtil.isNotNull(transportOrderIds) && !transportOrderIds.isEmpty()) {
@@ -677,6 +704,21 @@ public class OrderServiceImpl implements OrderService {
         transportOrderDTO.setPage(1);
         transportOrderDTO.setPageSize(1000);
         transportOrderDTO.setTransportOrderIds(new ArrayList<>(transportOrderIdSet));
+
+        // 有些订单是没有打印权限的
+        List<EnterpriseOrderDTO> enterpriseOrderDTOS = enterpriseOrderFeign.getByTransportOrderIds(new ArrayList<>(transportOrderIdSet), enterprise.getId().toString());
+
+        List<String> existTransportOrderIds = enterpriseOrderDTOS.stream().map(EnterpriseOrderDTO::getTransportOrderId).collect(Collectors.toList());
+
+        // 获取在transportOrderIdSet 中但不在existTransportOrderIds中的运单号
+        List<String> missingTransportOrderIds = transportOrderIdSet.stream()
+                .filter(id -> !existTransportOrderIds.contains(id))
+                .collect(Collectors.toList());
+
+        if (ObjectUtil.isNotEmpty(missingTransportOrderIds) && !missingTransportOrderIds.isEmpty()) {
+            throw new SLWebException("下列运单号无打印权限:" + missingTransportOrderIds);
+        }
+
         PageResponse<TransportOrderDTO> dtoPageResponse = transportOrderFeign.findByPageWithSubTransportOrderList(transportOrderDTO);
 
         List<BaseWaybill> baseWaybills = batchParseTransportOrderDTO2Vo(dtoPageResponse.getItems());
@@ -692,7 +734,12 @@ public class OrderServiceImpl implements OrderService {
         if (ObjectUtil.isNotEmpty(transportOrderIds)) {
             List<BaseWaybill> masterWaybills = new ArrayList<>(transportOrderIds.size());
             for (String transportOrderId : transportOrderIds) {
-                masterWaybills.add(baseWaybillMap.get(transportOrderId));
+                BaseWaybill baseWaybill =  baseWaybillMap.get(transportOrderId);
+                BaseWaybill newBaseWaybill = BeanUtil.copyProperties(baseWaybill, BaseWaybill.class);
+
+                needHideChargeFee(newBaseWaybill, "主单");
+
+                masterWaybills.add(baseWaybill);
             }
             printApiRequest.setMasterWaybillList(masterWaybills);
         }
@@ -708,7 +755,11 @@ public class OrderServiceImpl implements OrderService {
                 SubTransportOrderVo subTransportOrderVo = baseWaybill.getSubTransportOrderMap().get(subTransportOrderId);
                 houseWaybill.setSubIndex(subTransportOrderVo.getIndex());
                 houseWaybill.setTemperatureRegion(subTransportOrderVo.getTemperatureRegionText());
-                houseWaybillList.add(houseWaybill);
+
+                BaseWaybill newBaseWaybill = BeanUtil.copyProperties(houseWaybill, BaseWaybill.class);
+                needHideChargeFee(newBaseWaybill, "子单");
+
+                houseWaybillList.add(newBaseWaybill);
             }
             printApiRequest.setHouseWaybillList(houseWaybillList);
         }
@@ -718,7 +769,11 @@ public class OrderServiceImpl implements OrderService {
             for (String senderReceiptOrderId : senderReceiptOrderIds) {
                 String transportOrderId = senderReceiptOrderId.replace("HD", "");
                 BaseWaybill baseWaybill =  baseWaybillMap.get(transportOrderId);
-                senderReceiptList.add(baseWaybill);
+
+                BaseWaybill newBaseWaybill = BeanUtil.copyProperties(baseWaybill, BaseWaybill.class);
+                needHideChargeFee(newBaseWaybill, "回单");
+
+                senderReceiptList.add(newBaseWaybill);
             }
             printApiRequest.setSenderReceiptList(senderReceiptList);
         }
@@ -728,7 +783,11 @@ public class OrderServiceImpl implements OrderService {
             for (String receiverReceiptOrderId : receiverReceiptOrderIds) {
                 String transportOrderId = receiverReceiptOrderId.replace("HD", "");
                 BaseWaybill baseWaybill =  baseWaybillMap.get(transportOrderId);
-                receiverReceiptList.add(baseWaybill);
+
+                BaseWaybill newBaseWaybill = BeanUtil.copyProperties(baseWaybill, BaseWaybill.class);
+                needHideChargeFee(newBaseWaybill, "回单");
+
+                receiverReceiptList.add(newBaseWaybill);
             }
             printApiRequest.setReceiverReceiptList(receiverReceiptList);
         }
@@ -738,7 +797,11 @@ public class OrderServiceImpl implements OrderService {
             for (String podSignedOrderId : podSignedOrderIds) {
                 String transportOrderId = podSignedOrderId;
                 BaseWaybill baseWaybill =  baseWaybillMap.get(transportOrderId);
-                podSignedList.add(baseWaybill);
+
+                BaseWaybill newBaseWaybill = BeanUtil.copyProperties(baseWaybill, BaseWaybill.class);
+                needHideChargeFee(newBaseWaybill, "签收联");
+
+                podSignedList.add(newBaseWaybill);
             }
             printApiRequest.setPodSignedList(podSignedList);
         }
@@ -748,7 +811,11 @@ public class OrderServiceImpl implements OrderService {
             for (String retentionCopyOrderId : retentionCopyOrderIds) {
                 String transportOrderId = retentionCopyOrderId;
                 BaseWaybill baseWaybill =  baseWaybillMap.get(transportOrderId);
-                retentionCopyList.add(baseWaybill);
+
+                BaseWaybill newBaseWaybill = BeanUtil.copyProperties(baseWaybill, BaseWaybill.class);
+                needHideChargeFee(newBaseWaybill, "留存联");
+
+                retentionCopyList.add(newBaseWaybill);
             }
             printApiRequest.setRetentionCopyList(retentionCopyList);
         }
@@ -861,13 +928,15 @@ public class OrderServiceImpl implements OrderService {
                     if (orderDTO.getIsInsure().equals(OrderIsInsureEnum.VALUE_DECLARED.getCode())) {
                         vo.setDeclareValue(orderDTO.getDeclareValue().doubleValue());
                     }
-                    if (orderDTO.getPaymentMethod().equals(OrderPaymentMethod.END_PAY.getCode())) {
-                        vo.setChargeFee(orderDTO.getChargeFee().doubleValue());
-                        vo.setChargeFeePrint(orderDTO.getChargeFee().toString() + "元");
-                    } else {
-                        vo.setChargeFee(new Double(0));
-                        vo.setChargeFeePrint("**");
-                    }
+                    vo.setChargeFee(orderDTO.getChargeFee().doubleValue());
+                    vo.setChargeFeePrint(orderDTO.getChargeFee().toString() + "元");
+//                    if (orderDTO.getPaymentMethod().equals(OrderPaymentMethod.END_PAY.getCode())) {
+//                        vo.setChargeFee(orderDTO.getChargeFee().doubleValue());
+//                        vo.setChargeFeePrint(orderDTO.getChargeFee().toString() + "元");
+//                    } else {
+//                        vo.setChargeFee(new Double(0));
+//                        vo.setChargeFeePrint("**");
+//                    }
                     
                     if (ObjectUtil.isNotEmpty(orderDTO.getSenderProvinceId())) {
                         AreaDto result = areaMap.get(orderDTO.getSenderProvinceId());