package com.rzyc.controller; import com.common.utils.StringUtils; import com.common.utils.TypeConversion; import com.common.utils.model.*; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.rzyc.advice.LoginAuth; import com.rzyc.bean.risk.*; import com.rzyc.enums.DelState; import com.rzyc.enums.ResourceRiskLevel; import com.rzyc.model.RkRiskType; import com.rzyc.model.RkSources; import com.rzyc.model.ent.SysEnterprise; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.commons.beanutils.BeanUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author dong * @date 2022-09-20 17:40 * @Version V1.0 */ @Api(tags = "重大危险源") @CrossOrigin("*") @RequestMapping("risk") @RestController @Validated public class RiskController extends BaseController { /** * 企业重大危险源新增修改 * * @version v1.0 * @author dong * @date 2022/8/2 9:34 */ @ApiOperation(value = "重大危险源新增修改", notes = "企业重大危险源新增修改") @PostMapping("/sourcesAdd") public SingleResult sourcesAdd(@Valid SourcesAddDto sourcesAddDto) throws Exception { SingleResult result = new SingleResult<>(); String userId = getUserId(); RkSources sources = new RkSources(); BeanUtils.copyProperties(sources, sourcesAddDto); sources.setModified(userId); sources.setModifyTime(new Date()); SysEnterprise enterprise = sysEnterpriseMapper.selectByPrimaryKey(sourcesAddDto.getEnterpriseId()); if (null != enterprise) { sources.setEntName(enterprise.getEntname()); sources.setOrgcode(enterprise.getOrgcode()); sources.setStreetCode(enterprise.getStreetCode()); sources.setCommunityCode(enterprise.getCommunityCode()); //最新工作单元行业id sources.setBaseInclassId(enterprise.getWorkClassId()); } //计算风险等级 Integer riskGrade = getRiskLevel(sources.getPossibility(), sources.getSeriousness()); sources.setRiskGrade(riskGrade); RkSources rkSources = rkSourcesMapper.selectById(sources.getSourceId()); if (null != rkSources) { rkSourcesMapper.updateById(sources); } else { sources.setXindex(""); sources.setYindex(""); sources.setDelState(DelState.NOT_DEL.getState()); sources.setCreated(userId); sources.setCreateTime(new Date()); rkSourcesMapper.insert(sources); } return result; } /** * @param possibility 可能性 * @param seriousness 后果严重性 * @return * @throws Exception */ public Integer getRiskLevel(Integer possibility, Integer seriousness) throws Exception { Integer riskLevel = ResourceRiskLevel.BLUE.getLevel(); //风险等级 Map riskLevelMap = new HashMap<>(); riskLevelMap.put("1-1", 1); riskLevelMap.put("1-2", 1); riskLevelMap.put("1-3", 1); riskLevelMap.put("1-4", 2); riskLevelMap.put("1-5", 3); riskLevelMap.put("2-1", 1); riskLevelMap.put("2-2", 1); riskLevelMap.put("2-3", 2); riskLevelMap.put("2-4", 3); riskLevelMap.put("2-5", 4); riskLevelMap.put("3-1", 1); riskLevelMap.put("3-2", 1); riskLevelMap.put("3-3", 2); riskLevelMap.put("3-4", 3); riskLevelMap.put("3-5", 4); riskLevelMap.put("4-1", 2); riskLevelMap.put("4-2", 2); riskLevelMap.put("4-3", 3); riskLevelMap.put("4-4", 4); riskLevelMap.put("4-5", 4); riskLevelMap.put("5-1", 2); riskLevelMap.put("5-2", 3); riskLevelMap.put("5-3", 4); riskLevelMap.put("5-4", 4); riskLevelMap.put("5-5", 4); //风险等级 String key = possibility + "-" + seriousness; if (null != riskLevelMap.get(key)) { riskLevel = riskLevelMap.get(key); } return riskLevel; } /** * 删除危险源 * * @version v1.0 * @author dong * @date 2022/8/2 13:33 */ @ApiOperation(value = "删除危险源", notes = "删除危险源") @PostMapping("/sourcesDel") public SingleResult sourcesDel(@Valid SourcesDelDto sourcesDelDto) throws Exception { SingleResult result = new SingleResult<>(); if (StringUtils.isNotBlank(sourcesDelDto.getSourceIds())) { String[] stts = sourcesDelDto.getSourceIds().split(","); for (String str : stts) { RkSources sources = new RkSources(); sources.setSourceId(str); sources.setDelState(DelState.DELETE.getState()); rkSourcesMapper.updateById(sources); } } return result; } /** * 重大危险源类型 * * @version v1.0 * @author dong * @date 2022/8/2 9:44 */ @ApiOperation(value = "类型 1、风险源类型 2、事故类型", notes = "类型 1、风险源类型 2、事故类型") @GetMapping("/riskType/{type}") @ApiImplicitParam(name = "type", value = "类型 1、风险源类型 2、事故类型", required = true) public MultiResult riskType(@PathVariable Integer type) throws Exception { MultiResult result = new MultiResult<>(); List riskTypes = rkRiskTypeMapper.findByClassId(type); result.setData(riskTypes); return result; } /** * 企业重大危险源分页 * * @version v1.0 * @author dong * @date 2022/8/2 11:49 */ @ApiOperation(value = "企业重大危险源分页", notes = "企业重大危险源分页") @GetMapping("/sourcesEntPage") public SingleResult> sourcesEntPage(@Valid SourcesPageDto sourcesPageDto) throws Exception { SingleResult> result = new SingleResult<>(); String condition = TypeConversion.getCondition(sourcesPageDto.getCondition()); PageHelper.startPage(sourcesPageDto.getPage(), sourcesPageDto.getPageSize()); Page page = (Page) rkSourcesMapper.sourcesList(condition, sourcesPageDto.getEnterpriseId(), sourcesPageDto.getRiskGrade()); Pager pager = new Pager<>(); getDatePage(pager, page); result.setData(pager); return result; } /** * 需要标记的危险源列表 * * @version v1.0 * @author dong * @date 2022/8/2 13:33 */ @ApiOperation(value = "需要标记的危险源列表", notes = "需要标记的危险源列表") @GetMapping("/sourcesNeedSign/{enterpriseId}") public MultiResult sourcesNeedSign(@PathVariable String enterpriseId) throws Exception { MultiResult result = new MultiResult<>(); List sources = rkSourcesMapper.findByIndex(enterpriseId); result.setData(sources); return result; } /** * 已经标记的危险源列表 * * @version v1.0 * @author dong * @date 2022/8/2 13:33 */ @ApiOperation(value = "已经标记的危险源列表", notes = "已经标记的危险源列表") @GetMapping("/sourcesSigned/{enterpriseId}") @ApiImplicitParams({ @ApiImplicitParam(name = "enterpriseId", value = "企业id"), @ApiImplicitParam(name = "documentId", value = "文件id") }) public MultiResult sourcesSigned(@PathVariable String enterpriseId, String documentId) throws Exception { MultiResult result = new MultiResult<>(); List sources = rkSourcesMapper.signedSource(enterpriseId, documentId); result.setData(sources); return result; } /** * 危险源标记 * * @version v1.0 * @author dong * @date 2022/8/2 13:33 */ @ApiOperation(value = "危险源标记", notes = "危险源标记") @PostMapping("/sourcesSign") public SingleResult sourcesSign(@Valid SourcesSignDto sourcesSignDto) throws Exception { SingleResult result = new SingleResult<>(); RkSources sources = new RkSources(); BeanUtils.copyProperties(sources, sourcesSignDto); rkSourcesMapper.updateById(sources); return result; } /** * 删除危险源标记 * * @version v1.0 * @author dong * @date 2022/8/2 13:33 */ @ApiOperation(value = "删除危险源标记", notes = "删除危险源标记") @PostMapping("/sourcesSignDel/{sourceId}") @ApiImplicitParam(name = "sourceId", value = "危险源id", required = true) public SingleResult sourcesSignDel(@PathVariable String sourceId) throws Exception { SingleResult result = new SingleResult<>(); rkSourcesMapper.changeIndex(sourceId); return result; } /** * 危险源详情 * * @version v1.0 * @author dong * @date 2022/8/2 13:33 */ @ApiOperation(value = "危险源详情", notes = "危险源详情") @PostMapping("/sourcesDetail/{sourceId}") @ApiImplicitParam(name = "sourceId", value = "危险源id", required = true) public SingleResult sourcesDetail(@PathVariable String sourceId) throws Exception { SingleResult result = new SingleResult<>(); RkSources sources = rkSourcesMapper.selectById(sourceId); if (null != sources) { //风险源分类 RkRiskType riskType = rkRiskTypeMapper.selectById(sources.getSourceId()); if (null != riskType) { sources.setSourceName(riskType.getName()); } //事故类型 RkRiskType rkRiskType = rkRiskTypeMapper.selectById(sources.getTypeId()); if (null != rkRiskType) { sources.setTypeName(rkRiskType.getName()); } } result.setData(sources); return result; } }