Browse Source

存在文化销售统计功能优化

yjwang 1 tháng trước cách đây
mục cha
commit
7bbe4866ca

+ 21 - 0
fs-service/src/main/java/com/fs/hisStore/mapper/FsStorePaymentScrmMapper.java

@@ -382,6 +382,13 @@ public interface FsStorePaymentScrmMapper
      * **/
     FsStoreScanPaymentStatVo getScanPaymentMonthStat(@Param("monthParam")FsStoreScanPaymentStatParam monthParam);
 
+    /**
+     * 销售流水月统计明细
+     * @param monthParam 查询条件
+     * @return 日统计数据
+     * **/
+    List<FsStoreScanPaymentStatDetailsVo> getScanPaymentMonthStatPage(@Param("monthParam")FsStoreScanPaymentStatParam monthParam);
+
     /**
      * 销售流水年统计
      * @param yearParam 查询条件
@@ -389,10 +396,24 @@ public interface FsStorePaymentScrmMapper
      * **/
     FsStoreScanPaymentStatVo getScanPaymentYearStat(@Param("yearParam")FsStoreScanPaymentStatParam yearParam);
 
+    /**
+     * 销售流水年统计分页
+     * @param yearParam 查询条件
+     * @return 日统计数据
+     * **/
+    List<FsStoreScanPaymentStatDetailsVo> getScanPaymentYearStatPage(@Param("yearParam")FsStoreScanPaymentStatParam yearParam);
+
     /**
      * 销售流水时间统计
      * @param dateParam 查询条件
      * @return 日统计数据
      * **/
     FsStoreScanPaymentStatVo getScanPaymentDateStat(@Param("dateParam")FsStoreScanPaymentStatParam dateParam);
+
+    /**
+     * 销售流水时间统计分页
+     * @param dateParam 查询条件
+     * @return 日统计数据
+     * **/
+    List<FsStoreScanPaymentStatDetailsVo> getScanPaymentDateStatPage(@Param("dateParam")FsStoreScanPaymentStatParam dateParam);
 }

+ 3 - 3
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStorePaymentScrmServiceImpl.java

@@ -939,10 +939,10 @@ public class FsStorePaymentScrmServiceImpl implements IFsStorePaymentScrmService
                 paymentStatDetailsVos = fsStorePaymentMapper.getScanPaymentDayStatDetails(param);
                 break;
             case MONTH://月
-
+                paymentStatDetailsVos = fsStorePaymentMapper.getScanPaymentMonthStatPage(param);
                 break;
             case YEAR://年
-
+                paymentStatDetailsVos = fsStorePaymentMapper.getScanPaymentYearStatPage(param);
                 break;
             case DATE://日期
                 if(StringUtils.isEmpty(param.getStartDate())){
@@ -950,7 +950,7 @@ public class FsStorePaymentScrmServiceImpl implements IFsStorePaymentScrmService
                 }else if(StringUtils.isEmpty(param.getEndDate())){
                     throw new ServiceException("操作失败,结日期不能为空!");
                 }
-
+                paymentStatDetailsVos = fsStorePaymentMapper.getScanPaymentDateStatPage(param);
                 break;
         }
         return paymentStatDetailsVos;

+ 154 - 0
fs-service/src/main/resources/application-druid-bjczwh-test.yml

