榕图bug修复

This commit is contained in:
guo 2023-12-21 18:52:10 +08:00
parent 0eb850c8f1
commit 6be05fecb8
12 changed files with 348 additions and 121 deletions

View File

@ -7,8 +7,15 @@ import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiImplicitParams;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.HashMap;
import org.apache.poi.util.IOUtils;
import org.springframework.core.io.ClassPathResource;
import org.springframework.web.multipart.MultipartFile;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
@ -23,6 +30,8 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
/**
* @Title: Controller
@ -39,6 +48,16 @@ public class RtRiskInventoryTypeController {
@Autowired
private IRtRiskInventoryTypeService rtRiskInventoryTypeService;
@ApiOperation(value = "tree分页列表查询榕图-风险清册类型信息", notes = "tree分页列表查询榕图-风险清册类型信息", 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 = "/tree/page")
public Result<IPage<RtRiskInventoryType>> queryTreePageList(@ApiIgnore @RequestParam HashMap<String, Object> paramMap) {
return Result.success(rtRiskInventoryTypeService.queryTreePageList(paramMap));
}
/**
* 分页列表查询
*
@ -136,4 +155,32 @@ public class RtRiskInventoryTypeController {
return result;
}
@ApiOperation(value = "模板导入下载", notes = "模板导入下载")
@GetMapping("/downloadExcelTemplate")
public void downloadRtRiskSecurityLibraryTypeExcelTemplate(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 = "/importExcelTemplate")
public Result importExcelTemplate(MultipartFile excelFile, String projectSn) throws Exception {
rtRiskInventoryTypeService.importExcelTemplate(excelFile, projectSn);
return Result.ok();
}
}

View File

@ -1,17 +1,18 @@
package com.zhgd.xmgl.modules.rt.entity;
import java.io.Serializable;
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;
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;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.List;
/**
* @Description: 榕图-风险清册类型
@ -37,6 +38,13 @@ public class RtRiskInventoryType implements Serializable {
@Excel(name = "名称", width = 15)
@ApiModelProperty(value = "名称")
private java.lang.String name;
/**
* 工序名称
*/
@Excel(name = "工序名称", width = 15)
@ApiModelProperty(value = "工序名称")
private java.lang.String processName;
/**
* 编码
*/
@ -111,4 +119,8 @@ public class RtRiskInventoryType implements Serializable {
@Excel(name = "预防措施", width = 15)
@ApiModelProperty(value = "预防措施")
private java.lang.Object precaution;
@TableField(exist = false)
@ApiModelProperty(value = "榕图-风险清册类型子集")
private List<RtRiskInventoryType> children;
}

View File

