大屏修改bug

This commit is contained in:
guoshengxiong 2024-06-20 17:09:25 +08:00
parent 81a877712d
commit 82bcb952ab
16 changed files with 169 additions and 101 deletions

View File

@ -54,6 +54,7 @@ public class EnterpriseInfoController {
@ApiImplicitParam(name = "enterpriseName", value = "劳务公司名称", paramType = "body", required = false, dataType = "String"), @ApiImplicitParam(name = "enterpriseName", value = "劳务公司名称", paramType = "body", required = false, dataType = "String"),
@ApiImplicitParam(name = "enterpriseTypeId", value = "企业类型", paramType = "body", required = false, dataType = "String"), @ApiImplicitParam(name = "enterpriseTypeId", value = "企业类型", paramType = "body", required = false, dataType = "String"),
@ApiImplicitParam(name = "projectSn", value = "项目sN", paramType = "body", required = true, dataType = "String"), @ApiImplicitParam(name = "projectSn", value = "项目sN", paramType = "body", required = true, dataType = "String"),
@ApiImplicitParam(name = "isCountMainEnterprise", value = "0默认1是总包", paramType = "query", required = false, dataType = "Integer"),
}) })
@PostMapping(value = "/list") @PostMapping(value = "/list")
public Result<List<EntityMap>> getEnterpriseInfoList(@RequestBody Map<String, Object> map) { public Result<List<EntityMap>> getEnterpriseInfoList(@RequestBody Map<String, Object> map) {
@ -229,7 +230,7 @@ public class EnterpriseInfoController {
return Result.success(enterpriseInfoService.getXzSupplierInfo(param)); return Result.success(enterpriseInfoService.getXzSupplierInfo(param));
} }
@ApiOperation(value = "企业本周数据统计", notes = "企业本周数据统计", httpMethod = "POST") @ApiOperation(value = "总包企业本周数据统计", notes = "总包企业本周数据统计", httpMethod = "POST")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"), @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
@ApiImplicitParam(name = "enterpriseId", value = "企业id", paramType = "body", required = true, dataType = "String"), @ApiImplicitParam(name = "enterpriseId", value = "企业id", paramType = "body", required = true, dataType = "String"),

View File

@ -268,8 +268,7 @@ public class WorkerAttendanceController {
return Result.success(workerAttendanceService.queryAttendanceOfEachCompany(map)); return Result.success(workerAttendanceService.queryAttendanceOfEachCompany(map));
} }
@ApiOperation(value = "安全履职分析(列表包含所有企业,其中总包包含分包的数据)", notes = "安全履职分析(列表包含所有企业,其中总包包含分包的数据)", httpMethod = "POST")
@ApiOperation(value = "安全履职分析", notes = "安全履职分析", httpMethod = "POST")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"), @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
}) })

View File

@ -29,5 +29,8 @@ public class SafetyPerformanceAnalysisVo {
private Integer jlInServiceNum; private Integer jlInServiceNum;
@ApiModelProperty(value = "企业名称") @ApiModelProperty(value = "企业名称")
private java.lang.String enterpriseName; private java.lang.String enterpriseName;
private java.lang.Long projectEnterpriseId;
private java.lang.Long parentProjectEnterpriseId;
private String ancestors;
private List<SafetyPerformanceAnalysisVo> list; private List<SafetyPerformanceAnalysisVo> list;
} }

View File

@ -5,20 +5,44 @@ import lombok.Data;
@Data @Data
public class StatsEnterpriseWeekVo { public class StatsEnterpriseWeekVo {
/**
* 事故报警总数
*/
@ApiModelProperty("事故报警总数") @ApiModelProperty("事故报警总数")
private Integer emergencyNum; private Integer emergencyNum;
@ApiModelProperty("在场人员数量") /**
* 在场人员数量峰值
*/
@ApiModelProperty("在场人员数量(峰值)")
private Integer highWorkerNumThisWeek; private Integer highWorkerNumThisWeek;
/**
* 在职人员数量
*/
@ApiModelProperty("在职人员数量") @ApiModelProperty("在职人员数量")
private Integer inServiceNum; private Integer inServiceNum;
/**
* 企业安全分
*/
@ApiModelProperty("企业安全分") @ApiModelProperty("企业安全分")
private Double safeScore; private Double safeScore;
/**
* 安全隐患总数
*/
@ApiModelProperty("安全隐患总数") @ApiModelProperty("安全隐患总数")
private Integer securityNum; private Integer securityNum;
/**
* 质量隐患总数
*/
@ApiModelProperty("质量隐患总数") @ApiModelProperty("质量隐患总数")
private Integer qualityNum; private Integer qualityNum;
/**
* 特种作业数量
*/
@ApiModelProperty("特种作业数量") @ApiModelProperty("特种作业数量")
private Integer specialNum; private Integer specialNum;
/**
* 培训未通过率
*/
@ApiModelProperty("培训未通过率") @ApiModelProperty("培训未通过率")
private Double trainNotPassRadio; private Double trainNotPassRadio;

View File

@ -81,4 +81,12 @@ public interface EnterpriseInfoMapper extends BaseMapper<EnterpriseInfo> {
Integer countBySocialCodeAndNotId(@Param("socialCode") String socialCode, @Param("id") Long id); Integer countBySocialCodeAndNotId(@Param("socialCode") String socialCode, @Param("id") Long id);
List<EnterpriseInfo> getEnterpriseInfoByRegionId(Long id); List<EnterpriseInfo> getEnterpriseInfoByRegionId(Long id);
/**
* 获取总包下面分包和总包自己的企业ids
*
* @param enterpriseId
* @return
*/
List<Long> getEnterpriseIdsByMainEnterpriseId(@Param("enterpriseId") String enterpriseId);
} }

View File

@ -255,5 +255,5 @@ public interface WorkerInfoMapper extends BaseMapper<WorkerInfo> {
List<StatsTrendVo> statsEnterpriseRisk(@Param("param") Map<String, Object> map); List<StatsTrendVo> statsEnterpriseRisk(@Param("param") Map<String, Object> map);
double getAvgSafeScore(@Param("enterpriseId") String enterpriseId, @Param("projectSn") String projectSn); double getAvgSafeScore(@Param("list") List<Long> enterpriseIds, @Param("projectSn") String projectSn);
} }

