Explorar o código

Merge remote-tracking branch 'origin/matser' into matser

Li Yuan hai 1 ano
pai
achega
69a41be6d2

+ 31 - 1
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/business/dto/TrainObjectDto.java

@@ -1,9 +1,39 @@
 package com.lc.ibps.business.dto;
 package com.lc.ibps.business.dto;
 
 
+import java.util.List;
+
 /**
 /**
  * 在岗培训对象占比
  * 在岗培训对象占比
  */
  */
-public class TrainObjectDto extends TrainRateDto{
+public class TrainObjectDto {
+
+    private int objectTotal;
+
+    private String remark;
+
+    private List<TrainRateDto> objectDtoList;
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public int getObjectTotal() {
+        return objectTotal;
+    }
+
+    public void setObjectTotal(int objectTotal) {
+        this.objectTotal = objectTotal;
+    }
 
 
+    public List<TrainRateDto> getObjectDtoList() {
+        return objectDtoList;
+    }
 
 
+    public void setObjectDtoList(List<TrainRateDto> objectDtoList) {
+        this.objectDtoList = objectDtoList;
+    }
 }
 }

+ 13 - 3
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/business/dto/TrainRankDto.java

@@ -9,7 +9,9 @@ public class TrainRankDto {
 
 
     private String userName;
     private String userName;
 
 
-    private String rank;
+    private int rank;
+
+    private int count;
 
 
     public String getUserId() {
     public String getUserId() {
         return userId;
         return userId;
@@ -27,11 +29,19 @@ public class TrainRankDto {
         this.userName = userName;
         this.userName = userName;
     }
     }
 
 
-    public String getRank() {
+    public int getRank() {
         return rank;
         return rank;
     }
     }
 
 
-    public void setRank(String rank) {
+    public void setRank(int rank) {
         this.rank = rank;
         this.rank = rank;
     }
     }
+
+    public int getCount() {
+        return count;
+    }
+
+    public void setCount(int count) {
+        this.count = count;
+    }
 }
 }

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

@@ -1,10 +1,40 @@
 package com.lc.ibps.business.dto;
 package com.lc.ibps.business.dto;
 
 
 
 
+import java.util.List;
+
 /**
 /**
  *  在刚培训类别占比
  *  在刚培训类别占比
  */
  */
-public class TrainTypeDto extends TrainRateDto{
+public class TrainTypeDto {
+
+    private int typeTotal;
+
+    private String remark;
+
+    private List<TrainRateDto> typeDtoList;
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public int getTypeTotal() {
+        return typeTotal;
+    }
+
+    public void setTypeTotal(int typeTotal) {
+        this.typeTotal = typeTotal;
+    }
 
 
+    public List<TrainRateDto> getTypeDtoList() {
+        return typeDtoList;
+    }
 
 
+    public void setTypeDtoList(List<TrainRateDto> typeDtoList) {
+        this.typeDtoList = typeDtoList;
+    }
 }
 }

+ 31 - 1
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/business/dto/TrainYearPreWorkDto.java

@@ -1,9 +1,39 @@
 package com.lc.ibps.business.dto;
 package com.lc.ibps.business.dto;
 
 
+import java.util.List;
+
 /**
 /**
  *  年度岗前培训类别占比
  *  年度岗前培训类别占比
  */
  */
-public class TrainYearPreWorkDto extends TrainRateDto{
+public class TrainYearPreWorkDto {
+
+    private int yearPreWorkTotal;
+
+    private String remark;
+
+    private List<TrainRateDto> yearProWorkDtoList;
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public int getYearPreWorkTotal() {
+        return yearPreWorkTotal;
+    }
+
+    public void setYearPreWorkTotal(int yearPreWorkTotal) {
+        this.yearPreWorkTotal = yearPreWorkTotal;
+    }
 
 
+    public List<TrainRateDto> getYearProWorkDtoList() {
+        return yearProWorkDtoList;
+    }
 
 
+    public void setYearProWorkDtoList(List<TrainRateDto> yearProWorkDtoList) {
+        this.yearProWorkDtoList = yearProWorkDtoList;
+    }
 }
 }

+ 93 - 66
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/business/dto/TrainingDashBoardDTO.java

@@ -1,18 +1,32 @@
 package com.lc.ibps.business.dto;
 package com.lc.ibps.business.dto;
 
 
 
 
