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

Merge branch 'dev' into dev_spt

sptkw 2 лет назад
Родитель
Сommit
127c86cb0b
30 измененных файлов с 389 добавлено и 190 удалено
  1. 4 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/LogisticsOrderEnum.java
  2. 10 0
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwWaybillOrder.java
  3. 21 17
      sckw-modules/sckw-message/src/main/java/com/sckw/message/service/SckwSmsHandlerService.java
  4. 39 35
      sckw-modules/sckw-order/src/main/java/com/sckw/order/dubbo/TradeOrderInfoServiceImpl.java
  5. 5 0
      sckw-modules/sckw-order/src/main/resources/bootstrap-test.yml
  6. 2 2
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpSettlementTradeMapper.java
  7. 18 18
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/constant/LedgerEnum.java
  8. 13 14
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/constant/SettlementEnum.java
  9. 9 12
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerLogisticsService.java
  10. 8 7
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerTradeService.java
  11. 16 5
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementTradeService.java
  12. 5 5
      sckw-modules/sckw-payment/src/main/resources/mapper/KwpSettlementTradeMapper.xml
  13. 15 11
      sckw-modules/sckw-product/src/main/java/com/sckw/product/dubbo/GoodsInfoServiceImpl.java
  14. 5 0
      sckw-modules/sckw-product/src/main/resources/bootstrap-test.yml
  15. 5 7
      sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwTransportController.java
  16. 10 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwAcceptCarriageService.java
  17. 10 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwConsignService.java
  18. 1 1
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java
  19. 12 3
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java
  20. 5 1
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/OrderListRes.java
  21. 12 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderCirculateMapper.java
  22. 2 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/WaybillOrderDTO.java
  23. 19 7
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java
  24. 57 22
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java
  25. 13 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java
  26. 22 16
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/WaybillManagementService.java
  27. 1 1
      sckw-modules/sckw-transport/src/main/resources/bootstrap-dev.yml
  28. 1 0
      sckw-modules/sckw-transport/src/main/resources/bootstrap.yml
  29. 47 0
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderCirculateMapper.xml
  30. 2 2
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderAddressMapper.xml

+ 4 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/LogisticsOrderEnum.java

@@ -102,6 +102,10 @@ public enum LogisticsOrderEnum {
         return codeList;
     }
 
