安全修改bug

This commit is contained in:
guoshengxiong 2025-08-08 18:34:14 +08:00
parent f03f122aac
commit 58d316bcb9
15 changed files with 153 additions and 37 deletions

View File

@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.handler.DataPermissionHandler;
import com.zhgd.annotation.DataScope;
import com.zhgd.xmgl.modules.basicdata.enums.SystemUserAccountTypeEnum;
@ -13,6 +14,8 @@ import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo;
import com.zhgd.xmgl.modules.worker.mapper.EnterpriseInfoMapper;
import com.zhgd.xmgl.modules.worker.service.impl.UserDevAuthorityServiceImpl;
import com.zhgd.xmgl.modules.worker.service.impl.UserEnterpriseServiceImpl;
import com.zhgd.xmgl.modules.xz.security.entity.XzSecurityQualityInspectionEnterprise;
import com.zhgd.xmgl.modules.xz.security.service.IXzSecurityQualityInspectionEnterpriseService;
import com.zhgd.xmgl.modules.xz.service.impl.XzSupplierQualificationApplyServiceImpl;
import com.zhgd.xmgl.security.entity.UserInfo;
import com.zhgd.xmgl.security.util.SecurityUtils;
@ -95,7 +98,7 @@ public class DataScopeHandler implements DataPermissionHandler {
tables.put("xz_material", "enterprise_id");
tables.put("inspect_task_record", "enterprise_id");
tables.put("xz_security_inspect_task_record", "enterprise_id");
tables.put("xz_security_quality_inspection_record", "enterprise_id");
// tables.put("xz_security_quality_inspection_record", "enterprise_id");
tables.put("exam_notice", "enterprise_id");
tables.put("exam_train_record", "enterprise_id");
tables.put("exam_course_record", "enterprise_id");
@ -136,6 +139,10 @@ public class DataScopeHandler implements DataPermissionHandler {
//}
}
@Lazy
@Autowired
private IXzSecurityQualityInspectionEnterpriseService xzSecurityQualityInspectionEnterpriseService;
private PlainSelect dataScopeFilterByProject(PlainSelect plainSelect, UserInfo user, Object obj) {
JSONObject jo = (JSONObject) obj;
Object parameter = jo.get("parameter");
@ -213,6 +220,20 @@ public class DataScopeHandler implements DataPermissionHandler {
}
}
//安全隐患
HashMap<String, String> xzSecurityTables = new HashMap<>();
xzSecurityTables.put("xz_security_quality_inspection_record", "id");
List<String> filterXzSecurityEnterprises = getNeedFilterLeftExpression(plainSelect, xzSecurityTables, ds);
if (CollUtil.isNotEmpty(filterXzSecurityEnterprises)) {
List<String> enterpriseIds = userEnterpriseService.getEnterpriseIdsIfSubProject();
enterpriseIds.add("0");
List<Long> rids = xzSecurityQualityInspectionEnterpriseService.list(new LambdaQueryWrapper<XzSecurityQualityInspectionEnterprise>()
.in(XzSecurityQualityInspectionEnterprise::getEnterpriseId, enterpriseIds)).stream().map(XzSecurityQualityInspectionEnterprise::getInspectionId).collect(Collectors.toList());
for (Long rid : rids) {
inExpression(rid.toString(), enterpriseIds, plainSelect);
}
}
} else if (Objects.equals(user.getAccountType(), SystemUserAccountTypeEnum.SUPPLIER.getValue())) {
List<String> filterEnterprises = getNeedFilterLeftExpression(plainSelect, getFieldEnterpriseTables(), ds);
EnterpriseInfo ei = enterpriseInfoMapper.getXzSupplierByUserId(SecurityUtils.getUser().getUserId());

View File

@ -96,8 +96,8 @@ public class HiddenDangerStatisticsAndAnalysisController {
@ApiOperation(value = "各专业隐患小类风险走势图", notes = "各专业隐患小类风险走势图", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "body", required = true, dataType = "String"),
@ApiImplicitParam(name = "startDate", value = "开始时间,yyyy-MM-dd", paramType = "body", dataType = "String", required = true),
@ApiImplicitParam(name = "endDate", value = "结束时间,yyyy-MM-dd", paramType = "body", dataType = "String", required = true),
@ApiImplicitParam(name = "startMonth", value = "开始时间,格式2020-08", dataType = "String", paramType = "body", required = true),
@ApiImplicitParam(name = "endMonth", value = "结束时间,格式2020-08", dataType = "String", paramType = "body", required = true),
@ApiImplicitParam(name = "dutyMajor", value = "责任专业(字典值)", dataType = "String", paramType = "body", required = false),
@ApiImplicitParam(name = "smallId", value = "小类的id", dataType = "String", paramType = "body", required = false),
})

