From 70e016fd1fbb12f652aed52247de3f9382799eb0 Mon Sep 17 00:00:00 2001 From: CD <1103614279@qq.com> Date: Tue, 25 Oct 2022 14:01:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=88=E6=81=AF=E5=88=9D=E6=AD=A5=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../constant/enums/MessageType2Enum.java | 41 ++++++ .../common/constant/enums/MsgColorEnum.java | 32 +++++ .../mapper/xml/ParamsManifestEOMapper.xml | 2 +- .../ParamsCollectManifestEOServiceImpl.java | 125 +++++++++--------- .../feishu/service/IFeishuService.java | 4 + .../service/impl/FeishuServiceImpl.java | 83 ++++++++++++ .../jero/modules/feishu/vo/FeishuMsg2Vo.java | 20 +++ 7 files changed, 240 insertions(+), 67 deletions(-) create mode 100644 jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/enums/MessageType2Enum.java create mode 100644 jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/enums/MsgColorEnum.java create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/vo/FeishuMsg2Vo.java diff --git a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/enums/MessageType2Enum.java b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/enums/MessageType2Enum.java new file mode 100644 index 000000000..bf4544532 --- /dev/null +++ b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/enums/MessageType2Enum.java @@ -0,0 +1,41 @@ +package com.jero.common.constant.enums; + +public enum MessageType2Enum { + + + SUBSCRIPTION_NOTIFICATION("Subscription Notification","订阅通知"), + SHARE_FORWARD("Share Forward","转发推送"), + REGULATION_EARLY_WARNING("Regulation Early Warning","法规预警"), + REGULATION_LIST_CONFIRMATION("Regulation List Confirmation","法规清单确认"), + REGULATION_TASK_CONFIRMATION("Regulation Task Confirmation","法规任务确认"), + DESIGN_COMPLIANCE_CONFIRMATION("Design Compliance Confirmation","设计符合性确认"), + PRE_HOMO_CONFIRMATION("Pre-Homo Confirmation","Pre-Homo确认"), + VALIDATION_COMPLIANCE_CONFIRMATION("Validation Compliance Confirmation","验证符合性确认"), + REGULATION_OPINION_COLLECTION("Regulation Opinion Collection","法规意见收集"), + REGULATION_TECHNICAL_ASSESSMENT("Regulation Technical Assessment","法规技术评估"), + HOMO_PARAMETER_COLLECTION("Homo Parameter Collection","认证参数收集"); + + String en; + String cn; + + MessageType2Enum(String en, String cn) { + this.en = en; + this.cn = cn; + } + + public String getEn() { + return en; + } + + public void setEn(String en) { + this.en = en; + } + + public String getCn() { + return cn; + } + + public void setCn(String cn) { + this.cn = cn; + } +} diff --git a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/enums/MsgColorEnum.java b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/enums/MsgColorEnum.java new file mode 100644 index 000000000..ba74f1908 --- /dev/null +++ b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/enums/MsgColorEnum.java @@ -0,0 +1,32 @@ +package com.jero.common.constant.enums; + +public enum MsgColorEnum { + + GREEN("其他","green"), + RED("任务被拒绝","red"), + YELLOW("任务预期","yellow"); + + String label; + String value; + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + MsgColorEnum(String label, String value) { + this.label = label; + this.value = value; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml index 17aad26e9..bc90c0103 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsManifestEOMapper.xml @@ -147,7 +147,7 @@ select tmp_tb.* from( select plb.id as project_id, - concat(pni.project_name,'-',pyni.year_name,' ',target_market) as project_name + concat(pni.project_name,'-',pyni.year_name,'-',target_market,'-',project_version) as project_name from project_library_base plb left join project_name_info as pni on plb.project_name_id = pni.id left join project_year_name_info as pyni on plb.year_name_id = pyni.id diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java index 34349bfc1..7e9ba3277 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java @@ -11,10 +11,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Lists; import com.jero.common.constant.CommonConstant; import com.jero.common.constant.WebsocketConst; -import com.jero.common.constant.enums.CutEnum; -import com.jero.common.constant.enums.MessageTypeEnum; -import com.jero.common.constant.enums.ModuleEnum; -import com.jero.common.constant.enums.YesOrNoEnum; +import com.jero.common.constant.enums.*; import com.jero.common.exception.JeroBootException; import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.vo.LoginUser; @@ -40,6 +37,7 @@ import com.jero.modules.cert.template.enums.ParamsIsMustEnum; import com.jero.modules.cert.template.service.ICertCategoryParamsInfoPublishEOService; import com.jero.modules.cert.template.service.IParamsInfoPublishEOService; import com.jero.modules.feishu.service.IFeishuService; +import com.jero.modules.feishu.vo.FeishuMsg2Vo; import com.jero.modules.feishu.vo.FeishuMsgVo; import com.jero.modules.message.websocket.WebSocket; import com.jero.modules.ocr.service.WebSocketServer; @@ -1512,7 +1510,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl paramsCollectManifestEOList = listByIds(Arrays.asList(paramsCollectManifestIdStr)); paramsCollectManifestEOList = paramsCollectManifestEOList.stream().sorted(Comparator.comparing(ParamsCollectManifestBaseEO::getNioNumber)).collect(Collectors.toList()); // 按NIO编号升序 - for (ParamsCollectManifestEO paramsCollectManifestEO : paramsCollectManifestEOList) { + for (ParamsCollectManifestEO paramsCollectManifestEO : paramsCollectManifestEOList) { // 判断参数项状态 if (CollectManifestStateEnum.WAIT_COLLECT.getValue().equals(paramsCollectManifestEO.getState()) || CollectManifestStateEnum.SDT_BACK.getValue().equals(paramsCollectManifestEO.getState()) @@ -1543,19 +1541,19 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl afterUpdateEOList = listByIds(updateEOIdList); - List sdtList = afterUpdateEOList.stream() - .map(ParamsCollectManifestEO::getSdt) - .distinct() - .collect(Collectors.toList()); - if (CollectionUtil.isEmpty(sdtList)) { - throw new JeroBootException("没有可下发的工程接口人!"); - } - for (String sdt : sdtList) { + if (isSuccess) { + // 消息内容 + List afterUpdateEOList = listByIds(updateEOIdList); + List sdtList = afterUpdateEOList.stream() + .map(ParamsCollectManifestEO::getSdt) + .distinct() + .collect(Collectors.toList()); + if (CollectionUtil.isEmpty(sdtList)) { + throw new JeroBootException("没有可下发的工程接口人!"); + } + for (String sdt : sdtList) { - StringBuilder connectBuilder = new StringBuilder(); + /* StringBuilder connectBuilder = new StringBuilder(); connectBuilder.append("You are required to fill in "); for (int i = 0; i < afterUpdateEOList.size(); i++) { ParamsCollectManifestEO paramsCollectManifestEO = afterUpdateEOList.get(i); @@ -1563,19 +1561,19 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImplthe link,"; - String contentInfo = connectBuilder.substring(0, connectBuilder.toString().length() - 1) + " and other parameter items, please enter " + href + " and fill in the relevant information."; - String msgTitle = projectInfo.getProjectName() + ": You have a homo parameter task to complete"; + SysUser sysUser = sysUserService.getUserByName(sdt); + String[] thirdIds = new String[1]; + thirdIds[0] = sysUser.getThirdId(); + String urlParamsStr = parseUrlParams(paramsManifestEO); + String hrefFeishu = backUrl + "/ParameterItemCollection" + urlParamsStr; + //String href = "the link,"; + //String contentInfo = connectBuilder.substring(0, connectBuilder.toString().length() - 1) + " and other parameter items, please enter " + href + " and fill in the relevant information."; + //String msgTitle = projectInfo.getProjectName() + ": You have a homo parameter task to complete"; - // 发送系统消息 - SysAnnouncement sysAnnouncement = new SysAnnouncement(); + // 发送系统消息 + /* SysAnnouncement sysAnnouncement = new SysAnnouncement(); sysAnnouncement.setDelFlag("0"); sysAnnouncement.setSendStatus("0"); sysAnnouncement.setSendTime(new Date()); @@ -1592,24 +1590,12 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImplthe link,"; - String contentInfo = connectBuilder.substring(0, connectBuilder.toString().length() - 1) + " and other parameter items, please enter " + href + " and fill in the relevant information."; - String msgTitle = projectInfo.getProjectName() + ": You have a homo parameter task to complete"; + //String href = "the link,"; + //String contentInfo = connectBuilder.substring(0, connectBuilder.toString().length() - 1) + " and other parameter items, please enter " + href + " and fill in the relevant information."; + //String msgTitle = projectInfo.getProjectName() + ": You have a homo parameter task to complete"; // 发送系统消息 - SysAnnouncement sysAnnouncement = new SysAnnouncement(); + /*SysAnnouncement sysAnnouncement = new SysAnnouncement(); sysAnnouncement.setDelFlag("0"); sysAnnouncement.setSendStatus("0"); sysAnnouncement.setSendTime(new Date()); @@ -1726,28 +1711,36 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl getMsgOfIssueCollection(List> msgMapList, String cut, String operation) { List msgList = new ArrayList<>(); Map collectManifestStateEnumMap = CollectManifestStateEnum.toMap(cut); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/IFeishuService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/IFeishuService.java index a1999a118..7c38d96f7 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/IFeishuService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/IFeishuService.java @@ -1,6 +1,7 @@ package com.jero.modules.feishu.service; import com.alibaba.fastjson.JSONObject; +import com.jero.modules.feishu.vo.FeishuMsg2Vo; import com.jero.modules.feishu.vo.FeishuMsgVo; import java.io.IOException; @@ -62,4 +63,7 @@ public interface IFeishuService { * @param split */ void sendKnowledgeBaseTypeChargePersonCard(String[] split); + + void sendCard(String[] thirdIds, FeishuMsg2Vo feishuMsgVo) throws IOException; + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/impl/FeishuServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/impl/FeishuServiceImpl.java index b3367fda2..401c17a05 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/impl/FeishuServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/impl/FeishuServiceImpl.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.modules.feishu.service.IFeishuService; +import com.jero.modules.feishu.vo.FeishuMsg2Vo; import com.jero.modules.feishu.vo.FeishuMsgVo; import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseClassifyEO; import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseEO; @@ -674,4 +675,86 @@ public class FeishuServiceImpl implements IFeishuService { } } + /** + * 发送消息 + * @param thirdIds + * @param feishuMsgVo + */ + @Override + public void sendCard(String[] thirdIds, FeishuMsg2Vo feishuMsgVo) throws IOException { + String token = getTenantAccessToken(); + // 设置请求头 + Map headerMap = new HashMap<>(); + headerMap.put("Authorization", "Bearer " + token); + headerMap.put("Content-Type", "application/json; charset=utf-8"); + + + String sendJson = "{\n" + + " \"config\": {\n" + + " \"wide_screen_mode\": true\n" + + " },\n" + + " \"elements\": [\n" + + " {\n" + + " \"tag\": \"markdown\",\n" + + " \"content\": \"" + feishuMsgVo.getCnContentUpper() + "\"\n" + + " },\n" + + " {\n" + + " \"tag\": \"markdown\",\n" + + " \"content\": \"" + feishuMsgVo.getCnContentLower() + "\"\n" + + " },\n" + + " {\n" + + " \"tag\": \"hr\"\n" + + " },\n" + + " {\n" + + " \"tag\": \"markdown\",\n" + + " \"content\": \"" + feishuMsgVo.getEnContentUpper() + "\"\n" + + " },\n" + + " {\n" + + " \"tag\": \"markdown\",\n" + + " \"content\": \"" + feishuMsgVo.getEnContentLower() + "\"\n" + + " },\n" + + " {\n" + + " \"actions\": [\n" + + " {\n" + + " \"tag\": \"button\",\n" + + " \"text\": {\n" + + " \"content\": \"View\",\n" + + " \"tag\": \"plain_text\"\n" + + " },\n" + + " \"type\": \"primary\",\n" + + " \"url\": \"" + feishuMsgVo.getUrl() + "\"\n" + + " }\n" + + " ],\n" + + " \"tag\": \"action\"\n" + + " }\n" + + " ],\n" + + " \"header\": {\n" + + " \"template\": \"" + feishuMsgVo.getColor() + "\",\n" + + " \"title\": {\n" + + " \"content\": \"" + feishuMsgVo.getTitle() + "\",\n" + + " \"tag\": \"plain_text\"\n" + + " }\n" + + " }\n" + + "}"; + + JSONObject jsonObject = JSONObject.parseObject(sendJson.toString()); + + // 设置请求参数 + JSONObject paramsMap = new JSONObject(); + + paramsMap.put("user_ids", thirdIds); + + paramsMap.put("msg_type", "interactive"); + paramsMap.put("card", jsonObject); + + // 发送请求给飞书 + String response = HttpRequestUtil.getResponseOfPOST(batchSendMessageUrl, headerMap, paramsMap.toJSONString()); + // 获取返回结果 + JSONObject tokenJson = JSONObject.parseObject(response); + if (!tokenJson.get("code").toString().equals("0")) { + log.error("请求出现异常:" + tokenJson.get("msg") + " " + tokenJson); + } + + } + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/vo/FeishuMsg2Vo.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/vo/FeishuMsg2Vo.java new file mode 100644 index 000000000..11d701482 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/vo/FeishuMsg2Vo.java @@ -0,0 +1,20 @@ +package com.jero.modules.feishu.vo; + +import lombok.Data; + +@Data +public class FeishuMsg2Vo { + + private String title; //标题 + + private String color; //颜色 + + private String enContentUpper; //英文内容上部 + private String enContentLower; //英文内容下部 + + private String cnContentUpper; //中文内容上部 + private String cnContentLower; //中文内容下部 + + private String url; //回调的网址 + +}