@ -190,6 +190,9 @@ public class RtWorkTicket implements Serializable {
@ApiModelProperty(value = "榕图-风险安全库-作业类型、工序及部位Json")
private String rtRiskSecurityLibraryTypeJson;
@ApiModelProperty(value = "榕图-风险安全库-作业类型、工序及部位字符串")
private String rtRiskSecurityLibraryTypeStr;
@TableField(exist = false)
@ApiModelProperty(value = "榕图-风险安全库-作业类型、工序及部位idList")
private List<String> rtRiskSecurityLibraryTypeIdList;

View File

@ -1,8 +1,15 @@
package com.zhgd.xmgl.modules.rt.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.xmgl.modules.rt.entity.RtRiskInventoryType;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @Description: 榕图-风险清册类型
@ -13,4 +20,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@Mapper
public interface RtRiskInventoryTypeMapper extends BaseMapper<RtRiskInventoryType> {
List<RtRiskInventoryType> queryList(@Param(Constants.WRAPPER) QueryWrapper<RtRiskInventoryType> queryWrapper);
IPage<RtRiskInventoryType> queryList(Page<RtRiskInventoryType> page, @Param(Constants.WRAPPER) QueryWrapper<RtRiskInventoryType> queryWrapper);
}

View File

@ -1,8 +1,15 @@
package com.zhgd.xmgl.modules.rt.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.xmgl.modules.rt.entity.RtWorkTicket;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @Description: 榕图-工作票
@ -13,4 +20,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@Mapper
public interface RtWorkTicketMapper extends BaseMapper<RtWorkTicket> {
IPage<RtWorkTicket> queryList(Page<RtWorkTicket> page, @Param(Constants.WRAPPER) QueryWrapper<RtWorkTicket> queryWrapper);
List<RtWorkTicket> queryList(@Param(Constants.WRAPPER) QueryWrapper<RtWorkTicket> queryWrapper);
}

View File

@ -1,5 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.rt.mapper.RtRiskInventoryTypeMapper">
<select id="queryList" resultType="com.zhgd.xmgl.modules.rt.entity.RtRiskInventoryType">
select *
from rt_risk_inventory_type
${ew.customSqlSegment}
</select>
</mapper>

View File

@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.rt.mapper.RtWorkTicketMapper">
<resultMap id="queryListResultMap" type="com.zhgd.xmgl.modules.rt.entity.RtWorkTicket">
<id column="id" jdbcType="BIGINT" property="id"/>
<collection property="rtRiskSecurityLibraryTypeIdList" column="id" ofType="string"
select="queryRtWorkTicketToRiskSecurityLibraryTypeId"/>
</resultMap>
<select id="queryList" resultMap="queryListResultMap">
select rwt.*
from rt_work_ticket rwt
${ew.customSqlSegment}
</select>
<select id="queryRtWorkTicketToRiskSecurityLibraryTypeId" resultType="java.lang.String">
SELECT CONCAT(rt_risk_security_library_type_id) rt_work_ticket_to_risk_security_library_type_id
FROM rt_work_ticket_to_risk_security_library_type
WHERE rt_work_ticket_id = #{rtWorkTicketId}
</select>
</mapper>

View File

@ -3,7 +3,9 @@ package com.zhgd.xmgl.modules.rt.service;
import com.zhgd.xmgl.modules.rt.entity.RtRiskInventoryType;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
@ -22,4 +24,8 @@ public interface IRtRiskInventoryTypeService extends IService<RtRiskInventoryTyp
void add(RtRiskInventoryType rtRiskInventoryType);
void edit(RtRiskInventoryType rtRiskInventoryType);
IPage<RtRiskInventoryType> queryTreePageList(HashMap<String, Object> paramMap);
void importExcelTemplate(MultipartFile excelFile, String projectSn) throws Exception;
}

View File

@ -1,22 +1,31 @@
package com.zhgd.xmgl.modules.rt.service.impl;
import com.zhgd.xmgl.modules.rt.entity.RtRiskInventoryType;
import com.zhgd.xmgl.modules.rt.mapper.RtRiskInventoryTypeMapper;
import com.zhgd.xmgl.modules.rt.service.IRtRiskInventoryTypeService;
import org.springframework.stereotype.Service;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
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 com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.modules.rt.entity.RtRiskInventoryType;
import com.zhgd.xmgl.modules.rt.entity.RtRiskSecurityLibraryType;
import com.zhgd.xmgl.modules.rt.mapper.RtRiskInventoryTypeMapper;
import com.zhgd.xmgl.modules.rt.service.IRtRiskInventoryTypeService;
import com.zhgd.xmgl.util.*;
import org.apache.commons.collections.MapUtils;
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 java.io.IOException;
import java.io.InputStream;
import java.util.Collections;
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;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Description: 榕图-风险清册类型
@ -34,7 +43,7 @@ public class RtRiskInventoryTypeServiceImpl extends ServiceImpl<RtRiskInventoryT
public IPage<RtRiskInventoryType> queryPageList(HashMap<String, Object> paramMap) {
QueryWrapper<RtRiskInventoryType> queryWrapper = getQueryWrapper(paramMap);
Page<RtRiskInventoryType> page = PageUtil.getPage(paramMap);
IPage<RtRiskInventoryType> pageList = this.page(page, queryWrapper);
IPage<RtRiskInventoryType> pageList = baseMapper.queryList(page, queryWrapper);
pageList.setRecords(dealList(pageList.getRecords()));
return pageList;
}
@ -42,7 +51,7 @@ public class RtRiskInventoryTypeServiceImpl extends ServiceImpl<RtRiskInventoryT
@Override
public List<RtRiskInventoryType> queryList(HashMap<String, Object> paramMap) {
QueryWrapper<RtRiskInventoryType> queryWrapper = getQueryWrapper(paramMap);
return dealList(this.list(queryWrapper));
return dealList(baseMapper.queryList(queryWrapper));
}
private QueryWrapper<RtRiskInventoryType> getQueryWrapper(HashMap<String, Object> paramMap) {
@ -66,4 +75,71 @@ public class RtRiskInventoryTypeServiceImpl extends ServiceImpl<RtRiskInventoryT
public void edit(RtRiskInventoryType rtRiskInventoryType) {
baseMapper.updateById(rtRiskInventoryType);
}
@Override
public IPage<RtRiskInventoryType> queryTreePageList(HashMap<String, Object> paramMap) {
String taskName = MapUtils.getString(paramMap, "taskName");
Integer status = MapUtils.getInteger(paramMap, "status");
String actualFinishDate_begin = MapUtils.getString(paramMap, "actualFinishDate_begin");
String actualFinishDate_end = MapUtils.getString(paramMap, "actualFinishDate_end");
if (StrUtil.isBlank(taskName) && StrUtil.isBlank(actualFinishDate_begin) && StrUtil.isBlank(actualFinishDate_end) && status == null) {
int pageNo = Integer.parseInt(paramMap.getOrDefault("pageNo", 1).toString());
int pageSize = Integer.parseInt(paramMap.getOrDefault("pageSize", 10).toString());
List<RtRiskInventoryType> list = getParentChildList(paramMap);
IPage<RtRiskInventoryType> p = new Page<>();
int i = cn.hutool.core.util.PageUtil.getStart(pageNo - 1, pageSize);
p.setTotal(list.size());
p.setRecords(CollUtil.sub(list, i, i + pageSize));
p.setCurrent(pageNo);
p.setSize(pageSize);
return p;
} else {
return this.queryPageList(paramMap);
}
}
@Override
public void importExcelTemplate(MultipartFile excelFile, String projectSn) throws Exception {
InputStream is = excelFile.getInputStream();
List<Map<String, String>> list = ExcelUtils.jxlExlToList(is, 0);
if (list == null || list.size() == 0) {
throw new OpenAlertException(MessageUtil.get("excelNotDataErr"));
}
Map<String, RtRiskSecurityLibraryType> libraryObj = new HashMap<>();
for (Map<String, String> importInfo : list) {
//风险编号 工序 风险可能导致的后果 风险评定值D 风险级别 风险控制关键因素 预控措施 备注
if (importInfo == null || importInfo.get("风险编号") == null || importInfo.get("风险编号").equals("")) {
continue;
}
String code = importInfo.get("编码").trim();
String typeName = importInfo.get("作业类型、工序及部位");
String newCode = CodeUtils.subCode(code);
}
}
public List<RtRiskInventoryType> getParentChildList(HashMap<String, Object> paramMap) {
// 查询项目下的节点集合通过父节点分组
List<RtRiskInventoryType> progressTaskList = this.queryList(paramMap);
Map<Long, List<RtRiskInventoryType>> parentIdTaskListMap = progressTaskList.stream().collect(Collectors.groupingBy(RtRiskInventoryType::getParentId));
return getChild(parentIdTaskListMap, 0L);
}
/**
* 递归设置子节点列表
*
* @param parentIdTaskListMap 父节点对应的子节点列表
* @param parentId 父节点id
* @return
*/
public List<RtRiskInventoryType> getChild(Map<Long, List<RtRiskInventoryType>> parentIdTaskListMap, Long parentId) {
List<RtRiskInventoryType> parentList = parentIdTaskListMap.getOrDefault(parentId, Collections.emptyList());
if (CollUtil.isNotEmpty(parentList)) {
for (RtRiskInventoryType progressTask : parentList) {
progressTask.setChildren(getChild(parentIdTaskListMap, progressTask.getId()));
}
}
return parentList;
}
}

View File

