Ver Fonte

1、手动完结运量向上统计;

zk há 1 ano atrás
pai
commit
01ab9df1b6

+ 5 - 0
sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/model/vo/LogisticsOrderVO.java

@@ -322,4 +322,9 @@ public class LogisticsOrderVO implements Serializable {
 
     @JsonProperty("totalUnloadAmount")
     private BigDecimal totalUnloadAmount;
+
+    /**
+     * 趟次(自己+下游承运总卸货量,算方式为趟次时,最终值以完结输入值为准)
+     */
+    private Integer totalTake;
 }

+ 31 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/LogisticsOrderSubcontractDto.java

@@ -75,6 +75,37 @@ public class LogisticsOrderSubcontractDto implements Serializable {
     @NotNull(message = "托运联系人id不能为空")
     private String consignContactsId;
 
+    /**
+     * 托运单位
+     */
+    @NotBlank(message = "托运单位名称不能为空")
+    private String checkCompany;
+
+    /**
+     * 托运单位id
+     */
+    @NotNull(message = "托运单位id不能为空")
+    private String checkCompanyId;
+
+
+    /**
+     * 托运联系电话
+     */
+    @NotNull(message = "托运联系电话不能为空")
+    private String checkContactPhone;
+
+    /**
+     * 托运联系人
+     */
+    @NotNull(message = "托运联系人不能为空")
+    private String checkContacts;
+
+    /**
+     * 托运联系人id
+     */
+    @NotNull(message = "托运联系人id不能为空")
+    private String checkContactsId;
+
     /**
      * 承运单位
      */

+ 5 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/OrderDetailVO.java

@@ -209,6 +209,11 @@ public class OrderDetailVO {
 //     */
 //    private String unloadAddressDetail;
 
+    /**
+     * 趟次(自己+下游承运总卸货量,算方式为趟次时,最终值以完结输入值为准)
+     */
+    private Integer totalTake;
+
     /**
      * 卸货-履约量(自己+下游承运总卸货量)
      */

+ 9 - 6
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtLogisticsOrderConsignmentService.java

@@ -812,6 +812,7 @@ public class KwtLogisticsOrderConsignmentService {
         order.setTotalUnloadAmount(decimal);
         order.setTotalLoadAmount(decimal);
         order.setBindStatus(String.valueOf(NumberConstant.ZERO));
+        order.setTotalTake(NumberConstant.ZERO);
         logisticsOrderMapper.insert(order);
     }
 
@@ -1290,6 +1291,7 @@ public class KwtLogisticsOrderConsignmentService {
         order.setBindStatus(String.valueOf(NumberConstant.ZERO));
         order.setTotalUnloadAmount(decimal);
         order.setTotalLoadAmount(decimal);
+        order.setTotalTake(NumberConstant.ZERO);
         logisticsOrderMapper.insert(order);
 
     }
@@ -1910,22 +1912,22 @@ public class KwtLogisticsOrderConsignmentService {
 
     private void insertSubcontractLogisticsOrderUnit(LogisticsOrderSubcontractDto bo, Long orderId) {
         EntCacheResDto consignentMap = remoteSystemService.queryEntTreeById(Long.parseLong(bo.getAcceptCompanyId()));
-        EntCacheResDto checkentMap = remoteSystemService.queryEntTreeById(Long.parseLong(bo.getConsignCompanyId()));
+        EntCacheResDto checkentMap = remoteSystemService.queryEntTreeById(Long.parseLong(bo.getCheckCompanyId()));
         KwtLogisticsOrderUnit checkUnit = new KwtLogisticsOrderUnit()
                 .setLOrderId(orderId)
                 .setId(new IdWorker(NumberConstant.ONE).nextId())
                 .setUnitType(NumberConstant.ONE)
-                .setFirmName(bo.getConsignCompany())
+                .setFirmName(bo.getCheckCompany())
                 .setRemark(bo.getRemark())
                 .setTopEntId(checkentMap == null ? null : checkentMap.getId())
-                .setEntId(Long.parseLong(bo.getConsignCompanyId()))
-                .setContacts(bo.getConsignContacts())
-                .setPhone(bo.getConsignContactPhone())
+                .setEntId(Long.parseLong(bo.getCheckCompanyId()))
+                .setContacts(bo.getCheckContacts())
+                .setPhone(bo.getCheckContactPhone())
                 .setCreateBy(LoginUserHolder.getUserId())
                 .setCreateTime(new Date())
                 .setUpdateBy(LoginUserHolder.getUserId())
                 .setUpdateTime(new Date())
-                .setContactsId(Long.parseLong(bo.getConsignContactsId()));
+                .setContactsId(Long.parseLong(bo.getCheckContactsId()));
         logisticsOrderUnitMapper.insert(checkUnit);
 
         KwtLogisticsOrderUnit consignUnit = new KwtLogisticsOrderUnit()
@@ -2021,6 +2023,7 @@ public class KwtLogisticsOrderConsignmentService {
         order.setTotalUnloadAmount(decimal);
         order.setTotalLoadAmount(decimal);
         order.setBindStatus(String.valueOf(NumberConstant.ZERO));
+        order.setTotalTake(NumberConstant.ZERO);
         logisticsOrderMapper.insert(order);
     }
 

+ 36 - 5
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtTransportCommonService.java

@@ -127,7 +127,6 @@ public class KwtTransportCommonService {
     @Autowired
     public KwtLogisticsOrderMapper logisticsOrderMapper;
 
-
     @Autowired
     private KwtWaybillOrderV1Mapper kwtWaybillOrderV1Mapper;
 
@@ -410,7 +409,7 @@ public class KwtTransportCommonService {
 
         List<LineFreightRateVo> lineFreightRateVos = kwtLogisticsOrderLineFreightRateMapper.selectListByOrderId(Long.parseLong(dto.getId()));
         orderDetailVO.setLineFreightRate(lineFreightRateVos);
-
+        orderDetailVO.setTotalTake(logisticsOrder.getTotalTake());
         return orderDetailVO;
     }
 
@@ -817,8 +816,9 @@ public class KwtTransportCommonService {
 //                        put("passStatus", Global.NUMERICAL_ONE);
 //                    }};
 
-                    WaybillCountVo waybillOrderCount = kwtWaybillOrderV1Mapper.findCountByLOrderId(Long.parseLong(logisticsOrderDTO.getLOrderId()));
-                    BigDecimal totalComplete = waybillOrderCount == null ? NumberConstant.ZERO_TWO : new BigDecimal(waybillOrderCount.getTotalComplete());
+                   /* WaybillCountVo waybillOrderCount = kwtWaybillOrderV1Mapper.findCountByLOrderId(Long.parseLong(logisticsOrderDTO.getLOrderId()));
+                    BigDecimal totalComplete = waybillOrderCount == null ? NumberConstant.ZERO_TWO : new BigDecimal(waybillOrderCount.getTotalComplete());*/
+                    BigDecimal totalComplete = BigDecimal.valueOf(logisticsOrderDTO.getTotalTake());
                     actualAmount = totalComplete.multiply(price);
                 } else if (DictEnum.CHARGING_TYPE_4.getValue().equals(billingMode)) {
                     String lOrderId = logisticsOrderDTO.getLOrderId();
@@ -1353,11 +1353,42 @@ public class KwtTransportCommonService {
                     //差值=上游委托量-实际总装货量
                     BigDecimal difference = order.getAmount().subtract(order.getTotalLoadAmount());
                     currentOrder.setSubcontractAmount(currentOrder.getSubcontractAmount().subtract(difference));
+
+                    //装货统计(当前物流订单)
+                    Map<String, Object> queryParams = new HashMap<>(NumberConstant.SIXTEEN);
+                    queryParams.put("lOrderId", currentOrder.getId());
+                    queryParams.put("unit", currentOrder.getUnit());
+                    queryParams.put("type", NumberConstant.ONE);
+                    queryParams.put("passStatus", Global.NUMERICAL_ONE);
+                    WaybillCountVo loadCount = kwtWaybillOrderV1Mapper.findTicketCountByAddress(queryParams);
+                    //卸货统计(当前物流订单)
+                    queryParams.put("type", NumberConstant.TWO);
+                    WaybillCountVo unloadCount = kwtWaybillOrderV1Mapper.findTicketCountByAddress(queryParams);
+
+                    //下级物流订单统计
+                    Map<String, Object> params = new HashMap<>(){{put("upperlOrderId", currentOrder.getId()); put("ownOrderId", currentOrder.getId());}};
+                    List<KwtLogisticsOrder> upperlOrders = logisticsOrderMapper.findLogisticsOrder(params);
+
+                    //运量
+                    BigDecimal totalLoadAmount = upperlOrders.stream().map(KwtLogisticsOrder::getTotalLoadAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+                    BigDecimal totalUnloadAmount = upperlOrders.stream().map(KwtLogisticsOrder::getTotalUnloadAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+                    currentOrder.setTotalLoadAmount(loadCount.getAmount().add(totalLoadAmount));
+                    currentOrder.setTotalUnloadAmount(unloadCount.getAmount().add(totalUnloadAmount));
+
+                    //运单数量
+                    int sum = upperlOrders.stream().mapToInt(KwtLogisticsOrder::getTotalTake).sum();
+                    int totalTake = kwtWaybillOrderV1Mapper.findWaybillOrderCountByLOrderId(currentOrder.getId());
+                    currentOrder.setTotalTake(totalTake + sum);
                     logisticsOrderMapper.updateById(currentOrder);
 
+                    //辅助单位运量
+                    logisticsOrderGoodsService.editLogisticsOrderGoodsTotalLoading(currentOrder.getId());
+
                     //Mongodb数据更新
                     SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
                     lOrder.setSubcontractAmount(currentOrder.getSubcontractAmount());
+                    lOrder.setTotalUnloadAmount(currentOrder.getTotalUnloadAmount());
+                    lOrder.setTotalLoadAmount(currentOrder.getTotalLoadAmount());
                     waybillOrderService.editSckwLogisticsOrder(lOrder, currentOrder);
                 }
             }
@@ -1732,7 +1763,7 @@ public class KwtTransportCommonService {
                 //修改合同履约量
                 commonService.updatePerformed(logisticsOrder, loadAmount, unloadAmount);
 
-                //完结物流订单数据处理-上级物流订单分包量计算
+                //完结物流订单数据处理-上级物流订单量计算
                 closeHandleByOrderFinish(logisticsOrder.getId());
 
                 //关闭运单

+ 1 - 0
sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml

@@ -326,6 +326,7 @@
                         a.unload_amount       AS unloadAmount,
                         a.total_load_amount   AS totalLoadAmount,
                         a.total_unload_amount AS totalUnloadAmount,
+                        a.total_take AS totalTake,
                         a.settlement_cycle    as settlementCycle,
                         a.start_time          AS startTime,
                         a.end_time            AS endTime,