异常发送消息

master
赵嘉伟 4 years ago
parent f7f56bb43e
commit f84ade0111

@ -185,6 +185,10 @@ public class AbnormalBillDisposeDto extends AbnormalBillDispose {
*/
private String ncCodeDescription;
private String workCenterDescription;
private String shutDown;
public String getAbnormalNo() {
return abnormalNo;
}
@ -464,4 +468,20 @@ public class AbnormalBillDisposeDto extends AbnormalBillDispose {
public void setProgram(String program) {
this.program = program;
}
public String getWorkCenterDescription() {
return workCenterDescription;
}
public void setWorkCenterDescription(String workCenterDescription) {
this.workCenterDescription = workCenterDescription;
}
public String getShutDown() {
return shutDown;
}
public void setShutDown(String shutDown) {
this.shutDown = shutDown;
}
}

@ -236,6 +236,8 @@ public class AbnormalBill extends Model<AbnormalBill> {
public String getHandle() {
return handle;
}
@ -580,7 +582,7 @@ public class AbnormalBill extends Model<AbnormalBill> {
this.fileNum = fileNum;
}
public static final String HANDLE = "HANDLE";
public static final String HANDLE = "HANDLE";
public static final String SITE = "SITE";

@ -10,6 +10,7 @@ import com.foreverwin.mesnac.anomaly.mapper.AbnormalBillDisposeMapper;
import com.foreverwin.mesnac.anomaly.mapper.AbnormalBillMapper;
import com.foreverwin.mesnac.anomaly.model.*;
import com.foreverwin.mesnac.anomaly.service.*;
import com.foreverwin.mesnac.common.enums.AnomalyConstant;
import com.foreverwin.mesnac.common.constant.Constants;
import com.foreverwin.mesnac.common.dto.ScrapDto;
import com.foreverwin.mesnac.common.dto.UsrDto;
@ -439,8 +440,9 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
nwaUserService.checkUserGroup(site,abnormalBillDispose.getDutySendUserGroup());
this.saveOrUpdate(abnormalBill);
this.anomalyCreatedAndSendMessage(abnormalBillMapper.selectById(abnormalBill.getHandle()),abnormalBillDispose);
abnormalBillDisposeService.saveOrUpdate(abnormalBillDispose);
this.anomalyCreatedAndSendMessage(abnormalBillMapper.selectById(abnormalBill.getHandle()),abnormalBillDispose);
}
@ -906,17 +908,6 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
abnormalMessage.setMessageType(abnormalBill.getMessageType());
// //根据异常的类型找到消息的类型
// switch (abnormalMessage.getType()){
// case "Z"://质量异常
// abnormalMessage.setMessageType(Constants.ABNORMAL_MESSAGE_QUALITY);
// break;
// case "Q"://其他异常
// abnormalMessage.setMessageType(Constants.ABNORMAL_MESSAGE_OTHER);
// break;
// case "S"://设备异常
// abnormalMessage.setMessageType(Constants.ABNORMAL_MESSAGE_RESOURCE);
// break;
// }
//设置发送的用户组
@ -1022,9 +1013,9 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
for (int i = 0; i < nwaUsers.size(); i++) {
if(i == (nwaUsers.size() - 1)){
sendUsers.append(nwaUsers.get(i));
sendUsers.append(nwaUsers.get(i).getUserName());
}else{
sendUsers.append(nwaUsers.get(i)).append("|");
sendUsers.append(nwaUsers.get(i).getUserName()).append("|");
}
}
activeMQUtil.wechatSendMessage(sendUsers.toString(),abnormalMessage.getContent());
@ -1046,45 +1037,47 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
throw new BaseException("异常提报时找不到要发送的消息类型");
}
//查处所有要替换的消息内容
AbnormalBillDisposeDto messageContent = abnormalBillDisposeMapper.findAllByAbnormalNo(abnormalBill, locale);
//格式化消息
String body = sendMessageType.getBody();
String messageBody = sendMessageType.getBody();
//替换消息类型中的参数
Map<String, String> messageMap = new HashMap<>();
//根据车间找到对应车间的描述
// WorkCenter workCenter = workCenterMapper.findWorkCenterDescriptionByWorkCenter(site, abnormalBill.getWorkCenter(), locale);
// //根据资源找到对应的产线的描述
// WorkCenter line = null;
// if(StringUtil.isBlank(abnormalBill.getResrce())){
// line = workCenterMapper.findWorkCenterDescriptionByResrce(HandleEnum.RESOURCE.getHandle(site, abnormalBill.getResrce()), locale);
// }
//
// //项目号
// ShopOrderDto projectNo = shopOrderMapper.findByShopOrderBo(HandleEnum.SHOP_ORDER.getHandle(site, abnormalBill.getShopOrder()));
// //物料
// Item _item = itemMapper.selectById(locale, abnormalBill.getItemBo());
// String item = "";
// if(_item != null){
// item = _item.getItem() + "/" + _item.getDescription();
// }
// if(workCenter != null && !StringUtil.isBlank(workCenter.getDescription())){
// messageMap.put("WORKCENTER",workCenter.getDescription());
// }
// if(line != null && !StringUtil.isBlank(line.getDescription())){
// messageMap.put("WORKCENTER_LIN",line.getDescription());
// }
// if(projectNo != null && !StringUtil.isBlank(projectNo.getItemNumber())){
// messageMap.put("PROJECT",projectNo.getItemNumber());
// }
// if(!StringUtil.isBlank(abnormalBill.getWorkCenter())){
// messageMap.put("SHOPORDER",abnormalBill.getWorkCenter());
// }
// messageMap.put("ITEM",item);
messageMap.put("abnormalNo",messageContent.getAbnormalNo());
messageMap.put("status", AnomalyConstant.Status.msg(messageContent.getStatus()));
messageMap.put("item",messageContent.getItem());
messageMap.put("description",messageContent.getItemDescription());
messageMap.put("type",AnomalyConstant.Type.msg(messageContent.getType()));
messageMap.put("sfc",messageContent.getSfc());
messageMap.put("shopOrder",messageContent.getShopOrder());
messageMap.put("workCenter",messageContent.getWorkCenterDescription());
messageMap.put("resrce",messageContent.getResrceDescription());
messageMap.put("workOrder",messageContent.getWorkOrder());
messageMap.put("pbDescription",messageContent.getPbDescription());
messageMap.put("ncQty",messageContent.getNcQty());
messageMap.put("pbGrade",messageContent.getPbGrade());
messageMap.put("pbUser",messageContent.getPbUser());
messageMap.put("pbQty",messageContent.getPbQty());
messageMap.put("discover",AnomalyConstant.Discover.msg(messageContent.getDiscover()));
messageMap.put("entityLocation",messageContent.getEntityLocation());
messageMap.put("reportFrom",AnomalyConstant.ReportFrom.msg(messageContent.getReportFrom()));
messageMap.put("operation",messageContent.getOperation());
messageMap.put("reportSendUserGroup",messageContent.getReportSendUserGroup());
if(StringUtil.isBlank(messageContent.getNcCode()) || "/,".equals(messageContent.getNcCode())){
messageMap.put("ncCode","");
}else{
String ncCode = messageContent.getNcCode().substring(0,messageContent.getNcCode().length() - 1);
messageMap.put("ncCode",ncCode);
}
if(StringUtil.isBlank(messageContent.getNcCodeDescription()) || "/,".equals(messageContent.getNcCodeDescription())){
messageMap.put("ncCodeDescription","");
}else{
String ncCodeDescription = messageContent.getNcCodeDescription().substring(0,messageContent.getNcCodeDescription().length() - 1);
messageMap.put("ncCodeDescription",ncCodeDescription);
}
messageMap.put("shutDown",AnomalyConstant.ShutDown.msg(messageContent.getShutDown()));
//格式化之后的消息
return StringUtils.format(body, messageMap);
return StringUtils.format(messageBody, messageMap);
}
@Override

