wy 10 месяцев назад
Родитель
Сommit
048b4ab0d8

+ 1 - 0
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/business/controller/AuditController.java

@@ -31,6 +31,7 @@ public class AuditController extends GenericProvider {
         APIResult result = new APIResult<>();
         try {
             auditService.personnelTrain(ids);
+            auditService.newPersonnelTrain(ids);
         } catch (Exception e) {
             setExceptionResult(result, StateEnum.ILLEGAL_REQUEST.getCode(), I18nUtil.getMessage(StateEnum.ILLEGAL_REQUEST.getCode() + ""), e);
         }

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

@@ -70,10 +70,11 @@ public class StatisticController extends GenericProvider {
                                                                @NotBlank(message = "统计时间")
                                                        @RequestParam(name = "date", required = true) String date,
                                                                @NotBlank(message = "统计时间")
-                                                               @RequestParam(name = "typeProportion", required = false) String typeProportion) {
+                                                               @RequestParam(name = "typeProportion", required = false) String typeProportion,
+                                                               @RequestParam(name = "version", required = false) String version) {
         APIResult<List<TrainingDashBoardDTO>> result = new APIResult<>();
         try {
-            List<TrainingDashBoardDTO> labsDashBoard = statisticService.getTrainingDashBoard(dept,type,date,typeProportion);
+            List<TrainingDashBoardDTO> labsDashBoard = statisticService.getTrainingDashBoard(dept,type,date,typeProportion,version);
             result.setData(labsDashBoard);
         } catch (Exception e) {
             setExceptionResult(result, StateEnum.ILLEGAL_REQUEST.getCode(), I18nUtil.getMessage(StateEnum.ILLEGAL_REQUEST.getCode() + ""), e);
@@ -101,10 +102,11 @@ 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,
+                                                               @RequestParam(name = "version", required = false) String version) {
         APIResult<List<TrainingDashBoardBlkDTO>> result = new APIResult<>();
         try {
-            List<TrainingDashBoardBlkDTO> labsDashBoard = staffTrainService.getTrainingDashBoardByBlk(dept,type,date);
+            List<TrainingDashBoardBlkDTO> labsDashBoard = staffTrainService.getTrainingDashBoardByBlk(dept,type,date,version);
             result.setData(labsDashBoard);
         } catch (Exception e) {
             setExceptionResult(result, StateEnum.ILLEGAL_REQUEST.getCode(), I18nUtil.getMessage(StateEnum.ILLEGAL_REQUEST.getCode() + ""), e);

+ 2 - 0
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/business/service/AuditService.java

@@ -11,6 +11,8 @@ public interface AuditService {
 
     void personnelTrain(String[] ids) throws Exception;
 
+    void newPersonnelTrain(String[] ids) throws Exception;
+
     void NoticeByOneMonth();
 
     void internalAudit();

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

@@ -6,6 +6,6 @@ import java.util.List;
 
 public interface StaffTrainService {
 
-    List<TrainingDashBoardBlkDTO> getTrainingDashBoardByBlk(String dept, String type, String date);
+    List<TrainingDashBoardBlkDTO> getTrainingDashBoardByBlk(String dept, String type, String date,String version);
 
 }

+ 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,String typeProportion);
+    List<TrainingDashBoardDTO> getTrainingDashBoard(String dept, String type, String date,String typeProportion,String version);
 
     List<EquipmentDashBoardDTO> getEquipmentDashBoard();
 

+ 85 - 0
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/business/service/impl/AuditServiceImpl.java

@@ -130,6 +130,91 @@ public class AuditServiceImpl implements AuditService {
         }
     }
 
+    @Override
+    public void newPersonnelTrain(String[] records) throws Exception {
+        log.warn(" com.lc.ibps.business.service.impl.AuditServiceImpl.personnelTrain()--->人员培训通知:records: {}", Arrays.toString(records));
+        String sql = "select p.id_,p.bian_zhi_ren_,e.name_,p.bian_zhi_bu_men_,d.name_ as dept_name_,p.pei_xun_nei_rong_,p.pei_xun_zhuang_ta," +
+                "date_format(p.pei_xun_shi_jian_,'%%Y-%%m-%%d') pei_xun_shi_jian_,date_format(p.pei_xun_jie_shu_s,'%%Y-%%m-%%d')  " +
+                " pei_xun_jie_shu_s,p.pei_xun_ren_yuan_,p.pei_xun_di_dian_,p.pei_xun_lao_shi_,p.di_dian_," +
+                "IF(pei_xun_shi_jian_<=DATE_FORMAT(date_add(now(), interval 1 week),'%%Y-%%m-%%d'),'1','0') as type_ from t_lhrypxjlb p " +
+                "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_ " +
+                "where p.id_ in(%s)";
+        sql = String.format(sql, String.join(",", records));
+        List<Map<String, Object>> pxList = (List<Map<String, Object>>) commonDao.query(sql);
+
+        if (BeanUtils.isNotEmpty(pxList)){
+            for (Map<String, Object> train : pxList) {
+                String id = train.get("id_").toString();
+                String didian = train.get("di_dian_").toString();
+                String userId = train.get("bian_zhi_ren_").toString();
+                String userName = train.get("name_").toString();
+                String deptName = train.get("dept_name_").toString();
+                String starDate = train.get("pei_xun_shi_jian_").toString();
+                String peiXunNeiRong = train.get("pei_xun_nei_rong_").toString();
+
+                // 信息不全,发消息提醒  否则发公告
+                if (BeanUtils.isEmpty(train.get("pei_xun_jie_shu_s")) || BeanUtils.isEmpty(train.get("pei_xun_ren_yuan_"))
+                        || BeanUtils.isEmpty(train.get("pei_xun_lao_shi_")) || BeanUtils.isEmpty(train.get("pei_xun_di_dian_"))){
+                    List<String> receiver = new ArrayList<>();
+                    // 提醒培训负责人
+                    String fuzeren = train.get("bian_zhi_ren_").toString();
+                    receiver.add(fuzeren);
+                    String endDate = train.get("pei_xun_shi_jian_")==null?"":train.get("pei_xun_shi_jian_").toString();
+                    String title = "【"+ peiXunNeiRong +"】的培训准备通知";
+                    String content = "您有一个主题为【"+peiXunNeiRong+"】的培训将于 "+starDate+" 开始,请及时前往培训管理页面完善培训信息!";
+                    this.sendCalendarRemind(id,fuzeren,content,starDate,title,didian,endDate);
+                    log.warn("培训相关的信息填写不完整,发送日历提醒培训负责人,培训记录ID={}",id);
+                }
+
+                if (BeanUtils.isNotEmpty(train.get("pei_xun_jie_shu_s")) && BeanUtils.isNotEmpty(train.get("pei_xun_ren_yuan_"))
+                        && BeanUtils.isNotEmpty(train.get("pei_xun_lao_shi_")) && BeanUtils.isNotEmpty(train.get("pei_xun_di_dian_"))){
+                    String endDate = train.get("pei_xun_jie_shu_s").toString();
+                    String peiXunDiDian = train.get("pei_xun_di_dian_").toString();
+                    String nameIds = train.get("pei_xun_ren_yuan_").toString();
+                    String teachIds = train.get("pei_xun_lao_shi_").toString();
+                    String bianZhiBuMen = train.get("bian_zhi_bu_men_").toString();
+
+                    if (train.get("pei_xun_zhuang_ta").equals("未发布") && train.get("type_").equals("1")){
+                        commonDao.execute("update t_lhrypxjlb set pei_xun_zhuang_ta='未开始' where id_= '"+id+"'");
+                        log.warn("培训相关的信息填写完整,修改培训状态为未开始,培训记录ID={}",id);
+                    }
+
+                    if (BeanUtils.isNotEmpty(teachIds)){
+                        nameIds = deduplication(nameIds + "," + teachIds);
+                    }
+                    String nameStr = getUserName(nameIds);
+                    String[] ids = nameIds.split(",");
+                    for (String str : ids){
+                        this.sendCalendarByDone(id,str,peiXunNeiRong,starDate,endDate,peiXunDiDian, nameStr,didian);
+                    }
+
+                    String content = "<p style=\"font-weight: 600; font-size: 24px; text-align: center; margin-bottom: 20px;\"><strong>培训通知</strong></p>" +
+                            "<p><strong>一、培训主题</strong></p><p style=\"margin: 0 0 10px 32px;\">"+peiXunNeiRong+"</p><p><strong>二、时间安排</strong></p>" +
+                            "<p style=\"margin-left: 32px;\">开始时间:"+starDate+"</p><p style=\"margin: 0 0 10px 32px\">结束时间:"+endDate+"</p>" +
+                            "<p><strong>三、培训地点</strong></p><p style=\"margin: 0 0 10px 32px\">"+peiXunDiDian+"</p><p><strong>四、参加人员</strong></p>" +
+                            "<p style=\"margin: 0 0 10px 32px\">"+nameStr+"</p>";
+                    NewsPo newsPo = new NewsPo();
+                    newsPo.setAuthor(userName);
+                    newsPo.setContent(content);
+                    newsPo.setDepId(bianZhiBuMen);
+                    newsPo.setDepName(deptName);
+                    newsPo.setPublicDate(new Date());
+                    newsPo.setPublicItem("notices");
+                    newsPo.setPublic0("Y");
+                    newsPo.setStatus("publish");
+                    newsPo.setTitle("【"+ peiXunNeiRong +"】的培训通知");
+                    newsPo.setUserId(userId);
+                    newsPo.setUserName(userName);
+                    newsPo.setType(didian);
+                    newsPo.setKey(id);
+                    newsMgrService.save(newsPo);
+                    log.warn("培训相关的信息填写完整,发布日历和公告,培训记录ID={}",id);
+                }
+            }
+        }
+    }
+
     public void saveNews(NewsPo newsPo){
         String sql = "select id_ from ibps_news where key_='%s'";
         sql = String.format(sql,newsPo.getKey());

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

@@ -32,13 +32,13 @@ public class StaffTrainServiceImpl implements StaffTrainService {
     private ICommonDao<?> commonDao;
 
     @Override
-    public List<TrainingDashBoardBlkDTO> getTrainingDashBoardByBlk(String dept, String types, String dates) {
+    public List<TrainingDashBoardBlkDTO> getTrainingDashBoardByBlk(String dept, String types, String dates,String version) {
 
         List<TrainingDashBoardBlkDTO> list = new ArrayList<>();
         TrainingDashBoardBlkDTO dashBoardDTO = new TrainingDashBoardBlkDTO();
 
         // 近一周发布计划
-        dashBoardDTO.setWeekDtoList(getLastSeven(dept));
+        dashBoardDTO.setWeekDtoList(getLastSeven(dept,version));
 
         String dateCondition = "";String year = "";
 
@@ -56,16 +56,16 @@ public class StaffTrainServiceImpl implements StaffTrainService {
         }
 
         // 在岗培训计划  自动创建  or 手动创建
-        dashBoardDTO.setPlanDto(getPlanRate(dept,dateCondition));
+        dashBoardDTO.setPlanDto(getPlanRate(dept,dateCondition,version));
 
         // 在岗个人培训次数排名
-        dashBoardDTO.setUserRankList(getUserTrainRank(dept,dateCondition));
+        dashBoardDTO.setUserRankList(getUserTrainRank(dept,dateCondition,version));
 
         // 在岗培训类别占比
-        dashBoardDTO.setTypeDto(getTypeRate(dept,dateCondition));
+        dashBoardDTO.setTypeDto(getTypeRate(dept,dateCondition,version));
 
         // 在岗培训对象占比
-        dashBoardDTO.setObjectDto(getObjectRate(dept,dateCondition));
+        dashBoardDTO.setObjectDto(getObjectRate(dept,dateCondition,version));
 
         //  本年度岗前培训计划
         //dashBoardDTO.setNdgqpxList(getCurrentYearData(getYearMonth(),dept,year));
@@ -130,13 +130,22 @@ public class StaffTrainServiceImpl implements StaffTrainService {
         return list;
     }
 
-    public TrainObjectBlkDTO getObjectRate(String dept,String dateCondition){
+    public TrainObjectBlkDTO getObjectRate(String dept,String dateCondition,String version){
         TrainObjectBlkDTO objectDto = new TrainObjectBlkDTO();
         objectDto.setRemark("在岗培训对象占比");
         List<TrainRateBlkDTO> rateDtoList = new ArrayList<>();
-        String sql = "select pei_xun_lei_xing_,count(pei_xun_lei_xing_)as nums from t_rypxcjb where " +
-                " shi_fou_guo_shen_='已结束' %s group by pei_xun_lei_xing_";
-        String talSql = "SELECT COUNT(*) as total_num from t_rypxcjb where  shi_fou_guo_shen_='已结束' %s ";
+        String sql ="";
+        String talSql ="";
+        if(BeanUtils.isNotEmpty(version) && "1".equals(version)){
+            sql = "select pei_xun_lei_xing_,count(pei_xun_lei_xing_)as nums from t_lhrypxjlb where " +
+                    " pei_xun_zhuang_ta='已结束' %s group by pei_xun_lei_xing_";
+            talSql = "SELECT COUNT(*) as total_num from t_lhrypxjlb where  pei_xun_zhuang_ta='已结束' %s ";
+        }else{
+            sql = "select pei_xun_lei_xing_,count(pei_xun_lei_xing_)as nums from t_rypxcjb where " +
+                    " shi_fou_guo_shen_='已结束' %s group by pei_xun_lei_xing_";
+            talSql  = "SELECT COUNT(*) as total_num from t_rypxcjb where  shi_fou_guo_shen_='已结束' %s ";
+        }
+
         dateCondition += String.format(" AND di_dian_ = '%s' ", getDiDian());
         if (BeanUtils.isNotEmpty(dept)){
             dateCondition += String.format(" AND bian_zhi_bu_men_ = '%s' ", dept);
@@ -158,13 +167,21 @@ public class StaffTrainServiceImpl implements StaffTrainService {
         return objectDto;
     }
 
-    public TrainTypeBlkDTO getTypeRate(String dept,String dateCondition){
+    public TrainTypeBlkDTO getTypeRate(String dept,String dateCondition,String version){
         TrainTypeBlkDTO typeDto = new TrainTypeBlkDTO();
         typeDto.setRemark("在岗培训类别占比");
         List<TrainRateBlkDTO> rateDtoList = new ArrayList<>();
-        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 ";
+        String sql = "";
+        String talSql = "";
+        if(BeanUtils.isNotEmpty(version) && "1".equals(version)){
+            sql = "select pei_xun_lei_bie_,count(pei_xun_lei_bie_)as nums from t_lhrypxjlb where " +
+                    " pei_xun_zhuang_ta='已结束' %s group by pei_xun_lei_bie_";
+            talSql = "select COUNT(*) AS total_num from t_lhrypxjlb where  pei_xun_zhuang_ta='已结束' %s ";
+        }else{
+           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_";
+            talSql = "select COUNT(*) AS total_num from t_rypxcjb where  shi_fou_guo_shen_='已结束' %s ";
+        }
         dateCondition += String.format(" AND di_dian_ = '%s' ", getDiDian());
         if (BeanUtils.isNotEmpty(dept)){
             dateCondition += String.format(" AND bian_zhi_bu_men_ = '%s' ", dept);
@@ -186,10 +203,17 @@ public class StaffTrainServiceImpl implements StaffTrainService {
         return typeDto;
     }
 
-    public List<TrainRankDto> getUserTrainRank(String dept, String dateCondition){
-        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  shi_fou_guo_shen_='已结束' %s) " +
-                "GROUP BY ren_yuan_id_) a ,ibps_party_employee e WHERE e.id_=a.ren_yuan_id_ ";
+    public List<TrainRankDto> getUserTrainRank(String dept, String dateCondition,String version){
+        String sql = "";
+        if(BeanUtils.isNotEmpty(version) && "1".equals(version)){
+            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_lhrypxjlb where  pei_xun_zhuang_ta='已结束' %s) " +
+                    "GROUP BY ren_yuan_id_) a ,ibps_party_employee e WHERE e.id_=a.ren_yuan_id_ ";
+        }else{
+            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  shi_fou_guo_shen_='已结束' %s) " +
+                    "GROUP BY ren_yuan_id_) a ,ibps_party_employee e WHERE e.id_=a.ren_yuan_id_ ";
+        }
         dateCondition += String.format(" AND di_dian_ = '%s' ", getDiDian());
         if (BeanUtils.isNotEmpty(dept)){
             dateCondition += String.format(" AND bian_zhi_bu_men_ = '%s'", dept);
@@ -210,12 +234,22 @@ public class StaffTrainServiceImpl implements StaffTrainService {
         return rankedResults;
     }
 
-    public TrainGuardAutoPlanDto getPlanRate(String dept, String dateCondition){
+    public TrainGuardAutoPlanDto getPlanRate(String dept, String dateCondition,String version){
         TrainGuardAutoPlanDto planDto = new TrainGuardAutoPlanDto();
-        String planSql = "select count(*) as auto from t_rypxcjb where ji_hua_wai_jian_ in(select id_ from t_ndrypxjhzb " +
-                "where di_dian_='"+getDiDian()+"') %s";
-        String sumSql = "select count(*) as total from t_rypxcjb where 1=1 %s ";
-        String condition = String.format(" AND di_dian_ = '%s' and shi_fou_guo_shen_='已结束' ", getDiDian());
+        String planSql = "";
+        String sumSql = "";
+        String condition = "";
+        if(BeanUtils.isNotEmpty(version) && "1".equals(version)){
+            planSql = "select count(*) as auto from t_lhrypxjlb where ji_hua_wai_jian_ in(select id_ from t_ndrypxjhzb " +
+                    "where di_dian_='" + getDiDian() + "') %s";
+            sumSql = "select count(*) as total from t_lhrypxjlb where 1=1 %s ";
+            condition = String.format(" AND di_dian_ = '%s' and pei_xun_zhuang_ta='已结束' ", getDiDian());
+        }else{
+            planSql = "select count(*) as auto from t_rypxcjb where ji_hua_wai_jian_ in(select id_ from t_ndrypxjhzb " +
+                    "where di_dian_='" + getDiDian() + "') %s";
+            sumSql = "select count(*) as total from t_rypxcjb where 1=1 %s ";
+            condition = String.format(" AND di_dian_ = '%s' and shi_fou_guo_shen_='已结束' ", getDiDian());
+        }
         if (BeanUtils.isNotEmpty(dept)){
             condition += String.format(" AND bian_zhi_bu_men_ = '%s' ", dept);
         }
@@ -250,17 +284,17 @@ public class StaffTrainServiceImpl implements StaffTrainService {
         // 定义SQL模板
         String countSqlTemplate = "SELECT COALESCE(SUM(num), 0) AS total_num FROM (" +
                 "SELECT LENGTH(pei_xun_ren_yuan_) - LENGTH(REPLACE(pei_xun_ren_yuan_, ',', '')) + 1 AS num " +
-                "FROM t_rypxcjb " +
-                "WHERE shi_fou_guo_shen_ = '已结束' %s) AS subquery";
+                "FROM t_lhrypxjlb " +
+                "WHERE pei_xun_zhuang_ta = '已结束' %s) AS subquery";
 
-        String signSqlTemplate = "SELECT count(DISTINCT b.ren_yuan_id_) total_num from t_rypxcjb a,t_qdxxb b " +
+        String signSqlTemplate = "SELECT count(DISTINCT b.ren_yuan_id_) total_num from t_lhrypxjlb a,t_qdxxb b " +
                 " WHERE a.id_ =b.guan_lian_id_ and FIND_IN_SET(b.ren_yuan_id_,a.pei_xun_ren_yuan_) " +
-                " and a.shi_fou_guo_shen_ = '已结束' %s ";
+                " and a.pei_xun_zhuang_ta = '已结束' %s ";
 
         String sumRealSqlTemplate = "SELECT COALESCE(SUM(num),0) AS realNum FROM (" +
                 "SELECT count(id_) as num FROM t_qdxxb " +
-                "WHERE guan_lian_id_ IN (SELECT id_ FROM t_rypxcjb " +
-                "WHERE shi_fou_guo_shen_ = '已结束' %s) " +
+                "WHERE guan_lian_id_ IN (SELECT id_ FROM t_lhrypxjlb " +
+                "WHERE pei_xun_zhuang_ta = '已结束' %s) " +
                 "GROUP BY guan_lian_id_, ren_yuan_id_) AS re";
 
         for (String date : dateStr) {
@@ -307,15 +341,21 @@ public class StaffTrainServiceImpl implements StaffTrainService {
         return statisticsDtoList;
     }
 
-    public List<TrainWeekDto> getLastSeven(String dept){
+    public List<TrainWeekDto> getLastSeven(String dept,String version){
         List<TrainWeekDto> weekDtoList = new ArrayList<>();
         List<String> lastWeek = getLastSevenDaysDates();
         for (String dateStr : lastWeek) {
             TrainWeekDto weekDto = new TrainWeekDto();
             weekDto.setDate(dateStr);
             weekDto.setDayName(getDayName(dateStr));
-            String sql = "select count(*) value from t_rypxcjb where  shi_fou_guo_shen_='未发布' " +
-                    " and di_dian_='%s' and date_format(pei_xun_shi_jian_,'%%Y-%%m-%%d')='%s' ";
+            String sql = "";
+            if(BeanUtils.isNotEmpty(version) && "1".equals(version)){
+                sql = "select count(*) value from t_lhrypxjlb where  pei_xun_zhuang_ta='未发布' " +
+                        " and di_dian_='%s' and date_format(pei_xun_shi_jian_,'%%Y-%%m-%%d')='%s' ";
+            }else{
+                sql = "select count(*) value from t_rypxcjb where  shi_fou_guo_shen_='未发布' " +
+                        " and di_dian_='%s' and date_format(pei_xun_shi_jian_,'%%Y-%%m-%%d')='%s' ";
+            }
             if (BeanUtils.isNotEmpty(dept)){
                 sql = sql+" and bian_zhi_bu_men_ = '%s'";
                 sql = String.format(sql,getDiDian(),dateStr,dept);

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

@@ -68,13 +68,13 @@ public class StatisticServiceImpl implements StatisticService {
     }
 
     @Override
-    public List<TrainingDashBoardDTO> getTrainingDashBoard(String dept, String types11, String dates,String typeProportion) {
+    public List<TrainingDashBoardDTO> getTrainingDashBoard(String dept, String types11, String dates,String typeProportion,String version) {
 
         List<TrainingDashBoardDTO> list = new ArrayList<>();
         TrainingDashBoardDTO dashBoardDTO = new TrainingDashBoardDTO();
 
         // 近一周发布计划
-        dashBoardDTO.setWeekDtoList(getLastSeven(dept));
+        dashBoardDTO.setWeekDtoList(getLastSeven(dept,version));
 
         //    type       value
         // 周 week  本周 nowWeek  上周 lastWeek  下周 nextWeek
@@ -134,22 +134,22 @@ public class StatisticServiceImpl implements StatisticService {
         }
 
         // 在岗培训计划  自动创建  or 手动创建
-        dashBoardDTO.setPlanDto(getPlanRate(dept,dateCondition));
+        dashBoardDTO.setPlanDto(getPlanRate(dept,dateCondition,version));
 
         // 在岗个人培训次数排名
-        dashBoardDTO.setUserRankList(getUserTrainRank(dept,dateCondition));
+        dashBoardDTO.setUserRankList(getUserTrainRank(dept,dateCondition,version));
 
         // 在岗培训类别占比
-        dashBoardDTO.setTypeDto(getTypeRate(dept,dateCondition,typeProportion));
+        dashBoardDTO.setTypeDto(getTypeRate(dept,dateCondition,typeProportion,version));
 
         // 在岗培训对象占比
-        dashBoardDTO.setObjectDto(getObjectRate(dept,dateCondition));
+        dashBoardDTO.setObjectDto(getObjectRate(dept,dateCondition,version));
 
         //  本年度岗前培训计划
-        dashBoardDTO.setNdgqpxList(getCurrentYearData(getYearMonth(),dept,year));
+        dashBoardDTO.setNdgqpxList(getCurrentYearData(getYearMonth(),dept,year,version));
 
         //  本年度岗前培训类别占比
-        dashBoardDTO.setYearPreWorkDto(getYearPre(dept,year));
+        dashBoardDTO.setYearPreWorkDto(getYearPre(dept,year,version));
 
         list.add(dashBoardDTO);
         return list;
@@ -896,12 +896,22 @@ public class StatisticServiceImpl implements StatisticService {
         }
     }
 
-    public TrainGuardAutoPlanDto getPlanRate(String dept,String dateCondition){
+    public TrainGuardAutoPlanDto getPlanRate(String dept,String dateCondition,String version){
         TrainGuardAutoPlanDto planDto = new TrainGuardAutoPlanDto();
-        String planSql = "select count(*) as auto from t_rypxcjb where ji_hua_wai_jian_ in(select id_ from t_ndrypxjhzb " +
-                "where di_dian_='"+getDiDian()+"') %s";
-        String sumSql = "select count(*) as total from t_rypxcjb where 1=1 %s ";
-        String condition = String.format(" AND di_dian_ = '%s' and shi_fou_guo_shen_='已结束' ", getDiDian());
+        String planSql = "";
+        String sumSql = "";
+        String condition ="";
+        if(BeanUtils.isNotEmpty(version) && "1".equals(version)){
+            planSql = "select count(*) as auto from t_lhrypxjlb where ji_hua_wai_jian_ in(select id_ from t_ndrypxjhzb " +
+                    "where di_dian_='"+getDiDian()+"') %s";
+            sumSql = "select count(*) as total from t_lhrypxjlb where 1=1 %s ";
+            condition = String.format(" AND di_dian_ = '%s' and pei_xun_zhuang_ta='已结束' ", getDiDian());
+        }else{
+          planSql = "select count(*) as auto from t_rypxcjb where ji_hua_wai_jian_ in(select id_ from t_ndrypxjhzb " +
+                    "where di_dian_='"+getDiDian()+"') %s";
+          sumSql = "select count(*) as total from t_rypxcjb where 1=1 %s ";
+          condition = String.format(" AND di_dian_ = '%s' and shi_fou_guo_shen_='已结束' ", getDiDian());
+        }
         if (BeanUtils.isNotEmpty(dept)){
             condition += String.format(" AND bian_zhi_bu_men_ = '%s' ", dept);
         }
@@ -919,15 +929,22 @@ public class StatisticServiceImpl implements StatisticService {
         return planDto;
     }
 
-    public List<TrainWeekDto> getLastSeven(String dept){
+    public List<TrainWeekDto> getLastSeven(String dept,String version){
         List<TrainWeekDto> weekDtoList = new ArrayList<>();
         List<String> lastWeek = getLastSevenDaysDates();
         for (String dateStr : lastWeek) {
             TrainWeekDto weekDto = new TrainWeekDto();
             weekDto.setDate(dateStr);
             weekDto.setDayName(getDayName(dateStr));
-            String sql = "select count(*) value from t_rypxcjb where  shi_fou_guo_shen_='未发布' " +
-                    " and di_dian_='%s' and date_format(pei_xun_shi_jian_,'%%Y-%%m-%%d')='%s' ";
+            String sql = "";
+            if(BeanUtils.isNotEmpty(version) && "1".equals(version)){
+              sql = "select count(*) value from t_lhrypxjlb where  pei_xun_zhuang_ta='未发布' " +
+                        " and di_dian_='%s' and date_format(pei_xun_shi_jian_,'%%Y-%%m-%%d')='%s' ";
+            }else{
+              sql = "select count(*) value from t_rypxcjb where  shi_fou_guo_shen_='未发布' " +
+                        " and di_dian_='%s' and date_format(pei_xun_shi_jian_,'%%Y-%%m-%%d')='%s' ";
+            }
+
             if (BeanUtils.isNotEmpty(dept)){
                 sql = sql+" and bian_zhi_bu_men_ = '%s'";
                 sql = String.format(sql,getDiDian(),dateStr,dept);
@@ -954,13 +971,21 @@ public class StatisticServiceImpl implements StatisticService {
     }
 
 
-    public TrainObjectDto getObjectRate(String dept,String dateCondition){
+    public TrainObjectDto getObjectRate(String dept,String dateCondition,String version){
         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 " +
-                " shi_fou_guo_shen_='已结束' %s group by pei_xun_lei_xing_";
-        String talSql = "SELECT COUNT(*) as total_num from t_rypxcjb where  shi_fou_guo_shen_='已结束' %s ";
+        String sql ="";
+        String talSql ="";
+        if(BeanUtils.isNotEmpty(version) && "1".equals(version)){
+           sql = "select pei_xun_lei_xing_,count(pei_xun_lei_xing_)as nums from t_lhrypxjlb where " +
+                    " pei_xun_zhuang_ta='已结束' %s group by pei_xun_lei_xing_";
+           talSql = "SELECT COUNT(*) as total_num from t_lhrypxjlb where  pei_xun_zhuang_ta='已结束' %s ";
+        }else{
+           sql = "select pei_xun_lei_xing_,count(pei_xun_lei_xing_)as nums from t_rypxcjb where " +
+                    " shi_fou_guo_shen_='已结束' %s group by pei_xun_lei_xing_";
+           talSql = "SELECT COUNT(*) as total_num from t_rypxcjb where  shi_fou_guo_shen_='已结束' %s ";
+        }
         dateCondition += String.format(" AND di_dian_ = '%s' ", getDiDian());
         if (BeanUtils.isNotEmpty(dept)){
             dateCondition += String.format(" AND bian_zhi_bu_men_ = '%s' ", dept);
@@ -982,7 +1007,7 @@ public class StatisticServiceImpl implements StatisticService {
         return objectDto;
     }
 
-    public TrainTypeDto getTypeRate(String dept,String dateCondition,String typeProportion){
+    public TrainTypeDto getTypeRate(String dept,String dateCondition,String typeProportion,String version){
         TrainTypeDto typeDto = new TrainTypeDto();
         typeDto.setRemark("在岗培训类别占比");
         List<TrainRateDto> rateDtoList = new ArrayList<>();
@@ -997,10 +1022,17 @@ public class StatisticServiceImpl implements StatisticService {
                 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 ";
+        String sql = "";
+        String talSql = "";
+        if(BeanUtils.isNotEmpty(version) && "1".equals(version)){
+           sql = "select pei_xun_lei_bie_,count(pei_xun_lei_bie_)as nums from t_lhrypxjlb where " +
+                    " pei_xun_zhuang_ta='已结束' %s group by pei_xun_lei_bie_";
+            talSql = "select COUNT(*) AS total_num from t_lhrypxjlb where  pei_xun_zhuang_ta='已结束' %s ";
+        }else{
+           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_";
+            talSql = "select COUNT(*) AS total_num from t_rypxcjb where  shi_fou_guo_shen_='已结束' %s ";
+        }
         dateCondition += String.format(" AND di_dian_ = '%s' ", getDiDian());
         if (BeanUtils.isNotEmpty(dept)){
             dateCondition += String.format(" AND bian_zhi_bu_men_ = '%s' ", dept);
@@ -1022,13 +1054,21 @@ public class StatisticServiceImpl implements StatisticService {
         return typeDto;
     }
 
-    public TrainYearPreWorkDto getYearPre(String dept,String year){
+    public TrainYearPreWorkDto getYearPre(String dept,String year,String version){
         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 " +
-                " shi_fou_guo_shen_='已结束' %s group by pei_xun_lei_bie_";
-        String talSql = "SELECT count(*) AS total FROM t_rypxcjb WHERE shi_fou_guo_shen_ = '已结束' %s ";
+        String sql = "";
+        String talSql ="";
+        if(BeanUtils.isNotEmpty(version) && "1".equals(version)){
+           sql = "select pei_xun_lei_bie_,count(pei_xun_lei_bie_)as nums from t_lhrypxjlb where " +
+                    " pei_xun_zhuang_ta='已结束' %s group by pei_xun_lei_bie_";
+           talSql = "SELECT count(*) AS total FROM t_lhrypxjlb WHERE pei_xun_zhuang_ta = '已结束' %s ";
+        }else{
+           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_";
+           talSql = "SELECT count(*) AS total FROM t_rypxcjb WHERE shi_fou_guo_shen_ = '已结束' %s ";
+        }
         String dateCondition = String.format(" AND di_dian_ = '%s' ", getDiDian());
         if (BeanUtils.isNotEmpty(dept)){
             dateCondition += String.format(" AND bian_zhi_bu_men_ = '%s' ", dept);
@@ -1052,8 +1092,13 @@ public class StatisticServiceImpl implements StatisticService {
         return preWorkDto;
     }
 
-    public List<Map<String, Object>> getCurrentYearData(List<String> dateStr, String dept,String year) {
-        String baseSql = "SELECT count(*) AS total FROM t_rypxcjb WHERE shi_fou_guo_shen_ = '已结束' and di_dian_='%s'";
+    public List<Map<String, Object>> getCurrentYearData(List<String> dateStr, String dept,String year,String version) {
+        String baseSql ="";
+        if(BeanUtils.isNotEmpty(version) && "1".equals(version)){
+            baseSql = "SELECT count(*) AS total FROM t_lhrypxjlb WHERE pei_xun_zhuang_ta = '已结束' and di_dian_='%s'";
+        }else{
+            baseSql = "SELECT count(*) AS total FROM t_rypxcjb WHERE shi_fou_guo_shen_ = '已结束' and di_dian_='%s'";
+        }
         baseSql = String.format(baseSql,getDiDian());
         List<Map<String, Object>> list = new ArrayList<>();
         for (String date : dateStr) {
@@ -1073,10 +1118,17 @@ public class StatisticServiceImpl implements StatisticService {
         return list;
     }
 
-    public List<TrainRankDto> getUserTrainRank(String dept,String dateCondition){
-        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  shi_fou_guo_shen_='已结束' %s) " +
-                "GROUP BY ren_yuan_id_) a ,ibps_party_employee e WHERE e.id_=a.ren_yuan_id_ ";
+    public List<TrainRankDto> getUserTrainRank(String dept,String dateCondition,String version){
+        String sql = "";
+        if(BeanUtils.isNotEmpty(version) && "1".equals(version)){
+            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_lhrypxjlb where  pei_xun_zhuang_ta='已结束' %s) " +
+                    "GROUP BY ren_yuan_id_) a ,ibps_party_employee e WHERE e.id_=a.ren_yuan_id_ ";
+        }else{
+            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  shi_fou_guo_shen_='已结束' %s) " +
+                    "GROUP BY ren_yuan_id_) a ,ibps_party_employee e WHERE e.id_=a.ren_yuan_id_ ";
+        }
         dateCondition += String.format(" AND di_dian_ = '%s' ", getDiDian());
         if (BeanUtils.isNotEmpty(dept)){
             dateCondition += String.format(" AND bian_zhi_bu_men_ = '%s'", dept);