@@ -0,0 +1,154 @@
+# 数据源配置
+spring:
+    profiles:
+        include: config-druid-bjczwh,common
+    # redis 配置
+    redis:
+        host: 127.0.0.1
+        port: 6379
+        # 数据库索引
+        database: 0
+        # 密码
+        password:
+        # 连接超时时间
+        timeout: 10s
+        lettuce:
+            pool:
+                # 连接池中的最小空闲连接
+                min-idle: 0
+                # 连接池中的最大空闲连接
+                max-idle: 8
+                # 连接池的最大数据库连接数
+                max-active: 100
+                # #连接池最大阻塞等待时间(使用负值表示没有限制)
+                max-wait: -1ms
+    datasource:
+#        clickhouse:
+#            type: com.alibaba.druid.pool.DruidDataSource
+#            driverClassName: com.clickhouse.jdbc.ClickHouseDriver
+#            url: jdbc:clickhouse://1.14.104.71:8123/sop_test?compress=0&use_server_time_zone=true&use_client_time_zone=false&timezone=Asia/Shanghai
+#            username: rt_2024
+#            password: Yzx_19860213
+#            initialSize: 10
+#            maxActive: 100
+#            minIdle: 10
+#            maxWait: 6000
+        mysql:
+            type: com.alibaba.druid.pool.DruidDataSource
+            driverClassName: com.mysql.cj.jdbc.Driver
+            druid:
+                # 主库数据源
+                master:
+                  url: jdbc:mysql://rm-bp10925iw97l3b2hbvo.mysql.rds.aliyuncs.com:3306/fs_his?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                  username: root
+                  password: Ylrz_1q2w3e4r5t6y
+                # 从库数据源
+                slave:
+                    # 从数据源开关/默认关闭
+                    enabled: false
+                    url:
+                    username:
+                    password:
+                # 初始连接数
+                initialSize: 5
+                # 最小连接池数量
+                minIdle: 10
+                # 最大连接池数量
+                maxActive: 20
+                # 配置获取连接等待超时的时间
+                maxWait: 60000
+                # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+                timeBetweenEvictionRunsMillis: 60000
+                # 配置一个连接在池中最小生存的时间,单位是毫秒
+                minEvictableIdleTimeMillis: 300000
+                # 配置一个连接在池中最大生存的时间,单位是毫秒
+                maxEvictableIdleTimeMillis: 900000
+                # 配置检测连接是否有效
+                validationQuery: SELECT 1 FROM DUAL
+                testWhileIdle: true
+                testOnBorrow: false
+                testOnReturn: false
+                webStatFilter:
+                    enabled: true
+                statViewServlet:
+                    enabled: true
+                    # 设置白名单,不填则允许所有访问
+                    allow:
+                    url-pattern: /druid/*
+                    # 控制台管理用户名和密码
+                    login-username: fs
+                    login-password: 123456
+                filter:
+                    stat:
+                        enabled: true
+                        # 慢SQL记录
+                        log-slow-sql: true
+                        slow-sql-millis: 1000
+                        merge-sql: true
+                    wall:
+                        config:
+                            multi-statement-allow: true
+        sop:
+            type: com.alibaba.druid.pool.DruidDataSource
+            driverClassName: com.mysql.cj.jdbc.Driver
+            druid:
+                # 主库数据源
+                master:
+                    url: jdbc:mysql://rm-bp10925iw97l3b2hbvo.mysql.rds.aliyuncs.com:3306/fs_his_sop?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                    username: root
+                    password: Ylrz_1q2w3e4r5t6y
+                # 初始连接数
+                initialSize: 5
+                # 最小连接池数量
+                minIdle: 10
+                # 最大连接池数量
+                maxActive: 20
+                # 配置获取连接等待超时的时间
+                maxWait: 60000
+                # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+                timeBetweenEvictionRunsMillis: 60000
+                # 配置一个连接在池中最小生存的时间,单位是毫秒
+                minEvictableIdleTimeMillis: 300000
+                # 配置一个连接在池中最大生存的时间,单位是毫秒
+                maxEvictableIdleTimeMillis: 900000
+                # 配置检测连接是否有效
+                validationQuery: SELECT 1 FROM DUAL
+                testWhileIdle: true
+                testOnBorrow: false
+                testOnReturn: false
+                webStatFilter:
+                    enabled: true
+                statViewServlet:
+                    enabled: true
+                    # 设置白名单,不填则允许所有访问
+                    allow:
+                    url-pattern: /druid/*
+                    # 控制台管理用户名和密码
+                    login-username: fs
+                    login-password: 123456
+                filter:
+                    stat:
+                        enabled: true
+                        # 慢SQL记录
+                        log-slow-sql: true
+                        slow-sql-millis: 1000
+                        merge-sql: true
+                    wall:
+                        config:
+                            multi-statement-allow: true
+rocketmq:
+    name-server: rmq-16xj8o92zp.rocketmq.cd.qcloud.tencenttdmq.com:8080
+    producer:
+        group: my-producer-group
+        access-key: ak16xj8o92zp984557f83ba2 # 替换为实际的 accessKey
+        secret-key: sk2ff1c6b15b74b888 # 替换为实际的 secretKey
+    consumer:
+        group: common-group
+        access-key: ak16xj8o92zp984557f83ba2 # 替换为实际的 accessKey
+        secret-key: sk2ff1c6b15b74b888 # 替换为实际的 secretKey
+openIM:
+    secret: openIM123
+    userID: imAdmin
+    url: xxxxxx
+#是否为新商户,新商户不走mpOpenId
+isNewWxMerchant: true

+ 58 - 16
fs-service/src/main/resources/mapper/hisStore/FsStorePaymentScrmMapper.xml

@@ -202,7 +202,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         WHERE
             business_type = 1
           AND `status` = 1
-          AND pay_time > '2025-05-01 00:00:00'
           AND company_user_id = #{dayParam.companyUserId}
         AND pay_time >= DATE_FORMAT(NOW(), '%Y-%m-%d 00:00:00')
         AND pay_time &lt; DATE_FORMAT(
@@ -222,7 +221,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         WHERE
         business_type = 1
         AND `status` = 1
-        AND company_user_id = '9587'
+          AND company_user_id = #{dayParam.companyUserId}
         AND pay_time >= DATE_FORMAT(NOW(), '%Y-%m-%d 00:00:00')
         AND pay_time &lt; DATE_FORMAT(
         DATE_ADD(NOW(), INTERVAL 1 DAY),
@@ -240,33 +239,61 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             fs_store_payment_scrm
         WHERE
             business_type = 1
-          AND `status` = 1
-          AND pay_time > '2025-05-01 00:00:00'
-          AND company_user_id = #{monthParam.companyUserId}
-          AND DATE_FORMAT(pay_time, '%Y-%m')= DATE_FORMAT(NOW(), '%Y-%m')
+        AND `status` = 1
+        AND company_user_id = #{monthParam.companyUserId}
+        AND pay_time >= DATE_FORMAT(NOW(), '%Y-%m-01 00:00:00')
+        AND pay_time &lt; DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 1 MONTH), '%Y-%m-01 00:00:00')
         GROUP BY
             statPeriod
+    </select>
+
+    <select id="getScanPaymentMonthStatPage" resultType="com.fs.hisStore.vo.FsStoreScanPaymentStatDetailsVo">
+        SELECT
+        pay_time,
+        pay_money
+        FROM
+        fs_store_payment_scrm
+        WHERE
+        business_type = 1
+        AND `status` = 1
+        AND company_user_id = #{monthParam.companyUserId}
+        AND pay_time >= DATE_FORMAT(NOW(), '%Y-%m-01 00:00:00')
+        AND pay_time &lt; DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 1 MONTH), '%Y-%m-01 00:00:00')
         ORDER BY
-            statPeriod ASC
+        pay_time DESC
     </select>
 
     <select id="getScanPaymentYearStat" resultType="com.fs.hisStore.vo.FsStoreScanPaymentStatVo">
         SELECT
-            DATE_FORMAT(pay_time, '%Y') AS statPeriod,
-            COUNT(payment_id) AS payCount,
-            SUM(pay_money) AS totalSales
+        DATE_FORMAT(pay_time, '%Y') AS statPeriod,
+        COUNT(payment_id) AS payCount,
+        SUM(pay_money) AS totalSales
+        FROM
+        fs_store_payment_scrm
+        WHERE
+        business_type = 1
+        AND `status` = 1
+        AND company_user_id = #{yearParam.companyUserId}
+        AND pay_time >= DATE_FORMAT(NOW(), '%Y-01-01 00:00:00')
+        AND pay_time &lt; DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 1 YEAR), '%Y-01-01 00:00:00')
+        GROUP BY
+        statPeriod
+    </select>
+
+    <select id="getScanPaymentYearStatPage" resultType="com.fs.hisStore.vo.FsStoreScanPaymentStatDetailsVo">
+        SELECT
+            pay_time,
+            pay_money
         FROM
             fs_store_payment_scrm
         WHERE
             business_type = 1
           AND `status` = 1
-          AND pay_time > '2025-05-01 00:00:00'
           AND company_user_id = #{yearParam.companyUserId}
-          AND DATE_FORMAT(pay_time, '%Y')= DATE_FORMAT(NOW(), '%Y')
-        GROUP BY
-            statPeriod
+          AND pay_time >= DATE_FORMAT(NOW(), '%Y-01-01 00:00:00')
+          AND pay_time &lt; DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 1 YEAR), '%Y-01-01 00:00:00')
         ORDER BY
-            statPeriod ASC
+            pay_time DESC
     </select>
 
     <select id="getScanPaymentDateStat" resultType="com.fs.hisStore.vo.FsStoreScanPaymentStatVo">
@@ -279,9 +306,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         WHERE
             business_type = 1
           AND `status` = 1
-          AND pay_time > '2025-05-01 00:00:00'
           AND company_user_id = #{dateParam.companyUserId}
           AND pay_time >= CONCAT(#{dateParam.startDate}, ' 00:00:00')
           AND pay_time &lt;= CONCAT(#{dateParam.endDate}, ' 23:59:59')
     </select>
+
+    <select id="getScanPaymentDateStatPage" resultType="com.fs.hisStore.vo.FsStoreScanPaymentStatDetailsVo">
+        SELECT
+            pay_time,
+            pay_money
+        FROM
+            fs_store_payment_scrm
+        WHERE
+            business_type = 1
+          AND `status` = 1
+          AND company_user_id = #{dateParam.companyUserId}
+          AND pay_time >= CONCAT(#{dateParam.startDate}, ' 00:00:00')
+          AND pay_time &lt;= CONCAT(#{dateParam.endDate}, ' 23:59:59')
+        ORDER BY
+            pay_time DESC
+    </select>
 </mapper>