@ -1,26 +1,31 @@
package com.zhgd.xmgl.modules.rt.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.zhgd.xmgl.modules.rt.entity.RtWorkTicket;
import com.zhgd.xmgl.modules.rt.entity.RtWorkTicketToRiskSecurityLibraryType;
import com.zhgd.xmgl.modules.rt.mapper.RtWorkTicketMapper;
import com.zhgd.xmgl.modules.rt.mapper.RtWorkTicketToRiskSecurityLibraryTypeMapper;
import com.zhgd.xmgl.modules.rt.service.IRtWorkTicketService;
import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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 com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.modules.rt.entity.RtRiskSecurityLibraryType;
import com.zhgd.xmgl.modules.rt.entity.RtWorkTicket;
import com.zhgd.xmgl.modules.rt.entity.RtWorkTicketToRiskSecurityLibraryType;
import com.zhgd.xmgl.modules.rt.mapper.RtRiskSecurityLibraryTypeMapper;
import com.zhgd.xmgl.modules.rt.mapper.RtWorkTicketMapper;
import com.zhgd.xmgl.modules.rt.mapper.RtWorkTicketToRiskSecurityLibraryTypeMapper;
import com.zhgd.xmgl.modules.rt.service.IRtWorkTicketService;
import com.zhgd.xmgl.util.PageUtil;
import com.zhgd.xmgl.util.RefUtil;
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 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: 榕图-工作票
* @author pds
@ -34,12 +39,14 @@ public class RtWorkTicketServiceImpl extends ServiceImpl<RtWorkTicketMapper, RtW
private RtWorkTicketMapper rtWorkTicketMapper;
@Autowired
private RtWorkTicketToRiskSecurityLibraryTypeMapper rtWorkTicketToRiskSecurityLibraryTypeMapper;
@Autowired
private RtRiskSecurityLibraryTypeMapper rtRiskSecurityLibraryTypeMapper;
@Override
public IPage<RtWorkTicket> queryPageList(HashMap<String, Object> paramMap) {
QueryWrapper<RtWorkTicket> queryWrapper = getQueryWrapper(paramMap);
Page<RtWorkTicket> page = PageUtil.getPage(paramMap);
IPage<RtWorkTicket> pageList = this.page(page, queryWrapper);
IPage<RtWorkTicket> pageList = baseMapper.queryList(page, queryWrapper);
pageList.setRecords(dealList(pageList.getRecords()));
return pageList;
}
@ -47,11 +54,11 @@ public class RtWorkTicketServiceImpl extends ServiceImpl<RtWorkTicketMapper, RtW
@Override
public List<RtWorkTicket> queryList(HashMap<String, Object> paramMap) {
QueryWrapper<RtWorkTicket> queryWrapper = getQueryWrapper(paramMap);
return dealList(this.list(queryWrapper));
return dealList(baseMapper.queryList(queryWrapper));
}
private QueryWrapper<RtWorkTicket> getQueryWrapper(HashMap<String, Object> paramMap) {
String alias = "";
String alias = "rwt.";
QueryWrapper<RtWorkTicket> queryWrapper = QueryGenerator.initPageQueryWrapper(RtWorkTicket.class, paramMap, alias);
queryWrapper.orderByDesc(alias + RefUtil.fieldNameUlc(RtWorkTicket::getId));
return queryWrapper;
@ -64,7 +71,12 @@ public class RtWorkTicketServiceImpl extends ServiceImpl<RtWorkTicketMapper, RtW
@Override
public void add(RtWorkTicket rtWorkTicket) {
rtWorkTicket.setId(null);
setRtRiskSecurityLibraryTypeStrIf(rtWorkTicket);
baseMapper.insert(rtWorkTicket);
insertRelIf(rtWorkTicket);
}
private void insertRelIf(RtWorkTicket rtWorkTicket) {
List<String> rtRiskSecurityLibraryTypeIdList = rtWorkTicket.getRtRiskSecurityLibraryTypeIdList();
if (CollUtil.isNotEmpty(rtRiskSecurityLibraryTypeIdList)) {
for (String id : rtRiskSecurityLibraryTypeIdList) {
@ -76,8 +88,39 @@ public class RtWorkTicketServiceImpl extends ServiceImpl<RtWorkTicketMapper, RtW
}
}
private void setRtRiskSecurityLibraryTypeStrIf(RtWorkTicket rtWorkTicket) {
String json = rtWorkTicket.getRtRiskSecurityLibraryTypeJson();
if (StringUtils.isNotBlank(json) && !json.equals("[]")) {
StringBuilder s = new StringBuilder();
JSONArray array = JSON.parseArray(json);
for (Object o : array) {
JSONArray o1 = (JSONArray) o;
if (o1.size() > 1) {
for (int i = 0; i < o1.size(); i++) {
String o3 = (String) o1.get(i);
RtRiskSecurityLibraryType type = rtRiskSecurityLibraryTypeMapper.selectById(o3);
if (type != null) {
s.append(type.getName());
if (i == (o1.size() - 1)) {
s.append(";");
} else {
s.append(":");
}
}
}
}
}
rtWorkTicket.setRtRiskSecurityLibraryTypeStr(s.toString());
}
}
@Override
public void edit(RtWorkTicket rtWorkTicket) {
setRtRiskSecurityLibraryTypeStrIf(rtWorkTicket);
//中间表
rtWorkTicketToRiskSecurityLibraryTypeMapper.delete(new LambdaQueryWrapper<RtWorkTicketToRiskSecurityLibraryType>()
.eq(RtWorkTicketToRiskSecurityLibraryType::getRtWorkTicketId, rtWorkTicket.getId()));
insertRelIf(rtWorkTicket);
baseMapper.updateById(rtWorkTicket);
}
}

Binary file not shown.