From e95ad679c72e298e796f618f655aa14bfde84825 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=98=89=E4=BC=9F?= <1724121454@qq.com> Date: Fri, 17 Sep 2021 15:51:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=82=E5=B8=B8=E6=B6=88=E6=81=AF=E9=80=9A?= =?UTF-8?q?=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../anomaly/mapper/AbnormalBillMapper.java | 2 +- .../anomaly/service/AbnormalBillService.java | 7 +- .../anomaly/service/AnomalyJobService.java | 12 +++ .../service/impl/AbnormalBillServiceImpl.java | 24 +++-- .../service/impl/AnomalyJobServiceImpl.java | 87 +++++++++++++------ .../resources/mapper/AbnormalBillMapper.xml | 9 +- .../mesnac/meapi/util/StringUtils.java | 12 +-- .../main/resources/mapper/NwaUserMapper.xml | 2 +- 8 files changed, 110 insertions(+), 45 deletions(-) diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/AbnormalBillMapper.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/AbnormalBillMapper.java index b182a4e6..85d71a20 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/AbnormalBillMapper.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/AbnormalBillMapper.java @@ -46,5 +46,5 @@ public interface AbnormalBillMapper extends BaseMapper { IPage getAbnormalByConditional(IPage page, @Param("paramMap")Map paramMap,@Param("keyword")String keyword); - Map findReplaceMessageByAbnoraml(@Param("abnormalBill")AbnormalBill abnormalBill); + Map findReplaceMessageByAbnormal(@Param("abnormalBill")AbnormalBill abnormalBill); } \ No newline at end of file diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/AbnormalBillService.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/AbnormalBillService.java index 9c70fbb1..91bab651 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/AbnormalBillService.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/AbnormalBillService.java @@ -162,6 +162,11 @@ public interface AbnormalBillService extends IService { */ MessageType findMessageTypeByStatusAndUserGroup(Message message, AbnormalBill abnormalBill, AbnormalBillDispose abnormalBillDispose); - void saveDutyMessageAndResolveMessageByNodeIsResponse(Message paramMessage); + /** + *响应超时时要创建两个消息类型,分别时责任划分和判责提交,但是不发消息 + * @param paramMessage + * @param userGroup + */ + void saveDutyMessageAndResolveMessageByNodeIsResponse(Message paramMessage,String userGroup); } \ No newline at end of file diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/AnomalyJobService.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/AnomalyJobService.java index 5ddbd382..339ab239 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/AnomalyJobService.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/AnomalyJobService.java @@ -1,5 +1,8 @@ package com.foreverwin.mesnac.anomaly.service; +import com.foreverwin.mesnac.anomaly.model.AbnormalBill; +import com.foreverwin.mesnac.common.model.Message; + /** * @Description TODO * @Author zhaojiawei @@ -12,4 +15,13 @@ public interface AnomalyJobService { * @param site */ void anomalyJobProcess(String site); + + /** + * 格式化消息 + * @param abnormalBill + * @param message + * @param site + * @return + */ + String formatMessageJob(AbnormalBill abnormalBill, Message message, String site); } diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java index 4378cd00..6b827b78 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java @@ -187,6 +187,7 @@ public class AbnormalBillServiceImpl extends ServiceImpl selectPage(FrontPage frontPage, AbnormalBill abnormalBill) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -480,7 +481,10 @@ public class AbnormalBillServiceImpl extends ServiceImpl messages = null; //设置发送的用户组和异常节点 switch (abnormalBill.getStatus()){ //新建 @@ -1034,7 +1039,7 @@ public class AbnormalBillServiceImpl extends ServiceImpl messages = messageService.selectList(abnormalMessage1); + messages = messageService.selectList(abnormalMessage1); // Message _abnormalMessage = messageMapper.selectOne(wrapper); if(messages.size() > 0) { abnormalMessage.setUpUserGroup(messages.get(0).getUpUserGroup()); @@ -1116,6 +1121,9 @@ public class AbnormalBillServiceImpl extends ServiceImpl 0) { + this.saveDutyMessageAndResolveMessageByNodeIsResponse(abnormalMessage,messages.get(0).getSendUserGroup()); + } return true; } //发送消息 @@ -1167,7 +1177,7 @@ public class AbnormalBillServiceImpl extends ServiceImpl replaceMessage = abnormalBillMapper.findReplaceMessageByAbnoraml(abnormalBill); + Map replaceMessage = abnormalBillMapper.findReplaceMessageByAbnormal(abnormalBill); String messageBody = sendMessageType.getBody(); //格式化之后的消息 return StringUtils.format(messageBody, replaceMessage); @@ -1259,8 +1269,6 @@ public class AbnormalBillServiceImpl extends ServiceImpl nwaUsers = nwaUserService.checkUserGroup(site,abnormalMessage.getSendUserGroup()); if(nwaUsers != null && nwaUsers.size() <= 0){ logger.info("消息发送失败,发送的用户组下面没有用户") ; - } - List customFieldByUserId = usrMapper.findCustomFieldByUserId(site, nwaUsers); - if(customFieldByUserId != null && customFieldByUserId.size() <= 0){ - logger.info("消息发送失败,发送的用户组下面的用户的自定义数据没有维护"); - } - StringBuilder sendUsers = new StringBuilder(); - for (int i = 0; i < Objects.requireNonNull(customFieldByUserId).size(); i++) { - if(i == (customFieldByUserId.size() - 1)){ - sendUsers.append(customFieldByUserId.get(i)); - }else{ - sendUsers.append(customFieldByUserId.get(i)).append("|"); + }else{ + List customFieldByUserId = usrMapper.findCustomFieldByUserId(site, nwaUsers); + if(customFieldByUserId != null && customFieldByUserId.size() <= 0){ + logger.info("消息发送失败,发送的用户组下面的用户的自定义数据没有维护"); + }else { + StringBuilder sendUsers = new StringBuilder(); + for (int i = 0; i < Objects.requireNonNull(customFieldByUserId).size(); i++) { + if(i == (customFieldByUserId.size() - 1)){ + sendUsers.append(customFieldByUserId.get(i)); + }else{ + sendUsers.append(customFieldByUserId.get(i)).append("|"); + } + } + activeMQUtil.wechatSendMessage(sendUsers.toString(),abnormalMessage.getContent()); } } - activeMQUtil.wechatSendMessage(sendUsers.toString(),abnormalMessage.getContent()); //保存升级的消息类型 messageService.saveOrUpdate(abnormalMessage); //保存原先的消息类型,让原先的消息类型的stauts改为Y messageService.saveOrUpdate(_abnormalMessage); } } + + @Override + public String formatMessageJob(AbnormalBill abnormalBill, Message message, String site) { + //找到消息内容 + MessageType messageTypeEntity = new MessageType(); + messageTypeEntity.setSite(site); + messageTypeEntity.setMessageType(message.getMessageType()); + QueryWrapper messageTypeQueryWrapper = new QueryWrapper(); + messageTypeQueryWrapper.setEntity(messageTypeEntity); + MessageType sendMessageType = messageTypeMapper.selectOne(messageTypeQueryWrapper); + if(sendMessageType == null){ + return "消息类型:"+message.getMessageType()+"找不到,异常单为:"+abnormalBill.getAbnormalNo()+",状态为:"+abnormalBill.getStatus(); + } + //找到要替换的消息 + Map replaceMessage = abnormalBillMapper.findReplaceMessageByAbnormal(abnormalBill); + //找到用户组下的所有用户 + List nwaUsers = nwaUserService.checkUserGroup(site, message.getSendUserGroup()); + String user = ""; + for (int i = 0; i < nwaUsers.size(); i++) { + user += nwaUsers.get(i).getFullName()+"、"; + if(i == (nwaUsers.size() - 1)){ + user += nwaUsers.get(i).getFullName()+","; + } + } + //根据异常消息的节点来判断所处的状态 + if(Constants.ABNORMAL_MESSAGE_REPORT.equals(message.getNode())){ + user += "现已超时未响应。"; + }else if(Constants.ABNORMAL_MESSAGE_RESPONSE_DUTY.equals(message.getNode())){ + //走判责提交 + user += "现已判责提交(责任划分)超时。"; + }else if(Constants.ABNORMAL_MESSAGE_RESPONSE_RESOLVE.equals(message.getNode())){ + //走解决方案 + user += "现已方案确认超时。"; + } + replaceMessage.put("USER",user); + String messageBody = sendMessageType.getBody(); + //格式化之后的消息 + return StringUtils.format(messageBody, replaceMessage); + } } diff --git a/anomaly/src/main/resources/mapper/AbnormalBillMapper.xml b/anomaly/src/main/resources/mapper/AbnormalBillMapper.xml index bd51f34b..8e61967f 100644 --- a/anomaly/src/main/resources/mapper/AbnormalBillMapper.xml +++ b/anomaly/src/main/resources/mapper/AbnormalBillMapper.xml @@ -973,7 +973,7 @@ - SELECT wct.DESCRIPTION WORKCENTER,so.SHOP_ORDER SHOPORDER , it.DESCRIPTION ITEM,zab.WORK_ORDER WORK_ORDER,zab.ITEM_NUMBER PROJECT, LISTAGG(nct.DESCRIPTION , ',') WITHIN GROUP(ORDER BY zab.ABNORMAL_NO) NC, @@ -1267,7 +1267,8 @@ WHEN zabd.ABNORMAL_METHOD = 'FW' THEN '返修(外协)' WHEN zabd.ABNORMAL_METHOD = 'FB' THEN '返修(不返回原工艺)' ELSE '' - END ABNORMAL_METHOD, + END METHOD, + zab.ABNORMAL_NO ABNORMAL_NO FROM Z_ABNORMAL_BILL zab INNER JOIN ITEM i ON i.HANDLE = zab.ITEM_BO LEFT JOIN RESRCE r ON r.RESRCE = zab.RESRCE AND r.SITE = zab.SITE @@ -1293,7 +1294,7 @@ GROUP BY wct.DESCRIPTION ,so.SHOP_ORDER ,it.DESCRIPTION,r.DESCRIPTION,r2.DESCRIPTION, - zab.WORK_ORDER,zab.ITEM_NUMBER,zabd.ABNORMAL_METHOD + zab.WORK_ORDER,zab.ITEM_NUMBER,zabd.ABNORMAL_METHOD,zab.ABNORMAL_NO diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/util/StringUtils.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/util/StringUtils.java index ce2e5b9f..cb2185f6 100644 --- a/meapi/src/main/java/com/foreverwin/mesnac/meapi/util/StringUtils.java +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/util/StringUtils.java @@ -6,6 +6,8 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.text.DecimalFormat; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * Created by Administrator on 2018/8/20. @@ -203,18 +205,18 @@ public class StringUtils { String key = map.getKey(); String value = map.getValue(); - - String keyStr = '#' + key + '#'; if (message.contains(keyStr)) { if(StringUtils.isEmpty(value)){ - message = message.replace(keyStr, ""); + message = message.replace(keyStr, "[空]"); }else { - message = message.replace(keyStr, value); + message = message.replace(keyStr, "["+value+"]"); } - } } + Pattern pattern = Pattern.compile("#.*#"); + Matcher matcher = pattern.matcher(message); + message = matcher.replaceAll("[空]"); return message; } diff --git a/meapi/src/main/resources/mapper/NwaUserMapper.xml b/meapi/src/main/resources/mapper/NwaUserMapper.xml index 380ca1a0..d5571df9 100644 --- a/meapi/src/main/resources/mapper/NwaUserMapper.xml +++ b/meapi/src/main/resources/mapper/NwaUserMapper.xml @@ -572,7 +572,7 @@