Pārlūkot izejas kodu

安全风险监控

master
vecāks
revīzija
95347b1ad4
4 mainītis faili ar 202 papildinājumiem un 17 dzēšanām
  1. +23
    -12
      pmapi/src/main/java/com/ningdatech/pmapi/safety/controller/SafetyRiskController.java
  2. +173
    -5
      pmapi/src/main/java/com/ningdatech/pmapi/safety/manage/SafetyRiskManage.java
  3. +3
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/safety/model/dto/PersonSafetyInfoDTO.java
  4. +3
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/safety/model/dto/SupplierSafetyQualificationDTO.java

+ 23
- 12
pmapi/src/main/java/com/ningdatech/pmapi/safety/controller/SafetyRiskController.java Parādīt failu

@@ -2,16 +2,20 @@ package com.ningdatech.pmapi.safety.controller;

import com.alibaba.fastjson.JSONObject;
import com.ningdatech.basic.model.PageVo;
import com.ningdatech.log.annotation.WebLog;
import com.ningdatech.pmapi.projectlib.model.req.ProjectListReq;
import com.ningdatech.pmapi.safety.manage.SafetyRiskManage;
import com.ningdatech.pmapi.safety.model.dto.PersonSafetyInfoDTO;
import com.ningdatech.pmapi.safety.model.dto.SupplierSafetyQualificationDTO;
import com.ningdatech.pmapi.safety.model.vo.ProjectMonitorVO;
import com.ningdatech.pmapi.safety.model.vo.SafetyMonitorVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;

