0d28b43b 张雷

feat(module-inspection): 优化巡检计划和任务查询接口

- 新增巡检计划分页查询接口和相关实现
- 重构巡检任务分页查询接口,增加异常状态筛选功能
-优化巡检点历史数据查询接口,采用多线程提高查询效率
- 更新实体类和 Mapper接口以支持新功能
1 个父辈 31442ef8
正在显示 17 个修改的文件 包含 326 行增加184 行删除
......@@ -19,7 +19,6 @@ import com.skua.core.service.IFactoryInfoService;
import com.skua.core.util.ConvertUtils;
import com.skua.core.util.DateUtils;
import com.skua.modules.algorithm.handle.IAlarmLimitCustomService;
import com.skua.modules.algorithm.service.ISysAlgorithmLibraryService;
import com.skua.modules.algorithm.service.ISysAlgorithmStatisticsLibraryService;
import com.skua.modules.algorithm.vo.SysAlgorithmStatisticsLibraryVO;
import com.skua.modules.algorithm.vo.SysAlgorithmStatisticsResultChartsVO;
......@@ -27,7 +26,6 @@ import com.skua.modules.algorithm.vo.SysAlgorithmStatisticsResultNumberVO;
import com.skua.modules.algorithm.vo.SysAlgorithmStatisticsResultVO;
import com.skua.modules.flow.utils.ObjectUtil;
import com.skua.modules.flow.utils.StringUtil;
import com.skua.modules.system.datestandard.service.ISysMonitorMetricInfoService;
import com.skua.modules.system.entity.SysDepart;
import com.skua.modules.system.entity.SysFactoryInfo;
import com.skua.modules.system.service.ISysDepartService;
......@@ -45,7 +43,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.text.NumberFormat;
......@@ -76,8 +73,6 @@ public class ScreenDataController {
@Autowired
private ISysFactoryInfoService sysFactoryInfoService;
@Autowired
public ISysAlgorithmLibraryService sysAlgorithmLibraryService;
@Autowired
private IDataCountDayService dataCountDayService;
@Autowired
private ISysFactoryDeviceService sysFactoryDeviceService;
......@@ -134,17 +129,13 @@ public class ScreenDataController {
/**
* app水量情况
*
* @param departId
* @param req
* @return
*/
@AutoLog(value = "app水量情况")
@ApiOperation(value = "app水量情况", notes = "app水量情况")
@GetMapping(value = "/getAppSlqk")
public Result<Map<String, Object>> getAppSlqk(String departId,
HttpServletRequest req) {
public Result<Map<String, Object>> getAppSlqk(String departId) {
Result<Map<String, Object>> result = new Result<Map<String, Object>>();
Map<String, Object> resultMap = new HashMap<String, Object>();
NumberFormat numberFormat = NumberFormat.getInstance();
......@@ -188,7 +179,6 @@ public class ScreenDataController {
Double monthSl = Double.parseDouble(monthMap.get("JSLL").toString());
resultMap.put("本月累计水量", numberFormat.format(monthSl / 10000));
}
//上月累计水量
String lastMonthStartDate = DateUtils.getLastMonthOfMonth(DateUtils.getTodayOrMonthDate("month")) + "-01";
String lastMonthEndDate = DateUtils.getLastDayOfMonth(DateUtils.getLastMonthOfMonth(DateUtils.getTodayOrMonthDate("month")));
......@@ -204,7 +194,6 @@ public class ScreenDataController {
String hb = numberFormat.format((monthSl - lastMonthSl) / 10000);
resultMap.put("环比上月", hb);
}
}
result.setSuccess(true);
result.setResult(resultMap);
......@@ -213,17 +202,13 @@ public class ScreenDataController {
/**
* 今日水量情况
*
* @param departId
* @param req
* @return
*/
@AutoLog(value = "今日水量情况")
@ApiOperation(value = "今日水量情况", notes = "今日水量情况")
@GetMapping(value = "/getTodaySl")
public Result<Map<String, Object>> getTodaySl(String departId,
HttpServletRequest req) {
public Result<Map<String, Object>> getTodaySl(String departId) {
Result<Map<String, Object>> result = new Result<Map<String, Object>>();
Map<String, Object> resultMap = new HashMap<String, Object>();
JdbcTemplate masterDB = (JdbcTemplate) SpringContextUtils.getBean("master");
......@@ -246,20 +231,15 @@ public class ScreenDataController {
return result;
}
/**
* 今日水量情况
*
* @param req GZGSDH
* @return
*/
@AutoLog(value = "各子公司电耗")
@ApiOperation(value = "各子公司电耗", notes = "各子公司电耗")
@PostMapping(value = "/getFactoryDH")
public Result<Map<String, Object>> getFactoryDH(@RequestBody JSONObject jsonObject,
HttpServletRequest req) {
public Result<Map<String, Object>> getFactoryDH(@RequestBody JSONObject jsonObject) {
Result<Map<String, Object>> result = new Result<Map<String, Object>>();
Map<String, Object> resultMap = new LinkedHashMap<String, Object>();
//将jsonObject转sysAlgorithmStatisticsLibraryVO对象
......@@ -329,7 +309,6 @@ public class ScreenDataController {
}
}
resultMap.put("d", dList.size());
resultMap.put("z", zList.size());
resultMap.put("g", gList.size());
......@@ -342,32 +321,23 @@ public class ScreenDataController {
result.setSuccess(true);
result.setResult(resultMap);
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/**
* 今日水量情况
*
* @param req GZGSYH
* @param req GLDSYH
* @return
*/
@AutoLog(value = "各子公司吨水药耗")
@ApiOperation(value = "各子公司吨水药耗", notes = "各子公司吨水药耗")
@PostMapping(value = "/getFactoryYH")
public Result getFactoryYH(@RequestBody JSONObject jsonObject,
HttpServletRequest req) {
public Result getFactoryYH(@RequestBody JSONObject jsonObject) {
Result result = new Result();
//将jsonObject转sysAlgorithmStatisticsLibraryVO对象
SysAlgorithmStatisticsLibraryVO sysAlgorithmStatisticsLibraryVO = JSONObject.toJavaObject(jsonObject, SysAlgorithmStatisticsLibraryVO.class);
QueryWrapper<SysDepart> sysDepartQueryWrapper = new QueryWrapper<>();
......@@ -433,50 +403,39 @@ public class ScreenDataController {
newVo.setUnit(unit);
number.put(replace, newVo);
}
}
resultMap.put("number", number);
resultList.add(resultMap);
}
result.setResult(resultList);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/**
* @param departId
* @param req
* @return
*/
@AutoLog(value = "数字指挥中心-运行负荷率分析")
@ApiOperation(value = "数字指挥中心-运行负荷率分析", notes = "数字指挥中心-运行负荷率分析")
@GetMapping(value = "/factoryFhl")
public Result<Map<String, Object>> factoryFhl(String departId, String month,
HttpServletRequest req) {
public Result<Map<String, Object>> factoryFhl(String departId, String month) {
Result<Map<String, Object>> result = new Result<Map<String, Object>>();
Map<String, Object> resultMap = new HashMap<String, Object>();
JdbcTemplate masterDB = (JdbcTemplate) SpringContextUtils.getBean("master");
if (org.apache.commons.lang3.StringUtils.isEmpty(departId)) {
if (ConvertUtils.isEmpty(departId)) {
departId = BaseContextHandler.getDeparts();
QueryWrapper<SysDepart> sysDepartQueryWrapper = new QueryWrapper<>();
sysDepartQueryWrapper.eq("del_flag", 1).eq("depart_type", 1).in("id", Lists.newArrayList(departId.split(",")))
.select("id,depart_name");
List<Map<String, Object>> departMapList = sysDepartService.listMaps(sysDepartQueryWrapper);
departId = departMapList.stream().map(map ->
String.valueOf(map.get("id"))
).collect(Collectors.joining(","));
// QueryWrapper<SysDepart> sysDepartQueryWrapper = new QueryWrapper<>();
// sysDepartQueryWrapper.eq("del_flag", 1).eq("depart_type", 1).in("id", Lists.newArrayList(departId.split(",")))
// .select("id,depart_name");
// List<Map<String, Object>> departMapList = sysDepartService.listMaps(sysDepartQueryWrapper);
// departId = departMapList.stream().map(map ->
// String.valueOf(map.get("id"))
// ).collect(Collectors.joining(","));
}
String thisMonth = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
String startDate = DateUtils.getTodayOrMonthDate("day") + " 00:00:00";
List<Map<String, Object>> fhlMaps = screenDataService.beforeTodayAvgFhl(departId, month, masterDB);
//如果是当月,处理水量加上当天小时数据和实时数据
if (!CollectionUtil.isEmpty(fhlMaps)) {
......
......@@ -43,7 +43,6 @@ public class InspectionPlanController {
* @param inspectionPlan 巡检计划对象
* @param pageNo 页码
* @param pageSize 每页大小
* @param req
* @author Xie Chao,2021-08-11 13:56
*/
@AutoLog(value = "巡检计划-分页列表查询")
......@@ -51,14 +50,11 @@ public class InspectionPlanController {
@GetMapping(value = "/list")
public Result<IPage<InspectionPlan>> queryPageList(InspectionPlan inspectionPlan,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
Result<IPage<InspectionPlan>> result = new Result<>();
try {
inspectionPlan.setDelFlag(0);
QueryWrapper<InspectionPlan> queryWrapper = QueryGenerator.initQueryWrapper(inspectionPlan, req.getParameterMap());
Page<InspectionPlan> page = new Page<>(pageNo, pageSize);
IPage<InspectionPlan> pageList = inspectionPlanService.page(page, queryWrapper);
IPage<InspectionPlan> pageList = inspectionPlanService.getPage(page, inspectionPlan);
result.setSuccess(true);
result.setResult(pageList);
} catch (Exception e) {
......
......@@ -22,6 +22,7 @@ import javax.servlet.http.HttpServletRequest;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* <pre>
......@@ -64,7 +65,30 @@ public class InspectionTaskController {
inspectionTaskVO.setEndTime(inspectionTaskVO.getEndTime() + " 23:59:59");
}
Page<InspectionTask> page = new Page<>(pageNo, pageSize);
QueryWrapper isExceptionQueryWrapper = new QueryWrapper();
isExceptionQueryWrapper.eq("itdtfc.choice_state","0");
isExceptionQueryWrapper.groupBy("itfc.inspection_task_id");
List<String> isExceptionInspectionTaskIdList = inspectionTaskService.getIsExceptionInspectionTask(isExceptionQueryWrapper);
IPage<InspectionTask> pageList = inspectionTaskService.getPage(page, inspectionTaskVO);
List<InspectionTask> inspectionTaskList = pageList.getRecords();
List<String> inspectionTaskIdList = inspectionTaskList.stream().map(InspectionTask::getId).collect(Collectors.toList());
if (inspectionTaskIdList.size() == 0){
result.setSuccess(true);
result.setResult(pageList);
return result;
}
if (StringUtils.isBlank(inspectionTaskVO.getIsException())) {
isExceptionQueryWrapper.in("itfc.inspection_task_id", inspectionTaskIdList);
isExceptionInspectionTaskIdList = inspectionTaskService.getIsExceptionInspectionTask(isExceptionQueryWrapper);
}
for (InspectionTask inspectionTask : inspectionTaskList) {
if (isExceptionInspectionTaskIdList.contains(inspectionTask.getId())){
inspectionTask.setIsException("true");
}else{
inspectionTask.setIsException("false");
}
}
pageList.setRecords(inspectionTaskList);
result.setSuccess(true);
result.setResult(pageList);
return result;
......@@ -72,6 +96,32 @@ public class InspectionTaskController {
/**
* <pre>
* 实体字段翻译为数据库表字段
* </pre>
* @param entityField
* @return
* @author Li Yuanyuan, 2024年3月27日 下午5:57:18
* @Description: TODO(这里描述这个方法的需求变更情况)
*/
private String getDatabaseFieldToEntity(String entityField) {
String dataBaseField = "";
if("inspectionCycleStartDate".equals(entityField)) {
dataBaseField = "inspection_cycle_start_date";
}
if("taskStartTime".equals(entityField)) {
dataBaseField = "task_start_time";
}
if("taskEndTime".equals(entityField)) {
dataBaseField = "task_end_time";
}
if("taskState".equals(entityField)) {
dataBaseField = "task_state";
}
return dataBaseField;
}
/**
* <pre>
* 通过巡检任务id删除对象
* </pre>
*
......
package com.skua.modules.inspection.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.skua.core.aspect.annotation.Dict;
......@@ -112,4 +113,8 @@ public class InspectionPlan {
@ApiModelProperty(value = "计划任务类型")
@Dict(dicCode = "inspection_plan_type")
private String inspectionPlanType;
/**关联设备数量*/
@TableField(exist = false)
private String equipCount;
}
......
......@@ -151,8 +151,12 @@ public class InspectionTask {
@ApiModelProperty(value = "删除标识(0:删除,1:有效)")
private String delFlag;
/**巡检类型:设备、工艺、其他*/
@TableField(exist=false)
@Dict(dicCode = "inspection_plan_type")
private String inspectionPlanType;
/**是否异常*/
@TableField(exist = false)
private String isException;
}
......
......@@ -22,7 +22,7 @@ import java.util.Date;
//@Accessors(chain = true)
@ApiModel(value="inspection_task_point对象", description="巡检任务-巡检点")
public class InspectionTaskPoint {
/**主键*/
@TableId(type = IdType.ID_WORKER_STR)
@ApiModelProperty(value = "主键")
......@@ -103,4 +103,13 @@ public class InspectionTaskPoint {
@Excel(name = "排序", width = 15)
@ApiModelProperty(value = "排序")
private String sort;
/**巡检点状态(0:未运行,1启用,2维修中)*/
private String pointStatus;
/**打卡时间*/
@Excel(name = "打卡时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "打卡时间")
private Date clockStatusTime;
}
......
......@@ -11,4 +11,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface InspectionPlanMapper extends BaseMapper<InspectionPlan> {
List<InspectionPlan> getPage(@Param("departId") String departId, @Param("planName") String planName, @Param("inspectionPlanType") String inspectionPlanType);
}
......
......@@ -34,4 +34,14 @@ public interface InspectionTaskMapper extends BaseMapper<InspectionTask> {
Map<String, Object> getEquipmentInfo(@Param(Constants.WRAPPER)QueryWrapper queryWrapper);
List<InspectionTask> getList(@Param("inspectionTaskVO") InspectionTaskVO inspectionTaskVO);
@Select("SELECT" +
" itfc.inspection_task_id as inspectionTaskId " +
" FROM " +
" inspection_task_fill_content itfc " +
" LEFT JOIN inspection_task_fill_choice itdtfc ON itdtfc.id = itfc.fill_content " +
" AND itdtfc.inspection_fill_id = itfc.inspection_fill_id " +
" AND itdtfc.inspection_task_id = itfc.inspection_task_id " +
" ${ew.customSqlSegment}")
List<Map<String, Object>> getIsExceptionInspectionTask(@Param(Constants.WRAPPER)QueryWrapper queryWrapper);
}
......
......@@ -2,4 +2,19 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.skua.modules.inspection.mapper.InspectionPlanMapper">
</mapper>
\ No newline at end of file
<select id="getPage" resultType="com.skua.modules.inspection.entity.InspectionPlan">
select * from inspection_plan p
where p.del_flag = '0'
<if test="departId!=null and departId!=''">
AND p.depart_id = #{departId}
</if>
<if test="planName!=null and planName!=''">
AND p.plan_name like CONCAT('%',#{planName},'%')
</if>
<if test="inspectionPlanType!=null and inspectionPlanType!=''">
AND p.inspection_plan_type = #{inspectionPlanType}
</if>
order by p.create_time desc
</select>
</mapper>
......
package com.skua.modules.inspection.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.skua.modules.inspection.entity.InspectionPlan;
import com.baomidou.mybatisplus.extension.service.IService;
import com.skua.modules.inspection.vo.InspectionPlanVO;
......@@ -18,4 +20,6 @@ public interface IInspectionPlanService extends IService<InspectionPlan> {
Map<String,Object> getInspectionPlanById(String planId);
Map<String,Object> checkEditInspectionPlan(String planId,String planStartDate,String planTaskStartTime);
IPage<InspectionPlan> getPage(Page<InspectionPlan> page, InspectionPlan inspectionPlan);
}
......
......@@ -17,7 +17,7 @@ public interface IInspectionTaskFillContentService extends IService<InspectionTa
List<Map<String, Object>> getInspectionPointHistoryByTaskId(String taskId);
List<Map<String, Object>> getInspectionHistoryFillGroupByInspectionPointId(String taskId, String inspectionPointId);
Map<String,List<Map<String, Object>>> getInspectionHistoryFillGroupByInspectionPointId(String taskId, String inspectionPointId);
List<Map<String, Object>> getInspectionHistoryByTaskId(String taskId);
......
......@@ -39,4 +39,6 @@ public interface IInspectionTaskService extends IService<InspectionTask> {
boolean checkInspectionTriggerEquipQr(String equipmentInfoId, String code);
IPage<InspectionTask> getPage(Page<InspectionTask> page, InspectionTaskVO inspectionTaskVO);
List<String> getIsExceptionInspectionTask(QueryWrapper isExceptionQueryWrapper);
}
......
......@@ -2,6 +2,7 @@ package com.skua.modules.inspection.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.skua.core.util.ConvertUtils;
......@@ -155,4 +156,12 @@ public class InspectionPlanServiceImpl extends ServiceImpl<InspectionPlanMapper,
}
return resultMap;
}
@Override
public IPage<InspectionPlan> getPage(Page<InspectionPlan> page, InspectionPlan inspectionPlan) {
List<InspectionPlan> list = baseMapper.getPage(inspectionPlan.getDepartId(),inspectionPlan.getPlanName(),inspectionPlan.getInspectionPlanType());
page.setRecords(list);
page.setTotal(list.size());
return page;
}
}
......
......@@ -262,25 +262,6 @@ public class InspectionTaskFillContentServiceImpl extends ServiceImpl<Inspection
}
}
@Override
public List<Map<String, Object>> getInspectionPointHistoryByTaskId(String taskId) {
List<Map<String, Object>> resultList = new ArrayList<>();
QueryWrapper<InspectionTaskPoint> inspectionTaskPointQueryWrapper = new QueryWrapper<>();
inspectionTaskPointQueryWrapper.eq("inspection_task_id", taskId);
List<InspectionTaskPoint> inspectionTaskPointList = inspectionTaskPointService.list(inspectionTaskPointQueryWrapper);
Map<String, Object> resultMap;
for (InspectionTaskPoint inspectionTaskPoint : inspectionTaskPointList) {
resultMap = new HashMap<>();
resultMap.put("inspectionPointId", inspectionTaskPoint.getInspectionPointId());
resultMap.put("inspectionPointName", inspectionTaskPoint.getPointName());
resultMap.put("inspectionPointDesc", inspectionTaskPoint.getPointDesc());
List<Map<String, Object>> inspectionFillGroupList = getInspectionHistoryFillGroupByInspectionPointId(taskId, inspectionTaskPoint.getInspectionPointId());
resultMap.put("inspectionFillGroupList", inspectionFillGroupList);
resultList.add(resultMap);
}
return resultList;
}
// @Override
// public List<Map<String, Object>> getInspectionPointHistoryByTaskId(String taskId) {
// List<Map<String, Object>> resultList = new ArrayList<>();
......@@ -288,134 +269,220 @@ public class InspectionTaskFillContentServiceImpl extends ServiceImpl<Inspection
// inspectionTaskPointQueryWrapper.eq("inspection_task_id", taskId);
// List<InspectionTaskPoint> inspectionTaskPointList = inspectionTaskPointService.list(inspectionTaskPointQueryWrapper);
// Map<String, Object> resultMap;
// List<Future<Map<String,List<Map<String, Object>>>>> futureList = new ArrayList<>();
// for (InspectionTaskPoint inspectionTaskPoint : inspectionTaskPointList) {
// resultMap = new HashMap<>();
// resultMap.put("inspectionPointId", inspectionTaskPoint.getInspectionPointId());
// resultMap.put("inspectionPointName", inspectionTaskPoint.getPointName());
// resultMap.put("inspectionPointDesc", inspectionTaskPoint.getPointDesc());
// Callable callable = () -> getInspectionHistoryFillGroupByInspectionPointId(taskId, inspectionTaskPoint.getInspectionPointId());
// Future<Map<String,List<Map<String, Object>>>> future = taskExecutor.submit(callable);
// futureList.add(future);
// List<Map<String, Object>> inspectionFillGroupList = getInspectionHistoryFillGroupByInspectionPointId(taskId, inspectionTaskPoint.getInspectionPointId());
// resultMap.put("inspectionFillGroupList", inspectionFillGroupList);
// resultList.add(resultMap);
// }
// Map<String, List<Map<String, Object>>> resultDataMap = new HashMap<>();
// for (Future<Map<String,List<Map<String, Object>>>> future : futureList) {
// try {
// resultDataMap.putAll(future.get());
// } catch (Exception e) {
// continue;
// }
// }
// for (Map<String, Object> map : resultList) {
// map.put("inspectionFillGroupList", resultDataMap.get(com.skua.core.util.ConvertUtils.getString(map.get("inspectionPointId"))));
// }
// return resultList;
// }
@Override
public List<Map<String, Object>> getInspectionHistoryFillGroupByInspectionPointId(String taskId, String inspectionPointId) {
List<Map<String, Object>> inspectionTaskPointAndFillGroupList = new ArrayList<>();
QueryWrapper<InspectionTaskFillGroup> inspectionTaskFillGroupQueryWrapper = new QueryWrapper<>();
inspectionTaskFillGroupQueryWrapper.eq("inspection_task_id",taskId);
inspectionTaskFillGroupQueryWrapper.select("inspection_fill_group_id");
List<InspectionTaskFillGroup> inspectionTaskFillGroupList = inspectionTaskFillGroupService.list(inspectionTaskFillGroupQueryWrapper);
List<String> inspectionTaskFillGroupIdList = new ArrayList<>();
for (InspectionTaskFillGroup inspectionTaskFillGroup : inspectionTaskFillGroupList) {
inspectionTaskFillGroupIdList.add(inspectionTaskFillGroup.getInspectionFillGroupId());
public List<Map<String, Object>> getInspectionPointHistoryByTaskId(String taskId) {
List<Map<String, Object>> resultList = new ArrayList<>();
QueryWrapper<InspectionTaskPoint> inspectionTaskPointQueryWrapper = new QueryWrapper<>();
inspectionTaskPointQueryWrapper.eq("inspection_task_id", taskId);
List<InspectionTaskPoint> inspectionTaskPointList = inspectionTaskPointService.list(inspectionTaskPointQueryWrapper);
Map<String, Object> resultMap;
List<Future<Map<String,List<Map<String, Object>>>>> futureList = new ArrayList<>();
for (InspectionTaskPoint inspectionTaskPoint : inspectionTaskPointList) {
resultMap = new HashMap<>();
resultMap.put("inspectionPointId", inspectionTaskPoint.getInspectionPointId());
resultMap.put("inspectionPointName", inspectionTaskPoint.getPointName());
resultMap.put("inspectionPointDesc", inspectionTaskPoint.getPointDesc());
resultMap.put("pointStatus",inspectionTaskPoint.getPointStatus());
resultMap.put("clockStatusTime", inspectionTaskPoint.getClockStatusTime());
Callable callable = () -> getInspectionHistoryFillGroupByInspectionPointId(taskId, inspectionTaskPoint.getInspectionPointId());
Future<Map<String,List<Map<String, Object>>>> future = taskExecutor.submit(callable);
futureList.add(future);
resultList.add(resultMap);
}
Map<String, List<Map<String, Object>>> resultDataMap = new HashMap<>();
for (Future<Map<String,List<Map<String, Object>>>> future : futureList) {
try {
resultDataMap.putAll(future.get());
} catch (InterruptedException e) {
throw new RuntimeException(e);
} catch (ExecutionException e) {
throw new RuntimeException(e);
}
}
for (Map<String, Object> map : resultList) {
map.put("inspectionFillGroupList", resultDataMap.get(com.skua.core.util.ConvertUtils.getString(map.get("inspectionPointId"))));
}
return resultList;
}
@Override
public Map<String,List<Map<String, Object>>> getInspectionHistoryFillGroupByInspectionPointId(String taskId, String inspectionPointId) {
Map<String,List<Map<String, Object>>> result = new HashMap<>();
List<Map<String, Object>> inspectionTaskPointAndFillGroupList = new ArrayList<>();
QueryWrapper<InspectionTaskPointFillGroup> inspectionTaskPointFillGroupQueryWrapper = new QueryWrapper<>();
inspectionTaskPointFillGroupQueryWrapper.eq("inspection_task_id",taskId);
inspectionTaskPointFillGroupQueryWrapper.eq("inspection_point_id", inspectionPointId);
if (inspectionTaskFillGroupIdList.size() > 0){
inspectionTaskPointFillGroupQueryWrapper.in("inspection_fill_group_id", inspectionTaskFillGroupIdList);
}
List<InspectionTaskPointFillGroup> inspectionTaskPointFillGroupList = inspectionTaskPointFillGroupService.list(inspectionTaskPointFillGroupQueryWrapper);
List<JSONObject> inspectionTaskPointFillGroupJsonObjectList = sysDictService.translateListDictValue(inspectionTaskPointFillGroupList);
for (JSONObject inspectionTaskPointFillGroupJsonObject : inspectionTaskPointFillGroupJsonObjectList) {
Map<String, Object> fillGroupMap = new HashMap<>();
fillGroupMap.put("fillGroupId", inspectionTaskPointFillGroupJsonObject.get("inspectionFillGroupId"));
fillGroupMap.put("fillGroupName", inspectionTaskPointFillGroupJsonObject.get("inspectionFillGroupId_dictText"));
fillGroupMap.put("sysStructDictId",inspectionTaskPointFillGroupJsonObject.get("sysStructDictId"));
fillGroupMap.put("equipInfoId",inspectionTaskPointFillGroupJsonObject.get("equipInfoId"));
fillGroupMap.put("pipenetwork_tubewell_ids",inspectionTaskPointFillGroupJsonObject.get("pipenetworkTubewellIds"));
fillGroupMap.put("river_point_ids",inspectionTaskPointFillGroupJsonObject.get("riverPointIds"));
fillGroupMap.put("sysStructDictName",inspectionTaskPointFillGroupJsonObject.get("sysStructDictId_dictText"));
fillGroupMap.put("equipInfoName",inspectionTaskPointFillGroupJsonObject.get("equipInfoId_dictText"));
fillGroupMap.put("isFill",false);
fillGroupMap.put("isExceptionFill",false);
List<String> inspectionFillGroupIdList = new ArrayList<>();
List<String> inspectionPointFillGroupIdList = new ArrayList<>();
inspectionTaskPointFillGroupList.forEach(inspectionTaskPointFillGroup -> {
inspectionFillGroupIdList.add(inspectionTaskPointFillGroup.getInspectionFillGroupId());
inspectionPointFillGroupIdList.add(inspectionTaskPointFillGroup.getInspectionPointFillGroupId());
});
if (inspectionFillGroupIdList.size()>0) {
//查询巡检填报组对象
QueryWrapper<InspectionTaskFillGroupFill> inspectionTaskFillGroupFillQueryWrapper = new QueryWrapper<>();
inspectionTaskFillGroupFillQueryWrapper.eq("inspection_task_id",taskId);
inspectionTaskFillGroupFillQueryWrapper.eq("inspection_fill_group_id", inspectionTaskPointFillGroupJsonObject.get("inspectionFillGroupId"));
List<InspectionTaskFillGroupFill> inspectionTaskFillGroupFillList = inspectionTaskFillGroupFillService.list(inspectionTaskFillGroupFillQueryWrapper);
List<String> inspectionTaskFillIdList = new ArrayList<>();
inspectionTaskFillGroupFillList.forEach(inspectionTaskFillGroupFill -> {
inspectionTaskFillIdList.add(inspectionTaskFillGroupFill.getInspectionFillId());
});
List<Map<String,Object>> inspectionTaskFillMapList = new ArrayList<>();
Map<String,Object> inspectionTaskFillMap;
//查询填报组的数据
if (inspectionTaskFillIdList.size() > 0){
inspectionTaskFillGroupFillQueryWrapper.select("inspection_fill_group_id", "inspection_fill_id");
inspectionTaskFillGroupFillQueryWrapper.eq("inspection_task_id", taskId);
inspectionTaskFillGroupFillQueryWrapper.in("inspection_fill_group_id", inspectionFillGroupIdList);
List<InspectionTaskFillGroupFill> totalInspectionTaskFillGroupFillList = inspectionTaskFillGroupFillService.list(inspectionTaskFillGroupFillQueryWrapper);
Map<String, List<InspectionTaskFillGroupFill>> inspectionTaskFillGroupFillListMap = new HashMap<>();
List<InspectionTaskFillGroupFill> tempInspectionTaskFillGroupFillList;
List<String> totalInspectionTaskFillIdList = new ArrayList<>();
for (InspectionTaskFillGroupFill inspectionTaskFillGroupFill : totalInspectionTaskFillGroupFillList) {
tempInspectionTaskFillGroupFillList = new ArrayList<>();
if (inspectionTaskFillGroupFillListMap.get(inspectionTaskFillGroupFill.getInspectionFillGroupId()) != null) {
tempInspectionTaskFillGroupFillList = inspectionTaskFillGroupFillListMap.get(inspectionTaskFillGroupFill.getInspectionFillGroupId());
}
tempInspectionTaskFillGroupFillList.add(inspectionTaskFillGroupFill);
inspectionTaskFillGroupFillListMap.put(inspectionTaskFillGroupFill.getInspectionFillGroupId(), tempInspectionTaskFillGroupFillList);
totalInspectionTaskFillIdList.add(inspectionTaskFillGroupFill.getInspectionFillId());
}
//获取所有的填报项
Map<String, InspectionTaskFill> toatlInspectionTaskFillMap = new HashMap<>();
if (totalInspectionTaskFillIdList.size() > 0) {
QueryWrapper<InspectionTaskFill> inspectionTaskFillQueryWrapper = new QueryWrapper<>();
inspectionTaskFillQueryWrapper.in("inspection_task_id",taskId);
inspectionTaskFillQueryWrapper.in("inspection_fill_id",inspectionTaskFillIdList);
List<InspectionTaskFill> inspectionTaskFillList = inspectionTaskFillService.list(inspectionTaskFillQueryWrapper);
for (InspectionTaskFill inspectionTaskFill : inspectionTaskFillList) {
inspectionTaskFillMap = new HashMap<>();
inspectionTaskFillMap.put("fillName",inspectionTaskFill.getFillName());
inspectionTaskFillMap.put("fillType",inspectionTaskFill.getFillType());
inspectionTaskFillMap.put("fillUnit",inspectionTaskFill.getFillUnit());
inspectionTaskFillMap.put("fillId",inspectionTaskFill.getInspectionFillId());
//TODO 后期可以优化
//获取填报内容
QueryWrapper<InspectionTaskFillContent> inspectionTaskFillContentQueryWrapper = new QueryWrapper<>();
inspectionTaskFillContentQueryWrapper.eq("inspection_task_id",taskId);
inspectionTaskFillContentQueryWrapper.eq("inspection_point_id",inspectionPointId);
inspectionTaskFillContentQueryWrapper.eq("inspection_point_fill_group_id",inspectionTaskPointFillGroupJsonObject.get("inspectionPointFillGroupId"));
inspectionTaskFillContentQueryWrapper.eq("inspection_fill_group_id",inspectionTaskPointFillGroupJsonObject.get("inspectionFillGroupId"));
inspectionTaskFillContentQueryWrapper.eq("inspection_fill_id",inspectionTaskFill.getInspectionFillId());
InspectionTaskFillContent taskFillContent = getOne(inspectionTaskFillContentQueryWrapper);
if (taskFillContent != null) {
if(!(boolean)fillGroupMap.get("isFill")){
fillGroupMap.put("isFill",true);
}
inspectionTaskFillMap.put("fillContent", taskFillContent.getFillContent());
inspectionTaskFillMap.put("fillRemark", taskFillContent.getFillRemark());
if(!StringUtils.isBlank(taskFillContent.getInspectionTaskFillContentDescribeId())){
QueryWrapper<InspectionTaskFillContentDescribe> inspectionTaskFillContentDescribeQueryWrapper = new QueryWrapper<>();
inspectionTaskFillContentDescribeQueryWrapper.eq("id",taskFillContent.getInspectionTaskFillContentDescribeId());
InspectionTaskFillContentDescribe inspectionTaskFillContentDescribe = inspectionTaskFillContentDescribeService.getOne(inspectionTaskFillContentDescribeQueryWrapper);
inspectionTaskFillMap.put("pictures",inspectionTaskFillContentDescribe.getPictures());
}
inspectionTaskFillMap.put("inspectionTaskFillContentDescribeId",taskFillContent.getInspectionTaskFillContentDescribeId());
}else{
inspectionTaskFillMap.put("fillContent", "");
inspectionTaskFillMap.put("fillRemark", "");
inspectionTaskFillMap.put("inspectionTaskFillContentDescribeId","");
inspectionTaskFillQueryWrapper.in("inspection_task_id", taskId);
inspectionTaskFillQueryWrapper.in("inspection_fill_id", totalInspectionTaskFillIdList);
List<InspectionTaskFill> totalInspectionTaskFillList = inspectionTaskFillService.list(inspectionTaskFillQueryWrapper);
for (InspectionTaskFill inspectionTaskFill : totalInspectionTaskFillList) {
toatlInspectionTaskFillMap.put(inspectionTaskFill.getInspectionFillId(), inspectionTaskFill);
}
}
//获取填报内容
List<String> inspectionTaskFillContentDescribeIdList = new ArrayList<>();
Map<String, InspectionTaskFillContent> totalTaskFillContentMap = new HashMap<>();
if (inspectionPointFillGroupIdList.size() > 0 && inspectionFillGroupIdList.size() > 0 && totalInspectionTaskFillIdList.size() > 0) {
QueryWrapper<InspectionTaskFillContent> inspectionTaskFillContentQueryWrapper = new QueryWrapper<>();
inspectionTaskFillContentQueryWrapper.eq("inspection_task_id", taskId);
inspectionTaskFillContentQueryWrapper.eq("inspection_point_id", inspectionPointId);
inspectionTaskFillContentQueryWrapper.in("inspection_point_fill_group_id", inspectionPointFillGroupIdList);
inspectionTaskFillContentQueryWrapper.in("inspection_fill_group_id", inspectionFillGroupIdList);
inspectionTaskFillContentQueryWrapper.in("inspection_fill_id", totalInspectionTaskFillIdList);
List<InspectionTaskFillContent> totalTaskFillContentList = list(inspectionTaskFillContentQueryWrapper);
for (InspectionTaskFillContent inspectionTaskFillContent : totalTaskFillContentList) {
totalTaskFillContentMap.put(inspectionTaskFillContent.getInspectionTaskId() + "_" + inspectionTaskFillContent.getInspectionPointId() + "_" +
inspectionTaskFillContent.getInspectionPointFillGroupId() + "_" + inspectionTaskFillContent.getInspectionFillGroupId() + "_" +
inspectionTaskFillContent.getInspectionFillId(), inspectionTaskFillContent);
inspectionTaskFillContentDescribeIdList.add(inspectionTaskFillContent.getInspectionTaskFillContentDescribeId());
}
}
//获取填报描述
Map<String, InspectionTaskFillContentDescribe> inspectionTaskFillContentDescribeMap = new HashMap<>();
if (inspectionTaskFillContentDescribeIdList.size() > 0) {
QueryWrapper<InspectionTaskFillContentDescribe> inspectionTaskFillContentDescribeQueryWrapper = new QueryWrapper<>();
inspectionTaskFillContentDescribeQueryWrapper.in("id", inspectionTaskFillContentDescribeIdList);
List<InspectionTaskFillContentDescribe> inspectionTaskFillContentDescribeList = inspectionTaskFillContentDescribeService.list(inspectionTaskFillContentDescribeQueryWrapper);
for (InspectionTaskFillContentDescribe inspectionTaskFillContentDescribe : inspectionTaskFillContentDescribeList) {
inspectionTaskFillContentDescribeMap.put(inspectionTaskFillContentDescribe.getId(), inspectionTaskFillContentDescribe);
}
}
//获取填报选项
Map<String, List<InspectionTaskFillChoice>> totalInspectionTaskFillChoiceMap = new HashMap<>();
if (totalInspectionTaskFillIdList.size() > 0) {
QueryWrapper<InspectionTaskFillChoice> inspectionTaskFillChoiceQueryWrapper = new QueryWrapper<>();
inspectionTaskFillChoiceQueryWrapper.in("inspection_fill_id", totalInspectionTaskFillIdList);
inspectionTaskFillChoiceQueryWrapper.eq("inspection_task_id", taskId);
inspectionTaskFillChoiceQueryWrapper.orderByAsc("sort");
List<InspectionTaskFillChoice> totalInspectionTaskFillChoiceList = inspectionTaskFillChoiceService.list(inspectionTaskFillChoiceQueryWrapper);
List<InspectionTaskFillChoice> tempInspectionTaskFillChoiceList;
for (InspectionTaskFillChoice inspectionTaskFillChoice : totalInspectionTaskFillChoiceList) {
tempInspectionTaskFillChoiceList = new ArrayList<>();
if (totalInspectionTaskFillChoiceMap.get(inspectionTaskFillChoice.getInspectionFillId()) != null) {
tempInspectionTaskFillChoiceList = totalInspectionTaskFillChoiceMap.get(inspectionTaskFillChoice.getInspectionFillId());
}
tempInspectionTaskFillChoiceList.add(inspectionTaskFillChoice);
totalInspectionTaskFillChoiceMap.put(inspectionTaskFillChoice.getInspectionFillId(), tempInspectionTaskFillChoiceList);
}
}
for (JSONObject inspectionTaskPointFillGroupJsonObject : inspectionTaskPointFillGroupJsonObjectList) {
Map<String, Object> fillGroupMap = new HashMap<>();
fillGroupMap.put("fillGroupId", inspectionTaskPointFillGroupJsonObject.get("inspectionFillGroupId"));
fillGroupMap.put("fillGroupName", inspectionTaskPointFillGroupJsonObject.get("inspectionFillGroupId_dictText"));
fillGroupMap.put("sysStructDictId", inspectionTaskPointFillGroupJsonObject.get("sysStructDictId"));
fillGroupMap.put("equipInfoId", inspectionTaskPointFillGroupJsonObject.get("equipInfoId"));
fillGroupMap.put("pipenetwork_tubewell_ids", inspectionTaskPointFillGroupJsonObject.get("pipenetworkTubewellIds"));
fillGroupMap.put("river_point_ids", inspectionTaskPointFillGroupJsonObject.get("riverPointIds"));
fillGroupMap.put("sysStructDictName", inspectionTaskPointFillGroupJsonObject.get("sysStructDictId_dictText"));
fillGroupMap.put("equipInfoName", inspectionTaskPointFillGroupJsonObject.get("equipInfoId_dictText"));
fillGroupMap.put("equipStatus", inspectionTaskPointFillGroupJsonObject.get("equipStatus"));
fillGroupMap.put("isFill", false);
fillGroupMap.put("isExceptionFill", false);
List<InspectionTaskFillGroupFill> inspectionTaskFillGroupFillList = inspectionTaskFillGroupFillListMap.get(inspectionTaskPointFillGroupJsonObject.get("inspectionFillGroupId"));
List<String> inspectionTaskFillIdList = new ArrayList<>();
inspectionTaskFillGroupFillList.forEach(inspectionTaskFillGroupFill -> {
inspectionTaskFillIdList.add(inspectionTaskFillGroupFill.getInspectionFillId());
});
List<Map<String, Object>> inspectionTaskFillMapList = new ArrayList<>();
Map<String, Object> inspectionTaskFillMap;
//查询填报组的数据
if (inspectionTaskFillIdList.size() > 0) {
List<InspectionTaskFill> inspectionTaskFillList = new ArrayList<>();
for (String inspectionTaskFillId : inspectionTaskFillIdList) {
inspectionTaskFillList.add(toatlInspectionTaskFillMap.get(inspectionTaskFillId));
}
if ("3".equals(inspectionTaskFill.getFillType()) || "4".equals(inspectionTaskFill.getFillType())) {
QueryWrapper<InspectionTaskFillChoice> inspectionTaskFillChoiceQueryWrapper = new QueryWrapper<>();
inspectionTaskFillChoiceQueryWrapper.eq("inspection_fill_id", inspectionTaskFill.getInspectionFillId());
inspectionTaskFillChoiceQueryWrapper.eq("inspection_task_id", taskId);
inspectionTaskFillChoiceQueryWrapper.orderByAsc("sort");
List<InspectionTaskFillChoice> inspectionTaskFillChoiceList = inspectionTaskFillChoiceService.list(inspectionTaskFillChoiceQueryWrapper);
for (InspectionTaskFillChoice inspectionTaskFillChoice : inspectionTaskFillChoiceList) {
if (taskFillContent != null && taskFillContent.getFillContent().equals(inspectionTaskFillChoice.getId())
&& "0".equals(inspectionTaskFillChoice.getChoiceState())){
if(!(boolean)fillGroupMap.get("isExceptionFill")){
fillGroupMap.put("isExceptionFill",true);
for (InspectionTaskFill inspectionTaskFill : inspectionTaskFillList) {
inspectionTaskFillMap = new HashMap<>();
inspectionTaskFillMap.put("fillName", inspectionTaskFill.getFillName());
inspectionTaskFillMap.put("fillType", inspectionTaskFill.getFillType());
inspectionTaskFillMap.put("fillUnit", inspectionTaskFill.getFillUnit());
inspectionTaskFillMap.put("fillId", inspectionTaskFill.getInspectionFillId());
//获取填报内容
InspectionTaskFillContent taskFillContent = totalTaskFillContentMap.get(taskId+"_"+inspectionPointId+"_"+inspectionTaskPointFillGroupJsonObject.get("inspectionPointFillGroupId")+"_"+
inspectionTaskPointFillGroupJsonObject.get("inspectionFillGroupId")+"_"+inspectionTaskFill.getInspectionFillId());
if (taskFillContent != null) {
if (!(boolean) fillGroupMap.get("isFill")) {
fillGroupMap.put("isFill", true);
}
inspectionTaskFillMap.put("fillContent", taskFillContent.getFillContent());
inspectionTaskFillMap.put("fillRemark", taskFillContent.getFillRemark());
if (!StringUtils.isBlank(taskFillContent.getInspectionTaskFillContentDescribeId())) {
InspectionTaskFillContentDescribe inspectionTaskFillContentDescribe = inspectionTaskFillContentDescribeMap.get(taskFillContent.getInspectionTaskFillContentDescribeId());
inspectionTaskFillMap.put("pictures", inspectionTaskFillContentDescribe.getPictures());
inspectionTaskFillMap.put("audios", inspectionTaskFillContentDescribe.getAudios());
inspectionTaskFillMap.put("videos", inspectionTaskFillContentDescribe.getVideos());
}
inspectionTaskFillMap.put("inspectionTaskFillContentDescribeId", taskFillContent.getInspectionTaskFillContentDescribeId());
} else {
inspectionTaskFillMap.put("fillContent", "");
inspectionTaskFillMap.put("fillRemark", "");
inspectionTaskFillMap.put("inspectionTaskFillContentDescribeId", "");
}
if ("3".equals(inspectionTaskFill.getFillType()) || "4".equals(inspectionTaskFill.getFillType())) {
List<InspectionTaskFillChoice> inspectionTaskFillChoiceList = totalInspectionTaskFillChoiceMap.get(inspectionTaskFill.getInspectionFillId());
for (InspectionTaskFillChoice inspectionTaskFillChoice : inspectionTaskFillChoiceList) {
if (taskFillContent != null && taskFillContent.getFillContent().equals(inspectionTaskFillChoice.getId())
&& "0".equals(inspectionTaskFillChoice.getChoiceState())) {
if (!(boolean) fillGroupMap.get("isExceptionFill")) {
fillGroupMap.put("isExceptionFill", true);
}
}
}
inspectionTaskFillMap.put("fillChoice", inspectionTaskFillChoiceList);
}
inspectionTaskFillMap.put("fillChoice", inspectionTaskFillChoiceList);
inspectionTaskFillMapList.add(inspectionTaskFillMap);
}
inspectionTaskFillMapList.add(inspectionTaskFillMap);
}
fillGroupMap.put("fill", inspectionTaskFillMapList);
inspectionTaskPointAndFillGroupList.add(fillGroupMap);
}
fillGroupMap.put("fill",inspectionTaskFillMapList);
inspectionTaskPointAndFillGroupList.add(fillGroupMap);
}
return inspectionTaskPointAndFillGroupList;
result.put(inspectionPointId,inspectionTaskPointAndFillGroupList);
return result;
}
@Override
......
......@@ -33,6 +33,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
import static org.apache.commons.beanutils.BeanUtils.populate;
......@@ -797,6 +798,13 @@ public class InspectionTaskServiceImpl extends ServiceImpl<InspectionTaskMapper,
return page;
}
@Override
public List<String> getIsExceptionInspectionTask(QueryWrapper queryWrapper) {
List<Map<String,Object>> isExceptionInspectionTaskMap = this.baseMapper.getIsExceptionInspectionTask(queryWrapper);
List<String> inspectionTaskIdList = isExceptionInspectionTaskMap.stream().map(map -> com.skua.core.util.ConvertUtils.getString(map.get("inspectionTaskId"))).collect(Collectors.toList());
return inspectionTaskIdList;
}
public List<Map<String, Object>> correctionInspectionTrack(List<Map<String, Object>> pointList) throws Exception {
List<Map<String, Object>> resultList;
String url = "http://api.map.baidu.com/rectify/v1/track";
......
......@@ -165,4 +165,7 @@ public class InspectionTaskVO {
/**计划任务类型*/
private String inspectionPlanType;
/**是否异常*/
private String isException;
}
......
......@@ -75,7 +75,7 @@ public class MybatisInterceptor implements Interceptor {
add("ajh_supplier_manage");
add("ajh_meeting_attend");
add("equipment_sparepart_supplies_allot");
// add("ajh_rectification_info");
add("alarm_custom_rule_repository");
add("alarm_rule_config_public_templete");//放行报警配置公共模板表
//算法库相关表过滤权限
add("sys_algorithm_database_info");
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!