+    /**
+     * 获取所有的状态
+     * @return
+     */
     public static List<String> getCodeStringList() {
         List<String> codeList = new ArrayList<>(NumberConstant.SIXTEEN);
         for (LogisticsOrderEnum value : LogisticsOrderEnum.values()) {

+ 10 - 0
sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwWaybillOrder.java

@@ -296,6 +296,11 @@ public class SckwWaybillOrder{
     private String carrierPhone;
 
 
+    /**
+     * 装货地址名称
+     */
+    private String loadName;
+
     /**
      * 装货地址类型
      */
@@ -336,6 +341,11 @@ public class SckwWaybillOrder{
      */
     private String loadLng;
 
+    /**
+     * 卸货地址名称
+     */
+    private String unloadName;
+
     /**
      * 卸货地址类型
      */

+ 21 - 17
sckw-modules/sckw-message/src/main/java/com/sckw/message/service/SckwSmsHandlerService.java

@@ -1,8 +1,8 @@
 package com.sckw.message.service;
 
 import com.alibaba.fastjson2.JSON;
-import com.sckw.redis.constant.RedisConstant;
 import com.sckw.message.model.KwmSms;
+import com.sckw.redis.constant.RedisConstant;
 import com.sckw.redis.utils.RedissonUtils;
 import com.sckw.stream.enums.SmsCodeEnum;
 import com.sckw.stream.model.SckwSms;
@@ -34,24 +34,28 @@ public class SckwSmsHandlerService {
         log.info("接收到发送短信消息:{},开始处理", JSON.toJSONString(sckwSms));
         String type = sckwSms.getType();
         String phone = sckwSms.getPhone();
-        String requestKey = getKey(RedisConstant.MESSAGE_SMS_VERIFY_CODE_REQUEST_KEY,type,phone);
-        if (Boolean.FALSE.equals(RedissonUtils.tryLock(requestKey, 10L, RedisConstant.SMS_VERIFY_CODE_VALID_TIME))) {
-            log.info("重复发送短信消息,不处理");
+        String requestKey = getKey(RedisConstant.MESSAGE_SMS_VERIFY_CODE_REQUEST_KEY, type, phone);
+        if (Boolean.FALSE.equals(RedissonUtils.tryLock(requestKey, 10L, 30L))) {
+            log.info("获取发送短信锁失败,不处理");
             return;
         }
-        String valueKey = getKey(RedisConstant.MESSAGE_SMS_VERIFY_CODE_VALUE_KEY, type,phone);
-        //发送短信
-        SmsUtil.sendSms(sckwSms.getPhone(), sckwSms.getSignName(), sckwSms.getTemplateCode().getName(), JSON.toJSONString(sckwSms.getParams()));
-        //放入缓存
-        RedissonUtils.putString(valueKey, String.valueOf(sckwSms.getParams().get("code")), RedisConstant.SMS_VERIFY_CODE_VALID_TIME);
-        //数据入库
-        SmsCodeEnum smsCodeEnum = sckwSms.getTemplateCode();
-        KwmSms kwmSms = KwmSms.builder().type(smsCodeEnum.getType()).code(smsCodeEnum.getName())
-                .phone(sckwSms.getPhone()).content(smsCodeEnum.getValue())
-                .params(JSON.toJSONString(sckwSms.getParams())).build();
-        kwmSms.setCreateBy(sckwSms.getCreateBy());
-        kwmSms.setUpdateBy(sckwSms.getCreateBy());
-        kwmSmsService.add(kwmSms);
+        try {
+            String valueKey = getKey(RedisConstant.MESSAGE_SMS_VERIFY_CODE_VALUE_KEY, type, phone);
+            //发送短信
+            SmsUtil.sendSms(sckwSms.getPhone(), sckwSms.getSignName(), sckwSms.getTemplateCode().getName(), JSON.toJSONString(sckwSms.getParams()));
+            //放入缓存
+            RedissonUtils.putString(valueKey, String.valueOf(sckwSms.getParams().get("code")), RedisConstant.SMS_VERIFY_CODE_VALID_TIME);
+            //数据入库
+            SmsCodeEnum smsCodeEnum = sckwSms.getTemplateCode();
+            KwmSms kwmSms = KwmSms.builder().type(smsCodeEnum.getType()).code(smsCodeEnum.getName())
+                    .phone(sckwSms.getPhone()).content(smsCodeEnum.getValue())
+                    .params(JSON.toJSONString(sckwSms.getParams())).build();
+            kwmSms.setCreateBy(sckwSms.getCreateBy());
+            kwmSms.setUpdateBy(sckwSms.getCreateBy());
+            kwmSmsService.add(kwmSms);
+        } finally {
+            RedissonUtils.unlock(requestKey);
+        }
     }
 
     private String getKey(String prefix, String args1, String args2) {

+ 39 - 35
sckw-modules/sckw-order/src/main/java/com/sckw/order/dubbo/TradeOrderInfoServiceImpl.java

@@ -105,46 +105,50 @@ public class TradeOrderInfoServiceImpl implements TradeOrderInfoService {
         Long id = param.getTOrderId();
         Long updateBy = param.getUpdateBy();
         String lockKey = String.format(RedisConstant.GOODS_UPDATE_AMOUNT_KEY, id);
-        if (Boolean.FALSE.equals(RedissonUtils.tryLock(lockKey, 3L, 3L))) {
+        if (Boolean.FALSE.equals(RedissonUtils.tryLock(lockKey, 10L, 30L))) {
             return HttpResult.error("业务繁忙,请稍后再试!");
         }
-        KwoTradeOrder order = kwoTradeOrderService.getById(id);
-        if (Objects.isNull(order)) {
-            return HttpResult.error("订单不存在!");
-        }
-        if (!Objects.equals(String.valueOf(order.getStatus()), DictEnum.TORDER_STATUS_4.getValue())) {
-            return HttpResult.error("执行中的订单才可物流托运!");
-        }
-        BigDecimal amount = order.getAmount();
-        BigDecimal addEntrustAmount = order.getEntrustAmount();
-        if (Objects.nonNull(param.getEntrustAmount())) {
-            addEntrustAmount = addEntrustAmount.add(param.getActualAmount());
-            if (amount.compareTo(addEntrustAmount) < 0) {
-                return HttpResult.error("物流已委托总量不可大于订单总量!");
+        try {
+            KwoTradeOrder order = kwoTradeOrderService.getById(id);
+            if (Objects.isNull(order)) {
+                return HttpResult.error("订单不存在!");
             }
-        }
-        BigDecimal addActualAmount = order.getActualAmount();
-        if (Objects.nonNull(param.getActualAmount())) {
-            addActualAmount = addActualAmount.add(param.getActualAmount());
-            if (amount.compareTo(addActualAmount) < 0) {
-                return HttpResult.error("物流实际交付总量不可大于订单总量!");
+            if (!Objects.equals(String.valueOf(order.getStatus()), DictEnum.TORDER_STATUS_4.getValue())) {
+                return HttpResult.error("执行中的订单才可物流托运!");
             }
+            BigDecimal amount = order.getAmount();
+            BigDecimal addEntrustAmount = order.getEntrustAmount();
+            if (Objects.nonNull(param.getEntrustAmount())) {
+                addEntrustAmount = addEntrustAmount.add(param.getActualAmount());
+                if (amount.compareTo(addEntrustAmount) < 0) {
+                    return HttpResult.error("物流已委托总量不可大于订单总量!");
+                }
+            }
+            BigDecimal addActualAmount = order.getActualAmount();
+            if (Objects.nonNull(param.getActualAmount())) {
+                addActualAmount = addActualAmount.add(param.getActualAmount());
+                if (amount.compareTo(addActualAmount) < 0) {
+                    return HttpResult.error("物流实际交付总量不可大于订单总量!");
+                }
+            }
+            order.setEntrustAmount(addEntrustAmount).setActualAmount(addActualAmount).setUpdateBy(param.getUpdateBy());
+            //已履约量等于订单总量自动完结订单
+            if (amount.compareTo(addActualAmount) == 0) {
+                order.setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_5.getValue()));
+                KwoTradeOrderTrack track = new KwoTradeOrderTrack();
+                track.setTOrderId(order.getId()).setTOrderNo(order.getTOrderNo()).setStatus(order.getStatus())
+                        .setCreateBy(updateBy).setUpdateBy(updateBy);
+                kwoTradeOrderTrackService.insert(track);
+            }
+            kwoTradeOrderService.updateById(order);
+            //更新mongodb
+            SckwTradeOrder updateParam = new SckwTradeOrder();
+            updateParam.setTOrderId(order.getId()).setEntrustAmount(addEntrustAmount).setActualAmount(addActualAmount)
+                    .setStatus(order.getStatus()).setUpdateBy(param.getUpdateBy()).setUpdateByName(param.getUpdateByName()).setUpdateTime(new Date());
+            saveMongoDb(3, updateParam);
+        } finally {
+            RedissonUtils.unlock(lockKey);
         }
-        order.setEntrustAmount(addEntrustAmount).setActualAmount(addActualAmount).setUpdateBy(param.getUpdateBy());
-        //已履约量等于订单总量自动完结订单
-        if (amount.compareTo(addActualAmount) == 0) {
-            order.setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_5.getValue()));
-            KwoTradeOrderTrack track = new KwoTradeOrderTrack();
-            track.setTOrderId(order.getId()).setTOrderNo(order.getTOrderNo()).setStatus(order.getStatus())
-                    .setCreateBy(updateBy).setUpdateBy(updateBy);
-            kwoTradeOrderTrackService.insert(track);
-        }
-        kwoTradeOrderService.updateById(order);
-        //更新mongodb
-        SckwTradeOrder updateParam = new SckwTradeOrder();
-        updateParam.setTOrderId(order.getId()).setEntrustAmount(addEntrustAmount).setActualAmount(addActualAmount)
-                .setStatus(order.getStatus()).setUpdateBy(param.getUpdateBy()).setUpdateByName(param.getUpdateByName()).setUpdateTime(new Date());
-        saveMongoDb(3, updateParam);
         return HttpResult.ok();
     }
 

+ 5 - 0
sckw-modules/sckw-order/src/main/resources/bootstrap-test.yml

@@ -17,6 +17,11 @@ spring:
         group: sckw-service-platform
         # 配置文件格式
         file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-common
+            refresh: true
+
         extension-configs:
           - dataId: sckw-common.yml
             group: sckw-service-platform

+ 2 - 2
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpSettlementTradeMapper.java

@@ -5,12 +5,12 @@ import com.sckw.payment.model.KwpSettlementTrade;
 import com.sckw.payment.model.dto.LedgerUnitDto;
 import com.sckw.payment.model.dto.SettlementTradeDto;
 import com.sckw.payment.model.vo.req.SettlementTradeReq;
-import com.sckw.payment.model.vo.res.SettlementLogisticsStatusCountVo;
 import com.sckw.payment.model.vo.res.SettlementSumVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author xucaiqin
@@ -23,7 +23,7 @@ public interface KwpSettlementTradeMapper extends BaseMapper<KwpSettlementTrade>
 
     SettlementSumVo sumMoney(@Param("settlementReq") SettlementTradeReq settlementReq);
 
-    SettlementLogisticsStatusCountVo countOrder(@Param("settlementReq") SettlementTradeReq settlementReq);
+    Map<String, Long> countOrder(@Param("settlementReq") SettlementTradeReq settlementReq);
 
     List<SettlementTradeDto> selectByIds(@Param("ids") List<Long> ids, @Param("unitType") Integer unitType);
 

+ 18 - 18
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/constant/LedgerEnum.java

@@ -10,19 +10,21 @@ import java.util.Objects;
  * @date 2023-07-11 12:00:52
  */
 public enum LedgerEnum {
-    ALL(0, "全部"),
-    SAVE(1, "已保存"),
-    TO_LEDGER(2, "待对账"),
-    LEDGERED(3, "已对账"),
-    SUCCESS(4, "已完成"),
-    BACK(5, "已退回"),
-    REVOCATION(6, "已撤回");
-
-    private int status;
-    private String desc;
-
-    LedgerEnum(int status, String desc) {
+    ALL(0, "全部", "0"),
+    SAVE(1, "已保存", "1"),
+    TO_LEDGER(2, "待对账", "2"),
+    LEDGERED(3, "已对账", "3"),
+    SUCCESS(4, "已完成", "4"),
+    BACK(5, "已退回", "5"),
+    REVOCATION(6, "已撤回", "6");
+
+    private final int status;
+    private final String desc;
+    private final String label;
+
+    LedgerEnum(int status, String desc, String label) {
         this.status = status;
+        this.label = label;
         this.desc = desc;
     }
 
@@ -38,19 +40,17 @@ public enum LedgerEnum {
         return "";
     }
 
+    public String getLabel() {
+        return label;
+    }
+
     public int getStatus() {
         return status;
     }
 
-    public void setStatus(int status) {
-        this.status = status;
-    }
 
     public String getDesc() {
         return desc;
     }
 
-    public void setDesc(String desc) {
-        this.desc = desc;
-    }
 }

+ 13 - 14
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/constant/SettlementEnum.java

@@ -8,35 +8,34 @@ package com.sckw.payment.model.constant;
  * @date 2023-07-11 12:00:52
  */
 public enum SettlementEnum {
-    ALL(0, "全部"),
-    WAITING_PAYMENT(1, "待结算"),
-    PARTIAL_PAYMENT(2, "部分结算"),
-    ALL_PAYMENT(3, "全部结算");
+    ALL(0, "全部", "0"),
+    WAITING_PAYMENT(1, "待结算", "1"),
+    PARTIAL_PAYMENT(2, "部分结算", "2"),
+    ALL_PAYMENT(3, "全部结算", "3");
 
-    private int status;
-    private String desc;
+    private final int status;
+    private final String desc;
+    private final String label;
 
-    SettlementEnum(int status, String desc) {
+    SettlementEnum(int status, String desc, String label) {
         this.status = status;
         this.desc = desc;
+        this.label = label;
+    }
+
+    public String getLabel() {
+        return label;
     }
 
     public int getStatus() {
         return status;
     }
 
-    public void setStatus(int status) {
-        this.status = status;
-    }
 
     public String getDesc() {
         return desc;
     }
 
-    public void setDesc(String desc) {
-        this.desc = desc;
-    }
-
     // 添加静态方法,根据 status 获取对应的 desc
     public static String getStatusDesc(int status) {
         for (SettlementEnum settlementEnum : values()) {

+ 9 - 12
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerLogisticsService.java

@@ -5,16 +5,13 @@ import com.github.pagehelper.PageInfo;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.exception.BusinessException;
 import com.sckw.core.model.page.PageRes;
+import com.sckw.core.model.vo.TableTop;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.IdWorker;
 import com.sckw.core.utils.OrderGenerateUtils;
 import com.sckw.core.utils.StringTimeUtil;
-import com.sckw.payment.dao.KwpLedgerLogisticsMapper;
-import com.sckw.payment.model.KwpLedgerLogistics;
-import com.sckw.payment.model.KwpLedgerLogisticsTrack;
-import com.sckw.payment.model.KwpLedgerLogisticsUnit;
-import com.sckw.payment.model.KwpSettlementLogistics;
 import com.sckw.core.web.context.LoginUserHolder;
+import com.sckw.payment.dao.KwpLedgerLogisticsMapper;
 import com.sckw.payment.model.*;
 import com.sckw.payment.model.constant.LedgerEnum;
 import com.sckw.payment.model.constant.LedgerTrackEnum;
@@ -439,16 +436,16 @@ public class KwpLedgerLogisticsService extends AbsLedger {
      * @param unitType 1-托运方 2-承运方
      * @return
      */
-    public List<LedgerCountVo> orderCount(LogisticsReq logisticsReq, Integer unitType) {
+    public List<TableTop> orderCount(LogisticsReq logisticsReq, Integer unitType) {
         logisticsReq.setEntId(LoginUserHolder.getEntId());
         Map<String, Long> map = logisticsMapper.countOrder(logisticsReq, unitType);
-        LedgerCountVo ledgerCountVo;
-        List<LedgerCountVo> res = new ArrayList<>();
+        TableTop ledgerCountVo;
+        List<TableTop> res = new ArrayList<>();
         for (LedgerEnum value : LedgerEnum.values()) {
-            ledgerCountVo = new LedgerCountVo();
-            ledgerCountVo.setCount(map.get(String.valueOf(value.getStatus())));
-            ledgerCountVo.setLabel(value.getDesc());
-            ledgerCountVo.setStatus(value.getStatus());
+            ledgerCountVo = new TableTop();
+            ledgerCountVo.setTotal(Math.toIntExact(map.get(value.getLabel())));
+            ledgerCountVo.setName(value.getDesc());
+            ledgerCountVo.setValue(value.getStatus());
             res.add(ledgerCountVo);
         }
         return res;

+ 8 - 7
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerTradeService.java

@@ -6,6 +6,7 @@ import com.github.pagehelper.PageInfo;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.exception.BusinessException;
 import com.sckw.core.model.page.PageRes;
+import com.sckw.core.model.vo.TableTop;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.IdWorker;
 import com.sckw.core.utils.OrderGenerateUtils;
@@ -444,16 +445,16 @@ public class KwpLedgerTradeService extends AbsLedger {
         return "对账完成";
     }
 
-    public List<LedgerCountVo> orderCount(TradeReq tradeReq) {
+    public List<TableTop> orderCount(TradeReq tradeReq) {
         tradeReq.setEntId(LoginUserHolder.getEntId());
         Map<String, Long> map = tradeMapper.countOrder(tradeReq);
-        LedgerCountVo ledgerCountVo;
-        List<LedgerCountVo> res = new ArrayList<>();
+        TableTop ledgerCountVo;
+        List<TableTop> res = new ArrayList<>();
         for (LedgerEnum value : LedgerEnum.values()) {
-            ledgerCountVo = new LedgerCountVo();
-            ledgerCountVo.setCount(map.get(String.valueOf(value.getStatus())));
-            ledgerCountVo.setLabel(value.getDesc());
-            ledgerCountVo.setStatus(value.getStatus());
+            ledgerCountVo = new TableTop();
+            ledgerCountVo.setTotal(Math.toIntExact(map.get(String.valueOf(value.getLabel()))));
+            ledgerCountVo.setName(value.getDesc());
+            ledgerCountVo.setValue(value.getStatus());
             res.add(ledgerCountVo);
         }
         return res;

+ 16 - 5
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementTradeService.java

@@ -4,6 +4,7 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.model.page.PageRes;
+import com.sckw.core.model.vo.TableTop;
 import com.sckw.core.utils.BeanUtils;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.web.context.LoginUserHolder;
@@ -38,9 +39,10 @@ public class KwpSettlementTradeService {
     @DubboReference(version = "2.0.0", group = "design", check = false)
     private RemoteSystemService remoteSystemService;
 
-    public SettlementTradeDto getById(Long id,Integer unitType) {
-        return settlementTradeMapper.getById(id,unitType);
+    public SettlementTradeDto getById(Long id, Integer unitType) {
+        return settlementTradeMapper.getById(id, unitType);
     }
+
     public List<LedgerUnitDto> getListById(Long id) {
         return settlementTradeMapper.getListById(id);
     }
@@ -98,8 +100,17 @@ public class KwpSettlementTradeService {
         return new PageRes<>(new PageInfo<>());
     }
 
-    public SettlementLogisticsStatusCountVo getCount(SettlementTradeReq settlementReq) {
-        return settlementTradeMapper.countOrder(settlementReq);
+    public List<TableTop> getCount(SettlementTradeReq settlementReq) {
+        Map<String, Long> stringIntegerMap = settlementTradeMapper.countOrder(settlementReq);
+        List<TableTop> res = new ArrayList<>(4);
+        for (SettlementEnum value : SettlementEnum.values()) {
+            TableTop tableTop = new TableTop();
+            tableTop.setName(value.getDesc());
+            tableTop.setValue(value.getStatus());
+            tableTop.setTotal(Math.toIntExact(stringIntegerMap.get(value.getLabel())));
+            res.add(tableTop);
+        }
+        return res;
     }
 
     /**
@@ -114,7 +125,7 @@ public class KwpSettlementTradeService {
 
 
     public List<ISettlement> selectList(List<Long> ids, int unitType) {
-        List<SettlementTradeDto> kwpSettlementTrades = settlementTradeMapper.selectByIds(ids,unitType);
+        List<SettlementTradeDto> kwpSettlementTrades = settlementTradeMapper.selectByIds(ids, unitType);
         if (!CollectionUtils.isEmpty(kwpSettlementTrades)) {
             //根据企业类型进行对应的数据
             if (unitType == TradeUnitType.PURCHASE) {

+ 5 - 5
sckw-modules/sckw-payment/src/main/resources/mapper/KwpSettlementTradeMapper.xml

@@ -101,11 +101,11 @@
                  inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0
         <include refid="query"/>
     </select>
-    <select id="countOrder" resultType="com.sckw.payment.model.vo.res.SettlementLogisticsStatusCountVo">
-        select count(1)                           allCount,
-               count(if(kst.status = 3, 1, null)) allPaymentCount,
-               count(if(kst.status = 2, 1, null)) partialPaymentCount,
-               count(if(kst.status = 1, 1, null)) waitingPaymentCount
+    <select id="countOrder" resultType="java.util.Map">
+        select count(1)                           "0",
+               count(if(kst.status = 3, 1, null)) "3",
+               count(if(kst.status = 2, 1, null)) "2",
+               count(if(kst.status = 1, 1, null)) "1"
         from kwp_settlement_trade kst
                  inner join kwp_ledger_trade klt on kst.t_ledger_id = klt.id and klt.del_flag = 0
                  inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0

+ 15 - 11
sckw-modules/sckw-product/src/main/java/com/sckw/product/dubbo/GoodsInfoServiceImpl.java

@@ -48,25 +48,29 @@ public class GoodsInfoServiceImpl implements GoodsInfoService {
         if (CollectionUtils.isEmpty(list)) {
             return Collections.emptyMap();
         }
-        return list.stream().collect(Collectors.toMap(KwpGoods::getId, e->e, (k1, k2) -> k1));
+        return list.stream().collect(Collectors.toMap(KwpGoods::getId, e -> e, (k1, k2) -> k1));
     }
 
     @Override
     public HttpResult updateGoodsAmount(Long id, BigDecimal amount) {
         String lockKey = String.format(RedisConstant.GOODS_UPDATE_AMOUNT_KEY, id);
-        if (Boolean.FALSE.equals(RedissonUtils.tryLock(lockKey, 3L, 3L))) {
+        if (Boolean.FALSE.equals(RedissonUtils.tryLock(lockKey, 10L, 30L))) {
             return HttpResult.error("业务繁忙,请稍后再试!");
         }
-        com.sckw.product.model.KwpGoods goods = kwpGoodsService.selectById(id);
-        if (Objects.isNull(goods)) {
-            return HttpResult.error("商品不存在!");
+        try {
+            com.sckw.product.model.KwpGoods goods = kwpGoodsService.selectById(id);
+            if (Objects.isNull(goods)) {
+                return HttpResult.error("商品不存在!");
+            }
+            BigDecimal goodsAmount = goods.getAmount();
+            if (goods.getAmount().compareTo(amount) < 0) {
+                return HttpResult.error("商品库存不足,请联系供应方!");
+            }
+            goods.setAmount(goodsAmount.subtract(amount)).setPerformedAmount(Objects.nonNull(goods.getPerformedAmount()) ? goods.getPerformedAmount().add(amount) : amount);
+            kwpGoodsService.updateById(goods);
+        } finally {
+            RedissonUtils.unlock(lockKey);
         }
-        BigDecimal goodsAmount = goods.getAmount();
-        if (goods.getAmount().compareTo(amount) < 0) {
-            return HttpResult.error("商品库存不足,请联系供应方!");
-        }
-        goods.setAmount(goodsAmount.subtract(amount)).setPerformedAmount(Objects.nonNull(goods.getPerformedAmount()) ? goods.getPerformedAmount().add(amount) : amount);
-        kwpGoodsService.updateById(goods);
         return HttpResult.ok();
     }
 }

+ 5 - 0
sckw-modules/sckw-product/src/main/resources/bootstrap-test.yml

@@ -17,6 +17,11 @@ spring:
         group: sckw-service-platform
         # 配置文件格式
         file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-common
+            refresh: true
+
         extension-configs:
           - dataId: sckw-common.yml
             group: sckw-service-platform

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

@@ -165,16 +165,14 @@ public class KwTransportController {
      * @param query
      * @return
      */
-    @RequestMapping(value = "/getWaybillOrders", method = RequestMethod.GET)
-    public HttpResult getWayBillOrders(WaybillOrderQuery query){
-        HttpResult httpResult = new HttpResult();
+    @RequestMapping(value = "/getWaybillOrders", method = RequestMethod.POST)
+    public HttpResult getWayBillOrders(@Validated @RequestBody WaybillOrderQuery query){
         try {
-            httpResult = transportService.getWaybillOrders(query);
+            return transportService.getWaybillOrders(query);
         } catch (Exception e) {
             log.error("[WAYBILL]运单管理-运单列表失败:{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
-        return httpResult;
     }
 
     /**
@@ -185,8 +183,8 @@ public class KwTransportController {
      * @author jc
      * @date 2023/07/21
      */
-    @RequestMapping(value = "/getWayBillStatistics", method = RequestMethod.GET)
-    public HttpResult wayBillStatistics(WaybillOrderQuery query) {
+    @RequestMapping(value = "/getWayBillStatistics", method = RequestMethod.POST)
+    public HttpResult wayBillStatistics(@Validated @RequestBody WaybillOrderQuery query) {
         try {
             return transportService.getWayBillStatistics(query);
         } catch (Exception e) {

+ 10 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwAcceptCarriageService.java

@@ -1,5 +1,6 @@
 package com.sckw.report.service;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.common.enums.StringConstant;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
@@ -262,6 +263,15 @@ public class KwAcceptCarriageService {
                 arrayList.add(top);
             }
         }
+        if (CollectionUtils.isNotEmpty(arrayList)){
+            /**补全统计【全部字段】*/
+            Integer sum = Math.toIntExact(arrayList.stream().filter(item -> ObjectUtil.isNotEmpty(item.getTotal())).collect(Collectors.summarizingInt(item -> item.getTotal())).getSum());
+            TableTops top = new TableTops();
+            top.setName("全部");
+            top.setValue("all");
+            top.setTotal(sum);
+            arrayList.add(top);
+        }
     }
 
     /**

+ 10 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwConsignService.java

@@ -1,5 +1,6 @@
 package com.sckw.report.service;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.common.enums.StringConstant;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
@@ -388,6 +389,15 @@ public class KwConsignService {
                 arrayList.add(top);
             }
         }
+        if (CollectionUtils.isNotEmpty(arrayList)){
+            /**补全统计【全部字段】*/
+            Integer sum = Math.toIntExact(arrayList.stream().filter(item -> ObjectUtil.isNotEmpty(item.getTotal())).collect(Collectors.summarizingInt(item -> item.getTotal())).getSum());
+            TableTops top = new TableTops();
+            top.setName("全部");
+            top.setValue("all");
+            top.setTotal(sum);
+            arrayList.add(top);
+        }
     }
 
 }

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

@@ -88,7 +88,7 @@ public class KwOrderService {
         List<OrderListRes> result = new ArrayList<>();
         list.forEach(e -> {
             OrderListRes order = BeanUtils.copyProperties(e, OrderListRes.class);
-            order.setStatus(DictEnum.getLabel(DictTypeEnum.TORDER_STATUS.getType(), String.valueOf(e.getStatus())))
+            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()))
                     .setPickupType(DictEnum.getLabel(DictTypeEnum.PICKUP_TYPE.getType(), e.getPickupType()))

+ 12 - 3
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java

@@ -64,8 +64,8 @@ public class KwTransportService {
     RemoteSystemService remoteSystemService;
 
     /**
-     * @param sourceList 源数据  [1,2,3]
-     * @param targetList 目标数据 [1]
+     * @param sourceList 源数据  [1]
+     * @param targetList 目标数据 [1,2,3]
      * @Description: 获取targetList中在sourceList中不存在的项
      * @return: List<String>    [2,3]
      */
@@ -328,12 +328,21 @@ public class KwTransportService {
             CarWaybillVo vo = new CarWaybillVo();
             vo.setWOrderNo(waybillOrder.getWOrderNo() == null ?
                     null : String.valueOf(waybillOrder.getWOrderNo()));
+            vo.setWOrderId(waybillOrder.getWOrderId() == null ?
+                    null : String.valueOf(waybillOrder.getWOrderId()));
             vo.setFirmName(waybillOrder.getFirmName() == null ?
                     null : String.valueOf(waybillOrder.getFirmName()));
             vo.setTruckNo(waybillOrder.getTruckNo());
             vo.setDriverName(waybillOrder.getDriverName() == null ?
                     null : String.valueOf(waybillOrder.getDriverName()));
-            vo.setType(String.valueOf(waybillOrder.getType()));
+            String typeString = "";
+            if (waybillOrder.getType().equals(NumberConstant.ONE)) {
+                typeString = "趟次";
+            }
+            if (waybillOrder.getType().equals(NumberConstant.TWO)) {
+                typeString = "循环";
+            }
+            vo.setType(typeString);
             vo.setSendCarTime(waybillOrder.getCreateTime() == null ?
                     null : DateUtil.getDateTime(waybillOrder.getCreateTime()));
             vo.setStartTime(waybillOrder.getStartTime() == null ?

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

@@ -28,7 +28,11 @@ public class OrderListRes {
     /**
      * 订单状态
      */
-    private String status;
+    private Integer status;
+    /**
+     * 订单状态label
+     */
+    private String statusLabel;
     /**
      * 订单编号
      */

+ 12 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderCirculateMapper.java

@@ -40,6 +40,18 @@ public interface KwtLogisticsOrderCirculateMapper extends BaseMapper<KwtLogistic
     KwtLogisticsOrderCirculate findCirculate(@Param("lOrderId") Long lOrderId, @Param("truckId") Long truckId,
                                              @Param("driverId") Long driverId, @Param("status") Integer status);
 
+    /**
+     * @param lOrderId 物流订单id
+     * @param truckId 车辆ID
+     * @param driverId 司机主键id
+     * @param status 循环派车状态(0正常、1失效)
+     * @desc 查询物流运单装卸货地址信息
+     * @author zk
+     * @date 2023/7/20
+     **/
+    List<KwtLogisticsOrderCirculate> findCirculateList(@Param("lOrderId") Long lOrderId, @Param("truckId") Long truckId,
+                                             @Param("driverId") Long driverId, @Param("status") Integer status);
+
     /**
      * 通过物流订单id和车辆运单id查询循环单据进行停止接单
      * @param lOrderId

+ 2 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/WaybillOrderDTO.java

@@ -63,12 +63,12 @@ public class WaybillOrderDTO extends PageRequest implements Serializable {
     /**
      * 装载城市
      */
-    private String loadCityName;
+    private Integer loadCityCode;
 
     /**
      * 卸载城市
      */
-    private String unloadCityName;
+    private Integer unloadCityCode;
 
     /**
      * 运单状态

+ 19 - 7
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java

@@ -132,13 +132,13 @@ public class AcceptCarriageOrderService {
         }
         //todo  校验当前登录角色是否具有4P物流角色
         EntCacheResDto entCacheResDto = remoteSystemService.queryEntCacheById(LoginUserHolder.getEntId());
-//        if (entCacheResDto == null) {
-//            log.info("承运订单-分包托运 用户id:{}", LoginUserHolder.getUserId());
-//            throw new RuntimeException("企业信息查询异常");
-//        }
-//        if (!entCacheResDto.getEntTypes().contains(String.valueOf(NumberConstant.THREE))) {
-//            throw new RuntimeException("当前用户企业不具有分包功能权限!");
-//        }
+        if (entCacheResDto == null) {
+            log.info("承运订单-分包托运 用户id:{}", LoginUserHolder.getUserId());
+            throw new RuntimeException("企业信息查询异常");
+        }
+        if (!entCacheResDto.getEntTypes().contains(String.valueOf(NumberConstant.THREE))) {
+            throw new RuntimeException("当前用户企业不具有分包功能权限!");
+        }
         KwtLogisticsOrder order = new KwtLogisticsOrder();
         if (!bo.getIsFullDose()) {
             Long amount = bo.getAmount();
@@ -387,6 +387,12 @@ public class AcceptCarriageOrderService {
             loadOrderAddress.setCreateBy(LoginUserHolder.getUserId());
             loadOrderAddress.setUpdateBy(LoginUserHolder.getUserId());
             loadOrderAddress.setUpdateTime(new Date());
+            loadOrderAddress.setName(orderLoadAddress.getName());
+            loadOrderAddress.setType(orderLoadAddress.getType());
+            loadOrderAddress.setCityCode(orderLoadAddress.getCityCode());
+            loadOrderAddress.setLng(orderLoadAddress.getLng());
+            loadOrderAddress.setRemark(orderLoadAddress.getRemark());
+            loadOrderAddress.setStatus(orderLoadAddress.getStatus());
             logisticsOrderAddressMapper.insert(loadOrderAddress);
         }
         if (!ObjectUtils.isEmpty(orderUnLoadAddress)) {
@@ -405,6 +411,12 @@ public class AcceptCarriageOrderService {
             unloadOrderAddress.setCreateBy(LoginUserHolder.getUserId());
             unloadOrderAddress.setUpdateBy(LoginUserHolder.getUserId());
             unloadOrderAddress.setUpdateTime(new Date());
+            unloadOrderAddress.setName(orderUnLoadAddress.getName());
+            unloadOrderAddress.setType(orderUnLoadAddress.getType());
+            unloadOrderAddress.setCityCode(orderUnLoadAddress.getCityCode());
+            unloadOrderAddress.setLng(orderUnLoadAddress.getLng());
+            unloadOrderAddress.setRemark(orderUnLoadAddress.getRemark());
+            unloadOrderAddress.setStatus(orderUnLoadAddress.getStatus());
             logisticsOrderAddressMapper.insert(unloadOrderAddress);
         }
     }

+ 57 - 22
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java

@@ -83,9 +83,15 @@ public class KwtWaybillOrderService {
         List<SckwWaybillOrder> sckwWaybillOrders = (List<SckwWaybillOrder>) result.getData();
 
         /**变更承运单状态(累计派车量等于剩余可运量)/已委托量entrust_amount**/
-        setLogisticsBySendCar(logisticsOrder.getId(), ranksAmount);
+        //更新当前承运订单委派量entrustAmount
+        BigDecimal entrustAmount = logisticsOrder.getEntrustAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.getEntrustAmount();
+        logisticsOrder.setEntrustAmount(entrustAmount.add(ranksAmount));
+        logisticsOrderDao.updateById(logisticsOrder);
+        //派车更新承运订单信息
+        setLogisticsBySendCar(logisticsOrder.getId());
 
         /**Mongodb数据存储**/
+        //1车辆订单
         for (SckwWaybillOrder waybillOrder:sckwWaybillOrders) {
             //rabbitMq业务汇总数据发送/消费对象
             SckwBusSum busSum = new SckwBusSum();
@@ -98,6 +104,10 @@ public class KwtWaybillOrderService {
             streamBridge.send("sckw-busSum", busSum);
         }
 
+        //2承运订单
+        SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
+        editSckwLogisticsOrder(lOrder, logisticsOrder);
+
         /**发送消息**/
         return HttpResult.ok();
     }
@@ -421,6 +431,7 @@ public class KwtWaybillOrderService {
         order.setCarrierPhone(carrierEnt.getPhone());
 
         //装卸货地址相关信息
+        order.setLoadName(loadAddress.getName());
         order.setLoadType(loadAddress.getType());
         order.setLoadContacts(loadAddress.getContacts());
         order.setLoadPhone(loadAddress.getPhone());
@@ -429,6 +440,7 @@ public class KwtWaybillOrderService {
         order.setLoadDetailAddress(loadAddress.getDetailAddress());
         order.setLoadLat(loadAddress.getLat());
         order.setLoadLng(loadAddress.getLng());
+        order.setUnloadName(unloadAddress.getName());
         order.setUnloadType(unloadAddress.getType());
         order.setUnloadContacts(unloadAddress.getContacts());
         order.setUnloadPhone(unloadAddress.getPhone());
@@ -452,12 +464,11 @@ public class KwtWaybillOrderService {
 
     /**
      * @param lOrderId 承运订单ID
-     * @param ranksAmount 当前派车总量
      * @description 派车更新承运订单信息
      * @author zk
      * @date 2023/7/24
      **/
-    public void setLogisticsBySendCar(Long lOrderId, BigDecimal ranksAmount) {
+    public void setLogisticsBySendCar(Long lOrderId) {
         /**
          状态判断是否是分包承运单(不考虑该承运单下级分包)
          存在:更新当前承运订单状态及委派量entrustAmount,并且校验承运订单所有父级状态是否需要修改(是修改状态,否则不修改)
@@ -474,28 +485,23 @@ public class KwtWaybillOrderService {
             for (String id : idArray) {
                 KwtLogisticsOrder order = logisticsOrderDao.selectById(id);
                 //承运订单-待派车
-                if (logisticsOrder.getStatus() == LogisticsOrderEnum.WAIT_DELIVERY.getCode()) {
-                    //承运订单不存在分包:更新当前承运订单状态及委派量entrustAmount
-                    //if (order.getId() == logisticsOrder.getId()) {
-                        //承运订单已委派量
-                        BigDecimal entrustAmount = logisticsOrder.getEntrustAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.getEntrustAmount();
-                        logisticsOrder.setEntrustAmount(entrustAmount.add(ranksAmount));
-                    //}
+                if (order.getStatus() == LogisticsOrderEnum.WAIT_DELIVERY.getCode()) {
+                    //更新当前承运订单状态
                     /**承运订单:待派车->运输中**/
-                    logisticsOrder.setStatus(LogisticsOrderEnum.IN_TRANSIT.getCode());
-                    logisticsOrderDao.updateById(logisticsOrder);
+                    order.setStatus(LogisticsOrderEnum.IN_TRANSIT.getCode());
+                    logisticsOrderDao.updateById(order);
 
                     /**承运订单状态记录**/
                     KwtLogisticsOrderTrack orderTrack = new KwtLogisticsOrderTrack();
-                    orderTrack.setLOrderId(logisticsOrder.getId());
-                    orderTrack.setStatus(logisticsOrder.getStatus());
-                    orderTrack.setRemark(LogisticsOrderEnum.getName(logisticsOrder.getStatus()));
+                    orderTrack.setLOrderId(order.getId());
+                    orderTrack.setStatus(order.getStatus());
+                    orderTrack.setRemark(LogisticsOrderEnum.getName(order.getStatus()));
                     logisticsOrderTrackDao.insert(orderTrack);
 
                     /**Mongodb数据更新**/
                     //2承运订单
                     SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
-                    editSckwLogisticsOrder(lOrder, logisticsOrder);
+                    editSckwLogisticsOrder(lOrder, order);
                 }
             }
         }
@@ -681,6 +687,9 @@ public class KwtWaybillOrderService {
             if (circulate == null) {
                 return HttpResult.error("车辆循环运单不存在!");
             }
+            if (circulate.getWOrderId() != null) {
+                return HttpResult.error("车辆循环运单不能接单!");
+            }
 
             /**获取基础信息**/
             //装货地址
@@ -897,14 +906,23 @@ public class KwtWaybillOrderService {
         /**2新增运单状态记录**/
         setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus(), params.getRemark());
 
-        /**3回退承运订单entrustAmount**/
+        /**3循环派车重置派车信息kwt_logistics_order_circulate**/
+        if (waybillOrder.getType() == Global.NUMERICAL_TWO) {
+            //循环派车信息
+            KwtLogisticsOrderCirculate circulate = logisticsOrderCirculateDao.findCirculate(waybillOrder.getLOrderId(),
+                    waybillOrder.getTruckId(), waybillOrder.getDriverId(), 0);
+            circulate.setStatus(Global.NUMERICAL_ONE);
+            logisticsOrderCirculateDao.updateById(circulate);
+        }
+
+        /**4回退承运订单entrustAmount**/
         KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
         //承运订单已委派量=承运订单原委派量+当前车辆运单委派量
         BigDecimal entrustAmount = logisticsOrder.getEntrustAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.getEntrustAmount();
         logisticsOrder.setEntrustAmount(entrustAmount.subtract(waybillOrder.getEntrustAmount()));
         logisticsOrderDao.updateById(logisticsOrder);
 
-        /**4Mongodb数据更新**/
+        /**5Mongodb数据更新**/
         //1车辆运单
         SckwWaybillOrder wOrder = new SckwWaybillOrder();
         wOrder.set_id(waybillOrder.getId());
@@ -914,7 +932,7 @@ public class KwtWaybillOrderService {
         SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
         editSckwLogisticsOrder(lOrder, logisticsOrder);
 
-        /**5发送消息**/
+        /**6发送消息**/
 
         return HttpResult.ok("拒绝出车成功!");
     }
@@ -1097,7 +1115,16 @@ public class KwtWaybillOrderService {
         ticket.setTime(params.getTime());
         waybillOrderTicketDao.insert(ticket);
 
-        /**4更新承运订单entrustAmount**/
+        /**4循环派车重置派车信息kwt_logistics_order_circulate**/
+        if (waybillOrder.getType() == Global.NUMERICAL_TWO) {
+            //循环派车信息
+            KwtLogisticsOrderCirculate circulate = logisticsOrderCirculateDao.findCirculate(waybillOrder.getLOrderId(),
+                    waybillOrder.getTruckId(), waybillOrder.getDriverId(), 0);
+            circulate.setWOrderId(null);
+            logisticsOrderCirculateDao.updateByPrimaryKey(circulate);
+        }
+
+        /**5更新承运订单entrustAmount**/
         //更新卸货量/卸货时间/亏吨/亏吨扣款
         KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
         //承运订单卸货量=承运订单原卸货量+当前车辆运单卸货量
@@ -1114,7 +1141,7 @@ public class KwtWaybillOrderService {
         //校验当前承运订单是否运输完成(修改状态+统计量)
         checkLogisticsByStatusV1(waybillOrder.getLOrderId());
 
-        /**5Mongodb数据更新**/
+        /**6Mongodb数据更新**/
         //1车辆运单
         SckwWaybillOrder wOrder = new SckwWaybillOrder();
         wOrder.set_id(waybillOrder.getId());
@@ -1131,7 +1158,7 @@ public class KwtWaybillOrderService {
         lOrder.setDeficitPrice(logisticsOrder.getDeficitPrice());
         editSckwLogisticsOrder(lOrder, logisticsOrder);
 
-        /**6发送消息**/
+        /**7发送消息**/
 
         return HttpResult.ok("卸货成功!");
     }
@@ -1267,6 +1294,14 @@ public class KwtWaybillOrderService {
             orderTrack.setStatus(logisticsOrder.getStatus());
             orderTrack.setRemark(LogisticsOrderEnum.getName(logisticsOrder.getStatus()));
             logisticsOrderTrackDao.insert(orderTrack);
+
+            /**1-4循环派车失效kwt_logistics_order_circulate**/
+            //循环派车信息
+            List<KwtLogisticsOrderCirculate> circulates = logisticsOrderCirculateDao.findCirculateList(logisticsOrder.getId(), null, null, 0);
+            for (KwtLogisticsOrderCirculate circulate:circulates) {
+                circulate.setStatus(Global.NUMERICAL_ONE);
+                logisticsOrderCirculateDao.updateById(circulate);
+            }
         }
 
         //车辆运单统计

+ 13 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java

@@ -506,11 +506,16 @@ public class LogisticsConsignmentService {
                     loadOrderAddress.setCreateBy(LoginUserHolder.getUserId());
                     loadOrderAddress.setUpdateBy(LoginUserHolder.getUserId());
                     loadOrderAddress.setUpdateTime(new Date());
+                    loadOrderAddress.setName(detail.getName());
+                    loadOrderAddress.setType(Long.parseLong(detail.getType()));
+                    loadOrderAddress.setCityCode(detail.getCityCode());
+                    loadOrderAddress.setLng(detail.getLng());
+//                    loadOrderAddress.setRemark(detail.getRemark());
+//                    loadOrderAddress.setStatus(detail.getStatus());
                 }
                 if (String.valueOf(NumberConstant.TWO).equals(detail.getAddressType())) {
-                    unloadOrderAddress.setId(new IdWorker(NumberConstant.ONE).nextId());
+                    unloadOrderAddress.setId(new IdWorker(NumberConstant.TWO).nextId());
                     unloadOrderAddress.setAddressType(NumberConstant.TWO);
-                    unloadOrderAddress.setId(new IdWorker(NumberConstant.ONE).nextId());
                     unloadOrderAddress.setContacts(detail.getContacts());
                     unloadOrderAddress.setLOrderId(orderId);
                     unloadOrderAddress.setLat(detail.getLat());
@@ -523,6 +528,12 @@ public class LogisticsConsignmentService {
                     unloadOrderAddress.setCreateBy(LoginUserHolder.getUserId());
                     unloadOrderAddress.setUpdateBy(LoginUserHolder.getUserId());
                     unloadOrderAddress.setUpdateTime(new Date());
+                    unloadOrderAddress.setName(detail.getName());
+                    unloadOrderAddress.setType(Long.valueOf(detail.getType()));
+                    unloadOrderAddress.setCityCode(detail.getCityCode());
+                    unloadOrderAddress.setLng(detail.getLng());
+//                    unloadOrderAddress.setRemark(detail.getRemark());
+//                    unloadOrderAddress.setStatus(detail.getStatus());
                 }
             }
         }

+ 22 - 16
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/WaybillManagementService.java

@@ -2,10 +2,12 @@ package com.sckw.transport.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.sckw.core.common.enums.NumberConstant;
+import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.model.enums.CarWaybillEnum;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.BeanUtils;
 import com.sckw.core.utils.CollectionUtils;
+import com.sckw.core.utils.FileUtils;
 import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
@@ -15,6 +17,7 @@ import com.sckw.fleet.api.model.vo.RTruckVo;
 import com.sckw.mongo.model.SckwWaybillOrder;
 import com.sckw.mongo.model.TableTops;
 import com.sckw.system.api.RemoteSystemService;
+import com.sckw.system.api.model.dto.res.SysDictResDto;
 import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.KwtLogisticsOrder;
@@ -24,7 +27,6 @@ import com.sckw.transport.model.dto.WaybillOrderDTO;
 import com.sckw.transport.model.vo.*;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
-import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Sort;
@@ -108,20 +110,24 @@ public class WaybillManagementService {
             wayBillDetailDTO.setGoodsName(info.getGoodsName());
             wayBillDetailDTO.setLoadDetailAddress(info.getLoadDetailAddress());
             wayBillDetailDTO.setUnloadDetailAddress(info.getUnloadDetailAddress());
+            // 计价方式
             KwtLogisticsOrder kwtLogisticsOrder = kwtLogisticsOrderMapper.selectById(info.getLOrderId());
-            wayBillDetailDTO.setPriceType(kwtLogisticsOrder.getBillingMode());
+            if(!ObjectUtils.isEmpty(kwtLogisticsOrder)) {
+                SysDictResDto billingMode = remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.CHARGING_TYPE.getType(), kwtLogisticsOrder.getBillingMode());
+                if(!ObjectUtils.isEmpty(billingMode)) {
+                    wayBillDetailDTO.setPriceType(billingMode.getLabel());
+                }
+            }
             wayBillDetailDTO.setCheckFirmName(info.getCheckFirmName());
             // 车辆信息
-            waybillCarVO.setType(info.getTruckType());
+            SysDictResDto truckTypeString = remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.TRUCK_TYPE.getType(), info.getTruckType());
+            if(!ObjectUtils.isEmpty(truckTypeString)) {
+                waybillCarVO.setType(truckTypeString.getLabel());
+            }
             waybillCarVO.setTruckNo(info.getTruckNo());
             waybillCarVO.setDriverName(info.getDriverName());
             waybillCarVO.setDriverPhone(info.getDriverPhone());
-            List<String> list = new ArrayList<>();
-            list.add(info.getTruckNo());
-            Map<String, RTruckVo> trucks = remoteFleetService.findTruck(list);
-            if (CollectionUtils.isNotEmpty(trucks)) {
-                waybillCarVO.setTrailerNo(trucks.get(info.getTruckNo()) != null ? trucks.get(info.getTruckNo()).getTrailerNo() : null);
-            }
+            waybillCarVO.setTrailerNo(info.getTruckTrailerNo());
             // 票据
             waybillTicketVO.setLoadTime(DateUtil.getDateTime(info.getLoadTime()));
             waybillTicketVO.setLoadWeight(String.valueOf(info.getLoadAmount()));
@@ -224,8 +230,8 @@ public class WaybillManagementService {
             waybillBoardListVO.setTruckNo(String.valueOf(sckwWaybillOrder.getTruckNo()));
             waybillBoardListVO.setLoadGrossAmount(sckwWaybillOrder.getLoadGrossAmount() != null ? String.valueOf(sckwWaybillOrder.getLoadGrossAmount()) : null);
             waybillBoardListVO.setUnloadGrossAmount(sckwWaybillOrder.getUnloadGrossAmount() != null ? String.valueOf(sckwWaybillOrder.getUnloadGrossAmount()) : null);
-            waybillBoardListVO.setLoadUrls(sckwWaybillOrder.getLoadUrls() != null ? String.valueOf(sckwWaybillOrder.getLoadUrls()) : null);
-            waybillBoardListVO.setUnloadUrls(sckwWaybillOrder.getUnloadUrls() != null ? String.valueOf(sckwWaybillOrder.getUnloadUrls()) : null);
+            waybillBoardListVO.setLoadUrls(sckwWaybillOrder.getLoadUrls() != null ? FileUtils.getOSSAddressPrefix() + sckwWaybillOrder.getLoadUrls() : null);
+            waybillBoardListVO.setUnloadUrls(sckwWaybillOrder.getUnloadUrls() != null ? FileUtils.getOSSAddressPrefix() + sckwWaybillOrder.getUnloadUrls() : null);
             List<WaybillStatusVO> statusVOS2 = new ArrayList<>();
             statusVOS.forEach(e -> {
                 WaybillStatusVO temp = new WaybillStatusVO();
@@ -299,12 +305,12 @@ public class WaybillManagementService {
         }
 
         // 装货城市
-        if (StringUtils.isNotBlank(query.getLoadCityName()) && StringUtils.isNotEmpty(query.getLoadCityName())) {
-            criteria.and("loadCityName").is(query.getLoadCityName());
+        if (StringUtils.isNotBlank(query.getLoadCityCode())) {
+            criteria.and("loadCityCode").is(query.getLoadCityCode());
         }
         // 卸货城市
-        if (StringUtils.isNotBlank(query.getUnloadCityName()) && StringUtils.isNotEmpty(query.getUnloadCityName())) {
-            criteria.and("unloadCityName").is(query.getUnloadCityName());
+        if (StringUtils.isNotBlank(query.getUnloadCityCode())) {
+            criteria.and("unloadCityCode").is(query.getUnloadCityCode());
         }
         // 装载时间
         if (StringUtils.isNotBlank(query.getStartLoadTime()) && StringUtils.isNotEmpty(query.getEndLoadTime())) {
@@ -361,7 +367,7 @@ public class WaybillManagementService {
         topTotal.setName("全部");
         topTotal.setValue("all");
         topTotal.setTotal(0);
-        listMap.put("", topTotal);
+        listMap.put("all", topTotal);
         statuses.forEach(e -> {
             TableTops top = new TableTops();
             top.setValue(String.valueOf(e));

+ 1 - 1
sckw-modules/sckw-transport/src/main/resources/bootstrap-dev.yml

@@ -14,7 +14,7 @@ spring:
         # 配置文件格式
         file-extension: yaml
         # 命名空间
-        namespace: sckw_jc
+        namespace: sckw-service-platform-dev
         # 共享配置
         group: sckw-service-platform
         #可以读多个配置文件  需要在同一个命名空间下面可以是不同的组

+ 1 - 0
sckw-modules/sckw-transport/src/main/resources/bootstrap.yml

@@ -6,6 +6,7 @@ spring:
     name: sckw-transport
   profiles:
     active: ${DEPLOY_MODE:dev}
+#    active: @profiles.active@
   main:
     allow-bean-definition-overriding: true
     allow-circular-references: true

+ 47 - 0
sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderCirculateMapper.xml

@@ -31,6 +31,33 @@
         `remark`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`
     </sql>
 
+    <update id="updateByPrimaryKey" parameterType="com.sckw.transport.model.KwtLogisticsOrderCirculate">
+        UPDATE kwt_logistics_order_circulate
+        <set>
+            ent_id = #{entId},
+            l_order_id = #{lOrderId},
+            w_order_id = #{wOrderId},
+            type = #{type},
+            truck_id = #{truckId},
+            truck_no = #{truckNo},
+            driver_id = #{driverId},
+            driver_name = #{driverName},
+            driver_phone = #{driverPhone},
+            driver_idcard = #{driverIdcard},
+            start_time = #{startTime},
+            end_time = #{endTime},
+            entrust_amount = #{entrustAmount},
+            remark = #{remark},
+            status = #{status},
+            create_by = #{createBy},
+            create_time = #{createTime},
+            update_by = #{updateBy},
+            update_time = #{updateTime},
+            del_flag = #{delFlag}
+        </set>
+        WHERE id = #{id}
+    </update>
+
     <select id="selectDriverOrderByStatus" resultType="java.lang.Long">
         SELECT b.w_order_id as wOrderId
         FROM kwt_waybill_order a
@@ -63,6 +90,26 @@
         and status = #{status, jdbcType=INTEGER}
     </select>
 
+    <select id="findCirculateList" resultType="com.sckw.transport.model.KwtLogisticsOrderCirculate" >
+        select
+        id, ent_id entId, l_order_id lOrderId, w_order_id wOrderId, type, truck_id truckId,
+        truck_no truckNo, driver_id driverId, driver_name driverName, driver_phone driverPhone,
+        driver_idcard driverIdcard, start_time startTime, end_time endTime, entrust_amount entrustAmount,
+        remark, status, create_by createBy, create_time createTime, update_by updateBy, update_time updateTime
+        from kwt_logistics_order_circulate
+        where del_flag = 0
+        and l_order_id = #{lOrderId, jdbcType=BIGINT}
+        <if test="truckId != null and truckId !=''">
+            and truck_id = #{truckId, jdbcType=BIGINT}
+        </if>
+        <if test="driverId != null and driverId !=''">
+            and driver_id = #{driverId, jdbcType=BIGINT}
+        </if>
+        <if test="status != null and status !=''">
+            and status = #{status, jdbcType=INTEGER}
+        </if>
+    </select>
+
     <select id="selectEntityBylOrderIdAndOrderIds" resultType="java.lang.Long">
         SELECT
         DISTINCT b.id

+ 2 - 2
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderAddressMapper.xml

@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.sckw.transport.dao.KwtWaybillOrderAddressMapper">
-    <resultMap id="BaseResultMap" type="com.sckw.transport.model.KwtWaybillOrder">
+    <resultMap id="BaseResultMap" type="com.sckw.transport.model.KwtWaybillOrderAddress">
         <id column="id" jdbcType="BIGINT" property="id"/>
         <result column="w_order_id" jdbcType="BIGINT" property="wOrderId"/>
-        <result column="address_type" jdbcType="VARCHAR" property="AddressType"/>
+        <result column="address_type" jdbcType="VARCHAR" property="addressType"/>
         <result column="name" jdbcType="VARCHAR" property="name"/>
         <result column="type" jdbcType="BIGINT" property="type"/>
         <result column="contacts" jdbcType="VARCHAR" property="contacts"/>