瀏覽代碼

八项成本柱状图v1.0

丁治程 1 年之前
父節點
當前提交
2307ed5d9e

+ 26 - 0
module_kzks/src/main/java/org/jeecg/modules/Index/entity/vo/ResuliEightCostvo.java

@@ -0,0 +1,26 @@
+package org.jeecg.modules.Index.entity.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @author dzc
+ * @date 2023/10/7 16:00
+ * @package org.jeecg.modules.Index.entity.vo
+ * @project yecai_server
+ * @des 八项成本图表
+ */
+@Data
+public class ResuliEightCostvo implements Serializable {
+
+    /** 名字 */
+    private String name;
+
+    /** 值 */
+    private List<BigDecimal> values;
+
+
+}

+ 42 - 8
module_kzks/src/main/java/org/jeecg/modules/Index/mapper/IndexZcbMapper.java

@@ -48,13 +48,6 @@ public interface IndexZcbMapper {
      */
     public List<String> getDepartByUsername(String username);
 
-    /**
-     *   author: dzc
-     *   version: 1.0
-     *   des: 根据用户名 查询 当前登录的用户 的角色
-     *   date: 2023/9/24
-     */
-    public List<String> getRolesByUsername(String username);
 
     /**
      *   author: dzc
@@ -174,9 +167,50 @@ public interface IndexZcbMapper {
     /**
     *   author: dzc
     *   version: 1.0
-    *   des: 根据时间段 获取八项成本之和
+    *   des: 根据时间段 获取八项成本之和  (所有部门)
     *   date: 2023/10/7
     */
     public List<EightCosts> getEightCostByYearMonth(@Param("startDate") String startDate,@Param("endDate") String endDate);
 
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 根据时间段 获取八项成本之和  (下达部门)
+    *   date: 2023/10/8
+    */
+    public List<EightCosts> getXdbmEightCostByYearMonth(@Param("startDate") String startDate,@Param("endDate") String endDate,@Param("dep") List<String> dep);
+
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 根据时间段 获取八项成本之和  (责任部门)
+    *   date: 2023/10/8
+    */
+    public List<EightCosts> getZrbmEightCostByYearMonth(@Param("startDate") String startDate,@Param("endDate") String endDate,@Param("dep") List<String> dep);
+
+
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 判断当前时间段内 数据库中有几个 (所有部门)
+    *   date: 2023/10/8
+    */
+    public List<String> getYearMonth(@Param("startDate") String startDate,@Param("endDate") String endDate);
+
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 判断当前时间段内 数据库中有几个 (下达部门)
+    *   date: 2023/10/8
+    */
+    public List<String> getXdbmYearMonth(@Param("startDate") String startDate,@Param("endDate") String endDate,@Param("dep") List<String> dep);
+
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 判断当前时间段内 数据库中有几个 (责任部门部门)
+    *   date: 2023/10/8
+    */
+    public List<String> getZrbmYearMonth(@Param("startDate") String startDate,@Param("endDate") String endDate,@Param("dep") List<String> dep);
+
 }

+ 102 - 13
module_kzks/src/main/java/org/jeecg/modules/Index/mapper/xml/IndexZcbMapper.xml

@@ -113,17 +113,6 @@
               )
     </select>
 
