From d4ee5a799fff0abcab2ef9114acac055b3557e41 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Thu, 2 Nov 2023 10:48:33 +0800 Subject: [PATCH 01/10] =?UTF-8?q?fix:=20=E4=BC=81=E6=A0=87=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=9D=83=E9=99=90=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/EnterpriseStandardAuthUserServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardAuthUserServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardAuthUserServiceImpl.java index 9f6b77b9..20a4737e 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardAuthUserServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardAuthUserServiceImpl.java @@ -109,7 +109,7 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl authDeptWrapper = new LambdaQueryWrapper<>(); authDeptWrapper.in(CollUtil.isNotEmpty(standardIds), EnterpriseStandardAuthDept::getStandardId, standardIds); - authDeptWrapper.in(EnterpriseStandardAuthDept::getAuthDept, departIds); + authDeptWrapper.in(CollUtil.isNotEmpty(departIds), EnterpriseStandardAuthDept::getAuthDept, departIds); List authDeptList = authDeptService.list(authDeptWrapper); authDeptWrapper.ge(EnterpriseStandardAuthDept::getAuthExpireDate, date); authDeptList.addAll(authDeptService.list(authDeptWrapper)); @@ -227,7 +227,7 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl authDeptWrapper = new LambdaQueryWrapper<>(); authDeptWrapper.eq(EnterpriseStandardAuthDept::getStandardId, standardId); - authDeptWrapper.in(EnterpriseStandardAuthDept::getAuthDept, departIds); + authDeptWrapper.in(CollUtil.isNotEmpty(departIds), EnterpriseStandardAuthDept::getAuthDept, departIds); authDeptWrapper.ge(EnterpriseStandardAuthDept::getAuthExpireDate, date); List authDeptList = authDeptService.list(authDeptWrapper); if (authDeptList.size() > 0) { From c68b1a30391082cc2f42173ba49422378901f4e3 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Thu, 2 Nov 2023 11:08:40 +0800 Subject: [PATCH 02/10] fix: 77924 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 被引用标准未正常回显 --- .../modules/laws/standard/entity/LawsEnterpriseStandard.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/LawsEnterpriseStandard.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/LawsEnterpriseStandard.java index 203c36f4..7e30f4d6 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/LawsEnterpriseStandard.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/LawsEnterpriseStandard.java @@ -196,7 +196,7 @@ public class LawsEnterpriseStandard implements Serializable { * 引用标准 */ @ApiModelProperty(value = "引用标准") - private String quotedStandard; + private String referenceStandard; /** * 被引用标准 From eaeee05f907885649aaaa75194acfaee38d02220 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Thu, 2 Nov 2023 11:46:42 +0800 Subject: [PATCH 03/10] =?UTF-8?q?feat:=20=E8=80=81=E6=B3=95=E8=A7=84?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E6=95=B0=E6=8D=AE=E5=AF=BC=E5=85=A5v2.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../enterprise/entity/OldSystemImportDTO.java | 2 +- .../controller/LawsEnterpriseController.java | 8 +- .../LawsEnterpriseStandardServiceImpl.java | 74 +++++++++++++++++-- 3 files changed, 72 insertions(+), 12 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/OldSystemImportDTO.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/OldSystemImportDTO.java index ed5f3ef1..bc51330f 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/OldSystemImportDTO.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/OldSystemImportDTO.java @@ -60,7 +60,7 @@ public class OldSystemImportDTO { @Excel(name = "TY", width = 15, orderNum = "15") private String ty; - @Excel(name = "BZZT", width = 15, orderNum = "16", dicCode = "enterprise_standard_state") + @Excel(name = "BZZT", width = 15, orderNum = "16") private String bzzt; @Excel(name = "BZXZ", width = 15, orderNum = "17") diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java index 254731c4..c7ed95b0 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsEnterpriseController.java @@ -239,10 +239,10 @@ public class LawsEnterpriseController { return Result.OK(); } - @AutoLog(value = "企业法规标准-老法规企标数据库Excel导入") - @ApiOperation(value="企业法规标准-老法规企标数据库Excel导入", notes="企业法规标准-老法规企标数据库Excel导入") - @PostMapping("/importExcelOldSystem") - public Result importExcelOldSystem(@RequestParam("file") MultipartFile file) { + @AutoLog(value = "企业法规标准-老法规企标数据库Zip导入") + @ApiOperation(value="企业法规标准-老法规企标数据库Zip导入", notes="企业法规标准-老法规企标数据库Zip导入") + @PostMapping("/importOldSystemESZip") + public Result importOldSystemESZip(@RequestParam("file") MultipartFile file) { enterpriseStandardService.importExcelOldSystem(file); return Result.OK("导入成功"); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsEnterpriseStandardServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsEnterpriseStandardServiceImpl.java index cb62cf7e..1a8344ee 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsEnterpriseStandardServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsEnterpriseStandardServiceImpl.java @@ -15,17 +15,26 @@ import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil; import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; import com.jero.modules.laws.standard.mapper.LawsEnterpriseStandardMapper; +import com.jero.modules.laws.standard.service.ILawsReplacedStandardService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.compress.utils.IOUtils; import org.apache.commons.lang3.StringUtils; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.entity.ImportParams; +import org.springframework.mock.web.MockMultipartFile; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; import java.util.*; import java.util.stream.Collectors; +import java.util.zip.ZipEntry; +import java.util.zip.ZipInputStream; /** * @author ThinkBook @@ -47,6 +56,9 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl list = null; + // 解压缩文件,查找Excel文件 + MultipartFile file = null; + try (ZipInputStream zis = new ZipInputStream(zipFile.getInputStream())) { + ZipEntry zipEntry; + while ((zipEntry = zis.getNextEntry()) != null) { + if (zipEntry.getName().endsWith(".xls") || zipEntry.getName().endsWith(".xlsx")) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + IOUtils.copy(zis, baos); + byte[] excelData = baos.toByteArray(); + file = new MockMultipartFile(zipEntry.getName(), zipEntry.getName(), "application/vnd.ms-excel", excelData); + zis.closeEntry(); + break; // 一旦找到Excel文件,就可以跳出循环 + } + zis.closeEntry(); + } + } catch (IOException e) { + throw new JeroBootException("处理压缩文件时发生错误:" + e.getMessage()); + } + + if (file == null) { + throw new JeroBootException("压缩包中未发现Excel文件。"); + } try { // 获取当前时间戳(毫秒) long startTime = System.currentTimeMillis(); @@ -80,6 +117,17 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl replaceCodeList = Arrays.asList(btdbzh.split(";")); + replaceCodeList.forEach(replaceCode -> { + lawsReplacedStandardService.addRelation(replaceCode, btdbzh, 1); + }); + } // 等级分类默认值 es.setGradeClassification("1"); esList.add(es); From b692c392c73a644878e6d4b76fec73f964a86756 Mon Sep 17 00:00:00 2001 From: liao Date: Thu, 2 Nov 2023 13:35:40 +0800 Subject: [PATCH 04/10] =?UTF-8?q?add=20=E6=A0=91=E5=BD=A2=E5=BC=B9?= =?UTF-8?q?=E6=A1=86=E9=80=89=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jero/modules/laws/common/constant/FieldCommon.java | 6 ++++-- .../laws/localTool/controller/LawsUtilController.java | 2 ++ .../java/com/jero/modules/tag/enums/LawsFieldTypeEnum.java | 5 +++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/constant/FieldCommon.java b/laws-modules/src/main/java/com/jero/modules/laws/common/constant/FieldCommon.java index b2d9d755..8499f928 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/constant/FieldCommon.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/constant/FieldCommon.java @@ -31,7 +31,8 @@ public class FieldCommon { LawsFieldTypeEnum.OPTION_SINGLE.getValue(), // 下拉单选 LawsFieldTypeEnum.TREE_BOX_SINGLE.getValue(), // 树型单选 LawsFieldTypeEnum.TREE_BOX.getValue(), // 树型多选 - LawsFieldTypeEnum.OPTION_MANY.getValue() // 下拉多选 + LawsFieldTypeEnum.OPTION_MANY.getValue(), // 下拉多选 + LawsFieldTypeEnum.TREE_OPTION.getValue() // 树形弹框选择 ); // 字典翻译类型 @@ -39,7 +40,8 @@ public class FieldCommon { LawsFieldTypeEnum.OPTION_SINGLE.getValue(), // 下拉单选 LawsFieldTypeEnum.OPTION_MANY.getValue(), // 下拉多选 LawsFieldTypeEnum.TREE_BOX.getValue(), // 树型多选 - LawsFieldTypeEnum.TREE_BOX_SINGLE.getValue() // 树型单选 + LawsFieldTypeEnum.TREE_BOX_SINGLE.getValue(), // 树型单选 + LawsFieldTypeEnum.TREE_OPTION.getValue() // 树形弹框选择 ); // 特殊更新记录字段 diff --git a/laws-modules/src/main/java/com/jero/modules/laws/localTool/controller/LawsUtilController.java b/laws-modules/src/main/java/com/jero/modules/laws/localTool/controller/LawsUtilController.java index 0f2b3dee..cde7934a 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/localTool/controller/LawsUtilController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/localTool/controller/LawsUtilController.java @@ -46,6 +46,8 @@ public class LawsUtilController { SysDictItem dictItem = new SysDictItem(); // 字典id dictItem.setDictId("1696007957666533377"); + // 父节点 + dictItem.setParentId("0"); // 是否标签管理显示(显示) dictItem.setIsTagDict(1); // 状态(启用) diff --git a/laws-modules/src/main/java/com/jero/modules/tag/enums/LawsFieldTypeEnum.java b/laws-modules/src/main/java/com/jero/modules/tag/enums/LawsFieldTypeEnum.java index 78d87915..2c741962 100644 --- a/laws-modules/src/main/java/com/jero/modules/tag/enums/LawsFieldTypeEnum.java +++ b/laws-modules/src/main/java/com/jero/modules/tag/enums/LawsFieldTypeEnum.java @@ -19,9 +19,10 @@ public enum LawsFieldTypeEnum { OPTION_SINGLE("下拉单选","10"), OPTION_MANY("下拉多选","11"), TREE_BOX("树型结构(多选)","12"), - OPTION_Link("输入框(链接)","13"), + OPTION_Link("输入框(链接)","13"), // 好像没用了 YEAR_OPTION("年份选择","14"), - TREE_BOX_SINGLE("树型结构(单选)","15") + TREE_BOX_SINGLE("树型结构(单选)","15"), + TREE_OPTION("树形弹框选择","16"), ; String name; From 827e624e32d711152763df6955f1927f25b92e3f Mon Sep 17 00:00:00 2001 From: liao Date: Thu, 2 Nov 2023 14:14:27 +0800 Subject: [PATCH 05/10] =?UTF-8?q?update=20=E6=A0=91=E5=9E=8B=E5=AD=97?= =?UTF-8?q?=E5=85=B8=E5=88=86=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SysDictItemController.java | 45 ++++++++++++++++--- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/laws-module-system/src/main/java/com/jero/modules/system/controller/SysDictItemController.java b/laws-module-system/src/main/java/com/jero/modules/system/controller/SysDictItemController.java index dc7eb0bc..95f3b03f 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/controller/SysDictItemController.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/controller/SysDictItemController.java @@ -26,6 +26,7 @@ import com.jero.common.constant.enums.LanguageEnum; import com.jero.common.util.MessageUtils; import com.jero.modules.system.util.TreeUtils; import io.swagger.annotations.ApiOperation; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.formula.functions.T; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -70,7 +71,7 @@ public class SysDictItemController { @ApiOperation(value = "查询字典内容列表") @GetMapping("/page") public Result> queryPageList(SysDictItem sysDictItem, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, - @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { Result> result = new Result<>(); QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(sysDictItem, req.getParameterMap()); queryWrapper.orderByAsc("sort_order"); @@ -89,12 +90,23 @@ public class SysDictItemController { */ @ApiOperation(value = "查询字典内容树形列表") @GetMapping("/treeList") - public Result queryTreeList(SysDictItem sysDictItem, - HttpServletRequest req) { + public Result>> queryTreeList(SysDictItem sysDictItem, + HttpServletRequest req, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { + Page page = new Page<>(pageNo, pageSize); + // 只查父节点 + sysDictItem.setParentId("0"); QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(sysDictItem, req.getParameterMap()); - List sysDictItems = sysDictItemService.list(queryWrapper); - //当查询结果中有数据的父级不存在时,赋值父级id为"0" + //List sysDictItems = sysDictItemService.list(queryWrapper); + Page pageList = sysDictItemService.page(page, queryWrapper); + List sysDictItems = pageList.getRecords(); + List rootIds = sysDictItems.stream().map(SysDictItem::getId).collect(Collectors.toList()); + // 递归查询子节点 + queryChildrenNode(sysDictItems, rootIds); + // 重新获取ids List idList = sysDictItems.stream().map(SysDictItem::getId).collect(Collectors.toList()); + //当查询结果中有数据的父级不存在时,赋值父级id为"0" idList.add("0"); //赋值pId sysDictItems.forEach(i ->{ @@ -127,9 +139,28 @@ public class SysDictItemController { tree.putExtra(s, map.get(s)); } }); + Page> treePage = new Page<>(pageNo, pageSize); + treePage.setRecords(treeNodes); + treePage.setTotal(pageList.getTotal()); + return Result.OK(treePage); + } - JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(treeNodes,SerializerFeature.WriteMapNullValue)); - return Result.OK(jsonArray != null ? jsonArray : new JSONArray()); + /** + * @Author: liao + * @Date: 2023/11/2 14:04 + * @Description: 递归查询子节点 + **/ + private void queryChildrenNode(List sysDictItems, List idList) { + if (CollectionUtils.isNotEmpty(idList)) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(SysDictItem::getParentId, idList); + List dictItemChildren = sysDictItemService.list(queryWrapper); + if (CollectionUtils.isNotEmpty(dictItemChildren)) { + List idChildren = dictItemChildren.stream().map(SysDictItem::getId).collect(Collectors.toList()); + sysDictItems.addAll(dictItemChildren); + queryChildrenNode(sysDictItems, idChildren); + } + } } @ApiOperation(value = "选择框查询字典内容树形列表") From 1e4a909597a569b1a125f5fd19d740cb7ba5ec8f Mon Sep 17 00:00:00 2001 From: caihaohan Date: Thu, 2 Nov 2023 14:40:54 +0800 Subject: [PATCH 06/10] =?UTF-8?q?feat:=20=E8=80=81=E6=B3=95=E8=A7=84?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E6=95=B0=E6=8D=AE=E5=AF=BC=E5=85=A5v3.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LawsEnterpriseStandardServiceImpl.java | 359 +++++++++++------- 1 file changed, 225 insertions(+), 134 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsEnterpriseStandardServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsEnterpriseStandardServiceImpl.java index 1a8344ee..913ce015 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsEnterpriseStandardServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsEnterpriseStandardServiceImpl.java @@ -1,7 +1,6 @@ package com.jero.modules.laws.standard.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.api.CommonAPI; import com.jero.common.constant.CommonConstant; @@ -12,7 +11,9 @@ import com.jero.modules.laws.common.constant.FieldCommon; import com.jero.modules.laws.enterprise.entity.OldSystemImportDTO; import com.jero.modules.laws.enterprise.service.ESSequenceNumberProvider; import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil; +import com.jero.modules.laws.standard.entity.LawsDomesticStandard; import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; +import com.jero.modules.laws.standard.service.ILawsDomesticStandardService; import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; import com.jero.modules.laws.standard.mapper.LawsEnterpriseStandardMapper; import com.jero.modules.laws.standard.service.ILawsReplacedStandardService; @@ -28,8 +29,6 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileOutputStream; import java.io.IOException; import java.util.*; import java.util.stream.Collectors; @@ -37,19 +36,22 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; /** -* @author ThinkBook -* @description 针对表【laws_enterprise_standard(企业标准)】的数据库操作Service实现 -* @createDate 2023-09-18 14:49:51 -*/ + * @author ThinkBook + * @description 针对表【laws_enterprise_standard(企业标准)】的数据库操作Service实现 + * @createDate 2023-09-18 14:49:51 + */ @Slf4j @Service @Transactional(rollbackFor = JeroBootException.class) public class LawsEnterpriseStandardServiceImpl extends ServiceImpl - implements ILawsEnterpriseStandardService, ESSequenceNumberProvider { + implements ILawsEnterpriseStandardService, ESSequenceNumberProvider { @Resource private LawsEnterpriseStandardMapper esMapper; + @Resource + private ILawsDomesticStandardService domesticStandardService; + @Resource private ExcelUtils excelUtils; @@ -61,7 +63,7 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); @@ -72,131 +74,6 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl list = null; - // 解压缩文件,查找Excel文件 - MultipartFile file = null; - try (ZipInputStream zis = new ZipInputStream(zipFile.getInputStream())) { - ZipEntry zipEntry; - while ((zipEntry = zis.getNextEntry()) != null) { - if (zipEntry.getName().endsWith(".xls") || zipEntry.getName().endsWith(".xlsx")) { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - IOUtils.copy(zis, baos); - byte[] excelData = baos.toByteArray(); - file = new MockMultipartFile(zipEntry.getName(), zipEntry.getName(), "application/vnd.ms-excel", excelData); - zis.closeEntry(); - break; // 一旦找到Excel文件,就可以跳出循环 - } - zis.closeEntry(); - } - } catch (IOException e) { - throw new JeroBootException("处理压缩文件时发生错误:" + e.getMessage()); - } - - if (file == null) { - throw new JeroBootException("压缩包中未发现Excel文件。"); - } - try { - // 获取当前时间戳(毫秒) - long startTime = System.currentTimeMillis(); - list = ExcelImportUtil.importExcel(file.getInputStream(), OldSystemImportDTO.class, params); - // 删除空行 - for (int i = 0; i < list.size(); i++) { - OldSystemImportDTO oldSystemImportDTO = list.get(i); - if (oldSystemImportDTO.isEmptyRow()) { - list.remove(i); - i--; - } - } - // 删除国标 - for (int i = 0; i < list.size(); i++) { - OldSystemImportDTO oldSystemImportDTO = list.get(i); - if (oldSystemImportDTO.getBzfl().startsWith("国家标准") - || oldSystemImportDTO.getBzh().startsWith("GB") - || oldSystemImportDTO.getBzh().startsWith("海外标准") - || oldSystemImportDTO.getBzh().startsWith("FB")) { - list.remove(i); - i--; - } - } - log.info("获取数据成功,数据条数:{}", list.size()); - // 获取当前时间戳(毫秒) - long endTime = System.currentTimeMillis(); - // 计算执行时间(毫秒) - long executionTime = endTime - startTime; - log.info("代码执行时间:" + executionTime + " 毫秒"); - } catch (Exception e) { - log.error("导入失败;{}", e.getMessage()); - } - // 转换数据 - List esList = new ArrayList<>(); - // list判空 - if (list == null || list.isEmpty()) { - throw new JeroBootException("导入数据为空"); - } - for (OldSystemImportDTO dto : list) { - LawsEnterpriseStandard es = new LawsEnterpriseStandard(); - es.setStandardNumber(dto.getBzh()); - es.setStandardName(dto.getBzmc()); - es.setEnglishName(dto.getBzywmc()); - es.setReleaseDate(dto.getFbrq()); - es.setImplementationDate(dto.getSsrq()); - String standardState = dto.getBzzt(); - es.setStandardState(standardState.equals("现行有效") ? 8 : 9); - //代替被代替特殊逻辑 - String tdbzh = dto.getTdbzh(); - String btdbzh = dto.getBtdbzh(); - // 代替标准号 - if (StringUtils.isNotBlank(tdbzh)) { - lawsReplacedStandardService.addRelation(btdbzh, tdbzh, 1); - } - // 被代替标准号 - if (StringUtils.isNotBlank(btdbzh)) { - List replaceCodeList = Arrays.asList(btdbzh.split(";")); - replaceCodeList.forEach(replaceCode -> { - lawsReplacedStandardService.addRelation(replaceCode, btdbzh, 1); - }); - } - // 等级分类默认值 - es.setGradeClassification("1"); - esList.add(es); - } - // 处理数据 - this.handleESData(esList); - // 保存数据 - // 1. 首先获取所有现有的标准号 - List existingEntities = esMapper.selectList(new QueryWrapper<>()); - - // 2. 创建一个Map,用于快速查找是否存在相同的标准号 - Map standardNumberToEntityMap = new HashMap<>(); - for (LawsEnterpriseStandard existingEntity : existingEntities) { - standardNumberToEntityMap.put(existingEntity.getStandardNumber(), existingEntity); - } - - // 3. 遍历待保存或更新的列表,设置ID - List toSaveOrUpdate = new ArrayList<>(); - for (LawsEnterpriseStandard entity : esList) { - LawsEnterpriseStandard existingEntity = standardNumberToEntityMap.get(entity.getStandardNumber()); - if (existingEntity != null) { - // 如果存在,则设置ID以进行更新 - entity.setId(existingEntity.getId()); - } - toSaveOrUpdate.add(entity); - } - - // 4. 最后,执行批量保存或更新 - saveOrUpdateBatch(toSaveOrUpdate); - } - private void handleESData(List esList) { List listDict = commonAPI.getDictItemAll(); // 编号拆分 @@ -227,6 +104,220 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl allDatalist = null; + List esDatalist = new ArrayList<>(); + List gbDatalist = new ArrayList<>(); + List fbDatalist = new ArrayList<>(); + // 解压缩文件,查找Excel文件 + MultipartFile file = null; + try (ZipInputStream zis = new ZipInputStream(zipFile.getInputStream())) { + ZipEntry zipEntry; + while ((zipEntry = zis.getNextEntry()) != null) { + if (zipEntry.getName().endsWith(".xls") || zipEntry.getName().endsWith(".xlsx")) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + IOUtils.copy(zis, baos); + byte[] excelData = baos.toByteArray(); + file = new MockMultipartFile(zipEntry.getName(), zipEntry.getName(), "application/vnd.ms-excel", excelData); + zis.closeEntry(); + break; // 一旦找到Excel文件,就可以跳出循环 + } + zis.closeEntry(); + } + } catch (IOException e) { + throw new JeroBootException("处理压缩文件时发生错误:" + e.getMessage()); + } + + if (file == null) { + throw new JeroBootException("压缩包中未发现Excel文件。"); + } + try { + // 获取当前时间戳(毫秒) + long startTime = System.currentTimeMillis(); + allDatalist = ExcelImportUtil.importExcel(file.getInputStream(), OldSystemImportDTO.class, params); + // 删除空行 + for (int i = 0; i < allDatalist.size(); i++) { + OldSystemImportDTO oldSystemImportDTO = allDatalist.get(i); + if (oldSystemImportDTO.isEmptyRow()) { + allDatalist.remove(i); + i--; + } + } + // 区分数据 + for (OldSystemImportDTO oldSystemImportDTO : allDatalist) { + if (oldSystemImportDTO.getBzfl().startsWith("企业标准")) { + esDatalist.add(oldSystemImportDTO); + } else if (oldSystemImportDTO.getBzfl().startsWith("国家标准")) { + gbDatalist.add(oldSystemImportDTO); + } else { + fbDatalist.add(oldSystemImportDTO); + } + } + log.info("获取数据成功,数据条数:{}", allDatalist.size()); + log.info("获取数据成功,企标数据条数:{}", esDatalist.size()); + log.info("获取数据成功,国标数据条数:{}", gbDatalist.size()); + log.info("获取数据成功,其他数据条数:{}", fbDatalist.size()); + // 获取当前时间戳(毫秒) + long endTime = System.currentTimeMillis(); + // 计算执行时间(毫秒) + long executionTime = endTime - startTime; + log.info("数据转换执行时间:" + executionTime + " 毫秒"); + } catch (Exception e) { + log.error("导入失败;{}", e.getMessage()); + } + // 导入企标 + // 判断是否需要跳过 + if (esDatalist.isEmpty()) { + log.info("企标数据为空,跳过导入"); + } else { + this.oldSysESImport(esDatalist); + } + // 导入国标 + // 判断是否需要跳过 + if (gbDatalist.isEmpty()) { + log.info("国标数据为空,跳过导入"); + } else { + this.oldSysGBImport(gbDatalist); + } + } + + private void oldSysGBImport(List gbDatalist) { + long startTime = System.currentTimeMillis(); + //TODO 转换数据 + List gbList = new ArrayList<>(); + for (OldSystemImportDTO dto : gbDatalist) { + + } + // 保存数据 + // 1. 首先获取所有现有的企标标准号 + List existingEntities = domesticStandardService.list(); + + // 2. 创建一个Map,用于快速查找是否存在相同的标准号 + Map standardNumberToEntityMap = new HashMap<>(); + for (LawsDomesticStandard existingEntity : existingEntities) { + standardNumberToEntityMap.put(existingEntity.getStandardNumber(), existingEntity); + } + + // 3. 遍历待保存或更新的列表,设置ID + for (LawsDomesticStandard entity : gbList) { + LawsDomesticStandard existingEntity = standardNumberToEntityMap.get(entity.getStandardNumber()); + if (existingEntity != null) { + // 如果存在,则先删后增 + this.removeById(existingEntity.getId()); + // TODO 删除替代被替代 + lawsReplacedStandardService.removeRelation(existingEntity.getStandardNumber(), 1); + } + String tdbzh = entity.getSubstituteStandardNumber(); + String btdbzh = entity.getReplacedByStandardNumber(); + // 代替标准号 + if (StringUtils.isNotBlank(tdbzh)) { + lawsReplacedStandardService.addRelation(btdbzh, tdbzh, 1); + } + // 被代替标准号 + if (StringUtils.isNotBlank(btdbzh)) { + List replaceCodeList = Arrays.asList(btdbzh.split(";")); + replaceCodeList.forEach(replaceCode -> { + lawsReplacedStandardService.addRelation(replaceCode, btdbzh, 1); + }); + } + entity.setSubstituteStandardNumber(null); + entity.setReplacedByStandardNumber(null); + domesticStandardService.save(entity); + } + log.info("老法规国标覆盖导入完成"); + // 获取当前时间戳(毫秒) + long endTime = System.currentTimeMillis(); + // 计算执行时间(毫秒) + long executionTime = endTime - startTime; + log.info("代码执行时间:" + executionTime + " 毫秒"); + } + + private void oldSysESImport(List esDatalist) { + long startTime = System.currentTimeMillis(); + // 转换数据 + List esList = new ArrayList<>(); + + // 导入企标 + for (OldSystemImportDTO dto : esDatalist) { + LawsEnterpriseStandard es = new LawsEnterpriseStandard(); + es.setStandardNumber(dto.getBzh()); + es.setStandardName(dto.getBzmc()); + es.setEnglishName(dto.getBzywmc()); + es.setReleaseDate(dto.getFbrq()); + es.setImplementationDate(dto.getSsrq()); + String standardState = dto.getBzzt(); + es.setStandardState(standardState.equals("现行有效") ? 8 : 9); + // 代替被代替特殊逻辑 + es.setSubstituteStandardNumber(dto.getTdbzh()); + es.setReplacedByStandardNumber(dto.getBtdbzh()); + // 等级分类默认值 + es.setGradeClassification("1"); + esList.add(es); + } + // 处理数据 + this.handleESData(esList); + // 保存数据 + // 1. 首先获取所有现有的企标标准号 + List existingEntities = this.list(); + + // 2. 创建一个Map,用于快速查找是否存在相同的标准号 + Map standardNumberToEntityMap = new HashMap<>(); + for (LawsEnterpriseStandard existingEntity : existingEntities) { + standardNumberToEntityMap.put(existingEntity.getStandardNumber(), existingEntity); + } + + // 3. 遍历待保存或更新的列表,设置ID + for (LawsEnterpriseStandard entity : esList) { + String curStandardNumber = entity.getStandardNumber(); + LawsEnterpriseStandard existingEntity = standardNumberToEntityMap.get(entity.getStandardNumber()); + if (existingEntity != null) { + // 如果存在,则先删后增 + this.removeById(existingEntity.getId()); + // 代替 + lawsReplacedStandardService.removeRelation(existingEntity.getStandardNumber(), 1); + // 删除被代替 + String replacedBy = lawsReplacedStandardService.getReplacedBy(curStandardNumber, 1); + if (StringUtils.isNotBlank(replacedBy)) { + List replaceCodeList = Arrays.asList(replacedBy.split(";")); + replaceCodeList.forEach(replaceCode -> { + lawsReplacedStandardService.removeRelation(replaceCode, 1); + }); + } + } + String tdbzh = entity.getSubstituteStandardNumber(); + String btdbzh = entity.getReplacedByStandardNumber(); + // 代替标准号 + if (StringUtils.isNotBlank(tdbzh)) { + lawsReplacedStandardService.addRelation(tdbzh, curStandardNumber, 1); + } + // 被代替标准号 + if (StringUtils.isNotBlank(btdbzh)) { + List replaceCodeList = Arrays.asList(btdbzh.split(";")); + replaceCodeList.forEach(replaceCode -> { + lawsReplacedStandardService.addRelation(curStandardNumber, replaceCode, 1); + }); + } + entity.setSubstituteStandardNumber(null); + entity.setReplacedByStandardNumber(null); + save(entity); + } + log.info("老法规企标覆盖导入完成"); + // 获取当前时间戳(毫秒) + long endTime = System.currentTimeMillis(); + // 计算执行时间(毫秒) + long executionTime = endTime - startTime; + log.info("代码执行时间:" + executionTime + " 毫秒"); + } + @Override public List getSequenceNumbers(String esCodeDictValue, String esNameCodeDictValue, String categoryCodeDictValue) { // 已经存在的标准 From 10a2568c9f1a88fb53bfaea19661544dd89f0452 Mon Sep 17 00:00:00 2001 From: liao Date: Thu, 2 Nov 2023 14:56:07 +0800 Subject: [PATCH 07/10] =?UTF-8?q?update=20=E8=80=81=E6=B3=95=E8=A7=84?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E5=9B=BD=E6=A0=87=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/20230905标准法规库.sql | 5 --- .../fb/entity/ProcessFbEntryChange.java | 19 +-------- .../process/fb/vo/CommonProcessInfo.java | 42 +++++++++++++++++++ .../process/fb/vo/FbEntryChangeUserVO.java | 28 ------------- .../process/fb/vo/FbEntryChangeVO.java | 8 ++-- .../LawsEnterpriseStandardServiceImpl.java | 35 +++++++++++----- 6 files changed, 73 insertions(+), 64 deletions(-) create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/CommonProcessInfo.java delete mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/FbEntryChangeUserVO.java diff --git a/db/20230905标准法规库.sql b/db/20230905标准法规库.sql index 2415b278..b79b6132 100644 --- a/db/20230905标准法规库.sql +++ b/db/20230905标准法规库.sql @@ -357,11 +357,6 @@ CREATE TABLE `process_fb_entry_change` `org_code` varchar(64) COMMENT '所属部门', `del_flag` int(1) DEFAULT 0 COMMENT '0表示未删除,1表示删除', - `process_instance_id` varchar(50) COMMENT '流程示例id(流程信息)', - `processName` varchar(100) COMMENT '流程名称(流程信息)', - `process_due_date` datetime(0) COMMENT '截止日期(流程信息)', - `process_description` varchar(500) COMMENT '流程说明(流程信息)', - `source` varchar(5) COMMENT '来源(1国内、2海外)', `operate_type` varchar(5) COMMENT '操作类型(1标准法规入库、2标准法规变更)', `standard_property` varchar(36) COMMENT '标准性质', diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/entity/ProcessFbEntryChange.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/entity/ProcessFbEntryChange.java index af518444..93907b47 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/entity/ProcessFbEntryChange.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/entity/ProcessFbEntryChange.java @@ -61,24 +61,7 @@ public class ProcessFbEntryChange implements Serializable { @Excel(name = "0表示未删除,1表示删除", width = 15) @ApiModelProperty(value = "0表示未删除,1表示删除") private java.lang.Integer delFlag; - /**流程示例id(流程信息)*/ - @Excel(name = "流程示例id(流程信息)", width = 15) - @ApiModelProperty(value = "流程示例id(流程信息)") - private java.lang.String processInstanceId; - /**流程名称(流程信息)*/ - @Excel(name = "流程名称(流程信息)", width = 15) - @ApiModelProperty(value = "流程名称(流程信息)") - private java.lang.String processname; - /**截止日期(流程信息)*/ - @Excel(name = "截止日期(流程信息)", width = 15, format = "yyyy-MM-dd") - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") - @DateTimeFormat(pattern="yyyy-MM-dd") - @ApiModelProperty(value = "截止日期(流程信息)") - private java.util.Date processDueDate; - /**流程说明(流程信息)*/ - @Excel(name = "流程说明(流程信息)", width = 15) - @ApiModelProperty(value = "流程说明(流程信息)") - private java.lang.String processDescription; + /**来源(1国内、2海外)*/ @Excel(name = "来源(1国内、2海外)", width = 15) @ApiModelProperty(value = "来源(1国内、2海外)") diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/CommonProcessInfo.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/CommonProcessInfo.java new file mode 100644 index 00000000..888f343b --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/CommonProcessInfo.java @@ -0,0 +1,42 @@ +package com.jero.modules.activiti.process.fb.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +/** + * @Author: liao + * @Date: 2023/11/2 14:35 + * @Description: 流程信息通用类 + */ +@Data +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="流程信息通用类", description="流程信息通用类") +public class CommonProcessInfo { + + /**流程实例id*/ + @Excel(name = "流程实例id", width = 15) + @ApiModelProperty(value = "流程实例id") + private java.lang.String processInstanceId; + /**流程名称*/ + @Excel(name = "流程名称", width = 15) + @ApiModelProperty(value = "流程名称") + private java.lang.String processName; + /**截止日期*/ + @Excel(name = "截止日期", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "截止日期") + private java.util.Date processDueDate; + /**流程说明*/ + @Excel(name = "流程说明", width = 15) + @ApiModelProperty(value = "流程说明") + private java.lang.String processDescription; + +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/FbEntryChangeUserVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/FbEntryChangeUserVO.java deleted file mode 100644 index 45c20b7f..00000000 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/FbEntryChangeUserVO.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.jero.modules.activiti.process.fb.vo; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; - -/** - * @Author: liao - * @Date: 2023/11/1 17:16 - * @Description: 标准法规入库_变更流程_人员信息 - */ -@Data -@Accessors(chain = true) -@EqualsAndHashCode(callSuper = false) -@ApiModel(value="标准法规入库_变更流程_人员信息", description="标准法规入库_变更流程_人员信息") -public class FbEntryChangeUserVO { - - /**法规工程师-发起*/ - @ApiModelProperty(value = "法规工程师-发起") - private java.lang.String engineerId; - - /**法规工程师主管级领导-审批*/ - @ApiModelProperty(value = "法规工程师主管级领导-审批") - private java.lang.String leaderId; - -} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/FbEntryChangeVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/FbEntryChangeVO.java index 2d2e1c20..120e3bd4 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/FbEntryChangeVO.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/FbEntryChangeVO.java @@ -8,6 +8,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import java.util.Map; + /** * @Author: liao * @Date: 2023/11/1 17:11 @@ -21,14 +23,14 @@ public class FbEntryChangeVO { /**流程通用信息*/ @ApiModelProperty(value = "流程通用信息") - private CommonVO common; + private CommonVO commonInfo; /**业务信息*/ @ApiModelProperty(value = "业务信息") - private ProcessFbEntryChange data; + private ProcessFbEntryChange businessInfo; /**人员信息*/ @ApiModelProperty(value = "人员信息") - private FbEntryChangeUserVO flowUser; + private Map userInfoMap; } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsEnterpriseStandardServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsEnterpriseStandardServiceImpl.java index 913ce015..54eb4e15 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsEnterpriseStandardServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsEnterpriseStandardServiceImpl.java @@ -192,10 +192,33 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl gbDatalist) { long startTime = System.currentTimeMillis(); - //TODO 转换数据 + // 转换数据 List gbList = new ArrayList<>(); for (OldSystemImportDTO dto : gbDatalist) { + LawsDomesticStandard gb = new LawsDomesticStandard(); + gb.setStandardNumber(dto.getBzh()); + String[] parts = dto.getBzh().split("[-\\s]"); // 使用空格或破折号作为分隔符 + if (parts.length < 3) { + parts = dto.getBzh().split("[—\\s]"); // 使用空格或破折号作为分隔符 + } + // 标准类别 + gb.setStandardClass(parts[0]); + // 标准号 + gb.setStandardNumberTemp(parts[1]); + // 年代号 + gb.setYearNumber(parts[2]); + + gb.setStandardName(dto.getBzmc()); + gb.setStandardEnglishName(dto.getBzywmc()); + gb.setReleaseDate(dto.getFbrq()); + gb.setImplementationDate(dto.getSsrq()); + String standardState = dto.getBzzt(); + gb.setStandardState(standardState.equals("现行有效") ? "8" : "9"); + // 代替被代替特殊逻辑 + gb.setSubstituteStandardNumber(dto.getTdbzh()); + gb.setReplacedByStandardNumber(dto.getBtdbzh()); + gbList.add(gb); } // 保存数据 // 1. 首先获取所有现有的企标标准号 @@ -213,7 +236,7 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl replaceCodeList = Arrays.asList(replacedBy.split(";")); - replaceCodeList.forEach(replaceCode -> { - lawsReplacedStandardService.removeRelation(replaceCode, 1); - }); - } } String tdbzh = entity.getSubstituteStandardNumber(); String btdbzh = entity.getReplacedByStandardNumber(); From 2caca5f862742dcafea9cd874180389edb47c997 Mon Sep 17 00:00:00 2001 From: liao Date: Thu, 2 Nov 2023 15:56:18 +0800 Subject: [PATCH 08/10] =?UTF-8?q?add=20=E6=A0=B9=E6=8D=AEcodes=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E5=AD=97=E5=85=B8=E5=88=97=E8=A1=A8=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SysDictItemController.java | 9 ++ .../ProcessFbEntryChangeController.java | 27 ++++-- .../mapper/xml/ProcessFbEntryChangeMapper.xml | 4 - .../service/IProcessFbEntryChangeService.java | 14 ++- .../impl/ProcessFbEntryChangeServiceImpl.java | 20 +++- .../process/fb/util/ObjectToMapUtil.java | 97 +++++++++++++++++++ .../process/fb/vo/CommonProcessInfo.java | 42 -------- .../process/fb/vo/FbEntryChangeVO.java | 36 ------- .../activiti/process/fb/vo/ProcessInfoVO.java | 61 ++++++++++++ 9 files changed, 211 insertions(+), 99 deletions(-) create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/fb/util/ObjectToMapUtil.java delete mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/CommonProcessInfo.java delete mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/FbEntryChangeVO.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/ProcessInfoVO.java diff --git a/laws-module-system/src/main/java/com/jero/modules/system/controller/SysDictItemController.java b/laws-module-system/src/main/java/com/jero/modules/system/controller/SysDictItemController.java index 95f3b03f..b136c5a4 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/controller/SysDictItemController.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/controller/SysDictItemController.java @@ -206,6 +206,15 @@ public class SysDictItemController { return Result.OK(jsonArray != null ? jsonArray : new JSONArray()); } + @ApiOperation(value = "根据codes查询列表信息") + @GetMapping("/listByCodes") + public Result> listByCodes(@RequestParam(name = "codes") String codes) { + List codeList = Arrays.asList(codes.split(",")); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(SysDictItem::getItemValue, codeList); + return Result.OK(sysDictItemService.list(queryWrapper)); + } + /** * @功能:新增 * @return diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/controller/ProcessFbEntryChangeController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/controller/ProcessFbEntryChangeController.java index 400ec294..ef98ecaa 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/controller/ProcessFbEntryChangeController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/controller/ProcessFbEntryChangeController.java @@ -2,15 +2,18 @@ package com.jero.modules.activiti.process.fb.controller; import com.jero.common.api.vo.Result; import com.jero.common.aspect.annotation.AutoLog; -import com.jero.modules.activiti.process.esChange.entity.vo.ESChangeDataVO; +import com.jero.common.util.MessageUtils; import com.jero.modules.activiti.process.fb.entity.ProcessFbEntryChange; import com.jero.modules.activiti.process.fb.service.IProcessFbEntryChangeService; -import com.jero.modules.activiti.process.fb.vo.FbEntryChangeVO; import com.jero.modules.laws.common.constant.ResultCommon; +import com.jero.modules.laws.dataCenter.entity.LawsDataCenterFile; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import com.jero.common.system.base.controller.JeroController; +import org.apache.poi.ss.formula.functions.T; +import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import io.swagger.annotations.Api; @@ -29,12 +32,20 @@ public class ProcessFbEntryChangeController extends JeroController startProcess(@RequestBody FbEntryChangeVO fbEntryChangeVO) { - processFbEntryChangeService.startProcess(fbEntryChangeVO); - return Result.OK(ResultCommon.OK); + @AutoLog(value = "标准法规入库_变更流程-添加业务信息") + @ApiOperation(value = "标准法规入库_变更流程-添加业务信息", notes = "标准法规入库_变更流程-添加业务信息") + @PostMapping(value = "/addBusinessInfo") + public Result addBusinessInfo(@Validated @RequestBody ProcessFbEntryChange processFbEntryChange) { + processFbEntryChangeService.addBusinessInfo(processFbEntryChange); + return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); + } + + @AutoLog(value = "标准法规入库_变更流程-编辑业务信息") + @ApiOperation(value = "标准法规入库_变更流程-编辑业务信息", notes = "标准法规入库_变更流程-编辑业务信息") + @PostMapping(value = "/editBusinessInfo") + public Result edit(@Validated @RequestBody ProcessFbEntryChange processFbEntryChange) { + processFbEntryChangeService.editBusinessInfo(processFbEntryChange); + return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/mapper/xml/ProcessFbEntryChangeMapper.xml b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/mapper/xml/ProcessFbEntryChangeMapper.xml index d469a896..5e536ffb 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/mapper/xml/ProcessFbEntryChangeMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/mapper/xml/ProcessFbEntryChangeMapper.xml @@ -9,10 +9,6 @@ - - - - diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessFbEntryChangeService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessFbEntryChangeService.java index d933dff2..4f9927d1 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessFbEntryChangeService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessFbEntryChangeService.java @@ -2,7 +2,7 @@ package com.jero.modules.activiti.process.fb.service; import com.jero.modules.activiti.process.fb.entity.ProcessFbEntryChange; import com.baomidou.mybatisplus.extension.service.IService; -import com.jero.modules.activiti.process.fb.vo.FbEntryChangeVO; +import com.jero.modules.laws.dataCenter.entity.LawsDataCenterFile; /** * @Description: 标准法规入库/变更流程 @@ -11,11 +11,17 @@ import com.jero.modules.activiti.process.fb.vo.FbEntryChangeVO; * @Version: V1.0 */ public interface IProcessFbEntryChangeService extends IService { + /** + * @Author: liao + * @Date: 2023/11/2 15:43 + * @Description: 添加业务信息 + **/ + void addBusinessInfo(ProcessFbEntryChange processFbEntryChange); /** * @Author: liao - * @Date: 2023/11/1 17:23 - * @Description: 发起流程 + * @Date: 2023/11/2 15:48 + * @Description: 编辑业务信息 **/ - void startProcess(FbEntryChangeVO fbEntryChangeVO); + void editBusinessInfo(ProcessFbEntryChange processFbEntryChange); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbEntryChangeServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbEntryChangeServiceImpl.java index 036225a3..3d73a392 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbEntryChangeServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbEntryChangeServiceImpl.java @@ -3,7 +3,7 @@ package com.jero.modules.activiti.process.fb.service.impl; import com.jero.modules.activiti.process.fb.entity.ProcessFbEntryChange; import com.jero.modules.activiti.process.fb.mapper.ProcessFbEntryChangeMapper; import com.jero.modules.activiti.process.fb.service.IProcessFbEntryChangeService; -import com.jero.modules.activiti.process.fb.vo.FbEntryChangeVO; +import com.jero.modules.laws.dataCenter.entity.LawsDataCenterFile; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -22,14 +22,24 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @Slf4j public class ProcessFbEntryChangeServiceImpl extends ServiceImpl implements IProcessFbEntryChangeService { + /** * @Author: liao - * @Date: 2023/11/1 17:23 - * @Description: 发起流程 + * @Date: 2023/11/2 15:43 + * @Description: 添加业务信息 **/ @Override - public void startProcess(FbEntryChangeVO fbEntryChangeVO) { - + public void addBusinessInfo(ProcessFbEntryChange processFbEntryChange) { + save(processFbEntryChange); } + /** + * @Author: liao + * @Date: 2023/11/2 15:48 + * @Description: 编辑业务信息 + **/ + @Override + public void editBusinessInfo(ProcessFbEntryChange processFbEntryChange) { + updateById(processFbEntryChange); + } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/util/ObjectToMapUtil.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/util/ObjectToMapUtil.java new file mode 100644 index 00000000..af2400db --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/util/ObjectToMapUtil.java @@ -0,0 +1,97 @@ +package com.jero.modules.activiti.process.fb.util; + +import com.jero.common.exception.JeroBootException; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.util.HashMap; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * @Author: liao + * @Date: 2023/11/2 15:26 + * @Description: 实体类转Map集合 + */ +public class ObjectToMapUtil { + private static final String COMPILE = "[A-Z]"; + private ObjectToMapUtil(){} + + /** + * Bean -> Map + * 驼峰规范属性转下划线 + * 支持递归转换,如属性为JavaBean时 + */ + public static Map transform(T object){ + if(object == null){ + return null; + } + + Map map = new HashMap<>(); + // 获取实体类所有属性,返回Field数组 + Field[] fields = object.getClass().getDeclaredFields(); + + try { + for (int i = 0 ; i < fields.length; i++){ + // 属性名称 + String fieldName = fields[i].getName(); + + if ("serialVersionUID".equalsIgnoreCase(fieldName)) { + continue; + } + + // 转换驼峰形式属性名称成下划线风格,获取map的key 例:fieldName 》 field_name + String transformFieldName = ObjectToMapUtil.getTransformFieldName(fieldName); + // map 的 value ,属性的值 + Object fieldValue; + + // 将属性的首字符大写,方便构造get,set方法 + String name = fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1); + + // 获取属性的类型 + String type = fields[i].getGenericType().toString(); + Method m = object.getClass().getMethod("get" + name); + + switch (type){ + // 如果有需要,可以仿照下面继续进行扩充,再增加对其它类型的判断 + case "class java.lang.String": + case "class java.lang.Boolean": + case "class java.util.Date": + case "class java.lang.Integer": + case "class java.lang.Long": + // 调用getter方法获取属性值 + fieldValue = m.invoke(object); + break; + default: + // 属性类型为bean,则递归 + Object obj = m.invoke(object); + fieldValue = ObjectToMapUtil.transform(obj); + } + map.put(transformFieldName,fieldValue); + } + }catch (Exception e){ + // 系统异常 + e.printStackTrace(); + throw new JeroBootException("系统异常"); + } + return map; + } + + /** + * 转换风格 驼峰转下划线 + * @param fieldName 属性名称 + * @return + */ + private static String getTransformFieldName(String fieldName) { + Pattern humpPattern = Pattern.compile(COMPILE); + Matcher matcher = humpPattern.matcher(fieldName); + StringBuffer sb = new StringBuffer(); + while(matcher.find()){ + matcher.appendReplacement(sb, "_"+matcher.group(0).toLowerCase()); + } + matcher.appendTail(sb); + return sb.toString(); + } + +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/CommonProcessInfo.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/CommonProcessInfo.java deleted file mode 100644 index 888f343b..00000000 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/CommonProcessInfo.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.jero.modules.activiti.process.fb.vo; - -import com.fasterxml.jackson.annotation.JsonFormat; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; -import org.jeecgframework.poi.excel.annotation.Excel; -import org.springframework.format.annotation.DateTimeFormat; - -/** - * @Author: liao - * @Date: 2023/11/2 14:35 - * @Description: 流程信息通用类 - */ -@Data -@Accessors(chain = true) -@EqualsAndHashCode(callSuper = false) -@ApiModel(value="流程信息通用类", description="流程信息通用类") -public class CommonProcessInfo { - - /**流程实例id*/ - @Excel(name = "流程实例id", width = 15) - @ApiModelProperty(value = "流程实例id") - private java.lang.String processInstanceId; - /**流程名称*/ - @Excel(name = "流程名称", width = 15) - @ApiModelProperty(value = "流程名称") - private java.lang.String processName; - /**截止日期*/ - @Excel(name = "截止日期", width = 15, format = "yyyy-MM-dd") - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") - @DateTimeFormat(pattern="yyyy-MM-dd") - @ApiModelProperty(value = "截止日期") - private java.util.Date processDueDate; - /**流程说明*/ - @Excel(name = "流程说明", width = 15) - @ApiModelProperty(value = "流程说明") - private java.lang.String processDescription; - -} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/FbEntryChangeVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/FbEntryChangeVO.java deleted file mode 100644 index 120e3bd4..00000000 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/FbEntryChangeVO.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.jero.modules.activiti.process.fb.vo; - -import com.jero.modules.activiti.process.common.entity.CommonVO; -import com.jero.modules.activiti.process.fb.entity.ProcessFbEntryChange; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; - -import java.util.Map; - -/** - * @Author: liao - * @Date: 2023/11/1 17:11 - * @Description: 标准法规入库_变更流程VO类 - */ -@Data -@Accessors(chain = true) -@EqualsAndHashCode(callSuper = false) -@ApiModel(value="标准法规入库_变更流程VO类", description="标准法规入库_变更流程VO类") -public class FbEntryChangeVO { - - /**流程通用信息*/ - @ApiModelProperty(value = "流程通用信息") - private CommonVO commonInfo; - - /**业务信息*/ - @ApiModelProperty(value = "业务信息") - private ProcessFbEntryChange businessInfo; - - /**人员信息*/ - @ApiModelProperty(value = "人员信息") - private Map userInfoMap; - -} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/ProcessInfoVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/ProcessInfoVO.java new file mode 100644 index 00000000..b2e6eef4 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/ProcessInfoVO.java @@ -0,0 +1,61 @@ +package com.jero.modules.activiti.process.fb.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Map; + +/** + * @Author: liao + * @Date: 2023/11/2 14:35 + * @Description: 流程信息通用类 + */ +@Data +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="流程信息通用类", description="流程信息通用类") +public class ProcessInfoVO { + + /**流程定义id*/ + @ApiModelProperty(value = "流程定义id") + private java.lang.String processDefinitionId; + /**流程实例id*/ + @ApiModelProperty(value = "流程实例id") + private java.lang.String processInstanceId; + + /**流程信息-流程名称*/ + @ApiModelProperty(value = "流程信息-流程名称") + private java.lang.String processName; + /**流程信息-截止日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "流程信息-截止日期") + private java.util.Date processDueDate; + /**流程信息-流程说明*/ + @ApiModelProperty(value = "流程信息-流程说明") + private java.lang.String processDescription; + + /**流程审批信息-备注*/ + @ApiModelProperty(value = "流程审批信息-备注") + private java.lang.String handleText; + /**流程审批信息-附件*/ + @ApiModelProperty(value = "流程审批信息-附件") + private java.lang.String handleFile; + /**流程审批信息-操作类型*/ + @ApiModelProperty(value = "流程审批信息-操作类型") + private java.lang.String handleType; + + /**业务id*/ + @ApiModelProperty(value = "业务id") + private String businessId; + + /**人员信息*/ + @ApiModelProperty(value = "人员信息") + private Map userInfoMap; + +} From a5dd831d991af10624a5d064b0041bb6fddd1160 Mon Sep 17 00:00:00 2001 From: liao Date: Thu, 2 Nov 2023 16:01:19 +0800 Subject: [PATCH 09/10] =?UTF-8?q?delete=20=E9=9B=B6=E9=83=A8=E4=BB=B6?= =?UTF-8?q?=E7=89=B9=E6=AE=8A=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/LawsCommonServiceImpl.java | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java index 47d12dae..b425a10e 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java @@ -410,14 +410,6 @@ public class LawsCommonServiceImpl implements ILawsCommonService { resultMap.put(key + FieldCommon._DICT_TEXT, StringUtils.join(fileList.stream() .map(OSSFile::getFileName).collect(Collectors.toList()), ",")); } - } else if (FieldCommon.PART_NAME.equals(key)) { - // 如果是零部件名称(存的是id,数据源为其他系统,目前用字典做代替) - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(SysDictItem::getId, value); - SysDictItem dictItem = sysDictItemService.getOne(queryWrapper); - if (dictItem != null) { - resultMap.put(key + FieldCommon._DICT_TEXT, dictItem.getItemText()); - } } } @@ -863,16 +855,6 @@ public class LawsCommonServiceImpl implements ILawsCommonService { } } } - } else if (FieldCommon.PART_NAME.equals(key)) { - // 零部件名称(单选) - oldValue = (String) oldDataMap.get(key + FieldCommon._DICT_TEXT); - if (StringUtils.isNotBlank(value)) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(SysDictItem::getDictId, lawsTag.getDictId()); - queryWrapper.eq(SysDictItem::getItemValue, value); - SysDictItem dictItem = sysDictItemService.getOne(queryWrapper); - //value = dictItem.getItemText(); // 先注释掉,后面确定好显示后再放开 - } } else if (FieldCommon.TYPE_DICT.contains(lawsTag.getFieldShowType())) { // 字典翻译 oldValue = (String) oldDataMap.get(key + FieldCommon._DICT_TEXT); From 7be689406cec67b85c9c29c4960d676e557a5636 Mon Sep 17 00:00:00 2001 From: liao Date: Thu, 2 Nov 2023 16:27:53 +0800 Subject: [PATCH 10/10] =?UTF-8?q?delete=20=E4=BC=81=E6=A0=87=E5=88=A4?= =?UTF-8?q?=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../laws/common/service/impl/LawsCommonServiceImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java index b425a10e..56b4dcff 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java @@ -758,7 +758,9 @@ public class LawsCommonServiceImpl implements ILawsCommonService { lawsNodeRelationService.addRelation(standardSystem, standardNumber, id); // 企标授权部门处理 - esAuthUserService.resetAuthDept(id, parameterMap.get(FieldCommon.AUTH_DEPT).toString()); + if (TableNameEnum.ENTERPRISE_STANDARDS.getValue().equals(module)) { + esAuthUserService.resetAuthDept(id, parameterMap.get(FieldCommon.AUTH_DEPT).toString()); + } return MessageUtils.getMessage(ResultCommon.OK); }