Просмотр исходного кода

营销区域业绩目标管理

hu 2 лет назад
Родитель
Сommit
1783bfc97f
15 измененных файлов с 551 добавлено и 354 удалено
  1. 1 1
      src/custom/restcontroller/webmanage/sale/salestarget/SQL/人员-删除人员范围.sql
  2. 1 1
      src/custom/restcontroller/webmanage/sale/salestarget/SQL/人员-删除目标明细.sql
  3. 2 2
      src/custom/restcontroller/webmanage/sale/salestarget/SQL/人员-目标明细新增.sql
  4. 1 0
      src/custom/restcontroller/webmanage/sale/salestarget/SQL/人员-目标详情.sql
  5. 37 46
      src/custom/restcontroller/webmanage/sale/salestarget/SQL/人员-目标详情列表.sql
  6. 78 78
      src/custom/restcontroller/webmanage/sale/salestarget/SQL/人员目标统计-出货.sql
  7. 71 82
      src/custom/restcontroller/webmanage/sale/salestarget/SQL/人员目标统计-开票.sql
  8. 104 0
      src/custom/restcontroller/webmanage/sale/salestarget/SQL/人员目标统计-收款.sql
  9. 69 80
      src/custom/restcontroller/webmanage/sale/salestarget/SQL/人员目标统计-订单.sql
  10. 3 3
      src/custom/restcontroller/webmanage/sale/salestarget/SQL/人员范围新增.sql
  11. 2 2
      src/custom/restcontroller/webmanage/sale/salestarget/SQL/创建新年度.sql
  12. 1 0
      src/custom/restcontroller/webmanage/sale/salestarget/SQL/年度目标列表.sql
  13. 6 13
      src/custom/restcontroller/webmanage/sale/salestarget/SQL/通用-人员范围查询.sql
  14. 83 24
      src/custom/restcontroller/webmanage/sale/salestarget/personnel.java
  15. 92 22
      src/custom/restcontroller/webmanage/sale/salestarget/personnelstatistics.java

+ 1 - 1
src/custom/restcontroller/webmanage/sale/salestarget/SQL/人员-删除人员范围.sql

@@ -1,5 +1,5 @@
 DELETE
 FROM sa_salestargethr
-WHERE hrid IN $hrid$
+WHERE sa_saleareaid IN $sa_saleareaid$
   AND sa_salestargetbillid = $sa_salestargetbillid$
   AND siteid = $siteid$

+ 1 - 1
src/custom/restcontroller/webmanage/sale/salestarget/SQL/人员-删除目标明细.sql

@@ -1,5 +1,5 @@
 DELETE
 FROM sa_salestarget
-WHERE hrid IN $hrid$
+WHERE sa_saleareaid IN $sa_saleareaid$
   AND sa_salestargetbillid = $sa_salestargetbillid$
   AND siteid = $siteid$

+ 2 - 2
src/custom/restcontroller/webmanage/sale/salestarget/SQL/人员-目标明细新增.sql

