瀏覽代碼

指标排行 -- 责任部门

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

+ 4 - 4
module_kzks/src/main/java/org/jeecg/modules/Index/mapper/xml/IndexKpiMapper.xml

@@ -3,7 +3,7 @@
 <mapper namespace="org.jeecg.modules.Index.mapper.IndexKpiMapper">
     <!--部门每月月底项目进度考核表    根据责任部门分组找出指定年月的合同额总和和已收款总和 -->
     <select id="getHteReceivedZrbmYm" resultType="org.jeecg.modules.Index.entity.kpi.IndexKpiCompletByDate">
-        select zrbm as depart, sum(contractfpe * processPercent / 100.0) as contractAmount, sum(TaskMoney) as received from kzks_kpi_project_month
+        select zrbm as depart, sum((case when contractfpe != 0.00 then contractfpe * processPercent else EstimationCoat*processPercent end) / 100.0) as contractAmount, sum(TaskMoney) as received from kzks_kpi_project_month
         where ym=#{date} and (zrbm in
         <foreach item='item' index='index' collection='departList' open='(' separator=',' close=')'>
             #{item}
@@ -13,7 +13,7 @@
 
     <!--部门每月月底项目进度考核表    根据下达部门分组找出指定年月的合同额总和和已收款总和 -->
     <select id="getHteReceivedJycsYm" resultType="org.jeecg.modules.Index.entity.kpi.IndexKpiCompletByDate">
-        select jycs as depart, sum(contractfpe * processPercent / 100.0) as contractAmount, sum(TaskMoney) as received from kzks_kpi_project_month
+        select jycs as depart, sum(contractfpe) as contractAmount, sum(TaskMoney) as received from kzks_kpi_project_month
         where ym=#{date} and (jycs in
         <foreach item='item' index='index' collection='departList' open='(' separator=',' close=')'>
             #{item}
@@ -23,7 +23,7 @@
 
     <!--项目成本表    根据责任部门分组找出当年当月的合同额总和和已收款总和 -->
     <select id="getHteReceivedZrbmCost" resultType="org.jeecg.modules.Index.entity.kpi.IndexKpiCompletByDate">