/**
* @Classname SafetyRiskController
@@ -33,17 +37,24 @@ public class SafetyRiskController {
return safetyRiskManage.personMonitorList(req);
}

@GetMapping("/person-monitor/detail/{projectCode}")
@ApiOperation("安全人员监控详情")
public ProjectMonitorVO personMonitorDetail(@PathVariable String projectCode) {
return safetyRiskManage.personMonitorDetail(projectCode);
@PostMapping("/person-monitor/save")
@ApiOperation("安全人员监控信息保存")
@WebLog("安全人员监控信息保存")
public String personMonitorSave(@Valid @RequestBody List<PersonSafetyInfoDTO> dtos) {
return safetyRiskManage.personMonitorSave(dtos);
}

@GetMapping("/supplier-safety-qualification/save")
@ApiOperation("供应商安全资质保存")
@WebLog("供应商安全资质保存")
public String supplierSafetyQualificationSave(@Valid @RequestBody List<SupplierSafetyQualificationDTO> dtos) {
return safetyRiskManage.supplierSafetyQualificationSave(dtos);
}

@GetMapping("/operation-monitor/list")
@ApiOperation("安全运行监控列表")
public PageVo<ProjectMonitorVO> operationnMonitorList(ProjectListReq req) {
return safetyRiskManage.operationnMonitorList(req);
@GetMapping("/detail/{projectCode}")
@ApiOperation("安全人员管控详情")
public SafetyMonitorVO personMonitorDetail(@PathVariable String projectCode) {
return safetyRiskManage.personMonitorDetail(projectCode);
}

@GetMapping("/operation-monitor/search/{projectCode}")


+ 173
- 5
pmapi/src/main/java/com/ningdatech/pmapi/safety/manage/SafetyRiskManage.java Parādīt failu

@@ -1,11 +1,41 @@
package com.ningdatech.pmapi.safety.manage;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ningdatech.basic.function.VUtils;
import com.ningdatech.basic.model.PageVo;
import com.ningdatech.basic.util.CollUtils;
import com.ningdatech.pmapi.common.constant.BizConst;
import com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum;
import com.ningdatech.pmapi.projectlib.model.entity.Project;
import com.ningdatech.pmapi.projectlib.model.req.ProjectListReq;
import com.ningdatech.pmapi.projectlib.service.IProjectService;
import com.ningdatech.pmapi.safety.model.dto.PersonSafetyInfoDTO;
import com.ningdatech.pmapi.safety.model.dto.SupplierSafetyQualificationDTO;
import com.ningdatech.pmapi.safety.model.entity.PersonSafetyInfo;
import com.ningdatech.pmapi.safety.model.entity.SupplierSafetyQualification;
import com.ningdatech.pmapi.safety.model.vo.PersonSafetyInfoVO;
import com.ningdatech.pmapi.safety.model.vo.ProjectMonitorVO;
import com.ningdatech.pmapi.safety.model.vo.SafetyMonitorVO;
import com.ningdatech.pmapi.safety.model.vo.SupplierSafetyQualificationVO;
import com.ningdatech.pmapi.safety.service.IPersonSafetyInfoService;
import com.ningdatech.pmapi.safety.service.ISupplierSafetyQualificationService;
import com.ningdatech.pmapi.user.security.auth.model.UserInfoDetails;
import com.ningdatech.pmapi.user.util.LoginUserUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;

/**
* @Classname SafetyRiskManage
* @Description
@@ -13,22 +43,160 @@ import org.springframework.stereotype.Component;
* @Author PoffyZhang
*/
@Component
@Slf4j
@AllArgsConstructor
public class SafetyRiskManage {

private final IProjectService projectService;

private final ISupplierSafetyQualificationService supplierSafetyQualificationService;

private final IPersonSafetyInfoService personSafetyInfoService;

/**
* 列表
* @param req
* @return
*/
public PageVo<ProjectMonitorVO> personMonitorList(ProjectListReq req) {
return null;
LambdaQueryWrapper<Project> query = Wrappers.lambdaQuery(Project.class)
.eq(Project::getNewest, Boolean.TRUE)
.ge(Project::getStatus, ProjectStatusEnum.UNDER_CONSTRUCTION.getCode())
.ne(Project::getStatus, ProjectStatusEnum.OPERATION.getCode())
.like(StringUtils.isNotBlank(req.getProjectName()),Project::getProjectName,req.getProjectName())
.like(StringUtils.isNotBlank(req.getBuildOrgName()),Project::getBuildOrgName,req.getBuildOrgName());
checkAuth(query,LoginUserUtil.loginUserDetail());
Page<Project> page = projectService.page(req.page(), query);
long total;
if ((total = page.getTotal()) == 0) {
return PageVo.empty();
}
List<ProjectMonitorVO> records = CollUtils.convert(page.getRecords(),
p -> BeanUtil.copyProperties(p,ProjectMonitorVO.class));
return PageVo.of(records, total);
}

public ProjectMonitorVO personMonitorDetail(String projectCode) {
return null;
/**
* 权限控制
* @param query
* @param user
*/
private void checkAuth(LambdaQueryWrapper<Project> query, UserInfoDetails user) {
//如果是超管
if(user.getSuperAdmin()){
log.info(user.getUsername() + " 是超管,可以看所有项目");
}else if(user.getRegionAdmin()){
//如果是区域管理员
log.info(user.getUsername() + " 是区管,可以看本区域" + user.getRegionCode() + "项目");
query.eq(Project::getAreaCode,user.getRegionCode());
}else if(user.getIsOrgAdmin()){
//单位管理员
log.info(user.getUsername() + " 是单位管理员,可以看单位 " + user.getEmpPosUnitName() + " 项目");
query.eq(Project::getBuildOrgCode,user.getEmpPosUnitCode());
}else{
//其它角色全都看不见
query.eq(Project::getId,0L);
}
}

public PageVo<ProjectMonitorVO> operationnMonitorList(ProjectListReq req) {
return null;
public SafetyMonitorVO personMonitorDetail(String projectCode) {
SafetyMonitorVO vo = new SafetyMonitorVO();
Project project = projectService.getOne(Wrappers.lambdaQuery(Project.class)
.eq(Project::getNewest, Boolean.TRUE)
.eq(Project::getProjectCode, projectCode)
.last(BizConst.LIMIT_1));

if(Objects.isNull(project)){
return null;
}

List<SupplierSafetyQualification> ssq = supplierSafetyQualificationService.list(Wrappers.lambdaQuery(SupplierSafetyQualification.class)
.eq(SupplierSafetyQualification::getProjectCode, projectCode));
if(CollUtil.isNotEmpty(ssq)){
vo.setSupplierSafetyQualification(ssq.stream()
.map(s -> BeanUtil.copyProperties(s, SupplierSafetyQualificationVO.class))
.collect(Collectors.toList()));
}

List<PersonSafetyInfo> psi = personSafetyInfoService.list(Wrappers.lambdaQuery(PersonSafetyInfo.class)
.eq(PersonSafetyInfo::getProjectCode, projectCode));
if(CollUtil.isNotEmpty(psi)){
vo.setPersonSafetyInfo(psi.stream()
.map(p -> BeanUtil.copyProperties(p, PersonSafetyInfoVO.class))
.collect(Collectors.toList()));
}

return vo;
}

public JSONObject operationnMonitorSearch(String projectCode) {
return null;
}

/**
* 保存 供应商安全资质
* @param dtos
* @return
*/
public String supplierSafetyQualificationSave(List<SupplierSafetyQualificationDTO> dtos) {
if(CollUtil.isEmpty(dtos)){
return "数据为空";
}

UserInfoDetails user = LoginUserUtil.loginUserDetail();

Integer sucessNum = 0;
for(SupplierSafetyQualificationDTO dto : dtos){
String projectCode = dto.getProjectCode();
Project project = projectService.getOne(Wrappers.lambdaQuery(Project.class)
.eq(Project::getNewest, Boolean.TRUE)
.eq(Project::getProjectCode, projectCode)
.last(BizConst.LIMIT_1));

VUtils.isTrue(Objects.isNull(project)).throwMessage("此项目并不存在!");

SupplierSafetyQualification entity = BeanUtil.copyProperties(dto, SupplierSafetyQualification.class);
entity.setCreateBy(user.getUsername());
entity.setCreateOn(LocalDateTime.now());
entity.setProjectId(project.getId());
entity.setUpdateBy(user.getUsername());
entity.setUpdateOn(LocalDateTime.now());
if(supplierSafetyQualificationService.save(entity)){
sucessNum ++;
}
}

return "保存成功" + sucessNum + "条";
}

public String personMonitorSave(List<PersonSafetyInfoDTO> dtos) {
if(CollUtil.isEmpty(dtos)){
return "数据为空";
}

UserInfoDetails user = LoginUserUtil.loginUserDetail();

Integer sucessNum = 0;
for(PersonSafetyInfoDTO dto : dtos){
String projectCode = dto.getProjectCode();
Project project = projectService.getOne(Wrappers.lambdaQuery(Project.class)
.eq(Project::getNewest, Boolean.TRUE)
.eq(Project::getProjectCode, projectCode)
.last(BizConst.LIMIT_1));

VUtils.isTrue(Objects.isNull(project)).throwMessage("此项目并不存在!");

PersonSafetyInfo entity = BeanUtil.copyProperties(dto, PersonSafetyInfo.class);
entity.setCreateBy(user.getUsername());
entity.setCreateOn(LocalDateTime.now());
entity.setProjectId(project.getId());
entity.setUpdateBy(user.getUsername());
entity.setUpdateOn(LocalDateTime.now());
if(personSafetyInfoService.save(entity)){
sucessNum ++;
}
}

return "保存成功" + sucessNum + "条";
}
}

+ 3
- 0
pmapi/src/main/java/com/ningdatech/pmapi/safety/model/dto/PersonSafetyInfoDTO.java Parādīt failu

@@ -22,6 +22,9 @@ public class PersonSafetyInfoDTO implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("主键")
private Long id;

@ApiModelProperty("项目编号")
@NotBlank(message = "项目编号不能为空")
private String projectCode;


+ 3
- 0
pmapi/src/main/java/com/ningdatech/pmapi/safety/model/dto/SupplierSafetyQualificationDTO.java Parādīt failu

@@ -21,6 +21,9 @@ public class SupplierSafetyQualificationDTO implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("主键")
private Long id;

@ApiModelProperty("项目编号")
@NotBlank(message = "项目编号不能为空")
private String projectCode;


Notiek ielāde…
Atcelt
Saglabāt