View File

@ -36,6 +36,9 @@
<if test="map.enterpriseId != null and map.enterpriseId != ''"> <if test="map.enterpriseId != null and map.enterpriseId != ''">
and b.enterprise_id = #{map.enterpriseId} and b.enterprise_id = #{map.enterpriseId}
</if> </if>
<if test="map.isCountMainEnterprise == '1'.toString()">
and b.parent_project_enterprise_id = 0
</if>
order by b.sort_num order by b.sort_num
</sql> </sql>
<select id="getEnterpriseInfoList" resultType="com.zhgd.jeecg.common.mybatis.EntityMap" parameterType="map"> <select id="getEnterpriseInfoList" resultType="com.zhgd.jeecg.common.mybatis.EntityMap" parameterType="map">
@ -296,4 +299,12 @@
join quality_region_to_enterprise qrte on qrte.enterprise_id=ei.id join quality_region_to_enterprise qrte on qrte.enterprise_id=ei.id
where qrte.quality_region_id=#{id} where qrte.quality_region_id=#{id}
</select> </select>
<select id="getEnterpriseIdsByMainEnterpriseId" resultType="java.lang.Long">
select id
from enterprise_info
where id = #{enterpriseId} or id IN ( SELECT DISTINCT t2.enterprise_id FROM
(SELECT id FROM project_enterprise WHERE enterprise_id = #{enterpriseId}) t join project_enterprise t2 on
find_in_set( t.id, t2.ancestors ) )
</select>
</mapper> </mapper>

View File

@ -73,6 +73,12 @@
<if test="param.enterpriseId != null and param.enterpriseId != ''"> <if test="param.enterpriseId != null and param.enterpriseId != ''">
and b.enterprise_id = #{param.enterpriseId} and b.enterprise_id = #{param.enterpriseId}
</if> </if>
<if test="param.enterpriseIds != null and param.size() != 0">
and b.enterprise_id in
<foreach collection="param.enterpriseIds" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="param.userEnterpriseId != null and param.userEnterpriseId != ''"> <if test="param.userEnterpriseId != null and param.userEnterpriseId != ''">
and FIND_IN_SET(b.enterprise_id, #{param.userEnterpriseId}) and FIND_IN_SET(b.enterprise_id, #{param.userEnterpriseId})
</if> </if>
@ -866,9 +872,13 @@
or wi.job_name=62 or wi.job_name=62
or wi.job_name=63 or wi.job_name=63
or wi.job_name=64 or wi.job_name=64
or wi.job_name=65) and t1.person_sn is null,1,0)),0) as jlNotPerformNum or wi.job_name=65) and t1.person_sn is null,1,0)),0) as jlNotPerformNum,
pe.parent_project_enterprise_id,
pe.id as project_enterprise_id,
pe.ancestors
from enterprise_info t from enterprise_info t
join worker_info wi on wi.enterprise_id=t.id join worker_info wi on wi.enterprise_id=t.id
join project_enterprise pe on pe.enterprise_id=t.id and pe.project_sn=wi.project_sn
left join (select person_sn from worker_attendance where project_sn=#{param.projectSn} left join (select person_sn from worker_attendance where project_sn=#{param.projectSn}
and create_time >= CURRENT_DATE and create_time >= CURRENT_DATE
group by person_sn) t1 on t1.person_sn=wi.person_sn group by person_sn) t1 on t1.person_sn=wi.person_sn

View File

@ -2556,6 +2556,10 @@
<select id="getAvgSafeScore" resultType="double"> <select id="getAvgSafeScore" resultType="double">
select ifnull(round(avg(safe_score),2),0) select ifnull(round(avg(safe_score),2),0)
from worker_info from worker_info
where inService_type = 1 and enterprise_id = #{enterpriseId} and project_sn = #{projectSn} where inService_type = 1 and enterprise_id in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
and project_sn = #{projectSn}
</select> </select>
</mapper> </mapper>

View File

@ -8,7 +8,6 @@ import com.zhgd.xmgl.base.entity.vo.TrendOneVo;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo; import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import com.zhgd.xmgl.modules.worker.entity.dto.GetWorkerInfoByDevDto; import com.zhgd.xmgl.modules.worker.entity.dto.GetWorkerInfoByDevDto;
import com.zhgd.xmgl.modules.worker.entity.vo.*; import com.zhgd.xmgl.modules.worker.entity.vo.*;
import com.zhgd.xmgl.modules.xz.entity.vo.RiskTrendByMainEnterpriseVo;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -169,6 +168,6 @@ public interface IWorkerInfoService extends IService<WorkerInfo> {
void deleteBatch(String ids); void deleteBatch(String ids);
double getAvgSafeScore(String enterpriseId, String projectSn); double getAvgSafeScore(List<Long> enterpriseIds, String projectSn);
} }

View File