+import com.lc.ibps.api.form.sql.util.BeanUtils;
+
+import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
 public class TrainingDashBoardDTO {
 public class TrainingDashBoardDTO {
 
 
-    private int yearPreWorkTotal;
+    /**
+     * planDto :自动创建培训计划占比
+     * yearPreWorkDto : 本年度岗前培训类别占比
+     * typeDto:在岗培训类别占比
+     * objectDto:在岗培训对象占比
+     * weekDtoList :近一周发布计划
+     * pxrytjqkDtoList:在岗培训人员统计情况
+     * userRankList:在岗个人培训次数排名
+     * ndgqpxList:本年度岗前培训计划
+     */
+
+    private TrainGuardAutoPlanDto planDto;
 
 
-    private int typeTotal;
+    private TrainYearPreWorkDto yearPreWorkDto;
 
 
-    private int objectTotal;
+    private TrainTypeDto typeDto;
 
 
-    private TrainGuardAutoPlanDto planDto;
+    private TrainObjectDto objectDto;
 
 
     private List<TrainWeekDto> weekDtoList;
     private List<TrainWeekDto> weekDtoList;
 
 
@@ -22,80 +36,93 @@ public class TrainingDashBoardDTO {
 
 
     private List<Map<String,Object>> ndgqpxList;
     private List<Map<String,Object>> ndgqpxList;
 
 
-    private List<TrainYearPreWorkDto> yearPreWorkDtoList;
-
-    private List<TrainTypeDto> typeDtoList;
-
-    private List<TrainObjectDto> objectDtoList;
-
-    public List<TrainTypeDto> getTypeDtoList() {
-        return typeDtoList;
-    }
-
-    public void setTypeDtoList(List<TrainTypeDto> typeDtoList) {
-        this.typeDtoList = typeDtoList;
-    }
-
-    public List<TrainObjectDto> getObjectDtoList() {
-        return objectDtoList;
-    }
-
-    public void setObjectDtoList(List<TrainObjectDto> objectDtoList) {
-        this.objectDtoList = objectDtoList;
-    }
-
-    public int getYearPreWorkTotal() {
-        return yearPreWorkTotal;
+    public TrainYearPreWorkDto getYearPreWorkDto() {
+        return yearPreWorkDto;
     }
     }
 
 
-    public void setYearPreWorkTotal(int yearPreWorkTotal) {
-        this.yearPreWorkTotal = yearPreWorkTotal;
-    }
-
-    public int getTypeTotal() {
-        return typeTotal;
-    }
-
-    public void setTypeTotal(int typeTotal) {
-        this.typeTotal = typeTotal;
-    }
-
-    public int getObjectTotal() {
-        return objectTotal;
-    }
-
-    public void setObjectTotal(int objectTotal) {
-        this.objectTotal = objectTotal;
-    }
-
-    public List<TrainYearPreWorkDto> getYearPreWorkDtoList() {
-        return yearPreWorkDtoList;
-    }
-
-    public void setYearPreWorkDtoList(List<TrainYearPreWorkDto> yearPreWorkDtoList) {
-        if (yearPreWorkDtoList==null){
-            TrainYearPreWorkDto preWorkDto1 = new TrainYearPreWorkDto();
+    public void setYearPreWorkDto(TrainYearPreWorkDto yearPreWorkDto) {
+        if (BeanUtils.isEmpty(yearPreWorkDto.getYearProWorkDtoList())){
+            List<TrainRateDto> yearProWorkDtoList = new ArrayList<>();
+            TrainRateDto preWorkDto1 = new TrainRateDto();
             preWorkDto1.setTypeName("体系文件修订");
             preWorkDto1.setTypeName("体系文件修订");
             preWorkDto1.setTypeNum("0");
             preWorkDto1.setTypeNum("0");
             preWorkDto1.setRate("0.00");
             preWorkDto1.setRate("0.00");
-            TrainYearPreWorkDto preWorkDto2 = new TrainYearPreWorkDto();
+            TrainRateDto preWorkDto2 = new TrainRateDto();
             preWorkDto2.setTypeName("技术");
             preWorkDto2.setTypeName("技术");
             preWorkDto2.setTypeNum("0");
             preWorkDto2.setTypeNum("0");
             preWorkDto2.setRate("0.00");
             preWorkDto2.setRate("0.00");
-            TrainYearPreWorkDto preWorkDto3 = new TrainYearPreWorkDto();
+            TrainRateDto preWorkDto3 = new TrainRateDto();
             preWorkDto3.setTypeName("质量管理");
             preWorkDto3.setTypeName("质量管理");
             preWorkDto3.setTypeNum("0");
             preWorkDto3.setTypeNum("0");
             preWorkDto3.setRate("0.00");
             preWorkDto3.setRate("0.00");
-            TrainYearPreWorkDto preWorkDto4 = new TrainYearPreWorkDto();
-            preWorkDto3.setTypeName("总培训数");
-            preWorkDto3.setTypeNum("0");
-            preWorkDto3.setRate("0.00");
-            yearPreWorkDtoList.add(preWorkDto1);
-            yearPreWorkDtoList.add(preWorkDto2);
-            yearPreWorkDtoList.add(preWorkDto3);
-            yearPreWorkDtoList.add(preWorkDto4);
+            yearProWorkDtoList.add(preWorkDto1);
+            yearProWorkDtoList.add(preWorkDto2);
+            yearProWorkDtoList.add(preWorkDto3);
+            yearPreWorkDto.setYearPreWorkTotal(0);
+            yearPreWorkDto.setYearProWorkDtoList(yearProWorkDtoList);
+        }
+        this.yearPreWorkDto = yearPreWorkDto;
+    }
+
+    public TrainTypeDto getTypeDto() {
+        return typeDto;
+    }
+
+    public void setTypeDto(TrainTypeDto typeDto) {
+        if (BeanUtils.isEmpty(typeDto.getTypeDtoList())){
+            List<TrainRateDto> typeRatoList = new ArrayList<>();
+            TrainRateDto rateDto1 = new TrainRateDto();
+            rateDto1.setTypeName("体系文件修订");
+            rateDto1.setTypeNum("0");
+            rateDto1.setRate("0.00");
+            TrainRateDto rateDto2 = new TrainRateDto();
+            rateDto2.setTypeName("技术");
+            rateDto2.setTypeNum("0");
+            rateDto2.setRate("0.00");
+            TrainRateDto rateDto3 = new TrainRateDto();
+            rateDto3.setTypeName("质量管理");
+            rateDto3.setTypeNum("0");
+            rateDto3.setRate("0.00");
+            typeRatoList.add(rateDto1);
+            typeRatoList.add(rateDto2);
+            typeRatoList.add(rateDto3);
+            typeDto.setTypeTotal(0);
+            typeDto.setTypeDtoList(typeRatoList);
+        }
+        this.typeDto = typeDto;
+    }
+
+    public TrainObjectDto getObjectDto() {
+        return objectDto;
+    }
+
+    public void setObjectDto(TrainObjectDto objectDto) {
+        if (BeanUtils.isEmpty(objectDto.getObjectDtoList())){
+            List<TrainRateDto> objectRateList = new ArrayList<>();
+            TrainRateDto rateDto1 = new TrainRateDto();
+            rateDto1.setTypeName("新员工");
+            rateDto1.setTypeNum("0");
+            rateDto1.setRate("0.00");
+            TrainRateDto rateDto2 = new TrainRateDto();
+            rateDto2.setTypeName("转岗人员");
+            rateDto2.setTypeNum("0");
+            rateDto2.setRate("0.00");
+            TrainRateDto rateDto3 = new TrainRateDto();
+            rateDto3.setTypeName("教学实习人员");
+            rateDto3.setTypeNum("0");
+            rateDto3.setRate("0.00");
+            TrainRateDto rateDto4 = new TrainRateDto();
+            rateDto4.setTypeName("在岗人员");
+            rateDto4.setTypeNum("0");
+            rateDto4.setRate("0.00");
+            objectRateList.add(rateDto1);
+            objectRateList.add(rateDto2);
+            objectRateList.add(rateDto3);
+            objectRateList.add(rateDto4);
+            objectDto.setObjectTotal(0);
+            objectDto.setObjectDtoList(objectRateList);
         }
         }
-        this.yearPreWorkDtoList = yearPreWorkDtoList;
+        this.objectDto = objectDto;
     }
     }
 
 
     public List<Map<String, Object>> getNdgqpxList() {
     public List<Map<String, Object>> getNdgqpxList() {

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

@@ -13,9 +13,7 @@ import com.lc.ibps.cloud.entity.APIResult;
 import com.lc.ibps.common.api.IDictionaryService;
 import com.lc.ibps.common.api.IDictionaryService;
 import com.lc.ibps.common.cat.persistence.entity.DictionaryPo;
 import com.lc.ibps.common.cat.persistence.entity.DictionaryPo;
 import com.lc.ibps.org.api.IPartyPositionService;
 import com.lc.ibps.org.api.IPartyPositionService;
-import com.lc.ibps.org.party.persistence.entity.PartyEmployeePo;
 import com.lc.ibps.org.party.persistence.entity.PartyPositionPo;
 import com.lc.ibps.org.party.persistence.entity.PartyPositionPo;
-import com.lc.ibps.wx.entity.Employee;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -31,7 +29,6 @@ import java.time.format.DateTimeFormatter;
 import java.time.format.TextStyle;
 import java.time.format.TextStyle;
 import java.time.temporal.TemporalAdjusters;
 import java.time.temporal.TemporalAdjusters;
 import java.util.*;
 import java.util.*;
-import java.util.stream.IntStream;
 
 
 @Service
 @Service
 public class StatisticServiceImpl implements StatisticService {
 public class StatisticServiceImpl implements StatisticService {
@@ -75,50 +72,10 @@ public class StatisticServiceImpl implements StatisticService {
         TrainingDashBoardDTO dashBoardDTO = new TrainingDashBoardDTO();
         TrainingDashBoardDTO dashBoardDTO = new TrainingDashBoardDTO();
 
 
         // 在岗培训计划  自动创建  or 手动创建
         // 在岗培训计划  自动创建  or 手动创建
-        TrainGuardAutoPlanDto planDto = new TrainGuardAutoPlanDto();
-        String zdSql = "select count(*) as auto from t_rypxcjb where ji_hua_wai_jian_ in(select id_ from t_ndrypxjhzb) and ji_hua_lei_xing_='在岗培训' ";
-        String zsSql = "select count(*) as total from t_rypxcjb where ji_hua_lei_xing_='在岗培训'";
-        if (BeanUtils.isNotEmpty(dept)){
-            zdSql = zdSql + " and bian_zhi_bu_men_ = '"+dept+"'";
-            zsSql = zsSql + " and bian_zhi_bu_men_ = '"+dept+"'";
-        }
-        int autoNum = Integer.parseInt(commonDao.queryOne(zdSql).get("auto").toString());
-        int total = Integer.parseInt(commonDao.queryOne(zsSql).get("total").toString());
-        int manual = total - autoNum;
-        planDto.setAutoNum(autoNum);
-        planDto.setManual(manual);
-        planDto.setRemark("自动创建培训计划占比");
+        dashBoardDTO.setPlanDto(getPlanRate(dept));
 
 
-        BigDecimal sum = new BigDecimal(total);
-        BigDecimal sign = new BigDecimal(autoNum);
-        if (sum.compareTo(BigDecimal.ZERO) != 0) {
-            BigDecimal percentage = sign.divide(sum, 10, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
-            percentage = percentage.setScale(2, RoundingMode.HALF_UP);
-            planDto.setRate(percentage.toString());
-        }else {
-            planDto.setRate("0.00");
-        }
-        dashBoardDTO.setPlanDto(planDto);
-
-        // 获取本周的第一天(星期一)
-        LocalDate startOfWeek = LocalDate.now().with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
         // 近一周发布计划
         // 近一周发布计划
-        List<TrainWeekDto> weekDtoList = new ArrayList<>();
-        List<String> weekDates = getWeeks(startOfWeek);
-        for (String dateStr : weekDates) {
-            TrainWeekDto weekDto = new TrainWeekDto();
-            weekDto.setDate(dateStr);
-            weekDto.setDayName(getDayName(dateStr));
-            String sql = "select count(*) value from t_rypxcjb where ji_hua_lei_xing_='在岗培训' and shi_fou_guo_shen_='未发布' " +
-                    " and date_format(pei_xun_shi_jian_,'%Y-%m-%d')='"+dateStr+"'";
-            if (BeanUtils.isNotEmpty(dept)){
-                sql = sql + " and bian_zhi_bu_men_ = '"+dept+"'";
-            }
-            Map<String,Object> map = commonDao.queryOne(sql);
-            weekDto.setValue(map.get("value"));
-            weekDtoList.add(weekDto);
-        }
-        dashBoardDTO.setWeekDtoList(weekDtoList);
+        dashBoardDTO.setWeekDtoList(getCurrWeek(dept));
 
 
         //    type       value
         //    type       value
         // 周 week  本周 nowWeek  上周 lastWeek  下周 nextWeek
         // 周 week  本周 nowWeek  上周 lastWeek  下周 nextWeek
@@ -161,134 +118,206 @@ public class StatisticServiceImpl implements StatisticService {
 //        }
 //        }
         // 年 year  去年 lastYear  今年 nowYear
         // 年 year  去年 lastYear  今年 nowYear
 
 
-        // 培训人员统计情况
+        // 在岗培训人员统计情况
         if (dates.contains("-")){
         if (dates.contains("-")){
             // 月
             // 月
-            List<String> months = getAllDatesOfMonth(dates);
-            dashBoardDTO.setPxrytjqkDtoList(getYmdData(months,dept,"month",""));
+            dashBoardDTO.setPxrytjqkDtoList(getYmdData(getAllDatesOfMonth(dates),dept,"month",""));
         }else {
         }else {
             // 年
             // 年
-            List<String> years = getYearMonth();
-            dashBoardDTO.setPxrytjqkDtoList(getYmdData(years,dept,"year",dates));
+            dashBoardDTO.setPxrytjqkDtoList(getYmdData(getYearMonth(),dept,"year",dates));
         }
         }
 
 
-        // 个人培训次数排名
+        // 在岗个人培训次数排名
         dashBoardDTO.setUserRankList(getUserTrainRank(dept));
         dashBoardDTO.setUserRankList(getUserTrainRank(dept));
 
 
         // 在岗培训类别占比
         // 在岗培训类别占比
-        getTypeRate(dashBoardDTO,dept);
+        dashBoardDTO.setTypeDto(getTypeRate(dept));
 
 
         // 在岗培训对象占比
         // 在岗培训对象占比
-        getObjectRate(dashBoardDTO);
+        dashBoardDTO.setObjectDto(getObjectRate(dept));
 
 
         //  本年度岗前培训计划
         //  本年度岗前培训计划
-        List<String> years = getYearMonth();
-        dashBoardDTO.setNdgqpxList(getCurrentYearData(years,dept));
+        dashBoardDTO.setNdgqpxList(getCurrentYearData(getYearMonth(),dept));
 
 
         //  本年度岗前培训类别占比
         //  本年度岗前培训类别占比
-        getYearPre(dashBoardDTO);
+        dashBoardDTO.setYearPreWorkDto(getYearPre(dept));
 
 
         list.add(dashBoardDTO);
         list.add(dashBoardDTO);
         return list;
         return list;
     }
     }
 
 
+    public TrainGuardAutoPlanDto getPlanRate(String dept){
+        TrainGuardAutoPlanDto planDto = new TrainGuardAutoPlanDto();
+        String zdSql = "select count(*) as auto from t_rypxcjb where ji_hua_wai_jian_ in(select id_ from t_ndrypxjhzb) and ji_hua_lei_xing_='在岗培训' and di_dian_='"+getDiDian()+"'";
+        String zsSql = "select count(*) as total from t_rypxcjb where ji_hua_lei_xing_='在岗培训' and di_dian_='"+getDiDian()+"' ";
+        if (BeanUtils.isNotEmpty(dept)){
+            zdSql = zdSql + " and bian_zhi_bu_men_ = '"+dept+"'";
+            zsSql = zsSql + " and bian_zhi_bu_men_ = '"+dept+"'";
+        }
+        int autoNum = Integer.parseInt(commonDao.queryOne(zdSql).get("auto").toString());
+        int total = Integer.parseInt(commonDao.queryOne(zsSql).get("total").toString());
+        int manual = total - autoNum;
+        planDto.setTotal(total);
+        planDto.setAutoNum(autoNum);
+        planDto.setManual(manual);
+        planDto.setRemark("自动创建培训计划占比");
+
+        BigDecimal sum = new BigDecimal(total);
+        BigDecimal sign = new BigDecimal(autoNum);
+        if (sum.compareTo(BigDecimal.ZERO) != 0) {
+            BigDecimal percentage = sign.divide(sum, 10, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
+            percentage = percentage.setScale(2, RoundingMode.HALF_UP);
+            planDto.setRate(percentage.toString());
+        }else {
+            planDto.setRate("0.00");
+        }
+        return planDto;
+    }
+
+    public List<TrainWeekDto> getCurrWeek(String dept){
+        LocalDate startOfWeek = LocalDate.now().with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
+        List<TrainWeekDto> weekDtoList = new ArrayList<>();
+        List<String> weekDates = getWeeks(startOfWeek);
+        for (String dateStr : weekDates) {
+            TrainWeekDto weekDto = new TrainWeekDto();
+            weekDto.setDate(dateStr);
+            weekDto.setDayName(getDayName(dateStr));
+            String sql = "select count(*) value from t_rypxcjb where ji_hua_lei_xing_='在岗培训' and shi_fou_guo_shen_='未发布' " +
+                    " and di_dian_='"+getDiDian()+"' and date_format(pei_xun_shi_jian_,'%Y-%m-%d')='"+dateStr+"'";
+            if (BeanUtils.isNotEmpty(dept)){
+                sql = sql + " and bian_zhi_bu_men_ = '"+dept+"'";
+            }
+            Map<String,Object> map = commonDao.queryOne(sql);
+            weekDto.setValue(map.get("value"));
+            weekDtoList.add(weekDto);
+        }
+        return weekDtoList;
+    }
 
 
-    public void getObjectRate(TrainingDashBoardDTO dashBoardDTO){
-        List<TrainObjectDto> objectDtoList = new ArrayList<>();
-        String sql = "select pei_xun_lei_xing_,count(pei_xun_lei_xing_)as nums from t_rypxcjb where ji_hua_lei_xing_='在岗培训' and shi_fou_guo_shen_='已结束' group by pei_xun_lei_xing_";
-        List<Map<String,Object>> list = (List<Map<String, Object>>) commonDao.query(sql);
+
+    public TrainObjectDto getObjectRate(String dept){
+        TrainObjectDto objectDto = new TrainObjectDto();
+        objectDto.setRemark("在岗培训对象占比");
+        List<TrainRateDto> rateDtoList = new ArrayList<>();
+        String sql = "select pei_xun_lei_xing_,count(pei_xun_lei_xing_)as nums from t_rypxcjb where ji_hua_lei_xing_='在岗培训' " +
+                "and shi_fou_guo_shen_='已结束' and di_dian_='"+getDiDian()+"' group by pei_xun_lei_xing_";
         String talSql = "SELECT COALESCE(SUM(nums), 0) AS total_num from (select pei_xun_lei_xing_,COUNT(pei_xun_lei_xing_)as nums " +
         String talSql = "SELECT COALESCE(SUM(nums), 0) AS total_num from (select pei_xun_lei_xing_,COUNT(pei_xun_lei_xing_)as nums " +
-                "from t_rypxcjb where ji_hua_lei_xing_='在岗培训' and shi_fou_guo_shen_='已结束'  GROUP BY pei_xun_lei_xing_) as qw";
+                "from t_rypxcjb where ji_hua_lei_xing_='在岗培训' and shi_fou_guo_shen_='已结束' and di_dian_='"+getDiDian()+"' GROUP BY pei_xun_lei_xing_) as qw";
+        if (BeanUtils.isNotEmpty(dept)){
+            sql = "select pei_xun_lei_xing_,count(pei_xun_lei_xing_)as nums from t_rypxcjb where ji_hua_lei_xing_='在岗培训' " +
+                    "and shi_fou_guo_shen_='已结束' and di_dian_='"+getDiDian()+"' and bian_zhi_bu_men_='"+dept+"' group by pei_xun_lei_xing_";
+            talSql = "SELECT COALESCE(SUM(nums), 0) AS total_num from (select pei_xun_lei_xing_,COUNT(pei_xun_lei_xing_)as nums " +
+                    " from t_rypxcjb where ji_hua_lei_xing_='在岗培训' and shi_fou_guo_shen_='已结束' and di_dian_='"+getDiDian()+"' " +
+                    " and bian_zhi_bu_men_='"+dept+"' GROUP BY pei_xun_lei_xing_) as qw";
+        }
+        List<Map<String,Object>> list = (List<Map<String, Object>>) commonDao.query(sql);
         int total = Integer.parseInt(commonDao.queryOne(talSql).get("total_num").toString());
         int total = Integer.parseInt(commonDao.queryOne(talSql).get("total_num").toString());
-        dashBoardDTO.setTypeTotal(total);
+        objectDto.setObjectTotal(total);
         if (BeanUtils.isNotEmpty(list)){
         if (BeanUtils.isNotEmpty(list)){
             for (Map<String,Object> map : list){
             for (Map<String,Object> map : list){
-                TrainObjectDto objectDto = new TrainObjectDto();
+                TrainRateDto rateDto = new TrainRateDto();
                 String nums = map.get("nums").toString();
                 String nums = map.get("nums").toString();
-                objectDto.setTypeName(map.get("pei_xun_lei_xing_").toString());
-                objectDto.setTypeNum(nums);
+                rateDto.setTypeName(map.get("pei_xun_lei_xing_").toString());
+                rateDto.setTypeNum(nums);
                 BigDecimal sum = new BigDecimal(total);
                 BigDecimal sum = new BigDecimal(total);
                 BigDecimal sign = new BigDecimal(nums);
                 BigDecimal sign = new BigDecimal(nums);
                 if (sum.compareTo(BigDecimal.ZERO) != 0) {
                 if (sum.compareTo(BigDecimal.ZERO) != 0) {
                     BigDecimal percentage = sign.divide(sum, 10, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
                     BigDecimal percentage = sign.divide(sum, 10, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
                     percentage = percentage.setScale(2, RoundingMode.HALF_UP);
                     percentage = percentage.setScale(2, RoundingMode.HALF_UP);
-                    objectDto.setRate(percentage.toString());
+                    rateDto.setRate(percentage.toString());
                 }else {
                 }else {
-                    objectDto.setRate("0.00");
+                    rateDto.setRate("0.00");
                 }
                 }
-                objectDtoList.add(objectDto);
+                rateDtoList.add(rateDto);
             }
             }
+            objectDto.setObjectDtoList(rateDtoList);
         }
         }
-        dashBoardDTO.setObjectDtoList(objectDtoList);
-
+        return objectDto;
     }
     }
 
 
-    public void getTypeRate(TrainingDashBoardDTO dashBoardDTO,String dept){
-        List<TrainTypeDto> typeDtoList = new ArrayList<>();
-        String sql = "select pei_xun_lei_bie_,count(pei_xun_lei_bie_)as nums from t_rypxcjb where ji_hua_lei_xing_='在岗培训' and shi_fou_guo_shen_='已结束' group by pei_xun_lei_bie_";
+    public TrainTypeDto getTypeRate(String dept){
+        TrainTypeDto typeDto = new TrainTypeDto();
+        typeDto.setRemark("在岗培训类别占比");
+        List<TrainRateDto> rateDtoList = new ArrayList<>();
+        String sql = "select pei_xun_lei_bie_,count(pei_xun_lei_bie_)as nums from t_rypxcjb where ji_hua_lei_xing_='在岗培训' " +
+                " and shi_fou_guo_shen_='已结束' and di_dian_='"+getDiDian()+"' group by pei_xun_lei_bie_";
         String talSql = "SELECT COALESCE(SUM(nums), 0) AS total_num from (select pei_xun_lei_bie_,COUNT(pei_xun_lei_bie_)as nums " +
         String talSql = "SELECT COALESCE(SUM(nums), 0) AS total_num from (select pei_xun_lei_bie_,COUNT(pei_xun_lei_bie_)as nums " +
-                "from t_rypxcjb where ji_hua_lei_xing_='在岗培训' and shi_fou_guo_shen_='已结束'  GROUP BY pei_xun_lei_bie_) as qw";
+                "from t_rypxcjb where ji_hua_lei_xing_='在岗培训' and shi_fou_guo_shen_='已结束' and di_dian_='"+getDiDian()+"' GROUP BY pei_xun_lei_bie_) as qw";
         if (BeanUtils.isNotEmpty(dept)){
         if (BeanUtils.isNotEmpty(dept)){
             sql = "select pei_xun_lei_bie_,count(pei_xun_lei_bie_)as nums from t_rypxcjb where ji_hua_lei_xing_='在岗培训' " +
             sql = "select pei_xun_lei_bie_,count(pei_xun_lei_bie_)as nums from t_rypxcjb where ji_hua_lei_xing_='在岗培训' " +
-                    "and shi_fou_guo_shen_='已结束' and bian_zhi_bu_men_='"+dept+"' group by pei_xun_lei_bie_";
+                    "and shi_fou_guo_shen_='已结束' and di_dian_='"+getDiDian()+"' and bian_zhi_bu_men_='"+dept+"' group by pei_xun_lei_bie_";
             talSql = "SELECT COALESCE(SUM(nums), 0) AS total_num from (select pei_xun_lei_bie_,COUNT(pei_xun_lei_bie_)as nums " +
             talSql = "SELECT COALESCE(SUM(nums), 0) AS total_num from (select pei_xun_lei_bie_,COUNT(pei_xun_lei_bie_)as nums " +
-                    "from t_rypxcjb where ji_hua_lei_xing_='在岗培训' and shi_fou_guo_shen_='已结束' and bian_zhi_bu_men_='"+dept+"' GROUP BY pei_xun_lei_bie_) as qw";
+                    "from t_rypxcjb where ji_hua_lei_xing_='在岗培训' and shi_fou_guo_shen_='已结束' and di_dian_='"+getDiDian()+"'" +
+                    " and bian_zhi_bu_men_='"+dept+"' GROUP BY pei_xun_lei_bie_) as qw";
         }
         }
         int total = Integer.parseInt(commonDao.queryOne(talSql).get("total_num").toString());
         int total = Integer.parseInt(commonDao.queryOne(talSql).get("total_num").toString());
         List<Map<String,Object>> list = (List<Map<String, Object>>) commonDao.query(sql);
         List<Map<String,Object>> list = (List<Map<String, Object>>) commonDao.query(sql);
-        dashBoardDTO.setTypeTotal(total);
+        typeDto.setTypeTotal(total);
         if (BeanUtils.isNotEmpty(list)){
         if (BeanUtils.isNotEmpty(list)){
             for (Map<String,Object> map : list){
             for (Map<String,Object> map : list){
-                TrainTypeDto typeDto = new TrainTypeDto();
+                TrainRateDto rateDto = new TrainRateDto();
                 String nums = map.get("nums").toString();
                 String nums = map.get("nums").toString();
-                typeDto.setTypeName(map.get("pei_xun_lei_bie_").toString());
-                typeDto.setTypeNum(nums);
+                rateDto.setTypeName(map.get("pei_xun_lei_bie_").toString());
+                rateDto.setTypeNum(nums);
                 BigDecimal sum = new BigDecimal(total);
                 BigDecimal sum = new BigDecimal(total);
                 BigDecimal sign = new BigDecimal(nums);
                 BigDecimal sign = new BigDecimal(nums);
                 if (sum.compareTo(BigDecimal.ZERO) != 0) {
                 if (sum.compareTo(BigDecimal.ZERO) != 0) {
                     BigDecimal percentage = sign.divide(sum, 10, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
                     BigDecimal percentage = sign.divide(sum, 10, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
                     percentage = percentage.setScale(2, RoundingMode.HALF_UP);
                     percentage = percentage.setScale(2, RoundingMode.HALF_UP);
-                    typeDto.setRate(percentage.toString());
+                    rateDto.setRate(percentage.toString());
                 }else {
                 }else {
-                    typeDto.setRate("0.00");
+                    rateDto.setRate("0.00");
                 }
                 }
-                typeDtoList.add(typeDto);
+                rateDtoList.add(rateDto);
             }
             }
+            typeDto.setTypeDtoList(rateDtoList);
         }
         }
-        dashBoardDTO.setTypeDtoList(typeDtoList);
+        return typeDto;
     }
     }
 
 
-    public void getYearPre(TrainingDashBoardDTO dashBoardDTO){
-        List<TrainYearPreWorkDto> preWorkDtoList = new ArrayList<>();
-        String sql = "select pei_xun_lei_bie_,count(pei_xun_lei_bie_)as nums from t_rypxcjb where ji_hua_lei_xing_='岗前培训' and shi_fou_guo_shen_='已结束' group by pei_xun_lei_bie_";
-        List<Map<String,Object>> list = (List<Map<String, Object>>) commonDao.query(sql);
+    public TrainYearPreWorkDto getYearPre(String dept){
+        TrainYearPreWorkDto preWorkDto = new TrainYearPreWorkDto();
+        preWorkDto.setRemark("本年度岗前培训类别占比");
+        List<TrainRateDto> rateDtoList = new ArrayList<>();
+        String sql = "select pei_xun_lei_bie_,count(pei_xun_lei_bie_)as nums from t_rypxcjb where ji_hua_lei_xing_='岗前培训' " +
+                "and shi_fou_guo_shen_='已结束' and di_dian_='"+getDiDian()+"' group by pei_xun_lei_bie_";
         String talSql = "SELECT COALESCE(SUM(nums), 0) AS total_num from (select pei_xun_lei_bie_,COUNT(pei_xun_lei_bie_)as nums " +
         String talSql = "SELECT COALESCE(SUM(nums), 0) AS total_num from (select pei_xun_lei_bie_,COUNT(pei_xun_lei_bie_)as nums " +
-                "from t_rypxcjb where ji_hua_lei_xing_='岗前培训' and shi_fou_guo_shen_='已结束'  GROUP BY pei_xun_lei_bie_) as qw";
+                "from t_rypxcjb where ji_hua_lei_xing_='岗前培训' and shi_fou_guo_shen_='已结束' and di_dian_='"+getDiDian()+"' GROUP BY pei_xun_lei_bie_) as qw";
+        if (BeanUtils.isNotEmpty(dept)){
+            sql = "select pei_xun_lei_bie_,count(pei_xun_lei_bie_)as nums from t_rypxcjb where ji_hua_lei_xing_='岗前培训' " +
+                    "and shi_fou_guo_shen_='已结束' and di_dian_='"+getDiDian()+"' and bian_zhi_bu_men_='"+dept+"' group by pei_xun_lei_bie_";
+            talSql = "SELECT COALESCE(SUM(nums), 0) AS total_num from (select pei_xun_lei_bie_,COUNT(pei_xun_lei_bie_)as nums " +
+                    "from t_rypxcjb where ji_hua_lei_xing_='岗前培训' and shi_fou_guo_shen_='已结束' and di_dian_='"+getDiDian()+"' " +
+                    " and bian_zhi_bu_men_='"+dept+"' GROUP BY pei_xun_lei_bie_) as qw";
+        }
+
+        List<Map<String,Object>> list = (List<Map<String, Object>>) commonDao.query(sql);
         int total = Integer.parseInt(commonDao.queryOne(talSql).get("total_num").toString());
         int total = Integer.parseInt(commonDao.queryOne(talSql).get("total_num").toString());
-        dashBoardDTO.setYearPreWorkTotal(total);
+        preWorkDto.setYearPreWorkTotal(total);
         if (BeanUtils.isNotEmpty(list)){
         if (BeanUtils.isNotEmpty(list)){
             for (Map<String,Object> map : list){
             for (Map<String,Object> map : list){
-                TrainYearPreWorkDto preWorkDto = new TrainYearPreWorkDto();
+                TrainRateDto rateDto = new TrainRateDto();
                 String nums = map.get("nums").toString();
                 String nums = map.get("nums").toString();
-                preWorkDto.setTypeName(map.get("pei_xun_lei_bie_").toString());
-                preWorkDto.setTypeNum(nums);
+                rateDto.setTypeName(map.get("pei_xun_lei_bie_").toString());
+                rateDto.setTypeNum(nums);
                 BigDecimal sum = new BigDecimal(total);
                 BigDecimal sum = new BigDecimal(total);
                 BigDecimal sign = new BigDecimal(nums);
                 BigDecimal sign = new BigDecimal(nums);
                 if (sum.compareTo(BigDecimal.ZERO) != 0) {
                 if (sum.compareTo(BigDecimal.ZERO) != 0) {
                     BigDecimal percentage = sign.divide(sum, 10, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
                     BigDecimal percentage = sign.divide(sum, 10, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
                     percentage = percentage.setScale(2, RoundingMode.HALF_UP);
                     percentage = percentage.setScale(2, RoundingMode.HALF_UP);
-                    preWorkDto.setRate(percentage.toString());
+                    rateDto.setRate(percentage.toString());
                 }else {
                 }else {
-                    preWorkDto.setRate("0.00");
+                    rateDto.setRate("0.00");
                 }
                 }
-                preWorkDtoList.add(preWorkDto);
+                rateDtoList.add(rateDto);
             }
             }
+            preWorkDto.setYearProWorkDtoList(rateDtoList);
         }
         }
-        dashBoardDTO.setYearPreWorkDtoList(preWorkDtoList);
+        return preWorkDto;
     }
     }
 
 
     public List<Map<String, Object>> getCurrentYearData(List<String> dateStr, String dept) {
     public List<Map<String, Object>> getCurrentYearData(List<String> dateStr, String dept) {
-        String baseSql = "SELECT count(*) AS total FROM t_rypxcjb WHERE ji_hua_lei_xing_ = '岗前培训' AND shi_fou_guo_shen_ = '已结束' ";
+        String baseSql = "SELECT count(*) AS total FROM t_rypxcjb WHERE ji_hua_lei_xing_ = '岗前培训' AND shi_fou_guo_shen_ = '已结束' and di_dian_='"+getDiDian()+"'";
         List<Map<String, Object>> list = new ArrayList<>();
         List<Map<String, Object>> list = new ArrayList<>();
         int year = Year.now().getValue();
         int year = Year.now().getValue();
         for (String date : dateStr) {
         for (String date : dateStr) {
@@ -309,7 +338,7 @@ public class StatisticServiceImpl implements StatisticService {
     }
     }
 
 
     public List<TrainRankDto> getUserTrainRank(String dept){
     public List<TrainRankDto> getUserTrainRank(String dept){
-        String sql = "SELECT a.ren_yuan_id_ userId,e.NAME_ userName,a.rank from (select ren_yuan_id_,COUNT(ren_yuan_id_)as rank  from t_qdxxb " +
+        String sql = "SELECT a.ren_yuan_id_ userId,e.NAME_ userName,a.rank as count from (select ren_yuan_id_,COUNT(ren_yuan_id_)as rank  from t_qdxxb " +
                 "where guan_lian_id_ in(select id_ from t_rypxcjb where ji_hua_lei_xing_='在岗培训' and shi_fou_guo_shen_='已结束' " +
                 "where guan_lian_id_ in(select id_ from t_rypxcjb where ji_hua_lei_xing_='在岗培训' and shi_fou_guo_shen_='已结束' " +
                 "and di_dian_='%s') GROUP BY guan_lian_id_,ren_yuan_id_) a ,ibps_party_employee e WHERE e.id_=a.ren_yuan_id_ ";
                 "and di_dian_='%s') GROUP BY guan_lian_id_,ren_yuan_id_) a ,ibps_party_employee e WHERE e.id_=a.ren_yuan_id_ ";
         if (BeanUtils.isNotEmpty(dept)){
         if (BeanUtils.isNotEmpty(dept)){
@@ -317,7 +346,18 @@ public class StatisticServiceImpl implements StatisticService {
         }
         }
         sql = sql + " ORDER BY a.rank desc ";
         sql = sql + " ORDER BY a.rank desc ";
         sql = String.format(sql,getDiDian(),dept);
         sql = String.format(sql,getDiDian(),dept);
-        return (List<TrainRankDto>) commonDao.query(sql);
+        List<Map<String,Object>> list = (List<Map<String, Object>>) commonDao.query(sql);
+        List<TrainRankDto> rankedResults = new ArrayList<>();
+        int rank = 1;
+        for (Map<String,Object> map : list) {
+            TrainRankDto dto = new TrainRankDto();
+            dto.setUserId(map.get("userId").toString());
+            dto.setUserName(map.get("userName").toString());
+            dto.setCount(Integer.parseInt(map.get("count").toString()));
+            dto.setRank(rank++);
+            rankedResults.add(dto);
+        }
+        return rankedResults;
     }
     }
 
 
     public List<TraineeStatisticsDto> getYmdData(List<String> dateStr, String dept, String type, String year) {
     public List<TraineeStatisticsDto> getYmdData(List<String> dateStr, String dept, String type, String year) {
@@ -353,7 +393,7 @@ public class StatisticServiceImpl implements StatisticService {
             if (BeanUtils.isNotEmpty(dept)) {
             if (BeanUtils.isNotEmpty(dept)) {
                 dateCondition += String.format(" AND bian_zhi_bu_men_ = '%s'", dept);
                 dateCondition += String.format(" AND bian_zhi_bu_men_ = '%s'", dept);
             }
             }
-
+            dateCondition += String.format(" AND di_dian_ = '%s'", getDiDian());
             String countSql = String.format(countSqlTemplate, dateCondition);
             String countSql = String.format(countSqlTemplate, dateCondition);
             String realSql = String.format(realSqlTemplate, dateCondition);
             String realSql = String.format(realSqlTemplate, dateCondition);
 
 

+ 16 - 5
ibps-provider-root/modules/provider-platform/src/main/java/com/lc/ibps/platform/plan/job/PersonnelTrainJob.java

@@ -18,10 +18,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 
 
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 
 /**
 /**
  * @author gaozl
  * @author gaozl
@@ -50,7 +47,8 @@ public class PersonnelTrainJob extends BaseJob2 {
                 " pei_xun_jie_shu_s,p.pei_xun_ren_yuan_,p.pei_xun_di_dian_,p.pei_xun_lao_shi_,p.di_dian_ from t_rypxcjb p " +
                 " pei_xun_jie_shu_s,p.pei_xun_ren_yuan_,p.pei_xun_di_dian_,p.pei_xun_lao_shi_,p.di_dian_ from t_rypxcjb p " +
                 "left join ibps_party_employee e on e.id_=p.bian_zhi_ren_ " +
                 "left join ibps_party_employee e on e.id_=p.bian_zhi_ren_ " +
                 "left join ibps_party_position d on d.id_=p.bian_zhi_bu_men_ " +
                 "left join ibps_party_position d on d.id_=p.bian_zhi_bu_men_ " +
-                "where shi_fou_guo_shen_ ='未发布' and pei_xun_shi_jian_ >=now() and pei_xun_shi_jian_<=date_add(now(), interval 1 week)";
+                "where shi_fou_guo_shen_ ='未发布' and pei_xun_shi_jian_ >=CURRENT_DATE " +
+                " and pei_xun_shi_jian_<=DATE_FORMAT(date_add(now(), interval 1 week),'%Y-%m-%d')";
         @SuppressWarnings("unchecked")
         @SuppressWarnings("unchecked")
         List<Map<String, Object>> pxList = (List<Map<String, Object>>) commonDao.query(sql);
         List<Map<String, Object>> pxList = (List<Map<String, Object>>) commonDao.query(sql);
 
 
@@ -87,6 +85,19 @@ public class PersonnelTrainJob extends BaseJob2 {
 
 
                     if (BeanUtils.isNotEmpty(teachIds)){
                     if (BeanUtils.isNotEmpty(teachIds)){
                         nameIds = nameIds + "," + teachIds;
                         nameIds = nameIds + "," + teachIds;
+                        String[] idsArray = nameIds.split(",");
+                        Set<String> uniqueIds = new HashSet<>();
+                        for (String ids : idsArray) {
+                            uniqueIds.add(ids.trim());
+                        }
+                        StringBuilder sb = new StringBuilder();
+                        for (String ids : uniqueIds) {
+                            if (sb.length() > 0) {
+                                sb.append(",");
+                            }
+                            sb.append(ids);
+                        }
+                        nameIds = sb.toString();
                     }
                     }
                     StringBuilder nameStr = new StringBuilder();
                     StringBuilder nameStr = new StringBuilder();
                     String[] ids = nameIds.split(",");
                     String[] ids = nameIds.split(",");