diff --git a/jero-boot/db/蔚来标准sql/dev_third_record.sql b/jero-boot/db/蔚来标准sql/dev_third_record.sql index 6e71e6449..9c37b784a 100644 --- a/jero-boot/db/蔚来标准sql/dev_third_record.sql +++ b/jero-boot/db/蔚来标准sql/dev_third_record.sql @@ -1112,11 +1112,11 @@ INSERT INTO `laws_weilai`.`sys_permission` (`id`, `parent_id`, `name`, `url`, `c -- 上报库删除按钮 2022-09-14已同步生产环境 INSERT INTO `laws_weilai`.`sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `menu_en`) VALUES ('1569609701240446977', '1539429224550457346', '删除', NULL, NULL, NULL, NULL, 2, 'params:report:delete', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'admin', '2022-09-13 16:51:29', NULL, NULL, 0, 0, '1', 0, 'Delete'); --- 上报库 添加项目目标市场 2022-09-19 +-- 上报库 添加项目目标市场 2022-09-19已同步生产环境 ALTER TABLE `laws_weilai`.`params_report` ADD COLUMN `target_market` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '目标市场' AFTER `title`; --- 参数项清单 修改字段长度 2022-09-23 +-- 参数项清单 修改字段长度 2022-09-23已同步生产环境 ALTER TABLE `laws_weilai`.`params_info` MODIFY COLUMN `nio_number` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'nio编号' AFTER `sys_org_code`, MODIFY COLUMN `params_name` varchar(350) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数名称' AFTER `is_must`; @@ -1152,10 +1152,31 @@ ALTER TABLE `laws_weilai`.`report_cert_category_params_info` MODIFY COLUMN `params_name` varchar(350) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数名称' AFTER `params_number`, MODIFY COLUMN `nio_number` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'NIO编号' AFTER `description`; --- 虚拟清单表修改备注字段长度由300改为1000 2022-09-23 未同步生产环境 +-- 虚拟清单表修改备注字段长度由300改为1000 2022-09-23 已同步生产环境 ALTER TABLE `laws_weilai`.`dummy_inventory_info` MODIFY COLUMN `remark` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注' AFTER `duty_territory`; --- 法规清单表修改备注字段长度由300改为1000 2022-09-23 未同步生产环境 +-- 法规清单表修改备注字段长度由300改为1000 2022-09-23 已同步生产环境 ALTER TABLE `laws_weilai`.`project_laws_inventory` MODIFY COLUMN `remark` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注' AFTER `engineering_interface_person`; + +-- 月报填写表 新增一级目录字段2022-09-25 未同步生产环境 +ALTER TABLE `laws_weilai`.`laws_monthly_report_write` +ADD COLUMN `memories_chapter_one` varchar(255) NULL COMMENT '章节目录对应的一级标题' AFTER `source_en`; + +-- 法规意见收集-评估结果表 增加字段 条款内容 2022-09-27 未同步生产环境 +ALTER TABLE `laws_weilai`.`laws_opinion_assessment_result` + ADD COLUMN `clause_content` varchar(600) NULL COMMENT '条款内容' AFTER `acti_proc_inst_id`; +-- 法规意见收集 增加字段 评估人id 2022-09-27 未同步生产环境 +ALTER TABLE `laws_weilai`.`laws_opinion_gather` + ADD COLUMN `evaluator_ids` varchar(4000) NULL COMMENT '评估人ids,多个之间使用英文逗号分隔' AFTER `opinion_archive_id`; + + +-- 标签管理,文档拆分字段 处理查询 技术领域id:ccf68e6578a0a446a6ac34018f0a477d、信息类别id:09fa6530229280174071eae0514e0f63。 2022-09-27 未同步生产环境 +update onl_cgform_field set is_query = '1' where id = 'ccf68e6578a0a446a6ac34018f0a477d'; +update onl_cgform_field set is_query = '1', is_read_only = '1' where id = '09fa6530229280174071eae0514e0f63'; + +-- 配置表,增加问题知识库预览图片配置 2022-09-27 未同步生产环境 +INSERT INTO `laws_weilai`.`sys_config` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `config`, `config_name`) VALUES ('4', 'admin', '2022-09-28 14:35:30', NULL, NULL, 'A01', 'http://grp.nioint.com/', 'domianWebImgURL'); + + diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/impl/OSSFileServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/impl/OSSFileServiceImpl.java index 94c8d84af..bf1ccd851 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/impl/OSSFileServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/impl/OSSFileServiceImpl.java @@ -253,7 +253,7 @@ public class OSSFileServiceImpl extends ServiceImpl impl String[] fileTypeArr = {".doc", ".DOC", ".txt", ".TXT", ".docx", ".DOCX", ".xls", ".XLS", ".xlsx", ".XLSX", ".pdf", ".PDF", ".png", ".PNG", ".jfif", ".JFIF", ".pjpeg", ".PJPEG", ".jpeg", ".JPEG", ".pjp", ".PJP", - ".jpg", ".JPG", ".swf", ".SWF", ".bmp", ".BMP", ".rar", ".RAR", ".zip", ".ZIP", ".ppt", ".PPT", ".pptx", ".PPTX", ".csv", ".CSV"}; + ".jpg", ".JPG", ".swf", ".SWF", ".bmp", ".BMP", ".rar", ".RAR", ".zip", ".ZIP", ".ppt", ".PPT", ".pptx", ".PPTX", ".csv", ".CSV", ".gif", ".GIF"}; boolean flag = true; for (String fileTypeTemp : fileTypeArr) { if (fileTypeTemp.equalsIgnoreCase(fileType)) { @@ -262,9 +262,9 @@ public class OSSFileServiceImpl extends ServiceImpl impl } if (flag) { if (cut.equals(CutEnum.CN.getValue())) { - throw new JeroBootException("只能够上传pdf/word/excel/csv/ppt/txt/zip/rar/静态图片类型的文件。请重新选择文件!"); + throw new JeroBootException("只能够上传pdf/word/excel/csv/ppt/txt/zip/rar/gif/静态图片类型的文件。请重新选择文件!"); } else { - throw new JeroBootException("Only upload pdf/word/excel/csv/ppt/txt/zip/rar/Static image type file. Please re select the file!"); + throw new JeroBootException("Only upload pdf/word/excel/csv/ppt/txt/zip/rar/gif/Static image type file. Please re select the file!"); } } } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java index 9d8a7a787..4a67f32ad 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java @@ -21,6 +21,7 @@ import com.jero.common.system.util.JwtUtil; import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.SysDepartTreeModel; import com.jero.common.system.vo.SysDepartUserTreeModel; +import com.jero.common.system.vo.SysUserTreeModel; import com.jero.common.util.ImportExcelUtil; import com.jero.common.util.PasswordUtil; import com.jero.common.util.RedisUtil; @@ -63,6 +64,7 @@ import java.io.IOException; import java.util.*; import java.util.stream.Collectors; + /** *

* 用户表 前端控制器 @@ -1533,7 +1535,53 @@ public class SysUserController { result.setSuccess(true); return result; } + /** + * 查询数据 查出所有部门及其用户 + * + * @return + */ + @ApiOperation(value = "用户管理-查出所有部门及其用户") + @RequestMapping(value = "/queryUserTreeList", method = RequestMethod.GET) + public Result> queryUserTreeList(String cut) { + Result> result = new Result<>(); + List dutList = new ArrayList<>(); + List departTreeModelList = sysDepartService.queryTreeList(cut); + for (SysDepartTreeModel sdtm: departTreeModelList) { + dutList.addAll(findChildNode(sdtm)); + } + result.setResult(dutList); + result.setSuccess(true); + return result; + } + private List findChildNode(SysDepartTreeModel sdtModel) { + List resList = new ArrayList<>(); + DepartUserTree dut = new DepartUserTree(); + dut.setId(sdtModel.getId()); + dut.setName(sdtModel.getDepartName()); + dut.setParentId(sdtModel.getParentId()); + dut.setType("Depart"); + resList.add(dut); + + List departIds = new ArrayList<>(); + departIds.add(sdtModel.getId()); + List sysUserList = sysUserService.getUserListByDepIds(departIds); + for (SysUser user: sysUserList) { + DepartUserTree dut1 = new DepartUserTree(); + dut1.setId(user.getId()); + dut1.setName(user.getUsername()); + dut1.setParentId(sdtModel.getId()); + dut1.setType("User"); + resList.add(dut1); + } + + if (sdtModel.getChildren() != null && sdtModel.getChildren().size() > 0) { + for (SysDepartTreeModel sdtModel1 : sdtModel.getChildren()) { + resList.addAll(findChildNode(sdtModel1)); + } + } + return resList; + } @AutoLog(value = "文档库推送部门和人员的模糊搜索") @ApiOperation(value="文档库推送部门和人员的模糊搜索", notes="文档库推送部门和人员的模糊搜索") diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/DepartUserTree.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/DepartUserTree.java new file mode 100644 index 000000000..f7a27c471 --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/DepartUserTree.java @@ -0,0 +1,50 @@ +package com.jero.modules.system.entity; + +public class DepartUserTree { + private String id; + private String parentId; + private String name; + private String type; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + @Override + public String toString() { + return "DepartUserTree{" + + "id='" + id + '\'' + + ", parentId='" + parentId + '\'' + + ", name='" + name + '\'' + + ", type='" + type + '\'' + + '}'; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java index b247c544d..6ffb1fdef 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java @@ -773,7 +773,12 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl map = new HashMap<>(); String dbFieldName = onlCgformField.getDbFieldName(); if ("nio_number".equals(dbFieldName) || "params_name".equals(dbFieldName)) { - map.put("click3", true); + map.put("click5", true); + if("nio_number".equals(dbFieldName)) { + map.put("click4", true); + } else { + map.put("click3", true); + } } if ("description".equals(dbFieldName)) { indexOfDescription = i; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/compare/controller/SarFileCompareItemCommentController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/compare/controller/SarFileCompareItemCommentController.java index 2856b2102..f1cebbb13 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/compare/controller/SarFileCompareItemCommentController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/compare/controller/SarFileCompareItemCommentController.java @@ -86,6 +86,19 @@ public class SarFileCompareItemCommentController extends JeroController consensusAssessment(@Validated @RequestBody SarFileCompareItemComment sarFileCompareItemComment) { + sarFileCompareItemCommentService.consensusAssessment(sarFileCompareItemComment); + return Result.OK("添加成功!"); + } + /** * 编辑 * @@ -153,8 +166,9 @@ public class SarFileCompareItemCommentController extends JeroController queryCompareResult(@RequestParam(name = "infoId", required = true) String infoId) { - SarFileCompareResultVO res = sarFileCompareItemCommentService.queryCompareResult(infoId); + public Result queryCompareResult(@RequestParam(name = "infoId", required = true) String infoId, + @RequestParam(name = "comment", required = false) String comment) { + SarFileCompareResultVO res = sarFileCompareItemCommentService.queryCompareResult(infoId,comment); return Result.OK(res); } @@ -165,8 +179,9 @@ public class SarFileCompareItemCommentController extends JeroController queryList(); - SarFileCompareResultVO queryCompareResult(String infoId); + SarFileCompareResultVO queryCompareResult(String infoId,String comment); - void exportResXls(HttpServletResponse response, String infoId, String selectIds, boolean includeComments, String cut); + void exportResXls(HttpServletRequest request,HttpServletResponse response, String infoId, String selectIds, boolean includeComments, String cut,String comment); + + void consensusAssessment(SarFileCompareItemComment sarFileCompareItemComment); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/compare/service/impl/SarFileCompareItemCommentServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/compare/service/impl/SarFileCompareItemCommentServiceImpl.java index 032e45072..c13dd7034 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/compare/service/impl/SarFileCompareItemCommentServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/compare/service/impl/SarFileCompareItemCommentServiceImpl.java @@ -5,23 +5,37 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.constant.enums.CutEnum; import com.jero.common.exception.JeroBootException; +import com.jero.common.util.oss.CosBootUtil; import com.jero.modules.compare.entity.*; import com.jero.modules.compare.mapper.SarFileCompareItemCommentMapper; import com.jero.modules.compare.service.ISarFileCompareInfoService; import com.jero.modules.compare.service.ISarFileCompareItemCommentService; import com.jero.modules.compare.service.ISarFileCompareItemService; import com.jero.modules.system.util.StringUtils; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.poi.hssf.usermodel.HSSFClientAnchor; +import org.apache.poi.hssf.usermodel.HSSFPatriarch; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import javax.imageio.ImageIO; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.io.OutputStream; +import javax.servlet.http.HttpSession; +import java.awt.image.BufferedImage; +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.file.StandardOpenOption; import java.text.SimpleDateFormat; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * @Description: 文档对比信息条款评论表 @@ -38,6 +52,13 @@ public class SarFileCompareItemCommentServiceImpl extends ServiceImpl list = queryListByInfoId(infoId); + List list = queryListByInfoId(infoId,comment); Map sfcItemMap = SarFileCompareItemServiceImpl.queryMapByInfoId(infoId); for (SarFileCompareItemComment sfcItemCom : list) { SarFileCompareItemComVO itemComVO = new SarFileCompareItemComVO(); @@ -155,8 +176,11 @@ public class SarFileCompareItemCommentServiceImpl extends ServiceImpl queryListByInfoId(String infoId) { + public List queryListByInfoId(String infoId,String comment) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (ObjectUtils.isNotEmpty(comment)) { + queryWrapper.eq(SarFileCompareItemComment::getComment, comment); + } queryWrapper.eq(SarFileCompareItemComment::getInfoId, infoId); queryWrapper.orderBy(true, true, SarFileCompareItemComment::getCreateTime); List list = this.list(queryWrapper); @@ -164,7 +188,7 @@ public class SarFileCompareItemCommentServiceImpl extends ServiceImpl list = null; if (includeComments && StringUtils.isEmpty(selectIds)) { //只导出全文评论的情况 @@ -175,13 +199,26 @@ public class SarFileCompareItemCommentServiceImpl extends ServiceImpl sfcItemMap = SarFileCompareItemServiceImpl.queryMapByInfoId(infoId); + SarFileCompareInfo sarFileCompareInfo = sarFileCompareInfoServiceImpl.queryById(infoId); + OutputStream os = null; - Workbook workbook = new XSSFWorkbook(); + Workbook workbook = new HSSFWorkbook(); + + //在本地创建图片文件夹 + String dir = filePath + File.separator + UUID.randomUUID().toString().replace("-", ""); + File dirFile = new File(dir); + if (dirFile.exists()){ + dirFile.delete(); + } + dirFile.mkdirs(); try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String fileName = "导出对比结果 " + sdf.format(new Date()) + ".xlsx"; @@ -195,15 +232,15 @@ public class SarFileCompareItemCommentServiceImpl extends ServiceImpl mergeCells = new ArrayList<>(); for (SarFileCompareItemComment itemComment : list) { + SarFileCompareExcelMergeCell sarFileCompareExcelMergeCell = new SarFileCompareExcelMergeCell(); + String[] leftSplit = null; + String[] rightSplit = null; Row row = sheet.createRow(i); + row.createCell(0).setCellValue(sarFileCompareInfo == null ? "" : sarFileCompareInfo.getTitleLeft() + " " + sarFileCompareInfo.getFileNameLeft()); + row.createCell(4).setCellValue(sarFileCompareInfo == null ? "" : sarFileCompareInfo.getTitleRight() + " " + sarFileCompareInfo.getFileNameRight()); String itemIdLeft = itemComment.getItemsIdLeft(); if (!StringUtils.isEmpty(itemIdLeft)) { SarFileCompareItem itemLeft = sfcItemMap.get(itemIdLeft); if (null != itemLeft) { - row.createCell(0).setCellValue(itemLeft.getItemsNum()); - row.createCell(1).setCellValue(itemLeft.getItemsName()); + row.createCell(1).setCellValue(itemLeft.getItemsNum()); + row.createCell(2).setCellValue(itemLeft.getItemsName()); String text = itemLeft.getItemsText(); text = text.replace("

", "").replace("

", "\r\n"); - row.createCell(2).setCellValue(text); + BufferedImage bufferImg = null; + ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream(); + addImgdata(text,request.getSession()); + String rowDataAndPath = (String) request.getSession().getAttribute("txtAndImg"); + leftSplit = rowDataAndPath.split("---"); + if (leftSplit.length > 1) { + for (int j = 0; j < leftSplit.length; j++) { + if (j > 0) { + Row row2 = sheet.createRow(j + i); + if (leftSplit[j].contains(".jpg") || leftSplit[j].contains(".png")) { + row2.setHeight((short) 5000); //设置行高 + //先将图片下载到本地 + String fileLastName = leftSplit[j].substring(leftSplit[j].lastIndexOf("/") + 1); + if (CosBootUtil.doesObjectExist(leftSplit[j])) { + try (InputStream in = CosBootUtil.download(leftSplit[j])) { + copyFile2(in, dir + File.separator + fileLastName); + } catch (IOException e) { + e.printStackTrace(); + log.error(e.getMessage(), e); + } + } + File file = new File(dir + File.separator + fileLastName); + if (file.exists()) { + bufferImg = ImageIO.read(file); + ImageIO.write(bufferImg, "jpg", byteArrayOut); + //anchor主要用于设置图片的属性 + HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 600, 200, (short) 3, j + i, (short) 3, j + i); + patriarch.createPicture(anchor, workbook.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG)); + + } + } else { + row2.createCell(3).setCellValue(leftSplit[j]); + } + } else { + if (leftSplit[j].contains(".jpg") || leftSplit[j].contains(".png")) { + row.setHeight((short) 5000); //设置行高 + //先将图片下载到本地 + String fileLastName = leftSplit[j].substring(leftSplit[j].lastIndexOf("/") + 1); + if (CosBootUtil.doesObjectExist(leftSplit[j])) { + try (InputStream in = CosBootUtil.download(leftSplit[j])) { + copyFile2(in, dir + File.separator + fileLastName); + } catch (IOException e) { + e.printStackTrace(); + log.error(e.getMessage(), e); + } + } + File file = new File(dir + File.separator + fileLastName); + if (file.exists()) { + bufferImg = ImageIO.read(file); + ImageIO.write(bufferImg, "jpg", byteArrayOut); + //anchor主要用于设置图片的属性 + HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 600, 200, (short) 3, j + i, (short) 3, j + i); + patriarch.createPicture(anchor, workbook.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG)); + + } + } else { + row.createCell(3).setCellValue(leftSplit[j]); + } + } + } + sarFileCompareExcelMergeCell.setLeftStart(i); + sarFileCompareExcelMergeCell.setLeftEnd(i + leftSplit.length - 1); + sarFileCompareExcelMergeCell.setRightStart(0); + sarFileCompareExcelMergeCell.setRightEnd(0); + mergeCells.add(sarFileCompareExcelMergeCell); + } else { + row.createCell(3).setCellValue(rowDataAndPath); + } row.setRowStyle(cellStyle); } } @@ -235,22 +346,87 @@ public class SarFileCompareItemCommentServiceImpl extends ServiceImpl", "").replace("

", "\r\n"); - row.createCell(5).setCellValue(text); + BufferedImage bufferImg = null; + ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream(); + addImgdata(text,request.getSession()); + String rowDataAndPath = (String) request.getSession().getAttribute("txtAndImg"); + rightSplit = rowDataAndPath.split("---"); + if (rightSplit.length > 1) { + for (int j = 0; j < rightSplit.length; j++) { + if (j > 0) { + Row row2 = sheet.createRow(j + i); + if (rightSplit[j].contains(".jpg") || rightSplit[j].contains(".png")) { + row2.setHeight((short) 5000); //设置行高 + //先将图片下载到本地 + String fileLastName = rightSplit[j].substring(rightSplit[j].lastIndexOf("/") + 1); + if (CosBootUtil.doesObjectExist(rightSplit[j])) { + try (InputStream in = CosBootUtil.download(rightSplit[j])) { + copyFile2(in, dir + File.separator + fileLastName); + } catch (IOException e) { + e.printStackTrace(); + log.error(e.getMessage(), e); + } + } + File file = new File(dir + File.separator + fileLastName); + if (file.exists()) { + bufferImg = ImageIO.read(file); + ImageIO.write(bufferImg, "jpg", byteArrayOut); + //anchor主要用于设置图片的属性 + HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 600, 200, (short) 3, j + i, (short) 3, j + i); + patriarch.createPicture(anchor, workbook.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG)); + + } + } else { + row2.createCell(3).setCellValue(rightSplit[j]); + } + } else { + if (rightSplit[j].contains(".jpg") || rightSplit[j].contains(".png")) { + row.setHeight((short) 5000); //设置行高 + //先将图片下载到本地 + String fileLastName = rightSplit[j].substring(rightSplit[j].lastIndexOf("/") + 1); + if (CosBootUtil.doesObjectExist(rightSplit[j])) { + try (InputStream in = CosBootUtil.download(rightSplit[j])) { + copyFile2(in, dir + File.separator + fileLastName); + } catch (IOException e) { + e.printStackTrace(); + log.error(e.getMessage(), e); + } + } + File file = new File(dir + File.separator + fileLastName); + if (file.exists()) { + bufferImg = ImageIO.read(file); + ImageIO.write(bufferImg, "jpg", byteArrayOut); + //anchor主要用于设置图片的属性 + HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 600, 200, (short) 3, j + i, (short) 3, j + i); + patriarch.createPicture(anchor, workbook.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG)); + + } + } else { + row.createCell(7).setCellValue(rightSplit[j]); + } + } + } + sarFileCompareExcelMergeCell.setRightStart(i); + sarFileCompareExcelMergeCell.setRightEnd(i + rightSplit.length - 1); + mergeCells.add(sarFileCompareExcelMergeCell); + } else { + row.createCell(7).setCellValue(rowDataAndPath); + } row.setRowStyle(cellStyle); } } - row.createCell(6).setCellValue(itemComment.getComment()); + row.createCell(8).setCellValue(itemComment.getComment()); for (int j = 0; j < 7; j++) { Cell cell = row.getCell(j); if (null != cell) { cell.setCellStyle(cellStyle); } } - i++; + i = i + leftSplit.length; } if (includeComments || StringUtils.isEmpty(selectIds)) { Row row = sheet.createRow(i); @@ -266,6 +442,30 @@ public class SarFileCompareItemCommentServiceImpl extends ServiceImpl= 0 ? mergeCell.getLeftStart() : mergeCell.getRightStart(); + Integer end = leftCount - rightCount >= 0 ? mergeCell.getLeftEnd() : mergeCell.getRightEnd(); + //合并 + CellRangeAddress region0 = new CellRangeAddress(start, end, 0, 0); + sheet.addMergedRegion(region0); + CellRangeAddress region1 = new CellRangeAddress(start, end, 1, 1); + sheet.addMergedRegion(region1); + CellRangeAddress region2 = new CellRangeAddress(start, end, 2, 2); + sheet.addMergedRegion(region2); + CellRangeAddress region4 = new CellRangeAddress(start, end, 4, 4); + sheet.addMergedRegion(region4); + CellRangeAddress region5 = new CellRangeAddress(start, end, 5, 5); + sheet.addMergedRegion(region5); + CellRangeAddress region6 = new CellRangeAddress(start, end, 6, 6); + sheet.addMergedRegion(region6); + CellRangeAddress region7 = new CellRangeAddress(start, end, 7, 7); + sheet.addMergedRegion(region7); + } + } + os = response.getOutputStream(); workbook.write(os); @@ -280,4 +480,63 @@ public class SarFileCompareItemCommentServiceImpl extends ServiceImpl标签内容中的图片路径,并重新按顺序拼接 + * @param text + * @return + */ + private void addImgdata(String text,HttpSession session) { + if (text.contains("<") || text.contains(">")) { + String txtLeft = text.substring(0, text.indexOf("<")); + String txtRight = text.substring(text.indexOf(">") + 1); + String img = text.substring(text.indexOf("<"), text.indexOf(">")); + String path = img.substring(img.lastIndexOf("=") + 1, img.lastIndexOf("\"")); + text = txtLeft + "---" + path + "---" + txtRight; + addImgdata(text, session); + } else { + session.setAttribute("txtAndImg", text); + } + } + + + /** + * 一致评估 + * @param sarFileCompareItemComment + */ + @Override + public void consensusAssessment(SarFileCompareItemComment sarFileCompareItemComment) { + Date now = new Date(); + sarFileCompareItemComment.setCreateTime(now); + sarFileCompareItemComment.setUpdateTime(now); + sarFileCompareItemComment.setComment("一致"); + save(sarFileCompareItemComment); + SarFileCompareItemServiceImpl.updateReviewedById(sarFileCompareItemComment.getItemsIdLeft()); + SarFileCompareItemServiceImpl.updateReviewedById(sarFileCompareItemComment.getItemsIdRight()); + } + + public void copyFile2(InputStream in, String destPath) throws IOException { + BufferedInputStream bis = new BufferedInputStream(in); + BufferedOutputStream bos = + new BufferedOutputStream(Files.newOutputStream(Paths.get(destPath), + StandardOpenOption.CREATE, + StandardOpenOption.TRUNCATE_EXISTING, + StandardOpenOption.WRITE)); + // 打开输入流 +// FileInputStream fis = new FileInputStream(srcPath); + // 打开输出流 +// FileOutputStream fos = new FileOutputStream(destPath); + // 读取和写入信息 + byte[] bytes = new byte[1024 * 1024]; + int len; + while ((len = bis.read(bytes)) > 0) { + bos.write(bytes, 0, len); + } + // 关闭流 先开后关 后开先关 + // 先开后关,先开的输入流,再开的输出流,那么应该先关输出流,再关输入流 + // 先关外层,再关内层。如BufferedInputStream包装了一个FileInputStream,那么先关BufferedInputStream,再关FileInputStream。 + bos.close(); // 后开先关 + bis.close(); // 先开后关 + } + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/docTranslation/entity/DocTranslationEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/docTranslation/entity/DocTranslationEO.java index 41a793654..e3e6909cf 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/docTranslation/entity/DocTranslationEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/docTranslation/entity/DocTranslationEO.java @@ -127,4 +127,7 @@ public class DocTranslationEO implements Serializable { @ApiModelProperty(value = "目标文件id") private java.lang.String targetFileId; + /**翻译后文件名称*/ + @TableField(exist = false) + private String targetFileName; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/docTranslation/service/impl/DocTranslationEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/docTranslation/service/impl/DocTranslationEOServiceImpl.java index e90b396bd..3425c99e3 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/docTranslation/service/impl/DocTranslationEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/docTranslation/service/impl/DocTranslationEOServiceImpl.java @@ -20,6 +20,7 @@ import com.jero.modules.docTranslation.service.IDocTranslationEOService; import com.jero.modules.docTranslation.utils.TranslationDocumentUtils; import com.jero.modules.document.enums.FieldTypeEnum; import com.jero.modules.oss.entity.OSSFile; +import com.jero.modules.oss.service.IOSSFileService; import me.zhyd.oauth.utils.StringUtils; import org.apache.commons.collections4.CollectionUtils; import org.apache.shiro.SecurityUtils; @@ -47,6 +48,8 @@ public class DocTranslationEOServiceImpl extends ServiceImpl datas,String cut){ if(CollectionUtils.isNotEmpty(datas)){ + String targetFileIds = datas.stream().map(DocTranslationEO::getTargetFileId).distinct().collect(Collectors.joining(",")); + List targetFileList = this.iOSSFileService.getFileInfos(targetFileIds); for (DocTranslationEO data : datas) { String textStatus_dictText = ""; OnlCgformField fileTypeField = this.onlCgformFieldService.queryById(data.getTextStatus()); @@ -166,6 +171,17 @@ public class DocTranslationEOServiceImpl extends ServiceImpl { + boolean flag = false; + if (org.apache.commons.lang3.StringUtils.equals(data.getTargetFileId(), targetFile.getId())) { + flag = true; + } + return flag; + }).map(OSSFile::getFileName).collect(Collectors.joining(",")); + data.setTargetFileName(targetFileName); + } } } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/docTranslation/utils/TranslationDocumentUtils.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/docTranslation/utils/TranslationDocumentUtils.java index 8e4aa43a5..477950de1 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/docTranslation/utils/TranslationDocumentUtils.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/docTranslation/utils/TranslationDocumentUtils.java @@ -115,8 +115,9 @@ public class TranslationDocumentUtils { //翻译后的文件路径 String translateAfterFilePath = uploadpath + "/tempZip/translationTempFile"; + String translateAfterFileName = sourceOssFile.getFileName().substring(0, sourceOssFile.getFileName().lastIndexOf(".")); try { - translateAfterFile = createTranslateAfterFile(translateAfterFilePath, translateAfterSb.toString(),sourceOssFile.getFileName()); + translateAfterFile = createTranslateAfterFile(translateAfterFilePath, translateAfterSb.toString(),translateAfterFileName); } catch (Exception ex) { ex.printStackTrace(); logger.error("翻译文档-写入文档失败:" + ex.getMessage()); @@ -137,7 +138,7 @@ public class TranslationDocumentUtils { if (!newFilePath.exists()) { newFilePath.mkdirs(); } - translateAfterFilePath = translateAfterFilePath + "/" + fileName; + translateAfterFilePath = translateAfterFilePath + "/" + fileName + ".doc"; File newFile = new File(translateAfterFilePath); if (!newFile.exists()) { newFile.createNewFile(); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/enums/LawsStateEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/enums/LawsStateEnum.java new file mode 100644 index 000000000..9d580bac4 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/enums/LawsStateEnum.java @@ -0,0 +1,41 @@ +package com.jero.modules.document.enums; + +/** + * @description + * 法规状态枚举 + * @date 2022/1/21 15:22 + * @auth zhn + */ +public enum LawsStateEnum { + ACTIVE("现行","1"), + ABOLISH("废止","2"), + THE_UPCOMING("即将实施","3"), + DRAFT("草稿","4"), + BE_REPLACED("被代替","5"); + + + + String name; + String value; + + private LawsStateEnum(String name, String value) { + this.name = name; + this.value = value; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java index 569e7bd31..e53b0e1b1 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java @@ -3806,17 +3806,26 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl bussDocumentLibraryEOList = bussDocumentLibraryEOService.list(); + if(bussDocumentLibraryEOList.size() != 0){ + for (BussDocumentLibraryEO bussDocumentLibraryEO : bussDocumentLibraryEOList) { + String xin1Che1Xing2Shi2Shi1Ri4Qi1Str = ""; + String implementTimestr = ""; + + String state = bussDocumentLibraryEO.getState();//状态 + //新车型实施日期 + Date xin1Che1Xing2Shi2Shi1Ri4Qi1 = bussDocumentLibraryEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1(); + //在产车实施日期 + Date implementTime = bussDocumentLibraryEO.getImplementTime(); + if(ObjectUtils.isNotEmpty(xin1Che1Xing2Shi2Shi1Ri4Qi1)){ + xin1Che1Xing2Shi2Shi1Ri4Qi1Str = sdf.format(xin1Che1Xing2Shi2Shi1Ri4Qi1); + } + if(ObjectUtils.isNotEmpty(implementTime)){ + implementTimestr = sdf.format(implementTime); + } + //法规状态为即将实施的法规,根据新车型实施日期和在产车实施日期, 到期后自动更新状态为现行 + if(StringUtils.isNotBlank(state) && LawsStateEnum.THE_UPCOMING.getValue().equals(state) + && (currentTime.equals(xin1Che1Xing2Shi2Shi1Ri4Qi1Str) || currentTime.equals(implementTimestr))){ + BussDocumentLibraryEO bussDocumentLibraryEOTemp = new BussDocumentLibraryEO(); + bussDocumentLibraryEOTemp.setId(bussDocumentLibraryEO.getId()); + bussDocumentLibraryEOTemp.setState(LawsStateEnum.ACTIVE.getValue()); + bussDocumentLibraryEOService.updateById(bussDocumentLibraryEOTemp); + } + } + } + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/extRepo/controller/ExtRepoFolderController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/extRepo/controller/ExtRepoFolderController.java index a77ed3230..4c6662775 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/extRepo/controller/ExtRepoFolderController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/extRepo/controller/ExtRepoFolderController.java @@ -13,10 +13,12 @@ import com.jero.modules.extRepo.service.IExtRepoFolderService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpSession; import java.util.List; @@ -47,7 +49,7 @@ public class ExtRepoFolderController extends JeroController queryList() { ERFTreeDataVO dataVO = new ERFTreeDataVO(); - dataVO.setManager(extRepoFolderService.isManager()); + dataVO.setManager(true); dataVO.setList(extRepoFolderService.queryTreeList()); return Result.OK(dataVO); } @@ -61,9 +63,11 @@ public class ExtRepoFolderController extends JeroController add(@Validated @RequestBody ExtRepoFolder extRepoFolder) { + public Result add(@Validated @RequestBody ExtRepoFolder extRepoFolder, HttpSession session) { Result result = new Result(); - if (extRepoFolderService.haveManageAuth(extRepoFolder.getSupFolder())) { + session.setAttribute("haveSuperiorManageAuth", false); + extRepoFolderService.haveSuperiorManageAuth(extRepoFolder.getSupFolder(),session); + if (ObjectUtils.isNotEmpty(session.getAttribute("haveSuperiorManageAuth"))&&(Boolean) session.getAttribute("haveSuperiorManageAuth")) { if (!extRepoFolder.isAddSub()) { //增加同级文件夹 ExtRepoFolder folder = extRepoFolderService.queryById(extRepoFolder.getSupFolder()); @@ -94,9 +98,11 @@ public class ExtRepoFolderController extends JeroController edit(@Validated @RequestBody ExtRepoFolder extRepoFolder) { + public Result edit(@Validated @RequestBody ExtRepoFolder extRepoFolder, HttpSession session) { Result result = new Result(); - if (extRepoFolderService.haveManageAuth(extRepoFolder.getId())) { + session.setAttribute("haveSuperiorManageAuth", false); + extRepoFolderService.haveSuperiorManageAuth(extRepoFolder.getSupFolder(),session); + if (ObjectUtils.isNotEmpty(session.getAttribute("haveSuperiorManageAuth"))&&(Boolean) session.getAttribute("haveSuperiorManageAuth")) { extRepoFolderService.editById(extRepoFolder); if (CutEnum.CN.getValue().equals(extRepoFolder.getCut())) { result.success("编辑成功!"); @@ -123,9 +129,11 @@ public class ExtRepoFolderController extends JeroController delete(@RequestParam(name = "id", required = true) String id, - @RequestParam(name = "cut", defaultValue = "cn") String cut) { + @RequestParam(name = "cut", defaultValue = "cn") String cut, HttpSession session) { Result result = new Result(); - if (extRepoFolderService.haveManageAuth(id)) { + session.setAttribute("haveSuperiorManageAuth", false); + extRepoFolderService.haveSuperiorManageAuth(id,session); + if (ObjectUtils.isNotEmpty(session.getAttribute("haveSuperiorManageAuth"))&&(Boolean) session.getAttribute("haveSuperiorManageAuth")) { List resList = extRepoFolderService.getListBySupFolder(id); if (resList.isEmpty()) { ExtRepoFolder erf = extRepoFolderService.queryById(id); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/extRepo/service/IExtRepoFolderService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/extRepo/service/IExtRepoFolderService.java index de4d4da8f..4a52b0959 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/extRepo/service/IExtRepoFolderService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/extRepo/service/IExtRepoFolderService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.jero.modules.extRepo.entity.ERFTreeData; import com.jero.modules.extRepo.entity.ExtRepoFolder; +import javax.servlet.http.HttpSession; import java.util.List; /** @@ -91,4 +92,13 @@ public interface IExtRepoFolderService extends IService { * @return */ List getListBySupFolder(String supFolder); + + /** + * 判断上级是否有权限 + * @param supFolder + * @param session + * @return + */ + void haveSuperiorManageAuth(String supFolder, HttpSession session); + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/extRepo/service/impl/ExtRepoFolderServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/extRepo/service/impl/ExtRepoFolderServiceImpl.java index 30df6c310..f9ad6ac17 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/extRepo/service/impl/ExtRepoFolderServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/extRepo/service/impl/ExtRepoFolderServiceImpl.java @@ -14,10 +14,12 @@ import com.jero.modules.extRepo.service.IExtRepoFolderService; import com.jero.modules.system.entity.SysUserRole; import com.jero.modules.system.service.ISysUserRoleService; import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.ObjectUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpSession; import java.util.*; import java.util.stream.Collectors; @@ -246,7 +248,7 @@ public class ExtRepoFolderServiceImpl extends ServiceImpl(),childLevel)); date.sortChildren(); resList.add(date); } else { @@ -257,6 +259,28 @@ public class ExtRepoFolderServiceImpl extends ServiceImpl subFolderTree(String folder,List childTree,int level) { + int childLevel = level + 1; + List listBySupFolder = getListBySupFolder(folder); + for (ExtRepoFolder extRepoFolder : listBySupFolder) { + ERFTreeData date = new ERFTreeData(extRepoFolder.getFolderName(), extRepoFolder.getId(), childLevel, extRepoFolder.getOrderId()); + date.setAuthManageIdsName(extRepoFolder.getAuthManageIdsName()); + date.setAuthManageIds(extRepoFolder.getAuthManageIds()); + date.setAuthViewIdsName(extRepoFolder.getAuthViewIdsName()); + date.setAuthViewIds(extRepoFolder.getAuthViewIds()); + date.setChildren(subFolderTree(extRepoFolder.getId(), new ArrayList(),childLevel)); + date.sortChildren(); + childTree.add(date); + } + return childTree; + } + private List getStringList(String listStr) { List res = new ArrayList<>(); if (null != listStr) { @@ -324,4 +348,24 @@ public class ExtRepoFolderServiceImpl extends ServiceImpl queryPageList(LawsOpinionAssessmentResultEO lawsOpinionAssessmentResultEO, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + @RequestParam(name="cut") String cut, HttpServletRequest req) { QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(lawsOpinionAssessmentResultEO, req.getParameterMap()); Page page = new Page(pageNo, pageSize); - IPage pageList = lawsOpinionAssessmentResultEOService.page(page, queryWrapper); + IPage pageList = this.lawsOpinionAssessmentResultEOService.page(page, queryWrapper); + List records = pageList.getRecords(); + if(CollectionUtils.isEmpty(records)){ + records = new ArrayList<>(); + } + this.lawsOpinionAssessmentResultEOService.disposeData(records,lawsOpinionAssessmentResultEO,cut); + pageList.setRecords(records); return Result.OK(pageList); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/controller/LawsOpinionGatherEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/controller/LawsOpinionGatherEOController.java index 4b67a1d10..6eec32d23 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/controller/LawsOpinionGatherEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/controller/LawsOpinionGatherEOController.java @@ -127,8 +127,8 @@ public class LawsOpinionGatherEOController extends JeroController deleteBatch(@RequestParam(name="ids",required=true) String ids) { - this.lawsOpinionGatherEOService.deleteByIds(Arrays.asList(ids.split(","))); + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids,@RequestParam(name="cut",required=true) String cut) { + this.lawsOpinionGatherEOService.deleteByIds(Arrays.asList(ids.split(",")),cut); return Result.OK("批量删除成功!"); } @@ -184,4 +184,10 @@ public class LawsOpinionGatherEOController extends JeroController batchCompleteTask(@RequestBody JSONObject jsonObject){ + return this.lawsOpinionGatherEOService.batchCompleteTask(jsonObject); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/entity/LawsOpinionAssessmentResultEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/entity/LawsOpinionAssessmentResultEO.java index 446d76baa..a35a621f2 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/entity/LawsOpinionAssessmentResultEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/entity/LawsOpinionAssessmentResultEO.java @@ -98,4 +98,9 @@ public class LawsOpinionAssessmentResultEO implements Serializable { @ApiModelProperty(value = "流程实例id") private String actiProcInstId; + /**条款内容*/ + @Excel(name = "条款内容", width = 15) + @ApiModelProperty(value = "条款内容") + private String clauseContent; + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/entity/LawsOpinionGatherEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/entity/LawsOpinionGatherEO.java index 5e5a18fcf..78205d522 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/entity/LawsOpinionGatherEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/entity/LawsOpinionGatherEO.java @@ -119,4 +119,7 @@ public class LawsOpinionGatherEO implements Serializable { /**对外意见归档文件数组**/ @TableField(exist = false) private List opinionArchiveFileList; + + @ApiModelProperty(value = "评估人ids,多个之间使用英文逗号分隔") + private String evaluatorIds; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/job/LawsOpinionGatherJob.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/job/LawsOpinionGatherJob.java index bf1e5ac43..c5d17ad6c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/job/LawsOpinionGatherJob.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/job/LawsOpinionGatherJob.java @@ -34,7 +34,8 @@ public class LawsOpinionGatherJob implements Job { @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { log.info("法规意见收集流程,定时任务开启 ====================================================="); - QueryWrapper lawsOpinionGatherEOQueryWrapper = new QueryWrapper<>(); + //TODO 2022-09-29 该功能被手动按钮替代 对应禅道bug编号 59979 + /*QueryWrapper lawsOpinionGatherEOQueryWrapper = new QueryWrapper<>(); lawsOpinionGatherEOQueryWrapper.lambda().eq(LawsOpinionGatherEO::getGatherResult, GatherResultEnum.UNDERWAY.getValue()); List lawsOpinionGatherEOList = this.lawsOpinionGatherEOService.list(lawsOpinionGatherEOQueryWrapper); if (CollectionUtils.isNotEmpty(lawsOpinionGatherEOList)) { @@ -58,7 +59,7 @@ public class LawsOpinionGatherJob implements Job { this.lawsOpinionGatherEOService.updateBatchById(updateLawsOpinionGatherEOList); } } - } + }*/ log.info("法规意见收集流程,定时任务结束 ====================================================="); } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/ILawsOpinionAssessmentResultEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/ILawsOpinionAssessmentResultEOService.java index 5fdc85844..19b197119 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/ILawsOpinionAssessmentResultEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/ILawsOpinionAssessmentResultEOService.java @@ -71,4 +71,10 @@ public interface ILawsOpinionAssessmentResultEOService extends IService params); + + /** + * 处理数据 + * @param lawsOpinionAssessmentResultEOList + */ + void disposeData(List lawsOpinionAssessmentResultEOList,LawsOpinionAssessmentResultEO lawsOpinionAssessmentResultEO,String cut); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/ILawsOpinionGatherEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/ILawsOpinionGatherEOService.java index 710e61bf2..b4a878930 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/ILawsOpinionGatherEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/ILawsOpinionGatherEOService.java @@ -44,7 +44,7 @@ public interface ILawsOpinionGatherEOService extends IService ids); + void deleteByIds(List ids,String cut); /** * 通过id查询 @@ -75,4 +75,6 @@ public interface ILawsOpinionGatherEOService extends IService lawsOpinionGatherEOList,String cut); void workFlowSendMsg(JSONObject jsonObject); + + Result batchCompleteTask(JSONObject jsonObject); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionAssessmentResultEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionAssessmentResultEOServiceImpl.java index 5e5acc773..df0bd1d1a 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionAssessmentResultEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionAssessmentResultEOServiceImpl.java @@ -16,8 +16,11 @@ import com.jero.modules.lawsOpinionGather.entity.LawsOpinionAssessmentResultEO; import com.jero.modules.lawsOpinionGather.entity.LawsOpinionGatherEO; import com.jero.modules.lawsOpinionGather.mapper.LawsOpinionAssessmentResultEOMapper; import com.jero.modules.lawsOpinionGather.service.ILawsOpinionAssessmentResultEOService; +import com.jero.modules.lawsOpinionGather.service.ILawsOpinionGatherEOService; import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.service.IOSSFileService; +import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.util.PDFUtils; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -57,6 +60,10 @@ public class LawsOpinionAssessmentResultEOServiceImpl extends ServiceImpl page = new Page(pageNo, pageSize); IPage pageList = this.page(page, queryWrapper); exportData = pageList.getRecords(); + if(CollectionUtils.isEmpty(exportData)){ + exportData = new ArrayList<>(); + } } - this.disposeData(exportData,cut); + this.disposeData(exportData,lawsOpinionAssessmentResultEO,cut); String title = ""; String fileName = ""; if(StringUtils.equals(cut, CutEnum.CN.getValue())){ - title = "相关章节,问题/建议,理由,附件,评估人,提出时间"; - fileName = "评估结果 " + ".xlsx"; + title = "相关章节,问题/建议,理由,条款内容,附件,评估人,提出时间"; + fileName = "评估结果" + ".xls"; }else if(StringUtils.equals(cut,CutEnum.EN.getValue())){ - title = "Related section,IssueOrSuggest,Reason,Accessory,Evaluator,Submit Date"; - fileName = "Evaluation results " + ".xlsx"; + title = "Related section,IssueOrSuggest,Reason,Item Content,Accessory,Evaluator,Submit Date"; + fileName = "Evaluation results" + ".xls"; } OutputStream os = null; @@ -212,7 +222,7 @@ public class LawsOpinionAssessmentResultEOServiceImpl extends ServiceImpl records,LawsOpinionAssessmentResultEO lawsOpinionAssessmentResultEO,String cut) { + if(CollectionUtils.isNotEmpty(records)){ + for (LawsOpinionAssessmentResultEO data : records) { + if(StringUtils.isNotEmpty(data.getAccessoryFile())){ + List accessoryFileList = iOSSFileService.getFileInfos(data.getAccessoryFile()); + String accessoryFileName = accessoryFileList.stream().map(OSSFile::getFileName).collect(Collectors.joining(",")); + data.setAccessoryFileName(accessoryFileName); + } + } + } + + LawsOpinionGatherEO lawsOpinionGatherEO = lawsOpinionGatherEOService.getById(lawsOpinionAssessmentResultEO.getLawsOpinionGatherId()); + List evaluatorIdList = Arrays.asList(lawsOpinionGatherEO.getEvaluatorIds().split(",")); + List evaluatorUserList = this.sysUserService.querySysUserListByIdList(evaluatorIdList); + + //处理评估人没有填写任何评估结果情况。 + if(CollectionUtils.isEmpty(records)){ + if(lawsOpinionGatherEO != null){ + for (SysUser evaluatorUser : evaluatorUserList) { + LawsOpinionAssessmentResultEO lawsOpinionAssessmentResult = new LawsOpinionAssessmentResultEO(); + lawsOpinionAssessmentResult.setCreateBy(evaluatorUser.getUsername()); + records.add(lawsOpinionAssessmentResult); + } + } + }else { + List evaluatorUsers = evaluatorUserList.stream().filter(evaluatorUser -> { + boolean flag = true; + for (LawsOpinionAssessmentResultEO record : records) { + if(com.jero.modules.system.util.StringUtils.equals(evaluatorUser.getUsername(),record.getCreateBy())){ + flag = false; + break; + } + } + return flag; + }).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(evaluatorUsers)){ + for (SysUser evaluatorUser : evaluatorUsers) { + LawsOpinionAssessmentResultEO lawsOpinionAssessmentResult = new LawsOpinionAssessmentResultEO(); + lawsOpinionAssessmentResult.setCreateBy(evaluatorUser.getUsername()); + records.add(lawsOpinionAssessmentResult); + } + } + } + } + public static void copyFile(InputStream in, String newFile) throws IOException { File file2 = new File(newFile); if (!file2.exists()) { @@ -326,23 +383,6 @@ public class LawsOpinionAssessmentResultEOServiceImpl extends ServiceImpl datas,String cut){ - if(CollectionUtils.isNotEmpty(datas)){ - for (LawsOpinionAssessmentResultEO data : datas) { - if(StringUtils.isNotEmpty(data.getAccessoryFile())){ - List accessoryFileList = iOSSFileService.getFileInfos(data.getAccessoryFile()); - String accessoryFileName = accessoryFileList.stream().map(OSSFile::getFileName).collect(Collectors.joining(",")); - data.setAccessoryFileName(accessoryFileName); - } - } - } - } - public String disposeDate(Date date){ String result = ""; try { diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionGatherEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionGatherEOServiceImpl.java index 6e51bcfff..376cc56a3 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionGatherEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionGatherEOServiceImpl.java @@ -28,8 +28,10 @@ import com.jero.modules.system.entity.SysCategory; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.impl.SysCategoryServiceImpl; +import com.jero.modules.wkflow.feginClient.WorkFlowFeignClient; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.jeecg.modules.jmreport.common.constant.CommonConstant; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -64,6 +66,9 @@ public class LawsOpinionGatherEOServiceImpl extends ServiceImpl ids) { - removeByIds(ids); + public void deleteByIds(List ids,String cut) { + QueryWrapper lawsOpinionGatherEOQueryWrapper = new QueryWrapper<>(); + lawsOpinionGatherEOQueryWrapper.lambda().in(LawsOpinionGatherEO::getId, ids); + List lawsOpinionGatherEOList = this.list(lawsOpinionGatherEOQueryWrapper); - QueryWrapper deleteWrapper = new QueryWrapper(); - deleteWrapper.in("laws_opinion_gather_id",ids); - this.lawsOpinionAssessmentResultEOService.remove(deleteWrapper); + List actiProcInstIdList = lawsOpinionGatherEOList.stream().map(LawsOpinionGatherEO::getActiProcInstId).distinct().collect(Collectors.toList()); + String prcIds = org.apache.commons.lang.StringUtils.join(actiProcInstIdList,","); + Result result = this.workFlowFeignClient.deleteProcessInstanceByPrcIds(prcIds); + if(result.getCode().equals(CommonConstant.SC_OK_200)){ + removeByIds(ids); + QueryWrapper deleteWrapper = new QueryWrapper(); + deleteWrapper.in("laws_opinion_gather_id",ids); + this.lawsOpinionAssessmentResultEOService.remove(deleteWrapper); + }else { + if(StringUtils.equals(cut,CutEnum.CN.getValue())){ + throw new JeroBootException("删除失败,请联系管理员!"); + }else if(StringUtils.equals(cut,CutEnum.EN.getValue())){ + throw new JeroBootException("Delete failed, please contact the administrator!"); + } + } } /** @@ -283,4 +302,36 @@ public class LawsOpinionGatherEOServiceImpl extends ServiceImpl batchCompleteTask(JSONObject jsonObject) { + String ids = jsonObject.getString("ids"); + String cut = jsonObject.getString("cut"); + if(StringUtils.isEmpty(ids)){ + if(StringUtils.equals(cut,CutEnum.CN.getValue())){ + throw new JeroBootException("至少选择一条数据进行手动结束!"); + }else if(StringUtils.equals(cut,CutEnum.EN.getValue())){ + throw new JeroBootException("Select at least one piece of data for manual termination!"); + } + } + + List lawsOpinionGatherIdList = Arrays.asList(ids.split(",")); + QueryWrapper lawsOpinionGatherEOQueryWrapper = new QueryWrapper<>(); + lawsOpinionGatherEOQueryWrapper.lambda().eq(LawsOpinionGatherEO::getGatherResult, GatherResultEnum.UNDERWAY.getValue()); + lawsOpinionGatherEOQueryWrapper.lambda().in(LawsOpinionGatherEO::getId, lawsOpinionGatherIdList); + List lawsOpinionGatherEOList = this.list(lawsOpinionGatherEOQueryWrapper); + if (CollectionUtils.isNotEmpty(lawsOpinionGatherEOList)) { + List actiProcInstIdList = lawsOpinionGatherEOList.stream().map(LawsOpinionGatherEO::getActiProcInstId).distinct().collect(Collectors.toList()); + String actiProcInstIds = org.apache.commons.lang.StringUtils.join(actiProcInstIdList,","); + //将这些流程实例下的待办任务提交 + Result result = this.workFlowFeignClient.completeTaskByPids(actiProcInstIds); + if(result.getCode().equals(CommonConstant.SC_OK_200)){ + lawsOpinionGatherEOList.forEach(lawsOpinionGatherEO -> { + lawsOpinionGatherEO.setGatherResult(GatherResultEnum.COMPLETED.getValue()); + }); + this.updateBatchById(lawsOpinionGatherEOList); + } + } + return new Result<>().success("手动结束成功!"); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/controller/LawsTechnologyEvaluationEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/controller/LawsTechnologyEvaluationEOController.java index 9ca5ddf32..ca025a19e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/controller/LawsTechnologyEvaluationEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/controller/LawsTechnologyEvaluationEOController.java @@ -130,8 +130,8 @@ public class LawsTechnologyEvaluationEOController extends JeroController deleteBatch(@RequestParam(name="ids",required=true) String ids) { - this.lawsTechnologyEvaluationEOService.deleteByIds(Arrays.asList(ids.split(","))); + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids,@RequestParam(name="cut",required=true) String cut) { + this.lawsTechnologyEvaluationEOService.deleteByIds(Arrays.asList(ids.split(",")),cut); return Result.OK("批量删除成功!"); } @@ -180,8 +180,8 @@ public class LawsTechnologyEvaluationEOController extends JeroController processCall(@RequestBody JSONObject jsonObject){ return this.lawsTechnologyEvaluationEOService.processCall(jsonObject); @@ -218,4 +218,11 @@ public class LawsTechnologyEvaluationEOController extends JeroController> result = this.lawsTechnologyEvaluationEOService.queryPageDummyById(parameter); return Result.OK(result); } + + @AutoLog(value = "法规技术评估-批量完成任务") + @ApiOperation(value="法规技术评估-批量完成任务", notes="法规技术评估-批量完成任务") + @PostMapping(value = "/batchCompleteTask") + public Result batchCompleteTask(@RequestBody JSONObject jsonObject){ + return this.lawsTechnologyEvaluationEOService.batchCompleteTask(jsonObject); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/enums/LawsTechnologyEvaluationNodeEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/enums/LawsTechnologyEvaluationNodeEnum.java index 3cc205f1c..fef65dfea 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/enums/LawsTechnologyEvaluationNodeEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/enums/LawsTechnologyEvaluationNodeEnum.java @@ -9,6 +9,7 @@ import com.jero.common.constant.enums.CutEnum; public enum LawsTechnologyEvaluationNodeEnum { ENGINEER_INITIATED("fggcsfq","法规工程师发起","Engineer initiated"), + ENGINEER_INITIATED_("fqgcsfq","法规工程师发起","Engineer initiated"), APPRAISERS_EVALUATION("pgrqr","评估人评估","Appraiser's evaluation"), SPONSOR_REVIEW("fqrsc","发起人审查","Sponsor review"), ; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/job/LawsTechnologyEvaluationJob.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/job/LawsTechnologyEvaluationJob.java index 63f308573..c3877f9e8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/job/LawsTechnologyEvaluationJob.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/job/LawsTechnologyEvaluationJob.java @@ -38,7 +38,8 @@ public class LawsTechnologyEvaluationJob implements Job { public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { log.info("法规技术评估流程,定时任务开启 ====================================================="); - QueryWrapper queryWrapper = new QueryWrapper<>(); + //TODO 2022-09-29 该功能被手动按钮替代 对应禅道bug编号 59979 + /*QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(LawsTechnologyEvaluationEO::getFlowStatus, GatherResultEnum.UNDERWAY.getValue()); List lawsTechnologyEvaluationEOList = this.lawsTechnologyEvaluationEOService.list(queryWrapper); @@ -73,7 +74,7 @@ public class LawsTechnologyEvaluationJob implements Job { } } - } + }*/ log.info("法规技术评估流程,定时任务结束 ====================================================="); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/ILawsTechnologyEvaluationEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/ILawsTechnologyEvaluationEOService.java index f13cde5ca..b2bad56ff 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/ILawsTechnologyEvaluationEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/ILawsTechnologyEvaluationEOService.java @@ -50,7 +50,7 @@ public interface ILawsTechnologyEvaluationEOService extends IService ids); + void deleteByIds(List ids,String cut); /** * 通过id查询 @@ -90,4 +90,6 @@ public interface ILawsTechnologyEvaluationEOService extends IService> queryPageDummyById(Map parameter); void workFlowSendMsg(JSONObject jsonObject); + + Result batchCompleteTask(JSONObject jsonObject); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/ILawsTechnologyEvaluationResultEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/ILawsTechnologyEvaluationResultEOService.java index d7d1d0f89..2feb8e00b 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/ILawsTechnologyEvaluationResultEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/ILawsTechnologyEvaluationResultEOService.java @@ -1,6 +1,7 @@ package com.jero.modules.lawsTechnologyEvaluation.service; import com.alibaba.fastjson.JSONObject; +import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluationComplianceResultEO; import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluationResultEO; import com.baomidou.mybatisplus.extension.service.IService; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationComplianceResultEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationComplianceResultEOServiceImpl.java index 9bef97e7a..cc0ed5c10 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationComplianceResultEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationComplianceResultEOServiceImpl.java @@ -11,14 +11,17 @@ import com.jero.common.system.vo.LoginUser; import com.jero.common.util.FileUtils; import com.jero.common.util.oss.CosBootUtil; import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluationComplianceResultEO; -import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluationItemResultEO; +import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluationFlowDetailEO; import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluationResultEO; import com.jero.modules.lawsTechnologyEvaluation.enums.ComplianceResultEnum; import com.jero.modules.lawsTechnologyEvaluation.mapper.LawsTechnologyEvaluationComplianceResultEOMapper; import com.jero.modules.lawsTechnologyEvaluation.service.ILawsTechnologyEvaluationComplianceResultEOService; +import com.jero.modules.lawsTechnologyEvaluation.service.ILawsTechnologyEvaluationFlowDetailEOService; import com.jero.modules.lawsTechnologyEvaluation.service.ILawsTechnologyEvaluationResultEOService; import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.service.IOSSFileService; +import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.util.PDFUtils; import org.apache.commons.collections4.CollectionUtils; import org.apache.poi.hssf.usermodel.HSSFSheet; @@ -32,10 +35,7 @@ import org.springframework.stereotype.Service; import java.io.*; import java.text.SimpleDateFormat; -import java.util.Arrays; -import java.util.List; -import java.util.Date; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -60,6 +60,10 @@ public class LawsTechnologyEvaluationComplianceResultEOServiceImpl extends Servi private ILawsTechnologyEvaluationResultEOService evaluationResultEOService; @Autowired private IOSSFileService iOSSFileService; + @Autowired + private ILawsTechnologyEvaluationFlowDetailEOService lawsTechnologyEvaluationFlowDetailEOService; + @Autowired + private ISysUserService sysUserService; /** * 保存 @@ -136,8 +140,8 @@ public class LawsTechnologyEvaluationComplianceResultEOServiceImpl extends Servi } List complianceResultEOList = this.baseMapper.selectList(queryWrapper); + this.disposeData(complianceResultEOList,cut,lawsTechnologyEvaluationComplianceResultEO); if(CollectionUtils.isNotEmpty(complianceResultEOList)){ - this.disposeData(complianceResultEOList,cut); List complianceResultIdList = complianceResultEOList.stream().map(LawsTechnologyEvaluationComplianceResultEO::getId).distinct().collect(Collectors.toList()); QueryWrapper evaluationResultEOQueryWrapper = new QueryWrapper<>(); evaluationResultEOQueryWrapper.lambda().in(LawsTechnologyEvaluationResultEO::getComplianceResultId,complianceResultIdList); @@ -174,7 +178,7 @@ public class LawsTechnologyEvaluationComplianceResultEOServiceImpl extends Servi lawsTechnologyEvaluationComplianceResultEO.setIds(ids); } List exportData = this.queryList(lawsTechnologyEvaluationComplianceResultEO, request, cut); - this.disposeData(exportData,cut); + this.disposeData(exportData,cut,lawsTechnologyEvaluationComplianceResultEO); String title = ""; String bottomTitle = ""; @@ -183,12 +187,12 @@ public class LawsTechnologyEvaluationComplianceResultEOServiceImpl extends Servi if(org.apache.commons.lang3.StringUtils.equals(cut, CutEnum.CN.getValue())){ title = "相关章节,问题说明,附件"; bottomTitle = "符合性结果:"; - fileName = "评估结果 " + ".xlsx"; + fileName = "评估结果" + ".xls"; sheetName = "反馈结果"; }else if(org.apache.commons.lang3.StringUtils.equals(cut,CutEnum.EN.getValue())){ title = "Related section,Problem description,Accessory"; bottomTitle = "Compliance results:"; - fileName = "Evaluation results " + ".xlsx"; + fileName = "Evaluation results" + ".xls"; sheetName = "Feedback result"; } @@ -224,23 +228,28 @@ public class LawsTechnologyEvaluationComplianceResultEOServiceImpl extends Servi cell.setCellValue(titleArr[j]); } + int complianceResultNameRow = 1; //获取这个评估人填写的评估结果 List lawsTechnologyEvaluationResultEOList = exportData.get(i).getLawsTechnologyEvaluationResultEOList(); - int evaluationResultListSize = lawsTechnologyEvaluationResultEOList.size(); if(CollectionUtils.isNotEmpty(lawsTechnologyEvaluationResultEOList)){ - for (int dataIndex = 0; dataIndex < lawsTechnologyEvaluationResultEOList.size(); dataIndex++) { - Row dataRow = sheet.createRow(dataIndex + 1); - dataRow.createCell(0).setCellValue(lawsTechnologyEvaluationResultEOList.get(dataIndex).getRelatedSection()); - dataRow.createCell(1).setCellValue(lawsTechnologyEvaluationResultEOList.get(dataIndex).getIssueOrSuggest()); - dataRow.createCell(2).setCellValue(lawsTechnologyEvaluationResultEOList.get(dataIndex).getAccessoryFileName()); + int evaluationResultListSize = lawsTechnologyEvaluationResultEOList.size(); + if(CollectionUtils.isNotEmpty(lawsTechnologyEvaluationResultEOList)){ + for (int dataIndex = 0; dataIndex < lawsTechnologyEvaluationResultEOList.size(); dataIndex++) { + Row dataRow = sheet.createRow(dataIndex + 1); + dataRow.createCell(0).setCellValue(lawsTechnologyEvaluationResultEOList.get(dataIndex).getRelatedSection()); + dataRow.createCell(1).setCellValue(lawsTechnologyEvaluationResultEOList.get(dataIndex).getIssueOrSuggest()); + dataRow.createCell(2).setCellValue(lawsTechnologyEvaluationResultEOList.get(dataIndex).getAccessoryFileName()); + } } + complianceResultNameRow += evaluationResultListSize; } //把符合性结果设置进excel表格中。 - Row bottomRow = sheet.createRow(evaluationResultListSize + 1); + Row bottomRow = sheet.createRow(complianceResultNameRow); Cell bottomRowFirstCell = bottomRow.createCell(0); bottomRowFirstCell.setCellStyle(titleCellStyle); - bottomRowFirstCell.setCellValue(bottomTitle + " " + exportData.get(i).getComplianceResultName()); + String complianceResultName = org.apache.commons.lang3.StringUtils.isNotEmpty(exportData.get(i).getComplianceResultName()) ? exportData.get(i).getComplianceResultName() : ""; + bottomRowFirstCell.setCellValue(bottomTitle + " " + complianceResultName); } } @@ -316,7 +325,7 @@ public class LawsTechnologyEvaluationComplianceResultEOServiceImpl extends Servi } } - public void disposeData(List datas,String cut){ + public void disposeData(List datas,String cut,LawsTechnologyEvaluationComplianceResultEO lawsTechnologyEvaluationComplianceResultEO){ if(CollectionUtils.isNotEmpty(datas)){ for (LawsTechnologyEvaluationComplianceResultEO data : datas) { if(!StringUtils.isEmpty(data.getComplianceResult())){ @@ -324,6 +333,47 @@ public class LawsTechnologyEvaluationComplianceResultEOServiceImpl extends Servi } } } + //获取当前法规技术评估下面的所有评估人 + QueryWrapper flowDetailQueryWrap = new QueryWrapper<>(); + flowDetailQueryWrap.lambda().eq(LawsTechnologyEvaluationFlowDetailEO::getLawsTechnologyEvaluationId,lawsTechnologyEvaluationComplianceResultEO.getLawsTechnologyEvaluationId()); + List flowDetailEOList = this.lawsTechnologyEvaluationFlowDetailEOService.list(flowDetailQueryWrap); + List evaluatorUserList = null; + if(CollectionUtils.isNotEmpty(flowDetailEOList)){ + List evaluatorIdList = flowDetailEOList.stream().map(LawsTechnologyEvaluationFlowDetailEO::getEvaluatorId).distinct().collect(Collectors.toList()); + evaluatorUserList = this.sysUserService.querySysUserListByIdList(evaluatorIdList); + } + //处理评估人没有填写任何评估结果的情况 + if(CollectionUtils.isEmpty(datas)){ + if (CollectionUtils.isNotEmpty(evaluatorUserList)) { + for (SysUser evaluatorUser : evaluatorUserList) { + LawsTechnologyEvaluationComplianceResultEO resultEO = new LawsTechnologyEvaluationComplianceResultEO(); + String uuid = UUID.randomUUID().toString().replace("-", ""); + resultEO.setId(uuid); + resultEO.setCreateBy(evaluatorUser.getUsername()); + datas.add(resultEO); + } + } + }else { + List evaluatorUsers = evaluatorUserList.stream().filter(evaluatorUser -> { + boolean flag = true; + for (LawsTechnologyEvaluationComplianceResultEO data : datas) { + if(org.apache.commons.lang3.StringUtils.equals(evaluatorUser.getUsername(),data.getCreateBy())){ + flag = false; + break; + } + } + return flag; + }).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(evaluatorUsers)){ + for (SysUser evaluatorUser : evaluatorUsers) { + LawsTechnologyEvaluationComplianceResultEO resultEO = new LawsTechnologyEvaluationComplianceResultEO(); + String uuid = UUID.randomUUID().toString().replace("-", ""); + resultEO.setId(uuid); + resultEO.setCreateBy(evaluatorUser.getUsername()); + datas.add(resultEO); + } + } + } } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationEOServiceImpl.java index 4ef994acd..567660c55 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationEOServiceImpl.java @@ -16,6 +16,7 @@ import com.jero.modules.document.mapper.BussDocumentLibraryEOMapper; import com.jero.modules.document.service.impl.BussDocumentLibraryEOServiceImpl; import com.jero.modules.lawsOpinionGather.enums.GatherResultEnum; import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluationEO; +import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluationFlowDetailEO; import com.jero.modules.lawsTechnologyEvaluation.mapper.LawsTechnologyEvaluationEOMapper; import com.jero.modules.lawsTechnologyEvaluation.service.*; import com.jero.modules.project.enums.JumpLinkEnum; @@ -31,12 +32,14 @@ import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.impl.SysCategoryServiceImpl; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; +import com.jero.modules.wkflow.feginClient.WorkFlowFeignClient; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; +import org.jeecg.modules.jmreport.common.constant.CommonConstant; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -90,6 +93,8 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl ids) { - removeByIds(ids); + public void deleteByIds(List ids,String cut) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().in(LawsTechnologyEvaluationEO::getId, ids); + List lawsTechnologyEvaluationEOList = this.list(queryWrapper); - QueryWrapper deleteWrapper = new QueryWrapper(); - deleteWrapper.in("laws_technology_evaluation_id",ids); - this.lawsTechnologyEvaluationFlowDetailEOService.remove(deleteWrapper); + List lawsTechnologyEvaluationIdList = lawsTechnologyEvaluationEOList.stream().map(LawsTechnologyEvaluationEO::getId).distinct().collect(Collectors.toList()); - this.lawsTechnologyEvaluationItemResultEOService.remove(deleteWrapper); + //获取这些法规技术评估数据的下级流程明细数据。 + QueryWrapper flowDetailEOQueryWrapper = new QueryWrapper<>(); + flowDetailEOQueryWrapper.lambda().in(LawsTechnologyEvaluationFlowDetailEO::getLawsTechnologyEvaluationId,lawsTechnologyEvaluationIdList); + List lawsTechnologyEvaluationFlowDetailEOList = lawsTechnologyEvaluationFlowDetailEOService.list(flowDetailEOQueryWrapper); - this.lawsTechnologyEvaluationResultEOService.remove(deleteWrapper); + if(CollectionUtils.isNotEmpty(lawsTechnologyEvaluationFlowDetailEOList)){ + String prcIds = lawsTechnologyEvaluationFlowDetailEOList.stream().map(LawsTechnologyEvaluationFlowDetailEO::getActiProcInstId).distinct().collect(Collectors.joining(",")); + Result result = this.workFlowFeignClient.deleteProcessInstanceByPrcIds(prcIds); + if(result.getCode().equals(CommonConstant.SC_OK_200)){ + removeByIds(ids); - this.lawsTechnologyEvaluationComplianceResultEOService.remove(deleteWrapper); + QueryWrapper deleteWrapper = new QueryWrapper(); + deleteWrapper.in("laws_technology_evaluation_id",ids); + this.lawsTechnologyEvaluationFlowDetailEOService.remove(deleteWrapper); + + this.lawsTechnologyEvaluationItemResultEOService.remove(deleteWrapper); + + this.lawsTechnologyEvaluationResultEOService.remove(deleteWrapper); + + this.lawsTechnologyEvaluationComplianceResultEOService.remove(deleteWrapper); + }else { + if(StringUtils.equals(cut,CutEnum.CN.getValue())){ + throw new JeroBootException("删除失败,请联系管理员!"); + }else if(StringUtils.equals(cut,CutEnum.EN.getValue())){ + throw new JeroBootException("Delete failed, please contact the administrator!"); + } + } + } } /** @@ -629,6 +657,45 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl batchCompleteTask(JSONObject jsonObject) { + String ids = jsonObject.getString("ids"); + String cut = jsonObject.getString("cut"); + if(StringUtils.isEmpty(ids)){ + if(StringUtils.equals(cut,CutEnum.CN.getValue())){ + throw new JeroBootException("至少选择一条数据进行手动结束!"); + }else if(StringUtils.equals(cut,CutEnum.EN.getValue())){ + throw new JeroBootException("Select at least one piece of data for manual termination!"); + } + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(LawsTechnologyEvaluationEO::getFlowStatus, GatherResultEnum.UNDERWAY.getValue()); + queryWrapper.lambda().in(LawsTechnologyEvaluationEO::getId, Arrays.asList(ids.split(","))); + List lawsTechnologyEvaluationEOList = this.list(queryWrapper); + + if (CollectionUtils.isNotEmpty(lawsTechnologyEvaluationEOList)) { + List lawsTechnologyEvaluationIdList = lawsTechnologyEvaluationEOList.stream().map(LawsTechnologyEvaluationEO::getId).distinct().collect(Collectors.toList()); + + //获取这些法规技术评估数据的下级流程明细数据。 + QueryWrapper flowDetailEOQueryWrapper = new QueryWrapper<>(); + flowDetailEOQueryWrapper.lambda().in(LawsTechnologyEvaluationFlowDetailEO::getLawsTechnologyEvaluationId,lawsTechnologyEvaluationIdList); + List lawsTechnologyEvaluationFlowDetailEOList = lawsTechnologyEvaluationFlowDetailEOService.list(flowDetailEOQueryWrapper); + + if(CollectionUtils.isNotEmpty(lawsTechnologyEvaluationFlowDetailEOList)){ + String actiProcInstIds = lawsTechnologyEvaluationFlowDetailEOList.stream().map(LawsTechnologyEvaluationFlowDetailEO::getActiProcInstId).distinct().collect(Collectors.joining(",")); + Result result = this.workFlowFeignClient.completeLawsTechnologyEvaluationTaskByPids(actiProcInstIds); + if(result.getCode().equals(CommonConstant.SC_OK_200)){ + lawsTechnologyEvaluationEOList.forEach(lawsTechnologyEvaluationEO -> { + lawsTechnologyEvaluationEO.setFlowStatus(GatherResultEnum.COMPLETED.getValue()); + }); + this.updateBatchById(lawsTechnologyEvaluationEOList); + } + } + } + return new Result<>().success("手动结束成功!"); + } + private String getTreeName(String cut, List categoryList, List technologyTerritoryList) { StringBuilder sb = new StringBuilder(); for (String technologyTerritory : technologyTerritoryList) { diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationItemResultEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationItemResultEOServiceImpl.java index e4fb88ea4..177e76a01 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationItemResultEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationItemResultEOServiceImpl.java @@ -267,10 +267,10 @@ public class LawsTechnologyEvaluationItemResultEOServiceImpl extends ServiceImpl String fileName = ""; if(StringUtils.equals(cut, CutEnum.CN.getValue())){ title = "条款号,条款名称,条款内容,评估人,评估方式,技术文件名称,章节,符合性结果,意见,附件,反馈时间"; - fileName = "条款评估结果 " + ".xlsx"; + fileName = "条款评估结果" + ".xls"; }else if(StringUtils.equals(cut,CutEnum.EN.getValue())){ title = "Item No.,Item Name,Item Content,Assessor,Evaluation method,Name of technical document,Chapter,Compliance Results,Opinion,Enclosure,Feedback Time"; - fileName = "Item Evaluation results " + ".xlsx"; + fileName = "Item Evaluation results" + ".xls"; } OutputStream os = null; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/entity/CountryCardManageReleaseDetailEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/entity/CountryCardManageReleaseDetailEO.java index 9aba556d1..cdf33870b 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/entity/CountryCardManageReleaseDetailEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/entity/CountryCardManageReleaseDetailEO.java @@ -99,4 +99,8 @@ public class CountryCardManageReleaseDetailEO implements Serializable { /**Country Card模板维护-字典项实体*/ @TableField(exist = false) private List countryCardTempItemEOList; + + @ApiModelProperty(value = "内容附件名称") + @TableField(exist = false) + private String contentFileName; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/entity/ProblemKnowledgeBaseEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/entity/ProblemKnowledgeBaseEO.java index 7d63858bf..870abb198 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/entity/ProblemKnowledgeBaseEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/entity/ProblemKnowledgeBaseEO.java @@ -7,6 +7,7 @@ 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 com.jero.modules.oss.entity.OSSFile; import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; import org.springframework.format.annotation.DateTimeFormat; @@ -182,4 +183,16 @@ public class ProblemKnowledgeBaseEO implements Serializable { /**模糊搜索全部输入字段条件*/ @TableField(exist = false) private String searchStr; + + /**评论总数量*/ + @TableField(exist = false) + private long commentCount; + + /**问题分类展示名称数组*/ + @TableField(exist = false) + private List problemTypeNameList; + + /**附件展示数组*/ + @TableField(exist = false) + private List accessoryFileNameList; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/CountryCardManageReleaseDetailEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/CountryCardManageReleaseDetailEOServiceImpl.java index 84929756b..8356604d4 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/CountryCardManageReleaseDetailEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/CountryCardManageReleaseDetailEOServiceImpl.java @@ -2,6 +2,8 @@ package com.jero.modules.problemKnowledgeBase.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.jero.common.system.query.QueryGenerator; +import com.jero.modules.oss.entity.OSSFile; +import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseDetailEO; import com.jero.modules.problemKnowledgeBase.entity.CountryCardTempEO; import com.jero.modules.problemKnowledgeBase.entity.CountryCardTempItemEO; @@ -38,6 +40,8 @@ public class CountryCardManageReleaseDetailEOServiceImpl extends ServiceImpl fileInfos = this.iOSSFileService.getFileInfos(fileIds); + String contentFileName = fileInfos.stream().map(OSSFile::getFileName).collect(Collectors.joining(",")); + data.setContentFileName(contentFileName); + } }); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/ProblemKnowledgeBaseEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/ProblemKnowledgeBaseEOServiceImpl.java index 3a7397a15..a1e1f7bd9 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/ProblemKnowledgeBaseEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/ProblemKnowledgeBaseEOServiceImpl.java @@ -40,6 +40,8 @@ import com.jero.modules.system.util.StringUtils; import org.apache.commons.collections4.CollectionUtils; import org.apache.shiro.SecurityUtils; import org.jetbrains.annotations.NotNull; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -117,10 +119,11 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl"); - sbCn.append("正文" + ":" + problemKnowledgeBaseEO.getContent() + " "); + sbCn.append("正文" + ":" + content + " "); }else { sbCn.append("
"); sbCn.append("正文" + ":" + "-- "); @@ -363,8 +370,12 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl"); - sbEn.append("Text" + ":" + problemKnowledgeBaseEO.getContent() + " "); + sbEn.append("Text" + ":" + content + " "); }else { sbEn.append("
"); sbEn.append("Text" + ":" + "-- "); @@ -544,8 +555,10 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl probleKnowledgeBaseIdList = datas.stream().map(ProblemKnowledgeBaseEO::getId).distinct().collect(Collectors.toList()); @@ -570,6 +583,14 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl permissionUserEOList = this.problemKnowledgeBaseUserEOService.list(permissionUserQueryWrapper); this.problemKnowledgeBaseUserEOService.disposeData(permissionUserEOList,cut); + //查询出数据的所有的评论数量 + QueryWrapper commentQueryWrapper = new QueryWrapper<>(); + commentQueryWrapper.lambda().in(ProblemKnowledgeBaseCommentEO::getProblemKnowledgeBaseId,probleKnowledgeBaseIdList); + List commentEOList = this.problemKnowledgeBaseCommentEOService.list(commentQueryWrapper); + + //根据文件的ids查询文件信息 + List accessoryFileList = this.iOSSFileService.getFileInfos(accessoryFileSb.toString()); + List problemKnowledgeBaseClassifyEOList = new ArrayList<>(); if(StringUtils.isNotEmpty(problemTypeSb.toString())){ List problemTypeList = Arrays.asList(problemTypeSb.toString().substring(0, problemTypeSb.toString().length() - 1).split(",")).stream().distinct().collect(Collectors.toList()); @@ -653,10 +674,19 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl { + boolean flag = false; + if (StringUtils.equals(data.getId(), commentEO.getProblemKnowledgeBaseId())) { + flag = true; + } + return flag; + }).count(); + data.setCommentCount(commentCount); + String problemType = data.getProblemType(); if(StringUtils.isNotEmpty(problemType)){ String[] problemTypeArr = problemType.split(","); - String problemTypeName = finalProblemKnowledgeBaseClassifyEOList.stream().filter(problemKnowledgeBaseClassifyEO -> { + List problemTypeNameList = finalProblemKnowledgeBaseClassifyEOList.stream().filter(problemKnowledgeBaseClassifyEO -> { boolean flag = false; for (String type : problemTypeArr) { if (StringUtils.equals(type, problemKnowledgeBaseClassifyEO.getId())) { @@ -664,9 +694,10 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl accessoryFiles = accessoryFileList.stream().filter(file -> { + boolean flag = false; + for (String accessory : accessoryFileArr) { + if (StringUtils.equals(file.getId(), accessory)) { + flag = true; + break; + } + } + return flag; + }).collect(Collectors.toList()); + data.setAccessoryFileNameList(accessoryFiles); + } }); } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLibraryBase.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLibraryBase.java index d5cb571ac..b5eeb4c7e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLibraryBase.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLibraryBase.java @@ -109,5 +109,4 @@ public class ProjectLibraryBase implements Serializable { /**目标市场展示名称*/ @TableField(exist = false) private java.lang.String targetMarketName; - } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/LawsComplianceBoardMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/LawsComplianceBoardMapper.xml index 37cf72f37..6fdb1df82 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/LawsComplianceBoardMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/LawsComplianceBoardMapper.xml @@ -35,6 +35,7 @@ pli.title as "title", pli.project_library_id as "projectLibraryId", pni.project_name as "projectName", + pni.id as "projectNameId", pyni.year_name as "yearName", pti.design_status as "designStatus", pti.design_flow_task_status as "designFlowTaskStatus", @@ -45,7 +46,13 @@ pti.verify_status as "verifyStatus", pti.verify_flow_task_status as "verifyFlowTaskStatus", pti.verify_p_id as "verifyPId", - pli.duty_territory as "dutyTerritory" + pli.duty_territory as "dutyTerritory", + pti.design_person_charge_feedback as "designPersonChargeFeedback", + pti.prehomo_person_charge_feedback as "prehomoPersonChargeFeedback", + pti.verify_person_charge_feedback as "verifyPersonChargeFeedback", + plb.studio_engineer as "studioEngineer", + plb.target_market as "targetMarket", + pti.id as "projectTaskInventoryId" FROM project_laws_inventory pli LEFT JOIN project_task_inventory pti ON ( pli.id = pti.project_laws_inventory_id ) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/LawsComplianceBoardServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/LawsComplianceBoardServiceImpl.java index d060a5ebe..e1742535b 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/LawsComplianceBoardServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/LawsComplianceBoardServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.constant.enums.CutEnum; import com.jero.common.exception.JeroBootException; import com.jero.common.system.query.QueryRuleEnum; +import com.jero.common.system.vo.LoginUser; import com.jero.modules.document.enums.FieldTypeEnum; import com.jero.modules.document.service.IBussDocumentLibraryEOService; import com.jero.modules.document.vo.QueryConditionVO; @@ -14,9 +15,12 @@ import com.jero.modules.lawsOpinionGather.enums.GatherResultEnum; import com.jero.modules.lawsOpinionGather.service.ILawsOpinionGatherEOService; import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluationEO; import com.jero.modules.lawsTechnologyEvaluation.service.ILawsTechnologyEvaluationEOService; +import com.jero.modules.project.entity.ProjectTaskInventoryDetailEO; import com.jero.modules.project.enums.DesignComplianceStatusEnum; import com.jero.modules.project.enums.ReviewResultEnum; +import com.jero.modules.project.enums.TaskStatusEnum; import com.jero.modules.project.mapper.LawsComplianceBoardMapper; +import com.jero.modules.project.mapper.ProjectTaskInventoryDetailEOMapper; import com.jero.modules.project.service.ILawsComplianceBoardService; import com.jero.modules.system.entity.SysCategory; import com.jero.modules.system.entity.SysDictItem; @@ -24,12 +28,14 @@ import com.jero.modules.system.service.ISysDictItemService; import com.jero.modules.system.service.impl.SysCategoryServiceImpl; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; import com.jero.modules.system.util.StringUtils; +import com.jero.modules.wkflow.enums.FlowTypeEnum; import net.sf.json.JSONObject; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; +import org.apache.shiro.SecurityUtils; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -60,6 +66,8 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi private SysCategoryServiceImpl sysCategoryService; @Autowired private ISysDictItemService sysDictItemService; + @Autowired + private ProjectTaskInventoryDetailEOMapper projectTaskInventoryDetailEOMapper; @Override public IPage queryPageList(Map params) { @@ -138,7 +146,15 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi String id = (String) params.get("id"); String cut = (String) params.get("cut"); List> complianceResultList = this.lawsComplianceBoardMapper.queryComplianceResultList(params); - this.disposeComplianceResult(complianceResultList,cut); + if(CollectionUtils.isNotEmpty(complianceResultList)){ + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + List projectLawsInventoryIdList = complianceResultList.stream().map(map-> (String) map.get("id")).collect(Collectors.toList()); + QueryWrapper taskDetailQueryWrapper = new QueryWrapper<>(); + taskDetailQueryWrapper.lambda().in(ProjectTaskInventoryDetailEO::getProjectTaskInventoryId,projectLawsInventoryIdList); + List projectTaskInventoryDetailEOList = this.projectTaskInventoryDetailEOMapper.selectList(taskDetailQueryWrapper); + this.createTaskInventoryEOList(complianceResultList,projectTaskInventoryDetailEOList,currentUser); + this.disposeComplianceResult(complianceResultList,cut); + } result.put("complianceResultList",complianceResultList); //查询当前数据是否有法规意见收集流程数据 @@ -157,6 +173,100 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi return result; } + /** + * 创建任务清单列表数据 + * @param complianceResultList + * @param projectTaskInventoryDetailEOList + * @param currentUser + */ + private void createTaskInventoryEOList(List> complianceResultList, List projectTaskInventoryDetailEOList, LoginUser currentUser) { + if(CollectionUtils.isNotEmpty(complianceResultList) && CollectionUtils.isNotEmpty(projectTaskInventoryDetailEOList)){ + for (Map complianceResult : complianceResultList) { + String designPid = ""; + String designTaskId = ""; + String designTaskStatus = ""; + String designTaskDefinitionKey = ""; + String designTaskDetailId = ""; + + String prehomoPid = ""; + String prehomoTaskId = ""; + String prehomoTaskStatus = ""; + String prehomoTaskDefinitionKey = ""; + String prehomoTaskDetailId = ""; + + String verifyPid = ""; + String verifyTaskId = ""; + String verifyTaskStatus = ""; + String verifyTaskDefinitionKey = ""; + String verifyTaskDetailId = ""; + + for (ProjectTaskInventoryDetailEO projectTaskInventoryDetail : projectTaskInventoryDetailEOList) { + if(StringUtils.equals(complianceResult.get("id").toString(),projectTaskInventoryDetail.getProjectTaskInventoryId())){ + /** + * 查询数据权限,所有用户都是,自己的待办,可以跳转到处理任务详情页进行处理。 + * 不是自己的待办,只能跳转到处理任务的详情页。 + */ + if(StringUtils.equals(projectTaskInventoryDetail.getFlowType(), FlowTypeEnum.SJFHXSHLC.getValue())){ + designPid = projectTaskInventoryDetail.getActiProcInstId(); + designTaskId = projectTaskInventoryDetail.getTaskId(); + designTaskDefinitionKey = projectTaskInventoryDetail.getTaskDefinitionKey(); + designTaskDetailId = projectTaskInventoryDetail.getId(); + if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetail.getUserId())){ + designTaskStatus = projectTaskInventoryDetail.getStatus(); + }else { + designTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue(); + } + } + if(StringUtils.equals(projectTaskInventoryDetail.getFlowType(),FlowTypeEnum.PREHOMOQRLC.getValue())){ + prehomoPid = projectTaskInventoryDetail.getActiProcInstId(); + prehomoTaskId = projectTaskInventoryDetail.getTaskId(); + prehomoTaskDefinitionKey = projectTaskInventoryDetail.getTaskDefinitionKey(); + prehomoTaskDetailId = projectTaskInventoryDetail.getId(); + if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetail.getUserId())){ + prehomoTaskStatus = projectTaskInventoryDetail.getStatus(); + }else { + prehomoTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue(); + } + } + if(StringUtils.equals(projectTaskInventoryDetail.getFlowType(),FlowTypeEnum.YZFHXSCLC.getValue())){ + verifyPid = projectTaskInventoryDetail.getActiProcInstId(); + verifyTaskId = projectTaskInventoryDetail.getTaskId(); + verifyTaskDefinitionKey = projectTaskInventoryDetail.getTaskDefinitionKey(); + verifyTaskDetailId = projectTaskInventoryDetail.getId(); + if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetail.getUserId())){ + verifyTaskStatus = projectTaskInventoryDetail.getStatus(); + }else { + verifyTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue(); + } + } + } + } + //设计符合性流程数据 + complianceResult.put("designPid",designPid); + complianceResult.put("designTaskId",designTaskId); + complianceResult.put("designTaskStatus",designTaskStatus); + complianceResult.put("designTaskDefinitionKey",designTaskDefinitionKey); + complianceResult.put("designTaskDetailId",designTaskDetailId); + + //prehomo确认流程数据 + complianceResult.put("prehomoPid",prehomoPid); + complianceResult.put("prehomoTaskId",prehomoTaskId); + complianceResult.put("prehomoTaskStatus",prehomoTaskStatus); + complianceResult.put("prehomoTaskDefinitionKey",prehomoTaskDefinitionKey); + complianceResult.put("prehomoTaskDetailId",prehomoTaskDetailId); + + //验证符合性流程数据 + complianceResult.put("verifyPid",verifyPid); + complianceResult.put("verifyTaskId",verifyTaskId); + complianceResult.put("verifyTaskStatus",verifyTaskStatus); + complianceResult.put("verifyTaskDefinitionKey",verifyTaskDefinitionKey); + complianceResult.put("verifyTaskDetailId",verifyTaskDetailId); + + complianceResult.put("projectLawsInventoryId",complianceResult.get("id")); + } + } + } + public void disposeComplianceResult(List> complianceResultList,String cut){ if(CollectionUtils.isNotEmpty(complianceResultList)){ List dutyTerritoryDictItemList = sysDictItemService.selectItemsByDictCode("duty_territory"); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java index 2dd66c1b9..583d26a56 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java @@ -1,5 +1,6 @@ package com.jero.modules.project.service.impl; +import cn.hutool.core.lang.func.Func1; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -410,6 +411,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl queryWrapper = QueryGenerator.initQueryWrapper(lawsMonthlyReportWriteEOTemp, req.getParameterMap()); - queryWrapper.orderByDesc("create_time"); + queryWrapper.orderByDesc("memories_chapter_one","memories_chapter","create_time"); //管理员查看全部数据,其余人只能查看自己的数据 LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); List rolesList = sysBaseApi.getRolesByUsername(currentUser.getUsername()); @@ -343,7 +345,7 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl lawsMonthlyReportTitleTemplateEOS = lawsMonthlyReportTitleTemplateEOList.stream() @@ -354,6 +356,16 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl 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())){ //新征求意见清单模板 @@ -389,7 +401,7 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl userList, LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO) { + private void lawsContact(List userList, LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO,String cut) { String lawsContact = lawsMonthlyReportWriteEO.getLawsContact(); if(StringUtils.isNotBlank(lawsContact)){ List collect = userList.stream().filter(e -> lawsContact.contains(e.getId())).collect(Collectors.toList()); @@ -397,7 +409,11 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl loginUserList = collect.stream().filter(e -> e.getId().equals(s)).collect(Collectors.toList()); if(loginUserList.size() != 0){ - sb.append(loginUserList.get(0).getUsername()+","); + if(CutEnum.CN.getValue().equals(cut)){ + sb.append(loginUserList.get(0).getRealname()+","); + }else{ + sb.append(loginUserList.get(0).getUsername()+","); + } } } if(StringUtils.isNotBlank(sb)){ @@ -632,9 +648,9 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl lawsMonthlyReportWriteEOS, + private void coverCn(List 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\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+"\r\n", null, ParagraphAlignment.CENTER, 0, 12, + false, true, "Blue Sky Noto Regular",null,null,flag); + //添加下一页 + document.createParagraph().createRun().addBreak(BreakType.PAGE); + } + //封面 + private void coverEn(List 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\r\n\r\n"; WordUtil.exportWord(document, titleCN, null, ParagraphAlignment.CENTER, 0, 18, - false, false, "Blue Sky Noto Regular",null); - WordUtil.exportWord(document, moth, null, ParagraphAlignment.CENTER, 0, 12, - false, true, "Blue Sky Noto Regular",null); + false, false, "Blue Sky Noto Regular",null,null,flag); + WordUtil.exportWord(document, moth+"\r\n", null, ParagraphAlignment.CENTER, 0, 12, + false, true, "Blue Sky Noto Regular",null,null,flag); + //添加下一页 + document.createParagraph().createRun().addBreak(BreakType.PAGE); } private void wordContent(List lawsMonthlyReportWriteEOS, List lawsMonthlyReportTitleTemplateEOS, @@ -887,8 +924,8 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl 1){ + document.createParagraph().createRun().addBreak(BreakType.PAGE); + } if(StringUtils.isNotBlank(oneTitle)){ WordUtil.exportWord(document, oneNumber+" "+oneTitle, null, ParagraphAlignment.LEFT, - 0, 14, false, true, "Blue Sky Noto Regular","Heading1"); + 0, 14, false, true, "Blue Sky Noto Regular","0","一级标题","oneTitle"); oneCount++; } @@ -924,9 +965,13 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl 1){ + document.createParagraph().createRun().addBreak(BreakType.PAGE); + } if(StringUtils.isNotBlank(twoTitle)){ WordUtil.exportWord(document, twoNumber+" "+twoTitle, null, ParagraphAlignment.LEFT, - 2, 12, false, true, "Blue Sky Noto Regular","Heading2"); + 0, 12, false, true, "Blue Sky Noto Regular","1","二级标题",null); twoCount++; } //二级目录下放--->新征求意见清单模板, 新发布标准清单模板 @@ -935,13 +980,13 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl style is more prominent in the formats bar + ctStyle.setUiPriority(indentNumber); + + CTOnOff onoffnull = CTOnOff.Factory.newInstance(); + ctStyle.setUnhideWhenUsed(onoffnull); + // style shows up in the formats bar + ctStyle.setQFormat(onoffnull); + // style defines a heading of the given level + CTPPr ppr = CTPPr.Factory.newInstance(); + ppr.setOutlineLvl(indentNumber); + ctStyle.setPPr(ppr); + XWPFStyle style = new XWPFStyle(ctStyle); + // is a null op if already defined + XWPFStyles styles = docxDocument.createStyles(); + style.setType(STStyleType.PARAGRAPH); + styles.addStyle(style); + } + // @SneakyThrows // public static void exportHeardAndFoot(XWPFDocument document){ //// XWPFDocument document = new XWPFDocument(); @@ -232,10 +306,14 @@ public class WordUtil { 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(1000)); //左边距 - pageMar.setRight(BigInteger.valueOf(1000));//右边距 + pageMar.setLeft(BigInteger.valueOf(1803)); //左边距 + pageMar.setRight(BigInteger.valueOf(1803));//右边距 pageMar.setTop(BigInteger.valueOf(1440)); //页眉高度 pageMar.setBottom(BigInteger.valueOf(1440));//页脚高度 @@ -269,10 +347,14 @@ public class WordUtil { 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(1000)); //左边距 - pageMar.setRight(BigInteger.valueOf(1000));//右边距 + pageMar.setLeft(BigInteger.valueOf(1803)); //左边距 + pageMar.setRight(BigInteger.valueOf(1803));//右边距 pageMar.setTop(BigInteger.valueOf(1440)); //页眉高度 pageMar.setBottom(BigInteger.valueOf(1440));//页脚高度 @@ -415,7 +497,7 @@ public class WordUtil { String stateName = dictItem(sysDictItems, state,cut, DictCodeReportEnum.STATE.getValue()); String useMethodName = dictItem(sysDictItems, useMethod,cut, DictCodeReportEnum.USEMETHOD.getValue()); - XWPFTable table = document.createTable(12, 2); + XWPFTable table = document.createTable(11, 2); //表格属性 CTTblPr tablePr = table.getCTTbl().addNewTblPr(); //固定列宽(英文和数字的时候自动换行) @@ -424,12 +506,12 @@ public class WordUtil { //表格宽度 CTJc cTJc = tablePr.addNewJc(); //居中 - cTJc.setVal(STJc.CENTER); + cTJc.setVal(STJc.LEFT); //列宽自动分割 CTTblWidth tableWidth = tablePr.addNewTblW(); //设置表格宽度 tableWidth.setType(STTblWidth.DXA); - tableWidth.setW(BigInteger.valueOf(8000)); + tableWidth.setW(BigInteger.valueOf(8311)); //第1行 @@ -437,52 +519,52 @@ public class WordUtil { //第1行 setCell(table, 0, "相关领域",technologyTerritoryName); //第2行 - setCell(table,1, "适用车型",applyCarName); +// setCell(table,1, "适用车型",applyCarName); //第3行 - setCell(table,2, "适用范围",applyScopeName); + setCellThree(table,1, "适用范围",applyScopeName,sysDictItems,DictCodeReportEnum.APPLYSCOPE.getValue()); //第4行 - setCell(table,3, "状态",stateName); + setCellThree(table,2, "状态",stateName,sysDictItems,DictCodeReportEnum.STATE.getValue()); //第5行 - setCell(table,4, "用法",useMethodName); + setCellThree(table,3, "用法",useMethodName,sysDictItems,DictCodeReportEnum.USEMETHOD.getValue()); //第6行 - setCell(table,5, "实施车型",implementCar); + setCell(table,4, "实施车型",implementCar); //第7行 - setCell(table,6, "新车型实施日期",newCarImplementTime); + setCell(table,5, "新车型实施日期",newCarImplementTime); //第8行 - setCell(table,7, "在产车实施日期",productionCarImplementTime); + setCell(table,6, "在产车实施日期",productionCarImplementTime); //第9行 - setCell(table,8, "主要内容",contentCn); + setCell(table,7, "主要内容",contentCn); //第10行 - setCell(table,9, "NIO工作进展",workProgressCn); + setCell(table,8, "NIO工作进展",workProgressCn); //第11行 - setCell(table,10, "法规联系人",lawsContact); + setCell(table,9, "法规联系人",lawsContact); //第12行 - setCell(table,11, "链接",link); + setCell(table,10, "链接",link); }else{ //第1行 setCell(table,0, "Related Areas",technologyTerritoryName); //第2行 - setCell(table,1,"Vehicle Type",applyCarName); +// setCell(table,1,"Vehicle Type",applyCarName); //第3行 - setCell(table,2,"Scope",applyScopeName); + setCellThree(table,1,"Scope",applyScopeName,sysDictItems,DictCodeReportEnum.APPLYSCOPE.getValue()); //第4行 - setCell(table,3,"Status",stateName); + setCellThree(table,2,"Status",stateName,sysDictItems,DictCodeReportEnum.APPLYSCOPE.getValue()); //第5行 - setCell(table,4,"usage",useMethodName); + setCellThree(table,3,"Usage",useMethodName,sysDictItems,DictCodeReportEnum.APPLYSCOPE.getValue()); //第6行 - setCell(table,5,"Implementation Model",implementCar); + setCell(table,4,"Implementation Model",implementCar); //第7行 - setCell(table,6,"New Type Execution Date",newCarImplementTime); + setCell(table,5,"New Type Execution Date",newCarImplementTime); //第8行 - setCell(table,7,"New Vehicle Execution Date",productionCarImplementTime); + setCell(table,6,"New Vehicle Execution Date",productionCarImplementTime); //第9行 - setCell(table,8,"Main Content",contentEn); + setCell(table,7,"Main Content",contentEn); //第10行 - setCell(table,9,"NIO Work Progress",workProgressEn); + setCell(table,8,"NIO Work Progress",workProgressEn); //第11行 - setCell(table, 10,"Regulatory Contact",lawsContact); + setCell(table,9,"Regulatory Contact",lawsContact); //第12行 - setCell(table, 11,"Link",link); + setCell(table, 10,"Link",link); } // ctTblLayoutType.setType(STTblLayoutType.FIXED); @@ -570,12 +652,12 @@ public class WordUtil { //表格宽度 CTJc cTJc = tablePr.addNewJc(); //居中 - cTJc.setVal(STJc.CENTER); + cTJc.setVal(STJc.LEFT); //列宽自动分割 CTTblWidth tableWidth = tablePr.addNewTblW(); //设置表格宽度 tableWidth.setType(STTblWidth.DXA); - tableWidth.setW(BigInteger.valueOf(8000)); + tableWidth.setW(BigInteger.valueOf(8311)); //第1行 @@ -617,12 +699,12 @@ public class WordUtil { //表格宽度 CTJc cTJc = tablePr.addNewJc(); //居中 - cTJc.setVal(STJc.CENTER); + cTJc.setVal(STJc.LEFT); //列宽自动分割 CTTblWidth tableWidth = tablePr.addNewTblW(); //设置表格宽度 tableWidth.setType(STTblWidth.DXA); - tableWidth.setW(BigInteger.valueOf(8000)); + tableWidth.setW(BigInteger.valueOf(8311)); if(CutEnum.CN.getValue().equals(cut)){ setCellAskOne(table,"序号","计划号","标准名称","征求意见截止日期"); }else{ @@ -655,12 +737,12 @@ public class WordUtil { //表格宽度 CTJc cTJc = tablePr.addNewJc(); //居中 - cTJc.setVal(STJc.CENTER); + cTJc.setVal(STJc.LEFT); //列宽自动分割 CTTblWidth tableWidth = tablePr.addNewTblW(); //设置表格宽度 tableWidth.setType(STTblWidth.DXA); - tableWidth.setW(BigInteger.valueOf(8000)); + tableWidth.setW(BigInteger.valueOf(8311)); if(CutEnum.CN.getValue().equals(cut)){ setCellIssueOne(table,"序号","标准编号","标准名称","发布日期","实施日期"); }else{ @@ -688,24 +770,36 @@ public class WordUtil { //设置每个单元格宽度 CTTblWidth ctTblWidth0 = table.getRow(i).getCell(0).getCTTc().addNewTcPr().addNewTcW(); ctTblWidth0.setType(STTblWidth.DXA); - ctTblWidth0.setW(BigInteger.valueOf(1000)); + ctTblWidth0.setW(BigInteger.valueOf(703)); + //设置单元格边距 + XWPFTableCell cell0 = table.getRow(i).getCell(0); + cellPadding(cell0,String.valueOf(i)); CTTblWidth ctTblWidth1 = table.getRow(i).getCell(1).getCTTc().addNewTcPr().addNewTcW(); ctTblWidth1.setType(STTblWidth.DXA); - ctTblWidth1.setW(BigInteger.valueOf(2000)); + ctTblWidth1.setW(BigInteger.valueOf(1984)); + //设置单元格边距 + XWPFTableCell cell1 = table.getRow(i).getCell(1); + cellPadding(cell1,planNumber); CTTblWidth ctTblWidth2 = table.getRow(i).getCell(2).getCTTc().addNewTcPr().addNewTcW(); ctTblWidth2.setType(STTblWidth.DXA); - ctTblWidth2.setW(BigInteger.valueOf(2500)); + ctTblWidth2.setW(BigInteger.valueOf(3543)); + //设置单元格边距 + XWPFTableCell cell2 = table.getRow(i).getCell(2); + cellPadding(cell2,standardName); CTTblWidth ctTblWidth3 = table.getRow(i).getCell(3).getCTTc().addNewTcPr().addNewTcW(); ctTblWidth3.setType(STTblWidth.DXA); - ctTblWidth3.setW(BigInteger.valueOf(2500)); + ctTblWidth3.setW(BigInteger.valueOf(2081)); + //设置单元格边距 + XWPFTableCell cell3 = table.getRow(i).getCell(3); + cellPadding(cell3,expirationDate); - table.getRow(i).getCell(0).setText(String.valueOf(i)); - table.getRow(i).getCell(1).setText(planNumber); - table.getRow(i).getCell(2).setText(standardName); - table.getRow(i).getCell(3).setText(expirationDate); +// table.getRow(i).getCell(0).setText(String.valueOf(i)); +// table.getRow(i).getCell(1).setText(planNumber); +// table.getRow(i).getCell(2).setText(standardName); +// table.getRow(i).getCell(3).setText(expirationDate); } private static void setCellIssue(XWPFTable table, int i, String planNumber, String standardName, String expirationDate,String implementTime) { //设置单元格高度 @@ -714,29 +808,44 @@ public class WordUtil { //设置每个单元格宽度 CTTblWidth ctTblWidth0 = table.getRow(i).getCell(0).getCTTc().addNewTcPr().addNewTcW(); ctTblWidth0.setType(STTblWidth.DXA); - ctTblWidth0.setW(BigInteger.valueOf(1000)); + ctTblWidth0.setW(BigInteger.valueOf(708)); + //设置单元格边距 + XWPFTableCell cell0 = table.getRow(i).getCell(0); + cellPadding(cell0,String.valueOf(i)); CTTblWidth ctTblWidth1 = table.getRow(i).getCell(1).getCTTc().addNewTcPr().addNewTcW(); ctTblWidth1.setType(STTblWidth.DXA); - ctTblWidth1.setW(BigInteger.valueOf(2000)); + ctTblWidth1.setW(BigInteger.valueOf(1990)); + //设置单元格边距 + XWPFTableCell cell1 = table.getRow(i).getCell(1); + cellPadding(cell1,planNumber); CTTblWidth ctTblWidth2 = table.getRow(i).getCell(2).getCTTc().addNewTcPr().addNewTcW(); ctTblWidth2.setType(STTblWidth.DXA); - ctTblWidth2.setW(BigInteger.valueOf(2600)); + ctTblWidth2.setW(BigInteger.valueOf(3124)); + //设置单元格边距 + XWPFTableCell cell2 = table.getRow(i).getCell(2); + cellPadding(cell2,standardName); CTTblWidth ctTblWidth3 = table.getRow(i).getCell(3).getCTTc().addNewTcPr().addNewTcW(); ctTblWidth3.setType(STTblWidth.DXA); - ctTblWidth3.setW(BigInteger.valueOf(1200)); + ctTblWidth3.setW(BigInteger.valueOf(1247)); + //设置单元格边距 + XWPFTableCell cell3 = table.getRow(i).getCell(3); + cellPadding(cell3,expirationDate); CTTblWidth ctTblWidth4 = table.getRow(i).getCell(4).getCTTc().addNewTcPr().addNewTcW(); ctTblWidth4.setType(STTblWidth.DXA); - ctTblWidth4.setW(BigInteger.valueOf(1200)); + ctTblWidth4.setW(BigInteger.valueOf(1247)); + //设置单元格边距 + XWPFTableCell cell4 = table.getRow(i).getCell(4); + cellPadding(cell4,implementTime); - table.getRow(i).getCell(0).setText(String.valueOf(i)); - table.getRow(i).getCell(1).setText(planNumber); - table.getRow(i).getCell(2).setText(standardName); - table.getRow(i).getCell(3).setText(expirationDate); - table.getRow(i).getCell(4).setText(implementTime); +// table.getRow(i).getCell(0).setText(String.valueOf(i)); +// table.getRow(i).getCell(1).setText(planNumber); +// table.getRow(i).getCell(2).setText(standardName); +// table.getRow(i).getCell(3).setText(expirationDate); +// table.getRow(i).getCell(4).setText(implementTime); } private static void setCellIssueOne(XWPFTable table, String number,String planNumber, String standardName, String expirationDate,String implementTime) { //设置单元格高度 @@ -745,29 +854,44 @@ public class WordUtil { //设置每个单元格宽度 CTTblWidth ctTblWidth0 = table.getRow(0).getCell(0).getCTTc().addNewTcPr().addNewTcW(); ctTblWidth0.setType(STTblWidth.DXA); - ctTblWidth0.setW(BigInteger.valueOf(1000)); + ctTblWidth0.setW(BigInteger.valueOf(708)); + //设置单元格边距 + XWPFTableCell cell0 = table.getRow(0).getCell(0); + cellPadding(cell0,number); CTTblWidth ctTblWidth1 = table.getRow(0).getCell(1).getCTTc().addNewTcPr().addNewTcW(); ctTblWidth1.setType(STTblWidth.DXA); - ctTblWidth1.setW(BigInteger.valueOf(2000)); + ctTblWidth1.setW(BigInteger.valueOf(1990)); + //设置单元格边距 + XWPFTableCell cell1 = table.getRow(0).getCell(1); + cellPadding(cell1,planNumber); CTTblWidth ctTblWidth2 = table.getRow(0).getCell(2).getCTTc().addNewTcPr().addNewTcW(); ctTblWidth2.setType(STTblWidth.DXA); - ctTblWidth2.setW(BigInteger.valueOf(2600)); + ctTblWidth2.setW(BigInteger.valueOf(3124)); + //设置单元格边距 + XWPFTableCell cell2 = table.getRow(0).getCell(2); + cellPadding(cell2,standardName); CTTblWidth ctTblWidth3 = table.getRow(0).getCell(3).getCTTc().addNewTcPr().addNewTcW(); ctTblWidth3.setType(STTblWidth.DXA); - ctTblWidth3.setW(BigInteger.valueOf(1200)); + ctTblWidth3.setW(BigInteger.valueOf(1247)); + //设置单元格边距 + XWPFTableCell cell3 = table.getRow(0).getCell(3); + cellPadding(cell3,expirationDate); CTTblWidth ctTblWidth4 = table.getRow(0).getCell(4).getCTTc().addNewTcPr().addNewTcW(); ctTblWidth4.setType(STTblWidth.DXA); - ctTblWidth4.setW(BigInteger.valueOf(1200)); + ctTblWidth4.setW(BigInteger.valueOf(1247)); + //设置单元格边距 + XWPFTableCell cell4 = table.getRow(0).getCell(4); + cellPadding(cell4,implementTime); - table.getRow(0).getCell(0).setText(number); - table.getRow(0).getCell(1).setText(planNumber); - table.getRow(0).getCell(2).setText(standardName); - table.getRow(0).getCell(3).setText(expirationDate); - table.getRow(0).getCell(4).setText(implementTime); +// table.getRow(0).getCell(0).setText(number); +// table.getRow(0).getCell(1).setText(planNumber); +// table.getRow(0).getCell(2).setText(standardName); +// table.getRow(0).getCell(3).setText(expirationDate); +// table.getRow(0).getCell(4).setText(implementTime); } private static void setCellAskOne(XWPFTable table, String number,String planNumber, String standardName, String expirationDate) { //设置单元格高度 @@ -776,24 +900,36 @@ public class WordUtil { //设置每个单元格宽度 CTTblWidth ctTblWidth0 = table.getRow(0).getCell(0).getCTTc().addNewTcPr().addNewTcW(); ctTblWidth0.setType(STTblWidth.DXA); - ctTblWidth0.setW(BigInteger.valueOf(1000)); + ctTblWidth0.setW(BigInteger.valueOf(703)); + //设置单元格边距 + XWPFTableCell cell0 = table.getRow(0).getCell(0); + cellPadding(cell0,number); CTTblWidth ctTblWidth1 = table.getRow(0).getCell(1).getCTTc().addNewTcPr().addNewTcW(); ctTblWidth1.setType(STTblWidth.DXA); - ctTblWidth1.setW(BigInteger.valueOf(2000)); + ctTblWidth1.setW(BigInteger.valueOf(1984)); + //设置单元格边距 + XWPFTableCell cell1 = table.getRow(0).getCell(1); + cellPadding(cell1,planNumber); CTTblWidth ctTblWidth2 = table.getRow(0).getCell(2).getCTTc().addNewTcPr().addNewTcW(); ctTblWidth2.setType(STTblWidth.DXA); - ctTblWidth2.setW(BigInteger.valueOf(2500)); + ctTblWidth2.setW(BigInteger.valueOf(3543)); + //设置单元格边距 + XWPFTableCell cell2 = table.getRow(0).getCell(2); + cellPadding(cell2,standardName); CTTblWidth ctTblWidth3 = table.getRow(0).getCell(3).getCTTc().addNewTcPr().addNewTcW(); ctTblWidth3.setType(STTblWidth.DXA); - ctTblWidth3.setW(BigInteger.valueOf(2500)); + ctTblWidth3.setW(BigInteger.valueOf(2081)); + //设置单元格边距 + XWPFTableCell cell3 = table.getRow(0).getCell(3); + cellPadding(cell3,expirationDate); - table.getRow(0).getCell(0).setText(number); - table.getRow(0).getCell(1).setText(planNumber); - table.getRow(0).getCell(2).setText(standardName); - table.getRow(0).getCell(3).setText(expirationDate); +// table.getRow(0).getCell(0).setText(number); +// table.getRow(0).getCell(1).setText(planNumber); +// table.getRow(0).getCell(2).setText(standardName); +// table.getRow(0).getCell(3).setText(expirationDate); } @@ -822,49 +958,73 @@ public class WordUtil { } private static void setCell(XWPFTable table, int number, String fieldName,String technologyTerritory) { - table.getRow(number).setHeight(500); CTTblWidth ctTblWidth0 = table.getRow(number).getCell(0).getCTTc().addNewTcPr().addNewTcW(); ctTblWidth0.setType(STTblWidth.DXA); - ctTblWidth0.setW(BigInteger.valueOf(2000)); + ctTblWidth0.setW(BigInteger.valueOf(2296));//宽度通过计算得来-->列表实际宽度除以2.54再乘以1440 + //设置单元格边距 + XWPFTableCell cell0 = table.getRow(number).getCell(0); + cellPadding(cell0,fieldName); + CTTblWidth ctTblWidth1 = table.getRow(number).getCell(1).getCTTc().addNewTcPr().addNewTcW(); ctTblWidth1.setType(STTblWidth.DXA); - ctTblWidth1.setW(BigInteger.valueOf(6000)); + ctTblWidth1.setW(BigInteger.valueOf(6015)); + //设置单元格边距 + XWPFTableCell cell1 = table.getRow(number).getCell(1); + if("链接".equals(fieldName) || "Link".equals(fieldName)){ + //设置超链接 + if(StringUtils.isNotEmpty(technologyTerritory)){ + cellLink(cell1,technologyTerritory); + } + }else{ + cellPadding(cell1,technologyTerritory); + } // XWPFParagraph para = table.getRow(number).getCell(1).getParagraphs().get(0); // XWPFRun run = para.createRun();//对某个段落设置格式 // run.addBreak();//换行 - - table.getRow(number).getCell(0).setText(fieldName); - table.getRow(number).getCell(1).setText(technologyTerritory); - - } -// private static void setCell(XWPFTable table, int number, String fieldName,String technologyTerritory) { -// -// table.getRow(number).setHeight(500); -// CTTblWidth ctTblWidth0 = table.getRow(number).getCell(0).getCTTc().addNewTcPr().addNewTcW(); -// ctTblWidth0.setType(STTblWidth.DXA); -// ctTblWidth0.setW(BigInteger.valueOf(2000)); -// CTTblWidth ctTblWidth1 = table.getRow(number).getCell(1).getCTTc().addNewTcPr().addNewTcW(); -// ctTblWidth1.setType(STTblWidth.DXA); -// ctTblWidth1.setW(BigInteger.valueOf(5000)); // // table.getRow(number).getCell(0).setText(fieldName); // table.getRow(number).getCell(1).setText(technologyTerritory); -// } -// private static void setCell(XWPFTableRow tableRow, String fieldName,String technologyTerritory) { + + } + private static void setCellThree(XWPFTable table, int number, String fieldName,String technologyTerritory, + List sysDictItems,String code) { + table.getRow(number).setHeight(500); + CTTblWidth ctTblWidth0 = table.getRow(number).getCell(0).getCTTc().addNewTcPr().addNewTcW(); + ctTblWidth0.setType(STTblWidth.DXA); + ctTblWidth0.setW(BigInteger.valueOf(2296));//宽度通过计算得来-->列表实际宽度除以2.54再乘以1440 + //设置单元格边距 + XWPFTableCell cell0 = table.getRow(number).getCell(0); + cellPadding(cell0,fieldName); + + CTTblWidth ctTblWidth1 = table.getRow(number).getCell(1).getCTTc().addNewTcPr().addNewTcW(); + ctTblWidth1.setType(STTblWidth.DXA); + ctTblWidth1.setW(BigInteger.valueOf(6015)); + //设置单元格边距 + XWPFTableCell cell1 = table.getRow(number).getCell(1); + if("链接".equals(fieldName) || "Link".equals(fieldName)){ + //设置超链接 + if(StringUtils.isNotEmpty(technologyTerritory)){ + cellLink(cell1,technologyTerritory); + } + }else{ + if("适用范围".equals(fieldName) || "状态".equals(fieldName) || "用法".equals(fieldName) + || "Scope".equals(fieldName) || "Status".equals(fieldName) || "Usage".equals(fieldName)){ + threeSet(cell1,technologyTerritory,fieldName,sysDictItems,code); + }else{ + cellPadding(cell1,technologyTerritory); + } + } + +// XWPFParagraph para = table.getRow(number).getCell(1).getParagraphs().get(0); +// XWPFRun run = para.createRun();//对某个段落设置格式 +// run.addBreak();//换行 // -// tableRow.setHeight(500); -// CTTblWidth ctTblWidth0 = tableRow.getCell(0).getCTTc().addNewTcPr().addNewTcW(); -// ctTblWidth0.setType(STTblWidth.DXA); -// ctTblWidth0.setW(BigInteger.valueOf(3000)); -// CTTblWidth ctTblWidth1 = tableRow.getCell(1).getCTTc().addNewTcPr().addNewTcW(); -// ctTblWidth1.setType(STTblWidth.DXA); -// ctTblWidth1.setW(BigInteger.valueOf(5000)); -// -// tableRow.getCell(0).setText(fieldName); -// tableRow.getCell(1).setText(technologyTerritory); -// } +// table.getRow(number).getCell(0).setText(fieldName); +// table.getRow(number).getCell(1).setText(technologyTerritory); + + } private static String getLawsContact(List userList, String lawsContact) { if(com.jero.modules.system.util.StringUtils.isNotBlank(lawsContact)){ @@ -883,5 +1043,258 @@ public class WordUtil { } return null; } + + + /** + * 设置单元格边距 + * @param cell + */ + public static void cellPadding(XWPFTableCell cell,String text){ + //1. 设置单元格页边距 + CTTc ctTc = cell.getCTTc(); + CTTcPr cttcpr =ctTc.isSetTcPr() ? ctTc.getTcPr() : ctTc.addNewTcPr(); + CTTcMar ctTcMar = cttcpr.isSetTcMar() ? cttcpr.getTcMar() : cttcpr.addNewTcMar(); + (ctTcMar.isSetLeft() ? ctTcMar.getLeft() : ctTcMar.addNewLeft()).setW(BigInteger.valueOf(119));//左边距 + (ctTcMar.isSetTop() ? ctTcMar.getTop() : ctTcMar.addNewTop()).setW(BigInteger.valueOf(63));//上边距 +// (ctTcMar.isSetRight() ? ctTcMar.getRight() : ctTcMar.addNewRight()).setW(BigInteger.valueOf(100)); +// (ctTcMar.isSetBottom() ? ctTcMar.getBottom() : ctTcMar.addNewBottom()).setW(BigInteger.valueOf(100)); + + //2. 设置文本及文本的字体 + //获取 CTP + CTP ctP = (ctTc.sizeOfPArray() == 0) ? + ctTc.addNewP() : ctTc.getPArray(0); + //getParagraph(ctP) 获取 XWPFParagraph + XWPFParagraph par = cell.getParagraph(ctP); + //XWPFRun 设置格式 + XWPFRun run = par.createRun(); + //单元格内容换行 + if(StringUtils.isNotEmpty(text) && text.contains("\n")){ + String[] split = text.split("\n"); + for (int i = 0; i < split.length; i++) { + run.setText(split[i]); + if(i sysDictItems,String code){ + List sysDictItemList = sysDictItems.stream().filter(e -> code.equals(e.getDictCode())).collect(Collectors.toList()); + //1. 设置单元格页边距 + CTTc ctTc = cell.getCTTc(); + CTTcPr cttcpr =ctTc.isSetTcPr() ? ctTc.getTcPr() : ctTc.addNewTcPr(); + CTTcMar ctTcMar = cttcpr.isSetTcMar() ? cttcpr.getTcMar() : cttcpr.addNewTcMar(); + (ctTcMar.isSetLeft() ? ctTcMar.getLeft() : ctTcMar.addNewLeft()).setW(BigInteger.valueOf(119));//左边距 + (ctTcMar.isSetTop() ? ctTcMar.getTop() : ctTcMar.addNewTop()).setW(BigInteger.valueOf(63));//上边距 + + + //2. 设置文本及文本的字体 + //获取 CTP + CTP ctP = (ctTc.sizeOfPArray() == 0) ? + ctTc.addNewP() : ctTc.getPArray(0); + //getParagraph(ctP) 获取 XWPFParagraph + XWPFParagraph par = cell.getParagraph(ctP); + //XWPFRun 设置格式 + XWPFRun run = par.createRun(); + //单元格内容换行 □ ■ + if(StringUtils.isNotEmpty(text)){ + StringBuilder sb = new StringBuilder(); + if("适用范围".equals(fieldName)){ + String itemText = "M,N,企业,整车,系统/零部件,新车型,在产车型"; + setBlank(text, run, sb, itemText); + } + if("Scope".equals(fieldName)){ + String itemText = "M,N,Enterprise,Vehicle,System/Parts,New Car Model,Models In Production"; + setBlank(text, run, sb, itemText); + + } + if("状态".equals(fieldName)){ + String itemText = "草稿,公示稿,发布稿"; + setBlank(text, run, sb, itemText); + } + if("Status".equals(fieldName)){ + String itemText = "Draft,Public Notice,Release"; + setBlank(text, run, sb, itemText); + } + if("用法".equals(fieldName)){ + String itemText = "强制,推荐,安装需符合"; + setBlank(text, run, sb, itemText); + } + if("Usage".equals(fieldName)){ + String itemText = "Constraint,Recommend,Installation Is Compliant"; + setBlank(text, run, sb, itemText); + } + } + + //设置字体样式,大小 + run.setFontSize(11); + run.setFontFamily("Blue Sky Noto Regular"); + + } + + private static void setBlank(String text, XWPFRun run, StringBuilder sb, String itemText) { + for (String value : itemText.split(",")) { + String blank = getBlank(value); + if(text.contains(value)){ + sb.append("■"+value+blank); + }else{ + sb.append("□"+value+blank); + } + } + String[] split = sb.toString().split("\r\n"); + for (int i = 0; i < split.length; i++) { + run.setText(split[i]); + if(i queryMapNew = new HashMap<>(); - Map queryMapTempNew = new HashMap<>(); - queryMapTempNew.put(key, "*"+value.replaceAll(",","*")+"*"); - queryMapNew.put("wildcard", queryMapTempNew); - must.add(queryMapNew); + JSONArray should = new JSONArray(); + + List> mapList = new ArrayList<>(); + for (String s : value.split(",")) { + Map map = new HashMap(); + map.put(key,"*"+s+"*"); + Map map1 = new HashMap<>(); + map1.put("wildcard",map); + should.add(map1); + } + JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, should); + must.add(jsonObject); }else{ Map map = new HashMap<>(); Map queryMap = new HashMap<>(); @@ -520,6 +526,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { } JSONObject sort = new JSONObject(); +// JSONObject sort = new JSONObject(new LinkedHashMap<>()); if(StringUtils.isEmpty(selectValue) || StringUtils.equals(selectValue,SEARCH_FLAG)){ Map createTime = new HashMap<>(); Map createTime1 = new HashMap<>(); @@ -531,7 +538,12 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { Map score1 = new HashMap<>(); score.put("order","desc"); score1.put("_score",score); +// Map score2 = new HashMap<>(); +// Map score3 = new HashMap<>(); +// score2.put("order","desc"); +// score3.put("_id",score2); sort.putAll(score1); +// sort.putAll(score3); } log.info("搜索中心-全部索引,排序方式为:" + sort.toJSONString()); @@ -557,13 +569,13 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { if("serial_number".equals(field)){ map31.put("boost",10); }else if("title".equals(field)){ - map31.put("boost",10); + map31.put("boost",8); }else if("file_text".equals(field)){ map31.put("boost",0.01); }else if("content".equals(field)){ map31.put("boost",0.01); }else if("file_name".equals(field)){ - map31.put("boost",10); + map31.put("boost",5); } map31.put("value", selectValue); map21.put(field + ".keyword", map31); @@ -577,13 +589,13 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { if("serial_number".equals(field)){ map32.put("boost",10); }else if("title".equals(field)){ - map32.put("boost",10); + map32.put("boost",8); }else if("file_text".equals(field)){ map32.put("boost",0.01); }else if("content".equals(field)){ map32.put("boost",0.01); }else if("file_name".equals(field)){ - map32.put("boost",10); + map32.put("boost",5); } map32.put("query", selectValue); map22.put(field, map32); @@ -598,13 +610,13 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { if("serial_number".equals(field)){ map33.put("boost",10); }else if("title".equals(field)){ - map33.put("boost",10); + map33.put("boost",8); }else if("file_text".equals(field)){ map33.put("boost",0.01); }else if("content".equals(field)){ map33.put("boost",0.01); }else if("file_name".equals(field)){ - map33.put("boost",10); + map33.put("boost",5); } map33.put("query", selectValue); map23.put(field, map33); @@ -615,7 +627,21 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService { //情况举例:用户只记得中间那段字 Map map24 = new HashMap<>(); Map map44 = new HashMap<>(); - map24.put(field, "*" + selectValue + "*"); + Map map55 = new HashMap<>(); + map55.put("value","*" + selectValue + "*"); + if("serial_number".equals(field)){ + map55.put("boost",10); + }else if("title".equals(field)){ + map55.put("boost",8); + }else if("file_text".equals(field)){ + map55.put("boost",0.01); + }else if("content".equals(field)){ + map55.put("boost",0.01); + }else if("file_name".equals(field)){ + map55.put("boost",5); + } + + map24.put(field, map55); map44.put("wildcard",map24); queryMapJson.add(map44); } 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 3ce420998..de51fcadf 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 @@ -500,7 +500,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl categoryList = sysCategoryService.list(); @@ -575,6 +575,14 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl getTaskAssigneeListByPrcIds(@RequestParam("actiProcInstIds") String actiProcInstIds); + + @RequestMapping(value = "/bat-wkflow/deleteProcessInstanceByPrcIds",method = RequestMethod.GET) + Result deleteProcessInstanceByPrcIds(@RequestParam("prcIds") String prcIds); } diff --git a/jero-web/package-lock.json b/jero-web/package-lock.json index 5038e50fb..cb4ecb038 100644 --- a/jero-web/package-lock.json +++ b/jero-web/package-lock.json @@ -5,7 +5,6 @@ "requires": true, "packages": { "": { - "name": "jero-web", "version": "2.4.2", "dependencies": { "@antv/data-set": "^0.11.4", @@ -19,6 +18,7 @@ "dayjs": "^1.8.0", "dom-align": "1.12.0", "echarts": "^5.0.2", + "element-ui": "^2.15.10", "enquire.js": "^2.1.6", "jquery": "^3.6.0", "js-base64": "^3.7.2", @@ -26,6 +26,7 @@ "jsencrypt": "^3.0.0-rc.1", "lodash.get": "^4.4.2", "lodash.pick": "^4.4.0", + "mammoth": "^1.4.21", "md5": "^2.2.1", "nprogress": "^0.2.0", "tinymce": "^5.3.2", @@ -40,6 +41,7 @@ "vue-ls": "^3.2.0", "vue-photo-preview": "^1.1.3", "vue-print-nb-jeecg": "^1.0.9", + "vue-quill-editor": "^3.0.6", "vue-router": "^3.0.1", "vue-splitpane": "^1.0.4", "vuedraggable": "^2.20.0", @@ -7447,7 +7449,6 @@ "version": "1.5.2", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz", "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -7797,6 +7798,11 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" }, + "node_modules/dingbat-to-unicode": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dingbat-to-unicode/-/dingbat-to-unicode-1.0.1.tgz", + "integrity": "sha512-98l0sW87ZT58pU4i61wa2OHwxbiYSbuxsCBozaVnYX2iCnr3bLM3fIes1/ej7h1YdOKuKt/MLs706TVnALA65w==" + }, "node_modules/dir-glob": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", @@ -8019,6 +8025,14 @@ "ignored": "bin/ignored" } }, + "node_modules/duck": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/duck/-/duck-0.1.12.tgz", + "integrity": "sha512-wkctla1O6VfP89gQ+J/yDesM0S7B7XLXjKGzXxMDVFg7uEn706niAtyYovKbyq1oT9YwDcly721/iUWoc8MVRg==", + "dependencies": { + "underscore": "^1.13.1" + } + }, "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", @@ -8089,6 +8103,38 @@ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.644.tgz", "integrity": "sha512-N7FLvjDPADxad+OXXBuYfcvDvCBG0aW8ZZGr7G91sZMviYbnQJFxdSvUus4SJ0K7Q8dzMxE+Wx1d/CrJIIJ0sw==" }, + "node_modules/element-ui": { + "version": "2.15.10", + "resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.15.10.tgz", + "integrity": "sha512-jmD++mU2wKXbisvx4fxOl2mHaU+HWHTAq/3Wf8x9Bwyu4GdDZPLABb+CGi3DWN6fPqdgRcd74aX39DO+YHObLw==", + "dependencies": { + "async-validator": "~1.8.1", + "babel-helper-vue-jsx-merge-props": "^2.0.0", + "deepmerge": "^1.2.0", + "normalize-wheel": "^1.0.1", + "resize-observer-polyfill": "^1.5.0", + "throttle-debounce": "^1.0.1" + }, + "peerDependencies": { + "vue": "^2.5.17" + } + }, + "node_modules/element-ui/node_modules/async-validator": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz", + "integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==", + "dependencies": { + "babel-runtime": "6.x" + } + }, + "node_modules/element-ui/node_modules/throttle-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz", + "integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg==", + "engines": { + "node": ">=4" + } + }, "node_modules/elliptic": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", @@ -9319,8 +9365,7 @@ "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "node_modules/extend-shallow": { "version": "3.0.2", @@ -9506,6 +9551,11 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, + "node_modules/fast-diff": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz", + "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==" + }, "node_modules/fast-glob": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", @@ -10692,6 +10742,11 @@ "node": ">=0.10.0" } }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, "node_modules/import-cwd": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", @@ -11517,6 +11572,17 @@ "verror": "1.10.0" } }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, "node_modules/killable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", @@ -11675,6 +11741,14 @@ "node": ">= 0.8.0" } }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dependencies": { + "immediate": "~3.0.5" + } + }, "node_modules/lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", @@ -11981,6 +12055,16 @@ "loose-envify": "cli.js" } }, + "node_modules/lop": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/lop/-/lop-0.4.1.tgz", + "integrity": "sha512-9xyho9why2A2tzm5aIcMWKvzqKsnxrf9B5I+8O30olh6lQU8PH978LqZoI4++37RBgS1Em5i54v1TFs/3wnmXQ==", + "dependencies": { + "duck": "^0.1.12", + "option": "~0.2.1", + "underscore": "^1.13.1" + } + }, "node_modules/loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", @@ -12032,6 +12116,35 @@ "semver": "bin/semver.js" } }, + "node_modules/mammoth": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/mammoth/-/mammoth-1.5.1.tgz", + "integrity": "sha512-7ZioZBf/1HjYrm1qZJOO+DD+rYxLvwrHS+HVOwW89hwIp+r6ZqJ/Eq2rXSS+8ezZ3/DuW6FUUp2Dfz6e7B2pBQ==", + "dependencies": { + "argparse": "~1.0.3", + "bluebird": "~3.4.0", + "dingbat-to-unicode": "^1.0.1", + "jszip": "^3.7.1", + "lop": "^0.4.1", + "path-is-absolute": "^1.0.0", + "sax": "~1.1.1", + "underscore": "^1.13.1", + "xmlbuilder": "^10.0.0" + }, + "bin": { + "mammoth": "bin/mammoth" + } + }, + "node_modules/mammoth/node_modules/bluebird": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", + "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==" + }, + "node_modules/mammoth/node_modules/sax": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.6.tgz", + "integrity": "sha512-8zci48uUQyfqynGDSkUMD7FCJB96hwLnlZOXlgs1l3TX+LW27t3psSWKUxC0fxVgA86i8tL4NwGcY1h/6t3ESg==" + }, "node_modules/map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", @@ -12769,6 +12882,11 @@ "node": ">=4" } }, + "node_modules/normalize-wheel": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz", + "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==" + }, "node_modules/npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -13062,6 +13180,11 @@ "node": ">=4" } }, + "node_modules/option": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/option/-/option-0.2.4.tgz", + "integrity": "sha512-pkEqbDyl8ou5cpq+VsnQbe/WlEy5qS7xPzMS1U55OCG9KPvwFD46zDbxQIj3egJSFc3D+XhYOPUzz49zQAVy7A==" + }, "node_modules/optionator": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", @@ -13259,6 +13382,11 @@ "no-case": "^2.2.0" } }, + "node_modules/parchment": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/parchment/-/parchment-1.1.4.tgz", + "integrity": "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -16427,6 +16555,45 @@ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, + "node_modules/quill": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/quill/-/quill-1.3.7.tgz", + "integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==", + "dependencies": { + "clone": "^2.1.1", + "deep-equal": "^1.0.1", + "eventemitter3": "^2.0.3", + "extend": "^3.0.2", + "parchment": "^1.1.4", + "quill-delta": "^3.6.2" + } + }, + "node_modules/quill-delta": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-3.6.3.tgz", + "integrity": "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==", + "dependencies": { + "deep-equal": "^1.0.1", + "extend": "^3.0.2", + "fast-diff": "1.1.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/quill/node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/quill/node_modules/eventemitter3": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", + "integrity": "sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==" + }, "node_modules/raf": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", @@ -18953,6 +19120,11 @@ "node": ">=0.10.0" } }, + "node_modules/underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", @@ -20058,6 +20230,19 @@ "babel-plugin-transform-runtime": "^6.23.0" } }, + "node_modules/vue-quill-editor": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/vue-quill-editor/-/vue-quill-editor-3.0.6.tgz", + "integrity": "sha512-g20oSZNWg8Hbu41Kinjd55e235qVWPLfg4NvsLW6d+DhgBTFbEuMpcWlUdrD6qT3+Noim6DRu18VLM9lVShXOQ==", + "dependencies": { + "object-assign": "^4.1.1", + "quill": "^1.3.4" + }, + "engines": { + "node": ">= 4.0.0", + "npm": ">= 3.0.0" + } + }, "node_modules/vue-ref": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/vue-ref/-/vue-ref-2.0.0.tgz", @@ -21124,6 +21309,14 @@ "resolved": "https://registry.npmjs.org/xe-utils/-/xe-utils-2.4.8.tgz", "integrity": "sha512-/95ZaQK9GJE/EYrpMv9lgKdkEMQwWv4a4TF4dddi4gSzZ33vp/rZvzJNNV9XknaOkMizK9IBSX8CB/nL+SAk0Q==" }, + "node_modules/xmlbuilder": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-10.1.1.tgz", + "integrity": "sha512-OyzrcFLL/nb6fMGHbiRDuPup9ljBycsdCypwuyg5AAHvyWzGfChJpCXMG88AGTIMFhGZ9RccFN1e6lhg3hkwKg==", + "engines": { + "node": ">=4.0" + } + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -27565,8 +27758,7 @@ "deepmerge": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz", - "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", - "dev": true + "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==" }, "default-gateway": { "version": "5.0.5", @@ -27837,6 +28029,11 @@ } } }, + "dingbat-to-unicode": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dingbat-to-unicode/-/dingbat-to-unicode-1.0.1.tgz", + "integrity": "sha512-98l0sW87ZT58pU4i61wa2OHwxbiYSbuxsCBozaVnYX2iCnr3bLM3fIes1/ej7h1YdOKuKt/MLs706TVnALA65w==" + }, "dir-glob": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", @@ -28034,6 +28231,14 @@ "minimatch": "^3.0.4" } }, + "duck": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/duck/-/duck-0.1.12.tgz", + "integrity": "sha512-wkctla1O6VfP89gQ+J/yDesM0S7B7XLXjKGzXxMDVFg7uEn706niAtyYovKbyq1oT9YwDcly721/iUWoc8MVRg==", + "requires": { + "underscore": "^1.13.1" + } + }, "duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", @@ -28099,6 +28304,34 @@ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.644.tgz", "integrity": "sha512-N7FLvjDPADxad+OXXBuYfcvDvCBG0aW8ZZGr7G91sZMviYbnQJFxdSvUus4SJ0K7Q8dzMxE+Wx1d/CrJIIJ0sw==" }, + "element-ui": { + "version": "2.15.10", + "resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.15.10.tgz", + "integrity": "sha512-jmD++mU2wKXbisvx4fxOl2mHaU+HWHTAq/3Wf8x9Bwyu4GdDZPLABb+CGi3DWN6fPqdgRcd74aX39DO+YHObLw==", + "requires": { + "async-validator": "~1.8.1", + "babel-helper-vue-jsx-merge-props": "^2.0.0", + "deepmerge": "^1.2.0", + "normalize-wheel": "^1.0.1", + "resize-observer-polyfill": "^1.5.0", + "throttle-debounce": "^1.0.1" + }, + "dependencies": { + "async-validator": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz", + "integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==", + "requires": { + "babel-runtime": "6.x" + } + }, + "throttle-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz", + "integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg==" + } + } + }, "elliptic": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", @@ -29083,8 +29316,7 @@ "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "extend-shallow": { "version": "3.0.2", @@ -29233,6 +29465,11 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, + "fast-diff": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz", + "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==" + }, "fast-glob": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", @@ -30202,6 +30439,11 @@ "dev": true, "optional": true }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, "import-cwd": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", @@ -30829,6 +31071,17 @@ "verror": "1.10.0" } }, + "jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, "killable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", @@ -30952,6 +31205,14 @@ "type-check": "~0.3.2" } }, + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "requires": { + "immediate": "~3.0.5" + } + }, "lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", @@ -31219,6 +31480,16 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, + "lop": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/lop/-/lop-0.4.1.tgz", + "integrity": "sha512-9xyho9why2A2tzm5aIcMWKvzqKsnxrf9B5I+8O30olh6lQU8PH978LqZoI4++37RBgS1Em5i54v1TFs/3wnmXQ==", + "requires": { + "duck": "^0.1.12", + "option": "~0.2.1", + "underscore": "^1.13.1" + } + }, "loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", @@ -31260,6 +31531,34 @@ } } }, + "mammoth": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/mammoth/-/mammoth-1.5.1.tgz", + "integrity": "sha512-7ZioZBf/1HjYrm1qZJOO+DD+rYxLvwrHS+HVOwW89hwIp+r6ZqJ/Eq2rXSS+8ezZ3/DuW6FUUp2Dfz6e7B2pBQ==", + "requires": { + "argparse": "~1.0.3", + "bluebird": "~3.4.0", + "dingbat-to-unicode": "^1.0.1", + "jszip": "^3.7.1", + "lop": "^0.4.1", + "path-is-absolute": "^1.0.0", + "sax": "~1.1.1", + "underscore": "^1.13.1", + "xmlbuilder": "^10.0.0" + }, + "dependencies": { + "bluebird": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", + "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==" + }, + "sax": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.6.tgz", + "integrity": "sha512-8zci48uUQyfqynGDSkUMD7FCJB96hwLnlZOXlgs1l3TX+LW27t3psSWKUxC0fxVgA86i8tL4NwGcY1h/6t3ESg==" + } + } + }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", @@ -31878,6 +32177,11 @@ "sort-keys": "^1.0.0" } }, + "normalize-wheel": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz", + "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==" + }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -32092,6 +32396,11 @@ "is-wsl": "^1.1.0" } }, + "option": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/option/-/option-0.2.4.tgz", + "integrity": "sha512-pkEqbDyl8ou5cpq+VsnQbe/WlEy5qS7xPzMS1U55OCG9KPvwFD46zDbxQIj3egJSFc3D+XhYOPUzz49zQAVy7A==" + }, "optionator": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", @@ -32251,6 +32560,11 @@ "no-case": "^2.2.0" } }, + "parchment": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/parchment/-/parchment-1.1.4.tgz", + "integrity": "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==" + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -34870,6 +35184,41 @@ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, + "quill": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/quill/-/quill-1.3.7.tgz", + "integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==", + "requires": { + "clone": "^2.1.1", + "deep-equal": "^1.0.1", + "eventemitter3": "^2.0.3", + "extend": "^3.0.2", + "parchment": "^1.1.4", + "quill-delta": "^3.6.2" + }, + "dependencies": { + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==" + }, + "eventemitter3": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", + "integrity": "sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==" + } + } + }, + "quill-delta": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-3.6.3.tgz", + "integrity": "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==", + "requires": { + "deep-equal": "^1.0.1", + "extend": "^3.0.2", + "fast-diff": "1.1.2" + } + }, "raf": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", @@ -36915,6 +37264,11 @@ } } }, + "underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" + }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", @@ -37268,8 +37622,7 @@ "integrity": "sha512-ERAREN+6k/ywrwT+swcMo4CDIAq6dBjnB0+lhmsSfaip06BGHSBfNKg6yl7/4GJ9Nk2kioUw3llNhEboJuIKmQ==", "requires": { "@types/node": "*", - "viser": "^2.0.0", - "vue": "^2.5.3" + "viser": "^2.0.0" } }, "vm-browserify": { @@ -37814,6 +38167,15 @@ "babel-plugin-transform-runtime": "^6.23.0" } }, + "vue-quill-editor": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/vue-quill-editor/-/vue-quill-editor-3.0.6.tgz", + "integrity": "sha512-g20oSZNWg8Hbu41Kinjd55e235qVWPLfg4NvsLW6d+DhgBTFbEuMpcWlUdrD6qT3+Noim6DRu18VLM9lVShXOQ==", + "requires": { + "object-assign": "^4.1.1", + "quill": "^1.3.4" + } + }, "vue-ref": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/vue-ref/-/vue-ref-2.0.0.tgz", @@ -38665,6 +39027,11 @@ "resolved": "https://registry.npmjs.org/xe-utils/-/xe-utils-2.4.8.tgz", "integrity": "sha512-/95ZaQK9GJE/EYrpMv9lgKdkEMQwWv4a4TF4dddi4gSzZ33vp/rZvzJNNV9XknaOkMizK9IBSX8CB/nL+SAk0Q==" }, + "xmlbuilder": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-10.1.1.tgz", + "integrity": "sha512-OyzrcFLL/nb6fMGHbiRDuPup9ljBycsdCypwuyg5AAHvyWzGfChJpCXMG88AGTIMFhGZ9RccFN1e6lhg3hkwKg==" + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/jero-web/package.json b/jero-web/package.json index 0a928ac24..c6b13b18e 100644 --- a/jero-web/package.json +++ b/jero-web/package.json @@ -21,6 +21,7 @@ "dayjs": "^1.8.0", "dom-align": "1.12.0", "echarts": "^5.0.2", + "element-ui": "^2.15.10", "enquire.js": "^2.1.6", "jquery": "^3.6.0", "js-base64": "^3.7.2", @@ -46,6 +47,7 @@ "vue-quill-editor": "^3.0.6", "vue-router": "^3.0.1", "vue-splitpane": "^1.0.4", + "vue-virtual-scroll-list": "^2.3.4", "vuedraggable": "^2.20.0", "vuex": "^3.1.0", "vxe-table": "2.9.13", diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index 799e01e9e..c1a20eec6 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -1309,4 +1309,12 @@ module.exports = { importLocalDisassemblyOrder:'Import local disassembly order', notExport:'Not export', hasBeenExport:'Has been export', + firstLevelDirectory:'First level directory', + deselectAll:'Deselect All', + classification:'Classification', + consistentAssessment:'Consistent assessment', + viewConsistentAssessment:'View Consistent Assessment', + viewAll:'View All', + endProcess:'End Process', + thereForTheCurrentlySelectedData:'There is no standard breakdown for the currently selected data', } \ No newline at end of file diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index a4d0c48ec..6790de6e1 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -1410,4 +1410,12 @@ module.exports = { importLocalDisassemblyOrder:'导入本地拆解单', notExport:'未导出', hasBeenExport:'已导出', + firstLevelDirectory:'一级目录', + deselectAll:'取消全选', + classification:'分类', + consistentAssessment:'一致评估', + viewConsistentAssessment:'查看一致评估', + viewAll:'查看全部', + endProcess:'结束流程', + thereForTheCurrentlySelectedData:'当前所选数据暂无标准分解单', } \ No newline at end of file diff --git a/jero-web/src/components/PersonnelSelection/index.vue b/jero-web/src/components/PersonnelSelection/index.vue index 49b1d73c5..3586254e2 100644 --- a/jero-web/src/components/PersonnelSelection/index.vue +++ b/jero-web/src/components/PersonnelSelection/index.vue @@ -31,40 +31,66 @@
- {{$t('dataLoading')}} + - + :keeps="40" + show-checkbox + v-model="checkboxList" + class="treeWrap" + :props="{ + isLeaf: 'leaf' + }" + :defaultCheckedKeys="defaultCheckedKeys" + :check-strictly="false" + node-key="id" + @check-change="handleCheckChange" + :data.sync="gData"> + + {{ data.title }} + + + + + + + + + + + + + + +
-
{{$t('cancel')}} {{$t('submit')}}
+ diff --git a/jero-web/src/components/virtualNodeTree/tree.vue b/jero-web/src/components/virtualNodeTree/tree.vue new file mode 100644 index 000000000..a98fea522 --- /dev/null +++ b/jero-web/src/components/virtualNodeTree/tree.vue @@ -0,0 +1,1130 @@ + + + + + diff --git a/jero-web/src/permission.js b/jero-web/src/permission.js index a4fc2fbbb..e040aff0b 100644 --- a/jero-web/src/permission.js +++ b/jero-web/src/permission.js @@ -32,6 +32,7 @@ router.beforeEach((to, from, next) => { Vue.ls.set(USER_INFO, res.result.userInfo, 7 * 24 * 60 * 60 * 1000) Vue.ls.set(UI_CACHE_DB_DICT_DATA, res.result.sysAllDictItems, 7 * 24 * 60 * 60 * 1000) Vue.ls.set('domianWebSocketURL', res.result.domianWebSocketURL) + Vue.ls.set('domianWebImgURL', res.result.domianWebImgURL) Vue.ls.set('onlinePreviewDomainURL', res.result.onlinePreviewDomainURL) Vue.ls.set('httpsOnlinePreviewDomainURL', res.result.httpsOnlinePreviewDomainURL) Vue.ls.set('domianPreviewURL', res.result.domianPreviewURL) diff --git a/jero-web/src/store/modules/user.js b/jero-web/src/store/modules/user.js index 51f28629b..c59903a89 100644 --- a/jero-web/src/store/modules/user.js +++ b/jero-web/src/store/modules/user.js @@ -85,6 +85,7 @@ const user = { Vue.ls.set(USER_NAME, userInfo.username, 7 * 24 * 60 * 60 * 1000) Vue.ls.set(USER_INFO, userInfo, 7 * 24 * 60 * 60 * 1000) Vue.ls.set('domianWebSocketURL', result.domianWebSocketURL) + Vue.ls.set('domianWebImgURL', result.domianWebImgURL) Vue.ls.set('onlinePreviewDomainURL', result.onlinePreviewDomainURL) Vue.ls.set('httpsOnlinePreviewDomainURL', result.httpsOnlinePreviewDomainURL) Vue.ls.set('domianPreviewURL', result.domianPreviewURL) @@ -136,10 +137,19 @@ const user = { window._CONFIG['domianPreviewURL'] = Vue.ls.get('domianPreviewURL') + '/jero-boot' window._CONFIG['domianWebSocketURL'] = Vue.ls.get('domianWebSocketURL') + '/jero-boot' window._CONFIG['onlinePreviewDomainURL'] = Vue.ls.get('onlinePreviewDomainURL') + '/onlinePreview' + window._CONFIG['domianWebImgURL'] = Vue.ls.get('domianWebImgURL') + '/jero-boot' window._CONFIG['httpsOnlinePreviewDomainURL'] = Vue.ls.get('httpsOnlinePreviewDomainURL') + '/onlinePreview' //Vue.ls.set(USER_AUTH,authData); sessionStorage.setItem(USER_AUTH, JSON.stringify(authData)) sessionStorage.setItem(SYS_BUTTON_AUTH, JSON.stringify(allAuthData)) + let gData = localStorage.getItem('gData') + if (!gData) { + getAction('sys/user/queryUserTreeList', {}).then((res) => { + if (res.success) { + localStorage.setItem('gData', JSON.stringify(res.result)) + } + }) + } if (menuData && menuData.length > 0) { //update--begin--autor:qinfeng-----date:20200109------for:JEECG-63 一级菜单的子菜单全部是隐藏路由,则一级菜单不显示------ menuData.forEach((item, index) => { @@ -176,6 +186,7 @@ const user = { Vue.ls.remove(USER_NAME) Vue.ls.remove(UI_CACHE_DB_DICT_DATA) Vue.ls.remove(CACHE_INCLUDED_ROUTES) + localStorage.removeItem('gData') //console.log('logoutToken: '+ logoutToken) logout(logoutToken).then(() => { if (process.env.VUE_APP_SSO == 'true') { diff --git a/jero-web/src/views/businessSupport/collectionOfRegulatoryOpinions/components/evaluationResultsList.vue b/jero-web/src/views/businessSupport/collectionOfRegulatoryOpinions/components/evaluationResultsList.vue index e559e1e27..1e8d605e3 100644 --- a/jero-web/src/views/businessSupport/collectionOfRegulatoryOpinions/components/evaluationResultsList.vue +++ b/jero-web/src/views/businessSupport/collectionOfRegulatoryOpinions/components/evaluationResultsList.vue @@ -8,6 +8,14 @@ {{$route.query.serialNumber +' '+$t('evaluationResults')}} +
+
+ + {{$t('endProcess')}} +
+
@@ -70,6 +78,7 @@ import viewFileModel from '@/components/viewFileModel/index' import { getAction, putAction, downloadFile } from '@/api/manage' import { mapGetters } from 'vuex' + import { postAction } from '../../../../api/manage' export default { name: 'evaluationResultsList', @@ -85,6 +94,7 @@ pageNo: 1, dataSource: [], formInline: {}, + administrators:false, userInfoQuery: {}, columns: [ { @@ -143,6 +153,14 @@ mounted() { this.userInfoQuery = this.userInfo() this.getData() + this.administrators = false + if (this.userInfo().userRoleList && this.userInfo().userRoleList.length > 0) { + this.userInfo().userRoleList.forEach(res => { + if (res.roleCode == 'admin') { + this.administrators = true + } + }) + } }, methods: { ...mapGetters(['userInfo']), @@ -232,6 +250,20 @@ }, seeFileClick(item) { this.$refs.viewFileModelRef.clickButtonToUpload(item) + }, + endProcessClick() { + let query = { + ids: this.$route.query.id + } + postAction('/lawsOpinionGather/lawsOpinionGatherEO/batchCompleteTask', query).then((res) => { + if (res.success) { + this.$message.success(this.$t('OperationSuccessful')) + this.pageNo = 1 + this.getList() + } else { + this.$message.warning(this.$t('operationFailed')) + } + }) } } } @@ -239,6 +271,7 @@ \ No newline at end of file diff --git a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/countryCardView.vue b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/countryCardView.vue index f31ac4c49..dac938744 100644 --- a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/countryCardView.vue +++ b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/countryCardView.vue @@ -27,8 +27,10 @@
- - + + + +
{{item2.applyMarket_dictText}} @@ -37,16 +39,30 @@
{{item2.lableName}} + + {{item2.lableName}} + - {{$t('viewFile')}} + + + {{item2.contentFileName}} + + + + + {{$t('viewFile')}} + \ No newline at end of file diff --git a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/displayInformationModel.vue b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/displayInformationModel.vue index abc196c39..39f36a0d8 100644 --- a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/displayInformationModel.vue +++ b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/displayInformationModel.vue @@ -31,6 +31,10 @@
+
+ + {{$t('deselectAll')}} +
{{$t('selectAll')}} @@ -106,6 +110,16 @@ }) }) }, + deselectAllClick(){ + this.dataList.forEach(res => { + res.showOrNot = false + this.dataListOne.forEach(val => { + if (res.id == val.id) { + val.showOrNot = false + } + }) + }) + }, searchQuery() { if (this.queryParam.labelName) { this.dataList = this.dataList.filter(res => { @@ -220,10 +234,13 @@ .operator-text { cursor: pointer; - margin-right: 13px; + margin-right: 56px; font-size: 14px; font-weight: 400; color: #040B29; display: inline-block; } + .operator-text:last-child{ + margin-right: 13px; + } \ No newline at end of file diff --git a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseAdd.vue b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseAdd.vue index 425278f73..0fc3fa9f4 100644 --- a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseAdd.vue +++ b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseAdd.vue @@ -139,12 +139,16 @@
{{$t('content')}}
- + I am Example', @@ -345,53 +351,14 @@ }, mounted() { this.getBase() - let quill = this.$refs.myQuillEditor.quill - this.$forceUpdate() - quill.root.addEventListener( - 'paste', - (evt) => { - if ( - evt.clipboardData && - evt.clipboardData.files && - evt.clipboardData.files.length - ) { - evt.preventDefault(); - [].forEach.call(evt.clipboardData.files, (file) => { - if (!file.type.match(/^image\/(gif|jpe?g|a?png|bmp)/i)) { - return - } - const formData = new FormData() - formData.append('file', file) - axios({ - url: this.uploadAction, - method: 'post', - data: formData, - headers: { - 'Content-Type': 'multipart/form-data', - 'X-Access-Token': Vue.ls.get(ACCESS_TOKEN) - } - }) - .then((res) => { - if (res.data.success) { - let quill = this.$refs.myQuillEditor.quill - let length = quill.getSelection().index - let fileName = res.data.result.fileName - let index1 = fileName.lastIndexOf('.') - let index2 = fileName.length - let fileSuffix = fileName.substring(index1, index2) - quill.insertEmbed(length, 'image', window._CONFIG['domianPreviewURL'] + '/sys/common/download/' + res.data.result.id + fileSuffix) - quill.setSelection(length + 1) - } - }) - }) - } - }, - false - ) if (this.$route.query.id) { this.queryById() document.title = this.$t('problemKnowledgeBase') + this.$t('edit') } else { + this.isDisplayIndex = true + this.$nextTick(()=>{ + this.myQuillEditor() + }) document.title = this.$t('problemKnowledgeBase') + this.$t('newlyAdded') } }, @@ -408,6 +375,51 @@ Delta.ops = ops return Delta }, + myQuillEditor() { + let quill = this.$refs.myQuillEditor.quill + this.$forceUpdate() + quill.root.addEventListener( + 'paste', + (evt) => { + if ( + evt.clipboardData && + evt.clipboardData.files && + evt.clipboardData.files.length + ) { + evt.preventDefault(); + [].forEach.call(evt.clipboardData.files, (file) => { + if (!file.type.match(/^image\/(gif|jpe?g|a?png|bmp)/i)) { + return + } + const formData = new FormData() + formData.append('file', file) + axios({ + url: this.uploadAction, + method: 'post', + data: formData, + headers: { + 'Content-Type': 'multipart/form-data', + 'X-Access-Token': Vue.ls.get(ACCESS_TOKEN) + } + }) + .then((res) => { + if (res.data.success) { + let quill = this.$refs.myQuillEditor.quill + let length = quill.getSelection().index + let fileName = res.data.result.fileName + let index1 = fileName.lastIndexOf('.') + let index2 = fileName.length + let fileSuffix = fileName.substring(index1, index2) + quill.insertEmbed(length, 'image', window._CONFIG['domianWebImgURL'] + '/sys/common/download/' + res.data.result.id + fileSuffix) + quill.setSelection(length + 1) + } + }) + }) + } + }, + false + ) + }, quilleditorBlur() { this.$refs.ruleForm.validateField('content') }, @@ -428,12 +440,15 @@ this.formInline = { ...this.formInline } }, queryById() { + this.loading = true + this.isDisplayIndex = false let query = { id: this.$route.query.id } getAction('/problemKnowledgeBase/problemKnowledgeBaseEO/queryById', query).then((res) => { if (res.success) { this.formInline = res.result || {} + this.formInlineOne = JSON.parse(JSON.stringify(res.result)) if (this.formInline.showPermissions == 'Privacy') { this.isDisplay = true if (this.formInline.permissionUserList && this.formInline.permissionUserList.length > 0) { @@ -458,16 +473,28 @@ id: this.formInline.bussDocumentLibraryId.split(',')[index] }) }) + } else { + this.formInline.standNumber = [] } this.formInline = { ...this.formInline } } else { this.formInline = {} } + this.isDisplayIndex = true + this.$nextTick(() => { + this.myQuillEditor() + }) + this.loading = false }) }, backClick() { this.$router.go(-1) }, + onEditorReady(quill) { + if (this.formInlineOne.content){ + document.getElementsByClassName('ql-editor')[0].innerHTML = this.formInlineOne.content + } + }, showPermissionsChange(event, name) { if (event == 'Open') { this.isDisplay = false @@ -481,9 +508,6 @@ onEditorFocus(quill) { console.log('editor focus!', quill) }, - onEditorReady(quill) { - console.log('editor ready!', quill) - }, PersonnelSelectionChange(value, id) { this.formInline[value] = id this.formInline = { ...this.formInline } @@ -511,7 +535,7 @@ let index1 = fileName.lastIndexOf('.') let index2 = fileName.length let fileSuffix = fileName.substring(index1, index2) - quill.insertEmbed(length, 'image', window._CONFIG['domianPreviewURL'] + '/sys/common/download/' + file.response.result.id + fileSuffix) + quill.insertEmbed(length, 'image', window._CONFIG['domianWebImgURL'] + '/sys/common/download/' + file.response.result.id + fileSuffix) quill.setSelection(length + 1) this.quillUpdateImg = false } else if (status === 'uploading') { @@ -575,9 +599,11 @@ this.$refs.ruleForm.validate(valid => { if (valid) { let formInline = JSON.parse(JSON.stringify(this.formInline)) - if (formInline.standNumber && formInline.standNumber.length > 0){ + // if (formInline.standNumber && formInline.standNumber.length > 0) { + if (formInline.standNumber instanceof Array){ formInline.standNumber = formInline.standNumber.join(',') } + // } this.loading = true this.confirmLoading = true let url = '' @@ -805,6 +831,7 @@ height: 38px; margin-right: 10px; } + .itemOption { display: inline-block; width: 100%; diff --git a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseList.vue b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseList.vue index d22898423..a73a4a075 100644 --- a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseList.vue +++ b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseList.vue @@ -1,20 +1,8 @@ + + \ No newline at end of file diff --git a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseRelease.vue b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseRelease.vue index 48dfda617..67a491e01 100644 --- a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseRelease.vue +++ b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseRelease.vue @@ -158,13 +158,13 @@ }) }, titleClick(item) { - let newUrl = this.$router.resolve({ - path: '/problemKnowledgeBaseView', - query: { - id: item.id - } - }) - window.open(newUrl.href, '_blank') + // let newUrl = this.$router.resolve({ + // path: '/problemKnowledgeBaseView', + // query: { + // id: item.id + // } + // }) + // window.open(newUrl.href, '_blank') }, edit(val) { this.$router.push({ diff --git a/jero-web/src/views/businessSupport/regulationReport/components/RegulationMonthlyFill.vue b/jero-web/src/views/businessSupport/regulationReport/components/RegulationMonthlyFill.vue index 008c74166..5fcdfcf2e 100644 --- a/jero-web/src/views/businessSupport/regulationReport/components/RegulationMonthlyFill.vue +++ b/jero-web/src/views/businessSupport/regulationReport/components/RegulationMonthlyFill.vue @@ -136,6 +136,13 @@ pageNo: 1, queryParam: {}, columns: [ + { + title: this.$t('firstLevelDirectory'), + align: 'center', + dataIndex: 'memoriesChapterOneName', + ellipsis: true, + width: 170 + }, { title: this.$t('chapterContents'), align: 'center', diff --git a/jero-web/src/views/businessSupport/regulationReport/components/modules/defaultTemplate.vue b/jero-web/src/views/businessSupport/regulationReport/components/modules/defaultTemplate.vue index ace3619da..9a91fe34f 100644 --- a/jero-web/src/views/businessSupport/regulationReport/components/modules/defaultTemplate.vue +++ b/jero-web/src/views/businessSupport/regulationReport/components/modules/defaultTemplate.vue @@ -53,72 +53,6 @@
- -
-
- {{$t('vehicleType')}} -
- - - -
-
- - - -
-
- {{$t('scopeOfApplication')}} -
- - - -
-
- -
-
- {{$t('status')}} -
- - - -
-
-
- - -
-
- {{$t('usage')}} -
- - - -
-
@@ -133,6 +67,72 @@
+ + + + + + + + + + + + + + + + + + +
+
+ {{$t('scopeOfApplication')}} +
+ + + +
+
+
+ + +
+
+ {{$t('status')}} +
+ + + +
+
+
+ + +
+
+ {{$t('usage')}} +
+ + + +
+
@@ -516,4 +516,10 @@ margin-bottom: 40px; } + .itemModel-multi-one { + border: 1px solid #d9d9d9; + border-radius: 4px; + padding: 0 8px; + box-sizing: border-box; + } \ No newline at end of file diff --git a/jero-web/src/views/businessSupport/regulationReport/components/modules/fillAdd.vue b/jero-web/src/views/businessSupport/regulationReport/components/modules/fillAdd.vue index a1fb27251..12be5c8b3 100644 --- a/jero-web/src/views/businessSupport/regulationReport/components/modules/fillAdd.vue +++ b/jero-web/src/views/businessSupport/regulationReport/components/modules/fillAdd.vue @@ -260,6 +260,9 @@ if (value.length > 1) { value.shift() } + if (extra.triggerNode.dataRef && extra.triggerNode.dataRef.parentId) { + this.formInline.memoriesChapterOne = extra.triggerNode.dataRef.parentId + } this.formInline.memoriesChapter = value this.formInline = { ...this.formInline } }, @@ -273,7 +276,7 @@ text = 'solicitOpinionsRef' } else if (this.$refs.releaseStandardRef) { text = 'releaseStandardRef' - }else if (this.$refs.industryTemplateRef) { + } else if (this.$refs.industryTemplateRef) { text = 'industryTemplateRef' } this.$refs[text].getData((val) => { @@ -293,7 +296,8 @@ let query = Object.assign(val, { month: formInline.month, memoriesChapter: formInline.memoriesChapter, - contentTemplate: formInline.contentTemplate + contentTemplate: formInline.contentTemplate, + memoriesChapterOne:formInline.memoriesChapterOne }) postAction(url, query).then((res) => { if (res.success) { @@ -400,7 +404,7 @@ ::v-deep .ant-select-tree-node-content-wrapper { float: right; - margin-top: -2px!important; + margin-top: -2px !important; } ::v-deep .ant-select-tree-title { diff --git a/jero-web/src/views/businessSupport/technologyAssessment/components/TermInformation.vue b/jero-web/src/views/businessSupport/technologyAssessment/components/TermInformation.vue index 6d44acfc8..9e3374a4a 100644 --- a/jero-web/src/views/businessSupport/technologyAssessment/components/TermInformation.vue +++ b/jero-web/src/views/businessSupport/technologyAssessment/components/TermInformation.vue @@ -261,16 +261,23 @@ itemId: res.id, itemNum: res.items_num, itemName: res.items_name, - itemContent: res.iterms_conditions + itemContent: res.iterms_conditions, + display_seq: res.display_seq || '' }) }) } this.dataList = this.ImportFileData.concat(this.dataListData) + this.dataList = this.dataList.sort((a, b) => { + return a.display_seq - b.display_seq + }) this.dataList = [...this.dataList] }, getPersonnelList(res) { this.ImportFileData = this.ImportFileData.concat(res) this.dataList = this.dataListData.concat(this.ImportFileData) + this.dataList = this.dataList.sort((a, b) => { + return a.display_seq - b.display_seq + }) this.dataList = [...this.dataList] }, getUUID() { @@ -289,6 +296,12 @@ if (dataList[i].evaluationMethods && dataList[i].evaluationMethods instanceof Array) { dataList[i].evaluationMethods = dataList[i].evaluationMethods.join(',') } + Object.keys(dataList[i]).forEach(res=>{ + if (dataList[i][res] && typeof dataList[i][res] == 'string') { + dataList[i][res] = dataList[i][res].replace(/\"/g, '“') + dataList[i][res] = dataList[i][res].replace(/\'/g, '‘') + } + }) dataList[i].lawsTechnologyEvaluationId = this.$route.query.lawsTechnologyEvaluationId || this.getUUID if (!dataList[i].evaluatorIds) { this.$message.warning(this.$t('pleaseCompleteTheEvaluationMethodorEvaluator')) diff --git a/jero-web/src/views/businessSupport/technologyAssessment/components/evaluationResultsClause.vue b/jero-web/src/views/businessSupport/technologyAssessment/components/evaluationResultsClause.vue index ad32144fd..667c1dcd1 100644 --- a/jero-web/src/views/businessSupport/technologyAssessment/components/evaluationResultsClause.vue +++ b/jero-web/src/views/businessSupport/technologyAssessment/components/evaluationResultsClause.vue @@ -8,15 +8,28 @@ {{$route.query.serialNumber +' '+$t('regulatoryTechnicalEvaluationResults')}}
+
+
+ + {{$t('initiateSupplementaryProcess')}} +
+
+ + {{$t('endProcess')}} +
+
-
- - {{$t('initiateSupplementaryProcess')}} - -
+ + + + +
{{$t('processBackground')}}: {{$route.query.processBackground}} @@ -116,6 +129,7 @@ import PersonnelSelection from '@/components/PersonnelSelection/index' import { getAction, postAction, downloadFile } from '@/api/manage' import viewFileModel from '@/components/viewFileModel/index' + import { mapGetters } from 'vuex' export default { name: 'evaluationResultsClause', @@ -222,14 +236,30 @@ ellipsis: true, width: 160 } - ] + ], + userInfoQuery: {} } }, mounted() { document.title = this.$route.query.serialNumber + ' ' + this.$t('regulatoryTechnicalEvaluationResults') + this.userInfoQuery = this.userInfo() this.getList() }, methods: { + ...mapGetters(['userInfo']), + endProcessClick() { + let query = { + ids: this.$route.query.id + } + postAction('/lawsTechnologyEvaluation/lawsTechnologyEvaluationEO/batchCompleteTask', query).then((res) => { + if (res.success) { + this.$message.success(this.$t('OperationSuccessful')) + this.getList() + } else { + this.$message.warning(this.$t('operationFailed')) + } + }) + }, CurrentStandard() { let query = { firstInitiation: '2', @@ -327,7 +357,7 @@ } .doc-detail-right { - width: 800px; + /*width: 800px;*/ line-height: 68px; display: flex; @@ -353,6 +383,7 @@ .processBackground-text { font-size: 16px; color: #000F16; + margin-top: 16px; } } } @@ -432,6 +463,19 @@ ::v-deep .ant-table-body { background: transparent !important; } + + .operator-text-text { + cursor: pointer; + margin-right: 23px; + font-size: 14px; + font-weight: 400; + color: #040B29; + display: inline-block; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + text-align: right; + } \ No newline at end of file diff --git a/jero-web/src/views/system/PermissionList.vue b/jero-web/src/views/system/PermissionList.vue index 003d28e5a..d87517f89 100644 --- a/jero-web/src/views/system/PermissionList.vue +++ b/jero-web/src/views/system/PermissionList.vue @@ -107,7 +107,7 @@ { title: this.$t('MenuName'), dataIndex: 'name', - align: 'center', + align: 'left', key: 'name', ellipsis: true, width: 180 @@ -115,7 +115,7 @@ { title: this.$t('MenuEnName'), dataIndex: 'menuEn', - align: 'center', + align: 'left', key: 'menuEn', ellipsis: true, width: 180 @@ -123,7 +123,7 @@ { title: 'icon', dataIndex: 'icon', - align: 'center', + align: 'left', key: 'icon', ellipsis: true, width: 180 @@ -131,7 +131,7 @@ { title: this.$t('assembly'), dataIndex: 'component', - align: 'center', + align: 'left', key: 'component', width: 240, ellipsis: true, @@ -140,7 +140,7 @@ { title: this.$t('route'), dataIndex: 'url', - align: 'center', + align: 'left', key: 'url', width: 240, ellipsis: true, @@ -149,7 +149,7 @@ { title: this.$t('sort'), dataIndex: 'sortNo', - align: 'center', + align: 'left', width: 80, ellipsis: true, key: 'sortNo' diff --git a/jero-web/vue.config.js b/jero-web/vue.config.js index f8a8eae61..cc121368a 100644 --- a/jero-web/vue.config.js +++ b/jero-web/vue.config.js @@ -92,7 +92,7 @@ module.exports = { } }, */ '/jero-boot': { - target: 'http://10.0.1.14:8080', //请求本地 jero-boot后台项目 + target: 'http://localhost:8080', //请求本地 jero-boot后台项目 // target: 'http://10.10.10.46:8101', //请求本地 jero-boot后台项目 // target: 'http://10.0.1.25:8080', // target: 'http://10.0.1.5:8080',