Przeglądaj źródła

Merge remote-tracking branch 'origin/dev' into dev

xucaiqin 2 lat temu
rodzic
commit
8a7c39dd23

+ 9 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/dubbo/TradeOrderInfoService.java

@@ -46,6 +46,15 @@ public interface TradeOrderInfoService {
      */
     HttpResult completeLogisticsOrder(CompleteLogisticsOrderParam param);
 
+    /**
+     * @desc: 更新订单实际交付量
+     * @author: yzc
+     * @date: 2023-09-19 15:20
+     * @Param param:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    HttpResult updateActualAmount(UpdateActualAmountParam param);
+
     /**
      * @desc: 合同签约完成
      * @author: yzc

+ 52 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/UpdateActualAmountParam.java

@@ -0,0 +1,52 @@
+package com.sckw.order.api.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @desc: 更新订单实际交付量
+ * @author: yzc
+ * @date: 2023-09-19 15:18
+ */
+@Getter
+@Setter
+@ToString
+@Accessors(chain = true)
+public class UpdateActualAmountParam implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1163982827584533292L;
+
+    /**
+     * 订单id
+     */
+    @JsonProperty("tOrderId")
+    private Long tOrderId;
+
+    /**
+     * 实装总量
+     */
+    private BigDecimal actualLoadAmount;
+
+    /**
+     * 实卸总量
+     */
+    private BigDecimal actualUnloadAmount;
+
+    /**
+     * 更新用户id 需传,订单状态变化记录需要
+     */
+    private Long updateBy;
+
+    /**
+     * 更新者姓名 需传,订单状态变化记录需要
+     */
+    private String updateByName;
+}

+ 5 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/dubbo/TradeOrderInfoServiceImpl.java

@@ -204,6 +204,11 @@ public class TradeOrderInfoServiceImpl implements TradeOrderInfoService {
         return HttpResult.ok();
     }
 
