Просмотр исходного кода

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

czh 2 лет назад
Родитель
Сommit
83a6b6daf5
20 измененных файлов с 558 добавлено и 92 удалено
  1. 1 1
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictEnum.java
  2. 25 0
      sckw-modules/sckw-contract/src/main/resources/bootstrap-local.yml
  3. 3 3
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/UpdatePasswordDto.java
  4. 13 9
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfDriverService.java
  5. 8 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/KwoTradeOrder.java
  6. 4 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/GoodsInfo.java
  7. 4 1
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/PurchaseOrderDraftParam.java
  8. 3 1
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java
  9. 40 16
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java
  10. 33 30
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/TradeOrderListExport.java
  11. 4 4
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/OrderListRes.java
  12. 1 2
      sckw-modules/sckw-report/src/main/resources/bootstrap.yml
  13. 11 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/KwtWaybillOrderController.java
  14. 11 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/WaybillManagementController.java
  15. 90 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/WaybillOrderTicketApprovalDto.java
  16. 84 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillSimpleDataVO.java
  17. 135 13
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java
  18. 18 4
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/TransportCommonService.java
  19. 65 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/WaybillManagementService.java
  20. 5 8
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml

+ 1 - 1
sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictEnum.java

@@ -45,7 +45,7 @@ public enum DictEnum {
     DELIVERY_TYPE_0("delivery_type", "0", "签发交付"),
     DELIVERY_TYPE_1("delivery_type", "1", "签收交付"),
     TORDER_SOURCE_1("tOrder_source", "1", "采购下单"),
-    TORDER_SOURCE_2("tOrder_source", "2", "销售代客下单"),
+    TORDER_SOURCE_2("tOrder_source", "2", "代客下单"),
     TORDER_STATUS_0("tOrder_status", "0", "已保存"),
     TORDER_STATUS_1("tOrder_status", "1", "待受理"),
     TORDER_STATUS_2("tOrder_status", "2", "已退回"),

+ 25 - 0
sckw-modules/sckw-contract/src/main/resources/bootstrap-local.yml

@@ -0,0 +1,25 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: 10.10.10.230:8848
+        # 命名空间
+        namespace: sckw-yzc
+        # 共享配置
+        group: sckw-service-platform
+      config:
+        # 配置中心地址
+        server-addr: 10.10.10.230:8848
+        # 配置文件格式
+        file-extension: yaml
+        # 命名空间
+        namespace: sckw-yzc
+        # 共享配置
+        group: sckw-service-platform
+        #可以读多个配置文件  需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-service-platform
+            refresh: true
+

+ 3 - 3
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/UpdatePasswordDto.java

@@ -20,14 +20,14 @@ public class UpdatePasswordDto {
     /**
      * 旧密码
      */
-    @NotBlank(message = "密码不能为空!")
+    @NotBlank(message = "密码不能为空!")
     private String password;
 
     /**
      * 新密码
      */
-    @NotBlank(message = "新密码不能为空!")
-    private String newPassword;
+    @NotBlank(message = "验证码不能为空!")
+    private String captcha;
 
     private Long driverId;
 }

+ 13 - 9
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfDriverService.java

@@ -662,25 +662,29 @@ public class KwfDriverService {
      */
     public HttpResult updatePassword(UpdatePasswordDto params) {
         /**获取信息**/
-        Long driverId = null;//LoginUserHolder.getUserId(); //暂时----------------zk
+        Long driverId = LoginUserHolder.getUserId();
         driverId = driverId == null ? params.getDriverId() : driverId;
         KwfDriver driver = driverDao.selectById(driverId);
         if (driver == null) {
             return HttpResult.error("信息不存在!");
         }
 
-        /**原密码校验**/
-        if (!PasswordUtils.validatePassword(params.getPassword(), driver.getPassword())) {
-            return HttpResult.error("原密码不正确!");
+        /**校验**/
+        String key = StringUtils.format(RedisConstant.MESSAGE_SMS_VERIFY_CODE_VALUE_KEY, DictEnum.SMS_UPDATE_PASSWORD.getValue(), params.getAccount());
+        RedissonUtils.putString(key, params.getCaptcha(), RedisConstant.SMS_VERIFY_CODE_VALID_TIME);
+        String smsCaptcha = RedissonUtils.getString(key);
+        if (StringUtils.isBlank(smsCaptcha)){
+            return HttpResult.error(HttpStatus.UN_LOGIN_CODE, "验证码不能为空!");
         }
-
-        /**新旧密码不能一只**/
-        if (PasswordUtils.validatePassword(params.getNewPassword(), driver.getPassword())) {
-            return HttpResult.error("原密码与新密码不能一致!");
+        if (StringUtils.isBlank(smsCaptcha)){
+            return HttpResult.error(HttpStatus.UN_LOGIN_CODE, "验证码已过期,请重新获取!");
+        }
+        if (!params.getCaptcha().equals(smsCaptcha)){
+            return HttpResult.error(HttpStatus.UN_LOGIN_CODE, "验证码不正确,请确认再输入!");
         }
 
         /**更新数据**/
-        driver.setPassword(PasswordUtils.entryptPassword(params.getNewPassword()));
+        driver.setPassword(PasswordUtils.entryptPassword(params.getPassword()));
         driver.setSalt(PasswordUtils.getSaltSubPwd(driver.getPassword()));
         int count = driverDao.updateById(driver);
         return count > 0 ? HttpResult.ok("密码修改成功!") : HttpResult.error("密码修改失败!");

+ 8 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/KwoTradeOrder.java

@@ -25,6 +25,14 @@ import java.time.LocalDate;
 @TableName("kwo_trade_order")
 public class KwoTradeOrder extends BaseModel implements Serializable {
 
+    public KwoTradeOrder(){
+        this.amount = new BigDecimal("0.00");
+        this.price = new BigDecimal("0.00");
+        this.entrustAmount = new BigDecimal("0.00");
+        this.actualAmount = new BigDecimal("0.00");
+        this.associateStatement = 0;
+    }
+
     @Serial
     private static final long serialVersionUID = -4156986025493740589L;
 

+ 4 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/GoodsInfo.java

@@ -20,6 +20,10 @@ import java.math.BigDecimal;
 @ToString
 @Accessors(chain = true)
 public class GoodsInfo {
+
+    public GoodsInfo(){
+        this.unitPrice = new BigDecimal("0.00");
+    }
     /**
      * 商品id
      */

+ 4 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/PurchaseOrderDraftParam.java

@@ -20,7 +20,10 @@ import java.util.List;
 @Setter
 @ToString
 public class PurchaseOrderDraftParam {
-
+    public PurchaseOrderDraftParam(){
+        this.amount = new BigDecimal("0.00");
+        this.price = new BigDecimal("0.00");
+    }
     /**
      * 商品信息
      */

+ 3 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -139,7 +139,9 @@ public class KwoTradeOrderService {
             order.setGoodsId(goodsDetail.getId()).setUnit(goodsDetail.getUnit()).setUnitPrice(goods.getUnitPrice())
                     .setGoodsName(goodsDetail.getName()).setGoodsType(goodsDetail.getGoodsType()).setGoodsCode(goodsDetail.getCode())
                     .setGoodsTaxRate(goodsDetail.getTaxRate()).setGoodsSpec(goodsDetail.getSpec()).setGoodsThumb(goodsDetail.getThumb());
-            BeanUtils.copyProperties(goodsInfo, order);
+        }
+        if (Objects.isNull(order.getUnitPrice())){
+            order.setUnitPrice(new BigDecimal("0.00"));
         }
         //单位信息
         kwoTradeOrderUnitService.delByOrderId(id);

+ 40 - 16
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java

@@ -12,7 +12,6 @@ import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.excel.utils.DateUtil;
 import com.sckw.mongo.model.SckwTradeOrder;
-import com.sckw.report.dao.SckwTradeOrderRepository;
 import com.sckw.report.service.param.*;
 import com.sckw.report.service.vo.OrderListRes;
 import com.sckw.report.service.vo.TradeOrderAppStatisticVO;
@@ -24,6 +23,7 @@ import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.regex.Pattern;
@@ -39,8 +39,6 @@ import java.util.stream.Collectors;
 @AllArgsConstructor
 public class KwOrderService {
 
-    private final SckwTradeOrderRepository sckwOrderRepository;
-
     private final MongoTemplate mongoTemplate;
 
     /**
@@ -100,14 +98,28 @@ public class KwOrderService {
                     .setPickupTypeLabel(DictEnum.getLabel(DictTypeEnum.PICKUP_TYPE.getType(), e.getPickupType()))
                     .setLoadDetailAddressInfo(loadCityName + loadDetailAddress)
                     .setUnloadDetailAddressInfo(unloadCityName + unloadDetailAddress)
-                    .setConsignmentStatus(Objects.isNull(e.getEntrustAmount()) || Objects.isNull(e.getAmount())
-                            || e.getEntrustAmount().compareTo(e.getAmount()) < 0 ? "待托运" : "已托运")
+                    .setWaitEntrustAmount(getWaitEntrustAmount(e.getAmount(), e.getEntrustAmount()))
                     .setSource(DictEnum.getLabel(DictTypeEnum.TORDER_SOURCE.getType(), e.getSource()));
             result.add(order);
         });
         return PageResult.build(page, pageSize, count, result);
     }
 
+    /**
+     * @desc: 获取订单待分配运输量
+     * @author: yzc
+     * @date: 2023-08-25 10:32
+     * @Param amount:
+     * @Param entrustAmount:
+     * @return: java.math.BigDecimal
+     */
+    private BigDecimal getWaitEntrustAmount(BigDecimal amount, BigDecimal entrustAmount) {
+        if (Objects.isNull(amount) || Objects.isNull(entrustAmount)) {
+            return amount;
+        }
+        return amount.subtract(entrustAmount);
+    }
+
     /**
      * @desc: 组装query
      * @author: yzc
@@ -285,20 +297,28 @@ public class KwOrderService {
         List<TradeOrderListExport> list = new ArrayList<>();
         AtomicInteger i = new AtomicInteger(1);
         orders.forEach(e -> {
+            BigDecimal waitEntrustAmount = getWaitEntrustAmount(e.getAmount(), e.getEntrustAmount());
+            String loadCityName = Objects.isNull(e.getLoadCityName()) ? "" : e.getLoadCityName();
+            String loadDetailAddress = Objects.isNull(e.getLoadDetailAddress()) ? "" : e.getLoadDetailAddress();
+            String unloadCityName = Objects.isNull(e.getUnloadCityName()) ? "" : e.getUnloadCityName();
+            String unloadDetailAddress = Objects.isNull(e.getUnloadDetailAddress()) ? "" : e.getUnloadDetailAddress();
             TradeOrderListExport export = BeanUtils.copyProperties(e, TradeOrderListExport.class);
             export.setSerialNumber(String.valueOf(i.getAndIncrement()))
                     .setStatus(DictEnum.getLabel(DictTypeEnum.TORDER_STATUS.getType(), String.valueOf(e.getStatus())))
-                    .setTrading(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), e.getTrading()))
-                    .setDeliveryType(DictEnum.getLabel(DictTypeEnum.DELIVERY_TYPE.getType(), e.getDeliveryType()))
+                    .setUnitPrice(Objects.isNull(e.getUnitPrice()) ? "0.00" : String.valueOf(e.getUnitPrice()))
+                    .setAmount(Objects.isNull(e.getAmount()) ? "0.00" : String.valueOf(e.getAmount()))
+                    .setPrice(Objects.isNull(e.getPrice()) ? "0.00" : String.valueOf(e.getPrice()))
+                    .setEntrustAmount(Objects.isNull(e.getEntrustAmount()) ? "0.00" : String.valueOf(e.getEntrustAmount()))
+                    .setActualAmount(Objects.isNull(e.getActualAmount()) ? "0.00" : String.valueOf(e.getActualAmount()))
+                    .setWaitEntrustAmount(Objects.isNull(waitEntrustAmount) ? "0.00" : String.valueOf(waitEntrustAmount))
                     .setPickupType(DictEnum.getLabel(DictTypeEnum.PICKUP_TYPE.getType(), e.getPickupType()))
-                    .setConsignmentStatus(Objects.equals(e.getAmount(), e.getEntrustAmount()) ? "待托运" : "已托运")
+                    .setDeliveryType(DictEnum.getLabel(DictTypeEnum.DELIVERY_TYPE.getType(), e.getDeliveryType()))
                     .setSource(DictEnum.getLabel(DictTypeEnum.TORDER_SOURCE.getType(), e.getSource()))
-                    .setUnitPrice(String.valueOf(e.getUnitPrice())).setPrice(String.valueOf(e.getPrice()))
-                    .setAmount(String.valueOf(e.getAmount())).setActualAmount(String.valueOf(e.getActualAmount()))
-                    .setLoadDetailAddressInfo(e.getLoadCityName() + e.getUnloadDetailAddress())
-                    .setUnloadDetailAddressInfo(e.getUnloadCityName() + e.getUnloadDetailAddress())
-                    .setActualAmount(Objects.isNull(e.getActualAmount()) ? "0.00" : String.valueOf(e.getActualAmount()))
+                    .setTrading(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), e.getTrading()))
+                    .setLoadDetailAddressInfo(loadCityName + loadDetailAddress)
+                    .setUnloadDetailAddressInfo(unloadCityName + unloadDetailAddress)
                     .setStartTime(Objects.isNull(e.getStartTime()) ? null : DateUtil.dateToStr(e.getStartTime()))
+                    .setEndTime(Objects.isNull(e.getEndTime()) ? null : DateUtil.dateToStr(e.getEndTime()))
                     .setCreateTime(DateUtil.getDateTime(e.getCreateTime()));
             list.add(export);
         });
@@ -371,14 +391,18 @@ public class KwOrderService {
         List<SckwTradeOrder> list = mongoTemplate.find(query, SckwTradeOrder.class);
         List<OrderListRes> result = new ArrayList<>();
         list.forEach(e -> {
+            String loadCityName = Objects.isNull(e.getLoadCityName()) ? "" : e.getLoadCityName();
+            String loadDetailAddress = Objects.isNull(e.getLoadDetailAddress()) ? "" : e.getLoadDetailAddress();
+            String unloadCityName = Objects.isNull(e.getUnloadCityName()) ? "" : e.getUnloadCityName();
+            String unloadDetailAddress = Objects.isNull(e.getUnloadDetailAddress()) ? "" : e.getUnloadDetailAddress();
             OrderListRes order = BeanUtils.copyProperties(e, OrderListRes.class);
             order.setStatusLabel(DictEnum.getLabel(DictTypeEnum.TORDER_STATUS.getType(), String.valueOf(e.getStatus())))
                     .setTrading(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), e.getTrading()))
                     .setDeliveryType(DictEnum.getLabel(DictTypeEnum.DELIVERY_TYPE.getType(), e.getDeliveryType()))
                     .setPickupTypeLabel(DictEnum.getLabel(DictTypeEnum.PICKUP_TYPE.getType(), e.getPickupType()))
-                    .setLoadDetailAddressInfo(e.getLoadCityName() + e.getUnloadDetailAddress())
-                    .setUnloadDetailAddressInfo(e.getUnloadCityName() + e.getUnloadDetailAddress())
-                    .setConsignmentStatus(Objects.isNull(e.getEntrustAmount()) || e.getEntrustAmount().compareTo(e.getAmount()) < 0 ? "待托运" : "已托运")
+                    .setLoadDetailAddressInfo(loadCityName + loadDetailAddress)
+                    .setUnloadDetailAddressInfo(unloadCityName + unloadDetailAddress)
+                    .setWaitEntrustAmount(getWaitEntrustAmount(e.getAmount(), e.getActualAmount()))
                     .setSource(DictEnum.getLabel(DictTypeEnum.TORDER_SOURCE.getType(), e.getSource()));
             result.add(order);
         });

+ 33 - 30
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/TradeOrderListExport.java

@@ -23,7 +23,7 @@ public class TradeOrderListExport implements Serializable {
     @ExcelProperty(value = "序号" )
     private String serialNumber;
 
-    @ExcelProperty(value = "上架状态" )
+    @ExcelProperty(value = "状态" )
     private String status;
 
     @ExcelProperty(value = "订单编号" )
@@ -35,27 +35,6 @@ public class TradeOrderListExport implements Serializable {
     @ExcelProperty(value = "销售单位")
     private String supplyFirmName;
 
-    @ExcelProperty(value = "提货方式" )
-    private String pickupType;
-
-    @ExcelProperty(value = "托运状态")
-    private String consignmentStatus;
-
-    @ExcelProperty(value = "交付类型" )
-    private String deliveryType;
-
-    @ExcelProperty(value = "下单方式" )
-    private String source;
-
-    @ExcelProperty(value = "支付方式")
-    private String trading;
-
-    @ExcelProperty(value = "关联合同")
-    private String contractNo;
-
-    @ExcelProperty(value = "签约方式")
-    private String contractSigningWay;
-
     @ExcelProperty(value = "商品名称")
     private String goodsName;
 
@@ -65,36 +44,60 @@ public class TradeOrderListExport implements Serializable {
     @ExcelProperty(value = "单价/元")
     private String unitPrice;
 
+    @ExcelProperty(value = "订单总量")
+    private String amount;
+
     @ExcelProperty(value = "订单金额")
     private String price;
 
-    @ExcelProperty(value = "订单总量")
-    private String amount;
+    @ExcelProperty(value = "已分配运输量")
+    private String entrustAmount;
 
     @ExcelProperty(value = "已履约量")
     private String actualAmount;
 
-    @ExcelProperty(value = "归属项目")
-    private String projectName;
+    @ExcelProperty(value = "待分配运输量")
+    private String waitEntrustAmount;
+
+    @ExcelProperty(value = "提货方式" )
+    private String pickupType;
+
+    @ExcelProperty(value = "交付类型" )
+    private String deliveryType;
+
+    @ExcelProperty(value = "下单方式" )
+    private String source;
+
+    @ExcelProperty(value = "支付方式")
+    private String trading;
 
     @ExcelProperty(value = "装货地址名称")
     private String loadName;
 
-    @ExcelProperty(value = "装货地址明细")
+    @ExcelProperty(value = "地址明细")
     private String loadDetailAddressInfo;
 
     @ExcelProperty(value = "卸货地址名称")
     private String unloadName;
 
-    @ExcelProperty(value = "卸货地址明细")
+    @ExcelProperty(value = "地址明细")
     private String unloadDetailAddressInfo;
 
-    @ExcelProperty(value = "计划开始时间")
+    @ExcelProperty(value = "计划开始日期")
     private String startTime;
 
-    @ExcelProperty(value = "计划结束时间")
+    @ExcelProperty(value = "计划结束日期")
     private String endTime;
 
+    @ExcelProperty(value = "关联合同")
+    private String contractNo;
+
+    @ExcelProperty(value = "签约方式")
+    private String contractSigningWay;
+
+    @ExcelProperty(value = "归属项目")
+    private String projectName;
+
     @ExcelProperty(value = "备注")
     private String remark;
 

+ 4 - 4
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/OrderListRes.java

@@ -74,10 +74,6 @@ public class OrderListRes {
      * 提货方式label
      */
     private String pickupTypeLabel;
-    /**
-     * 托运状态
-     */
-    private String consignmentStatus;
     /**
      * 下单方式(自主下单/代客下单)
      */
@@ -137,6 +133,10 @@ public class OrderListRes {
      * 已委托量
      */
     private BigDecimal entrustAmount;
+    /**
+     * 待委托量
+     */
+    private BigDecimal waitEntrustAmount;
     /**
      * 实际交付量
      */

+ 1 - 2
sckw-modules/sckw-report/src/main/resources/bootstrap.yml

@@ -5,9 +5,8 @@ spring:
   application:
     name: sckw-report
   profiles:
-#    active: @profiles.active@
+    active: @profiles.active@
 #    active: test
-    active: ${DEPLOY_MODE:dev}
   main:
     allow-bean-definition-overriding: true
     allow-circular-references: true

+ 11 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/KwtWaybillOrderController.java

@@ -295,6 +295,17 @@ public class KwtWaybillOrderController {
         return waybillOrderService.approvalTicket(params);
     }
 
+    /**
+     * @param params {}
+     * @desc 单证审核(编辑单证)
+     * @author zk
+     * @date 2023/7/26
+     **/
+    @PostMapping("/approvalEditTicket")
+    public HttpResult approvalEditTicket(@RequestBody @Valid WaybillOrderTicketApprovalDto params){
+        return waybillOrderService.approvalEditTicket(params);
+    }
+
 
 
     //取消派车(未接单前)

+ 11 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/WaybillManagementController.java

@@ -38,6 +38,17 @@ public class WaybillManagementController {
         }
     }
 
+    @Valid
+    @RequestMapping(name = "简洁版运单详情", value = "/waybillSimpleData", method = RequestMethod.GET)
+    public HttpResult waybillSimpleData(@RequestParam("id") Long id) {
+        try {
+            return waybillManagementService.waybillSimpleData(id);
+        } catch (Exception e) {
+            log.error("托运订单详情:订单id {},error {} ", id, e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
     @RequestMapping(name = "运单看板", value = "/waybillIndex", method = RequestMethod.POST)
     public HttpResult waybillIndex(@Validated @RequestBody WaybillOrderDTO waybillOrderDTO) {
         try {

+ 90 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/WaybillOrderTicketApprovalDto.java

@@ -0,0 +1,90 @@
+package com.sckw.transport.model.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import jakarta.validation.constraints.DecimalMin;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+/**
+ * @author zk
+ * @desc 车辆运单审核
+ * @date 2023/7/27 0027
+ */
+@Data
+public class WaybillOrderTicketApprovalDto {
+    /**
+     * 车辆运单id
+     */
+    @JsonProperty("wOrderId")
+    @NotNull(message = "车辆运单ID不能为空")
+    private Long wOrderId;
+
+    /**
+     * 装卸货数量
+     */
+    @JsonProperty("loadAmount")
+    @NotNull(message = "装货净重不能为空")
+    @DecimalMin(value= "0", inclusive=false, message = "装卸货净重必须等于或大于0")
+    private BigDecimal loadAmount;
+
+    /**
+     * 上传凭证地址,多个以英文逗号隔开
+     */
+    @JsonProperty("loadUrls")
+    @NotBlank(message = "装货凭证不能为空")
+    private String loadUrls;
+
+    /**
+     * 操作时间
+     */
+    @JsonProperty("loadOperateTime")
+    @JsonFormat(locale="zh", pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @NotNull(message = "装货时间不能为空")
+    private Date loadOperateTime;
+
+    /**
+     * 装卸货数量
+     */
+    @JsonProperty("unloadAmount")
+    @NotNull(message = "卸货净重不能为空")
+    @DecimalMin(value= "0", inclusive=false, message = "装卸货净重必须等于或大于0")
+    private BigDecimal unloadAmount;
+
+    /**
+     * 上传凭证地址,多个以英文逗号隔开
+     */
+    @JsonProperty("unloadUrls")
+    @NotBlank(message = "卸货凭证不能为空")
+    private String unloadUrls;
+
+    /**
+     * 操作时间
+     */
+    @JsonProperty("unloadOperateTime")
+    @JsonFormat(locale="zh", pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @NotNull(message = "卸货时间不能为空")
+    private Date unloadOperateTime;
+
+    /**
+     * 磅单类型(0 审核-通过/1 已核-不通过)
+     */
+    @JsonProperty("status")
+    @NotNull(message = "磅单类型不能为空")
+    private Integer status;
+
+    /**
+     * 备注
+     */
+    @Size(max=100, message = "原因长度不能大于100个字符!")
+    private String remark;
+}

+ 84 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillSimpleDataVO.java

@@ -0,0 +1,84 @@
+package com.sckw.transport.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author JC
+ * @description 简洁版运单详情vo
+ * @date 2023-07-18 16:07:54
+ */
+@Data
+public class WaybillSimpleDataVO {
+    /**
+     * 运单ID
+     */
+    @JsonProperty("wOrderId")
+    private String wOrderId;
+
+    /**
+     * 运单号
+     */
+    @JsonProperty("wOrderNo")
+    private String wOrderNo;
+
+    /**
+     * 承运单号
+     */
+    @JsonProperty("lOrderNo")
+    private String lOrderNo;
+
+    /**
+     * 车辆ID
+     */
+    private Long truckId;
+
+    /**
+     * 运单状态
+     */
+    private String status;
+
+    /**
+     * 车牌号
+     */
+    private String truckNo;
+
+    /**
+     * 车牌号
+     */
+    private String type;
+
+    /**
+     * 司机ID
+     */
+    private Long driverId;
+
+    /**
+     * 司机姓名
+     */
+    private String driverName;
+
+    /**
+     * 司机电话
+     */
+    private String driverPhone;
+
+    /**
+     * 司机身份证
+     */
+    private String driverIdcard;
+
+    /**
+     * 承运单ID
+     */
+    @JsonProperty("lOrderId")
+    private String lOrderId;
+
+    /**
+     * 进度数据
+     */
+    private List<WaybillStatusVO> process;
+}
+

+ 135 - 13
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java

@@ -453,9 +453,9 @@ public class KwtWaybillOrderService {
     public HttpResult setWaybillOrder(List<SendCarDto1> params, KwtLogisticsOrder logisticsOrder) {
         /**获取基础信息**/
         //装货地址
-        KwtWaybillOrderAddress loadAddress = this.getAddress(logisticsOrder.getId(), Global.NUMERICAL_ONE);
+        KwtWaybillOrderAddress loadAddress = this.getAddress(logisticsOrder.getId(), Global.NUMERICAL_ONE, Global.NUMERICAL_ONE);
         //卸货地址
-        KwtWaybillOrderAddress unloadAddress = this.getAddress(logisticsOrder.getId(), Global.NUMERICAL_TWO);
+        KwtWaybillOrderAddress unloadAddress = this.getAddress(logisticsOrder.getId(), Global.NUMERICAL_TWO, Global.NUMERICAL_ONE);
         //托运企业
         KwtLogisticsOrderUnit checkEnt = logisticsOrderUnitDao.findByUnit(logisticsOrder.getId(), Global.NUMERICAL_ONE);
         //承运企业
@@ -561,19 +561,26 @@ public class KwtWaybillOrderService {
     }
 
     /**
-     * @param lOrderId    物流订单ID
+     * @param orderId    订单ID
      * @param addressType 地址类型(1装货地址、2卸货地址)
-     * @desc 获取物流订单地址信息
+     * @param type 订单类型(1物流订单、2车辆运单)
+     * @desc 获取订单地址信息
      * @author zk
      * @date 2023/7/20
      **/
-    public KwtWaybillOrderAddress getAddress(Long lOrderId, int addressType) {
+    public KwtWaybillOrderAddress getAddress(Long orderId, int addressType, int type) {
         /**查询数据**/
-        KwtWaybillOrderAddress orderAddress = waybillOrderAddressDao.findByAddress(lOrderId, addressType);
+        KwtWaybillOrderAddress address = new KwtWaybillOrderAddress();
+        if (type == Global.NUMERICAL_ONE) {
+            KwtLogisticsOrderAddress orderAddress = logisticsOrderAddressDao.findByAddress(orderId, addressType);
+            BeanUtils.copyProperties(orderAddress, address);
+        }
+        if (type == Global.NUMERICAL_TWO) {
+            KwtWaybillOrderAddress orderAddress = waybillOrderAddressDao.findByAddress(orderId, addressType);
+            BeanUtils.copyProperties(orderAddress, address);
+        }
 
         /**组装数据**/
-        KwtWaybillOrderAddress address = new KwtWaybillOrderAddress();
-        BeanUtils.copyProperties(orderAddress, address);
         address.setId(null);
         address.setCreateBy(null);
         address.setCreateTime(null);
@@ -1057,9 +1064,9 @@ public class KwtWaybillOrderService {
 
             /**2获取基础信息**/
             //装货地址
-            KwtWaybillOrderAddress loadAddress = this.getAddress(circulate.getLOrderId(), Global.NUMERICAL_ONE);
+            KwtWaybillOrderAddress loadAddress = this.getAddress(circulate.getLOrderId(), Global.NUMERICAL_ONE, Global.NUMERICAL_ONE);
             //卸货地址
-            KwtWaybillOrderAddress unloadAddress = this.getAddress(circulate.getLOrderId(), Global.NUMERICAL_TWO);
+            KwtWaybillOrderAddress unloadAddress = this.getAddress(circulate.getLOrderId(), Global.NUMERICAL_TWO, Global.NUMERICAL_ONE);
             //KwtWaybillOrder数据组装
             KwtWaybillOrder waybillOrder = new KwtWaybillOrder();
             waybillOrder.setEntId(LoginUserHolder.getEntId());
@@ -1613,6 +1620,8 @@ public class KwtWaybillOrderService {
                 waybillOrder.setUpdateBy(circulate.getUpdateBy());
                 editSckwWaybillOrder(wOrder, waybillOrder, 2);
             }
+        } else {
+            logisticsOrderDao.updateById(logisticsOrder);
         }
 
         /**1-6更新贸易订单总量**/
@@ -1769,9 +1778,9 @@ public class KwtWaybillOrderService {
         //卸货榜单
         KwtWaybillOrderTicket unloadTicket = waybillOrderTicketDao.findWaybillOrderTicket(wOrderId, Global.NUMERICAL_TWO);
         //装货地址
-        KwtWaybillOrderAddress loadAddress = this.getAddress(waybillOrder.getId(), Global.NUMERICAL_ONE);
+        KwtWaybillOrderAddress loadAddress = this.getAddress(waybillOrder.getId(), Global.NUMERICAL_ONE, Global.NUMERICAL_TWO);
         //卸货地址
-        KwtWaybillOrderAddress unloadAddress = this.getAddress(waybillOrder.getId(), Global.NUMERICAL_TWO);
+        KwtWaybillOrderAddress unloadAddress = this.getAddress(waybillOrder.getId(), Global.NUMERICAL_TWO, Global.NUMERICAL_TWO);
         //商品信息
         KwtLogisticsOrderGoods goods = logisticsOrderGoodsDao.findByGoods(waybillOrder.getLOrderId());
         //用户数据集
@@ -1851,13 +1860,16 @@ public class KwtWaybillOrderService {
             editTruck(waybillOrder.getTruckId());
 
             /**5更新承运订单信息**/
+            //更新卸货量/卸货时间/亏吨/亏吨扣款
             Map queryParams = new HashMap();
             queryParams.put("lOrderId", waybillOrder.getLOrderId());
             queryParams.put("passStatus", Global.NUMERICAL_ONE);
             WaybillCountVo waybillCount = waybillOrderDao.findWaybillOrderCount(queryParams);
 
-            //更新卸货量/卸货时间/亏吨/亏吨扣款
+            //委派未运量=承运委派量-装货量
             KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
+            BigDecimal residue = waybillOrder.getEntrustAmount().subtract(waybillOrder.getLoadAmount());
+            logisticsOrder.setEntrustAmount(logisticsOrder.getEntrustAmount().subtract(residue));
             logisticsOrder.setLoadAmount(waybillCount.getLoadAmount());
             logisticsOrder.setLoadTime(waybillCount.getLoadTime());
             logisticsOrder.setUnloadAmount(waybillCount.getUnloadAmount());
@@ -1894,6 +1906,116 @@ public class KwtWaybillOrderService {
         return HttpResult.ok("车辆运单审核完成!");
     }
 
+    /**
+     * @param params {}
+     * @desc 单证审核(编辑单证)
+     * @author zk
+     * @date 2023/7/26
+     **/
+    public HttpResult approvalEditTicket(WaybillOrderTicketApprovalDto params) {
+        /**1数据校验**/
+        KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
+        if (waybillOrder == null) {
+            return HttpResult.error("车辆运单不存在!");
+        }
+        //已卸货/审批不通过车辆运单才能审核
+        if (waybillOrder.getStatus() != CarWaybillEnum.COMPLETION_UNLOADING.getCode()
+                && waybillOrder.getStatus() != CarWaybillEnum.APPROVAL_NO_PASS.getCode()) {
+            return HttpResult.error("车辆运单当前状态已不能审核!");
+        }
+        //已卸货/审批不通过车辆运单只能审批通过或审批不通过
+        if (params.getStatus() != Global.NO && params.getStatus() != Global.YES) {
+            return HttpResult.error("车辆运单当前状态只能审批通过或审批不通过!");
+        }
+
+        /**2更新车辆运单**/
+        KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
+        int status = params.getStatus() == Global.NO ? CarWaybillEnum.APPROVAL_PASS.getCode() : CarWaybillEnum.APPROVAL_NO_PASS.getCode();
+        waybillOrder.setLoadAmount(params.getLoadAmount());
+        waybillOrder.setUnloadAmount(params.getUnloadAmount());
+        waybillOrder.setDeficitAmount(waybillOrder.getLoadAmount().subtract(waybillOrder.getUnloadAmount()));
+        BigDecimal deficitPrice = deficitPrice(waybillOrder.getLoadAmount(), waybillOrder.getDeficitAmount(),
+                logisticsOrder.getLoss(), logisticsOrder.getGoodsPrice());
+        waybillOrder.setDeficitPrice(deficitPrice);
+        waybillOrder.setStatus(status);
+        waybillOrderDao.updateById(waybillOrder);
+
+        /**3更新榜单信息**/
+        KwtWaybillOrderTicket loadTicket = waybillOrderTicketDao.findWaybillOrderTicket(params.getWOrderId(), Global.NUMERICAL_ONE);
+        loadTicket.setAmount(params.getLoadAmount());
+        loadTicket.setUrls(params.getLoadUrls());
+        loadTicket.setOperateTime(params.getLoadOperateTime());
+        waybillOrderTicketDao.updateById(loadTicket);
+        KwtWaybillOrderTicket unloadTicket = waybillOrderTicketDao.findWaybillOrderTicket(params.getWOrderId(), Global.NUMERICAL_TWO);
+        unloadTicket.setAmount(params.getUnloadAmount());
+        unloadTicket.setUrls(params.getUnloadUrls());
+        unloadTicket.setOperateTime(params.getUnloadOperateTime());
+        waybillOrderTicketDao.updateById(unloadTicket);
+
+        /**4新增运单状态记录**/
+        setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getUpdateTime(), waybillOrder.getStatus(), params.getRemark());
+
+        if (waybillOrder.getStatus() == CarWaybillEnum.APPROVAL_PASS.getCode()) {
+            /**5跟新司机/车辆数据**/
+            //更新司机信息
+            editDriver(waybillOrder.getDriverId());
+            //更新车辆信息
+            editTruck(waybillOrder.getTruckId());
+
+            /**6更新承运订单信息**/
+            //更新卸货量/卸货时间/亏吨/亏吨扣款
+            Map queryParams = new HashMap();
+            queryParams.put("lOrderId", waybillOrder.getLOrderId());
+            queryParams.put("passStatus", Global.NUMERICAL_ONE);
+            WaybillCountVo waybillCount = waybillOrderDao.findWaybillOrderCount(queryParams);
+
+            //委派未运量=承运委派量-装货量
+            BigDecimal residue = waybillOrder.getEntrustAmount().subtract(waybillOrder.getLoadAmount());
+            logisticsOrder.setEntrustAmount(logisticsOrder.getEntrustAmount().subtract(residue));
+            logisticsOrder.setLoadAmount(waybillCount.getLoadAmount());
+            logisticsOrder.setLoadTime(waybillCount.getLoadTime());
+            logisticsOrder.setUnloadAmount(waybillCount.getUnloadAmount());
+            logisticsOrder.setUnloadTime(waybillCount.getUnloadTime());
+            logisticsOrder.setDeficitAmount(waybillCount.getDeficitAmount());
+            deficitPrice = deficitPrice(waybillCount.getLoadAmount(), waybillCount.getDeficitAmount(),
+                    logisticsOrder.getLoss(), logisticsOrder.getGoodsPrice());
+            logisticsOrder.setDeficitPrice(deficitPrice);
+            logisticsOrderDao.updateById(logisticsOrder);
+
+            /**7Mongodb数据更新**/
+            //2承运订单
+            SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
+            lOrder.setLoadAmount(logisticsOrder.getLoadAmount());
+            lOrder.setLoadTime(logisticsOrder.getLoadTime());
+            lOrder.setUnloadAmount(logisticsOrder.getUnloadAmount());
+            lOrder.setUnloadTime(logisticsOrder.getUnloadTime());
+            lOrder.setDeficitAmount(logisticsOrder.getDeficitAmount());
+            lOrder.setDeficitPrice(logisticsOrder.getDeficitPrice());
+            editSckwLogisticsOrder(lOrder, logisticsOrder);
+
+            /**8校验当前承运订单是否运输完成(修改状态+统计量)**/
+            checkLogisticsByStatus(waybillOrder.getLOrderId());
+        }
+
+        /**9Mongodb数据更新**/
+        //1车辆运单
+        SckwWaybillOrder wOrder = new SckwWaybillOrder();
+        wOrder.set_id(waybillOrder.getId());
+        wOrder.setLoadAmount(waybillOrder.getLoadAmount());
+        wOrder.setLoadTime(params.getLoadOperateTime());
+        wOrder.setLoadUrls(params.getLoadUrls());
+        wOrder.setUnloadAmount(waybillOrder.getUnloadAmount());
+        wOrder.setUnloadTime(params.getUnloadOperateTime());
+        wOrder.setUnloadUrls(params.getUnloadUrls());
+        wOrder.setDeficitAmount(waybillOrder.getDeficitAmount());
+        wOrder.setDeficitPrice(waybillOrder.getDeficitPrice());
+        editSckwWaybillOrder(wOrder, waybillOrder, Global.NUMERICAL_TWO);
+
+        /**8发送消息**/
+
+        return HttpResult.ok("车辆运单审核完成!");
+    }
+
     /**
      * @param driverId 司机档案ID
      * @desc 更新司机信息

+ 18 - 4
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/TransportCommonService.java

@@ -195,12 +195,14 @@ public class TransportCommonService {
         orderDetailVO.setSettlementCycle(logisticsOrder.getSettlementCycle() == null ? null : String.valueOf(logisticsOrder.getSettlementCycle()));
         if (logisticsOrder.getSettlementCycle() != null) {
             Map<String, SysDictResDto> dtoMap = remoteSystemService.queryDictMapByType(DictTypeEnum.SETTLEMENT_CYCLE.getType());
-            orderDetailVO.setSettlementCycleLabel(dtoMap.isEmpty() ? null : dtoMap.get(String.valueOf(logisticsOrder.getSettlementCycle())).getLabel());
+            orderDetailVO.setSettlementCycleLabel(dtoMap.isEmpty() ? null :
+                    (dtoMap.get(String.valueOf(logisticsOrder.getSettlementCycle())) == null ? null : dtoMap.get(String.valueOf(logisticsOrder.getSettlementCycle())).getLabel()));
         }
         orderDetailVO.setBillingMode(logisticsOrder.getBillingMode());
         if (logisticsOrder.getBillingMode() != null) {
             Map<String, SysDictResDto> dictResDtoMap = remoteSystemService.queryDictMapByType(DictTypeEnum.CHARGING_TYPE.getType());
-            orderDetailVO.setBillingModeLabel(dictResDtoMap.isEmpty() ? null : dictResDtoMap.get(logisticsOrder.getBillingMode()).getLabel());
+            orderDetailVO.setBillingModeLabel(dictResDtoMap.isEmpty() ? null :
+                    (dictResDtoMap.get(logisticsOrder.getBillingMode()) == null ? null : dictResDtoMap.get(logisticsOrder.getBillingMode()).getLabel()));
         }
         orderDetailVO.setScheduleStartTime(logisticsOrder.getStartTime() == null ? null : logisticsOrder.getStartTime());
         orderDetailVO.setScheduleEndTime(logisticsOrder.getEndTime() == null ? null : logisticsOrder.getEndTime());
@@ -211,11 +213,23 @@ public class TransportCommonService {
         orderDetailVO.setPayment(logisticsOrder.getPayment());
         if (logisticsOrder.getPayment() != null) {
             Map<String, SysDictResDto> dictResDtoMap = remoteSystemService.queryDictMapByType(DictTypeEnum.TRADE_TYPE.getType());
-            orderDetailVO.setPaymentLabel(dictResDtoMap.isEmpty() ? null : dictResDtoMap.get(logisticsOrder.getPayment()).getLabel());
+            if (dictResDtoMap.isEmpty()) {
+                orderDetailVO.setPaymentLabel(null);
+            } else {
+                if (dictResDtoMap.get(logisticsOrder.getPayment()) != null) {
+                    orderDetailVO.setPaymentLabel(dictResDtoMap.get(logisticsOrder.getPayment()).getLabel());
+                }
+            }
         }
         if (orderDetailVO.getSigningWay() != null) {
             Map<String, SysDictResDto> dictResDtoMap = remoteSystemService.queryDictMapByType(DictTypeEnum.SIGNING_TYPE.getType());
-            orderDetailVO.setSigningWayLabel(dictResDtoMap.isEmpty() ? null : dictResDtoMap.get(orderDetailVO.getSigningWay()).getLabel());
+            if (dictResDtoMap.isEmpty()) {
+                orderDetailVO.setPaymentLabel(null);
+            } else {
+                if (dictResDtoMap.get(orderDetailVO.getSigningWay()) != null) {
+                    orderDetailVO.setSigningWayLabel(dictResDtoMap.get(orderDetailVO.getSigningWay()).getLabel());
+                }
+            }
         }
         return orderDetailVO;
     }

+ 65 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/WaybillManagementService.java

@@ -205,6 +205,71 @@ public class WaybillManagementService {
         return HttpResult.ok(waybillDataVO);
     }
 
+    /**
+     * 简洁版运单详情
+     * @param id
+     * @return
+     */
+    public HttpResult waybillSimpleData(Long id){
+        WaybillSimpleDataVO waybillSimpleDataVO = new WaybillSimpleDataVO();
+        Criteria criteria = new Criteria();
+        criteria.and("wOrderId").is(id);
+        criteria.and("entId").is(LoginUserHolder.getEntId());
+        criteria.and("delFlag").is(NumberConstant.ZERO);
+        Query queryFormat = new Query(criteria);
+        SckwWaybillOrder info = mongoTemplate.findOne(queryFormat, SckwWaybillOrder.class);
+        if(!ObjectUtils.isEmpty(info)) {
+            waybillSimpleDataVO.setWOrderId(info.getWOrderId() == null ?
+                    String.valueOf(info.get_id()) : String.valueOf(info.getWOrderId()));
+            waybillSimpleDataVO.setWOrderNo(info.getWOrderNo());
+            waybillSimpleDataVO.setLOrderId(String.valueOf(info.getLOrderId()));
+            waybillSimpleDataVO.setLOrderNo(info.getLOrderNo());
+            waybillSimpleDataVO.setLOrderNo(info.getLOrderNo());
+            waybillSimpleDataVO.setTruckId(info.getTruckId());
+            waybillSimpleDataVO.setStatus(String.valueOf(info.getStatus()));
+            waybillSimpleDataVO.setTruckNo(info.getTruckNo());
+            waybillSimpleDataVO.setDriverId(info.getDriverId());
+            waybillSimpleDataVO.setDriverName(info.getDriverName());
+            waybillSimpleDataVO.setDriverPhone(info.getDriverPhone());
+            waybillSimpleDataVO.setDriverId(info.getDriverId());
+            waybillSimpleDataVO.setType(String.valueOf(info.getType()));
+        }
+        List<Integer> statuses = initWaybillIndexStatus();
+        // 初始化各状态
+        List<WaybillStatusVO> statusVOS = new ArrayList<>();
+        statuses.forEach(e -> {
+            WaybillStatusVO waybillStatusVO = new WaybillStatusVO();
+            waybillStatusVO.setStatus(false);
+            waybillStatusVO.setCode(e);
+            waybillStatusVO.setDestination(CarWaybillEnum.getName(e));
+            statusVOS.add(waybillStatusVO);
+        });
+        List<KwtWaybillOrderTrack> kwtWaybillOrderTracks = kwtWaybillOrderTrackMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrderTrack>()
+                .eq(KwtWaybillOrderTrack::getWOrderId, id));
+        if (CollectionUtils.isNotEmpty(kwtWaybillOrderTracks)) {
+            List<Long> userIds = new ArrayList<>();
+            kwtWaybillOrderTracks.forEach(e -> userIds.add(e.getCreateBy()));
+            List<UserCacheResDto> users = remoteSystemService.queryUserCacheByIds(userIds);
+            Map<Long, UserCacheResDto> usersMap = new HashMap<>();
+            users.forEach(e -> usersMap.put(e.getId(), e));
+            for (KwtWaybillOrderTrack kwtWaybillOrderTrack : kwtWaybillOrderTracks) {
+                for (WaybillStatusVO statusVO : statusVOS) {
+                    if (statusVO.getCode().equals(kwtWaybillOrderTrack.getStatus())) {
+                        statusVO.setStatus(true);
+                        statusVO.setId(kwtWaybillOrderTrack.getId());
+                        statusVO.setCreateTime(DateUtil.getDateTime(kwtWaybillOrderTrack.getCreateTime()));
+                        statusVO.setOperateTime(kwtWaybillOrderTrack.getOperateTime() == null
+                                ? null : DateUtil.getDateTime(kwtWaybillOrderTrack.getOperateTime()));
+                        statusVO.setCreateByName(usersMap.get(kwtWaybillOrderTrack.getCreateBy()) == null
+                                ? null : usersMap.get(kwtWaybillOrderTrack.getCreateBy()).getName());
+                        break;
+                    }
+                }
+            }
+        }
+        waybillSimpleDataVO.setProcess(statusVOS);
+        return HttpResult.ok(waybillSimpleDataVO);
+    }
     /**
      * 运单看板列表
      * @param query

+ 5 - 8
sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml

@@ -543,14 +543,11 @@
     </select>
 
     <select id="countAmountByTradeOrderId" resultType="java.util.Map">
-        SELECT SUM(
-                       IFNULL(unload_amount, 0))       as unloadAmount,
-               SUM(
-                       IFNULL(load_amount, 0))         as loadAmount,
-               SUM(
-                       IFNULL(total_load_amount, 0))   AS totalLoadAmount,
-               SUM(
-                       IFNULL(total_unload_amount, 0)) AS totalUnloadAmount
+        SELECT
+               IFNULL(SUM(unload_amount), 0)       AS unloadAmount,
+               IFNULL(SUM(load_amount), 0)         AS loadAmount,
+               IFNULL(SUM(total_load_amount), 0)   AS totalLoadAmount,
+               IFNULL(SUM(total_unload_amount), 0) AS totalUnloadAmount
         FROM kwt_logistics_order
         WHERE del_flag = 0
           AND t_order_id = #{tOrderId}