@ -1,5 +1,6 @@
package com.zhgd.xmgl.modules.worker.service.impl; package com.zhgd.xmgl.modules.worker.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
@ -43,7 +44,6 @@ import com.zhgd.xmgl.modules.worker.mapper.WorkerAttendanceMapper;
import com.zhgd.xmgl.modules.worker.service.IEnterpriseInfoService; import com.zhgd.xmgl.modules.worker.service.IEnterpriseInfoService;
import com.zhgd.xmgl.modules.worker.service.IUserEnterpriseService; import com.zhgd.xmgl.modules.worker.service.IUserEnterpriseService;
import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService; import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService;
import com.zhgd.xmgl.modules.xz.emergency.entity.XzEmergencyRecord;
import com.zhgd.xmgl.modules.xz.emergency.service.IXzEmergencyRecordService; import com.zhgd.xmgl.modules.xz.emergency.service.IXzEmergencyRecordService;
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.service.IXzSecurityQualityInspectionRecordService; import com.zhgd.xmgl.modules.xz.security.service.IXzSecurityQualityInspectionRecordService;
@ -52,10 +52,7 @@ import com.zhgd.xmgl.modules.xz.special.entity.*;
import com.zhgd.xmgl.modules.xz.special.service.*; import com.zhgd.xmgl.modules.xz.special.service.*;
import com.zhgd.xmgl.security.entity.UserInfo; import com.zhgd.xmgl.security.entity.UserInfo;
import com.zhgd.xmgl.security.util.SecurityUtils; import com.zhgd.xmgl.security.util.SecurityUtils;
import com.zhgd.xmgl.util.ListUtils; import com.zhgd.xmgl.util.*;
import com.zhgd.xmgl.util.MapBuilder;
import com.zhgd.xmgl.util.MessageUtil;
import com.zhgd.xmgl.util.PageUtil;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -553,44 +550,62 @@ public class EnterpriseInfoServiceImpl extends ServiceImpl<EnterpriseInfoMapper,
StatsEnterpriseWeekVo vo = new StatsEnterpriseWeekVo(); StatsEnterpriseWeekVo vo = new StatsEnterpriseWeekVo();
String enterpriseId = MapUtils.getString(param, "enterpriseId"); String enterpriseId = MapUtils.getString(param, "enterpriseId");
String projectSn = MapUtils.getString(param, "projectSn"); String projectSn = MapUtils.getString(param, "projectSn");
List<Long> enterpriseIds = this.getEnterpriseIdsByMainEnterpriseId(enterpriseId);
if (CollUtil.isEmpty(enterpriseIds)) {
throw new OpenAlertException("查询的企业为空");
}
String beginOfWeek = DateUtil.formatDateTime(DateUtil.beginOfWeek(new Date())); String beginOfWeek = DateUtil.formatDateTime(DateUtil.beginOfWeek(new Date()));
Integer inServiceNum = workerInfoService.count(new LambdaQueryWrapper<WorkerInfo>() Integer inServiceNum = workerInfoService.count(new LambdaQueryWrapper<WorkerInfo>()
.eq(WorkerInfo::getProjectSn, projectSn) .eq(WorkerInfo::getProjectSn, projectSn)
.eq(WorkerInfo::getEnterpriseId, enterpriseId) .in(WorkerInfo::getEnterpriseId, enterpriseIds)
.eq(WorkerInfo::getInserviceType, 1)); .eq(WorkerInfo::getInserviceType, 1));
vo.setInServiceNum(inServiceNum); vo.setInServiceNum(inServiceNum);
int securityNum = xzSecurityQualityInspectionRecordService.count(new LambdaQueryWrapper<XzSecurityQualityInspectionRecord>() int securityNum = xzSecurityQualityInspectionRecordService.count(new LambdaQueryWrapper<XzSecurityQualityInspectionRecord>()
.eq(XzSecurityQualityInspectionRecord::getProjectSn, projectSn) .eq(XzSecurityQualityInspectionRecord::getProjectSn, projectSn)
.eq(XzSecurityQualityInspectionRecord::getEnterpriseId, enterpriseId) .in(XzSecurityQualityInspectionRecord::getEnterpriseId, enterpriseIds)
.ne(XzSecurityQualityInspectionRecord::getStatus, 6)
.eq(XzSecurityQualityInspectionRecord::getRecordType, 1)
.ge(XzSecurityQualityInspectionRecord::getInspectTime, beginOfWeek) .ge(XzSecurityQualityInspectionRecord::getInspectTime, beginOfWeek)
); );
vo.setSecurityNum(securityNum); vo.setSecurityNum(securityNum);
int qualityNum = qualityInspectionRecordService.count(new LambdaQueryWrapper<QualityInspectionRecord>() int qualityNum = qualityInspectionRecordService.count(new LambdaQueryWrapper<QualityInspectionRecord>()
.eq(QualityInspectionRecord::getProjectSn, projectSn) .eq(QualityInspectionRecord::getProjectSn, projectSn)
.eq(QualityInspectionRecord::getEnterpriseId, enterpriseId) .in(QualityInspectionRecord::getEnterpriseId, enterpriseIds)
.ne(QualityInspectionRecord::getStatus, 6)
.eq(QualityInspectionRecord::getRecordType, 1)
.ge(QualityInspectionRecord::getInspectTime, beginOfWeek) .ge(QualityInspectionRecord::getInspectTime, beginOfWeek)
); );
vo.setQualityNum(qualityNum); vo.setQualityNum(qualityNum);
int specialNum = countSpecialNumThisWeek(enterpriseId, projectSn, beginOfWeek); int specialNum = countSpecialNumThisWeek(enterpriseIds, projectSn, beginOfWeek);
double notPassRadio = getTrainNotPassRadio(enterpriseId, projectSn, beginOfWeek); double notPassRadio = getTrainNotPassRadio(enterpriseIds, projectSn, beginOfWeek);
vo.setTrainNotPassRadio(notPassRadio); vo.setTrainNotPassRadio(notPassRadio);
vo.setSpecialNum(specialNum); vo.setSpecialNum(specialNum);
double safeScore = workerInfoService.getAvgSafeScore(enterpriseId, projectSn); double safeScore = workerInfoService.getAvgSafeScore(enterpriseIds, projectSn);
vo.setSafeScore(safeScore); vo.setSafeScore(safeScore);
int highWorkerNumThisWeek = getHighInDayThisWeek(enterpriseId, projectSn, beginOfWeek); int highWorkerNumThisWeek = this.getHighInDayThisWeek(enterpriseIds, projectSn, beginOfWeek);
vo.setHighWorkerNumThisWeek(highWorkerNumThisWeek); vo.setHighWorkerNumThisWeek(highWorkerNumThisWeek);
int emergencyNum = xzEmergencyRecordService.queryCount(new MapBuilder<String, Object>() int emergencyNum = xzEmergencyRecordService.queryCount(new MapBuilder<String, Object>()
.put("projectSn", projectSn) .put("projectSn", projectSn)
.put("enterpriseId", enterpriseId) .put("enterpriseIds", enterpriseIds)
.put("beginOfWeek", beginOfWeek) .put("beginOfWeek", beginOfWeek)
.build()); .build());
vo.setEmergencyNum(emergencyNum); vo.setEmergencyNum(emergencyNum);
return vo; return vo;
} }
private int getHighInDayThisWeek(String enterpriseId, String projectSn, String beginOfWeek) { /**
* 获取总包下面分包和总包自己的企业ids
*
* @param enterpriseId
* @return
*/
private List<Long> getEnterpriseIdsByMainEnterpriseId(String enterpriseId) {
return baseMapper.getEnterpriseIdsByMainEnterpriseId(enterpriseId);
}
private int getHighInDayThisWeek(List<Long> enterpriseIds, String projectSn, String beginOfWeek) {
HashMap<String, Object> map = new HashMap<>(); HashMap<String, Object> map = new HashMap<>();
map.put("enterpriseId", enterpriseId); map.put("enterpriseIds", enterpriseIds);
map.put("startTime", beginOfWeek); map.put("startTime", beginOfWeek);
map.put("projectSn", projectSn); map.put("projectSn", projectSn);
List<WorkerAttendance> workerAttendances = workerAttendanceService.selectWorkerAttendanceList(map); List<WorkerAttendance> workerAttendances = workerAttendanceService.selectWorkerAttendanceList(map);
@ -600,100 +615,102 @@ public class EnterpriseInfoServiceImpl extends ServiceImpl<EnterpriseInfoMapper,
List<WorkerAttendance> oneDayWas = workerAttendances.stream().filter(workerAttendance -> DateUtil.parse(workerAttendance.getCreateTime()).compareTo(nextDate) < 0 List<WorkerAttendance> oneDayWas = workerAttendances.stream().filter(workerAttendance -> DateUtil.parse(workerAttendance.getCreateTime()).compareTo(nextDate) < 0
&& DateUtil.parse(beginOfWeek).compareTo(DateUtil.parse(workerAttendance.getCreateTime())) <= 0).collect(Collectors.toList()); && DateUtil.parse(beginOfWeek).compareTo(DateUtil.parse(workerAttendance.getCreateTime())) <= 0).collect(Collectors.toList());
Set<String> inSet = new HashSet<>(); Set<String> inSet = new HashSet<>();
int hn = 0;
for (WorkerAttendance attendance : oneDayWas) { for (WorkerAttendance attendance : oneDayWas) {
if (Objects.equals(attendance.getPassType(), 1)) { if (Objects.equals(attendance.getPassType(), 1)) {
inSet.add(attendance.getPersonSn()); inSet.add(attendance.getPersonSn());
hn = Math.max(hn, inSet.size());
} else if (Objects.equals(attendance.getPassType(), 2)) { } else if (Objects.equals(attendance.getPassType(), 2)) {
inSet.remove(attendance.getPersonSn()); inSet.remove(attendance.getPersonSn());
} }
} }
highNum = Math.max(highNum, inSet.size()); highNum = Math.max(highNum, hn);
} }
return highNum; return highNum;
} }
private double getTrainNotPassRadio(String enterpriseId, String projectSn, String beginOfWeek) { private double getTrainNotPassRadio(List<Long> enterpriseIds, String projectSn, String beginOfWeek) {
QueryWrapper<ExamTrain> wrapper = QueryGenerator.initPageQueryWrapper(ExamTrain.class, new HashMap<>()); QueryWrapper<ExamTrain> wrapper = QueryGenerator.initPageQueryWrapper(ExamTrain.class, new HashMap<>());
Set<Long> trainIds = examTrainRecordService.list().stream().map(e -> e.getTrainId()).collect(Collectors.toSet()); Set<Long> recordTrainIds = examTrainRecordService.list(new LambdaQueryWrapper<ExamTrainRecord>().le(ExamTrainRecord::getStartExamTime, beginOfWeek)).stream().map(e -> e.getTrainId()).collect(Collectors.toSet());
if (trainIds.size() == 0) { if (recordTrainIds.size() == 0) {
return 0; return 0;
} }
wrapper.lambda().in(ExamTrain::getId, trainIds); wrapper.lambda().in(ExamTrain::getId, recordTrainIds);
Page<ExamTrain> examTrainPage = examTrainMapper.pageList(new Page(1, -1), wrapper); wrapper.lambda().le(ExamTrain::getTrainBeginTime, DateUtil.formatDate(DateUtil.parse(beginOfWeek)));
List<Long> ids = examTrainPage.getRecords().stream().map(e -> e.getId()).collect(Collectors.toList()); Page<ExamTrain> trainPage = examTrainMapper.pageList(new Page(1, -1), wrapper);
BigDecimal sum = new BigDecimal(0); List<Long> trainIds = trainPage.getRecords().stream().map(e -> e.getId()).collect(Collectors.toList());
BigDecimal count = new BigDecimal(0); int count = 0;
if (ids.size() > 0) { int passNum = 0;
List<ExamTrainRecord> examTrainRecordList = examTrainRecordService.list(Wrappers.<ExamTrainRecord>lambdaQuery().in(ExamTrainRecord::getTrainId, ids) if (trainIds.size() > 0) {
List<ExamTrainRecord> recordList = examTrainRecordService.list(Wrappers.<ExamTrainRecord>lambdaQuery().in(ExamTrainRecord::getTrainId, trainIds)
.eq(ExamTrainRecord::getProjectSn, projectSn) .eq(ExamTrainRecord::getProjectSn, projectSn)
.eq(ExamTrainRecord::getEnterpriseId, enterpriseId) .in(ExamTrainRecord::getEnterpriseId, enterpriseIds)
.ge(ExamTrainRecord::getCreateTime, beginOfWeek) .ge(ExamTrainRecord::getCreateTime, beginOfWeek)
); );
for (ExamTrain record : examTrainPage.getRecords()) { for (ExamTrain record : trainPage.getRecords()) {
if (record.getExamPaperId() != null) { if (record.getExamPaperId() != null) {
List<ExamTrainRecord> trainRecordList = examTrainRecordList.stream().filter(e -> e.getTrainId().toString().equals(record.getId().toString())).collect(Collectors.toList()); List<ExamTrainRecord> trainRecordList = recordList.stream().filter(e -> e.getTrainId().toString().equals(record.getId().toString())).collect(Collectors.toList());
if (trainRecordList.size() > 0) { if (trainRecordList.size() > 0) {
int pass = trainRecordList.stream().filter(t -> t.getIsPass() == 1).collect(Collectors.toList()).size(); int pass = trainRecordList.stream().filter(t -> t.getIsPass() == 1).collect(Collectors.toList()).size();
record.setPassRadio(new BigDecimal(pass).divide(new BigDecimal(trainRecordList.size()), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100))); passNum += pass;
sum.add(BigDecimal.valueOf(100).subtract(record.getPassRadio())); count += trainRecordList.size();
count.add(new BigDecimal(1));
} }
} }
} }
} }
if (count.equals(new BigDecimal(0))) { if (count == 0) {
return 0; return 0;
} }
return sum.divide(count, 2, BigDecimal.ROUND_HALF_UP).doubleValue(); return NumberUtils.percent((count * 1.0 - passNum) / count, 2);
} }
private int countSpecialNumThisWeek(String enterpriseId, String projectSn, String beginOfWeek) { private int countSpecialNumThisWeek(List<Long> enterpriseIds, String projectSn, String beginOfWeek) {
String endOfWeek = DateUtil.formatDateTime(DateUtil.endOfWeek(new Date())); String endOfWeek = DateUtil.formatDateTime(DateUtil.endOfWeek(new Date()));
int n1 = xzBlindPlatePlugSafeService.count(new LambdaQueryWrapper<XzBlindPlatePlugSafe>() int n1 = xzBlindPlatePlugSafeService.count(new LambdaQueryWrapper<XzBlindPlatePlugSafe>()
.eq(XzBlindPlatePlugSafe::getProjectSn, projectSn) .eq(XzBlindPlatePlugSafe::getProjectSn, projectSn)
.eq(XzBlindPlatePlugSafe::getJobApplicationUnit, enterpriseId) .in(XzBlindPlatePlugSafe::getJobApplicationUnit, enterpriseIds)
.le(XzBlindPlatePlugSafe::getWorkExecutionBeginTime, endOfWeek) .le(XzBlindPlatePlugSafe::getWorkExecutionBeginTime, endOfWeek)
.ge(XzBlindPlatePlugSafe::getWorkExecutionEndTime, beginOfWeek) .ge(XzBlindPlatePlugSafe::getWorkExecutionEndTime, beginOfWeek)
); );
int n2 = iXzGroundSafetService.count(new LambdaQueryWrapper<XzGroundSafet>() int n2 = iXzGroundSafetService.count(new LambdaQueryWrapper<XzGroundSafet>()
.eq(XzGroundSafet::getProjectSn, projectSn) .eq(XzGroundSafet::getProjectSn, projectSn)
.eq(XzGroundSafet::getJobApplicationUnit, enterpriseId) .in(XzGroundSafet::getJobApplicationUnit, enterpriseIds)
.le(XzGroundSafet::getWorkExecutionBeginTime, endOfWeek) .le(XzGroundSafet::getWorkExecutionBeginTime, endOfWeek)
.ge(XzGroundSafet::getWorkExecutionEndTime, beginOfWeek) .ge(XzGroundSafet::getWorkExecutionEndTime, beginOfWeek)
); );
int n3 = iXzHighJobSafeService.count(new LambdaQueryWrapper<XzHighJobSafe>() int n3 = iXzHighJobSafeService.count(new LambdaQueryWrapper<XzHighJobSafe>()
.eq(XzHighJobSafe::getProjectSn, projectSn) .eq(XzHighJobSafe::getProjectSn, projectSn)
.eq(XzHighJobSafe::getJobApplicationUnit, enterpriseId) .in(XzHighJobSafe::getJobApplicationUnit, enterpriseIds)
.le(XzHighJobSafe::getWorkExecutionBeginTime, endOfWeek) .le(XzHighJobSafe::getWorkExecutionBeginTime, endOfWeek)
.ge(XzHighJobSafe::getWorkExecutionEndTime, beginOfWeek) .ge(XzHighJobSafe::getWorkExecutionEndTime, beginOfWeek)
); );
int n4 = iXzHoistSafetyWorkService.count(new LambdaQueryWrapper<XzHoistSafetyWork>() int n4 = iXzHoistSafetyWorkService.count(new LambdaQueryWrapper<XzHoistSafetyWork>()
.eq(XzHoistSafetyWork::getProjectSn, projectSn) .eq(XzHoistSafetyWork::getProjectSn, projectSn)
.eq(XzHoistSafetyWork::getJobApplicationUnit, enterpriseId) .in(XzHoistSafetyWork::getJobApplicationUnit, enterpriseIds)
.le(XzHoistSafetyWork::getWorkExecutionBeginTime, endOfWeek) .le(XzHoistSafetyWork::getWorkExecutionBeginTime, endOfWeek)
.ge(XzHoistSafetyWork::getWorkExecutionEndTime, beginOfWeek) .ge(XzHoistSafetyWork::getWorkExecutionEndTime, beginOfWeek)
); );
int n5 = iXzLimitSpaceSafeService.count(new LambdaQueryWrapper<XzLimitSpaceSafe>() int n5 = iXzLimitSpaceSafeService.count(new LambdaQueryWrapper<XzLimitSpaceSafe>()
.eq(XzLimitSpaceSafe::getProjectSn, projectSn) .eq(XzLimitSpaceSafe::getProjectSn, projectSn)
.eq(XzLimitSpaceSafe::getJobApplicationUnit, enterpriseId) .in(XzLimitSpaceSafe::getJobApplicationUnit, enterpriseIds)
.le(XzLimitSpaceSafe::getWorkExecutionBeginTime, endOfWeek) .le(XzLimitSpaceSafe::getWorkExecutionBeginTime, endOfWeek)
.ge(XzLimitSpaceSafe::getWorkExecutionEndTime, beginOfWeek) .ge(XzLimitSpaceSafe::getWorkExecutionEndTime, beginOfWeek)
); );
int n6 = iXzOpenCircuitSafeService.count(new LambdaQueryWrapper<XzOpenCircuitSafe>() int n6 = iXzOpenCircuitSafeService.count(new LambdaQueryWrapper<XzOpenCircuitSafe>()
.eq(XzOpenCircuitSafe::getProjectSn, projectSn) .eq(XzOpenCircuitSafe::getProjectSn, projectSn)
.eq(XzOpenCircuitSafe::getJobApplicationUnit, enterpriseId) .in(XzOpenCircuitSafe::getJobApplicationUnit, enterpriseIds)
.le(XzOpenCircuitSafe::getWorkExecutionBeginTime, endOfWeek) .le(XzOpenCircuitSafe::getWorkExecutionBeginTime, endOfWeek)
.ge(XzOpenCircuitSafe::getWorkExecutionEndTime, beginOfWeek) .ge(XzOpenCircuitSafe::getWorkExecutionEndTime, beginOfWeek)
); );
int n7 = iXzSpecialOperationFireSafetyService.count(new LambdaQueryWrapper<XzSpecialOperationFireSafety>() int n7 = iXzSpecialOperationFireSafetyService.count(new LambdaQueryWrapper<XzSpecialOperationFireSafety>()
.eq(XzSpecialOperationFireSafety::getProjectSn, projectSn) .eq(XzSpecialOperationFireSafety::getProjectSn, projectSn)
.eq(XzSpecialOperationFireSafety::getJobApplicationUnit, enterpriseId) .in(XzSpecialOperationFireSafety::getJobApplicationUnit, enterpriseIds)
.le(XzSpecialOperationFireSafety::getHotWorkExecutionBeginTime, endOfWeek) .le(XzSpecialOperationFireSafety::getHotWorkExecutionBeginTime, endOfWeek)
.ge(XzSpecialOperationFireSafety::getHotWorkExecutionEndTime, beginOfWeek) .ge(XzSpecialOperationFireSafety::getHotWorkExecutionEndTime, beginOfWeek)
); );
int n8 = xzTemporaryElectricitySafeService.count(new LambdaQueryWrapper<XzTemporaryElectricitySafe>() int n8 = xzTemporaryElectricitySafeService.count(new LambdaQueryWrapper<XzTemporaryElectricitySafe>()
.eq(XzTemporaryElectricitySafe::getProjectSn, projectSn) .eq(XzTemporaryElectricitySafe::getProjectSn, projectSn)
.eq(XzTemporaryElectricitySafe::getJobApplicationUnit, enterpriseId) .in(XzTemporaryElectricitySafe::getJobApplicationUnit, enterpriseIds)
.le(XzTemporaryElectricitySafe::getWorkExecutionBeginTime, endOfWeek) .le(XzTemporaryElectricitySafe::getWorkExecutionBeginTime, endOfWeek)
.ge(XzTemporaryElectricitySafe::getWorkExecutionEndTime, beginOfWeek) .ge(XzTemporaryElectricitySafe::getWorkExecutionEndTime, beginOfWeek)
); );

View File

@ -1160,6 +1160,27 @@ status 状态码 String 1表示成功其余表示失败
List<SafetyPerformanceAnalysisVo> vos = baseMapper.safetyPerformanceAnalysis(paramMap); List<SafetyPerformanceAnalysisVo> vos = baseMapper.safetyPerformanceAnalysis(paramMap);
SafetyPerformanceAnalysisVo vo = new SafetyPerformanceAnalysisVo(); SafetyPerformanceAnalysisVo vo = new SafetyPerformanceAnalysisVo();
vo.setList(vos); vo.setList(vos);
setTotalCount(vos, vo);
List<SafetyPerformanceAnalysisVo> mains = vos.stream().filter(o -> o.getParentProjectEnterpriseId() == 0).collect(Collectors.toList());
for (SafetyPerformanceAnalysisVo main : mains) {
List<SafetyPerformanceAnalysisVo> subs = vos.stream().filter(o -> o.getAncestors().contains(main.getProjectEnterpriseId() + "")).collect(Collectors.toList());
for (SafetyPerformanceAnalysisVo sub : subs) {
main.setNotPerformNum(main.getNotPerformNum() + sub.getNotPerformNum());
main.setInServiceNum(main.getInServiceNum() + sub.getInServiceNum());
main.setXmjlNotPerformNum(main.getXmjlNotPerformNum() + sub.getXmjlNotPerformNum());
main.setXmjlInServiceNum(main.getXmjlInServiceNum() + sub.getXmjlInServiceNum());
main.setAqyNotPerformNum(main.getAqyNotPerformNum() + sub.getAqyNotPerformNum());
main.setAqyInServiceNum(main.getAqyInServiceNum() + sub.getAqyInServiceNum());
main.setZlyNotPerformNum(main.getZlyNotPerformNum() + sub.getZlyNotPerformNum());
main.setZlyInServiceNum(main.getZlyInServiceNum() + sub.getZlyInServiceNum());
main.setJlNotPerformNum(main.getJlNotPerformNum() + sub.getJlNotPerformNum());
main.setJlInServiceNum(main.getJlInServiceNum() + sub.getJlInServiceNum());
}
}
return vo;
}
private void setTotalCount(List<SafetyPerformanceAnalysisVo> vos, SafetyPerformanceAnalysisVo vo) {
Integer notPerformNum = 0; Integer notPerformNum = 0;
Integer inServiceNum = 0; Integer inServiceNum = 0;
Integer xmjlNotPerformNum = 0; Integer xmjlNotPerformNum = 0;
@ -1171,26 +1192,16 @@ status 状态码 String 1表示成功其余表示失败
Integer jlNotPerformNum = 0; Integer jlNotPerformNum = 0;
Integer jlInServiceNum = 0; Integer jlInServiceNum = 0;
for (SafetyPerformanceAnalysisVo one : vos) { for (SafetyPerformanceAnalysisVo one : vos) {
Integer notPerformNum1 = one.getNotPerformNum(); notPerformNum += one.getNotPerformNum();
Integer inServiceNum1 = one.getInServiceNum(); inServiceNum += one.getInServiceNum();
Integer xmjlNotPerformNum1 = one.getXmjlNotPerformNum(); xmjlNotPerformNum += one.getXmjlNotPerformNum();
Integer xmjlInServiceNum1 = one.getXmjlInServiceNum(); xmjlInServiceNum += one.getXmjlInServiceNum();
Integer aqyNotPerformNum1 = one.getAqyNotPerformNum(); aqyNotPerformNum += one.getAqyNotPerformNum();
Integer aqyInServiceNum1 = one.getAqyInServiceNum(); aqyInServiceNum += one.getAqyInServiceNum();
Integer zlyNotPerformNum1 = one.getZlyNotPerformNum(); zlyNotPerformNum += one.getZlyNotPerformNum();
Integer zlyInServiceNum1 = one.getZlyInServiceNum(); zlyInServiceNum += one.getZlyInServiceNum();
Integer jlNotPerformNum1 = one.getJlNotPerformNum(); jlNotPerformNum += one.getJlNotPerformNum();
Integer jlInServiceNum1 = one.getJlInServiceNum(); jlInServiceNum += one.getJlInServiceNum();
notPerformNum += notPerformNum1;
inServiceNum += inServiceNum1;
xmjlNotPerformNum += xmjlNotPerformNum1;
xmjlInServiceNum += xmjlInServiceNum1;
aqyNotPerformNum += aqyNotPerformNum1;
aqyInServiceNum += aqyInServiceNum1;
zlyNotPerformNum += zlyNotPerformNum1;
zlyInServiceNum += zlyInServiceNum1;
jlNotPerformNum += jlNotPerformNum1;
jlInServiceNum += jlInServiceNum1;
} }
vo.setNotPerformNum(notPerformNum); vo.setNotPerformNum(notPerformNum);
vo.setInServiceNum(inServiceNum); vo.setInServiceNum(inServiceNum);
@ -1202,7 +1213,6 @@ status 状态码 String 1表示成功其余表示失败
vo.setZlyInServiceNum(zlyInServiceNum); vo.setZlyInServiceNum(zlyInServiceNum);
vo.setJlNotPerformNum(jlNotPerformNum); vo.setJlNotPerformNum(jlNotPerformNum);
vo.setJlInServiceNum(jlInServiceNum); vo.setJlInServiceNum(jlInServiceNum);
return vo;
} }
private Integer getCardType(String type) { private Integer getCardType(String type) {

View File

@ -19,7 +19,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gexin.fastjson.JSON; import com.gexin.fastjson.JSON;
import com.gexin.fastjson.JSONArray;
import com.zhgd.exception.CustomException; import com.zhgd.exception.CustomException;
import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.execption.OpenAlertException;
@ -32,10 +31,8 @@ import com.zhgd.xmgl.base.entity.vo.TrendOneVo;
import com.zhgd.xmgl.call.HikvisionCall; import com.zhgd.xmgl.call.HikvisionCall;
import com.zhgd.xmgl.constant.Cts; import com.zhgd.xmgl.constant.Cts;
import com.zhgd.xmgl.modules.basicdata.entity.Company; import com.zhgd.xmgl.modules.basicdata.entity.Company;
import com.zhgd.xmgl.modules.basicdata.entity.SystemAreas;
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
import com.zhgd.xmgl.modules.basicdata.mapper.CompanyMapper; import com.zhgd.xmgl.modules.basicdata.mapper.CompanyMapper;
import com.zhgd.xmgl.modules.basicdata.mapper.SystemAreasMapper;
import com.zhgd.xmgl.modules.basicdata.mapper.SystemUserMapper; import com.zhgd.xmgl.modules.basicdata.mapper.SystemUserMapper;
import com.zhgd.xmgl.modules.basicdata.service.ICompanyService; import com.zhgd.xmgl.modules.basicdata.service.ICompanyService;
import com.zhgd.xmgl.modules.basicdata.service.IDictionaryItemService; import com.zhgd.xmgl.modules.basicdata.service.IDictionaryItemService;
@ -49,10 +46,8 @@ import com.zhgd.xmgl.modules.inspection.mapper.InspectTaskRecordMapper;
import com.zhgd.xmgl.modules.project.entity.Project; import com.zhgd.xmgl.modules.project.entity.Project;
import com.zhgd.xmgl.modules.project.entity.ProjectEnterprise; import com.zhgd.xmgl.modules.project.entity.ProjectEnterprise;
import com.zhgd.xmgl.modules.project.entity.bo.ProjectStatisticsCountBo; import com.zhgd.xmgl.modules.project.entity.bo.ProjectStatisticsCountBo;
import com.zhgd.xmgl.modules.project.entity.vo.ProjectInfoExtVo;
import com.zhgd.xmgl.modules.project.mapper.ProjectEnterpriseMapper; import com.zhgd.xmgl.modules.project.mapper.ProjectEnterpriseMapper;
import com.zhgd.xmgl.modules.project.mapper.ProjectMapper; import com.zhgd.xmgl.modules.project.mapper.ProjectMapper;
import com.zhgd.xmgl.modules.project.service.IProjectService;
import com.zhgd.xmgl.modules.project.service.IProjectUfaceConfigService; import com.zhgd.xmgl.modules.project.service.IProjectUfaceConfigService;
import com.zhgd.xmgl.modules.video.mapper.AiAnalyseHardWareAlarmRecordMapper; import com.zhgd.xmgl.modules.video.mapper.AiAnalyseHardWareAlarmRecordMapper;
import com.zhgd.xmgl.modules.worker.entity.*; import com.zhgd.xmgl.modules.worker.entity.*;
@ -62,12 +57,8 @@ import com.zhgd.xmgl.modules.worker.enums.EduTypeEnum;
import com.zhgd.xmgl.modules.worker.mapper.*; import com.zhgd.xmgl.modules.worker.mapper.*;
import com.zhgd.xmgl.modules.worker.service.*; import com.zhgd.xmgl.modules.worker.service.*;
import com.zhgd.xmgl.modules.xz.entity.XzHikvisionSync; import com.zhgd.xmgl.modules.xz.entity.XzHikvisionSync;
import com.zhgd.xmgl.modules.xz.entity.vo.RiskTrendByMainEnterpriseVo;
import com.zhgd.xmgl.modules.xz.mapper.XzHikvisionSyncMapper; import com.zhgd.xmgl.modules.xz.mapper.XzHikvisionSyncMapper;
import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityQualityInspectionRecord;
import com.zhgd.xmgl.modules.xz.security.service.IXzSecurityQualityInspectionRecordService;
import com.zhgd.xmgl.modules.xz.service.impl.XzSupplierQualificationApplyServiceImpl; import com.zhgd.xmgl.modules.xz.service.impl.XzSupplierQualificationApplyServiceImpl;
import com.zhgd.xmgl.modules.xz.special.service.IXzBlindPlatePlugSafeService;
import com.zhgd.xmgl.security.entity.UserInfo; import com.zhgd.xmgl.security.entity.UserInfo;
import com.zhgd.xmgl.security.util.SecurityUtils; import com.zhgd.xmgl.security.util.SecurityUtils;
import com.zhgd.xmgl.util.*; import com.zhgd.xmgl.util.*;
@ -85,7 +76,6 @@ import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
@ -2566,7 +2556,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
} }
@Override @Override
public double getAvgSafeScore(String enterpriseId, String projectSn) { public double getAvgSafeScore(List<Long> enterpriseIds, String projectSn) {
return baseMapper.getAvgSafeScore(enterpriseId, projectSn); return baseMapper.getAvgSafeScore(enterpriseIds, projectSn);
} }
} }