@@ -1,4 +1,4 @@
-insert into sa_salestarget (siteid, sa_salestargetid, type, point, target_l, target_h, targettype, hrid,
+insert into sa_salestarget (siteid, sa_salestargetid, type, point, target_l, target_h, targettype, sa_saleareaid,
                             sa_salestargetbillid, year, sa_projectid, createby, createdate)
-values ($siteid$, $sa_salestargetid$, $type$, $point$, $target_l$, $target_h$, $targettype$, $hrid$,
+values ($siteid$, $sa_salestargetid$, $type$, $point$, $target_l$, $target_h$, $targettype$, $sa_saleareaid$,
         $sa_salestargetbillid$, $year$, $sa_projectid$, $createby$, current_time);

+ 1 - 0
src/custom/restcontroller/webmanage/sale/salestarget/SQL/人员-目标详情.sql

@@ -3,6 +3,7 @@ SELECT t1.sa_salestargetbillid,
        t1.createdate,
        t1.targettype,
        t1.year,
+       t1.assessmentindicators,
        t1.`status`,
        t1.changeby,
        t1.changedate,

+ 37 - 46
src/custom/restcontroller/webmanage/sale/salestarget/SQL/人员-目标详情列表.sql

@@ -1,12 +1,9 @@
 with sa_salestarget as (
-    select hrid, type, point, target_l, target_h from sa_salestarget where sa_salestargetbillid = $sa_salestargetbillid$ and targettype = '人员目标' and siteid = $siteid$
+    select sa_saleareaid,hrid, type, point, target_l, target_h from sa_salestarget where sa_salestargetbillid =$sa_salestargetbillid$ and targettype = '人员目标' and siteid =$siteid$
 )
    , hrtarget as (
-    select t1.departmentid,
-           t1.depname,
-           t1.hrid,
-           t1.name,
-           t1.position,
+    select  t1.sa_saleareaid,
+					 t1.areaname,
            y1.target_l  as y1l,
            y1.target_h  as y1h,
            s1.target_l  as s1l,
@@ -42,35 +39,33 @@ with sa_salestarget as (
            m12.target_l as m12l,
            m12.target_h as m12h
     from sa_salestargethr t1
-             left join sa_salestarget y1 on t1.hrid = y1.hrid and y1.type = '年' and y1.point = 1
-             left join sa_salestarget s1 on t1.hrid = s1.hrid and s1.type = '季' and s1.point = 1
-             left join sa_salestarget s2 on t1.hrid = s2.hrid and s2.type = '季' and s2.point = 2
-             left join sa_salestarget s3 on t1.hrid = s3.hrid and s3.type = '季' and s3.point = 3
-             left join sa_salestarget s4 on t1.hrid = s4.hrid and s4.type = '季' and s4.point = 4
-             left join sa_salestarget m1 on t1.hrid = m1.hrid and m1.type = '月' and m1.point = 1
-             left join sa_salestarget m2 on t1.hrid = m2.hrid and m2.type = '月' and m2.point = 2
-             left join sa_salestarget m3 on t1.hrid = m3.hrid and m3.type = '月' and m3.point = 3
-             left join sa_salestarget m4 on t1.hrid = m4.hrid and m4.type = '月' and m4.point = 4
-             left join sa_salestarget m5 on t1.hrid = m5.hrid and m5.type = '月' and m5.point = 5
-             left join sa_salestarget m6 on t1.hrid = m6.hrid and m6.type = '月' and m6.point = 6
-             left join sa_salestarget m7 on t1.hrid = m7.hrid and m7.type = '月' and m7.point = 7
-             left join sa_salestarget m8 on t1.hrid = m8.hrid and m8.type = '月' and m8.point = 8
-             left join sa_salestarget m9 on t1.hrid = m9.hrid and m9.type = '月' and m9.point = 9
-             left join sa_salestarget m10 on t1.hrid = m10.hrid and m10.type = '月' and m10.point = 10
-             left join sa_salestarget m11 on t1.hrid = m11.hrid and m11.type = '月' and m11.point = 11
-             left join sa_salestarget m12 on t1.hrid = m12.hrid and m12.type = '月' and m12.point = 12
+             left join sa_salestarget y1 on t1.sa_saleareaid = y1.sa_saleareaid and y1.type = '年' and y1.point = 1
+             left join sa_salestarget s1 on t1.sa_saleareaid = s1.sa_saleareaid and s1.type = '季' and s1.point = 1
+             left join sa_salestarget s2 on t1.sa_saleareaid = s2.sa_saleareaid and s2.type = '季' and s2.point = 2
+             left join sa_salestarget s3 on t1.sa_saleareaid = s3.sa_saleareaid and s3.type = '季' and s3.point = 3
+             left join sa_salestarget s4 on t1.sa_saleareaid = s4.sa_saleareaid and s4.type = '季' and s4.point = 4
+             left join sa_salestarget m1 on t1.sa_saleareaid = m1.sa_saleareaid and m1.type = '月' and m1.point = 1
+             left join sa_salestarget m2 on t1.sa_saleareaid = m2.sa_saleareaid and m2.type = '月' and m2.point = 2
+             left join sa_salestarget m3 on t1.sa_saleareaid = m3.sa_saleareaid and m3.type = '月' and m3.point = 3
+             left join sa_salestarget m4 on t1.sa_saleareaid = m4.sa_saleareaid and m4.type = '月' and m4.point = 4
+             left join sa_salestarget m5 on t1.sa_saleareaid = m5.sa_saleareaid and m5.type = '月' and m5.point = 5
+             left join sa_salestarget m6 on t1.sa_saleareaid = m6.sa_saleareaid and m6.type = '月' and m6.point = 6
+             left join sa_salestarget m7 on t1.sa_saleareaid = m7.sa_saleareaid and m7.type = '月' and m7.point = 7
+             left join sa_salestarget m8 on t1.sa_saleareaid = m8.sa_saleareaid and m8.type = '月' and m8.point = 8
+             left join sa_salestarget m9 on t1.sa_saleareaid = m9.sa_saleareaid and m9.type = '月' and m9.point = 9
+             left join sa_salestarget m10 on t1.sa_saleareaid = m10.sa_saleareaid and m10.type = '月' and m10.point = 10
+             left join sa_salestarget m11 on t1.sa_saleareaid = m11.sa_saleareaid and m11.type = '月' and m11.point = 11
+             left join sa_salestarget m12 on t1.sa_saleareaid = m12.sa_saleareaid and m12.type = '月' and m12.point = 12
     where t1.sa_salestargetbillid = $sa_salestargetbillid$
 )
 select *
 from (
-         select '人员' as type,
-                t1.departmentid,
-                t1.depname,
-                t2.depfullname,
+         select '区域' as type,
+                t1.areaname,
+								t1.sa_saleareaid,
+								t2.parentid,
+                t2.areafullname,
                 1       level,
-                hrid,
-                name,
-                position,
                 y1l,
                 y1h,
                 s1l,
@@ -106,18 +101,14 @@ from (
                 m12l,
                 m12h
          from hrtarget t1
-                  INNER JOIN sys_department t2 ON t2.departmentid = t1.departmentid
-
-
-         union all
-         select '部门' as  type,
-                t2.departmentid,
-                t3.depname,
-                t3.depfullname,
+                  INNER JOIN sa_salearea t2 ON t2.sa_saleareaid = t1.sa_saleareaid
+  union all
+         select '区域汇总' as  type,
+                t6.areaname,
+								t6.sa_saleareaid,
+								t6.parentid,
+                t6.areafullname,
                 0        level,
-                null,
-                null,
-                null,
                 sum(y1l) y1l,
                 sum(y1h) y1h,
                 sum(s1l),
@@ -153,8 +144,8 @@ from (
                 sum(m12l),
                 sum(m12h)
          from hrtarget t1
-                  inner join sys_departmenthrid t2 on t1.hrid = t2.hrid
-                  inner join sys_department t3 on t2.departmentid = t3.departmentid
-         group by t2.departmentid, t3.depname) t
-where $where$
-order by depfullname, case when t.type = '部门' then 0 else 1 end
+                left join sa_salearea t5 on t1.sa_saleareaid = t5.sa_saleareaid
+								 left join sa_salearea t6 on t5.parentid = t6.sa_saleareaid and t5.siteid = t6.siteid
+         group by  t6.sa_saleareaid,  t6.areafullname, t6.areaname) t
+where 1=1
+order by areafullname, case when t.type = '区域' then 0 else 1 end

+ 78 - 78
src/custom/restcontroller/webmanage/sale/salestarget/SQL/人员目标统计-出货.sql

@@ -1,17 +1,24 @@
 with sa_salestarget as
          (
-             SELECT 0+CAST(sum(deliedqty*price) AS CHAR) amount, MONTH (t1.createdate) point,saler_hrid hrid,'月' type
+select 0+CAST(sum(amount) AS CHAR) amount,point,sa_saleareaid,type from(SELECT  (t5.sumqty*t1.price) amount, MONTH (t2.createdate) point,ifnull(t4.sa_saleareaid,0) sa_saleareaid,'月' type
 FROM sa_orderitems t1
     LEFT JOIN sa_order t2 ON t1.sa_orderid=t2.sa_orderid AND t1.siteid=t2.siteid
-WHERE YEAR (t1.createdate)=$year$ AND t1.siteid=$siteid$ AND isclose=0 AND t1.sa_orderid IN
-    (
-    SELECT sa_orderid FROM sa_order WHERE YEAR (createdate)=$year$ AND siteid=$siteid$ AND sa_projectid=0
-    )
-GROUP BY point,saler_hrid,type
+		left join sys_enterprise_tradefield t3 on t2.sys_enterpriseid=t3.sys_enterpriseid and t2.siteid=t3.siteid
+		left join sa_salearea t4 on t4.sa_saleareaid=t3.sa_saleareaid and t4.siteid=t3.siteid
+ inner join (
+SELECT  t1.sa_orderitemsid,t1.siteid,
+        SUM(ifnull(t1.qty,0)) sumqty
+FROM st_stockbill_items t1
+         inner join st_stockbill t2 on t1.siteid = t2.siteid and t1.st_stockbillid = t2.st_stockbillid
+         inner join sa_orderitems t4 on t1.sa_orderitemsid=t4.sa_orderitemsid and t1.siteid = t4.siteid
+WHERE t2.STATUS ='审核' and t2.rb=1 group by t1.sa_orderitemsid,t1.siteid) t5 on t5.sa_orderitemsid=t1.sa_orderitemsid and t5.siteid=t1.siteid
+
+WHERE YEAR (t2.createdate)=$year$ AND t1.siteid=$siteid$) a
+GROUP BY point,sa_saleareaid,type
     )
         , hrtarget as (
-select t1.departmentid,
-    t1.depname,
+select t1.sa_saleareaid,
+    t1.areaname,
     t1.hrid,
     t1.name,
     t1.position,
@@ -33,81 +40,74 @@ select t1.departmentid,
     ifnull(m11.amount,0) as m11a,
     ifnull(m12.amount,0) as m12a
 from sa_salestargethr t1
-    left join sa_salestarget m1 on t1.hrid = m1.hrid and m1.type = '月' and m1.point = 1
-    left join sa_salestarget m2 on t1.hrid = m2.hrid and m2.type = '月' and m2.point = 2
-    left join sa_salestarget m3 on t1.hrid = m3.hrid and m3.type = '月' and m3.point = 3
-    left join sa_salestarget m4 on t1.hrid = m4.hrid and m4.type = '月' and m4.point = 4
-    left join sa_salestarget m5 on t1.hrid = m5.hrid and m5.type = '月' and m5.point = 5
-    left join sa_salestarget m6 on t1.hrid = m6.hrid and m6.type = '月' and m6.point = 6
-    left join sa_salestarget m7 on t1.hrid = m7.hrid and m7.type = '月' and m7.point = 7
-    left join sa_salestarget m8 on t1.hrid = m8.hrid and m8.type = '月' and m8.point = 8
-    left join sa_salestarget m9 on t1.hrid = m9.hrid and m9.type = '月' and m9.point = 9
-    left join sa_salestarget m10 on t1.hrid = m10.hrid and m10.type = '月' and m10.point = 10
-    left join sa_salestarget m11 on t1.hrid = m11.hrid and m11.type = '月' and m11.point = 11
-    left join sa_salestarget m12 on t1.hrid = m12.hrid and m12.type = '月' and m12.point = 12
+    left join sa_salestarget m1 on t1.sa_saleareaid = m1.sa_saleareaid and m1.type = '月' and m1.point = 1
+    left join sa_salestarget m2 on t1.sa_saleareaid = m2.sa_saleareaid and m2.type = '月' and m2.point = 2
+    left join sa_salestarget m3 on t1.sa_saleareaid = m3.sa_saleareaid and m3.type = '月' and m3.point = 3
+    left join sa_salestarget m4 on t1.sa_saleareaid = m4.sa_saleareaid and m4.type = '月' and m4.point = 4
+    left join sa_salestarget m5 on t1.sa_saleareaid = m5.sa_saleareaid and m5.type = '月' and m5.point = 5
+    left join sa_salestarget m6 on t1.sa_saleareaid = m6.sa_saleareaid and m6.type = '月' and m6.point = 6
+    left join sa_salestarget m7 on t1.sa_saleareaid = m7.sa_saleareaid and m7.type = '月' and m7.point = 7
+    left join sa_salestarget m8 on t1.sa_saleareaid = m8.sa_saleareaid and m8.type = '月' and m8.point = 8
+    left join sa_salestarget m9 on t1.sa_saleareaid = m9.sa_saleareaid and m9.type = '月' and m9.point = 9
+    left join sa_salestarget m10 on t1.sa_saleareaid = m10.sa_saleareaid and m10.type = '月' and m10.point = 10
+    left join sa_salestarget m11 on t1.sa_saleareaid = m11.sa_saleareaid and m11.type = '月' and m11.point = 11
+    left join sa_salestarget m12 on t1.sa_saleareaid = m12.sa_saleareaid and m12.type = '月' and m12.point = 12
 where  t1.sa_salestargetbillid = $sa_salestargetbillid$
     )
 select *
 from (
-         select '人员' as type,
-                t1.departmentid,
-                t1.depname,
-                t2.depfullname,
+          select '区域' as type,
+                t1.areaname,
+								t1.sa_saleareaid,
+								t2.parentid,
+                t2.areafullname,
                 1       level,
-                hrid,
-                name,
-                position,
-                y1a,
-                s1a,
-                s2a,
-                s3a,
-                s4a,
-                m1a,
-                m2a,
-                m3a,
-                m4a,
-                m5a,
-                m6a,
-                m7a,
-                m8a,
-                m9a,
-                m10a,
-                m11a,
-                m12a
+                ROUND(y1a/10000,2) y1a,
+                ROUND(s1a/10000,2) s1a,
+                ROUND(s2a/10000,2) s2a,
+                ROUND(s3a/10000,2) s3a,
+                ROUND(s4a/10000,2) s4a,
+                ROUND(m1a/10000,2) m1a,
+                ROUND(m2a/10000,2) m2a,
+                ROUND(m3a/10000,2) m3a,
+                ROUND(m4a/10000,2) m4a,
+                ROUND(m5a/10000,2) m5a,
+                ROUND(m6a/10000,2) m6a,
+                ROUND(m7a/10000,2) m7a,
+                ROUND(m8a/10000,2) m8a,
+                ROUND(m9a/10000,2) m9a,
+                ROUND(m10a/10000,2) m10a,
+                ROUND(m11a/10000,2) m11a,
+                ROUND(m12a/10000,2) m12a
          from hrtarget t1
-                  INNER JOIN sys_department t2 ON t2.departmentid = t1.departmentid
-
-
-         union all
-         select '部门' as  type,
-                t2.departmentid,
-                t3.depname,
-                t3.depfullname,
+                  INNER JOIN sa_salearea t2 ON t2.sa_saleareaid = t1.sa_saleareaid
+			  union all
+         select '区域汇总' as  type,
+                t6.areaname,
+								t6.sa_saleareaid,
+								t6.parentid,
+                t6.areafullname,
                 0        level,
-                null,
-                null,
-                null,
-                sum(y1a),
-                sum(s1a),
-                sum(s2a),
-                sum(s3a),
-                sum(s4a),
-                sum(m1a),
-                sum(m2a),
-                sum(m3a),
-                sum(m4a),
-                sum(m5a),
-                sum(m6a),
-                sum(m7a),
-                sum(m8a),
-                sum(m9a),
-                sum(m10a),
-                sum(m11a),
-                sum(m12a)
-
+                ROUND(sum(y1a)/10000,2) y1a,
+                ROUND(sum(s1a)/10000,2) s1a,
+                ROUND(sum(s2a)/10000,2) s2a,
+                ROUND(sum(s3a)/10000,2) s3a,
+                ROUND(sum(s4a)/10000,2) s4a,
+                ROUND(sum(m1a)/10000,2) m1a,
+                ROUND(sum(m2a)/10000,2) m2a,
+                ROUND(sum(m3a)/10000,2) m3a,
+                ROUND(sum(m4a)/10000,2) m4a,
+                ROUND(sum(m5a)/10000,2) m5a,
+                ROUND(sum(m6a)/10000,2) m6a,
+                ROUND(sum(m7a)/10000,2) m7a,
+                ROUND(sum(m8a)/10000,2) m8a,
+                ROUND(sum(m9a)/10000,2) m9a,
+                ROUND(sum(m10a)/10000,2) m10a,
+                ROUND(sum(m11a)/10000,2) m11a,
+                ROUND(sum(m12a)/10000,2) m12a
          from hrtarget t1
-                  INNER  join sys_departmenthrid t2 on t1.hrid = t2.hrid
-                  inner join sys_department t3 on t2.departmentid = t3.departmentid
-         group by t2.departmentid, t3.depname) t
-where  $where$
-order by depfullname, case when t.type = '部门' then 0 else 1 end
+                left join sa_salearea t5 on t1.sa_saleareaid = t5.sa_saleareaid
+								 left join sa_salearea t6 on t5.parentid = t6.sa_saleareaid and t5.siteid = t6.siteid
+         group by  t6.sa_saleareaid,  t6.areafullname, t6.areaname) t
+where $where$
+order by areafullname, case when t.type = '区域' then 0 else 1 end

+ 71 - 82
src/custom/restcontroller/webmanage/sale/salestarget/SQL/人员目标统计-开票.sql

@@ -1,20 +1,16 @@
 with sa_salestarget as
-    (
-    SELECT 0+CAST(sum(invoiceamount) AS CHAR) amount, MONTH (t1.createdate) point,saler_hrid hrid,'月' type
-    FROM sa_orderitems t1
+         (
+              select  0+CAST(sum(amount) AS CHAR) amount,point,sa_saleareaid,type from (SELECT if(t1.isclose,t1.deliedqty*t1.price,amount) amount, MONTH (t2.createdate) point,ifnull(t4.sa_saleareaid,0) sa_saleareaid,'月' type
+FROM sa_orderitems t1
     LEFT JOIN sa_order t2 ON t1.sa_orderid=t2.sa_orderid AND t1.siteid=t2.siteid
-    WHERE YEAR (t1.createdate)=$year$ AND t1.siteid=$siteid$ AND isclose=0 AND t1.sa_orderid IN
-      (
-      SELECT sa_orderid FROM sa_order WHERE YEAR (createdate)=$year$ AND siteid=$siteid$ AND sa_projectid=0
-      )
-    GROUP BY point,saler_hrid,type
+		left join sys_enterprise_tradefield t3 on t2.sys_enterpriseid=t3.sys_enterpriseid and t2.siteid=t3.siteid
+		left join sa_salearea t4 on t4.sa_saleareaid=t3.sa_saleareaid and t4.siteid=t3.siteid
+WHERE YEAR (t2.createdate)=$year$ AND t1.siteid=$siteid$ AND t2.status in('提交','审核','关闭','手工关闭')) a
+GROUP BY  point,sa_saleareaid,type
     )
         , hrtarget as (
-select t1.departmentid,
-    t1.depname,
-    t1.hrid,
-    t1.name,
-    t1.position,
+select t1.sa_saleareaid,
+    t1.areaname,
     ifnull(m1.amount,0)+ ifnull(m2.amount,0)+ifnull(m3.amount,0)+ ifnull(m4.amount,0)+ ifnull(m5.amount,0)+  ifnull(m6.amount,0)+ ifnull(m7.amount,0)+ ifnull(m8.amount,0)+  ifnull(m9.amount,0) + ifnull(m10.amount,0)+ ifnull(m11.amount,0)+  ifnull(m12.amount,0)  as y1a,
     ifnull(m1.amount,0)+ ifnull(m2.amount,0)+ifnull(m3.amount,0)  as s1a,
     ifnull(m4.amount,0)+ ifnull(m5.amount,0)+ifnull(m6.amount,0)  as s2a,
@@ -33,81 +29,74 @@ select t1.departmentid,
     ifnull(m11.amount,0) as m11a,
     ifnull(m12.amount,0) as m12a
 from sa_salestargethr t1
-    left join sa_salestarget m1 on t1.hrid = m1.hrid and m1.type = '月' and m1.point = 1
-    left join sa_salestarget m2 on t1.hrid = m2.hrid and m2.type = '月' and m2.point = 2
-    left join sa_salestarget m3 on t1.hrid = m3.hrid and m3.type = '月' and m3.point = 3
-    left join sa_salestarget m4 on t1.hrid = m4.hrid and m4.type = '月' and m4.point = 4
-    left join sa_salestarget m5 on t1.hrid = m5.hrid and m5.type = '月' and m5.point = 5
-    left join sa_salestarget m6 on t1.hrid = m6.hrid and m6.type = '月' and m6.point = 6
-    left join sa_salestarget m7 on t1.hrid = m7.hrid and m7.type = '月' and m7.point = 7
-    left join sa_salestarget m8 on t1.hrid = m8.hrid and m8.type = '月' and m8.point = 8
-    left join sa_salestarget m9 on t1.hrid = m9.hrid and m9.type = '月' and m9.point = 9
-    left join sa_salestarget m10 on t1.hrid = m10.hrid and m10.type = '月' and m10.point = 10
-    left join sa_salestarget m11 on t1.hrid = m11.hrid and m11.type = '月' and m11.point = 11
-    left join sa_salestarget m12 on t1.hrid = m12.hrid and m12.type = '月' and m12.point = 12
+    left join sa_salestarget m1 on t1.sa_saleareaid = m1.sa_saleareaid and m1.type = '月' and m1.point = 1
+    left join sa_salestarget m2 on t1.sa_saleareaid = m2.sa_saleareaid and m2.type = '月' and m2.point = 2
+    left join sa_salestarget m3 on t1.sa_saleareaid = m3.sa_saleareaid and m3.type = '月' and m3.point = 3
+    left join sa_salestarget m4 on t1.sa_saleareaid = m4.sa_saleareaid and m4.type = '月' and m4.point = 4
+    left join sa_salestarget m5 on t1.sa_saleareaid = m5.sa_saleareaid and m5.type = '月' and m5.point = 5
+    left join sa_salestarget m6 on t1.sa_saleareaid = m6.sa_saleareaid and m6.type = '月' and m6.point = 6
+    left join sa_salestarget m7 on t1.sa_saleareaid = m7.sa_saleareaid and m7.type = '月' and m7.point = 7
+    left join sa_salestarget m8 on t1.sa_saleareaid = m8.sa_saleareaid and m8.type = '月' and m8.point = 8
+    left join sa_salestarget m9 on t1.sa_saleareaid = m9.sa_saleareaid and m9.type = '月' and m9.point = 9
+    left join sa_salestarget m10 on t1.sa_saleareaid = m10.sa_saleareaid and m10.type = '月' and m10.point = 10
+    left join sa_salestarget m11 on t1.sa_saleareaid = m11.sa_saleareaid and m11.type = '月' and m11.point = 11
+    left join sa_salestarget m12 on t1.sa_saleareaid = m12.sa_saleareaid and m12.type = '月' and m12.point = 12
 where  t1.sa_salestargetbillid = $sa_salestargetbillid$
     )
 select *
 from (
-         select '人员' as type,
-                t1.departmentid,
-                t1.depname,
-                t2.depfullname,
+         select '区域' as type,
+                t1.areaname,
+								t1.sa_saleareaid,
+								t2.parentid,
+                t2.areafullname,
                 1       level,
-                hrid,
-                name,
-                position,
-                y1a,
-                s1a,
-                s2a,
-                s3a,
-                s4a,
-                m1a,
-                m2a,
-                m3a,
-                m4a,
-                m5a,
-                m6a,
-                m7a,
-                m8a,
-                m9a,
-                m10a,
-                m11a,
-                m12a
+                ROUND(y1a/10000,2) y1a,
+                ROUND(s1a/10000,2) s1a,
+                ROUND(s2a/10000,2) s2a,
+                ROUND(s3a/10000,2) s3a,
+                ROUND(s4a/10000,2) s4a,
+                ROUND(m1a/10000,2) m1a,
+                ROUND(m2a/10000,2) m2a,
+                ROUND(m3a/10000,2) m3a,
+                ROUND(m4a/10000,2) m4a,
+                ROUND(m5a/10000,2) m5a,
+                ROUND(m6a/10000,2) m6a,
+                ROUND(m7a/10000,2) m7a,
+                ROUND(m8a/10000,2) m8a,
+                ROUND(m9a/10000,2) m9a,
+                ROUND(m10a/10000,2) m10a,
+                ROUND(m11a/10000,2) m11a,
+                ROUND(m12a/10000,2) m12a
          from hrtarget t1
-                  INNER JOIN sys_department t2 ON t2.departmentid = t1.departmentid
-
-
-         union all
-         select '部门' as  type,
-                t2.departmentid,
-                t3.depname,
-                t3.depfullname,
+                  INNER JOIN sa_salearea t2 ON t2.sa_saleareaid = t1.sa_saleareaid
+			  union all
+         select '区域汇总' as  type,
+                t6.areaname,
+								t6.sa_saleareaid,
+								t6.parentid,
+                t6.areafullname,
                 0        level,
-                null,
-                null,
-                null,
-                sum(y1a),
-                sum(s1a),
-                sum(s2a),
-                sum(s3a),
-                sum(s4a),
-                sum(m1a),
-                sum(m2a),
-                sum(m3a),
-                sum(m4a),
-                sum(m5a),
-                sum(m6a),
-                sum(m7a),
-                sum(m8a),
-                sum(m9a),
-                sum(m10a),
-                sum(m11a),
-                sum(m12a)
-
+                ROUND(sum(y1a)/10000,2) y1a,
+                ROUND(sum(s1a)/10000,2) s1a,
+                ROUND(sum(s2a)/10000,2) s2a,
+                ROUND(sum(s3a)/10000,2) s3a,
+                ROUND(sum(s4a)/10000,2) s4a,
+                ROUND(sum(m1a)/10000,2) m1a,
+                ROUND(sum(m2a)/10000,2) m2a,
+                ROUND(sum(m3a)/10000,2) m3a,
+                ROUND(sum(m4a)/10000,2) m4a,
+                ROUND(sum(m5a)/10000,2) m5a,
+                ROUND(sum(m6a)/10000,2) m6a,
+                ROUND(sum(m7a)/10000,2) m7a,
+                ROUND(sum(m8a)/10000,2) m8a,
+                ROUND(sum(m9a)/10000,2) m9a,
+                ROUND(sum(m10a)/10000,2) m10a,
+                ROUND(sum(m11a)/10000,2) m11a,
+                ROUND(sum(m12a)/10000,2) m12a
          from hrtarget t1
-                  INNER  join sys_departmenthrid t2 on t1.hrid = t2.hrid
-                  inner join sys_department t3 on t2.departmentid = t3.departmentid
-         group by t2.departmentid, t3.depname) t
+                left join sa_salearea t5 on t1.sa_saleareaid = t5.sa_saleareaid
+								 left join sa_salearea t6 on t5.parentid = t6.sa_saleareaid and t5.siteid = t6.siteid
+         group by  t6.sa_saleareaid,  t6.areafullname, t6.areaname) t
 where  $where$
-order by depfullname, case when t.type = '部门' then 0 else 1 end
+order by areafullname, case when t.type = '区域' then 0 else 1 end

+ 104 - 0
src/custom/restcontroller/webmanage/sale/salestarget/SQL/人员目标统计-收款.sql

@@ -0,0 +1,104 @@
+with sa_salestarget as
+         (
+ select 0+CAST(sum(amount) AS CHAR) amount,point,sa_saleareaid,type from (SELECT t1.amount, MONTH (t1.createdate) point,ifnull(t4.sa_saleareaid,0) sa_saleareaid,'月' type
+FROM sa_cashbill t1
+		left join sys_enterprise_tradefield t3 on t1.sys_enterpriseid=t3.sys_enterpriseid and t1.siteid=t3.siteid
+		left join sa_salearea t4 on t4.sa_saleareaid=t3.sa_saleareaid and t4.siteid=t3.siteid
+WHERE YEAR (t1.createdate)=$year$ AND t1.siteid=$siteid$ AND t1.status in('审核') and t1.type=1) a
+GROUP BY point,sa_saleareaid,type
+    )
+        , hrtarget as (
+select t1.sa_saleareaid,
+    t1.areaname,
+    t1.hrid,
+    t1.name,
+    t1.position,
+    ifnull(m1.amount,0)+ ifnull(m2.amount,0)+ifnull(m3.amount,0)+ ifnull(m4.amount,0)+ ifnull(m5.amount,0)+  ifnull(m6.amount,0)+ ifnull(m7.amount,0)+ ifnull(m8.amount,0)+  ifnull(m9.amount,0) + ifnull(m10.amount,0)+ ifnull(m11.amount,0)+  ifnull(m12.amount,0)  as y1a,
+    ifnull(m1.amount,0)+ ifnull(m2.amount,0)+ifnull(m3.amount,0)  as s1a,
+    ifnull(m4.amount,0)+ ifnull(m5.amount,0)+ifnull(m6.amount,0)  as s2a,
+    ifnull(m7.amount,0)+ ifnull(m8.amount,0)+ifnull(m9.amount,0)  as s3a,
+    ifnull(m10.amount,0)+ ifnull(m11.amount,0)+ifnull(m12.amount,0) as s4a,
+    ifnull(m1.amount,0) as m1a,
+    ifnull(m2.amount,0) as m2a,
+    ifnull(m3.amount,0) as m3a,
+    ifnull(m4.amount,0) as m4a,
+    ifnull(m5.amount,0) as m5a,
+    ifnull(m6.amount,0) as m6a,
+    ifnull(m7.amount,0) as m7a,
+    ifnull(m8.amount,0) as m8a,
+    ifnull(m9.amount,0) as m9a,
+    ifnull(m10.amount,0) as m10a,
+    ifnull(m11.amount,0) as m11a,
+    ifnull(m12.amount,0) as m12a
+from sa_salestargethr t1
+    left join sa_salestarget m1 on t1.sa_saleareaid = m1.sa_saleareaid and m1.type = '月' and m1.point = 1
+    left join sa_salestarget m2 on t1.sa_saleareaid = m2.sa_saleareaid and m2.type = '月' and m2.point = 2
+    left join sa_salestarget m3 on t1.sa_saleareaid = m3.sa_saleareaid and m3.type = '月' and m3.point = 3
+    left join sa_salestarget m4 on t1.sa_saleareaid = m4.sa_saleareaid and m4.type = '月' and m4.point = 4
+    left join sa_salestarget m5 on t1.sa_saleareaid = m5.sa_saleareaid and m5.type = '月' and m5.point = 5
+    left join sa_salestarget m6 on t1.sa_saleareaid = m6.sa_saleareaid and m6.type = '月' and m6.point = 6
+    left join sa_salestarget m7 on t1.sa_saleareaid = m7.sa_saleareaid and m7.type = '月' and m7.point = 7
+    left join sa_salestarget m8 on t1.sa_saleareaid = m8.sa_saleareaid and m8.type = '月' and m8.point = 8
+    left join sa_salestarget m9 on t1.sa_saleareaid = m9.sa_saleareaid and m9.type = '月' and m9.point = 9
+    left join sa_salestarget m10 on t1.sa_saleareaid = m10.sa_saleareaid and m10.type = '月' and m10.point = 10
+    left join sa_salestarget m11 on t1.sa_saleareaid = m11.sa_saleareaid and m11.type = '月' and m11.point = 11
+    left join sa_salestarget m12 on t1.sa_saleareaid = m12.sa_saleareaid and m12.type = '月' and m12.point = 12
+where  t1.sa_salestargetbillid =$sa_salestargetbillid$
+    )
+select *
+from (
+         select '区域' as type,
+                t1.areaname,
+								t1.sa_saleareaid,
+								t2.parentid,
+                t2.areafullname,
+                1       level,
+                ROUND(y1a/10000,2) y1a,
+                ROUND(s1a/10000,2) s1a,
+                ROUND(s2a/10000,2) s2a,
+                ROUND(s3a/10000,2) s3a,
+                ROUND(s4a/10000,2) s4a,
+                ROUND(m1a/10000,2) m1a,
+                ROUND(m2a/10000,2) m2a,
+                ROUND(m3a/10000,2) m3a,
+                ROUND(m4a/10000,2) m4a,
+                ROUND(m5a/10000,2) m5a,
+                ROUND(m6a/10000,2) m6a,
+                ROUND(m7a/10000,2) m7a,
+                ROUND(m8a/10000,2) m8a,
+                ROUND(m9a/10000,2) m9a,
+                ROUND(m10a/10000,2) m10a,
+                ROUND(m11a/10000,2) m11a,
+                ROUND(m12a/10000,2) m12a
+         from hrtarget t1
+                  INNER JOIN sa_salearea t2 ON t2.sa_saleareaid = t1.sa_saleareaid
+			  union all
+         select '区域汇总' as  type,
+                t6.areaname,
+								t6.sa_saleareaid,
+								t6.parentid,
+                t6.areafullname,
+                0        level,
+                ROUND(sum(y1a)/10000,2) y1a,
+                ROUND(sum(s1a)/10000,2) s1a,
+                ROUND(sum(s2a)/10000,2) s2a,
+                ROUND(sum(s3a)/10000,2) s3a,
+                ROUND(sum(s4a)/10000,2) s4a,
+                ROUND(sum(m1a)/10000,2) m1a,
+                ROUND(sum(m2a)/10000,2) m2a,
+                ROUND(sum(m3a)/10000,2) m3a,
+                ROUND(sum(m4a)/10000,2) m4a,
+                ROUND(sum(m5a)/10000,2) m5a,
+                ROUND(sum(m6a)/10000,2) m6a,
+                ROUND(sum(m7a)/10000,2) m7a,
+                ROUND(sum(m8a)/10000,2) m8a,
+                ROUND(sum(m9a)/10000,2) m9a,
+                ROUND(sum(m10a)/10000,2) m10a,
+                ROUND(sum(m11a)/10000,2) m11a,
+                ROUND(sum(m12a)/10000,2) m12a
+         from hrtarget t1
+                left join sa_salearea t5 on t1.sa_saleareaid = t5.sa_saleareaid
+								 left join sa_salearea t6 on t5.parentid = t6.sa_saleareaid and t5.siteid = t6.siteid
+         group by  t6.sa_saleareaid,  t6.areafullname, t6.areaname) t
+where $where$
+order by areafullname, case when t.type = '区域' then 0 else 1 end

+ 69 - 80
src/custom/restcontroller/webmanage/sale/salestarget/SQL/人员目标统计-订单.sql

@@ -1,20 +1,16 @@
 with sa_salestarget as
          (
-             SELECT 0+CAST(sum(amount) AS CHAR) amount, MONTH (t1.createdate) point,saler_hrid hrid,'月' type
+              select  0+CAST(sum(amount) AS CHAR) amount,point,sa_saleareaid,type from (SELECT if(t1.isclose,t1.deliedqty*t1.price,amount) amount, MONTH (t2.createdate) point,ifnull(t4.sa_saleareaid,0) sa_saleareaid,'月' type
 FROM sa_orderitems t1
     LEFT JOIN sa_order t2 ON t1.sa_orderid=t2.sa_orderid AND t1.siteid=t2.siteid
-WHERE YEAR (t1.createdate)=$year$ AND t1.siteid=$siteid$ AND isclose=0 AND t1.sa_orderid IN
-    (
-    SELECT sa_orderid FROM sa_order WHERE YEAR (createdate)=$year$ AND siteid=$siteid$ AND sa_projectid=0
-    )
-GROUP BY point,saler_hrid,type
+		left join sys_enterprise_tradefield t3 on t2.sys_enterpriseid=t3.sys_enterpriseid and t2.siteid=t3.siteid
+		left join sa_salearea t4 on t4.sa_saleareaid=t3.sa_saleareaid and t4.siteid=t3.siteid
+WHERE YEAR (t2.createdate)=$year$ AND t1.siteid=$siteid$ AND t2.status in('提交','审核','关闭','手工关闭')) a
+GROUP BY  point,sa_saleareaid,type
     )
         , hrtarget as (
-select t1.departmentid,
-    t1.depname,
-    t1.hrid,
-    t1.name,
-    t1.position,
+select t1.sa_saleareaid,
+    t1.areaname,
     ifnull(m1.amount,0)+ ifnull(m2.amount,0)+ifnull(m3.amount,0)+ ifnull(m4.amount,0)+ ifnull(m5.amount,0)+  ifnull(m6.amount,0)+ ifnull(m7.amount,0)+ ifnull(m8.amount,0)+  ifnull(m9.amount,0) + ifnull(m10.amount,0)+ ifnull(m11.amount,0)+  ifnull(m12.amount,0)  as y1a,
     ifnull(m1.amount,0)+ ifnull(m2.amount,0)+ifnull(m3.amount,0)  as s1a,
     ifnull(m4.amount,0)+ ifnull(m5.amount,0)+ifnull(m6.amount,0)  as s2a,
@@ -33,81 +29,74 @@ select t1.departmentid,
     ifnull(m11.amount,0) as m11a,
     ifnull(m12.amount,0) as m12a
 from sa_salestargethr t1
-    left join sa_salestarget m1 on t1.hrid = m1.hrid and m1.type = '月' and m1.point = 1
-    left join sa_salestarget m2 on t1.hrid = m2.hrid and m2.type = '月' and m2.point = 2
-    left join sa_salestarget m3 on t1.hrid = m3.hrid and m3.type = '月' and m3.point = 3
-    left join sa_salestarget m4 on t1.hrid = m4.hrid and m4.type = '月' and m4.point = 4
-    left join sa_salestarget m5 on t1.hrid = m5.hrid and m5.type = '月' and m5.point = 5
-    left join sa_salestarget m6 on t1.hrid = m6.hrid and m6.type = '月' and m6.point = 6
-    left join sa_salestarget m7 on t1.hrid = m7.hrid and m7.type = '月' and m7.point = 7
-    left join sa_salestarget m8 on t1.hrid = m8.hrid and m8.type = '月' and m8.point = 8
-    left join sa_salestarget m9 on t1.hrid = m9.hrid and m9.type = '月' and m9.point = 9
-    left join sa_salestarget m10 on t1.hrid = m10.hrid and m10.type = '月' and m10.point = 10
-    left join sa_salestarget m11 on t1.hrid = m11.hrid and m11.type = '月' and m11.point = 11
-    left join sa_salestarget m12 on t1.hrid = m12.hrid and m12.type = '月' and m12.point = 12
+    left join sa_salestarget m1 on t1.sa_saleareaid = m1.sa_saleareaid and m1.type = '月' and m1.point = 1
+    left join sa_salestarget m2 on t1.sa_saleareaid = m2.sa_saleareaid and m2.type = '月' and m2.point = 2
+    left join sa_salestarget m3 on t1.sa_saleareaid = m3.sa_saleareaid and m3.type = '月' and m3.point = 3
+    left join sa_salestarget m4 on t1.sa_saleareaid = m4.sa_saleareaid and m4.type = '月' and m4.point = 4
+    left join sa_salestarget m5 on t1.sa_saleareaid = m5.sa_saleareaid and m5.type = '月' and m5.point = 5
+    left join sa_salestarget m6 on t1.sa_saleareaid = m6.sa_saleareaid and m6.type = '月' and m6.point = 6
+    left join sa_salestarget m7 on t1.sa_saleareaid = m7.sa_saleareaid and m7.type = '月' and m7.point = 7
+    left join sa_salestarget m8 on t1.sa_saleareaid = m8.sa_saleareaid and m8.type = '月' and m8.point = 8
+    left join sa_salestarget m9 on t1.sa_saleareaid = m9.sa_saleareaid and m9.type = '月' and m9.point = 9
+    left join sa_salestarget m10 on t1.sa_saleareaid = m10.sa_saleareaid and m10.type = '月' and m10.point = 10
+    left join sa_salestarget m11 on t1.sa_saleareaid = m11.sa_saleareaid and m11.type = '月' and m11.point = 11
+    left join sa_salestarget m12 on t1.sa_saleareaid = m12.sa_saleareaid and m12.type = '月' and m12.point = 12
 where  t1.sa_salestargetbillid = $sa_salestargetbillid$
     )
 select *
 from (
-         select '人员' as type,
-                t1.departmentid,
-                t1.depname,
-                t2.depfullname,
+         select '区域' as type,
+                t1.areaname,
+								t1.sa_saleareaid,
+								t2.parentid,
+                t2.areafullname,
                 1       level,
-                hrid,
-                name,
-                position,
-                y1a,
-                s1a,
-                s2a,
-                s3a,
-                s4a,
-                m1a,
-                m2a,
-                m3a,
-                m4a,
-                m5a,
-                m6a,
-                m7a,
-                m8a,
-                m9a,
-                m10a,
-                m11a,
-                m12a
+                ROUND(y1a/10000,2) y1a,
+                ROUND(s1a/10000,2) s1a,
+                ROUND(s2a/10000,2) s2a,
+                ROUND(s3a/10000,2) s3a,
+                ROUND(s4a/10000,2) s4a,
+                ROUND(m1a/10000,2) m1a,
+                ROUND(m2a/10000,2) m2a,
+                ROUND(m3a/10000,2) m3a,
+                ROUND(m4a/10000,2) m4a,
+                ROUND(m5a/10000,2) m5a,
+                ROUND(m6a/10000,2) m6a,
+                ROUND(m7a/10000,2) m7a,
+                ROUND(m8a/10000,2) m8a,
+                ROUND(m9a/10000,2) m9a,
+                ROUND(m10a/10000,2) m10a,
+                ROUND(m11a/10000,2) m11a,
+                ROUND(m12a/10000,2) m12a
          from hrtarget t1
-                  INNER JOIN sys_department t2 ON t2.departmentid = t1.departmentid
-
-
-         union all
-         select '部门' as  type,
-                t2.departmentid,
-                t3.depname,
-                t3.depfullname,
+                  INNER JOIN sa_salearea t2 ON t2.sa_saleareaid = t1.sa_saleareaid
+			  union all
+         select '区域汇总' as  type,
+                t6.areaname,
+								t6.sa_saleareaid,
+								t6.parentid,
+                t6.areafullname,
                 0        level,
-                null,
-                null,
-                null,
-                sum(y1a),
-                sum(s1a),
-                sum(s2a),
-                sum(s3a),
-                sum(s4a),
-                sum(m1a),
-                sum(m2a),
-                sum(m3a),
-                sum(m4a),
-                sum(m5a),
-                sum(m6a),
-                sum(m7a),
-                sum(m8a),
-                sum(m9a),
-                sum(m10a),
-                sum(m11a),
-                sum(m12a)
-
+                ROUND(sum(y1a)/10000,2) y1a,
+                ROUND(sum(s1a)/10000,2) s1a,
+                ROUND(sum(s2a)/10000,2) s2a,
+                ROUND(sum(s3a)/10000,2) s3a,
+                ROUND(sum(s4a)/10000,2) s4a,
+                ROUND(sum(m1a)/10000,2) m1a,
+                ROUND(sum(m2a)/10000,2) m2a,
+                ROUND(sum(m3a)/10000,2) m3a,
+                ROUND(sum(m4a)/10000,2) m4a,
+                ROUND(sum(m5a)/10000,2) m5a,
+                ROUND(sum(m6a)/10000,2) m6a,
+                ROUND(sum(m7a)/10000,2) m7a,
+                ROUND(sum(m8a)/10000,2) m8a,
+                ROUND(sum(m9a)/10000,2) m9a,
+                ROUND(sum(m10a)/10000,2) m10a,
+                ROUND(sum(m11a)/10000,2) m11a,
+                ROUND(sum(m12a)/10000,2) m12a
          from hrtarget t1
-                  INNER  join sys_departmenthrid t2 on t1.hrid = t2.hrid
-                  inner join sys_department t3 on t2.departmentid = t3.departmentid
-         group by t2.departmentid, t3.depname) t
+                left join sa_salearea t5 on t1.sa_saleareaid = t5.sa_saleareaid
+								 left join sa_salearea t6 on t5.parentid = t6.sa_saleareaid and t5.siteid = t6.siteid
+         group by  t6.sa_saleareaid,  t6.areafullname, t6.areaname) t
 where  $where$
-order by depfullname, case when t.type = '部门' then 0 else 1 end
+order by areafullname, case when t.type = '区域' then 0 else 1 end

+ 3 - 3
src/custom/restcontroller/webmanage/sale/salestarget/SQL/人员范围新增.sql

@@ -1,8 +1,8 @@
-insert into sa_salestargethr (siteid, sa_salestargethrid, hrid, position, areaname, sa_salestargetbillid, depname,
+insert into sa_salestargethr (siteid, sa_salestargethrid, hrid, position, areaname,sa_saleareaid , sa_salestargetbillid, depname,
                               departmentid, name)
-select $siteid$, $sa_salestargethrid$, $hrid$, $position$, $areaname$, $sa_salestargetbillid$, $depname$,
+select $siteid$, $sa_salestargethrid$, $hrid$, $position$, $areaname$,$sa_saleareaid$, $sa_salestargetbillid$, $depname$,
         $departmentid$, $name$
 FROM dual
 WHERE not exists(SELECT 1
                  FROM sa_salestargethr
-                 WHERE siteid = $siteid$ and hrid = $hrid$ AND sa_salestargetbillid = $sa_salestargetbillid$ )
+                 WHERE siteid = $siteid$ and sa_saleareaid = $sa_saleareaid$ AND sa_salestargetbillid = $sa_salestargetbillid$ )

+ 2 - 2
src/custom/restcontroller/webmanage/sale/salestarget/SQL/创建新年度.sql

@@ -1,4 +1,4 @@
 insert into sa_salestargetbill (siteid, sa_salestargetbillid, createby, createdate, changeuserid, changeby, changedate,
-                                targettype, year, status,sys_enterpriseid,tradefield)
+                                targettype, year, status,sys_enterpriseid,tradefield,assessmentindicators)
 values ($siteid$, $sa_salestargetbillid$, $username$, CURRENT_TIME, $userid$, $username$, CURRENT_TIME, $targettype$, $year$,
-        '新建',$sys_enterpriseid$,$tradefield$);
+        '新建',$sys_enterpriseid$,$tradefield$,$assessmentindicators$);

