大屏接口

This commit is contained in:
guoshengxiong 2024-06-17 19:13:42 +08:00
parent f3d4e784d2
commit 188380e645
16 changed files with 283 additions and 6 deletions

View File

@ -202,6 +202,27 @@ public class DataScopeHandler implements DataPermissionHandler {
} }
} }
//解析ai视频预警
List<String> filterAis = getNeedFilterLeftExpression(plainSelect, getFieldAiTables(), ds, true);
if (CollUtil.isNotEmpty(filterAis)) {
List<String> videoItems = aiAnalyseHardWareRecordService.getAiAnalyseHardIdsByEnterpriseId(id);
if (CollUtil.isEmpty(videoItems)) {
videoItems.add("0");
}
videoItems = videoItems.stream().map(s -> "'" + s + "'").collect(Collectors.toList());
for (String filterAi : filterAis) {
String sql = StrUtil.format(" ({}.hardware_id in ({}) OR ({}.quality_region_id in (select distinct quality_region_id from quality_region_to_user where user_id = {}))) ",
filterAi, StrUtil.join(",", videoItems), filterAi, SecurityUtils.getUser().getUserId());
Expression expression = null;
try {
expression = CCJSqlParserUtil.parseCondExpression(sql);
expressions.add(expression);
} catch (JSQLParserException e) {
log.error(e.getMessage(), e);
}
}
}
} }
if (expressions.size() > 0) { if (expressions.size() > 0) {
Expression dataExpression; Expression dataExpression;

View File

@ -62,7 +62,7 @@ public class QualityInspectionRecordController {
@ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "body", required = true, dataType = "String"), @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "body", required = true, dataType = "String"),
@ApiImplicitParam(name = "regionId", value = "检查部位ID", paramType = "body", required = false, dataType = "String"), @ApiImplicitParam(name = "regionId", value = "检查部位ID", paramType = "body", required = false, dataType = "String"),
@ApiImplicitParam(name = "itemId", value = "子任务ID", paramType = "body", required = false, dataType = "String"), @ApiImplicitParam(name = "itemId", value = "子任务ID", paramType = "body", required = false, dataType = "String"),
@ApiImplicitParam(name = "status", value = "状态1无需整改2待整改3待复查4待核验5合格6合格7超期未关闭", paramType = "body", required = false, dataType = "String"), @ApiImplicitParam(name = "status", value = "状态1无需整改2待整改3待复查4待核验5合格60未合格7超期未关闭", paramType = "body", required = false, dataType = "String"),
@ApiImplicitParam(name = "recordStatus", value = "查询类型1排查记录2已闭合3未闭合4超期未关闭5待整改6待复查7待核验", paramType = "body", required = false, dataType = "String"), @ApiImplicitParam(name = "recordStatus", value = "查询类型1排查记录2已闭合3未闭合4超期未关闭5待整改6待复查7待核验", paramType = "body", required = false, dataType = "String"),
@ApiImplicitParam(name = "urgentLevel", value = "紧急程度1一般2严重3紧要", paramType = "body", required = false, dataType = "String"), @ApiImplicitParam(name = "urgentLevel", value = "紧急程度1一般2严重3紧要", paramType = "body", required = false, dataType = "String"),
@ApiImplicitParam(name = "level", value = "问题等级1一级2二级3三级4四级", paramType = "body", required = false, dataType = "String"), @ApiImplicitParam(name = "level", value = "问题等级1一级2二级3三级4四级", paramType = "body", required = false, dataType = "String"),

View File

@ -301,13 +301,16 @@
<if test="param.level != null and param.level != ''"> <if test="param.level != null and param.level != ''">
and a.level = #{param.level} and a.level = #{param.level}
</if> </if>
<if test="param.status != null and param.status != '' and param.status != '7'.toString()"> <if test="param.status != null and param.status != '' and param.status != '7'.toString() and param.status != '60'.toString()">
and a.status = #{param.status} and a.status = #{param.status}
</if> </if>
<if test="param.status == '7'.toString()"> <if test="param.status == '7'.toString()">
and a.change_limit_time <![CDATA[<]]> current_date and a.change_limit_time <![CDATA[<]]> current_date
and a.status != 5 and a.status != 5
</if> </if>
<if test="param.status == '60'.toString()">
and a.status != 5 and a.status != 6
</if>
<if test="param.urgentLevel != null and param.urgentLevel != ''"> <if test="param.urgentLevel != null and param.urgentLevel != ''">
and a.urgent_level = #{param.urgentLevel} and a.urgent_level = #{param.urgentLevel}
</if> </if>

View File

@ -17,6 +17,8 @@ public interface AiAnalyseHardWareRecordMapper extends BaseMapper<AiAnalyseHardW
List<String> getAiAnalyseHardIdsByUserId(Long userId); List<String> getAiAnalyseHardIdsByUserId(Long userId);
List<String> getAiAnalyseHardIdsByEnterpriseId(Long enterpriseId);
List<String> getUserIdsByAiAnalyseHardId(String aiAnalyseHardId); List<String> getUserIdsByAiAnalyseHardId(String aiAnalyseHardId);
List<String> getUserIdsByQualityRegionId(String qualityRegionId); List<String> getUserIdsByQualityRegionId(String qualityRegionId);

View File

@ -8,6 +8,15 @@
join quality_region_to_user qrtu on qrtaah.quality_region_id = qrtu.quality_region_id join quality_region_to_user qrtu on qrtaah.quality_region_id = qrtu.quality_region_id
where qrtu.user_id = #{userId} where qrtu.user_id = #{userId}
</select> </select>
<select id="getAiAnalyseHardIdsByEnterpriseId" resultType="java.lang.String">
select distinct qrtaah.ai_analyse_hard_ware_record_id
from quality_region_to_ai_analyse_hard qrtaah
join quality_region_to_enterprise qrte on qrte.quality_region_id = qrtaah.quality_region_id
where (qrte.enterprise_id = #{enterpriseId} OR qrte.enterprise_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>
<select id="getUserIdsByAiAnalyseHardId" resultType="java.lang.String"> <select id="getUserIdsByAiAnalyseHardId" resultType="java.lang.String">
select distinct qrtu.user_id select distinct qrtu.user_id
from ai_analyse_hard_ware_record aahwr from ai_analyse_hard_ware_record aahwr

View File

@ -34,4 +34,12 @@ public interface IAiAnalyseHardWareRecordService extends IService<AiAnalyseHardW
List<String> getUserIdsByAiAnalyseHardId(String ha); List<String> getUserIdsByAiAnalyseHardId(String ha);
List<String> getUserIdsByQualityRegionId(String ha); List<String> getUserIdsByQualityRegionId(String ha);
/**
* 通过企业id总包的查询子企业的ai预警设备id
*
* @param enterpriseId
* @return
*/
List<String> getAiAnalyseHardIdsByEnterpriseId(Long enterpriseId);
} }

View File

@ -100,4 +100,9 @@ public class AiAnalyseHardWareRecordServiceImpl extends ServiceImpl<AiAnalyseHar
return baseMapper.getUserIdsByQualityRegionId(qualityRegionId); return baseMapper.getUserIdsByQualityRegionId(qualityRegionId);
} }
@Override
public List<String> getAiAnalyseHardIdsByEnterpriseId(Long enterpriseId) {
return baseMapper.getAiAnalyseHardIdsByEnterpriseId(enterpriseId);
}
} }

View File

@ -8,12 +8,14 @@ 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.worker.entity.EnterpriseInfo; import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo;
import com.zhgd.xmgl.modules.worker.entity.SjEnterpriseInfo; import com.zhgd.xmgl.modules.worker.entity.SjEnterpriseInfo;
import com.zhgd.xmgl.modules.worker.entity.vo.StatsEnterpriseWeekVo;
import com.zhgd.xmgl.modules.worker.service.IEnterpriseInfoService; import com.zhgd.xmgl.modules.worker.service.IEnterpriseInfoService;
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.openxmlformats.schemas.wordprocessingml.x2006.main.CTR;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@ -219,4 +221,21 @@ public class EnterpriseInfoController {
return Result.success(enterpriseInfoService.countSupplier(paramMap)); return Result.success(enterpriseInfoService.countSupplier(paramMap));
} }
@ApiOperation(value = "查询供应商的详情", notes = "查询供应商的详情", httpMethod = "POST")
@ApiImplicitParams({
})
@PostMapping(value = "/getXzSupplierInfo")
public Result<EnterpriseInfo> getXzSupplierInfo(@ApiIgnore @RequestBody Map<String, Object> param) {
return Result.success(enterpriseInfoService.getXzSupplierInfo(param));
}
@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"),
})
@PostMapping(value = "/statsEnterpriseWeek")
public Result<StatsEnterpriseWeekVo> statsEnterpriseWeek(@ApiIgnore @RequestBody Map<String, Object> param) {
return Result.success(enterpriseInfoService.statsEnterpriseWeek(param));
}
} }

