大屏评分和自检修改
This commit is contained in:
parent
46a8ec705e
commit
d24f9e8990
@ -5,6 +5,7 @@ import com.zhgd.annotation.OperLog;
|
|||||||
import com.zhgd.jeecg.common.api.vo.Result;
|
import com.zhgd.jeecg.common.api.vo.Result;
|
||||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||||
import com.zhgd.xmgl.modules.inspection.entity.InspectTaskRecord;
|
import com.zhgd.xmgl.modules.inspection.entity.InspectTaskRecord;
|
||||||
|
import com.zhgd.xmgl.modules.inspection.entity.vo.InspectTaskRecordVo;
|
||||||
import com.zhgd.xmgl.modules.inspection.service.IInspectTaskRecordService;
|
import com.zhgd.xmgl.modules.inspection.service.IInspectTaskRecordService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
@ -48,7 +49,7 @@ public class InspectTaskRecordController {
|
|||||||
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "body", required = true, dataType = "Integer"),
|
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "body", required = true, dataType = "Integer"),
|
||||||
})
|
})
|
||||||
@PostMapping(value = "/list")
|
@PostMapping(value = "/list")
|
||||||
public Result<IPage<EntityMap>> queryPageList(@RequestBody Map<String,Object> map) {
|
public Result<IPage<InspectTaskRecordVo >> queryPageList(@RequestBody Map<String,Object> map) {
|
||||||
return Result.success(inspectTaskRecordService.selectInspectTaskRecordPage(map));
|
return Result.success(inspectTaskRecordService.selectInspectTaskRecordPage(map));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,19 @@
|
|||||||
|
package com.zhgd.xmgl.modules.inspection.entity.vo;
|
||||||
|
|
||||||
|
import com.zhgd.xmgl.modules.inspection.entity.InspectTaskRecord;
|
||||||
|
import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityInspectTaskRecord;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class InspectTaskRecordVo extends InspectTaskRecord {
|
||||||
|
private String inspectTypeName;
|
||||||
|
private String createUserName;
|
||||||
|
private Integer taskCompleteNum;
|
||||||
|
private Integer taskNum;
|
||||||
|
@ApiModelProperty("任务状态:1未开始2进行中3已完成4已逾期")
|
||||||
|
private Integer taskStatus;
|
||||||
|
private Map<String, Object> count;
|
||||||
|
}
|
||||||
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.zhgd.annotation.DataScope;
|
import com.zhgd.annotation.DataScope;
|
||||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||||
import com.zhgd.xmgl.modules.inspection.entity.InspectTaskRecord;
|
import com.zhgd.xmgl.modules.inspection.entity.InspectTaskRecord;
|
||||||
|
import com.zhgd.xmgl.modules.inspection.entity.vo.InspectTaskRecordVo;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
@ -27,7 +28,7 @@ public interface InspectTaskRecordMapper extends BaseMapper<InspectTaskRecord> {
|
|||||||
* @param map
|
* @param map
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<EntityMap> selectInspectTaskRecordPage(Page<EntityMap> page, @Param("param") Map<String, Object> map);
|
List<InspectTaskRecordVo> selectInspectTaskRecordPage(Page<InspectTaskRecordVo> page, @Param("param") Map<String, Object> map);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取今日巡检信息
|
* 获取今日巡检信息
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.zhgd.xmgl.modules.inspection.mapper.InspectTaskRecordMapper">
|
<mapper namespace="com.zhgd.xmgl.modules.inspection.mapper.InspectTaskRecordMapper">
|
||||||
|
|
||||||
<select id="selectInspectTaskRecordPage" resultType="com.zhgd.jeecg.common.mybatis.EntityMap">
|
<select id="selectInspectTaskRecordPage" resultType="com.zhgd.xmgl.modules.inspection.entity.vo.InspectTaskRecordVo">
|
||||||
SELECT a.*,b.inspect_type_name,d.real_name create_user_name
|
SELECT a.*,b.inspect_type_name,d.real_name create_user_name
|
||||||
from inspect_task_record a
|
from inspect_task_record a
|
||||||
LEFT JOIN inspect_type b ON a.inspect_type_id=b.id
|
LEFT JOIN inspect_type b ON a.inspect_type_id=b.id
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||||
import com.zhgd.xmgl.modules.inspection.entity.InspectTaskRecord;
|
import com.zhgd.xmgl.modules.inspection.entity.InspectTaskRecord;
|
||||||
|
import com.zhgd.xmgl.modules.inspection.entity.vo.InspectTaskRecordVo;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -34,7 +35,7 @@ public interface IInspectTaskRecordService extends IService<InspectTaskRecord> {
|
|||||||
* @param map
|
* @param map
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
IPage<EntityMap> selectInspectTaskRecordPage(Map<String, Object> map);
|
IPage<InspectTaskRecordVo > selectInspectTaskRecordPage(Map<String, Object> map);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取今日巡检信息
|
* 获取今日巡检信息
|
||||||
|
|||||||
@ -1,7 +1,9 @@
|
|||||||
package com.zhgd.xmgl.modules.inspection.service.impl;
|
package com.zhgd.xmgl.modules.inspection.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.hutool.core.util.NumberUtil;
|
import cn.hutool.core.util.NumberUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@ -11,12 +13,16 @@ import com.zhgd.xmgl.modules.dangerous.entity.HiddenDangerInspectRecord;
|
|||||||
import com.zhgd.xmgl.modules.dangerous.service.IHiddenDangerInspectRecordService;
|
import com.zhgd.xmgl.modules.dangerous.service.IHiddenDangerInspectRecordService;
|
||||||
import com.zhgd.xmgl.modules.inspection.entity.InspectTaskItemRecord;
|
import com.zhgd.xmgl.modules.inspection.entity.InspectTaskItemRecord;
|
||||||
import com.zhgd.xmgl.modules.inspection.entity.InspectTaskRecord;
|
import com.zhgd.xmgl.modules.inspection.entity.InspectTaskRecord;
|
||||||
|
import com.zhgd.xmgl.modules.inspection.entity.vo.InspectTaskRecordVo;
|
||||||
import com.zhgd.xmgl.modules.inspection.enums.InspectTaskRecordFrequencyTypeEnum;
|
import com.zhgd.xmgl.modules.inspection.enums.InspectTaskRecordFrequencyTypeEnum;
|
||||||
import com.zhgd.xmgl.modules.inspection.mapper.InspectTaskItemRecordMapper;
|
import com.zhgd.xmgl.modules.inspection.mapper.InspectTaskItemRecordMapper;
|
||||||
import com.zhgd.xmgl.modules.inspection.mapper.InspectTaskRecordMapper;
|
import com.zhgd.xmgl.modules.inspection.mapper.InspectTaskRecordMapper;
|
||||||
import com.zhgd.xmgl.modules.inspection.service.IInspectTaskRecordService;
|
import com.zhgd.xmgl.modules.inspection.service.IInspectTaskRecordService;
|
||||||
import com.zhgd.xmgl.modules.quality.entity.QualityInspectionRecord;
|
import com.zhgd.xmgl.modules.quality.entity.QualityInspectionRecord;
|
||||||
import com.zhgd.xmgl.modules.quality.service.IQualityInspectionRecordService;
|
import com.zhgd.xmgl.modules.quality.service.IQualityInspectionRecordService;
|
||||||
|
import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityInspectTaskItemRecord;
|
||||||
|
import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityQualityInspectionRecord;
|
||||||
|
import com.zhgd.xmgl.modules.xz.security.enums.XzSecurityInspectTaskRecordFrequencyTypeEnum;
|
||||||
import com.zhgd.xmgl.util.DateUtils;
|
import com.zhgd.xmgl.util.DateUtils;
|
||||||
import org.apache.commons.collections.MapUtils;
|
import org.apache.commons.collections.MapUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@ -25,6 +31,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 检查任务
|
* @Description: 检查任务
|
||||||
@ -144,20 +151,61 @@ public class InspectTaskRecordServiceImpl extends ServiceImpl<InspectTaskRecordM
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<EntityMap> selectInspectTaskRecordPage(Map<String, Object> map) {
|
public IPage<InspectTaskRecordVo > selectInspectTaskRecordPage(Map<String, Object> map) {
|
||||||
int pageNo = Integer.parseInt(map.getOrDefault("pageNo", 1).toString());
|
int pageNo = Integer.parseInt(map.getOrDefault("pageNo", 1).toString());
|
||||||
int pageSize = Integer.parseInt(map.getOrDefault("pageSize", 10).toString());
|
int pageSize = Integer.parseInt(map.getOrDefault("pageSize", 10).toString());
|
||||||
Page<EntityMap> page = new Page<>(pageNo, pageSize);
|
Page<InspectTaskRecordVo > page = new Page<>(pageNo, pageSize);
|
||||||
List<EntityMap> list = inspectTaskRecordMapper.selectInspectTaskRecordPage(page, map);
|
List<InspectTaskRecordVo > list = inspectTaskRecordMapper.selectInspectTaskRecordPage(page, map);
|
||||||
if (list != null && list.size() > 0) {
|
if (list != null && list.size() > 0) {
|
||||||
for (EntityMap data : list) {
|
List<Long> taskIds = list.stream().map(entityMap -> entityMap.getId()).collect(Collectors.toList());
|
||||||
|
List<InspectTaskItemRecord> allItemRecords = inspectTaskItemRecordMapper.selectList(new LambdaQueryWrapper<InspectTaskItemRecord>().in(InspectTaskItemRecord::getTaskId, taskIds));
|
||||||
|
List<QualityInspectionRecord> allInspectionRecords = qualityInspectionRecordService.list(new QueryWrapper<QualityInspectionRecord>().lambda().in(QualityInspectionRecord::getTaskId, taskIds));
|
||||||
|
for (InspectTaskRecordVo data : list) {
|
||||||
Map<String, Object> count = new HashMap<>(16);
|
Map<String, Object> count = new HashMap<>(16);
|
||||||
|
Long id = data.getId();
|
||||||
if (MapUtils.getInteger(map, "type") == 1) {
|
if (MapUtils.getInteger(map, "type") == 1) {
|
||||||
count = hiddenDangerInspectRecordService.selectDangerInspectCountByTask(MapUtils.getLong(data, "id"));
|
count = hiddenDangerInspectRecordService.selectDangerInspectCountByTask(data.getId());
|
||||||
} else {
|
} else {
|
||||||
count = qualityInspectionRecordService.selectDangerInspectCountByTask(MapUtils.getLong(data, "id"));
|
count = qualityInspectionRecordService.selectDangerInspectCountByTask(data.getId());
|
||||||
|
}
|
||||||
|
data.setCount(count);
|
||||||
|
try {
|
||||||
|
List<InspectTaskItemRecord> itemRecords = allItemRecords.stream().filter(x -> x.getTaskId().equals(id)).collect(Collectors.toList());
|
||||||
|
Set<Long> itemIdSet = itemRecords.stream().map(InspectTaskItemRecord::getId).collect(Collectors.toSet());
|
||||||
|
List<QualityInspectionRecord> inspectionRecords = allInspectionRecords.stream().filter(x -> itemIdSet.contains(x.getItemId())).collect(Collectors.toList());
|
||||||
|
data.setTaskNum(itemRecords.size());
|
||||||
|
data.setTaskCompleteNum(inspectionRecords.stream().map(QualityInspectionRecord::getItemId).collect(Collectors.toSet()).size());
|
||||||
|
Integer taskStatus;
|
||||||
|
if (Objects.equals(data.getTaskNum(), data.getTaskCompleteNum())) {
|
||||||
|
taskStatus = 3;
|
||||||
|
} else {
|
||||||
|
if (Objects.equals(data.getFrequencyType(), InspectTaskRecordFrequencyTypeEnum.TIME.getValue())) {
|
||||||
|
if (DateUtil.compare(DateUtil.parse(data.getEndTime()), DateUtil.parse(DateUtil.format(new Date(), "yyyy-MM-dd"))) < 0) {
|
||||||
|
taskStatus = 4;
|
||||||
|
} else if (DateUtil.compare(DateUtil.parse(data.getStartTime()), DateUtil.parse(DateUtil.format(new Date(), "yyyy-MM-dd"))) > 0) {
|
||||||
|
taskStatus = 1;
|
||||||
|
} else {
|
||||||
|
taskStatus = 2;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Set<Long> overDueItemIdSet = itemRecords.stream().filter(x ->
|
||||||
|
//2024-08-05/2024-08-06/第1次
|
||||||
|
DateUtil.compare(DateUtil.parse(x.getItemName().split("/")[1]), DateUtil.parse(DateUtil.format(new Date(), "yyyy-MM-dd"))) < 0
|
||||||
|
).map(InspectTaskItemRecord::getId).collect(Collectors.toSet());
|
||||||
|
Set<Long> irSet = inspectionRecords.stream().filter(x -> overDueItemIdSet.contains(x.getItemId())).map(QualityInspectionRecord::getItemId).collect(Collectors.toSet());
|
||||||
|
if (overDueItemIdSet.size() != irSet.size()) {
|
||||||
|
taskStatus = 4;
|
||||||
|
} else if (itemRecords.stream().allMatch(x -> DateUtil.compare(DateUtil.parse(x.getItemName().split("/")[0]), DateUtil.parse(DateUtil.format(new Date(), "yyyy-MM-dd"))) > 0)) {
|
||||||
|
taskStatus = 1;
|
||||||
|
} else {
|
||||||
|
taskStatus = 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
data.setTaskStatus(taskStatus);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("", e);
|
||||||
}
|
}
|
||||||
data.put("count", count);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return page.setRecords(list);
|
return page.setRecords(list);
|
||||||
|
|||||||
@ -98,7 +98,10 @@ public class SafetyInspectionStandardBigScreenController {
|
|||||||
}
|
}
|
||||||
for (Map.Entry<Integer, List<SafetyTypeScore>> entry : fiveTypeScoreMap.entrySet()) {
|
for (Map.Entry<Integer, List<SafetyTypeScore>> entry : fiveTypeScoreMap.entrySet()) {
|
||||||
List<SafetyTypeScore> list = entry.getValue();
|
List<SafetyTypeScore> list = entry.getValue();
|
||||||
BigDecimal score = list.stream().map(SafetyTypeScore::getScore).reduce(BigDecimal.ZERO, BigDecimal::add).divide(BigDecimal.valueOf(list.size()),2,BigDecimal.ROUND_HALF_UP);
|
if (list.size() == 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
BigDecimal score = list.stream().map(SafetyTypeScore::getScore).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
switch (entry.getKey()) {
|
switch (entry.getKey()) {
|
||||||
case 1:
|
case 1:
|
||||||
fiveScore.setAqgl(score);
|
fiveScore.setAqgl(score);
|
||||||
@ -119,7 +122,7 @@ public class SafetyInspectionStandardBigScreenController {
|
|||||||
vo.setThisMonthScores(fiveScore);
|
vo.setThisMonthScores(fiveScore);
|
||||||
vo.setMonthScore(thisMonthScoreVo.getScore());
|
vo.setMonthScore(thisMonthScoreVo.getScore());
|
||||||
vo.setLastMonthScore(lastMonthScoreVo.getScore());
|
vo.setLastMonthScore(lastMonthScoreVo.getScore());
|
||||||
vo.setDifferScoreRate(vo.getLastMonthScore().compareTo(BigDecimal.ZERO) == 0 ? new BigDecimal("0") : vo.getMonthScore().subtract(vo.getLastMonthScore()).divide(vo.getLastMonthScore(),4,BigDecimal.ROUND_HALF_UP).subtract(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP));
|
vo.setDifferScoreRate(vo.getLastMonthScore().compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : vo.getMonthScore().subtract(vo.getLastMonthScore()).divide(vo.getLastMonthScore(), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||||
return Result.success(vo);
|
return Result.success(vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -138,8 +141,7 @@ public class SafetyInspectionStandardBigScreenController {
|
|||||||
List<XzSecurityDangerTypeRecord> allTopTypes = xzSecurityDangerTypeRecordService.getTopTypes(topCodes);
|
List<XzSecurityDangerTypeRecord> allTopTypes = xzSecurityDangerTypeRecordService.getTopTypes(topCodes);
|
||||||
List<XzSecurityDangerTypeRecord> allTypeRecords = xzSecurityDangerTypeRecordService.list();
|
List<XzSecurityDangerTypeRecord> allTypeRecords = xzSecurityDangerTypeRecordService.list();
|
||||||
List<XzSecurityDangerItemRecord> allItemRecords = xzSecurityDangerItemRecordService.list();
|
List<XzSecurityDangerItemRecord> allItemRecords = xzSecurityDangerItemRecordService.list();
|
||||||
List<XzSecurityQualityInspectionRecordVo> inspectionRecords = xzSecurityQualityInspectionRecordService.selectQualityInspectionRecordPage(new MapBuilder<String, Object>().put("startMonth", month).put("status", 60).put("projectSn", projectSn).build()).getPage().getRecords();
|
List<XzSecurityQualityInspectionRecordVo> inspectionRecords = xzSecurityQualityInspectionRecordService.selectQualityInspectionRecordPage(new MapBuilder<String, Object>().put("month", month).put("status", 60).put("projectSn", projectSn).put("pageSize",-1).build()).getPage().getRecords();
|
||||||
List<EntityMap> enterpriseInfoList = enterpriseInfoService.getEnterpriseInfoList(new MapBuilder<String, Object>().put("projectSn", projectSn).build());
|
|
||||||
Map<Integer, List<XzSecurityDangerTypeRecord>> tenTopTypes = allTopTypes.stream().collect(Collectors.groupingBy(XzSecurityDangerTypeRecord::getTenType));
|
Map<Integer, List<XzSecurityDangerTypeRecord>> tenTopTypes = allTopTypes.stream().collect(Collectors.groupingBy(XzSecurityDangerTypeRecord::getTenType));
|
||||||
for (Map.Entry<Integer, List<XzSecurityDangerTypeRecord>> tenEntry : tenTopTypes.entrySet()) {
|
for (Map.Entry<Integer, List<XzSecurityDangerTypeRecord>> tenEntry : tenTopTypes.entrySet()) {
|
||||||
Integer tenType = tenEntry.getKey();
|
Integer tenType = tenEntry.getKey();
|
||||||
@ -147,7 +149,6 @@ public class SafetyInspectionStandardBigScreenController {
|
|||||||
ArrayList<BigDecimal> oneOfTenScores = new ArrayList<>();
|
ArrayList<BigDecimal> oneOfTenScores = new ArrayList<>();
|
||||||
for (XzSecurityDangerTypeRecord topType : topTenTypes) {
|
for (XzSecurityDangerTypeRecord topType : topTenTypes) {
|
||||||
//分项计算
|
//分项计算
|
||||||
SafetyDetailTotalScoreVo totalScore = new SafetyDetailTotalScoreVo();
|
|
||||||
List<XzSecurityDangerTypeRecord> typeRecords = allTypeRecords.stream().filter(x -> Objects.equals(x.getParentId(), topType.getId())).collect(Collectors.toList());
|
List<XzSecurityDangerTypeRecord> typeRecords = allTypeRecords.stream().filter(x -> Objects.equals(x.getParentId(), topType.getId())).collect(Collectors.toList());
|
||||||
List<Long> typeIds = typeRecords.stream().map(XzSecurityDangerTypeRecord::getId).collect(Collectors.toList());
|
List<Long> typeIds = typeRecords.stream().map(XzSecurityDangerTypeRecord::getId).collect(Collectors.toList());
|
||||||
List<XzSecurityDangerItemRecord> itemRecords = allItemRecords.stream().filter(x -> typeIds.contains(x.getDangerTypeId())).collect(Collectors.toList());
|
List<XzSecurityDangerItemRecord> itemRecords = allItemRecords.stream().filter(x -> typeIds.contains(x.getDangerTypeId())).collect(Collectors.toList());
|
||||||
@ -160,7 +161,7 @@ public class SafetyInspectionStandardBigScreenController {
|
|||||||
SafetyScoreDetail safetyScoreDetail = new SafetyScoreDetail();
|
SafetyScoreDetail safetyScoreDetail = new SafetyScoreDetail();
|
||||||
safetyScoreDetail.setName(typeRecord.getDangerName());
|
safetyScoreDetail.setName(typeRecord.getDangerName());
|
||||||
safetyScoreDetail.setProjectType(typeRecord.getProjectType());
|
safetyScoreDetail.setProjectType(typeRecord.getProjectType());
|
||||||
safetyScoreDetail.setShouldScore(BigDecimal.valueOf(10));
|
safetyScoreDetail.setShouldScore(getShouldScore(typeRecord.getCode()));
|
||||||
BigDecimal reduceScore = records.stream().filter(v -> v.getDeductScore() != null).map(v -> v.getDeductScore()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
BigDecimal reduceScore = records.stream().filter(v -> v.getDeductScore() != null).map(v -> v.getDeductScore()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
//扣减分值总和不得超过该检查项目的应得分值
|
//扣减分值总和不得超过该检查项目的应得分值
|
||||||
reduceScore = reduceScore.compareTo(safetyScoreDetail.getShouldScore()) > 0 ? safetyScoreDetail.getShouldScore() : reduceScore;
|
reduceScore = reduceScore.compareTo(safetyScoreDetail.getShouldScore()) > 0 ? safetyScoreDetail.getShouldScore() : reduceScore;
|
||||||
@ -178,21 +179,25 @@ public class SafetyInspectionStandardBigScreenController {
|
|||||||
} else {
|
} else {
|
||||||
tScore = safetyScoreDetails.stream().map(SafetyScoreDetail::getScore).reduce(BigDecimal.ZERO, BigDecimal::add);
|
tScore = safetyScoreDetails.stream().map(SafetyScoreDetail::getScore).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
}
|
}
|
||||||
totalScore.setScore(tScore);
|
BigDecimal fullScore = safetyScoreDetails.stream().map(SafetyScoreDetail::getShouldScore).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
oneOfTenScores.add(tScore);
|
oneOfTenScores.add(fullScore.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : tScore.divide(fullScore, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||||
}
|
}
|
||||||
BigDecimal score = oneOfTenScores.stream().reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
||||||
score = score.divide(new BigDecimal(oneOfTenScores.size()),4,BigDecimal.ROUND_HALF_UP);
|
|
||||||
SafetyTypeScore safetyTypeScore = new SafetyTypeScore();
|
SafetyTypeScore safetyTypeScore = new SafetyTypeScore();
|
||||||
safetyTypeScore.setName(TenSafetyTypeEnum.getEnumByCode(tenType).getDesc());
|
safetyTypeScore.setName(TenSafetyTypeEnum.getEnumByCode(tenType).getDesc());
|
||||||
safetyTypeScore.setWeight(TenSafetyTypeEnum.getEnumByCode(tenType).getWeight());
|
safetyTypeScore.setWeight(TenSafetyTypeEnum.getEnumByCode(tenType).getWeight());
|
||||||
safetyTypeScore.setScore(score.divide(new BigDecimal("100"),4,BigDecimal.ROUND_HALF_UP).multiply(safetyTypeScore.getWeight()).setScale(2, BigDecimal.ROUND_HALF_UP));
|
BigDecimal score = oneOfTenScores.stream().reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
score = oneOfTenScores.size() == 0 ? BigDecimal.ZERO : score.divide(new BigDecimal(oneOfTenScores.size()), 4, BigDecimal.ROUND_HALF_UP);
|
||||||
|
score = score.divide(new BigDecimal("100"), 4, BigDecimal.ROUND_HALF_UP).multiply(safetyTypeScore.getWeight()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||||
|
score = score.compareTo(safetyTypeScore.getWeight()) > 0 ? safetyTypeScore.getWeight() : score;
|
||||||
|
score = score.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : score;
|
||||||
|
safetyTypeScore.setScore(score);
|
||||||
safetyTypeScore.setDeductScore(safetyTypeScore.getWeight().subtract(safetyTypeScore.getScore()).setScale(2, BigDecimal.ROUND_HALF_UP));
|
safetyTypeScore.setDeductScore(safetyTypeScore.getWeight().subtract(safetyTypeScore.getScore()).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||||
safetyTypeScore.setTenType(tenType);
|
safetyTypeScore.setTenType(tenType);
|
||||||
safetyTypeScores.add(safetyTypeScore);
|
safetyTypeScores.add(safetyTypeScore);
|
||||||
}
|
}
|
||||||
BigDecimal score = safetyTypeScores.stream().map(SafetyTypeScore::getScore).reduce(BigDecimal.ZERO, BigDecimal::add);
|
BigDecimal score = safetyTypeScores.stream().map(SafetyTypeScore::getScore).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
vo.setScore(score);
|
BigDecimal totalScore = safetyTypeScores.stream().map(SafetyTypeScore::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
vo.setScore(totalScore.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : score.divide(totalScore, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||||
vo.setSafetyTypeScores(safetyTypeScores);
|
vo.setSafetyTypeScores(safetyTypeScores);
|
||||||
return Result.success(vo);
|
return Result.success(vo);
|
||||||
}
|
}
|
||||||
@ -223,44 +228,21 @@ public class SafetyInspectionStandardBigScreenController {
|
|||||||
List<XzSecurityDangerTypeRecord> typeRecords = xzSecurityDangerTypeRecordService.list(new LambdaQueryWrapper<XzSecurityDangerTypeRecord>().eq(XzSecurityDangerTypeRecord::getParentId, topType.getId()));
|
List<XzSecurityDangerTypeRecord> typeRecords = xzSecurityDangerTypeRecordService.list(new LambdaQueryWrapper<XzSecurityDangerTypeRecord>().eq(XzSecurityDangerTypeRecord::getParentId, topType.getId()));
|
||||||
List<Long> typeIds = typeRecords.stream().map(XzSecurityDangerTypeRecord::getId).collect(Collectors.toList());
|
List<Long> typeIds = typeRecords.stream().map(XzSecurityDangerTypeRecord::getId).collect(Collectors.toList());
|
||||||
List<XzSecurityDangerItemRecord> itemRecords = xzSecurityDangerItemRecordService.list(new LambdaQueryWrapper<XzSecurityDangerItemRecord>().in(XzSecurityDangerItemRecord::getDangerTypeId, typeIds));
|
List<XzSecurityDangerItemRecord> itemRecords = xzSecurityDangerItemRecordService.list(new LambdaQueryWrapper<XzSecurityDangerItemRecord>().in(XzSecurityDangerItemRecord::getDangerTypeId, typeIds));
|
||||||
List<XzSecurityQualityInspectionRecordVo> inspectionRecords = xzSecurityQualityInspectionRecordService.selectQualityInspectionRecordPage(new MapBuilder<String, Object>().put("startMonth", month).put("status", 60).put("projectSn", projectSn).build()).getPage().getRecords();
|
List<XzSecurityQualityInspectionRecordVo> inspectionRecords = xzSecurityQualityInspectionRecordService.selectQualityInspectionRecordPage(new MapBuilder<String, Object>().put("month", month).put("status", 60).put("projectSn", projectSn).put("pageSize",-1).build()).getPage().getRecords();
|
||||||
List<EntityMap> enterpriseInfoList = enterpriseInfoService.getEnterpriseInfoList(new MapBuilder<String, Object>().put("projectSn", projectSn).build());
|
|
||||||
List<SafetyScoreDetail> safetyScoreDetails = new ArrayList<>();
|
List<SafetyScoreDetail> safetyScoreDetails = new ArrayList<>();
|
||||||
for (XzSecurityDangerTypeRecord typeRecord : typeRecords) {
|
for (XzSecurityDangerTypeRecord typeRecord : typeRecords) {
|
||||||
Long typeId = typeRecord.getId();
|
Long typeId = typeRecord.getId();
|
||||||
List<XzSecurityDangerItemRecord> items = itemRecords.stream().filter(r -> Objects.equals(r.getDangerTypeId(), typeId)).collect(Collectors.toList());
|
List<XzSecurityDangerItemRecord> items = itemRecords.stream().filter(r -> Objects.equals(r.getDangerTypeId(), typeId)).collect(Collectors.toList());
|
||||||
Set<Long> itemIdSet = items.stream().map(XzSecurityDangerItemRecord::getId).collect(Collectors.toSet());
|
Set<Long> itemIdSet = items.stream().map(XzSecurityDangerItemRecord::getId).collect(Collectors.toSet());
|
||||||
List<XzSecurityQualityInspectionRecordVo> records = inspectionRecords.stream().filter(r -> itemIdSet.contains(r.getDangerItemId())).collect(Collectors.toList());
|
List<XzSecurityQualityInspectionRecordVo> records = inspectionRecords.stream().filter(r -> itemIdSet.contains(r.getDangerItemId())).collect(Collectors.toList());
|
||||||
//设置总公司
|
|
||||||
for (XzSecurityQualityInspectionRecordVo record : records) {
|
|
||||||
String mainEnterpriseName;
|
|
||||||
Optional<EntityMap> optional = enterpriseInfoList.stream().filter(e -> Objects.equals(MapUtils.getLong(e, "id"), record.getEnterpriseId())).findFirst();
|
|
||||||
if (optional.isPresent()) {
|
|
||||||
EntityMap entityMap = optional.get();
|
|
||||||
String projectEnterpriseId = MapUtils.getString(entityMap, "projectEnterpriseId");
|
|
||||||
String ancestors = MapUtils.getString(entityMap, "ancestors");
|
|
||||||
if (Objects.equals(projectEnterpriseId, "0")) {
|
|
||||||
mainEnterpriseName = record.getEnterpriseName();
|
|
||||||
} else {
|
|
||||||
optional = enterpriseInfoList.stream().filter(e -> MapUtils.getString(e, "projectEnterpriseId").equals(ancestors.split(",")[1])).findFirst();
|
|
||||||
if (optional.isPresent()) {
|
|
||||||
mainEnterpriseName = MapUtils.getString(optional.get(), "enterpriseName");
|
|
||||||
} else {
|
|
||||||
mainEnterpriseName = record.getEnterpriseName();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
mainEnterpriseName = record.getEnterpriseName();
|
|
||||||
}
|
|
||||||
record.setMainEnterpriseName(mainEnterpriseName);
|
|
||||||
}
|
|
||||||
SafetyScoreDetail safetyScoreDetail = new SafetyScoreDetail();
|
SafetyScoreDetail safetyScoreDetail = new SafetyScoreDetail();
|
||||||
safetyScoreDetail.setName(typeRecord.getDangerName());
|
safetyScoreDetail.setName(typeRecord.getDangerName());
|
||||||
safetyScoreDetail.setProjectType(typeRecord.getProjectType());
|
safetyScoreDetail.setProjectType(typeRecord.getProjectType());
|
||||||
safetyScoreDetail.setShouldScore(getShouldScore(code));
|
safetyScoreDetail.setShouldScore(getShouldScore(typeRecord.getCode()));
|
||||||
BigDecimal reduceScore = records.stream().filter(v -> v.getDeductScore() != null).map(v -> v.getDeductScore()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
BigDecimal reduceScore = records.stream().filter(v -> v.getDeductScore() != null).map(v -> v.getDeductScore()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
//扣减分值总和不得超过该检查项目的应得分值
|
//扣减分值总和不得超过该检查项目的应得分值
|
||||||
reduceScore = reduceScore.compareTo(safetyScoreDetail.getShouldScore()) > 0 ? safetyScoreDetail.getShouldScore() : reduceScore;
|
reduceScore = reduceScore.compareTo(safetyScoreDetail.getShouldScore()) > 0 ? safetyScoreDetail.getShouldScore() : reduceScore;
|
||||||
|
reduceScore = reduceScore.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : reduceScore;
|
||||||
safetyScoreDetail.setDeductScore(reduceScore.setScale(2, BigDecimal.ROUND_HALF_UP));
|
safetyScoreDetail.setDeductScore(reduceScore.setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||||
safetyScoreDetail.setScore(safetyScoreDetail.getShouldScore().subtract(reduceScore).setScale(2, BigDecimal.ROUND_HALF_UP));
|
safetyScoreDetail.setScore(safetyScoreDetail.getShouldScore().subtract(reduceScore).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||||
safetyScoreDetail.setDeductReasonList(records);
|
safetyScoreDetail.setDeductReasonList(records);
|
||||||
@ -271,11 +253,12 @@ public class SafetyInspectionStandardBigScreenController {
|
|||||||
if (safetyScoreDetails.stream().anyMatch(s -> s.getShouldScore().equals(new BigDecimal(0)))
|
if (safetyScoreDetails.stream().anyMatch(s -> s.getShouldScore().equals(new BigDecimal(0)))
|
||||||
|| mustReduce.compareTo(new BigDecimal(40)) < 0) {
|
|| mustReduce.compareTo(new BigDecimal(40)) < 0) {
|
||||||
//保证项目中有一项未得分或保证项目小计得分不足40分,此分项检查评分表不应得分
|
//保证项目中有一项未得分或保证项目小计得分不足40分,此分项检查评分表不应得分
|
||||||
tScore = new BigDecimal(0);
|
tScore = BigDecimal.ZERO;
|
||||||
} else {
|
} else {
|
||||||
tScore = safetyScoreDetails.stream().map(SafetyScoreDetail::getScore).reduce(BigDecimal.ZERO, BigDecimal::add);
|
tScore = safetyScoreDetails.stream().map(SafetyScoreDetail::getScore).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
}
|
}
|
||||||
totalScore.setScore(tScore);
|
BigDecimal fullScore = safetyScoreDetails.stream().map(SafetyScoreDetail::getShouldScore).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
totalScore.setScore(fullScore.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : tScore.divide(fullScore, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||||
totalScore.setSafetyScoreDetails(safetyScoreDetails);
|
totalScore.setSafetyScoreDetails(safetyScoreDetails);
|
||||||
return Result.success(totalScore);
|
return Result.success(totalScore);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import com.zhgd.annotation.OperLog;
|
|||||||
import com.zhgd.jeecg.common.api.vo.Result;
|
import com.zhgd.jeecg.common.api.vo.Result;
|
||||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||||
import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityInspectTaskRecord;
|
import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityInspectTaskRecord;
|
||||||
|
import com.zhgd.xmgl.modules.xz.security.entity.vo.XzSecurityInspectTaskRecordVo;
|
||||||
import com.zhgd.xmgl.modules.xz.security.service.IXzSecurityInspectTaskRecordService;
|
import com.zhgd.xmgl.modules.xz.security.service.IXzSecurityInspectTaskRecordService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
@ -49,7 +50,7 @@ public class XzSecurityInspectTaskRecordController {
|
|||||||
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "body", required = true, dataType = "Integer"),
|
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "body", required = true, dataType = "Integer"),
|
||||||
})
|
})
|
||||||
@PostMapping(value = "/list")
|
@PostMapping(value = "/list")
|
||||||
public Result<IPage<EntityMap>> queryPageList(@RequestBody Map<String, Object> map) {
|
public Result<IPage<XzSecurityInspectTaskRecordVo >> queryPageList(@RequestBody Map<String, Object> map) {
|
||||||
return Result.success(inspectTaskRecordService.selectInspectTaskRecordPage(map));
|
return Result.success(inspectTaskRecordService.selectInspectTaskRecordPage(map));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,18 @@
|
|||||||
|
package com.zhgd.xmgl.modules.xz.security.entity.vo;
|
||||||
|
|
||||||
|
import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityInspectTaskRecord;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class XzSecurityInspectTaskRecordVo extends XzSecurityInspectTaskRecord {
|
||||||
|
private String inspectTypeName;
|
||||||
|
private String createUserName;
|
||||||
|
private Integer taskCompleteNum;
|
||||||
|
private Integer taskNum;
|
||||||
|
@ApiModelProperty("任务状态:1未开始2进行中3已完成4已逾期")
|
||||||
|
private Integer taskStatus;
|
||||||
|
private Map<String, Object> count;
|
||||||
|
}
|
||||||
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.zhgd.annotation.DataScope;
|
import com.zhgd.annotation.DataScope;
|
||||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||||
import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityInspectTaskRecord;
|
import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityInspectTaskRecord;
|
||||||
|
import com.zhgd.xmgl.modules.xz.security.entity.vo.XzSecurityInspectTaskRecordVo;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
@ -27,7 +28,7 @@ public interface XzSecurityInspectTaskRecordMapper extends BaseMapper<XzSecurity
|
|||||||
* @param map
|
* @param map
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<EntityMap> selectInspectTaskRecordPage(Page<EntityMap> page, @Param("param") Map<String, Object> map);
|
List<XzSecurityInspectTaskRecordVo > selectInspectTaskRecordPage(Page<XzSecurityInspectTaskRecordVo> page, @Param("param") Map<String, Object> map);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取今日巡检信息
|
* 获取今日巡检信息
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.zhgd.xmgl.modules.xz.security.mapper.XzSecurityInspectTaskRecordMapper">
|
<mapper namespace="com.zhgd.xmgl.modules.xz.security.mapper.XzSecurityInspectTaskRecordMapper">
|
||||||
<select id="selectInspectTaskRecordPage" resultType="com.zhgd.jeecg.common.mybatis.EntityMap">
|
<select id="selectInspectTaskRecordPage" resultType="com.zhgd.xmgl.modules.xz.security.entity.vo.XzSecurityInspectTaskRecordVo">
|
||||||
SELECT a.*,b.inspect_type_name,d.real_name create_user_name
|
SELECT a.*,b.inspect_type_name,d.real_name create_user_name
|
||||||
from xz_security_inspect_task_record a
|
from xz_security_inspect_task_record a
|
||||||
LEFT JOIN inspect_type b ON a.inspect_type_id=b.id
|
LEFT JOIN inspect_type b ON a.inspect_type_id=b.id
|
||||||
|
|||||||
@ -273,8 +273,9 @@
|
|||||||
LEFT JOIN (SELECT quality_id,MAX(rectify_time) as rectify_time FROM xz_security_quality_rectify_record GROUP BY
|
LEFT JOIN (SELECT quality_id,MAX(rectify_time) as rectify_time FROM xz_security_quality_rectify_record GROUP BY
|
||||||
quality_id) r ON r.quality_id = t.id
|
quality_id) r ON r.quality_id = t.id
|
||||||
WHERE t.project_sn = #{param.projectSn}
|
WHERE t.project_sn = #{param.projectSn}
|
||||||
<if test="param.startMonth != null and param.startMonth != '' ">
|
<if test="param.month != null and param.month != '' ">
|
||||||
and t.inspect_time >= #{param.startMonth}
|
and t.inspect_time >= #{param.month}
|
||||||
|
and t.inspect_time <= concat(#{param.month},'-31 23:59:59')
|
||||||
</if>
|
</if>
|
||||||
<if test="param.recordStatus == '8'.toString() ">
|
<if test="param.recordStatus == '8'.toString() ">
|
||||||
and t.status != 6
|
and t.status != 6
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||||
import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityInspectTaskRecord;
|
import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityInspectTaskRecord;
|
||||||
|
import com.zhgd.xmgl.modules.xz.security.entity.vo.XzSecurityInspectTaskRecordVo;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -34,7 +35,7 @@ public interface IXzSecurityInspectTaskRecordService extends IService<XzSecurity
|
|||||||
* @param map
|
* @param map
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
IPage<EntityMap> selectInspectTaskRecordPage(Map<String, Object> map);
|
IPage<XzSecurityInspectTaskRecordVo > selectInspectTaskRecordPage(Map<String, Object> map);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取今日巡检信息
|
* 获取今日巡检信息
|
||||||
|
|||||||
@ -1,7 +1,9 @@
|
|||||||
package com.zhgd.xmgl.modules.xz.security.service.impl;
|
package com.zhgd.xmgl.modules.xz.security.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.hutool.core.util.NumberUtil;
|
import cn.hutool.core.util.NumberUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@ -12,6 +14,7 @@ import com.zhgd.xmgl.modules.dangerous.service.IHiddenDangerInspectRecordService
|
|||||||
import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityInspectTaskItemRecord;
|
import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityInspectTaskItemRecord;
|
||||||
import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityInspectTaskRecord;
|
import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityInspectTaskRecord;
|
||||||
import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityQualityInspectionRecord;
|
import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityQualityInspectionRecord;
|
||||||
|
import com.zhgd.xmgl.modules.xz.security.entity.vo.XzSecurityInspectTaskRecordVo;
|
||||||
import com.zhgd.xmgl.modules.xz.security.enums.XzSecurityInspectTaskRecordFrequencyTypeEnum;
|
import com.zhgd.xmgl.modules.xz.security.enums.XzSecurityInspectTaskRecordFrequencyTypeEnum;
|
||||||
import com.zhgd.xmgl.modules.xz.security.mapper.XzSecurityInspectTaskItemRecordMapper;
|
import com.zhgd.xmgl.modules.xz.security.mapper.XzSecurityInspectTaskItemRecordMapper;
|
||||||
import com.zhgd.xmgl.modules.xz.security.mapper.XzSecurityInspectTaskRecordMapper;
|
import com.zhgd.xmgl.modules.xz.security.mapper.XzSecurityInspectTaskRecordMapper;
|
||||||
@ -21,10 +24,12 @@ import com.zhgd.xmgl.util.DateUtils;
|
|||||||
import org.apache.commons.collections.MapUtils;
|
import org.apache.commons.collections.MapUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 检查任务
|
* @Description: 检查任务
|
||||||
@ -35,16 +40,25 @@ import java.util.*;
|
|||||||
@Service
|
@Service
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public class XzSecurityInspectTaskRecordServiceImpl extends ServiceImpl<XzSecurityInspectTaskRecordMapper, XzSecurityInspectTaskRecord> implements IXzSecurityInspectTaskRecordService {
|
public class XzSecurityInspectTaskRecordServiceImpl extends ServiceImpl<XzSecurityInspectTaskRecordMapper, XzSecurityInspectTaskRecord> implements IXzSecurityInspectTaskRecordService {
|
||||||
|
@Lazy
|
||||||
|
@Autowired
|
||||||
|
XzSecurityQualityInspectionRecordServiceImpl xzSecurityQualityInspectionRecordService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private XzSecurityInspectTaskRecordMapper xzSecurityInspectTaskRecordMapper;
|
private XzSecurityInspectTaskRecordMapper xzSecurityInspectTaskRecordMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private XzSecurityInspectTaskItemRecordMapper xzSecurityInspectTaskItemRecordMapper;
|
private XzSecurityInspectTaskItemRecordMapper xzSecurityInspectTaskItemRecordMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IHiddenDangerInspectRecordService hiddenDangerInspectRecordService;
|
private IHiddenDangerInspectRecordService hiddenDangerInspectRecordService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IXzSecurityQualityInspectionRecordService qualityInspectionRecordService;
|
private IXzSecurityQualityInspectionRecordService qualityInspectionRecordService;
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
List<String> diffTimeWeekList = DateUtils.getDiffTimeWeekList(cn.hutool.core.date.DateUtil.format(
|
||||||
|
cn.hutool.core.date.DateUtil.offsetDay(new Date(), -7), "yyyy-MM-dd"),
|
||||||
|
cn.hutool.core.date.DateUtil.format(new Date(), "yyyy-MM-dd"));
|
||||||
|
System.out.println(diffTimeWeekList);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void saveInspectTaskRecord(XzSecurityInspectTaskRecord xzSecurityInspectTaskRecord) {
|
public void saveInspectTaskRecord(XzSecurityInspectTaskRecord xzSecurityInspectTaskRecord) {
|
||||||
if (xzSecurityInspectTaskRecord.getFrequencyType() == null) {
|
if (xzSecurityInspectTaskRecord.getFrequencyType() == null) {
|
||||||
@ -90,14 +104,6 @@ public class XzSecurityInspectTaskRecordServiceImpl extends ServiceImpl<XzSecuri
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
List<String> diffTimeWeekList = DateUtils.getDiffTimeWeekList(cn.hutool.core.date.DateUtil.format(
|
|
||||||
cn.hutool.core.date.DateUtil.offsetDay(new Date(), -7), "yyyy-MM-dd"),
|
|
||||||
cn.hutool.core.date.DateUtil.format(new Date(), "yyyy-MM-dd"));
|
|
||||||
System.out.println(diffTimeWeekList);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void saveTaskItemRecord(XzSecurityInspectTaskRecord xzSecurityInspectTaskRecord, String title) {
|
public void saveTaskItemRecord(XzSecurityInspectTaskRecord xzSecurityInspectTaskRecord, String title) {
|
||||||
for (int i = 0; i < xzSecurityInspectTaskRecord.getFrequencyNum(); i++) {
|
for (int i = 0; i < xzSecurityInspectTaskRecord.getFrequencyNum(); i++) {
|
||||||
XzSecurityInspectTaskItemRecord itemRecord = new XzSecurityInspectTaskItemRecord();
|
XzSecurityInspectTaskItemRecord itemRecord = new XzSecurityInspectTaskItemRecord();
|
||||||
@ -144,20 +150,62 @@ public class XzSecurityInspectTaskRecordServiceImpl extends ServiceImpl<XzSecuri
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<EntityMap> selectInspectTaskRecordPage(Map<String, Object> map) {
|
public IPage<XzSecurityInspectTaskRecordVo> selectInspectTaskRecordPage(Map<String, Object> map) {
|
||||||
int pageNo = Integer.parseInt(map.getOrDefault("pageNo", 1).toString());
|
int pageNo = Integer.parseInt(map.getOrDefault("pageNo", 1).toString());
|
||||||
int pageSize = Integer.parseInt(map.getOrDefault("pageSize", 10).toString());
|
int pageSize = Integer.parseInt(map.getOrDefault("pageSize", 10).toString());
|
||||||
Page<EntityMap> page = new Page<>(pageNo, pageSize);
|
Page<XzSecurityInspectTaskRecordVo> page = new Page<>(pageNo, pageSize);
|
||||||
List<EntityMap> list = xzSecurityInspectTaskRecordMapper.selectInspectTaskRecordPage(page, map);
|
List<XzSecurityInspectTaskRecordVo> list = xzSecurityInspectTaskRecordMapper.selectInspectTaskRecordPage(page, map);
|
||||||
if (list != null && list.size() > 0) {
|
if (list != null && list.size() > 0) {
|
||||||
for (EntityMap data : list) {
|
List<Long> taskIds = list.stream().map(entityMap -> entityMap.getId()).collect(Collectors.toList());
|
||||||
|
List<XzSecurityInspectTaskItemRecord> allItemRecords = xzSecurityInspectTaskItemRecordMapper.selectList(new LambdaQueryWrapper<XzSecurityInspectTaskItemRecord>().in(XzSecurityInspectTaskItemRecord::getTaskId, taskIds));
|
||||||
|
List<XzSecurityQualityInspectionRecord> allInspectionRecords = xzSecurityQualityInspectionRecordService.list(new QueryWrapper<XzSecurityQualityInspectionRecord>().lambda().in(XzSecurityQualityInspectionRecord::getTaskId, taskIds));
|
||||||
|
for (XzSecurityInspectTaskRecordVo data : list) {
|
||||||
Map<String, Object> count = new HashMap<>(16);
|
Map<String, Object> count = new HashMap<>(16);
|
||||||
|
Long id = data.getId();
|
||||||
if (MapUtils.getInteger(map, "type") == 1) {
|
if (MapUtils.getInteger(map, "type") == 1) {
|
||||||
count = hiddenDangerInspectRecordService.selectDangerInspectCountByTask(MapUtils.getLong(data, "id"));
|
count = hiddenDangerInspectRecordService.selectDangerInspectCountByTask(id);
|
||||||
} else {
|
} else {
|
||||||
count = qualityInspectionRecordService.selectDangerInspectCountByTask(MapUtils.getLong(data, "id"));
|
count = qualityInspectionRecordService.selectDangerInspectCountByTask(id);
|
||||||
|
}
|
||||||
|
data.setCount(count);
|
||||||
|
|
||||||
|
try {
|
||||||
|
List<XzSecurityInspectTaskItemRecord> itemRecords = allItemRecords.stream().filter(x -> x.getTaskId().equals(id)).collect(Collectors.toList());
|
||||||
|
Set<Long> itemIdSet = itemRecords.stream().map(XzSecurityInspectTaskItemRecord::getId).collect(Collectors.toSet());
|
||||||
|
List<XzSecurityQualityInspectionRecord> inspectionRecords = allInspectionRecords.stream().filter(x -> itemIdSet.contains(x.getItemId())).collect(Collectors.toList());
|
||||||
|
data.setTaskNum(itemRecords.size());
|
||||||
|
data.setTaskCompleteNum(inspectionRecords.stream().map(XzSecurityQualityInspectionRecord::getItemId).collect(Collectors.toSet()).size());
|
||||||
|
Integer taskStatus;
|
||||||
|
if (Objects.equals(data.getTaskNum(), data.getTaskCompleteNum())) {
|
||||||
|
taskStatus = 3;
|
||||||
|
} else {
|
||||||
|
if (Objects.equals(data.getFrequencyType(), XzSecurityInspectTaskRecordFrequencyTypeEnum.TIME.getValue())) {
|
||||||
|
if (DateUtil.compare(DateUtil.parse(data.getEndTime()), DateUtil.parse(DateUtil.format(new Date(), "yyyy-MM-dd"))) < 0) {
|
||||||
|
taskStatus = 4;
|
||||||
|
} else if (DateUtil.compare(DateUtil.parse(data.getStartTime()), DateUtil.parse(DateUtil.format(new Date(), "yyyy-MM-dd"))) > 0) {
|
||||||
|
taskStatus = 1;
|
||||||
|
} else {
|
||||||
|
taskStatus = 2;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Set<Long> overDueItemIdSet = itemRecords.stream().filter(x ->
|
||||||
|
//2024-08-05/2024-08-06/第1次
|
||||||
|
DateUtil.compare(DateUtil.parse(x.getItemName().split("/")[1]), DateUtil.parse(DateUtil.format(new Date(), "yyyy-MM-dd"))) < 0
|
||||||
|
).map(XzSecurityInspectTaskItemRecord::getId).collect(Collectors.toSet());
|
||||||
|
Set<Long> irSet = inspectionRecords.stream().filter(x -> overDueItemIdSet.contains(x.getItemId())).map(XzSecurityQualityInspectionRecord::getItemId).collect(Collectors.toSet());
|
||||||
|
if (overDueItemIdSet.size() != irSet.size()) {
|
||||||
|
taskStatus = 4;
|
||||||
|
} else if (itemRecords.stream().allMatch(x -> DateUtil.compare(DateUtil.parse(x.getItemName().split("/")[0]), DateUtil.parse(DateUtil.format(new Date(), "yyyy-MM-dd"))) > 0)) {
|
||||||
|
taskStatus = 1;
|
||||||
|
} else {
|
||||||
|
taskStatus = 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
data.setTaskStatus(taskStatus);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("", e);
|
||||||
}
|
}
|
||||||
data.put("count", count);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return page.setRecords(list);
|
return page.setRecords(list);
|
||||||
|
|||||||
@ -43,6 +43,7 @@ import com.zhgd.xmgl.modules.worker.entity.WorkerInfoAuditRecord;
|
|||||||
import com.zhgd.xmgl.modules.worker.mapper.EnterpriseInfoMapper;
|
import com.zhgd.xmgl.modules.worker.mapper.EnterpriseInfoMapper;
|
||||||
import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoAuditRecordMapper;
|
import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoAuditRecordMapper;
|
||||||
import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper;
|
import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper;
|
||||||
|
import com.zhgd.xmgl.modules.worker.service.IEnterpriseInfoService;
|
||||||
import com.zhgd.xmgl.modules.worker.service.impl.WorkerInfoServiceImpl;
|
import com.zhgd.xmgl.modules.worker.service.impl.WorkerInfoServiceImpl;
|
||||||
import com.zhgd.xmgl.modules.xz.entity.XzDeductScoreRecord;
|
import com.zhgd.xmgl.modules.xz.entity.XzDeductScoreRecord;
|
||||||
import com.zhgd.xmgl.modules.xz.entity.XzTaskProgressContent;
|
import com.zhgd.xmgl.modules.xz.entity.XzTaskProgressContent;
|
||||||
@ -124,6 +125,9 @@ public class XzSecurityQualityInspectionRecordServiceImpl extends ServiceImpl<Xz
|
|||||||
@Lazy
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
IExamTrainService examTrainService;
|
IExamTrainService examTrainService;
|
||||||
|
@Lazy
|
||||||
|
@Autowired
|
||||||
|
IEnterpriseInfoService enterpriseInfoService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private QualityRegionMapper qualityRegionMapper;
|
private QualityRegionMapper qualityRegionMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
@ -192,12 +196,13 @@ public class XzSecurityQualityInspectionRecordServiceImpl extends ServiceImpl<Xz
|
|||||||
XzSecurityRecordVo data = new XzSecurityRecordVo();
|
XzSecurityRecordVo data = new XzSecurityRecordVo();
|
||||||
int pageNo = Integer.parseInt(map.getOrDefault("pageNo", 1).toString());
|
int pageNo = Integer.parseInt(map.getOrDefault("pageNo", 1).toString());
|
||||||
int pageSize = Integer.parseInt(map.getOrDefault("pageSize", 10).toString());
|
int pageSize = Integer.parseInt(map.getOrDefault("pageSize", 10).toString());
|
||||||
|
String projectSn = MapUtils.getString(map, "projectSn");
|
||||||
if (map.get(REGION_ID) != null && StringUtils.isNotBlank(map.get(REGION_ID).toString())) {
|
if (map.get(REGION_ID) != null && StringUtils.isNotBlank(map.get(REGION_ID).toString())) {
|
||||||
List<Long> regionIds = JSON.parseObject(map.get(REGION_ID).toString(), new TypeReference<List<Long>>() {
|
List<Long> regionIds = JSON.parseObject(map.get(REGION_ID).toString(), new TypeReference<List<Long>>() {
|
||||||
});
|
});
|
||||||
if (CollectionUtils.isNotEmpty(regionIds)) {
|
if (CollectionUtils.isNotEmpty(regionIds)) {
|
||||||
Long topId = regionIds.get(regionIds.size() - 1);
|
Long topId = regionIds.get(regionIds.size() - 1);
|
||||||
List<QualityRegion> qualityRegionList = qualityRegionMapper.selectList(new LambdaQueryWrapper<QualityRegion>().eq(QualityRegion::getProjectSn, MapUtils.getString(map, "projectSn")));
|
List<QualityRegion> qualityRegionList = qualityRegionMapper.selectList(new LambdaQueryWrapper<QualityRegion>().eq(QualityRegion::getProjectSn, projectSn));
|
||||||
List<Long> idList = getChildrenByQualityRegionId(topId, qualityRegionList);
|
List<Long> idList = getChildrenByQualityRegionId(topId, qualityRegionList);
|
||||||
idList.add(topId);
|
idList.add(topId);
|
||||||
map.put(REGION_ID, idList);
|
map.put(REGION_ID, idList);
|
||||||
@ -205,8 +210,29 @@ public class XzSecurityQualityInspectionRecordServiceImpl extends ServiceImpl<Xz
|
|||||||
}
|
}
|
||||||
Page<XzSecurityQualityInspectionRecordVo> page = new Page<>(pageNo, pageSize);
|
Page<XzSecurityQualityInspectionRecordVo> page = new Page<>(pageNo, pageSize);
|
||||||
List<XzSecurityQualityInspectionRecordVo> list = xzSecurityQualityInspectionRecordMapper.selectQualityInspectionRecordPage(page, map);
|
List<XzSecurityQualityInspectionRecordVo> list = xzSecurityQualityInspectionRecordMapper.selectQualityInspectionRecordPage(page, map);
|
||||||
|
List<EntityMap> enterpriseInfoList = enterpriseInfoService.getEnterpriseInfoList(new MapBuilder<String, Object>().put("projectSn", projectSn).build());
|
||||||
for (XzSecurityQualityInspectionRecordVo vo : list) {
|
for (XzSecurityQualityInspectionRecordVo vo : list) {
|
||||||
setProblemDescription(vo);
|
setProblemDescription(vo);
|
||||||
|
//设置总公司名称(总包单位)
|
||||||
|
String mainEnterpriseName;
|
||||||
|
Optional<EntityMap> optional = enterpriseInfoList.stream().filter(e -> Objects.equals(MapUtils.getLong(e, "id"), vo.getEnterpriseId())).findFirst();
|
||||||
|
if (optional.isPresent()) {
|
||||||
|
EntityMap entityMap = optional.get();
|
||||||
|
String ancestors = MapUtils.getString(entityMap, "ancestors");
|
||||||
|
if (ancestors == null || Objects.equals(ancestors, "0")) {
|
||||||
|
mainEnterpriseName = vo.getEnterpriseName();
|
||||||
|
} else {
|
||||||
|
optional = enterpriseInfoList.stream().filter(e -> MapUtils.getString(e, "projectEnterpriseId").equals(ancestors.split(",")[1])).findFirst();
|
||||||
|
if (optional.isPresent()) {
|
||||||
|
mainEnterpriseName = MapUtils.getString(optional.get(), "enterpriseName");
|
||||||
|
} else {
|
||||||
|
mainEnterpriseName = vo.getEnterpriseName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
mainEnterpriseName = vo.getEnterpriseName();
|
||||||
|
}
|
||||||
|
vo.setMainEnterpriseName(mainEnterpriseName);
|
||||||
}
|
}
|
||||||
page.setRecords(list);
|
page.setRecords(list);
|
||||||
XzSecurityQualityInspectionRecordTotalVo total = getXzSecurityQualityInspectionRecordTotalVo(map);
|
XzSecurityQualityInspectionRecordTotalVo total = getXzSecurityQualityInspectionRecordTotalVo(map);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user