Przeglądaj źródła

Merge branch 'dev' into sky_v1

15928045575 2 lat temu
rodzic
commit
95245defa6
100 zmienionych plików z 1311 dodań i 281 usunięć
  1. 3 3
      sckw-auth/src/main/java/com/sckw/auth/controller/AuthController.java
  2. 6 6
      sckw-auth/src/main/java/com/sckw/auth/service/impl/AuthServiceImpl.java
  3. 1 1
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictEnum.java
  4. 3 1
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/filter/RequestCheckFilter.java
  5. 61 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/OrderRuleEnum.java
  6. 51 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/RedisOrderGenerateEnum.java
  7. 15 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/DateUtils.java
  8. 129 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/OrderGenerateSeqNoUtils.java
  9. 1 26
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/OrderGenerateUtils.java
  10. 1 1
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/RegularUtils.java
  11. 18 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/StringUtils.java
  12. 1 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/constant/HttpStatus.java
  13. 1 1
      sckw-common/sckw-common-log/pom.xml
  14. 3 2
      sckw-common/sckw-common-log/src/main/java/com/sckw/log/aspect/LogInfoAspect.java
  15. 2 3
      sckw-common/sckw-common-log/src/main/java/com/sckw/log/interceptor/LogInterceptor.java
  16. 15 0
      sckw-common/sckw-common-log/src/main/java/com/sckw/log/utils/UuidUtils.java
  17. 5 0
      sckw-common/sckw-common-redis/src/main/java/com/sckw/redis/constant/RedisConstant.java
  18. 3 4
      sckw-common/sckw-common-remote/src/main/java/com/sckw/remote/filter/TraceIdFilter.java
  19. 15 0
      sckw-common/sckw-common-remote/src/main/java/com/sckw/remote/utils/UuidUtils.java
  20. 7 0
      sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/dubbo/TransportDubboService.java
  21. 35 0
      sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/model/param/ContractSignLogisticsParam.java
  22. 6 1
      sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/model/param/LogisticsOrderParam.java
  23. 45 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/factory/AsyncFactory.java
  24. 33 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/dto/res/ESignSubmitResDto.java
  25. 6 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/QueryListReqVo.java
  26. 9 4
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/CommonBusinessService.java
  27. 25 0
      sckw-modules/sckw-contract/src/main/resources/bootstrap-local.yml
  28. 1 0
      sckw-modules/sckw-contract/src/main/resources/bootstrap.yml
  29. 4 2
      sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractLogisticsMapper.xml
  30. 2 1
      sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractTradeMapper.xml
  31. 2 1
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dubbo/RemoteFleetServiceImpl.java
  32. 3 3
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/UpdatePasswordDto.java
  33. 4 4
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/vo/KwfTruckDetailVo.java
  34. 13 9
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfDriverService.java
  35. 2 2
      sckw-modules/sckw-fleet/src/main/resources/bootstrap.yml
  36. 2 2
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfTruckReportMapper.xml
  37. 3 0
      sckw-modules/sckw-manage/pom.xml
  38. 5 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/dto/res/CooperateManageQueryResDto.java
  39. 6 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/AddressQueryReqVo.java
  40. 7 1
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/InitiateReqVo.java
  41. 6 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/res/AddressQueryResVo.java
  42. 12 3
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/res/CooperateManageQueryResVo.java
  43. 11 6
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/CommonBusinessService.java
  44. 1 1
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmAddressService.java
  45. 15 9
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateApplyService.java
  46. 1 1
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateManageService.java
  47. 1 1
      sckw-modules/sckw-manage/src/main/resources/bootstrap.yml
  48. 2 0
      sckw-modules/sckw-manage/src/main/resources/mapper/KwmCooperateMapper.xml
  49. 5 4
      sckw-modules/sckw-order/src/main/java/com/sckw/order/controller/KwoTransportDemandController.java
  50. 7 5
      sckw-modules/sckw-order/src/main/java/com/sckw/order/controller/KwpWantBuyController.java
  51. 8 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/KwoTradeOrder.java
  52. 6 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/AddDraftWantBuyParam.java
  53. 11 2
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/AddTransportDemandDraftParam.java
  54. 0 2
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/AddTransportDemandParam.java
  55. 4 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/GoodsInfo.java
  56. 4 1
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/PurchaseOrderDraftParam.java
  57. 10 3
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/UpdateTransportDemandParam.java
  58. 6 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/UpdateWantBuyParam.java
  59. 1 1
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/OrderProcess.java
  60. 40 8
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java
  61. 19 24
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTransportDemandService.java
  62. 10 17
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwpWantBuyService.java
  63. 8 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementOfflineService.java
  64. 8 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementWalletService.java
  65. 40 16
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java
  66. 1 1
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java
  67. 33 30
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/TradeOrderListExport.java
  68. 4 4
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/OrderListRes.java
  69. 1 2
      sckw-modules/sckw-report/src/main/resources/bootstrap.yml
  70. 1 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/SysDictController.java
  71. 9 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/KwsEnterpriseDao.java
  72. 2 2
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/AddEntSettleReqVo.java
  73. 2 2
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/RoleBindMenuReqVo.java
  74. 11 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/CommonService.java
  75. 11 2
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsEnterpriseService.java
  76. 2 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsUserService.java
  77. 8 5
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/SysDictService.java
  78. 1 1
      sckw-modules/sckw-system/src/main/resources/bootstrap-dev.yml
  79. 2 2
      sckw-modules/sckw-system/src/main/resources/bootstrap.yml
  80. 1 1
      sckw-modules/sckw-system/src/main/resources/mapper/KwsEntCheckTrackDao.xml
  81. 13 0
      sckw-modules/sckw-system/src/main/resources/mapper/KwsEnterpriseDao.xml
  82. 9 2
      sckw-modules/sckw-system/src/main/resources/mapper/KwsMenuRightsDao.xml
  83. 0 4
      sckw-modules/sckw-transport/pom.xml
  84. 15 13
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java
  85. 94 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/ConsignOrderController.java
  86. 16 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/KwtWaybillOrderController.java
  87. 21 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/LogisticsConsignmentController.java
  88. 11 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/WaybillManagementController.java
  89. 19 5
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/enterpriseApp/AppAcceptCarriageController.java
  90. 47 5
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/enterpriseApp/AppConsignController.java
  91. 11 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderMapper.java
  92. 10 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderAddressMapper.java
  93. 11 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/LogisticsOrderDTO.java
  94. 5 5
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/StopOrderTakingDTO.java
  95. 4 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/SubcontractConsignmentDTO.java
  96. 90 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/WaybillOrderTicketApprovalDto.java
  97. 1 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/DriverParam.java
  98. 3 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/LogisticsConsignmentParam.java
  99. 11 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/DriverListVo.java
  100. 41 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/OrderDetailVO.java

+ 3 - 3
sckw-auth/src/main/java/com/sckw/auth/controller/AuthController.java

