报告模板配置

This commit is contained in:
hanyong
2022-10-28 16:01:06 +08:00
parent 41ad17fb02
commit 4fe7be8960
17 changed files with 525 additions and 14 deletions

View File

@@ -0,0 +1,18 @@
package com.njcn.system.pojo.constant;
public interface DicState {
/**
* 状态 0-正常1-停用2-删除 默认正常
*/
int ENABLE = 0;
int PAUSE = 1;
int DELETE = 2;
/**
* 顶层父类的pid
*/
String FATHER_PID = "0";
}

View File

@@ -0,0 +1,32 @@
package com.njcn.system.pojo.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class DicDTO implements Serializable {
@ApiModelProperty("Id")
private String id;
@ApiModelProperty("父节点")
private String pid;
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("编码")
private String code;
@ApiModelProperty("排序")
private Integer sort;
@ApiModelProperty("描述")
private String remark;
@ApiModelProperty("子级")
List<DicDTO> children;
}

View File

@@ -0,0 +1,52 @@
package com.njcn.system.pojo.param;
import com.njcn.common.pojo.constant.PatternRegex;
import com.njcn.web.constant.ValidMessage;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
@Data
public class DicParam {
@ApiModelProperty("节点")
@NotBlank(message = ValidMessage.PID_NOT_BLANK)
private String pid;
@ApiModelProperty("名称")
@NotBlank(message = ValidMessage.NAME_NOT_BLANK)
@Pattern(regexp = PatternRegex.DIC_REGEX, message = ValidMessage.NAME_FORMAT_ERROR)
private String name;
@ApiModelProperty("编号")
@NotBlank(message = ValidMessage.CODE_NOT_BLANK)
private String code;
@ApiModelProperty("排序")
@NotNull(message = ValidMessage.SORT_NOT_NULL)
@Range(min = 0, max = 999, message = ValidMessage.PARAM_FORMAT_ERROR)
private Integer sort;
@ApiModelProperty("描述")
private String remark;
/**
* 更新操作实体
* 需要填写的参数id
*/
@Data
@EqualsAndHashCode(callSuper = true)
public static class UpdateParam extends DicParam {
@ApiModelProperty("Id")
@NotBlank(message = ValidMessage.ID_NOT_BLANK)
@Pattern(regexp = PatternRegex.SYSTEM_ID, message = ValidMessage.ID_FORMAT_ERROR)
private String id;
}
}

View File

@@ -26,7 +26,7 @@ public class EventTemplateParam {
@ApiModelProperty("模板描述")
@NotBlank(message = ValidMessage.CODE_NOT_BLANK)
@Pattern(regexp = PatternRegex.DES64_REGEX, message = ValidMessage.CODE_FORMAT_ERROR)
private String mark;
private String code;
@ApiModelProperty("类型")
private Integer type;
@@ -56,7 +56,7 @@ public class EventTemplateParam {
/**
* 区分监测点与区域报告
*/
private String type;
private Integer type;
}
/**

View File

@@ -0,0 +1,30 @@
package com.njcn.system.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_dic_tree")
public class Dic extends BaseEntity {
private static final long serialVersionUID = 1L;
private String id;
private String pid;
private String pids;
private String name;
private String code;
private Integer sort;
private String remark;
private Integer status;
}

View File

@@ -37,7 +37,7 @@ public class EventTemplate extends BaseEntity {
/**
* 模板名称
*/
private String mark;
private String code;
/**
* 状态0-删除 1-正常

View File

@@ -0,0 +1,35 @@
package com.njcn.system.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class DicVO implements Serializable {
@ApiModelProperty("Id")
private String id;
@ApiModelProperty("父节点")
private String pid;
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("编码")
private String code;
@ApiModelProperty("排序")
private Integer sort;
@ApiModelProperty("描述")
private String remark;
@ApiModelProperty("状态")
private Integer status;
@ApiModelProperty("子级")
List<DicVO> children;
}

View File

@@ -32,7 +32,7 @@ public class EventTemplateVO implements Serializable {
/**
* 模板描述
*/
private String mark;
private String code;
/**
* 状态0-删除 1-正常

View File

@@ -0,0 +1,129 @@
package com.njcn.system.controller;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.common.utils.LogUtil;
import com.njcn.system.pojo.param.DicParam;
import com.njcn.system.pojo.po.Dic;
import com.njcn.system.pojo.vo.DicVO;
import com.njcn.system.service.IDicService;
import com.njcn.user.pojo.param.FunctionParam;
import com.njcn.user.pojo.po.Function;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author hany
* @date 2022/10/18
*/
@Validated
@Slf4j
@RestController
@RequestMapping("/dic")
@Api(tags = "树型字典管理")
@AllArgsConstructor
public class DicController extends BaseController {
private final IDicService dicService;
/**
* 获取树
* @return
*/
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/dicTree")
@ApiOperation("获取字典树")
public HttpResult<List<DicVO>> getDicTree(){
String methodDescribe = getMethodDescribe("getDicTree");
List<DicVO> list = dicService.getDicTree();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,list,methodDescribe);
}
/**
* 新增
* @param dicParam
*/
@OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.ADD)
@PostMapping("/add")
@ApiOperation("新增")
@ApiImplicitParam(name = "dicParam", value = "新增数据", required = true)
public HttpResult<Boolean> add(@RequestBody @Validated DicParam dicParam) {
String methodDescribe = getMethodDescribe("add");
LogUtil.njcnDebug(log, "{},数据为:{}", methodDescribe, dicParam);
boolean result = dicService.addDic(dicParam);
if (result) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
} else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe);
}
}
/**
* 修改
* @param dicParam
* @return
*/
@OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.UPDATE)
@PutMapping("/update")
@ApiOperation("修改")
@ApiImplicitParam(name = "dicParam", value = "数据", required = true)
public HttpResult<Boolean> update(@RequestBody @Validated DicParam.UpdateParam dicParam) {
String methodDescribe = getMethodDescribe("update");
LogUtil.njcnDebug(log, "{},更新的信息为:{}", methodDescribe,dicParam);
boolean result = dicService.updateDic(dicParam);
if (result){
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
} else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe);
}
}
/**
* 删除
* @param id
* @return
*/
@OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.DELETE)
@DeleteMapping("/delete")
@ApiOperation("删除")
@ApiImplicitParam(name = "id", value = "id", required = true)
public HttpResult<Boolean> delete(@RequestParam @Validated String id) {
String methodDescribe = getMethodDescribe("delete");
LogUtil.njcnDebug(log, "{},删除的id为{}", methodDescribe,id);
boolean result = dicService.deleteDic(id);
if (result){
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
} else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe);
}
}
/**
* 查询
* @param id
* @return
*/
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/getDicById")
@ApiOperation("查看详情")
@ApiImplicitParam(name = "id", value = "id", required = true)
public HttpResult<Dic> getDicById(String id){
String methodDescribe = getMethodDescribe("getDicById");
LogUtil.njcnDebug(log, "{},id为{}", methodDescribe,id);
Dic dic = dicService.getDicById(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,dic,methodDescribe);
}
}

View File

