From 0eb850c8f1b9ee4268ae08d6a16cadac5b8def8c Mon Sep 17 00:00:00 2001 From: guo Date: Thu, 21 Dec 2023 15:52:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A6=95=E5=9B=BEbug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RtRiskInventoryConcreteController.java | 142 --------- .../RtRiskInventoryTypeController.java | 265 +++++++-------- .../rt/entity/RtRiskInventoryConcrete.java | 83 ----- .../rt/entity/RtRiskInventoryType.java | 159 +++++---- .../xmgl/modules/rt/entity/RtWorkTicket.java | 3 + .../dto/DepartmentRectifiedRankDto.java | 15 - .../mapper/RtRiskInventoryConcreteMapper.java | 25 -- .../rt/mapper/RtRiskInventoryTypeMapper.java | 22 +- .../xml/RtRiskInventoryConcreteMapper.xml | 34 -- .../mapper/xml/RtRiskInventoryTypeMapper.xml | 86 ----- .../IRtRiskInventoryTypeConcreteService.java | 22 -- .../service/IRtRiskInventoryTypeService.java | 22 +- ...tRiskInventoryTypeConcreteServiceImpl.java | 40 --- .../impl/RtRiskInventoryTypeServiceImpl.java | 301 +++--------------- .../resources/excel/风险清册导入模板 .xlsx | Bin 0 -> 11260 bytes 15 files changed, 254 insertions(+), 965 deletions(-) delete mode 100644 src/main/java/com/zhgd/xmgl/modules/rt/controller/RtRiskInventoryConcreteController.java delete mode 100644 src/main/java/com/zhgd/xmgl/modules/rt/entity/RtRiskInventoryConcrete.java delete mode 100644 src/main/java/com/zhgd/xmgl/modules/rt/entity/dto/DepartmentRectifiedRankDto.java delete mode 100644 src/main/java/com/zhgd/xmgl/modules/rt/mapper/RtRiskInventoryConcreteMapper.java delete mode 100644 src/main/java/com/zhgd/xmgl/modules/rt/mapper/xml/RtRiskInventoryConcreteMapper.xml delete mode 100644 src/main/java/com/zhgd/xmgl/modules/rt/service/IRtRiskInventoryTypeConcreteService.java delete mode 100644 src/main/java/com/zhgd/xmgl/modules/rt/service/impl/RtRiskInventoryTypeConcreteServiceImpl.java create mode 100644 src/main/resources/excel/风险清册导入模板 .xlsx diff --git a/src/main/java/com/zhgd/xmgl/modules/rt/controller/RtRiskInventoryConcreteController.java b/src/main/java/com/zhgd/xmgl/modules/rt/controller/RtRiskInventoryConcreteController.java deleted file mode 100644 index 6bbc0d251..000000000 --- a/src/main/java/com/zhgd/xmgl/modules/rt/controller/RtRiskInventoryConcreteController.java +++ /dev/null @@ -1,142 +0,0 @@ -package com.zhgd.xmgl.modules.rt.controller; - -import com.zhgd.annotation.OperLog; -import com.zhgd.jeecg.common.api.vo.Result; - -import com.zhgd.xmgl.modules.rt.entity.RtRiskInventoryConcrete; -import com.zhgd.xmgl.modules.rt.service.IRtRiskInventoryTypeConcreteService; -import com.zhgd.xmgl.util.MessageUtil; -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.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.Date; -import java.util.List; -import java.util.Map; - - -/** - * @Title: Controller - * @Description: 榕图-风险清册具体项 - * @author: pds - * @date: 2020-10-21 - * @version: V1.0 - */ -@RestController -@RequestMapping("/xmgl/rtRiskInventoryConcrete") -@Slf4j -@Api(tags = "榕图-风险清册具体项") -public class RtRiskInventoryConcreteController { - @Autowired - private IRtRiskInventoryTypeConcreteService rtRiskInventoryConcreteService; - - /** - * 分页列表查询 - * - * @return - */ - @ApiOperation(value = "列表查询榕图-风险安全库-作业风险及条件具体项信息", notes = "列表查询榕图-风险安全库-作业风险及条件具体项信息—子项信息", httpMethod = "POST") - @ApiImplicitParams({ - @ApiImplicitParam(name = "projectSn", value = "项目唯一标识", paramType = "query", required = true, dataType = "String"), - @ApiImplicitParam(name = "rtRiskInventoryTypeId", value = "榕图-风险安全库-作业类型、工序及部位ID", paramType = "榕图-风险安全库-作业类型、工序及部位ID", required = true, dataType = "String"), - @ApiImplicitParam(name = "recordStatus", value = "是否仅显示启用的,1是,0否", paramType = "query", required = false, dataType = "String"), - }) - @PostMapping(value = "/list") - public Result> selectRtRiskInventoryConcreteList(@RequestBody Map map) { - List pageList = rtRiskInventoryConcreteService.selectRtRiskInventoryConcreteList(map); - return Result.success(pageList); - } - - /** - * 分页列表查询 - * - * @return - */ - @ApiOperation(value = "列表查询榕图-风险安全库-作业风险及条件具体项信息", notes = "列表查询榕图-风险安全库-作业风险及条件具体项信息", httpMethod = "POST") - @ApiImplicitParams({ - @ApiImplicitParam(name = "rtRiskInventoryTypeId", value = "榕图-风险安全库-作业类型、工序及部位ID", paramType = "榕图-风险安全库-作业类型、工序及部位ID", required = true, dataType = "String"), - }) - @PostMapping(value = "/selectCompanyRtRiskInventoryConcreteList") - public Result> selectCompanyRtRiskInventoryConcreteList(@RequestBody Map map) { - List pageList = rtRiskInventoryConcreteService.selectCompanyRtRiskInventoryConcreteList(map); - return Result.success(pageList); - } - - /** - * 添加 - * - * @param rtRiskInventoryConcrete - * @return - */ - @OperLog(operModul = "质量管理", operType = "添加榕图-风险安全库-作业风险及条件具体项", operDesc = "添加榕图-风险安全库-作业风险及条件具体项信息") - @ApiOperation(value = "添加榕图-风险安全库-作业风险及条件具体项信息", notes = "添加榕图-风险安全库-作业风险及条件具体项信息", httpMethod = "POST") - @PostMapping(value = "/add") - public Result add(@RequestBody RtRiskInventoryConcrete rtRiskInventoryConcrete) { - Result result = new Result(); - try { - rtRiskInventoryConcrete.setCreateTime(new Date()); - rtRiskInventoryConcreteService.save(rtRiskInventoryConcrete); - result.successMsg(MessageUtil.get("addSucess")); - } catch (Exception e) { - e.printStackTrace(); - log.info(e.getMessage()); - result.error500(MessageUtil.get("failErr")); - } - return result; - } - - /** - * 编辑 - * - * @param rtRiskInventoryConcrete - * @return - */ - @OperLog(operModul = "质量管理", operType = "编辑榕图-风险安全库-作业风险及条件具体项", operDesc = "编辑榕图-风险安全库-作业风险及条件具体项信息") - @ApiOperation(value = "编辑榕图-风险安全库-作业风险及条件具体项信息", notes = "编辑榕图-风险安全库-作业风险及条件具体项信息", httpMethod = "POST") - @PostMapping(value = "/edit") - public Result edit(@RequestBody RtRiskInventoryConcrete rtRiskInventoryConcrete) { - Result result = new Result(); - RtRiskInventoryConcrete rtRiskInventoryConcreteEntity = rtRiskInventoryConcreteService.getById(rtRiskInventoryConcrete.getId()); - if (rtRiskInventoryConcreteEntity == null) { - result.error500(MessageUtil.get("notFindErr")); - } else { - boolean ok = rtRiskInventoryConcreteService.updateById(rtRiskInventoryConcrete); - - if (ok) { - result.successMsg(MessageUtil.get("editSucess")); - } - } - - return result; - } - - /** - * 通过id删除 - * - * @param - * @return - */ - @OperLog(operModul = "质量管理", operType = "删除榕图-风险安全库-作业风险及条件具体项", operDesc = "删除榕图-风险安全库-作业风险及条件具体项信息") - @ApiOperation(value = "删除榕图-风险安全库-作业风险及条件具体项信息", notes = "删除榕图-风险安全库-作业风险及条件具体项信息", httpMethod = "POST") - @ApiImplicitParam(name = "id", value = "榕图-风险安全库-作业风险及条件具体项ID", paramType = "query", required = true, dataType = "Integer") - @PostMapping(value = "/delete") - public Result delete(@RequestBody Map map) { - Result result = new Result(); - RtRiskInventoryConcrete rtRiskInventoryConcrete = rtRiskInventoryConcreteService.getById(MapUtils.getString(map, "id")); - if (rtRiskInventoryConcrete == null) { - result.error500(MessageUtil.get("notFindErr")); - } else { - boolean ok = rtRiskInventoryConcreteService.removeById(MapUtils.getString(map, "id")); - if (ok) { - result.successMsg(MessageUtil.get("deleteSucess")); - } - } - - return result; - } -} diff --git a/src/main/java/com/zhgd/xmgl/modules/rt/controller/RtRiskInventoryTypeController.java b/src/main/java/com/zhgd/xmgl/modules/rt/controller/RtRiskInventoryTypeController.java index 658dc4c67..c1b07102e 100644 --- a/src/main/java/com/zhgd/xmgl/modules/rt/controller/RtRiskInventoryTypeController.java +++ b/src/main/java/com/zhgd/xmgl/modules/rt/controller/RtRiskInventoryTypeController.java @@ -1,186 +1,139 @@ package com.zhgd.xmgl.modules.rt.controller; -import com.zhgd.annotation.OperLog; -import com.zhgd.jeecg.common.api.vo.Result; - import com.zhgd.xmgl.modules.rt.entity.RtRiskInventoryType; -import com.zhgd.xmgl.modules.rt.service.IRtRiskInventoryTypeConcreteService; import com.zhgd.xmgl.modules.rt.service.IRtRiskInventoryTypeService; -import com.zhgd.xmgl.util.MessageUtil; 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.poi.util.IOUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.core.io.ClassPathResource; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; +import io.swagger.annotations.ApiImplicitParams; + +import java.util.HashMap; + +import springfox.documentation.annotations.ApiIgnore; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.net.URLEncoder; import java.util.List; -import java.util.Map; + +import com.zhgd.jeecg.common.api.vo.Result; +import org.apache.commons.collections.MapUtils; + +import org.simpleframework.xml.core.Validate; +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; /** * @Title: Controller * @Description: 榕图-风险清册类型 * @author: pds - * @date: 2020-10-21 + * @date: 2023-12-21 * @version: V1.0 */ @RestController @RequestMapping("/xmgl/rtRiskInventoryType") @Slf4j -@Api(tags = "榕图-风险清册类型") +@Api(tags = "榕图-风险清册类型相关Api") public class RtRiskInventoryTypeController { - @Autowired - private IRtRiskInventoryTypeService rtRiskInventoryTypeService; - @Autowired - private IRtRiskInventoryTypeConcreteService rtRiskInventoryConcreteService; + @Autowired + private IRtRiskInventoryTypeService rtRiskInventoryTypeService; - /** - * 分页列表查询 - * - * @return - */ - @ApiOperation(value = "分组查询榕图-风险安全库-作业类型、工序及部位信息", notes = "分组查询榕图-风险安全库-作业类型、工序及部位信息", httpMethod = "POST") - @ApiImplicitParams({ - @ApiImplicitParam(name = "projectSn", value = "项目唯一标识", paramType = "query", required = true, dataType = "String"), - @ApiImplicitParam(name = "name", value = "名称", paramType = "query", required = false, dataType = "String"), - }) - @PostMapping(value = "/list") - public Result> selectDangerTypeList(@RequestBody Map map) { - return Result.success(rtRiskInventoryTypeService.selectDangerTypeList(map)); - } + /** + * 分页列表查询 + * + * @return + */ + @ApiOperation(value = "分页列表查询榕图-风险清册类型信息", notes = "分页列表查询榕图-风险清册类型信息", httpMethod = "GET") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"), + }) + @GetMapping(value = "/page") + public Result> queryPageList(@ApiIgnore @RequestParam HashMap paramMap) { + return Result.success(rtRiskInventoryTypeService.queryPageList(paramMap)); + } - @ApiOperation(value = "分组查询榕图-风险安全库-作业类型、工序及部位以及子项", notes = "分组查询榕图-风险安全库-作业类型、工序及部位以及子项", httpMethod = "POST") - @ApiImplicitParams({ - @ApiImplicitParam(name = "projectSn", value = "项目唯一标识", paramType = "query", required = true, dataType = "String"), - @ApiImplicitParam(name = "name", value = "质量问题名称", paramType = "榕图-风险安全库-作业类型、工序及部位ID", required = false, dataType = "String"), - }) - @PostMapping(value = "/selectRtRiskInventoryTypeAndItemList") - public Result> selectDangerTypeAndItemList(@RequestBody Map map) { - return Result.success(rtRiskInventoryTypeService.selectDangerTypeAndItemList(map)); - } + /** + * 列表查询 + * + * @return + */ + @ApiOperation(value = "列表查询榕图-风险清册类型信息", notes = "列表查询榕图-风险清册类型信息", httpMethod = "GET") + @GetMapping(value = "/list") + public Result> queryList(@ApiIgnore @RequestParam HashMap paramMap) { + return Result.success(rtRiskInventoryTypeService.queryList(paramMap)); + } + /** + * 添加 + * + * @param rtRiskInventoryType + * @return + */ + @ApiOperation(value = "添加榕图-风险清册类型信息", notes = "添加榕图-风险清册类型信息", httpMethod = "POST") + @PostMapping(value = "/add") + public Result add(@RequestBody @Validate RtRiskInventoryType rtRiskInventoryType) { + rtRiskInventoryTypeService.add(rtRiskInventoryType); + return Result.ok(); + } - @ApiOperation(value = "质量管理——榕图-风险清册类型,获取大项列表", notes = "质量管理——榕图-风险清册类型,获取大项列表") - @ApiImplicitParams({ - @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String") - }) - @GetMapping(value = "/getBigList") - public Result> getBigList(String projectSn) { - return Result.success(rtRiskInventoryTypeService.getBigList(projectSn)); - } + /** + * 编辑 + * + * @param rtRiskInventoryType + * @return + */ + @ApiOperation(value = "编辑榕图-风险清册类型信息", notes = "编辑榕图-风险清册类型信息", httpMethod = "POST") + @PostMapping(value = "/edit") + public Result edit(@RequestBody RtRiskInventoryType rtRiskInventoryType) { + rtRiskInventoryTypeService.edit(rtRiskInventoryType); + return Result.ok(); + } + /** + * 通过id删除 + * + * @return + */ + @ApiOperation(value = "删除榕图-风险清册类型信息", notes = "删除榕图-风险清册类型信息", httpMethod = "POST") + @ApiImplicitParam(name = "id", value = "榕图-风险清册类型ID", paramType = "body", required = true, dataType = "String", example = "{\"id\":\"1\"}") + @PostMapping(value = "/delete") + public Result delete(@ApiIgnore @RequestBody HashMap map) { + String id = MapUtils.getString(map, "id"); + Result result = new Result(); + RtRiskInventoryType rtRiskInventoryType = rtRiskInventoryTypeService.getById(id); + if (rtRiskInventoryType == null) { + result.error500("未找到对应实体"); + } else { + boolean ok = rtRiskInventoryTypeService.removeById(id); + if (ok) { + result.success("删除成功!"); + } + } - /** - * 分页列表查询 - * - * @return - */ - @ApiOperation(value = "分组查询榕图-风险安全库-作业类型、工序及部位信息", notes = "分组查询榕图-风险安全库-作业类型、工序及部位信息", httpMethod = "POST") - @ApiImplicitParams({ - @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "query", required = true, dataType = "String"), - @ApiImplicitParam(name = "name", value = "质量问题名称", paramType = "榕图-风险安全库-作业类型、工序及部位ID", required = false, dataType = "String"), - }) - @PostMapping(value = "/selectRtRiskInventoryTypeList") - public Result> selectCompanyDangerTypeList(@RequestBody Map map) { - return Result.success(rtRiskInventoryTypeService.selectCompanyDangerTypeList(map)); - } + return result; + } - /** - * 添加 - * - * @param rtRiskInventoryType - * @return - */ - @OperLog(operModul = "质量管理", operType = "添加榕图-风险安全库-作业类型、工序及部位信息", operDesc = "添加榕图-风险安全库-作业类型、工序及部位信息") - @ApiOperation(value = "添加榕图-风险安全库-作业类型、工序及部位信息", notes = "添加榕图-风险安全库-作业类型、工序及部位信息", httpMethod = "POST") - @PostMapping(value = "/add") - public Result add(@RequestBody RtRiskInventoryType rtRiskInventoryType) { - Result result = new Result(); - try { - rtRiskInventoryTypeService.save(rtRiskInventoryType); - result.successMsg(MessageUtil.get("addSucess")); - } catch (Exception e) { - e.printStackTrace(); - log.info(e.getMessage()); - result.error500(MessageUtil.get("failErr")); - } - return result; - } + /** + * 通过id查询 + * + * @param id + * @return + */ + @ApiOperation(value = "通过id查询榕图-风险清册类型信息", notes = "通过id查询榕图-风险清册类型信息", httpMethod = "GET") + @ApiImplicitParam(name = "id", value = "榕图-风险清册类型ID", paramType = "query", required = true, dataType = "Integer") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name = "id", required = true) String id) { + Result result = new Result(); + RtRiskInventoryType rtRiskInventoryType = rtRiskInventoryTypeService.getById(id); + if (rtRiskInventoryType == null) { + result.error500("未找到对应实体"); + } else { + result.setResult(rtRiskInventoryType); + result.setSuccess(true); + } + return result; + } - /** - * 编辑 - * - * @param rtRiskInventoryType - * @return - */ - @OperLog(operModul = "质量管理", operType = "编辑榕图-风险安全库-作业类型、工序及部位信息", operDesc = "编辑榕图-风险安全库-作业类型、工序及部位信息") - @ApiOperation(value = "编辑榕图-风险安全库-作业类型、工序及部位信息", notes = "编辑榕图-风险安全库-作业类型、工序及部位信息", httpMethod = "POST") - @PostMapping(value = "/edit") - public Result edit(@RequestBody RtRiskInventoryType rtRiskInventoryType) { - Result result = new Result(); - RtRiskInventoryType rtRiskInventoryTypeEntity = rtRiskInventoryTypeService.getById(rtRiskInventoryType.getId()); - if (rtRiskInventoryTypeEntity == null) { - result.error500(MessageUtil.get("notFindErr")); - } else { - boolean ok = rtRiskInventoryTypeService.updateById(rtRiskInventoryType); - if (ok) { - result.successMsg(MessageUtil.get("editSucess")); - } - } - - return result; - } - - /** - * 删除检查库节点 - * - * @return - */ - @ApiOperation(value = "删除检查库节点", notes = "删除检查库节点") - @ApiImplicitParam(name = "id", value = "类型id", paramType = "query", required = true, dataType = "long") - - @GetMapping(value = "/deleteByRtRiskInventoryTypeId") - public Result deleteByrtRiskInventoryTypeId(Long id) { - rtRiskInventoryTypeService.deleteRecordById(id); - return Result.ok(); - } - - @ApiOperation(value = "模板导入下载", notes = "模板导入下载") - @GetMapping("/downloadRtRiskInventoryTypeExcelTemplate") - public void downloadRtRiskInventoryTypeExcelTemplate(HttpServletResponse response) { - try { - OutputStream out = response.getOutputStream(); - response.setCharacterEncoding("UTF-8"); - response.setContentType("application/vnd.ms-excel;charset=gb2312"); - response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode("质量检查模板_导入模板.xlsx", "UTF-8")); - InputStream fis = new ClassPathResource("excel/风险安全库导入模板.xlsx").getInputStream(); - IOUtils.copy(fis, out); - out.flush(); - out.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - - @ApiOperation(value = "模板导入", notes = "模板导入") - @ApiImplicitParams({ - @ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "query", required = true, dataType = "String"), - @ApiImplicitParam(name = "excelFile", value = "导入文件", paramType = "query", required = true, dataType = "String"), - }) - @PostMapping(value = "/importRtRiskInventoryTypeExcelTemplate") - public Result importRtRiskInventoryTypeExcelTemplate(MultipartFile excelFile, String projectSn) throws Exception { - rtRiskInventoryTypeService.importRtRiskInventoryTypeExcelTemplate(excelFile, projectSn); - return Result.ok(); - } } diff --git a/src/main/java/com/zhgd/xmgl/modules/rt/entity/RtRiskInventoryConcrete.java b/src/main/java/com/zhgd/xmgl/modules/rt/entity/RtRiskInventoryConcrete.java deleted file mode 100644 index 986cde11e..000000000 --- a/src/main/java/com/zhgd/xmgl/modules/rt/entity/RtRiskInventoryConcrete.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.zhgd.xmgl.modules.rt.entity; - -import java.io.Serializable; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import com.fasterxml.jackson.annotation.JsonFormat; -import org.springframework.format.annotation.DateTimeFormat; -import org.jeecgframework.poi.excel.annotation.Excel; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; - -/** - * @Description: 榕图-风险清册具体项 - * @author: pds - * @date: 2020-10-21 - * @version: V1.0 - */ -@Data -@TableName("rt_risk_inventory_concrete") -@ApiModel(value = "RtRiskInventoryConcrete实体类", description = "RtRiskInventoryConcrete") -public class RtRiskInventoryConcrete implements Serializable { - private static final long serialVersionUID = 1L; - - /** - * id - */ - @TableId(type = IdType.ASSIGN_ID) - @ApiModelProperty(value = "id") - private java.lang.Long id; - /** - * 榕图-风险清册类型ID - */ - @Excel(name = "榕图-风险清册类型ID", width = 15) - @ApiModelProperty(value = "榕图-风险清册类型ID") - private java.lang.Long rtRiskInventoryTypeId; - /** - * 编码 - */ - @Excel(name = "编码", width = 15) - @ApiModelProperty(value = "编码") - private java.lang.String itemCode; - /** - * 风险可能导致的后果 - */ - @Excel(name = "风险可能导致的后果", width = 15) - @ApiModelProperty(value = "风险可能导致的后果") - private java.lang.String riskPossibleConsequence; - /** - * 风险评定值D - */ - @Excel(name = "风险评定值D", width = 15) - @ApiModelProperty(value = "风险评定值D") - private java.lang.String riskAssessmentValueD; - /** - * 风险级别 - */ - @Excel(name = "风险级别", width = 15) - @ApiModelProperty(value = "风险级别") - private java.lang.String riskLevel; - /** - * 风险控制关键因素 - */ - @Excel(name = "风险控制关键因素", width = 15) - @ApiModelProperty(value = "风险控制关键因素") - private java.lang.String keyFactorsInRiskControl; - /** - * 预防措施 - */ - @Excel(name = "预防措施", width = 15) - @ApiModelProperty(value = "预防措施") - private java.lang.String precaution; - /** - * 创建时间 - */ - @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @ApiModelProperty(value = "创建时间") - private java.util.Date createTime; -} diff --git a/src/main/java/com/zhgd/xmgl/modules/rt/entity/RtRiskInventoryType.java b/src/main/java/com/zhgd/xmgl/modules/rt/entity/RtRiskInventoryType.java index 4b78b9a36..859025f6a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/rt/entity/RtRiskInventoryType.java +++ b/src/main/java/com/zhgd/xmgl/modules/rt/entity/RtRiskInventoryType.java @@ -1,10 +1,9 @@ package com.zhgd.xmgl.modules.rt.entity; import java.io.Serializable; -import java.util.List; +import java.util.Date; import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -17,79 +16,99 @@ import io.swagger.annotations.ApiModelProperty; /** * @Description: 榕图-风险清册类型 * @author: pds - * @date: 2020-10-21 + * @date: 2023-12-21 * @version: V1.0 */ @Data @TableName("rt_risk_inventory_type") @ApiModel(value = "RtRiskInventoryType实体类", description = "RtRiskInventoryType") public class RtRiskInventoryType implements Serializable { - private static final long serialVersionUID = 1L; - - /** - * id - */ - @TableId(type = IdType.ASSIGN_ID) - @ApiModelProperty(value = "id") - private java.lang.Long id; - /** - * 名称 - */ - @Excel(name = "名称", width = 15) - @ApiModelProperty(value = "名称") - private java.lang.String name; - /** - * 编码 - */ - @Excel(name = "编码", width = 15) - @ApiModelProperty(value = "编码") - private java.lang.String code; - /** - * 项目sn - */ - @Excel(name = "项目sn", width = 15) - @ApiModelProperty(value = "项目sn") - private java.lang.String projectSn; - /** - * 层级名称 - */ - @Excel(name = "层级名称", width = 15) - @ApiModelProperty(value = "层级名称") - private java.lang.String fullName; - /** - * 创建时间 - */ - @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @ApiModelProperty(value = "创建时间") - private java.util.Date createTime; - /** - * 等级 - */ - @Excel(name = "等级", width = 15) - @ApiModelProperty(value = "等级") - private java.lang.Integer level; - /** - * 父级id - */ - @Excel(name = "父级id", width = 15) - @ApiModelProperty(value = "父级id") - private java.lang.Long parentId; - /** - * 排序 - */ - @Excel(name = "排序", width = 15) - @ApiModelProperty(value = "排序") - private java.lang.Integer orderSort; - - @TableField(exist = false) - private List list; - @TableField(exist = false) - private List children; - @TableField(exist = false) - private List itemList; + private static final long serialVersionUID = 1L; + /** + * id + */ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "id") + private java.lang.Long id; + /** + * 名称 + */ + @Excel(name = "名称", width = 15) + @ApiModelProperty(value = "名称") + private java.lang.String name; + /** + * 编码 + */ + @Excel(name = "编码", width = 15) + @ApiModelProperty(value = "编码") + private java.lang.String code; + /** + * 项目sn + */ + @Excel(name = "项目sn", width = 15) + @ApiModelProperty(value = "项目sn") + private java.lang.String projectSn; + /** + * 层级名称 + */ + @Excel(name = "层级名称", width = 15) + @ApiModelProperty(value = "层级名称") + private java.lang.String fullName; + /** + * 创建时间 + */ + @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建时间") + private java.util.Date createTime; + /** + * 等级 + */ + @Excel(name = "等级", width = 15) + @ApiModelProperty(value = "等级") + private java.lang.Integer level; + /** + * 父级id + */ + @Excel(name = "父级id", width = 15) + @ApiModelProperty(value = "父级id") + private java.lang.Long parentId; + /** + * 排序 + */ + @Excel(name = "排序", width = 15) + @ApiModelProperty(value = "排序") + private java.lang.Integer orderSort; + /** + * 风险可能导致的后果 + */ + @Excel(name = "风险可能导致的后果", width = 15) + @ApiModelProperty(value = "风险可能导致的后果") + private java.lang.String riskPossibleConsequence; + /** + * 风险评定值D + */ + @Excel(name = "风险评定值D", width = 15) + @ApiModelProperty(value = "风险评定值D") + private java.lang.String riskAssessmentValueD; + /** + * 风险级别 + */ + @Excel(name = "风险级别", width = 15) + @ApiModelProperty(value = "风险级别") + private java.lang.String riskLevel; + /** + * 风险控制关键因素 + */ + @Excel(name = "风险控制关键因素", width = 15) + @ApiModelProperty(value = "风险控制关键因素") + private java.lang.String keyFactorsInRiskControl; + /** + * 预防措施 + */ + @Excel(name = "预防措施", width = 15) + @ApiModelProperty(value = "预防措施") + private java.lang.Object precaution; } - - diff --git a/src/main/java/com/zhgd/xmgl/modules/rt/entity/RtWorkTicket.java b/src/main/java/com/zhgd/xmgl/modules/rt/entity/RtWorkTicket.java index dd0454a22..7e266a0a0 100644 --- a/src/main/java/com/zhgd/xmgl/modules/rt/entity/RtWorkTicket.java +++ b/src/main/java/com/zhgd/xmgl/modules/rt/entity/RtWorkTicket.java @@ -187,6 +187,9 @@ public class RtWorkTicket implements Serializable { @ApiModelProperty(value = "项目sn") private java.lang.String projectSn; + @ApiModelProperty(value = "榕图-风险安全库-作业类型、工序及部位Json") + private String rtRiskSecurityLibraryTypeJson; + @TableField(exist = false) @ApiModelProperty(value = "榕图-风险安全库-作业类型、工序及部位idList") private List rtRiskSecurityLibraryTypeIdList; diff --git a/src/main/java/com/zhgd/xmgl/modules/rt/entity/dto/DepartmentRectifiedRankDto.java b/src/main/java/com/zhgd/xmgl/modules/rt/entity/dto/DepartmentRectifiedRankDto.java deleted file mode 100644 index 5b0500321..000000000 --- a/src/main/java/com/zhgd/xmgl/modules/rt/entity/dto/DepartmentRectifiedRankDto.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.zhgd.xmgl.modules.rt.entity.dto; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import javax.validation.constraints.NotBlank; - -@Data -@ApiModel(value = "DepartmentRectifiedRankDto") -public class DepartmentRectifiedRankDto { - @ApiModelProperty(value = "项目sn") - @NotBlank - private String projectSn; -} diff --git a/src/main/java/com/zhgd/xmgl/modules/rt/mapper/RtRiskInventoryConcreteMapper.java b/src/main/java/com/zhgd/xmgl/modules/rt/mapper/RtRiskInventoryConcreteMapper.java deleted file mode 100644 index a0d02999b..000000000 --- a/src/main/java/com/zhgd/xmgl/modules/rt/mapper/RtRiskInventoryConcreteMapper.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.zhgd.xmgl.modules.rt.mapper; - -import java.util.List; -import java.util.Map; - -import com.zhgd.xmgl.modules.rt.entity.RtRiskInventoryConcrete; -import org.apache.ibatis.annotations.Mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -/** - * @Description: 榕图-风险清册具体项 - * @author: pds - * @date: 2020-10-21 - * @version: V1.0 - */ -@Mapper -public interface RtRiskInventoryConcreteMapper extends BaseMapper { - - List selectRtRiskInventoryConcreteList(Map map); - - List selectCompanyRtRiskInventoryConcreteList(Map map); - - List selectProjectDangerItemList(Map map); -} diff --git a/src/main/java/com/zhgd/xmgl/modules/rt/mapper/RtRiskInventoryTypeMapper.java b/src/main/java/com/zhgd/xmgl/modules/rt/mapper/RtRiskInventoryTypeMapper.java index 29164e08c..d31db1540 100644 --- a/src/main/java/com/zhgd/xmgl/modules/rt/mapper/RtRiskInventoryTypeMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/rt/mapper/RtRiskInventoryTypeMapper.java @@ -1,32 +1,16 @@ package com.zhgd.xmgl.modules.rt.mapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.zhgd.xmgl.modules.rt.entity.RtRiskInventoryType; import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.List; -import java.util.Map; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** - * @Description: 质量问题库 + * @Description: 榕图-风险清册类型 * @author: pds - * @date: 2020-10-21 + * @date: 2023-12-21 * @version: V1.0 */ @Mapper public interface RtRiskInventoryTypeMapper extends BaseMapper { - - List selectChildDangerTypeList(Map map); - - List selectCompanyDangerTypeList(Map map); - - List selectCompanyChildDangerTypeList(Map map); - - List getBigList(Map map); - - int deleteRecordById(Long id); - - void updateRtRiskInventoryTypeFullName(@Param("oldFullName") String oldFullName, @Param("newFullName") String fullName, @Param("projectSn") String projectSn); } diff --git a/src/main/java/com/zhgd/xmgl/modules/rt/mapper/xml/RtRiskInventoryConcreteMapper.xml b/src/main/java/com/zhgd/xmgl/modules/rt/mapper/xml/RtRiskInventoryConcreteMapper.xml deleted file mode 100644 index 4f4a51472..000000000 --- a/src/main/java/com/zhgd/xmgl/modules/rt/mapper/xml/RtRiskInventoryConcreteMapper.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - diff --git a/src/main/java/com/zhgd/xmgl/modules/rt/mapper/xml/RtRiskInventoryTypeMapper.xml b/src/main/java/com/zhgd/xmgl/modules/rt/mapper/xml/RtRiskInventoryTypeMapper.xml index 2aeb14cb0..b4e845be2 100644 --- a/src/main/java/com/zhgd/xmgl/modules/rt/mapper/xml/RtRiskInventoryTypeMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/rt/mapper/xml/RtRiskInventoryTypeMapper.xml @@ -1,91 +1,5 @@ - - delete dtr,dtr2,dir - from rt_risk_inventory_type as dtr - left join rt_risk_inventory_type dtr2 on dtr2.parent_id = dtr.id - left join rt_risk_inventory_concrete as dir on dtr.id = dir.rt_risk_inventory_type_id or - dir.rt_risk_inventory_type_id = - dtr2.id - where dtr.id = #{id} - - - - - - - - - UPDATE rt_risk_inventory_type - SET full_name=REPLACE(full_name, #{oldFullName}, #{newFullName}) - WHERE full_name LIKE N'${oldFullName}%' - and project_sn = #{projectSn}; - diff --git a/src/main/java/com/zhgd/xmgl/modules/rt/service/IRtRiskInventoryTypeConcreteService.java b/src/main/java/com/zhgd/xmgl/modules/rt/service/IRtRiskInventoryTypeConcreteService.java deleted file mode 100644 index c9e11499e..000000000 --- a/src/main/java/com/zhgd/xmgl/modules/rt/service/IRtRiskInventoryTypeConcreteService.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.zhgd.xmgl.modules.rt.service; - - -import com.baomidou.mybatisplus.extension.service.IService; -import com.zhgd.xmgl.modules.rt.entity.RtRiskInventoryConcrete; - -import java.util.List; -import java.util.Map; - -/** - * @Description: 榕图-风险清册具体项 - * @author: pds - * @date: 2020-10-21 - * @version: V1.0 - */ -public interface IRtRiskInventoryTypeConcreteService extends IService { - - List selectRtRiskInventoryConcreteList(Map map); - - List selectCompanyRtRiskInventoryConcreteList(Map map); - -} diff --git a/src/main/java/com/zhgd/xmgl/modules/rt/service/IRtRiskInventoryTypeService.java b/src/main/java/com/zhgd/xmgl/modules/rt/service/IRtRiskInventoryTypeService.java index 89518ab08..f0e2fa775 100644 --- a/src/main/java/com/zhgd/xmgl/modules/rt/service/IRtRiskInventoryTypeService.java +++ b/src/main/java/com/zhgd/xmgl/modules/rt/service/IRtRiskInventoryTypeService.java @@ -1,29 +1,25 @@ package com.zhgd.xmgl.modules.rt.service; -import com.baomidou.mybatisplus.extension.service.IService; import com.zhgd.xmgl.modules.rt.entity.RtRiskInventoryType; -import org.springframework.web.multipart.MultipartFile; +import com.baomidou.mybatisplus.extension.service.IService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import java.util.HashMap; import java.util.List; -import java.util.Map; /** - * @Description: 质量问题库 + * @Description: 榕图-风险清册类型 * @author: pds - * @date: 2020-10-21 + * @date: 2023-12-21 * @version: V1.0 */ public interface IRtRiskInventoryTypeService extends IService { - List selectDangerTypeList(Map map); + IPage queryPageList(HashMap paramMap); - List selectCompanyDangerTypeList(Map map); + List queryList(HashMap paramMap); - List selectDangerTypeAndItemList(Map map); + void add(RtRiskInventoryType rtRiskInventoryType); - List getBigList(String projectSn); - - void deleteRecordById(Long id); - - void importRtRiskInventoryTypeExcelTemplate(MultipartFile excelFile, String projectSn) throws Exception; + void edit(RtRiskInventoryType rtRiskInventoryType); } diff --git a/src/main/java/com/zhgd/xmgl/modules/rt/service/impl/RtRiskInventoryTypeConcreteServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/rt/service/impl/RtRiskInventoryTypeConcreteServiceImpl.java deleted file mode 100644 index e414badbf..000000000 --- a/src/main/java/com/zhgd/xmgl/modules/rt/service/impl/RtRiskInventoryTypeConcreteServiceImpl.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.zhgd.xmgl.modules.rt.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; - -import com.zhgd.xmgl.modules.rt.entity.RtRiskInventoryConcrete; -import com.zhgd.xmgl.modules.rt.mapper.RtRiskInventoryConcreteMapper; -import com.zhgd.xmgl.modules.rt.mapper.RtRiskInventoryTypeMapper; -import com.zhgd.xmgl.modules.rt.service.IRtRiskInventoryTypeConcreteService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Map; - -/** - * @Description: 榕图-风险清册具体项 - * @author: pds - * @date: 2020-10-21 - * @version: V1.0 - */ -@Service -@Transactional(rollbackFor = Exception.class) -public class RtRiskInventoryTypeConcreteServiceImpl extends ServiceImpl implements IRtRiskInventoryTypeConcreteService { - @Autowired - private RtRiskInventoryTypeMapper rtRiskInventoryTypeMapper; - @Autowired - private RtRiskInventoryConcreteMapper rtRiskInventoryConcreteMapper; - - @Override - public List selectRtRiskInventoryConcreteList(Map map) { - return rtRiskInventoryConcreteMapper.selectRtRiskInventoryConcreteList(map); - } - - @Override - public List selectCompanyRtRiskInventoryConcreteList(Map map) { - return rtRiskInventoryConcreteMapper.selectCompanyRtRiskInventoryConcreteList(map); - } - -} diff --git a/src/main/java/com/zhgd/xmgl/modules/rt/service/impl/RtRiskInventoryTypeServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/rt/service/impl/RtRiskInventoryTypeServiceImpl.java index f1b860f24..ede042490 100644 --- a/src/main/java/com/zhgd/xmgl/modules/rt/service/impl/RtRiskInventoryTypeServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/rt/service/impl/RtRiskInventoryTypeServiceImpl.java @@ -1,32 +1,27 @@ package com.zhgd.xmgl.modules.rt.service.impl; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.zhgd.jeecg.common.execption.OpenAlertException; -import com.zhgd.xmgl.modules.project.mapper.ProjectMapper; - - -import com.zhgd.xmgl.modules.rt.entity.RtRiskInventoryConcrete; import com.zhgd.xmgl.modules.rt.entity.RtRiskInventoryType; -import com.zhgd.xmgl.modules.rt.mapper.RtRiskInventoryConcreteMapper; import com.zhgd.xmgl.modules.rt.mapper.RtRiskInventoryTypeMapper; import com.zhgd.xmgl.modules.rt.service.IRtRiskInventoryTypeService; -import com.zhgd.xmgl.util.ExcelUtils; -import com.zhgd.xmgl.util.MessageUtil; -import org.apache.commons.collections.MapUtils; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.multipart.MultipartFile; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zhgd.jeecg.common.system.query.QueryGenerator; +import com.zhgd.xmgl.util.PageUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import java.io.InputStream; -import java.util.*; -import java.util.stream.Collectors; +import java.util.HashMap; +import java.util.List; + +import com.zhgd.xmgl.util.RefUtil; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.beans.factory.annotation.Autowired; /** - * @Description: 质量问题库 + * @Description: 榕图-风险清册类型 * @author: pds - * @date: 2020-10-21 + * @date: 2023-12-21 * @version: V1.0 */ @Service @@ -34,255 +29,41 @@ import java.util.stream.Collectors; public class RtRiskInventoryTypeServiceImpl extends ServiceImpl implements IRtRiskInventoryTypeService { @Autowired private RtRiskInventoryTypeMapper rtRiskInventoryTypeMapper; - @Autowired - private RtRiskInventoryConcreteMapper rtRiskInventoryConcreteMapper; - @Autowired - private ProjectMapper projectMapper; - @Override - public List selectDangerTypeList(Map map) { - String name = MapUtils.getString(map, "name"); - List list = rtRiskInventoryTypeMapper.getBigList(map); - List childList = rtRiskInventoryTypeMapper.selectChildDangerTypeList(map); - list = getChildrenList(list, childList, name); + public IPage queryPageList(HashMap paramMap) { + QueryWrapper queryWrapper = getQueryWrapper(paramMap); + Page page = PageUtil.getPage(paramMap); + IPage pageList = this.page(page, queryWrapper); + pageList.setRecords(dealList(pageList.getRecords())); + return pageList; + } + + @Override + public List queryList(HashMap paramMap) { + QueryWrapper queryWrapper = getQueryWrapper(paramMap); + return dealList(this.list(queryWrapper)); + } + + private QueryWrapper getQueryWrapper(HashMap paramMap) { + String alias = ""; + QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(RtRiskInventoryType.class, paramMap, alias); + queryWrapper.orderByDesc(alias + RefUtil.fieldNameUlc(RtRiskInventoryType::getId)); + return queryWrapper; + } + + private List dealList(List list) { return list; } @Override - public List selectDangerTypeAndItemList(Map map) { - String name = MapUtils.getString(map, "name"); - //Integer recordStatus = MapUtils.getInteger(map, "recordStatus"); - //只显示开启的状态的 - //if (Objects.equal(recordStatus, 0)) { - // map.put("open", 1); - //} - List list = rtRiskInventoryTypeMapper.getBigList(map); - List childList = rtRiskInventoryTypeMapper.selectChildDangerTypeList(map); - String headquartersSn = projectMapper.getHeadquartersSnByProject(MapUtils.getString(map, "projectSn")); - map.put("headquartersSn", headquartersSn); - List itemList = rtRiskInventoryConcreteMapper.selectProjectDangerItemList(map); - if (childList.size() > 0) { - for (RtRiskInventoryType data : childList) { - List tempList = new ArrayList<>(); - if (itemList != null && itemList.size() > 0) { - for (RtRiskInventoryConcrete itemRecord : itemList) { - if (data.getId().equals(itemRecord.getRtRiskInventoryTypeId())) { - tempList.add(itemRecord); - } - } - } - data.setItemList(tempList); - } - } - list = getChildrenList(list, childList, name); - //排序 - list = list.stream().sorted((o1, o2) -> o1.getId().compareTo(o2.getId())).collect(Collectors.toList()); - for (RtRiskInventoryType entityMap : list) { - List children = entityMap.getChildren(); - if (children != null) { - entityMap.setChildren(children.stream().sorted((o1, o2) -> o1.getId().compareTo(o2.getId())).collect(Collectors.toList())); - } - } - return list; + public void add(RtRiskInventoryType rtRiskInventoryType) { + rtRiskInventoryType.setId(null); + baseMapper.insert(rtRiskInventoryType); } @Override - public List getBigList(String projectSn) { - HashMap map = new HashMap<>(); - map.put("projectSn", projectSn); - return rtRiskInventoryTypeMapper.getBigList(map); - } - - @Override - public void deleteRecordById(Long id) { - rtRiskInventoryTypeMapper.deleteRecordById(id); - } - - @Override - public void importRtRiskInventoryTypeExcelTemplate(MultipartFile excelFile, String projectSn) throws Exception { - InputStream is = excelFile.getInputStream(); - List> list = ExcelUtils.jxlExlToList(is, 0); - if (list == null || list.size() == 0) { - throw new OpenAlertException(MessageUtil.get("excelNotDataErr")); - } - Map libraryObj = new HashMap<>(); - //for (Map importInfo : list) { - // if (importInfo == null || importInfo.get("编码") == null || importInfo.get("编码").equals("")) { - // continue; - // } - // String code = importInfo.get("编码").trim(); - // String typeName = importInfo.get("作业类型、工序及部位"); - // String newCode = CodeUtils.subCode(code); - // if (StringUtils.isNotEmpty(typeName)) { - // //榕图-风险清册类型 - // QueryWrapper queryWrapper = new QueryWrapper<>(); - // queryWrapper.lambda().eq(RtRiskInventoryType::getProjectSn, projectSn) - // .eq(RtRiskInventoryType::getCode, code); - // RtRiskInventoryType type = rtRiskInventoryTypeMapper.selectOne(queryWrapper); - // if (type != null) { - // if (!type.getName().equals(typeName)) { - // String oldFullName = type.getFullName(); - // if (type.getParentId() != 0) { - // RtRiskInventoryType parentHiddenDangerLibrary = rtRiskInventoryTypeMapper.selectById(type.getParentId()); - // type.setFullName(parentHiddenDangerLibrary.getFullName() + "/" + type.getName()); - // type.setLevel(2); - // } else { - // type.setFullName(type.getName()); - // type.setLevel(1); - // } - // rtRiskInventoryTypeMapper.updateById(type); - // //更新子级层级名称 - // rtRiskInventoryTypeMapper.updateRtRiskInventoryTypeFullName(oldFullName, type.getFullName(), type.getProjectSn()); - // } - // libraryObj.put(type.getCode(), type); - // } else { - // RtRiskInventoryType newHiddenDangerLibrary = new RtRiskInventoryType(); - // newHiddenDangerLibrary.setCreateTime(new Date()); - // newHiddenDangerLibrary.setCode(code); - // newHiddenDangerLibrary.setProjectSn(projectSn); - // newHiddenDangerLibrary.setName(typeName); - // RtRiskInventoryType parentHiddenDangerLibrary = libraryObj.get(newCode); - // if (parentHiddenDangerLibrary == null) { - // newHiddenDangerLibrary.setParentId(0L); - // newHiddenDangerLibrary.setFullName(typeName); - // newHiddenDangerLibrary.setLevel(1); - // } else { - // newHiddenDangerLibrary.setParentId(parentHiddenDangerLibrary.getId()); - // newHiddenDangerLibrary.setFullName(parentHiddenDangerLibrary.getFullName() + "/" + typeName); - // newHiddenDangerLibrary.setLevel(2); - // } - // rtRiskInventoryTypeMapper.insert(newHiddenDangerLibrary); - // libraryObj.put(code, newHiddenDangerLibrary); - // } - // } else { - // //榕图-风险清册具体项 - // String jobPrerequisite = importInfo.get("作业必备条件"); - // String operationProcessRiskControlMeasure = importInfo.get("作业过程风险控制措施"); - // String changeLimit = importInfo.get("整改时限(天)"); - // if (StringUtils.isEmpty(changeLimit)) { - // changeLimit = "0"; - // } - // String rectifyRequire = importInfo.get("整改要求"); - // RtRiskInventoryType hiddenDangerLibrary = libraryObj.get(newCode); - // QueryWrapper queryWrapper = new QueryWrapper<>(); - // queryWrapper.lambda().eq(RtRiskInventoryConcrete::getRtRiskInventoryTypeId, hiddenDangerLibrary.getId()) - // .eq(RtRiskInventoryConcrete::getItemCode, code); - // RtRiskInventoryConcrete itemRecord = rtRiskInventoryTypeConcreteMapper.selectOne(queryWrapper); - // if (itemRecord == null) { - // itemRecord = new RtRiskInventoryConcrete(); - // itemRecord.setRtRiskInventoryTypeId(); - // itemRecord.setRiskPossibleConsequence(); - // itemRecord.setRiskAssessmentValueD(); - // itemRecord.setRiskLevel(); - // itemRecord.setKeyFactorsInRiskControl(); - // itemRecord.setPrecaution(); - // itemRecord.setItemCode(code); - // rtRiskInventoryTypeConcreteMapper.insert(itemRecord); - // } else { - // itemRecord.setItemCode(code); - // rtRiskInventoryTypeConcreteMapper.updateById(itemRecord); - // } - // } - //} - } - - private List getChildrenList(List list, List childList, String name) { - List dataList = new ArrayList<>(); - for (RtRiskInventoryType map1 : list) { - List tempList = new ArrayList<>(); - for (RtRiskInventoryType map2 : childList) { - if (map1.getId().equals(map2.getParentId())) { - List typeList = getChildList(String.valueOf(map2.getId()), childList, name); - map2.setChildren(typeList); - if (StringUtils.isNotEmpty(name)) { - if (map2.getName().indexOf(name) > -1) { - tempList.add(map2); - } else { - if (typeList.size() > 0) { - tempList.add(map2); - } - } - } else { - tempList.add(map2); - } - } - } - map1.setChildren(tempList); - if (StringUtils.isNotEmpty(name)) { - if (map1.getName().indexOf(name) > -1) { - dataList.add(map1); - } else { - if (tempList.size() > 0) { - dataList.add(map1); - } - } - } else { - dataList.add(map1); - } - } - return dataList; - } - - @Override - public List selectCompanyDangerTypeList(Map map) { - String name = MapUtils.getString(map, "name"); - List list = rtRiskInventoryTypeMapper.selectCompanyDangerTypeList(map); - List childList = rtRiskInventoryTypeMapper.selectCompanyChildDangerTypeList(map); - list = groupList(list, childList, name); - return list; - } - - private List groupList(List list, List childList, String name) { - List dataList = new ArrayList<>(); - for (RtRiskInventoryType map1 : list) { - List tempList = new ArrayList<>(); - for (RtRiskInventoryType map2 : childList) { - if (map1.getId().equals(map2.getParentId())) { - List typeList = getChildList(String.valueOf(map2.getId()), childList, name); - map2.setList(typeList); - if (StringUtils.isNotEmpty(name)) { - if (map2.getName().indexOf(name) > -1) { - tempList.add(map2); - } else { - if (typeList.size() > 0) { - tempList.add(map2); - } - } - } else { - tempList.add(map2); - } - } - } - map1.setList(tempList); - if (StringUtils.isNotEmpty(name)) { - if (map1.getName().indexOf(name) > -1) { - dataList.add(map1); - } else { - if (tempList.size() > 0) { - dataList.add(map1); - } - } - } else { - dataList.add(map1); - } - } - return dataList; - } - - private List getChildList(String id, List childList, String name) { - List tempList = new ArrayList<>(); - for (RtRiskInventoryType map2 : childList) { - if (id.equals(map2.getParentId())) { - if (StringUtils.isNotEmpty(name)) { - if (map2.getName().indexOf(name) > -1) { - tempList.add(map2); - } - } else { - tempList.add(map2); - } - } - } - return tempList; + public void edit(RtRiskInventoryType rtRiskInventoryType) { + baseMapper.updateById(rtRiskInventoryType); } } diff --git a/src/main/resources/excel/风险清册导入模板 .xlsx b/src/main/resources/excel/风险清册导入模板 .xlsx new file mode 100644 index 0000000000000000000000000000000000000000..f8fae426391d313673dbda4ce433616f1f86b43d GIT binary patch literal 11260 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 literal 0 HcmV?d00001