029be1e5 张雷

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

2 个父辈 d958aed2 d432b975
......@@ -95,6 +95,11 @@ public interface IInspectionAnalysisService {
*/
List<InspectionAbnormalItemsTrendVO> getInspectionAbnormalItemsTrendDetail(String departIds, String startDate, String endDate);
/**
* 巡检分析-巡检设备概况[未检、异常])
* @param startDate
* @param endDate
* @return
*/
Map<String,Object> getInspectionEquipByStatus(String startDate, String endDate);
}
......
......@@ -3,8 +3,10 @@ package com.skua.modules.inspection.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.skua.core.context.BaseContextHandler;
import com.skua.core.context.SpringContextUtils;
import com.skua.core.util.ConvertUtils;
import com.skua.core.util.DateUtils;
import com.skua.modules.common.service.ICommonSqlService;
import com.skua.modules.flow.business.service.FlowBusinessService;
import com.skua.modules.flow.engine.constant.FlowEngineConstant;
import com.skua.modules.inspection.entity.*;
......@@ -15,8 +17,11 @@ import com.skua.modules.system.entity.ProblemReportPlan;
import com.skua.modules.system.entity.SysDepart;
import com.skua.modules.system.service.IProblemReportPlanService;
import com.skua.modules.system.service.ISysDepartService;
import com.skua.tool.util.JSUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.text.NumberFormat;
......@@ -54,6 +59,8 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
private IInspectionTaskFillGroupFillService inspectionTaskFillGroupFillService;
@Autowired
private ICommonSqlService commonSqlService;
@Autowired
private InspectionAnalysisMapper inspectionAnalysisMapper;
private static NumberFormat numberFormat;
......@@ -356,7 +363,7 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
}
/***
* 巡检分析-巡检任务指标
* @param departIds
* @param
* @param startDate
* @param endDate
* @return
......@@ -696,6 +703,8 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
List<Map<String, Object>> mapList = inspectionTaskFillContentService.listMaps(inspectionTaskFillContentQueryWrapper);
//异常任务数
int abnormalInspectionTaskCount = mapList.size();
//查询问题上报id集合
QueryWrapper<InspectionTaskProblemReport> inspectionTaskProblemReportQueryWrapper = new QueryWrapper<>();
inspectionTaskFillContentQueryWrapper.in("inspection_task_id", checkedInspectionTaskIdList);
......@@ -974,16 +983,125 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
@Override
public Map<String,Object> getInspectionEquipByStatus(String startDate, String endDate) {
Map<String,Object> map = new HashMap<>();
List<InspectionEquipInfoListVO> noCheckinList = new ArrayList<>();
List<InspectionEquipInfoListVO> falutList = new ArrayList<>();
String departIds = BaseContextHandler.getDeparts();
//查询时间内已巡检任务信息
String sql = " select ei.depart_id ,d.depart_name,d.parent_id , p.depart_name 'parent_name' ,ei.equipment_name,ec.des 'equipType' from (";
sql += getCheckedInspectionEquipIds(departIds ,startDate, endDate,"0");
sql += " ) ddd ";
sql += " left join equipment_info ei on ddd.equip_info_id = ei.id ";
sql += " left join sys_depart d on ei.depart_id = d.id ";
sql += " left join sys_depart p on d.parent_id = p.id ";
sql += " left join equipment_category ec on ec.id = ei.equipment_type ";
List<InspectionEquipInfoListVO> falutList =getJdbcTemplate().query(sql,new BeanPropertyRowMapper<InspectionEquipInfoListVO>(InspectionEquipInfoListVO.class));
if(falutList == null ) falutList = new ArrayList<>();
//未检测设备
sql = " select ei.depart_id ,d.depart_name,d.parent_id , p.depart_name 'parent_name' ,ei.equipment_name,ec.des 'equipType' from (";
sql += " select aaaaa.equip_info_id from ( " +getInspectionEquipIdsSql(departIds,startDate,endDate)+" ) aaaaa";
sql += " left join (" +getCheckedInspectionEquipIds(departIds,startDate,endDate,null) +")bbbbb on bbbbb.equip_info_id = aaaaa.equip_info_id where bbbbb.equip_info_id is null ";
sql += " ) ddd ";
sql += " left join equipment_info ei on ddd.equip_info_id = ei.id ";
sql += " left join sys_depart d on ei.depart_id = d.id ";
sql += " left join sys_depart p on d.parent_id = p.id ";
sql += " left join equipment_category ec on ec.id = ei.equipment_type ";
List<InspectionEquipInfoListVO> noCheckinList =getJdbcTemplate().query(sql,new BeanPropertyRowMapper<InspectionEquipInfoListVO>(InspectionEquipInfoListVO.class));
if(noCheckinList == null ) noCheckinList = new ArrayList<>();
map.put("nocheckCount",noCheckinList.size());
map.put("abnormalCount",falutList.size());
map.put("nocheckList",noCheckinList);
map.put("abnormalList",falutList);
//查询时间内已巡检任务信息
return map;
}
//获取应检设备的总数sql
private String getTotalInspectionEquipSql(String departIds,String startDate,String endDate){
String sql = "SELECT count(DISTINCT equip_info_id ) FROM inspection_task_point_fill_group ";
sql += " WHERE inspection_task_id IN ( select id FROM inspection_task WHERE inspection_cycle_start_date >= '"+startDate+" 00:00:00' AND inspection_cycle_start_date <= '"+endDate+" 23:59:59' AND task_state IN ('2','3') ";
if(StringUtils.isNotEmpty(departIds)){
sql += " and depart_id in ("+JSUtils.quoteEach(departIds,",")+")";
}
sql +=" ) AND equip_info_id IS NOT NULL AND equip_info_id <> '' ";
return sql;
}
//获取应检设备的ids集合sql
private String getInspectionEquipIdsSql(String departIds,String startDate,String endDate){
String sql = "SELECT DISTINCT equip_info_id FROM inspection_task_point_fill_group ";
sql += " WHERE inspection_task_id IN ( select id FROM inspection_task WHERE inspection_cycle_start_date >= '"+startDate+" 00:00:00' AND inspection_cycle_start_date <= '"+endDate+" 23:59:59' AND task_state IN ('2','3') ";
if(StringUtils.isNotEmpty(departIds)){
sql += " and depart_id in ("+JSUtils.quoteEach(departIds,",")+")";
}
sql +=" ) AND equip_info_id IS NOT NULL AND equip_info_id <> '' ";
return sql;
}
//获取已检设备的id集合
private String getCheckedInspectionEquipIds(String departIds,String startDate,String endDate,String choice_state){
String sql = " SELECT aaa.equip_info_id FROM inspection_task_fill_content isfc ";
sql += " left join ( ";
sql += " SELECT equip_info_id ,inspection_point_fill_group_id ,inspection_fill_group_id ,inspection_task_id FROM inspection_task_point_fill_group ";
sql += " WHERE inspection_task_id IN ( select id FROM inspection_task WHERE inspection_cycle_start_date >= '"+startDate+" 00:00:00' AND inspection_cycle_start_date <= '"+endDate+" 23:59:59' AND task_state IN ('2','3') ";
if(StringUtils.isNotEmpty(departIds)){
sql += " and depart_id in ("+JSUtils.quoteEach(departIds,",")+")";
}
sql +=" ) AND equip_info_id IS NOT NULL AND equip_info_id <> '' ";
sql += " GROUP BY equip_info_id,inspection_point_fill_group_id,inspection_fill_group_id,inspection_task_id ";
sql += ")aaa on isfc.inspection_task_id = aaa.inspection_task_id and isfc.inspection_point_fill_group_id = aaa.inspection_point_fill_group_id and isfc.inspection_fill_group_id = aaa.inspection_fill_group_id ";
sql += " where isfc.fill_content IS NOT NULL AND isfc.fill_content <> '' AND aaa.equip_info_id IS NOT NULL AND aaa.equip_info_id <> '' ";
if(StringUtils.isNotEmpty(choice_state)){
sql += " AND choice_state = '0' ";
}
sql += " GROUP BY aaa.equip_info_id ";
return sql;
}
private JdbcTemplate getJdbcTemplate(){
JdbcTemplate jdbcTemplate = (JdbcTemplate) SpringContextUtils.getBean("master");
return jdbcTemplate;
}
/***
* 获取第一个字符串列表中存在而第二个字符串列表中不存在的元素
* @param string1
* @param string2
* @return
*/
private String getNoExamUserIds(String string1 , String string2){
// 分割字符串
String[] array1 = string1.split(",");
String[] array2 = string2.split(",");
// 将array2转换为Set集合
Set<String> set2 = new HashSet<>(Arrays.asList(array2));
// 获取在array1中但不在set2中的元素
String result = Arrays.stream(array1)
.filter(element -> !set2.contains(element))
.collect(Collectors.joining(","));
return result;
}
private String getEquipIds(String departIds, String taskState,String startTime,String endTime){
String sql = "select GROUP_CONCAT( aaa.equip_info_ids ) from inspection_task t";
sql += " left join (select inspection_task_id ,GROUP_CONCAT(equip_info_id) 'equip_info_ids' from inspection_task_point_fill_group where equip_info_id > 0 group by inspection_task_id )aaa on aaa.inspection_task_id = t.id ";
sql += " where aaa.equip_info_ids >0 ";
if(StringUtils.isNotEmpty(startTime)){
sql += " and DATE_FORMAT(t.inspection_cycle_start_date,'%Y-%m-%d') >= '"+startTime+"' ";
}
if(StringUtils.isNotEmpty(endTime)){
sql += " and DATE_FORMAT(t.inspection_cycle_start_date,'%Y-%m-%d') <= '"+endTime+"' ";
}
if(StringUtils.isNotEmpty(taskState)){
sql += " and t.task_state in ("+ JSUtils.quoteEach(taskState,",") +")";
}
if(StringUtils.isNotEmpty(departIds)){
sql += " and t.depart_id in ("+ JSUtils.quoteEach(departIds,",") +")";
}
String equipIds = commonSqlService.queryForString(sql);
//去重
String result = Arrays.stream(equipIds.split(","))
.distinct()
.collect(Collectors.joining(","));
//System.out.println("去重后的字符串: " + result);
return result;
}
public static List<String[]> getCycleList(int cycleNum, String startTime, String endTime) throws ParseException {
// System.out.println("统计的时间段为:从" + startTime + "到" + endTime);
......
package com.skua.modules.inspection.vo;
import com.skua.tool.util.JSUtils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!