diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDepartServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDepartServiceImpl.java index 02027b250..8c5c3d639 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDepartServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDepartServiceImpl.java @@ -1,5 +1,6 @@ package com.jero.modules.system.service.impl; +import cn.hutool.core.collection.CollectionUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -24,6 +25,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; +import java.util.stream.Collectors; import static com.jero.modules.system.util.FindsDepartsChildrenUtil.convertSysDepartToSysDepartTreeModel; @@ -286,7 +288,37 @@ public class SysDepartServiceImpl extends ServiceImpl getSubDepIdsByDepId(String departId) { - return this.baseMapper.getSubDepIdsByDepId(departId); + List idList = new ArrayList<>(); + if(StringUtils.isNotEmpty(departId)) { + // 查询所有部门 + LambdaQueryWrapper query = new LambdaQueryWrapper(); + query.eq(SysDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString()); + List listAll = this.list(query); + + List result = new ArrayList<>(); + // 递归查询 指定父节点下的所有子节点,包括父节点 + if (CollectionUtil.isNotEmpty(listAll)) { + recursion(listAll, result, departId); + } + + + idList.add(departId); // 加上父节点 + idList = result.stream().map(SysDepart::getId).collect(Collectors.toList()); + + } + return idList; + } + + // 递归查询子节点 + private void recursion(List listAll, List result, String fatherId) { + List childern = listAll.stream().filter(e-> fatherId.equals(e.getParentId())).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(childern)) { + result.addAll(childern); + for(SysDepart depart : childern) { + recursion(listAll, result, depart.getId()); + } + + } } @Override diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/controller/LawsMonthlyReportWriteEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/controller/LawsMonthlyReportWriteEOController.java index e4fb26d4e..b47ddcb11 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/controller/LawsMonthlyReportWriteEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/controller/LawsMonthlyReportWriteEOController.java @@ -1,6 +1,7 @@ package com.jero.modules.report.controller; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.api.vo.Result; import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.system.base.controller.JeroController; @@ -62,9 +63,29 @@ public class LawsMonthlyReportWriteEOController extends JeroController pageList = lawsMonthlyReportWriteEOService.getPageInfo(lawsMonthlyReportWriteEO, pageNo,pageSize,req); - return Result.OK(pageList); + List listInfo = lawsMonthlyReportWriteEOService.getListInfo(lawsMonthlyReportWriteEO, pageNo, pageSize, req); + Page pages = lawsMonthlyReportWriteEOService.getPages(pageNo, pageSize, listInfo); + return Result.OK(pages); } +// /** +// * 分页列表查询 +// * +// * @param lawsMonthlyReportWriteEO +// * @param pageNo +// * @param pageSize +// * @param req +// * @return +// */ +// @AutoLog(value = "月报填写-分页列表查询") +// @ApiOperation(value="月报填写-分页列表查询", notes="月报填写-分页列表查询") +// @GetMapping(value = "/page") +// public Result queryPageList(LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO, +// @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, +// @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, +// HttpServletRequest req) { +// IPage pageList = lawsMonthlyReportWriteEOService.getPageInfo(lawsMonthlyReportWriteEO, pageNo,pageSize,req); +// return Result.OK(pageList); +// } /** * 列表查询 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/entity/LawsMonthlyReportTitleTemplateEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/entity/LawsMonthlyReportTitleTemplateEO.java index 4a66c3f86..9bd5daf0f 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/entity/LawsMonthlyReportTitleTemplateEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/entity/LawsMonthlyReportTitleTemplateEO.java @@ -13,7 +13,6 @@ import lombok.experimental.Accessors; import org.jeecgframework.poi.excel.annotation.Excel; import org.springframework.format.annotation.DateTimeFormat; -import java.io.Serializable; import java.util.ArrayList; import java.util.List; @@ -29,7 +28,7 @@ import java.util.List; @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) @ApiModel(value="laws_monthly_report_title_template对象", description="月报标题模板") -public class LawsMonthlyReportTitleTemplateEO implements Serializable { +public class LawsMonthlyReportTitleTemplateEO implements Comparable { private static final long serialVersionUID = 1L; /**主键*/ @@ -84,4 +83,10 @@ public class LawsMonthlyReportTitleTemplateEO implements Serializable { @TableField(exist = false) private String key; + + @Override + public int compareTo(LawsMonthlyReportTitleTemplateEO o) { + return this.sort-o.sort;//升序 +// return o.id-this.id;//降序 + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/service/ILawsMonthlyReportWriteEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/service/ILawsMonthlyReportWriteEOService.java index 2f653b1b2..9bcf996c6 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/service/ILawsMonthlyReportWriteEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/service/ILawsMonthlyReportWriteEOService.java @@ -1,6 +1,7 @@ package com.jero.modules.report.service; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.jero.modules.report.entity.LawsMonthlyReportWriteEO; @@ -72,7 +73,11 @@ public interface ILawsMonthlyReportWriteEOService extends IService getPageInfo(LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO, +// IPage getPageInfo(LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO, +// Integer pageNo, +// Integer pageSize, +// HttpServletRequest req); + List getListInfo(LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO, Integer pageNo, Integer pageSize, HttpServletRequest req); @@ -82,4 +87,6 @@ public interface ILawsMonthlyReportWriteEOService extends IService parameter); + + Page getPages(Integer currentPage, Integer pageSize, List list); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/service/impl/LawsMonthlyReportWriteEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/service/impl/LawsMonthlyReportWriteEOServiceImpl.java index 12fc10c4d..cb571424d 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/service/impl/LawsMonthlyReportWriteEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/service/impl/LawsMonthlyReportWriteEOServiceImpl.java @@ -60,8 +60,10 @@ import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.Date; import java.util.Iterator; +import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -288,7 +290,7 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl getPageInfo(LawsMonthlyReportWriteEO lawsMonthlyReportWriteEOTemp, + public List getListInfo(LawsMonthlyReportWriteEO lawsMonthlyReportWriteEOTemp, Integer pageNo, Integer pageSize, HttpServletRequest req) { @@ -300,11 +302,48 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl page = new Page(pageNo, pageSize); - Page pageInfo = this.page(page, queryWrapper); +// Page page = new Page(pageNo, pageSize); +// Page pageInfo = this.page(page, queryWrapper); + + + //所有的月报 + List lawsMonthlyReportWriteEOList = this.list(queryWrapper); + //所有月报的一级目录 + List oneMenuIdLIst = lawsMonthlyReportWriteEOList.stream().map(LawsMonthlyReportWriteEO::getMemoriesChapterOne).distinct().collect(Collectors.toList()); + //月报标题模板 + LambdaQueryWrapper wrapperTemp = new LambdaQueryWrapper<>(); + wrapperTemp.orderByAsc(LawsMonthlyReportTitleTemplateEO::getSort); + List list = lawsMonthlyReportTitleTemplateEOService.list(wrapperTemp); + //1. 一级目录 + List oneList = list.stream().filter(e -> StringUtils.isBlank(e.getParentId())).collect(Collectors.toList()); + oneList = oneList.stream().filter(e -> oneMenuIdLIst.contains(e.getId())).collect(Collectors.toList()); + Collections.sort(oneList);//正序排序 + + List lawsMonthlyReportWriteEOS = new LinkedList<>(); + for (LawsMonthlyReportTitleTemplateEO lawsMonthlyReportTitleTemplateEO : oneList) { + String oneId = lawsMonthlyReportTitleTemplateEO.getId(); + //一级目录下的二级目录 + List twoList = list.stream().filter(e -> StringUtils.isNotBlank(e.getParentId()) && oneId.equals(e.getParentId())).collect(Collectors.toList()); + Collections.sort(twoList);//正序排序 + + //一级目录下的月报 + for (LawsMonthlyReportTitleTemplateEO monthlyReportTitleTemplateEO : twoList) { + for (LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO : lawsMonthlyReportWriteEOList) { + if(oneId.equals(lawsMonthlyReportWriteEO.getMemoriesChapterOne()) && monthlyReportTitleTemplateEO.getId().equals(lawsMonthlyReportWriteEO.getMemoriesChapter())){ + lawsMonthlyReportWriteEOS.add(lawsMonthlyReportWriteEO); + } + } + } + +// List lawsMonthlyReportWriteEOListOne = lawsMonthlyReportWriteEOList.stream() +// .filter(e -> oneId.equals(e.getMemoriesChapterOne())).collect(Collectors.toList()); +// lawsMonthlyReportWriteEOS.addAll(lawsMonthlyReportWriteEOListOne); + } + + //法规月报id - List lawsMonthlyReportIdList = pageInfo.getRecords().stream().map(LawsMonthlyReportWriteEO::getId).collect(Collectors.toList()); - List userIdList = pageInfo.getRecords().stream().map(LawsMonthlyReportWriteEO::getLawsContact).collect(Collectors.toList()); + List lawsMonthlyReportIdList = lawsMonthlyReportWriteEOS.stream().map(LawsMonthlyReportWriteEO::getId).collect(Collectors.toList()); + List userIdList = lawsMonthlyReportWriteEOS.stream().map(LawsMonthlyReportWriteEO::getLawsContact).collect(Collectors.toList()); List userIds = new ArrayList<>(); for (String s : userIdList) { if(StringUtils.isNotBlank(s)){ @@ -343,7 +382,7 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl getPageInfo(LawsMonthlyReportWriteEO lawsMonthlyReportWriteEOTemp, +// Integer pageNo, +// Integer pageSize, +// HttpServletRequest req) { +// QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(lawsMonthlyReportWriteEOTemp, req.getParameterMap()); +// queryWrapper.orderByDesc("memories_chapter_one","memories_chapter","create_time"); +// //管理员查看全部数据,其余人只能查看自己的数据 +// LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); +// List rolesList = sysBaseApi.getRolesByUsername(currentUser.getUsername()); +// if(!rolesList.contains(ProjectRoleEnum.ADMIN.getCode())){ +// queryWrapper.in("create_by",currentUser.getUsername()); +// } +// Page page = new Page(pageNo, pageSize); +// Page pageInfo = this.page(page, queryWrapper); +// //法规月报id +// List lawsMonthlyReportIdList = pageInfo.getRecords().stream().map(LawsMonthlyReportWriteEO::getId).collect(Collectors.toList()); +// List userIdList = pageInfo.getRecords().stream().map(LawsMonthlyReportWriteEO::getLawsContact).collect(Collectors.toList()); +// List userIds = new ArrayList<>(); +// for (String s : userIdList) { +// if(StringUtils.isNotBlank(s)){ +// if(s.contains(",")){ +// userIds.addAll(Arrays.asList(s.split(","))); +// }else{ +// userIds.add(s); +// } +// } +// } +// List jsonObjects = sysBaseApi.queryUsersByIds(StringUtils.join(userIds, ",")); +// List userList = new ArrayList<>(); +// for (JSONObject jsonObject : jsonObjects) { +// LoginUser loginUser = JSONObject.parseObject(jsonObject.toJSONString(), LoginUser.class); +// userList.add(loginUser); +// } +// +// //获取章节目录 +// List lawsMonthlyReportTitleTemplateEOList = lawsMonthlyReportTitleTemplateEOService.list(); +// +// //新征求意见清单模板 +// List newOpinionTemplateEOList = new ArrayList<>(); +// if(lawsMonthlyReportIdList.size() != 0){ +// LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); +// wrapper.in(NewOpinionTemplateEO::getLawsMonthlyReportWriteId,lawsMonthlyReportIdList); +// newOpinionTemplateEOList = iNewOpinionTemplateEOService.list(wrapper); +// } +// +// +// //新发布标准清单模板 +// List newStandardTemplateEOList = new ArrayList<>(); +// if(lawsMonthlyReportIdList.size() != 0){ +// LambdaQueryWrapper qrapperTemp = new LambdaQueryWrapper<>(); +// qrapperTemp.in(NewStandardTemplateEO::getLawsMonthlyReportWriteId,lawsMonthlyReportIdList); +// newStandardTemplateEOList = iNewStandardTemplateEOService.list(qrapperTemp); +// } +// +// +// for (LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO : pageInfo.getRecords()) { +// //处理法规联系人 +// lawsContact(userList, lawsMonthlyReportWriteEO,lawsMonthlyReportWriteEOTemp.getCut()); +// //处理章节目录 +// if(StringUtils.isNotBlank(lawsMonthlyReportWriteEO.getMemoriesChapter())){ +// List lawsMonthlyReportTitleTemplateEOS = lawsMonthlyReportTitleTemplateEOList.stream() +// .filter(e -> lawsMonthlyReportWriteEO.getMemoriesChapter().equals(e.getId())).collect(Collectors.toList()); +// if(CutEnum.CN.getValue().equals(lawsMonthlyReportWriteEOTemp.getCut()) && lawsMonthlyReportTitleTemplateEOS.size() != 0){ +// lawsMonthlyReportWriteEO.setMemoriesChapterName(lawsMonthlyReportTitleTemplateEOS.get(0).getTitleCn()); +// }else if(CutEnum.EN.getValue().equals(lawsMonthlyReportWriteEOTemp.getCut()) && lawsMonthlyReportTitleTemplateEOS.size() != 0){ +// lawsMonthlyReportWriteEO.setMemoriesChapterName(lawsMonthlyReportTitleTemplateEOS.get(0).getTitleEn()); +// } +// } +// //处理章节目录对应的一级目录 +// if(StringUtils.isNotBlank(lawsMonthlyReportWriteEO.getMemoriesChapterOne())){ +// List lawsMonthlyReportTitleTemplateEOS = lawsMonthlyReportTitleTemplateEOList.stream() +// .filter(e -> lawsMonthlyReportWriteEO.getMemoriesChapterOne().equals(e.getId())).collect(Collectors.toList()); +// if(CutEnum.CN.getValue().equals(lawsMonthlyReportWriteEOTemp.getCut()) && lawsMonthlyReportTitleTemplateEOS.size() != 0){ +// lawsMonthlyReportWriteEO.setMemoriesChapterOneName(lawsMonthlyReportTitleTemplateEOS.get(0).getTitleCn()); +// }else if(CutEnum.EN.getValue().equals(lawsMonthlyReportWriteEOTemp.getCut()) && lawsMonthlyReportTitleTemplateEOS.size() != 0){ +// lawsMonthlyReportWriteEO.setMemoriesChapterOneName(lawsMonthlyReportTitleTemplateEOS.get(0).getTitleEn()); +// } +// } +// +// if(ContentTemplateEnum.NEW_REQUEST_LIST_TEMPLATE.getValue().equals(lawsMonthlyReportWriteEO.getContentTemplate())){ +// //新征求意见清单模板 +// List collect = newOpinionTemplateEOList.stream() +// .filter(e -> lawsMonthlyReportWriteEO.getId().equals(e.getLawsMonthlyReportWriteId())).collect(Collectors.toList()); +// lawsMonthlyReportWriteEO.setNewOpinionTemplateEOList(collect); +// +// }else if(ContentTemplateEnum.NEW_RELEASE_STANDARD_MANIFEST_TEMPLATE.getValue().equals(lawsMonthlyReportWriteEO.getContentTemplate())){ +// //新发布标准清单模板 +// List collect = newStandardTemplateEOList.stream() +// .filter(e -> lawsMonthlyReportWriteEO.getId().equals(e.getLawsMonthlyReportWriteId())).collect(Collectors.toList()); +// lawsMonthlyReportWriteEO.setNewStandardTemplateEOList(collect); +// } +// +// //处理导出状态 +// String exportState = lawsMonthlyReportWriteEO.getExportState(); +// if(StringUtils.isNotBlank(exportState)){ +// if(ExportStateEnum.NOT_EXPORT.getValue().equals(exportState)){ +// if(CutEnum.CN.getValue().equals(lawsMonthlyReportWriteEOTemp.getCut())){ +// lawsMonthlyReportWriteEO.setExportStateName(ExportStateEnum.NOT_EXPORT.getName()); +// }else{ +// lawsMonthlyReportWriteEO.setExportStateName(ExportStateEnum.NOT_EXPORT.getNameEn()); +// } +// }else if(ExportStateEnum.HAS_BEEN_EXPORT.getValue().equals(exportState)){ +// if(CutEnum.CN.getValue().equals(lawsMonthlyReportWriteEOTemp.getCut())){ +// lawsMonthlyReportWriteEO.setExportStateName(ExportStateEnum.HAS_BEEN_EXPORT.getName()); +// }else{ +// lawsMonthlyReportWriteEO.setExportStateName(ExportStateEnum.HAS_BEEN_EXPORT.getNameEn()); +// } +// } +// } +// } +// return pageInfo; +// } private void lawsContact(List userList, LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO,String cut) { String lawsContact = lawsMonthlyReportWriteEO.getLawsContact(); @@ -873,17 +1025,26 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl lawsMonthlyReportWriteEOS, String titleCN, XWPFDocument document) { //封面标识 String flag = "cover"; String moth = lawsMonthlyReportWriteEOS.get(0).getMonth().replaceAll("-", "年") + "月"; + //标题前面添加一个换行 + WordUtil.exportWord(document, "", null, ParagraphAlignment.CENTER, 0, null, + false, false, "Blue Sky Noto Regular",null,null,"break"); - titleCN = "\r\n\r\n" + titleCN + "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"; + //添加标题 WordUtil.exportWord(document, titleCN, null, ParagraphAlignment.CENTER, 0, 18, false, false, "Blue Sky Noto Regular",null,null,flag); + + //标题下面添加9个换行 + for (int i = 0; i < 9; i++) { + WordUtil.exportWord(document, "", null, ParagraphAlignment.CENTER, 0, null, + false, false, "Blue Sky Noto Regular",null,null,"break"); + } WordUtil.exportWord(document, moth, null, ParagraphAlignment.CENTER, 0, 12, false, false, "Blue Sky Noto Regular",null,null,flag); @@ -908,7 +1069,42 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl lawsMonthlyReportWriteEOS, +// String titleCN, +// XWPFDocument document) { +// //封面标识 +// String flag = "cover"; +// String moth = lawsMonthlyReportWriteEOS.get(0).getMonth().replaceAll("-", "年") + "月"; +// +// titleCN = "\r\n\r\n" + titleCN + "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"; +// WordUtil.exportWord(document, titleCN, null, ParagraphAlignment.CENTER, 0, 18, +// false, false, "Blue Sky Noto Regular",null,null,flag); +// WordUtil.exportWord(document, moth, null, ParagraphAlignment.CENTER, 0, 12, +// false, false, "Blue Sky Noto Regular",null,null,flag); +// +// String year = lawsMonthlyReportWriteEOS.get(0).getMonth().split("-")[0]; +// String mothNew = lawsMonthlyReportWriteEOS.get(0).getMonth().split("-")[1]; +// int mothLast = Integer.valueOf(mothNew) + 1; +// +// //添加说明 2022/7/15 至 2022/8/14 期间发布的主要内容 +// String text = year + "/" + mothNew +"/15 至 "+year+"/"+mothLast+"/14期间发布的主要内容"; +// WordUtil.exportWord(document, text, null, ParagraphAlignment.CENTER, 0, 11, +// false, false, "Blue Sky Noto Regular",null,null,flag); +// +// //添加换行 +// WordUtil.exportWord(document, "\r\n", null, ParagraphAlignment.CENTER, 0, null, +// false, false, null,null,null,flag); +// +// //添加说明 编辑: 整车工程 - 法规与认证&环保与材料科团队 +// String text1 = "编辑: 整车工程 - 法规与认证&环保与材料科团队"; +// WordUtil.exportWord(document, text1, null, ParagraphAlignment.CENTER, 0, 11, +// false, false, "Blue Sky Noto Regular",null,null,flag); +// +// //添加下一页 +// document.createParagraph().createRun().addBreak(BreakType.PAGE); +// } + //封面(office版本) private void coverEn(List lawsMonthlyReportWriteEOS, String titleCN, XWPFDocument document) { @@ -922,11 +1118,19 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl lawsMonthlyReportWriteEOS, +// String titleCN, +// XWPFDocument document) { +// //封面标识 +// String flag = "cover"; +// +// String year = lawsMonthlyReportWriteEOS.get(0).getMonth().split("-")[0]; +// String mothNew = lawsMonthlyReportWriteEOS.get(0).getMonth().split("-")[1]; +// int mothLast = Integer.valueOf(mothNew) + 1; +// String moth = mothNew+"/"+year; +// String mothNewEn = getMothEn(mothNew); +// String mothLastEn = getMothEn(String.valueOf(mothLast)); +// +//// String moth = lawsMonthlyReportWriteEOS.get(0).getMonth().replaceAll("-", "年") + "月"; +// +// titleCN = "\r\n\r\n" + titleCN + "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"; +// WordUtil.exportWord(document, titleCN, null, ParagraphAlignment.CENTER, 0, 18, +// false, false, "Blue Sky Noto Regular",null,null,flag); +// WordUtil.exportWord(document, moth, null, ParagraphAlignment.CENTER, 0, 12, +// false, false, "Blue Sky Noto Regular",null,null,flag); +// +// +// +// //添加说明 Update between July 15, 2022 and August 14, 2022 +// String text = "Update between "+mothNewEn+" 15,"+year+" and "+mothLastEn+" 14,"+year; +// WordUtil.exportWord(document, text, null, ParagraphAlignment.CENTER, 0, 11, +// false, false, "Blue Sky Noto Regular",null,null,flag); +// +// //添加换行 +// WordUtil.exportWord(document, "\r\n", null, ParagraphAlignment.CENTER, 0, null, +// false, false, null,null,null,flag); +// +// //添加说明 编辑: 整车工程 - 法规与认证&环保与材料科团队 +// String text1 = "Edit By: Regulation & Homologation, Environmental & Materials Team"; +// WordUtil.exportWord(document, text1, null, ParagraphAlignment.CENTER, 0, 11, +// false, false, "Blue Sky Noto Regular",null,null,flag); +// +// //添加下一页 +// document.createParagraph().createRun().addBreak(BreakType.PAGE); +// } private String getMothEn(String moth){ String result = ""; @@ -1269,4 +1514,32 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl list){ + Page page =new Page(); + if(list==null){ + return null; + } + int size = list.size(); + if(pageSize > size){ + pageSize = size; + } + if(pageSize!=0){ + //求出最⼤页数,防⽌currentPage越界 + int maxPage = size % pageSize ==0? size / pageSize : size / pageSize +1; + if(currentPage > maxPage){ + currentPage = maxPage; + } + } + //当前页第⼀条数据的下标 + int curIdx = currentPage >1?(currentPage -1)* pageSize :0; + List pageList =new ArrayList(); + //将当前页的数据放进pageList + for(int i =0; i < pageSize && curIdx + i < size; i++){ + pageList.add(list.get(curIdx + i)); + } + page.setCurrent(currentPage).setSize(pageSize).setTotal(list.size()).setRecords(pageList); + return page; + } + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/util/WordUtil.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/util/WordUtil.java index 048c0ee08..ddf6347d9 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/util/WordUtil.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/util/WordUtil.java @@ -128,6 +128,10 @@ public class WordUtil { } XWPFRun titleParagraphRun = titleParagraph.createRun(); + //封面中的换行 + if("break".equals(flag)){ + titleParagraphRun.addBreak(); + } if (isNewline) { titleParagraphRun.setText("\r"); } else { @@ -202,45 +206,7 @@ public class WordUtil { styles.addStyle(style); } -// @SneakyThrows -// public static void exportHeardAndFoot(XWPFDocument document){ -//// XWPFDocument document = new XWPFDocument(); -// -// // create header-footer -// XWPFHeaderFooterPolicy headerFooterPolicy = document.getHeaderFooterPolicy(); -// if (headerFooterPolicy == null) headerFooterPolicy = document.createHeaderFooterPolicy(); -// -// // create header start -// XWPFHeader header = headerFooterPolicy.createHeader(XWPFHeaderFooterPolicy.DEFAULT); -// -// XWPFParagraph paragraph = header.createParagraph(); -// paragraph.setAlignment(ParagraphAlignment.CENTER); -// -// XWPFRun run = paragraph.createRun(); -// run.setText("Header"); -// -// // create footer start -// XWPFFooter footer = headerFooterPolicy.createFooter(XWPFHeaderFooterPolicy.DEFAULT); -// -// paragraph = footer.createParagraph(); -// paragraph.setAlignment(ParagraphAlignment.CENTER); -// -// run = paragraph.createRun(); -// run.setText("Footer"); -// -// CTSectPr sectPr = document.getDocument().getBody().getSectPr(); -// if (sectPr == null) sectPr = document.getDocument().getBody().addNewSectPr(); -// CTPageMar pageMar = sectPr.getPgMar(); -// if (pageMar == null) pageMar = sectPr.addNewPgMar(); -// pageMar.setLeft(BigInteger.valueOf(2000)); //720 TWentieths of an Inch Point (Twips) = 720/20 = 36 pt = 36/72 = 0.5" -// pageMar.setRight(BigInteger.valueOf(720)); -// pageMar.setTop(BigInteger.valueOf(1440)); //1440 Twips = 1440/20 = 72 pt = 72/72 = 1" -// pageMar.setBottom(BigInteger.valueOf(1440)); -// -// pageMar.setHeader(BigInteger.valueOf(2000)); //45.4 pt * 20 = 908 = 45.4 pt header from top -// pageMar.setFooter(BigInteger.valueOf(568)); //28.4 pt * 20 = 568 = 28.4 pt footer from bottom -// -// } + //主要内容生成页眉页脚(office版本) @SneakyThrows public static void exportHeardAndFoot(XWPFDocument document,String month){ XWPFHeaderFooterPolicy headerFooterPolicy = document.getHeaderFooterPolicy(); @@ -266,7 +232,7 @@ public class WordUtil { picture.getCTPicture().getBlipFill().getBlip().setEmbed(blipID); run.addTab(); is.close(); - run.setText(" "+month); + run.setText(" "+month); run.setFontSize(11); run.setFontFamily("Blue Sky Noto Regular"); } @@ -313,20 +279,107 @@ public class WordUtil { CTSectPr sectPr = document.getDocument().getBody().getSectPr(); if (sectPr == null) sectPr = document.getDocument().getBody().addNewSectPr(); - //设置页面大小 + //设置页面大小(21*29.7) CTPageSz pgSz = sectPr.addNewPgSz(); - pgSz.setW(BigInteger.valueOf(11907)); - pgSz.setH(BigInteger.valueOf(16840)); + pgSz.setW(BigInteger.valueOf(11905)); + pgSz.setH(BigInteger.valueOf(16838)); CTPageMar pageMar = sectPr.getPgMar(); if (pageMar == null) pageMar = sectPr.addNewPgMar(); - pageMar.setLeft(BigInteger.valueOf(1803)); //左边距 - pageMar.setRight(BigInteger.valueOf(1803));//右边距 + pageMar.setLeft(BigInteger.valueOf(1797)); //左边距 + pageMar.setRight(BigInteger.valueOf(1797));//右边距 pageMar.setTop(BigInteger.valueOf(1440)); //页眉高度 pageMar.setBottom(BigInteger.valueOf(1440));//页脚高度 pageMar.setHeader(BigInteger.valueOf(720)); //页眉上边框到顶部的距离 pageMar.setFooter(BigInteger.valueOf(720)); //页脚下边框到底部的距离 } + //主要内容生成页眉页脚(WPS版本) +// @SneakyThrows +// public static void exportHeardAndFoot(XWPFDocument document,String month){ +// XWPFHeaderFooterPolicy headerFooterPolicy = document.getHeaderFooterPolicy(); +// if (headerFooterPolicy == null) headerFooterPolicy = document.createHeaderFooterPolicy(); +// XWPFHeader header = headerFooterPolicy.createHeader(XWPFHeaderFooterPolicy.DEFAULT); +// +//// String logoFilePath = "/jero-boot/home/weilai.png"; +// String logoFilePath = WordUtil.class.getClassLoader().getResource("static/home/weilai.png").getPath(); +// //页眉第一个段落展示logo----------------------------------------------------------------------------------- +// if (org.apache.commons.lang3.StringUtils.isNotBlank(logoFilePath)) { +// XWPFParagraph logo = header.createParagraph(); +// logo.setAlignment(ParagraphAlignment.LEFT); +// XWPFRun run = logo.createRun(); +// +// String imgFile = logoFilePath; +// InputStream is = WordUtil.class.getClassLoader().getResourceAsStream("static/home/weilai.png"); +//// InputStream is = new FileInputStream(imgFile); +// XWPFPicture picture = run.addPicture(is, XWPFDocument.PICTURE_TYPE_PNG, imgFile, Units.toEMU(95), Units.toEMU(35)); +// String blipID = ""; +// for(XWPFPictureData picturedata : header.getAllPackagePictures()) { //这段必须有,不然打开的logo图片不显示 +// blipID = header.getRelationId(picturedata); +// } +// picture.getCTPicture().getBlipFill().getBlip().setEmbed(blipID); +// run.addTab(); +// is.close(); +// run.setText(" "+month); +// run.setFontSize(11); +// run.setFontFamily("Blue Sky Noto Regular"); +// } +// //页眉第二个段落展示日期------------------------------------------------------------ +// XWPFParagraph paragraph = header.createParagraph();//创建新的段落 +//// paragraph.setAlignment(ParagraphAlignment.RIGHT);//段落文本的对齐方式 +// XWPFRun run = paragraph.createRun(); +//// run.setText(month); +// +// //页脚(三个段落分别展示3个内容)----------------------------------------------------- +// XWPFFooter footer = headerFooterPolicy.createFooter(XWPFHeaderFooterPolicy.DEFAULT); +// +// paragraph = footer.createParagraph(); +// paragraph.setAlignment(ParagraphAlignment.CENTER); +// run = paragraph.createRun(); +// run.setText("NIO Internal"); +// run.setFontSize(11); +// run.setFontFamily("Blue Sky Standard Regular"); +// +// paragraph = footer.createParagraph(); +// paragraph.setAlignment(ParagraphAlignment.LEFT); +// run = paragraph.createRun(); +// run.setText("NIO.com"); +// run.setFontSize(11); +// run.setFontFamily("Blue Sky Noto Regular"); +// +// //生成页码--------------------------------------------------------------------- +// paragraph = footer.createParagraph(); +// paragraph.setAlignment(ParagraphAlignment.RIGHT); +// run = paragraph.createRun(); +// CTFldChar fldChar = run.getCTR().addNewFldChar(); +// fldChar.setFldCharType(STFldCharType.Enum.forString("begin")); +// +// run = paragraph.createRun(); +// CTText ctText = run.getCTR().addNewInstrText(); +// ctText.setStringValue("PAGE \\* MERGEFORMAT"); +// ctText.setSpace(SpaceAttribute.Space.Enum.forString("preserve")); +// +// fldChar = run.getCTR().addNewFldChar(); +// fldChar.setFldCharType(STFldCharType.Enum.forString("end")); +// //---------------------------------------------------------------------------- +// +// +// +// CTSectPr sectPr = document.getDocument().getBody().getSectPr(); +// if (sectPr == null) sectPr = document.getDocument().getBody().addNewSectPr(); +// //设置页面大小 +// CTPageSz pgSz = sectPr.addNewPgSz(); +// pgSz.setW(BigInteger.valueOf(11907)); +// pgSz.setH(BigInteger.valueOf(16840)); +// CTPageMar pageMar = sectPr.getPgMar(); +// if (pageMar == null) pageMar = sectPr.addNewPgMar(); +// pageMar.setLeft(BigInteger.valueOf(1803)); //左边距 +// pageMar.setRight(BigInteger.valueOf(1803));//右边距 +// pageMar.setTop(BigInteger.valueOf(1440)); //页眉高度 +// pageMar.setBottom(BigInteger.valueOf(1440));//页脚高度 +// +// pageMar.setHeader(BigInteger.valueOf(720)); //页眉上边框到顶部的距离 +// pageMar.setFooter(BigInteger.valueOf(720)); //页脚下边框到底部的距离 +// } /** * 主页面(只有页脚) @@ -356,18 +409,58 @@ public class WordUtil { if (sectPr == null) sectPr = document.getDocument().getBody().addNewSectPr(); //设置页面大小 CTPageSz pgSz = sectPr.addNewPgSz(); - pgSz.setW(BigInteger.valueOf(11907)); - pgSz.setH(BigInteger.valueOf(16840)); + pgSz.setW(BigInteger.valueOf(11905)); + pgSz.setH(BigInteger.valueOf(16838)); CTPageMar pageMar = sectPr.getPgMar(); if (pageMar == null) pageMar = sectPr.addNewPgMar(); - pageMar.setLeft(BigInteger.valueOf(1803)); //左边距 - pageMar.setRight(BigInteger.valueOf(1803));//右边距 + pageMar.setLeft(BigInteger.valueOf(1797)); //左边距 + pageMar.setRight(BigInteger.valueOf(1797));//右边距 pageMar.setTop(BigInteger.valueOf(1440)); //页眉高度 pageMar.setBottom(BigInteger.valueOf(1440));//页脚高度 pageMar.setHeader(BigInteger.valueOf(500)); //页眉上边框到顶部的距离 pageMar.setFooter(BigInteger.valueOf(1200)); //页脚下边框到底部的距离 } +// /** +// * 主页面(只有页脚 WPS版本) +// * @param document +// * @param month +// */ +// @SneakyThrows +// public static void exportHeardAndFootMain(XWPFDocument document,String month){ +// XWPFHeaderFooterPolicy headerFooterPolicy = document.getHeaderFooterPolicy(); +// if (headerFooterPolicy == null) headerFooterPolicy = document.createHeaderFooterPolicy(); +//// XWPFHeader header = headerFooterPolicy.createHeader(XWPFHeaderFooterPolicy.DEFAULT); +//// XWPFParagraph paragraph = header.createParagraph();//创建新的段落 +//// XWPFRun run = paragraph.createRun(); +// +// XWPFFooter footer = headerFooterPolicy.createFooter(XWPFHeaderFooterPolicy.DEFAULT); +// XWPFParagraph paragraph = footer.createParagraph(); +// paragraph.setAlignment(ParagraphAlignment.CENTER); +// XWPFRun run = paragraph.createRun(); +// run.setText("NIO Internal"); +// run.setFontSize(18); +// run.setFontFamily("Blue Sky Standard Regular"); +//// run.setFontFamily("Blue Sky Noto Regular"); +// run.setBold(true); +// +// +// CTSectPr sectPr = document.getDocument().getBody().getSectPr(); +// if (sectPr == null) sectPr = document.getDocument().getBody().addNewSectPr(); +// //设置页面大小 +// CTPageSz pgSz = sectPr.addNewPgSz(); +// pgSz.setW(BigInteger.valueOf(11907)); +// pgSz.setH(BigInteger.valueOf(16840)); +// CTPageMar pageMar = sectPr.getPgMar(); +// if (pageMar == null) pageMar = sectPr.addNewPgMar(); +// pageMar.setLeft(BigInteger.valueOf(1803)); //左边距 +// pageMar.setRight(BigInteger.valueOf(1803));//右边距 +// pageMar.setTop(BigInteger.valueOf(1440)); //页眉高度 +// pageMar.setBottom(BigInteger.valueOf(1440));//页脚高度 +// +// pageMar.setHeader(BigInteger.valueOf(500)); //页眉上边框到顶部的距离 +// pageMar.setFooter(BigInteger.valueOf(1200)); //页脚下边框到底部的距离 +// } /** * 导出工具示例 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java index c4c4dd28f..b7a5cb5fa 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java @@ -576,13 +576,13 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl