表头自定义修改默认表头

This commit is contained in:
高嵩
2023-02-13 14:18:37 +08:00
parent 25370a0857
commit 0df1e1f707
@@ -8,6 +8,7 @@ import com.jero.modules.head.enums.AffirmFlagEnum;
import com.jero.modules.head.mapper.HeadCustomEOMapper;
import com.jero.modules.head.service.IHeadCustomEOService;
import com.jero.modules.head.vo.HeadCustomVO;
import net.sf.saxon.functions.ConstantFunction;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
@@ -27,91 +28,91 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 自定义表头
* @Author: jero-boot
* @Date: 2023-01-05
* @Date: 2023-01-05
* @Version: V1.0
*/
@Service
public class HeadCustomEOServiceImpl extends ServiceImpl<HeadCustomEOMapper, HeadCustomEO> implements IHeadCustomEOService {
/**
* 保存
*
* @param headCustomEOList
* @return
*/
@Override
/**
* 保存
*
* @param headCustomEOList
* @return
*/
@Override
public void add(List<HeadCustomEO> headCustomEOList) {
if(ObjectUtils.isNotEmpty(headCustomEOList)){
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//先删除再新增
LambdaQueryWrapper<HeadCustomEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(HeadCustomEO::getCreateBy,loginUser.getUsername()).in(HeadCustomEO::getModuleFlag,headCustomEOList.get(0).getModuleFlag());
this.remove(wrapper);
if (ObjectUtils.isNotEmpty(headCustomEOList)) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//先删除再新增
LambdaQueryWrapper<HeadCustomEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(HeadCustomEO::getCreateBy, loginUser.getUsername()).in(HeadCustomEO::getModuleFlag, headCustomEOList.get(0).getModuleFlag());
this.remove(wrapper);
//一级标题
List<HeadCustomEO> oneList = headCustomEOList.stream().filter(e -> StringUtils.isBlank(e.getAffirmFlag())).collect(Collectors.toList());
Collections.sort(oneList);
//二级标题
List<HeadCustomEO> twoList = headCustomEOList.stream().filter(e -> StringUtils.isNotBlank(e.getAffirmFlag())).collect(Collectors.toList());
//一级标题
List<HeadCustomEO> oneList = headCustomEOList.stream().filter(e -> StringUtils.isBlank(e.getAffirmFlag())).collect(Collectors.toList());
Collections.sort(oneList);
//二级标题
List<HeadCustomEO> twoList = headCustomEOList.stream().filter(e -> StringUtils.isNotBlank(e.getAffirmFlag())).collect(Collectors.toList());
//设计
List<HeadCustomEO> design = twoList.stream().filter(e -> AffirmFlagEnum.DESIGN_FLAG.getValue().equals(e.getAffirmFlag())).collect(Collectors.toList());
Collections.sort(design);
//pre
List<HeadCustomEO> affirm = twoList.stream().filter(e -> AffirmFlagEnum.AFFIRM_FLAG.getValue().equals(e.getAffirmFlag())).collect(Collectors.toList());
Collections.sort(affirm);
//验证
List<HeadCustomEO> verify = twoList.stream().filter(e -> AffirmFlagEnum.VERIFY_FLAG.getValue().equals(e.getAffirmFlag())).collect(Collectors.toList());
Collections.sort(verify);
//设计
List<HeadCustomEO> design = twoList.stream().filter(e -> AffirmFlagEnum.DESIGN_FLAG.getValue().equals(e.getAffirmFlag())).collect(Collectors.toList());
Collections.sort(design);
//pre
List<HeadCustomEO> affirm = twoList.stream().filter(e -> AffirmFlagEnum.AFFIRM_FLAG.getValue().equals(e.getAffirmFlag())).collect(Collectors.toList());
Collections.sort(affirm);
//验证
List<HeadCustomEO> verify = twoList.stream().filter(e -> AffirmFlagEnum.VERIFY_FLAG.getValue().equals(e.getAffirmFlag())).collect(Collectors.toList());
Collections.sort(verify);
if(ObjectUtils.isNotEmpty(design)){
HeadCustomEO headCustomEO = new HeadCustomEO();
headCustomEO.setHeadFieldCn(AffirmFlagEnum.DESIGN_FLAG.getName());
headCustomEO.setHeadFieldEn(AffirmFlagEnum.DESIGN_FLAG.getNameEn());
headCustomEO.setModuleFlag(design.get(0).getModuleFlag());
headCustomEO.setSort(design.get(0).getSort());
headCustomEO.setChildren(design);
oneList.add(headCustomEO);
}
if(ObjectUtils.isNotEmpty(affirm)){
HeadCustomEO headCustomEO = new HeadCustomEO();
headCustomEO.setHeadFieldCn(AffirmFlagEnum.AFFIRM_FLAG.getName());
headCustomEO.setHeadFieldEn(AffirmFlagEnum.AFFIRM_FLAG.getNameEn());
headCustomEO.setModuleFlag(affirm.get(0).getModuleFlag());
headCustomEO.setSort(affirm.get(0).getSort());
headCustomEO.setChildren(affirm);
oneList.add(headCustomEO);
}
if(ObjectUtils.isNotEmpty(verify)){
HeadCustomEO headCustomEO = new HeadCustomEO();
headCustomEO.setHeadFieldCn(AffirmFlagEnum.VERIFY_FLAG.getName());
headCustomEO.setHeadFieldEn(AffirmFlagEnum.VERIFY_FLAG.getNameEn());
headCustomEO.setModuleFlag(verify.get(0).getModuleFlag());
headCustomEO.setSort(verify.get(0).getSort());
headCustomEO.setChildren(verify);
oneList.add(headCustomEO);
}
if (ObjectUtils.isNotEmpty(design)) {
HeadCustomEO headCustomEO = new HeadCustomEO();
headCustomEO.setHeadFieldCn(AffirmFlagEnum.DESIGN_FLAG.getName());
headCustomEO.setHeadFieldEn(AffirmFlagEnum.DESIGN_FLAG.getNameEn());
headCustomEO.setModuleFlag(design.get(0).getModuleFlag());
headCustomEO.setSort(design.get(0).getSort());
headCustomEO.setChildren(design);
oneList.add(headCustomEO);
}
if (ObjectUtils.isNotEmpty(affirm)) {
HeadCustomEO headCustomEO = new HeadCustomEO();
headCustomEO.setHeadFieldCn(AffirmFlagEnum.AFFIRM_FLAG.getName());
headCustomEO.setHeadFieldEn(AffirmFlagEnum.AFFIRM_FLAG.getNameEn());
headCustomEO.setModuleFlag(affirm.get(0).getModuleFlag());
headCustomEO.setSort(affirm.get(0).getSort());
headCustomEO.setChildren(affirm);
oneList.add(headCustomEO);
}
if (ObjectUtils.isNotEmpty(verify)) {
HeadCustomEO headCustomEO = new HeadCustomEO();
headCustomEO.setHeadFieldCn(AffirmFlagEnum.VERIFY_FLAG.getName());
headCustomEO.setHeadFieldEn(AffirmFlagEnum.VERIFY_FLAG.getNameEn());
headCustomEO.setModuleFlag(verify.get(0).getModuleFlag());
headCustomEO.setSort(verify.get(0).getSort());
headCustomEO.setChildren(verify);
oneList.add(headCustomEO);
}
List<HeadCustomEO> headCustomEOS = new ArrayList<>();
for (HeadCustomEO headCustomEO : oneList) {
//一级标题
String id = UUID.randomUUID().toString().replace("-", "");
HeadCustomEO headCustomEOTemp = getHeadCustomEO(loginUser, headCustomEO, id);
headCustomEOS.add(headCustomEOTemp);
//二级标题
if(ObjectUtils.isNotEmpty(headCustomEO.getChildren())){
for (HeadCustomEO child : headCustomEO.getChildren()) {
String idTemp = UUID.randomUUID().toString().replace("-", "");
HeadCustomEO customEO = getHeadCustomEO(loginUser, child, idTemp);
customEO.setParentId(id);
headCustomEOS.add(customEO);
}
}
}
if(ObjectUtils.isNotEmpty(headCustomEOS)){
this.saveBatch(headCustomEOS);
}
}
List<HeadCustomEO> headCustomEOS = new ArrayList<>();
for (HeadCustomEO headCustomEO : oneList) {
//一级标题
String id = UUID.randomUUID().toString().replace("-", "");
HeadCustomEO headCustomEOTemp = getHeadCustomEO(loginUser, headCustomEO, id);
headCustomEOS.add(headCustomEOTemp);
//二级标题
if (ObjectUtils.isNotEmpty(headCustomEO.getChildren())) {
for (HeadCustomEO child : headCustomEO.getChildren()) {
String idTemp = UUID.randomUUID().toString().replace("-", "");
HeadCustomEO customEO = getHeadCustomEO(loginUser, child, idTemp);
customEO.setParentId(id);
headCustomEOS.add(customEO);
}
}
}
if (ObjectUtils.isNotEmpty(headCustomEOS)) {
this.saveBatch(headCustomEOS);
}
}
}
// @Override
// public void add(List<HeadCustomEO> headCustomEOList) {
@@ -144,131 +145,195 @@ public class HeadCustomEOServiceImpl extends ServiceImpl<HeadCustomEOMapper, Hea
// }
// }
@NotNull
private HeadCustomEO getHeadCustomEO(LoginUser loginUser, HeadCustomEO headCustomEO, String id) {
HeadCustomEO headCustomEOTemp = new HeadCustomEO();
headCustomEOTemp.setId(id);
headCustomEOTemp.setHeadFieldCn(headCustomEO.getHeadFieldCn());
headCustomEOTemp.setHeadFieldEn(headCustomEO.getHeadFieldEn());
headCustomEOTemp.setModuleFlag(headCustomEO.getModuleFlag());
headCustomEOTemp.setAffirmFlag(headCustomEO.getAffirmFlag());
headCustomEOTemp.setField(headCustomEO.getField());
headCustomEOTemp.setSort(headCustomEO.getSort());
headCustomEOTemp.setCreateBy(loginUser.getUsername());
headCustomEOTemp.setCreateTime(new Date());
headCustomEOTemp.setUpdateTime(new Date());
return headCustomEOTemp;
}
/**
* 更新
*
* @param headCustomEO
* @return
*/
@Override
public void editById(HeadCustomEO headCustomEO) {
Date now = new Date();
headCustomEO.setUpdateTime(now);
saveOrUpdate(headCustomEO);
@NotNull
private HeadCustomEO getHeadCustomEO(LoginUser loginUser, HeadCustomEO headCustomEO, String id) {
HeadCustomEO headCustomEOTemp = new HeadCustomEO();
headCustomEOTemp.setId(id);
headCustomEOTemp.setHeadFieldCn(headCustomEO.getHeadFieldCn());
headCustomEOTemp.setHeadFieldEn(headCustomEO.getHeadFieldEn());
headCustomEOTemp.setModuleFlag(headCustomEO.getModuleFlag());
headCustomEOTemp.setAffirmFlag(headCustomEO.getAffirmFlag());
headCustomEOTemp.setField(headCustomEO.getField());
headCustomEOTemp.setSort(headCustomEO.getSort());
headCustomEOTemp.setCreateBy(loginUser.getUsername());
headCustomEOTemp.setCreateTime(new Date());
headCustomEOTemp.setUpdateTime(new Date());
return headCustomEOTemp;
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
/**
* 更新
*
* @param headCustomEO
* @return
*/
@Override
public void editById(HeadCustomEO headCustomEO) {
Date now = new Date();
headCustomEO.setUpdateTime(now);
saveOrUpdate(headCustomEO);
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
removeById(id);
}
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public HeadCustomEO queryById(String id) {
return getById(id);
}
/**
* 列表查询
*
* @return
*/
@Override
public List<HeadCustomVO> queryList(String cut,String moduleFlag) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
LambdaQueryWrapper<HeadCustomEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(HeadCustomEO::getCreateBy,loginUser.getUsername()).in(HeadCustomEO::getModuleFlag,moduleFlag);
List<HeadCustomEO> list = this.list(wrapper);
List<HeadCustomVO> headCustomVOOneList = new LinkedList<>();
if(ObjectUtils.isNotEmpty(list)){
//列表表头一级
List<HeadCustomEO> oneList = list.stream()
.filter(e -> StringUtils.isBlank(e.getAffirmFlag())).collect(Collectors.toList());
//列表表头二级
List<HeadCustomEO> twoList = list.stream()
.filter(e -> StringUtils.isNotBlank(e.getAffirmFlag())).collect(Collectors.toList());
Collections.sort(oneList);
for (HeadCustomEO headCustomEO : oneList) {
HeadCustomVO headCustomVO = new HeadCustomVO();
if(ObjectUtils.isNotEmpty(twoList)){
List<HeadCustomEO> two = twoList.stream()
.filter(e -> headCustomEO.getId().equals(e.getParentId())).collect(Collectors.toList());
Collections.sort(two);
List<HeadCustomVO> headCustomVOTwoList = new LinkedList<>();
for (HeadCustomEO customEO : two) {
HeadCustomVO headCustomVOTemp = new HeadCustomVO();
getHeadCustomVO(cut, customEO, headCustomVOTemp);
headCustomVOTwoList.add(headCustomVOTemp);
}
if(ObjectUtils.isNotEmpty(headCustomVOTwoList)){
headCustomVO.setChildren(headCustomVOTwoList);
}
}
getHeadCustomVO(cut, headCustomEO,headCustomVO);
headCustomVOOneList.add(headCustomVO);
}
}
return headCustomVOOneList;
* 列表查询
*
* @return
*/
@Override
public List<HeadCustomVO> queryList(String cut, String moduleFlag) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
LambdaQueryWrapper<HeadCustomEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(HeadCustomEO::getCreateBy, loginUser.getUsername()).in(HeadCustomEO::getModuleFlag, moduleFlag);
List<HeadCustomEO> list = this.list(wrapper);
List<HeadCustomVO> headCustomVOOneList = new LinkedList<>();
if (ObjectUtils.isNotEmpty(list)) {
//列表表头一级
List<HeadCustomEO> oneList = list.stream()
.filter(e -> StringUtils.isBlank(e.getAffirmFlag())).collect(Collectors.toList());
//列表表头二级
List<HeadCustomEO> twoList = list.stream()
.filter(e -> StringUtils.isNotBlank(e.getAffirmFlag())).collect(Collectors.toList());
Collections.sort(oneList);
for (HeadCustomEO headCustomEO : oneList) {
HeadCustomVO headCustomVO = new HeadCustomVO();
if (ObjectUtils.isNotEmpty(twoList)) {
List<HeadCustomEO> two = twoList.stream()
.filter(e -> headCustomEO.getId().equals(e.getParentId())).collect(Collectors.toList());
Collections.sort(two);
List<HeadCustomVO> headCustomVOTwoList = new LinkedList<>();
for (HeadCustomEO customEO : two) {
HeadCustomVO headCustomVOTemp = new HeadCustomVO();
getHeadCustomVO(cut, customEO, headCustomVOTemp);
headCustomVOTwoList.add(headCustomVOTemp);
}
if (ObjectUtils.isNotEmpty(headCustomVOTwoList)) {
headCustomVO.setChildren(headCustomVOTwoList);
}
}
getHeadCustomVO(cut, headCustomEO, headCustomVO);
headCustomVOOneList.add(headCustomVO);
}
}
List<HeadCustomVO> res = new ArrayList<>();
if ("法规清单".equals(moduleFlag) || "虚拟清单详情".equals(moduleFlag) || "维护清单".equals(moduleFlag)) {
res = checkDefaultHead(headCustomVOOneList, cut, moduleFlag);
} else {
res = headCustomVOOneList;
}
return res;
}
@NotNull
private HeadCustomVO getHeadCustomVO(String cut, HeadCustomEO headCustomEO,HeadCustomVO headCustomVO) {
headCustomVO.setDataIndex(headCustomEO.getField());
if(CutEnum.CN.getValue().equals(cut)){
headCustomVO.setTitle(headCustomEO.getHeadFieldCn());
}else{
headCustomVO.setTitle(headCustomEO.getHeadFieldEn());
}
//每个功能模块列表表头固定的列可能不相同,所以需要单独处理(后期变更的时候继续维护此处即可)
if("法规清单".equals(headCustomEO.getModuleFlag())){
if("编号".equals(headCustomEO.getHeadFieldCn())){
headCustomVO.setFixed("left");
}
if("标题".equals(headCustomEO.getHeadFieldCn())){
headCustomVO.setFixed("left");
}
if("操作".equals(headCustomEO.getHeadFieldCn())){
headCustomVO.setFixed("right");
}
}
return headCustomVO;
}
/**
* 检查默认表头,如果不存在则添加进列表
*/
private List<HeadCustomVO> checkDefaultHead(List<HeadCustomVO> headCustomVOOneList, String cut, String moduleFlag) {
List<HeadCustomVO> res = new ArrayList<>();
//编号,标题,操作
boolean hasBH = false;
boolean hasBT = false;
boolean hasCZ = false;
for (HeadCustomVO hcVO : headCustomVOOneList) {
if ("编号".equals(hcVO.getTitle()) || "Number".equals(hcVO.getTitle())) {
hasBH = true;
}
if ("标题".equals(hcVO.getTitle())) {
hasBT = true;
}
if ("操作".equals(hcVO.getTitle())) {
hasCZ = true;
}
}
if (!hasBH) {
HeadCustomVO bh = new HeadCustomVO();
bh.setDataIndex("serialNumber");
if (CutEnum.CN.getValue().equals(cut)) {
bh.setTitle("编号");
} else {
bh.setTitle("Number");
}
bh.setFixed("left");
res.add(bh);
}
if (!hasBT) {
HeadCustomVO bt = new HeadCustomVO();
bt.setDataIndex("title");
if (CutEnum.CN.getValue().equals(cut)) {
bt.setTitle("标题");
} else {
bt.setTitle("title");
}
bt.setFixed("left");
res.add(bt);
}
res.addAll(headCustomVOOneList);
if (!hasCZ) {
HeadCustomVO cz = new HeadCustomVO();
cz.setDataIndex("operation");
if (CutEnum.CN.getValue().equals(cut)) {
cz.setTitle("操作");
} else {
cz.setTitle("Operation");
}
cz.setFixed("right");
res.add(cz);
}
return res;
}
@NotNull
private HeadCustomVO getHeadCustomVO(String cut, HeadCustomEO headCustomEO, HeadCustomVO headCustomVO) {
headCustomVO.setDataIndex(headCustomEO.getField());
if (CutEnum.CN.getValue().equals(cut)) {
headCustomVO.setTitle(headCustomEO.getHeadFieldCn());
} else {
headCustomVO.setTitle(headCustomEO.getHeadFieldEn());
}
//每个功能模块列表表头固定的列可能不相同,所以需要单独处理(后期变更的时候继续维护此处即可)
if ("法规清单".equals(headCustomEO.getModuleFlag())) {
if ("编号".equals(headCustomEO.getHeadFieldCn())) {
headCustomVO.setFixed("left");
}
if ("标题".equals(headCustomEO.getHeadFieldCn())) {
headCustomVO.setFixed("left");
}
if ("操作".equals(headCustomEO.getHeadFieldCn())) {
headCustomVO.setFixed("right");
}
}
return headCustomVO;
}
}