异常发送消息通知

master
赵嘉伟 4 years ago
parent 69dc2f1f58
commit 9a657ed683

@ -46,5 +46,5 @@ public interface AbnormalBillMapper extends BaseMapper<AbnormalBill> {
IPage getAbnormalByConditional(IPage page, @Param("paramMap")Map<String,String> paramMap,@Param("keyword")String keyword);
Map<String,String> findReplaceMessageByAbnoraml(@Param("abnormalBill")AbnormalBill abnormalBill);
}

@ -7,7 +7,9 @@ import com.foreverwin.mesnac.anomaly.dto.AbnormalBillDto;
import com.foreverwin.mesnac.anomaly.model.AbnormalBill;
import com.foreverwin.mesnac.anomaly.model.AbnormalBillDispose;
import com.foreverwin.mesnac.anomaly.model.UploadPictures;
import com.foreverwin.mesnac.common.model.Message;
import com.foreverwin.mesnac.meapi.dto.SfcDto;
import com.foreverwin.mesnac.meapi.model.MessageType;
import com.foreverwin.modular.core.util.FrontPage;
import java.util.HashMap;
@ -152,4 +154,12 @@ public interface AbnormalBillService extends IService<AbnormalBill> {
* */
void batchRepair(SfcDto sfcDto);
/**
*
* @param message
* @param abnormalBill
* @param abnormalBillDispose
*/
MessageType findMessageTypeByStatusAndUserGroup(Message message, AbnormalBill abnormalBill, AbnormalBillDispose abnormalBillDispose);
}