View File

@ -0,0 +1,23 @@
package com.zhgd.xmgl.modules.worker.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class StatsEnterpriseWeekVo {
@ApiModelProperty("在场人员数量")
private Integer Num;
@ApiModelProperty("在职人员数量")
private Integer inServiceNum;
@ApiModelProperty("企业安全分")
private Double safeScore;
@ApiModelProperty("安全隐患总数")
private Integer securityNum;
@ApiModelProperty("质量隐患总数")
private Integer qualityNum;
@ApiModelProperty("特种作业数量")
private Integer specialNum;
@ApiModelProperty("培训未通过率")
private Double trainNotPassRadio;
}

View File

@ -254,4 +254,6 @@ public interface WorkerInfoMapper extends BaseMapper<WorkerInfo> {
List<TrendOneVo> statsEnterprise(@Param("param") Map<String, Object> map); List<TrendOneVo> statsEnterprise(@Param("param") Map<String, Object> map);
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);
} }

View File

@ -2552,4 +2552,10 @@
where t.project_sn=#{param.projectSn} and t.inService_type = 1 where t.project_sn=#{param.projectSn} and t.inService_type = 1
group by t.enterprise_id group by t.enterprise_id
</select> </select>
<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}
</select>
</mapper> </mapper>

View File

@ -9,6 +9,7 @@ import com.zhgd.xmgl.base.CompanyVo;
import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo; import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.zhgd.xmgl.modules.worker.entity.SjEnterpriseInfo; import com.zhgd.xmgl.modules.worker.entity.SjEnterpriseInfo;
import com.zhgd.xmgl.modules.worker.entity.vo.StatsEnterpriseWeekVo;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -58,4 +59,8 @@ public interface IEnterpriseInfoService extends IService<EnterpriseInfo> {
Page<EnterpriseInfo> countSupplier(Map<String, Object> paramMap); Page<EnterpriseInfo> countSupplier(Map<String, Object> paramMap);
List<EnterpriseInfo> getEnterpriseInfoByRegionId(Long id); List<EnterpriseInfo> getEnterpriseInfoByRegionId(Long id);
EnterpriseInfo getXzSupplierInfo(Map<String, Object> param);
StatsEnterpriseWeekVo statsEnterpriseWeek(Map<String, Object> param);
} }

View File

@ -168,4 +168,5 @@ public interface IWorkerInfoService extends IService<WorkerInfo> {
void deleteBatch(String ids); void deleteBatch(String ids);
double getAvgSafeScore(String enterpriseId, String projectSn);
} }

View File