@@ -10,6 +10,7 @@ import com.njcn.common.utils.HttpResultUtil;
import com.njcn.common.utils.LogUtil;
import com.njcn.system.pojo.param.EventTemplateParam;
import com.njcn.system.pojo.po.EventTemplate;
import com.njcn.system.pojo.vo.EventTemplateVO;
import com.njcn.system.service.IEventTemplateService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
@@ -47,11 +48,13 @@ public class EventTemplateController extends BaseController{
* @return
*/
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@GetMapping("/getList")
@PostMapping("/getList")
@ApiOperation("查询所有模板")
public HttpResult<List<EventTemplate>> getList() {
@ApiImplicitParam(name = "queryParam", value = "查询参数", required = true)
public HttpResult<Page<EventTemplateVO>> getList(@RequestBody @Validated EventTemplateParam.EventTemplateQueryParam queryParam) {
String methodDescribe = getMethodDescribe("getList");
List<EventTemplate> res = iEventTemplateService.getList();
LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, queryParam);
Page<EventTemplateVO> res = iEventTemplateService.getList(queryParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe);
}
@@ -123,7 +126,7 @@ public class EventTemplateController extends BaseController{
@OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.DELETE)
@ApiOperation("删除模板")
@ApiImplicitParam(name = "ids", value = "模板索引", required = true)
public HttpResult<EventTemplate> delete(@RequestBody List<String> ids){
public HttpResult<Object> delete(@RequestBody List<String> ids){
String methodDescribe = getMethodDescribe("delete");
boolean result = iEventTemplateService.delete(ids);
if(result){
@@ -142,7 +145,7 @@ public class EventTemplateController extends BaseController{
@PostMapping("/selectRelevance")
@ApiOperation("根据模板id查询关系")
@ApiImplicitParam(name = "ids", value = "角色索引", required = true)
public HttpResult<Object> selectRelevance(@RequestBody List<String> ids) {
public HttpResult<Object> selectRelevance(@RequestBody @Validated List<String> ids) {
String methodDescribe = getMethodDescribe("selectRelevance");
LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, ids);
boolean result = iEventTemplateService.selectRelevance(ids);

View File

@@ -0,0 +1,12 @@
package com.njcn.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.system.pojo.po.Dic;
import com.njcn.system.pojo.vo.DicVO;
import java.util.List;
public interface DicMapper extends BaseMapper<Dic> {
List<DicVO> getAllDic();
}

View File

@@ -0,0 +1,8 @@
<?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.njcn.system.mapper.DicMapper">
<select id="getAllDic" resultType="DicVO">
SELECT * from sys_dic_tree WHERE status = 0
</select>
</mapper>

View File

@@ -0,0 +1,52 @@
package com.njcn.system.service;
import com.njcn.system.pojo.param.DicParam;
import com.njcn.system.pojo.po.Dic;
import com.njcn.system.pojo.vo.DicVO;
import com.njcn.user.pojo.param.FunctionParam;
import com.njcn.user.pojo.po.Function;
import java.util.List;
/**
* @author hany
* @date 2022/10/18
*/
public interface IDicService {
/**
* 获取树
* @return
*/
List<DicVO> getDicTree();
/**
* 功能描述:新增
*
* @param dicParam 资源参数
*/
boolean addDic(DicParam dicParam);
/**
* 功能描述: 修改
*
* @param dicParam
*/
boolean updateDic(DicParam.UpdateParam dicParam);
/**
* 功能描述:删除
*
* @param id
* @return boolean
*/
boolean deleteDic(String id);
/**
* 功能描述: 根据id获取菜单详情
*
* @param id
*/
Dic getDicById(String id);
}

View File

@@ -19,7 +19,7 @@ public interface IEventTemplateService extends IService<EventTemplate> {
* 查询模板
* @return 字典列表
*/
List<EventTemplate> getList();
Page<EventTemplateVO> getList(EventTemplateParam.EventTemplateQueryParam queryParam);
/**
* 根据id查询模板

View File

@@ -0,0 +1,124 @@
package com.njcn.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.system.enums.EventResponseEnum;
import com.njcn.system.enums.TemplateTreeEnum;
import com.njcn.system.mapper.DicMapper;
import com.njcn.system.pojo.constant.DicState;
import com.njcn.system.pojo.param.DicParam;
import com.njcn.system.pojo.po.Dic;
import com.njcn.system.pojo.po.EventTemplate;
import com.njcn.system.pojo.vo.DicVO;
import com.njcn.system.service.IDicService;
import com.njcn.user.pojo.constant.FunctionState;
import com.njcn.user.pojo.param.FunctionParam;
import com.njcn.user.pojo.po.Function;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @author hany
* @date 2022/10/18
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class DicServiceImpl extends ServiceImpl<DicMapper, Dic> implements IDicService {
private final DicMapper dicMapper;
@Override
public boolean addDic(DicParam dicParam) {
checkDicParam(dicParam,false);
Dic dic = new Dic();
BeanUtil.copyProperties(dicParam, dic);
dic.setStatus(DicState.ENABLE);
if (Objects.equals(dicParam.getPid(),DicState.FATHER_PID)){
dic.setPids(DicState.FATHER_PID);
} else {
Dic fatherFaction = this.lambdaQuery().eq(Dic::getId,dicParam.getPid()).one();
if (Objects.equals(fatherFaction.getPid(),DicState.FATHER_PID)){
dic.setPids(dicParam.getPid());
} else {
String pidS = fatherFaction.getPids();
dic.setPids(pidS+","+dicParam.getPid());
}
}
return this.save(dic);
}
@Override
public boolean updateDic(DicParam.UpdateParam dicParam) {
checkDicParam(dicParam,true);
Dic dic = new Dic();
BeanUtil.copyProperties(dicParam, dic);
return this.updateById(dic);
}
@Override
public boolean deleteDic(String id) {
return this.lambdaUpdate().set(Dic::getStatus, DicState.DELETE).in(Dic::getId, id).update();
}
@Override
public Dic getDicById(String id) {
return this.lambdaQuery().eq(Dic::getId,id).one();
}
/**
* 获取树
* @return
*/
@Override
public List<DicVO> getDicTree() {
List<DicVO> list = dicMapper.getAllDic();
return list.stream()
.filter(fun -> Objects.equals(TemplateTreeEnum.FATHER_PID,fun.getPid()))
.peek(funS -> funS.setChildren(getChildList(funS, list)))
.sorted(Comparator.comparingInt(DicVO::getSort))
.collect(Collectors.toList());
}
/**
* 递归组装
*/
private List<DicVO> getChildList(DicVO dictMenu, List<DicVO> categories) {
return categories.stream().filter(o -> Objects.equals(o.getPid(),dictMenu.getId()))
.peek(o -> o.setChildren(getChildList(o, categories)))
.sorted(Comparator.comparingInt(DicVO::getSort))
.collect(Collectors.toList());
}
/**
* 校验参数,
* 1.检查是否存在相同名称的菜单
*/
private void checkDicParam(DicParam dicParam, boolean isExcludeSelf) {
LambdaQueryWrapper<Dic> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper
.eq(Dic::getName,dicParam.getName())
.eq(Dic::getStatus, DicState.ENABLE);
//更新的时候,需排除当前记录
if (isExcludeSelf) {
if (dicParam instanceof DicParam.UpdateParam) {
lambdaQueryWrapper.ne(Dic::getId, ((DicParam.UpdateParam) dicParam).getId());
}
}
int countByAccount = this.count(lambdaQueryWrapper);
//大于等于1个则表示重复
if (countByAccount >= 1) {
throw new BusinessException(EventResponseEnum.NAME_REPEAT);
}
}
}

View File

@@ -109,7 +109,7 @@ public class EventDictServiceImpl extends ServiceImpl<EventDictMapper, ReportDic
//字典类型表,提供名称、编码模糊查询
queryWrapper
.and(param -> param.like("report_dict.name",dictQueryParam.getSearchValue())
.or().like("report_dict.describe",dictQueryParam.getSearchValue()));
.or().like("report_dict.report_describe",dictQueryParam.getSearchValue()));
}
//排序
if (ObjectUtil.isAllNotEmpty(dictQueryParam.getSortBy(), dictQueryParam.getOrderBy())) {
@@ -154,7 +154,7 @@ public class EventDictServiceImpl extends ServiceImpl<EventDictMapper, ReportDic
}
/**
* 递归组装字典
* 递归组装字典
*/
private List<EventReportDictVO> getChildList(EventReportDictVO dictMenu, List<EventReportDictVO> categories) {
return categories.stream().filter(o -> Objects.equals(o.getPid(), dictMenu.getId()))

View File

@@ -41,8 +41,24 @@ public class EventTemplateServiceImpl extends ServiceImpl<EventTemplateMapper, E
* @return
*/
@Override
public List<EventTemplate> getList() {
return this.list();
public Page<EventTemplateVO> getList(EventTemplateParam.EventTemplateQueryParam queryParam) {
QueryWrapper<EventTemplateVO> queryWrapper = new QueryWrapper<>();
if (ObjectUtil.isNotNull(queryParam)) {
//查询参数不为空,进行条件填充
if (StrUtil.isNotBlank(queryParam.getSearchValue())) {
//根据名称模糊查询
queryWrapper
.and(param -> param.like("report_template.name", queryParam.getSearchValue()));
}
}
queryWrapper.ne("report_template.state", DataStateEnum.DELETED.getCode());
if (queryParam.getType().equals(0)){
queryWrapper.in("report_template.type",0);
}else if(queryParam.getType().equals(1)){
queryWrapper.eq("report_template.type",1);
}
//初始化分页数据
return this.baseMapper.page(new Page<>(PageFactory.getPageNum(queryParam), PageFactory.getPageSize(queryParam)), queryWrapper);
}
/**