From 4cbf399b155f01badffee31be5bfdcb4a04c329a Mon Sep 17 00:00:00 2001 From: liao Date: Wed, 29 Nov 2023 20:34:37 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=B3=95=E8=A7=84=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ProcessFbEntryChangeServiceImpl.java | 62 +++++++++++++++++++ .../common/service/ILawsCommonService.java | 9 +++ .../service/impl/LawsCommonServiceImpl.java | 21 +++++-- 3 files changed, 86 insertions(+), 6 deletions(-) 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 c6fc632c..405bf4a3 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 @@ -143,12 +143,74 @@ public class ProcessFbEntryChangeServiceImpl extends ServiceImpl objectMap) { + String module = (String) objectMap.get(FieldCommon.MODULE); + String id = (String) objectMap.get("id"); + Map oldMap = lawsCommonService.getByIdAndModule(id, module, "2", null); + + String replaced = (String) objectMap.get(FieldCommon.REPLACED_STANDARD); // 代替标准 + String reference = (String) objectMap.get(FieldCommon.REFERENCE_STANDARD); // 引用标准 + String replacedOld = (String) oldMap.get(FieldCommon.REPLACED_STANDARD); // 代替标准 + String referenceOld = (String) oldMap.get(FieldCommon.REFERENCE_STANDARD); // 引用标准 + + if (StringUtils.isNotBlank(replaced) && !replaced.equals(replacedOld)) { // 代替标准 + String content = getContent(objectMap, oldMap, module); + } + + if (StringUtils.isNotBlank(reference) && !reference.equals(referenceOld)) { // 引用标准 + String content = getContent(objectMap, oldMap, module); + } + } + + /** + * @Author: liao + * @Date: 2023/11/29 17:48 + * @Description: 得到变更内容 + **/ + private String getContent(Map objectMap, Map oldMap, String module) { + // 获取要操作的表名 + String tableName = TableNameEnum.getTableName(module); + // 获取全部字段 + List fieldList = lawsCommonMapper.getFieldList(tableName); + // 筛选出表单显示的 + fieldList = fieldList.stream().filter(lawsTag -> YesOrNoEnum.YES.getInteger() + .equals(lawsTag.getIsShowFormCreate())).collect(Collectors.toList()); + + // 组装更新内容 + StringBuilder recordBuffer = new StringBuilder(); + recordBuffer.append("变更前:"); + StringBuilder recordBuffer2 = new StringBuilder(); + recordBuffer2.append("变更后:"); + + for (Map.Entry entryMap : objectMap.entrySet()) { + String key = entryMap.getKey(); + String value = ""; + if (!Objects.isNull(entryMap.getValue())) { + value = (String) entryMap.getValue(); + } + // 添加更新记录 + lawsCommonService.addUpdateRecord(fieldList, oldMap, recordBuffer, recordBuffer2, key, value); + } + recordBuffer.deleteCharAt(recordBuffer.length()-1); + recordBuffer2.deleteCharAt(recordBuffer2.length()-1); + recordBuffer.append("。"); + recordBuffer.append(recordBuffer2); + return recordBuffer.toString(); + } + /** * @Author: liao * @Date: 2023/11/6 15:23 diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/service/ILawsCommonService.java b/laws-modules/src/main/java/com/jero/modules/laws/common/service/ILawsCommonService.java index 74eb19dd..d4321969 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/service/ILawsCommonService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/service/ILawsCommonService.java @@ -71,6 +71,15 @@ public interface ILawsCommonService { **/ String commonEdit(Map parameterMap); + /** + * @Author: liao + * @Date: 2023/11/29 16:11 + * @Description: 更新语句 + **/ + void addUpdateRecord(List fieldList, Map oldDataMap, + StringBuilder recordBuffer, StringBuilder recordBuffer2, + String key, String value); + /** * @Author: liao * @Date: 2023/8/24 10:41 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 5c34d201..dd0fcdc1 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 @@ -799,7 +799,7 @@ public class LawsCommonServiceImpl implements ILawsCommonService { } // 添加更新记录 - addUpdateRecord(fieldList, oldDataMap, recordBuffer, key, value); + addUpdateRecord(fieldList, oldDataMap, recordBuffer, null, key, value); // 拼接更新sql语句 jointUpdateFieldAndValue(fieldList, updateBuilder, key, value, id, standardNumber); @@ -860,8 +860,10 @@ public class LawsCommonServiceImpl implements ILawsCommonService { * @Date: 2023/9/12 15:40 * @Description: 添加更新记录 **/ - private void addUpdateRecord(List fieldList, Map oldDataMap, - StringBuilder recordBuffer, String key, String value) { + @Override + public void addUpdateRecord(List fieldList, Map oldDataMap, + StringBuilder recordBuffer, StringBuilder recordBuffer2, + String key, String value) { String oldValue = ""; if (!Objects.isNull(oldDataMap.get(key))) oldValue = (String) oldDataMap.get(key); @@ -997,9 +999,16 @@ public class LawsCommonServiceImpl implements ILawsCommonService { // 如果新旧值不一样 if (!oldValue.equals(value)) { - recordBuffer.append(FieldCommon.QUOTE + lawsTag.getDbFieldTxt() + FieldCommon.QUOTE + "由"); - recordBuffer.append(FieldCommon.QUOTE + oldValue + FieldCommon.QUOTE + "改为"); - recordBuffer.append(FieldCommon.QUOTE + value + FieldCommon.QUOTE + ";"); + if (recordBuffer2 == null) { // 标准编辑 + recordBuffer.append(FieldCommon.QUOTE + lawsTag.getDbFieldTxt() + FieldCommon.QUOTE + "由"); + recordBuffer.append(FieldCommon.QUOTE + oldValue + FieldCommon.QUOTE + "改为"); + recordBuffer.append(FieldCommon.QUOTE + value + FieldCommon.QUOTE + ";"); + } else { // 法规变更流程 + recordBuffer.append("[" + lawsTag.getDbFieldTxt() + "]" + "为"); + recordBuffer.append("[" + oldValue + "]" + "、"); + recordBuffer2.append("[" + lawsTag.getDbFieldTxt() + "]" + "为"); + recordBuffer2.append("[" + value + "]" + "、"); + } } }