大屏修改bug
This commit is contained in:
parent
81a877712d
commit
82bcb952ab
@ -54,6 +54,7 @@ public class EnterpriseInfoController {
|
||||
@ApiImplicitParam(name = "enterpriseName", 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 = "isCountMainEnterprise", value = "0默认1是总包", paramType = "query", required = false, dataType = "Integer"),
|
||||
})
|
||||
@PostMapping(value = "/list")
|
||||
public Result<List<EntityMap>> getEnterpriseInfoList(@RequestBody Map<String, Object> map) {
|
||||
@ -229,7 +230,7 @@ public class EnterpriseInfoController {
|
||||
return Result.success(enterpriseInfoService.getXzSupplierInfo(param));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "企业本周数据统计", notes = "企业本周数据统计", httpMethod = "POST")
|
||||
@ApiOperation(value = "总包企业本周数据统计", notes = "总包企业本周数据统计", httpMethod = "POST")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "enterpriseId", value = "企业id", paramType = "body", required = true, dataType = "String"),
|
||||
|
||||
@ -268,8 +268,7 @@ public class WorkerAttendanceController {
|
||||
return Result.success(workerAttendanceService.queryAttendanceOfEachCompany(map));
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation(value = "安全履职分析", notes = "安全履职分析", httpMethod = "POST")
|
||||
@ApiOperation(value = "安全履职分析(列表包含所有企业,其中总包包含分包的数据)", notes = "安全履职分析(列表包含所有企业,其中总包包含分包的数据)", httpMethod = "POST")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
|
||||
})
|
||||
|
||||
@ -29,5 +29,8 @@ public class SafetyPerformanceAnalysisVo {
|
||||
private Integer jlInServiceNum;
|
||||
@ApiModelProperty(value = "企业名称")
|
||||
private java.lang.String enterpriseName;
|
||||
private java.lang.Long projectEnterpriseId;
|
||||
private java.lang.Long parentProjectEnterpriseId;
|
||||
private String ancestors;
|
||||
private List<SafetyPerformanceAnalysisVo> list;
|
||||
}
|
||||
|
||||
@ -5,20 +5,44 @@ import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class StatsEnterpriseWeekVo {
|
||||
/**
|
||||
* 事故报警总数
|
||||
*/
|
||||
@ApiModelProperty("事故报警总数")
|
||||
private Integer emergencyNum;
|
||||
@ApiModelProperty("在场人员数量")
|
||||
/**
|
||||
* 在场人员数量(峰值)
|
||||
*/
|
||||
@ApiModelProperty("在场人员数量(峰值)")
|
||||
private Integer highWorkerNumThisWeek;
|
||||
/**
|
||||
* 在职人员数量
|
||||
*/
|
||||
@ApiModelProperty("在职人员数量")
|
||||
private Integer inServiceNum;
|
||||
/**
|
||||
* 企业安全分
|
||||
*/
|
||||
@ApiModelProperty("企业安全分")
|
||||
private Double safeScore;
|
||||
/**
|
||||
* 安全隐患总数
|
||||
*/
|
||||
@ApiModelProperty("安全隐患总数")
|
||||
private Integer securityNum;
|
||||
/**
|
||||
* 质量隐患总数
|
||||
*/
|
||||
@ApiModelProperty("质量隐患总数")
|
||||
private Integer qualityNum;
|
||||
/**
|
||||
* 特种作业数量
|
||||
*/
|
||||
@ApiModelProperty("特种作业数量")
|
||||
private Integer specialNum;
|
||||
/**
|
||||
* 培训未通过率
|
||||
*/
|
||||
@ApiModelProperty("培训未通过率")
|
||||
private Double trainNotPassRadio;
|
||||
|
||||
|
||||
@ -81,4 +81,12 @@ public interface EnterpriseInfoMapper extends BaseMapper<EnterpriseInfo> {
|
||||
Integer countBySocialCodeAndNotId(@Param("socialCode") String socialCode, @Param("id") Long id);
|
||||
|
||||
List<EnterpriseInfo> getEnterpriseInfoByRegionId(Long id);
|
||||
|
||||
/**
|
||||
* 获取总包下面分包和总包自己的企业ids
|
||||
*
|
||||
* @param enterpriseId
|
||||
* @return
|
||||
*/
|
||||
List<Long> getEnterpriseIdsByMainEnterpriseId(@Param("enterpriseId") String enterpriseId);
|
||||
}
|
||||
|
||||
@ -255,5 +255,5 @@ public interface WorkerInfoMapper extends BaseMapper<WorkerInfo> {
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@ -36,6 +36,9 @@
|
||||
<if test="map.enterpriseId != null and map.enterpriseId != ''">
|
||||
and b.enterprise_id = #{map.enterpriseId}
|
||||
</if>
|
||||
<if test="map.isCountMainEnterprise == '1'.toString()">
|
||||
and b.parent_project_enterprise_id = 0
|
||||
</if>
|
||||
order by b.sort_num
|
||||
</sql>
|
||||
<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
|
||||
where qrte.quality_region_id=#{id}
|
||||
</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>
|
||||
|
||||
@ -73,6 +73,12 @@
|
||||
<if test="param.enterpriseId != null and param.enterpriseId != ''">
|
||||
and b.enterprise_id = #{param.enterpriseId}
|
||||
</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 != ''">
|
||||
and FIND_IN_SET(b.enterprise_id, #{param.userEnterpriseId})
|
||||
</if>
|
||||
@ -866,9 +872,13 @@
|
||||
or wi.job_name=62
|
||||
or wi.job_name=63
|
||||
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
|
||||
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}
|
||||
and create_time >= CURRENT_DATE
|
||||
group by person_sn) t1 on t1.person_sn=wi.person_sn
|
||||
|
||||
@ -2556,6 +2556,10 @@
|
||||
<select id="getAvgSafeScore" resultType="double">
|
||||
select ifnull(round(avg(safe_score),2),0)
|
||||
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>
|
||||
</mapper>
|
||||
|
||||
@ -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.dto.GetWorkerInfoByDevDto;
|
||||
import com.zhgd.xmgl.modules.worker.entity.vo.*;
|
||||
import com.zhgd.xmgl.modules.xz.entity.vo.RiskTrendByMainEnterpriseVo;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
@ -169,6 +168,6 @@ public interface IWorkerInfoService extends IService<WorkerInfo> {
|
||||
|
||||
void deleteBatch(String ids);
|
||||
|
||||
double getAvgSafeScore(String enterpriseId, String projectSn);
|
||||
double getAvgSafeScore(List<Long> enterpriseIds, String projectSn);
|
||||
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
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.DateUtil;
|
||||
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.IUserEnterpriseService;
|
||||
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.security.entity.XzSecurityQualityInspectionRecord;
|
||||
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.security.entity.UserInfo;
|
||||
import com.zhgd.xmgl.security.util.SecurityUtils;
|
||||
import com.zhgd.xmgl.util.ListUtils;
|
||||
import com.zhgd.xmgl.util.MapBuilder;
|
||||
import com.zhgd.xmgl.util.MessageUtil;
|
||||
import com.zhgd.xmgl.util.PageUtil;
|
||||
import com.zhgd.xmgl.util.*;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@ -553,44 +550,62 @@ public class EnterpriseInfoServiceImpl extends ServiceImpl<EnterpriseInfoMapper,
|
||||
StatsEnterpriseWeekVo vo = new StatsEnterpriseWeekVo();
|
||||
String enterpriseId = MapUtils.getString(param, "enterpriseId");
|
||||
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()));
|
||||
Integer inServiceNum = workerInfoService.count(new LambdaQueryWrapper<WorkerInfo>()
|
||||
.eq(WorkerInfo::getProjectSn, projectSn)
|
||||
.eq(WorkerInfo::getEnterpriseId, enterpriseId)
|
||||
.in(WorkerInfo::getEnterpriseId, enterpriseIds)
|
||||
.eq(WorkerInfo::getInserviceType, 1));
|
||||
vo.setInServiceNum(inServiceNum);
|
||||
int securityNum = xzSecurityQualityInspectionRecordService.count(new LambdaQueryWrapper<XzSecurityQualityInspectionRecord>()
|
||||
.eq(XzSecurityQualityInspectionRecord::getProjectSn, projectSn)
|
||||
.eq(XzSecurityQualityInspectionRecord::getEnterpriseId, enterpriseId)
|
||||
.in(XzSecurityQualityInspectionRecord::getEnterpriseId, enterpriseIds)
|
||||
.ne(XzSecurityQualityInspectionRecord::getStatus, 6)
|
||||
.eq(XzSecurityQualityInspectionRecord::getRecordType, 1)
|
||||
.ge(XzSecurityQualityInspectionRecord::getInspectTime, beginOfWeek)
|
||||
);
|
||||
vo.setSecurityNum(securityNum);
|
||||
int qualityNum = qualityInspectionRecordService.count(new LambdaQueryWrapper<QualityInspectionRecord>()
|
||||
.eq(QualityInspectionRecord::getProjectSn, projectSn)
|
||||
.eq(QualityInspectionRecord::getEnterpriseId, enterpriseId)
|
||||
.in(QualityInspectionRecord::getEnterpriseId, enterpriseIds)
|
||||
.ne(QualityInspectionRecord::getStatus, 6)
|
||||
.eq(QualityInspectionRecord::getRecordType, 1)
|
||||
.ge(QualityInspectionRecord::getInspectTime, beginOfWeek)
|
||||
);
|
||||
vo.setQualityNum(qualityNum);
|
||||
int specialNum = countSpecialNumThisWeek(enterpriseId, projectSn, beginOfWeek);
|
||||
double notPassRadio = getTrainNotPassRadio(enterpriseId, projectSn, beginOfWeek);
|
||||
int specialNum = countSpecialNumThisWeek(enterpriseIds, projectSn, beginOfWeek);
|
||||
double notPassRadio = getTrainNotPassRadio(enterpriseIds, projectSn, beginOfWeek);
|
||||
vo.setTrainNotPassRadio(notPassRadio);
|
||||
vo.setSpecialNum(specialNum);
|
||||
double safeScore = workerInfoService.getAvgSafeScore(enterpriseId, projectSn);
|
||||
double safeScore = workerInfoService.getAvgSafeScore(enterpriseIds, projectSn);
|
||||
vo.setSafeScore(safeScore);
|
||||
int highWorkerNumThisWeek = getHighInDayThisWeek(enterpriseId, projectSn, beginOfWeek);
|
||||
int highWorkerNumThisWeek = this.getHighInDayThisWeek(enterpriseIds, projectSn, beginOfWeek);
|
||||
vo.setHighWorkerNumThisWeek(highWorkerNumThisWeek);
|
||||
int emergencyNum = xzEmergencyRecordService.queryCount(new MapBuilder<String, Object>()
|
||||
.put("projectSn", projectSn)
|
||||
.put("enterpriseId", enterpriseId)
|
||||
.put("enterpriseIds", enterpriseIds)
|
||||
.put("beginOfWeek", beginOfWeek)
|
||||
.build());
|
||||
vo.setEmergencyNum(emergencyNum);
|
||||
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<>();
|
||||
map.put("enterpriseId", enterpriseId);
|
||||
map.put("enterpriseIds", enterpriseIds);
|
||||
map.put("startTime", beginOfWeek);
|
||||
map.put("projectSn", projectSn);
|
||||
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
|
||||
&& DateUtil.parse(beginOfWeek).compareTo(DateUtil.parse(workerAttendance.getCreateTime())) <= 0).collect(Collectors.toList());
|
||||
Set<String> inSet = new HashSet<>();
|
||||
int hn = 0;
|
||||
for (WorkerAttendance attendance : oneDayWas) {
|
||||
if (Objects.equals(attendance.getPassType(), 1)) {
|
||||
inSet.add(attendance.getPersonSn());
|
||||
hn = Math.max(hn, inSet.size());
|
||||
} else if (Objects.equals(attendance.getPassType(), 2)) {
|
||||
inSet.remove(attendance.getPersonSn());
|
||||
}
|
||||
}
|
||||
highNum = Math.max(highNum, inSet.size());
|
||||
highNum = Math.max(highNum, hn);
|
||||
}
|
||||
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<>());
|
||||
Set<Long> trainIds = examTrainRecordService.list().stream().map(e -> e.getTrainId()).collect(Collectors.toSet());
|
||||
if (trainIds.size() == 0) {
|
||||
Set<Long> recordTrainIds = examTrainRecordService.list(new LambdaQueryWrapper<ExamTrainRecord>().le(ExamTrainRecord::getStartExamTime, beginOfWeek)).stream().map(e -> e.getTrainId()).collect(Collectors.toSet());
|
||||
if (recordTrainIds.size() == 0) {
|
||||
return 0;
|
||||
}
|
||||
wrapper.lambda().in(ExamTrain::getId, trainIds);
|
||||
Page<ExamTrain> examTrainPage = examTrainMapper.pageList(new Page(1, -1), wrapper);
|
||||
List<Long> ids = examTrainPage.getRecords().stream().map(e -> e.getId()).collect(Collectors.toList());
|
||||
BigDecimal sum = new BigDecimal(0);
|
||||
BigDecimal count = new BigDecimal(0);
|
||||
if (ids.size() > 0) {
|
||||
List<ExamTrainRecord> examTrainRecordList = examTrainRecordService.list(Wrappers.<ExamTrainRecord>lambdaQuery().in(ExamTrainRecord::getTrainId, ids)
|
||||
wrapper.lambda().in(ExamTrain::getId, recordTrainIds);
|
||||
wrapper.lambda().le(ExamTrain::getTrainBeginTime, DateUtil.formatDate(DateUtil.parse(beginOfWeek)));
|
||||
Page<ExamTrain> trainPage = examTrainMapper.pageList(new Page(1, -1), wrapper);
|
||||
List<Long> trainIds = trainPage.getRecords().stream().map(e -> e.getId()).collect(Collectors.toList());
|
||||
int count = 0;
|
||||
int passNum = 0;
|
||||
if (trainIds.size() > 0) {
|
||||
List<ExamTrainRecord> recordList = examTrainRecordService.list(Wrappers.<ExamTrainRecord>lambdaQuery().in(ExamTrainRecord::getTrainId, trainIds)
|
||||
.eq(ExamTrainRecord::getProjectSn, projectSn)
|
||||
.eq(ExamTrainRecord::getEnterpriseId, enterpriseId)
|
||||
.in(ExamTrainRecord::getEnterpriseId, enterpriseIds)
|
||||
.ge(ExamTrainRecord::getCreateTime, beginOfWeek)
|
||||
);
|
||||
for (ExamTrain record : examTrainPage.getRecords()) {
|
||||
for (ExamTrain record : trainPage.getRecords()) {
|
||||
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) {
|
||||
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)));
|
||||
sum.add(BigDecimal.valueOf(100).subtract(record.getPassRadio()));
|
||||
count.add(new BigDecimal(1));
|
||||
passNum += pass;
|
||||
count += trainRecordList.size();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (count.equals(new BigDecimal(0))) {
|
||||
if (count == 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()));
|
||||
int n1 = xzBlindPlatePlugSafeService.count(new LambdaQueryWrapper<XzBlindPlatePlugSafe>()
|
||||
.eq(XzBlindPlatePlugSafe::getProjectSn, projectSn)
|
||||
.eq(XzBlindPlatePlugSafe::getJobApplicationUnit, enterpriseId)
|
||||
.in(XzBlindPlatePlugSafe::getJobApplicationUnit, enterpriseIds)
|
||||
.le(XzBlindPlatePlugSafe::getWorkExecutionBeginTime, endOfWeek)
|
||||
.ge(XzBlindPlatePlugSafe::getWorkExecutionEndTime, beginOfWeek)
|
||||
);
|
||||
int n2 = iXzGroundSafetService.count(new LambdaQueryWrapper<XzGroundSafet>()
|
||||
.eq(XzGroundSafet::getProjectSn, projectSn)
|
||||
.eq(XzGroundSafet::getJobApplicationUnit, enterpriseId)
|
||||
.in(XzGroundSafet::getJobApplicationUnit, enterpriseIds)
|
||||
.le(XzGroundSafet::getWorkExecutionBeginTime, endOfWeek)
|
||||
.ge(XzGroundSafet::getWorkExecutionEndTime, beginOfWeek)
|
||||
);
|
||||
int n3 = iXzHighJobSafeService.count(new LambdaQueryWrapper<XzHighJobSafe>()
|
||||
.eq(XzHighJobSafe::getProjectSn, projectSn)
|
||||
.eq(XzHighJobSafe::getJobApplicationUnit, enterpriseId)
|
||||
.in(XzHighJobSafe::getJobApplicationUnit, enterpriseIds)
|
||||
.le(XzHighJobSafe::getWorkExecutionBeginTime, endOfWeek)
|
||||
.ge(XzHighJobSafe::getWorkExecutionEndTime, beginOfWeek)
|
||||
);
|
||||
int n4 = iXzHoistSafetyWorkService.count(new LambdaQueryWrapper<XzHoistSafetyWork>()
|
||||
.eq(XzHoistSafetyWork::getProjectSn, projectSn)
|
||||
.eq(XzHoistSafetyWork::getJobApplicationUnit, enterpriseId)
|
||||
.in(XzHoistSafetyWork::getJobApplicationUnit, enterpriseIds)
|
||||
.le(XzHoistSafetyWork::getWorkExecutionBeginTime, endOfWeek)
|
||||
.ge(XzHoistSafetyWork::getWorkExecutionEndTime, beginOfWeek)
|
||||
);
|
||||
int n5 = iXzLimitSpaceSafeService.count(new LambdaQueryWrapper<XzLimitSpaceSafe>()
|
||||
.eq(XzLimitSpaceSafe::getProjectSn, projectSn)
|
||||
.eq(XzLimitSpaceSafe::getJobApplicationUnit, enterpriseId)
|
||||
.in(XzLimitSpaceSafe::getJobApplicationUnit, enterpriseIds)
|
||||
.le(XzLimitSpaceSafe::getWorkExecutionBeginTime, endOfWeek)
|
||||
.ge(XzLimitSpaceSafe::getWorkExecutionEndTime, beginOfWeek)
|
||||
);
|
||||
int n6 = iXzOpenCircuitSafeService.count(new LambdaQueryWrapper<XzOpenCircuitSafe>()
|
||||
.eq(XzOpenCircuitSafe::getProjectSn, projectSn)
|
||||
.eq(XzOpenCircuitSafe::getJobApplicationUnit, enterpriseId)
|
||||
.in(XzOpenCircuitSafe::getJobApplicationUnit, enterpriseIds)
|
||||
.le(XzOpenCircuitSafe::getWorkExecutionBeginTime, endOfWeek)
|
||||
.ge(XzOpenCircuitSafe::getWorkExecutionEndTime, beginOfWeek)
|
||||
);
|
||||
int n7 = iXzSpecialOperationFireSafetyService.count(new LambdaQueryWrapper<XzSpecialOperationFireSafety>()
|
||||
.eq(XzSpecialOperationFireSafety::getProjectSn, projectSn)
|
||||
.eq(XzSpecialOperationFireSafety::getJobApplicationUnit, enterpriseId)
|
||||
.in(XzSpecialOperationFireSafety::getJobApplicationUnit, enterpriseIds)
|
||||
.le(XzSpecialOperationFireSafety::getHotWorkExecutionBeginTime, endOfWeek)
|
||||
.ge(XzSpecialOperationFireSafety::getHotWorkExecutionEndTime, beginOfWeek)
|
||||
);
|
||||
int n8 = xzTemporaryElectricitySafeService.count(new LambdaQueryWrapper<XzTemporaryElectricitySafe>()
|
||||
.eq(XzTemporaryElectricitySafe::getProjectSn, projectSn)
|
||||
.eq(XzTemporaryElectricitySafe::getJobApplicationUnit, enterpriseId)
|
||||
.in(XzTemporaryElectricitySafe::getJobApplicationUnit, enterpriseIds)
|
||||
.le(XzTemporaryElectricitySafe::getWorkExecutionBeginTime, endOfWeek)
|
||||
.ge(XzTemporaryElectricitySafe::getWorkExecutionEndTime, beginOfWeek)
|
||||
);
|
||||
|
||||
@ -1160,6 +1160,27 @@ status 状态码 String 1表示成功;其余表示失败
|
||||
List<SafetyPerformanceAnalysisVo> vos = baseMapper.safetyPerformanceAnalysis(paramMap);
|
||||
SafetyPerformanceAnalysisVo vo = new SafetyPerformanceAnalysisVo();
|
||||
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 inServiceNum = 0;
|
||||
Integer xmjlNotPerformNum = 0;
|
||||
@ -1171,26 +1192,16 @@ status 状态码 String 1表示成功;其余表示失败
|
||||
Integer jlNotPerformNum = 0;
|
||||
Integer jlInServiceNum = 0;
|
||||
for (SafetyPerformanceAnalysisVo one : vos) {
|
||||
Integer notPerformNum1 = one.getNotPerformNum();
|
||||
Integer inServiceNum1 = one.getInServiceNum();
|
||||
Integer xmjlNotPerformNum1 = one.getXmjlNotPerformNum();
|
||||
Integer xmjlInServiceNum1 = one.getXmjlInServiceNum();
|
||||
Integer aqyNotPerformNum1 = one.getAqyNotPerformNum();
|
||||
Integer aqyInServiceNum1 = one.getAqyInServiceNum();
|
||||
Integer zlyNotPerformNum1 = one.getZlyNotPerformNum();
|
||||
Integer zlyInServiceNum1 = one.getZlyInServiceNum();
|
||||
Integer jlNotPerformNum1 = one.getJlNotPerformNum();
|
||||
Integer jlInServiceNum1 = one.getJlInServiceNum();
|
||||
notPerformNum += notPerformNum1;
|
||||
inServiceNum += inServiceNum1;
|
||||
xmjlNotPerformNum += xmjlNotPerformNum1;
|
||||
xmjlInServiceNum += xmjlInServiceNum1;
|
||||
aqyNotPerformNum += aqyNotPerformNum1;
|
||||
aqyInServiceNum += aqyInServiceNum1;
|
||||
zlyNotPerformNum += zlyNotPerformNum1;
|
||||
zlyInServiceNum += zlyInServiceNum1;
|
||||
jlNotPerformNum += jlNotPerformNum1;
|
||||
jlInServiceNum += jlInServiceNum1;
|
||||
notPerformNum += one.getNotPerformNum();
|
||||
inServiceNum += one.getInServiceNum();
|
||||
xmjlNotPerformNum += one.getXmjlNotPerformNum();
|
||||
xmjlInServiceNum += one.getXmjlInServiceNum();
|
||||
aqyNotPerformNum += one.getAqyNotPerformNum();
|
||||
aqyInServiceNum += one.getAqyInServiceNum();
|
||||
zlyNotPerformNum += one.getZlyNotPerformNum();
|
||||
zlyInServiceNum += one.getZlyInServiceNum();
|
||||
jlNotPerformNum += one.getJlNotPerformNum();
|
||||
jlInServiceNum += one.getJlInServiceNum();
|
||||
}
|
||||
vo.setNotPerformNum(notPerformNum);
|
||||
vo.setInServiceNum(inServiceNum);
|
||||
@ -1202,7 +1213,6 @@ status 状态码 String 1表示成功;其余表示失败
|
||||
vo.setZlyInServiceNum(zlyInServiceNum);
|
||||
vo.setJlNotPerformNum(jlNotPerformNum);
|
||||
vo.setJlInServiceNum(jlInServiceNum);
|
||||
return vo;
|
||||
}
|
||||
|
||||
private Integer getCardType(String type) {
|
||||
|
||||
@ -19,7 +19,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.gexin.fastjson.JSON;
|
||||
import com.gexin.fastjson.JSONArray;
|
||||
import com.zhgd.exception.CustomException;
|
||||
import com.zhgd.jeecg.common.api.vo.Result;
|
||||
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.constant.Cts;
|
||||
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.mapper.CompanyMapper;
|
||||
import com.zhgd.xmgl.modules.basicdata.mapper.SystemAreasMapper;
|
||||
import com.zhgd.xmgl.modules.basicdata.mapper.SystemUserMapper;
|
||||
import com.zhgd.xmgl.modules.basicdata.service.ICompanyService;
|
||||
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.ProjectEnterprise;
|
||||
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.ProjectMapper;
|
||||
import com.zhgd.xmgl.modules.project.service.IProjectService;
|
||||
import com.zhgd.xmgl.modules.project.service.IProjectUfaceConfigService;
|
||||
import com.zhgd.xmgl.modules.video.mapper.AiAnalyseHardWareAlarmRecordMapper;
|
||||
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.service.*;
|
||||
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.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.special.service.IXzBlindPlatePlugSafeService;
|
||||
import com.zhgd.xmgl.security.entity.UserInfo;
|
||||
import com.zhgd.xmgl.security.util.SecurityUtils;
|
||||
import com.zhgd.xmgl.util.*;
|
||||
@ -85,7 +76,6 @@ import org.springframework.transaction.annotation.Propagation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
@ -2566,7 +2556,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getAvgSafeScore(String enterpriseId, String projectSn) {
|
||||
return baseMapper.getAvgSafeScore(enterpriseId, projectSn);
|
||||
public double getAvgSafeScore(List<Long> enterpriseIds, String projectSn) {
|
||||
return baseMapper.getAvgSafeScore(enterpriseIds, projectSn);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
package com.zhgd.xmgl.modules.xz.controller;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
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.wflow.bean.entity.WflowModelGroups;
|
||||
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.WflowModelHistorysMapper;
|
||||
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.vo.FormAbstractsVo;
|
||||
import com.wflow.workflow.bean.vo.ProcessInstanceVo;
|
||||
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.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.flowable.engine.HistoryService;
|
||||
import org.flowable.engine.RuntimeService;
|
||||
import org.flowable.engine.history.HistoricProcessInstance;
|
||||
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.web.bind.annotation.GetMapping;
|
||||
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)));
|
||||
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);
|
||||
}
|
||||
|
||||
@ -157,7 +146,7 @@ public class XzFlowController {
|
||||
long count = processInstanceVos.stream().filter(p -> p.getFormId().equals(formId)).count();
|
||||
int number = (int) count;
|
||||
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("complete", typeList.stream().filter(l -> l.getFinishTime() != null).count());
|
||||
resultList.add(map);
|
||||
@ -169,7 +158,7 @@ public class XzFlowController {
|
||||
/**
|
||||
* 构造流程实例列表
|
||||
*
|
||||
* @param Instances 流程实例
|
||||
* @param Instances 流程实例
|
||||
* @return 流程实例列表
|
||||
*/
|
||||
private List<ProcessInstanceVo> getInstances(List<HistoricProcessInstance> Instances) {
|
||||
|
||||
@ -39,5 +39,5 @@ public interface XzEmergencyRecordMapper extends BaseMapper<XzEmergencyRecord> {
|
||||
|
||||
List<CountAlarmNumByEnterpriseOne> countAlarmNumByEnterprise(@Param("param") Map<String, Object> param);
|
||||
|
||||
Integer queryCount(HashMap<String, Object> param);
|
||||
Integer queryCount(@Param("param") HashMap<String, Object> param);
|
||||
}
|
||||
|
||||
@ -101,6 +101,9 @@
|
||||
left join worker_info wi on wi.id = t.alarm_person_id
|
||||
where t.project_sn=#{param.projectSn}
|
||||
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>
|
||||
</mapper>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user