|
|
@@ -2,12 +2,16 @@ package com.jzg.organization.aop;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
+import com.jzg.commons.core.page.HttpResult;
|
|
|
import com.jzg.commons.entity.finance.vo.BatchModifyVo;
|
|
|
import com.jzg.commons.entity.orders.po.InsOrders;
|
|
|
import com.jzg.commons.entity.orders.po.InsOrdersCarInfo;
|
|
|
import com.jzg.commons.entity.orders.po.InsOrdersTrack;
|
|
|
+import com.jzg.commons.entity.quote.vo.aggregated.QuoteEchoVo;
|
|
|
import com.jzg.commons.entity.vo.PtlAgreementCostRatioVo;
|
|
|
import com.jzg.commons.entity.vo.QuestionOrder;
|
|
|
+import com.jzg.commons.util.JsonDiffUtil;
|
|
|
+import com.jzg.commons.util.OrderComponts;
|
|
|
import com.jzg.organization.client.InsOrdersClient;
|
|
|
import com.jzg.quotation.summary.aop.aspect.OrderOperationLog;
|
|
|
import org.aspectj.lang.ProceedingJoinPoint;
|
|
|
@@ -24,7 +28,7 @@ import org.springframework.expression.spel.standard.SpelExpressionParser;
|
|
|
import org.springframework.expression.spel.support.StandardEvaluationContext;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
|
|
|
@Aspect
|
|
|
@Component
|
|
|
@@ -38,6 +42,12 @@ public class OrderOperationLogAspect {
|
|
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
+ * 这个方法不能删除,是通过spring aop 来调用的
|
|
|
+ *
|
|
|
+ * @author lipf
|
|
|
+ * @date 2026/7/22 15:11
|
|
|
+ */
|
|
|
@Around("@annotation(log)")
|
|
|
public Object handleLog(ProceedingJoinPoint joinPoint, OrderOperationLog log) throws Throwable {
|
|
|
// 获取方法信息和参数
|
|
|
@@ -65,8 +75,24 @@ public class OrderOperationLogAspect {
|
|
|
case 16:
|
|
|
logger.info("批量修改比例.log.orderSpEl()=[{}]",log.orderSpEl());
|
|
|
BatchModifyVo batchModifyVo = parser.parseExpression(log.orderSpEl()).getValue(context, BatchModifyVo.class);
|
|
|
+ List<String> orderNos = batchModifyVo.getOrderNos();
|
|
|
+ if(CollUtil.isEmpty(orderNos)){
|
|
|
+ throw new RuntimeException("缺少orderNos参数");
|
|
|
+ }
|
|
|
+ Map<String,QuoteEchoVo> oldOrders = new HashMap<>();
|
|
|
+ for (String orderNo : orderNos) {
|
|
|
+ HttpResult<QuoteEchoVo> quoteEchoVoHttpResult = insOrdersClient.auditInfo(orderNo);
|
|
|
+ oldOrders.put(orderNo,quoteEchoVoHttpResult.getData());
|
|
|
+ }
|
|
|
result = joinPoint.proceed();
|
|
|
- this.batchModify(result,log, batchModifyVo);
|
|
|
+
|
|
|
+ Map<String,QuoteEchoVo> newOrders = new HashMap<>();
|
|
|
+ for (String orderNo : orderNos) {
|
|
|
+ HttpResult<QuoteEchoVo> quoteEchoVoHttpResult = insOrdersClient.auditInfo(orderNo);
|
|
|
+ newOrders.put(orderNo,quoteEchoVoHttpResult.getData());
|
|
|
+ }
|
|
|
+
|
|
|
+ this.batchModify(result,log, batchModifyVo,oldOrders, newOrders);
|
|
|
break;
|
|
|
// 设为疑问订单
|
|
|
case 17:
|
|
|
@@ -114,7 +140,7 @@ public class OrderOperationLogAspect {
|
|
|
* @author lipf
|
|
|
* @date 2026/7/8 15:29
|
|
|
*/
|
|
|
- private void batchModify(Object result, OrderOperationLog log, BatchModifyVo vo) {
|
|
|
+ private void batchModify(Object result, OrderOperationLog log, BatchModifyVo vo,Map<String,QuoteEchoVo> oldOrders, Map<String,QuoteEchoVo> newOrders) {
|
|
|
List<String> orderNos = vo.getOrderNos();
|
|
|
if(CollUtil.isEmpty(orderNos)){
|
|
|
logger.info("批量修改没有传入订单号");
|
|
|
@@ -126,7 +152,26 @@ public class OrderOperationLogAspect {
|
|
|
track.setSubModule(log.subModule());
|
|
|
track.setOptType(log.optType().getCode());
|
|
|
track.setOptContent(log.description());
|
|
|
- track.setChangeAfter(JSONUtil.toJsonStr(vo));
|
|
|
+ QuoteEchoVo detailVoOld = oldOrders.get(orderNo);
|
|
|
+ QuoteEchoVo detailVoNew = newOrders.get(orderNo);
|
|
|
+ Map<String, List<String>> diffMap = JsonDiffUtil.compareJson(JSONUtil.toJsonStr(detailVoOld), JSONUtil.toJsonStr(detailVoNew), new HashSet<>());
|
|
|
+
|
|
|
+ if(CollUtil.isNotEmpty(diffMap)){
|
|
|
+ List<String> oldItems = new ArrayList<>();
|
|
|
+ List<String> newItems = new ArrayList<>();
|
|
|
+ Map<String,String> keyMap = OrderComponts.fillKeyNameMap();
|
|
|
+ diffMap.forEach((path, values) ->{
|
|
|
+ System.out.println("路径: " + path + " -> 值1: " + values.get(0) + " | 值2: " + values.get(1));
|
|
|
+ oldItems.add(keyMap.getOrDefault(path,path) + ": " + values.get(0));
|
|
|
+ newItems.add(keyMap.getOrDefault(path,path) + ": " + values.get(1));
|
|
|
+ }
|
|
|
+ );
|
|
|
+ logger.info("oldItem=[{}]", JSONUtil.toJsonStr(oldItems));
|
|
|
+ logger.info("newItem=[{}]", JSONUtil.toJsonStr(newItems));
|
|
|
+
|
|
|
+ track.setChangeBefore(String.join("\r\n", oldItems));
|
|
|
+ track.setChangeAfter(String.join("\r\n", newItems));
|
|
|
+ }
|
|
|
track.setResult(JSONUtil.toJsonStr(result));
|
|
|
InsOrders insOrders = insOrdersClient.getById(orderNo);
|
|
|
if(insOrders != null){
|
|
|
@@ -144,34 +189,34 @@ public class OrderOperationLogAspect {
|
|
|
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 保存费用信息
|
|
|
- * @author lipf
|
|
|
- * @date 2026/7/8 15:28
|
|
|
- */
|
|
|
- private void saveCostInfo(Object result, OrderOperationLog log, PtlAgreementCostRatioVo vo) {
|
|
|
- InsOrdersTrack track = new InsOrdersTrack();
|
|
|
- String orderNo = vo.getOrderNo();
|
|
|
- track.setModule(log.module());
|
|
|
- track.setSubModule(log.subModule());
|
|
|
- track.setOptType(log.optType().getCode());
|
|
|
- track.setOptContent(log.description());
|
|
|
- track.setResult(JSONUtil.toJsonStr(vo));
|
|
|
- InsOrders insOrders = insOrdersClient.getById(orderNo);
|
|
|
- if(insOrders != null){
|
|
|
- InsOrdersCarInfo carInfo = insOrdersClient.getByOrderId(insOrders.getId());
|
|
|
- track.setLicenseNo(carInfo.getLicenseNo());
|
|
|
- track.setCompanyId(insOrders.getCompanyId());
|
|
|
- // track.setResult(result.getMsg());
|
|
|
- }else{
|
|
|
- track.setResult("要进行费用调整的订单不存在");
|
|
|
- }
|
|
|
- track.setStatus(1);
|
|
|
- track.setChangeBefore("");
|
|
|
- track.setChangeAfter("费用调整完成");
|
|
|
- track.setOrderNo(orderNo);
|
|
|
- track.setResult(JSONUtil.toJsonStr(result));
|
|
|
- insOrdersClient.save(track);
|
|
|
- }
|
|
|
+// /**
|
|
|
+// * 保存费用信息
|
|
|
+// * @author lipf
|
|
|
+// * @date 2026/7/8 15:28
|
|
|
+// */
|
|
|
+// private void saveCostInfo(Object result, OrderOperationLog log, PtlAgreementCostRatioVo vo) {
|
|
|
+// InsOrdersTrack track = new InsOrdersTrack();
|
|
|
+// String orderNo = vo.getOrderNo();
|
|
|
+// track.setModule(log.module());
|
|
|
+// track.setSubModule(log.subModule());
|
|
|
+// track.setOptType(log.optType().getCode());
|
|
|
+// track.setOptContent(log.description());
|
|
|
+// track.setResult(JSONUtil.toJsonStr(vo));
|
|
|
+// InsOrders insOrders = insOrdersClient.getById(orderNo);
|
|
|
+// if(insOrders != null){
|
|
|
+// InsOrdersCarInfo carInfo = insOrdersClient.getByOrderId(insOrders.getId());
|
|
|
+// track.setLicenseNo(carInfo.getLicenseNo());
|
|
|
+// track.setCompanyId(insOrders.getCompanyId());
|
|
|
+// // track.setResult(result.getMsg());
|
|
|
+// }else{
|
|
|
+// track.setResult("要进行费用调整的订单不存在");
|
|
|
+// }
|
|
|
+// track.setStatus(1);
|
|
|
+// track.setChangeBefore("");
|
|
|
+// track.setChangeAfter("费用调整完成");
|
|
|
+// track.setOrderNo(orderNo);
|
|
|
+// track.setResult(JSONUtil.toJsonStr(result));
|
|
|
+// insOrdersClient.save(track);
|
|
|
+// }
|
|
|
|
|
|
}
|