View File

@ -172,7 +172,12 @@ public class XzSecurityDangerFieldController {
List<XzSecurityDangerFieldConfigVo> configVos = xzSecurityDangerFieldConfigService.queryList(param);
List<XzSecurityDangerFieldVo> list = xzSecurityDangerFieldService.queryList(param);
if (Objects.equals(companyProjectType, 2) && (CollUtil.isEmpty(list) || Objects.equals(CollUtil.getFirst(configVos).getEnableProject(), 0))) {
//项目不存在查询企业配置
list = getCompanyConfig(param, sn);
for (XzSecurityDangerFieldVo fieldVo : list) {
fieldVo.setCompanyProjectType(companyProjectType);
fieldVo.setSn(sn);
}
}
return Result.success(list);
}

View File

@ -1,7 +1,5 @@
package com.zhgd.xmgl.modules.xz.security.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ReflectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhgd.annotation.OperLog;
@ -27,7 +25,6 @@ import springfox.documentation.annotations.ApiIgnore;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
/**
@ -153,6 +150,7 @@ public class XzSecurityDangerReviewVerifyController {
.eq(XzSecurityDangerReviewVerify::getCompanyProjectType, dto.getCompanyProjectType())
);
if (reviewVerifyDb == null) {
dto.setId(null);
xzSecurityDangerReviewVerifyService.save(dto);
} else {
dto.setId(reviewVerifyDb.getId());

View File

@ -100,6 +100,16 @@ public class XzSecurityDangerTypeRecordController {
return Result.success(dangerTypeRecordService.getBigList(projectSn));
}
@ApiOperation(value = "安全管理——安全问题库,获取小项列表", notes = "安全管理——安全问题库,获取小项列表")
@ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String"),
@ApiImplicitParam(name = "recordStatus", value = "记录状态0 启用1禁用", paramType = "body", required = false, dataType = "String"),
})
@GetMapping(value = "/getSmallList")
public Result<List<XzSecurityDangerTypeRecord>> getSmallList(@RequestParam Map<String, Object> map) {
return Result.success(dangerTypeRecordService.getSmallList(map));
}
/**
* 分页列表查询
*

View File

@ -301,4 +301,9 @@ public class XzSecurityQualityInspectionRecordDraft implements Serializable {
*/
@ApiModelProperty(value = "上报部门或班组名称")
private String reportDepartmentTeamName;
/**
* 1已生成隐患0未生成隐患
*/
@ApiModelProperty(value = "1已生成隐患0未生成隐患")
private Integer isGenerate;
}

View File

@ -81,4 +81,5 @@ public interface XzSecurityDangerTypeRecordMapper extends BaseMapper<XzSecurityD
*/
List<XzSecurityDangerTypeRecord> getTypeRecordList(Map<String, Object> param);
List<XzSecurityDangerTypeRecord> getSmallList(Map<String, Object> param);
}

View File

