diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java index 1226637d4..b7022beef 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java @@ -38,9 +38,10 @@ package com.xdadan.erp.emis.service.impl; import com.xdadan.erp.emis.service.warehouse.DocUtils; import com.xdadan.erp.emis.utils.WaybillHelper; import com.xdadan.erp.emis.utils.sensitive.Convert; - import com.xdadan.erp.system.domain.SysFileInfo; - import com.xdadan.erp.system.service.ISysFileInfoService; - import com.xdadan.erp.system.service.ISysNoticeService; +import com.xdadan.erp.system.domain.SysFileInfo; +import com.xdadan.erp.system.mapper.SysUserMapper; +import com.xdadan.erp.system.service.ISysFileInfoService; +import com.xdadan.erp.system.service.ISysNoticeService; import jodd.util.StringUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.MapUtils; @@ -156,6 +157,9 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb @Autowired private EmisMoneyUserMapper emisMoneyUserMapper; + @Autowired + private SysUserMapper sysUserMapper; + /** * 保存或更新运单其他信息副表 * @param emisWaybillSave @@ -6236,13 +6240,13 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb } try { - // 收集需要通知的员工编码:销售联系人、销售支持、销售分享人 - Set notifyEmpCodes = new LinkedHashSet<>(); + // 收集需要通知的员工姓名:销售联系人、销售支持、销售分享人 + Set notifyEmpNames = new LinkedHashSet<>(); // 销售联系人 if (!StringUtils.isEmpty(waybill.getSalesmen())) { String salesmen = waybill.getSalesmen(); - notifyEmpCodes.add(salesmen); + notifyEmpNames.add(salesmen); // 销售分享关系:salesmen -> salesAss(使用当前批次预加载的关系) List relList = salesRelMap.get(salesmen); @@ -6251,7 +6255,7 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb if (rel == null || StringUtils.isEmpty(rel.getSalesAss())) { continue; } - notifyEmpCodes.add(rel.getSalesAss()); + notifyEmpNames.add(rel.getSalesAss()); } } } @@ -6262,23 +6266,46 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb String[] supports = waybillOther.getSalesSupport().split("[,,]"); for (String support : supports) { if (!StringUtils.isEmpty(support)) { - notifyEmpCodes.add(support.trim()); + notifyEmpNames.add(support.trim()); } } } + if (notifyEmpNames.isEmpty()) { + continue; + } + + // 根据notifyEmpNames查询sys_user获取所有的notifyEmpCodes + Set notifyEmpCodes = new LinkedHashSet<>(); + for (String empName : notifyEmpNames) { + try { + SysUser cond = new SysUser(); + cond.setEmpName(empName); + List users = sysUserMapper.selectUserList(cond); + if (!CollectionUtils.isEmpty(users)) { + for (SysUser u : users) { + if (u != null && !StringUtils.isEmpty(u.getEmpCode())) { + notifyEmpCodes.add(u.getEmpCode()); + } + } + } + } catch (Exception ex) { + log.error("autoTraceWarning: query sys_user error, billCode={}, empName={}", waybill.getBillCode(), empName, ex); + } + } + if (notifyEmpCodes.isEmpty()) { continue; } String billCode = waybill.getBillCode(); - String timeStr = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, now); - String title = "轨迹异常:运单【" + billCode + "】停留超过3天_" + timeStr; - String content = title; String url = "/d24/waybillManagement/SendWaybillList?billCode=" + billCode; notifyEmpCodes.forEach(empCode -> { try { - NoticeUtils.outSendNoticeToInner(title, content, url, empCode, 3); +// String timeStr = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, now); + String title = "轨迹异常:运单【" + billCode + "】停留超过3天_" + empCode; + String content = title; + NoticeUtils.outSendNoticeToInner(title, content, url, empCode, 2); } catch (Exception ex) { log.error("autoTraceWarning: send notice error, billCode={}, empCode={}", billCode, empCode, ex); }