Bladeren bron

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

czh 2 jaren geleden
bovenliggende
commit
730b5d1310
56 gewijzigde bestanden met toevoegingen van 679 en 223 verwijderingen
  1. 1 1
      sckw-auth/src/main/java/com/sckw/auth/service/impl/AuthServiceImpl.java
  2. 1 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/constant/Global.java
  3. 2 1
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/BeanUtils.java
  4. 3 2
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/CollectionUtils.java
  5. 26 13
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/DateUtils.java
  6. 1 1
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/EncryUtil.java
  7. 2 1
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/FileUtils.java
  8. 15 9
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/ListUtils.java
  9. 25 8
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/StringUtils.java
  10. 3 3
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/workerUtils.java
  11. 1 1
      sckw-common/sckw-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  12. 2 1
      sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/utils/ExcelUtil.java
  13. 2 4
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwWaybillOrder.java
  14. 4 0
      sckw-common/sckw-common-redis/src/main/java/com/sckw/redis/constant/RedisConstant.java
  15. 26 1
      sckw-common/sckw-common-redis/src/main/java/com/sckw/redis/utils/RedissonUtils.java
  16. 6 6
      sckw-common/sckw-common-redis/src/main/java/com/sckw/redis/utils/TestService.java
  17. 4 3
      sckw-common/sckw-common-stream/src/main/java/com/sckw/stream/utils/SmsUtil.java
  18. 10 2
      sckw-modules-api/sckw-payment-api/src/main/java/com/sckw/payment/api/model/constant/ChannelEnum.java
  19. 1 1
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractLogisticsService.java
  20. 2 1
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfDriverController.java
  21. 7 7
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfTruckController.java
  22. 6 5
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dubbo/RemoteFleetServiceImpl.java
  23. 4 4
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfFleetService.java
  24. 35 24
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckReportService.java
  25. 2 2
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/CommonBusinessService.java
  26. 3 3
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateApplyService.java
  27. 2 2
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateManageService.java
  28. 2 1
      sckw-modules/sckw-message/src/main/java/com/sckw/message/service/SmsService.java
  29. 40 10
      sckw-modules/sckw-order/src/main/java/com/sckw/order/controller/KwoTradeOrderController.java
  30. 4 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/dao/KwoTradeOrderMapper.java
  31. 41 13
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java
  32. 9 0
      sckw-modules/sckw-order/src/main/resources/mapper/KwoTradeOrderMapper.xml
  33. 2 1
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/constant/SettlementEnum.java
  34. 2 1
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/constant/SettlementOrderTypeEnum.java
  35. 1 1
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/constant/TradingEnum.java
  36. 10 5
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/constant/WalletChannelEnum.java
  37. 14 8
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerLogisticsService.java
  38. 8 6
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerTradeService.java
  39. 5 3
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementLogisticsService.java
  40. 12 7
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementOfflineService.java
  41. 13 8
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementWalletService.java
  42. 18 6
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java
  43. 11 2
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/CarWaybillVo.java
  44. 1 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java
  45. 3 3
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsEnterpriseService.java
  46. 10 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/OrderDetailVO.java
  47. 11 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillBoardListVO.java
  48. 5 5
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java
  49. 11 11
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java
  50. 11 8
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java
  51. 21 9
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java
  52. 5 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/TransportCommonService.java
  53. 7 4
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/WaybillManagementService.java
  54. 201 0
      sckw-modules/sckw-transport/src/main/resources/bootstrap-lfdc.yml
  55. 2 2
      sckw-modules/sckw-transport/src/main/resources/bootstrap.yml
  56. 3 0
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml

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

