Explorar o código

报表数据错误修改

yzc hai 1 ano
pai
achega
c9aa486c52
Modificáronse 1 ficheiros con 29 adicións e 17 borrados
  1. 29 17
      hx-sale/src/main/resources/mapper/dept/DeptPerfMapper.xml

+ 29 - 17
hx-sale/src/main/resources/mapper/dept/DeptPerfMapper.xml

@@ -31,14 +31,14 @@
 
     <select id="monthlyReporting" resultType="com.fjhx.sale.entity.DeptPerfReporting">
         SELECT t1.*,
-               IFNULL(sum(c.amount), 0)         AS sumContractAmount,
-               IFNULL(sum(joi.paid_amount), 0)  AS sumJstAmount,
-               (select GROUP_CONCAT(nick_name)
-                from sys_user su
-                         join sys_user_role sur on sur.user_id = su.user_id
-                         join sys_role sr on sr.role_id = sur.role_id
-                where su.dept_id = t1.groupId
-                  and sr.role_key = 'salesman') AS saleUserName
+               IFNULL(t2.sumContractAmount, 0)  AS sumContractAmount,
+               IFNULL(t2.sumJstAmount, 0)       AS sumJstAmount,
+               (SELECT GROUP_CONCAT(nick_name)
+                FROM sys_user su
+                         JOIN sys_user_role sur ON sur.user_id = su.user_id
+                         JOIN sys_role sr ON sr.role_id = sur.role_id
+                WHERE su.dept_id = t1.groupId
+                  AND sr.role_key = 'salesman') AS saleUserName
         FROM (SELECT de.dept_id,
                      de.dept_name,
                      gr.dept_id   AS groupId,
@@ -47,17 +47,29 @@
               FROM sys_dept gr
                        LEFT JOIN sys_dept de ON gr.parent_id = de.dept_id
               WHERE gr.type != 0
-                    AND FIND_IN_SET( 100, gr.ancestors )
-                    AND NOT gr.jst_distributor IS NULL
-                    AND gr.jst_distributor != ''
+		AND FIND_IN_SET( 100, gr.ancestors )
+		AND NOT gr.jst_distributor IS NULL
+		AND gr.jst_distributor != ''
               GROUP BY
                   gr.dept_id) t1
-                 LEFT JOIN contract c ON c.dept_id = t1.groupId AND
-                                         DATE_FORMAT(c.create_time, '%Y-%m') = DATE_FORMAT(#{dto.beginTime}, '%Y-%m')
-                 LEFT JOIN jst_order_info joi
-                           ON joi.drp_from = t1.jst_distributor AND DATE_FORMAT(joi.created, '%Y-%m') =
-                                                                    DATE_FORMAT(#{dto.beginTime}, '%Y-%m')
-        GROUP BY t1.groupId
+                 LEFT JOIN (SELECT t1.dept_id,
+                                   IFNULL(sum(t1.sumContractAmount), 0) AS sumContractAmount,
+                                   IFNULL(sum(t1.sumJstAmount), 0)      AS sumJstAmount
+                            FROM (SELECT c.dept_id,
+                                         IFNULL(sum(c.amount), 0) AS sumContractAmount,
+                                         NULL                     AS sumJstAmount
+                                  FROM contract c
+                                  WHERE DATE_FORMAT(c.create_time, '%Y-%m') = DATE_FORMAT(#{dto.beginTime}, '%Y-%m')
+                                  GROUP BY c.dept_id
+                                  UNION ALL
+                                  SELECT de.dept_id,
+                                         NULL                       AS sumContractAmount,
+                                         IFNULL(sum(joi.amount), 0) AS sumJstAmount
+                                  FROM jst_order_info joi
+                                           LEFT JOIN sys_dept de ON joi.drp_from = de.jst_distributor
+                                  WHERE DATE_FORMAT(joi.created, '%Y-%m') = DATE_FORMAT(#{dto.beginTime}, '%Y-%m')
+                                  GROUP BY de.dept_id) t1
+                            GROUP BY t1.dept_id) t2 ON t2.dept_id = t1.groupId
     </select>
     <select id="getDayRepo" resultType="com.fjhx.sale.entity.DeptPerfReporting">
         SELECT t1.dept_id,