From eaec3e8bcaf227ef3e3d1f2bffd59dd24600b01f Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期二, 28 六月 2022 10:22:07 +0800
Subject: [PATCH] 兼容性优化处理

---
 service-order/src/main/java/com/java110/order/smo/impl/OIdServiceSMOImpl.java |   47 +++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 43 insertions(+), 4 deletions(-)

diff --git a/service-order/src/main/java/com/java110/order/smo/impl/OIdServiceSMOImpl.java b/service-order/src/main/java/com/java110/order/smo/impl/OIdServiceSMOImpl.java
index 58c0e32..ac5a38b 100755
--- a/service-order/src/main/java/com/java110/order/smo/impl/OIdServiceSMOImpl.java
+++ b/service-order/src/main/java/com/java110/order/smo/impl/OIdServiceSMOImpl.java
@@ -3,8 +3,8 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.client.RestTemplate;
-import com.java110.core.context.SecureInvocation;
 import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.core.log.LoggerFactory;
 import com.java110.dto.app.AppDto;
 import com.java110.dto.businessTableHis.BusinessTableHisDto;
 import com.java110.dto.order.OrderDto;
@@ -19,7 +19,6 @@
 import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
 import org.slf4j.Logger;
-import com.java110.core.log.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.*;
 import org.springframework.stereotype.Service;
@@ -76,7 +75,7 @@
         }
 
         //淇濆瓨璁㈠崟淇℃伅
-            centerServiceDAOImpl.saveOrder(BeanConvertUtil.beanCovertMap(orderDto));
+        centerServiceDAOImpl.saveOrder(BeanConvertUtil.beanCovertMap(orderDto));
 
         return new ResponseEntity<String>(JSONObject.toJSONString(orderDto), HttpStatus.OK);
     }
@@ -320,8 +319,11 @@
         }
         centerServiceDAOImpl.saveOrderItem(BeanConvertUtil.beanCovertMap(orderItemDto));
 
+        //鑾峰彇action
+        String action = getOrderItemAction(orderItemDto);
+
         //鍒ゆ柇鏄惁閰嶇疆浜� 杞ㄨ抗
-        BusinessTableHisDto businessTableHisDto = BusinessTableHisCache.getBusinessTableHisDto(orderItemDto.getAction(), orderItemDto.getActionObj());
+        BusinessTableHisDto businessTableHisDto = BusinessTableHisCache.getBusinessTableHisDto(action, orderItemDto.getActionObj());
         if (businessTableHisDto == null) {
             return ResultVo.createResponseEntity(ResultVo.CODE_OK, ResultVo.MSG_OK);
         }
@@ -344,6 +346,43 @@
         return ResultVo.createResponseEntity(ResultVo.CODE_OK, ResultVo.MSG_OK);
     }
 
+    /**
+     * 杩欓噷 鍏煎鎬у鐞�
+     * 鍥犱负鎴戜滑涓嶆秹鍙� 鐗╃悊鍒犻櫎 閮芥槸閫昏緫鍒犻櫎 鎵�浠� status_cd 涓� 1 鏃跺己琛岃缃负DEL 涓洪�昏緫鍒犻櫎
+     * @param orderItemDto
+     * @return
+     */
+    private String getOrderItemAction(OrderItemDto orderItemDto) {
+
+        if (StringUtil.isEmpty(orderItemDto.getLogText())) {
+            return orderItemDto.getAction();
+        }
+
+        if ("ADD".equals(orderItemDto.getAction()) || "DEL".equals(orderItemDto.getAction())) {
+            return orderItemDto.getAction();
+        }
+
+        if (!StringUtil.isJsonObject(orderItemDto.getLogText())) {
+            return orderItemDto.getAction();
+        }
+        JSONObject logTextObj = JSONObject.parseObject(orderItemDto.getLogText());
+        if (!logTextObj.containsKey("afterValue")) {
+            return orderItemDto.getAction();
+        }
+        JSONArray afterValues = logTextObj.getJSONArray("afterValue");
+        if (afterValues == null || afterValues.size() < 1) {
+            return orderItemDto.getAction();
+        }
+
+        for (int afterValueIndex = 0; afterValueIndex < afterValues.size(); afterValueIndex++) {
+            JSONObject keyValue = afterValues.getJSONObject(afterValueIndex);
+            if (keyValue.containsKey("status_cd") && "1".equals(keyValue.getString("status_cd"))) {
+                return "DEL";
+            }
+        }
+        return orderItemDto.getAction();
+    }
+
     private void doNoticeServiceGeneratorBusiness(OrderItemDto orderItemDto, BusinessTableHisDto businessTableHisDto) {
         asynNotifySubServiceImpl.notifySubService(orderItemDto, businessTableHisDto);
     }

--
Gitblit v1.8.0