From 0df1e1f70700bfc32b69066f54ddfbe01cd99ebe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E5=B5=A9?= Date: Mon, 13 Feb 2023 14:18:37 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A8=E5=A4=B4=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=BB=98=E8=AE=A4=E8=A1=A8=E5=A4=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/HeadCustomEOServiceImpl.java | 435 ++++++++++-------- 1 file changed, 250 insertions(+), 185 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/service/impl/HeadCustomEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/service/impl/HeadCustomEOServiceImpl.java index 636cbf7fb..283c9779c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/service/impl/HeadCustomEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/head/service/impl/HeadCustomEOServiceImpl.java @@ -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 implements IHeadCustomEOService { - /** - * 保存 - * - * @param headCustomEOList - * @return - */ - @Override + /** + * 保存 + * + * @param headCustomEOList + * @return + */ + @Override public void add(List headCustomEOList) { - if(ObjectUtils.isNotEmpty(headCustomEOList)){ - LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - //先删除再新增 - LambdaQueryWrapper 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 wrapper = new LambdaQueryWrapper<>(); + wrapper.in(HeadCustomEO::getCreateBy, loginUser.getUsername()).in(HeadCustomEO::getModuleFlag, headCustomEOList.get(0).getModuleFlag()); + this.remove(wrapper); - //一级标题 - List oneList = headCustomEOList.stream().filter(e -> StringUtils.isBlank(e.getAffirmFlag())).collect(Collectors.toList()); - Collections.sort(oneList); - //二级标题 - List twoList = headCustomEOList.stream().filter(e -> StringUtils.isNotBlank(e.getAffirmFlag())).collect(Collectors.toList()); + //一级标题 + List oneList = headCustomEOList.stream().filter(e -> StringUtils.isBlank(e.getAffirmFlag())).collect(Collectors.toList()); + Collections.sort(oneList); + //二级标题 + List twoList = headCustomEOList.stream().filter(e -> StringUtils.isNotBlank(e.getAffirmFlag())).collect(Collectors.toList()); - //设计 - List design = twoList.stream().filter(e -> AffirmFlagEnum.DESIGN_FLAG.getValue().equals(e.getAffirmFlag())).collect(Collectors.toList()); - Collections.sort(design); - //pre - List affirm = twoList.stream().filter(e -> AffirmFlagEnum.AFFIRM_FLAG.getValue().equals(e.getAffirmFlag())).collect(Collectors.toList()); - Collections.sort(affirm); - //验证 - List verify = twoList.stream().filter(e -> AffirmFlagEnum.VERIFY_FLAG.getValue().equals(e.getAffirmFlag())).collect(Collectors.toList()); - Collections.sort(verify); + //设计 + List design = twoList.stream().filter(e -> AffirmFlagEnum.DESIGN_FLAG.getValue().equals(e.getAffirmFlag())).collect(Collectors.toList()); + Collections.sort(design); + //pre + List affirm = twoList.stream().filter(e -> AffirmFlagEnum.AFFIRM_FLAG.getValue().equals(e.getAffirmFlag())).collect(Collectors.toList()); + Collections.sort(affirm); + //验证 + List 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 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 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 headCustomEOList) { @@ -144,131 +145,195 @@ public class HeadCustomEOServiceImpl extends ServiceImpl 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 queryList(String cut,String moduleFlag) { - LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.in(HeadCustomEO::getCreateBy,loginUser.getUsername()).in(HeadCustomEO::getModuleFlag,moduleFlag); - List list = this.list(wrapper); - List headCustomVOOneList = new LinkedList<>(); - if(ObjectUtils.isNotEmpty(list)){ - //列表表头一级 - List oneList = list.stream() - .filter(e -> StringUtils.isBlank(e.getAffirmFlag())).collect(Collectors.toList()); - //列表表头二级 - List 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 two = twoList.stream() - .filter(e -> headCustomEO.getId().equals(e.getParentId())).collect(Collectors.toList()); - Collections.sort(two); - List 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 queryList(String cut, String moduleFlag) { + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(HeadCustomEO::getCreateBy, loginUser.getUsername()).in(HeadCustomEO::getModuleFlag, moduleFlag); + List list = this.list(wrapper); + List headCustomVOOneList = new LinkedList<>(); + if (ObjectUtils.isNotEmpty(list)) { + //列表表头一级 + List oneList = list.stream() + .filter(e -> StringUtils.isBlank(e.getAffirmFlag())).collect(Collectors.toList()); + //列表表头二级 + List 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 two = twoList.stream() + .filter(e -> headCustomEO.getId().equals(e.getParentId())).collect(Collectors.toList()); + Collections.sort(two); + List 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 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 checkDefaultHead(List headCustomVOOneList, String cut, String moduleFlag) { + List 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; + } }