@ -94,6 +94,34 @@
ORDER BY a.parent_id, a.order_sort
</select>
<select id="getSmallList" resultType="com.zhgd.xmgl.modules.xz.security.entity.XzSecurityDangerTypeRecord">
SELECT a.id,
a.`code`,
a.create_time,
a.danger_name,
a.`level`,
a.order_sort,
a.parent_id,
a.remark,
IFNULL(b.record_status, 0) record_status
from xz_security_danger_type_record a
INNER JOIN company p1 ON a.sn = p1.headquarters_sn
INNER JOIN project p2 ON p2.company_sn = p1.company_sn
LEFT JOIN (SELECT *
FROM xz_security_project_danger_type_disable
WHERE project_sn = #{projectSn}
and type = 1) b ON b.danger_type_id = a.id
WHERE a.level = 2
and p2.project_sn = #{projectSn}
<if test="recordStatus == '0'.toString()">
and b.record_status IS null
</if>
<if test="recordStatus == '1'.toString()">
and b.record_status IS NOT null
</if>
ORDER BY a.parent_id, a.order_sort
</select>
<update id="updateDangerTypeRecordFullName">
UPDATE xz_security_danger_type_record
SET full_name=REPLACE(full_name, #{oldFullName}, #{newFullName})

View File

@ -261,6 +261,9 @@
LEFT JOIN (SELECT quality_id,MAX(rectify_time) as rectify_time FROM xz_security_quality_rectify_record GROUP BY
quality_id) r ON r.quality_id = t.id
WHERE 1=1
<if test="param.id != null and param.id != ''">
and t.id = #{param.id}
</if>
<if test="param.projectSn != null and param.projectSn != ''">
and t.project_sn = #{param.projectSn}
</if>
@ -312,13 +315,15 @@
and t.change_id = #{param.changeId}
</if>
<if test="param.reviewId != null and param.reviewId != ''">
and t.review_id = #{param.reviewId}
and t.id in (select inspection_id from xz_security_quality_inspection_review where review_id =
#{param.reviewId})
</if>
<if test="param.isDangerousEngineering == '1'.toString()">
and t.engineering_id is not null
</if>
<if test="param.verifyManId != null and param.verifyManId != ''">
and t.verify_man_id = #{param.verifyManId}
and t.id in (select inspection_id from xz_security_quality_inspection_verify where verify_id =
#{param.verifyManId})
</if>
<if test="param.creatorId != null and param.creatorId != ''">
and t.creator_id = #{param.creatorId}
@ -328,8 +333,10 @@
</if>
<if test="param.operatorId != null and param.operatorId != ''">
and ((t.change_id = #{param.operatorId} and t.status = 2) or
(t.review_id = #{param.operatorId} and t.status = 3) or
(t.verify_man_id = #{param.operatorId} and t.status = 4))
(t.id in (select inspection_id from xz_security_quality_inspection_review where review_id =
#{param.operatorId}) and t.status = 3) or
(t.id in (select inspection_id from xz_security_quality_inspection_verify where verify_id =
#{param.operatorId}) and t.status = 4))
</if>
<if test="param.level != null and param.level != ''">
and t.level = #{param.level}
@ -1082,7 +1089,7 @@
<if test="endMonth != null and endMonth != ''">
and create_time <![CDATA[<=]]> concat(#{endMonth},'-31 23:59:59')
</if>
group by priority_name_dic, x
group by priority_name_dic, x_name
</select>
@ -1148,11 +1155,11 @@
join xz_security_danger_type_record t2 on t.id=r.danger_type_id
where r.project_sn = #{projectSn}
and t2.level = 2
<if test="startDate != null and startDate != ''">
and r.create_time >= #{startDate}
<if test="startMonth != null and startMonth != ''">
and r.create_time <![CDATA[>=]]> concat(#{startMonth},'-01 00:00:00')
</if>
<if test="endDate != null and endDate != ''">
and r.create_time <![CDATA[<=]]> concat(#{endDate},' 23:59:59')
<if test="endMonth != null and endMonth != ''">
and r.create_time <![CDATA[<=]]> concat(#{endMonth},'-31 23:59:59')
</if>
<if test="dutyMajor != null and dutyMajor != ''">
and r.duty_major = #{dutyMajor}

View File

@ -87,4 +87,6 @@ public interface IXzSecurityDangerTypeRecordService extends IService<XzSecurityD
List<XzSecurityDangerTypeRecord> getTypeRecordList(Map<String, Object> param);
void add(XzSecurityDangerTypeRecord xzSecurityDangerTypeRecord);
List<XzSecurityDangerTypeRecord> getSmallList(Map<String, Object> param);
}

View File

@ -152,7 +152,20 @@ public class XzSecurityDangerReviewVerifyServiceImpl extends ServiceImpl<XzSecur
}
}
}
return CollUtil.getFirst(list);
XzSecurityDangerReviewVerifyVo vo = CollUtil.getFirst(list);
if (Objects.isNull(vo)) {
//为空默认为开
vo = new XzSecurityDangerReviewVerifyVo();
vo.setReviewRoleName(null);
vo.setVerifyRoleName(null);
vo.setEnableProjectForReview(0);
vo.setEnableProjectForVerify(0);
vo.setEnableReview(1);
vo.setEnableVerify(1);
}
vo.setSn(sn);
vo.setCompanyProjectType(companyProjectType);
return vo;
}
/**

View File

@ -334,6 +334,11 @@ public class XzSecurityDangerTypeRecordServiceImpl extends ServiceImpl<XzSecurit
this.save(xzSecurityDangerTypeRecord);
}
@Override
public List<XzSecurityDangerTypeRecord> getSmallList(Map<String, Object> param) {
return baseMapper.getSmallList(param);
}
private Integer getLevel(String level) {
if (level == null) {
return null;

View File

@ -55,12 +55,14 @@ public class XzSecurityQualityInspectionRecordDraftServiceImpl extends ServiceIm
SystemUser user = systemUserService.getById(draft.getInspectManId());
if (user.getWorkerId() != null) {
WorkerInfo worker = workerInfoService.queryById(user.getWorkerId() + "");
if (worker != null) {
draft.setReportEnterprise(worker.getEnterpriseId());
draft.setReportDepartmentTeamId(Objects.equals(worker.getPersonType(), WorkerInfoPersonTypeEnum.LW.getValue()) ? worker.getTeamId() : worker.getDepartmentId());
draft.setReportPersonType(worker.getPersonType());
draft.setReportEnterpriseName(worker.getEnterpriseName());
draft.setReportDepartmentTeamName(Objects.equals(worker.getPersonType(), WorkerInfoPersonTypeEnum.LW.getValue()) ? worker.getTeamName() : worker.getDepartmentName());
}
}
this.save(draft);
}
}

View File

@ -488,6 +488,7 @@ public class XzSecurityQualityInspectionRecordServiceImpl extends ServiceImpl<Xz
eids.add("0");
String enterpriseNames = enterpriseInfoService.list(new LambdaQueryWrapper<EnterpriseInfo>()
.in(EnterpriseInfo::getId, eids)).stream().map(EnterpriseInfo::getEnterpriseName).collect(Collectors.joining(","));
record.setId(null);
xzSecurityQualityInspectionRecordMapper.insert(record);
saveBindData(record);
if (Objects.equals(record.getRecordType(), XzSecurityQualityInspectionRecordRecordTypeEnum.DANGER.getValue()) && Objects.equals(record.getStatus(), XzSecurityQualityInspectionRecordStatusEnum.NOT_RECTIFIED.getValue())) {
@ -1212,6 +1213,23 @@ public class XzSecurityQualityInspectionRecordServiceImpl extends ServiceImpl<Xz
item.setData(data);
return item;
}).collect(Collectors.toList());
SeriesItem item = new SeriesItem();
item.setName("全部");
List<Number> allData = new ArrayList<>();
boolean first = true;
for (SeriesItem seriesItem : seriesItems) {
List<Number> data = seriesItem.getData();
if (first) {
allData.addAll(data);
first = false;
} else {
for (int i = 0; i < allData.size(); i++) {
allData.set(i, NumberUtil.add(allData.get(i), data.get(i)));
}
}
}
item.setData(allData);
seriesItems.add(0, item);
chartDataVo.setSeries(seriesItems);
return chartDataVo;
}
@ -1290,7 +1308,7 @@ public class XzSecurityQualityInspectionRecordServiceImpl extends ServiceImpl<Xz
));
String headquartersSn = companyService.getHeadquartersSnByProjectSn(projectSn);
List<SeriesItem> seriesItems = xzSecurityDangerTypeRecordService.list(new LambdaQueryWrapper<XzSecurityDangerTypeRecord>()
.eq(XzSecurityDangerTypeRecord::getLevel, 2)
.eq(XzSecurityDangerTypeRecord::getLevel, 1)
.eq(XzSecurityDangerTypeRecord::getSn, headquartersSn)
).stream().map(o -> {
SeriesItem item = new SeriesItem();
@ -1312,11 +1330,10 @@ public class XzSecurityQualityInspectionRecordServiceImpl extends ServiceImpl<Xz
chartDataVo.setX(dateTimeStrList);
List<ChartItemBo> all = baseMapper.countSmallByMonth(map);
Map<String, Number> allMap = all.stream()
.filter(ob -> Objects.nonNull(ob.getYVal()))
.collect(Collectors.toMap(
ChartItemBo::getXName,
item -> {
return item.getYVal();
}
ChartItemBo::getYVal
));
List<SeriesItem> seriesItems = new ArrayList<>();
SeriesItem item = new SeriesItem();

View File

@ -161,7 +161,8 @@ public class XzSecurityQualityRectifyRecordServiceImpl extends ServiceImpl<XzSec
//已整改时候需要复查
if (Objects.equals(record.getStatus(), XzSecurityQualityRectifyRecordStatusEnum.RECTIFIED.getValue())) {
XzSecurityQualityRectifyRecordTypeEnum recordTypeEnum = xzSecurityDangerReviewVerifyService.getNextStepOnSuccess(record.getType(), tempRecord.getProjectSn());
if (Objects.isNull(recordTypeEnum) || Objects.equals(recordTypeEnum.getValue(), XzSecurityQualityRectifyRecordTypeEnum.REVIEW.getValue())) {
if (Objects.nonNull(recordTypeEnum)) {
if (Objects.equals(recordTypeEnum.getValue(), XzSecurityQualityRectifyRecordTypeEnum.REVIEW.getValue())) {
tempRecord.setStatus(3);
for (String rid : StrUtil.split(tempRecord.getReviewIds(), ",")) {
noticeService.addUserNoticeAndApp(Long.valueOf(rid), "安全管理整改结果待复查", "您有一条安全检查的整改结果需要复查,请及时查看。", "10",
@ -171,8 +172,9 @@ public class XzSecurityQualityRectifyRecordServiceImpl extends ServiceImpl<XzSec
}
qualityInspectionRecordService.noticeBigScreen("31", tempRecord, record.getRectifyTime(), StrUtil.format("{}整改了{}的一条{}安全隐患问题,请注意监督复查!",
enterpriseNames, tempRecord.getRegionName(), StrUtil.subAfter(tempRecord.getDangerItemContent(), "/", true)));
} else if (Objects.equals(recordTypeEnum.getValue(), XzSecurityQualityRectifyRecordTypeEnum.VERIFY.getValue())) {
} else {
goToVerify(tempRecord, enterpriseNames, record.getRectifyTime(), "整改");
}
} else {
goToPass(record, tempRecord, enterpriseNames, "整改");
}
@ -183,7 +185,7 @@ public class XzSecurityQualityRectifyRecordServiceImpl extends ServiceImpl<XzSec
//复查合格时候需要核验
if (Objects.equals(record.getStatus(), XzSecurityQualityRectifyRecordStatusEnum.REVIEW.getValue())) {
XzSecurityQualityRectifyRecordTypeEnum recordTypeEnum = xzSecurityDangerReviewVerifyService.getNextStepOnSuccess(record.getType(), tempRecord.getProjectSn());
if (Objects.isNull(recordTypeEnum) || Objects.equals(recordTypeEnum.getValue(), XzSecurityQualityRectifyRecordTypeEnum.VERIFY.getValue())) {
if (Objects.nonNull(recordTypeEnum) && Objects.equals(recordTypeEnum.getValue(), XzSecurityQualityRectifyRecordTypeEnum.VERIFY.getValue())) {
goToVerify(tempRecord, enterpriseNames, record.getRectifyTime(), "复查");
} else {
goToPass(record, tempRecord, enterpriseNames, "复查");