+    @Override
+    public HttpResult updateActualAmount(UpdateActualAmountParam param) {
+        return null;
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void contractSignCompleted(ContractSignCompletedParam param) {

+ 4 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/KwtLogisticsOrderTreeVo.java

@@ -5,6 +5,8 @@ import jakarta.validation.constraints.Digits;
 import jakarta.validation.constraints.Max;
 import jakarta.validation.constraints.Min;
 import lombok.Data;
+
+import java.io.Serial;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.time.LocalDate;
@@ -19,7 +21,8 @@ import java.util.List;
 @Data
 public class KwtLogisticsOrderTreeVo implements Serializable {
 
-    private static final long serialVersionUID = 1L;
+    @Serial
+    private static final long serialVersionUID = 2272172886427113723L;
 
     /**
      * 主键

+ 50 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillOrderDriverVo.java

@@ -3,10 +3,13 @@ package com.sckw.transport.model.vo;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.sckw.core.model.constant.Global;
+import com.sckw.core.model.enums.TaxRateTypeEnum;
+import com.sckw.core.utils.StringUtils;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.Date;
 
 /**
@@ -156,6 +159,21 @@ public class WaybillOrderDriverVo {
      */
     private BigDecimal deficitPrice;
 
+    /**
+     * 扣亏量(自己承运总亏吨扣款)
+     */
+    private BigDecimal deficitLossAmount;
+
+    /**
+     * 合理损耗
+     */
+    private BigDecimal loss;
+
+    /**
+     * 合理损耗单位(‰/kG)
+     */
+    private String lossUnit;
+
     /**
      * 车牌号
      */
@@ -188,4 +206,36 @@ public class WaybillOrderDriverVo {
     public String getTypeName() {
         return type != null && type == Global.NUMERICAL_ONE ? "趟次" : "循环";
     }
+
+    public BigDecimal getDeficitLossAmount() {
+        return deficitPrice(loadAmount, deficitAmount, loss, lossUnit);
+    }
+
+    /**
+     * @param loadAmount    装货量
+     * @param deficitAmount 亏吨量
+     * @param loss          合理损耗
+     * @desc 计算扣亏量
+     * @author zk
+     * @date 2023/7/27
+     **/
+    public BigDecimal deficitPrice(BigDecimal loadAmount, BigDecimal deficitAmount, BigDecimal loss,String lossUnit) {
+        //亏吨<=0
+        if (deficitAmount.compareTo(new BigDecimal(Global.AMOUNT)) <= 0) {
+            return new BigDecimal(Global.AMOUNT);
+        }
+        //承运订单亏吨扣款=(承运订单亏吨量 -(承运订单装货量 * 承运订单合理损耗))* 扣亏货值
+        loss = loss == null ? new BigDecimal(Global.AMOUNT) : loss;
+        if (loss.doubleValue() > 0 && StringUtils.isNotBlank(lossUnit)) {
+            if (lossUnit.equals(String.valueOf(TaxRateTypeEnum.PERCENT.getCode()))) {
+                loss = loss.divide(new BigDecimal(TaxRateTypeEnum.PERCENT.getValue()));
+            }
+            if (lossUnit.equals(String.valueOf(TaxRateTypeEnum.MILLIMETER.getCode()))) {
+                loss = loss.divide(new BigDecimal(TaxRateTypeEnum.MILLIMETER.getValue()));
+            }
+        }
+        //扣亏量
+        BigDecimal deficitPrice = deficitAmount.subtract(loadAmount.multiply(loss).setScale(4, RoundingMode.HALF_UP));
+        return deficitPrice;
+    }
 }

+ 5 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java

@@ -143,6 +143,9 @@ public class ConsignOrderService {
     @Autowired
     public KwtLogisticsOrderCirculateMapper kwtLogisticsOrderCirculateMapper;
 
+    @Autowired
+    TransportCommonService transportCommonService;
+
 
     /**
      * 托运订单/承运订单-获取车辆运单
@@ -868,6 +871,8 @@ public class ConsignOrderService {
                 updateMongoDbByLogisticsOrder(Long.parseLong(map.get("id").toString()), orderFinishDTO, new BigDecimal(map.get("ignoreAmount").toString()));
             }
         }
+
+        transportCommonService.closeHandle(logisticsOrder.getId());
         return HttpResult.ok("托运订单-完结订单成功");
     }
 

+ 11 - 8
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java

@@ -21,6 +21,7 @@ import com.sckw.mongo.model.SckwLogisticsOrder;
 import com.sckw.mongo.model.SckwWaybillOrder;
 import com.sckw.order.api.dubbo.TradeOrderInfoService;
 import com.sckw.order.api.model.CompleteLogisticsOrderParam;
+import com.sckw.order.api.model.UpdateActualAmountParam;
 import com.sckw.redis.constant.RedisConstant;
 import com.sckw.redis.utils.RedissonUtils;
 import com.sckw.stream.enums.MessageEnum;
@@ -124,7 +125,7 @@ public class KwtWaybillOrderService {
     public List<WaybillOrderDriverVo> findWaybillOrderByDriver(Map params) {
         /**参数处理**/
         //业务状态busStatus  1待接单/2出车/3执行/4完结
-        Integer busStatus = Integer.parseInt(StringUtils.objectStr(params.get("busStatus")));
+        Integer busStatus = NumberUtils.parseInt(params.get("busStatus"));
         Object driverId = StringUtils.isBlank(params.get("driverId")) ? LoginUserHolder.getUserId() : params.get("driverId");
         params.put("driverId", driverId);
         // 设置分页参数
@@ -138,7 +139,6 @@ public class KwtWaybillOrderService {
         } else {
             //查询司机任务列表-出车/执行/完结
             waybillOrders = waybillOrderDao.findOtherWaybillOrderByDriver(params);
-
             //出车-出车时间
             if (busStatus == Global.NUMERICAL_TWO) {
                 for (WaybillOrderDriverVo waybillOrder : waybillOrders) {
@@ -1808,22 +1808,21 @@ public class KwtWaybillOrderService {
         /**1-3更新贸易订单总量**/
         if (logisticsLevel(logisticsOrder) == Global.NUMERICAL_ONE) {
             //物流订单统计(运输完成后的物流订单)
-            LogisticsCountVo tradeCount = logisticsOrderDao.findLogisticsOrderCount(new HashMap(){{
+            LogisticsCountVo tradeCount = logisticsOrderDao.findLogisticsOrderCount(new HashMap<>(){{
                 put("tOrderId", logisticsOrder.getTOrderId());
-                put("finishedStatus", Global.NUMERICAL_ONE);
+                put("level", Global.NUMERICAL_ONE);
             }});
             //查询贸易订单关联物流运单是否全部完结-totalUnfinished
-            WaybillCountVo tradeCount1 = waybillOrderDao.findWaybillOrderCount(new HashMap() {{
+            WaybillCountVo tradeCount1 = waybillOrderDao.findWaybillOrderCount(new HashMap<>() {{
                 put("tOrderId", logisticsOrder.getTOrderId());
             }});
-            CompleteLogisticsOrderParam tradeOrder = new CompleteLogisticsOrderParam();
+            UpdateActualAmountParam tradeOrder = new  UpdateActualAmountParam();
             tradeOrder.setTOrderId(logisticsOrder.getTOrderId());
             tradeOrder.setActualLoadAmount(tradeCount.getLoadAmount());
             tradeOrder.setActualUnloadAmount(tradeCount.getUnloadAmount());
-            tradeOrder.setIsAllComplete(tradeCount1.getTotalUnfinished() > 0 ? false : true);
             tradeOrder.setUpdateBy(LoginUserHolder.getUserId());
             tradeOrder.setUpdateByName(LoginUserHolder.getUserName());
-            tradeOrderInfoService.completeLogisticsOrder(tradeOrder);
+            tradeOrderInfoService.updateActualAmount(tradeOrder);
         }
 
         /**1-4Mongodb数据更新**/
@@ -1996,6 +1995,7 @@ public class KwtWaybillOrderService {
      * @author zk
      * @date 2023/7/26
      **/
+    @Transactional(rollbackFor = Exception.class)
     public HttpResult editTicket(WaybillOrderTicketDto params) {
         /**1校验**/
         KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
@@ -2062,6 +2062,7 @@ public class KwtWaybillOrderService {
      * @author zk
      * @date 2023/7/26
      **/
+    @Transactional(rollbackFor = Exception.class)
     public HttpResult editTicket(WaybillOrderTicketV1Dto params) {
         /**1数据校验**/
         KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
@@ -2192,6 +2193,7 @@ public class KwtWaybillOrderService {
      * @author zk
      * @date 2023/7/26
      **/
+    @Transactional(rollbackFor = Exception.class)
     public HttpResult approvalTicket(WaybillOrderApprovalDto params) {
         /**1数据校验**/
         KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
@@ -2276,6 +2278,7 @@ public class KwtWaybillOrderService {
      * @author zk
      * @date 2023/7/26
      **/
+    @Transactional(rollbackFor = Exception.class)
     public HttpResult approvalEditTicket(WaybillOrderTicketApprovalDto params) {
         /**1数据校验**/
         KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());

+ 61 - 32
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/TransportCommonService.java

@@ -11,6 +11,7 @@ import com.sckw.core.annotation.Log;
 import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.common.enums.enums.DictEnum;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
+import com.sckw.core.exception.BusinessException;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
 import com.sckw.core.model.page.PageResult;
@@ -24,9 +25,7 @@ import com.sckw.core.web.response.HttpResult;
 import com.sckw.mongo.enums.BusinessTypeEnum;
 import com.sckw.mongo.model.SckwLogisticsOrder;
 import com.sckw.order.api.dubbo.TradeOrderInfoService;
-import com.sckw.order.api.model.CreateOrCancelLogisticsOrderParam;
-import com.sckw.order.api.model.OrderDetailRes;
-import com.sckw.order.api.model.UnitInfoDetailRes;
+import com.sckw.order.api.model.*;
 import com.sckw.stream.enums.MessageEnum;
 import com.sckw.stream.model.SckwBusSum;
 import com.sckw.system.api.RemoteSystemService;
@@ -75,6 +74,9 @@ public class TransportCommonService {
     @Autowired
     public CommonService commonService;
 
+    @Autowired
+    public KwtWaybillOrderService waybillOrderService;
+
     @Autowired
     public KwtLogisticsOrderGoodsMapper logisticsOrderGoodsMapper;
 
@@ -752,19 +754,20 @@ public class TransportCommonService {
 
         /**2物流订单树形数据结构**/
         //所有管理物流订单
-        List<KwtLogisticsOrder> orders = logisticsOrderMapper.findLogisticsOrder(new HashMap<>(){{
-            put("upperlOrderId", lOrderId);
-            put("belowlOrderId", logisticsOrder.getPids());
+        List<KwtLogisticsOrder> orders = logisticsOrderMapper.findLogisticsOrder(new HashMap<>(Global.NUMERICAL_SIXTEEN){{
+            put("plOrderIds", lOrderId);
+            put("currentlOrderId", logisticsOrder.getPids());
+            put("allOrderId", Global.NUMERICAL_ONE);
         }});
         //数据copy
-        List<KwtLogisticsOrderTreeVo> logisticsOrders = orders.stream().map( order -> {
-                            KwtLogisticsOrderTreeVo logisticsOrderVo = new KwtLogisticsOrderTreeVo();
-                            BeanUtils.copyPropertiesValue(order, logisticsOrderVo);
-                            return logisticsOrderVo;
-                        }
-                ).collect(Collectors.toList());
+        List<KwtLogisticsOrderTreeVo> logisticsOrders = new ArrayList<>();
+        for (KwtLogisticsOrder order:orders) {
+            KwtLogisticsOrderTreeVo logisticsOrderVo = new KwtLogisticsOrderTreeVo();
+            BeanUtils.copyProperties(order, logisticsOrderVo);
+            logisticsOrders.add(logisticsOrderVo);
+        }
         List<KwtLogisticsOrderTreeVo> treeData = findTree(logisticsOrders);
-        /**数据去除已完结订单下级*/
+        //数据去除已完结订单下级
         orderTreeHandle(treeData);
 
         /**3链路数据组装*/
@@ -775,49 +778,74 @@ public class TransportCommonService {
         }
         List<KwtLogisticsOrderTreeVo> orderLink = findLink(orderLinks, lOrderId);
         //倒序
+        assert orderLink != null;
         Collections.reverse(orderLink);
 
         /**4数据处理**/
         for (KwtLogisticsOrderTreeVo order:orderLink) {
             //排除已完结订单
             if (Objects.equals(order.getStatus(), LogisticsOrderEnum.HAVE_FINISHED.getCode())) {
-                //计算总装总卸向上级统计
+                //上级物流订单分包量技术-排除一级物流订单
+                if (order.getPid() != null) {
+                    //mysql数据更新
+                    KwtLogisticsOrder currentOrder = logisticsOrderMapper.selectById(order.getPid());
+                    //差值=上游委托量-实际总装货量
+                    BigDecimal difference = order.getAmount().subtract(order.getTotalLoadAmount());
+                    currentOrder.setSubcontractAmount(currentOrder.getSubcontractAmount().subtract(difference));
+                    logisticsOrderMapper.updateById(currentOrder);
+
+                    //Mongodb数据更新
+                    SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
+                    lOrder.setSubcontractAmount(currentOrder.getSubcontractAmount());
+                    waybillOrderService.editSckwLogisticsOrder(lOrder, currentOrder);
+                }
                 continue;
             }
 
             //车辆运单统计(运输中的物流订单+车辆运单审核通过)
-            WaybillCountVo waybillCount = waybillOrderMapper.findWaybillOrderCount(new HashMap() {{
+            WaybillCountVo waybillCount = waybillOrderMapper.findWaybillOrderCount(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{
+                //put("ownOrderId", order.getId());
                 put("upperlOrderId", order.getId());
                 put("passStatus", Global.NUMERICAL_ONE);
                 put("logisticsStatus", LogisticsOrderEnum.IN_TRANSIT.getCode());
             }});
             //物流订单统计(运输完成后的物流订单)
-            LogisticsCountVo LogisticsCount = logisticsOrderMapper.findLogisticsOrderCount(new HashMap(){{
+            LogisticsCountVo LogisticsCount = logisticsOrderMapper.findLogisticsOrderCount(new HashMap<>(Global.NUMERICAL_SIXTEEN){{
                 put("upperlOrderId", order.getId());
                 put("finishedStatus", Global.NUMERICAL_ONE);
             }});
 
-            KwtLogisticsOrder currentOrder = logisticsOrderMapper.selectById(lOrderId);
-            currentOrder.setTotalLoadAmount(waybillCount.getLoadAmount().add(LogisticsCount.getLoadAmount()));
-            currentOrder.setTotalUnloadAmount(waybillCount.getUnloadAmount().add(LogisticsCount.getUnloadAmount()));
+            //mysql数据更新
+            KwtLogisticsOrder currentOrder = logisticsOrderMapper.selectById(order.getId());
+            currentOrder.setTotalLoadAmount(waybillCount.getLoadAmount().add(LogisticsCount.getTotalLoadAmount()));
+            currentOrder.setTotalUnloadAmount(waybillCount.getUnloadAmount().add(LogisticsCount.getTotalUnloadAmount()));
             logisticsOrderMapper.updateById(currentOrder);
 
-            /**Mongodb数据更新**/
+            //Mongodb数据更新
             SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
-            lOrder.setTotalLoadAmount(waybillCount.getLoadAmount());
-            lOrder.setTotalUnloadAmount(waybillCount.getUnloadAmount());
-            SckwBusSum busSum = new SckwBusSum();
-            //业务汇总类型
-            busSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
-            //操作对象(1新增/2修改)
-            busSum.setMethod(NumberConstant.TWO);
-            //业务汇总数据对象
-            busSum.setObject(order);
-            streamBridge.send("sckw-busSum", JSON.toJSONString(busSum));
+            lOrder.setTotalLoadAmount(currentOrder.getTotalLoadAmount());
+            lOrder.setTotalUnloadAmount(currentOrder.getTotalUnloadAmount());
+            waybillOrderService.editSckwLogisticsOrder(lOrder, currentOrder);
 
             //一级物流订单向贸易订单推送数据
-            if (order.getPid() == null) {
-
+            if (order.getPid() == null && Integer.parseInt(order.getType()) == Global.NUMERICAL_ONE) {
+                //物流订单统计(运输完成后的物流订单)
+                LogisticsCountVo tradeCount = logisticsOrderMapper.findLogisticsOrderCount(new HashMap<>(){{
+                    put("tOrderId", order.getTOrderId());
+                    put("level", Global.NUMERICAL_ONE);
+                }});
+                UpdateActualAmountParam tradeOrder = new  UpdateActualAmountParam();
+                tradeOrder.setTOrderId(logisticsOrder.getTOrderId());
+                tradeOrder.setActualLoadAmount(tradeCount.getTotalLoadAmount());
+                tradeOrder.setActualUnloadAmount(tradeCount.getTotalUnloadAmount());
+                tradeOrder.setUpdateBy(LoginUserHolder.getUserId());
+                tradeOrder.setUpdateByName(LoginUserHolder.getUserName());
+                log.info("托运订单手动完结请求参数:{}", JSONObject.toJSONString(tradeOrder));
+                HttpResult httpResult = tradeOrderInfoService.updateActualAmount(tradeOrder);
+                if (httpResult.getCode() != HttpStatus.SUCCESS_CODE) {
+                    log.info("贸易订单手动完结订单异常,传递信息:{},返回信息:{}", JSONObject.toJSONString(tradeOrder), JSONObject.toJSONString(httpResult));
+                    throw new BusinessException("单据完结出现错误!" + httpResult.getMsg());
+                }
             }
         }
     }
@@ -963,4 +991,5 @@ public class TransportCommonService {
         }
         return null;
     }
+
 }

+ 15 - 9
sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml

@@ -667,11 +667,12 @@
             parameterType="java.util.Map">
         select
         id, ent_id entId, t_order_id tOrderId, t_order_no tOrderNo, l_order_no lOrderNo, pid, pids,
-        settlement_cycle settlementCycle, price, price_type priceType, billing_mode billingMode,
+        settlement_cycle settlementCycle, price, price_type priceType, billing_mode billingMode, type,
         amount, unit, loss, loss_unit lossUnit, goods_price goodsPrice, goods_price_unit goodsPriceUnit,
         start_time startTime, end_time endTime, subcontract_amount subcontractAmount, entrust_amount entrustAmount,
         unload_amount unloadAmount, load_amount loadAmount, ignore_amount ignoreAmount, deficit_amount deficitAmount,
         deficit_price deficitPrice, payment, tax_rate taxRate, remark, `status`, create_by createBy,
+        total_load_amount totalLoadAmount, total_unload_amount totalUnloadAmount,
         create_time createTime, update_by updateBy, update_time updateTime
         from kwt_logistics_order
         where del_flag = 0
@@ -680,18 +681,20 @@
         </if>
         <if test="upperlOrderId != null and upperlOrderId != ''">
             and FIND_IN_SET(#{upperlOrderId, jdbcType=BIGINT}, pids)
-            and id != #{ownOrderId, jdbcType=BIGINT}
         </if>
         <if test="belowlOrderId != null and belowlOrderId != ''">
             and FIND_IN_SET(id, #{belowlOrderId, jdbcType=VARCHAR})
-            and id != #{ownOrderId, jdbcType=BIGINT}
         </if>
-        <if test="upperlOrderId != null and upperlOrderId != ''">
-            and FIND_IN_SET(#{upperlOrderId, jdbcType=BIGINT}, pids)
+        <if test="ownOrderId != null and ownOrderId != ''">
+            and id != #{ownOrderId, jdbcType=BIGINT}
         </if>
-        <if test="belowlOrderId != null and belowlOrderId != ''">
-            and FIND_IN_SET(id, #{belowlOrderId, jdbcType=VARCHAR})
+        <if test="allOrderId != null and allOrderId != ''">
+            and (
+                FIND_IN_SET(#{plOrderIds, jdbcType=BIGINT}, pids)
+                or FIND_IN_SET(id, #{currentlOrderId, jdbcType=VARCHAR})
+            )
         </if>
+
     </select>
     <select id="selectOrderCountByTorderId" resultType="com.sckw.transport.model.dto.LogisticsOrderDTO">
         SELECT a.id          as lOrderId,
@@ -2528,8 +2531,8 @@
 
     <select id="findLogisticsOrderCount" resultType="com.sckw.transport.model.vo.LogisticsCountVo" parameterType="java.util.Map">
         SELECT
-        sum(load_amount) loadAmount, sum(unload_amount) unloadAmount,
-        sum(total_load_amount) totalLoadAmount, sum(total_unload_amount) totalUnloadAmount
+        IFNULL(sum(load_amount), 0.0) loadAmount, IFNULL(sum(unload_amount), 0.0) unloadAmount,
+        IFNULL(sum(total_load_amount), 0.0) totalLoadAmount, IFNULL(sum(total_unload_amount), 0.0) totalUnloadAmount
         from kwt_logistics_order where del_flag = 0
         <if test="tOrderId != null and tOrderId != ''">
             and t_order_id = #{tOrderId, jdbcType=BIGINT}
@@ -2537,6 +2540,9 @@
         <if test="lOrderId != null and lOrderId != ''">
             and id = #{lOrderId, jdbcType=BIGINT}
         </if>
+        <if test="level != null and level != ''">
+            and pid is null
+        </if>
         <if test="finishedStatus != null and finishedStatus != ''">
             and status in (4, 5, 6)
         </if>

+ 6 - 1
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

@@ -195,6 +195,9 @@
         <if test="belowlOrderId != null and belowlOrderId != ''">
             and FIND_IN_SET(id, #{belowlOrderId, jdbcType=VARCHAR})
         </if>
+        <if test="ownOrderId != null and ownOrderId != ''">
+            and lo.id != #{ownOrderId, jdbcType=BIGINT}
+        </if>
     </select>
 
     <select id="selectWaybillOrderCarListGroupByTruckNo" resultType="com.sckw.transport.model.dto.OrderCarDTO">
@@ -316,6 +319,7 @@
                      wo.type,
                      lo.amount - lo.entrust_amount - lo.subcontract_amount residueAmount,
                      lo.unit,
+                     lo.loss_unit lossUnit,
                      wo.ent_id           carrierEntId,
                      'xxxxx'             carrierFirmName,
                      log.goods_name      goodsName,
@@ -354,6 +358,7 @@
                      loc.type,
                      lo.amount - lo.entrust_amount - lo.subcontract_amount residueAmount,
                      lo.unit,
+                     lo.loss_unit lossUnit,
                      loc.ent_id          carrierEntId,
                      'xxxxx'             carrierFirmName,
                      log.goods_name      goodsName,
@@ -392,7 +397,7 @@
             parameterType="java.util.Map">
         SELECT
         wo.id wOrderId, wo.w_order_no wOrderNo, wo.l_order_id lOrderId, lo.l_order_no lOrderNo,
-        lo.unit, wo.type,
+        lo.unit, lo.loss_unit lossUnit, wo.type,
         wo.ent_id carrierEntId, 'xxxxx' carrierFirmName, log.goods_name goodsName, wo.start_time startTime,
         wo.end_time endTime, wo.entrust_amount entrustAmount, woa1.name loadName, woa1.city_code loadCityCode,
         woa1.city_name loadCityName, woa1.detail_address loadDetailAddress, woa2.name unloadName, woa2.city_code