@@ -479,7 +479,7 @@ public class AuthServiceImpl implements IAuthService {
      * @date 2023/8/18
      **/
     private String generateToken(LoginBase loginBase, Long userId) {
-        Map<String, Object> info = new HashMap();
+        Map<String, Object> info = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         info.put("userId", userId);
         info.put("account", loginBase.getAccount());
         info.put("clientType", loginBase.getClientType());

+ 1 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/constant/Global.java

@@ -66,6 +66,7 @@ public class Global {
     public static final int NUMERICAL_TWO = 2;
     public static final int NUMERICAL_THREE = 3;
     public static final int NUMERICAL_TWELVE = 12;
+    public static final int NUMERICAL_SIXTEEN = 16;
 
     /**pid等于0的*/
     public static final String PID = "0";

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

@@ -1,6 +1,7 @@
 package com.sckw.core.utils;
 
 import cn.hutool.core.bean.BeanUtil;
+import com.sckw.core.model.constant.Global;
 
 import java.beans.PropertyDescriptor;
 import java.lang.reflect.Field;
@@ -243,7 +244,7 @@ public class BeanUtils extends BeanUtil {
     }
 
     public static Map<String, Object> convertToMap(Object yourObject) {
-        Map<String, Object> map = new HashMap<>();
+        Map<String, Object> map = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         try {
             Field[] fields = yourObject.getClass().getDeclaredFields();
             for (Field field : fields) {

+ 3 - 2
sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/CollectionUtils.java

@@ -230,7 +230,8 @@ public class CollectionUtils extends CollectionUtil {
 		if (list.size() == 0) {
 			return null;
 		}
-		Integer count = list.size(); // 记录总数
+		// 记录总数
+		Integer count = list.size();
 		int fromIndex = Math.min((page - 1) * pageSize,count);
 		int toIndex = Math.min(fromIndex + pageSize,count);
 
@@ -391,7 +392,7 @@ public class CollectionUtils extends CollectionUtil {
 	 * @throws IllegalAccessException
 	 */
 	public static Map beanToMap(Object object) throws Exception {
-		Map<String, Object> map = new HashMap<String, Object>();
+		Map<String, Object> map = new HashMap<>(Global.NUMERICAL_SIXTEEN);
 		Field[] fields = object.getClass().getDeclaredFields();
 		for (Field field : fields) {
 			field.setAccessible(true);

+ 26 - 13
sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/DateUtils.java

@@ -215,7 +215,8 @@ public class DateUtils extends DateUtil {
      * @return
      */
     public static String numberDateFormat(String timestamp, String simpleDateFormatType) {
-        SimpleDateFormat sdf = new SimpleDateFormat(simpleDateFormatType);//要转换的时间格式
+        //要转换的时间格式
+        SimpleDateFormat sdf = new SimpleDateFormat(simpleDateFormatType);
         String date = null;
         if (timestamp.length() == THIRTEEN) {
             date = sdf.format(Long.parseLong(timestamp));
@@ -233,7 +234,8 @@ public class DateUtils extends DateUtil {
      * @return
      */
     public static Date numberDateFormatToDate(String timestamp, String simpleDateFormatType) {
-        SimpleDateFormat sdf = new SimpleDateFormat(simpleDateFormatType);//要转换的时间格式
+        //要转换的时间格式
+        SimpleDateFormat sdf = new SimpleDateFormat(simpleDateFormatType);
         Date date = null;
         try {
             if (timestamp.length() == THIRTEEN) {
@@ -271,12 +273,18 @@ public class DateUtils extends DateUtil {
      * @Date: 2019/7/18 0018 16:46
      */
     public static String getTimeBySecond(long seconds) {
-        long days = seconds / 86400;//转换天数
-        seconds = seconds % 86400;//剩余秒数
-        long hours = seconds / 3600;//转换小时数
-        seconds = seconds % 3600;//剩余秒数
-        long minutes = seconds / 60;//转换分钟
-        seconds = seconds % 60;//剩余秒数
+        //转换天数
+        long days = seconds / 86400;
+        //剩余秒数
+        seconds = seconds % 86400;
+        //转换小时数
+        long hours = seconds / 3600;
+        //剩余秒数
+        seconds = seconds % 3600;
+        //转换分钟
+        long minutes = seconds / 60;
+        //剩余秒数
+        seconds = seconds % 60;
         if (0 < days) {
             return days + "天," + hours + "小时," + minutes + "分," + seconds + "秒";
         } else {
@@ -428,17 +436,22 @@ public class DateUtils extends DateUtil {
             endCalendar.set(Calendar.DATE, 1);
             endCalendar.roll(Calendar.DATE, -1);
             if (day == (endCalendar.get(Calendar.DATE) - startCalendar.get(Calendar.DATE))) {
-                monthCount = 1;// 两日期间满一个月
+                // 两日期间满一个月
+                monthCount = 1;
             } else {
-                monthCount = 0;// 两日期间不足一个月
+                // 两日期间不足一个月
+                monthCount = 0;
             }
-        } else if (year != 0 && month == 0) {// 年份不同月份相同
-            if (startCalendar.get(Calendar.DATE) < endCalendar.get(Calendar.DATE)) {// 两日期间的天数,小于等于当月
+            // 年份不同月份相同
+        } else if (year != 0 && month == 0) {
+            // 两日期间的天数,小于等于当月
+            if (startCalendar.get(Calendar.DATE) < endCalendar.get(Calendar.DATE)) {
                 monthCount = 1;
             }
             monthCount += year * 12 + month;
         } else {
-            if (startCalendar.get(Calendar.DATE) >= endCalendar.get(Calendar.DATE)) {// 起始日期DATE 大于等于结束日期DATE
+            // 起始日期DATE 大于等于结束日期DATE
+            if (startCalendar.get(Calendar.DATE) >= endCalendar.get(Calendar.DATE)) {
                 monthCount = year * 12 + month;
             } else {
                 monthCount = year * 12 + month + 1;

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

@@ -260,7 +260,7 @@ public class EncryUtil {
      **/
     public static boolean checkSign(HttpServletRequest request, String accessSecret) {
         Enumeration<?> pNames = request.getParameterNames();
-        Map<String, Object> params = new HashMap<String, Object>();
+        Map<String, Object> params = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         while (pNames.hasMoreElements()) {
             String pName = (String) pNames.nextElement();
             if (SIGN_KEY.equals(pName)) {

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

@@ -947,7 +947,8 @@ public class FileUtils {
         try {
             br = new BufferedReader(new StringReader(text));
             bw = new BufferedWriter(new FileWriter(file));
-            char[] buf = new char[1024 * 64];          //字符缓冲区
+            //字符缓冲区
+            char[] buf = new char[1024 * 64];
             int len;
             while ((len = br.read(buf)) != -1) {
                 bw.write(buf, 0, len);

+ 15 - 9
sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/ListUtils.java

@@ -1,5 +1,7 @@
 package com.sckw.core.utils;
 
+import com.sckw.core.model.constant.Global;
+
 import java.util.*;
 
 /**
@@ -46,7 +48,8 @@ public class ListUtils {
     }
 
     public static void main(String[] args) {
-        String sortTyp = "asc"; // desc-倒叙  asc-正序
+        // desc-倒叙  asc-正序
+        String sortTyp = "asc";
         // 组装测试数据
         List<Map<String, Object>> list = initMapList();
 
@@ -103,18 +106,21 @@ public class ListUtils {
     public static Map<String, Object> sortMap(Map<String, Object> map, String sortTyp) {
         try {
             if ("desc".equals(sortTyp)) {
-
-                Set<String> sortSet = new TreeSet<>(Comparator.reverseOrder()); // 定义个倒叙的set
-                sortSet.addAll(map.keySet()); // 获取全部key,添加后就自然倒序了
+                // 定义个倒叙的set
+                Set<String> sortSet = new TreeSet<>(Comparator.reverseOrder());
+                // 获取全部key,添加后就自然倒序了
+                sortSet.addAll(map.keySet());
 
                 Map<String, Object> resp = new LinkedHashMap<>();
                 for (String key : sortSet) {
-                    resp.put(key, map.get(key)); // 按顺序放入新map
+                    // 按顺序放入新map
+                    resp.put(key, map.get(key));
                 }
 
                 return resp;
             } else {
-                return new TreeMap<>(map); // TreeMap 本身就是正序的
+                // TreeMap 本身就是正序的
+                return new TreeMap<>(map);
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -146,19 +152,19 @@ public class ListUtils {
     private static List<Map<String, Object>> initMapList() {
         List<Map<String, Object>> lists = new ArrayList<>();
 
-        Map<String, Object> map = new HashMap<>();
+        Map<String, Object> map = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         map.put("name", "王五");
         map.put("age", 55);
         map.put("mobile", "15900001112");
         lists.add(map);
 
-        Map<String, Object> map1 = new HashMap<>();
+        Map<String, Object> map1 = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         map1.put("name", "李四");
         map1.put("age", 18);
         map1.put("mobile", "15900001111");
         lists.add(map1);
 
-        Map<String, Object> map2 = new HashMap<>();
+        Map<String, Object> map2 = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         map2.put("name", "赵六");
         map2.put("age", 58);
         map2.put("mobile", "13700001111");

+ 25 - 8
sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/StringUtils.java

@@ -1,6 +1,7 @@
 package com.sckw.core.utils;
 
 import com.sckw.core.exception.BusinessException;
+import com.sckw.core.model.constant.Global;
 
 import java.lang.reflect.InvocationTargetException;
 import java.util.*;
@@ -367,6 +368,20 @@ public class StringUtils {
         return false;
     }
 
+    /**
+     * 截取字符串从index到最后
+     *
+     * @param str
+     * @param index
+     * @return
+     */
+    public static String subStrFromIndexToEnd(String str, Integer index) {
+        if (StringUtils.isBlank(str) || str.length() <= index) {
+            return str;
+        }
+        return str.substring(str.length() - index);
+    }
+
     /**
      * 字符串转数组
      *
@@ -493,7 +508,7 @@ public class StringUtils {
      * @return url请求参数部分
      */
     public static Map<String, String> urlRequest(String url) {
-        Map<String, String> mapRequest = new HashMap<String, String>();
+        Map<String, String> mapRequest = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         String[] arrSplit = null;
         String strUrlParam = truncateUrlPage(url);
         if (strUrlParam == null) {
@@ -526,7 +541,7 @@ public class StringUtils {
      * @return url请求参数部分
      */
     public static Map<String, String> urlParams(String strUrlParam) {
-        Map<String, String> mapRequest = new HashMap<String, String>();
+        Map<String, String> mapRequest = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         String[] arrSplit = null;
         if (strUrlParam == null) {
             return mapRequest;
@@ -699,13 +714,15 @@ public class StringUtils {
             // already capitalized
             return str;
         }
-
-        final int newCodePoints[] = new int[strLen]; // cannot be longer than the char array
+        // cannot be longer than the char array
+        final int newCodePoints[] = new int[strLen];
         int outOffset = 0;
-        newCodePoints[outOffset++] = newCodePoint; // copy the first codepoint
+        // copy the first codepoint
+        newCodePoints[outOffset++] = newCodePoint;
         for (int inOffset = Character.charCount(firstCodepoint); inOffset < strLen; ) {
             final int codepoint = str.codePointAt(inOffset);
-            newCodePoints[outOffset++] = codepoint; // copy the remaining ones
+            // copy the remaining ones
+            newCodePoints[outOffset++] = codepoint;
             inOffset += Character.charCount(codepoint);
         }
         return new String(newCodePoints, 0, outOffset);
@@ -741,7 +758,7 @@ public class StringUtils {
     }
 
     public static void main(String[] args) {
-        Map<String, Object> param = new HashMap();
+        Map<String, Object> param = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         param.put("account", "17358629955");
         param.put("pwd", "123456");
         String template = "账号创建成功,欢迎使用危品汇!登录账号:${account},默认密码:${pwd}!";
@@ -750,7 +767,7 @@ public class StringUtils {
         }
         System.out.println(template);
 
-        Map<String, Object> m = new HashMap<>();
+        Map<String, Object> m = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         m.put("account", "han");
         m.put("pwd", "zhong");
         System.out.println(replace1(template, m));

+ 3 - 3
sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/workerUtils.java

@@ -121,9 +121,9 @@ public class workerUtils {
         // 上次生成ID的时间截
         lastTimestamp = timestamp;
         // 移位并通过或运算拼到一起组成64位的ID
-        return ((timestamp - twepoch) << timestampLeftShift) //
-                | (datacenterId << datacenterIdShift) //
-                | (workerId << workerIdShift) //
+        return ((timestamp - twepoch) << timestampLeftShift)
+                | (datacenterId << datacenterIdShift)
+                | (workerId << workerIdShift)
                 | sequence;
     }
 

+ 1 - 1
sckw-common/sckw-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -1,7 +1,7 @@
 com.sckw.core.aspect.DaoAspect
 com.sckw.core.exception.GlobalSystemExceptionHandler
 com.sckw.core.web.config.CustomConfig
-com.sckw.core.filter.RequestCheckFilter
+com.sckw.core.filter.LoginFilter
 com.sckw.core.config.MybatisPlusConfig
 com.sckw.core.config.JacksonConfig
 com.sckw.core.filter.ExceptionFilterConfig

+ 2 - 1
sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/utils/ExcelUtil.java

@@ -7,6 +7,7 @@ import com.alibaba.excel.write.metadata.WriteSheet;
 import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
 import com.alibaba.fastjson.JSONObject;
 import com.sckw.core.common.enums.NumberConstant;
+import com.sckw.core.model.constant.Global;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.annotation.ExcelContext;
 import com.sckw.excel.annotation.ExcelSelected;
@@ -214,7 +215,7 @@ public class ExcelUtil {
      * @return Map<下拉框列索引, 下拉框内容> map
      */
     private static <T> Map<Integer, ExcelSelectedResolve> resolveSelectedAnnotation(Class<T> head) {
-        Map<Integer, ExcelSelectedResolve> selectedMap = new HashMap<>();
+        Map<Integer, ExcelSelectedResolve> selectedMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
 
         // getDeclaredFields(): 返回全部声明的属性;getFields(): 返回public类型的属性
         Field[] fields = head.getDeclaredFields();

+ 2 - 4
sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwWaybillOrder.java

@@ -1,13 +1,11 @@
 package com.sckw.mongo.model;
 
-import com.fasterxml.jackson.annotation.JsonIgnore;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
 import org.springframework.data.annotation.Id;
 import org.springframework.data.mongodb.core.mapping.Document;
-import org.springframework.data.mongodb.core.mapping.Field;
 
 import java.math.BigDecimal;
 import java.util.Date;
@@ -324,7 +322,7 @@ public class SckwWaybillOrder{
     /**
      * 装货所在地区
      */
-    private Integer loadCityCode;
+    private String loadCityCode;
 
     /**
      * 装货所属区域名称
@@ -369,7 +367,7 @@ public class SckwWaybillOrder{
     /**
      * 卸货所在地区
      */
-    private Integer unloadCityCode;
+    private String unloadCityCode;
 
     /**
      * 卸货所属区域名称

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

@@ -51,6 +51,10 @@ public class RedisConstant {
      * 合同签约完成更新物流订单状态锁key
      */
     public static final String LOGISTICS_ORDER_CONTRACT_UPDATE_KEY = "order:trade:logistics:update:%s";
+    /**
+     * 生成贸易订单号锁key
+     */
+    public static final String TORDER_NO_GENERATE_KEY = "order:trade:no:generate:%s";
 
     /**
      * 消费请求有效时间(秒)

+ 26 - 1
sckw-common/sckw-common-redis/src/main/java/com/sckw/redis/utils/RedissonUtils.java

@@ -283,6 +283,13 @@ public class RedissonUtils {
         }
     }
 
+    /**
+     * 原子增加
+     *
+     * @param name
+     * @param expired
+     * @return
+     */
     public static Long getAtomicLong(String name, Long expired) {
         RAtomicLong atomicLong = redissonUtils.redissonClient.getAtomicLong(name);
         long number = atomicLong.incrementAndGet();
@@ -290,6 +297,13 @@ public class RedissonUtils {
         return number;
     }
 
+    /**
+     * 原子减少
+     *
+     * @param name
+     * @param expired
+     * @return
+     */
     public static Long decrementAndGet(String name, Long expired) {
         RAtomicLong atomicLong = redissonUtils.redissonClient.getAtomicLong(name);
         long number = atomicLong.decrementAndGet();
@@ -297,7 +311,18 @@ public class RedissonUtils {
         return number;
     }
 
-
+    /**
+     * 原子set
+     *
+     * @param name
+     * @param value
+     * @param expired
+     */
+    public static void setAtomicLong(String name, Long value, Long expired) {
+        RAtomicLong atomicLong = redissonUtils.redissonClient.getAtomicLong(name);
+        atomicLong.set(value);
+        atomicLong.expire(expired <= 0 ? Duration.ofSeconds(DEFAULT_EXPIRED) : Duration.ofSeconds(expired));
+    }
 
 
     public static void main(String[] args) {

+ 6 - 6
sckw-common/sckw-common-redis/src/main/java/com/sckw/redis/utils/TestService.java

@@ -21,13 +21,13 @@ public class TestService {
 
         RBucket<Object> mytest = redisson.getBucket("mytest");
         mytest.set("value");
-        System.out.println(mytest.get());//value
+        System.out.println(mytest.get());
         mytest.set("value2");
-        System.out.println(mytest.get());//value2
-        boolean b = mytest.compareAndSet("value2", "value3"); //true
-        System.out.println(mytest.get());//value3
-        boolean b1 = mytest.compareAndSet("value2", "value4"); //flase
-        System.out.println(mytest.get());//value3
+        System.out.println(mytest.get());
+        boolean b = mytest.compareAndSet("value2", "value3");
+        System.out.println(mytest.get());
+        boolean b1 = mytest.compareAndSet("value2", "value4");
+        System.out.println(mytest.get());
     }
 
     public static void main(String[] args) {

+ 4 - 3
sckw-common/sckw-common-stream/src/main/java/com/sckw/stream/utils/SmsUtil.java

@@ -7,13 +7,14 @@ import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
 import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
 import com.aliyuncs.profile.DefaultProfile;
 import com.aliyuncs.profile.IClientProfile;
+import com.sckw.core.model.constant.Global;
 import com.sckw.stream.enums.SmsCodeEnum;
 import com.sckw.stream.model.SckwSms;
 import java.util.HashMap;
 
 public class SmsUtil {
-    //替换成自己申请的accessKeyId
-    private static String accessKeyId = "LTAI5tEyvh6N9HhxDMkW2MqT"; //替换成自己申请的accessKeySecret
+    //替换成自己申请的accessKeySecret
+    private static String accessKeyId = "LTAI5tEyvh6N9HhxDMkW2MqT";
     private static String accessKeySecret = "ClQ2q9fxytnhDraX7axAOjlK0zGJAP";
     static final String product = "Dysmsapi";
     static final String domain = "dysmsapi.aliyuncs.com";
@@ -58,7 +59,7 @@ public class SmsUtil {
         sckwSms.setPhone("17358629955");
         sckwSms.setSignName("矿拉拉");
         sckwSms.setTemplateCode(SmsCodeEnum.VERIFICATION_CODE);
-        sckwSms.setParams(new HashMap(){{put("code", "123456");}});
+        sckwSms.setParams(new HashMap<>(Global.NUMERICAL_SIXTEEN){{put("code", "123456");}});
         try {
             //发送短信 {"code":"123456"}
             SmsUtil.sendSms(sckwSms.getPhone(), sckwSms.getSignName(), sckwSms.getTemplateCode().getName(), JSON.toJSONString(sckwSms.getParams()));

+ 10 - 2
sckw-modules-api/sckw-payment-api/src/main/java/com/sckw/payment/api/model/constant/ChannelEnum.java

@@ -9,8 +9,16 @@ public enum ChannelEnum {
     HF("11", "1", "huifu", "汇付渠道"),
     XS("12", "2", "newpay", "新生渠道"),
     ZX("13", "3", "citic", "中信渠道");
-    private final String code;//预付款+支付渠道
-    private final String value;//渠道对应的字典值
+
+    /**
+     * 预付款+支付渠道
+     */
+    private final String code;
+
+    /**
+     * 渠道对应的字典值
+     */
+    private final String value;
     private final String channel;
     private final String desc;
 

+ 1 - 1
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractLogisticsService.java

@@ -575,7 +575,7 @@ public class KwcContractLogisticsService {
      * @date: 2023/7/18
      */
     private List<QueryListResVo> getQueryListResVos(List<QueryListResDto> queryListResDtos) {
-        Map<Long, UserCacheResDto> longUserCacheResDtoMap = new HashMap<>();
+        Map<Long, UserCacheResDto> longUserCacheResDtoMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         List<Long> initiateByList = queryListResDtos.stream().map(QueryListResDto::getInitiateBy).toList();
         if (CollectionUtils.isNotEmpty(initiateByList)) {
             longUserCacheResDtoMap = remoteSystemService.queryUserCacheMapByIds(initiateByList);

+ 2 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfDriverController.java

@@ -3,6 +3,7 @@ package com.sckw.fleet.controller;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.sckw.core.exception.SystemException;
+import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.StringUtils;
@@ -62,7 +63,7 @@ public class KwfDriverController {
 
         //获取司机信息
         Long id = null;
-        List<Map<String, Object>> drivers = driverService.findList(new HashMap(){{ put("phone", phone); }});
+        List<Map<String, Object>> drivers = driverService.findList(new HashMap<>(Global.NUMERICAL_SIXTEEN){{ put("phone", phone); }});
         if (com.sckw.core.utils.CollectionUtils.isEmpty(drivers)) {
             return HttpResult.ok();
         } else {

+ 7 - 7
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfTruckController.java

@@ -84,7 +84,7 @@ public class KwfTruckController {
         }
 
         Long id = null;
-        List<Map<String, Object>> trucks = truckService.findList(new HashMap(){{ put("wholeTruckNo", truckNo); }});
+        List<Map<String, Object>> trucks = truckService.findList(new HashMap<>(Global.NUMERICAL_SIXTEEN){{ put("wholeTruckNo", truckNo); }});
         if (com.sckw.core.utils.CollectionUtils.isEmpty(trucks)) {
             return HttpResult.ok();
         } else {
@@ -235,14 +235,14 @@ public class KwfTruckController {
      * @date 2023/7/26
      **/
     @PostMapping("/findTruck")
-    public HttpResult findTruck(@RequestBody Map params) {
+    public HttpResult findTruck(@RequestBody Map<String, Object> params) {
         params.put("entId", LoginUserHolder.getEntId());
         List<KwfTruckVo> trucks = truckService.findPage(params);
 
-        List data = new ArrayList();
+        List<Map<String, Object>> data = new ArrayList();
         for (KwfTruckVo truck:trucks) {
             int bbb = new Random().nextInt(10) / 4;
-            data.add(new HashMap(){{put("truckNo", truck.getTruckNo());
+            data.add(new HashMap<>(Global.NUMERICAL_SIXTEEN){{put("truckNo", truck.getTruckNo());
                 put("entId", truck.getEntId());
                 put("firmName", truck.getFirmName());
                 put("businessStatus", truck.getTruckNo().contains("1") ? 0 : 1);
@@ -264,11 +264,11 @@ public class KwfTruckController {
             return HttpResult.ok();
         }
 
-        List data = new ArrayList();
+        List<Map<String, Object>> data = new ArrayList();
         for (String truckNo:truckNos) {
             int aaa = new Random().nextInt(10) / 3;
             int bbb = new Random().nextInt(10) / 4;
-            data.add(new HashMap(){{
+            data.add(new HashMap<>(Global.NUMERICAL_SIXTEEN){{
                 put("truckNo", truckNo);
                 put("speed", new Random().nextInt(100));
                 put("lat", "29.48"+new Random().nextInt(10000));
@@ -361,7 +361,7 @@ public class KwfTruckController {
      **/
     @GetMapping("/findDetailByTruckNo")
     public HttpResult findDetailByTruckNo(String truckNo) {
-        Map detail = new HashMap();
+        Map<String, Object> detail = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         detail.put("truckNo", truckNo);
         detail.put("driverName", "赵先生");
         detail.put("driverPhone", "17358629955");

+ 6 - 5
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dubbo/RemoteFleetServiceImpl.java

@@ -1,5 +1,6 @@
 package com.sckw.fleet.dubbo;
 
+import com.sckw.core.model.constant.Global;
 import com.sckw.core.utils.BeanUtils;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.fleet.api.RemoteFleetService;
@@ -41,8 +42,8 @@ public class RemoteFleetServiceImpl implements RemoteFleetService {
     @Override
     public Map<Long, RDriverVo> findDriver(List<Long> driverIds) {
         /**获取数据**/
-        Map<Long, RDriverVo> driverMap = new HashMap();
-        List<Map<String, Object>> drivers = driverDao.findList(new HashMap(){{put("ids", driverIds);}});
+        Map<Long, RDriverVo> driverMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
+        List<Map<String, Object>> drivers = driverDao.findList(new HashMap<>(Global.NUMERICAL_SIXTEEN){{put("ids", driverIds);}});
         if (CollectionUtils.isEmpty(drivers)) {
             return driverMap;
         }
@@ -85,7 +86,7 @@ public class RemoteFleetServiceImpl implements RemoteFleetService {
      **/
     @Override
     public RDriverDetailVo findDriverDetai(String phone) {
-        List<KwfDriver> drivers = driverDao.findDriver(new HashMap(){{put("phone", phone);}});
+        List<KwfDriver> drivers = driverDao.findDriver(new HashMap<>(Global.NUMERICAL_SIXTEEN){{put("phone", phone);}});
         if (CollectionUtils.isEmpty(drivers)) {
             return null;
         }
@@ -118,8 +119,8 @@ public class RemoteFleetServiceImpl implements RemoteFleetService {
     @Override
     public Map<String, RTruckVo> findTruck(List<String> truckNos) {
         /**获取数据**/
-        Map<String, RTruckVo> truckMap = new HashMap();
-        List<Map<String, Object>> trucks = truckDao.findList(new HashMap(){{put("truckNos", truckNos);}});
+        Map<String, RTruckVo> truckMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
+        List<Map<String, Object>> trucks = truckDao.findList(new HashMap<>(Global.NUMERICAL_SIXTEEN){{put("truckNos", truckNos);}});
         if (CollectionUtils.isEmpty(trucks)) {
             return truckMap;
         }

+ 4 - 4
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfFleetService.java

@@ -93,7 +93,7 @@ public class KwfFleetService {
      **/
     public HttpResult add(KwfFleetDto params) {
         /**唯一性交易**/
-        List<Map<String, Object>> fleets = fleetDao.findList(new HashMap(){{
+        List<Map<String, Object>> fleets = fleetDao.findList(new HashMap<>(Global.NUMERICAL_SIXTEEN){{
             put("wholeName", params.getName()); put("entId", LoginUserHolder.getEntId());}});
         if (!CollectionUtils.isEmpty(fleets)) {
             return HttpResult.error("车队班组已存在!");
@@ -115,7 +115,7 @@ public class KwfFleetService {
      **/
     public HttpResult update(KwfFleetDto params) {
         /**唯一性交易**/
-        List<Map<String, Object>> fleets = fleetDao.findList(new HashMap(){{
+        List<Map<String, Object>> fleets = fleetDao.findList(new HashMap<>(Global.NUMERICAL_SIXTEEN){{
             put("name", params.getName()); put("entId", LoginUserHolder.getEntId());}});
         //校验list中对象key值是否存在与value不一致的情况
         boolean bool = CollectionUtils.listByKeyValueV1(fleets, "id", params.getId());
@@ -166,7 +166,7 @@ public class KwfFleetService {
     public Map<String, Object> findTruckList(Map<String, Object> params) {
         //全量数据统计
         params.put("entId", LoginUserHolder.getEntId());
-        List<KwfFleetTruckCountVo> truckCounts = fleetDao.findTruckList(new HashMap(){{put("entId", LoginUserHolder.getEntId());}});
+        List<KwfFleetTruckCountVo> truckCounts = fleetDao.findTruckList(new HashMap<>(Global.NUMERICAL_SIXTEEN){{put("entId", LoginUserHolder.getEntId());}});
         KwfFleetTruckCountVo truck = new KwfFleetTruckCountVo();
         truck.setFleetTotal(truckCounts != null ? truckCounts.size() : Global.NUMERICAL_ZERO);
         for (KwfFleetTruckCountVo truckCount:truckCounts) {
@@ -179,7 +179,7 @@ public class KwfFleetService {
         truckCounts = fleetDao.findTruckList(params);
 
         //返回数据
-        Map result = new HashMap();
+        Map<String, Object> result = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         result.put("truckCount", truck);
         result.put("truckCounts", truckCounts);
         return result;

+ 35 - 24
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckReportService.java

@@ -28,6 +28,7 @@ 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.checkerframework.checker.units.qual.K;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -96,7 +97,7 @@ public class KwfTruckReportService {
         countList.add(allCount);
 
         /**数据处理**/
-        Map<String, Integer> authStatusMap = new HashMap(){{put("正常", 1); put("临时", 2); put("异常", 3);}};
+        Map<String, Integer> authStatusMap = new HashMap<>(Global.NUMERICAL_SIXTEEN){{put("正常", 1); put("临时", 2); put("异常", 3);}};
         for(Map.Entry<String, Integer> entry:authStatusMap.entrySet()){
             System.out.println(entry.getKey()+"--->"+entry.getValue());
             KwfTableTopCount count = new KwfTableTopCount();
@@ -111,7 +112,7 @@ public class KwfTruckReportService {
         }
 
         /**数据组装**/
-        Map tableCount = new HashMap();
+        Map<String, Object> tableCount = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         tableCount.put("tableTop", countList);
         tableCount.put("tableBottom", tatol);
         return tableCount;
@@ -233,7 +234,7 @@ public class KwfTruckReportService {
 
             /**车辆信息**/
             //校验车辆档案是否存在
-            List<KwfTruck> trucks = truckDao.findTruck(new HashMap() {{ put("truckNo", truckReportExcel.getTruckNo());}});
+            List<KwfTruck> trucks = truckDao.findTruck(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{ put("truckNo", truckReportExcel.getTruckNo());}});
             if (CollectionUtils.isEmpty(trucks)) {
                 //车辆信息
                 KwfTruck truckParams = new KwfTruck();
@@ -250,7 +251,7 @@ public class KwfTruckReportService {
             } else {
                 //校验车辆是否已上报
                 KwfTruck truck = trucks.get(Global.NUMERICAL_ZERO);
-                List<Map<String, Object>> reports = truckReportDao.findList(new HashMap() {{
+                List<Map<String, Object>> reports = truckReportDao.findList(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{
                     put("truckId", truck.getId());
                     put("entId", LoginUserHolder.getEntId());
                 }});
@@ -263,7 +264,7 @@ public class KwfTruckReportService {
 
             /**档案信息**/
             //校验司机档案是否存在
-            List<KwfDriver> drivers = driverDao.findDriver(new HashMap() {{put("phone", truckReportExcel.getPhone());}});
+            List<KwfDriver> drivers = driverDao.findDriver(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{put("phone", truckReportExcel.getPhone());}});
             if (CollectionUtils.isEmpty(drivers)) {
                 KwfDriver driverParams = new KwfDriver();
                 driverParams.setName(truckReportExcel.getName());
@@ -280,7 +281,7 @@ public class KwfTruckReportService {
             } else {
                 //校验司机是否已上报
                 KwfDriver driver = drivers.get(0);
-                List<Map<String, Object>> reports = truckReportDao.findList(new HashMap() {{
+                List<Map<String, Object>> reports = truckReportDao.findList(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{
                     put("driverId", driver.getId());
                     put("entId", LoginUserHolder.getEntId());
                 }});
@@ -323,7 +324,7 @@ public class KwfTruckReportService {
 
             /**车辆信息**/
             //校验车辆档案是否存在
-            List<KwfTruck> trucks = truckDao.findTruck(new HashMap() {{ put("truckNo", reportDto.getTruckNo());}});
+            List<KwfTruck> trucks = truckDao.findTruck(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{ put("truckNo", reportDto.getTruckNo());}});
             if (CollectionUtils.isEmpty(trucks)) {
                 //车辆信息
                 KwfTruck truckParams = new KwfTruck();
@@ -340,7 +341,7 @@ public class KwfTruckReportService {
             } else {
                 //校验车辆是否已上报
                 KwfTruck truck = trucks.get(Global.NUMERICAL_ZERO);
-                List<Map<String, Object>> reports = truckReportDao.findList(new HashMap() {{
+                List<Map<String, Object>> reports = truckReportDao.findList(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{
                     put("truckId", truck.getId());
                     put("entId", LoginUserHolder.getEntId());
                 }});
@@ -349,11 +350,16 @@ public class KwfTruckReportService {
                 } else {
                     continue;
                 }
+
+                //校验企业是否添加该车辆
+                KwfTruck truckEnt = new KwfTruck();
+                truckEnt.setId(truck.getId());
+                truckService.truckEntEdit(truckEnt);
             }
 
             /**档案信息**/
             //校验司机档案是否存在
-            List<KwfDriver> drivers = driverDao.findDriver(new HashMap() {{put("phone", reportDto.getPhone());}});
+            List<KwfDriver> drivers = driverDao.findDriver(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{put("phone", reportDto.getPhone());}});
             if (CollectionUtils.isEmpty(drivers)) {
                 KwfDriver driverParams = new KwfDriver();
                 driverParams.setName(reportDto.getName());
@@ -370,7 +376,7 @@ public class KwfTruckReportService {
             } else {
                 //校验司机是否已上报
                 KwfDriver driver = drivers.get(0);
-                List<Map<String, Object>> reports = truckReportDao.findList(new HashMap() {{
+                List<Map<String, Object>> reports = truckReportDao.findList(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{
                     put("driverId", driver.getId());
                     put("entId", LoginUserHolder.getEntId());
                 }});
@@ -379,6 +385,11 @@ public class KwfTruckReportService {
                 } else {
                     continue;
                 }
+
+                //校验企业是否添加该司机
+                KwfDriver driverEnt = new KwfDriver();
+                driverEnt.setId(driver.getId());
+                driverService.driverEntEdit(driverEnt);
             }
 
             count += truckReportDao.insert(truckReport);
@@ -404,7 +415,7 @@ public class KwfTruckReportService {
         }
 
         /**更新**/
-        List<Map<String, Object>> reports = truckReportDao.findList(new HashMap() {{
+        List<Map<String, Object>> reports = truckReportDao.findList(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{
             put("driverId", params.getDriverId());
             put("entId", LoginUserHolder.getEntId());
         }});
@@ -521,11 +532,11 @@ public class KwfTruckReportService {
 
             /**车辆信息**/
             //校验车辆档案是否存在
-            List<KwfTruck> trucks = truckDao.findTruck(new HashMap() {{put("truckNo", reportDto.getTruckNo());}});
+            List<KwfTruck> trucks = truckDao.findTruck(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{put("truckNo", reportDto.getTruckNo());}});
             if (!CollectionUtils.isEmpty(trucks)) {
                 //校验车辆是否已上报
                 KwfTruck truck = trucks.get(Global.NUMERICAL_ZERO);
-                List<Map<String, Object>> reports = truckReportDao.findList(new HashMap() {{
+                List<Map<String, Object>> reports = truckReportDao.findList(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{
                     put("truckId", truck.getId());
                     put("entId", LoginUserHolder.getEntId());
                 }});
@@ -537,11 +548,11 @@ public class KwfTruckReportService {
 
             /**档案信息**/
             //校验司机档案是否存在
-            List<KwfDriver> drivers = driverDao.findDriver(new HashMap() {{ put("phone", reportDto.getPhone()); }});
+            List<KwfDriver> drivers = driverDao.findDriver(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{ put("phone", reportDto.getPhone()); }});
             if (!CollectionUtils.isEmpty(drivers)) {
                 //校验司机是否已上报
                 KwfDriver driver = drivers.get(Global.NUMERICAL_ZERO);
-                List<Map<String, Object>> reports = truckReportDao.findList(new HashMap() {{
+                List<Map<String, Object>> reports = truckReportDao.findList(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{
                     put("driverId", driver.getId());
                     put("entId", LoginUserHolder.getEntId());
                 }});
@@ -555,7 +566,7 @@ public class KwfTruckReportService {
         }
 
         /**返回数据**/
-        Map<String, Object> resultMap = new HashMap<>();
+        Map<String, Object> resultMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         resultMap.put("haveCount", haveCount);
         resultMap.put("errorCount", errorCount);
         resultMap.put("fail", haveCount + errorCount);
@@ -574,11 +585,11 @@ public class KwfTruckReportService {
     public boolean checkReport(KwfTruckReportDto reportDto) {
         /**车辆信息**/
         //校验车辆档案是否存在
-        List<KwfTruck> trucks = truckDao.findTruck(new HashMap() {{ put("truckNo", reportDto.getTruckNo());}});
+        List<KwfTruck> trucks = truckDao.findTruck(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{ put("truckNo", reportDto.getTruckNo());}});
         if (!CollectionUtils.isEmpty(trucks)) {
             //校验车辆是否已上报
             KwfTruck truck = trucks.get(Global.NUMERICAL_ZERO);
-            List<Map<String, Object>> reports = truckReportDao.findList(new HashMap() {{
+            List<Map<String, Object>> reports = truckReportDao.findList(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{
                 put("truckId", truck.getId());
                 put("entId", LoginUserHolder.getEntId());
             }});
@@ -589,11 +600,11 @@ public class KwfTruckReportService {
 
         /**档案信息**/
         //校验司机档案是否存在
-        List<KwfDriver> drivers = driverDao.findDriver(new HashMap() {{ put("phone", reportDto.getPhone()); }});
+        List<KwfDriver> drivers = driverDao.findDriver(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{ put("phone", reportDto.getPhone()); }});
         if (!CollectionUtils.isEmpty(drivers)) {
             //校验司机是否已上报
             KwfDriver driver = drivers.get(Global.NUMERICAL_ZERO);
-            List<Map<String, Object>> reports = truckReportDao.findList(new HashMap() {{
+            List<Map<String, Object>> reports = truckReportDao.findList(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{
                 put("driverId", driver.getId());
                 put("entId", LoginUserHolder.getEntId());
             }});
@@ -717,11 +728,11 @@ public class KwfTruckReportService {
 
             /**车辆信息**/
             //校验车辆档案是否存在
-            List<KwfTruck> trucks = truckDao.findTruck(new HashMap() {{ put("truckNo", truckReportExcel.getTruckNo());}});
+            List<KwfTruck> trucks = truckDao.findTruck(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{ put("truckNo", truckReportExcel.getTruckNo());}});
             if (!CollectionUtils.isEmpty(trucks)) {
                 //校验车辆是否已上报
                 KwfTruck truck = trucks.get(Global.NUMERICAL_ZERO);
-                List<Map<String, Object>> reports = truckReportDao.findList(new HashMap() {{
+                List<Map<String, Object>> reports = truckReportDao.findList(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{
                     put("truckId", truck.getId());
                     put("entId", LoginUserHolder.getEntId());
                 }});
@@ -732,11 +743,11 @@ public class KwfTruckReportService {
 
             /**档案信息**/
             //校验司机档案是否存在
-            List<KwfDriver> drivers = driverDao.findDriver(new HashMap() {{ put("phone", truckReportExcel.getPhone()); }});
+            List<KwfDriver> drivers = driverDao.findDriver(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{ put("phone", truckReportExcel.getPhone()); }});
             if (!CollectionUtils.isEmpty(drivers)) {
                 //校验司机是否已上报
                 KwfDriver driver = drivers.get(Global.NUMERICAL_ZERO);
-                List<Map<String, Object>> reports = truckReportDao.findList(new HashMap() {{
+                List<Map<String, Object>> reports = truckReportDao.findList(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{
                     put("driverId", driver.getId());
                     put("entId", LoginUserHolder.getEntId());
                 }});

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

@@ -166,8 +166,8 @@ public class CommonBusinessService {
         allEntIds.addAll(ourEntIds);
         List<UserCacheResDto> userCacheResDtos = remoteSystemService.queryUserCacheByIds(userIds);
         List<EntCacheResDto> entCacheResDtos = remoteSystemService.queryEntCacheByIds(allEntIds);
-        Map<Long, String> userMap = new HashMap<>();
-        Map<Long, String> entMap = new HashMap<>();
+        Map<Long, String> userMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
+        Map<Long, String> entMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         if (!CollectionUtils.isEmpty(userCacheResDtos)) {
             userMap = userCacheResDtos.stream().collect(Collectors.toMap(UserCacheResDto::getId, UserCacheResDto::getName, (oldValue, newValue) -> newValue));
         }

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

@@ -102,8 +102,8 @@ public class KwmCooperateApplyService {
         allEntIds.addAll(targetEntIds);
         List<UserCacheResDto> userCacheResDtos = remoteSystemService.queryUserCacheByIds(userIds);
         List<EntCacheResDto> entCacheResDtos = remoteSystemService.queryEntCacheByIds(allEntIds);
-        Map<Long, String> userMap = new HashMap<>();
-        Map<Long, String> entMap = new HashMap<>();
+        Map<Long, String> userMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
+        Map<Long, String> entMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         if (!CollectionUtils.isEmpty(userCacheResDtos)) {
             userMap = userCacheResDtos.stream().collect(Collectors.toMap(UserCacheResDto::getId, UserCacheResDto::getName, (oldValue, newValue) -> newValue));
         }
@@ -398,7 +398,7 @@ public class KwmCooperateApplyService {
                 in(KwmCooperateType::getStatus, statusList).
                 in(KwmCooperateType::getCooperateId, kwmCooperates.stream().map(KwmCooperate::getId).toList());
         List<KwmCooperateType> kwmCooperateTypes = kwmCooperateTypeMapper.selectList(wrapper2);
-        Map<Long, List<KwmCooperateType>> map = new HashMap<>();
+        Map<Long, List<KwmCooperateType>> map = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         if (CollectionUtils.isNotEmpty(kwmCooperateTypes)) {
             map = kwmCooperateTypes.stream().collect(Collectors.groupingBy(KwmCooperateType::getCooperateId));
         }

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

@@ -439,7 +439,7 @@ public class KwmCooperateManageService {
         wrapper.in(KwmCooperateType::getCooperateId, cooperateIdList);
         wrapper.eq(KwmCooperateType::getDelFlag, Global.NO);
         List<KwmCooperateType> kwmCooperateTypes = kwmCooperateTypeMapper.selectList(wrapper);
-        Map<Long, List<KwmCooperateType>> collect = new HashMap<>();
+        Map<Long, List<KwmCooperateType>> collect = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         if (CollectionUtils.isNotEmpty(kwmCooperateTypes)) {
             collect = kwmCooperateTypes.stream().collect(Collectors.groupingBy(KwmCooperateType::getCooperateId));
         }
@@ -452,7 +452,7 @@ public class KwmCooperateManageService {
             allEntIdList.add(item.getInviteeEntId());
         });
         List<EntCacheResDto> entCacheResDtos = remoteSystemService.queryEntCacheByIds(allEntIdList);
-        Map<Long, EntCacheResDto> entMap = new HashMap<>();
+        Map<Long, EntCacheResDto> entMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         if (CollectionUtils.isNotEmpty(entCacheResDtos)) {
             entMap = entCacheResDtos.stream().collect(Collectors.toMap(EntCacheResDto::getId, e -> e, (n, o) -> n));
         }

+ 2 - 1
sckw-modules/sckw-message/src/main/java/com/sckw/message/service/SmsService.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSON;
 import com.sckw.core.common.enums.enums.DictEnum;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.exception.BusinessException;
+import com.sckw.core.model.constant.Global;
 import com.sckw.core.utils.NumberUtils;
 import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.context.LoginUserHolder;
@@ -49,7 +50,7 @@ public class SmsService {
         if (Boolean.TRUE.equals(RedissonUtils.exists(key))) {
             throw new BusinessException("请勿频繁获取短信验证码!");
         }
-        Map<String, Object> params = new HashMap<>();
+        Map<String, Object> params = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         params.put("code", NumberUtils.createRandomVcode());
         SckwSms sckwSms = new SckwSms();
         sckwSms.setPhone(param.getPhone()).setType(type).setTemplateCode(SmsCodeEnum.VERIFICATION_CODE)

+ 40 - 10
sckw-modules/sckw-order/src/main/java/com/sckw/order/controller/KwoTradeOrderController.java

@@ -1,10 +1,15 @@
 package com.sckw.order.controller;
 
+import com.sckw.core.exception.BusinessException;
+import com.sckw.core.model.enums.OrderRuleEnum;
+import com.sckw.core.model.enums.RedisOrderGenerateEnum;
+import com.sckw.core.utils.OrderGenerateSeqNoUtils;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.order.model.vo.req.*;
 import com.sckw.order.serivce.KwoTradeOrderService;
 import io.seata.spring.annotation.GlobalTransactional;
 import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.MediaType;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -17,6 +22,7 @@ import org.springframework.web.bind.annotation.*;
 @RestController
 @RequestMapping(value = "/kwoTradeOrder")
 @RequiredArgsConstructor
+@Slf4j
 public class KwoTradeOrderController {
 
     private final KwoTradeOrderService kwoTradeOrderService;
@@ -31,8 +37,14 @@ public class KwoTradeOrderController {
     @GlobalTransactional(name = "default_tx_group")
     @PostMapping(value = "/addPurchaseOrderDraft", produces = MediaType.APPLICATION_JSON_VALUE)
     public HttpResult addPurchaseOrderDraft(@RequestBody @Validated PurchaseOrderDraftParam param) {
-        kwoTradeOrderService.addPurchaseOrderDraft(param);
-        return HttpResult.ok("采购下单草稿保存成功");
+        try {
+            kwoTradeOrderService.addPurchaseOrderDraft(param);
+            return HttpResult.ok("采购下单草稿保存成功");
+        } catch (Exception e) {
+            OrderGenerateSeqNoUtils.getSeqNoMinusOne(RedisOrderGenerateEnum.TRADE_ORDER, OrderRuleEnum.TRADE_ORDER);
+            log.error("采购下单草稿 error:{}", e.getMessage(), e);
+            throw new BusinessException("采购下单草稿提交失败!");
+        }
     }
 
     /**
@@ -45,8 +57,14 @@ public class KwoTradeOrderController {
     @GlobalTransactional(name = "default_tx_group")
     @PostMapping(value = "/addPurchaseOrderSubmit", produces = MediaType.APPLICATION_JSON_VALUE)
     public HttpResult addPurchaseOrderSubmit(@RequestBody @Validated PurchaseOrderParam purchaseOrderParam) {
-        kwoTradeOrderService.addPurchaseOrderSubmit(purchaseOrderParam);
-        return HttpResult.ok("采购下单提交成功");
+        try {
+            kwoTradeOrderService.addPurchaseOrderSubmit(purchaseOrderParam);
+            return HttpResult.ok("采购下单提交成功");
+        } catch (Exception e) {
+            OrderGenerateSeqNoUtils.getSeqNoMinusOne(RedisOrderGenerateEnum.TRADE_ORDER, OrderRuleEnum.TRADE_ORDER);
+            log.error("采购下单提交 error:{}", e.getMessage(), e);
+            throw new BusinessException("采购下单提交失败!");
+        }
     }
 
     /**
@@ -59,8 +77,14 @@ public class KwoTradeOrderController {
     @GlobalTransactional(name = "default_tx_group")
     @PostMapping(value = "/addValetOrderDraft", produces = MediaType.APPLICATION_JSON_VALUE)
     public HttpResult addValetOrderDraft(@RequestBody @Validated ValetOrderDraftParam param) {
-        kwoTradeOrderService.addValetOrderDraft(param);
-        return HttpResult.ok("代客下单草稿保存成功");
+        try {
+            kwoTradeOrderService.addValetOrderDraft(param);
+            return HttpResult.ok("代客下单草稿保存成功");
+        } catch (Exception e) {
+            OrderGenerateSeqNoUtils.getSeqNoMinusOne(RedisOrderGenerateEnum.TRADE_ORDER, OrderRuleEnum.TRADE_ORDER);
+            log.error("代客下单草稿 error:{}", e.getMessage(), e);
+            throw new BusinessException("代客下单草稿提交失败!");
+        }
     }
 
 
@@ -74,8 +98,14 @@ public class KwoTradeOrderController {
     @GlobalTransactional(name = "default_tx_group")
     @PostMapping(value = "/addValetOrderSubmit", produces = MediaType.APPLICATION_JSON_VALUE)
     public HttpResult addValetOrderSubmit(@RequestBody @Validated ValetOrderParam valetOrderParam) {
-        kwoTradeOrderService.addValetOrderSubmit(valetOrderParam);
-        return HttpResult.ok("代客下单提交成功");
+        try {
+            kwoTradeOrderService.addValetOrderSubmit(valetOrderParam);
+            return HttpResult.ok("代客下单提交成功");
+        } catch (Exception e) {
+            OrderGenerateSeqNoUtils.getSeqNoMinusOne(RedisOrderGenerateEnum.TRADE_ORDER, OrderRuleEnum.TRADE_ORDER);
+            log.error("代客下单提交 error:{}", e.getMessage(), e);
+            throw new BusinessException("代客下单提交失败!");
+        }
     }
 
     /**
@@ -87,7 +117,7 @@ public class KwoTradeOrderController {
      */
     @GetMapping("/detail")
     public HttpResult detail(@RequestParam Long id) {
-        return HttpResult.ok("贸易订单详情查询成功",kwoTradeOrderService.getDetail(id));
+        return HttpResult.ok("贸易订单详情查询成功", kwoTradeOrderService.getDetail(id));
     }
 
     /**
@@ -182,7 +212,7 @@ public class KwoTradeOrderController {
      */
     @GetMapping("/getAddressDropList")
     public HttpResult getAddressDropList() {
-        return HttpResult.ok("获取贸易订单地址下拉列表成功",kwoTradeOrderService.getAddressDropList());
+        return HttpResult.ok("获取贸易订单地址下拉列表成功", kwoTradeOrderService.getAddressDropList());
     }
 
 }

+ 4 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/dao/KwoTradeOrderMapper.java

@@ -3,6 +3,9 @@ package com.sckw.order.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.sckw.order.model.KwoTradeOrder;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
 
 /**
  * @desc: 交易订单(采购订单/销售订单)mapper
@@ -12,4 +15,5 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface KwoTradeOrderMapper extends BaseMapper<KwoTradeOrder> {
 
+    String getMaxOrderNoByDate(@Param("date") Date date);
 }

+ 41 - 13
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -1,5 +1,6 @@
 package com.sckw.order.serivce;
 
+import cn.hutool.core.date.DateTime;
 import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -11,10 +12,9 @@ import com.sckw.core.exception.BusinessException;
 import com.sckw.core.exception.CustomPromptException;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.enums.CooperateTypeEnum;
-import com.sckw.core.utils.BeanUtils;
-import com.sckw.core.utils.CollectionUtils;
-import com.sckw.core.utils.OrderGenerateUtils;
-import com.sckw.core.utils.StringUtils;
+import com.sckw.core.model.enums.OrderRuleEnum;
+import com.sckw.core.model.enums.RedisOrderGenerateEnum;
+import com.sckw.core.utils.*;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
@@ -47,7 +47,6 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.cloud.stream.function.StreamBridge;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.*;
@@ -89,8 +88,6 @@ public class KwoTradeOrderService {
     private final KwoTradeOrderContractService kwoTradeOrderContractService;
     private final KwoTradeOrderTrackService kwoTradeOrderTrackService;
 
-    private static final String ORDER_NO_PREFIX = "B";
-
     /**
      * @desc: 采购下单草稿
      * @author: yzc
@@ -99,8 +96,9 @@ public class KwoTradeOrderService {
      * @return: void
      */
     public void addPurchaseOrderDraft(PurchaseOrderDraftParam param) {
+        String orderNo = getOrderNo();
         KwoTradeOrder order = BeanUtils.copyProperties(param, KwoTradeOrder.class);
-        order.setEntId(LoginUserHolder.getEntId()).setTOrderNo(OrderGenerateUtils.generateOrderNo(ORDER_NO_PREFIX))
+        order.setEntId(LoginUserHolder.getEntId()).setTOrderNo(orderNo)
                 .setUnit(Objects.nonNull(param.getGoodsInfo()) ? param.getGoodsInfo().getUnit() : null)
                 .setSource(DictEnum.TORDER_SOURCE_1.getValue()).setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_0.getValue()));
         kwoTradeOrderMapper.insert(order);
@@ -140,7 +138,7 @@ public class KwoTradeOrderService {
                     .setGoodsName(goodsDetail.getName()).setGoodsType(goodsDetail.getGoodsType()).setGoodsCode(goodsDetail.getCode())
                     .setGoodsTaxRate(goodsDetail.getTaxRate()).setGoodsSpec(goodsDetail.getSpec()).setGoodsThumb(goodsDetail.getThumb());
         }
-        if (Objects.isNull(order.getUnitPrice())){
+        if (Objects.isNull(order.getUnitPrice())) {
             order.setUnitPrice(new BigDecimal("0.00"));
         }
         //单位信息
@@ -234,8 +232,9 @@ public class KwoTradeOrderService {
      * @return: void
      */
     public void addValetOrderDraft(ValetOrderDraftParam param) {
+        String orderNo = getOrderNo();
         KwoTradeOrder order = BeanUtils.copyProperties(param, KwoTradeOrder.class);
-        order.setEntId(LoginUserHolder.getEntId()).setTOrderNo(OrderGenerateUtils.generateOrderNo(ORDER_NO_PREFIX))
+        order.setEntId(LoginUserHolder.getEntId()).setTOrderNo(orderNo)
                 .setUnit(Objects.nonNull(param.getGoodsInfo()) ? param.getGoodsInfo().getUnit() : null)
                 .setSource(DictEnum.TORDER_SOURCE_2.getValue()).setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_0.getValue()));
         kwoTradeOrderMapper.insert(order);
@@ -250,6 +249,7 @@ public class KwoTradeOrderService {
      * @return: void
      */
     public void addPurchaseOrderSubmit(PurchaseOrderParam param) {
+        String orderNo = getOrderNo();
         GoodsInfo goodsInfo = param.getGoodsInfo();
         if (Objects.isNull(goodsInfo.getPriceRangeId())) {
             throw new BusinessException("采购下单价格梯度信息不能为空!");
@@ -260,7 +260,7 @@ public class KwoTradeOrderService {
                 .setOrderSource(DictEnum.TORDER_SOURCE_1.getValue());
         orderCheck(orderCheckDTO, false);
         KwoTradeOrder order = BeanUtils.copyProperties(param, KwoTradeOrder.class);
-        order.setEntId(LoginUserHolder.getEntId()).setTOrderNo(OrderGenerateUtils.generateOrderNo(ORDER_NO_PREFIX))
+        order.setEntId(LoginUserHolder.getEntId()).setTOrderNo(orderNo)
                 .setUnit(param.getGoodsInfo().getUnit()).setSource(DictEnum.TORDER_SOURCE_1.getValue())
                 .setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_1.getValue()));
         kwoTradeOrderMapper.insert(order);
@@ -364,8 +364,8 @@ public class KwoTradeOrderService {
      * @Param param:
      * @return: void
      */
-    @Transactional(rollbackFor = Exception.class)
     public void addValetOrderSubmit(ValetOrderParam param) {
+        String orderNo = getOrderNo();
         OrderCheckDTO orderCheck = BeanUtils.copyProperties(param, OrderCheckDTO.class);
         getTopEnt(orderCheck, param.getUnitInfo());
         orderCheck.setGoodsId(param.getGoodsInfo().getGoodsId()).setUnitPrice(param.getGoodsInfo().getUnitPrice())
@@ -375,7 +375,7 @@ public class KwoTradeOrderService {
         contractCheck(contract);
         param.setContractInfo(contract);
         KwoTradeOrder order = BeanUtils.copyProperties(param, KwoTradeOrder.class);
-        order.setEntId(LoginUserHolder.getEntId()).setTOrderNo(OrderGenerateUtils.generateOrderNo(ORDER_NO_PREFIX))
+        order.setEntId(LoginUserHolder.getEntId()).setTOrderNo(orderNo)
                 .setUnit(param.getGoodsInfo().getUnit()).setSource(DictEnum.TORDER_SOURCE_2.getValue());
         String contractStatus = contract.getContractStatus();
         if (Objects.equals(contractStatus, DictEnum.CONTRACT_STATUS_0.getValue())) {
@@ -394,6 +394,34 @@ public class KwoTradeOrderService {
         addOtherOrderInfo(order, BeanUtils.copyProperties(param, ValetOrderParam.class), false);
     }
 
+
+    /**
+     * 生成贸易订单号
+     *
+     * @return
+     */
+    private String getOrderNo() {
+        Date date = new Date();
+        String key = OrderGenerateSeqNoUtils.getKey(RedisOrderGenerateEnum.TRADE_ORDER, OrderRuleEnum.TRADE_ORDER, date);
+        String lockKey = String.format(RedisConstant.TORDER_NO_GENERATE_KEY, DateUtils.formatDateToYYMMDD(date));
+        try {
+            if (Boolean.FALSE.equals(RedissonUtils.exists(key))) {
+                if (Boolean.FALSE.equals(RedissonUtils.tryLock(lockKey, 5L, 10L))) {
+                    throw new BusinessException("业务繁忙,请稍后再试!");
+                }
+                DateTime dateTime = DateUtils.beginOfDay(date);
+                String maxOrderNo = kwoTradeOrderMapper.getMaxOrderNoByDate(dateTime);
+                if (StringUtils.isNotBlank(maxOrderNo)) {
+                    Long maxNum = Long.valueOf(StringUtils.subStrFromIndexToEnd(maxOrderNo, 4));
+                    RedissonUtils.setAtomicLong(key, maxNum, DateUtils.getSecondsDay());
+                }
+            }
+            return OrderGenerateSeqNoUtils.getOtherSeqNo(RedisOrderGenerateEnum.TRADE_ORDER, OrderRuleEnum.TRADE_ORDER);
+        } finally {
+            RedissonUtils.unlock(lockKey);
+        }
+    }
+
     /**
      * @desc: 合同校验
      * @author: yzc

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

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sckw.order.dao.KwoTradeOrderMapper">
+
+
+    <select id="getMaxOrderNoByDate" resultType="java.lang.String">
+        SELECT MAX(t_order_no) FROM kwo_trade_order WHERE create_time &gt;= #{date};
+    </select>
+</mapper>

+ 2 - 1
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/constant/SettlementEnum.java

@@ -43,7 +43,8 @@ public enum SettlementEnum {
                 return settlementEnum.getDesc();
             }
         }
-        return null; // 可根据实际需求返回默认值或其他处理
+        // 可根据实际需求返回默认值或其他处理
+        return null;
     }
 
 

+ 2 - 1
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/constant/SettlementOrderTypeEnum.java

@@ -39,7 +39,8 @@ public enum SettlementOrderTypeEnum {
                     return settlementOrderTypeEnum.getDesc();
                 }
             }
-            return null; // 可根据实际需求返回默认值或其他处理
+            // 可根据实际需求返回默认值或其他处理
+            return null;
         }
 
 

+ 1 - 1
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/constant/TradingEnum.java

@@ -23,7 +23,7 @@ public enum TradingEnum {
     OFFLINE_PAY(3, "3", "线下付款");
 
     private final int status;
-    private final String value;//字典值
+    private final String value;
     private final String desc;
 
     TradingEnum(int status, String value, String desc) {

+ 10 - 5
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/constant/WalletChannelEnum.java

@@ -7,9 +7,12 @@ import org.apache.commons.lang3.StringUtils;
  * @date 2023-07-27 12:54
  */
 public enum WalletChannelEnum {
-    HF(1, "1", "huifu"),//汇付
-    XS(2, "2", "xinsheng"),//新生
-    ZX(3, "3", "zhongxin");//中信
+    //汇付
+    HF(1, "1", "huifu"),
+    //新生
+    XS(2, "2", "xinsheng"),
+    //中信
+    ZX(3, "3", "zhongxin");
 
     private final int status;
     private final String value;
@@ -40,7 +43,8 @@ public enum WalletChannelEnum {
                 return walletChannelEnum.getDesc();
             }
         }
-        return null; // 可根据实际需求返回默认值或其他处理
+        // 可根据实际需求返回默认值或其他处理
+        return null;
     }
 
     /**
@@ -59,7 +63,8 @@ public enum WalletChannelEnum {
                 return walletChannelEnum.getValue();
             }
         }
-        return null; // 可根据实际需求返回默认值或其他处理
+        // 可根据实际需求返回默认值或其他处理
+        return null;
     }
 
 }

+ 14 - 8
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerLogisticsService.java

@@ -72,8 +72,8 @@ public class KwpLedgerLogisticsService extends AbsLedger {
 
     private void changeDict(List<ILedger> list) {
         List<SysDictResDto> taxRateDict = remoteSystemService.queryDictByType(DictTypeEnum.TAX_RATE.getType());
-        Map<String, String> taxRateMap = new HashMap<>();
-        Map<String, String> tradingMap = new HashMap<>();
+        Map<String, String> taxRateMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
+        Map<String, String> tradingMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
 
         if (!CollectionUtils.isEmpty(taxRateDict)) {
             taxRateMap = taxRateDict.stream().collect(Collectors.toMap(SysDictResDto::getValue, SysDictResDto::getLabel, (a, b) -> a));
@@ -219,7 +219,8 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         kwpLedgerLogistics.setTaxRate(logisticsSendReq.getTaxRate());
         kwpLedgerLogistics.setTrading(logisticsSendReq.getTrading());
         kwpLedgerLogistics.setTotalPrice(logisticsSendReq.getTotalPrice());
-        kwpLedgerLogistics.setExTaxPrice(logisticsSendReq.getTotalPrice());//todo-xcq 不含税金额计算方式:订单含税金额总和/1.13(税率)
+        //todo-xcq 不含税金额计算方式:订单含税金额总和/1.13(税率)
+        kwpLedgerLogistics.setExTaxPrice(logisticsSendReq.getTotalPrice());
         kwpLedgerLogistics.setSettlePrice(logisticsSendReq.getSettlePrice());
         kwpLedgerLogistics.setActualPrice(new BigDecimal("0.0"));
         kwpLedgerLogistics.setAuditUser(Global.EMPTY_STRING);
@@ -325,8 +326,10 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         carrierUnit.setLLedgerId(kwpLedgerLogistics.getId());
         carrierUnit.setLLedgerNo(kwpLedgerLogistics.getLLedgerNo());
         carrierUnit.setUnitType(LogisticsUnitType.CARRIER);
-        carrierUnit.setEntId(entId);//顶级企业id
-        carrierUnit.setTopEntId(entCacheResDto1.getId());//顶级企业id
+        //顶级企业id
+        carrierUnit.setEntId(entId);
+        //顶级企业id
+        carrierUnit.setTopEntId(entCacheResDto1.getId());
         carrierUnit.setFirmName(entCacheResDto1.getFirmName());
         carrierUnit.setContacts(entCacheResDto1.getContacts());
         carrierUnit.setPhone(entCacheResDto1.getPhone());
@@ -498,8 +501,10 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         kwpSettlementLogistics.setEntId(LoginUserHolder.getEntId());
         kwpSettlementLogistics.setLLedgerId(kwpLedgerLogistics.getId());
         kwpSettlementLogistics.setSlOrderNo(OrderGenerateUtils.generateOrderNo("TP"));
-        kwpSettlementLogistics.setName(kwpLedgerLogistics.getName());//取物流对账单名称
-        kwpSettlementLogistics.setTotalPrice(kwpLedgerLogistics.getSettlePrice());//实际结算金额就是结算单实际需付金额
+        //取物流对账单名称
+        kwpSettlementLogistics.setName(kwpLedgerLogistics.getName());
+        //实际结算金额就是结算单实际需付金额
+        kwpSettlementLogistics.setTotalPrice(kwpLedgerLogistics.getSettlePrice());
         kwpSettlementLogistics.setActualPrice(kwpLedgerLogistics.getActualPrice());
         kwpSettlementLogistics.setRemark(Global.EMPTY_STRING);
         kwpSettlementLogistics.setAuditUser(kwpLedgerLogistics.getAuditUser());
@@ -507,7 +512,8 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         kwpSettlementLogistics.setSuccessUser(ledgerReq.getSuccessUser());
         kwpSettlementLogistics.setSuccessPhone(ledgerReq.getSuccessPhone());
         kwpSettlementLogistics.setReceiptTime(receiptTime);
-        kwpSettlementLogistics.setStatus(SettlementEnum.WAITING_PAYMENT.getStatus());//1-待结算
+        //1-待结算
+        kwpSettlementLogistics.setStatus(SettlementEnum.WAITING_PAYMENT.getStatus());
         kwpSettlementLogistics.setCreateBy(LoginUserHolder.getUserId());
         kwpSettlementLogistics.setCreateTime(LocalDateTime.now());
         kwpSettlementLogistics.setUpdateBy(LoginUserHolder.getUserId());

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

@@ -69,8 +69,8 @@ public class KwpLedgerTradeService extends AbsLedger {
      */
     private void changeDict(List<? extends ILedger> list) {
         List<SysDictResDto> taxRateDict = remoteSystemService.queryDictByType(DictTypeEnum.TAX_RATE.getType());
-        Map<String, String> taxRateMap = new HashMap<>();
-        Map<String, String> tradingMap = new HashMap<>();
+        Map<String, String> taxRateMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
+        Map<String, String> tradingMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
 
         if (!CollectionUtils.isEmpty(taxRateDict)) {
             taxRateMap = taxRateDict.stream().collect(Collectors.toMap(SysDictResDto::getValue, SysDictResDto::getLabel, (a, b) -> a));
@@ -191,7 +191,8 @@ public class KwpLedgerTradeService extends AbsLedger {
         kwpLedgerTrade.setTaxRate(tradeSendReq.getTaxRate());
         kwpLedgerTrade.setTrading(tradeSendReq.getTrading());
         kwpLedgerTrade.setTotalPrice(tradeSendReq.getTotalPrice());
-        kwpLedgerTrade.setExTaxPrice(tradeSendReq.getTotalPrice());//todo-xcq 不含税金额计算方式:订单含税金额总和/1.13(税率)
+        //todo-xcq 不含税金额计算方式:订单含税金额总和/1.13(税率)
+        kwpLedgerTrade.setExTaxPrice(tradeSendReq.getTotalPrice());
         kwpLedgerTrade.setSettlePrice(tradeSendReq.getSettlePrice());
         kwpLedgerTrade.setActualPrice(new BigDecimal("0.0"));
         kwpLedgerTrade.setAuditUser(Global.EMPTY_STRING);
@@ -517,7 +518,8 @@ public class KwpLedgerTradeService extends AbsLedger {
         kwpSettlementTrade.setSuccessUser(ledgerReq.getSuccessUser());
         kwpSettlementTrade.setSuccessPhone(ledgerReq.getSuccessPhone());
         kwpSettlementTrade.setReceiptTime(receiptTime);
-        kwpSettlementTrade.setStatus(SettlementEnum.WAITING_PAYMENT.getStatus());//1-待结算
+        //1-待结算
+        kwpSettlementTrade.setStatus(SettlementEnum.WAITING_PAYMENT.getStatus());
         kwpSettlementTrade.setCreateBy(LoginUserHolder.getUserId());
         kwpSettlementTrade.setCreateTime(LocalDateTime.now());
         kwpSettlementTrade.setUpdateBy(LoginUserHolder.getUserId());
@@ -615,10 +617,10 @@ public class KwpLedgerTradeService extends AbsLedger {
         ledgerTradeDetailVo.setFirmName(ledgerTradeDto.getFirmName());
         SysDictResDto trading = remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.TRADE_TYPE.getType(), ledgerTradeDto.getTrading());
         ledgerTradeDetailVo.setTrading(ledgerTradeDto.getTrading());
-        ledgerTradeDetailVo.setTradingLabel(Objects.nonNull(trading) ? trading.getLabel() : "");//
+        ledgerTradeDetailVo.setTradingLabel(Objects.nonNull(trading) ? trading.getLabel() : "");
         SysDictResDto taxRate = remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.TAX_RATE.getType(), String.valueOf(ledgerTradeDto.getTaxRate()));
         ledgerTradeDetailVo.setTaxRate(ledgerTradeDto.getTaxRate());
-        ledgerTradeDetailVo.setTaxRateLabel(Objects.nonNull(taxRate) ? taxRate.getLabel() : "");//
+        ledgerTradeDetailVo.setTaxRateLabel(Objects.nonNull(taxRate) ? taxRate.getLabel() : "");
         ledgerTradeDetailVo.setTotalPrice(ledgerTradeDto.getTotalPrice());
         ledgerTradeDetailVo.setSettlePrice(ledgerTradeDto.getSettlePrice());
         ledgerTradeDetailVo.setActualPrice(ledgerTradeDto.getActualPrice());

+ 5 - 3
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementLogisticsService.java

@@ -302,10 +302,12 @@ public class KwpSettlementLogisticsService {
         } else {
             settlementLogisticsDto.setWaitPrice(new BigDecimal(0));
         }
-        settlementLogisticsDto.setCreateByLabel("创建人名称");//"创建人名称"
-        settlementLogisticsDto.setUpdateByLabel("更新人名称");//"更新人名称"
+        //"创建人名称"
+        settlementLogisticsDto.setCreateByLabel("创建人名称");
+        //"更新人名称"
+        settlementLogisticsDto.setUpdateByLabel("更新人名称");
 
-        Map<Long, UserCacheResDto> map = new HashMap<>();
+        Map<Long, UserCacheResDto> map = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         Long createBy = settlementLogisticsDto.getCreateBy();
         Long updateBy = settlementLogisticsDto.getUpdateBy();
         UserCacheResDto userCacheResDto = map.get(createBy);

+ 12 - 7
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementOfflineService.java

@@ -90,7 +90,7 @@ public class KwpSettlementOfflineService {
             entity.setUpdateByText("更新人名称");
         }
 
-        Map<Long, UserCacheResDto> map = new HashMap<>();
+        Map<Long, UserCacheResDto> map = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         //指定返回值
         List<SettlementOfflineVo> collect = settlementOfflineLogisticsList.stream().map(a -> {
             SettlementOfflineVo settlementOfflineVo = new SettlementOfflineVo();
@@ -165,11 +165,13 @@ public class KwpSettlementOfflineService {
             throw new BusinessException("该订单已结算完成,无法操作");
         }
         BigDecimal remainingReceivables = settlementLogisticsDto.getTotalPrice();
-        if (settlementLogisticsDto.getActualPrice() != null) {//剩余金额
+        if (settlementLogisticsDto.getActualPrice() != null) {
+            //剩余金额
             remainingReceivables = settlementLogisticsDto.getTotalPrice().subtract(settlementLogisticsDto.getActualPrice());
         }
 
-        if (remainingReceivables.compareTo(price) < 0) {//-1表示小于,0是等于,1是大于
+        //-1表示小于,0是等于,1是大于
+        if (remainingReceivables.compareTo(price) < 0) {
             log.error("本次结算输入金额比剩余付款金额大:ID:" + id + " 剩余金额:" + remainingReceivables + " 本次输入金额:" + price);
             throw new BusinessException("参数错误:输入金额过大 " + price + " 剩余金额最大值:" + remainingReceivables);
         }
@@ -177,10 +179,12 @@ public class KwpSettlementOfflineService {
         KwpSettlementLogistics settlementLogistics = new KwpSettlementLogistics();
         settlementLogistics.setId(settlementLogisticsDto.getId());
         settlementLogistics.setUpdateTime(LocalDateTime.now());
-        if (remainingReceivables.compareTo(price) == 0) {//全部结算
+        //全部结算
+        if (remainingReceivables.compareTo(price) == 0) {
             settlementLogistics.setStatus(SettlementEnum.ALL_PAYMENT.getStatus());
         }
-        if (remainingReceivables.compareTo(price) > 0) {//部分结算
+        //部分结算
+        if (remainingReceivables.compareTo(price) > 0) {
             settlementLogistics.setStatus(SettlementEnum.PARTIAL_PAYMENT.getStatus());
         }
         BigDecimal actualPrice = settlementLogisticsDto.getActualPrice();
@@ -244,7 +248,7 @@ public class KwpSettlementOfflineService {
         if (CollectionUtils.isEmpty(settlementOfflineDto)) {
             return new PageRes<>();
         }
-        Map<Long, UserCacheResDto> map = new HashMap<>();
+        Map<Long, UserCacheResDto> map = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         //指定返回值
         List<SettlementOfflineVo> collect = settlementOfflineDto.stream().map(a -> {
             SettlementOfflineVo settlementOfflineVo = new SettlementOfflineVo();
@@ -313,7 +317,8 @@ public class KwpSettlementOfflineService {
                 //更新结算单记录
                 KwpSettlementTrade kwpSettlementTrade = new KwpSettlementTrade();
                 kwpSettlementTrade.setId(byId.getId());
-                kwpSettlementTrade.setActualPrice(actualPrice.add(payPrice));//已收款加本次收款
+                //已收款加本次收款
+                kwpSettlementTrade.setActualPrice(actualPrice.add(payPrice));
                 int status = 0;
                 //全部结算,修改贸易订单状态
                 if (subtract1.compareTo(new BigDecimal("0.0")) == NumberConstant.ZERO) {

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

@@ -101,7 +101,7 @@ public class KwpSettlementWalletService {
             entity.setUpdateByText("未知更新人");
         }
 
-        Map<Long, UserCacheResDto> map = new HashMap<>();
+        Map<Long, UserCacheResDto> map = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         //指定返回值
         List<SettlementWalletVo> collect = settlementWalletLogisticsList.stream().map(a -> {
             SettlementWalletVo settlementWalletVo = new SettlementWalletVo();
@@ -174,11 +174,13 @@ public class KwpSettlementWalletService {
             throw new BusinessException("该订单已结算完成,无法操作");
         }
         BigDecimal remainingReceivables = settlementLogisticsDto.getTotalPrice();
-        if (settlementLogisticsDto.getActualPrice() != null) {//剩余金额
+        //剩余金额
+        if (settlementLogisticsDto.getActualPrice() != null) {
             remainingReceivables = settlementLogisticsDto.getTotalPrice().subtract(settlementLogisticsDto.getActualPrice());
         }
 
-        if (remainingReceivables.compareTo(price) < 0) {//-1表示小于,0是等于,1是大于
+        //-1表示小于,0是等于,1是大于
+        if (remainingReceivables.compareTo(price) < 0) {
             log.error("本次结算输入金额比剩余付款金额大:ID:" + id + " 剩余金额:" + remainingReceivables + " 本次输入金额:" + price);
             throw new BusinessException("参数错误:输入金额过大 " + price + " 剩余金额最大值:" + remainingReceivables);
         }
@@ -186,10 +188,12 @@ public class KwpSettlementWalletService {
         KwpSettlementLogistics settlementLogistics = new KwpSettlementLogistics();
         settlementLogistics.setId(settlementLogisticsDto.getId());
         settlementLogistics.setUpdateTime(LocalDateTime.now());
-        if (remainingReceivables.compareTo(price) == 0) {//全部结算
+        //全部结算
+        if (remainingReceivables.compareTo(price) == 0) {
             settlementLogistics.setStatus(SettlementEnum.ALL_PAYMENT.getStatus());
         }
-        if (remainingReceivables.compareTo(price) > 0) {//部分结算
+        //部分结算
+        if (remainingReceivables.compareTo(price) > 0) {
             settlementLogistics.setStatus(SettlementEnum.PARTIAL_PAYMENT.getStatus());
         }
         BigDecimal actualPrice = settlementLogisticsDto.getActualPrice();
@@ -217,7 +221,8 @@ public class KwpSettlementWalletService {
             kwpSettlementWallet.setEntId(settlementLogisticsDto.getEntId());
             kwpSettlementWallet.setSettlementId(settlementLogisticsDto.getId());
             kwpSettlementWallet.setOrderType(SettlementOrderTypeEnum.LOGISTICS.getStatus());
-            kwpSettlementWallet.setChannel(WalletChannelEnum.getValue(settlementLogisticsDto.getTrading()));//先用数字默认定义为1
+            //先用数字默认定义为1
+            kwpSettlementWallet.setChannel(WalletChannelEnum.getValue(settlementLogisticsDto.getTrading()));
             kwpSettlementWallet.setPayTime(LocalDateTime.now());
             kwpSettlementWallet.setPayPrice(price);
             kwpSettlementWallet.setTopayPrice(remainingReceivables);
@@ -409,7 +414,7 @@ public class KwpSettlementWalletService {
             return new PageRes<>();
         }
         //增加对应创建人和更新人名称
-        Map<Long, UserCacheResDto> map = new HashMap<>();
+        Map<Long, UserCacheResDto> map = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         PageInfo<SettlementWalletDto> pageInfo = new PageInfo<>(settlementWalletDto);
         //指定返回值
         List<SettlementWalletVo> collect = settlementWalletDto.stream().map(a -> {
@@ -451,7 +456,7 @@ public class KwpSettlementWalletService {
             return new PageRes<>(new PageInfo<>());
         }
 
-        Map<Long, UserCacheResDto> map = new HashMap<>();
+        Map<Long, UserCacheResDto> map = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         //指定返回值
         List<SettlementWalletVo> collect = settlementWalletLogisticsList.stream().map(a -> {
             SettlementWalletVo settlementWalletVo = new SettlementWalletVo();

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

@@ -37,6 +37,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.text.ParseException;
 import java.util.ArrayList;
 import java.util.List;
@@ -385,16 +386,18 @@ public class KwTransportService {
             vo.setSendCarTime(waybillOrder.getCreateTime() == null ?
                     null : DateUtil.getDateTime(waybillOrder.getCreateTime()));
             vo.setStartTime(waybillOrder.getStartTime() == null ?
-                    null : DateUtil.getDateTime(waybillOrder.getStartTime()));
+                    null : waybillOrder.getStartTime());
             vo.setEndTime(waybillOrder.getEndTime() == null ?
-                    null : DateUtil.getDateTime(waybillOrder.getEndTime()));
+                    null : waybillOrder.getEndTime());
             vo.setEntrustAmount(String.valueOf(waybillOrder.getEntrustAmount()));
             vo.setLoadName(waybillOrder.getLoadName() == null ?
                     null : waybillOrder.getLoadName());
-            vo.setLoadAddress(waybillOrder.getLoadCityName().concat(waybillOrder.getLoadDetailAddress()));
+            vo.setLoadAddress((waybillOrder.getLoadCityName() == null ? "" : waybillOrder.getLoadCityName())
+                    .concat(waybillOrder.getLoadDetailAddress() == null ? "" : waybillOrder.getLoadDetailAddress()));
             vo.setUnloadName(waybillOrder.getUnloadName() == null ?
                     null : waybillOrder.getUnloadName());
-            vo.setUnloadAddress(waybillOrder.getUnloadCityName().concat(waybillOrder.getUnloadDetailAddress()));
+            vo.setUnloadAddress((waybillOrder.getUnloadCityName() == null ? "" : waybillOrder.getUnloadCityName())
+                    .concat(waybillOrder.getUnloadDetailAddress() == null ? "" : waybillOrder.getUnloadDetailAddress()));
             vo.setLoadAmount(waybillOrder.getLoadAmount() == null ?
                     null : String.valueOf(waybillOrder.getLoadAmount()));
             vo.setUnloadAmount(waybillOrder.getUnloadAmount() == null ?
@@ -409,6 +412,13 @@ public class KwTransportService {
                     null : DateUtil.getDateTime(waybillOrder.getUpdateTime()));
             vo.setDeficitAmount(waybillOrder.getDeficitAmount() == null ?
                     null : String.valueOf(waybillOrder.getDeficitAmount()));
+            BigDecimal deficitLoss = waybillOrder.getLoss() == null ? BigDecimal.valueOf(0) : waybillOrder.getLoss();
+            BigDecimal deficitAmount = waybillOrder.getDeficitAmount() == null ? BigDecimal.valueOf(0) : waybillOrder.getDeficitAmount();
+            BigDecimal deficitRealAmount = BigDecimal.valueOf(0);
+            if(deficitAmount.compareTo(BigDecimal.valueOf(0)) > 0) {
+                deficitRealAmount = deficitLoss.subtract(deficitAmount);
+            }
+            vo.setDeficitRealAmount(deficitRealAmount.toString());
             vo.setGoodsPriceUnit(waybillOrder.getGoodsPriceUnit() == null ?
                     null : String.valueOf(waybillOrder.getGoodsPriceUnit()));
             returnList.add(vo);
@@ -595,9 +605,11 @@ public class KwTransportService {
                     .setEndTime(e.getEndTime() == null ? null : DateUtil.getDateTime(e.getEndTime()))
                     .setEntrustAmount(String.valueOf(e.getEntrustAmount()))
                     .setLoadName(e.getLoadName())
-                    .setLoadAddress(e.getLoadCityName().concat(e.getLoadDetailAddress()))
+                    .setLoadAddress((e.getLoadCityName() == null ? "" : e.getLoadCityName())
+                            .concat(e.getLoadDetailAddress() == null ? "" : e.getLoadDetailAddress()))
                     .setUnloadName(e.getUnloadName())
-                    .setUnloadAddress(e.getLoadCityName().concat(e.getLoadDetailAddress()))
+                    .setUnloadAddress((e.getUnloadCityName() == null ? "" : e.getUnloadCityName())
+                            .concat(e.getUnloadDetailAddress() == null ? "" : e.getUnloadDetailAddress()))
                     .setLoadAmount(String.valueOf(e.getLoadAmount()))
                     .setUnloadAmount(String.valueOf(e.getUnloadAmount()))
                     .setDeficitAmount(String.valueOf(e.getDeficitAmount()))

+ 11 - 2
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/CarWaybillVo.java

@@ -1,11 +1,13 @@
 package com.sckw.report.service.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
 import java.io.Serial;
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * @author lfdc
@@ -69,12 +71,14 @@ public class CarWaybillVo implements Serializable {
     /**
      * 计划开始时间
      */
-    private String startTime;
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date startTime;
 
     /**
      * 计划结束时间
      */
-    private String endTime;
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date endTime;
 
     /**
      * 派单量/吨
@@ -131,6 +135,11 @@ public class CarWaybillVo implements Serializable {
      */
     private String goodsPriceUnit;
 
+    /**
+     * 扣亏量(合理损耗-(实装-实卸))-单位
+     */
+    private String deficitRealAmount;
+
     /**
      * 创建时间
      */

+ 1 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java

@@ -55,7 +55,7 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
         if (StringUtils.isBlank(keys)) {
             return null;
         }
-        Map<String, SysDictResDto> map = new HashMap<>();
+        Map<String, SysDictResDto> map = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         String[] typeValueArr = keys.split(Global.COMMA);
         for (String typeValue : typeValueArr) {
             if (StringUtils.isNotBlank(typeValue)) {

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

@@ -833,14 +833,14 @@ public class KwsEnterpriseService {
             return Collections.emptyList();
         }
 
-        Map<Long, List<KwsEntType>> collect = new HashMap<>();
+        Map<Long, List<KwsEntType>> collect = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         List<KwsEntType> kwsEntTypeList = kwsEntTypeDao.findListByEntIds(kwsEnterprises.stream().map(KwsEnterprise::getId).toList());
         if (CollectionUtils.isNotEmpty(kwsEntTypeList)) {
             collect = kwsEntTypeList.stream().collect(Collectors.groupingBy(KwsEntType::getEntId));
         }
 
         List<Long> managers = kwsEnterprises.stream().map(KwsEnterprise::getManager).toList();
-        Map<Long, KwsUser> userCollect = new HashMap<>();
+        Map<Long, KwsUser> userCollect = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         if (CollectionUtils.isNotEmpty(managers)) {
             List<KwsUser> kwsUsers = kwsUserService.selectByKeys(managers);
             if (CollectionUtils.isNotEmpty(kwsUsers)) {
@@ -935,7 +935,7 @@ public class KwsEnterpriseService {
         enterpriseVo.setEntTypes(entTypes != null ? String.join(Global.COMMA, entTypes.stream().map(KwsEntType::getType).map(String::valueOf).distinct().toList()) : null);
         enterpriseVo.setEntTypeNames(enterpriseVo.getEntTypes() != null ? EntTypeEnum.getNames(enterpriseVo.getEntTypes()) : null);
 
-        Map<String, Object> queryParams = new HashMap() {{
+        Map<String, Object> queryParams = new HashMap<>(Global.NUMERICAL_SIXTEEN) {{
             put("isMain", Global.YES);
             put("entId", entId);
             put("systemType", SystemTypeEnum.COMPANY.getCode());

+ 10 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/OrderDetailVO.java

@@ -128,6 +128,12 @@ public class OrderDetailVO {
      * 合同编号
      */
     private String contractNo;
+
+    /**
+     * 装货地址
+     */
+    private String loadName;
+
     /**
      * 装货地址
      */
@@ -144,6 +150,10 @@ public class OrderDetailVO {
      * 装货详细地址
      */
     private String loadAddressDetail;
+    /**
+     * 装货地名
+     */
+    private String unloadName;
     /**
      * 装货详细地址
      */

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

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -51,6 +52,11 @@ public class WaybillBoardListVO {
      */
     private String loadDetailAddress;
 
+    /**
+     * 装货重量
+     */
+    private BigDecimal loadAmount;
+
     /**
      * 卸货地点名称
      */
@@ -61,6 +67,11 @@ public class WaybillBoardListVO {
      */
     private String unloadDetailAddress;
 
+    /**
+     * 卸货重量
+     */
+    private BigDecimal unloadAmount;
+
     /**
      * 开始时间
      */

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

@@ -927,7 +927,7 @@ public class AcceptCarriageOrderService {
         /**请求参数校验*/
         checkParam(driverParam);
         /**1 趟次 2 循环*/
-        Map<String, RTruckVo> truck = new HashMap<>();
+        Map<String, RTruckVo> truck = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         if (String.valueOf(NumberConstant.ONE).equals(driverParam.getType())) {
             //只展示待接单数据
             List<DriverListVo> list = logisticsOrderMapper.selectDriverListById(driverParam);
@@ -1270,7 +1270,7 @@ public class AcceptCarriageOrderService {
                 BigDecimal subtract = kwtLogisticsOrder.getAmount().subtract(kwtLogisticsOrder.getTotalLoadAmount());
                 updateLogisticOrderAndTrack(kwtLogisticsOrder.getId(), orderFinishDTO, subtract);
                 //新增mongodb要修改的数据
-                Map<String, Object> map = new HashMap<>();
+                Map<String, Object> map = new HashMap<>(Global.NUMERICAL_SIXTEEN);
                 map.put("id", kwtLogisticsOrder.getId());
                 map.put("ignoreAmount", subtract);
                 list.add(map);
@@ -1629,6 +1629,8 @@ public class AcceptCarriageOrderService {
      */
     @Transactional(rollbackFor = Exception.class)
     public HttpResult addOrder(AddOrderDTO orderDTO) {
+        /**生成订单编号*/
+        String lOrderNo = OrderGenerateSeqNoUtils.getSeqNo(RedisOrderGenerateEnum.LOGISTICS_ORDER, OrderRuleEnum.LOGISTICS_ORDER, "2", "0", "0");
         HttpResult httpResult = ValidUtil.serviceValid(orderDTO);
         if (!String.valueOf(HttpStatus.SUCCESS_CODE).equals(String.valueOf(httpResult.getCode()))) {
             return HttpResult.error(httpResult.getMsg());
@@ -1643,8 +1645,6 @@ public class AcceptCarriageOrderService {
         }
         /**保存新建数据*/
         Long lOrderId = new IdWorker(NumberConstant.ONE).nextId();
-        /**生成订单编号*/
-        String lOrderNo = OrderGenerateSeqNoUtils.getSeqNo(RedisOrderGenerateEnum.LOGISTICS_ORDER, OrderRuleEnum.LOGISTICS_ORDER, "2", "0", "0");
         /**根据合同计算当前单据状态*/
         /**判断生成物流订单应生成哪一种单据状态*/
         List<Long> contractList = new ArrayList<>();
@@ -2087,7 +2087,7 @@ public class AcceptCarriageOrderService {
         Map<String, String> signingWay = getDictData(DictTypeEnum.SIGNING_TYPE.getType());
         /**合理损耗*/
 //        Map<String, String> taxRateTypeDictData = getDictData(DictTypeEnum.TAX_RATE_TYPE.getType());
-        Map<Long, UserCacheResDto> longUserMap = new HashMap<>();
+        Map<Long, UserCacheResDto> longUserMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         if (CollectionUtils.isNotEmpty(list)) {
             List<Long> collect = list.stream().map(AcceptCarriageOrderVO::getCreateBy).collect(Collectors.toList());
             if (CollectionUtils.isNotEmpty(collect)) {

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

@@ -11,6 +11,7 @@ import com.sckw.contract.api.model.dto.res.ContractCommonInfoResDto;
 import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.exception.BusinessException;
+import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.enums.*;
 import com.sckw.core.model.page.PageRes;
 import com.sckw.core.model.page.PageResult;
@@ -55,7 +56,6 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
 import java.math.BigDecimal;
-import java.text.ParseException;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -339,7 +339,7 @@ public class ConsignOrderService {
                             .eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrder.getId())
                             .eq(KwtWaybillOrderTicket::getType, NumberConstant.TWO));
                     //合理损耗
-                    BigDecimal loss = order.getLoss();
+                    BigDecimal loss = order.getLoss() == null ? new BigDecimal("0.00") : order.getLoss();
                     /**亏吨量/吨->装货量-卸货量
                      * 合理损耗值=装货量*合理损耗
                      扣亏量/吨->亏吨量-合理损耗值
@@ -472,7 +472,7 @@ public class ConsignOrderService {
             return HttpResult.ok();
         }
         List<DriverListVo> list = kwtLogisticsOrderMapper.selectLoopOrderAndDriverListByOrderIds(idsList);
-        Map<String, RTruckVo> truck = new HashMap<>();
+        Map<String, RTruckVo> truck = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         if (CollectionUtils.isNotEmpty(list)) {
             List<String> collect = list.stream().map(DriverListVo::getTruckNo).distinct().collect(Collectors.toList());
             if (CollectionUtils.isNotEmpty(collect)) {
@@ -511,7 +511,7 @@ public class ConsignOrderService {
         /**请求参数校验*/
         checkParam(driverParam);
         List<DriverListVo> list = kwtLogisticsOrderMapper.selectLoopOrderAndDriverListByOrderId(driverParam);
-        Map<String, RTruckVo> truck = new HashMap<>();
+        Map<String, RTruckVo> truck = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         if (CollectionUtils.isNotEmpty(list)) {
             List<String> collect = list.stream().map(DriverListVo::getTruckNo).distinct().collect(Collectors.toList());
             if (CollectionUtils.isNotEmpty(collect)) {
@@ -708,7 +708,7 @@ public class ConsignOrderService {
      * @param id
      * @return
      */
-    public HttpResult getRejectReasonById(String id,Integer status) {
+    public HttpResult getRejectReasonById(String id, Integer status) {
         Map<String, String> map = kwtLogisticsOrderMapper.getRejectReason(id, status);
         return HttpResult.ok(map);
     }
@@ -770,7 +770,7 @@ public class ConsignOrderService {
                 BigDecimal subtract = kwtLogisticsOrder.getAmount().subtract(kwtLogisticsOrder.getTotalLoadAmount());
                 updateLogisticOrderAndTrack(kwtLogisticsOrder.getId(), orderFinishDTO, subtract);
                 //新增mongodb要修改的数据
-                Map<String, Object> map = new HashMap<>();
+                Map<String, Object> map = new HashMap<>(Global.NUMERICAL_SIXTEEN);
                 map.put("id", kwtLogisticsOrder.getId());
                 map.put("ignoreAmount", subtract);
                 list.add(map);
@@ -1089,7 +1089,9 @@ public class ConsignOrderService {
      * @return
      */
     @Transactional(rollbackFor = Exception.class)
-    public HttpResult addOrder(AddOrderDTO addOrderDTO) throws ParseException {
+    public HttpResult addOrder(AddOrderDTO addOrderDTO){
+        /**生成订单编号*/
+        String lOrderNo = OrderGenerateSeqNoUtils.getSeqNo(RedisOrderGenerateEnum.LOGISTICS_ORDER, OrderRuleEnum.LOGISTICS_ORDER, "2", "0", "0");
         HttpResult httpResult = ValidUtil.serviceValid(addOrderDTO);
         if (!String.valueOf(HttpStatus.SUCCESS_CODE).equals(String.valueOf(httpResult.getCode()))) {
             return HttpResult.error(httpResult.getMsg());
@@ -1104,8 +1106,6 @@ public class ConsignOrderService {
         }
         /**保存新建数据*/
         Long lOrderId = new IdWorker(NumberConstant.ONE).nextId();
-        /**生成订单编号*/
-        String lOrderNo = OrderGenerateSeqNoUtils.getSeqNo(RedisOrderGenerateEnum.LOGISTICS_ORDER, OrderRuleEnum.LOGISTICS_ORDER, "2", "0", "0");
         /**根据合同计算当前单据状态*/
         /**判断生成物流订单应生成哪一种单据状态*/
         List<Long> contractList = new ArrayList<>();
@@ -1196,7 +1196,7 @@ public class ConsignOrderService {
      * @param orderStatus 订单状态
      * @param lOrderNo    主体订单编号
      */
-    private void saveConsignLogisticsOrder(AddOrderDTO addOrderDTO, Long lOrderId, Integer orderStatus, String lOrderNo) throws ParseException {
+    private void saveConsignLogisticsOrder(AddOrderDTO addOrderDTO, Long lOrderId, Integer orderStatus, String lOrderNo) {
         KwtLogisticsOrder order = new KwtLogisticsOrder();
         order.setId(lOrderId);
         order.setEntId(LoginUserHolder.getEntId());
@@ -1571,7 +1571,7 @@ public class ConsignOrderService {
         Map<String, String> signingWay = commonService.getDictData(DictTypeEnum.SIGNING_TYPE.getType());
         /**合理损耗*/
 //        Map<String, String> taxRateTypeDictData = getDictData(DictTypeEnum.TAX_RATE_TYPE.getType());
-        Map<Long, UserCacheResDto> longUserMap = new HashMap<>();
+        Map<Long, UserCacheResDto> longUserMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         if (CollectionUtils.isNotEmpty(list)) {
             List<Long> collect = list.stream().map(AcceptCarriageOrderVO::getCreateBy).collect(Collectors.toList());
             if (CollectionUtils.isNotEmpty(collect)) {

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

@@ -561,9 +561,9 @@ public class KwtWaybillOrderService {
     }
 
     /**
-     * @param orderId    订单ID
+     * @param orderId     订单ID
      * @param addressType 地址类型(1装货地址、2卸货地址)
-     * @param type 订单类型(1物流订单、2车辆运单)
+     * @param type        订单类型(1物流订单、2车辆运单)
      * @desc 获取订单地址信息
      * @author zk
      * @date 2023/7/20
@@ -724,7 +724,7 @@ public class KwtWaybillOrderService {
         order.setLoadType(loadAddress.getType());
         order.setLoadContacts(loadAddress.getContacts());
         order.setLoadPhone(loadAddress.getPhone());
-        order.setLoadCityCode(loadAddress.getCityCode());
+        order.setLoadCityCode(loadAddress.getCityCode() == null ? null : String.valueOf(loadAddress.getCityCode()));
         order.setLoadCityName(loadAddress.getCityName());
         order.setLoadDetailAddress(loadAddress.getDetailAddress());
         order.setLoadLat(loadAddress.getLat());
@@ -733,7 +733,7 @@ public class KwtWaybillOrderService {
         order.setUnloadType(unloadAddress.getType());
         order.setUnloadContacts(unloadAddress.getContacts());
         order.setUnloadPhone(unloadAddress.getPhone());
-        order.setUnloadCityCode(unloadAddress.getCityCode());
+        order.setUnloadCityCode(unloadAddress.getCityCode() == null ? null : String.valueOf(unloadAddress.getCityCode()));
         order.setUnloadCityName(unloadAddress.getCityName());
         order.setUnloadDetailAddress(unloadAddress.getDetailAddress());
         order.setUnloadLat(unloadAddress.getLat());
@@ -881,7 +881,7 @@ public class KwtWaybillOrderService {
         return HttpResult.ok("车辆运单撤回成功!");
     }
 
-    public HttpResult cancelSendCarV1(List<Long> ids){
+    public HttpResult cancelSendCarV1(List<Long> ids) {
         /**1数据校验**/
         if (CollectionUtils.isEmpty(ids)) {
             return HttpResult.error("请选择需要撤回的车辆运单!");
@@ -893,7 +893,7 @@ public class KwtWaybillOrderService {
             if (order != null) {
                 //3待接单的车辆运单才能撤回
                 if (order.getStatus() != CarWaybillEnum.PENDING_ORDER.getCode()) {
-                    return HttpResult.error("运单"+order.getWOrderNo()+"当前状态已不能撤回!");
+                    return HttpResult.error("运单" + order.getWOrderNo() + "当前状态已不能撤回!");
                 }
             } else {
                 //循环派车信息
@@ -935,7 +935,7 @@ public class KwtWaybillOrderService {
 
         /**5Mongodb数据更新**/
         //1车辆订单
-        for (KwtWaybillOrder waybillOrder:waybillOrders) {
+        for (KwtWaybillOrder waybillOrder : waybillOrders) {
             SckwWaybillOrder wOrder = new SckwWaybillOrder();
             wOrder.set_id(waybillOrder.getId());
             editSckwWaybillOrder(wOrder, waybillOrder, 2);
@@ -1492,7 +1492,7 @@ public class KwtWaybillOrderService {
             KwtLogisticsOrderCirculate circulate = logisticsOrderCirculateDao.findCirculate(waybillOrder.getLOrderId(),
                     waybillOrder.getTruckId(), waybillOrder.getDriverId(), 0);
             circulate.setWOrderId(null);
-            logisticsOrderCirculateDao.updateByPrimaryKey(circulate);
+            logisticsOrderCirculateDao.updateById(circulate);
         }
 
         /**6跟新司机/车辆数据
@@ -2142,6 +2142,7 @@ public class KwtWaybillOrderService {
 
     /**
      * 承运订单-托运订单-订单详情数据统计
+     *
      * @param orderId
      * @param type
      * @return
@@ -2160,6 +2161,7 @@ public class KwtWaybillOrderService {
 
     /**
      * 承运数据统计
+     *
      * @param orderId
      * @return
      */
@@ -2200,6 +2202,7 @@ public class KwtWaybillOrderService {
 
     /**
      * 托运数据统计
+     *
      * @param orderId
      * @return
      */

+ 21 - 9
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java

@@ -10,6 +10,7 @@ import com.sckw.contract.api.RemoteContractService;
 import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.exception.BusinessException;
+import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.enums.CarWaybillEnum;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
 import com.sckw.core.model.enums.OrderRuleEnum;
@@ -28,6 +29,7 @@ import com.sckw.order.api.dubbo.TradeOrderInfoService;
 import com.sckw.order.api.model.*;
 import com.sckw.product.api.dubbo.GoodsInfoService;
 import com.sckw.product.api.model.KwpGoods;
+import com.sckw.redis.config.RedisLockUtil;
 import com.sckw.stream.model.SckwBusSum;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.model.dto.res.EntCacheResDto;
@@ -68,6 +70,9 @@ public class LogisticsConsignmentService {
     @Resource
     private StreamBridge streamBridge;
 
+    @Autowired
+    RedisLockUtil redisLockUtil;
+
     @DubboReference(version = "1.0.0", group = "design", check = false)
     RemoteSystemService remoteSystemService;
 
@@ -116,22 +121,26 @@ public class LogisticsConsignmentService {
         if (HttpStatus.SUCCESS_CODE != httpResult.getCode()) {
             return HttpResult.error(httpResult.getMsg());
         }
-        checkParamData(bo);
+        HttpResult checked = checkParamData(bo);
+        if (checked.getCode() != HttpStatus.SUCCESS_CODE) {
+            return HttpResult.error(checked.getMsg());
+        }
         logisticsConsignmentInsert(bo);
         return HttpResult.ok();
     }
 
-    private void checkParamData(LogisticsConsignmentParam bo) {
+    private HttpResult checkParamData(LogisticsConsignmentParam bo) {
         if (!ObjectUtils.isEmpty(bo.getLoss())) {
             if (bo.getLoss().compareTo(new BigDecimal("0.00")) < 0) {
-                throw new RuntimeException("合理损耗填写时,必须大于0");
+                return HttpResult.error("合理损耗填写时,必须大于0");
             }
         }
         if (!ObjectUtils.isEmpty(bo.getGoodsPrice())) {
             if (bo.getGoodsPrice().compareTo(new BigDecimal("0.00")) < 0) {
-                throw new RuntimeException("扣亏货值填写时,必须大于0");
+                return HttpResult.error("扣亏货值填写时,必须大于0");
             }
         }
+        return HttpResult.ok();
     }
 
     /**
@@ -146,12 +155,17 @@ public class LogisticsConsignmentService {
         if (HttpStatus.SUCCESS_CODE != httpResult.getCode()) {
             return HttpResult.error(httpResult.getMsg());
         }
-        checkParamData(bo);
+        HttpResult checked = checkParamData(bo);
+        if (checked.getCode() != HttpStatus.SUCCESS_CODE) {
+            return HttpResult.error(checked.getMsg());
+        }
         logisticsConsignmentInsert(bo);
         return HttpResult.ok();
     }
 
     void logisticsConsignmentInsert(LogisticsConsignmentParam bo) {
+        Long count = kwtLogisticsOrderMapper.selectCount(new LambdaQueryWrapper<KwtLogisticsOrder>().eq(KwtLogisticsOrder::getTOrderId, bo.getTOrderId()));
+        String lOrderNo = OrderGenerateSeqNoUtils.getSeqNo(RedisOrderGenerateEnum.LOGISTICS_ORDER, OrderRuleEnum.LOGISTICS_ORDER, "1", "0", String.valueOf(count + 1));
         OrderDetailRes tradeOrder = tradeOrderInfoService.getOrderDetailById(Long.parseLong(bo.getTOrderId()));
         if (tradeOrder == null) {
             log.error("订单id查找失败:{}", bo.getTOrderId());
@@ -177,8 +191,6 @@ public class LogisticsConsignmentService {
             order.setAmount(new BigDecimal("0.00"));
             order.setSubcontractAmount(new BigDecimal("0.00"));
         }
-        Long count = kwtLogisticsOrderMapper.selectCount(new LambdaQueryWrapper<KwtLogisticsOrder>().eq(KwtLogisticsOrder::getTOrderId, bo.getTOrderId()));
-        String lOrderNo = OrderGenerateSeqNoUtils.getSeqNo(RedisOrderGenerateEnum.LOGISTICS_ORDER, OrderRuleEnum.LOGISTICS_ORDER, "1", "0", String.valueOf(count + 1));
         Long orderId = new IdWorker(NumberConstant.ONE).nextId();
         Integer orderStatus = LogisticsOrderEnum.PENDING_ORDER.getCode();
         insertLogisticsGoods(bo, lOrderNo, orderId);
@@ -236,7 +248,7 @@ public class LogisticsConsignmentService {
             logisticsOrder.setSubcontractAmount(new BigDecimal("0.00"));
             logisticsOrder.setCarryingCapacity(new BigDecimal("0.00"));
         }
-        logisticsOrder.setLoss(bo.getLoss() == null ? null :bo.getLoss());
+        logisticsOrder.setLoss(bo.getLoss() == null ? null : bo.getLoss());
         logisticsOrder.setLossUnit(bo.getLossUnit());
         logisticsOrder.setGoodsPrice(bo.getGoodsPrice() == null ? null : bo.getGoodsPrice());
         BigDecimal decimal = new BigDecimal(NumberConstant.ZERO);
@@ -1466,7 +1478,7 @@ public class LogisticsConsignmentService {
 
 
     private Map countOrderNumber(Long tOrderId) {
-        Map<String, BigDecimal> map = new HashMap<>();
+        Map<String, BigDecimal> map = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         BigDecimal loadAmountTotal = new BigDecimal("0.00");
         BigDecimal unloadAmountTotal = new BigDecimal("0.00");
         List<KwtLogisticsOrder> kwtLogisticsOrderList = kwtLogisticsOrderMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrder>().eq(KwtLogisticsOrder::getTOrderId, tOrderId));

+ 5 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/TransportCommonService.java

@@ -184,11 +184,13 @@ public class TransportCommonService {
         orderDetailVO.setPrice(logisticsOrder.getPrice() == null ? null : String.valueOf(logisticsOrder.getPrice()));
         orderDetailVO.setLoss(logisticsOrder.getLoss() == null ? null : String.valueOf(logisticsOrder.getLoss()));
         orderDetailVO.setDeduct(logisticsOrder.getGoodsPrice() == null ? null : String.valueOf(logisticsOrder.getGoodsPrice()));
-        orderDetailVO.setLoadAddress(loadOrderAddress.getName());
+        orderDetailVO.setLoadName(loadOrderAddress.getName());
+        orderDetailVO.setLoadAddress(loadOrderAddress.getCityName());
         orderDetailVO.setLoadContacts(loadOrderAddress.getContacts());
         orderDetailVO.setLoadPhone(loadOrderAddress.getPhone());
         orderDetailVO.setLoadAddressDetail(loadOrderAddress.getDetailAddress());
-        orderDetailVO.setUnloadAddress(unloadOrderAddress.getName());
+        orderDetailVO.setUnloadName(unloadOrderAddress.getName());
+        orderDetailVO.setUnloadAddress(unloadOrderAddress.getCityName());
         orderDetailVO.setUnloadContacts(unloadOrderAddress.getContacts());
         orderDetailVO.setUnloadPhone(unloadOrderAddress.getPhone());
         orderDetailVO.setUnloadAddressDetail(unloadOrderAddress.getDetailAddress());
@@ -231,6 +233,7 @@ public class TransportCommonService {
                 }
             }
         }
+        orderDetailVO.setRemark(logisticsOrder.getRemark());
         return orderDetailVO;
     }
 

+ 7 - 4
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/WaybillManagementService.java

@@ -3,6 +3,7 @@ package com.sckw.transport.service;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
+import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.enums.CarWaybillEnum;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.BeanUtils;
@@ -169,7 +170,7 @@ public class WaybillManagementService {
             List<Long> userIds = new ArrayList<>();
             kwtWaybillOrderTracks.forEach(e -> userIds.add(e.getCreateBy()));
             List<UserCacheResDto> users = remoteSystemService.queryUserCacheByIds(userIds);
-            Map<Long, UserCacheResDto> usersMap = new HashMap<>();
+            Map<Long, UserCacheResDto> usersMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
             users.forEach(e -> usersMap.put(e.getId(), e));
             for (KwtWaybillOrderTrack kwtWaybillOrderTrack: kwtWaybillOrderTracks) {
                 for (WaybillStatusVO statusVO:statusVOS) {
@@ -250,7 +251,7 @@ public class WaybillManagementService {
             List<Long> userIds = new ArrayList<>();
             kwtWaybillOrderTracks.forEach(e -> userIds.add(e.getCreateBy()));
             List<UserCacheResDto> users = remoteSystemService.queryUserCacheByIds(userIds);
-            Map<Long, UserCacheResDto> usersMap = new HashMap<>();
+            Map<Long, UserCacheResDto> usersMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
             users.forEach(e -> usersMap.put(e.getId(), e));
             for (KwtWaybillOrderTrack kwtWaybillOrderTrack : kwtWaybillOrderTracks) {
                 for (WaybillStatusVO statusVO : statusVOS) {
@@ -306,8 +307,10 @@ public class WaybillManagementService {
             waybillBoardListVO.setType(String.valueOf(sckwWaybillOrder.getType()));
             waybillBoardListVO.setStatusLabel(CarWaybillEnum.getName(sckwWaybillOrder.getStatus()));
             waybillBoardListVO.setGoodsName(String.valueOf(sckwWaybillOrder.getGoodsName()));
+            waybillBoardListVO.setLoadAmount(sckwWaybillOrder.getLoadAmount());
             waybillBoardListVO.setLoadName(sckwWaybillOrder.getLoadName());
             waybillBoardListVO.setLoadDetailAddress(String.valueOf(sckwWaybillOrder.getLoadDetailAddress()));
+            waybillBoardListVO.setUnloadAmount(sckwWaybillOrder.getUnloadAmount());
             waybillBoardListVO.setUnloadName(sckwWaybillOrder.getUnloadName());
             waybillBoardListVO.setUnloadDetailAddress(String.valueOf(sckwWaybillOrder.getUnloadDetailAddress()));
             waybillBoardListVO.setStartTime(DateUtil.getDateTime(sckwWaybillOrder.getStartTime()));
@@ -338,7 +341,7 @@ public class WaybillManagementService {
                 List<Long> userIds = new ArrayList<>();
                 kwtWaybillOrderTracks.forEach(e -> userIds.add(e.getCreateBy()));
                 List<UserCacheResDto> users = remoteSystemService.queryUserCacheByIds(userIds);
-                Map<Long, String> usersMap = new HashMap<>();
+                Map<Long, String> usersMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
                 users.forEach(e -> usersMap.put(e.getId(), e.getName()));
                 waybillBoardListVO.getTracks().forEach(e -> {
                     kwtWaybillOrderTracks.forEach(e2 -> {
@@ -471,7 +474,7 @@ public class WaybillManagementService {
         AggregationResults<TableTops> outputTypeCount = mongoTemplate.aggregate(aggregation, SckwWaybillOrder.class, TableTops.class);
         List<TableTops> results = outputTypeCount.getMappedResults();
 
-        Map<String, TableTops> listMap = new HashMap<>();
+        Map<String, TableTops> listMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         TableTops topTotal = new TableTops();
         topTotal.setName("全部");
         topTotal.setValue("all");

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

@@ -0,0 +1,201 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: 10.10.10.230:8848
+        # 命名空间
+        namespace: sckw_lfdc
+        # 共享配置
+        group: sckw-service-platform
+      config:
+        # 配置中心地址
+        server-addr: 10.10.10.230:8848
+        # 配置文件格式
+        file-extension: yaml
+        # 命名空间
+        namespace: sckw_lfdc
+        # 共享配置
+        group: sckw-service-platform
+        #可以读多个配置文件  需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-service-platform
+            refresh: true
+#spring:
+#  rabbitmq:
+#    username: admin
+#    password: admin
+#    host: 10.10.10.138
+#    port: 5672
+#    virtual-host: /
+#  cloud:
+#    nacos:
+#      discovery:
+#        # 服务注册地址
+##        server-addr: 47.108.162.14:8848
+#        server-addr: 127.0.0.1:8848
+#        # 命名空间
+#        namespace: sckw-service-platform-dev
+#        # nacos用户名
+#        username: nacos
+#        # nacos密码
+#        password: nacos
+#        # 共享配置
+#        group: sckw-service-platform
+#        # 权重 1-100 数值越大权重越大分配的流量就越大,通常结合权重负载均衡策略
+#      #        weight: 100
+#      config:
+#        # 配置中心地址
+##        server-addr: 47.108.162.14:8848
+#        server-addr: 127.0.0.1:8848
+#        # 配置文件格式
+#        file-extension: yaml
+#        # 命名空间
+#        namespace: sckw-service-platform-dev
+#        # 共享配置
+#        group: sckw-service-platform
+#        enabled: true
+#    stream:
+#      bindings:
+#        sckwSms-out-0:
+#          destination: sckw-sms
+#          content-type: application/json
+#          default-binder: defaultRabbit
+#          group: sckw
+#        sckwMessage-out-0:
+#          destination: sckw-message
+#          content-type: application/json
+#          default-binder: defaultRabbit
+#          group: sckw
+#      binders:
+#        defaultRabbit:
+#          type: rabbit
+#          environment:
+#            spring:
+#              rabbitmq:
+#                virtual-host: /
+#                host: 39.104.134.114
+#                port: 5672
+#                username: wph
+#                password: Yy123...
+#    # sentinel降级配置
+#    sentinel:
+#      transport:
+#        client-ip: ${spring.cloud.client.ip-address} # 获取本机IP地址
+#        port: 8719  #默认8719端口,如果被占用会向上扫描。
+#        #控制台地址
+#        #dashboard: 47.108.162.14:19527
+#        dashboard: 127.0.0.1:19527
+#      log:
+#        #日志路径
+#        dir: logs/sentinel
+#        # 默认将调用链路收敛,导致链路流控效果无效
+#        web-context-unify: false
+#        #持久化nacos配置中
+#      datasource:
+#        #sentinel-rule: # 唯一名称可自定义
+#        #限流
+#        flow:
+#          nacos:
+#            # 设置Nacos的连接地址、命名空间和Group ID
+#            namespace:  sckw-service-platform-dev
+#            server-addr:  ${spring.cloud.nacos.discovery.server-addr}
+#            # username: ${spring.cloud.nacos.discovery.username}
+#            # password: ${spring.cloud.nacos.discovery.password}
+#            # 设置Nacos中配置文件的命名规则
+#            #            data-id:  ${spring.application.name}-sentinel-flow-rules
+#            data-id:  sckw-file-sentinel-flow-rules
+#            group-id: SENTINEL_GROUP
+#            data-type: json
+#            # 必填的重要字段,指定当前规则类型是"限流"
+#            rule-type: flow
+#        #熔断
+#        degrade:
+#          nacos:
+#            namespace:  sckw-service-platform-dev
+#            server-addr: ${spring.cloud.nacos.discovery.server-addr}
+#            #data-id: ${spring.application.name}-sentinel-degrade-rules
+#            data-id: sckw-file-sentinel-degrade-rules
+#            group-id: SENTINEL_GROUP
+#            #熔断
+#            rule-type: degrade
+#      #取消慢加载
+#      eager: true
+#  datasource:
+#    dynamic:
+#      seata: true
+##sfs:
+##  nacos:
+##    server-addr: 127.0.0.1:8848
+##    namespace: 967df0d8-156b-441a-a5ab-615b4a865168
+##    group: MY_GROUP
+##
+##    nacos:
+##      server-addr: ${sfs.nacos.server-addr}
+##      namespace: ${sfs.nacos.namespace}
+##      group: ${sfs.nacos.group}
+#
+##seata:
+##  # seata 服务分组,要与服务端nacos-config.txt中service.vgroup_mapping的后缀对应
+##  # 事务分组名称,要和服务端对应
+##  tx-service-group: sckw-transport-seata-service-group
+##  service:
+##    vgroup-mapping:
+##      # key是事务分组名称 value要和服务端的机房名称保持一致
+##      sckw-transport-seata-service-group: default
+##  registry:
+##    # 指定nacos作为注册中心
+##    type: nacos
+##    nacos:
+##      server-addr: ${spring.cloud.nacos.discovery.server-addr}
+##      #server-addr: 47.108.162.14:8848
+##      namespace: ${spring.cloud.nacos.discovery.namespace}
+##      #      group: SEATA_GROUP
+##      group: ${spring.cloud.nacos.discovery.group}
+##  config:
+##    # 指定nacos作为配置中心
+##    type: nacos
+##    nacos:
+##      server-addr: ${spring.cloud.nacos.discovery.server-addr}
+##      #server-addr: 47.108.162.14:8848
+##      namespace: ${spring.cloud.nacos.discovery.namespace}
+##      group: ${spring.cloud.nacos.discovery.group}
+##  application-id: ${spring.application.name}
+##  #  当前不生效,使用驼峰
+##  enabled: true
+##  #  enable-auto-data-source-proxy: false
+##  enableAutoDataSourceProxy: false
+##  application-id: sckw-seata-file
+## 支持feign对sentinel支持
+##feign:
+##  sentinel:
+##    enabled: true
+#
+#dubbo:
+#  application:
+#    # 此处没有延用spring.application.name是因为当前项目本身也会注册到nacos中,如果dubbo也延用相同的名称,在nacos服务里会看到注册的producer-server服务数为2
+#    name: transport-dubbo-server
+#  protocol:
+#    name: dubbo
+#    port: -1
+#    prefer-serialization: java
+#  registry:
+#    # 配置dubbo的注册中心为nacos
+#    address: nacos://${spring.cloud.nacos.discovery.server-addr}
+#    group: ${spring.cloud.nacos.config.group}
+#    protocol: nacos
+#    #use-as-config-center: false
+#    #use-as-metadata-center: false
+#aliyun:
+#  oss:
+#    endpoint: oss-cn-chengdu.aliyuncs.com
+#    accessKeyId: LTAI5tPEbubCGq5Rdwygbz4Q
+#    secret: 7mQLWMaBJeZPRV1SRGogctYGXwppjQ
+#    bucket: kaiwu-saas
+#links:
+#isBindManyRole:
+#mybatis-plus:
+#  configuration:
+#    # 是否将sql打印到控制面板(该配置会将sql语句和查询的结果都打印到控制台)
+#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

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

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

+ 3 - 0
sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml

@@ -799,6 +799,9 @@
             <if test="query.unloadAddressCode != null and query.unloadAddressCode != ''">
                 and c.city_code = #{query.unloadAddressCode}
             </if>
+            <if test="query.billingMode != null and query.billingMode != ''">
+                and a.billing_mode =#{query.billingMode}
+            </if>
         </where>
         ORDER BY a.id DESC
         <!--               ,a.create_time-->