-        select zrbm as depart, sum(contractfpe * processPercent / 100.0) as contractAmount, sum(TaskMoney) as received from kzks_project_cost
+        select zrbm as depart, sum((case when contractfpe != 0.00 then contractfpe * processPercent else EstimationCoat*processPercent end) / 100.0) as contractAmount, sum(TaskMoney) as received from kzks_project_cost
         where status='0' and (zrbm in
         <foreach item='item' index='index' collection='departList' open='(' separator=',' close=')'>
             #{item}
@@ -33,7 +33,7 @@
 
     <!--项目成本表    根据下达部门分组找出当年当月的合同额总和和已收款总和 -->
     <select id="getHteReceivedJycsCost" resultType="org.jeecg.modules.Index.entity.kpi.IndexKpiCompletByDate">
-        select jycs as depart, sum(contractfpe * processPercent / 100.0) as contractAmount, sum(TaskMoney) as received from kzks_project_cost
+        select jycs as depart, sum(contractfpe) as contractAmount, sum(TaskMoney) as received from kzks_project_cost
         where status='0' and (jycs in
         <foreach item='item' index='index' collection='departList' open='(' separator=',' close=')'>
             #{item}

+ 158 - 1
module_kzks/src/main/java/org/jeecg/modules/Index/service/impl/IndexKpiServiceImpl.java

@@ -13,6 +13,7 @@ import org.jeecg.modules.Index.service.IndexKpiService;
 import org.jeecg.modules.Index.util.AuthMark;
 import org.jeecg.modules.Index.util.CommonMethod;
 import org.jeecg.modules.dataSourceSwitch.annotation.TargetDataSource;
+import org.jeecg.modules.projectCost.service.IProjectCostService;
 import org.jeecg.modules.system.service.ISysDepartService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -52,6 +53,10 @@ public class IndexKpiServiceImpl implements IndexKpiService {
     @SuppressWarnings("all")
     private ISysDepartService sysDepartService;
 
+    @Autowired
+    @SuppressWarnings("all")
+    private IProjectCostService projectCostService;
+
     /**
      * 工具类
      * 根据日期字符串求上一个月的字符串
@@ -327,6 +332,20 @@ public class IndexKpiServiceImpl implements IndexKpiService {
         List<IndexKpiCompletByDate> kpiDataJycsList = new ArrayList<>();//下达部门排行
         indexKpiDataDepart.setZrbmCharts(kpiDataZrbmList);//初始化放入空列表
         indexKpiDataDepart.setJycsCharts(kpiDataJycsList);
+
+        ArrayList<String> clYearMonth = new ArrayList<>();
+        clYearMonth.add("2023-01");
+        clYearMonth.add("2023-02");
+        clYearMonth.add("2023-03");
+        clYearMonth.add("2023-04");
+        clYearMonth.add("2023-05");
+        clYearMonth.add("2023-06");
+        clYearMonth.add("2023-07");
+        clYearMonth.add("2023-08");
+        clYearMonth.add("2023-09");
+        clYearMonth.add("2023-10");
+        ArrayList<String> clYear = new ArrayList<>();
+        clYear.add("2023");
         // TODO:  初始化结束
 
         //判断用户权限
@@ -416,6 +435,140 @@ public class IndexKpiServiceImpl implements IndexKpiService {
             }
             if(zrbmList.isEmpty() && xdbmList.isEmpty()) return indexKpiDataDepart;
 
+            if (timeType.equals("year")){
+                if (clYear.contains(indexKpiParamDto.getBeginDate())){
+                    // 查询 1到10月份的总合同额
+                    CompletableFuture<Map<String,IndexKpiCompletByDate>> getHtereceivedZrbmClMapFuture =  CompletableFuture.supplyAsync(() -> {
+                        Map<String, IndexKpiCompletByDate> htereceivedZrbmClMap = new TreeMap<>();//用来保存部门该月合计的合同额、已收款以及责任部门
+                        List<IndexKpiCompletByDate> zrbmHteCl = projectCostService.getZrbmHteCl(zrbmList);
+                        for(IndexKpiCompletByDate htereceivedZrbmCl:zrbmHteCl){
+                            htereceivedZrbmClMap.put(htereceivedZrbmCl.getDepart(), htereceivedZrbmCl);
+                        }
+                        return htereceivedZrbmClMap;
+                    });
+                    // 查询 10月份之后的总合同额  当前查询项目和成本表中的所有的 - 十月份的
+                    // 当期的合同额
+                    CompletableFuture<Map<String,IndexKpiCompletByDate>> getHtereceivedZrbmMapFuture = CompletableFuture.supplyAsync(() -> {
+                        TreeMap<String, IndexKpiCompletByDate> htereceivedZrbmMap = new TreeMap<>();
+                        List<IndexKpiCompletByDate> hteReceivedZrbmCost = indexKpiMapper.getHteReceivedZrbmCost(zrbmList);
+                        for (IndexKpiCompletByDate htereceivedZrbm:hteReceivedZrbmCost) {
+                            htereceivedZrbmMap.put(htereceivedZrbm.getDepart(),htereceivedZrbm);
+                        }
+                        return htereceivedZrbmMap;
+                    });
+                    // 10月份的合同额
+                    CompletableFuture<Map<String,IndexKpiCompletByDate>> getHtereceivedZrbmLastMapFuture = CompletableFuture.supplyAsync(() -> {
+                        Map<String, IndexKpiCompletByDate> htereceivedZrbmLastMap = new TreeMap<>();//用来保存部门上月合计的合同额、已收款以及责任部门
+                        List<IndexKpiCompletByDate> htereceivedZrbmLastList = indexKpiMapper.getHteReceivedZrbmYm("2023-10", zrbmList);
+                        for(IndexKpiCompletByDate htereceivedZrbmLast:htereceivedZrbmLastList){
+                            htereceivedZrbmLastMap.put(htereceivedZrbmLast.getDepart(), htereceivedZrbmLast);
+                        }
+                        return htereceivedZrbmLastMap;
+                    });
+
+                    CompletableFuture<Void> future = CompletableFuture.allOf(getHtereceivedZrbmClMapFuture, getHtereceivedZrbmMapFuture, getHtereceivedZrbmLastMapFuture);
+                    future.join();
+                    Map<String, IndexKpiCompletByDate> htereceivedZrbmClMap = getHtereceivedZrbmClMapFuture.join();
+                    Map<String, IndexKpiCompletByDate> htereceivedZrbmMap = getHtereceivedZrbmMapFuture.join();
+                    Map<String, IndexKpiCompletByDate> htereceivedZrbmLastMap = getHtereceivedZrbmLastMapFuture.join();
+                    for(IndexKpiCompletByDate kpiDataZrbm:kpiDataZrbmList){
+                        // 1到10月份的合同额
+                        IndexKpiCompletByDate htereceivedZrbmCl = htereceivedZrbmClMap.getOrDefault(kpiDataZrbm.getDepart(), kpiDataZrbm);
+                        // 当前日期之前的所有的合同额
+                        IndexKpiCompletByDate htereceivedZrbm = htereceivedZrbmMap.getOrDefault(kpiDataZrbm.getDepart(), kpiDataZrbm);
+                        // 10月份之前的所有的合同额
+                        IndexKpiCompletByDate htereceivedZrbmLast = htereceivedZrbmLastMap.getOrDefault(kpiDataZrbm.getDepart(), kpiDataZrbm);
+                        // 显示的当年的合同额 = 1到10月份的合同额 + (当前日期之前的所有的合同额 - 10月份之前的所有的合同额)
+                        kpiDataZrbm.setContractAmount(htereceivedZrbmCl.getContractAmount().add(htereceivedZrbm.getContractAmount().subtract(htereceivedZrbmLast.getContractAmount())));
+                        // 显示的当年的已收款 = 1到10月份的已收款 + (当前日期之前的所有的已收款 - 10月份之前的所有的已收款)
+                        kpiDataZrbm.setReceived(htereceivedZrbmCl.getReceived().add(htereceivedZrbm.getReceived().subtract(htereceivedZrbmLast.getReceived())));
+                        // 计算 当年的完成度 = 当年的合同额 / 当年的指标
+                        if(kpiDataZrbm.getDepartKpi() != null){
+                            if(kpiDataZrbm.getDepartKpi().equals(BigDecimal.valueOf(0))){
+                                kpiDataZrbm.setKpiCompletRate(BigDecimal.valueOf(1));
+                            }else{
+                                kpiDataZrbm.setKpiCompletRate(kpiDataZrbm.getContractAmount().divide(kpiDataZrbm.getDepartKpi(), 2, RoundingMode.HALF_UP));
+                            }
+                        }
+                    }
+                    //责任部门 根据指标进行排序
+                    kpiDataZrbmList.sort(Comparator.comparing(IndexKpiCompletByDate::getKpiCompletRate, Comparator.nullsFirst(BigDecimal::compareTo)).reversed());
+                    indexKpiDataDepart.setZrbmCharts(kpiDataZrbmList);
+                    return indexKpiDataDepart;
+                }
+            }else if (timeType.equals("month")){
+                if (clYearMonth.contains(finalDateYm)){
+                    // 责任 部门
+                    CompletableFuture<Map<String,IndexKpiCompletByDate>> getHtereceivedZrbmMapFuture = CompletableFuture.supplyAsync(() -> {
+                        Map<String, IndexKpiCompletByDate> htereceivedZrbmMap = new TreeMap<>();//用来保存部门该月合计的合同额、已收款以及责任部门
+                        List<IndexKpiCompletByDate> zrbmIndexKpiComplet = projectCostService.getZrbmHte(indexKpiParamDto.getBeginDate(), zrbmList);
+                        for (IndexKpiCompletByDate htereceivedZrbm : zrbmIndexKpiComplet){
+                            htereceivedZrbmMap.put(htereceivedZrbm.getDepart(), htereceivedZrbm);
+                        }
+                        return htereceivedZrbmMap;
+                    });
+
+                    // 下达 部门
+                    CompletableFuture<Map<String,IndexKpiCompletByDate>> getHtereceivedXdbmMapFuture = CompletableFuture.supplyAsync(() -> {
+                        Map<String, IndexKpiCompletByDate> htereceivedXdbmMap = new TreeMap<>();//用来保存部门该月合计的合同额、已收款以及责任部门
+                        List<IndexKpiCompletByDate> xdbmIndexKpiComplet = projectCostService.getZrbmXdbm(indexKpiParamDto.getBeginDate(), xdbmList);
+                        for (IndexKpiCompletByDate htereceivedXdbm : xdbmIndexKpiComplet){
+                            htereceivedXdbmMap.put(htereceivedXdbm.getDepart(), htereceivedXdbm);
+                        }
+                        return htereceivedXdbmMap;
+                    });
+                    CompletableFuture<Void> future = CompletableFuture.allOf(getHtereceivedZrbmMapFuture,getHtereceivedXdbmMapFuture);
+                    future.join();
+                    Map<String, IndexKpiCompletByDate> htereceivedZrbmMap = getHtereceivedZrbmMapFuture.join();
+                    Map<String, IndexKpiCompletByDate> htereceivedXdbmMap = getHtereceivedXdbmMapFuture.join();
+
+                    CompletableFuture<Void> setKpiDataZrbmList = CompletableFuture.runAsync(() -> {
+                        for (IndexKpiCompletByDate kpiDataZrbm:kpiDataZrbmList) {
+                            IndexKpiCompletByDate htereceivedZrbm = htereceivedZrbmMap.getOrDefault(kpiDataZrbm.getDepart(), kpiDataZrbm);
+                            kpiDataZrbm.setContractAmount(htereceivedZrbm.getContractAmount()); // 合同额
+                            kpiDataZrbm.setReceived(htereceivedZrbm.getReceived()); // 已收款
+
+                            if(kpiDataZrbm.getDepartKpi() != null){
+                                if(kpiDataZrbm.getDepartKpi().equals(BigDecimal.valueOf(0))){
+                                    kpiDataZrbm.setKpiCompletRate(BigDecimal.valueOf(1));
+                                }else{
+                                    kpiDataZrbm.setKpiCompletRate(kpiDataZrbm.getContractAmount().divide(kpiDataZrbm.getDepartKpi(), 2, RoundingMode.HALF_UP));
+                                }
+                            }
+                        }
+                        //责任部门 根据指标进行排序
+                        kpiDataZrbmList.sort(Comparator.comparing(IndexKpiCompletByDate::getKpiCompletRate, Comparator.nullsFirst(BigDecimal::compareTo)).reversed());
+                    });
+
+                    CompletableFuture<Void> setKpiDataXdbmList = CompletableFuture.runAsync(() -> {
+                        for (IndexKpiCompletByDate kpiDataXdbm:kpiDataJycsList) {
+                            IndexKpiCompletByDate htereceivedXdbm = htereceivedXdbmMap.getOrDefault(kpiDataXdbm.getDepart(), kpiDataXdbm);
+                            kpiDataXdbm.setContractAmount(htereceivedXdbm.getContractAmount()); // 合同额
+                            kpiDataXdbm.setReceived(htereceivedXdbm.getReceived()); // 已收款
+
+                            if(kpiDataXdbm.getDepartKpi() != null){
+                                if(kpiDataXdbm.getDepartKpi().equals(BigDecimal.valueOf(0))){
+                                    kpiDataXdbm.setKpiCompletRate(BigDecimal.valueOf(1));
+                                }else{
+                                    kpiDataXdbm.setKpiCompletRate(kpiDataXdbm.getContractAmount().divide(kpiDataXdbm.getDepartKpi(), 2, RoundingMode.HALF_UP));
+                                }
+                            }
+                        }
+                        //责任部门 根据指标进行排序
+                        kpiDataJycsList.sort(Comparator.comparing(IndexKpiCompletByDate::getKpiCompletRate, Comparator.nullsFirst(BigDecimal::compareTo)).reversed());
+                    });
+
+                    CompletableFuture<Void> future1 = CompletableFuture.allOf(setKpiDataZrbmList,setKpiDataXdbmList);
+                    future1.join();
+
+                    indexKpiDataDepart.setZrbmCharts(kpiDataZrbmList);
+                    indexKpiDataDepart.setJycsCharts(kpiDataJycsList);
+                    return indexKpiDataDepart;
+                }
+            }
+
+
+
             //责任部门 获取选择年月的数据  合同额、已收款
             CompletableFuture<Map<String, IndexKpiCompletByDate>> getHtereceivedZrbmMapFuture = CompletableFuture.supplyAsync(() -> {
                 Map<String, IndexKpiCompletByDate> htereceivedZrbmMap = new TreeMap<>();//用来保存部门该月合计的合同额、已收款以及责任部门
@@ -476,6 +629,7 @@ public class IndexKpiServiceImpl implements IndexKpiService {
             Map<String, IndexKpiCompletByDate> htereceivedJycsMap = getHtereceivedJycsMapFuture.join();
             Map<String, IndexKpiCompletByDate> htereceivedJycsLastMap = getHtereceivedJycsLastMapFuture.join();
 
+            // 责任部门 完成度
             CompletableFuture<Void> setKpiDataZrbmList = CompletableFuture.runAsync(() -> {
                 //责任部门列表填充合同额、已收款、完成度
                 for(IndexKpiCompletByDate kpiDataZrbm:kpiDataZrbmList){
@@ -499,13 +653,16 @@ public class IndexKpiServiceImpl implements IndexKpiService {
                 kpiDataZrbmList.sort(Comparator.comparing(IndexKpiCompletByDate::getKpiCompletRate, Comparator.nullsFirst(BigDecimal::compareTo)).reversed());
 //            System.out.println(kpiDataZrbmList);
             });
+
+            //下达部门 完成度
             CompletableFuture<Void> setKpiDataJycsList = CompletableFuture.runAsync(() -> {
                 //下达部门列表填充合同额、已收款、完成度
                 for(IndexKpiCompletByDate kpiDataJycs:kpiDataJycsList){
                     //根据部门找到今年的合同额和已收款
                     IndexKpiCompletByDate htereceivedJycs = htereceivedJycsMap.getOrDefault(kpiDataJycs.getDepart(), kpiDataJycs);
                     IndexKpiCompletByDate htereceivedJycsLast = htereceivedJycsLastMap.getOrDefault(kpiDataJycs.getDepart(), kpiDataJycs);
-                    kpiDataJycs.setContractAmount(htereceivedJycs.getContractAmount().subtract(htereceivedJycsLast.getContractAmount()).setScale(2, RoundingMode.HALF_UP));//合同额
+                    //kpiDataJycs.setContractAmount(htereceivedJycs.getContractAmount().subtract(htereceivedJycsLast.getContractAmount()).setScale(2, RoundingMode.HALF_UP));//合同额
+                    kpiDataJycs.setContractAmount(htereceivedJycs.getContractAmount());//合同额
                     kpiDataJycs.setReceived(htereceivedJycs.getReceived().subtract(htereceivedJycsLast.getReceived()).setScale(2, RoundingMode.HALF_UP));//已收款
 
                     //计算完成度  合同额(是计算的某个月或某个年的合同额 增量)/ 指标

+ 26 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCost/mapper/ProjectCostMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
+import org.jeecg.modules.Index.entity.kpi.IndexKpiCompletByDate;
 import org.jeecg.modules.projectCost.entity.ProjectCost;
 import org.jeecg.modules.projectCost.vo.ProjectCostVO;
 
@@ -43,4 +44,29 @@ public interface ProjectCostMapper extends BaseMapper<ProjectCost> {
     List<String> getTaskNoListByRefTaskNo(@Param("taskNos") List<String> taskNos);
 
     Integer getYzslSumByTaskNos(@Param("taskNos") List<String> taskList);
+
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 查询责任部门 1~9月份 并且项目进度是百分之百的 每个月合同额之和
+    *   date: 2023/11/22
+    */
+    public List<IndexKpiCompletByDate> getZrbmHte(@Param("date") String date, @Param("departList") List<String> departList);
+
+    /**
+     *   author: dzc
+     *   version: 1.0
+     *   des: 查询责任部门 1~9月份 并且项目进度是百分之百的 每个月合同额之和
+     *   date: 2023/11/22
+     */
+    List<IndexKpiCompletByDate> getXdbmHte(String beginDate, List<String> zrbmList);
+
+    /**
+     *   author: dzc
+     *   version: 1.0
+     *   des: 查询责任部门 1~9月份 并且项目进度是百分之百的 合同额之和
+     *   date: 2023/11/22
+     */
+    public List<IndexKpiCompletByDate> getZrbmHteCl(@Param("departList") List<String> departList);
+
 }

+ 73 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCost/mapper/xml/ProjectCostMapper.xml

@@ -63,4 +63,77 @@
         </foreach>
     </select>
 
+    <select id="getZrbmHte" resultType="org.jeecg.modules.Index.entity.kpi.IndexKpiCompletByDate">
+        SELECT
+            zrbm as depart,
+            sum( CASE WHEN contractfpe != 0.00 THEN contractfpe ELSE EstimationCoat END ) as contractAmount,
+            sum(TaskMoney) as received
+        FROM
+            kzks_project_cost
+        WHERE
+                taskno IN (
+                SELECT
+                    taskno
+                FROM
+                    ky_task_info
+                WHERE
+                    zrbm in
+                <foreach item='item' index='index' collection='departList' open='(' separator=',' close=')'>
+                    #{item}
+                </foreach>
+                  AND processPercent = "100"
+                  AND yearmonth = #{date}
+            )
+        group by zrbm
+    </select>
+
+
+    <select id="getXdbmHte" resultType="org.jeecg.modules.Index.entity.kpi.IndexKpiCompletByDate">
+        SELECT
+        jycs as depart,
+        sum( CASE WHEN contractfpe != 0.00 THEN contractfpe ELSE EstimationCoat END ) as contractAmount,
+        sum(TaskMoney) as received
+        FROM
+        kzks_project_cost
+        WHERE
+        taskno IN (
+        SELECT
+        taskno
+        FROM
+        ky_task_info
+        WHERE
+        jycs in
+        <foreach item='item' index='index' collection='departList' open='(' separator=',' close=')'>
+            #{item}
+        </foreach>
+        AND processPercent = "100"
+        AND yearmonth = #{date}
+        )
+        group by jycs
+    </select>
+
+    <select id="getZrbmHteCl" resultType="org.jeecg.modules.Index.entity.kpi.IndexKpiCompletByDate">
+        SELECT
+        zrbm as depart,
+        sum( CASE WHEN contractfpe != 0.00 THEN contractfpe ELSE EstimationCoat END ) as contractAmount,
+        sum(TaskMoney) as received
+        FROM
+        kzks_project_cost
+        WHERE
+        taskno IN (
+        SELECT
+        taskno
+        FROM
+        ky_task_info
+        WHERE
+        zrbm in
+        <foreach item='item' index='index' collection='departList' open='(' separator=',' close=')'>
+            #{item}
+        </foreach>
+        AND processPercent = "100"
+        AND yearmonth >= "2023-01" and yearmonth <![CDATA[ <= ]]> "2023-10"
+        )
+        group by zrbm
+    </select>
+
 </mapper>

+ 28 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCost/service/IProjectCostService.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.Index.entity.kpi.IndexKpiCompletByDate;
 import org.jeecg.modules.projectCost.entity.ProjectCost;
 import org.jeecg.modules.projectCost.entity.ProjectCostCompare;
 import org.jeecg.modules.projectCost.vo.ProjectCostListVO;
@@ -50,4 +52,30 @@ public interface IProjectCostService extends IService<ProjectCost> {
     List<String> getTaskNoListByRefTaskNo(List<String> taskNos);
 
     Integer getYzslSumByTaskNos(List<String> taskList);
+
+    /**
+     *   author: dzc
+     *   version: 1.0
+     *   des: 查询责任部门 1~9月份 并且项目进度是百分之百的 每个月合同额之和
+     *   date: 2023/11/22
+     */
+    public List<IndexKpiCompletByDate> getZrbmHte(String date,List<String> departList);
+
+    /**
+     *   author: dzc
+     *   version: 1.0
+     *   des: 查询责任部门 1~9月份 并且项目进度是百分之百的 每个月合同额之和
+     *   date: 2023/11/22
+     */
+    List<IndexKpiCompletByDate> getZrbmXdbm(String beginDate, List<String> zrbmList);
+
+    /**
+     *   author: dzc
+     *   version: 1.0
+     *   des: 查询责任部门 1~9月份 并且项目进度是百分之百的 合同额之和
+     *   date: 2023/11/22
+     */
+    public List<IndexKpiCompletByDate> getZrbmHteCl(List<String> departList);
+
+
 }

+ 16 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCost/service/impl/ProjectCostServiceImpl.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.Index.entity.kpi.IndexKpiCompletByDate;
 import org.jeecg.modules.dataSourceSwitch.annotation.TargetDataSource;
 import org.jeecg.modules.dataSourceSwitch.enums.DataSourceType;
 import org.jeecg.modules.projectCost.convert.ProjectCostConvert;
@@ -125,4 +126,19 @@ public class ProjectCostServiceImpl extends ServiceImpl<ProjectCostMapper, Proje
     public Integer getYzslSumByTaskNos(List<String> taskList) {
         return projectCostMapper.getYzslSumByTaskNos(taskList);
     }
+
+    @Override
+    public List<IndexKpiCompletByDate> getZrbmHte(String date, List<String> departList) {
+        return projectCostMapper.getZrbmHte(date, departList);
+    }
+
+    @Override
+    public List<IndexKpiCompletByDate> getZrbmXdbm(String beginDate, List<String> zrbmList) {
+        return projectCostMapper.getXdbmHte(beginDate, zrbmList);
+    }
+
+    @Override
+    public List<IndexKpiCompletByDate> getZrbmHteCl(List<String> departList) {
+        return projectCostMapper.getZrbmHteCl(departList);
+    }
 }