Ver Fonte

已驳回的运单信息在app端修改无效
删除地址信息后派车报错
物流订单按桥运里程运价展示调整

czh há 1 ano atrás
pai
commit
d8872222c8

+ 3 - 0
sckw-modules/sckw-order/src/main/resources/mapper/KwoTradeOrderMapper.xml

@@ -201,6 +201,9 @@
             <if test="query.deliveryType != null and query.deliveryType != ''">
                 and a.delivery_type =#{query.deliveryType}
             </if>
+            <if test="query.pickupType != null and query.pickupType != ''">
+                and a.pickup_type =#{query.pickupType}
+            </if>
         </where>
         ORDER BY a.create_time DESC
     </select>

+ 1 - 1
sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwTransportController.java

@@ -275,7 +275,7 @@ public class KwTransportController {
      * @return: com.sckw.core.web.response.HttpResult
      */
     @PostMapping(value = "/wayBillOrderExport", produces = MediaType.APPLICATION_JSON_VALUE)
-    public void wayBillOrderExport(@RequestBody @Validated WaybillOrderQuery query, HttpServletResponse response) {
+    public void wayBillOrderExport(@RequestBody WaybillOrderQuery query, HttpServletResponse response) {
         List<WaybillOrderListExport> list = transportService.wayBillOrderExport(query);
         if (CollectionUtils.isEmpty(list)) {
             throw new CustomPromptException(HttpStatus.SUCCESS_CODE, "暂无数据,请确认");

+ 6 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderLineFreightRateMapper.java

@@ -21,4 +21,10 @@ public interface KwtLogisticsOrderLineFreightRateMapper extends BaseMapper<KwtLo
      * @return
      */
     List<LineFreightRateVo> selectListByOrderId(@Param("orderId") Long orderId);
+
+    /**
+     * 订单id 获取线路信息
+     * @return
+     */
+    List<KwtLogisticsOrderLineFreightRate> selectListByOrderIdList(@Param("list") List<Long> orderIdList);
 }

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrderTicket.java

@@ -73,7 +73,7 @@ public class KwtWaybillOrderTicket implements Serializable {
     private Date operateTime;
 
     /**
-     * 状态(0待审核、1审核失败、2审核成功)
+     * 状态(0待审核、1驳回、2审核成功)
      */
     private Integer status;
 

+ 2 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/AcceptCarriageOrderVO.java

@@ -135,6 +135,8 @@ public class AcceptCarriageOrderVO /*extends PageRequest*/ {
      */
     private BigDecimal price;
 
+    private List<String> prices;
+
     /**
      * 运价
      */

+ 16 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtConsignOrderService.java

@@ -10,6 +10,7 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.sckw.contract.api.RemoteContractService;
 import com.sckw.contract.api.model.dto.res.ContractCommonInfoResDto;
+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;
@@ -1838,7 +1839,22 @@ public class KwtConsignOrderService {
                 longUserMap = remoteSystemService.queryUserCacheMapByIds(collect);
             }
         }
+
+        List<AcceptCarriageOrderVO> collect = list.stream().filter(item -> item.getBillingMode().equals(DictEnum.CHARGING_TYPE_4.getValue())).collect(Collectors.toList());
+        Map<Long, List<KwtLogisticsOrderLineFreightRate>> collect1 = new HashMap<>();
+        if (CollectionUtils.isNotEmpty(collect)) {
+            List<KwtLogisticsOrderLineFreightRate> kwtLogisticsOrderLineFreightRates = lineFreightRateMapper.selectListByOrderIdList(collect.stream().map(AcceptCarriageOrderVO::getLOrderId).map(Long::parseLong).toList());
+            if (CollectionUtils.isNotEmpty(kwtLogisticsOrderLineFreightRates)) {
+                collect1 = kwtLogisticsOrderLineFreightRates.stream().collect(Collectors.groupingBy(KwtLogisticsOrderLineFreightRate::getLOrderId));
+            }
+        }
+
         for (AcceptCarriageOrderVO vo : list) {
+            List<KwtLogisticsOrderLineFreightRate> kwtLogisticsOrderLineFreightRates = collect1.get(Long.parseLong(vo.getLOrderId()));
+            if (CollectionUtils.isNotEmpty(kwtLogisticsOrderLineFreightRates)) {
+                vo.setPrices(kwtLogisticsOrderLineFreightRates.stream().map(item -> item.getName() + " " + item.getTransportPrice()).toList());
+            }
+
             vo.setOrderSourceLabel(orderSource == null ? null : orderSource.get(vo.getOrderSource()));
             vo.setAccountsCycleLabel(settlementDictData.get(vo.getAccountsCycle()));
             vo.setAppointor(longUserMap.get(vo.getCreateBy()) == null ? null : longUserMap.get(vo.getCreateBy()).getName());

+ 4 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderTicketService.java

@@ -1,5 +1,6 @@
 package com.sckw.transport.service;
 
+import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.model.constant.Global;
@@ -177,6 +178,7 @@ public class KwtWaybillOrderTicketService {
         if (CollectionUtils.isNotEmpty(loading)) {
             for (WaybillOrderTicketLoadingDto ticket : loading) {
                 KwtWaybillOrderTicket oldTicket = ticketMapper.findWaybillOrderTicketV2(wAddressId, ticket.getUnit());
+                log.info("oldTicket:{}", JSON.toJSONString(oldTicket));
                 if (oldTicket == null) {
                     continue;
                 }
@@ -195,6 +197,8 @@ public class KwtWaybillOrderTicketService {
                 orderTicket.setUrls(urls);
                 orderTicket.setOperateTime(operateTime == null ? oldTicket.getOperateTime() : operateTime);
                 ticketMapper.insert(orderTicket);
+                log.info("orderTicket:{}", JSON.toJSONString(orderTicket));
+
             }
         }
     }

+ 47 - 36
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderV1Service.java

@@ -903,6 +903,9 @@ public class KwtWaybillOrderV1Service {
             List<KwtLogisticsOrderAmount> logisticsOrderAmounts = logisticsOrderAmountDao.findByAddress(queryAmount);
             for (KwtLogisticsOrderAmount orderAmount : logisticsOrderAmounts) {
                 BigDecimal truckEntrustAmount = truckTotalEntrustAmount.get(orderAmount.getLAddressId());
+                if (Objects.isNull(truckEntrustAmount)) {
+                    continue;
+                }
                 //剩余可运量 = 当前上游委派量 - 历史下游司机委派量 - 分包量
                 BigDecimal surplusAmount = orderAmount.getAmount().subtract(orderAmount.getEntrustAmount()).subtract(orderAmount.getSubcontractAmount());
                 if (surplusAmount.doubleValue() < truckEntrustAmount.doubleValue()) {
@@ -1873,6 +1876,7 @@ public class KwtWaybillOrderV1Service {
      **/
     @Transactional(rollbackFor = Exception.class)
     public HttpResult editTicketV2(List<WaybillOrderEditTicketDto> params) {
+        log.info("params:{}", JSON.toJSONString(params));
         /*1、校验*/
         for (WaybillOrderEditTicketDto ticketDto : params) {
             Long wTicketId = ticketDto.getWTicketId();
@@ -1883,13 +1887,16 @@ public class KwtWaybillOrderV1Service {
             }
         }
 
-        //数据处理
+        //数据处理-榜单
+        Long wOrderId = null;
+        //运单信息
+        KwtWaybillOrderV1 waybillOrder = null;
         for (WaybillOrderEditTicketDto ticketDto : params) {
             Long wTicketId = ticketDto.getWTicketId();
             KwtWaybillOrderTicket ticket = waybillOrderTicketDao.selectById(wTicketId);
-            Long wOrderId = ticket.getWOrderId();
+            wOrderId = ticket.getWOrderId();
             //运单信息
-            KwtWaybillOrderV1 waybillOrder = waybillOrderV1Dao.selectById(wOrderId);
+            waybillOrder = waybillOrderV1Dao.selectById(wOrderId);
             if (waybillOrder == null) {
                 return HttpResult.error("运单" + wOrderId + "不存在,请确认!");
             }
@@ -1906,11 +1913,14 @@ public class KwtWaybillOrderV1Service {
             /*2、更新装卸货榜单信息*/
             //榜单信息
             List<WaybillOrderTicketLoadingDto> loading = ticketDto.getLoading();
+            log.info("loading:{}", JSON.toJSONString(loading));
             waybillOrderTicketService.editTicketV1(loading, ticket.getWAddressId(), ticketDto.getUrls(), ticketDto.getOperateTime());
 
             /*3、更新车辆运单-子单*/
             //运单子单信息
             KwtWaybillOrderSubtask orderSubtask = waybillOrderSubtaskDao.selectById(ticket.getWSubtaskId());
+            log.info("orderSubtask:{}", JSON.toJSONString(orderSubtask));
+
             //物流运单信息
             KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(orderSubtask.getLOrderId());
             //运单-子单装货榜单信息
@@ -1928,47 +1938,48 @@ public class KwtWaybillOrderV1Service {
                     logisticsOrder.getLoss(), logisticsOrder.getLossUnit(), logisticsOrder.getGoodsPrice());
             orderSubtask.setDeficitPrice(deficitPrice);
             waybillOrderSubtaskDao.updateById(orderSubtask);
+            log.info("neworderSubtask:{}", JSON.toJSONString(orderSubtask));
+        }
 
-            /*4、更新车辆运单子单状态*/
-            //运单子单信息
-            List<KwtWaybillOrderSubtask> subtasks = waybillOrderSubtaskDao.findByWOrderId(orderSubtask.getWOrderId());
-            for (KwtWaybillOrderSubtask subtask : subtasks) {
-                //运单子单状态不为驳回状态则不更新运单状态
-                if (!subtask.getStatus().equals(CarWaybillEnum.APPROVAL_NO_PASS.getCode())) {
-                    return HttpResult.ok();
-                }
-                //榜单存在审核失败状态则不更新运单状态
-                List<KwtWaybillOrderTicket> tickets = waybillOrderTicketDao.findWaybillOrderTicket(null, subtask.getId(), null);
-                for (KwtWaybillOrderTicket ticket1 : tickets) {
-                    if (ticket1.getStatus() == Global.NUMERICAL_ONE) {
-                        return HttpResult.ok();
-                    }
-                }
-                //运单-子弹当前为驳回则状态更新为单证更新审核中
-                int status = orderSubtask.getStatus().equals(CarWaybillEnum.APPROVAL_NO_PASS.getCode()) ? CarWaybillEnum.APPROVAL_IN.getCode() : orderSubtask.getStatus();
-                subtask.setStatus(status);
-                waybillOrderSubtaskDao.updateById(subtask);
-            }
-
-            /*5、更新车辆运单-状态*/
-            //运单状态不为驳回状态则不更新运单状态
-            if (!waybillOrder.getStatus().equals(CarWaybillEnum.APPROVAL_NO_PASS.getCode())) {
+        /*4、更新车辆运单子单状态*/
+        //运单子单信息
+        List<KwtWaybillOrderSubtask> subtasks = waybillOrderSubtaskDao.findByWOrderId(wOrderId);
+        for (KwtWaybillOrderSubtask subtask : subtasks) {
+            //运单子单状态不为驳回状态则不更新运单状态
+            if (!subtask.getStatus().equals(CarWaybillEnum.APPROVAL_NO_PASS.getCode())) {
                 return HttpResult.ok();
             }
-            //运单子单存在非待审核和审核中则不更新
-            subtasks = waybillOrderSubtaskDao.findByWOrderId(orderSubtask.getWOrderId());
-            for (KwtWaybillOrderSubtask subtask : subtasks) {
-                if (!subtask.getStatus().equals(CarWaybillEnum.APPROVAL_IN.getCode())
-                        && !subtask.getStatus().equals(CarWaybillEnum.APPROVAL_TREAT.getCode())) {
+            //榜单存在审核失败状态则不更新运单状态
+            List<KwtWaybillOrderTicket> tickets = waybillOrderTicketDao.findWaybillOrderTicket(null, subtask.getId(), null);
+            for (KwtWaybillOrderTicket ticket1 : tickets) {
+                if (ticket1.getStatus() == Global.NUMERICAL_ONE) {
                     return HttpResult.ok();
                 }
             }
-            waybillOrder.setStatus(CarWaybillEnum.APPROVAL_IN.getCode());
-            waybillOrderV1Dao.updateById(waybillOrder);
+            //运单-子单当前为驳回则状态更新为单证更新审核中
+            int status = subtask.getStatus().equals(CarWaybillEnum.APPROVAL_NO_PASS.getCode()) ? CarWaybillEnum.APPROVAL_IN.getCode() : subtask.getStatus();
+            subtask.setStatus(status);
+            waybillOrderSubtaskDao.updateById(subtask);
+        }
 
-            /*4.2、新增运单状态记录*/
-            setWaybillOrderTrack(waybillOrder.getId(), null, null, null, waybillOrder.getStatus(), null);
+        /*5、更新车辆运单-状态*/
+        //运单状态不为驳回状态则不更新运单状态
+        if (!waybillOrder.getStatus().equals(CarWaybillEnum.APPROVAL_NO_PASS.getCode())) {
+            return HttpResult.ok();
         }
+        //运单子单存在非待审核和审核中则不更新
+        subtasks = waybillOrderSubtaskDao.findByWOrderId(wOrderId);
+        for (KwtWaybillOrderSubtask subtask : subtasks) {
+            if (!subtask.getStatus().equals(CarWaybillEnum.APPROVAL_IN.getCode())
+                    && !subtask.getStatus().equals(CarWaybillEnum.APPROVAL_TREAT.getCode())) {
+                return HttpResult.ok();
+            }
+        }
+        waybillOrder.setStatus(CarWaybillEnum.APPROVAL_IN.getCode());
+        waybillOrderV1Dao.updateById(waybillOrder);
+
+        /*4.2、新增运单状态记录*/
+        setWaybillOrderTrack(waybillOrder.getId(), null, null, null, waybillOrder.getStatus(), null);
         return HttpResult.ok();
     }
 

+ 10 - 0
sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderLineFreightRateMapper.xml

@@ -18,4 +18,14 @@
         where l_order_id = #{orderId}
           AND del_flag = 0
     </select>
+
+    <select id="selectListByOrderIdList" resultType="com.sckw.transport.model.KwtLogisticsOrderLineFreightRate">
+        select *
+        from kwt_logistics_order_line_freight_rate
+        where del_flag = 0
+          and l_order_id in <foreach collection="list" item="item" open="(" close=")" separator=",">
+                #{item}
+    </foreach>
+
+    </select>
 </mapper>