diff --git a/jero-boot/db/蔚来标准sql/dev_third_record.sql b/jero-boot/db/蔚来标准sql/dev_third_record.sql index 5b257dc75..9c37b784a 100644 --- a/jero-boot/db/蔚来标准sql/dev_third_record.sql +++ b/jero-boot/db/蔚来标准sql/dev_third_record.sql @@ -1170,3 +1170,13 @@ ALTER TABLE `laws_weilai`.`laws_opinion_assessment_result` -- 法规意见收集 增加字段 评估人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/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/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 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/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/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/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 160afc9b7..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 = ""; @@ -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 46cdba5bb..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 @@ -105,4 +105,8 @@ public class ProjectLibraryBase implements Serializable { @TableField(exist = false) private String endTime; + + /**目标市场展示名称*/ + @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 247f552ef..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 @@ -51,7 +51,8 @@ pti.prehomo_person_charge_feedback as "prehomoPersonChargeFeedback", pti.verify_person_charge_feedback as "verifyPersonChargeFeedback", plb.studio_engineer as "studioEngineer", - plb.target_market as "targetMarket" + 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/IProjectLibraryBaseService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java index d031986f3..f6f29e54c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java @@ -89,4 +89,6 @@ public interface IProjectLibraryBaseService extends IService void exportProjectDetailsStatisticsGroupByTerritoryXls(HttpServletResponse response, HttpServletRequest request, Map params); void checkData(String id, String cut); + + void disposeData(List records,String cut,boolean disposeTargetMarketFlag); } 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 783666259..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,11 +1,13 @@ 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; 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.system.vo.DictModel; import com.jero.common.system.vo.LoginUser; import com.jero.modules.cert.collect.service.IParamsManifestEOService; import com.jero.modules.enums.DictCodeEnum; @@ -17,8 +19,10 @@ import com.jero.modules.project.service.IProjectLibraryBaseService; import com.jero.modules.project.service.IProjectLibraryRoleRelEOService; import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.enums.DicCodeEnum; import com.jero.modules.system.mapper.SysDictItemMapper; import com.jero.modules.system.mapper.SysUserMapper; +import com.jero.modules.system.service.ISysDictService; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; import com.jero.modules.system.util.StringUtils; import org.apache.commons.collections4.CollectionUtils; @@ -93,6 +97,9 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl queryById(String id) { List records = projectLibraryBaseMapper.queryById(id); - disposeData(records); + disposeData(records,"",false); for(ProjectLibraryBase projectLibraryBase: records){ if(StringUtils.isNotBlank(projectLibraryBase.getYearName())){ projectLibraryBase.setProjectName(projectLibraryBase.getProjectName() + "-" + projectLibraryBase.getYearName()); @@ -362,7 +369,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl result = projectLibraryBaseMapper.queryPageList(page, params); List records = result.getRecords(); - disposeData(records); + disposeData(records,"",false); for(ProjectLibraryBase projectLibraryBase: records){ if(StringUtils.isNotBlank(projectLibraryBase.getYearName())){ projectLibraryBase.setProjectName(projectLibraryBase.getProjectName() + "-" + projectLibraryBase.getYearName()); @@ -371,7 +378,9 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl records) { + @Override + public void disposeData(List records,String cut,boolean disposeTargetMarketFlag) { + List targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode()); for (ProjectLibraryBase projectLibraryBase : records) { List sysUsers = new ArrayList<>(); //认证工程师多个id查询 @@ -402,6 +411,36 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl { + boolean flag = false; + for (String s : targetMarketArr) { + if (StringUtils.equals(s, targetMarket.getValue())) { + flag = true; + } + } + return flag; + }).map(DictModel::getTextEn).collect(Collectors.joining(",")); + }else { + targetMarketName = targetMarketList.stream().filter(targetMarket -> { + boolean flag = false; + for (String s : targetMarketArr) { + if (StringUtils.equals(s, targetMarket.getValue())) { + flag = true; + } + } + return flag; + }).map(DictModel::getText).collect(Collectors.joining(",")); + } + projectLibraryBase.setTargetMarketName(targetMarketName); + } + } + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/enums/ScopeEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/enums/ScopeEnum.java new file mode 100644 index 000000000..a3afde435 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/enums/ScopeEnum.java @@ -0,0 +1,53 @@ +package com.jero.modules.report.enums; + + +/** + * @description + * @date 2022/1/21 15:22 + * @auth zhn + */ +public enum ScopeEnum { + M("M","M","1"), + N("N","N","2"), + COMPANY("企业","","3"), + WHOLE_CAR("整车","","4"), + SYSTEM_PARTS("系统/零部件","","5"), + NEW_CAR("新车型","","6"), + PRODUCTION_CAR("在产车型","","7"); + + + + String nameCn; + String nameEn; + String value; + + private ScopeEnum(String nameCn,String nameEn, String value) { + this.nameCn = nameCn; + this.nameEn = nameEn; + this.value = value; + } + + public String getNameCn() { + return nameCn; + } + + public void setNameCn(String nameCn) { + this.nameCn = nameCn; + } + + public String getNameEn() { + return nameEn; + } + + public void setNameEn(String nameEn) { + this.nameEn = nameEn; + } + + 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/report/enums/StateEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/enums/StateEnum.java new file mode 100644 index 000000000..2543ae2f8 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/enums/StateEnum.java @@ -0,0 +1,40 @@ +package com.jero.modules.report.enums; + + +/** + * @description + * @date 2022/1/21 15:22 + * @auth zhn + */ +public enum StateEnum { + DRAFT("草稿","1"), + PUBLICITY("公示稿","2"), + ISSUE("发布稿","3"); + + + + + String name; + String value; + + private StateEnum(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/report/enums/UsageEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/enums/UsageEnum.java new file mode 100644 index 000000000..1558d7471 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/enums/UsageEnum.java @@ -0,0 +1,40 @@ +package com.jero.modules.report.enums; + + +/** + * @description + * @date 2022/1/21 15:22 + * @auth zhn + */ +public enum UsageEnum { + FORCE("强制","1"), + RECOMMEND("推荐","2"), + INSTALLATION_REQUIREMENTS("安装需符合","3"); + + + + + String name; + String value; + + private UsageEnum(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/report/service/impl/LawsMonthlyReportWriteEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/service/impl/LawsMonthlyReportWriteEOServiceImpl.java index 2f9b7629c..c309c19a3 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/service/impl/LawsMonthlyReportWriteEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/report/service/impl/LawsMonthlyReportWriteEOServiceImpl.java @@ -38,6 +38,7 @@ import com.jero.modules.system.service.impl.SysCategoryServiceImpl; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; import com.jero.modules.system.util.StringUtils; import org.apache.poi.hssf.usermodel.HeaderFooter; +import org.apache.poi.xwpf.usermodel.BreakType; import org.apache.poi.xwpf.usermodel.ParagraphAlignment; import org.apache.poi.xwpf.usermodel.TOC; import org.apache.poi.xwpf.usermodel.XWPFDocument; @@ -647,7 +648,7 @@ 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); - WordUtil.exportWord(document, moth, null, ParagraphAlignment.CENTER, 0, 12, - false, true, "Blue Sky Noto Regular",null,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 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,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, @@ -902,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","0","一级标题"); + 0, 14, false, true, "Blue Sky Noto Regular","0","一级标题","oneTitle"); oneCount++; } @@ -939,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, - 0, 12, false, true, "Blue Sky Noto Regular","1","二级标题"); + 0, 12, false, true, "Blue Sky Noto Regular","1","二级标题",null); twoCount++; } //二级目录下放--->新征求意见清单模板, 新发布标准清单模板 @@ -950,13 +980,13 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl列表实际宽度除以2.54再乘以1440 //设置单元格边距 XWPFTableCell cell0 = table.getRow(number).getCell(0); - cellPadding(cell0); + 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); - cellPadding(cell1); + 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); - table.getRow(number).getCell(0).setText(fieldName); - table.getRow(number).getCell(1).setText(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();//换行 +// +// table.getRow(number).getCell(0).setText(fieldName); +// table.getRow(number).getCell(1).setText(technologyTerritory); } @@ -981,7 +1049,8 @@ public class WordUtil { * 设置单元格边距 * @param cell */ - public static void cellPadding(XWPFTableCell 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(); @@ -990,6 +1059,242 @@ public class WordUtil { // (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 busProcessNames,TaskCommonQuery taskCommonQuery){ + List projectLawsInventoryIdList = busProcessNames.stream().filter(busProcessName -> { + boolean flag = false; + if(org.apache.commons.lang3.StringUtils.equals(busProcessName.getPrcType(), FlowTypeEnum.RWQRLC.getValue())){ + flag = true; + } + return flag; + }).map(BusProcessName::getProjectLawsInventoryId).distinct().collect(Collectors.toList()); + List projectLibraryBaseList = new ArrayList<>(); + List projectLawsInventoryEOList = new ArrayList<>(); + + if(CollectionUtils.isNotEmpty(projectLawsInventoryIdList)){ + QueryWrapper lawsInventoryQueryWrap = new QueryWrapper<>(); + lawsInventoryQueryWrap.lambda().in(ProjectLawsInventoryEO::getId,projectLawsInventoryIdList); + projectLawsInventoryEOList = this.projectLawsInventoryEOService.list(lawsInventoryQueryWrap); + + List projectLibraryIdList = projectLawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getProjectLibraryId).distinct().collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(projectLibraryIdList)){ + QueryWrapper libraryBaseQueryWrap = new QueryWrapper<>(); + libraryBaseQueryWrap.lambda().in(ProjectLibraryBase::getId,projectLibraryIdList); + projectLibraryBaseList = this.projectLibraryBaseService.list(libraryBaseQueryWrap); + this.projectLibraryBaseService.disposeData(projectLibraryBaseList,taskCommonQuery.getCut(),true); + } + for (BusProcessName busProcessName : busProcessNames) { + if(org.apache.commons.lang3.StringUtils.equals(busProcessName.getPrcType(),FlowTypeEnum.RWQRLC.getValue())){ + if(CollectionUtils.isNotEmpty(projectLawsInventoryEOList)){ + List projectLawsInventoryS = projectLawsInventoryEOList.stream().filter(lawsInventory -> { + boolean flag = false; + if(org.apache.commons.lang3.StringUtils.equals(busProcessName.getProjectLawsInventoryId(),lawsInventory.getId())){ + flag = true; + } + return flag; + }).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(projectLawsInventoryS) && CollectionUtils.isNotEmpty(projectLibraryBaseList)){ + ProjectLawsInventoryEO projectLawsInventoryEO = projectLawsInventoryS.get(0); + busProcessName.setSerialNumber(projectLawsInventoryEO.getSerialNumber()); + busProcessName.setTitle(projectLawsInventoryEO.getTitle()); + + List projectLibraryBaseS = projectLibraryBaseList.stream().filter(projectLibraryBase -> { + boolean flag = false; + if (org.apache.commons.lang3.StringUtils.equals(projectLibraryBase.getId(), projectLawsInventoryEO.getProjectLibraryId())) { + flag = true; + } + return flag; + }).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(projectLibraryBaseS)){ + ProjectLibraryBase projectLibraryBase = projectLibraryBaseS.get(0); + ProjectNameInfoEO projectNameInfoEO = this.projectNameInfoEOService.getOne( + new QueryWrapper().lambda().eq(ProjectNameInfoEO::getId, projectLibraryBase.getProjectNameId()) + ); + ProjectYearNameInfoEO projectYearNameInfoEO = this.projectYearNameInfoEOService.getOne( + new QueryWrapper().lambda().eq(ProjectYearNameInfoEO::getId, projectLibraryBase.getYearNameId()) + ); + + busProcessName.setProjectName(projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + "-" +projectLibraryBase.getTargetMarketName()); + } + } + } + } + } + } + } + @AutoLog(value = "查询草稿") @ApiOperation(value="查询草稿", notes="查询草稿") @PostMapping("/queryTaskDraft") diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/entity/BusProcessName.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/entity/BusProcessName.java index 29eeb524d..2b5bb65a1 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/entity/BusProcessName.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/entity/BusProcessName.java @@ -74,4 +74,8 @@ public class BusProcessName implements Serializable { private String handlingTime; private String projectLawsInventoryId; + + private String serialNumber; + + private String title; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/WorkFlowFeignClient.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/WorkFlowFeignClient.java index 0490604f4..51070cea7 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/WorkFlowFeignClient.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/WorkFlowFeignClient.java @@ -178,4 +178,7 @@ public interface WorkFlowFeignClient { @RequestMapping(value = "/bat-wkflow/task/getTaskAssigneeListByPrcIds",method = RequestMethod.GET) List 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 bd059005d..c1a20eec6 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -1312,4 +1312,9 @@ module.exports = { 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 fa7a71a7c..6790de6e1 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -1413,4 +1413,9 @@ module.exports = { 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 dbf4c5fd1..dac938744 100644 --- a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/countryCardView.vue +++ b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/countryCardView.vue @@ -52,10 +52,17 @@ - - {{$t('viewFile')}} + + + {{item2.contentFileName}} + + + + + {{$t('viewFile')}} + \ 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/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/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 900365c82..667c1dcd1 100644 --- a/jero-web/src/views/businessSupport/technologyAssessment/components/evaluationResultsClause.vue +++ b/jero-web/src/views/businessSupport/technologyAssessment/components/evaluationResultsClause.vue @@ -10,19 +10,26 @@
- + {{$t('initiateSupplementaryProcess')}}
+
+ + {{$t('endProcess')}} +
- - - - - + + + + +
{{$t('processBackground')}}: {{$route.query.processBackground}} @@ -122,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', @@ -228,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', @@ -439,6 +463,7 @@ ::v-deep .ant-table-body { background: transparent !important; } + .operator-text-text { cursor: pointer; margin-right: 23px; diff --git a/jero-web/src/views/businessSupport/technologyAssessment/components/evaluationResultsWhole.vue b/jero-web/src/views/businessSupport/technologyAssessment/components/evaluationResultsWhole.vue index 3756367b3..cd25daf21 100644 --- a/jero-web/src/views/businessSupport/technologyAssessment/components/evaluationResultsWhole.vue +++ b/jero-web/src/views/businessSupport/technologyAssessment/components/evaluationResultsWhole.vue @@ -13,6 +13,13 @@ {{$t('initiateSupplementaryProcess')}}
+
+ + {{$t('endProcess')}} +
@@ -77,6 +84,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: 'evaluationResultsWhole', @@ -88,6 +96,8 @@ return { queryParam: {}, dataSource: [], + userInfoQuery:{}, + administrators:false, url: { list: '/lawsTechnologyEvaluation/lawsTechnologyEvaluationComplianceResultEO/list', exportData: 'lawsTechnologyEvaluation/lawsTechnologyEvaluationComplianceResultEO/exportZip' @@ -121,10 +131,33 @@ } }, mounted() { + this.userInfoQuery = this.userInfo() document.title = this.$route.query.serialNumber + ' ' + this.$t('regulatoryTechnicalEvaluationResults') this.getList() + 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']), + 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', diff --git a/jero-web/src/views/businessSupport/technologyAssessment/components/initiatingProcess.vue b/jero-web/src/views/businessSupport/technologyAssessment/components/initiatingProcess.vue index 913bcd9d3..2170b8b73 100644 --- a/jero-web/src/views/businessSupport/technologyAssessment/components/initiatingProcess.vue +++ b/jero-web/src/views/businessSupport/technologyAssessment/components/initiatingProcess.vue @@ -491,7 +491,11 @@ }, standardDecompositionDocumentClick() { if (this.standardDecomposition && this.standardDecomposition.length > 0) { - this.$refs.standardDecompositionSheetRef.getData(JSON.parse(JSON.stringify(this.standardDecomposition[0])), this.standardList) + if (this.standardDecomposition[0].sarFileSplitInfoList && this.standardDecomposition[0].sarFileSplitInfoList.length > 0) { + this.$refs.standardDecompositionSheetRef.getData(JSON.parse(JSON.stringify(this.standardDecomposition[0])), this.standardList) + } else { + this.$message.warning(this.$t('thereForTheCurrentlySelectedData')) + } } else { this.$message.warning(this.$t('pleaseSelectStandardFirst')) } diff --git a/jero-web/src/views/businessSupport/technologyAssessment/components/standardDecompositionSheet.vue b/jero-web/src/views/businessSupport/technologyAssessment/components/standardDecompositionSheet.vue index 57962084a..6d7a27d65 100644 --- a/jero-web/src/views/businessSupport/technologyAssessment/components/standardDecompositionSheet.vue +++ b/jero-web/src/views/businessSupport/technologyAssessment/components/standardDecompositionSheet.vue @@ -55,9 +55,9 @@ {{$t('informationCategory')}}
+ :placeholder="$t('PleaseSelect')+$t('informationCategory')" + :type="'select'" + :triggerChange="false" :dictCode="'information_category'"/>
@@ -136,7 +136,7 @@ confirmLoading: false, selectedRowKeys: [], sarFileSplitInfoList: [], - informationCategoryList:[], + informationCategoryList: [], url: { list: '/split/sarFileSplitItems/getSplitItemsByPage' }, @@ -226,7 +226,7 @@ this.sarFileSplitInfoList = this.standData.sarFileSplitInfoList || [] this.sarFileSplitInfoList = [...this.sarFileSplitInfoList] this.queryParam = {} - this.queryParam.info_id = this.sarFileSplitInfoList && this.sarFileSplitInfoList.length > 0 ? this.sarFileSplitInfoList[0].id : '' + this.queryParam.info_id = this.sarFileSplitInfoList && this.sarFileSplitInfoList.length > 0 ? this.sarFileSplitInfoList[0].id : null this.visible = true if (this.queryParam.info_id) { this.pageNo = 1 @@ -244,14 +244,18 @@ } }, searchQuery() { - this.pageNo = 1 - this.replacePage() + if (this.queryParam.info_id) { + this.pageNo = 1 + this.replacePage() + } }, searchReset() { - this.pageNo = 1 this.queryParam = {} - this.queryParam.info_id = this.sarFileSplitInfoList && this.sarFileSplitInfoList.length > 0 ? this.sarFileSplitInfoList[0].id : '' - this.replacePage() + this.queryParam.info_id = this.sarFileSplitInfoList && this.sarFileSplitInfoList.length > 0 ? this.sarFileSplitInfoList[0].id : null + if (this.queryParam.info_id) { + this.pageNo = 1 + this.replacePage() + } }, onChange(page, pageSize) { this.pageNo = page @@ -270,14 +274,15 @@ let pageNo = JSON.parse(JSON.stringify(this.pageNo)) let pageSize = JSON.parse(JSON.stringify(this.pageSize)) let queryParam = JSON.parse(JSON.stringify(this.queryParam)) - if (queryParam.technology_territory && queryParam.technology_territory.length > 0){ + if (queryParam.technology_territory && queryParam.technology_territory.length > 0) { queryParam.technology_territory = queryParam.technology_territory.join(',') } let query = { pageNo: pageNo + '', pageSize: pageSize + '', info_id: this.queryParam.info_id, - technology_territory:queryParam.technology_territory, + technology_territory: queryParam.technology_territory, + information_category: queryParam.information_category, menu_id: '' } this.loading = true diff --git a/jero-web/src/views/businessSupport/technologyAssessment/index.vue b/jero-web/src/views/businessSupport/technologyAssessment/index.vue index 36d555566..5da2533c3 100644 --- a/jero-web/src/views/businessSupport/technologyAssessment/index.vue +++ b/jero-web/src/views/businessSupport/technologyAssessment/index.vue @@ -463,7 +463,9 @@ serialNumber: row.serialNumber, lawsTechnologyEvaluationId: row.id, standId: row.standId, - remark: row.remark + remark: row.remark, + createBy:row.createBy, + flowStatus:row.flowStatus } }) window.open(newUrl.href, '_blank') @@ -476,7 +478,9 @@ serialNumber: row.serialNumber, lawsTechnologyEvaluationId: row.id, standId: row.standId, - remark: row.remark + remark: row.remark, + createBy:row.createBy, + flowStatus:row.flowStatus } }) window.open(newUrl.href, '_blank') diff --git a/jero-web/src/views/documentTools/documentComparison/components/comparisonResults.vue b/jero-web/src/views/documentTools/documentComparison/components/comparisonResults.vue index 9c66155a9..d90985d0b 100644 --- a/jero-web/src/views/documentTools/documentComparison/components/comparisonResults.vue +++ b/jero-web/src/views/documentTools/documentComparison/components/comparisonResults.vue @@ -9,6 +9,16 @@ {{$t('comparisonResults')}}
+
+ + {{$t('viewConsistentAssessment')}} +
+
+ + {{$t('viewAll')}} +
@@ -65,7 +75,8 @@
-
+
@@ -176,6 +187,7 @@ isDisplay: false, fullCheckbox: false, resultData: {}, + comment: '', language: '', url: { exportData: '/compare/sarFileCompareItemComment/exportResXls' @@ -207,7 +219,8 @@ let query = { selectIds: checkboxList.join(','), includeComments: fullCheckbox, - infoId: this.$route.query.id + infoId: this.$route.query.id, + comment: this.comment } downloadFile(this.url.exportData, this.resultData.serialNumberLeft + ' - ' + this.resultData.serialNumberRight + this.$t('comparisonResults') + '.xls', query, this.Deselect) }, @@ -217,10 +230,19 @@ this.indeterminate = false this.checkAll = false }, + viewConsistentAssessmentClick() { + this.comment = '一致' + this.getData() + }, + viewAllClick() { + this.comment = '' + this.getData() + }, getData() { let query = { id: this.$route.query.id, - infoId: this.$route.query.id + infoId: this.$route.query.id, + comment: this.comment } this.loading = true getAction('/compare/sarFileCompareItemComment/queryCompareResult', query).then((res) => { @@ -536,7 +558,7 @@ .detail-content-content-text-color { border: 1px solid #00B3BE; - background: rgba(0,179,190,0.0300); + background: rgba(0, 179, 190, 0.0300); } .detail-content-left { @@ -577,9 +599,11 @@ border-radius: 4px; float: left; } - .detail-content-bottom-color{ - background: rgba(0,179,190,0.0300); + + .detail-content-bottom-color { + background: rgba(0, 179, 190, 0.0300); } + .detail-content-bottom-left { width: 115px; font-size: 14px; diff --git a/jero-web/src/views/documentTools/documentComparison/components/documentDataComparison.vue b/jero-web/src/views/documentTools/documentComparison/components/documentDataComparison.vue index 6a5255d8c..4d0b38763 100644 --- a/jero-web/src/views/documentTools/documentComparison/components/documentDataComparison.vue +++ b/jero-web/src/views/documentTools/documentComparison/components/documentDataComparison.vue @@ -105,7 +105,10 @@
- {{$t('preservation')}} + {{$t('consistentAssessment')}} + + {{$t('preservation')}}
@@ -194,6 +197,51 @@ path: '/documentComparison' }) }, + consistentAssessmentClick() { + if (!this.dataLeft.id && !this.dataRight.id) { + this.$message.warning(this.$t('pleaseSelectTheDataCompared')) + return + } + let query = { + itemsIdLeft: this.dataLeft.id, + itemsIdRight: this.dataRight.id, + infoId: this.$route.query.id, + comment: '一致' + } + this.dataLoadingText = this.$t('pleaseWaitWhileRunning') + this.loading = true + postAction('/compare/sarFileCompareItemComment/add', query).then((res) => { + if (res.success) { + this.$message.success(this.$t('OperationSuccessful')) + this.loading = false + this.formInline = {} + this.resultData.textRight.forEach(val => { + if (val.id == this.dataRight.id) { + val.reviewed = 1 + } + }) + this.resultData.textLeft.forEach(val => { + if (val.id == this.dataLeft.id) { + val.reviewed = 1 + } + }) + this.resultData = { ...this.resultData } + let detailLeftColor = document.getElementsByClassName('detail-content-content-right-data-color') + if (detailLeftColor && detailLeftColor.length > 0) { + detailLeftColor[0].classList.remove('detail-content-content-right-data-color') + } + let detailRightColor = document.getElementsByClassName('detail-content-content-right-data-color-right') + if (detailRightColor && detailRightColor.length > 0) { + detailRightColor[0].classList.remove('detail-content-content-right-data-color-right') + } + this.dataLeft = {} + this.dataRight = {} + } else { + this.$message.warning(this.$t('operationFailed')) + this.loading = false + } + }) + }, submit() { if (!this.dataLeft.id && !this.dataRight.id) { this.$message.warning(this.$t('pleaseSelectTheDataCompared')) diff --git a/jero-web/src/views/documentTools/documentTranslation/index.vue b/jero-web/src/views/documentTools/documentTranslation/index.vue index 35370e0ee..36096b058 100644 --- a/jero-web/src/views/documentTools/documentTranslation/index.vue +++ b/jero-web/src/views/documentTools/documentTranslation/index.vue @@ -312,7 +312,8 @@ // // }, downloadData(fileQuery) { - downloadFile('/sys/common/downLoadFile', fileQuery.fileName, { id: fileQuery.targetFileId }) + console.log(fileQuery.targetFileName); + downloadFile('/sys/common/downLoadFile', fileQuery.targetFileName, { id: fileQuery.targetFileId }) }, subscribe(record) { let _this = this diff --git a/jero-web/src/views/externalReports/index.vue b/jero-web/src/views/externalReports/index.vue index 43b27c88f..64f59d9b7 100644 --- a/jero-web/src/views/externalReports/index.vue +++ b/jero-web/src/views/externalReports/index.vue @@ -208,6 +208,7 @@ @@ -225,6 +226,7 @@ { + if (this.dataSource[i][res] && typeof this.dataSource[i][res] == 'string') { + this.dataSource[i][res] = this.dataSource[i][res].replace(/\"/g, '“') + this.dataSource[i][res] = this.dataSource[i][res].replace(/\'/g, '‘') + } + }) } if (this.$route.query.taskDefinitionKey == 'pgrqr'){ let feedbackTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss') diff --git a/jero-web/src/views/processCenter/processList/tabComponents/processCenter/index.vue b/jero-web/src/views/processCenter/processList/tabComponents/processCenter/index.vue index 0a37d733a..fed2e4cf3 100644 --- a/jero-web/src/views/processCenter/processList/tabComponents/processCenter/index.vue +++ b/jero-web/src/views/processCenter/processList/tabComponents/processCenter/index.vue @@ -23,25 +23,25 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + {{$t('query')}} @@ -73,6 +73,22 @@ {{$t('Processing')}} + + + {{record.serialNumber}} + + + {{record.prcNum}} + + + + + {{record.title}} + + + {{record.prcName}} + +
0) { let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys)) @@ -241,8 +260,8 @@ }) for (let i = 0; i < content.length; i++) { if (content[i].taskDefinitionKey != content[0].taskDefinitionKey) { - this.$message.warning(this.$t('processNodesAreInconsistentPleaseSelectConsistentData')) - return + this.$message.warning(this.$t('processNodesAreInconsistentPleaseSelectConsistentData')) + return } } this.$refs.batchProcessingRef.getData(JSON.parse(JSON.stringify(content))) diff --git a/jero-web/src/views/projectManagement/components/addModel.vue b/jero-web/src/views/projectManagement/components/addModel.vue index fd880aadc..65b190bd4 100644 --- a/jero-web/src/views/projectManagement/components/addModel.vue +++ b/jero-web/src/views/projectManagement/components/addModel.vue @@ -335,6 +335,7 @@ }) this.yearNameDataList = content[0].yearNameDataList || [] this.formInline = value + this.formInline = { ...this.formInline } } } else { this.projectNameList = [] @@ -348,6 +349,7 @@ this.getNameList() this.formInline.studioEngineerName = this.userInfo().username this.formInline.studioEngineer = this.userInfo().id + this.formInline = { ...this.formInline } this.$nextTick(() => { this.$refs.ruleForm.clearValidate() }) diff --git a/jero-web/src/views/regulationsKanban/components/addModel.vue b/jero-web/src/views/regulationsKanban/components/addModel.vue index 0392e7492..3f7b32d2d 100644 --- a/jero-web/src/views/regulationsKanban/components/addModel.vue +++ b/jero-web/src/views/regulationsKanban/components/addModel.vue @@ -17,18 +17,18 @@
- - - {{element.text}} - - - - - - - + + + {{element.text}} + + + + + + +
@@ -60,7 +60,7 @@
{{ $t('export') }}
- + - - {{ text }} - {{ text }} - {{ text }} - {{ text }} - {{ $t('toBeConfirmed') }} - {{ $t('taskTermination') }} + + {{ text }} + {{ text }} + {{ text }} + {{ text }} + {{ $t('toBeConfirmed') }} + {{ $t('taskTermination') }} - - {{ text }} - {{ text }} - {{ text }} - {{ text }} - {{ $t('toBeConfirmed') }} - {{ $t('taskTermination') }} + + {{ text }} + {{ text }} + {{ text }} + {{ text }} + {{ $t('toBeConfirmed') }} + {{ $t('taskTermination') }} - - {{ text }} - {{ text }} - {{ text }} - {{ text }} - {{ $t('toBeConfirmed') }} - {{ $t('taskTermination') }} + + {{ text }} + {{ text }} + {{ text }} + {{ text }} + {{ $t('toBeConfirmed') }} + {{ $t('taskTermination') }} - - - + + + - - - - - - - - - - - - -
- {{ $t('CommentsCollectionResultsForReference') }} - {{ $t('TechnicalEvaluationResultsForReference') }} + + + + + + + + + + + + +
+ {{ + $t('CommentsCollectionResultsForReference') }} + + {{ + $t('TechnicalEvaluationResultsForReference') }} +
@@ -125,282 +155,386 @@ \ 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'