@ -1,38 +1,51 @@
package com.zhgd.xmgl.modules.worker.service.impl; package com.zhgd.xmgl.modules.worker.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.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.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;
import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.async.AsyncHikvision; import com.zhgd.xmgl.async.AsyncHikvision;
import com.zhgd.xmgl.async.AsyncJiLianDa; import com.zhgd.xmgl.async.AsyncJiLianDa;
import com.zhgd.xmgl.async.AsyncWorker; import com.zhgd.xmgl.async.AsyncWorker;
import com.zhgd.xmgl.base.CompanyVo; import com.zhgd.xmgl.base.CompanyVo;
import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService; import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService;
import com.zhgd.xmgl.modules.basicdata.service.impl.CompanyServiceImpl; import com.zhgd.xmgl.modules.basicdata.service.impl.CompanyServiceImpl;
import com.zhgd.xmgl.modules.exam.entity.ExamTrain;
import com.zhgd.xmgl.modules.exam.entity.ExamTrainRecord;
import com.zhgd.xmgl.modules.exam.mapper.ExamTrainMapper;
import com.zhgd.xmgl.modules.exam.service.IExamTrainRecordService;
import com.zhgd.xmgl.modules.exam.service.IExamTrainService;
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.XzUserToSupplier; import com.zhgd.xmgl.modules.project.entity.XzUserToSupplier;
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.impl.ProjectEnterpriseServiceImpl; import com.zhgd.xmgl.modules.project.service.impl.ProjectEnterpriseServiceImpl;
import com.zhgd.xmgl.modules.worker.entity.DepartmentInfo; import com.zhgd.xmgl.modules.quality.entity.QualityInspectionRecord;
import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo; import com.zhgd.xmgl.modules.quality.service.IQualityInspectionRecordService;
import com.zhgd.xmgl.modules.worker.entity.SjEnterpriseInfo; import com.zhgd.xmgl.modules.worker.entity.*;
import com.zhgd.xmgl.modules.worker.entity.TeamInfo; import com.zhgd.xmgl.modules.worker.entity.vo.StatsEnterpriseWeekVo;
import com.zhgd.xmgl.modules.worker.mapper.DepartmentInfoMapper; import com.zhgd.xmgl.modules.worker.mapper.DepartmentInfoMapper;
import com.zhgd.xmgl.modules.worker.mapper.EnterpriseInfoMapper; import com.zhgd.xmgl.modules.worker.mapper.EnterpriseInfoMapper;
import com.zhgd.xmgl.modules.worker.mapper.TeamInfoMapper; import com.zhgd.xmgl.modules.worker.mapper.TeamInfoMapper;
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.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.entity.*;
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.ListUtils;
@ -45,7 +58,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* @Description: 劳务公司 * @Description: 劳务公司
@ -60,6 +76,30 @@ public class EnterpriseInfoServiceImpl extends ServiceImpl<EnterpriseInfoMapper,
IUserEnterpriseService userEnterpriseService; IUserEnterpriseService userEnterpriseService;
@Autowired @Autowired
ProjectMapper projectMapper; ProjectMapper projectMapper;
@Resource
IWorkerInfoService workerInfoService;
@Resource
ExamTrainMapper examTrainMapper;
@Resource
IXzSecurityQualityInspectionRecordService xzSecurityQualityInspectionRecordService;
@Resource
IQualityInspectionRecordService qualityInspectionRecordService;
@Resource
IXzBlindPlatePlugSafeService xzBlindPlatePlugSafeService;
@Resource
IXzGroundSafetService iXzGroundSafetService;
@Resource
IXzHighJobSafeService iXzHighJobSafeService;
@Resource
IXzHoistSafetyWorkService iXzHoistSafetyWorkService;
@Resource
IXzLimitSpaceSafeService iXzLimitSpaceSafeService;
@Resource
IXzOpenCircuitSafeService iXzOpenCircuitSafeService;
@Resource
IXzSpecialOperationFireSafetyService iXzSpecialOperationFireSafetyService;
@Resource
IXzTemporaryElectricitySafeService xzTemporaryElectricitySafeService;
@Autowired @Autowired
private EnterpriseInfoMapper enterpriseInfoMapper; private EnterpriseInfoMapper enterpriseInfoMapper;
@Autowired @Autowired
@ -82,6 +122,10 @@ public class EnterpriseInfoServiceImpl extends ServiceImpl<EnterpriseInfoMapper,
private XzSupplierQualificationApplyServiceImpl xzSupplierQualificationApplyService; private XzSupplierQualificationApplyServiceImpl xzSupplierQualificationApplyService;
@Autowired @Autowired
private CompanyServiceImpl companyService; private CompanyServiceImpl companyService;
@Autowired
private IExamTrainService examTrainService;
@Autowired
private IExamTrainRecordService examTrainRecordService;
@Override @Override
public List<EntityMap> getEnterpriseInfoList(Map<String, Object> map) { public List<EntityMap> getEnterpriseInfoList(Map<String, Object> map) {
@ -484,6 +528,130 @@ public class EnterpriseInfoServiceImpl extends ServiceImpl<EnterpriseInfoMapper,
return baseMapper.getEnterpriseInfoByRegionId(id); return baseMapper.getEnterpriseInfoByRegionId(id);
} }
@Override
public EnterpriseInfo getXzSupplierInfo(Map<String, Object> param) {
Long userId = SecurityUtils.getUser().getUserId();
return baseMapper.getXzSupplierByUserId(userId);
}
@Override
public StatsEnterpriseWeekVo statsEnterpriseWeek(Map<String, Object> param) {
StatsEnterpriseWeekVo vo = new StatsEnterpriseWeekVo();
String enterpriseId = MapUtils.getString(param, "enterpriseId");
String projectSn = MapUtils.getString(param, "projectSn");
String beginOfWeek = DateUtil.formatDateTime(DateUtil.beginOfWeek(new Date()));
Integer inServiceNum = workerInfoService.count(new LambdaQueryWrapper<WorkerInfo>()
.eq(WorkerInfo::getProjectSn, projectSn)
.eq(WorkerInfo::getEnterpriseId, enterpriseId)
.eq(WorkerInfo::getInserviceType, 1));
vo.setInServiceNum(inServiceNum);
int securityNum = xzSecurityQualityInspectionRecordService.count(new LambdaQueryWrapper<XzSecurityQualityInspectionRecord>()
.eq(XzSecurityQualityInspectionRecord::getProjectSn, projectSn)
.eq(XzSecurityQualityInspectionRecord::getEnterpriseId, enterpriseId)
.ge(XzSecurityQualityInspectionRecord::getInspectTime, beginOfWeek)
);
vo.setSecurityNum(securityNum);
int qualityNum = qualityInspectionRecordService.count(new LambdaQueryWrapper<QualityInspectionRecord>()
.eq(QualityInspectionRecord::getProjectSn, projectSn)
.eq(QualityInspectionRecord::getEnterpriseId, enterpriseId)
.ge(QualityInspectionRecord::getInspectTime, beginOfWeek)
);
vo.setQualityNum(qualityNum);
int specialNum = countSpecialNumThisWeek(enterpriseId, projectSn, beginOfWeek);
double notPassRadio = getTrainNotPassRadio(enterpriseId, projectSn, beginOfWeek);
vo.setTrainNotPassRadio(notPassRadio);
vo.setSpecialNum(specialNum);
double safeScore = workerInfoService.getAvgSafeScore(enterpriseId, projectSn);
vo.setSafeScore(safeScore);
vo.setNum(0);
return vo;
}
private double getTrainNotPassRadio(String enterpriseId, 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) {
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)
.eq(ExamTrainRecord::getProjectSn, projectSn)
.eq(ExamTrainRecord::getEnterpriseId, enterpriseId)
.ge(ExamTrainRecord::getCreateTime, beginOfWeek)
);
for (ExamTrain record : examTrainPage.getRecords()) {
if (record.getExamPaperId() != null) {
List<ExamTrainRecord> trainRecordList = examTrainRecordList.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));
}
}
}
}
return sum.divide(count, 2, BigDecimal.ROUND_HALF_UP).doubleValue();
}
private int countSpecialNumThisWeek(String enterpriseId, 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)
.le(XzBlindPlatePlugSafe::getWorkExecutionBeginTime, endOfWeek)
.ge(XzBlindPlatePlugSafe::getWorkExecutionEndTime, beginOfWeek)
);
int n2 = iXzGroundSafetService.count(new LambdaQueryWrapper<XzGroundSafet>()
.eq(XzGroundSafet::getProjectSn, projectSn)
.eq(XzGroundSafet::getJobApplicationUnit, enterpriseId)
.le(XzGroundSafet::getWorkExecutionBeginTime, endOfWeek)
.ge(XzGroundSafet::getWorkExecutionEndTime, beginOfWeek)
);
int n3 = iXzHighJobSafeService.count(new LambdaQueryWrapper<XzHighJobSafe>()
.eq(XzHighJobSafe::getProjectSn, projectSn)
.eq(XzHighJobSafe::getJobApplicationUnit, enterpriseId)
.le(XzHighJobSafe::getWorkExecutionBeginTime, endOfWeek)
.ge(XzHighJobSafe::getWorkExecutionEndTime, beginOfWeek)
);
int n4 = iXzHoistSafetyWorkService.count(new LambdaQueryWrapper<XzHoistSafetyWork>()
.eq(XzHoistSafetyWork::getProjectSn, projectSn)
.eq(XzHoistSafetyWork::getJobApplicationUnit, enterpriseId)
.le(XzHoistSafetyWork::getWorkExecutionBeginTime, endOfWeek)
.ge(XzHoistSafetyWork::getWorkExecutionEndTime, beginOfWeek)
);
int n5 = iXzLimitSpaceSafeService.count(new LambdaQueryWrapper<XzLimitSpaceSafe>()
.eq(XzLimitSpaceSafe::getProjectSn, projectSn)
.eq(XzLimitSpaceSafe::getJobApplicationUnit, enterpriseId)
.le(XzLimitSpaceSafe::getWorkExecutionBeginTime, endOfWeek)
.ge(XzLimitSpaceSafe::getWorkExecutionEndTime, beginOfWeek)
);
int n6 = iXzOpenCircuitSafeService.count(new LambdaQueryWrapper<XzOpenCircuitSafe>()
.eq(XzOpenCircuitSafe::getProjectSn, projectSn)
.eq(XzOpenCircuitSafe::getJobApplicationUnit, enterpriseId)
.le(XzOpenCircuitSafe::getWorkExecutionBeginTime, endOfWeek)
.ge(XzOpenCircuitSafe::getWorkExecutionEndTime, beginOfWeek)
);
int n7 = iXzSpecialOperationFireSafetyService.count(new LambdaQueryWrapper<XzSpecialOperationFireSafety>()
.eq(XzSpecialOperationFireSafety::getProjectSn, projectSn)
.eq(XzSpecialOperationFireSafety::getJobApplicationUnit, enterpriseId)
.le(XzSpecialOperationFireSafety::getHotWorkExecutionBeginTime, endOfWeek)
.ge(XzSpecialOperationFireSafety::getHotWorkExecutionEndTime, beginOfWeek)
);
int n8 = xzTemporaryElectricitySafeService.count(new LambdaQueryWrapper<XzTemporaryElectricitySafe>()
.eq(XzTemporaryElectricitySafe::getProjectSn, projectSn)
.eq(XzTemporaryElectricitySafe::getJobApplicationUnit, enterpriseId)
.le(XzTemporaryElectricitySafe::getWorkExecutionBeginTime, endOfWeek)
.ge(XzTemporaryElectricitySafe::getWorkExecutionEndTime, beginOfWeek)
);
return n1 + n2 + n3 + n4 + n5 + n6 + n7 + n8;
}
private EnterpriseInfo getEnterpriseInfo(SjEnterpriseInfo e, String projectSn) { private EnterpriseInfo getEnterpriseInfo(SjEnterpriseInfo e, String projectSn) {
EnterpriseInfo enterpriseInfo = new EnterpriseInfo(); EnterpriseInfo enterpriseInfo = new EnterpriseInfo();
enterpriseInfo.setId(e.getId()); enterpriseInfo.setId(e.getId());

View File

@ -2548,4 +2548,9 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
deleteWorkerInfo(workerId); deleteWorkerInfo(workerId);
} }
} }
@Override
public double getAvgSafeScore(String enterpriseId, String projectSn) {
return baseMapper.getAvgSafeScore(enterpriseId, projectSn);
}
} }