+ 1 - 0
src/custom/restcontroller/webmanage/sale/salestarget/SQL/年度目标列表.sql

@@ -2,6 +2,7 @@ SELECT t1.sa_salestargetbillid,
        t1.createby,
        t1.createdate,
        t1.targettype,
+       t1.assessmentindicators,
        t1.year,
        t1.`status`,
        (SELECT count(*) FROM sa_salestargethr WHERE sa_salestargetbillid = t1.sa_salestargetbillid) peoplecount

+ 6 - 13
src/custom/restcontroller/webmanage/sale/salestarget/SQL/通用-人员范围查询.sql

@@ -1,15 +1,8 @@
 SELECT distinct
-       t2.hrid,
-       t2.hrcode,
-       t2.name,
-       t3.depname,
-       t2.position,
-       t2.phonenumber,
-       t2.departmentid
-FROM sa_salearea_hr t1
-         INNER JOIN sys_hr t2 ON t2.hrid = t1.hrid
-         LEFT JOIN sys_department t3 ON t2.departmentid = t3.departmentid
-WHERE t1.siteid = $siteid$
+			 t1.sa_saleareaid,
+			 t1.areaname
+FROM sa_salearea t1
+WHERE t1.siteid = $siteid$ and ifnull(t1.sa_saleareaid,0)!=0 and t1.areaname not in('销售部','来斯奥')
   AND $where$
-  AND t2.hrid $isIn$
-      (SELECT hrid FROM sa_salestargethr WHERE sa_salestargetbillid = $sa_salestargetbillid$ AND siteid = $siteid$)
+  AND t1.sa_saleareaid $isIn$
+      (SELECT sa_saleareaid FROM sa_salestargethr WHERE sa_salestargetbillid = $sa_salestargetbillid$ AND siteid = $siteid$)

+ 83 - 24
src/custom/restcontroller/webmanage/sale/salestarget/personnel.java

@@ -33,14 +33,15 @@ public class personnel extends Controller {
     @CACHEING_CLEAN(cms = {@cm(clazz = personnel.class, method = {"queryList", "queryDetailList"}), @cm(clazz = personnelstatistics.class, method = {"queryList"})})
     public String insert() throws YosException {
         Long year = content.getLong("year");
+        String assessmentindicators=content.getString("assessmentindicators");
         Long sa_salestargetbillid = content.getLong("sa_salestargetbillid");
         JSONArray salesArray = content.getJSONArray("sales");
 
         ArrayList<String> sqlList = new ArrayList<>();
         if (sa_salestargetbillid <= 0) {
             //查询创建年度是否存在
-            if (dbConnect.runSqlQuery("SELECT 1 FROM sa_salestargetbill WHERE `year` = " + year + " AND targettype ='人员目标' AND siteid = '" + siteid + "'").isNotEmpty()) {
-                return getErrReturnObject().setErrMsg(year + "年度人员目标已存在,无法创建").toString();
+            if (dbConnect.runSqlQuery("SELECT 1 FROM sa_salestargetbill WHERE `year` = " + year + " and assessmentindicators ='"+assessmentindicators+"' AND targettype ='人员目标' AND siteid = '" + siteid + "'").isNotEmpty()) {
+                return getErrReturnObject().setErrMsg(year + "年度人员考核指标为"+assessmentindicators+"的目标已存在,无法创建").toString();
             }
             sa_salestargetbillid = createTableID("sa_salestargetbill");
             SQLFactory sqlFactory = new SQLFactory(this, "创建新年度");
@@ -50,9 +51,20 @@ public class personnel extends Controller {
             sqlFactory.addParameter("sys_enterpriseid", "null");
             sqlFactory.addParameter("userid", userid);
             sqlFactory.addParameter("year", year);
+            sqlFactory.addParameter("assessmentindicators", assessmentindicators);
             sqlFactory.addParameter("targettype", "人员目标");
             sqlFactory.addParameter("tradefield", "");
             sqlList.add(sqlFactory.getSQL());
+
+            //获取所有启用业务员
+            SQLFactory saleareahrsqlFactory = new SQLFactory(this, "通用-人员范围查询");
+            saleareahrsqlFactory.addParameter("siteid", siteid);
+            saleareahrsqlFactory.addParameter_SQL("where", " 1=1 ");
+            saleareahrsqlFactory.addParameter_SQL("isIn", " not in ");
+            saleareahrsqlFactory.addParameter("sa_salestargetbillid", sa_salestargetbillid);
+            String sql = saleareahrsqlFactory.getSQL();
+            Rows saleareahrrows = dbConnect.runSqlQuery(sql);
+            salesArray=saleareahrrows.toJsonArray();
         }
 
 
@@ -63,16 +75,19 @@ public class personnel extends Controller {
 
         for (Object obj : salesArray) {
             JSONObject saleObj = (JSONObject) obj;
+             System.out.println(saleObj.toString());
             SQLFactory saleFactory = new SQLFactory(this, "人员范围新增");
             saleFactory.addParameter("siteid", siteid);
             saleFactory.addParameter("sa_salestargethrid", createTableID("sa_salestargethr"));
-            saleFactory.addParameter("hrid", saleObj.getString("hrid"));
-            saleFactory.addParameter("position", saleObj.getString("position"));
-            saleFactory.addParameter("areaname", "");
+            saleFactory.addParameter("hrid", saleObj.getLongValue("hrid"));
+            saleFactory.addParameter("position", saleObj.getStringValue("position"));
+
+            saleFactory.addParameter("sa_saleareaid", saleObj.getStringValue("sa_saleareaid"));
+            saleFactory.addParameter("areaname", saleObj.getStringValue("areaname"));
             saleFactory.addParameter("sa_salestargetbillid", sa_salestargetbillid);
-            saleFactory.addParameter("depname", saleObj.getString("depname"));
-            saleFactory.addParameter("departmentid", saleObj.getString("departmentid"));
-            saleFactory.addParameter("name", saleObj.getString("name"));
+            saleFactory.addParameter("depname", saleObj.getStringValue("depname"));
+            saleFactory.addParameter("departmentid", saleObj.getLongValue("departmentid"));
+            saleFactory.addParameter("name", saleObj.getStringValue("name"));
             sqlList.add(saleFactory.getSQL());
 
             for (String type : types) {
@@ -94,7 +109,7 @@ public class personnel extends Controller {
                     targetFactory.addParameter("type", type);
                     targetFactory.addParameter("point", i + 1);
                     targetFactory.addParameter("targettype", "人员目标");
-                    targetFactory.addParameter("hrid", saleObj.getString("hrid"));
+                    targetFactory.addParameter("sa_saleareaid", saleObj.getString("sa_saleareaid"));
                     targetFactory.addParameter("sa_salestargetbillid", sa_salestargetbillid);
                     targetFactory.addParameter("year", year);
                     targetFactory.addParameter("sa_projectid", "null");
@@ -106,7 +121,7 @@ public class personnel extends Controller {
                 }
             }
 
-            sqlList.add(DataContrlLog.createLog(this, "sa_salestargetbill", sa_salestargetbillid, "人员编辑", "添加人员" + saleObj.getString("name")).getSQL());
+            sqlList.add(DataContrlLog.createLog(this, "sa_salestargetbill", sa_salestargetbillid, "区域编辑", "添加区域" + saleObj.getStringValue("areaname")).getSQL());
 
         }
 
@@ -120,12 +135,12 @@ public class personnel extends Controller {
     @CACHEING_CLEAN(cms = {@cm(clazz = personnel.class, method = {"queryList", "queryDetailList"}), @cm(clazz = personnelstatistics.class, method = {"queryList"})})
     public String deletePeople() throws YosException {
         Long sa_salestargetbillid = content.getLong("sa_salestargetbillid");
-        JSONArray salesArray = content.getJSONArray("hrid");
+        JSONArray salesArray = content.getJSONArray("sa_saleareaid");
         if (salesArray.size() <= 0) {
             return getErrReturnObject().setErrMsg("请选择人员").toString();
         }
 
-        String sql = "SELECT 1 FROM sa_salestarget WHERE hrid in " + salesArray + " and sa_salestargetbillid = " + sa_salestargetbillid + " and targettype = '人员目标' and (target_l  >0 or target_h >0)";
+        String sql = "SELECT 1 FROM sa_salestarget WHERE sa_saleareaid in " + salesArray + " and sa_salestargetbillid = " + sa_salestargetbillid + " and targettype = '人员目标' and (target_l  >0 or target_h >0)";
         sql = sql.replace("[", "(").replace("]", ")");
         if (dbConnect.runSqlQuery(sql).isNotEmpty()) {
             return getErrReturnObject().setErrMsg("存在已填写的数据,无法删除").toString();
@@ -136,22 +151,22 @@ public class personnel extends Controller {
         SQLFactory sqlFactory = new SQLFactory(this, "人员-删除人员范围");
         sqlFactory.addParameter("sa_salestargetbillid", sa_salestargetbillid);
         sqlFactory.addParameter("siteid", siteid);
-        sqlFactory.addParameter_in("hrid", salesArray.toArray());
+        sqlFactory.addParameter_in("sa_saleareaid", salesArray.toArray());
         sqlList.add(sqlFactory.getSQL());
         //删除人员目标
         SQLFactory sqlFactory2 = new SQLFactory(this, "人员-删除目标明细");
         sqlFactory2.addParameter("sa_salestargetbillid", sa_salestargetbillid);
         sqlFactory2.addParameter("siteid", siteid);
-        sqlFactory2.addParameter_in("hrid", salesArray.toArray());
+        sqlFactory2.addParameter_in("sa_saleareaid", salesArray.toArray());
         sqlList.add(sqlFactory2.getSQL());
 
         //操作记录
         for (Object obj : salesArray) {
-            Long hrid = Long.valueOf(obj.toString());
+            Long sa_saleareaid = Long.valueOf(obj.toString());
             String name = "";
-            Rows rows = dbConnect.runSqlQuery("SELECT name from sys_hr WHERE hrid = " + hrid);
+            Rows rows = dbConnect.runSqlQuery("SELECT areaname from sa_salearea WHERE sa_saleareaid = " + sa_saleareaid);
             if (rows.isNotEmpty()) {
-                name = rows.get(0).getString("name");
+                name = rows.get(0).getString("areaname");
             }
             sqlList.add(DataContrlLog.createLog(this, "sa_salestargetbill", sa_salestargetbillid, "人员编辑", "移除人员" + name).getSQL());
         }
@@ -207,10 +222,11 @@ public class personnel extends Controller {
     @CACHEING_CLEAN(cms = {@cm(clazz = personnel.class, method = {"queryList", "queryDetailList"}), @cm(clazz = personnelstatistics.class, method = {"queryList"})})
     public String edit() throws YosException {
         Long sa_salestargetbillid = content.getLongValue("sa_salestargetbillid");
-        Long hrid = content.getLong("hrid");
+        Long sa_saleareaid = content.getLong("sa_saleareaid");
         if (sa_salestargetbillid == 0) {
             Long year = content.getLongValue("year");
-            Rows rows = dbConnect.runSqlQuery("SELECT DISTINCT sa_salestargetbillid from sa_salestarget WHERE year = " + year + " and hrid=" + hrid + " and targettype ='人员目标' and siteid='" + siteid + "'");
+            Long assessmentindicators = content.getLongValue("assessmentindicators");
+            Rows rows = dbConnect.runSqlQuery("SELECT DISTINCT sa_salestargetbillid from sa_salestarget WHERE year = " + year + " and assessmentindicators='"+assessmentindicators+"' and sa_saleareaid=" + sa_saleareaid + " and targettype ='人员目标' and siteid='" + siteid + "'");
             if (rows.isNotEmpty()) {
                 sa_salestargetbillid = rows.get(0).getLong("sa_salestargetbillid");
             }
@@ -223,13 +239,13 @@ public class personnel extends Controller {
         String key_l = "y1l";
         String key_h = "y1h";
         if (content.containsKey(key_l) && content.containsKey(key_h)) {
-            sqlList.add(getSql(content.getString(key_l), content.getString(key_h), sa_salestargetbillid, hrid, "年", 1));
+            sqlList.add(getSql(content.getString(key_l), content.getString(key_h), sa_salestargetbillid, sa_saleareaid, "年", 1));
         }
         for (int i = 1; i < 5; i++) {
             key_l = "s" + i + "l";
             key_h = "s" + i + "h";
             if (content.containsKey(key_l) && content.containsKey(key_h)) {
-                sqlList.add(getSql(content.getString(key_l), content.getString(key_h), sa_salestargetbillid, hrid, "季", i));
+                sqlList.add(getSql(content.getString(key_l), content.getString(key_h), sa_salestargetbillid, sa_saleareaid, "季", i));
             }
         }
 
@@ -237,7 +253,7 @@ public class personnel extends Controller {
             key_l = "m" + i + "l";
             key_h = "m" + i + "h";
             if (content.containsKey(key_l) && content.containsKey(key_h)) {
-                sqlList.add(getSql(content.getString(key_l), content.getString(key_h), sa_salestargetbillid, hrid, "月", i));
+                sqlList.add(getSql(content.getString(key_l), content.getString(key_h), sa_salestargetbillid, sa_saleareaid, "月", i));
             }
         }
 
@@ -248,9 +264,9 @@ public class personnel extends Controller {
     }
 
 
-    public String getSql(String target_l, String target_h, Long id, Long hrid, String type, int point) {
+    public String getSql(String target_l, String target_h, Long id, Long sa_saleareaid, String type, int point) {
 
-        return " UPDATE sa_salestarget SET target_l=" + target_l + ",target_h = " + target_h + "   WHERE sa_salestargetbillid =" + id + " and hrid =" + hrid + " and type ='" + type + "' AND point = " + point;
+        return " UPDATE sa_salestarget SET target_l=" + target_l + ",target_h = " + target_h + "   WHERE sa_salestargetbillid =" + id + " and sa_saleareaid =" + sa_saleareaid + " and type ='" + type + "' AND point = " + point;
     }
 
     @API(title = "目标详情列表", apiversion = R.ID20220901141802.v1.class)
@@ -280,7 +296,50 @@ public class personnel extends Controller {
         sqlFactory.addParameter("siteid", siteid);
         String sql = sqlFactory.getSQL();
         Rows rows = dbConnect.runSqlQuery(sql);
+        Rows saleareas = dbConnect.runSqlQuery("select * from sa_salearea where parentid=0");
+        Long sa_saleareaid=0l;
+        if(!saleareas.isEmpty()){
+            sa_saleareaid=saleareas.get(0).getLong("sa_saleareaid");
+        }
 
+        for (Row row :rows) {
+            if(row.getLong("parentid")==0){
+                row.put("y1l",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("y1l"));
+                row.put("y1h",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("y1h"));
+                row.put("s1l",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("s1l"));
+                row.put("s1h",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("s1h"));
+                row.put("s2l",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("s2l"));
+                row.put("s2h",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("s2h"));
+                row.put("s3l",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("s3l"));
+                row.put("s3h",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("s3h"));
+                row.put("s4l",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("s4l"));
+                row.put("s4h",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("s4h"));
+                row.put("m1l",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("m1l"));
+                row.put("m1h",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("m1h"));
+                row.put("m2l",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("m2l"));
+                row.put("m2h",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("m2h"));
+                row.put("m3l",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("m3l"));
+                row.put("m3h",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("m3h"));
+                row.put("m4l",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("m4l"));
+                row.put("m4h",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("m4h"));
+                row.put("m5l",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("m5l"));
+                row.put("m5h",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("m5h"));
+                row.put("m6l",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("m6l"));
+                row.put("m6h",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("m6h"));
+                row.put("m7l",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("m7l"));
+                row.put("m7h",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("m7h"));
+                row.put("m8l",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("m8l"));
+                row.put("m8h",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("m8h"));
+                row.put("m9l",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("m9l"));
+                row.put("m9h",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("m9h"));
+                row.put("m10l",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("m10l"));
+                row.put("m10h",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("m10h"));
+                row.put("m11l",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("m11l"));
+                row.put("m11h",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("m11h"));
+                row.put("m12l",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("m12l"));
+                row.put("m12h",rows.toRowsMap("parentid").get(sa_saleareaid.toString()).sum("m12h"));
+            }
+        }
 
         return getSucReturnObject().setData(rows).toString();
     }

+ 92 - 22
src/custom/restcontroller/webmanage/sale/salestarget/personnelstatistics.java

@@ -96,13 +96,15 @@ public class personnelstatistics extends Controller {
     @CACHEING
     public String queryList() throws YosException {
         //年份
-        Long year = content.getLong("year");
-        Rows billRows = dbConnect.runSqlQuery("SELECT sa_salestargetbillid FROM sa_salestargetbill WHERE year=" + year + " and targettype = '人员目标'  AND siteid ='" + siteid + "'");
-        Long sa_salestargetbillid = 0L;
+        Long sa_salestargetbillid = content.getLong("sa_salestargetbillid");
+        Rows billRows = dbConnect.runSqlQuery("SELECT assessmentindicators,year FROM sa_salestargetbill WHERE sa_salestargetbillid=" + sa_salestargetbillid + "  AND siteid ='" + siteid + "'");
+
         //考核指标类型
-        Long type = content.getLongValue("type");
+        String assessmentindicators = "";
+        long year = 2023;
         if (billRows.isNotEmpty()) {
-            sa_salestargetbillid = billRows.get(0).getLong("sa_salestargetbillid");
+            assessmentindicators=billRows.get(0).getString("assessmentindicators");
+            year=billRows.get(0).getLong("year");
         }
 
         /*
@@ -128,9 +130,56 @@ public class personnelstatistics extends Controller {
         sqlFactory.addParameter("siteid", siteid);
         String sql = sqlFactory.getSQL();
         Rows rows = dbConnect.runSqlQuery(sql);
+
+        Rows saleareas = dbConnect.runSqlQuery("select * from sa_salearea where parentid=0");
+        Long sa_saleareaidtop=0l;
+        if(!saleareas.isEmpty()){
+            sa_saleareaidtop=saleareas.get(0).getLong("sa_saleareaid");
+        }
+
+        for (Row row :rows) {
+            if(row.getLong("parentid")==0){
+                row.put("y1l",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("y1l"));
+                row.put("y1h",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("y1h"));
+                row.put("s1l",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("s1l"));
+                row.put("s1h",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("s1h"));
+                row.put("s2l",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("s2l"));
+                row.put("s2h",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("s2h"));
+                row.put("s3l",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("s3l"));
+                row.put("s3h",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("s3h"));
+                row.put("s4l",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("s4l"));
+                row.put("s4h",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("s4h"));
+                row.put("m1l",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m1l"));
+                row.put("m1h",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m1h"));
+                row.put("m2l",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m2l"));
+                row.put("m2h",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m2h"));
+                row.put("m3l",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m3l"));
+                row.put("m3h",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m3h"));
+                row.put("m4l",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m4l"));
+                row.put("m4h",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m4h"));
+                row.put("m5l",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m5l"));
+                row.put("m5h",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m5h"));
+                row.put("m6l",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m6l"));
+                row.put("m6h",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m6h"));
+                row.put("m7l",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m7l"));
+                row.put("m7h",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m7h"));
+                row.put("m8l",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m8l"));
+                row.put("m8h",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m8h"));
+                row.put("m9l",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m9l"));
+                row.put("m9h",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m9h"));
+                row.put("m10l",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m10l"));
+                row.put("m10h",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m10h"));
+                row.put("m11l",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m11l"));
+                row.put("m11h",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m11h"));
+                row.put("m12l",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m12l"));
+                row.put("m12h",rows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m12h"));
+            }
+        }
+
+
         Rows actualRows = new Rows();
         //开票
-        if (type == 0 || type == 1) {
+        if (assessmentindicators .equals("开票")) {
             sqlFactory = new SQLFactory(this, "人员目标统计-开票");
             sqlFactory.addParameter("sa_salestargetbillid", sa_salestargetbillid);
             sqlFactory.addParameter_SQL("where", where);
@@ -140,7 +189,7 @@ public class personnelstatistics extends Controller {
 
         }
         //订单
-        if (type == 2) {
+        if (assessmentindicators .equals("订单")) {
             sqlFactory = new SQLFactory(this, "人员目标统计-订单");
             sqlFactory.addParameter("sa_salestargetbillid", sa_salestargetbillid);
             sqlFactory.addParameter_SQL("where", where);
@@ -149,7 +198,7 @@ public class personnelstatistics extends Controller {
             actualRows = dbConnect.runSqlQuery(sqlFactory);
         }
         //出货
-        if (type == 3) {
+        if (assessmentindicators .equals("出货")) {
             sqlFactory = new SQLFactory(this, "人员目标统计-出货");
             sqlFactory.addParameter("sa_salestargetbillid", sa_salestargetbillid);
             sqlFactory.addParameter_SQL("where", where);
@@ -157,27 +206,48 @@ public class personnelstatistics extends Controller {
             sqlFactory.addParameter("year", year);
             actualRows = dbConnect.runSqlQuery(sqlFactory);
         }
+        //收款
+        if (assessmentindicators .equals("收款")) {
+            sqlFactory = new SQLFactory(this, "人员目标统计-收款");
+            sqlFactory.addParameter("sa_salestargetbillid", sa_salestargetbillid);
+            sqlFactory.addParameter_SQL("where", where);
+            sqlFactory.addParameter("siteid", siteid);
+            sqlFactory.addParameter("year", year);
+            actualRows = dbConnect.runSqlQuery(sqlFactory);
+        }
+
+        for (Row row :actualRows) {
+            if(row.getLong("parentid")==0){
+                row.put("y1a",actualRows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("y1a"));
+                row.put("s1a",actualRows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("s1a"));
+                row.put("s2a",actualRows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("s2a"));
+                row.put("s3a",actualRows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("s3a"));
+                row.put("s4a",actualRows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("s4a"));
+                row.put("m1a",actualRows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m1a"));
+                row.put("m2a",actualRows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m2a"));
+                row.put("m3a",actualRows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m3a"));
+                row.put("m4a",actualRows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m4a"));
+                row.put("m5a",actualRows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m5a"));
+                row.put("m6a",actualRows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m6a"));
+                row.put("m7a",actualRows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m7a"));
+                row.put("m8a",actualRows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m8a"));
+                row.put("m9a",actualRows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m9a"));
+                row.put("m10a",actualRows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m10a"));
+                row.put("m11a",actualRows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m11a"));
+                row.put("m12a",actualRows.toRowsMap("parentid").get(sa_saleareaidtop.toString()).sum("m12a"));
+            }
+        }
 
 
         for (Row row : rows) {
             //初始化
             row = addActualRow(row);
 
-            Long hrid = row.getLong("hrid");
-            Long departmentid = row.getLong("departmentid");
+            Long sa_saleareaid = row.getLong("sa_saleareaid");
             Row actualRow = new Row();
-            String typeStr = row.getString("type");
-            if (typeStr.equals("人员")) {
-                for (Row tempActualRow : actualRows) {
-                    if (tempActualRow.getLong("hrid") == hrid && tempActualRow.getString("type").equals("人员")) {
-                        actualRow.putAll(tempActualRow);
-                    }
-                }
-            } else if (typeStr.equals("部门")) {
-                for (Row tempActualRow : actualRows) {
-                    if (tempActualRow.getLong("departmentid") == departmentid && tempActualRow.getString("type").equals("部门")) {
-                        actualRow.putAll(tempActualRow);
-                    }
+            for (Row tempActualRow : actualRows) {
+                if (tempActualRow.getLong("sa_saleareaid") == sa_saleareaid) {
+                    actualRow.putAll(tempActualRow);
                 }
             }