-    <resultMap id="RoleList" type="String">
-        <result column="role_id"/>
-    </resultMap>
-    <!-- 根据用户名查询该用户的角色 -->
-    <select id="getRolesByUsername" resultMap="RoleList">
-        SELECT role_id
-        FROM sys_user_role
-        WHERE user_id IN
-              (SELECT id FROM sys_user WHERE username = #{username})
-    </select>
-
     <!-- 查询去年同期总成本 部门根据下达部门 -->
     <select id="getZcbByXdDepartAndUpDate" resultType="BigDecimal">
         SELECT sum(c.zcb)
@@ -233,6 +222,7 @@
           AND status IN ("0","3")
     </select>
 
+    <!-- 根据时间段 获取八项成本之和 (所有部门) -->
     <select id="getEightCostByYearMonth" resultMap="EigthCostList">
         SELECT
         sum( c.clf ) AS clf,sum(c.zyf) AS zyf,sum(c.swf) AS swf,sum(c.wxf) AS wxf,
@@ -242,8 +232,107 @@
         LEFT JOIN ky_task_info k
         ON c.taskno = k.taskno
         WHERE k.yearmonth >= #{startDate} AND k.yearmonth  <![CDATA[ <= ]]> #{endDate}
-        AND c.status in ("0","3")
-        group by k.yearmonth
+        AND c.status IN ("0","3")
+        GROUP BY k.yearmonth
+        ORDER BY k.yearmonth
+    </select>
+
+    <!-- 根据时间段 获取八项成本之和  (下达部门) -->
+    <select id="getXdbmEightCostByYearMonth" resultMap="EigthCostList">
+        SELECT
+        sum( c.clf ) AS clf,sum(c.zyf) AS zyf,sum(c.swf) AS swf,sum(c.wxf) AS wxf,
+        sum(c.rldlf) AS rldlf,sum(c.gdzczj) AS gdzczj,sum(c.gzjlwf) AS gzjlwf,sum(c.glf) AS glf
+        FROM
+        kzks_project_cost c
+        LEFT JOIN ky_task_info k
+        ON c.taskno = k.taskno
+        WHERE k.yearmonth >= #{startDate} AND k.yearmonth  <![CDATA[ <= ]]> #{endDate}
+        AND c.status IN ("0","3")
+        AND k.jycs in
+        <foreach collection="dep" item="item" index="index" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+        GROUP BY k.yearmonth
+        ORDER BY k.yearmonth
+    </select>
+
+    <!-- 根据时间段 获取八项成本之和  (责任部门) -->
+    <select id="getZrbmEightCostByYearMonth" resultMap="EigthCostList">
+        SELECT
+        sum( c.clf ) AS clf,sum(c.zyf) AS zyf,sum(c.swf) AS swf,sum(c.wxf) AS wxf,
+        sum(c.rldlf) AS rldlf,sum(c.gdzczj) AS gdzczj,sum(c.gzjlwf) AS gzjlwf,sum(c.glf) AS glf
+        FROM
+        kzks_project_cost c
+        LEFT JOIN ky_task_info k
+        ON c.taskno = k.taskno
+        WHERE k.yearmonth >= #{startDate} AND k.yearmonth  <![CDATA[ <= ]]> #{endDate}
+        AND c.status IN ("0","3")
+        AND k.zrbm in
+        <foreach collection="dep" item="item" index="index" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+        GROUP BY k.yearmonth
         ORDER BY k.yearmonth
     </select>
+
+
+
+    <resultMap id="yearMonthList" type="String">
+        <result column="yearmonth"></result>
+    </resultMap>
+    <!-- 判断当前时间段内 数据库中有几个 (所有部门) -->
+    <select id="getYearMonth" resultMap="yearMonthList">
+        SELECT
+        k.yearmonth AS yearmonth
+        FROM
+        kzks_project_cost c
+        LEFT JOIN ky_task_info k ON c.taskno = k.taskno
+        WHERE
+        k.yearmonth >= #{startDate} AND k.yearmonth  <![CDATA[ <= ]]> #{endDate}
+        AND c.STATUS IN ( "0", "3" )
+        GROUP BY
+        k.yearmonth
+        ORDER BY
+        k.yearmonth
+    </select>
+
+    <!-- 判断当前时间段内 数据库中有几个 (下达部门) -->
+    <select id="getXdbmYearMonth" resultMap="yearMonthList">
+        SELECT
+        k.yearmonth AS yearmonth
+        FROM
+        kzks_project_cost c
+        LEFT JOIN ky_task_info k ON c.taskno = k.taskno
+        WHERE
+        k.yearmonth >= #{startDate} AND k.yearmonth  <![CDATA[ <= ]]> #{endDate}
+        AND c.STATUS IN ( "0", "3" )
+        AND k.jycs in
+        <foreach collection="dep" item="item" index="index" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+        GROUP BY
+        k.yearmonth
+        ORDER BY
+        k.yearmonth
+    </select>
+
+    <!-- 判断当前时间段内 数据库中有几个 (责任部门部门) -->
+    <select id="getZrbmYearMonth" resultMap="yearMonthList">
+        SELECT
+        k.yearmonth AS yearmonth
+        FROM
+        kzks_project_cost c
+        LEFT JOIN ky_task_info k ON c.taskno = k.taskno
+        WHERE
+        k.yearmonth >= #{startDate} AND k.yearmonth  <![CDATA[ <= ]]> #{endDate}
+        AND c.STATUS IN ( "0", "3" )
+        AND k.zrbm in
+        <foreach collection="dep" item="item" index="index" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+        GROUP BY
+        k.yearmonth
+        ORDER BY
+        k.yearmonth
+    </select>
 </mapper>

+ 200 - 34
module_kzks/src/main/java/org/jeecg/modules/Index/service/impl/IndexZcbServiceImpl.java

@@ -109,7 +109,6 @@ public class IndexZcbServiceImpl implements IndexZcbService {
         if (AuthMark.BOSS.equals(role)){ // 如果当前用户角色是领导,则查询全部部门的总成本
 
             CompletableFuture<BigDecimal> currentYearTotalFuture = CompletableFuture.supplyAsync(() -> {
-//                BigDecimal sumZcb = indexZcbMapper.getZcbByDate(String.valueOf(year), pcList);
                 BigDecimal sumZcb = indexZcbMapper.getZcbByYear(String.valueOf(year));
                 if (ObjectUtil.isEmpty(sumZcb)){
                     sumZcb = BigDecimal.valueOf(0);
@@ -383,6 +382,7 @@ public class IndexZcbServiceImpl implements IndexZcbService {
 
         // 各个年、月的总成本之和的集合(结果集合)
         ArrayList<BigDecimal> zcbSumValueList = new ArrayList<>();
+        ArrayList<ResuliEightCostvo> resuliEightCostvosList = new ArrayList<>();
         IndexChartInfoVo indexChartInfoVo = new IndexChartInfoVo();
         // 如果前端传递过来的标记是 按年统计 则获取日期范围内所有的年份,遍历集合 分别查询各个年份下的总成本的和
         if ("year".equals(indexInfoParamDto.getTime())){
@@ -410,8 +410,6 @@ public class IndexZcbServiceImpl implements IndexZcbService {
                 if (AuthMark.DEPT_LEADER.equals(role)){ // 如果当前用户角色是部门领导,则查询当前部门的总成本
                     CompletableFuture<BigDecimal> zcbSumValueFuture = CompletableFuture.supplyAsync(() -> {
                         BigDecimal sum = BigDecimal.valueOf(0);
-//                        BigDecimal b1 = indexZcbMapper.getZcbByXdDepartAndDate(deptList, year,pcList);
-//                        BigDecimal b2 = indexZcbMapper.getZcbByZrDepartAndDate(deptList, year,pcList);
                         BigDecimal b1 = indexZcbMapper.getZcbByXdDepartByYear(year, deptList);
                         BigDecimal b2 = indexZcbMapper.getZcbByZrDepartByYear(year, deptList);
                         if (!ObjectUtil.isEmpty(b1) && ObjectUtil.isEmpty(b2)){
@@ -457,45 +455,213 @@ public class IndexZcbServiceImpl implements IndexZcbService {
             LocalDate endLocalDate = endDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
             List<YearMonth> yearMonths = getYearMonths(beginLocalDate, endLocalDate);
             ArrayList<String> yearMonthList = new ArrayList<>();
-            for (YearMonth yearMonth : yearMonths) {
-                String yearsMonthI = yearMonth.format(DateTimeFormatter.ofPattern("yyyy-MM"));
-                BigDecimal zcbSumValue = BigDecimal.valueOf(0); // 默认值为0
-                if (AuthMark.BOSS.equals(role)){ // 如果当前用户角色是领导,则查询全部部门的总成本
-//                    zcbSumValue = indexZcbMapper.getZcbByDate(yearsMonthI,pcList);
-                    zcbSumValue = indexZcbMapper.getZcbByYearMonth(yearsMonthI);
-                    if (ObjectUtil.isEmpty(zcbSumValue)) {
-                        zcbSumValue = BigDecimal.valueOf(0);
+            ArrayList<BigDecimal> clfList = new ArrayList<>();
+            ArrayList<BigDecimal> zyfList = new ArrayList<>();
+            ArrayList<BigDecimal> swfList = new ArrayList<>();
+            ArrayList<BigDecimal> wxfList = new ArrayList<>();
+            ArrayList<BigDecimal> rldlfList = new ArrayList<>();
+            ArrayList<BigDecimal> gdzczjList = new ArrayList<>();
+            ArrayList<BigDecimal> gzjlwfList = new ArrayList<>();
+            ArrayList<BigDecimal> glfList = new ArrayList<>();
+            ResuliEightCostvo r1 = new ResuliEightCostvo();
+            r1.setName("clf");
+            ResuliEightCostvo r2 = new ResuliEightCostvo();
+            r2.setName("zyf");
+            ResuliEightCostvo r3 = new ResuliEightCostvo();
+            r3.setName("swf");
+            ResuliEightCostvo r4 = new ResuliEightCostvo();
+            r4.setName("wxf");
+            ResuliEightCostvo r5 = new ResuliEightCostvo();
+            r5.setName("rldlf");
+            ResuliEightCostvo r6 = new ResuliEightCostvo();
+            r6.setName("gdzczj");
+            ResuliEightCostvo r7 = new ResuliEightCostvo();
+            r7.setName("gzjlwf");
+            ResuliEightCostvo r8 = new ResuliEightCostvo();
+            r8.setName("glf");
+            if (AuthMark.BOSS.equals(role)){ // 如果当前用户角色是领导,则查询全部部门的总成本
+                List<String> yearMonthListSql = indexZcbMapper.getYearMonth(beginDateStr, endDateStr);
+                List<EightCosts> costList = indexZcbMapper.getEightCostByYearMonth(beginDateStr, endDateStr);
+                int i = 0;
+                for (YearMonth yearMonth : yearMonths) {
+                    String yearsMonthI = yearMonth.format(DateTimeFormatter.ofPattern("yyyy-MM"));
+                    if (yearMonthListSql.contains(yearsMonthI)){
+                        clfList.add(costList.get(i).getClf());
+                        zyfList.add(costList.get(i).getZyf());
+                        swfList.add(costList.get(i).getSwf());
+                        wxfList.add(costList.get(i).getWxf());
+                        rldlfList.add(costList.get(i).getRldlf());
+                        gdzczjList.add(costList.get(i).getGdzczj());
+                        gzjlwfList.add(costList.get(i).getGzjlwf());
+                        glfList.add(costList.get(i).getGlf());
+                        i++;
+                    }else {
+                        clfList.add(BigDecimal.valueOf(0));
+                        zyfList.add(BigDecimal.valueOf(0));
+                        swfList.add(BigDecimal.valueOf(0));
+                        wxfList.add(BigDecimal.valueOf(0));
+                        rldlfList.add(BigDecimal.valueOf(0));
+                        gdzczjList.add(BigDecimal.valueOf(0));
+                        gzjlwfList.add(BigDecimal.valueOf(0));
+                        glfList.add(BigDecimal.valueOf(0));
                     }
+                    yearMonthList.add(yearsMonthI);
                 }
+                r1.setValues(clfList);
+                r2.setValues(zyfList);
+                r3.setValues(swfList);
+                r4.setValues(wxfList);
+                r5.setValues(rldlfList);
+                r6.setValues(gdzczjList);
+                r7.setValues(gzjlwfList);
+                r8.setValues(glfList);
+                resuliEightCostvosList.add(r1);
+                resuliEightCostvosList.add(r2);
+                resuliEightCostvosList.add(r3);
+                resuliEightCostvosList.add(r4);
+                resuliEightCostvosList.add(r5);
+                resuliEightCostvosList.add(r6);
+                resuliEightCostvosList.add(r7);
+                resuliEightCostvosList.add(r8);
+            }
 
-                if (AuthMark.DEPT_LEADER.equals(role)){ // 如果当前用户角色是部门领导,则查询当前部门的总成本
-                    CompletableFuture<BigDecimal> zcbSumValueFuture = CompletableFuture.supplyAsync(() -> {
-                        BigDecimal sum = BigDecimal.valueOf(0);
-//                        BigDecimal b1 = indexZcbMapper.getZcbByXdDepartAndDate(deptList, yearsMonthI,pcList);
-//                        BigDecimal b2 = indexZcbMapper.getZcbByZrDepartAndDate(deptList, yearsMonthI,pcList);
-                        BigDecimal b1 = indexZcbMapper.getZcbByXdDepartByYearMonth(yearsMonthI, deptList);
-                        BigDecimal b2 = indexZcbMapper.getZcbByZrDepartByYearMonth(yearsMonthI, deptList);
-                        if (!ObjectUtil.isEmpty(b1) && ObjectUtil.isEmpty(b2)){
-                            // 如果根据责任部门没有查出来值 但 根据下达部门查询有值
-                            sum = b1.add(BigDecimal.valueOf(0));
+            if (AuthMark.DEPT_LEADER.equals(role)){   // 如果当前用户角色是部门领导,则查询当前部门的总成本
+                List<String> xdbmYearMonthListSql = indexZcbMapper.getXdbmYearMonth(beginDateStr, endDateStr, deptList);
+                List<String> zrbmYearMonthListSql = indexZcbMapper.getZrbmYearMonth(beginDateStr, endDateStr, deptList);
+                ArrayList<String> newZrbmYearMonthListSql = new ArrayList<>();
+                newZrbmYearMonthListSql.addAll(zrbmYearMonthListSql);
+                newZrbmYearMonthListSql.removeAll(xdbmYearMonthListSql);
+                ArrayList<String> yearMonthListSql = new ArrayList<>();
+                yearMonthListSql.addAll(xdbmYearMonthListSql);
+                yearMonthListSql.addAll(newZrbmYearMonthListSql);
+                Collections.sort(yearMonthListSql);
+                List<EightCosts> xdbmCostList = indexZcbMapper.getXdbmEightCostByYearMonth(beginDateStr, endDateStr, deptList);
+                List<EightCosts> zrbmCostList = indexZcbMapper.getZrbmEightCostByYearMonth(beginDateStr, endDateStr, deptList);
+                if (!ObjectUtil.isEmpty(xdbmCostList) && ObjectUtil.isEmpty(zrbmCostList)){
+                    // 如果根据责任部门没有查出来值 但 根据下达部门查询有值
+                    int i=0;
+                    for (YearMonth yearMonth : yearMonths) {
+                        String yearsMonthI = yearMonth.format(DateTimeFormatter.ofPattern("yyyy-MM"));
+                        if (yearMonthListSql.contains(yearsMonthI)){
+                            clfList.add(xdbmCostList.get(i).getClf());
+                            zyfList.add(xdbmCostList.get(i).getZyf());
+                            swfList.add(xdbmCostList.get(i).getSwf());
+                            wxfList.add(xdbmCostList.get(i).getWxf());
+                            rldlfList.add(xdbmCostList.get(i).getRldlf());
+                            gdzczjList.add(xdbmCostList.get(i).getGdzczj());
+                            gzjlwfList.add(xdbmCostList.get(i).getGzjlwf());
+                            glfList.add(xdbmCostList.get(i).getGlf());
+                            i++;
+                        }else {
+                            clfList.add(BigDecimal.valueOf(0));
+                            zyfList.add(BigDecimal.valueOf(0));
+                            swfList.add(BigDecimal.valueOf(0));
+                            wxfList.add(BigDecimal.valueOf(0));
+                            rldlfList.add(BigDecimal.valueOf(0));
+                            gdzczjList.add(BigDecimal.valueOf(0));
+                            gzjlwfList.add(BigDecimal.valueOf(0));
+                            glfList.add(BigDecimal.valueOf(0));
                         }
-                        if (ObjectUtil.isEmpty(b1) && !ObjectUtil.isEmpty(b2)){
-                            // 如果根据责任部门查询有值,但根据下达部门没有值
-                            sum = b2.add(BigDecimal.valueOf(0));
+                        yearMonthList.add(yearsMonthI);
+                    }
+                }
+                if (ObjectUtil.isEmpty(xdbmCostList) && !ObjectUtil.isEmpty(zrbmCostList)){
+                    // 如果根据责任部门查询有值,但根据下达部门没有值
+                    int i=0;
+                    for (YearMonth yearMonth : yearMonths) {
+                        String yearsMonthI = yearMonth.format(DateTimeFormatter.ofPattern("yyyy-MM"));
+                        if (yearMonthListSql.contains(yearsMonthI)){
+                            clfList.add(zrbmCostList.get(i).getClf());
+                            zyfList.add(zrbmCostList.get(i).getZyf());
+                            swfList.add(zrbmCostList.get(i).getSwf());
+                            wxfList.add(zrbmCostList.get(i).getWxf());
+                            rldlfList.add(zrbmCostList.get(i).getRldlf());
+                            gdzczjList.add(zrbmCostList.get(i).getGdzczj());
+                            gzjlwfList.add(zrbmCostList.get(i).getGzjlwf());
+                            glfList.add(zrbmCostList.get(i).getGlf());
+                            i++;
+                        }else {
+                            clfList.add(BigDecimal.valueOf(0));
+                            zyfList.add(BigDecimal.valueOf(0));
+                            swfList.add(BigDecimal.valueOf(0));
+                            wxfList.add(BigDecimal.valueOf(0));
+                            rldlfList.add(BigDecimal.valueOf(0));
+                            gdzczjList.add(BigDecimal.valueOf(0));
+                            gzjlwfList.add(BigDecimal.valueOf(0));
+                            glfList.add(BigDecimal.valueOf(0));
                         }
-                        if (!ObjectUtil.isEmpty(b1) && !ObjectUtil.isEmpty(b2)){
-                            // 如果下达部门跟责任部门都查询出值时,就进行累加(据沈工所说同一条任务的这两个字段的部门名称不会是相同的)
-                            sum = b1.add(b2);
+                        yearMonthList.add(yearsMonthI);
+                    }
+                }
+                if (!ObjectUtil.isEmpty(xdbmCostList) && !ObjectUtil.isEmpty(xdbmCostList)){
+                    // 如果下达部门跟责任部门都查询出值时,就进行累加(据沈工所说同一条任务的这两个字段的部门名称不会是相同的)
+                    int i=0;
+                    int j=0;
+                    for (YearMonth yearMonth : yearMonths) {
+                        String yearsMonthI = yearMonth.format(DateTimeFormatter.ofPattern("yyyy-MM"));
+                        if (xdbmYearMonthListSql.contains(yearsMonthI) && !zrbmYearMonthListSql.contains(yearsMonthI)){
+                            clfList.add(xdbmCostList.get(i).getClf());
+                            zyfList.add(xdbmCostList.get(i).getZyf());
+                            swfList.add(xdbmCostList.get(i).getSwf());
+                            wxfList.add(xdbmCostList.get(i).getWxf());
+                            rldlfList.add(xdbmCostList.get(i).getRldlf());
+                            gdzczjList.add(xdbmCostList.get(i).getGdzczj());
+                            gzjlwfList.add(xdbmCostList.get(i).getGzjlwf());
+                            glfList.add(xdbmCostList.get(i).getGlf());
+                            i++;
+                        }else if (!xdbmYearMonthListSql.contains(yearsMonthI) && zrbmYearMonthListSql.contains(yearsMonthI)){
+                            clfList.add(xdbmCostList.get(j).getClf());
+                            zyfList.add(xdbmCostList.get(j).getZyf());
+                            swfList.add(xdbmCostList.get(j).getSwf());
+                            wxfList.add(xdbmCostList.get(j).getWxf());
+                            rldlfList.add(xdbmCostList.get(j).getRldlf());
+                            gdzczjList.add(xdbmCostList.get(j).getGdzczj());
+                            gzjlwfList.add(xdbmCostList.get(j).getGzjlwf());
+                            glfList.add(xdbmCostList.get(j).getGlf());
+                            j++;
+                        }else if (zrbmYearMonthListSql.contains(yearsMonthI) && xdbmYearMonthListSql.contains(yearsMonthI)){
+                            clfList.add(xdbmCostList.get(i).getClf().add(zrbmCostList.get(j).getClf()));
+                            zyfList.add(xdbmCostList.get(i).getZyf().add(zrbmCostList.get(j).getZyf()));
+                            swfList.add(xdbmCostList.get(i).getSwf().add(zrbmCostList.get(j).getSwf()));
+                            wxfList.add(xdbmCostList.get(i).getWxf().add(zrbmCostList.get(j).getWxf()));
+                            rldlfList.add(xdbmCostList.get(i).getRldlf().add(zrbmCostList.get(j).getRldlf()));
+                            gdzczjList.add(xdbmCostList.get(i).getGdzczj().add(zrbmCostList.get(j).getGdzczj()));
+                            gzjlwfList.add(xdbmCostList.get(i).getGzjlwf().add(zrbmCostList.get(j).getGzjlwf()));
+                            glfList.add(xdbmCostList.get(i).getGlf().add(zrbmCostList.get(j).getGlf()));
+                            i++;
+                            j++;
+                        }else {
+                            clfList.add(BigDecimal.valueOf(0));
+                            zyfList.add(BigDecimal.valueOf(0));
+                            swfList.add(BigDecimal.valueOf(0));
+                            wxfList.add(BigDecimal.valueOf(0));
+                            rldlfList.add(BigDecimal.valueOf(0));
+                            gdzczjList.add(BigDecimal.valueOf(0));
+                            gzjlwfList.add(BigDecimal.valueOf(0));
+                            glfList.add(BigDecimal.valueOf(0));
                         }
-                        return sum;
-                    });
-
+                        yearMonthList.add(yearsMonthI);
+                    }
                 }
-
-                zcbSumValueList.add(zcbSumValue);
-                yearMonthList.add(yearsMonthI);
+                r1.setValues(clfList);
+                r2.setValues(zyfList);
+                r3.setValues(swfList);
+                r4.setValues(wxfList);
+                r5.setValues(rldlfList);
+                r6.setValues(gdzczjList);
+                r7.setValues(gzjlwfList);
+                r8.setValues(glfList);
+                resuliEightCostvosList.add(r1);
+                resuliEightCostvosList.add(r2);
+                resuliEightCostvosList.add(r3);
+                resuliEightCostvosList.add(r4);
+                resuliEightCostvosList.add(r5);
+                resuliEightCostvosList.add(r6);
+                resuliEightCostvosList.add(r7);
+                resuliEightCostvosList.add(r8);
             }
-            indexChartInfoVo.setSeriesData(zcbSumValueList);
+
+            indexChartInfoVo.setSeriesData(resuliEightCostvosList);
             indexChartInfoVo.setXAxisData(yearMonthList);
             resultList.add(indexChartInfoVo);
         }