View File

@ -1,9 +1,6 @@
package com.zhgd.xmgl.modules.xz.controller; package com.zhgd.xmgl.modules.xz.controller;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.wflow.bean.entity.WflowModelGroups; import com.wflow.bean.entity.WflowModelGroups;
import com.wflow.bean.entity.WflowModelHistorys; import com.wflow.bean.entity.WflowModelHistorys;
@ -11,26 +8,18 @@ import com.wflow.bean.entity.WflowModels;
import com.wflow.mapper.WflowModelGroupsMapper; import com.wflow.mapper.WflowModelGroupsMapper;
import com.wflow.mapper.WflowModelHistorysMapper; import com.wflow.mapper.WflowModelHistorysMapper;
import com.wflow.mapper.WflowModelsMapper; import com.wflow.mapper.WflowModelsMapper;
import com.wflow.workflow.bean.process.OrgUser;
import com.wflow.workflow.bean.process.enums.ProcessResultEnum; import com.wflow.workflow.bean.process.enums.ProcessResultEnum;
import com.wflow.workflow.bean.vo.FormAbstractsVo;
import com.wflow.workflow.bean.vo.ProcessInstanceVo; import com.wflow.workflow.bean.vo.ProcessInstanceVo;
import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.xmgl.modules.xz.entity.XzHikvisionCompareData;
import com.zhgd.xmgl.tenant.TenantContextHolder;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.flowable.engine.HistoryService; import org.flowable.engine.HistoryService;
import org.flowable.engine.RuntimeService;
import org.flowable.engine.history.HistoricProcessInstance; import org.flowable.engine.history.HistoricProcessInstance;
import org.flowable.engine.history.HistoricProcessInstanceQuery; import org.flowable.engine.history.HistoricProcessInstanceQuery;
import org.flowable.task.api.Task;
import org.flowable.task.api.TaskInfo;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@ -117,7 +106,7 @@ public class XzFlowController {
resultMap.put("ratio", new BigDecimal(number).divide(new BigDecimal(processInstanceVos.size()), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100))); resultMap.put("ratio", new BigDecimal(number).divide(new BigDecimal(processInstanceVos.size()), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)));
resultList.add(resultMap); resultList.add(resultMap);
} }
resultList = resultList.stream().sorted((o1, o2) -> MapUtils.getInteger(o2, "num").compareTo( MapUtils.getInteger(o1, "num"))).collect(Collectors.toList()); resultList = resultList.stream().sorted((o1, o2) -> MapUtils.getInteger(o2, "num").compareTo(MapUtils.getInteger(o1, "num"))).collect(Collectors.toList());
return Result.success(resultList); return Result.success(resultList);
} }
@ -157,7 +146,7 @@ public class XzFlowController {
long count = processInstanceVos.stream().filter(p -> p.getFormId().equals(formId)).count(); long count = processInstanceVos.stream().filter(p -> p.getFormId().equals(formId)).count();
int number = (int) count; int number = (int) count;
map.put("num", number); map.put("num", number);
map.put("ratio", new BigDecimal(number).divide(new BigDecimal(processInstanceVos.size()), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100))); map.put("ratio", processInstanceVos.size() == 0 ? 0 : new BigDecimal(number).divide(new BigDecimal(processInstanceVos.size()), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)));
map.put("running", typeList.stream().filter(l -> l.getFinishTime() == null).count()); map.put("running", typeList.stream().filter(l -> l.getFinishTime() == null).count());
map.put("complete", typeList.stream().filter(l -> l.getFinishTime() != null).count()); map.put("complete", typeList.stream().filter(l -> l.getFinishTime() != null).count());
resultList.add(map); resultList.add(map);

View File

@ -39,5 +39,5 @@ public interface XzEmergencyRecordMapper extends BaseMapper<XzEmergencyRecord> {
List<CountAlarmNumByEnterpriseOne> countAlarmNumByEnterprise(@Param("param") Map<String, Object> param); List<CountAlarmNumByEnterpriseOne> countAlarmNumByEnterprise(@Param("param") Map<String, Object> param);
Integer queryCount(HashMap<String, Object> param); Integer queryCount(@Param("param") HashMap<String, Object> param);
} }

View File

@ -101,6 +101,9 @@
left join worker_info wi on wi.id = t.alarm_person_id left join worker_info wi on wi.id = t.alarm_person_id
where t.project_sn=#{param.projectSn} where t.project_sn=#{param.projectSn}
and t.alarm_time >= #{param.beginOfWeek} and t.alarm_time >= #{param.beginOfWeek}
and wi.enterprise_id = #{param.enterpriseId} and wi.enterprise_id in
<foreach collection="param.enterpriseIds" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select> </select>
</mapper> </mapper>