@@ -29,8 +29,8 @@ public class AuthController {
     @Autowired
     private IAuthService authService;
 
-    @PostMapping("/login1")
-    public HttpResult login(@RequestHeader(name = "System-Type") int systemType,
+    @PostMapping("/auth")
+    public HttpResult auth(@RequestHeader(name = "System-Type") int systemType,
                             @RequestHeader(name = "Client-Type") String clientType,
                             @RequestBody @Valid LoginBase loginBase) {
         loginBase.setSystemType(systemType);
@@ -57,7 +57,7 @@ public class AuthController {
         return HttpResult.error(HttpStatus.PARAMETERS_MISSING_CODE, HttpStatus.GLOBAL_EXCEPTION_MESSAGE);
     }
 
-    @PostMapping("/smsLogin")
+    @PostMapping("/smsAuth")
     public HttpResult smsAuth(@RequestHeader(name = "System-Type") int systemType,
                             @RequestHeader(name = "Client-Type") String clientType,
                             @RequestBody @Valid LoginBase loginBase) {

+ 6 - 6
sckw-auth/src/main/java/com/sckw/auth/service/impl/AuthServiceImpl.java

@@ -67,7 +67,7 @@ public class AuthServiceImpl implements IAuthService {
         BeanUtils.copyProperties(kwsUser, loginResVo);
 
         //平台管理员直接过了
-        if (kwsUser.getIsMain() == Global.YES && kwsUser.getSystemType() == SystemTypeEnum.MANAGE.getCode()) {
+        if (kwsUser.getIsMain() == Global.YES && kwsUser.getSystemType().equals(SystemTypeEnum.MANAGE.getCode())) {
             afterProcessor(loginResVo);
             return loginResVo;
         }
@@ -146,11 +146,11 @@ public class AuthServiceImpl implements IAuthService {
             remoteUserService.checkPassword(reqDto.getPassword(), kwsUser.getPassword());
         } else {
             String key = Global.USER_LOGIN_CAPTCHA + reqDto.getSystemType() + Global.COLON + kwsUser.getAccount();
-            String captcha = RedissonUtils.getString(key);
-            if (StringUtils.isBlank(captcha) || StringUtils.isBlank(reqDto.getCaptcha()) || !reqDto.getCaptcha().equals(captcha)) {
-                throw new SystemException(HttpStatus.PARAMETERS_MISSING_CODE, HttpStatus.CAPCHA_ERROR);
-            }
-            RedissonUtils.delete(key);
+//            String captcha = RedissonUtils.getString(key);
+//            if (StringUtils.isBlank(captcha) || StringUtils.isBlank(reqDto.getCaptcha()) || !reqDto.getCaptcha().equals(captcha)) {
+//                throw new SystemException(HttpStatus.PARAMETERS_MISSING_CODE, HttpStatus.CAPCHA_ERROR);
+//            }
+//            RedissonUtils.delete(key);
         }
         return kwsUser;
     }

+ 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", "已退回"),

+ 3 - 1
sckw-common/sckw-common-core/src/main/java/com/sckw/core/filter/RequestCheckFilter.java

@@ -132,7 +132,9 @@ public class RequestCheckFilter implements Filter {
 
         /*5、请求权限校验*/
         //非管理员有接口权限才放行
-        if (loginUserInfo.getIsMain() != Global.YES && !checkMenu(clientType, loginUserInfo.getId(), requestUri)) {
+        if (loginUserInfo.getIsMain() != Global.YES
+                && NumberUtils.parseInt(systemType) == SystemTypeEnum.MANAGE.getCode()
+                && !checkMenu(clientType, loginUserInfo.getId(), requestUri)) {
             ResponseUtil.writer(response, HttpResult.error(HttpStatus.AUTHORITY_NO_CODE, HttpStatus.ACCESS_FIAL));
             return;
         }

+ 61 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/OrderRuleEnum.java

@@ -0,0 +1,61 @@
+package com.sckw.core.model.enums;
+
+/**
+ * @author lfdc
+ * @description redis生成编号 key枚举定义
+ * @date 2023-08-25 15:07:23
+ */
+public enum OrderRuleEnum {
+
+    /**
+     * 物流订单
+     */
+    LOGISTICS_ORDER("logisticsOrder", "T", "物流订单业务类别"),
+
+    /**
+     * 贸易订单
+     */
+    TRADE_ORDER("waybillOrder", "B", "贸易订单业务类别"),
+
+    /**
+     * 运单
+     */
+    WAYBILL_ORDER("waybillOrder", "T", "运单业务类别"),
+
+    /**
+     * 对账
+     */
+    LEDGER_ORDER("ledgerOrder", "BR", "对账业务类别"),
+
+    /**
+     * 结算
+     */
+    SETTLEMENT_ORDER("settlementOrder", "BP", "结算业务类别"),
+    ;
+
+
+    private final String value;
+    private final String code;
+    private final String destination;
+
+
+    OrderRuleEnum(String value, String code, String destination) {
+        this.value = value;
+        this.code = code;
+        this.destination = destination;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public String getDestination() {
+        return destination;
+    }
+
+
+}

+ 51 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/RedisOrderGenerateEnum.java

@@ -0,0 +1,51 @@
+package com.sckw.core.model.enums;
+
+import lombok.Getter;
+
+/**
+ * @author lfdc
+ * @description redis生成编号 key枚举定义
+ * @date 2023-08-25 15:07:23
+ */
+@Getter
+public enum RedisOrderGenerateEnum {
+    /**
+     * 物流订单key
+     */
+    LOGISTICS_ORDER("logisticsOrder","logistics_order_no_generator:","物流订单key"),
+
+    /**
+     * 车辆运单key
+     */
+    WAYBILL_ORDER("waybillOrder","waybill_order_no_generator:","车辆运单key"),
+
+    /**
+     * 对账key
+     */
+    ACCOUNT_CHECKING("accountChecking","logistics_order_no_generator:","对账key"),
+    ;
+
+
+    private final String value;
+    private final String key;
+    private final String name;
+
+    public String getValue() {
+        return value;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    RedisOrderGenerateEnum(String value, String key, String name) {
+        this.value = value;
+        this.key = key;
+        this.name = name;
+    }
+
+}

+ 15 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/DateUtils.java

@@ -118,6 +118,21 @@ public class DateUtils extends DateUtil {
         return null;
     }
 
+
+    /**
+     * 日期格式化 日期格式为:yyyy-MM-dd
+     *
+     * @param expireDate    日期
+     * @return 返回yyMMdd格式日期
+     */
+    public static String formatDateToYYMMDD(Date expireDate) {
+        if (expireDate != null) {
+            String str = new SimpleDateFormat("yyMMdd").format(expireDate);
+            return str;
+        }
+        return null;
+    }
+
     /**
      * @param date
      * @return String    返回类型

+ 129 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/OrderGenerateSeqNoUtils.java

@@ -0,0 +1,129 @@
+package com.sckw.core.utils;
+
+import com.sckw.core.model.enums.OrderRuleEnum;
+import com.sckw.core.model.enums.RedisOrderGenerateEnum;
+import com.sckw.redis.utils.RedissonUtils;
+import jakarta.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.support.atomic.RedisAtomicLong;
+import org.springframework.stereotype.Component;
+
+import java.util.Calendar;
+import java.util.Date;
+
+/**
+ * @author lfdc
+ * @description 物流订单编号生成工具类
+ * @date 2023-08-25 16:08:41
+ */
+@Slf4j
+@Component
+public class OrderGenerateSeqNoUtils {
+
+
+    @Resource
+    private RedisTemplate redisTemplate;
+
+    /**
+     * @param redisOrderGenerateEnum       传入指定枚举的key
+     * @param prefix    业务类别
+     * @param orderType 单据创建类型
+     * @param level     所属几级分包
+     * @param number    同级分包次数
+     * @return
+     */
+    public static String getSeqNo(RedisOrderGenerateEnum redisOrderGenerateEnum, OrderRuleEnum prefix, String orderType, String level, String number) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.HOUR_OF_DAY, 23);
+        calendar.set(Calendar.MINUTE, 59);
+        calendar.set(Calendar.SECOND, 59);
+        calendar.set(Calendar.MILLISECOND, 999);
+        /**拼接redis key 公共key+[业务标识]+日期 */
+        StringBuilder stringBuilder = new StringBuilder();
+        StringBuilder appendKey = stringBuilder.append(redisOrderGenerateEnum.getKey()).append(prefix.getCode()).append(DateUtils.formatDate(new Date()));
+        //设置过期时间,这里设置为当天的23:59:59
+        Date expireDate = calendar.getTime();
+        Long seq = generate(appendKey.toString(), expireDate);
+        String date = DateUtils.formatDateToYYMMDD(expireDate);
+        String sequence = StringUtils.addZeroForNum(seq.toString(), 4);
+        if (prefix == null) {
+            throw new RuntimeException("Order Generate SeqNo Error");
+        }
+        /**拼接业务编号*/
+        String seqNo = prefix.getCode() + date + sequence;
+        /**extendBusiness 根据实际业务是否需要 */
+        String seqNoEnd = extendBusiness(seqNo, orderType, level, number);
+        log.info("KEY:{}, 序列号生成:{}, 过期时间:{}", appendKey, seqNo, String.format("%tF %tT ", expireDate, expireDate));
+        return seqNoEnd;
+    }
+
+    private static String extendBusiness(String seqNo, String orderType, String level, String number) {
+        return seqNo + orderType + level + number;
+    }
+
+
+    /**
+     * //返回当前redis中的key的最大值
+     *
+     * @param redisTemplate
+     * @param key           redisKey
+     * @param expireTime    过期时间
+     * @return
+     */
+    public long generate(RedisTemplate<?, ?> redisTemplate, String key, Date expireTime) {
+        //RedisAtomicLong为原子类,根据传入的key和redis链接工厂创建原子类
+        RedisAtomicLong counter = new RedisAtomicLong(key, redisTemplate.getConnectionFactory());
+        //设置过期时间
+        counter.expireAt(expireTime);
+        //返回redis中key的值,内部实现下面详细说明
+        return counter.incrementAndGet();
+    }
+
+
+    /**
+     * 返回当前redis中的key的最大值
+     *
+     * @param key        redisKey
+     * @param expireTime 过期时间
+     * @return
+     */
+    public static long generate(String key, Date expireTime) {
+        long seq = RedissonUtils.getAtomicLong(key, expireTime.getTime());
+//        RedisAtomicLong counter = new RedisAtomicLong(key, redisTemplate.getConnectionFactory());
+//        //设置过期时间
+//        counter.expireAt(expireTime);
+//        //返回redis中key的值,内部实现下面详细说明
+//        return counter.incrementAndGet();
+        return seq;
+    }
+
+
+    /**
+     * @param redisOrderGenerateEnum    传入枚举指定的key
+     * @param prefix 业务类别
+     * @return
+     */
+    public static String getOtherSeqNo(RedisOrderGenerateEnum redisOrderGenerateEnum, OrderRuleEnum prefix) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.HOUR_OF_DAY, 23);
+        calendar.set(Calendar.MINUTE, 59);
+        calendar.set(Calendar.SECOND, 59);
+        calendar.set(Calendar.MILLISECOND, 999);
+        /**拼接redis key 公共key+[业务标识]+日期 */
+        StringBuilder stringBuilder = new StringBuilder();
+        StringBuilder appendKey = stringBuilder.append(redisOrderGenerateEnum.getKey()).append(prefix.getCode()).append(DateUtils.formatDate(new Date()));
+        //设置过期时间,这里设置为当天的23:59:59
+        Date expireDate = calendar.getTime();
+        Long seq = generate(appendKey.toString(), expireDate);
+        String date = DateUtils.formatDateToYYMMDD(expireDate);
+        String sequence = StringUtils.addZeroForNum(seq.toString(), 4);
+        if (prefix == null) {
+            throw new RuntimeException("Order Generate SeqNo Error");
+        }
+        /**拼接业务编号*/
+        String seqNo = prefix.getCode() + date + sequence;
+        log.info("KEY:{}, 序列号生成:{}, 过期时间:{}", appendKey, seqNo, String.format("%tF %tT ", expireDate, expireDate));
+        return seqNo;
+    }
+}

+ 1 - 26
sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/OrderGenerateUtils.java

@@ -42,7 +42,7 @@ public class OrderGenerateUtils {
     public static String generateOrderNo(String prefix) {
         String date = getNowDateStr();
         long orderId = RedissonUtils.getAtomicLong(ORDER_NO_GENERATOR + date,60L);
-        return String.format("%s-%s%04d", prefix, date, orderId);
+        return String.format("%s%s%04d", prefix, date, orderId);
     }
 
     /**
@@ -54,29 +54,4 @@ public class OrderGenerateUtils {
         return SDF.format(new Date());
     }
 
-    /**
-     * 字符串格式化长度不足补0
-     */
-    public static String addZeroForNum(String str, int strLength) {
-        int strLen = str.length();
-        if (strLen < strLength) {
-            StringBuffer sb = new StringBuffer(str);
-            while (strLen < strLength) {
-                // 左补0
-                sb.insert(0, "0");
-                strLen = sb.length();
-            }
-            str = sb.toString();
-        }
-        return str;
-    }
-
-    public static void main(String[] args) {
-        getLogisticsLOrderNo("T","1","1","1");
-    }
-    public static void getLogisticsLOrderNo(String t, String number, String number1, String number2) {
-        StringBuilder str=new StringBuilder();
-        String date = DateUtils.formatDate(new Date());
-        str.append(t).append(date).append(number).append(number1).append(number2);
-    }
 }

+ 1 - 1
sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/RegularUtils.java

@@ -72,7 +72,7 @@ public class RegularUtils {
     /**
      * 中文汉字
      */
-    public static final String CHINESE = "^[\\u4e00-\\u9fa5]{2,4}$";
+    public static final String CHINESE = "^[\\u4e00-\\u9fa5]{1,6}$";
 
     /**
      * 姓名相关

+ 18 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/StringUtils.java

@@ -711,6 +711,24 @@ public class StringUtils {
         return new String(newCodePoints, 0, outOffset);
     }
 
+
+    /**
+     * 字符串格式化长度不足补0
+     */
+    public static String addZeroForNum(String str, int strLength) {
+        int strLen = str.length();
+        if (strLen < strLength) {
+            StringBuffer sb = new StringBuffer(str);
+            while (strLen < strLength) {
+                // 左补0
+                sb.insert(0, "0");
+                strLen = sb.length();
+            }
+            str = sb.toString();
+        }
+        return str;
+    }
+
     /**
      * 值替换
      *

+ 1 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/constant/HttpStatus.java

@@ -182,5 +182,6 @@ public class HttpStatus {
     public static final String MSG_029 = "合同编号超长!";
     public static final String MSG_030 = "合同名称超长!";
     public static final String MSG_031 = "您与所选企业存在未完结业务,当前无法删除!";
+    public static final String MSG_033 = "当前企业资质在审核中,无法删除!";
 
 }

+ 1 - 1
sckw-common/sckw-common-log/pom.xml

@@ -4,8 +4,8 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
+        <artifactId>sckw-common</artifactId>
         <groupId>com.sckw</groupId>
-        <artifactId>sckw-service-platform</artifactId>
         <version>1.0.0</version>
     </parent>
 

+ 3 - 2
sckw-common/sckw-common-log/src/main/java/com/sckw/log/aspect/LogInfoAspect.java

@@ -13,7 +13,8 @@ import org.aspectj.lang.annotation.AfterThrowing;
 import org.aspectj.lang.annotation.Around;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Pointcut;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.core.Ordered;
+import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Component;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -31,7 +32,7 @@ import java.util.stream.Stream;
 @Aspect
 @Component
 @Slf4j
-@Configuration
+@Order(Ordered.HIGHEST_PRECEDENCE)
 public class LogInfoAspect {
 
     public static final String TIME_PATTERN = "yyyy-MM-dd HH:mm:ss:SSS";

+ 2 - 3
sckw-common/sckw-common-log/src/main/java/com/sckw/log/interceptor/LogInterceptor.java

@@ -1,5 +1,6 @@
 package com.sckw.log.interceptor;
 
+import com.sckw.log.utils.UuidUtils;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.slf4j.Slf4j;
@@ -8,8 +9,6 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.util.StringUtils;
 import org.springframework.web.servlet.HandlerInterceptor;
 
-import java.util.UUID;
-
 /**
  * @desc: 日志拦截器
  * @author: yzc
@@ -23,7 +22,7 @@ public class LogInterceptor implements HandlerInterceptor {
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
         String traceId = request.getHeader(TRACE_ID);
         if (!StringUtils.hasText(traceId)) {
-            MDC.put(TRACE_ID, UUID.randomUUID().toString());
+            MDC.put(TRACE_ID, UuidUtils.getUuid());
         } else {
             MDC.put(TRACE_ID, traceId);
         }

+ 15 - 0
sckw-common/sckw-common-log/src/main/java/com/sckw/log/utils/UuidUtils.java

@@ -0,0 +1,15 @@
+package com.sckw.log.utils;
+
+import java.util.UUID;
+
+/**
+ * @desc: 获取uuid
+ * @author: yzc
+ * @date: 2023-08-22 15:21
+ */
+public class UuidUtils {
+
+    public static String getUuid(){
+        return UUID.randomUUID().toString().replace("-", "");
+    }
+}

+ 5 - 0
sckw-common/sckw-common-redis/src/main/java/com/sckw/redis/constant/RedisConstant.java

@@ -38,6 +38,11 @@ public class RedisConstant {
      */
     public static final String TORDER_CONTRACT_UPDATE_KEY = "sckw:trade:order:contract:update:%s";
 
+    /**
+     * 合同签约完成更新物流订单状态锁key
+     */
+    public static final String LOGISTICS_ORDER_CONTRACT_UPDATE_KEY = "sckw:logistics:order:contract:update:%s";
+
     /**
      * 消费请求有效时间(秒)
      */

+ 3 - 4
sckw-common/sckw-common-remote/src/main/java/com/sckw/remote/filter/TraceIdFilter.java

@@ -1,12 +1,11 @@
 package com.sckw.remote.filter;
 
+import com.sckw.remote.utils.UuidUtils;
 import org.apache.dubbo.common.constants.CommonConstants;
 import org.apache.dubbo.common.extension.Activate;
 import org.apache.dubbo.rpc.*;
 import org.slf4j.MDC;
 
-import java.util.UUID;
-
 /**
  * @desc: dubbo调用全局链路id
  * @author: yzc
@@ -16,12 +15,12 @@ import java.util.UUID;
 public class TraceIdFilter implements Filter {
     @Override
     public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
-        RpcContext rpcContext = RpcContext.getContext();
+        RpcServiceContext rpcContext = RpcContext.getServiceContext();
         String traceId;
         if (rpcContext.isConsumerSide()) {
             traceId = MDC.get("traceId");
             if (traceId == null) {
-                traceId = UUID.randomUUID().toString();
+                traceId = UuidUtils.getUuid();
             }
             rpcContext.setAttachment("traceId", traceId);
         }

+ 15 - 0
sckw-common/sckw-common-remote/src/main/java/com/sckw/remote/utils/UuidUtils.java

@@ -0,0 +1,15 @@
+package com.sckw.remote.utils;
+
+import java.util.UUID;
+
+/**
+ * @desc: 获取uuid
+ * @author: yzc
+ * @date: 2023-08-22 15:21
+ */
+public class UuidUtils {
+
+    public static String getUuid(){
+        return UUID.randomUUID().toString().replace("-", "");
+    }
+}

+ 7 - 0
sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/dubbo/TransportDubboService.java

@@ -4,6 +4,7 @@ import com.sckw.core.web.response.HttpResult;
 import com.sckw.transport.api.model.dto.AccountCheckingBindDTO;
 import com.sckw.transport.api.model.dto.AddressResDTO;
 import com.sckw.transport.api.model.dto.LogisticsOrderDTO;
+import com.sckw.transport.api.model.param.ContractSignLogisticsParam;
 import com.sckw.transport.api.model.param.LogisticsOrderParam;
 import com.sckw.transport.api.model.vo.KwtLogisticsOrderVO;
 
@@ -98,4 +99,10 @@ public interface TransportDubboService {
      * @return   根据data是否为空判断 是否存在未完结订单  空  不存在  不为空  存在
      */
     HttpResult checkLogisticsOrderIsFinishByEntId(Long entId);
+
+    /**
+     * 合同变更,修改物流订单状态【仅仅支持待签约变更为已签约】  0 已签约 1待签约
+     * @param param
+     */
+    void contractSignLogisticsCompleted(ContractSignLogisticsParam param);
 }

+ 35 - 0
sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/model/param/ContractSignLogisticsParam.java

@@ -0,0 +1,35 @@
+package com.sckw.transport.api.model.param;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author lfdc
+ * @description 合同由待签约->已签约-->物流订单
+ * @date 2023-08-24 10:08:59
+ */
+@Data
+public class ContractSignLogisticsParam implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 3050697770661381917L;
+
+    /**
+     * 合同id
+     */
+    private Long contractId;
+
+
+    /**
+     * 更新用户id 需传,订单状态变化记录需要
+     */
+    private Long updateBy;
+
+    /**
+     * 更新用户姓名 需传,订单状态变化记录需要
+     */
+    private String updateByName;
+
+}

+ 6 - 1
sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/model/param/LogisticsOrderParam.java

@@ -2,6 +2,8 @@ package com.sckw.transport.api.model.param;
 
 import lombok.Data;
 
+import java.io.Serial;
+import java.io.Serializable;
 import java.util.Date;
 
 /**
@@ -10,7 +12,10 @@ import java.util.Date;
  * @date 2023-08-09 09:08:10
  */
 @Data
-public class LogisticsOrderParam {
+public class LogisticsOrderParam implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 3050697770661381917L;
     /**
      * 物流订单id
      */

+ 45 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/factory/AsyncFactory.java

@@ -0,0 +1,45 @@
+package com.sckw.contract.factory;
+
+import cn.hutool.core.thread.NamedThreadFactory;
+
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author czh
+ * @desc 异步工厂
+ * @date 2023/6/19
+ */
+public class AsyncFactory {
+
+    private AsyncFactory() {}
+
+    /**
+     * 全局访问点
+     */
+    public static void execute(Runnable runnable) {
+        ThreadPoolExecutorHolder.THREAD_POOL_EXECUTOR.execute(runnable);
+    }
+
+    /**
+     * 静态内部类创建实例(单例)
+     */
+    private static class ThreadPoolExecutorHolder {
+//        static final int CPU = Runtime.getRuntime().availableProcessors();
+        static final int CORE_POOL_SIZE = 10;
+        static final int MAXIMUM_POOL_SIZE = 15;
+        static final long KEEP_ALIVE_TIME = 1L;
+        static final TimeUnit TIME_UNIT = TimeUnit.SECONDS;
+        static final int MAX_QUEUE_NUM = 1024;
+
+        //static变量只会初始化一次
+        public static final ThreadPoolExecutor THREAD_POOL_EXECUTOR = new ThreadPoolExecutor(
+                CORE_POOL_SIZE, MAXIMUM_POOL_SIZE, KEEP_ALIVE_TIME, TIME_UNIT,
+                new LinkedBlockingQueue<>(MAX_QUEUE_NUM),
+                new NamedThreadFactory("ThreadPoolExecutorFactory-", false),
+                new ThreadPoolExecutor.AbortPolicy());
+    }
+
+
+}

+ 33 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/dto/res/ESignSubmitResDto.java

@@ -0,0 +1,33 @@
+package com.sckw.contract.model.dto.res;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author czh
+ * @desc e签宝签约返参
+ * @date 2023/8/25
+ */
+@Data
+public class ESignSubmitResDto implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -8507517503454662329L;
+
+    private Integer code;
+
+    private String msg;
+
+    private Boolean status;
+
+    private ESignSubmitResData data;
+
+    @Data
+    public class ESignSubmitResData {
+
+        private String signFlowId;
+    }
+
+}

+ 6 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/QueryListReqVo.java

@@ -1,7 +1,9 @@
 package com.sckw.contract.model.vo.req;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.sckw.core.model.page.PageRequest;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serial;
 import java.io.Serializable;
@@ -31,11 +33,15 @@ public class QueryListReqVo extends PageRequest implements Serializable {
     /**
      * 创建结束时间
      */
+    @JsonFormat(locale="zh", pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date endTime;
 
     /**
      * 创建开始时间
      */
+    @JsonFormat(locale="zh", pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date startTime;
 
     /**

+ 9 - 4
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/CommonBusinessService.java

@@ -5,12 +5,11 @@ import com.alibaba.fastjson.JSONObject;
 import com.sckw.contract.dao.KwcContractLogisticsMapper;
 import com.sckw.contract.dao.KwcContractTradeMapper;
 import com.sckw.contract.model.dto.req.EsignGetFlowReqDto;
+import com.sckw.contract.model.dto.res.ESignSubmitResDto;
 import com.sckw.contract.model.entity.KwcContractLogistics;
 import com.sckw.contract.model.entity.KwcContractTrade;
-import com.sckw.contract.model.vo.req.ContractLogisticsReqVo;
 import com.sckw.contract.model.vo.req.ESignCallBackReqVo;
 import com.sckw.core.exception.SystemException;
-import com.sckw.core.model.enums.ContractTrackEnum;
 import com.sckw.core.utils.BeanUtils;
 import com.sckw.core.utils.OkHttpUtils;
 import com.sckw.core.web.constant.HttpStatus;
@@ -21,6 +20,7 @@ import com.sckw.system.api.model.dto.res.EntCacheResDto;
 import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -61,6 +61,9 @@ public class CommonBusinessService {
     @Autowired
     private KwcContractTradeTrackService kwcContractTradeTrackService;
 
+    @Value("${eSignUrl}")
+    private String eSignUrl;
+
     /**
      * @return Map
      * @desc: 查企业
@@ -148,8 +151,10 @@ public class CommonBusinessService {
         esignGetFlowReqDto.setOrgSecondName(longListMap.get(orgSeconId).getFirmName());
         esignGetFlowReqDto.setPsnSecondAccount(secondAccount);
         Map<String, Object> map = BeanUtils.convertToMap(esignGetFlowReqDto);
-        String res = OkHttpUtils.doPostUploadFile("http://10.10.10.224:8840/v1/sign/getFlow", map);
+        String res = OkHttpUtils.doPostUploadFile(eSignUrl, map);
         //todo 解析返参,返参有流程id返回,表需要新加字段来存储
+        JSONObject.parseObject(res, ESignSubmitResDto.class);
+
     }
 
     public static File getFileByHttpURL(String newUrl, String fileName) {
@@ -159,7 +164,7 @@ public class CommonBusinessService {
         InputStream inputStream = null;
         OutputStream outputStream = null;
         try {
-            file = File.createTempFile("", fileName);
+            file = File.createTempFile("1", fileName);
             URL urlFile = new URL(newUrl);
             inputStream = urlFile.openStream();
             outputStream = new FileOutputStream(file);

+ 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
+

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

@@ -6,6 +6,7 @@ spring:
     name: sckw-contract
   profiles:
     active:  @profiles.active@
+#    active:  dev
   main:
     allow-bean-definition-overriding: true
     allow-circular-references: true

+ 4 - 2
sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractLogisticsMapper.xml

@@ -76,7 +76,7 @@
           left join kwc_contract_logistics_track d on a.id = d.contract_id and d.del_flag = 0 and d.type = 0
           left join kwc_contract_logistics_unit e on a.id = e.contract_id and e.unit_type != #{entType} and e.del_flag = 0
         where a.del_flag = 0
-          and case when a.status = 3 then a.ent_id = #{entId} and #{entType} = 1
+          and case when a.status = 3 then a.ent_id = #{entId} and #{entType} = 3
                 else (b.ent_id in
                     <foreach collection="allEnt" separator="," open="(" close=")" item="item">
                         #{item}
@@ -97,7 +97,9 @@
                    e.firm_name like concat('%', #{keywords}, '%') or
                    b.contacts like concat('%', #{keywords}, '%') or
                    b.phone like concat('%', #{keywords}, '%') or
-                   b.sign_phone like concat('%', #{keywords}, '%'))
+                   b.sign_phone like concat('%', #{keywords}, '%') or
+                   a.contract_no like concat('%', #{keywords}, '%') or
+                   a.name like concat('%', #{keywords}, '%'))
           </if>
           <if test="idList != null and idList.size() > 0">
               and a.id in

+ 2 - 1
sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractTradeMapper.xml

@@ -95,8 +95,9 @@
                  e.firm_name like concat('%', #{keywords}, '%') or
                  b.contacts like concat('%', #{keywords}, '%') or
                  b.phone like concat('%', #{keywords}, '%') or
+                 b.sign_phone like concat('%', #{keywords}, '%') or
                  a.contract_no like concat('%', #{keywords}, '%') or
-                 b.sign_phone like concat('%', #{keywords}, '%'))
+                 a.name like concat('%', #{keywords}, '%'))
         </if>
         <if test="idList != null and idList.size() > 0">
             and a.id in

+ 2 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dubbo/RemoteFleetServiceImpl.java

@@ -91,7 +91,8 @@ public class RemoteFleetServiceImpl implements RemoteFleetService {
         }
         KwfDriver driver = drivers.get(0);
         RDriverDetailVo driverDetail = new RDriverDetailVo();
-        BeanUtils.copyPropertiesValue(driver, driverDetail);
+        //BeanUtils.copyPropertiesValue(driver, driverDetail);
+        BeanUtils.copyProperties(driver, driverDetail);
         return driverDetail;
     }
 

+ 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;
 }

+ 4 - 4
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/vo/KwfTruckDetailVo.java

@@ -30,17 +30,17 @@ public class KwfTruckDetailVo implements Serializable {
     /**
      * 车辆类型(牵引车、自卸、高栏、平板、厢式、集装箱车、罐车、封闭式、专项作业车、其他)
      */
-    private Integer type;
+    private String type;
 
     /**
      * 能源类型(柴油、汽油、电动、氢能、天然气、液化石油气、甲醇、油电混动、油气混动、其他)
      */
-    private Integer energyType;
+    private String energyType;
 
     /**
      * 使用性质(营运车、租赁车辆、货运车、危化品运输车、非营运车、其他)
      */
-    private Integer useType;
+    private String useType;
 
     /**
      * 外廓尺寸
@@ -65,7 +65,7 @@ public class KwfTruckDetailVo implements Serializable {
     /**
      * 车辆颜色
      */
-    private Integer color;
+    private String color;
 
     /**
      * 环保等级(国标)

+ 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("密码修改失败!");

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

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

+ 2 - 2
sckw-modules/sckw-fleet/src/main/resources/mapper/KwfTruckReportMapper.xml

@@ -8,7 +8,7 @@
         from kwf_truck_report trr
         left join kwf_truck tr on tr.id = trr.truck_id
         left join kwf_driver dr on dr.id = trr.driver_id
-        left join kwf_fleet_truck flt on flt.truck_id = tr.id and flt.del_flag = 0
+        left join kwf_fleet_truck flt on flt.truck_id = tr.id and flt.ent_id = trr.ent_id and flt.del_flag = 0
         left join kwf_fleet fl on fl.id = flt.fleet_id and fl.ent_id = trr.ent_id and fl.del_flag = 0
         where trr.del_flag = 0 and tr.del_flag = 0 and dr.del_flag = 0
         <if test="entId != null and entId != ''">
@@ -56,7 +56,7 @@
         from kwf_truck_report trr
         left join kwf_truck tr on tr.id = trr.truck_id
         left join kwf_driver dr on dr.id = trr.driver_id
-        left join kwf_fleet_truck flt on flt.truck_id = tr.id and flt.del_flag = 0
+        left join kwf_fleet_truck flt on flt.truck_id = tr.id and flt.ent_id = trr.ent_id and flt.del_flag = 0
         left join kwf_fleet fl on fl.id = flt.fleet_id and fl.ent_id = trr.ent_id and fl.del_flag = 0
         where trr.del_flag = 0 and tr.del_flag = 0 and dr.del_flag = 0
         <if test="entId != null and entId != ''">

+ 3 - 0
sckw-modules/sckw-manage/pom.xml

@@ -71,14 +71,17 @@
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-order-api</artifactId>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-transport-api</artifactId>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-payment-api</artifactId>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>com.sckw</groupId>

+ 5 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/dto/res/CooperateManageQueryResDto.java

@@ -87,6 +87,11 @@ public class CooperateManageQueryResDto {
      */
     private Long targetEntId;
 
+    /**
+     * 我方企业id
+     */
+    private Long ourEntId;
+
     /**
      * 申请类型 1 我放发起  2对方发起
      */

+ 6 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/AddressQueryReqVo.java

@@ -1,8 +1,10 @@
 package com.sckw.manage.model.vo.req;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.sckw.core.model.page.PageRequest;
 import jakarta.validation.constraints.NotNull;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serial;
 import java.io.Serializable;
@@ -33,11 +35,15 @@ public class AddressQueryReqVo extends PageRequest implements Serializable {
     /**
      * 创建开始时间(时间戳)
      */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date startTime;
 
     /**
      * 创建结束时间(时间戳)
      */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date endTime;
 
     /**

+ 7 - 1
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/InitiateReqVo.java

@@ -30,11 +30,17 @@ public class InitiateReqVo implements Serializable {
     @NotBlank(message = "合作属性不能为空")
     private String chooseCooperateTypes;
 
+    /**
+     * 我方单位id
+     */
+    @NotNull(message = "我方单位不能为空")
+    private Long entId;
+
     /**
      * 合作单位id
      */
     @NotNull(message = "合作单位不能为空")
-    private Long entId;
+    private Long targetEntId;
 
     /**
      * 备注

+ 6 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/res/AddressQueryResVo.java

@@ -115,4 +115,10 @@ public class AddressQueryResVo implements Serializable {
      * 默认类型
      */
     private String defaultTypeName;
+
+    /**
+     * 默认类型code
+     */
+    private Integer defaultType;
+
 }

+ 12 - 3
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/res/CooperateManageQueryResVo.java

@@ -45,13 +45,22 @@ public class CooperateManageQueryResVo implements Serializable {
     private Date createTime;
 
     /**
-     * 单位Id
+     * 对方单位Id
+     */
+    private Long targetEntId;
+
+    /**
+     * 对方单位名称
+     */
+    private String targetEntName;
+
+    /**
+     * 我方单位Id
      */
-    @JsonSerialize(using = LongToStringUtils.class)
     private Long entId;
 
     /**
-     * 单位名称
+     * 我方单位名称
      */
     private String entName;
 

+ 11 - 6
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/CommonBusinessService.java

@@ -12,7 +12,6 @@ import com.sckw.manage.dao.KwmCooperateMapper;
 import com.sckw.manage.model.dto.req.CooperateManageQueryReqDto;
 import com.sckw.manage.model.dto.res.CooperateManageQueryResDto;
 import com.sckw.manage.model.entity.KwmCooperate;
-import com.sckw.manage.model.vo.req.BindManagerReqVo;
 import com.sckw.manage.model.vo.res.CooperateManageQueryResVo;
 import com.sckw.manage.model.vo.res.FindListGroupResVo;
 import com.sckw.system.api.RemoteSystemService;
@@ -21,7 +20,6 @@ import com.sckw.system.api.model.dto.res.EntCacheResDto;
 import com.sckw.system.api.model.dto.res.SysDictResDto;
 import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import org.apache.dubbo.config.annotation.DubboReference;
-import org.jetbrains.annotations.NotNull;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -161,9 +159,13 @@ public class CommonBusinessService {
         //dubbo接口查用户和企业
         Long entId = LoginUserHolder.getEntId();
         List<Long> userIds = list.stream().map(CooperateManageQueryResDto::getCreateBy).distinct().toList();
+        List<Long> allEntIds = new ArrayList<>();
         List<Long> targetEntIds = list.stream().map(CooperateManageQueryResDto::getTargetEntId).distinct().toList();
+        List<Long> ourEntIds = list.stream().map(CooperateManageQueryResDto::getOurEntId).distinct().toList();
+        allEntIds.addAll(targetEntIds);
+        allEntIds.addAll(ourEntIds);
         List<UserCacheResDto> userCacheResDtos = remoteSystemService.queryUserCacheByIds(userIds);
-        List<EntCacheResDto> entCacheResDtos = remoteSystemService.queryEntCacheByIds(targetEntIds);
+        List<EntCacheResDto> entCacheResDtos = remoteSystemService.queryEntCacheByIds(allEntIds);
         Map<Long, String> userMap = new HashMap<>();
         Map<Long, String> entMap = new HashMap<>();
         if (!CollectionUtils.isEmpty(userCacheResDtos)) {
@@ -192,12 +194,15 @@ public class CommonBusinessService {
             cooperateManageQueryResVo.setStatus(cooperateManageQueryResDto.getStatus());
             cooperateManageQueryResVo.setApplyTypeCode(cooperateManageQueryResDto.getApplyTypeCode());
             cooperateManageQueryResVo.setCreateByName(userMap.get(cooperateManageQueryResDto.getCreateBy()));
-            cooperateManageQueryResVo.setEntName(targetEntName);
-            cooperateManageQueryResVo.setEntId(targetEntId);
+            cooperateManageQueryResVo.setCreateTime(cooperateManageQueryResDto.getCreateTime());
+            cooperateManageQueryResVo.setTargetEntName(targetEntName);
+            cooperateManageQueryResVo.setTargetEntId(targetEntId);
+            cooperateManageQueryResVo.setEntId(cooperateManageQueryResDto.getOurEntId());
+            cooperateManageQueryResVo.setEntName(entMap.get(cooperateManageQueryResDto.getOurEntId()));
             cooperateManageQueryResVo.setApprovalRemark(cooperateManageQueryResDto.getApprovalRemark());
 
             //我方是发起方
-            if (entId.compareTo(cooperateManageQueryResDto.getInviterEntId()) == 0) {
+            if (entId.compareTo(cooperateManageQueryResDto.getEntId()) == 0) {
                 cooperateManageQueryResVo.setContacts(cooperateManageQueryResDto.getInviteeContacts());
                 cooperateManageQueryResVo.setPhone(cooperateManageQueryResDto.getInviteePhone());
                 cooperateManageQueryResVo.setContactsId(cooperateManageQueryResDto.getInviteeContactsId());

+ 1 - 1
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmAddressService.java

@@ -89,7 +89,7 @@ public class KwmAddressService {
                 eq(KwmAddress::getDelFlag, Global.NO).
                 and(StringUtils.isNotBlank(reqVo.getKeywords()),
                         wq -> wq.like(KwmAddress::getDetailAddress, reqVo.getKeywords()).or().
-                                like(KwmAddress::getCityName, reqVo.getKeywords())).
+                                like(KwmAddress::getName, reqVo.getKeywords())).
                 orderByDesc(KwmAddress::getUpdateTime);
 
         if (Objects.nonNull(reqVo.getStartTime())) {

+ 15 - 9
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateApplyService.java

@@ -95,9 +95,13 @@ public class KwmCooperateApplyService {
         //dubbo接口查用户和企业
         Long entId = LoginUserHolder.getEntId();
         List<Long> userIds = list.stream().map(CooperateManageQueryResDto::getCreateBy).distinct().toList();
+        List<Long> allEntIds = new ArrayList<>();
         List<Long> targetEntIds = list.stream().map(CooperateManageQueryResDto::getTargetEntId).distinct().toList();
+        List<Long> ourEntIds = list.stream().map(CooperateManageQueryResDto::getOurEntId).distinct().toList();
+        allEntIds.addAll(ourEntIds);
+        allEntIds.addAll(targetEntIds);
         List<UserCacheResDto> userCacheResDtos = remoteSystemService.queryUserCacheByIds(userIds);
-        List<EntCacheResDto> entCacheResDtos = remoteSystemService.queryEntCacheByIds(targetEntIds);
+        List<EntCacheResDto> entCacheResDtos = remoteSystemService.queryEntCacheByIds(allEntIds);
         Map<Long, String> userMap = new HashMap<>();
         Map<Long, String> entMap = new HashMap<>();
         if (!CollectionUtils.isEmpty(userCacheResDtos)) {
@@ -126,12 +130,14 @@ public class KwmCooperateApplyService {
             cooperateManageQueryResVo.setStatus(cooperateManageQueryResDto.getStatus());
             cooperateManageQueryResVo.setApplyTypeCode(cooperateManageQueryResDto.getApplyTypeCode());
             cooperateManageQueryResVo.setCreateByName(userMap.get(cooperateManageQueryResDto.getCreateBy()));
-            cooperateManageQueryResVo.setEntName(targetEntName);
-            cooperateManageQueryResVo.setEntId(targetEntId);
+            cooperateManageQueryResVo.setTargetEntName(targetEntName);
+            cooperateManageQueryResVo.setTargetEntId(targetEntId);
+            cooperateManageQueryResVo.setEntId(cooperateManageQueryResDto.getOurEntId());
+            cooperateManageQueryResVo.setEntName(entMap.get(cooperateManageQueryResDto.getOurEntId()));
             cooperateManageQueryResVo.setApprovalRemark(cooperateManageQueryResDto.getApprovalRemark());
 
             //我方是发起方
-            if (entId.compareTo(cooperateManageQueryResDto.getInviterEntId()) == 0) {
+            if (entId.compareTo(cooperateManageQueryResDto.getEntId()) == 0) {
                 cooperateManageQueryResVo.setContacts(cooperateManageQueryResDto.getInviteeContacts());
                 cooperateManageQueryResVo.setPhone(cooperateManageQueryResDto.getInviteePhone());
                 cooperateManageQueryResVo.setContactsId(cooperateManageQueryResDto.getInviteeContactsId());
@@ -215,11 +221,11 @@ public class KwmCooperateApplyService {
      */
     @Transactional(rollbackFor = {})
     public void initiate(InitiateReqVo reqVo) {
-        Long currentEntId = LoginUserHolder.getEntId();
+        Long currentEntId = reqVo.getEntId();
         List<Integer> chooseCooperateTypes = Arrays.stream(reqVo.getChooseCooperateTypes().split(Global.COMMA)).map(Integer::parseInt).toList();
 
         //查是否有在合作中、审核中的记录
-        List<CooperateQueryDto> cooperateQueryDtoList = queryValidCooperate(reqVo.getEntId(), currentEntId);
+        List<CooperateQueryDto> cooperateQueryDtoList = queryValidCooperate(reqVo.getTargetEntId(), currentEntId);
         if (!CollectionUtils.isEmpty(cooperateQueryDtoList)) {
             //有待审核的记录不允许新增申请
             for (CooperateQueryDto cooperateQueryDto : cooperateQueryDtoList) {
@@ -272,9 +278,9 @@ public class KwmCooperateApplyService {
         if (Objects.isNull(reqVo.getId())) {
             KwmCooperate kwmCooperate = new KwmCooperate();
             id = new IdWorker(1L).nextId();
-            kwmCooperate.setEntId(currentEntId);
+            kwmCooperate.setEntId(LoginUserHolder.getEntId());
             kwmCooperate.setInviterEntId(currentEntId);
-            kwmCooperate.setInviteeEntId(reqVo.getEntId());
+            kwmCooperate.setInviteeEntId(reqVo.getTargetEntId());
 
             //我方联系人
             UserCacheResDto contactDto = remoteSystemService.queryUserCacheById(reqVo.getUserId());
@@ -285,7 +291,7 @@ public class KwmCooperateApplyService {
             }
 
             //对方联系人
-            UserCacheResDto userCacheResDto = remoteSystemService.queryManagerInfoByEntId(reqVo.getEntId());
+            UserCacheResDto userCacheResDto = remoteSystemService.queryManagerInfoByEntId(reqVo.getTargetEntId());
             if (Objects.nonNull(userCacheResDto)) {
                 kwmCooperate.setInviteeContactsId(userCacheResDto.getId());
                 kwmCooperate.setInviteeContacts(contactDto.getName());

+ 1 - 1
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateManageService.java

@@ -350,7 +350,7 @@ public class KwmCooperateManageService {
         List<KwmCooperateType> kwmCooperateTypeList = new ArrayList<>();
         for (KwmCooperate kwmCooperate : kwmCooperates) {
             Integer type = reqVo.getCooperateType();
-            if (!kwmCooperate.getEntId().equals(reqVo.getId())) {
+            if (kwmCooperate.getInviteeEntId().equals(reqVo.getId())) {
                 type = commonBusinessService.changeCooperateType(type);
             }
             LambdaQueryWrapper<KwmCooperateType> kwmCooperateTypeLambdaQueryWrapper = new LambdaQueryWrapper<>();

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

@@ -3,7 +3,7 @@ server:
 
 spring:
   application:
-    name: sckw-system
+    name: sckw-manage
   profiles:
     active: @profiles.active@
   main:

+ 2 - 0
sckw-modules/sckw-manage/src/main/resources/mapper/KwmCooperateMapper.xml

@@ -49,6 +49,7 @@
                min(a.remark) remark,
                min(a.approval_remark) approvalRemark,
                case when min(a.ent_id) = #{reqDto.currentEntId} then min(a.invitee_ent_id) else min(a.inviter_ent_id) end targetEntId,
+               case when min(a.ent_id) = #{reqDto.currentEntId} then min(a.inviter_ent_id) else min(a.invitee_ent_id) end ourEntId,
                case when min(a.ent_id) = #{reqDto.currentEntId} then 1 else 2 end applyTypeCode
           FROM kwm_cooperate a
           LEFT JOIN kwm_cooperate_type b ON a.id = b.cooperate_id
@@ -147,6 +148,7 @@
                 min(a.remark) remark,
                 min(a.approval_remark) approvalRemark,
                 case when min(a.ent_id) = #{reqDto.currentEntId} then min(a.invitee_ent_id) else min(a.inviter_ent_id) end targetEntId,
+                case when min(a.ent_id) = #{reqDto.currentEntId} then min(a.inviter_ent_id) else min(a.invitee_ent_id) end ourEntId,
                 case when min(a.ent_id) = #{reqDto.currentEntId} then 1 else 2 end applyTypeCode
         FROM kwm_cooperate a
         LEFT JOIN kwm_cooperate_type b ON a.id = b.cooperate_id and b.status = 1 and b.del_flag = 0

+ 5 - 4
sckw-modules/sckw-order/src/main/java/com/sckw/order/controller/KwoTransportDemandController.java

@@ -129,10 +129,11 @@ public class KwoTransportDemandController {
      * @Param id:
      * @return: com.sckw.core.web.response.HttpResult
      */
-    @GetMapping("/putOnShelves")
-    public HttpResult putOnShelves(@RequestParam Long id) {
-        kwoTransportDemandService.putOnShelves(id);
-        return HttpResult.ok("上架成功");
+    @GetMapping("/batchPutOnShelves")
+    public HttpResult batchPutOnShelves(@RequestParam String ids) {
+        List<Long> list = StringUtils.splitStrToList(ids, ",", Long.class);
+        kwoTransportDemandService.batchPutOnShelves(list);
+        return HttpResult.ok("批量上架成功");
     }
 
     /**

+ 7 - 5
sckw-modules/sckw-order/src/main/java/com/sckw/order/controller/KwpWantBuyController.java

@@ -2,6 +2,7 @@ package com.sckw.order.controller;
 
 import com.sckw.core.exception.BusinessException;
 import com.sckw.core.utils.CollectionUtils;
+import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.order.model.dto.WantBuyExport;
@@ -55,7 +56,7 @@ public class KwpWantBuyController {
      * @return: com.sckw.core.web.response.HttpResult
      */
     @PostMapping(value = "/addDraft", produces = MediaType.APPLICATION_JSON_VALUE)
-    public HttpResult addDraft(@RequestBody AddDraftWantBuyParam addDraftWantBuyParam) {
+    public HttpResult addDraft(@RequestBody @Validated AddDraftWantBuyParam addDraftWantBuyParam) {
         kwpWantBuyService.addDraft(addDraftWantBuyParam);
         return HttpResult.ok("新增求购草稿成功");
     }
@@ -78,10 +79,11 @@ public class KwpWantBuyController {
      * @Author: lt
      * @Date: 13:39 2023/7/25 0025
      **/
-    @GetMapping(value = "/putOnShelves", produces = MediaType.APPLICATION_JSON_VALUE)
-    public HttpResult putOnShelves(@RequestParam Long id) {
-        kwpWantBuyService.putOnShelves(id);
-        return HttpResult.ok("求购上架成功");
+    @GetMapping(value = "/batchPutOnShelves", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult batchPutOnShelves(@RequestParam String ids) {
+        List<Long> list = StringUtils.splitStrToList(ids, Long.class);
+        kwpWantBuyService.batchPutOnShelves(list);
+        return HttpResult.ok("批量求购上架成功");
     }
 
     /**

+ 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;
 

+ 6 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/AddDraftWantBuyParam.java

@@ -1,6 +1,7 @@
 package com.sckw.order.model.vo.req;
 
 import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.Pattern;
 import lombok.Getter;
 import lombok.Setter;
@@ -22,6 +23,7 @@ public class AddDraftWantBuyParam {
     /**
      * 商品名称
      */
+    @NotBlank(message = "商品名称不能为空")
     @Length(max = 50, message = "商品名称最多支持50字")
     private String name;
 
@@ -45,24 +47,28 @@ public class AddDraftWantBuyParam {
     /**
      * 求购单价
      */
+    @NotBlank(message = "求购单价不能为空")
     @Length(max = 20, message = "求购单价最多支持20字")
     private String price;
 
     /**
      * 求购总量
      */
+    @NotBlank(message = "求购总量不能为空")
     @Length(max = 20, message = "求购总量最多支持20字")
     private String amount;
 
     /**
      * 联系人姓名
      */
+    @NotBlank(message = "联系人姓名不能为空")
     @Length(max = 32, message = "联系人姓名最多支持32字")
     private String contacts;
 
     /**
      * 联系电话
      */
+    @NotBlank(message = "联系电话不能为空")
     @Pattern(regexp = "^1[3456789]\\d{9}$", message = "非法手机号格式")
     private String phone;
 

+ 11 - 2
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/AddTransportDemandDraftParam.java

@@ -1,6 +1,8 @@
 package com.sckw.order.model.vo.req;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import jakarta.validation.constraints.Pattern;
 import lombok.Getter;
 import lombok.Setter;
@@ -23,6 +25,7 @@ public class AddTransportDemandDraftParam {
      * 商品名称
      */
     @Length(max = 50, message = "商品名称最多支持50字")
+    @NotBlank(message = "商品名称不能为空")
     private String name;
 
     /**
@@ -45,12 +48,14 @@ public class AddTransportDemandDraftParam {
      * 运需单价
      */
     @Length(max = 20, message = "运需单价最多支持20字")
+    @NotBlank(message = "运需单价不能为空")
     private String price;
 
     /**
      * 运输总量
      */
     @Length(max = 20, message = "运输总量最多支持20字")
+    @NotBlank(message = "运输总量不能为空")
     private String amount;
 
     /**
@@ -62,44 +67,48 @@ public class AddTransportDemandDraftParam {
     /**
      * 联系人姓名
      */
+    @NotBlank(message = "联系人姓名不能为空")
     private String contacts;
 
     /**
      * 联系电话
      */
     @Pattern(regexp = "^1[3456789]\\d{9}$", message = "非法手机号格式")
+    @NotBlank(message = "联系人电话不能为空")
     private String phone;
 
     /**
      * 装货区域code
      */
+    @NotNull(message = "装货区域code不能为空")
     private Integer loadAreaCode;
 
     /**
      * 装货区域名称
      */
+    @NotBlank(message = "装货区域名称不能为空")
     private String loadAreaName;
 
     /**
      * 装货详细地址
      */
-    @Length(max = 255, message = "装货详细地址最多支持255字")
     private String loadDetailAddress;
 
     /**
      * 卸货区域code
      */
+    @NotNull(message = "卸货区域code不能为空")
     private Integer unloadAreaCode;
 
     /**
      * 卸货区域名称
      */
+    @NotBlank(message = "卸货区域名称不能为空")
     private String unloadAreaName;
 
     /**
      * 卸货详细地址
      */
-    @Length(max = 255, message = "卸货详细地址最多支持255字")
     private String unloadDetailAddress;
 
     /**

+ 0 - 2
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/AddTransportDemandParam.java

@@ -91,7 +91,6 @@ public class AddTransportDemandParam {
     /**
      * 装货详细地址
      */
-    @Length(max = 255, message = "装货详细地址最多支持255字")
     private String loadDetailAddress;
 
     /**
@@ -109,7 +108,6 @@ public class AddTransportDemandParam {
     /**
      * 卸货详细地址
      */
-    @Length(max = 255, message = "卸货详细地址最多支持255字")
     private String unloadDetailAddress;
 
     /**

+ 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");
+    }
     /**
      * 商品信息
      */

+ 10 - 3
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/UpdateTransportDemandParam.java

@@ -1,6 +1,7 @@
 package com.sckw.order.model.vo.req;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import jakarta.validation.constraints.Pattern;
 import lombok.Getter;
@@ -27,6 +28,7 @@ public class UpdateTransportDemandParam {
      * 商品名称
      */
     @Length(max = 50, message = "商品名称最多支持50字")
+    @NotBlank(message = "商品名称不能为空")
     private String name;
 
     /**
@@ -49,12 +51,14 @@ public class UpdateTransportDemandParam {
      * 运需单价
      */
     @Length(max = 20, message = "运需单价最多支持20字")
+    @NotBlank(message = "运需单价不能为空")
     private String price;
 
     /**
      * 运输总量
      */
     @Length(max = 20, message = "运输总量最多支持20字")
+    @NotBlank(message = "运输总量不能为空")
     private String amount;
 
     /**
@@ -66,44 +70,48 @@ public class UpdateTransportDemandParam {
     /**
      * 联系人姓名
      */
+    @NotBlank(message = "联系人姓名不能为空")
     private String contacts;
 
     /**
      * 联系电话
      */
     @Pattern(regexp = "^1[3456789]\\d{9}$", message = "非法手机号格式")
+    @NotBlank(message = "联系人电话不能为空")
     private String phone;
 
     /**
      * 装货区域code
      */
+    @NotNull(message = "装货区域code不能为空")
     private Integer loadAreaCode;
 
     /**
      * 装货区域名称
      */
+    @NotBlank(message = "装货区域名称不能为空")
     private String loadAreaName;
 
     /**
      * 装货详细地址
      */
-    @Length(max = 255, message = "装货详细地址最多支持255字")
     private String loadDetailAddress;
 
     /**
      * 卸货区域code
      */
+    @NotNull(message = "卸货区域code不能为空")
     private Integer unloadAreaCode;
 
     /**
      * 卸货区域名称
      */
+    @NotBlank(message = "卸货区域名称不能为空")
     private String unloadAreaName;
 
     /**
      * 卸货详细地址
      */
-    @Length(max = 255, message = "卸货详细地址最多支持255字")
     private String unloadDetailAddress;
 
     /**
@@ -111,5 +119,4 @@ public class UpdateTransportDemandParam {
      */
     @Length(max = 200, message = "备注最多支持200字")
     private String remark;
-
 }

+ 6 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/UpdateWantBuyParam.java

@@ -1,6 +1,7 @@
 package com.sckw.order.model.vo.req;
 
 import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import jakarta.validation.constraints.Pattern;
 import lombok.Getter;
@@ -29,6 +30,7 @@ public class UpdateWantBuyParam {
     /**
      * 商品名称
      */
+    @NotBlank(message = "商品名称不能为空")
     @Length(max = 50, message = "商品名称最多支持50字")
     private String name;
 
@@ -52,24 +54,28 @@ public class UpdateWantBuyParam {
     /**
      * 求购单价
      */
+    @NotBlank(message = "求购单价不能为空")
     @Length(max = 20, message = "求购单价最多支持20字")
     private String price;
 
     /**
      * 求购总量
      */
+    @NotBlank(message = "求购总量不能为空")
     @Length(max = 20, message = "求购总量最多支持20字")
     private String amount;
 
     /**
      * 联系人姓名
      */
+    @NotBlank(message = "联系人姓名不能为空")
     @Length(max = 32, message = "联系人姓名最多支持32字")
     private String contacts;
 
     /**
      * 联系电话
      */
+    @NotBlank(message = "联系电话不能为空")
     @Pattern(regexp = "^1[3456789]\\d{9}$", message = "非法手机号格式")
     private String phone;
 

+ 1 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/OrderProcess.java

@@ -36,6 +36,6 @@ public class OrderProcess implements Serializable {
     private String roleName;
 
     @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Date createdTime;
+    private Date createTime;
 
 }

+ 40 - 8
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);
@@ -369,10 +371,13 @@ public class KwoTradeOrderService {
         orderCheck.setGoodsId(param.getGoodsInfo().getGoodsId()).setUnitPrice(param.getGoodsInfo().getUnitPrice())
                 .setOrderSource(DictEnum.TORDER_SOURCE_2.getValue());
         orderCheck(orderCheck, false);
+        ContractInfo contract = param.getContractInfo();
+        contractCheck(contract);
+        param.setContractInfo(contract);
         KwoTradeOrder order = BeanUtils.copyProperties(param, KwoTradeOrder.class);
         order.setEntId(LoginUserHolder.getEntId()).setTOrderNo(OrderGenerateUtils.generateOrderNo(ORDER_NO_PREFIX))
                 .setUnit(param.getGoodsInfo().getUnit()).setSource(DictEnum.TORDER_SOURCE_2.getValue());
-        String contractStatus = param.getContractInfo().getContractStatus();
+        String contractStatus = contract.getContractStatus();
         if (Objects.equals(contractStatus, DictEnum.CONTRACT_STATUS_0.getValue())) {
             order.setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_3.getValue()));
         } else if (Objects.equals(contractStatus, DictEnum.CONTRACT_STATUS_1.getValue())) {
@@ -389,6 +394,29 @@ public class KwoTradeOrderService {
         addOtherOrderInfo(order, BeanUtils.copyProperties(param, ValetOrderParam.class), false);
     }
 
+    /**
+     * @desc: 合同校验
+     * @author: yzc
+     * @date: 2023-08-24 10:54
+     * @Param contract:
+     * @return: void
+     */
+    private void contractCheck(ContractInfo contract) {
+        Map<Long, ContractCommonInfoResDto> map = remoteContractService.queryContractBaseInfo(List.of(contract.getContractId()));
+        ContractCommonInfoResDto contractInfo = map.get(contract.getContractId());
+        if (Objects.isNull(contractInfo)) {
+            throw new BusinessException("不存在该合同信息!");
+        }
+        Integer status = contractInfo.getStatus();
+        if (!Objects.equals(0, status) && !Objects.equals(1, status)) {
+            throw new BusinessException("合同状态异常!");
+        }
+        contract.setContractName(contract.getContractName());
+        contract.setContractNo(contractInfo.getContractCode());
+        contract.setContractSigningWay(contractInfo.getSigningWayName());
+        contract.setContractStatus(String.valueOf(status));
+    }
+
     /**
      * @desc: 获取订单详情
      * @author: yzc
@@ -527,7 +555,10 @@ public class KwoTradeOrderService {
             if (Objects.equals(source, DictEnum.TORDER_SOURCE_1.getValue())) {
                 order.setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_1.getValue()));
             } else {
-                String contractStatus = param.getContractInfo().getContractStatus();
+                ContractInfo contract = param.getContractInfo();
+                contractCheck(contract);
+                param.setContractInfo(contract);
+                String contractStatus = contract.getContractStatus();
                 if (Objects.equals(contractStatus, DictEnum.CONTRACT_STATUS_0.getValue())) {
                     order.setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_3.getValue()));
                 } else if (Objects.equals(contractStatus, DictEnum.CONTRACT_STATUS_1.getValue())) {
@@ -716,7 +747,9 @@ public class KwoTradeOrderService {
         orderCheck(orderCheck, true);
         //更新订单信息
         BeanUtils.copyProperties(param, order);
-        String contractStatus = param.getContractInfo().getContractStatus();
+        ContractInfo contractInfo = param.getContractInfo();
+        contractCheck(contractInfo);
+        String contractStatus = contractInfo.getContractStatus();
         if (Objects.equals(contractStatus, DictEnum.CONTRACT_STATUS_0.getValue())) {
             order.setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_3.getValue()));
         } else if (Objects.equals(contractStatus, DictEnum.CONTRACT_STATUS_1.getValue())) {
@@ -726,10 +759,9 @@ public class KwoTradeOrderService {
         }
         kwoTradeOrderMapper.updateById(order);
         //保存合同信息
-        ContractInfo contractInfo = param.getContractInfo();
-        KwoTradeOrderContract contract = BeanUtils.copyProperties(contractInfo, KwoTradeOrderContract.class);
-        contract.setTOrderId(order.getId()).setTOrderNo(order.getTOrderNo());
-        kwoTradeOrderContractService.insert(contract);
+        KwoTradeOrderContract tradeOrderContract = BeanUtils.copyProperties(contractInfo, KwoTradeOrderContract.class);
+        tradeOrderContract.setTOrderId(order.getId()).setTOrderNo(order.getTOrderNo());
+        kwoTradeOrderContractService.insert(tradeOrderContract);
         //订单状态记录
         KwoTradeOrderTrack track = new KwoTradeOrderTrack();
         track.setTOrderId(order.getId()).setTOrderNo(order.getTOrderNo()).setStatus(order.getStatus());

+ 19 - 24
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTransportDemandService.java

@@ -107,7 +107,8 @@ public class KwoTransportDemandService {
      */
     private KwoTransportDemand getById(Long id) {
         LambdaQueryWrapper<KwoTransportDemand> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(KwoTransportDemand::getId, id).eq(KwoTransportDemand::getDelFlag, Global.NO).last("LIMIT 1");
+        wrapper.eq(KwoTransportDemand::getId, id).eq(KwoTransportDemand::getEntId,LoginUserHolder.getEntId())
+                .eq(KwoTransportDemand::getDelFlag, Global.NO).last("LIMIT 1");
         return kwoTransportDemandMapper.selectOne(wrapper);
     }
 
@@ -123,12 +124,6 @@ public class KwoTransportDemandService {
         if (Objects.isNull(demand)) {
             throw new BusinessException("数据不存在!");
         }
-        if (!Objects.equals(demand.getEntId(), LoginUserHolder.getEntId())) {
-            throw new BusinessException("无操作权限!");
-        }
-        if (!Objects.equals(String.valueOf(demand.getStatus()), DictEnum.TRANSPORT_DEMAND_STATUS_0.getValue())) {
-            checkParams(param);
-        }
         BeanUtils.copyProperties(param, demand);
         kwoTransportDemandMapper.updateById(demand);
     }
@@ -188,11 +183,15 @@ public class KwoTransportDemandService {
         List<TransportDemandListRes> result = Lists.newArrayList();
         list.forEach(e -> {
             TransportDemandListRes demand = BeanUtils.copyProperties(e, TransportDemandListRes.class);
+            String loadAreaName = Objects.nonNull(e.getLoadAreaName()) ? e.getLoadAreaName() : "";
+            String loadDetailAddress = Objects.nonNull(e.getLoadDetailAddress()) ? e.getLoadDetailAddress() : "";
+            String unloadAreaName = Objects.nonNull(e.getUnloadAreaName()) ? e.getUnloadAreaName() : "";
+            String unloadDetailAddress = Objects.nonNull(e.getUnloadDetailAddress()) ? e.getUnloadDetailAddress() : "";
             demand.setGoodsTypeLabel(DictEnum.getLabel(DictTypeEnum.PRODUCT_NAME_TYPE.getType(), e.getGoodsType()))
                     .setTradingLabel(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), e.getTrading()))
                     .setStatusLabel(DictEnum.getLabel(DictTypeEnum.TRANSPORT_DEMAND_STATUS.getType(), String.valueOf(e.getStatus())))
-                    .setLoadAddress(e.getLoadAreaName() + e.getLoadDetailAddress())
-                    .setUnloadAddress(e.getUnloadAreaName() + e.getUnloadDetailAddress());
+                    .setLoadAddress(loadAreaName + loadDetailAddress)
+                    .setUnloadAddress(unloadAreaName + unloadDetailAddress);
             result.add(demand);
         });
         return PageResult.build(param.getPage(), param.getPageSize(), demandPage.getTotal(), result);
@@ -309,23 +308,19 @@ public class KwoTransportDemandService {
      * @Param id:
      * @return: void
      */
-    public void putOnShelves(Long id) {
-        KwoTransportDemand demand = getById(id);
-        if (Objects.isNull(demand)) {
-            throw new BusinessException("数据不存在!");
-        }
-        if (!Objects.equals(demand.getEntId(), LoginUserHolder.getEntId())) {
-            throw new BusinessException("无操作权限!");
-        }
-        if (Objects.equals(String.valueOf(demand.getStatus()), DictEnum.TRANSPORT_DEMAND_STATUS_1.getValue())) {
+    public void batchPutOnShelves(List<Long> ids) {
+        LambdaQueryWrapper<KwoTransportDemand> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(KwoTransportDemand::getId, ids)
+                .ne(KwoTransportDemand::getStatus, Integer.valueOf(DictEnum.TRANSPORT_DEMAND_STATUS_1.getValue()))
+                .eq(KwoTransportDemand::getEntId, LoginUserHolder.getEntId()).eq(KwoTransportDemand::getDelFlag, Global.NO);
+        List<KwoTransportDemand> list = kwoTransportDemandMapper.selectList(wrapper);
+        if (!Objects.equals(ids.size(), list.size())) {
             throw new BusinessException("上架操作仅针对“已下架”“草稿”状态的单据!");
         }
-        if (Objects.equals(String.valueOf(demand.getStatus()), DictEnum.TRANSPORT_DEMAND_STATUS_0.getValue())) {
-            UpdateTransportDemandParam param = BeanUtils.copyProperties(demand, UpdateTransportDemandParam.class);
-            checkParams(param);
-        }
-        demand.setStatus(Integer.valueOf(DictEnum.TRANSPORT_DEMAND_STATUS_1.getValue()));
-        kwoTransportDemandMapper.updateById(demand);
+        LambdaUpdateWrapper<KwoTransportDemand> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper.set(KwoTransportDemand::getStatus, Integer.valueOf(DictEnum.TRANSPORT_DEMAND_STATUS_1.getValue()))
+                .in(KwoTransportDemand::getId, ids);
+        kwoTransportDemandMapper.update(null, updateWrapper);
     }
 
     /**

+ 10 - 17
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwpWantBuyService.java

@@ -261,22 +261,18 @@ public class KwpWantBuyService {
      * @Author: lt
      * @Date: 13:38 2023/7/25 0025
      **/
-    public void putOnShelves(Long id) {
+    public void batchPutOnShelves(List<Long> ids) {
         LambdaQueryWrapper<KwoWantBuy> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(KwoWantBuy::getId, id).eq(KwoWantBuy::getEntId, LoginUserHolder.getEntId())
-                .eq(KwoWantBuy::getDelFlag, Global.NO).last("LIMIT 1");
-        KwoWantBuy kwoWantBuy = kwpWantBuyMapper.selectOne(wrapper);
-        if (Objects.isNull(kwoWantBuy)) {
-            throw new BusinessException("求购信息不存在");
-        }
-        if (Integer.valueOf(DictEnum.WANT_BUY_STATUS_1.getValue()).equals(kwoWantBuy.getStatus())) {
-            throw new BusinessException("求购信息已上架");
-        }
-        if (Integer.valueOf(DictEnum.WANT_BUY_STATUS_0.getValue()).equals(kwoWantBuy.getStatus())) {
-            checkParams(BeanUtils.copyProperties(kwoWantBuy, UpdateWantBuyParam.class));
+        wrapper.in(KwoWantBuy::getId, ids).ne(KwoWantBuy::getStatus, Integer.valueOf(DictEnum.WANT_BUY_STATUS_1.getValue()))
+                .eq(KwoWantBuy::getEntId, LoginUserHolder.getEntId()).eq(KwoWantBuy::getDelFlag, Global.NO);
+        List<KwoWantBuy> list = kwpWantBuyMapper.selectList(wrapper);
+        if (!Objects.equals(ids.size(), list.size())) {
+            throw new BusinessException("上架操作仅针对“已下架”“草稿”状态的单据!");
         }
-        kwoWantBuy.setStatus(Integer.valueOf(DictEnum.WANT_BUY_STATUS_1.getValue()));
-        kwpWantBuyMapper.updateById(kwoWantBuy);
+        LambdaUpdateWrapper<KwoWantBuy> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper.set(KwoWantBuy::getStatus, Integer.valueOf(DictEnum.WANT_BUY_STATUS_1.getValue()))
+                .in(KwoWantBuy::getId, ids);
+        kwpWantBuyMapper.update(null, updateWrapper);
     }
 
     /**
@@ -377,9 +373,6 @@ public class KwpWantBuyService {
         if (Objects.isNull(kwoWantBuy)) {
             throw new BusinessException("求购信息不存在");
         }
-        if (!Objects.equals(String.valueOf(kwoWantBuy.getStatus()), DictEnum.WANT_BUY_STATUS_0.getValue())) {
-            checkParams(param);
-        }
         //1.更新求购信息
         BeanUtils.copyProperties(param, kwoWantBuy);
         kwpWantBuyMapper.updateById(kwoWantBuy);

+ 8 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementOfflineService.java

@@ -12,6 +12,7 @@ import com.sckw.core.utils.IdWorker;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.order.api.dubbo.TradeOrderInfoService;
 import com.sckw.order.api.model.UpdateOrderStatusParam;
+import com.sckw.payment.dao.KwpLedgerLogisticsMapper;
 import com.sckw.payment.dao.KwpSettlementLogisticsMapper;
 import com.sckw.payment.dao.KwpSettlementLogisticsTrackMapper;
 import com.sckw.payment.dao.KwpSettlementOfflineMapper;
@@ -53,6 +54,7 @@ import java.util.stream.Collectors;
 @Slf4j
 @RequiredArgsConstructor
 public class KwpSettlementOfflineService {
+    private final KwpLedgerLogisticsMapper kwpLedgerLogisticsMapper;
     private final KwpSettlementOfflineMapper settlementOfflineMapper;
     private final KwpSettlementTradeService settlementTradeService;
     private final KwpLedgerTradeOrderService tradeOrderService;
@@ -199,6 +201,12 @@ public class KwpSettlementOfflineService {
             kwpSettlementLogisticsTrack.setDelFlag(0);
             kwpSettlementLogisticsTrackMapper.insert(kwpSettlementLogisticsTrack);
 
+            //需要将更新金额同步到对应的对账表中
+            KwpLedgerLogistics kwpLedgerLogistics = new KwpLedgerLogistics();
+            kwpLedgerLogistics.setId(settlementLogisticsDto.getLLedgerId());
+            kwpLedgerLogistics.setActualPrice(settlementLogistics.getActualPrice());
+            kwpLedgerLogisticsMapper.updateById(kwpLedgerLogistics);
+
             //新增一条线下结算记录
             //当前剩余金额
             remainingReceivables = remainingReceivables.subtract(price);

+ 8 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementWalletService.java

@@ -16,6 +16,7 @@ import com.sckw.order.api.model.UpdateOrderStatusParam;
 import com.sckw.payment.api.model.constant.ChannelEnum;
 import com.sckw.payment.api.model.dto.WalletDto;
 import com.sckw.payment.api.model.dto.common.R;
+import com.sckw.payment.dao.KwpLedgerLogisticsMapper;
 import com.sckw.payment.dao.KwpSettlementLogisticsMapper;
 import com.sckw.payment.dao.KwpSettlementLogisticsTrackMapper;
 import com.sckw.payment.dao.KwpSettlementWalletMapper;
@@ -59,6 +60,7 @@ import java.util.stream.Collectors;
 @Slf4j
 @RequiredArgsConstructor
 public class KwpSettlementWalletService {
+    private final KwpLedgerLogisticsMapper kwpLedgerLogisticsMapper;
     private final KwpSettlementWalletMapper settlementWalletMapper;
     private final KwpSettlementLogisticsMapper kwpSettlementLogisticsMapper;
     private final KwpLedgerTradeOrderService tradeOrderService;
@@ -229,6 +231,12 @@ public class KwpSettlementWalletService {
             kwpSettlementWallet.setDelFlag(0);
             Integer insertKwpSettlementWallet = settlementWalletMapper.insert(kwpSettlementWallet);
             log.info("新增一条电子钱包结算记录:" + insertKwpSettlementWallet);
+            //需要将金额同步到对应的对账表中
+            KwpLedgerLogistics kwpLedgerLogistics = new KwpLedgerLogistics();
+            kwpLedgerLogistics.setId(settlementLogisticsDto.getLLedgerId());
+            kwpLedgerLogistics.setActualPrice(settlementLogistics.getActualPrice());
+            kwpLedgerLogisticsMapper.updateById(kwpLedgerLogistics);
+
             //物流货到付款电子钱包逻辑
             //todo 待处理费电子钱包逻辑
 

+ 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);
         });

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

@@ -363,7 +363,7 @@ public class KwTransportService {
             vo.setWOrderNo(waybillOrder.getWOrderNo() == null ?
                     null : String.valueOf(waybillOrder.getWOrderNo()));
             vo.setWOrderId(waybillOrder.getWOrderId() == null ?
-                    null : String.valueOf(waybillOrder.getWOrderId()));
+                    String.valueOf(waybillOrder.get_id()) : String.valueOf(waybillOrder.getWOrderId()));
             vo.setTruckNo(waybillOrder.getTruckNo());
             vo.setDriverName(waybillOrder.getDriverName() == null ?
                     null : String.valueOf(waybillOrder.getDriverName()));

+ 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

+ 1 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/SysDictController.java

@@ -106,7 +106,7 @@ public class SysDictController {
      **/
     @PostMapping("/findDictTree")
     public HttpResult findList(@RequestBody SysDict params) throws SystemException {
-        return HttpResult.ok(sysDictService.findDictTree(params.getType()));
+        return HttpResult.ok(sysDictService.findDictTree(params.getType(), params.getValue()));
     }
 
     /**

+ 9 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/KwsEnterpriseDao.java

@@ -50,6 +50,15 @@ public interface KwsEnterpriseDao {
      */
     List<KwsEnterprise> selectByKeys(@Param(value = "list") List<Long> list);
 
+    /**
+     * @param list 主键Ids
+     * @return KwsEnterprise
+     * @desc: 批量查
+     * @author: czh
+     * @date: 2023/6/19
+     */
+    List<KwsEnterprise> selectAllByKeys(@Param(value = "list") List<Long> list);
+
     /**
      * 查询
      * @param params

+ 2 - 2
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/AddEntSettleReqVo.java

@@ -88,13 +88,13 @@ public class AddEntSettleReqVo implements Serializable {
     /**
      * 企业地址
      */
-//    @NotNull(message = "企业地址编码不能为空")
+    @NotNull(message = "企业地址编码不能为空")
     private Integer cityCode;
 
     /**
      * 企业地址名
      */
-    @NotBlank(message = "企业地址名不能为空")
+//    @NotBlank(message = "企业地址名不能为空")
     private String cityName;
 
     /**

+ 2 - 2
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/RoleBindMenuReqVo.java

@@ -22,13 +22,13 @@ public class RoleBindMenuReqVo implements Serializable {
      * 角色ID
      */
     @NotNull(message = "角色不能为空")
-    private long roleId;
+    private Long roleId;
 
     /**
      * 企业id
      */
     @NotNull(message = "企业不能为空")
-    private long entId;
+    private Long entId;
 
     /**
      * 菜单ID,多个用","隔开

+ 11 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/CommonService.java

@@ -67,7 +67,17 @@ public class CommonService {
     public void checkEntRepeat(String entName, String phone) {
         List<KwsEnterprise> list = kwsEnterpriseDao.checkEntRepeat(entName, phone);
         if (CollectionUtils.isNotEmpty(list)) {
-            throw new SystemException(HttpStatus.PARAMETERS_MISSING_CODE, HttpStatus.ENT_EXISTS);
+            for (KwsEnterprise kwsEnterprise : list) {
+                String firmName = kwsEnterprise.getFirmName();
+                String phone1 = kwsEnterprise.getPhone();
+                if (entName.equals(firmName)) {
+                    throw new SystemException(HttpStatus.PARAMETERS_MISSING_CODE, HttpStatus.ENT_EXISTS);
+                }
+
+                if (phone.equals(phone1)) {
+                    throw new SystemException(HttpStatus.PARAMETERS_MISSING_CODE, HttpStatus.ACCOUNT_EXISTS);
+                }
+            }
         }
     }
 

+ 11 - 2
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsEnterpriseService.java

@@ -68,6 +68,9 @@ public class KwsEnterpriseService {
     @Autowired
     private RemoteSystemServiceImpl remoteSystemService;
 
+    @Autowired
+    private SysAreaDao sysAreaDao;
+
     /**
      * @param params 入库
      * @desc: 单表入库
@@ -92,7 +95,7 @@ public class KwsEnterpriseService {
     public void deleteByKey(String ids) throws SystemException {
         //校验,有员工还在企业下则不能删除
         List<Long> list = Arrays.stream(ids.split(",")).map(Long::parseLong).toList();
-        List<KwsEnterprise> kwsEnterprises = kwsEnterpriseDao.selectByKeys(list);
+        List<KwsEnterprise> kwsEnterprises = kwsEnterpriseDao.selectAllByKeys(list);
         if (CollectionUtils.isEmpty(kwsEnterprises)) {
             throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.ENT_NOT_EXISTS);
         }
@@ -105,6 +108,9 @@ public class KwsEnterpriseService {
         /*1、删除企业*/
         for (KwsEnterprise kwsEnterprise : kwsEnterprises) {
             kwsEnterprise.setDelFlag(Global.YES);
+            if (kwsEnterprise.getApproval().equals(ApprovalEnum.PROCESS.getCode())) {
+                throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.MSG_033);
+            }
             if (kwsEnterpriseDao.update(kwsEnterprise) <= 0) {
                 throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.DELETE_FAIL);
             }
@@ -265,7 +271,10 @@ public class KwsEnterpriseService {
         kwsEnterprise.setHead(reqVo.getHead());
         kwsEnterprise.setRegSource(LoginUserHolder.getClientType());
         kwsEnterprise.setCityCode(reqVo.getCityCode());
-        kwsEnterprise.setCityName(reqVo.getCityName());
+        SysArea sysArea = sysAreaDao.selectById(reqVo.getCityCode());
+        if (Objects.nonNull(sysArea)) {
+            kwsEnterprise.setCityName(sysArea.getMergerName());
+        }
         kwsEnterprise.setDetailAddress(reqVo.getDetailAddress());
         kwsEnterprise.setLat(reqVo.getLat());
         kwsEnterprise.setLng(reqVo.getLng());

+ 2 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsUserService.java

@@ -421,7 +421,8 @@ public class KwsUserService {
         KwsUser kwsUser = checkUserBase(reqVo.getAccount(), reqVo.getSystemType());
 
         //从缓存中取出验证码,校验
-        String sms = RedissonUtils.getString(Global.getForgetKey(reqVo.getSystemType(), reqVo.getAccount()));
+        String sms = "12345";
+//        String sms = RedissonUtils.getString(Global.getForgetKey(reqVo.getSystemType(), reqVo.getAccount()));
         if (!reqVo.getCaptcha().equals(sms)) {
             throw new SystemException(HttpStatus.CODE_10301, HttpStatus.CAPTCHA_ERROR);
         }

+ 8 - 5
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/SysDictService.java

@@ -20,9 +20,7 @@ import com.sckw.system.model.vo.req.QueryDictTypePageReqVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 
 /**
  * 字典service接口
@@ -194,7 +192,12 @@ public class SysDictService {
         return sysDictTypeDao.select(sysDictType);
     }
 
-    public List<SysDictGroupResDto> findDictTree(String type) {
-        return remoteSystemService.queryDictGroupByType(type);
+    public List<SysDictGroupResDto> findDictTree(String type, String value) {
+        if (StringUtils.isBlank(value)) {
+            return remoteSystemService.queryDictGroupByType(type);
+        }
+
+        SysDictGroupResDto sysDictGroupResDto = remoteSystemService.queryDictGroupByTypeAndValue(type, value);
+        return Collections.singletonList(sysDictGroupResDto);
     }
 }

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

@@ -21,4 +21,4 @@ spring:
         extension-configs:
           - dataId: sckw-common.yml
             group: sckw-service-platform
-            refresh: true
+            refresh: true

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

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

+ 1 - 1
sckw-modules/sckw-system/src/main/resources/mapper/KwsEntCheckTrackDao.xml

@@ -111,7 +111,7 @@
   </update>
 
     <select id="findList" resultType="com.sckw.system.model.KwsEntCheckTrack">
-      select * from kws_ent_check_track where ent_id = #{entId} order by create_time
+      select * from kws_ent_check_track where ent_id = #{entId} order by create_time desc
     </select>
 
 </mapper>

+ 13 - 0
sckw-modules/sckw-system/src/main/resources/mapper/KwsEnterpriseDao.xml

@@ -270,6 +270,19 @@
     select * from kws_enterprise where (firm_name = #{entName} or phone = #{phone}) and del_flag = 0 and approval in (1,3,4)
   </select>
 
+  <select id="selectAllByKeys" resultType="com.sckw.system.model.KwsEnterprise">
+    select
+    <include refid="Base_Column_List" />
+    from kws_enterprise
+    where del_flag = 0
+    <if test="list != null and list.size() > 0">
+      and id in
+      <foreach collection="list" item="item" open="(" close=")" separator=",">
+        #{item}
+      </foreach>
+    </if>
+  </select>
+
   <insert id="insert" parameterType="com.sckw.system.model.KwsEnterprise">
     insert into kws_enterprise
     <trim prefix="(" suffix=")" suffixOverrides=",">

+ 9 - 2
sckw-modules/sckw-system/src/main/resources/mapper/KwsMenuRightsDao.xml

@@ -133,7 +133,7 @@
       id,
       ent_id,
       menu_id,
-      role_id,
+     role_id,
       remark,
       status,
       create_by,
@@ -148,7 +148,14 @@
         #{item.id,jdbcType=BIGINT},
         #{item.entId,jdbcType=BIGINT},
         #{item.menuId,jdbcType=BIGINT},
-        #{item.roleId,jdbcType=BIGINT},
+            <choose>
+              <when test="item.roleId != null">
+                #{item.roleId,jdbcType=BIGINT},
+              </when>
+            <otherwise>
+              null,
+            </otherwise>
+            </choose>
         #{item.remark,jdbcType=VARCHAR},
         #{item.status,jdbcType=INTEGER},
         #{item.createBy,jdbcType=BIGINT},

+ 0 - 4
sckw-modules/sckw-transport/pom.xml

@@ -96,10 +96,6 @@
             <artifactId>sckw-order-api</artifactId>
         </dependency>
 
-        <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-fleet-api</artifactId>
-        </dependency>
 
         <dependency>
             <groupId>com.sckw</groupId>

+ 15 - 13
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java

@@ -2,6 +2,7 @@ package com.sckw.transport.controller;
 
 import com.alibaba.fastjson.JSONObject;
 import com.sckw.core.model.page.PageRes;
+import com.sckw.core.model.vo.BaseList;
 import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
@@ -227,11 +228,11 @@ public class AcceptCarriageOrderController {
     }
 
     /**
-     * 承运订单-设置停止接单-查询
+     * 承运订单-停止接单-查询
      *
      * @return
      */
-    @RequestMapping(value = "/stopDocumentDetail", method = RequestMethod.POST)
+    @RequestMapping(value = "/acceptStopDocumentDetail", method = RequestMethod.POST)
     public HttpResult stopDocumentDetail(@Validated @RequestBody DriverParam driverParam) {
         log.info("承运订单-设置停止接单-查询 请求参数:{}", JSONObject.toJSONString(driverParam));
         try {
@@ -243,12 +244,12 @@ public class AcceptCarriageOrderController {
     }
 
     /**
-     * 承运订单/托运订单-设置停止接单-提交
+     * 承运订单-设置停止接单-循环单提交
      *
      * @param stopOrderTakingDTO
      * @return
      */
-    @RequestMapping(value = "/stopDocumentCommit", method = RequestMethod.POST)
+    @RequestMapping(value = "/acceptStopDocumentCommit", method = RequestMethod.POST)
     public HttpResult stopDocumentCommit(@Validated @RequestBody StopOrderTakingDTO stopOrderTakingDTO) {
         log.info("承运订单/托运订单-设置停止接单-提交 请求参数:{}", JSONObject.toJSONString(stopOrderTakingDTO));
         try {
@@ -262,15 +263,15 @@ public class AcceptCarriageOrderController {
     /**
      * 承运订单-取消派车(撤回派车)/单趟撤回
      *
-     * @param ids 车辆运单id
+     * @param baseList 车辆运单id
      * @return
      */
-    @RequestMapping(value = "/cancelDelivery", method = RequestMethod.GET)
-    public HttpResult cancelDelivery(@NotBlank(message = "车辆运单id不能为空") @RequestParam("ids") String ids) {
-        log.info("承运订单-取消派车(撤回派车)/单趟撤回请求参数:{}", ids);
-        List<String> lists = StringUtils.splitStrToList(ids, ",", String.class);
+    @RequestMapping(value = "/cancelDelivery", method = RequestMethod.POST)
+    public HttpResult cancelDelivery(@Valid @RequestBody BaseList baseList) {
+        log.info("承运订单-取消派车(撤回派车)/单趟撤回请求参数:{}", JSONObject.toJSONString(baseList));
+        List<String> lists = StringUtils.splitStrToList(baseList.getIds(), ",", String.class);
         try {
-            return acceptCarriageOrderService.cancelDelivery(lists);
+            return acceptCarriageOrderService.cancelDelivery(lists,baseList.getIds());
         } catch (Exception e) {
             log.error("承运订单-单趟撤回 error:{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
@@ -311,15 +312,16 @@ public class AcceptCarriageOrderController {
     }
 
     /**
-     * 承运订单-查看撤销原因
+     * 承运订单-查看撤销原因+驳回原因
      *
      * @param id 物流订单
      * @return
      */
     @RequestMapping(value = "/getCancelReason", method = RequestMethod.GET)
-    public HttpResult getCancelReason(@NotBlank(message = "物流订单id不能为空") @RequestParam("id") String id) {
+    public HttpResult getCancelReason(@NotBlank(message = "物流订单id不能为空") @RequestParam("id") String id,
+                                      @NotNull(message = "单据状态不能为空") @RequestParam("status") Integer status) {
         try {
-            return acceptCarriageOrderService.getCancelReason(id);
+            return acceptCarriageOrderService.getCancelReason(id,status);
         } catch (Exception e) {
             log.error("承运订单-查看撤销原因 error:{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());

+ 94 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/ConsignOrderController.java

@@ -2,12 +2,15 @@ package com.sckw.transport.controller;
 
 import com.alibaba.fastjson.JSONObject;
 import com.sckw.core.model.page.PageRes;
+import com.sckw.core.model.vo.BaseList;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.transport.model.dto.AddOrderDTO;
 import com.sckw.transport.model.dto.OrderDTO;
 import com.sckw.transport.model.dto.OrderFinishDTO;
+import com.sckw.transport.model.dto.StopOrderTakingDTO;
 import com.sckw.transport.model.param.AcceptCarriageOrderQuery;
+import com.sckw.transport.model.param.DriverParam;
 import com.sckw.transport.service.ConsignOrderService;
 import jakarta.validation.Valid;
 import jakarta.validation.constraints.NotBlank;
@@ -85,6 +88,94 @@ public class ConsignOrderController {
         }
     }
 
+
+    /**
+     * 托运订单-设置停止接单-物流订单id查询-针对循环单
+     *
+     * @param baseList 页面请求数据
+     * @return
+     */
+    @RequestMapping(value = "/consignStopDocumentDetailByOrderIds", method = RequestMethod.POST)
+    public HttpResult consignStopDocumentDetailByOrderIds(@Valid @RequestBody BaseList baseList) {
+        log.info("托运订单-设置停止接单-物流订单id查询 query {}", JSONObject.toJSONString(baseList));
+        try {
+            return consignOrderService.consignStopDocumentDetailByOrderIds(baseList);
+        } catch (Exception e) {
+            log.error("托运订单-设置停止接单-物流订单id查询:query {},error {} ", JSONObject.toJSONString(baseList), e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
+    /**
+     * 托运订单-设置停止接单-条件查询-针对循环单
+     *
+     * @param driverParam 页面请求数据
+     * @return
+     */
+    @RequestMapping(value = "/consignStopDocumentDetail", method = RequestMethod.POST)
+    public HttpResult consignStopDocumentDetail(@Validated @RequestBody DriverParam driverParam) {
+        log.info("托运订单-设置停止接单-条件查询 query {}", JSONObject.toJSONString(driverParam));
+        try {
+            return consignOrderService.consignStopDocumentDetail(driverParam);
+        } catch (Exception e) {
+            log.error("托运订单-设置停止接单-条件查询:query {},error {} ", JSONObject.toJSONString(driverParam), e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
+
+    /**
+     * 托运订单-设置停止接单-提交-针对循环单
+     *
+     * @param stopOrderTakingDTO    请求参数
+     * @return
+     */
+    @RequestMapping(value = "/consignStopDocumentCommit", method = RequestMethod.POST)
+    public HttpResult consignStopDocumentCommit(@Validated @RequestBody StopOrderTakingDTO stopOrderTakingDTO) {
+        log.info("托运订单-设置停止接单-提交 commit {}", JSONObject.toJSONString(stopOrderTakingDTO));
+        try {
+            return consignOrderService.consignStopDocumentCommit(stopOrderTakingDTO);
+        } catch (Exception e) {
+            log.error("托运订单-设置停止接单-提交 commit {},error {} ", JSONObject.toJSONString(stopOrderTakingDTO), e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
+
+//
+//    /**
+//     * 托运订单-设置停止接单-查询
+//     *
+//     * @return
+//     */
+//    @RequestMapping(value = "/stopDocumentDetail", method = RequestMethod.POST)
+//    public HttpResult stopDocumentDetail(@Validated @RequestBody DriverParam driverParam) {
+//        log.info("托运订单-设置停止接单-查询 请求参数:{}", JSONObject.toJSONString(driverParam));
+//        try {
+//            return consignOrderService.stopDocumentDetail(driverParam);
+//        } catch (Exception e) {
+//            log.error("托运订单-设置停止接单-查询 error:{}", e.getMessage(), e);
+//            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+//        }
+//    }
+//
+//    /**
+//     * 托运订单-设置停止接单-提交
+//     *
+//     * @param stopOrderTakingDTO
+//     * @return
+//     */
+//    @RequestMapping(value = "/stopDocumentCommit", method = RequestMethod.POST)
+//    public HttpResult stopDocumentCommit(@Validated @RequestBody StopOrderTakingDTO stopOrderTakingDTO) {
+//        log.info("托运订单-设置停止接单-提交 请求参数:{}", JSONObject.toJSONString(stopOrderTakingDTO));
+//        try {
+//            return consignOrderService.stopDocumentCommit(stopOrderTakingDTO);
+//        } catch (Exception e) {
+//            log.error("托运订单-设置停止接单-提交 error:{}", e.getMessage(), e);
+//            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+//        }
+//    }
+
     /**
      * 托运订单/承运订单-获取车辆运单-统计
      *
@@ -110,8 +201,9 @@ public class ConsignOrderController {
      * @return
      */
     @RequestMapping(value = "/getRejectReason", method = RequestMethod.GET)
-    public HttpResult getRejectReasonById(@Validated @NotBlank @RequestParam("id") String id) {
-        return consignOrderService.getRejectReasonById(id);
+    public HttpResult getRejectReasonById( @NotBlank @RequestParam("id") String id,
+                                           @NotNull @RequestParam("status") Integer status) {
+        return consignOrderService.getRejectReasonById(id,status);
     }
 
     /**

+ 16 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/KwtWaybillOrderController.java

@@ -8,6 +8,7 @@ import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.constant.HttpStatus;
+import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.model.ValiList;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.transport.model.dto.*;
@@ -46,7 +47,8 @@ public class KwtWaybillOrderController {
      * @date 2023/8/1
      **/
     @GetMapping("/findCountByDriver")
-    public HttpResult findCountByDriver(@RequestParam("driverId") Long driverId){
+    public HttpResult findCountByDriver(){
+        Long driverId = LoginUserHolder.getUserId();
         Map count = waybillOrderService.findStatisticsCountByDriver(driverId);
         return HttpResult.ok(count);
     }
@@ -59,6 +61,7 @@ public class KwtWaybillOrderController {
      **/
     @PostMapping("/findSumByDriver")
     public HttpResult findSumByDriver(@RequestBody Map params){
+        params.put("driverId", LoginUserHolder.getUserId());
         Map count = waybillOrderService.findStatisticsSumByDriver(params);
         return HttpResult.ok(count);
     }
@@ -71,6 +74,7 @@ public class KwtWaybillOrderController {
      **/
     @PostMapping("/findWaybillOrderByDriver")
     public HttpResult findWaybillOrderByDriver(@RequestBody Map params){
+        params.put("driverId", LoginUserHolder.getUserId());
         /**校验**/
         if (StringUtils.isBlank(params.get("busStatus"))) {
             return HttpResult.error("请选择业务状态!");
@@ -291,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);
+    }
+
 
 
     //取消派车(未接单前)

+ 21 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/LogisticsConsignmentController.java

@@ -116,7 +116,7 @@ public class LogisticsConsignmentController {
     }
 
     /**
-     * 购订单-车辆信息-销售订单ids
+     * 采购购订单-车辆信息-销售订单ids
      *
      * @param orderQuery
      * @return
@@ -327,4 +327,24 @@ public class LogisticsConsignmentController {
         }
         ExcelUtil.downData(response, SellLogisticOrderExcelVo.class, list);
     }
+
+
+    /**
+     * 生成物流订单编号demo
+     * @return
+     */
+    @RequestMapping(value = "/addLogisticsNumberDemo", method = RequestMethod.GET)
+    public HttpResult addLogisticsNumberDemo() {
+        return logisticsConsignmentService.addLogisticsNumberDemo();
+    }
+
+
+    /**
+     * 生成车辆订单编号demo
+     * @return
+     */
+    @RequestMapping(value = "/addWaybillNumberDemo", method = RequestMethod.GET)
+    public HttpResult addWaybillNumberDemo() {
+        return logisticsConsignmentService.addWaybillNumberDemo();
+    }
 }

+ 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 {

+ 19 - 5
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/enterpriseApp/AppAcceptCarriageController.java

@@ -4,13 +4,12 @@ import com.alibaba.fastjson.JSONObject;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.transport.model.param.AcceptCarriageOrderQuery;
 import com.sckw.transport.service.AcceptCarriageOrderService;
+import com.sckw.transport.service.KwtWaybillOrderService;
 import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotBlank;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * @author lfdc
@@ -18,12 +17,16 @@ import org.springframework.web.bind.annotation.RestController;
  * @date 2023-08-21 16:08:41
  */
 @Slf4j
-@RestController("/appKwtAcceptCarriageOrder")
+@RestController
+@RequestMapping("/appKwtAcceptCarriageOrder")
 public class AppAcceptCarriageController {
 
     @Autowired
     private AcceptCarriageOrderService carriageOrderService;
 
+    @Autowired
+    private KwtWaybillOrderService waybillOrderService;
+
     @RequestMapping(name = "企业app订单管理数据承运订单统计", path = "/statisticsCarriage", method = RequestMethod.POST)
     public HttpResult statisticsCarriage(@Valid @RequestBody AcceptCarriageOrderQuery query) {
         log.info("企业app订单管理数据承运订单统计 query :{}", JSONObject.toJSONString(query));
@@ -35,4 +38,15 @@ public class AppAcceptCarriageController {
         }
     }
 
+    @RequestMapping(name = "企业app承运订单详情统计", path = "/statisticsCarriageByOrderId", method = RequestMethod.GET)
+    public HttpResult statisticsCarriageByOrderId(@NotBlank(message = "订单id不能为空") @RequestParam("orderId") String orderId) {
+        log.info("企业app承运订单详情统计 query :{}", orderId);
+        try {
+            return HttpResult.ok(waybillOrderService.statisticsByOrderId(orderId,"2"));
+        } catch (Exception e) {
+            log.error("企业app承运订单详情统计失败  query:{}, error:{}", orderId, e.getMessage(), e);
+            return HttpResult.error(e.getMessage());
+        }
+    }
+
 }

+ 47 - 5
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/enterpriseApp/AppConsignController.java

@@ -1,16 +1,18 @@
 package com.sckw.transport.controller.enterpriseApp;
 
 import com.alibaba.fastjson.JSONObject;
+import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.transport.model.param.AcceptCarriageOrderQuery;
+import com.sckw.transport.model.param.DriverParam;
 import com.sckw.transport.service.ConsignOrderService;
+import com.sckw.transport.service.KwtWaybillOrderService;
 import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotBlank;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * @author lfdc
@@ -18,12 +20,21 @@ import org.springframework.web.bind.annotation.RestController;
  * @date 2023-08-21 16:08:41
  */
 @Slf4j
-@RestController("appKwtConsignOrder")
+@RestController
+@RequestMapping("/appKwtConsignOrder")
 public class AppConsignController {
 
     @Autowired
     private ConsignOrderService consignOrderService;
 
+    @Autowired
+    private KwtWaybillOrderService waybillOrderService;
+
+    /**
+     * 企业app订单管理数据托运订单统计
+     * @param query
+     * @return
+     */
     @RequestMapping(name = "企业app订单管理数据托运订单统计", path = "/statisticsConsign", method = RequestMethod.POST)
     public HttpResult statisticsConsign(@Valid  @RequestBody AcceptCarriageOrderQuery query) {
         log.info("企业app订单管理数据托运订单统计 query :{}", JSONObject.toJSONString(query));
@@ -35,4 +46,35 @@ public class AppConsignController {
         }
     }
 
+    /**
+     * 企业app托运订单详情统计
+     * @param orderId
+     * @return
+     */
+    @RequestMapping(name = "企业app托运订单详情统计", path = "/statisticsConsignByOrderId", method = RequestMethod.GET)
+    public HttpResult statisticsConsignByOrderId(@NotBlank(message = "订单id不能为空") @RequestParam("orderId") String orderId) {
+        log.info("企业app托运订单详情统计 query :{}",orderId);
+        try {
+            return HttpResult.ok(waybillOrderService.statisticsByOrderId(orderId,"1"));
+        } catch (Exception e) {
+            log.error("企业app托运订单详情统计失败  query:{}, error:{}", orderId, e.getMessage(), e);
+            return HttpResult.error(e.getMessage());
+        }
+    }
+
+    /**
+     * 企业app托运订单循环车辆运单列表查询
+     * @param driverParam
+     * @return
+     */
+    @RequestMapping(name = "企业app托运订单循环车辆运单列表查询", path = "/consignStopDocumentDetail", method = RequestMethod.POST)
+    public HttpResult consignStopDocumentDetail(@Validated @RequestBody DriverParam driverParam) {
+        log.info("企业app托运订单循环车辆运单列表查询 query {}", JSONObject.toJSONString(driverParam));
+        try {
+            return consignOrderService.consignStopDocumentDetail(driverParam);
+        } catch (Exception e) {
+            log.error("企业app托运订单循环车辆运单列表查询:query {},error {} ", JSONObject.toJSONString(driverParam), e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
 }

+ 11 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderMapper.java

@@ -88,7 +88,7 @@ public interface KwtLogisticsOrderMapper extends BaseMapper<KwtLogisticsOrder> {
      */
     Long selectLogisticOrderCount(@Param("logisticsOrderParam") LogisticsOrderParam logisticsOrderParam, @Param("dictValue") String dictValue);
 
-    Map<String, String> getRejectReason(@Param("id") String id, @Param("status") String status);
+    Map<String, String> getRejectReason(@Param("id") String id, @Param("status") Integer status);
 
     /**
      * 根据承运订单id查看分包数据列表
@@ -113,7 +113,7 @@ public interface KwtLogisticsOrderMapper extends BaseMapper<KwtLogisticsOrder> {
     List<Map> countSubcontractConsignmentById(@Param("lOrderId") String lOrderId);
 
     /**
-     * 通过物流订单查看单据下运力司机数据
+     * 通过物流订单查看单据下运力司机数据【趟次】
      *
      * @param driverParam
      * @return
@@ -213,6 +213,15 @@ public interface KwtLogisticsOrderMapper extends BaseMapper<KwtLogisticsOrder> {
                                                      @Param("entId") Long entId
     );
 
+    /**
+     * 物流订单号+状态统计数量
+     *
+     * @param orderId
+     * @param orderStatusList
+     * @return
+     */
+    Integer selectCountByLorderId(@Param("orderId") String orderId, @Param("orderStatusList") List<Integer> orderStatusList);
+
 //    List<TableTops> countAppLogisticsOrderListByStatus(@Param("type") String type,@Param("entId") Long entId
 //    );
 }

+ 10 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderAddressMapper.java

@@ -3,9 +3,19 @@ package com.sckw.transport.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.sckw.transport.model.KwtWaybillOrderAddress;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 @Mapper
 public interface KwtWaybillOrderAddressMapper extends BaseMapper<KwtWaybillOrderAddress> {
 
     int insert1(KwtWaybillOrderAddress params);
+
+    /**
+     * @param wOrderId 车辆订单id
+     * @param addressType 地址类型(1装货地址、2卸货地址)
+     * @desc 查询车辆运单装卸货地址信息
+     * @author zk
+     * @date 2023/7/20
+     **/
+    KwtWaybillOrderAddress findByAddress(@Param("wOrderId") Long wOrderId, @Param("addressType") Integer addressType);
 }

+ 11 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/LogisticsOrderDTO.java

@@ -38,6 +38,12 @@ public class LogisticsOrderDTO {
      * 单据状态
      */
     private String status;
+
+    /**
+     * 单据状态
+     */
+    private String statusLabel;
+
     /**
      * 承运单位
      */
@@ -74,4 +80,9 @@ public class LogisticsOrderDTO {
      * 指派人
      */
     private String createBy;
+
+    /**
+     * 指派人
+     */
+    private String createName;
 }

+ 5 - 5
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/StopOrderTakingDTO.java

@@ -23,10 +23,10 @@ public class StopOrderTakingDTO {
     @JsonProperty("lOrderId")
     private String lOrderId;
 
-    /**
-     * 1托运 2承运
-     */
-    @JsonProperty("type")
-    private String type;
+//    /**
+//     * 1托运 2承运
+//     */
+//    @JsonProperty("type")
+//    private String type;
 
 }

+ 4 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/SubcontractConsignmentDTO.java

@@ -2,6 +2,7 @@ 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.Digits;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
@@ -28,6 +29,8 @@ public class SubcontractConsignmentDTO /**implements IdsList*/ {
     /**
      * 分配承运量
      */
+    @Digits(integer = 10,fraction = 2,message = "分配承运量填写错误")
+    @DecimalMin(value = "0.00",message = "委托量不能小于{value}")
     private BigDecimal carryingCapacity;
     /**
      * 分配承运量使用的单位
@@ -102,7 +105,7 @@ public class SubcontractConsignmentDTO /**implements IdsList*/ {
     /**
      * 结算周期(周结、月结、季结)
      */
-    @NotNull(message = "结算周期不能为空")
+//    @NotNull(message = "结算周期不能为空")
     private Long settlementCycle;
 
     /**

+ 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;
+}

+ 1 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/DriverParam.java

@@ -42,6 +42,7 @@ public class DriverParam {
      * 代表循环或者趟次 1趟次 2循环
      */
     @JsonProperty("type")
+    @NotBlank(message = "类型不能为空")
     private String type;
 
 }

+ 3 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/LogisticsConsignmentParam.java

@@ -67,6 +67,7 @@ public class LogisticsConsignmentParam {
      */
 //    @NotNull(message = "合理损耗不能为空")
 //    @DecimalMin(value = "0.00",message = "必须为大于0的正整数")
+    @Digits(integer = 5, fraction = 2, message = "合理损耗超长")
     private Long loss;
     /**
      * 合理损耗单位
@@ -109,7 +110,8 @@ public class LogisticsConsignmentParam {
     /**
      * 结算周期(周结、月结、季结)
      */
-    @NotNull(message = "结算周期不能为空")
+//    @NotNull(message = "结算周期不能为空")
+    @Digits(integer = 5, fraction = 0, message = "合理损耗超长")
     private Long settlementCycle;
 
     /**

+ 11 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/DriverListVo.java

@@ -48,6 +48,11 @@ public class DriverListVo {
      */
     private String truckNo;
 
+    /**
+     * 车牌ID
+     */
+    private String truckId;
+
     /**
      * 车辆类型
      */
@@ -59,6 +64,12 @@ public class DriverListVo {
     @JsonProperty("lOrderId")
     private String lOrderId;
 
+    /**
+     * 物流订单号
+     */
+    @JsonProperty("lOrderNo")
+    private String lOrderNo;
+
     /**
      * 车辆运单id
      */

+ 41 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/OrderDetailVO.java

@@ -3,7 +3,9 @@ package com.sckw.transport.model.vo;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.time.LocalDate;
+import java.util.Date;
 
 /**
  * @author lfdc
@@ -93,12 +95,12 @@ public class OrderDetailVO {
     /**
      * 计划结束时间
      */
-    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private LocalDate scheduleEndTime;
     /**
      * 计划开始时间
      */
-    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private LocalDate scheduleStartTime;
     /**
      * 结算周期
@@ -158,4 +160,41 @@ public class OrderDetailVO {
      * 卸货详细地址
      */
     private String unloadAddressDetail;
+
+    /**
+     * 卸货-履约量(自己+下游承运总卸货量)
+     */
+    private BigDecimal totalUnloadAmount;
+
+    /**
+     * 装货-履约量(自己+下游承运总装货量)
+     */
+    private BigDecimal totalLoadAmount;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    /**
+     * 付款方式
+     */
+    private Long payment;
+
+    /**
+     * 付款方式翻译
+     */
+    private String paymentLabel;
+
+    /**
+     * 签约方式
+     */
+    private Integer signingWay;
+
+    /**
+     * 签约方式翻译
+     */
+    private String signingWayLabel;
+
 }

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików