From c19de84fa332a00c651f28e3a52292fd14f143a1 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期二, 23 九月 2025 17:30:07 +0800
Subject: [PATCH] 陆常丽反应软件系统财务对账时而数据不准确,分析源码,找到bug原因是,财务对账统计只有用户点击后才会触发统计功能,把历史上及当天进行了统计,如果当天统计时未下班,例如是中午触发统计了,而下午又进行了充值售水,但下班后未再点击触发对账统计,那么今天的对账统计完成了但数据不对。编写自动任务,在下半夜进行对账统计。
---
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/multiDataSource/DataSourceAspect.java | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 60 insertions(+), 0 deletions(-)
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/multiDataSource/DataSourceAspect.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/multiDataSource/DataSourceAspect.java
new file mode 100644
index 0000000..2d1a8c7
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/multiDataSource/DataSourceAspect.java
@@ -0,0 +1,60 @@
+package com.dy.common.multiDataSource;
+
+import com.dy.common.contant.Constant;
+import com.mysql.cj.util.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+import java.lang.reflect.Method;
+import java.util.Objects;
+
+/**
+ * 澶氭暟鎹簮搴旂敤涓紝閫氳繃娉ㄨВ纭畾鏌愪釜鏁版嵁婧�
+ * 渚嬪鍦⊿ervices灞傛柟娉曚笂娉ㄨВ锛�
+ * @DataSource("test")
+ * 琛ㄧず搴旂敤鏁版嵁婧恡est
+ */
+@Slf4j
+@Aspect
+@Order(Constant.AspectOrderDataSource)
+@Component
+public class DataSourceAspect {
+
+ @Pointcut("@annotation(com.dy.common.multiDataSource.DataSource)")
+ public void dataSourcePointCut() {
+ }
+
+ @Around("dataSourcePointCut()")
+ public Object around(ProceedingJoinPoint point) throws Throwable {
+ MethodSignature signature = (MethodSignature) point.getSignature();
+ Method method = signature.getMethod();
+ DataSource dataSource = method.getAnnotation(DataSource.class);
+
+ if (Objects.nonNull(dataSource) && !StringUtils.isNullOrEmpty(dataSource.value())) {
+ //log.info("鍒囨崲鏁版嵁婧愪负" + dataSource.value());
+ //寮哄埗杞垚鏂规硶涓婇厤缃殑鏁版嵁婧愶紝鏇挎崲鎺塂ataSourceContext涓繚瀛樼殑鏁版嵁婧�
+ DataSourceContext.set(dataSource.value());
+ }else{
+ String dataSourceName = DataSourceContext.get() ;
+ if(!StringUtils.isNullOrEmpty(dataSourceName)){
+ log.info("褰撳墠鏁版嵁婧愪负" + dataSourceName);
+ }
+ }
+
+ try {
+ log.info("鏁版嵁搴撴搷浣滃紑濮�" + dataSource.value());
+ return point.proceed();
+ } finally {
+ // 閿�姣佹暟鎹簮 鍦ㄦ墽琛屾柟娉曚箣鍚�
+ log.info("鏁版嵁婧愭搷浣滃畬姣�" + dataSource.value());
+ DataSourceContext.remove();
+ }
+ }
+
+}
\ No newline at end of file
--
Gitblit v1.8.0