FengChaoYu 4 日 前
コミット
4b353fb7db

+ 1 - 2
mall-server-api/src/main/java/com/gree/mall/manager/enums/workorder/OrderBaseStatusEnum.java

@@ -55,7 +55,6 @@ public enum OrderBaseStatusEnum implements BaseEnum {
     YCGB("YCGB","异常关闭"),
      LRCD("LRCD","录入存档"),
     FWQX("FWQX","服务取消"),
-    FL("FL","分流3.0"),
     YWGO("YWGO","已完工"),
     DFBPG("DFBPG","待分部派工"),
     DSPGP("DSPGP","待审批改派"),
@@ -81,7 +80,7 @@ public enum OrderBaseStatusEnum implements BaseEnum {
     public static List<String> notDispatchWorker(){
         return Lists.newArrayList(DYY.key,DSHPG.key,DWDPG.key,DQD.key,
                 CJ.key,YPD.key,DXSPD.key,DZBPG.key,DXSSPGP.key,DTJXSSPGP.key,DZBSPGP.key,DFZXSPGP.key,XSBH.key,
-                TJXSBH.key,ZBBH.key,FZXBH.key,FL.key,DWDSPGP.key,WDBH.key,DFZXPD.getKey());
+                TJXSBH.key,ZBBH.key,FZXBH.key,DWDSPGP.key,WDBH.key,DFZXPD.getKey());
     }
 
     public static List<String> isOver(){

+ 21 - 23
mall-server-api/src/main/java/com/gree/mall/manager/logic/workorder/OrderBaseLogic.java

@@ -215,12 +215,12 @@ public class OrderBaseLogic {
             throw new RemoteServiceException("平台账号不可建单");
         }
         //如果选择的师傅存在非当前工单的网点,则清空师傅信息
-        if (CollectionUtils.isNotEmpty(orderAddBeanDTO.getOrderWorkers())) {
-            long count = orderAddBeanDTO.getOrderWorkers().stream().filter(v -> !StringUtils.equals(v.getWebsitId(), orderAddBeanDTO.getWebsitId())).count();
-            if (count > 0) {
-                orderAddBeanDTO.getOrderWorkers().clear();
-            }
-        }
+//        if (CollectionUtils.isNotEmpty(orderAddBeanDTO.getOrderWorkers())) {
+//            long count = orderAddBeanDTO.getOrderWorkers().stream().filter(v -> !StringUtils.equals(v.getWebsitId(), orderAddBeanDTO.getWebsitId())).count();
+//            if (count > 0) {
+//                orderAddBeanDTO.getOrderWorkers().clear();
+//            }
+//        }
 
         PgOrderBase orderBase = this.conver(old, orderAddBeanDTO, addFlag);
         orderBase.setCompanyWechatId(adminUser.getCompanyWechatId());
@@ -304,7 +304,7 @@ public class OrderBaseLogic {
             orderFlagLogic.saveOrderFlag(Lists.newArrayList(orderBaseId), OrderFlagEnum.PROJECT);
         }
         //租赁单业务处理
-        orderBase = handleZl(orderBase);
+//        orderBase = handleZl(orderBase);
         //变更师傅的通知
         if (changeWorker) {
             orderLogLogic.insertNotice(orderBaseId);
@@ -661,7 +661,7 @@ public class OrderBaseLogic {
         }
         //商城订单信息补充
         if (StringUtils.isNotBlank(orderAddBeanDTO.getSaleOrderId())) {
-            if (!orderAddBeanDTO.getIsZl()) {
+//            if (!orderAddBeanDTO.getIsZl()) {
                 //商城订单
                 OrderInfo orderInfo = orderInfoService.getById(orderAddBeanDTO.getSaleOrderId());
                 if (orderInfo != null) {
@@ -670,10 +670,10 @@ public class OrderBaseLogic {
                     pgOrderBase.setSaleRemark(orderInfo.getBuyerMsg());
                     pgOrderBase.setSource(orderInfo.getSource());
                 }
-            } else {
+//            } else {
                 //租赁单业务处理
-                pgOrderBase = handleZl(pgOrderBase);
-            }
+//                pgOrderBase = handleZl(pgOrderBase);
+//            }
         }
         //状态维护
         pgOrderBase.setOrderStatus(orderBaseStatusEnum.getKey());
@@ -1011,10 +1011,11 @@ public class OrderBaseLogic {
 //        if(pgOrderBase == null){
 //            pgOrderBase = new PgOrderBase();
 //        }
-        PgOrderBase pgOrderBase = null;
+        PgOrderBase pgOrderBase;
         if (old != null) {
-            //深拷贝
-            pgOrderBase = ObjectUtil.clone(old);
+            //使用BeanUtils复制属性,避免类加载器冲突
+            pgOrderBase = new PgOrderBase();
+            BeanUtil.copyProperties(old, pgOrderBase);
         } else {
             pgOrderBase = new PgOrderBase();
         }
@@ -1113,7 +1114,6 @@ public class OrderBaseLogic {
         if (CollectionUtils.isNotEmpty(orderAddBeanDTO.getOrderWorkers())) {
             //如果是待网点派工的工单,此时变更状态为待接单
             if (orderBaseStatusEnum == OrderBaseStatusEnum.DWDPG || orderBaseStatusEnum == OrderBaseStatusEnum.DQD ||
-                    orderBaseStatusEnum == OrderBaseStatusEnum.FL ||
                     orderBaseStatusEnum == OrderBaseStatusEnum.CJ ||
                     orderBaseStatusEnum == OrderBaseStatusEnum.YPD ||
                     orderBaseStatusEnum == OrderBaseStatusEnum.DXSPD ||
@@ -1129,11 +1129,9 @@ public class OrderBaseLogic {
                     orderBaseStatusEnum == OrderBaseStatusEnum.FZXBH ||
                     orderBaseStatusEnum == OrderBaseStatusEnum.WDBH ||
                     orderBaseStatusEnum == OrderBaseStatusEnum.DFZXPD
-
-
-            )
+            ) {
                 orderBaseStatusEnum = OrderBaseStatusEnum.DJD;
-
+            }
             List<String> workerIds = orderAddBeanDTO.getOrderWorkers().stream().map(PgOrderWorker::getWorkerId).collect(Collectors.toList());
             workerIdsStr = StringUtils.join(workerIds, ",");
 
@@ -1142,8 +1140,8 @@ public class OrderBaseLogic {
             pgOrderBase.setWorkerName(masterWorker.getWorkerName());
             pgOrderBase.setWorkerMobile(masterWorker.getWorkerMobile());
             pgOrderBase.setWorkerIdcard(masterWorker.getWorkerIdcard());
-            pgOrderBase.setWebsitId(masterWorker.getWebsitId());
-            pgOrderBase.setWebsitName(masterWorker.getWebsitName());
+//            pgOrderBase.setWebsitId(masterWorker.getWebsitId());
+//            pgOrderBase.setWebsitName(masterWorker.getWebsitName());
             pgOrderBase.setWorkerIdList(workerIdsStr);
             //只记录第一次
             if (pgOrderBase.getDispatchTime() == null) {
@@ -1177,7 +1175,7 @@ public class OrderBaseLogic {
         pgOrderBase.setOrderStatusText(orderBaseStatusEnum.getRemark());
 
         //租赁
-        pgOrderBase = this.handleZl(pgOrderBase);
+//        pgOrderBase = this.handleZl(pgOrderBase);
         return pgOrderBase;
     }
 
@@ -1558,7 +1556,7 @@ public class OrderBaseLogic {
      */
     public Boolean updateOrderLog(PgOrderBase oldOrderBase, PgOrderBase newOrderBase, OrderAddBeanDTO orderAddBeanDTO) {
         //PgOrderBase oldOrderBase = pgOrderBaseService.getById(newOrderBase.getId());
-        StringBuffer logs = new StringBuffer();
+        StringBuilder logs = new StringBuilder();
 
         String oldWorkerNames = "";
         String newWorkerNames = "";

+ 56 - 36
mall-server-api/src/main/java/com/gree/mall/manager/utils/CommonUtils.java

@@ -263,53 +263,73 @@ public class CommonUtils {
      * @return
      */
     public static String supplyLog(String title, Object oldValue, Object newValue) {
-        if (oldValue instanceof String) {
-            oldValue = oldValue == null ? "" : oldValue;
-            newValue = newValue == null ? "" : newValue;
-            if (!StringUtils.equals((String) oldValue, (String) newValue)) {
-                return "【" + title + "】修改前:" + oldValue + ",修改后:" + newValue + "。";
-            }
+        // 处理null值的特殊情况
+        if (oldValue == null && newValue == null) {
+            return "";
         }
-        if (oldValue instanceof Integer) {
-            oldValue = oldValue == null ? 0 : oldValue;
-            newValue = newValue == null ? 0 : newValue;
-            if (!((Integer) oldValue).equals((Integer) newValue)) {
-                return "【" + title + "】修改前:" + oldValue + ",修改后:" + newValue + "。";
-            }
+        if (oldValue == null) {
+            return "【" + title + "】修改前:" + "" + ",修改后:" + formatValue(newValue) + "。";
+        }
+        if (newValue == null) {
+            return "【" + title + "】修改前:" + formatValue(oldValue) + ",修改后:" + "" + "。";
         }
 
-        if(oldValue instanceof Boolean){
-            oldValue = oldValue == null ? false : oldValue;
-            newValue = newValue == null ? false : newValue;
+        // 判断值是否相等
+        if (!isEqual(oldValue, newValue)) {
+            return "【" + title + "】修改前:" + formatValue(oldValue) + ",修改后:" + formatValue(newValue) + "。";
+        }
 
-            String a = (Boolean) oldValue ? "是" : "否";
-            String b = (Boolean) newValue ? "是" : "否";
-            if (!a.equals(b)) {
-                return "【" + title + "】修改前:" + a + ",修改后:" + b + "。";
-            }
+        return "";
+    }
+
+    /**
+     * 比较两个对象是否相等
+     */
+    private static boolean isEqual(Object oldValue, Object newValue) {
+        if (oldValue.getClass() != newValue.getClass()) {
+            return false;
         }
 
-        if(oldValue instanceof Date){
-            long o = oldValue == null ? 0 : ((Date) oldValue).getTime();
-            long n = newValue == null ? 0 : ((Date) newValue).getTime();
-            if(o != n){
-                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-                return "【" + title + "】修改前:" + sdf.format(oldValue) + ",修改后:" + sdf.format(newValue) + "。";
-            }
+        if (oldValue instanceof String) {
+            return StringUtils.equals((String) oldValue, (String) newValue);
+        }
+        if (oldValue instanceof Integer) {
+            return ((Integer) oldValue).equals((Integer) newValue);
+        }
+        if (oldValue instanceof Long) {
+            return ((Long) oldValue).equals((Long) newValue);
+        }
+        if (oldValue instanceof Double) {
+            return ((Double) oldValue).equals((Double) newValue);
+        }
+        if (oldValue instanceof Boolean) {
+            return ((Boolean) oldValue).equals((Boolean) newValue);
+        }
+        if (oldValue instanceof Date) {
+            return ((Date) oldValue).getTime() == ((Date) newValue).getTime();
         }
 
-        if(oldValue == null && newValue != null){
-            oldValue = oldValue == null ? "" : oldValue;
-            newValue = newValue == null ? "" : newValue;
-            return "【" + title + "】修改前:" + oldValue + ",修改后:" + newValue + "。";
+        // 其他类型使用equals方法
+        return oldValue.equals(newValue);
+    }
 
+    /**
+     * 格式化不同类型的值为字符串
+     */
+    private static String formatValue(Object value) {
+        if (value == null) {
+            return "";
         }
-        if(oldValue != null && newValue == null){
-            oldValue = oldValue == null ? "" : oldValue;
-            newValue = newValue == null ? "" : newValue;
-            return "【" + title + "】修改前:" + oldValue + ",修改后:" + newValue + "。";
+
+        if (value instanceof Boolean) {
+            return (Boolean) value ? "是" : "否";
         }
-        return "";
+        if (value instanceof Date) {
+             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+             return sdf.format(value);
+         }
+
+        return value.toString();
     }