From a6768f296bd744787dd5868eeb9f3935daba6bcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Mon, 23 Sep 2024 09:43:15 +0800 Subject: [PATCH 01/36] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- laws-single-startup/src/main/resources/application-prod.yml | 2 +- laws-single-startup/src/main/resources/application-test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/laws-single-startup/src/main/resources/application-prod.yml b/laws-single-startup/src/main/resources/application-prod.yml index f5de40c0..8382a470 100644 --- a/laws-single-startup/src/main/resources/application-prod.yml +++ b/laws-single-startup/src/main/resources/application-prod.yml @@ -310,7 +310,7 @@ jero: fileSuffixLimits : 0x00,%00,\\00,.jsp,.exe,.php,.asp,.aspx,.jspx,.xml,.html,.js,.sh,.bin,$DATA # 跨站白名单 域名 whiteUrls: localhost:62345,localhost:8188,localhost:3344,localhost:3435,localhost:3408,10.2.16.33:8188,10.2.16.33:3344,10.2.16.37:3344,10.2.16.34:8188,10.2.16.34:3344,10.2.16.33:8012,cgrsm.mychery.com:8188,cgrsm.mychery.com:3344,cgrsm.mychery.com:8012 - xssExcludedPages: /login,/updatePassword + xssExcludedPages: /login,/updatePassword,/uploadModelFile,/standardComplianceCheck/start # cors白名单 notFilter: # origin地址 域名 diff --git a/laws-single-startup/src/main/resources/application-test.yml b/laws-single-startup/src/main/resources/application-test.yml index 03a22ebd..379b0049 100644 --- a/laws-single-startup/src/main/resources/application-test.yml +++ b/laws-single-startup/src/main/resources/application-test.yml @@ -310,7 +310,7 @@ jero: fileSuffixLimits : 0x00,%00,\\00,.jsp,.exe,.php,.asp,.aspx,.jspx,.xml,.html,.js,.sh,.bin,$DATA # 跨站白名单 whiteUrls: localhost:62345,localhost:8188,localhost:3344,localhost:3435,localhost:3408,10.2.16.10:8188,10.2.16.10:3344,10.2.16.10:8012,cgrsmuat.mychery.com:8188,cgrsmuat.mychery.com:3344,cgrsmuat.mychery.com:8012 - xssExcludedPages: /login,/updatePassword + xssExcludedPages: /login,/updatePassword,/uploadModelFile,/standardComplianceCheck/start # cors白名单 notFilter: # origin地址 From 6aed2fbe35c47d516d2a705ac6bb3b095644f683 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Tue, 24 Sep 2024 11:10:02 +0800 Subject: [PATCH 02/36] =?UTF-8?q?ci:=20=E6=89=A9=E5=B1=95=E5=A4=96?= =?UTF-8?q?=E6=9D=A5=E6=A0=87=E5=87=86=20=E5=85=B3=E8=81=94=E9=83=A8?= =?UTF-8?q?=E9=97=A8=20=E5=AD=97=E6=AE=B5=E9=95=BF=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/update/测试阶段.sql | 3 +++ 1 file changed, 3 insertions(+) diff --git a/db/update/测试阶段.sql b/db/update/测试阶段.sql index 900a6dc9..4a350126 100644 --- a/db/update/测试阶段.sql +++ b/db/update/测试阶段.sql @@ -532,3 +532,6 @@ CREATE INDEX pnl_idx_user_id ON process_node_link(`user_id`); ALTER TABLE laws_document_split ADD PRIMARY KEY (id); +-- 2024-09-24 外来标准库增加 关联部门 字段长度 +ALTER TABLE `laws_domestic_standard` + MODIFY COLUMN `associate_dept` text NULL COMMENT '关联部门'; \ No newline at end of file From b8bbe72e7cbbb6406bf27d76bf3ba9c4c0c5ac16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Tue, 24 Sep 2024 14:25:31 +0800 Subject: [PATCH 03/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9D=A1=E6=AC=BE?= =?UTF-8?q?=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/FileSplitItemsEOServiceImpl.java | 34 +++++++++++++------ 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java index 6546c929..bc9012f7 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java @@ -3184,7 +3184,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl treePath.equals(o.getLevelPath())) .collect(Collectors.toList()); if(!pathOther.isEmpty()){ - if (path.size() > 1) { + if (pathOther.size() > 1) { if(MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())) { errorMsg += fieldName + "中" + treePath + "存在多个;"; countError++; @@ -3229,9 +3229,13 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl(); + valueList.add(path.get(0).getItemValue()); + } + }else{ if(MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())) { errorMsg += fieldName + "中" + treePath + "存在多个;"; @@ -3240,7 +3244,12 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl(); + valueList.add(path.get(0).getItemValue()); } } }else { @@ -3249,7 +3258,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl treePath.equals(o.getLevelPath())) .collect(Collectors.toList()); if(!pathOther.isEmpty()){ - if (path.size() > 1) { + if (pathOther.size() > 1) { if(MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())) { errorMsg += fieldName + "中" + treePath + "存在多个;"; countError++; @@ -3257,9 +3266,12 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl(); + valueList.add(pathOther.get(0).getItemValue()); } - valueList.add(pathOther.get(0).getItemValue()); }else{ if(MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())) { errorMsg += fieldName + "中" + treePath + "不存在;"; @@ -3268,7 +3280,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl Date: Tue, 24 Sep 2024 14:47:58 +0800 Subject: [PATCH 04/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E6=8B=86=E5=88=86=E6=9D=A1=E6=AC=BEbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/FileSplitItemsEOServiceImpl.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java index bc9012f7..9bf1b681 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java @@ -3233,9 +3233,8 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl(); - valueList.add(path.get(0).getItemValue()); } - + valueList.add(pathOther.get(0).getItemValue()); }else{ if(MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())) { errorMsg += fieldName + "中" + treePath + "存在多个;"; @@ -3246,12 +3245,11 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl(); - valueList.add(path.get(0).getItemValue()); - } } + if(CollectionUtils.isEmpty(valueList)){ + valueList = new ArrayList<>(); + } + valueList.add(path.get(0).getItemValue()); }else { List sysDictItemList = getLevelPath(sysDictItemLists); List pathOther = @@ -3270,8 +3268,8 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl(); - valueList.add(pathOther.get(0).getItemValue()); } + valueList.add(pathOther.get(0).getItemValue()); }else{ if(MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())) { errorMsg += fieldName + "中" + treePath + "不存在;"; From 267106b23bcfb1f6ae0810a64886a9b7b8fca06d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Tue, 24 Sep 2024 18:25:26 +0800 Subject: [PATCH 05/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9sql=E6=B3=A8=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../documenttool/service/impl/DocumentSplitServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java index bde7c2cf..57410f95 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java @@ -406,6 +406,8 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { @Override public List> queryDocumentSplitDetailByList(Map parameter) { + // 防止SQL注入 + this.checkForSQLInjection(parameter); // 查询全部字段列表 List fieldList = lawsCommonMapper.getFieldList(TableNameEnum.DOCUMENT_SPLIT.getTableName()); // 列表展示字段 @@ -1780,8 +1782,6 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { } private String getSelectCondition(Map parameter, List fieldListCondition) { - // 防止SQL注入 - this.checkForSQLInjection(parameter); // 拼接查询条件 StringBuilder selectCondition = new StringBuilder("where del_flag = 0"); // 非动态查询条件 From 34aa5fe0742b43dcc2e520ca248d52058d5c13a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Tue, 24 Sep 2024 18:29:43 +0800 Subject: [PATCH 06/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9sql=E6=B3=A8=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/FileSplitItemsEOServiceImpl.java | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java index 9bf1b681..b7aaeb73 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java @@ -4635,11 +4635,31 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl parameterMap) { + // 定义要检查的特殊字符 + String[] specialCharacters = {"'", "\"", "\\", "<", ">", "&", "*", ";"}; + + for (Map.Entry entry : parameterMap.entrySet()) { + Object value = entry.getValue(); + + // 检查是否是字符串类型 + if (value instanceof String) { + String strValue = (String) value; + // 检查是否包含特殊字符 + for (String character : specialCharacters) { + if (strValue.contains(character)) { + throw new JeroBootException("输入字段中包含非法字符,请检查"); + } + } + } + } + } @Override public void exportSplitInfo(String cut, String idList, Map parameter,String exportName, HttpServletResponse response, HttpServletRequest request) { // 水平越权 documentSplitService.isHorizontalOverstep(String.valueOf(parameter.get("info_id"))); - +// 防止SQL注入 + this.checkForSQLInjection(parameter); OutputStream os = null; OutputStream excelOS = null; HSSFWorkbook workbook = new HSSFWorkbook(); From 11b80394fdca4944694d20837bed1453e7c113c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Wed, 25 Sep 2024 16:11:20 +0800 Subject: [PATCH 07/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=AD=A3=E5=BC=8F?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- laws-single-startup/src/main/resources/application-prod.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/laws-single-startup/src/main/resources/application-prod.yml b/laws-single-startup/src/main/resources/application-prod.yml index 8382a470..5c23ec9b 100644 --- a/laws-single-startup/src/main/resources/application-prod.yml +++ b/laws-single-startup/src/main/resources/application-prod.yml @@ -578,7 +578,7 @@ feishu: # 是否推送飞书 isSendStatus: true # 重定向到前端的地址前缀 - redirect_prefix: http://10.2.16.37:3344/transferRedirectPage?finalRedirectPage= + redirect_prefix: https://cgrsm.mychery.com:3344/transferRedirectPage?finalRedirectPage= # app的id app_id : cli_a6541d37d6359013 # app秘钥 From 4eb5f4a754760d375095d3bdf6675fd2516567b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Wed, 25 Sep 2024 17:19:43 +0800 Subject: [PATCH 08/36] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E5=90=91OA=E6=8E=A8=E9=80=81=E5=BE=85=E5=8A=9E=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E5=A4=B1=E8=B4=A5=E7=9A=84=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/update/测试阶段.sql | 10 ++- .../docking/hiwork/job/SyncOaSendDataJob.java | 68 +++++++++++++++++++ .../service/impl/UnifiedTodoServiceImpl.java | 68 +++++++++++-------- 3 files changed, 115 insertions(+), 31 deletions(-) create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/job/SyncOaSendDataJob.java diff --git a/db/update/测试阶段.sql b/db/update/测试阶段.sql index 4a350126..43bc7777 100644 --- a/db/update/测试阶段.sql +++ b/db/update/测试阶段.sql @@ -534,4 +534,12 @@ ALTER TABLE laws_document_split ADD PRIMARY KEY (id); -- 2024-09-24 外来标准库增加 关联部门 字段长度 ALTER TABLE `laws_domestic_standard` - MODIFY COLUMN `associate_dept` text NULL COMMENT '关联部门'; \ No newline at end of file + MODIFY COLUMN `associate_dept` text NULL COMMENT '关联部门'; + +-- 2024-09-25 流程待办推送记录表 +ALTER TABLE `laws_unified_todo_log` + MODIFY COLUMN `json_str` longtext NULL COMMENT '推送内容'; +ALTER TABLE `laws_unified_todo_log` + MODIFY COLUMN `response_body` longtext NULL COMMENT '返回值'; +CREATE INDEX lutl_idx_state ON laws_unified_todo_log(`state`); +CREATE INDEX lutl_idx_message_type ON laws_unified_todo_log(`message_type`); diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/job/SyncOaSendDataJob.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/job/SyncOaSendDataJob.java new file mode 100644 index 00000000..a31317a7 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/job/SyncOaSendDataJob.java @@ -0,0 +1,68 @@ +package com.jero.modules.docking.hiwork.job; + +import cn.hutool.http.Header; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.jero.common.api.PushWorkflowIntegrationAPI; +import com.jero.common.api.dto.message.UnifiedTodoVO; +import com.jero.modules.docking.hiwork.entity.LawsUnifiedTodoLog; +import com.jero.modules.docking.hiwork.service.LawsUnifiedTodoLogService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; + +/** + * 每天全量推送失败的待办 + */ +@Slf4j +public class SyncOaSendDataJob implements Job { + + @Resource + private LawsUnifiedTodoLogService lawsUnifiedTodoLogService; + @Resource + private PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI; + + @Override + public void execute(JobExecutionContext context) throws JobExecutionException { + LambdaQueryWrapper queryLawsUnifiedTodoLog = new LambdaQueryWrapper<>(); + queryLawsUnifiedTodoLog.eq(LawsUnifiedTodoLog::getState,"2"); + queryLawsUnifiedTodoLog.eq(LawsUnifiedTodoLog::getMessageType,"1"); + List listLawsUnifiedTodoLog = lawsUnifiedTodoLogService.list(queryLawsUnifiedTodoLog); + if(CollectionUtils.isEmpty(listLawsUnifiedTodoLog)){ + return; + } + for (LawsUnifiedTodoLog lawsUnifiedTodoLog : listLawsUnifiedTodoLog) { + if(StringUtils.isBlank(lawsUnifiedTodoLog.getJsonStr())){ + continue; + } + try { + List unifiedTodoVOList = JSON.parseObject(lawsUnifiedTodoLog.getJsonStr(), + new TypeReference>() {}); + try { + pushWorkflowIntegrationAPI.sendTodoTask(unifiedTodoVOList); + }catch (Exception e){ + log.error("OA推送待办异常" + e.getMessage()); + } + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(LawsUnifiedTodoLog::getId,lawsUnifiedTodoLog.getId()); + updateWrapper.set(LawsUnifiedTodoLog::getState,1); + updateWrapper.set(LawsUnifiedTodoLog::getCreateBy,"admin"); + updateWrapper.set(LawsUnifiedTodoLog::getUpdateTime,new Date()); + lawsUnifiedTodoLogService.update(updateWrapper); + }catch (Exception e){ + log.error("OA推送待办定时推送异常" + e.getMessage()); + } + } + } +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/UnifiedTodoServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/UnifiedTodoServiceImpl.java index 3d86306d..2ae464b3 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/UnifiedTodoServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/UnifiedTodoServiceImpl.java @@ -143,40 +143,48 @@ public class UnifiedTodoServiceImpl implements PushWorkflowIntegrationAPI { while (retries < maxRetries) { log.info("==========OA调用"); // 远程调用 - HttpResponse execute = HttpRequest.post(url) - .header(Header.CONTENT_TYPE, "application/json;charset=UTF-8") - .body(jsonString)//表单内容 - .timeout(3000)//超时,毫秒 - .execute(); - if (execute.isOk()) { - String body = execute.body(); - List listJson = JSONArray.parseArray(body,JSONObject.class); - if(!CollectionUtils.isEmpty(listJson)) { - String operResult = String.valueOf(listJson.get(0).get("operResult")); + try { + HttpResponse execute = HttpRequest.post(url) + .header(Header.CONTENT_TYPE, "application/json;charset=UTF-8") + .body(jsonString)//表单内容 + .timeout(3000)//超时,毫秒 + .execute(); + log.info("==========OA调用成功"); + if (execute.isOk()) { + String body = execute.body(); + List listJson = JSONArray.parseArray(body,JSONObject.class); + if(!CollectionUtils.isEmpty(listJson)) { + String operResult = String.valueOf(listJson.get(0).get("operResult")); + lawsUnifiedTodoLog.setResponseBody(body); + if (Objects.equals(operResult, "1")) { + log.info("统一待办推送成功"); + lawsUnifiedTodoLog.setState(1); + break; + } + } + log.info("统一待办推送失败{}",body); + lawsUnifiedTodoLog.setState(2); + retries++; + }else { + String body = execute.body(); lawsUnifiedTodoLog.setResponseBody(body); - if (Objects.equals(operResult, "1")) { - log.info("统一待办推送成功"); - lawsUnifiedTodoLog.setState(1); - break; + List listJson = JSONArray.parseArray(body,JSONObject.class); + if(!CollectionUtils.isEmpty(listJson)){ + String operResult = String.valueOf(listJson.get(0).get("operResult")); + if (Objects.equals(operResult, "1")) { + log.info("统一待办推送成功"); + lawsUnifiedTodoLog.setState(1); + break; + } } + log.info("统一待办推送失败{}",body); + lawsUnifiedTodoLog.setState(2); + retries++; } - log.info("统一待办推送失败{}",body); - lawsUnifiedTodoLog.setState(2); - retries++; - }else { - String body = execute.body(); - lawsUnifiedTodoLog.setResponseBody(body); - List listJson = JSONArray.parseArray(body,JSONObject.class); - if(!CollectionUtils.isEmpty(listJson)){ - String operResult = String.valueOf(listJson.get(0).get("operResult")); - if (Objects.equals(operResult, "1")) { - log.info("统一待办推送成功"); - lawsUnifiedTodoLog.setState(1); - break; - } - } - log.info("统一待办推送失败{}",body); + }catch (Exception e){ + log.error("统一待办推送失败{}" + e.getMessage()); lawsUnifiedTodoLog.setState(2); + lawsUnifiedTodoLog.setResponseBody(e.getMessage()); retries++; } } From 398492cde1c0f155281554336d03a547c17780b2 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Wed, 25 Sep 2024 19:37:15 +0800 Subject: [PATCH 09/36] =?UTF-8?q?update=20=E5=AF=BC=E5=85=A5=E6=8B=86?= =?UTF-8?q?=E5=88=86=E7=BB=93=E6=9E=9C=EF=BC=8C=E5=A2=9E=E5=8A=A0=E8=A1=A5?= =?UTF-8?q?=E5=81=BF=E6=9C=BA=E5=88=B6=EF=BC=8C=E7=88=B6=E7=BA=A7=E7=9B=AE?= =?UTF-8?q?=E5=BD=95=E7=9A=84=E5=90=8C=E7=BA=A7=E7=9B=AE=E5=BD=95=E4=B9=9F?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SarFileSplitMenuEOServiceImpl.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java index 66cc8486..3a5610b5 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java @@ -379,6 +379,7 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl sourceIdList = Arrays.asList(sourceIds.split(",")); // 获取要移动到的层级的最后一个 的排序值 List lastMenuList = getLastMenu(parentMenu.getId(),displaySeq,sourceIdList); @@ -406,6 +407,20 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl lastMenu = getLastMenu(parentParentId, parentDisplaySeq, new ArrayList<>()); + List allList1 = new ArrayList<>(); + getChildren(allList1, lastMenu); + for (int i = 0; i < allList1.size(); i++) { + SarFileSplitMenuEO sarFileSplitMenuEO = allList1.get(i); + Long displaySeq1 = sarFileSplitMenuEO.getDisplaySeq(); + sarFileSplitMenuEO.setDisplaySeq(displaySeq1+allList.size()+i+1); + baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO); + } + } //this.updateBatchById(updateList); // 要移动的节点所有子集(包括本身) From bcbe658b7f0f7f7a3e6f7ebdda6fb2bba687d290 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Thu, 26 Sep 2024 09:22:42 +0800 Subject: [PATCH 10/36] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=AD=A3=E5=BC=8F?= =?UTF-8?q?=E7=8E=AF=E5=A2=83oa=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- laws-single-startup/src/main/resources/application-prod.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/laws-single-startup/src/main/resources/application-prod.yml b/laws-single-startup/src/main/resources/application-prod.yml index 5c23ec9b..d0cbf784 100644 --- a/laws-single-startup/src/main/resources/application-prod.yml +++ b/laws-single-startup/src/main/resources/application-prod.yml @@ -392,7 +392,7 @@ iam: # Hiwork集成 hiwork: - ip: https://newoatest.mychery.com:8088/ + ip: https://www.mychery.com/ # 异构系统标识 sysCode: CGRSM # 服务号 From 3e4860b27a64fa4dd20b71ad56325363e042b8c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Thu, 26 Sep 2024 11:28:23 +0800 Subject: [PATCH 11/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E6=8B=86=E5=88=86=E7=BB=93=E6=9E=9C=E6=94=AF=E6=8C=81=E7=BB=84?= =?UTF-8?q?=E7=BB=87=E6=9C=BA=E6=9E=84=E9=87=8D=E5=A4=8D=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/FileSplitItemsEOServiceImpl.java | 95 ++++++++++++++++++- 1 file changed, 90 insertions(+), 5 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java index b7aaeb73..54cd5c7d 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java @@ -2,6 +2,7 @@ package com.jero.modules.split.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.ZipUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -2679,7 +2680,9 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl sysDictTreeList = sysDictService.list(new LambdaQueryWrapper().eq(SysDict::getAttributeType, "2")); // 组织结构 - List sysDepartList = sysDepartService.list(); + List departList = sysDepartService.list(); + Map> departMap = departList.stream().collect(Collectors.groupingBy(SysDepart::getDepartName)); + Map departPartMap = SysDepart.buildPaths(departList); // 适用零部件 List partNameList = new ArrayList<>(); //存放数据验证结果信息 @@ -3175,8 +3178,27 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl first = sysDepartList.stream().filter(o -> v.equals(o.getDepartName())).findFirst(); - if (!first.isPresent()) { + String[] splitValue = v.split("/"); + List sysDeparts = departMap.get(splitValue[splitValue.length - 1]); + if (sysDeparts != null) { + if (sysDeparts.size() == 1) { + continue; + } + if (sysDeparts.size() > 1) { + // 叶子节点名称重复,需要寻找全路径 + String nodeId = departPartMap.get(value); + if (StrUtil.isBlank(nodeId)) { + if(MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())) { + errorMsg += fieldName + "中组织机构" + v + "不存在;"; + } else { + errorMsg += fieldName + " " + v + "Not exist;"; + } + countError++; + valueList = Collections.emptyList(); + break; + } + } + } else { if(MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())) { errorMsg += fieldName + "中组织机构" + v + "不存在;"; } else { @@ -3185,9 +3207,23 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl first = sysDepartList.stream().filter(o -> v.equals(o.getDepartName())).findFirst(); +// if (!first.isPresent()) { +// if(MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())) { +// errorMsg += fieldName + "中组织机构" + v + "不存在;"; +// } else { +// errorMsg += fieldName + " " + v + "Not exist;"; +// } +// countError++; +// valueList = Collections.emptyList(); +// break; +// }else { +// valueList.add(first.get().getId()); +// } } } }else if (FieldTypeEnum.TREE_BOX.getValue().equals(fieldShowType)) { @@ -3346,6 +3382,55 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl> sysDepartMap, Map sysDepartPathMap) { + String[] cellValues = cellValue.split(","); + for (String value : cellValues) { + String[] splitValue = value.split("/"); + List sysDeparts = sysDepartMap.get(splitValue[splitValue.length - 1]); + if (sysDeparts != null) { + if (sysDeparts.size() == 1) continue; + if (sysDeparts.size() > 1) { + // 叶子节点名称重复,需要寻找全路径 + String nodeId = sysDepartPathMap.get(value); + if (StrUtil.isBlank(nodeId)) { + return false; + } + } + } else { + return false; + } + } + return true; + } + + + // 多选部门转换 + public String convertMultiOrgId(String cellValue, Map> sysDepartMap, Map sysDepartPathMap) { + if (StrUtil.isBlank(cellValue)) { + return null; + } + StringBuilder result = new StringBuilder(); + String[] cellValues = cellValue.split(","); + for (String value : cellValues) { + String[] splitValue = value.split("/"); + List sysDeparts = sysDepartMap.get(splitValue[splitValue.length - 1]); + if (sysDeparts != null) { + if (sysDeparts.size() == 1) { + result.append(sysDeparts.get(0).getId()).append(","); + } + if (sysDeparts.size() > 1) { + // 叶子节点名称重复,需要寻找全路径 + String nodeId = sysDepartPathMap.get(value); + result.append(nodeId).append(","); + } + } + } + // 去除掉最后的逗号 + return result.substring(0, result.length() - 1); + } + private List partNameGetLevelPath(List partNames) { List list = new ArrayList<>(); // 一级节点 From ef4b91be8cb5d182363a3e0008e992346bc4cb3e Mon Sep 17 00:00:00 2001 From: lijiarao Date: Thu, 26 Sep 2024 13:35:57 +0800 Subject: [PATCH 12/36] =?UTF-8?q?update=20=E5=AF=BC=E5=85=A5=E6=8B=86?= =?UTF-8?q?=E5=88=86=E7=BB=93=E6=9E=9C=20=E5=88=A4=E6=96=AD=E8=A1=A8?= =?UTF-8?q?=E6=A0=BC=E5=AF=BC=E5=85=A5=E6=A0=87=E5=87=86=E4=B8=8E=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E6=A0=87=E5=87=86=E4=B8=8D=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/FileSplitItemsEOServiceImpl.java | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java index 54cd5c7d..2ca19638 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java @@ -2017,18 +2017,16 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl Date: Thu, 26 Sep 2024 13:40:43 +0800 Subject: [PATCH 13/36] =?UTF-8?q?Revert=20"update=20=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E6=8B=86=E5=88=86=E7=BB=93=E6=9E=9C=20=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E8=A1=A8=E6=A0=BC=E5=AF=BC=E5=85=A5=E6=A0=87=E5=87=86=E4=B8=8E?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E6=A0=87=E5=87=86=E4=B8=8D=E4=B8=80=E8=87=B4?= =?UTF-8?q?"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit ef4b91be8cb5d182363a3e0008e992346bc4cb3e. --- .../impl/FileSplitItemsEOServiceImpl.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java index 2ca19638..54cd5c7d 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java @@ -2017,16 +2017,18 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl Date: Thu, 26 Sep 2024 14:11:59 +0800 Subject: [PATCH 14/36] =?UTF-8?q?update=20=E5=AF=BC=E5=85=A5=E6=8B=86?= =?UTF-8?q?=E5=88=86=E7=BB=93=E6=9E=9C=20=E6=8E=92=E5=BA=8F=E6=97=B6?= =?UTF-8?q?=E5=8E=BB=E9=99=A4=E4=B8=A4=E8=BE=B9=E7=A9=BA=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/split/service/impl/FileSplitItemsEOServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java index 54cd5c7d..97e93aa1 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java @@ -3641,7 +3641,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl itemEO : addItemsEOList) { - String itemNum = itemEO.get("item_num").toString(); + String itemNum = itemEO.get("item_num").toString().trim(); String itemTitle = itemEO.get("item_title").toString(); // if(itemNum.matches(regex) || itemNum.contains("附录")) { // TODO 解除条款号格式限制 SarFileSplitMenuTreeNode treeNode = new SarFileSplitMenuTreeNode(); From 893aa70c9efcfe51ba89736d8a4fc4607ac91d10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Thu, 26 Sep 2024 16:40:39 +0800 Subject: [PATCH 15/36] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../docking/hiwork/service/impl/SendFeiShuServiceImpl.java | 2 +- .../src/main/resources/application-dev-chery.yml | 2 +- laws-single-startup/src/main/resources/application-prod.yml | 4 ++-- laws-single-startup/src/main/resources/application-test.yml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/SendFeiShuServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/SendFeiShuServiceImpl.java index 0ea141bf..8cb078c2 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/SendFeiShuServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/SendFeiShuServiceImpl.java @@ -175,7 +175,7 @@ public class SendFeiShuServiceImpl implements ISendFeiShuService { .replace("{processInstanceId}",processApprovalRecord.getProcessInstanceId()) .replace("{nodeId}",processApprovalRecord.getNodeId()); // 跳转链接 - String businessLink = Objects.requireNonNull(ProcessTypeEnum.getFontReturnUrlPc(processAll.getPrcType())) + url; + String businessLink = url.replace("{url}", Objects.requireNonNull(ProcessTypeEnum.getFontReturnUrlPc(processAll.getPrcType()))); instanceDto.setPromoterPcLink(businessLink); // APP跳转链接 String appUrl = reviewPcLink diff --git a/laws-single-startup/src/main/resources/application-dev-chery.yml b/laws-single-startup/src/main/resources/application-dev-chery.yml index 991e223e..650f428e 100644 --- a/laws-single-startup/src/main/resources/application-dev-chery.yml +++ b/laws-single-startup/src/main/resources/application-dev-chery.yml @@ -609,7 +609,7 @@ feishu: # 飞书单点登录地址 sign_login_in: ${feishu.base_url}/authen/v1/index?redirect_uri={REDIRECT_URI}&app_id=${feishu.app_id}&state=feishu # 飞书PC端待办地址 - promoter_pc_link: ${feishu.redirect_prefix}?projectId={projectId}&taskName={taskName}&taskId={taskId}&processInstanceId={processInstanceId}&nodeId={nodeId} + promoter_pc_link: ${feishu.redirect_prefix}{url}?projectId={projectId}&taskName={taskName}&taskId={taskId}&processInstanceId={processInstanceId}&nodeId={nodeId} # 飞书PC端发起流程地址 review_pc_link: ${feishu.redirect_prefix}{url}?projectId={projectId}&taskName={taskName}&taskId={taskId}&processInstanceId={processInstanceId}&nodeId={nodeId} diff --git a/laws-single-startup/src/main/resources/application-prod.yml b/laws-single-startup/src/main/resources/application-prod.yml index d0cbf784..668b4063 100644 --- a/laws-single-startup/src/main/resources/application-prod.yml +++ b/laws-single-startup/src/main/resources/application-prod.yml @@ -408,8 +408,8 @@ hiwork: # 前端调用地址 url: https://iam.mychery.com:6443/idp/oauth2/authorize?state=123&client_id=CGRSM&redirect_uri= # 域名 - fontUrl: https://cgrsm.mychery.com:3344/{url}?projectId={projectId}&taskName={taskName}&taskId={taskId}&processInstanceId={processInstanceId}&nodeId={nodeId} - fontAppUrl: https://cgrsm.mychery.com:3344//mobile{url}?projectId={projectId}&taskName={taskName}&taskId={taskId}&processInstanceId={processInstanceId}&nodeId={nodeId} + fontUrl: https://cgrsm.mychery.com:3344{url}?projectId={projectId}&taskName={taskName}&taskId={taskId}&processInstanceId={processInstanceId}&nodeId={nodeId} + fontAppUrl: https://cgrsm.mychery.com:3344/mobile{url}?projectId={projectId}&taskName={taskName}&taskId={taskId}&processInstanceId={processInstanceId}&nodeId={nodeId} #hiwork单点登录 appkey: dingshfclphtivrd0r7k appsecret: dqhom_17n6BC8pmLeaf5wNp4aV_4XSt_aYn-dNBo8z__-79NjVvZhDJ_M2REdxRc diff --git a/laws-single-startup/src/main/resources/application-test.yml b/laws-single-startup/src/main/resources/application-test.yml index 379b0049..b26f1285 100644 --- a/laws-single-startup/src/main/resources/application-test.yml +++ b/laws-single-startup/src/main/resources/application-test.yml @@ -607,7 +607,7 @@ feishu: # 飞书单点登录地址 sign_login_in: ${feishu.base_url}/authen/v1/index?redirect_uri={REDIRECT_URI}&app_id=${feishu.app_id}&state=feishu # 飞书PC端待办地址 - promoter_pc_link: ${feishu.redirect_prefix}?projectId={projectId}&taskName={taskName}&taskId={taskId}&processInstanceId={processInstanceId}&nodeId={nodeId} + promoter_pc_link: ${feishu.redirect_prefix}{url}?projectId={projectId}&taskName={taskName}&taskId={taskId}&processInstanceId={processInstanceId}&nodeId={nodeId} # 飞书PC端发起流程地址 review_pc_link: ${feishu.redirect_prefix}{url}?projectId={projectId}&taskName={taskName}&taskId={taskId}&processInstanceId={processInstanceId}&nodeId={nodeId} From 8f01c08799bb86e8cbd53fd9ba18343efd928517 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Thu, 26 Sep 2024 17:32:42 +0800 Subject: [PATCH 16/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E6=8B=86=E5=88=86=E7=BB=93=E6=9E=9Cbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../split/service/impl/FileSplitItemsEOServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java index 97e93aa1..c5e53ac9 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java @@ -3186,7 +3186,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl 1) { // 叶子节点名称重复,需要寻找全路径 - String nodeId = departPartMap.get(value); + String nodeId = departPartMap.get(v); if (StrUtil.isBlank(nodeId)) { if(MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())) { errorMsg += fieldName + "中组织机构" + v + "不存在;"; @@ -3208,7 +3208,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl first = sysDepartList.stream().filter(o -> v.equals(o.getDepartName())).findFirst(); From 9423de8380a09f39ac19e2eb3a3fa07adb25ea7c Mon Sep 17 00:00:00 2001 From: lijiarao Date: Thu, 26 Sep 2024 18:09:48 +0800 Subject: [PATCH 17/36] =?UTF-8?q?update=20=E6=A0=87=E5=87=86=E6=8B=86?= =?UTF-8?q?=E5=88=86=E6=9D=A1=E6=AC=BE=E7=9B=AE=E5=BD=95-=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E5=B1=82=E7=BA=A7=20=E5=85=88=E6=8A=8A=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E7=9A=84=E4=BD=8D=E7=BD=AE=E7=A9=BA=E5=87=BA=E6=9D=A5?= =?UTF-8?q?=EF=BC=8C=E5=9C=A8=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SarFileSplitMenuEOServiceImpl.java | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java index 3a5610b5..f30be9fa 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java @@ -394,8 +394,18 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl allList = new ArrayList<>(); getChildren(allList, sarFileSplitMenuEO1List); + //获得要移动目录的大于排序的同级目录 + List sarFileSplitMenuEOS = baseMapper.queryByGTDisplaySeq(parentMenu.getInfoId(),displaySeq); + for (int i = 0; i < sarFileSplitMenuEOS.size(); i++) { + SarFileSplitMenuEO sarFileSplitMenuEO = sarFileSplitMenuEOS.get(i); + sarFileSplitMenuEO.setDisplaySeq(displaySeq+allList.size()+i+1); + baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO); + } + //for (SarFileSplitMenuEO splitMenuEO : allList) { // splitMenuEO.setParentId(parentId); //} @@ -407,20 +417,7 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl lastMenu = getLastMenu(parentParentId, parentDisplaySeq, new ArrayList<>()); - List allList1 = new ArrayList<>(); - getChildren(allList1, lastMenu); - for (int i = 0; i < allList1.size(); i++) { - SarFileSplitMenuEO sarFileSplitMenuEO = allList1.get(i); - Long displaySeq1 = sarFileSplitMenuEO.getDisplaySeq(); - sarFileSplitMenuEO.setDisplaySeq(displaySeq1+allList.size()+i+1); - baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO); - } - } + //this.updateBatchById(updateList); // 要移动的节点所有子集(包括本身) From 1b8ce155f25d65c6181fa70d33e22b756f263845 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Thu, 26 Sep 2024 19:25:54 +0800 Subject: [PATCH 18/36] =?UTF-8?q?=E6=B7=BB=E5=8A=A0oa=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E8=A1=A5=E5=81=BF=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/PushWorkflowIntegrationAPI.java | 1 + .../docking/hiwork/job/SyncOaSendDataJob.java | 8 +- .../job/SyncOaSendDataMakeUpForJob.java | 61 +++++++ .../impl/LawsUnifiedTodoLogServiceImpl.java | 23 ++- .../service/impl/UnifiedTodoServiceImpl.java | 151 +++++++++++------- 5 files changed, 168 insertions(+), 76 deletions(-) create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/job/SyncOaSendDataMakeUpForJob.java diff --git a/laws-base/laws-base-core/src/main/java/com/jero/common/api/PushWorkflowIntegrationAPI.java b/laws-base/laws-base-core/src/main/java/com/jero/common/api/PushWorkflowIntegrationAPI.java index c6f40b89..51d21fb1 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/common/api/PushWorkflowIntegrationAPI.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/common/api/PushWorkflowIntegrationAPI.java @@ -20,6 +20,7 @@ public interface PushWorkflowIntegrationAPI { * @return*/ void sendTodoTask(List unifiedTodoVOList); + void sendTodoTaskMakeUpFor(List unifiedTodoVOList,String sendId); /** * @Author: diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/job/SyncOaSendDataJob.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/job/SyncOaSendDataJob.java index a31317a7..8e50951d 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/job/SyncOaSendDataJob.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/job/SyncOaSendDataJob.java @@ -50,16 +50,10 @@ public class SyncOaSendDataJob implements Job { List unifiedTodoVOList = JSON.parseObject(lawsUnifiedTodoLog.getJsonStr(), new TypeReference>() {}); try { - pushWorkflowIntegrationAPI.sendTodoTask(unifiedTodoVOList); + pushWorkflowIntegrationAPI.sendTodoTaskMakeUpFor(unifiedTodoVOList, lawsUnifiedTodoLog.getId()); }catch (Exception e){ log.error("OA推送待办异常" + e.getMessage()); } - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.eq(LawsUnifiedTodoLog::getId,lawsUnifiedTodoLog.getId()); - updateWrapper.set(LawsUnifiedTodoLog::getState,1); - updateWrapper.set(LawsUnifiedTodoLog::getCreateBy,"admin"); - updateWrapper.set(LawsUnifiedTodoLog::getUpdateTime,new Date()); - lawsUnifiedTodoLogService.update(updateWrapper); }catch (Exception e){ log.error("OA推送待办定时推送异常" + e.getMessage()); } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/job/SyncOaSendDataMakeUpForJob.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/job/SyncOaSendDataMakeUpForJob.java new file mode 100644 index 00000000..c4d3ee95 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/job/SyncOaSendDataMakeUpForJob.java @@ -0,0 +1,61 @@ +package com.jero.modules.docking.hiwork.job; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.jero.common.api.PushWorkflowIntegrationAPI; +import com.jero.common.api.dto.message.UnifiedTodoVO; +import com.jero.modules.docking.hiwork.entity.LawsUnifiedTodoLog; +import com.jero.modules.docking.hiwork.service.LawsUnifiedTodoLogService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 每天全量推送失败的待办 + */ +@Slf4j +public class SyncOaSendDataMakeUpForJob implements Job { + + @Resource + private LawsUnifiedTodoLogService lawsUnifiedTodoLogService; + @Resource + private PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI; + + @Override + public void execute(JobExecutionContext context) throws JobExecutionException { + QueryWrapper queryLawsUnifiedTodoLog = new QueryWrapper<>(); + queryLawsUnifiedTodoLog.eq("state","2"); + queryLawsUnifiedTodoLog.eq("message_type","1"); + queryLawsUnifiedTodoLog.and(o->o.eq("TIMESTAMPDIFF(MINUTE, create_time, NOW())",3).or() + .eq("TIMESTAMPDIFF(MINUTE, create_time, NOW())",5).or() + .eq("TIMESTAMPDIFF(MINUTE, create_time, NOW())", 10)); + List listLawsUnifiedTodoLog = lawsUnifiedTodoLogService.list(queryLawsUnifiedTodoLog); + if(CollectionUtils.isEmpty(listLawsUnifiedTodoLog)){ + return; + } + for (LawsUnifiedTodoLog lawsUnifiedTodoLog : listLawsUnifiedTodoLog) { + if(StringUtils.isBlank(lawsUnifiedTodoLog.getJsonStr())){ + continue; + } + log.info("发送id" + lawsUnifiedTodoLog.getId()); + try { + List unifiedTodoVOList = JSON.parseObject(lawsUnifiedTodoLog.getJsonStr(), + new TypeReference>() {}); + try { + pushWorkflowIntegrationAPI.sendTodoTaskMakeUpFor(unifiedTodoVOList, lawsUnifiedTodoLog.getId()); + }catch (Exception e){ + log.error("OA推送待办异常" + e.getMessage()); + } + }catch (Exception e){ + log.error("OA推送待办定时推送异常" + e.getMessage()); + } + } + } +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/LawsUnifiedTodoLogServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/LawsUnifiedTodoLogServiceImpl.java index 8119b2a6..f2bb4308 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/LawsUnifiedTodoLogServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/LawsUnifiedTodoLogServiceImpl.java @@ -84,21 +84,28 @@ public class LawsUnifiedTodoLogServiceImpl extends ServiceImpl unifiedTodoVOList = JSON.parseObject(jsonStr, new TypeReference>() {}); - pushWorkflowIntegrationAPI.sendTodoTask(unifiedTodoVOList); + pushWorkflowIntegrationAPI.sendTodoTaskMakeUpFor(unifiedTodoVOList, lawsUnifiedTodoLogObj.getId()); }else if (messageType == 2) { // 重发飞书-待办 InstanceDto instanceDto = JSON.parseObject(jsonStr, InstanceDto.class); feiShuDockingService.synchronizeApprovalInstance(instanceDto); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + LambdaUpdateWrapper queryLawsUnifiedTodoLog = new LambdaUpdateWrapper<>(); + queryLawsUnifiedTodoLog.eq(LawsUnifiedTodoLog::getId,lawsUnifiedTodoLog.getId()); + queryLawsUnifiedTodoLog.set(LawsUnifiedTodoLog::getState,1); + queryLawsUnifiedTodoLog.set(LawsUnifiedTodoLog::getCreateBy,sysUser.getUsername()); + queryLawsUnifiedTodoLog.set(LawsUnifiedTodoLog::getUpdateTime,new Date()); + update(queryLawsUnifiedTodoLog); }else { // 重发飞书-消息 BotMessageDto botMessageDto = JSON.parseObject(jsonStr, BotMessageDto.class); feiShuDockingService.sendHrefMessageByBot(botMessageDto); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + LambdaUpdateWrapper queryLawsUnifiedTodoLog = new LambdaUpdateWrapper<>(); + queryLawsUnifiedTodoLog.eq(LawsUnifiedTodoLog::getId,lawsUnifiedTodoLog.getId()); + queryLawsUnifiedTodoLog.set(LawsUnifiedTodoLog::getState,1); + queryLawsUnifiedTodoLog.set(LawsUnifiedTodoLog::getCreateBy,sysUser.getUsername()); + queryLawsUnifiedTodoLog.set(LawsUnifiedTodoLog::getUpdateTime,new Date()); + update(queryLawsUnifiedTodoLog); } - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - LambdaUpdateWrapper queryLawsUnifiedTodoLog = new LambdaUpdateWrapper<>(); - queryLawsUnifiedTodoLog.eq(LawsUnifiedTodoLog::getId,lawsUnifiedTodoLog.getId()); - queryLawsUnifiedTodoLog.set(LawsUnifiedTodoLog::getState,1); - queryLawsUnifiedTodoLog.set(LawsUnifiedTodoLog::getCreateBy,sysUser.getUsername()); - queryLawsUnifiedTodoLog.set(LawsUnifiedTodoLog::getUpdateTime,new Date()); - update(queryLawsUnifiedTodoLog); return Result.OK("操作成功"); } } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/UnifiedTodoServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/UnifiedTodoServiceImpl.java index 2ae464b3..80c4d244 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/UnifiedTodoServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/UnifiedTodoServiceImpl.java @@ -116,7 +116,48 @@ public class UnifiedTodoServiceImpl implements PushWorkflowIntegrationAPI { log.info("统一待办推送入参" + jsonString); ForkJoinPool pool = new ForkJoinPool(); CompletableFuture.runAsync(() -> { - push(ip + todoUrl,jsonString,reqJsonString, unifiedTodoList.get(0).getRequestname()); + push(ip + todoUrl,jsonString,reqJsonString, unifiedTodoList.get(0).getRequestname(), null); + },pool); + }catch (Exception e){ + log.error("统一待办推送异常" + e); + } + long l1 = System.currentTimeMillis(); + System.out.println("===========================OA" + (l1-l)); + } + + + /** + * @Author: liao + * @Date: 2023/10/13 15:12 + * @Description: 统一待办集成 + * + * @return*/ + @Override + public void sendTodoTaskMakeUpFor(List unifiedTodoVOList,String sendId) { + if(!isWorkflow){ + return; + } + boolean successFlag = true; + if (CollectionUtils.isEmpty(unifiedTodoVOList)) { + return; +// throw new JeroBootException(ResultCommon.EMPTY_COMMON, "unifiedTodoVOList"); + } + long l = System.currentTimeMillis(); + String newDate = DateUtil.formatDateTime(new Date()); + for (UnifiedTodoVO unifiedTodoVO : unifiedTodoVOList) { + String date = unifiedTodoVO.getDate(); + if (StringUtils.isBlank(date)){ + unifiedTodoVO.setDate(newDate); + } + } + try { + List unifiedTodoList = getHiworkTodos(unifiedTodoVOList); + String reqJsonString = JSONObject.toJSONString(unifiedTodoVOList); + String jsonString = JSONObject.toJSONString(unifiedTodoList); + log.info("统一待办推送入参" + jsonString); + ForkJoinPool pool = new ForkJoinPool(); + CompletableFuture.runAsync(() -> { + push(ip + todoUrl,jsonString,reqJsonString, unifiedTodoList.get(0).getRequestname(),sendId); },pool); }catch (Exception e){ log.error("统一待办推送异常" + e); @@ -134,73 +175,61 @@ public class UnifiedTodoServiceImpl implements PushWorkflowIntegrationAPI { System.out.println("===========================feishu" + (l1-l)); } - private void push(String url, String jsonString,String reqJsonString, String title) { - // 设置最大重试次数 - int maxRetries = 3; - // 当前重试次数 - int retries = 0; + private void push(String url, String jsonString,String reqJsonString, String title,String sendId) { LawsUnifiedTodoLog lawsUnifiedTodoLog = new LawsUnifiedTodoLog(); - while (retries < maxRetries) { - log.info("==========OA调用"); - // 远程调用 - try { - HttpResponse execute = HttpRequest.post(url) - .header(Header.CONTENT_TYPE, "application/json;charset=UTF-8") - .body(jsonString)//表单内容 - .timeout(3000)//超时,毫秒 - .execute(); - log.info("==========OA调用成功"); - if (execute.isOk()) { - String body = execute.body(); - List listJson = JSONArray.parseArray(body,JSONObject.class); - if(!CollectionUtils.isEmpty(listJson)) { - String operResult = String.valueOf(listJson.get(0).get("operResult")); - lawsUnifiedTodoLog.setResponseBody(body); - if (Objects.equals(operResult, "1")) { - log.info("统一待办推送成功"); - lawsUnifiedTodoLog.setState(1); - break; - } - } - log.info("统一待办推送失败{}",body); - lawsUnifiedTodoLog.setState(2); - retries++; - }else { - String body = execute.body(); - lawsUnifiedTodoLog.setResponseBody(body); - List listJson = JSONArray.parseArray(body,JSONObject.class); - if(!CollectionUtils.isEmpty(listJson)){ - String operResult = String.valueOf(listJson.get(0).get("operResult")); - if (Objects.equals(operResult, "1")) { - log.info("统一待办推送成功"); - lawsUnifiedTodoLog.setState(1); - break; - } - } - log.info("统一待办推送失败{}",body); - lawsUnifiedTodoLog.setState(2); - retries++; - } - }catch (Exception e){ - log.error("统一待办推送失败{}" + e.getMessage()); - lawsUnifiedTodoLog.setState(2); - lawsUnifiedTodoLog.setResponseBody(e.getMessage()); - retries++; - } + log.info("==========OA调用"); + // 远程调用 + try { + sendData(url, jsonString, lawsUnifiedTodoLog); + }catch (Exception e){ + log.error("统一待办推送失败{}" + e.getMessage()); + lawsUnifiedTodoLog.setState(2); + lawsUnifiedTodoLog.setResponseBody(e.getMessage()); } + lawsUnifiedTodoLog.setId(sendId); lawsUnifiedTodoLog.setUrl(url); lawsUnifiedTodoLog.setJsonStr(reqJsonString); lawsUnifiedTodoLog.setMessageType(1); lawsUnifiedTodoLog.setTitle(title); - if(Objects.isNull(lawsUnifiedTodoLog.getState())){ - if (retries == maxRetries){ - lawsUnifiedTodoLog.setState(2); - }else { - lawsUnifiedTodoLog.setState(1); - } - } + unifiedTodoLogService.saveOrUpdate(lawsUnifiedTodoLog); + } - unifiedTodoLogService.add(lawsUnifiedTodoLog); + private void sendData(String url, String jsonString, LawsUnifiedTodoLog lawsUnifiedTodoLog) { + HttpResponse execute = HttpRequest.post(url) + .header(Header.CONTENT_TYPE, "application/json;charset=UTF-8") + .body(jsonString)//表单内容 + .timeout(3000)//超时,毫秒 + .execute(); + log.info("==========OA调用成功"); + if (execute.isOk()) { + String body = execute.body(); + List listJson = JSONArray.parseArray(body,JSONObject.class); + if(!CollectionUtils.isEmpty(listJson)) { + String operResult = String.valueOf(listJson.get(0).get("operResult")); + lawsUnifiedTodoLog.setResponseBody(body); + if (Objects.equals(operResult, "1")) { + log.info("统一待办推送成功"); + lawsUnifiedTodoLog.setState(1); + return; + } + } + log.info("统一待办推送失败{}",body); + lawsUnifiedTodoLog.setState(2); + }else { + String body = execute.body(); + lawsUnifiedTodoLog.setResponseBody(body); + List listJson = JSONArray.parseArray(body,JSONObject.class); + if(!CollectionUtils.isEmpty(listJson)){ + String operResult = String.valueOf(listJson.get(0).get("operResult")); + if (Objects.equals(operResult, "1")) { + log.info("统一待办推送成功"); + lawsUnifiedTodoLog.setState(1); + return; + } + } + log.info("统一待办推送失败{}",body); + lawsUnifiedTodoLog.setState(2); + } } @NotNull From aac4e6b035345977c4a8d90677afaa8b44669024 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Fri, 27 Sep 2024 09:22:53 +0800 Subject: [PATCH 19/36] =?UTF-8?q?OA=E6=8E=A8=E9=80=81=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E5=BE=85=E5=8A=9E=E4=BB=BB=E5=8A=A1=E6=B7=BB=E5=8A=A0=E6=8E=92?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jero/modules/docking/hiwork/job/SyncOaSendDataJob.java | 1 + .../modules/docking/hiwork/job/SyncOaSendDataMakeUpForJob.java | 1 + 2 files changed, 2 insertions(+) diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/job/SyncOaSendDataJob.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/job/SyncOaSendDataJob.java index 8e50951d..8c53873c 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/job/SyncOaSendDataJob.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/job/SyncOaSendDataJob.java @@ -38,6 +38,7 @@ public class SyncOaSendDataJob implements Job { LambdaQueryWrapper queryLawsUnifiedTodoLog = new LambdaQueryWrapper<>(); queryLawsUnifiedTodoLog.eq(LawsUnifiedTodoLog::getState,"2"); queryLawsUnifiedTodoLog.eq(LawsUnifiedTodoLog::getMessageType,"1"); + queryLawsUnifiedTodoLog.orderByAsc(LawsUnifiedTodoLog::getId); List listLawsUnifiedTodoLog = lawsUnifiedTodoLogService.list(queryLawsUnifiedTodoLog); if(CollectionUtils.isEmpty(listLawsUnifiedTodoLog)){ return; diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/job/SyncOaSendDataMakeUpForJob.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/job/SyncOaSendDataMakeUpForJob.java index c4d3ee95..53d6479c 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/job/SyncOaSendDataMakeUpForJob.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/job/SyncOaSendDataMakeUpForJob.java @@ -36,6 +36,7 @@ public class SyncOaSendDataMakeUpForJob implements Job { queryLawsUnifiedTodoLog.and(o->o.eq("TIMESTAMPDIFF(MINUTE, create_time, NOW())",3).or() .eq("TIMESTAMPDIFF(MINUTE, create_time, NOW())",5).or() .eq("TIMESTAMPDIFF(MINUTE, create_time, NOW())", 10)); + queryLawsUnifiedTodoLog.orderByAsc("id"); List listLawsUnifiedTodoLog = lawsUnifiedTodoLogService.list(queryLawsUnifiedTodoLog); if(CollectionUtils.isEmpty(listLawsUnifiedTodoLog)){ return; From de8b1a1d904386061d3561542ed1b5fc60607aab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Fri, 27 Sep 2024 09:33:21 +0800 Subject: [PATCH 20/36] =?UTF-8?q?=E6=9B=B4=E6=96=B0sql=E8=AF=AD=E5=8F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/update/测试阶段.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/db/update/测试阶段.sql b/db/update/测试阶段.sql index 43bc7777..6d12cc04 100644 --- a/db/update/测试阶段.sql +++ b/db/update/测试阶段.sql @@ -543,3 +543,4 @@ ALTER TABLE `laws_unified_todo_log` MODIFY COLUMN `response_body` longtext NULL COMMENT '返回值'; CREATE INDEX lutl_idx_state ON laws_unified_todo_log(`state`); CREATE INDEX lutl_idx_message_type ON laws_unified_todo_log(`message_type`); +CREATE INDEX lutl_idx_create_time ON laws_unified_todo_log(`create_time`); From 8128b6f6d552d289fbe1eef4910474c407eba3eb Mon Sep 17 00:00:00 2001 From: caihaohan Date: Wed, 25 Sep 2024 18:03:21 +0800 Subject: [PATCH 21/36] =?UTF-8?q?feat:=20=E5=A4=96=E6=A0=87=E5=A4=9A?= =?UTF-8?q?=E9=80=89=E8=B4=9F=E8=B4=A3=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/update/测试阶段.sql | 5 +++ .../service/impl/LawsCommonServiceImpl.java | 9 ++--- .../modules/laws/common/util/ImportUtil.java | 33 +++++++++++++++++++ .../job/ReplaceImplementationDateMsgJob.java | 16 ++++----- .../modules/tag/enums/FieldShowTypeEnum.java | 13 +++----- .../modules/tag/enums/LawsFieldTypeEnum.java | 4 +++ 6 files changed, 55 insertions(+), 25 deletions(-) diff --git a/db/update/测试阶段.sql b/db/update/测试阶段.sql index 6d12cc04..c47b9b98 100644 --- a/db/update/测试阶段.sql +++ b/db/update/测试阶段.sql @@ -544,3 +544,8 @@ ALTER TABLE `laws_unified_todo_log` CREATE INDEX lutl_idx_state ON laws_unified_todo_log(`state`); CREATE INDEX lutl_idx_message_type ON laws_unified_todo_log(`message_type`); CREATE INDEX lutl_idx_create_time ON laws_unified_todo_log(`create_time`); + +-- 2024-09-27 责任人改为多选弹窗 +INSERT INTO `sys_dict_item` (`id`, `dict_id`, `parent_id`, `item_text`, `en_name`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `is_tag_dict`, `is_read_only`, `attribute_type`, `del_flag`, `stat_node`, `en_base`) VALUES ('1694639979913162755', '1493098515761917954', '0', '多选用户弹框', 'Multiple selection a user', '19', '', 1, 1, 'admin', '2023-08-24 17:17:11', 'admin', '2023-08-24 17:41:25', NULL, 0, NULL, '0', NULL, NULL); +update laws_tag set field_show_type = '19' where db_field_txt = '责任人' + 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 b1956f4d..899a9ba5 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 @@ -682,7 +682,8 @@ public class LawsCommonServiceImpl implements ILawsCommonService { // 如果是多日期格式,做去重处理 resultMap.put(key, StringUtils.join(valueList.stream() .distinct().collect(Collectors.toList()), ",")); - } else if (LawsFieldTypeEnum.USER_SINGLE.getValue().equals(lawsTag.getFieldShowType())) { + } else if (LawsFieldTypeEnum.USER_SINGLE.getValue().equals(lawsTag.getFieldShowType()) || + LawsFieldTypeEnum.USER_MULTI.getValue().equals(lawsTag.getFieldShowType())) { // 如果是用户弹框,做翻译(详情页展示,如果列表展示则重写一下) LambdaQueryWrapper sysUserLambdaQueryWrapper = new LambdaQueryWrapper<>(); sysUserLambdaQueryWrapper.in(SysUser::getId, valueList); @@ -1940,14 +1941,8 @@ public class LawsCommonServiceImpl implements ILawsCommonService { if (StringUtils.isBlank(value)) { value = null; } - //else { - // value = FieldCommon.STR_TO_DATE_PREFIX + value + FieldCommon.STR_TO_DATE_SUFFIX; - //} - } else { // 如果是多日期格式做处理 value = processDateManyTypeValue(value, fieldShowType); - // 字符串做处理 - //value = "'" + value + "'"; } return value; } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/util/ImportUtil.java b/laws-modules/src/main/java/com/jero/modules/laws/common/util/ImportUtil.java index 3a5e6ae2..791c414d 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/util/ImportUtil.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/util/ImportUtil.java @@ -298,6 +298,16 @@ public class ImportUtil { cellValue = this.convertSingleUserId(cellValue); } } + // 多选人员 + if (FieldShowTypeEnum.MULTI_USER_DIALOG.getValue().equals(tag.getFieldShowType())) { + if (!this.multiUserValid(cellValue)) { + log.error("第" + row + "列" + tag.getDbFieldTxt() + "填写错误 "); + errMsg.append("第").append(row).append("列").append(tag.getDbFieldTxt()).append("填写错误 "); + } else { + // 转为id + cellValue = this.convertMultiUserId(cellValue); + } + } // 零部件 if (tag.getDbFieldName().equals("part_name") && StrUtil.isNotBlank(cellValue)) { if (!this.partValid(cellValue)) { @@ -405,6 +415,29 @@ public class ImportUtil { return errMsgList; } + private String convertMultiUserId(String cellValue) { + String[] userList = cellValue.split(","); + StringBuilder userIds = new StringBuilder(); + for (String user : userList) { + String s = this.convertSingleUserId(user); + if (StrUtil.isNotBlank(s)) { + userIds.append(s).append(","); + } + } + return userIds.substring(0, userIds.length() - 1); + } + + private boolean multiUserValid(String cellValue) { + String[] userList = cellValue.split(","); + for (String user : userList) { + boolean b = this.singleUserValid(user); + if (!b) { + return false; + } + } + return true; + } + private String convertReferenceStandard(String cellValue, List fbStandardNoList) { if (StrUtil.isBlank(cellValue)) { return ""; diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/job/ReplaceImplementationDateMsgJob.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/job/ReplaceImplementationDateMsgJob.java index d7eb4c9f..1f402e13 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/job/ReplaceImplementationDateMsgJob.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/job/ReplaceImplementationDateMsgJob.java @@ -12,8 +12,6 @@ import com.jero.modules.laws.standard.entity.LawsReplacedStandard; import com.jero.modules.laws.standard.service.ILawsDomesticStandardService; import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; import com.jero.modules.laws.standard.service.ILawsReplacedStandardService; -import com.jero.modules.laws.standardmasterplan.servicce.ILawsStandardMasterPlanService; -import com.jero.modules.laws.standardmasterplan.servicce.ILawsStandardMasterPlanSublistService; import com.jero.modules.personal.entity.LawsStandardCollection; import com.jero.modules.personal.service.ILawsStandardCollectionService; import lombok.extern.slf4j.Slf4j; @@ -45,16 +43,12 @@ public class ReplaceImplementationDateMsgJob implements Job { @Resource private ILawsStandardCollectionService collectionService; - @Resource - private ILawsStandardMasterPlanService masterPlanService; - - @Resource - private ILawsStandardMasterPlanSublistService masterPlanSublistService; - @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + log.info("【开始执行】 代替标准到实施日期,给被代替标准的责任人,主起草人,收藏标准的人发消息 定时任务"); this.sendGbStandardMsg(); this.sendEsStandardMsg(); + log.info("【执行完毕】 代替标准到实施日期,给被代替标准的责任人,主起草人,收藏标准的人发消息 定时任务"); } private void sendEsStandardMsg() { @@ -225,8 +219,10 @@ public class ReplaceImplementationDateMsgJob implements Job { standard = standard.split("《")[0]; LawsDomesticStandard replaceStandard = standardMap.get(standard); // 被代替标准的主起草人,责任人,收藏标准的人员 - if (StrUtil.isNotBlank(replaceStandard.getResponsibleUser())) { - userIdSet.add(replaceStandard.getResponsibleUser()); + String responsibleUser = replaceStandard.getResponsibleUser(); + if (StrUtil.isNotBlank(responsibleUser)) { + List list = Arrays.asList(responsibleUser.split(",")); + userIdSet.addAll(list); } // 获取收藏标准的所有人员 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); diff --git a/laws-modules/src/main/java/com/jero/modules/tag/enums/FieldShowTypeEnum.java b/laws-modules/src/main/java/com/jero/modules/tag/enums/FieldShowTypeEnum.java index 17ec6262..d0929e8e 100644 --- a/laws-modules/src/main/java/com/jero/modules/tag/enums/FieldShowTypeEnum.java +++ b/laws-modules/src/main/java/com/jero/modules/tag/enums/FieldShowTypeEnum.java @@ -2,6 +2,7 @@ package com.jero.modules.tag.enums; import com.jero.common.exception.JeroBootException; import com.jero.modules.tag.entity.LawsTag; +import lombok.Getter; /** * @author: Mzaxd @@ -33,11 +34,14 @@ public enum FieldShowTypeEnum { TREE_FATHER_CHILD("树形-单线父级子级","17","请填写选项中包含的文本"), // 树形-子级 TREE_CHILD("树形-子级","18","请填写选项中包含的文本"), - + // 多选用户弹框 + MULTI_USER_DIALOG("多选用户弹框","19","文本输入") ; final String name; + @Getter final String value; + @Getter final String description; FieldShowTypeEnum(String name, String value, String description) { @@ -65,11 +69,4 @@ public enum FieldShowTypeEnum { throw new JeroBootException("标签类型不存在"); } - public String getValue() { - return value; - } - - public String getDescription() { - return description; - } } 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 f6a80da3..245a2eaf 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 @@ -24,6 +24,10 @@ public enum LawsFieldTypeEnum { TREE_BOX_SINGLE("树型结构(单选)","15"), TREE_OPTION("树形弹框选择","16"), TREE_OPTION2("树形弹框(带出子集和单线父级)","17"), + // 树形-子级 + TREE_OPTION3("树形-子级","18"), + // 多选用户弹框 + USER_MULTI("多选用户弹框","19") ; String name; From 5dc1f4a43b9c3b3205dafd9ac1ebffb10da64ad0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Fri, 27 Sep 2024 11:09:47 +0800 Subject: [PATCH 22/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8B=86=E5=88=86?= =?UTF-8?q?=E5=AF=BC=E5=85=A5bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../split/service/impl/FileSplitItemsEOServiceImpl.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java index c5e53ac9..8857dcfe 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java @@ -3181,9 +3181,6 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl sysDeparts = departMap.get(splitValue[splitValue.length - 1]); if (sysDeparts != null) { - if (sysDeparts.size() == 1) { - continue; - } if (sysDeparts.size() > 1) { // 叶子节点名称重复,需要寻找全路径 String nodeId = departPartMap.get(v); From 46fda86ec9b94b4cdcc618e576514e5de868eb38 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Fri, 27 Sep 2024 11:38:07 +0800 Subject: [PATCH 23/36] =?UTF-8?q?update=20=E6=A0=87=E5=87=86=E6=8B=86?= =?UTF-8?q?=E5=88=86=E6=9D=A1=E6=AC=BE=E7=9B=AE=E5=BD=95-=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E5=B1=82=20=E7=B2=BE=E7=AE=80=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SarFileSplitMenuEOServiceImpl.java | 55 ++----------------- 1 file changed, 5 insertions(+), 50 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java index f30be9fa..0100df70 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java @@ -381,12 +381,8 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl sourceIdList = Arrays.asList(sourceIds.split(",")); - // 获取要移动到的层级的最后一个 的排序值 - List lastMenuList = getLastMenu(parentMenu.getId(),displaySeq,sourceIdList); - if (CollectionUtil.isNotEmpty(lastMenuList)){ - displaySeq = lastMenuList.stream().map(SarFileSplitMenuEO::getDisplaySeq).min(Comparator.comparing(x -> x)).orElse(null); - } - // 要移动的节点所有子集(包括本身) + + // 更新要移动的节点的父级id List sarFileSplitMenuEO1List = new ArrayList<>(); for (String sourceId : sourceIdList) { // 要移动的节点信息 @@ -395,10 +391,10 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl allList = new ArrayList<>(); + //获得子父级目录 getChildren(allList, sarFileSplitMenuEO1List); - //获得要移动目录的大于排序的同级目录 + //获得大于排序的所有目录,全部向下移动 List sarFileSplitMenuEOS = baseMapper.queryByGTDisplaySeq(parentMenu.getInfoId(),displaySeq); for (int i = 0; i < sarFileSplitMenuEOS.size(); i++) { SarFileSplitMenuEO sarFileSplitMenuEO = sarFileSplitMenuEOS.get(i); @@ -406,53 +402,12 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl sarFileSplitMenuEO1List = new ArrayList<>(); - //sarFileSplitMenuEO1List.add(sarFileSplitMenuEO1); - //List allList = new ArrayList<>(); - //getChildren(allList, sarFileSplitMenuEO1List); - //List idlist = new ArrayList<>(); - // - //// 更新要移动节点及其子集的排序 - //for (int i = 0; i sarFileSplitMenuEOList = - // baseMapper.queryByGTDisplaySeq(sarFileSplitMenuEO1.getInfoId(), lastMenu.getDisplaySeq()); - //sarFileSplitMenuEOList = sarFileSplitMenuEOList.stream() - // .filter(v -> !idlist.contains(v.getId())).collect(Collectors.toList()); - //for (int i = 0; i < sarFileSplitMenuEOList.size(); i++) { - // // 更新排序 - // SarFileSplitMenuEO fileSplitMenuEO = sarFileSplitMenuEOList.get(i); - // fileSplitMenuEO.setDisplaySeq(displaySeq + i + 1); - // baseMapper.updateByPrimaryKeySelective(fileSplitMenuEO); - //} - // - //// 更新要移动节点的parentId - //sarFileSplitMenuEO1.setParentId(parentId); - //baseMapper.updateByPrimaryKeySelective(sarFileSplitMenuEO1); } private void getChildren(List allList, List sarFileSplitMenuEOList) { From 3c7aab8b993b6677e873d9fa62a97039f79922ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Fri, 27 Sep 2024 12:50:34 +0800 Subject: [PATCH 24/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8B=86=E5=88=86?= =?UTF-8?q?=E5=AF=BC=E5=85=A5bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/FileSplitItemsEOServiceImpl.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java index 8857dcfe..cdf99a00 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java @@ -3206,6 +3206,16 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl first = sysDepartList.stream().filter(o -> v.equals(o.getDepartName())).findFirst(); From 54e9a653269707992522842485dd762288a0d07d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Fri, 27 Sep 2024 14:12:52 +0800 Subject: [PATCH 25/36] =?UTF-8?q?=E5=B8=82=E5=9C=BA=E6=B3=95=E8=A7=84?= =?UTF-8?q?=E6=B8=85=E5=8D=95=E6=B7=BB=E5=8A=A0=E7=9B=B4=E6=8E=A5=E5=8F=91?= =?UTF-8?q?=E5=B8=83=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/update/测试阶段.sql | 2 + .../controller/MarketStandardController.java | 4 +- .../impl/LawsMarketStandardServiceImpl.java | 55 +++++++++++++++---- 3 files changed, 47 insertions(+), 14 deletions(-) diff --git a/db/update/测试阶段.sql b/db/update/测试阶段.sql index c47b9b98..fe53547d 100644 --- a/db/update/测试阶段.sql +++ b/db/update/测试阶段.sql @@ -549,3 +549,5 @@ CREATE INDEX lutl_idx_create_time ON laws_unified_todo_log(`create_time`); INSERT INTO `sys_dict_item` (`id`, `dict_id`, `parent_id`, `item_text`, `en_name`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `is_tag_dict`, `is_read_only`, `attribute_type`, `del_flag`, `stat_node`, `en_base`) VALUES ('1694639979913162755', '1493098515761917954', '0', '多选用户弹框', 'Multiple selection a user', '19', '', 1, 1, 'admin', '2023-08-24 17:17:11', 'admin', '2023-08-24 17:41:25', NULL, 0, NULL, '0', NULL, NULL); update laws_tag set field_show_type = '19' where db_field_txt = '责任人' +-- 2024-09-27 市场法规清单添加直接发布按钮 +INSERT INTO `laws_chery_dev`.`sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `menu_en`, `app_id`, `home_icon`) VALUES ('897f89d79231fcb9019231fcb9ca0000', '897f89d79014d7fe019014d7fe2e0000', '直接发布', NULL, NULL, NULL, NULL, 2, 'marketStandard:directRelease', '1', 8.00, 0, NULL, 1, 1, 0, 0, NULL, 'ldq', '2024-09-27 13:38:19', NULL, NULL, 0, 0, '1', 0, 'Direct release', NULL, NULL); diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardController.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardController.java index e10f71d9..aa762203 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardController.java @@ -203,10 +203,10 @@ public class MarketStandardController { @PostMapping(value = "/publish") @RequiresPermissions("marketStandard:publish") public Result publish(@RequestBody Map map) { - if (!map.containsKey("id") || StringUtils.isEmpty(map.get("id"))) { + if (!map.containsKey("ids") || StringUtils.isEmpty(map.get("ids"))) { return Result.error(ResultCommon.SELECT_DATA); } - return marketStandardService.checkPublish(map.get("id")); + return marketStandardService.checkPublish(map.get("ids")); } /** diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java index dba9b054..1a7f393c 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java @@ -32,6 +32,7 @@ import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.servlet.ModelAndView; @@ -489,23 +490,53 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl checkPublish(String id) { - LawsMarketStandard lawsMarketStandardOld = getById(id); - if(Objects.isNull(lawsMarketStandardOld)){ + public synchronized Result checkPublish(String ids) { + List listIds = Arrays.asList(ids.split(",")); + List lawsMarketStandardOldList = listByIds(listIds); + if(listIds.size() != lawsMarketStandardOldList.size()){ return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND); } - // 已发布的清单所有人都可以查看,未发布的数据只能作者和管理管查看、编辑、删除 + StringBuilder msg = new StringBuilder(); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - if(!Arrays.asList(sysUser.getRoleIds().split(",")).contains(lawsAdmin) - && Arrays.stream(sysUser.getRoleIds().split(",")).noneMatch(otherAdmin::contains) - && !Arrays.asList(sysUser.getRoleIds().split(",")).contains(superAdmin) - && !Objects.equals(lawsMarketStandardOld.getAuthor(),sysUser.getId())){ - return Result.error(ResultCommon.NO_PERMISSION); + for (String listId : listIds) { + Optional op = lawsMarketStandardOldList.stream().filter(o->Objects.equals(o.getId(),listId)).findFirst(); + if(!op.isPresent()){ + continue; + } + LawsMarketStandard lawsMarketStandard = op.get(); + // 已发布的清单所有人都可以查看,未发布的数据只能作者和管理管查看、编辑、删除 + + if(!Arrays.asList(sysUser.getRoleIds().split(",")).contains(lawsAdmin) + && Arrays.stream(sysUser.getRoleIds().split(",")).noneMatch(otherAdmin::contains) + && !Arrays.asList(sysUser.getRoleIds().split(",")).contains(superAdmin) + && !Objects.equals(lawsMarketStandard.getAuthor(),sysUser.getId())){ + msg.append(lawsMarketStandard.getManifestNo()) + .append(Objects.equals(LocaleContextHolder.getLocale(),Locale.ENGLISH) + ? "No data operation permission," : "没有权限,"); + continue; + } + if(Objects.equals(lawsMarketStandard.getManifestStatus(),MarketStandardConstants.MANIFEST_STATUS_PUBLISH)){ + msg.append(lawsMarketStandard.getManifestNo()) + .append(Objects.equals(LocaleContextHolder.getLocale(),Locale.ENGLISH) + ? "Data published," : "数据已发布,"); + continue; + } + try { + processMarketStandardReleaseService.checkProcessStatus(listId); + }catch (Exception e){ + msg.append(lawsMarketStandard.getManifestNo()) + .append("当前数据已发布的流程未结束,不可操作,"); + } } - if(Objects.equals(lawsMarketStandardOld.getManifestStatus(),MarketStandardConstants.MANIFEST_STATUS_PUBLISH)){ - return Result.error(ResultCommon.DATA_PUBLISHED); + if(!StringUtils.isEmpty(msg.toString())){ + return Result.error(msg.toString().substring(0,msg.toString().length() - 1)); } - processMarketStandardReleaseService.checkProcessStatus(id); + LambdaUpdateWrapper updateLawsMarketStandard = new LambdaUpdateWrapper<>(); + updateLawsMarketStandard.in(LawsMarketStandard::getId,listIds); + updateLawsMarketStandard.set(LawsMarketStandard::getUpdateBy,sysUser.getUsername()); + updateLawsMarketStandard.set(LawsMarketStandard::getUpdateBy,new Date()); + updateLawsMarketStandard.set(LawsMarketStandard::getManifestStatus,MarketStandardConstants.MANIFEST_STATUS_PUBLISH); + update(updateLawsMarketStandard); return Result.OK(ResultCommon.OK); } From a4d7071da2aad6fd86cae6e0cb7a4f45c1f85b29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Fri, 27 Sep 2024 14:47:53 +0800 Subject: [PATCH 26/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B8=82=E5=9C=BA?= =?UTF-8?q?=E6=B3=95=E8=A7=84=E6=B8=85=E5=8D=95=E7=9B=B4=E6=8E=A5=E5=8F=91?= =?UTF-8?q?=E5=B8=83=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MarketStandardController.java | 21 +++++++++++++++- .../service/ILawsMarketStandardService.java | 7 ++++++ .../impl/LawsMarketStandardServiceImpl.java | 25 +++++++++++++++++-- 3 files changed, 50 insertions(+), 3 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardController.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardController.java index aa762203..8ca8738e 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardController.java @@ -191,6 +191,7 @@ public class MarketStandardController { return Result.OK(ResultCommon.OK); } + /** * 发布 * @@ -203,10 +204,28 @@ public class MarketStandardController { @PostMapping(value = "/publish") @RequiresPermissions("marketStandard:publish") public Result publish(@RequestBody Map map) { + if (!map.containsKey("id") || StringUtils.isEmpty(map.get("id"))) { + return Result.error(ResultCommon.SELECT_DATA); + } + return marketStandardService.checkPublish(map.get("id")); + } + + /** + * 直接发布 + * + * @param map + * @return + */ + @AutoLog(value = "外部标准库-市场法规清单-直接发布") + @ApiOperation(value = "外部标准库-市场法规清单-直接发布", notes = "外部标准库-市场法规清单-直接发布") + @ApiOperationSupport(order = 7) + @PostMapping(value = "/directRelease") + @RequiresPermissions("marketStandard:directRelease") + public Result directRelease(@RequestBody Map map) { if (!map.containsKey("ids") || StringUtils.isEmpty(map.get("ids"))) { return Result.error(ResultCommon.SELECT_DATA); } - return marketStandardService.checkPublish(map.get("ids")); + return marketStandardService.directRelease(map.get("ids")); } /** diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/ILawsMarketStandardService.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/ILawsMarketStandardService.java index 6717eade..29207305 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/ILawsMarketStandardService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/ILawsMarketStandardService.java @@ -94,6 +94,13 @@ public interface ILawsMarketStandardService extends IService */ Result checkPublish(String id); + /** + * 直接发布 + * @param ids + * @return + */ + Result directRelease(String ids); + /** * 发布 * @param id diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java index 1a7f393c..cb84914d 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java @@ -490,7 +490,28 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl checkPublish(String ids) { + public synchronized Result checkPublish(String id) { + LawsMarketStandard lawsMarketStandardOld = getById(id); + if(Objects.isNull(lawsMarketStandardOld)){ + return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND); + } + // 已发布的清单所有人都可以查看,未发布的数据只能作者和管理管查看、编辑、删除 + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if(!Arrays.asList(sysUser.getRoleIds().split(",")).contains(lawsAdmin) + && Arrays.stream(sysUser.getRoleIds().split(",")).noneMatch(otherAdmin::contains) + && !Arrays.asList(sysUser.getRoleIds().split(",")).contains(superAdmin) + && !Objects.equals(lawsMarketStandardOld.getAuthor(),sysUser.getId())){ + return Result.error(ResultCommon.NO_PERMISSION); + } + if(Objects.equals(lawsMarketStandardOld.getManifestStatus(),MarketStandardConstants.MANIFEST_STATUS_PUBLISH)){ + return Result.error(ResultCommon.DATA_PUBLISHED); + } + processMarketStandardReleaseService.checkProcessStatus(id); + return Result.OK(ResultCommon.OK); + } + + @Override + public Result directRelease(String ids) { List listIds = Arrays.asList(ids.split(",")); List lawsMarketStandardOldList = listByIds(listIds); if(listIds.size() != lawsMarketStandardOldList.size()){ @@ -518,7 +539,7 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl Date: Fri, 27 Sep 2024 15:36:21 +0800 Subject: [PATCH 27/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B8=82=E5=9C=BA?= =?UTF-8?q?=E6=B3=95=E8=A7=84=E6=B8=85=E5=8D=95=E7=9B=B4=E6=8E=A5=E5=8F=91?= =?UTF-8?q?=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/LawsMarketStandardServiceImpl.java | 54 ++++++++++++++----- 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java index cb84914d..d9a8f06e 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java @@ -511,6 +511,7 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl directRelease(String ids) { List listIds = Arrays.asList(ids.split(",")); List lawsMarketStandardOldList = listByIds(listIds); @@ -519,14 +520,8 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl op = lawsMarketStandardOldList.stream().filter(o->Objects.equals(o.getId(),listId)).findFirst(); - if(!op.isPresent()){ - continue; - } - LawsMarketStandard lawsMarketStandard = op.get(); + for (LawsMarketStandard lawsMarketStandard : lawsMarketStandardOldList) { // 已发布的清单所有人都可以查看,未发布的数据只能作者和管理管查看、编辑、删除 - if(!Arrays.asList(sysUser.getRoleIds().split(",")).contains(lawsAdmin) && Arrays.stream(sysUser.getRoleIds().split(",")).noneMatch(otherAdmin::contains) && !Arrays.asList(sysUser.getRoleIds().split(",")).contains(superAdmin) @@ -543,21 +538,52 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl updateLawsMarketStandard = new LambdaUpdateWrapper<>(); - updateLawsMarketStandard.in(LawsMarketStandard::getId,listIds); - updateLawsMarketStandard.set(LawsMarketStandard::getUpdateBy,sysUser.getUsername()); - updateLawsMarketStandard.set(LawsMarketStandard::getUpdateBy,new Date()); - updateLawsMarketStandard.set(LawsMarketStandard::getManifestStatus,MarketStandardConstants.MANIFEST_STATUS_PUBLISH); - update(updateLawsMarketStandard); + for (LawsMarketStandard lawsMarketStandardOld : lawsMarketStandardOldList) { + LambdaQueryWrapper queryLawsMarketStandard = new LambdaQueryWrapper<>(); + queryLawsMarketStandard.eq(LawsMarketStandard::getVersionFlag,lawsMarketStandardOld.getVersionFlag()); + long l = count(queryLawsMarketStandard); + // 更新状态 + LambdaUpdateWrapper updateLawsMarketStandard = new LambdaUpdateWrapper<>(); + updateLawsMarketStandard.eq(LawsMarketStandard::getId, lawsMarketStandardOld.getId()); + updateLawsMarketStandard.set(LawsMarketStandard::getReleaseDate,new Date()); + updateLawsMarketStandard.set(LawsMarketStandard::getManifestVersion, "V" + l + ".0"); + updateLawsMarketStandard.set(LawsMarketStandard::getManifestStatus,MarketStandardConstants.MANIFEST_STATUS_PUBLISH); + updateLawsMarketStandard.set(LawsMarketStandard::getUpdateTime,new Date()); + updateLawsMarketStandard.set(LawsMarketStandard::getUpdateBy,sysUser.getUsername()); + update(updateLawsMarketStandard); + + // 更新标准的市场数据 + LambdaQueryWrapper queryLawsMarketStandardDetail = new LambdaQueryWrapper<>(); + queryLawsMarketStandardDetail.eq(LawsMarketStandardDetail::getManifestId,lawsMarketStandardOld.getId()); + List listLawsMarketStandardDetail = lawsMarketStandardDetailService + .list(queryLawsMarketStandardDetail); + if(CollectionUtils.isEmpty(listLawsMarketStandardDetail)){ + continue; + } + List listLawsDomesticStandard = new ArrayList<>(); + String country = lawsMarketStandardOld.getCountry(); + for (LawsMarketStandardDetail lawsMarketStandardDetail : listLawsMarketStandardDetail) { + String countryDetail = lawsMarketStandardDetail.getCountry(); + String dis = StringUtils.isEmpty(countryDetail) ? country : country + "," + countryDetail; + List data = Arrays.stream(dis.split(",")).distinct().collect(Collectors.toList()); + LawsDomesticStandard lawsDomesticStandard = new LawsDomesticStandard(); + lawsDomesticStandard.setId(lawsMarketStandardDetail.getStandardId()); + lawsDomesticStandard.setApplicableMarket(String.join(",",data)); + listLawsDomesticStandard.add(lawsDomesticStandard); + } + lawsDomesticStandardService.updateBatchById(listLawsDomesticStandard); + lawsStandardMasterPlanService.syncMarketRegulationListUpdate(lawsMarketStandardOld.getId(),lawsMarketStandardOld.getCountry()); + } return Result.OK(ResultCommon.OK); } From 44bc5e0abbfa703d594fe37a75099ac260ffea48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Fri, 27 Sep 2024 15:40:20 +0800 Subject: [PATCH 28/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B8=82=E5=9C=BA?= =?UTF-8?q?=E6=B3=95=E8=A7=84=E6=B8=85=E5=8D=95=E7=9B=B4=E6=8E=A5=E5=8F=91?= =?UTF-8?q?=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/LawsMarketStandardServiceImpl.java | 54 +++++++++---------- 1 file changed, 26 insertions(+), 28 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java index d9a8f06e..89374f57 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java @@ -567,21 +567,20 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl listLawsMarketStandardDetail = lawsMarketStandardDetailService .list(queryLawsMarketStandardDetail); - if(CollectionUtils.isEmpty(listLawsMarketStandardDetail)){ - continue; + if(!CollectionUtils.isEmpty(listLawsMarketStandardDetail)){ + List listLawsDomesticStandard = new ArrayList<>(); + String country = lawsMarketStandardOld.getCountry(); + for (LawsMarketStandardDetail lawsMarketStandardDetail : listLawsMarketStandardDetail) { + String countryDetail = lawsMarketStandardDetail.getCountry(); + String dis = StringUtils.isEmpty(countryDetail) ? country : country + "," + countryDetail; + List data = Arrays.stream(dis.split(",")).distinct().collect(Collectors.toList()); + LawsDomesticStandard lawsDomesticStandard = new LawsDomesticStandard(); + lawsDomesticStandard.setId(lawsMarketStandardDetail.getStandardId()); + lawsDomesticStandard.setApplicableMarket(String.join(",",data)); + listLawsDomesticStandard.add(lawsDomesticStandard); + } + lawsDomesticStandardService.updateBatchById(listLawsDomesticStandard); } - List listLawsDomesticStandard = new ArrayList<>(); - String country = lawsMarketStandardOld.getCountry(); - for (LawsMarketStandardDetail lawsMarketStandardDetail : listLawsMarketStandardDetail) { - String countryDetail = lawsMarketStandardDetail.getCountry(); - String dis = StringUtils.isEmpty(countryDetail) ? country : country + "," + countryDetail; - List data = Arrays.stream(dis.split(",")).distinct().collect(Collectors.toList()); - LawsDomesticStandard lawsDomesticStandard = new LawsDomesticStandard(); - lawsDomesticStandard.setId(lawsMarketStandardDetail.getStandardId()); - lawsDomesticStandard.setApplicableMarket(String.join(",",data)); - listLawsDomesticStandard.add(lawsDomesticStandard); - } - lawsDomesticStandardService.updateBatchById(listLawsDomesticStandard); lawsStandardMasterPlanService.syncMarketRegulationListUpdate(lawsMarketStandardOld.getId(),lawsMarketStandardOld.getCountry()); } return Result.OK(ResultCommon.OK); @@ -618,21 +617,20 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl listLawsMarketStandardDetail = lawsMarketStandardDetailService .list(queryLawsMarketStandardDetail); - if(CollectionUtils.isEmpty(listLawsMarketStandardDetail)){ - return Result.OK(ResultCommon.OK); + if(!CollectionUtils.isEmpty(listLawsMarketStandardDetail)){ + List listLawsDomesticStandard = new ArrayList<>(); + String country = lawsMarketStandardOld.getCountry(); + for (LawsMarketStandardDetail lawsMarketStandardDetail : listLawsMarketStandardDetail) { + String countryDetail = lawsMarketStandardDetail.getCountry(); + String dis = StringUtils.isEmpty(countryDetail) ? country : country + "," + countryDetail; + List data = Arrays.stream(dis.split(",")).distinct().collect(Collectors.toList()); + LawsDomesticStandard lawsDomesticStandard = new LawsDomesticStandard(); + lawsDomesticStandard.setId(lawsMarketStandardDetail.getStandardId()); + lawsDomesticStandard.setApplicableMarket(String.join(",",data)); + listLawsDomesticStandard.add(lawsDomesticStandard); + } + lawsDomesticStandardService.updateBatchById(listLawsDomesticStandard); } - List listLawsDomesticStandard = new ArrayList<>(); - String country = lawsMarketStandardOld.getCountry(); - for (LawsMarketStandardDetail lawsMarketStandardDetail : listLawsMarketStandardDetail) { - String countryDetail = lawsMarketStandardDetail.getCountry(); - String dis = StringUtils.isEmpty(countryDetail) ? country : country + "," + countryDetail; - List data = Arrays.stream(dis.split(",")).distinct().collect(Collectors.toList()); - LawsDomesticStandard lawsDomesticStandard = new LawsDomesticStandard(); - lawsDomesticStandard.setId(lawsMarketStandardDetail.getStandardId()); - lawsDomesticStandard.setApplicableMarket(String.join(",",data)); - listLawsDomesticStandard.add(lawsDomesticStandard); - } - lawsDomesticStandardService.updateBatchById(listLawsDomesticStandard); lawsStandardMasterPlanService.syncMarketRegulationListUpdate(id,lawsMarketStandardOld.getCountry()); return Result.OK(ResultCommon.OK); } From 4c45ea010803bf0721594c6db75c8d5c7e92088a Mon Sep 17 00:00:00 2001 From: lijiarao Date: Fri, 27 Sep 2024 16:34:34 +0800 Subject: [PATCH 29/36] =?UTF-8?q?update=20=E6=A0=87=E5=87=86=E6=8B=86?= =?UTF-8?q?=E5=88=86=E6=9D=A1=E6=AC=BE=E4=BF=A1=E6=81=AF-=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E6=8B=86=E5=88=86=E7=BB=93=E6=9E=9C=20=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E6=89=80=E6=9C=89=E7=9B=AE=E5=BD=95=E9=83=BD=E5=9C=A8?= =?UTF-8?q?=E6=80=BB=E7=9B=AE=E5=BD=95=E4=B8=8B=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/split/service/impl/FileSplitItemsEOServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java index cdf99a00..6dc400c2 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java @@ -3646,7 +3646,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl treeNodeList = new ArrayList<>(); String regex = "^[0-9]{0}([0-9]|[.])+$"; //TODO 待优化:数字和点必须交替 - String parentId = ""; + String parentId = menuId; for (Map itemEO : addItemsEOList) { String itemNum = itemEO.get("item_num").toString().trim(); String itemTitle = itemEO.get("item_title").toString(); From 5fa0acdc1e1c1602603190627f1bee829e9eeaa4 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Fri, 27 Sep 2024 17:00:16 +0800 Subject: [PATCH 30/36] =?UTF-8?q?fix=20=E6=8B=86=E5=88=86=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/FileSplitItemsEOServiceImpl.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java index 6dc400c2..838544e0 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java @@ -3191,7 +3191,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl(); break; } } @@ -3202,7 +3202,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl(); break; } String cellValue = this.convertMultiOrgId(v, departMap, departPartMap); @@ -3213,7 +3213,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl(); break; } valueList.add(cellValue); @@ -3226,7 +3226,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl(); // break; // }else { // valueList.add(first.get().getId()); @@ -3268,7 +3268,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl(); } else { errorMsg += fieldName + " " + treePath + "Exist in multiple;"; } @@ -3282,7 +3282,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl(); } else { errorMsg += fieldName + " " + treePath + "Not exist;"; } @@ -3303,7 +3303,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl(); } else { errorMsg += fieldName + " " + treePath + "Exist in multiple;"; } @@ -3317,7 +3317,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl(); } else { errorMsg += fieldName + " " + treePath + "Not exist;"; } @@ -3340,7 +3340,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl(); } else { errorMsg += fieldName + " " + treePath + "Exist in multiple;"; } @@ -3351,7 +3351,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl(); } else { errorMsg += fieldName + " " + treePath + "Not exist;"; } From c67c25ab650d510a2570ead3f8ff323b39fc2fcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Fri, 27 Sep 2024 17:17:18 +0800 Subject: [PATCH 31/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9D=A1=E6=AC=BE?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E9=95=BF=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/update/测试阶段.sql | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/db/update/测试阶段.sql b/db/update/测试阶段.sql index fe53547d..5bbe2551 100644 --- a/db/update/测试阶段.sql +++ b/db/update/测试阶段.sql @@ -551,3 +551,18 @@ update laws_tag set field_show_type = '19' where db_field_txt = '责任人' -- 2024-09-27 市场法规清单添加直接发布按钮 INSERT INTO `laws_chery_dev`.`sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `menu_en`, `app_id`, `home_icon`) VALUES ('897f89d79231fcb9019231fcb9ca0000', '897f89d79014d7fe019014d7fe2e0000', '直接发布', NULL, NULL, NULL, NULL, 2, 'marketStandard:directRelease', '1', 8.00, 0, NULL, 1, 1, 0, 0, NULL, 'ldq', '2024-09-27 13:38:19', NULL, NULL, 0, 0, '1', 0, 'Direct release', NULL, NULL); +-- 2024-09-27 修改条款字段长度 +UPDATE `laws_tag` SET `db_length` = 2000 WHERE `id` = '1702557948281909251'; +UPDATE `laws_tag` SET `db_length` = 2000 WHERE `id` = '1803335200567070723'; +UPDATE `laws_tag` SET `db_length` = 2000 WHERE `id` = '1803335200571265024'; +UPDATE `laws_tag` SET `db_length` = 2000 WHERE `id` = '1803335200571265025'; + + +ALTER TABLE `laws_document_split` + MODIFY COLUMN `change_description` longtext NULL COMMENT '变化点说明'; +ALTER TABLE `laws_document_split` + MODIFY COLUMN `technical_agreement_template` longtext NULL COMMENT '技术协议模板'; +ALTER TABLE `laws_document_split` + MODIFY COLUMN `verification_report_template_checklist` longtext NULL COMMENT '校核报告模板/checklist'; +ALTER TABLE `laws_document_split` + MODIFY COLUMN `dvp_template` longtext NULL COMMENT 'DVP模板'; From c4520dc9c35d0b74eb9a8eb2288196a5f15289e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Fri, 27 Sep 2024 18:05:22 +0800 Subject: [PATCH 32/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9D=A1=E6=AC=BE?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E9=95=BF=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StandardInterpretFlowServiceImpl.java | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlowServiceImpl.java index 345abe72..6f0c3bf7 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlowServiceImpl.java @@ -176,6 +176,7 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe private final int TEXT_LENGTH = 50; private final int TEXT_LENGTH_2 = 200; private final int TEXT_DICT_LENGTH = 500; + private final int TEXT_LENGTH_1000 = 1000; private final int TEXT_AREA_LENGTH = 2000; @Override @@ -1149,37 +1150,37 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe } String technicalSpecificationDesignGuide = data.getTechnicalSpecificationDesignGuide(); - textLenghtCheck(technicalSpecificationDesignGuide, TEXT_LENGTH, errorList, "技术规范/设计指南"); + textLenghtCheck(technicalSpecificationDesignGuide, TEXT_DICT_LENGTH, errorList, "技术规范/设计指南"); String drawingTemplate = data.getDrawingTemplate(); - textLenghtCheck(drawingTemplate, TEXT_LENGTH, errorList, "图纸模板"); + textLenghtCheck(drawingTemplate, TEXT_DICT_LENGTH, errorList, "图纸模板"); String technicalAgreementTemplate = data.getTechnicalAgreementTemplate(); - textLenghtCheck(technicalAgreementTemplate, TEXT_LENGTH, errorList, "技术协议模板"); + textLenghtCheck(technicalAgreementTemplate, TEXT_AREA_LENGTH, errorList, "技术协议模板"); String verificationReportTemplateChecklist = data.getVerificationReportTemplateChecklist(); - textLenghtCheck(verificationReportTemplateChecklist, TEXT_LENGTH, errorList, "校验报告模块/checklist"); + textLenghtCheck(verificationReportTemplateChecklist, TEXT_AREA_LENGTH, errorList, "校验报告模块/checklist"); String dvpTemplate = data.getDvpTemplate(); - textLenghtCheck(dvpTemplate, TEXT_LENGTH, errorList, "DVP模板"); + textLenghtCheck(dvpTemplate, TEXT_AREA_LENGTH, errorList, "DVP模板"); String dfema = data.getDfema(); - textLenghtCheck(dfema, TEXT_LENGTH, errorList, "DFEMA"); + textLenghtCheck(dfema, TEXT_DICT_LENGTH, errorList, "DFEMA"); String keyTechnologyDecompositionTable = data.getKeyTechnologyDecompositionTable(); - textLenghtCheck(keyTechnologyDecompositionTable, TEXT_LENGTH, errorList, "关键技术分解表"); + textLenghtCheck(keyTechnologyDecompositionTable, TEXT_DICT_LENGTH, errorList, "关键技术分解表"); String otherDocumentsTemplates = data.getOtherDocumentsTemplates(); - textLenghtCheck(otherDocumentsTemplates, TEXT_LENGTH, errorList, "其他文件或模板"); + textLenghtCheck(otherDocumentsTemplates, TEXT_DICT_LENGTH, errorList, "其他文件或模板"); String p3 = data.getP3(); - textLenghtCheck(p3, TEXT_LENGTH_2, errorList, "P3证明符合性的交付物名称"); + textLenghtCheck(p3, TEXT_DICT_LENGTH, errorList, "P3证明符合性的交付物名称"); String p5 = data.getP5(); - textLenghtCheck(p5, TEXT_LENGTH_2, errorList, "P5证明符合性的交付物名称"); + textLenghtCheck(p5, TEXT_DICT_LENGTH, errorList, "P5证明符合性的交付物名称"); String remarks = data.getRemarks(); - textLenghtCheck(remarks, TEXT_AREA_LENGTH, errorList, "备注"); + textLenghtCheck(remarks, TEXT_DICT_LENGTH, errorList, "备注"); String investigationStage = data.getInvestigationStage(); if (StringUtils.isNotBlank(investigationStage)){ @@ -1444,10 +1445,10 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe } String changeDescription = data.getChangeDescription(); - textLenghtCheck(changeDescription, TEXT_LENGTH, errorList, "相对上一版变化点说明"); + textLenghtCheck(changeDescription, TEXT_AREA_LENGTH, errorList, "相对上一版变化点说明"); String regulatoryNotes = data.getRegulatoryNotes(); - textLenghtCheck(regulatoryNotes, TEXT_LENGTH_2, errorList, "法规注释"); + textLenghtCheck(regulatoryNotes, TEXT_LENGTH_1000, errorList, "法规注释"); String domainArea = data.getDomainArea(); if (StringUtils.isNotBlank(domainArea)){ From c0e0d41f373a50f98c96b4e446896646eb394f5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Fri, 27 Sep 2024 20:02:35 +0800 Subject: [PATCH 33/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9D=A1=E6=AC=BE?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E9=95=BF=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/update/测试阶段.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/update/测试阶段.sql b/db/update/测试阶段.sql index 5bbe2551..17e221e2 100644 --- a/db/update/测试阶段.sql +++ b/db/update/测试阶段.sql @@ -550,7 +550,7 @@ INSERT INTO `sys_dict_item` (`id`, `dict_id`, `parent_id`, `item_text`, `en_name update laws_tag set field_show_type = '19' where db_field_txt = '责任人' -- 2024-09-27 市场法规清单添加直接发布按钮 -INSERT INTO `laws_chery_dev`.`sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `menu_en`, `app_id`, `home_icon`) VALUES ('897f89d79231fcb9019231fcb9ca0000', '897f89d79014d7fe019014d7fe2e0000', '直接发布', NULL, NULL, NULL, NULL, 2, 'marketStandard:directRelease', '1', 8.00, 0, NULL, 1, 1, 0, 0, NULL, 'ldq', '2024-09-27 13:38:19', NULL, NULL, 0, 0, '1', 0, 'Direct release', NULL, NULL); +INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `menu_en`, `app_id`, `home_icon`) VALUES ('897f89d79231fcb9019231fcb9ca0000', '897f89d79014d7fe019014d7fe2e0000', '直接发布', NULL, NULL, NULL, NULL, 2, 'marketStandard:directRelease', '1', 8.00, 0, NULL, 1, 1, 0, 0, NULL, 'ldq', '2024-09-27 13:38:19', NULL, NULL, 0, 0, '1', 0, 'Direct release', NULL, NULL); -- 2024-09-27 修改条款字段长度 UPDATE `laws_tag` SET `db_length` = 2000 WHERE `id` = '1702557948281909251'; UPDATE `laws_tag` SET `db_length` = 2000 WHERE `id` = '1803335200567070723'; From cb0420144ad59f3bbd3f0a923a220de5b28e688f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Sun, 29 Sep 2024 09:47:53 +0800 Subject: [PATCH 34/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9D=A1=E6=AC=BE?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E9=95=BF=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/update/测试阶段.sql | 12 ++++++++++++ .../ProcessStandardInterpretClauseSublist.java | 6 +++--- .../impl/StandardInterpretFlowServiceImpl.java | 2 +- .../standardinterpret/vo/FlowImportExcel.java | 4 ++-- .../laws/documenttool/entity/LawsDocumentSplit.java | 2 +- .../home/vo/LawsHomeAdvancedSearchClauseExcelVO.java | 4 ++-- 6 files changed, 21 insertions(+), 9 deletions(-) diff --git a/db/update/测试阶段.sql b/db/update/测试阶段.sql index 17e221e2..c72ca9f5 100644 --- a/db/update/测试阶段.sql +++ b/db/update/测试阶段.sql @@ -566,3 +566,15 @@ ALTER TABLE `laws_document_split` MODIFY COLUMN `verification_report_template_checklist` longtext NULL COMMENT '校核报告模板/checklist'; ALTER TABLE `laws_document_split` MODIFY COLUMN `dvp_template` longtext NULL COMMENT 'DVP模板'; + +-- 2024-09-29 修改条款字段长度 +UPDATE `laws_tag` SET `db_length` = 2000 WHERE `id` = '1803335200571265026'; +UPDATE `laws_tag` SET `db_length` = 2000 WHERE `id` = '1803335200567070720'; + +ALTER TABLE `laws_document_split` + MODIFY COLUMN `dfema` longtext NULL COMMENT 'DEFMA'; +ALTER TABLE `laws_document_split` + MODIFY COLUMN `enterprise_standard` longtext NULL COMMENT '企业标准'; + + + diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/entity/ProcessStandardInterpretClauseSublist.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/entity/ProcessStandardInterpretClauseSublist.java index 2ba3f4a6..93c1d797 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/entity/ProcessStandardInterpretClauseSublist.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/entity/ProcessStandardInterpretClauseSublist.java @@ -157,9 +157,9 @@ public class ProcessStandardInterpretClauseSublist extends BaseEntity { @ApiModelProperty(value = "DVP模板") @Excel(name = "DVP模板", width = 15) private String dvpTemplate; - /**DFEMA*/ - @ApiModelProperty(value = "DFEMA") - @Excel(name = "DFEMA", width = 15) + /**DEFMA*/ + @ApiModelProperty(value = "DEFMA") + @Excel(name = "DEFMA", width = 15) private String dfema; /**关键技术分解表*/ @ApiModelProperty(value = "关键技术分解表") diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlowServiceImpl.java index 6f0c3bf7..bada577e 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlowServiceImpl.java @@ -1165,7 +1165,7 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe textLenghtCheck(dvpTemplate, TEXT_AREA_LENGTH, errorList, "DVP模板"); String dfema = data.getDfema(); - textLenghtCheck(dfema, TEXT_DICT_LENGTH, errorList, "DFEMA"); + textLenghtCheck(dfema, TEXT_AREA_LENGTH, errorList, "DEFMA"); String keyTechnologyDecompositionTable = data.getKeyTechnologyDecompositionTable(); textLenghtCheck(keyTechnologyDecompositionTable, TEXT_DICT_LENGTH, errorList, "关键技术分解表"); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/vo/FlowImportExcel.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/vo/FlowImportExcel.java index 372d9c01..b2734472 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/vo/FlowImportExcel.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/vo/FlowImportExcel.java @@ -128,8 +128,8 @@ public class FlowImportExcel { @Excel(name = "DVP模板", width = 15) private String dvpTemplate; /**DFEMA*/ - @ApiModelProperty(value = "DFEMA") - @Excel(name = "DFEMA", width = 15) + @ApiModelProperty(value = "DEFMA") + @Excel(name = "DEFMA", width = 15) private String dfema; /**关键技术分解表*/ @ApiModelProperty(value = "关键技术分解表") diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/entity/LawsDocumentSplit.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/entity/LawsDocumentSplit.java index fe655f79..aa2cec3c 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/entity/LawsDocumentSplit.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/entity/LawsDocumentSplit.java @@ -109,7 +109,7 @@ public class LawsDocumentSplit extends BaseEntity { @ApiModelProperty("DVP模板") private String dvpTemplate; // DFEMA - @ApiModelProperty("DFEMA") + @ApiModelProperty("DEFMA") private String dfema; // 关键技术分解表 @ApiModelProperty("关键技术分解表") diff --git a/laws-modules/src/main/java/com/jero/modules/laws/home/vo/LawsHomeAdvancedSearchClauseExcelVO.java b/laws-modules/src/main/java/com/jero/modules/laws/home/vo/LawsHomeAdvancedSearchClauseExcelVO.java index a92271fc..32f05891 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/home/vo/LawsHomeAdvancedSearchClauseExcelVO.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/home/vo/LawsHomeAdvancedSearchClauseExcelVO.java @@ -161,8 +161,8 @@ public class LawsHomeAdvancedSearchClauseExcelVO implements Serializable { /** * DFEMA */ - @ApiModelProperty(value = "DFEMA") - @Excel(name = "DFEMA", width = 30) + @ApiModelProperty(value = "DEFMA") + @Excel(name = "DEFMA", width = 30) private String dfema; /** From 9097b2130ca1376b084a1820163b8f024d4d70a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Sun, 29 Sep 2024 13:32:13 +0800 Subject: [PATCH 35/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9D=A1=E6=AC=BE?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E9=95=BF=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/update/测试阶段.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/db/update/测试阶段.sql b/db/update/测试阶段.sql index c72ca9f5..f5c10e0a 100644 --- a/db/update/测试阶段.sql +++ b/db/update/测试阶段.sql @@ -570,6 +570,7 @@ ALTER TABLE `laws_document_split` -- 2024-09-29 修改条款字段长度 UPDATE `laws_tag` SET `db_length` = 2000 WHERE `id` = '1803335200571265026'; UPDATE `laws_tag` SET `db_length` = 2000 WHERE `id` = '1803335200567070720'; +UPDATE `laws_tag` SET `db_length` = 5000 WHERE `id` = '1701142955053371394'; ALTER TABLE `laws_document_split` MODIFY COLUMN `dfema` longtext NULL COMMENT 'DEFMA'; From 07a97c838a00631095f36d875f0f430e99373337 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Sun, 29 Sep 2024 18:40:06 +0800 Subject: [PATCH 36/36] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=85=A8=E6=96=87?= =?UTF-8?q?=E6=A3=80=E7=B4=A2bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../laws/home/service/impl/LawsHomeSearchServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeSearchServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeSearchServiceImpl.java index a56177f8..2c8e9b7a 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeSearchServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeSearchServiceImpl.java @@ -825,8 +825,8 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { } String implementationDate = "implementationDate"; if(map.containsKey(implementationDate) && !Objects.isNull(map.get(implementationDate))){ - String date = new SimpleDateFormat(YYYY_MM_DD).format(Long.parseLong(map.get(implementationDate).toString())); - map.put(implementationDate,!Objects.equals(date,"1900-01-01") ? date : "-"); + String date = map.get(implementationDate).toString(); + map.put(implementationDate, date); } String createTime = "createTime"; if(map.containsKey(createTime) && !Objects.isNull(map.get(createTime))){