丁治程 10 місяців тому
батько
коміт
aeb70cd366

+ 26 - 5
module_kzks/src/main/java/org/jeecg/modules/Index/controller/IndexController.java

@@ -394,7 +394,7 @@ public class IndexController {
     }
 
     @ApiOperation(value="首页三层指标排行——查询责任部门当期完成额")
-    @RequestMapping(value = "/getZrbmDepartKpiDetail")
+    @GetMapping(value = "/getZrbmDepartKpiDetail")
     public Result<IPage<IndexKpiDetail>> getZrbmDepartKpiDetail(IndexKpiParamDto indexKpiParamDto,@RequestParam(required = false) String departName, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest request) {
         Page<IndexKpiDetail> page = new Page<IndexKpiDetail>(pageNo, pageSize);
         List<IndexKpiDetail> pageList = indexNewServer.getZrbmDepartKpiDetailList(page, request, indexKpiParamDto,departName);
@@ -402,8 +402,15 @@ public class IndexController {
         return Result.OK(page);
     }
 
-    @ApiOperation(value="首页三层指标排行——查询责任部门当期完成额")
-    @RequestMapping(value = "/getXdbmHteDepartKpiDetail")
+    @ApiOperation(value="首页三层导出责任部门当期完成额的详情excel")
+    @RequestMapping(value = "/exportZrbmDepartKpiXls")
+    public ModelAndView exportZrbmDepartKpiDetail(IndexKpiParamDto indexKpiParamDto,@RequestParam(required = false) String departName) {
+        List<IndexKpiDetail> list = indexNewServer.getZrbmDepartKpiDetailListAll(indexKpiParamDto, departName);
+        return indexNewServer.exportZrbmDetailExcel(list,IndexKpiDetail.class,"责任部门当期完成额");
+    }
+
+    @ApiOperation(value="首页三层指标排行——查询下达部门当期合同额")
+    @GetMapping(value = "/getXdbmHteDepartKpiDetail")
     public Result<IPage<ComContractInfoExchangeNewHTEVO>> getXdbmHteDepartKpiDetail(IndexKpiParamDto indexKpiParamDto,@RequestParam(required = false) String departName, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest request) {
         Page<ComContractInfoExchangeNewHTEVO> page = new Page<ComContractInfoExchangeNewHTEVO>(pageNo, pageSize);
         List<ComContractInfoExchangeNewHTEVO> pageList = indexNewServer.getXdbmHteDepartKpiDetailList(page, request,indexKpiParamDto, departName);
@@ -411,12 +418,26 @@ public class IndexController {
         return Result.OK(page);
     }
 
-    @ApiOperation(value="首页三层指标排行——查询责任部门当期完成额")
-    @RequestMapping(value = "/getXdbmYskDepartKpiDetail")
+    @ApiOperation(value="首页三层导出下达部门当期合同额的详情excel")
+    @RequestMapping(value = "/exportXdbmHteDepartKpiXls")
+    public ModelAndView exportXdbmHteDepartKpiDetail(IndexKpiParamDto indexKpiParamDto,@RequestParam(required = false) String departName) {
+        List<ComContractInfoExchangeNewHTEVO> list = indexNewServer.getXdbmhteDepartKpiDetailListAll(indexKpiParamDto, departName);
+        return indexNewServer.exportXdbmHteDetailExcel(list,ComContractInfoExchangeNewHTEVO.class,"下达部门当期合同额");
+    }
+
+    @ApiOperation(value="首页三层指标排行——查询下达部门当期已收款")
+    @GetMapping(value = "/getXdbmYskDepartKpiDetail")
     public Result<IPage<ComContractInfoExchangeNewYSKVO>> getXdbmYskDepartKpiDetail(IndexKpiParamDto indexKpiParamDto,@RequestParam(required = false) String departName, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest request) {
         Page<ComContractInfoExchangeNewYSKVO> page = new Page<ComContractInfoExchangeNewYSKVO>(pageNo, pageSize);
         List<ComContractInfoExchangeNewYSKVO> pageList = indexNewServer.getXdbmYskDepartKpiDetailList(page, request,indexKpiParamDto, departName);
         page.setRecords(pageList);
         return Result.OK(page);
     }
+
+    @ApiOperation(value="首页三层导出下达部门当期已收款的详情excel")
+    @RequestMapping(value = "/exportXdbmYskDepartKpiXls")
+    public ModelAndView exportXdbmYskDepartKpiDetail(IndexKpiParamDto indexKpiParamDto,@RequestParam(required = false) String departName) {
+        List<ComContractInfoExchangeNewYSKVO> list = indexNewServer.getXdbmyskDepartKpiDetailListAll(indexKpiParamDto, departName);
+        return indexNewServer.exportXdbmYskDetailExcel(list,ComContractInfoExchangeNewYSKVO.class,"下达部门当期已收款");
+    }
 }

+ 9 - 3
module_kzks/src/main/java/org/jeecg/modules/Index/mapper/IndexKpiMapper.java

@@ -1,5 +1,6 @@
 package org.jeecg.modules.Index.mapper;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
@@ -62,9 +63,14 @@ public interface IndexKpiMapper {
 
     List<IndexKpiCompletByDate> getHteReceivedZrbmSelectYm(@Param("finalDateYm") String finalDateYm,@Param("finalDateLastYm") String finalDateLastYm,@Param("departList") List<String> zrbmList);
 
-    List<IndexKpiDetail> getHteReceivedZrbmSelectYmDetail(@Param("dateYm") String dateYm,@Param("dateLastYm") String dateLastYm,@Param("departName") String departName);
+    List<IndexKpiDetail> getHteReceivedZrbmSelectYmDetail(Page<IndexKpiDetail> page,@Param("dateYm") String dateYm, @Param("dateLastYm") String dateLastYm, @Param("departName") String departName);
 
-    List<IndexKpiDetail> getFinallNumDetailList(@Param("dateLastYm") String dateLastYm,@Param("departName") String departName);
+    List<IndexKpiDetail> getFinallNumDetailList(Page<IndexKpiDetail> page,@Param("dateLastYm") String dateLastYm,@Param("departName") String departName);
 
-    List<IndexKpiDetail> getNewNumDetailList(@Param("dateLastYm") String dateLastYm,@Param("departName") String departName);
+    List<IndexKpiDetail> getNewNumDetailList(Page<IndexKpiDetail> page,@Param("dateLastYm") String dateLastYm,@Param("departName") String departName);
+    List<IndexKpiDetail> getFinalNewNumDetailList(Page<IndexKpiDetail> page,@Param("dateLastYm") String dateLastYm,@Param("departName") String departName);
+
+    List<IndexKpiDetail> getFinalNewNumDetailListAll(@Param("dateLastYm") String dateLastYm,@Param("departName") String departName);
+
+    List<IndexKpiDetail> getHteReceivedZrbmSelectYmDetailAll(@Param("dateYm") String dateYm, @Param("dateLastYm") String dateLastYm, @Param("departName") String departName);
 }

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

@@ -180,6 +180,60 @@
         on k.taskno = m.taskno
         where k.status != '1' and k.zrbm = #{departName}
         and m.ym = #{dateLastYm}
-        ) group by zrbm
+        )
+    </select>
+
+    <select id="getFinalNewNumDetailList" resultType="org.jeecg.modules.Index.entity.kpi.IndexKpiDetail">
+        select taskno,taskname, zrbm as depart, contractfpe as hte,EstimationCoat as ygj, processPercent as nowjd,0 as lastjd,processPercent as newjd,TaskMoney as ysk
+        from kzks_project_cost
+        where status != '1' and zrbm = #{departName}
+        and taskno not in (
+            select k.taskno
+            from kzks_project_cost k
+            left join kzks_kpi_project_month m
+            on k.taskno = m.taskno
+            where k.status != '1' and k.zrbm = #{departName}
+          and m.ym = #{dateLastYm}
+        )
+        UNION
+        select k.taskno as taskno,k.taskname as taskname, k.zrbm as depart, k.contractfpe as hte, k.EstimationCoat as ygj,k.processPercent as nowjd,m.processPercent as lastjd,(CASE WHEN IFNULL((k.processPercent-m.processPercent)/100,0) <![CDATA[ < ]]> 0 THEN (k.processPercent-m.processPercent) = 0 ELSE IFNULL((k.processPercent-m.processPercent)/100,0) END) as newJd,k.TaskMoney as ysk
+        from kzks_project_cost k
+        left join kzks_kpi_project_month m on k.taskno = m.taskno
+        where k.status != '1' and k.zrbm = #{departName}
+        and m.ym =#{dateLastYm}
+    </select>
+
+    <select id="getFinalNewNumDetailListAll" resultType="org.jeecg.modules.Index.entity.kpi.IndexKpiDetail">
+        select taskno,taskname, zrbm as depart, contractfpe as hte,EstimationCoat as ygj, processPercent as nowjd,0 as lastjd,processPercent as newjd,TaskMoney as ysk
+        from kzks_project_cost
+        where status != '1' and zrbm = #{departName}
+          and taskno not in (
+            select k.taskno
+            from kzks_project_cost k
+            left join kzks_kpi_project_month m
+            on k.taskno = m.taskno
+            where k.status != '1' and k.zrbm = #{departName}
+          and m.ym = #{dateLastYm}
+            )
+        UNION
+        select k.taskno as taskno,k.taskname as taskname, k.zrbm as depart, k.contractfpe as hte, k.EstimationCoat as ygj,k.processPercent as nowjd,m.processPercent as lastjd,(CASE WHEN IFNULL((k.processPercent-m.processPercent)/100,0) <![CDATA[ < ]]> 0 THEN (k.processPercent-m.processPercent) = 0 ELSE IFNULL((k.processPercent-m.processPercent)/100,0) END) as newJd,k.TaskMoney as ysk
+        from kzks_project_cost k
+                 left join kzks_kpi_project_month m on k.taskno = m.taskno
+        where k.status != '1' and k.zrbm = #{departName}
+          and m.ym =#{dateLastYm}
+    </select>
+
+    <select id="getHteReceivedZrbmSelectYmDetailAll" resultType="org.jeecg.modules.Index.entity.kpi.IndexKpiDetail">
+        select k.taskno as taskno, k.taskname as taskname, k.zrbm as depart, k.contractfpe as hte, k.EstimationCoat as ygj,m.nowjd as nowjd,m.lastjd as lastjd,(CASE WHEN IFNULL((m.nowjd-m.lastjd)/100,0) <![CDATA[ < ]]> 0 THEN (m.nowjd-m.lastjd) = 0 ELSE IFNULL((m.nowjd-m.lastjd)/100,0) END) as newJd,k.TaskMoney as ysk
+        from kzks_project_cost k
+                 left join
+             (select km.taskno, km.newprocessPercent AS nowjd,IFNULL(kt.newprocessPercent,0) as lastjd
+              from
+                  (select zrbm,taskno, IFNULL(processPercent,0) AS newprocessPercent from kzks_kpi_project_month where ym = #{dateYm}) km
+                      left join
+                  (select taskno, IFNULL(processPercent,0) AS newprocessPercent from kzks_kpi_project_month where ym = #{dateLastYm}) kt on km.taskno = kt.taskno
+              where km.zrbm = #{departName}
+             ) m on k.taskno = m.taskno
+        where k.status != '1' and k.zrbm = #{departName}
     </select>
 </mapper>

+ 14 - 0
module_kzks/src/main/java/org/jeecg/modules/Index/service/IndexNewServer.java

@@ -16,6 +16,8 @@ import org.jeecg.modules.projectChbZjf.entity.ProjectChbZjf;
 import org.jeecg.modules.projectChbZyf.entity.ProjectChbZyf;
 import org.jeecg.modules.wzOutboundOrderBNew.entity.WzOutboundOrderBNew;
 import org.jeecg.modules.xmcbDetail.entity.ComContractInfoExchange;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.List;
@@ -72,4 +74,16 @@ public interface IndexNewServer {
     List<ComContractInfoExchangeNewHTEVO> getXdbmHteDepartKpiDetailList(Page<ComContractInfoExchangeNewHTEVO> page, HttpServletRequest request, IndexKpiParamDto indexKpiParamDto, String departName);
 
     List<ComContractInfoExchangeNewYSKVO> getXdbmYskDepartKpiDetailList(Page<ComContractInfoExchangeNewYSKVO> page, HttpServletRequest request, IndexKpiParamDto indexKpiParamDto, String departName);
+
+    List<IndexKpiDetail> getZrbmDepartKpiDetailListAll(IndexKpiParamDto indexKpiParamDto,String departName);
+
+    ModelAndView exportZrbmDetailExcel(List<IndexKpiDetail> list, Class<IndexKpiDetail> clazz, String title);
+
+    List<ComContractInfoExchangeNewHTEVO> getXdbmhteDepartKpiDetailListAll(IndexKpiParamDto indexKpiParamDto, String departName);
+
+    ModelAndView exportXdbmHteDetailExcel(List<ComContractInfoExchangeNewHTEVO> list, Class<ComContractInfoExchangeNewHTEVO> clazz, String title);
+
+    List<ComContractInfoExchangeNewYSKVO> getXdbmyskDepartKpiDetailListAll(IndexKpiParamDto indexKpiParamDto, String departName);
+
+    ModelAndView exportXdbmYskDetailExcel(List<ComContractInfoExchangeNewYSKVO> list, Class<ComContractInfoExchangeNewYSKVO> clzz, String title);
 }

+ 175 - 26
module_kzks/src/main/java/org/jeecg/modules/Index/service/impl/IndexNewServiceImpl.java

@@ -1,10 +1,12 @@
 package org.jeecg.modules.Index.service.impl;
 
 import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.EasyExcelFactory;
 import com.alibaba.excel.ExcelWriter;
 import com.alibaba.excel.write.builder.ExcelWriterBuilder;
 import com.alibaba.excel.write.metadata.WriteSheet;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.system.api.ISysBaseAPI;
 import org.jeecg.common.system.util.JwtUtil;
 import org.jeecg.common.system.vo.LoginUser;
@@ -55,8 +57,14 @@ import org.jeecg.modules.wzOutboundOrderBNew.mapper.WzOutboundOrderBNewMapper;
 import org.jeecg.modules.wzOutboundOrderBNew.service.IWzOutboundOrderBNewService;
 import org.jeecg.modules.xmcbDetail.entity.ComContractInfoExchange;
 import org.jeecg.modules.xmcbDetail.mapper.ComContractInfoExchangeMapper;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
 import java.nio.file.Path;
@@ -185,6 +193,9 @@ public class IndexNewServiceImpl implements IndexNewServer {
     private IndexKpiMapper indexKpiMapper;
 
 
+    @Value("${jeecg.path.upload}")
+    private String upLoadPath;
+
     private static final String YEAR = "year";
 
     private static final String MONTH = "month";
@@ -205,7 +216,12 @@ public class IndexNewServiceImpl implements IndexNewServer {
         instance.setTime(new Date());
         setZeroMonth(instance);
         Date currentMothBginDate = instance.getTime();
-        instance.add(Calendar.MONTH, 1);
+        instance.setTime(new Date());
+        instance.add(Calendar.DAY_OF_MONTH,1);
+        instance.set(Calendar.HOUR_OF_DAY, 0);
+        instance.set(Calendar.MINUTE, 0);
+        instance.set(Calendar.SECOND, 0);
+        instance.set(Calendar.MILLISECOND, 0);
         Date currentMothEndDate = instance.getTime();
 
         if (AuthMark.DEPT_LEADER.equals(role)) {
@@ -262,7 +278,12 @@ public class IndexNewServiceImpl implements IndexNewServer {
         instance.setTime(new Date());
         setZeroMonth(instance);
         Date currentMothBginDate = instance.getTime();
-        instance.add(Calendar.MONTH, 1);
+        instance.setTime(new Date());
+        instance.add(Calendar.DAY_OF_MONTH,1);
+        instance.set(Calendar.HOUR_OF_DAY, 0);
+        instance.set(Calendar.MINUTE, 0);
+        instance.set(Calendar.SECOND, 0);
+        instance.set(Calendar.MILLISECOND, 0);
         Date currentMothEndDate = instance.getTime();
 
         if (AuthMark.DEPT_LEADER.equals(role)) {
@@ -320,7 +341,12 @@ public class IndexNewServiceImpl implements IndexNewServer {
         instance.setTime(new Date());
         setZeroMonth(instance);
         Date currentMothBginDate = instance.getTime();
-        instance.add(Calendar.MONTH, 1);
+        instance.setTime(new Date());
+        instance.add(Calendar.DAY_OF_MONTH,1);
+        instance.set(Calendar.HOUR_OF_DAY, 0);
+        instance.set(Calendar.MINUTE, 0);
+        instance.set(Calendar.SECOND, 0);
+        instance.set(Calendar.MILLISECOND, 0);
         Date currentMothEndDate = instance.getTime();
 
         if (AuthMark.DEPT_LEADER.equals(role)) {
@@ -377,7 +403,12 @@ public class IndexNewServiceImpl implements IndexNewServer {
         instance.setTime(new Date());
         setZeroMonth(instance);
         Date currentMothBginDate = instance.getTime();
-        instance.add(Calendar.MONTH, 1);
+        instance.setTime(new Date());
+        instance.add(Calendar.DAY_OF_MONTH,1);
+        instance.set(Calendar.HOUR_OF_DAY, 0);
+        instance.set(Calendar.MINUTE, 0);
+        instance.set(Calendar.SECOND, 0);
+        instance.set(Calendar.MILLISECOND, 0);
         Date currentMothEndDate = instance.getTime();
 
         if (AuthMark.DEPT_LEADER.equals(role)) {
@@ -929,17 +960,17 @@ public class IndexNewServiceImpl implements IndexNewServer {
 
     private void exprotExcel(List<WzOutboundOrderBNewExport> wzList, List<ProjectChbZyfExpoet> zyfList, List<ProjectChbZyfExpoet> swfList, List<ProjectChbZyfExpoet> wxfList, List<ProjectChbZyfExpoet> rdfList, List<ProjectChbZyfExpoet> zjfList, List<ProjectChbZyfExpoet> rgfList, List<ProjectChbZyfExpoet> glfList, List<ProjectChbZyfExpoet> sxfList) {
         // 创建ExcelWriter并添加Sheet
-        ExcelWriter writer = EasyExcel.write("D:/桌面/可知可视相关/成本额详情.xlsx").build();
-
-        WriteSheet sheet1 = EasyExcel.writerSheet(0,"材料费").head(WzOutboundOrderBNewExport.class).build();
-        WriteSheet sheet2 = EasyExcel.writerSheet(1,"专用费").head(ProjectChbZyfExpoet.class).build();
-        WriteSheet sheet3 = EasyExcel.writerSheet(2,"事务费").head(ProjectChbZyfExpoet.class).build();
-        WriteSheet sheet4 = EasyExcel.writerSheet(3,"外协费").head(ProjectChbZyfExpoet.class).build();
-        WriteSheet sheet5 = EasyExcel.writerSheet(4,"燃料动力费").head(ProjectChbZyfExpoet.class).build();
-        WriteSheet sheet6 = EasyExcel.writerSheet(5,"固定资产折旧费").head(ProjectChbZyfExpoet.class).build();
-        WriteSheet sheet7 = EasyExcel.writerSheet(6,"工资及劳务费").head(ProjectChbZyfExpoet.class).build();
-        WriteSheet sheet8 = EasyExcel.writerSheet(7,"管理费").head(ProjectChbZyfExpoet.class).build();
-        WriteSheet sheet9 = EasyExcel.writerSheet(8,"筛选费").head(ProjectChbZyfExpoet.class).build();
+        ExcelWriter writer = EasyExcelFactory.write("D:/桌面/可知可视相关/成本额详情.xlsx").build();
+
+        WriteSheet sheet1 = EasyExcelFactory.writerSheet(0,"材料费").head(WzOutboundOrderBNewExport.class).build();
+        WriteSheet sheet2 = EasyExcelFactory.writerSheet(1,"专用费").head(ProjectChbZyfExpoet.class).build();
+        WriteSheet sheet3 = EasyExcelFactory.writerSheet(2,"事务费").head(ProjectChbZyfExpoet.class).build();
+        WriteSheet sheet4 = EasyExcelFactory.writerSheet(3,"外协费").head(ProjectChbZyfExpoet.class).build();
+        WriteSheet sheet5 = EasyExcelFactory.writerSheet(4,"燃料动力费").head(ProjectChbZyfExpoet.class).build();
+        WriteSheet sheet6 = EasyExcelFactory.writerSheet(5,"固定资产折旧费").head(ProjectChbZyfExpoet.class).build();
+        WriteSheet sheet7 = EasyExcelFactory.writerSheet(6,"工资及劳务费").head(ProjectChbZyfExpoet.class).build();
+        WriteSheet sheet8 = EasyExcelFactory.writerSheet(7,"管理费").head(ProjectChbZyfExpoet.class).build();
+        WriteSheet sheet9 = EasyExcelFactory.writerSheet(8,"筛选费").head(ProjectChbZyfExpoet.class).build();
 
         writer.write(wzList,sheet1);
         writer.write(zyfList,sheet2);
@@ -994,16 +1025,23 @@ public class IndexNewServiceImpl implements IndexNewServer {
         String finalDateLastYm = dateLastYm;
 
         if (finalIsCurrentDate){
-            CompletableFuture<List<IndexKpiDetail>> getList1Future = CompletableFuture.supplyAsync(() -> indexKpiMapper.getFinallNumDetailList(finalDateLastYm,departName));
-            CompletableFuture<List<IndexKpiDetail>> getList2Future = CompletableFuture.supplyAsync(() -> indexKpiMapper.getNewNumDetailList(finalDateLastYm,departName));
-            CompletableFuture<Void> future = CompletableFuture.allOf(getList1Future,getList2Future);
-            future.join();
-            List<IndexKpiDetail> list1 = getList1Future.join();
-            List<IndexKpiDetail> list2 = getList2Future.join();
-            detailList.addAll(list1);
-            detailList.addAll(list2);
+            //CompletableFuture<List<IndexKpiDetail>> getList1Future = CompletableFuture.supplyAsync(() -> indexKpiMapper.getFinallNumDetailList(page,finalDateLastYm,departName));
+            //CompletableFuture<List<IndexKpiDetail>> getList2Future = CompletableFuture.supplyAsync(() -> indexKpiMapper.getNewNumDetailList(page,finalDateLastYm,departName));
+            //CompletableFuture<Void> future = CompletableFuture.allOf(getList1Future,getList2Future);
+            //future.join();
+            //List<IndexKpiDetail> list1 = getList1Future.join();
+            //List<IndexKpiDetail> list2 = getList2Future.join();
+            //detailList.clear();
+            //if (list1.size() > 0 && list1.get(0) != null) {
+            //    detailList.addAll(list1);
+            //}
+            //if (list2.size() > 0 && list2.get(0) != null) {
+            //    detailList.addAll(list2);
+            //}
+            detailList = indexKpiMapper.getFinalNewNumDetailList(page,finalDateLastYm,departName);
+
         }else {
-            detailList = indexKpiMapper.getHteReceivedZrbmSelectYmDetail(finalDateYm,finalDateLastYm,departName);
+            detailList = indexKpiMapper.getHteReceivedZrbmSelectYmDetail(page,finalDateYm,finalDateLastYm,departName);
         }
 
         return detailList;
@@ -1013,14 +1051,125 @@ public class IndexNewServiceImpl implements IndexNewServer {
     public List<ComContractInfoExchangeNewHTEVO> getXdbmHteDepartKpiDetailList(Page<ComContractInfoExchangeNewHTEVO> page, HttpServletRequest request, IndexKpiParamDto indexKpiParamDto, String departName) {
         // 查询的时间
         String selectDate = indexKpiParamDto.getBeginDate();
-        return exchangeNewMapper.getXdbmHteDetail(selectDate,departName);
+        return exchangeNewMapper.getXdbmHteDetail(page,selectDate,departName);
     }
 
     @Override
     public List<ComContractInfoExchangeNewYSKVO> getXdbmYskDepartKpiDetailList(Page<ComContractInfoExchangeNewYSKVO> page, HttpServletRequest request, IndexKpiParamDto indexKpiParamDto, String departName) {
         // 查询的时间
         String selectDate = indexKpiParamDto.getBeginDate();
-        return exchangeNewMapper.getXdbmYskDetail(selectDate,departName);
+        return exchangeNewMapper.getXdbmYskDetail(page,selectDate,departName);
+    }
+
+    @Override
+    public List<IndexKpiDetail> getZrbmDepartKpiDetailListAll(IndexKpiParamDto indexKpiParamDto,String departName) {
+        List<IndexKpiDetail> detailList = new ArrayList<>();
+        // 查询的类型 (按年/按月)
+        String type = indexKpiParamDto.getTime();
+        // 查询的时间
+        String selectDate = indexKpiParamDto.getBeginDate();
+        // 当前系统时间
+        LocalDate currentDate = LocalDate.now();
+        // 当前年
+        int currentYear = currentDate.getYear();
+        //当前年月
+        String currentYm = String.format("%d-%02d", currentYear, currentDate.getMonthValue());
+        //用来存放要看的年末或月末的年月日期  上一年末或上一月末的日期
+        String dateYm = "";
+        String dateLastYm = "";
+        boolean isCurrentDate = true;//是否是当年或当月,当年或当月要从项目成本表中获取数据
+
+        try {
+            if ("year".equals(type)){
+                isCurrentDate = String.valueOf(currentYear).equals(selectDate);
+                if (isCurrentDate){
+                    dateYm = getCurronMonthString(currentYm);
+                }else{
+                    dateYm = String.format("%s-%d", Integer.parseInt(selectDate), 12);
+                }
+                dateLastYm = String.format("%d-%d", Integer.parseInt(selectDate)-1, 12);
+            }else if ("month".equals(type)){
+                isCurrentDate = currentYm.equals(selectDate);
+                dateYm = getCurronMonthString(selectDate);
+                dateLastYm = getLastMonthString(selectDate);
+            }
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        boolean finalIsCurrentDate = isCurrentDate;
+        String finalDateYm = dateYm;
+        String finalDateLastYm = dateLastYm;
+
+        if (finalIsCurrentDate){
+            detailList = indexKpiMapper.getFinalNewNumDetailListAll(finalDateLastYm,departName);
+
+        }else {
+            detailList = indexKpiMapper.getHteReceivedZrbmSelectYmDetailAll(finalDateYm,finalDateLastYm,departName);
+        }
+        return detailList;
+    }
+
+    @Override
+    public ModelAndView exportZrbmDetailExcel(List<IndexKpiDetail> list, Class<IndexKpiDetail> clazz, String title) {
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        // Step.3 AutoPoi 导出Excel
+        ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+        //此处设置的filename无效 ,前端会重更新设置一下
+        mv.addObject(NormalExcelConstants.FILE_NAME, title);
+        mv.addObject(NormalExcelConstants.CLASS, IndexKpiDetail.class);
+        //update-begin--Author:liusq  Date:20210126 for:图片导出报错,ImageBasePath未设置--------------------
+        ExportParams exportParams=new ExportParams(title + "报表", "导出人:" + sysUser.getRealname(), title);
+        exportParams.setImageBasePath(upLoadPath);
+        //update-end--Author:liusq  Date:20210126 for:图片导出报错,ImageBasePath未设置----------------------
+        mv.addObject(NormalExcelConstants.PARAMS,exportParams);
+        mv.addObject(NormalExcelConstants.DATA_LIST, list);
+        return mv;
+    }
+
+    @Override
+    public List<ComContractInfoExchangeNewHTEVO> getXdbmhteDepartKpiDetailListAll(IndexKpiParamDto indexKpiParamDto, String departName) {
+        String selectDate = indexKpiParamDto.getBeginDate();
+        return exchangeNewMapper.getXdbmHteDetailAll(selectDate,departName);
+    }
+
+    @Override
+    public ModelAndView exportXdbmHteDetailExcel(List<ComContractInfoExchangeNewHTEVO> list, Class<ComContractInfoExchangeNewHTEVO> clazz, String title) {
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        // Step.3 AutoPoi 导出Excel
+        ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+        //此处设置的filename无效 ,前端会重更新设置一下
+        mv.addObject(NormalExcelConstants.FILE_NAME, title);
+        mv.addObject(NormalExcelConstants.CLASS, IndexKpiDetail.class);
+        //update-begin--Author:liusq  Date:20210126 for:图片导出报错,ImageBasePath未设置--------------------
+        ExportParams exportParams=new ExportParams(title + "报表", "导出人:" + sysUser.getRealname(), title);
+        exportParams.setImageBasePath(upLoadPath);
+        //update-end--Author:liusq  Date:20210126 for:图片导出报错,ImageBasePath未设置----------------------
+        mv.addObject(NormalExcelConstants.PARAMS,exportParams);
+        mv.addObject(NormalExcelConstants.DATA_LIST, list);
+        return mv;
+    }
+
+    @Override
+    public List<ComContractInfoExchangeNewYSKVO> getXdbmyskDepartKpiDetailListAll(IndexKpiParamDto indexKpiParamDto, String departName) {
+        String selectDate = indexKpiParamDto.getBeginDate();
+        return exchangeNewMapper.getXdbmYskDetailAll(selectDate,departName);
+    }
+
+    @Override
+    public ModelAndView exportXdbmYskDetailExcel(List<ComContractInfoExchangeNewYSKVO> list, Class<ComContractInfoExchangeNewYSKVO> clzz, String title) {
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        // Step.3 AutoPoi 导出Excel
+        ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+        //此处设置的filename无效 ,前端会重更新设置一下
+        mv.addObject(NormalExcelConstants.FILE_NAME, title);
+        mv.addObject(NormalExcelConstants.CLASS, IndexKpiDetail.class);
+        //update-begin--Author:liusq  Date:20210126 for:图片导出报错,ImageBasePath未设置--------------------
+        ExportParams exportParams=new ExportParams(title + "报表", "导出人:" + sysUser.getRealname(), title);
+        exportParams.setImageBasePath(upLoadPath);
+        //update-end--Author:liusq  Date:20210126 for:图片导出报错,ImageBasePath未设置----------------------
+        mv.addObject(NormalExcelConstants.PARAMS,exportParams);
+        mv.addObject(NormalExcelConstants.DATA_LIST, list);
+        return mv;
     }
 
     public void setZeroMonth(Calendar instance) {

+ 6 - 2
module_kzks/src/main/java/org/jeecg/modules/comContractInfoExchangeNew/mapper/ComContractInfoExchangeNewMapper.java

@@ -121,7 +121,11 @@ public interface ComContractInfoExchangeNewMapper extends BaseMapper<ComContract
     List<ComContractInfoExchangeNewYSKVO> getReceivedDetailByTasknoListAndByQsrqRangeNew1(@Param("tasknoList") List<String> tasknoList, @Param("beginDate") Date beginDate, @Param("endDate") Date endDate);
     List<ComContractInfoExchangeNewYSKVO> getReceivedDetailByTasknoListAndByQsrqRangeIfBossNew1(@Param("tasknoList") List<String> tasknoList, @Param("beginDate") Date beginDate, @Param("endDate") Date endDate);
 
-    List<ComContractInfoExchangeNewHTEVO> getXdbmHteDetail(@Param("selectDate") String selectDate,@Param("departName") String departName);
+    List<ComContractInfoExchangeNewHTEVO> getXdbmHteDetail(Page<ComContractInfoExchangeNewHTEVO> page,@Param("selectDate") String selectDate,@Param("departName") String departName);
+
+    List<ComContractInfoExchangeNewYSKVO> getXdbmYskDetail(Page<ComContractInfoExchangeNewYSKVO> page,@Param("selectDate") String selectDate,@Param("departName") String departName);
+
+    List<ComContractInfoExchangeNewHTEVO> getXdbmHteDetailAll(@Param("selectDate") String selectDate,@Param("departName") String departName);
+    List<ComContractInfoExchangeNewYSKVO> getXdbmYskDetailAll(@Param("selectDate") String selectDate,@Param("departName") String departName);
 
-    List<ComContractInfoExchangeNewYSKVO> getXdbmYskDetail(@Param("selectDate") String selectDate,@Param("departName") String departName);
 }

+ 30 - 4
module_kzks/src/main/java/org/jeecg/modules/comContractInfoExchangeNew/mapper/xml/ComContractInfoExchangeNewMapper.xml

@@ -462,8 +462,6 @@
         WHERE
         c.sjly = '20'
         AND qsrq LIKE CONCAT(#{selectDate},'%')
-        GROUP BY
-        k.jycs
     </select>
 
     <select id="getXdbmYskDetail" resultType="org.jeecg.modules.comContractInfoExchangeNew.entity.ComContractInfoExchangeNewYSKVO">
@@ -477,8 +475,36 @@
         WHERE
         c.sjly = '40'
         AND dkhpdqrq LIKE  CONCAT(#{selectDate},'%')
-        GROUP BY
-        k.jycs
+    </select>
+
+
+    <select id="getXdbmHteDetailAll" resultType="org.jeecg.modules.comContractInfoExchangeNew.entity.ComContractInfoExchangeNewHTEVO">
+        SELECT id,serialno,htid,zhtbh,htbh,htname,qsrq,jf,jfjc,htje,zc,htdk,htdsk,htykp,htdkp,rwbh,rwname,
+               cpxh,jd,yzbm,rwyingsk,rwyisk,fptypeone,fpjeone,ykpeone,fptypetwo,fpjetwo,ykpetwo,htzgbm,ywy,htlxqk,
+               htztsm,skdh,zxzt,fkfmc,yhjc,httype,xh,sl,bm,skzje,rwskje,dkhpdqrq,sktype,skkmdm,pzh,ywbm,lrr,lrrq,jylsh,jyid,
+               hph,hpid,skdw,sjly
+        FROM
+            com_contract_info_exchange_new c
+                INNER JOIN
+            (
+                SELECT taskno, jycs FROM ky_task_info_new WHERE jycs = #{departName}
+            ) k ON c.rwbh = k.taskno
+        WHERE
+            c.sjly = '20'
+          AND qsrq LIKE CONCAT(#{selectDate},'%')
+    </select>
+
+    <select id="getXdbmYskDetailAll" resultType="org.jeecg.modules.comContractInfoExchangeNew.entity.ComContractInfoExchangeNewYSKVO">
+        SELECT *
+        FROM
+            com_contract_info_exchange_new c
+                INNER JOIN
+            (
+                SELECT taskno, jycs FROM ky_task_info_new WHERE jycs = #{departName}
+            ) k ON c.rwbh = k.taskno
+        WHERE
+            c.sjly = '40'
+          AND dkhpdqrq LIKE  CONCAT(#{selectDate},'%')
     </select>
 
 </mapper>