@ -61,6 +61,7 @@ public class AnomalyJobServiceImpl implements AnomalyJobService {
QueryWrapper<Message> abnormalMessageQueryWrapper = new QueryWrapper<>();
abnormalMessageQueryWrapper.eq("STATUS","N");
abnormalMessageQueryWrapper.lt("UP_DATE_TIME",now);
AbnormalBill abnormalBill = new AbnormalBill();
List<Message> abnormalMessages = messageMapper.selectList(abnormalMessageQueryWrapper);
for(Message _abnormalMessage : abnormalMessages){
String uuid = UUID.randomUUID().toString();
@ -89,8 +90,7 @@ public class AnomalyJobServiceImpl implements AnomalyJobService {
abnormalMessage.setUpUser(null);
}
AbnormalBill abnormalBill = abnormalBillMapper.selectById(abnormalMessage.getObjectBo());
abnormalBill.setHandle(abnormalMessage.getMessageType());
String message = abnormalBillService.formatMessage(abnormalBill,abnormalMessage.getMessageType(),site);
abnormalMessage.setContent(message+"It's Job send");

@ -71,6 +71,8 @@
<result column="REPORT_SEND_USER_GROUP" property="reportSendUserGroup"/>
<result column="CORRECTION" property="correction"/>
<result column="PROGRAM" property="program"/>
<result column="WORK_CENTER_DESCRIPTION" property="workCenterDescription"/>
<result column="SHUT_DOWN" property="shutDown" />
</resultMap>
@ -703,27 +705,34 @@
SELECT ZAB.ABNORMAL_NO ABNORMAL_NO ,ZAB.STATUS STATUS,I.ITEM ITEM,IT.DESCRIPTION ITEM_DESCRIPTION,
ZAB."TYPE" "TYPE" ,ZAB.SFC SFC,ZAB.MESSAGE_TYPE MESSAGE_TYPE,ZAB.SHOP_ORDER SHOP_ORDER,
ZAB.WORK_CENTER WORK_CENTER,ZAB.RESRCE RESRCE, WORKORDER.VALUE WORK_ORDER,ITEMNUMBER.VALUE ITEM_NUMBER,
PRODUCTCATEGORY.VALUE PRODUCT_CATEGORY,listagg(NG.DESCRIPTION || '/'||NCT.DESCRIPTION || ',') within GROUP(ORDER BY zab.ABNORMAL_NO) NC_CODE_DESCRIPTION,
PRODUCTCATEGORY.VALUE PRODUCT_CATEGORY,
listagg(NG.DESCRIPTION || '/'||NCT.DESCRIPTION || ',') within GROUP(ORDER BY zab.ABNORMAL_NO) NC_CODE_DESCRIPTION,
ZAB.PB_DESCRIPTION PB_DESCRIPTION ,ZAB.NC_QTY NC_QTY,
ZAB.PB_GRADE PB_GRADE ,NWA.FULL_NAME PB_USER ,ZAB.PB_QTY PB_QTY ,ZAB.DISCOVER DISCOVER ,
NWA2.FULL_NAME INSPECTOR ,ZAB.ENTITY_LOCATION ENTITY_LOCATION ,ZAB.REPORT_FROM REPORT_FROM ,SUBSTR(ZAB.OBJECT_BO,INSTR(ZAB.OBJECT_BO,',')+1) OBJECT_BO,
ZAB.PB_PHOTOSHOP PB_PHOTOSHOP,ZABD.DUTY_CAUSE_DESCRIPTION DUTY_CAUSE_DESCRIPTION,ZABD.DUTY_CAUSE_TYPE DUTY_CAUSE_TYPE,ZABD.DUTY_DEPART DUTY_DEPART,
ZABD.DUTY_SEND_USER_GROUP DUTY_SEND_USER_GROUP,ZABD.DUTY_TYPE DUTY_TYPE,ZABD.PRINCIPAL_USER PRINCIPAL_USER,ZABD.ABNORMAL_METHOD ABNORMAL_METHOD,
R.ROUTER ROUTER,ZABD.RESOLVE_SHOP_ORDER RESOLVE_SHOP_ORDER,ZABD.RESOLVE_REMARK RESOLVE_REMARK,ZABD.RESOLVE_SEND_USER_GROUP RESOLVE_SEND_USER_GROUP,
ZABD.ABNORMAL_REASON ABNORMAL_REASON,ZABD.BEFORE_MEASURE BEFORE_MEASURE,"MAP".VALUE "MAP",listagg(ZANC.NC_CODE_GROUP || '/'||ZANC.NC_CODE || ',') within GROUP(ORDER BY zab.ABNORMAL_NO) NC_CODE,
ZABD.ABNORMAL_REASON ABNORMAL_REASON,ZABD.BEFORE_MEASURE BEFORE_MEASURE,"MAP".VALUE "MAP",
listagg(ZANC.NC_CODE_GROUP || '/'||ZANC.NC_CODE || ',') within GROUP(ORDER BY zab.ABNORMAL_NO) NC_CODE,
ZABD.ROUTER_BO ROUTER_BO,ZAB.OPERATION OPERATION,I.HANDLE ITEM_BO,ZAB.REPORT_SEND_USER_GROUP REPORT_SEND_USER_GROUP,
ZAB.CORRECTION CORRECTION,ZAB.PROGRAM PROGRAM
ZAB.CORRECTION CORRECTION,ZAB.PROGRAM PROGRAM,WCT.DESCRIPTION WORK_CENTER_DESCRIPTION,ZAB.SHUT_DOWN SHUT_DOWN,
RS.DESCRIPTION RESRCE_DESCRIPTION,OT.DESCRIPTION OPERATION_DESCRIPTION
FROM Z_ABNORMAL_BILL ZAB
LEFT JOIN Z_ABNORMAL_BILL_DISPOSE ZABD ON ZAB.HANDLE = ZABD.ABNORMAL_BILL_BO
INNER JOIN ITEM I ON I.HANDLE = ZAB.ITEM_BO
LEFT JOIN ITEM_T IT ON IT.ITEM_BO = I.HANDLE AND IT.LOCALE = #{locale}
INNER JOIN SHOP_ORDER SO ON SO.SHOP_ORDER = ZAB.SHOP_ORDER AND SO.SITE = ZAB.SITE
INNER JOIN RESRCE RS ON RS.RESRCE = ZAB.RESRCE AND RS.SITE = ZAB.SITE
INNER JOIN OPERATION O ON O.OPERATION = ZAB.OPERATION AND O.SITE = ZAB.SITE AND O.CURRENT_REVISION = 'true'
LEFT JOIN OPERATION_T OT ON O.HANDLE = OT.OPERATION_BO AND OT.LOCALE = #{locale}
LEFT JOIN CUSTOM_FIELDS WORKORDER ON WORKORDER.HANDLE = SO.HANDLE AND WORKORDER."ATTRIBUTE" = 'WORK_ORDER'
LEFT JOIN CUSTOM_FIELDS ITEMNUMBER ON ITEMNUMBER.HANDLE = SO.HANDLE AND ITEMNUMBER."ATTRIBUTE" = 'ITEM_NUMBER'
LEFT JOIN CUSTOM_FIELDS PRODUCTCATEGORY ON PRODUCTCATEGORY.HANDLE = SO.HANDLE AND PRODUCTCATEGORY."ATTRIBUTE" = 'PRODUCT_CATEGORY'
LEFT JOIN CUSTOM_FIELDS "MAP" ON "MAP".HANDLE = SO.HANDLE AND "MAP"."ATTRIBUTE" = 'MAP'
LEFT JOIN Z_ABNORMAL_NC_CODE ZANC ON ZAB.HANDLE = ZANC.ABNORMAL_BILL_BO
LEFT JOIN NC_CODE_T NCT ON ('NCCodeBO:' || ZAB.SITE || ',' || ZANC.NC_CODE) = NCT.NC_CODE_BO AND NCT.LOCALE = #{locale}
LEFT JOIN WORK_CENTER_T WCT ON ('WorkCenterBO:' || ZAB.SITE || ',' || ZAB.WORK_CENTER) = WCT.WORK_CENTER_BO AND WCT.LOCALE = #{locale}
LEFT JOIN Z_NWA_USER NWA ON NWA.USER_NAME = ZAB.PB_USER AND NWA.SITE = ZAB.SITE
LEFT JOIN Z_NWA_USER NWA2 ON NWA2.USER_NAME = ZAB.INSPECTOR AND NWA2.SITE = ZAB.SITE
LEFT JOIN NC_GROUP NG ON NG.NC_GROUP = ZANC.NC_CODE_GROUP AND NG.SITE = ZAB.SITE
@ -749,7 +758,8 @@
ZABD.DUTY_SEND_USER_GROUP ,ZABD.DUTY_TYPE ,ZABD.PRINCIPAL_USER ,ZABD.ABNORMAL_METHOD ,
R.ROUTER ,ZABD.RESOLVE_SHOP_ORDER ,ZABD.RESOLVE_REMARK ,ZABD.RESOLVE_SEND_USER_GROUP ,
ZABD.ABNORMAL_REASON ,ZABD.BEFORE_MEASURE ,"MAP".VALUE,ZABD.ROUTER_BO,ZAB.OPERATION,I.HANDLE,
ZAB.REPORT_SEND_USER_GROUP,ZAB.CORRECTION,ZAB.PROGRAM
ZAB.REPORT_SEND_USER_GROUP,ZAB.CORRECTION,ZAB.PROGRAM,WCT.DESCRIPTION,ZAB.SHUT_DOWN,RS.DESCRIPTION,
OT.DESCRIPTION
</select>

@ -0,0 +1,221 @@
package com.foreverwin.mesnac.common.enums;
/**
* @Description TODO
* @Author zhaojiawei
* @Since 2021-08-19
*/
public enum AnomalyConstant {
;
public enum Status {
STATUS1("N","新建"),
STATUS2("X","响应中"),
STATUS3("F","方案确认"),
STATUS4("J","纠防确认"),
STATUS5("Q","取消"),
STATUS6("G","关闭");
private String code;
private String msg;
Status(String code, String msg) {
this.code = code;
this.msg = msg;
}
public static String msg(String code) {
Status[] statuses = values();
for (Status status : statuses) {
if (status.getCode().equals(code)) {
return status.getMsg();
}
}
return "";
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
public enum Type{
Type1("Q","其他"),
Type2("Z","质量"),
Type3("S","设备");
private String code;
private String msg;
Type(String code, String msg) {
this.code = code;
this.msg = msg;
}
public static String msg(String code) {
Type[] types = values();
for (Type type : types) {
if (type.getCode().equals(code)) {
return type.getMsg();
}
}
return "";
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
public enum Discover{
Discover1("Z","自制"),
Discover2("W","外协"),
Discover3("D","到货"),
Discover4("K","客户");
private String code;
private String msg;
Discover(String code, String msg) {
this.code = code;
this.msg = msg;
}
public static String msg(String code) {
Discover[] discovers = values();
for (Discover discover : discovers) {
if (discover.getCode().equals(code)) {
return discover.getMsg();
}
}
return "";
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
public enum ReportFrom{
ReportFrom1("B","自报"),
ReportFrom2("J","质检"),
ReportFrom3("R","设备人员"),
ReportFrom4("Z","设备自动"),
ReportFrom5("C","维修自查"),
ReportFrom6("Y","工艺");
private String code;
private String msg;
ReportFrom(String code, String msg) {
this.code = code;
this.msg = msg;
}
public static String msg(String code) {
ReportFrom[] reportFroms = values();
for (ReportFrom reportFrom : reportFroms) {
if (reportFrom.getCode().equals(code)) {
return reportFrom.getMsg();
}
}
return "";
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
public enum ShutDown{
ShutDown1("Y","是"),
ShutDown2("N","否");
private String code;
private String msg;
ShutDown(String code, String msg) {
this.code = code;
this.msg = msg;
}
public static String msg(String code) {
ShutDown[] shutDowns = values();
for (ShutDown shutDown : shutDowns) {
if (shutDown.getCode().equals(code)) {
return shutDown.getMsg();
}
}
return "";
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
}

@ -21,7 +21,7 @@ public class ActiveMQUtil {
String queue = "send.weChat.notice";
JSONObject jsonObject = new JSONObject();
try{
jsonObject.put("TO_USER", user);
jsonObject.put("TO_USER", "@all");
jsonObject.put("CONTENT",text);
// defaultJmsTemplate.getJmsTemplate().setReceiveTimeout(TimeUnit.SECONDS.toMillis(3));
defaultJmsTemplate.convertAndSend(queue, jsonObject.toString());

@ -203,9 +203,16 @@ public class StringUtils {
String key = map.getKey();
String value = map.getValue();
String keyStr = '#' + key + '#';
if (message.contains(keyStr)) {
message = message.replace(keyStr, value);
if(StringUtils.isEmpty(value)){
message = message.replace(keyStr, "");
}else {
message = message.replace(keyStr, value);
}
}
}
return message;

Loading…
Cancel
Save