578fd28f 康伟

kangwei: 运营工作进度统计--安全管理进度统计

1 个父辈 7ceeebd1
......@@ -4,6 +4,7 @@ import com.skua.common.constant.ReportConstant;
import com.skua.common.report.ReportViewUtil;
import com.skua.core.api.vo.Result;
import com.skua.core.context.SpringContextUtils;
import com.skua.modules.dataAnalysis.vo.SafeProgressVO;
import com.skua.modules.dataAnalysis.vo.WorkProgressVO;
import com.skua.tool.util.DateUtils;
import com.skua.tool.util.JSUtils;
......@@ -40,7 +41,7 @@ public class WorkAnalysisController {
}
String departIds = null;//DAY(LAST_DAY('"+startTime+"'))
String sql = "select d.id 'depart_id' , d.depart_name , (DATEDIFF('"+endTime+"', '"+startTime+"') +1) 'day_num' , (month('"+endTime+"') - month('"+startTime+"') + 1) month_num,ifnull(aaa.count,0) 'nh_num' ,ifnull(bbb.count,0) 'szsl_num' ,ifnull(ccc.count,0) 'hy_num' ,ifnull(ddd.count,0) 'yy_month_num',ifnull(fff.count,0) 'df_month_num' ,ifnull(ggg.count,0) 'year_target_num' from sys_depart d ";
sql += getSql(departIds, startTime, endTime, month);
sql += getWorkProgressSql(departIds, startTime, endTime, month);
sql += " where d.depart_type =1 ";
if(StringUtils.isNotEmpty(departIds)){
sql += " d.id in ("+ JSUtils.quoteEach(departIds,",") +")";
......@@ -68,7 +69,7 @@ public class WorkAnalysisController {
String sql = "select count(d.id) 'departNum', (DATEDIFF('"+endTime+"', '"+startTime+"') +1) 'day_num' , (month('"+endTime+"') - month('"+startTime+"') + 1) month_num,";
sql += " ifnull(sum(aaa.count),0) 'nh_num' ,ifnull(sum(bbb.count),0) 'szsl_num' ,ifnull(sum(ccc.count),0) 'hy_num' ,ifnull(sum(ddd.count),0) 'yy_month_num',ifnull(sum(fff.count),0) 'df_month_num' ,ifnull(sum(ggg.count),0) 'year_target_num' ";
sql += " from sys_depart d ";
sql += getSql(departIds, startTime, endTime, month);
sql += getWorkProgressSql(departIds, startTime, endTime, month);
sql += " where d.depart_type =1 ";
if(StringUtils.isNotEmpty(departIds)){
sql += " d.id in ("+ JSUtils.quoteEach(departIds,",") +")";
......@@ -83,7 +84,67 @@ public class WorkAnalysisController {
result.setSuccess(true);
return result;
}
private String getSql( String departIds,String startTime, String endTime,String month){
@ApiOperation(value = "安全管理进度统计", notes = "安全管理进度统计 timeType = 1 表示月份,timeType=2 表示年")
@GetMapping("/analysisBySafeProgress")
public List<SafeProgressVO> analysisBySafeProgress(@RequestParam(defaultValue = "1") Integer timeType, String startTime, String endTime) {
JdbcTemplate jdbcTemplate = (JdbcTemplate) SpringContextUtils.getBean("master");
String departIds = null;
String sql = "select d.id 'depart_id' , d.depart_name , ifnull(aaa.count,0) 'meet_num', ifnull(bbb.count,0) 'meet_total', ifnull(ccc.count,0) 'exam_num', ifnull(ddd.count,0) 'exam_total',ifnull(eee.count, 0) 'frequency_num' , ifnull(fff.count , 0) 'frequency_total'";
sql += " from sys_depart d ";
sql += getSafeProgressSql(departIds, startTime,endTime);
sql += " where d.depart_type =1 ";
if(StringUtils.isNotEmpty(departIds)){
sql += " d.id in ("+ JSUtils.quoteEach(departIds,",") +")";
}
sql += " order by (ifnull(aaa.count,0) + ifnull(bbb.count,0) + ifnull(ccc.count,0) + ifnull(ddd.count,0) + ifnull(fff.count,0) ) asc ";
System.out.println("sql = "+sql);
List<SafeProgressVO> dataList = jdbcTemplate.query(sql,new BeanPropertyRowMapper<SafeProgressVO>(SafeProgressVO.class));
return dataList;
}
@ApiOperation(value = "安全管理进度统计-数量", notes = "安全管理进度统计 timeType = 1 表示月份,timeType=2 表示年")
@GetMapping("/analysisTotalBySafeProgress")
public SafeProgressVO analysisTotalBySafeProgress(@RequestParam(defaultValue = "1") Integer timeType, String startTime, String endTime) {
String departIds = null;//DAY(LAST_DAY('"+startTime+"'))
String sql = "select count(d.id) 'departNum', ifnull(sum(aaa.count),0) 'meet_num' ,ifnull(sum(bbb.count),0) 'meet_total' ,ifnull(sum(ccc.count),0) 'exam_num' ,ifnull(sum(ddd.count),0) 'exam_total',ifnull(sum(eee.count),0) 'frequency_num' ,ifnull(sum(fff.count),0) 'frequency_total' ";
sql += " from sys_depart d ";
sql += getSafeProgressSql(departIds, startTime,endTime);
sql += " where d.depart_type =1 ";
if(StringUtils.isNotEmpty(departIds)){
sql += " d.id in ("+ JSUtils.quoteEach(departIds,",") +")";
}
System.out.println("sql = "+sql);
JdbcTemplate jdbcTemplate = (JdbcTemplate) SpringContextUtils.getBean("master");
List<SafeProgressVO> dataList = jdbcTemplate.query(sql,new BeanPropertyRowMapper<SafeProgressVO>(SafeProgressVO.class));
if(dataList != null && !dataList.isEmpty()){
return dataList.get(0);
}
return null;
}
private String getSafeProgressSql( String departIds,String startTime, String endTime){
JdbcTemplate jdbcTemplate = (JdbcTemplate) SpringContextUtils.getBean("master");
String userIdsSql = "select GROUP_CONCAT( DISTINCT exam_user_ids) 'user_ids' from edu_paper where end_time >='"+startTime+"' and end_time <= '"+endTime+"'";
String userIds = jdbcTemplate.queryForObject(userIdsSql , String.class);
if(StringUtils.isNotEmpty(userIds)){
userIds = JSUtils.quoteEach(userIds,",");
}else{
userIds = "''";
}
String sql = "";
sql += " left join( select depart_id , count(1) 'count' from ajh_meeting_send where meet_status =2 and meet_end_time >='"+startTime+"' and meet_end_time <= '"+endTime+"' group by depart_id )aaa on aaa.depart_id = d.id ";
sql += " left join (select depart_id , count(1) 'count' from ajh_meeting_send where meet_id in (select id from ajh_meeting where end_time >='"+startTime+"' and end_time <= '"+endTime+"') group by depart_id ) bbb on bbb.depart_id = d.id ";
sql += " left join (select depart_id,count(user_id) 'count' from edu_user_paper where DATE_FORMAT(end_time,'%Y-%m-%d') >='"+startTime+"' and end_time <= '"+endTime+"' and user_id in("+userIds+") group by depart_id )ccc on ccc.depart_id = d.id";
sql += " left join ( select dep_id,count(user_id) 'count' from sys_user_depart where user_id in("+userIds+") group by dep_id )ddd on ddd.dep_id = d.id";
sql += " left join ( select depart_id ,count(id) 'count' from danger_inspection_record where status = '2' and end_date >= '"+startTime+" 00:00:00' and end_date <='"+endTime+" 23:59:59' group by depart_id ) eee on eee.depart_id = d.id ";
sql += " left join( select sum( (DATEDIFF('"+endTime+"', '"+startTime+"') +1)*24/ dlm.frequency ) 'count' , dlm.depart_id from danger_level_manage dlm where dlm.frequency IS NOT NULL and frequency <> '' ) fff on fff.depart_id = d.id ";
return sql ;
}
private String getWorkProgressSql( String departIds,String startTime, String endTime,String month){
String sql = "";
//能耗日报
String view3a24Sql = ReportViewUtil.buildView(ReportConstant.view3a24,"DLHJ",departIds,startTime,endTime);
......
package com.skua.modules.dataAnalysis.vo;
/**
* @auther kangwei
* @create 2025-01-23-9:24
*/
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 工作进度
*/
@Data
@ApiModel(value = "SafeProgressVO安全管理进度", description = "安全管理进度")
public class SafeProgressVO {
@ApiModelProperty(value = "所属厂站")
private String departId;
@ApiModelProperty(value = "所属厂站")
private String departName;
@ApiModelProperty(value = "所属厂站-数量")
private String departNum;
@ApiModelProperty(value = "会议任务--完成数量")
private Integer meetNum;
@ApiModelProperty(value = "会议任务--计划总数")
private Integer meetTotal;
@ApiModelProperty(value = "考试任务-完成数量")
private Integer examNum;
@ApiModelProperty(value = "考试任务-计划总数")
private Integer examTotal;
@ApiModelProperty(value = "巡检任务-完成数量")
private Integer frequencyNum;
@ApiModelProperty(value = "巡检任务-计划总数")
private Integer frequencyTotal;
@ApiModelProperty(value = "是否完成: 0 未完成 1 已完成")
private Integer completeFlag ;
public Integer getCompleteFlag() {
completeFlag = 0;
if((meetNum >= meetTotal) && (examNum >= examTotal) && (frequencyNum >= frequencyTotal)){
completeFlag = 1;
}
return completeFlag;
}
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!