Quellcode durchsuchen

[bug-4393]培训看板接口调整

(cherry picked from commit e23f8f6da2766bd1f36dfd1c907d6ce1629963be)
gaozl vor 10 Monaten
Ursprung
Commit
e287e0e1d6

+ 4 - 2
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/business/controller/StatisticController.java

@@ -68,10 +68,12 @@ public class StatisticController extends GenericProvider {
                                                                @NotBlank(message = "统计类型")
                                                        @RequestParam(name = "type", required = false) String type,
                                                                @NotBlank(message = "统计时间")
-                                                       @RequestParam(name = "date", required = true) String date) {
+                                                       @RequestParam(name = "date", required = true) String date,
+                                                               @NotBlank(message = "统计时间")
+                                                               @RequestParam(name = "typeProportion", required = false) String typeProportion) {
         APIResult<List<TrainingDashBoardDTO>> result = new APIResult<>();
         try {
-            List<TrainingDashBoardDTO> labsDashBoard = statisticService.getTrainingDashBoard(dept,type,date);
+            List<TrainingDashBoardDTO> labsDashBoard = statisticService.getTrainingDashBoard(dept,type,date,typeProportion);
             result.setData(labsDashBoard);
         } catch (Exception e) {
             setExceptionResult(result, StateEnum.ILLEGAL_REQUEST.getCode(), I18nUtil.getMessage(StateEnum.ILLEGAL_REQUEST.getCode() + ""), e);

+ 14 - 0
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/business/dto/TrainTypeDto.java

@@ -51,4 +51,18 @@ public class TrainTypeDto {
         this.typeDtoList = finalList;
     }
 
+    public void setTypeDtoListByParams(List<TrainRateDto> typeDtoList, List<TrainRateDto> totalTypeDtoList) {
+        Set<String> existingTypeNames = new HashSet<>();
+        for (TrainRateDto rate : typeDtoList) {
+            existingTypeNames.add(rate.getTypeName());
+        }
+        List<TrainRateDto> finalList = new ArrayList<>(typeDtoList);
+        for (TrainRateDto predefined : totalTypeDtoList) {
+            if (!existingTypeNames.contains(predefined.getTypeName())) {
+                finalList.add(predefined);
+            }
+        }
+        this.typeDtoList = finalList;
+    }
+
 }

+ 1 - 1
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/business/service/StatisticService.java

@@ -12,7 +12,7 @@ public interface StatisticService {
     List<Map<String, Object>> getRiskReport(String riskId, String type);
     List<LabsDashBoardDTO> getLabsDashBoard(String year, String filter);
 
-    List<TrainingDashBoardDTO> getTrainingDashBoard(String dept, String type, String date);
+    List<TrainingDashBoardDTO> getTrainingDashBoard(String dept, String type, String date,String typeProportion);
 
     List<EquipmentDashBoardDTO> getEquipmentDashBoard();
 

+ 16 - 20
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/business/service/impl/StaffTrainServiceImpl.java

@@ -146,17 +146,15 @@ public class StaffTrainServiceImpl implements StaffTrainService {
         List<Map<String,Object>> list = (List<Map<String, Object>>) commonDao.query(sql);
         int total = Integer.parseInt(commonDao.queryOne(talSql).get("total_num").toString());
         objectDto.setObjectTotal(total);
-        if (BeanUtils.isNotEmpty(list)){
-            for (Map<String,Object> map : list){
-                TrainRateBlkDTO rateDto = new TrainRateBlkDTO();
-                String nums = map.get("nums").toString();
-                rateDto.setTypeName(map.get("pei_xun_lei_xing_").toString());
-                rateDto.setTypeNum(nums);
-                rateDto.setRate(getRate(total,Integer.parseInt(nums)));
-                rateDtoList.add(rateDto);
-            }
-            objectDto.setObjectDtoList(rateDtoList);
+        for (Map<String,Object> map : list){
+            TrainRateBlkDTO rateDto = new TrainRateBlkDTO();
+            String nums = map.get("nums").toString();
+            rateDto.setTypeName(map.get("pei_xun_lei_xing_").toString());
+            rateDto.setTypeNum(nums);
+            rateDto.setRate(getRate(total,Integer.parseInt(nums)));
+            rateDtoList.add(rateDto);
         }
+        objectDto.setObjectDtoList(rateDtoList);
         return objectDto;
     }
 
@@ -176,17 +174,15 @@ public class StaffTrainServiceImpl implements StaffTrainService {
         int total = Integer.parseInt(commonDao.queryOne(talSql).get("total_num").toString());
         List<Map<String,Object>> list = (List<Map<String, Object>>) commonDao.query(sql);
         typeDto.setTypeTotal(total);
-        if (BeanUtils.isNotEmpty(list)){
-            for (Map<String,Object> map : list){
-                TrainRateBlkDTO rateDto = new TrainRateBlkDTO();
-                String nums = map.get("nums").toString();
-                rateDto.setTypeName(map.get("pei_xun_lei_bie_").toString());
-                rateDto.setTypeNum(nums);
-                rateDto.setRate(getRate(total,Integer.parseInt(nums)));
-                rateDtoList.add(rateDto);
-            }
-            typeDto.setTypeDtoList(rateDtoList);
+        for (Map<String,Object> map : list){
+            TrainRateBlkDTO rateDto = new TrainRateBlkDTO();
+            String nums = map.get("nums").toString();
+            rateDto.setTypeName(map.get("pei_xun_lei_bie_").toString());
+            rateDto.setTypeNum(nums);
+            rateDto.setRate(getRate(total,Integer.parseInt(nums)));
+            rateDtoList.add(rateDto);
         }
+        typeDto.setTypeDtoList(rateDtoList);
         return typeDto;
     }
 

+ 50 - 43
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/business/service/impl/StatisticServiceImpl.java

@@ -1,6 +1,9 @@
 package com.lc.ibps.business.service.impl;
 
 
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
 import com.lc.ibps.base.core.constants.StringPool;
 import com.lc.ibps.base.core.util.AppUtil;
 import com.lc.ibps.base.core.util.BeanUtils;
@@ -65,7 +68,7 @@ public class StatisticServiceImpl implements StatisticService {
     }
 
     @Override
-    public List<TrainingDashBoardDTO> getTrainingDashBoard(String dept, String types, String dates) {
+    public List<TrainingDashBoardDTO> getTrainingDashBoard(String dept, String types11, String dates,String typeProportion) {
 
         List<TrainingDashBoardDTO> list = new ArrayList<>();
         TrainingDashBoardDTO dashBoardDTO = new TrainingDashBoardDTO();
@@ -137,7 +140,7 @@ public class StatisticServiceImpl implements StatisticService {
         dashBoardDTO.setUserRankList(getUserTrainRank(dept,dateCondition));
 
         // 在岗培训类别占比
-        dashBoardDTO.setTypeDto(getTypeRate(dept,dateCondition));
+        dashBoardDTO.setTypeDto(getTypeRate(dept,dateCondition,typeProportion));
 
         // 在岗培训对象占比
         dashBoardDTO.setObjectDto(getObjectRate(dept,dateCondition));
@@ -190,17 +193,15 @@ public class StatisticServiceImpl implements StatisticService {
         Map<String,Object> sumMap = commonDao.queryOne(talSql);
         int total = Integer.parseInt(sumMap==null?"0":sumMap.get("total").toString());
         externalTrainDTO.setTotal(total);
-        if (BeanUtils.isNotEmpty(list)){
-            for (Map<String,Object> map : list){
-                ExternalTrainTypeDTO rateDto = new ExternalTrainTypeDTO();
-                String nums = map.get("nums").toString();
-                rateDto.setTypeName(map.get("pei_xun_hui_yi_le").toString());
-                rateDto.setTypeNum(nums);
-                rateDto.setRate(getRate(total,Integer.parseInt(nums)));
-                rateDtoList.add(rateDto);
-            }
-            externalTrainDTO.setNdwbpxTypeList(rateDtoList);
+        for (Map<String,Object> map : list){
+            ExternalTrainTypeDTO rateDto = new ExternalTrainTypeDTO();
+            String nums = map.get("nums").toString();
+            rateDto.setTypeName(map.get("pei_xun_hui_yi_le").toString());
+            rateDto.setTypeNum(nums);
+            rateDto.setRate(getRate(total,Integer.parseInt(nums)));
+            rateDtoList.add(rateDto);
         }
+        externalTrainDTO.setNdwbpxTypeList(rateDtoList);
         return externalTrainDTO;
     }
 
@@ -969,24 +970,34 @@ public class StatisticServiceImpl implements StatisticService {
         List<Map<String,Object>> list = (List<Map<String, Object>>) commonDao.query(sql);
         int total = Integer.parseInt(commonDao.queryOne(talSql).get("total_num").toString());
         objectDto.setObjectTotal(total);
-        if (BeanUtils.isNotEmpty(list)){
-            for (Map<String,Object> map : list){
-                TrainRateDto rateDto = new TrainRateDto();
-                String nums = map.get("nums").toString();
-                rateDto.setTypeName(map.get("pei_xun_lei_xing_").toString());
-                rateDto.setTypeNum(nums);
-                rateDto.setRate(getRate(total,Integer.parseInt(nums)));
-                rateDtoList.add(rateDto);
-            }
-            objectDto.setObjectDtoList(rateDtoList);
+        for (Map<String,Object> map : list){
+            TrainRateDto rateDto = new TrainRateDto();
+            String nums = map.get("nums").toString();
+            rateDto.setTypeName(map.get("pei_xun_lei_xing_").toString());
+            rateDto.setTypeNum(nums);
+            rateDto.setRate(getRate(total,Integer.parseInt(nums)));
+            rateDtoList.add(rateDto);
         }
+        objectDto.setObjectDtoList(rateDtoList);
         return objectDto;
     }
 
-    public TrainTypeDto getTypeRate(String dept,String dateCondition){
+    public TrainTypeDto getTypeRate(String dept,String dateCondition,String typeProportion){
         TrainTypeDto typeDto = new TrainTypeDto();
         typeDto.setRemark("在岗培训类别占比");
         List<TrainRateDto> rateDtoList = new ArrayList<>();
+        List<TrainRateDto> totalTypeList = new ArrayList<>();
+        if (BeanUtils.isNotEmpty(typeProportion)){
+            JSONArray jsonArray = JSONUtil.parseArray(typeProportion);
+            for (int i = 0; i < jsonArray.size(); i++) {
+                TrainRateDto rateDto = new TrainRateDto();
+                rateDto.setTypeName(jsonArray.get(i).toString());
+                rateDto.setRate("0.00");
+                rateDto.setTypeNum("0");
+                totalTypeList.add(rateDto);
+            }
+        }
+
         String sql = "select pei_xun_lei_bie_,count(pei_xun_lei_bie_)as nums from t_rypxcjb where " +
                 " shi_fou_guo_shen_='已结束' %s group by pei_xun_lei_bie_";
         String talSql = "select COUNT(*) AS total_num from t_rypxcjb where  shi_fou_guo_shen_='已结束' %s ";
@@ -999,17 +1010,15 @@ public class StatisticServiceImpl implements StatisticService {
         int total = Integer.parseInt(commonDao.queryOne(talSql).get("total_num").toString());
         List<Map<String,Object>> list = (List<Map<String, Object>>) commonDao.query(sql);
         typeDto.setTypeTotal(total);
-        if (BeanUtils.isNotEmpty(list)){
-            for (Map<String,Object> map : list){
-                TrainRateDto rateDto = new TrainRateDto();
-                String nums = map.get("nums").toString();
-                rateDto.setTypeName(map.get("pei_xun_lei_bie_").toString());
-                rateDto.setTypeNum(nums);
-                rateDto.setRate(getRate(total,Integer.parseInt(nums)));
-                rateDtoList.add(rateDto);
-            }
-            typeDto.setTypeDtoList(rateDtoList);
+        for (Map<String,Object> map : list){
+            TrainRateDto rateDto = new TrainRateDto();
+            String nums = map.get("nums").toString();
+            rateDto.setTypeName(map.get("pei_xun_lei_bie_").toString());
+            rateDto.setTypeNum(nums);
+            rateDto.setRate(getRate(total,Integer.parseInt(nums)));
+            rateDtoList.add(rateDto);
         }
+        typeDto.setTypeDtoListByParams(rateDtoList,totalTypeList);
         return typeDto;
     }
 
@@ -1031,17 +1040,15 @@ public class StatisticServiceImpl implements StatisticService {
         Map<String,Object> sumMap = commonDao.queryOne(talSql);
         int total = Integer.parseInt(sumMap==null?"0":sumMap.get("total").toString());
         preWorkDto.setYearPreWorkTotal(total);
-        if (BeanUtils.isNotEmpty(list)){
-            for (Map<String,Object> map : list){
-                TrainRateDto rateDto = new TrainRateDto();
-                String nums = map.get("nums").toString();
-                rateDto.setTypeName(map.get("pei_xun_lei_bie_").toString());
-                rateDto.setTypeNum(nums);
-                rateDto.setRate(getRate(total,Integer.parseInt(nums)));
-                rateDtoList.add(rateDto);
-            }
-            preWorkDto.setYearProWorkDtoList(rateDtoList);
+        for (Map<String,Object> map : list){
+            TrainRateDto rateDto = new TrainRateDto();
+            String nums = map.get("nums").toString();
+            rateDto.setTypeName(map.get("pei_xun_lei_bie_").toString());
+            rateDto.setTypeNum(nums);
+            rateDto.setRate(getRate(total,Integer.parseInt(nums)));
+            rateDtoList.add(rateDto);
         }
+        preWorkDto.setYearProWorkDtoList(rateDtoList);
         return preWorkDto;
     }