@ -290,7 +290,6 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
this.saveOrUpdate(abnormalBill);
abnormalBillDisposeService.saveOrUpdate(abnormalBillDispose);
//发送消息
if(Constants.NEW.equals(abnormalBill.getStatus())){
this.anomalyCreatedAndSendMessage(abnormalBill,null);
@ -492,10 +491,6 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
LocalDateTime now = LocalDateTime.now();
abnormalBillDispose.setHandle(HandleEnum.ABNORMAL_BILL_DISPOSE.getHandle(site,abnormalBill.getAbnormalNo()));
// AbnormalBill abnormalBill1 = abnormalBillMapper.selectById(HandleEnum.ABNORMAL_BILL.getHandle(site, abnormalBill.getAbnormalNo()));
// if("true".equals(abnormalBill1.getProgram())){
// throw BusinessException.build("该异常单已经方案确认");
// }
if(!StringUtil.isBlank(abnormalBillDispose.getRouterBo())){
//分割该工艺路线
@ -668,7 +663,6 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
abnormalBill.setMessageType(Constants.ABNORMAL_MESSAGE_OTHER);
}
//如果前台传过来的异常单为空的话,则抛出一个异常
if(StringUtil.isBlank(abnormalBill.getAbnormalNo())) {
throw BusinessException.build("异常单号不存在");
@ -683,22 +677,6 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
}
/**
*
*/
//更新的时候,判断该异常单的状态是否为新建,如果为新建,则可以修改,否则就不能进行修改
// AbnormalBill abnormalBill1 = abnormalBillMapper.selectById(abnormalBill.getHandle());
// if(abnormalBill1 != null){
// if(!"N".equals(abnormalBill1.getStatus()) && StringUtil.isBlank(abnormalBillDispose.getClosedUser())){
// throw BusinessException.build("该异常单已经被人处理,不能进行更新");
// }
// message = "更新成功";
// }else{
// message = "保存成功";
// }
// abnormalBillDispose.setClosedUser(null);
//设置异常单详细表的handle和abnormalBillBo
abnormalBillDispose.setAbnormalBillBo(abnormalBill.getHandle());
abnormalBillDispose.setHandle(HandleEnum.ABNORMAL_BILL_DISPOSE.getHandle(site,abnormalBill.getAbnormalNo()));
@ -756,29 +734,6 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
}
// }else if(!StringUtil.isBlank(abnormalBill.getSfc()) && Constants.ABNORMAL_RESRCE.equals(abnormalBill.getType())){
// AbnormalBill abnormalBill2 = new AbnormalBill();
// abnormalBill2.setType(abnormalBill.getType());
// abnormalBill2.setSfc(abnormalBill.getSfc());
// abnormalBill2.setStatus(Constants.NEW);
// List<AbnormalBill> abnormalBills = this.selectList(abnormalBill2);
// if(abnormalBills.size() > 0 && !"更新成功".equals(message)){
// throw BusinessException.build("设备异常有未处理完成的sfc");
// }else if(abnormalBills.size() > 1){
// throw BusinessException.build("设备异常有未处理完成的sfc");
// }
// }
// if(StringUtil.isBlank(abnormalBill.getResrce())){
// throw BusinessException.build("设备编号不能为空");
// }
// if(!StringUtil.isBlank(abnormalBill.getMessageType())){
// NcGroup messageType = ncGroupMapper.selectById(HandleEnum.NC_GROUP.getHandle(site, abnormalBill.getMessageType()));
// if(messageType == null){
// throw BusinessException.build("该消息类型不存在");
// }
// }
//判断设备异常提交的设备是否正确
if(!StringUtil.isBlank(abnormalBill.getResrce()) && Constants.ABNORMAL_RESRCE.equals(abnormalBill.getType())){
Resrce resrce = resrceMapper.selectById(HandleEnum.RESOURCE.getHandle(site, abnormalBill.getResrce()));
@ -1054,14 +1009,16 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
abnormalMessage.setSite(site);
//异常单
abnormalMessage.setObjectBo(abnormalBill.getHandle());
//异常类型
abnormalMessage.setType(abnormalBill.getType());
abnormalMessage.setMessageType(abnormalBill.getMessageType());
// //根据异常的类型找到消息的类型
//设置类型
abnormalMessage.setType(abnormalBill.getMessageType());
//设置发送的用户组
//找到对应的消息类型
MessageType messageType = this.findMessageTypeByStatusAndUserGroup(abnormalMessage, abnormalBill, abnormalBillDispose);
//设置消息类型
abnormalMessage.setMessageType(messageType.getMessageType());
//格式化消息
String message = this.formatMessage(abnormalBill, abnormalMessage.getMessageType(), site);
//设置发送的用户组和异常节点
switch (abnormalBill.getStatus()){
//新建
case Constants.NEW:
@ -1071,18 +1028,24 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
//响应中,设置响应超时的用户的发送的用户组为提报时要升级的用户组
case Constants.RESPONSE:
QueryWrapper<Message> wrapper = new QueryWrapper<>();
Message abnormalMessage1 = new Message();
abnormalMessage1.setSite(site);
abnormalMessage1.setObjectBo(abnormalBill.getHandle());
abnormalMessage1.setNode(Constants.ABNORMAL_MESSAGE_REPORT);
wrapper.setEntity(abnormalMessage1);
Message _abnormalMessage = messageMapper.selectOne(wrapper);
abnormalMessage.setUpUserGroup(_abnormalMessage.getUpUserGroup());
abnormalMessage.setUpMessageType(_abnormalMessage.getUpMessageType());
abnormalMessage.setGrade(_abnormalMessage.getGrade());
abnormalMessage.setUpDateTime(_abnormalMessage.getUpDateTime());
abnormalMessage.setNode(Constants.ABNORMAL_MESSAGE_RESPONSE);
// QueryWrapper<Message> wrapper = new QueryWrapper<>();
// wrapper.setEntity(abnormalMessage1);
List<Message> messages = messageService.selectList(abnormalMessage1);
// Message _abnormalMessage = messageMapper.selectOne(wrapper);
if(messages.size() > 0){
abnormalMessage.setUpUserGroup(messages.get(0).getUpUserGroup());
abnormalMessage.setUpMessageType(messages.get(0).getUpMessageType());
abnormalMessage.setGrade(messages.get(0).getGrade());
abnormalMessage.setUpDateTime(messages.get(0).getUpDateTime());
abnormalMessage.setNode(Constants.ABNORMAL_MESSAGE_RESPONSE);
}else{
throw new BaseException("发送消息时,异常响应报错");
}
break;
//纠纷确认
@ -1109,15 +1072,11 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
messageTypeUpdateWrapper.eq("OBJECT_BO",abnormalMessage.getObjectBo());
messageService.update(abnormalMessage2,messageTypeUpdateWrapper);
break;
default:
abnormalMessage.setSendUser(abnormalBillDispose.getResolveSendUserGroup());
abnormalMessage.setNode(Constants.ABNORMAL_MESSAGE_CANCEL);
break;
}
//格式化消息
String message = this.formatMessage(abnormalBill, abnormalMessage.getMessageType(), site);
//得到消息触发的时间
abnormalMessage.setResponseDateTime(now);
@ -1125,7 +1084,15 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
//得到要发送的消息
abnormalMessage.setContent(message);
//得到升级的用户组
//设置状态新建是N响应为N纠防确认是N方案确认是Y取消是Y,N为可以升级Y为不可以升级
if(Constants.ABNORMAL_MESSAGE_RESPONSE.equals(abnormalMessage.getNode()) ||
Constants.ABNORMAL_MESSAGE_REPORT.equals(abnormalMessage.getNode())){
abnormalMessage.setStatus("N");
}else{
abnormalMessage.setStatus("Y");
}
//得到升级的用户组、升级的时间和等级
//新建有、响应没有、纠防确认有、方案确认没有、取消没有、关闭没有
if(Constants.NEW.equals(abnormalBill.getStatus()) || Constants.CORRECTION_CONFIRM.equals(abnormalBill.getStatus())){
abnormalMessage.setUpUserGroup(abnormalMessage.getSendUserGroup()+"_SJ");
@ -1134,28 +1101,24 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
if(customFieldByGroup != null && !StringUtil.isBlank(customFieldByGroup.getMessageNoticeTime())){
abnormalMessage.setUpDateTime(abnormalMessage.getResponseDateTime().plusMinutes(Integer.parseInt(customFieldByGroup.getMessageNoticeTime())));
}else{
abnormalMessage.setStatus("Y");
throw new BaseException("该用户组没有维护升级的时间,请维护。");
}
if(customFieldByGroup != null && !StringUtil.isBlank(customFieldByGroup.getMessageNoticeLevel())){
if(!StringUtil.isBlank(customFieldByGroup.getMessageNoticeLevel())){
abnormalMessage.setGrade(Double.parseDouble(customFieldByGroup.getMessageNoticeLevel()));
}else{
throw new BaseException("该用户组没有维护升级的等级,请维护。");
}
MessageType messageTypeUp = messageTypeMapper.findMessageTypeByUserGroup(site, abnormalMessage.getUpUserGroup());
//得到升级的消息类型
abnormalMessage.setUpMessageType(abnormalMessage.getMessageType());
abnormalMessage.setUpMessageType(messageTypeUp.getMessageType());
}
//设置状态新建是Y响应为N纠防确认是N方案确认是Y取消是Y
if(Constants.ABNORMAL_MESSAGE_RESPONSE.equals(abnormalMessage.getNode()) ||
Constants.ABNORMAL_MESSAGE_CORRECTION_CONFIRM.equals(abnormalMessage.getNode())){
abnormalMessage.setStatus("N");
}else{
abnormalMessage.setStatus("Y");
}
abnormalMessage.setCreatedUser(user);
abnormalMessage.setCreatedDateTime(now);
abnormalMessage.setModifiedUser(user);
abnormalMessage.setModifiedDateTime(now);
//发送消息
if(!Constants.ABNORMAL_MESSAGE_RESPONSE.equals(abnormalMessage.getNode())){
List<NwaUser> nwaUsers = nwaUserService.checkUserGroup(site,abnormalMessage.getSendUserGroup());
@ -1167,7 +1130,7 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
throw new BaseException("消息发送失败,发送的用户组下面的自定义数据没有维护");
}
StringBuilder sendUsers = new StringBuilder();
for (int i = 0; i < customFieldByUserId.size(); i++) {
for (int i = 0; i < Objects.requireNonNull(customFieldByUserId).size(); i++) {
if(i == (customFieldByUserId.size() - 1)){
sendUsers.append(customFieldByUserId.get(i));
}else{
@ -1182,7 +1145,6 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
@Override
public String formatMessage(AbnormalBill abnormalBill,String messageType, String site) {
//找到消息内容
String locale = LocaleContextHolder.getLocale().getLanguage();
MessageType messageTypeEntity = new MessageType();
messageTypeEntity.setSite(site);
messageTypeEntity.setMessageType(messageType);
@ -1192,98 +1154,101 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
if(sendMessageType == null){
throw new BaseException("异常提报时找不到要发送的消息类型");
}
//查处所有要替换的消息内容
AbnormalBillDisposeDto messageContent = abnormalBillDisposeMapper.findAllByAbnormalNo(abnormalBill, locale);
//格式化消息
//找到要替换的消息
Map<String, String> replaceMessage = abnormalBillMapper.findReplaceMessageByAbnoraml(abnormalBill);
String messageBody = sendMessageType.getBody();
//替换消息类型中的参数
Map<String, String> messageMap = new HashMap<>();
messageMap.put("ABNORMAL_NO",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("SHOP_ORDER",messageContent.getShopOrder());
messageMap.put("WORK_CENTER",messageContent.getWorkCenterDescription());
messageMap.put("RESRCE",messageContent.getResrceDescription());
messageMap.put("WORK_ORDER",messageContent.getWorkOrder());
messageMap.put("PB_DESCRIPTION",messageContent.getPbDescription());
messageMap.put("NC_QTY",messageContent.getNcQty());
messageMap.put("PB_GRADE",messageContent.getPbGrade());
messageMap.put("PB_USER",messageContent.getPbUser());
messageMap.put("PB_QTY",messageContent.getPbQty());
messageMap.put("DISCOVER",AnomalyConstant.Discover.msg(messageContent.getDiscover()));
messageMap.put("ENTITY_LOCATION",messageContent.getEntityLocation());
messageMap.put("REPORT_FROM",AnomalyConstant.ReportFrom.msg(messageContent.getReportFrom()));
messageMap.put("OPERATION",messageContent.getOperationDescription());
// messageMap.put("reportSendUserGroup",messageContent.getReportSendUserGroup());
if(StringUtil.isBlank(messageContent.getNcCode()) || "/,".equals(messageContent.getNcCode())){
messageMap.put("NC_CODE","");
}else{
String ncCode = messageContent.getNcCode().substring(0,messageContent.getNcCode().length() - 1);
messageMap.put("NC_CODE",ncCode);
}
if(StringUtil.isBlank(messageContent.getNcCodeDescription()) || "/,".equals(messageContent.getNcCodeDescription())){
messageMap.put("NC_CODE_DESCRIPTION","");
}else{
String ncCodeDescription = messageContent.getNcCodeDescription().substring(0,messageContent.getNcCodeDescription().length() - 1);
messageMap.put("NC_CODE_DESCRIPTION",ncCodeDescription);
}
messageMap.put("SHUT_DOWN",AnomalyConstant.ShutDown.msg(messageContent.getShutDown()));
//判断该异常单的状态是否是纠防确认
if(Constants.CORRECTION_CONFIRM.equals(messageContent.getStatus()) || Constants.SHUT_DOWN.equals(messageContent.getStatus())){
DataField dataField = new DataField();
dataField.setSite(site);
//原因分类
String dutyCauseType = messageContent.getDutyCauseType();
if(!StringUtil.isBlank(dutyCauseType)){
List<String> dutyCauseTypeList = Arrays.asList(dutyCauseType.split(","));
dataField.setDataField("REASON_CATEGORY");
dataField.setDataValue(dutyCauseTypeList);
String dutyCauseTypeDescription = dataFieldListMapper.findDataFieldListByDataField(dataField, locale);
messageMap.put("DUTY_CAUSE_TYPE",dutyCauseTypeDescription);
}else{
messageMap.put("DUTY_CAUSE_TYPE","");
}
//责任部门
String dutyDepart = messageContent.getDutyDepart();
if(!StringUtil.isBlank(dutyDepart)){
List<String> dutyDepartList = Arrays.asList(dutyDepart.split(","));
dataField.setDataField("RESPONSIBILITY_DEPARTMENT");
dataField.setDataValue(dutyDepartList);
String dutyDepartDescription = dataFieldListMapper.findDataFieldListByDataField(dataField, locale);
messageMap.put("DUTY_DEPART",dutyDepartDescription);
}else{
messageMap.put("DUTY_DEPART","");
}
//责任分类
String dutyType = messageContent.getDutyType();
if(!StringUtil.isBlank(dutyType)){
List<String> dutyTypeList = Arrays.asList(dutyType.split(","));
dataField.setDataField("RESPONSIBILITY_TYPE");
dataField.setDataValue(dutyTypeList);
String dutyDepartDescription = dataFieldListMapper.findDataFieldListByDataField(dataField, locale);
messageMap.put("DUTY_TYPE",dutyDepartDescription);
}else{
messageMap.put("DUTY_TYPE","");
}
messageMap.put("PRINCIPAI_USER",messageContent.getPrincipalUser());
messageMap.put("DUTY_CAUSE_DESCRIPTION",messageContent.getDutyCauseDescription());
}
//格式化之后的消息
return StringUtils.format(messageBody, replaceMessage);
//查处所有要替换的消息内容
// AbnormalBillDisposeDto messageContent = abnormalBillDisposeMapper.findAllByAbnormalNo(abnormalBill, locale);
// //格式化消息
// String messageBody = sendMessageType.getBody();
// //替换消息类型中的参数
// Map<String, String> messageMap = new HashMap<>();
// messageMap.put("ABNORMAL_NO",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("SHOP_ORDER",messageContent.getShopOrder());
// messageMap.put("WORK_CENTER",messageContent.getWorkCenterDescription());
// messageMap.put("RESRCE",messageContent.getResrceDescription());
// messageMap.put("WORK_ORDER",messageContent.getWorkOrder());
// messageMap.put("PB_DESCRIPTION",messageContent.getPbDescription());
// messageMap.put("NC_QTY",messageContent.getNcQty());
// messageMap.put("PB_GRADE",messageContent.getPbGrade());
// messageMap.put("PB_USER",messageContent.getPbUser());
// messageMap.put("PB_QTY",messageContent.getPbQty());
// messageMap.put("DISCOVER",AnomalyConstant.Discover.msg(messageContent.getDiscover()));
// messageMap.put("ENTITY_LOCATION",messageContent.getEntityLocation());
// messageMap.put("REPORT_FROM",AnomalyConstant.ReportFrom.msg(messageContent.getReportFrom()));
// messageMap.put("OPERATION",messageContent.getOperationDescription());
//// messageMap.put("reportSendUserGroup",messageContent.getReportSendUserGroup());
// if(StringUtil.isBlank(messageContent.getNcCode()) || "/,".equals(messageContent.getNcCode())){
// messageMap.put("NC_CODE","");
// }else{
// String ncCode = messageContent.getNcCode().substring(0,messageContent.getNcCode().length() - 1);
// messageMap.put("NC_CODE",ncCode);
// }
// if(StringUtil.isBlank(messageContent.getNcCodeDescription()) || "/,".equals(messageContent.getNcCodeDescription())){
// messageMap.put("NC_CODE_DESCRIPTION","");
// }else{
// String ncCodeDescription = messageContent.getNcCodeDescription().substring(0,messageContent.getNcCodeDescription().length() - 1);
// messageMap.put("NC_CODE_DESCRIPTION",ncCodeDescription);
// }
// messageMap.put("SHUT_DOWN",AnomalyConstant.ShutDown.msg(messageContent.getShutDown()));
//
// //判断该异常单的状态是否是纠防确认
// if(Constants.CORRECTION_CONFIRM.equals(messageContent.getStatus()) || Constants.SHUT_DOWN.equals(messageContent.getStatus())){
//
// DataField dataField = new DataField();
// dataField.setSite(site);
// //原因分类
// String dutyCauseType = messageContent.getDutyCauseType();
// if(!StringUtil.isBlank(dutyCauseType)){
// List<String> dutyCauseTypeList = Arrays.asList(dutyCauseType.split(","));
// dataField.setDataField("REASON_CATEGORY");
// dataField.setDataValue(dutyCauseTypeList);
// String dutyCauseTypeDescription = dataFieldListMapper.findDataFieldListByDataField(dataField, locale);
// messageMap.put("DUTY_CAUSE_TYPE",dutyCauseTypeDescription);
// }else{
// messageMap.put("DUTY_CAUSE_TYPE","");
// }
// //责任部门
// String dutyDepart = messageContent.getDutyDepart();
// if(!StringUtil.isBlank(dutyDepart)){
// List<String> dutyDepartList = Arrays.asList(dutyDepart.split(","));
// dataField.setDataField("RESPONSIBILITY_DEPARTMENT");
// dataField.setDataValue(dutyDepartList);
// String dutyDepartDescription = dataFieldListMapper.findDataFieldListByDataField(dataField, locale);
// messageMap.put("DUTY_DEPART",dutyDepartDescription);
// }else{
// messageMap.put("DUTY_DEPART","");
// }
// //责任分类
// String dutyType = messageContent.getDutyType();
// if(!StringUtil.isBlank(dutyType)){
// List<String> dutyTypeList = Arrays.asList(dutyType.split(","));
// dataField.setDataField("RESPONSIBILITY_TYPE");
// dataField.setDataValue(dutyTypeList);
// String dutyDepartDescription = dataFieldListMapper.findDataFieldListByDataField(dataField, locale);
// messageMap.put("DUTY_TYPE",dutyDepartDescription);
// }else{
// messageMap.put("DUTY_TYPE","");
// }
// messageMap.put("PRINCIPAI_USER",messageContent.getPrincipalUser());
// messageMap.put("DUTY_CAUSE_DESCRIPTION",messageContent.getDutyCauseDescription());
// }
//
// if(Constants.PROGRAM_CONFIRM.equals(messageContent.getStatus()) || Constants.SHUT_DOWN.equals(messageContent.getStatus())){
// messageMap.put("ABNORMAL_METHOD",AnomalyConstant.AnomalyMethod.msg(messageContent.getAbnormalMethod()));
// messageMap.put("RESOLVE_REMAKR",messageContent.getResolveRemark());
// messageMap.put("ROUTER",messageContent.getRouterDescription());
// messageMap.put("RESOLVE_SHOP_ORDER",messageContent.getResolveShopOrder());
// }
if(Constants.PROGRAM_CONFIRM.equals(messageContent.getStatus()) || Constants.SHUT_DOWN.equals(messageContent.getStatus())){
messageMap.put("ABNORMAL_METHOD",AnomalyConstant.AnomalyMethod.msg(messageContent.getAbnormalMethod()));
messageMap.put("RESOLVE_REMAKR",messageContent.getResolveRemark());
messageMap.put("ROUTER",messageContent.getRouterDescription());
messageMap.put("RESOLVE_SHOP_ORDER",messageContent.getResolveShopOrder());
}
//格式化之后的消息
return StringUtils.format(messageBody, messageMap);
}
@Override
@ -1374,6 +1339,51 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
}
}
@Override
public MessageType findMessageTypeByStatusAndUserGroup(Message message, AbnormalBill abnormalBill, AbnormalBillDispose abnormalBillDispose) {
String status = abnormalBill.getStatus();
String site = CommonMethods.getSite();
String userGroup = null;
//根据异常单的状态找到对应的用户组
switch (status){
case Constants.NEW:
userGroup = abnormalBill.getReportSendUserGroup();
break;
case Constants.PROGRAM_CONFIRM:
userGroup = abnormalBillDispose.getResolveSendUserGroup();
break;
case Constants.CORRECTION_CONFIRM:
userGroup = abnormalBillDispose.getDutySendUserGroup();
break;
case Constants.CANCEL:
userGroup = abnormalBill.getCancelSendUserGroup();
break;
default:
}
//如果异常单的状态为关闭或者响应中则直接返回true因为这两个状态不需要发送消息
if(Constants.RESPONSE.equals(status) || Constants.SHUT_DOWN.equals(status)){
return null;
}
if(StringUtils.isBlank(userGroup)){
throw new BaseException("消息发送失败,找不到对应的用户组");
}else{
MessageType type = null;
try{
type = messageTypeMapper.findMessageTypeByUserGroup(site, userGroup);
}catch (Exception e){
throw new BaseException("根据发送的用户组找到有可能找到多个对应的消息类型,请检查。"+e.getMessage());
}
if(type == null){
throw new BaseException("根据发送的用户组找不到对应的消息类型,请维护。");
}else{
return type;
}
}
}
@Override
public Map<String, String> jgProductionIsScrap(String abnormalNo, String site, String sfc) {
//查询该sfc在质量异常异常方案是否是报废,如果是则大于1

@ -5,6 +5,7 @@ import com.foreverwin.mesnac.anomaly.mapper.AbnormalBillMapper;
import com.foreverwin.mesnac.anomaly.model.AbnormalBill;
import com.foreverwin.mesnac.anomaly.service.AbnormalBillService;
import com.foreverwin.mesnac.anomaly.service.AnomalyJobService;
import com.foreverwin.mesnac.common.constant.Constants;
import com.foreverwin.mesnac.common.mapper.MessageMapper;
import com.foreverwin.mesnac.common.model.Message;
import com.foreverwin.mesnac.common.service.MessageService;
@ -61,7 +62,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();
// AbnormalBill abnormalBill = new AbnormalBill();
List<Message> abnormalMessages = messageMapper.selectList(abnormalMessageQueryWrapper);
for(Message _abnormalMessage : abnormalMessages){
String uuid = UUID.randomUUID().toString();
@ -90,10 +91,8 @@ public class AnomalyJobServiceImpl implements AnomalyJobService {
abnormalMessage.setUpUser(null);
}
abnormalBill.setHandle(abnormalMessage.getObjectBo());
String message = abnormalBillService.formatMessage(abnormalBill,abnormalMessage.getMessageType(),site);
AbnormalBill abnormalBill = abnormalBillMapper.selectById(abnormalMessage.getObjectBo());
abnormalMessage.setContent(message+"It's Job send");
//设置UP_DATE_TIME、UP_MESSAGE_TYPE、GRADE、RESPONSE_DATE_TIME、ABNORMAL_NODE、STATUS
abnormalMessage.setUpMessageType(null);
@ -105,6 +104,16 @@ public class AnomalyJobServiceImpl implements AnomalyJobService {
abnormalMessage.setStatus("Y");
_abnormalMessage.setStatus("Y");
String message = abnormalBillService.formatMessage(abnormalBill,abnormalMessage.getMessageType(),site);
abnormalMessage.setContent(message);
//根据异常消息的节点来判断所处的状态
if(Constants.ABNORMAL_MESSAGE_REPORT.equals(abnormalMessage.getNode())){
abnormalMessage.setContent(message+",现已超时未响应");
}else if(Constants.ABNORMAL_MESSAGE_RESPONSE.equals(abnormalMessage.getNode())){
abnormalMessage.setContent(message+",现已响应超时");
};
//设置时间
abnormalMessage.setCreatedUser(user);
abnormalMessage.setCreatedDateTime(now);

@ -1219,4 +1219,34 @@
</where>
ORDER BY zab.CREATED_DATE_TIME DESC
</select>
<select id="findReplaceMessageByAbnoraml" resultType="java.util.HashMap">
SELECT wct.DESCRIPTION WORKCENTER,so.SHOP_ORDER SHOPORDER ,item.VALUE PROJECT,it.DESCRIPTION ITEM,
LISTAGG(nct.DESCRIPTION , ',') WITHIN GROUP(ORDER BY zab.ABNORMAL_NO) NC,
r.DESCRIPTION "RESOURCE",r2.DESCRIPTION WORKCENTER_LIN
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
LEFT JOIN Z_ABNORMAL_BILL_DISPOSE zabd ON zabd.ABNORMAL_BILL_BO = zab.HANDLE
LEFT JOIN Z_ABNORMAL_NC_CODE zanc ON zanc.ABNORMAL_BILL_BO = zab.HANDLE
LEFT JOIN NC_CODE_T nct ON nct.NC_CODE_BO = 'NCCodeBO:'|| zanc.SITE || ',' || zanc.NC_CODE AND nct.LOCALE = 'zh'
LEFT JOIN ITEM_T it ON it.ITEM_BO = i.HANDLE AND it.LOCALE = 'zh'
LEFT JOIN WORK_CENTER wc ON wc.WORK_CENTER = zab.WORK_CENTER AND wc.SITE = zab.SITE
LEFT JOIN WORK_CENTER_T wct ON wct.WORK_CENTER_BO = wc.HANDLE AND wct.LOCALE = 'zh'
LEFT JOIN SHOP_ORDER so ON so.SHOP_ORDER = zab.SHOP_ORDER AND so.SITE = zab.SITE
LEFT JOIN CUSTOM_FIELDS item ON item.HANDLE = so.HANDLE AND item."ATTRIBUTE" = 'ITEM_NUMBER'
LEFT JOIN ROUTER r2 ON r2.HANDLE = so.PLANNED_ROUTER_BO
<where>
<if test="abnormalBill != null">
zab.SITE = #{abnormalBill.site}
<if test="abnormalBill.abnormalNo != null and abnormalBill.abnormalNo != ''">
AND zab.ABNORMAL_NO = #{abnormalBill.abnormalNo}
</if>
<if test="abnormalBill.handle != null and abnormalBill.handle != ''">
AND zab.HANDLE = #{abnormalBill.handle}
</if>
</if>
</where>
GROUP BY wct.DESCRIPTION ,so.SHOP_ORDER ,item.VALUE ,it.DESCRIPTION,r.DESCRIPTION,r2.DESCRIPTION
</select>
</mapper>

@ -1,7 +1,7 @@
package com.foreverwin.mesnac.common.mapper;
import com.foreverwin.mesnac.common.model.Message;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.foreverwin.mesnac.common.model.Message;
import org.springframework.stereotype.Repository;
/**

@ -41,4 +41,6 @@ public interface AnomalyService {
void anomalyReveseRepairShutDown(String abnormalNo);
}

@ -1,7 +1,8 @@
package com.foreverwin.mesnac.meapi.mapper;
import com.foreverwin.mesnac.meapi.model.MessageType;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.foreverwin.mesnac.meapi.model.MessageType;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
/**
@ -15,4 +16,11 @@ import org.springframework.stereotype.Repository;
@Repository
public interface MessageTypeMapper extends BaseMapper<MessageType> {
/**
*
* @param userGroup
* @param site
* @return
*/
MessageType findMessageTypeByUserGroup(@Param("site")String site, @Param("userGroup") String userGroup);
}

@ -441,4 +441,11 @@
<!-- BaseMapper标准查询/修改/删除 -->
<select id="findMessageTypeByUserGroup" resultMap="BaseResultMap">
SELECT mt.MESSAGE_TYPE,mt."BODY" "BODY"
FROM USER_GROUP ug
INNER JOIN MESSAGE_TYPE_USER_GROUP mtug ON mtug.USER_GROUP_BO = ug.HANDLE
INNER JOIN MESSAGE_TYPE mt ON mt.HANDLE = mtug.MESSAGE_TYPE_BO
WHERE ug.SITE = #{site} AND ug.USER_GROUP = #{userGroup}
</select>
</mapper>

Loading…
Cancel
Save