|
|
@@ -105,7 +105,7 @@ public class MessageListener implements ApplicationListener<SaveReleaseEvent<?,
|
|
|
List<UserAndEnterprise> orderEnUUs = commonDao.query(orderSql, UserAndEnterprise.class);
|
|
|
List<UserAndEnterprise> quotationEnUUs = commonDao.query(quotationSql, UserAndEnterprise.class);
|
|
|
List<UserAndEnterprise> enuus = new ArrayList<>();
|
|
|
- Set<Long> enUUs = new HashSet<>();
|
|
|
+ Set<Long> enUUs = new HashSet<Long>();
|
|
|
enuus.addAll(prodEnUUs);
|
|
|
enuus.addAll(inquiryEnUUs);
|
|
|
enuus.addAll(orderEnUUs);
|
|
|
@@ -114,13 +114,29 @@ public class MessageListener implements ApplicationListener<SaveReleaseEvent<?,
|
|
|
if (enuus.size() > 0) {
|
|
|
for (UserAndEnterprise enter : enuus) {
|
|
|
if (!enUUs.contains(enter.getEnuu())) {
|
|
|
- List<UserAndEnterprise> useruus = commonDao.query(
|
|
|
- "select distinct user_uu useruu from sec$userrole u left join sec$roles r on u.role_id = r.role_id where r.role_desc = '业务员' and r.role_enuu = " + enter.getEnuu(),
|
|
|
- UserAndEnterprise.class);
|
|
|
- if (CollectionUtils.isEmpty(useruus)) {
|
|
|
+ List<UserAndEnterprise> useruus = new ArrayList<UserAndEnterprise>();
|
|
|
+ // 先查询客户分配
|
|
|
+ String sql = "select distinct(purc$distribute.pd_useruu) useruu from purc$distribute left join purc$vendors " +
|
|
|
+ "on purc$distribute.pd_vdid = purc$vendors.ve_id where purc$vendors.ve_myenuu = " + item.getInquiry().getEnUU() +
|
|
|
+ "and purc$vendors.ve_vendenuu = " + enter.getEnuu();
|
|
|
+ List<UserAndEnterprise> uus = commonDao.query(sql, UserAndEnterprise.class);
|
|
|
+ if(!CollectionUtils.isEmpty(uus)) {
|
|
|
+ for(UserAndEnterprise uu : uus) {// 再查询单个物料的分配情况
|
|
|
+ Integer count = commonDao.queryForObject("select count(1) from product$users left join products on product$users.pu_prid = products.pr_id" +
|
|
|
+ " where products.pr_code = '" + item.getProdCode() + "' or products.pr_title = '" + item.getProdTitle() + "'", Integer.class);
|
|
|
+ if(count > 0)
|
|
|
+ useruus.add(uu);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isEmpty(useruus)) {// 如果分配的业务员没有相关物料的信息,再分配给企业的业务员
|
|
|
useruus = commonDao.query(
|
|
|
- "select distinct user_uu useruu from sec$userrole u left join sec$roles r on u.role_id = r.role_id where r.role_desc = '管理员' and r.role_enuu = " + enter.getEnuu(),
|
|
|
+ "select distinct user_uu useruu from sec$userrole u left join sec$roles r on u.role_id = r.role_id where r.role_desc = '业务员' and r.role_enuu = " + enter.getEnuu(),
|
|
|
UserAndEnterprise.class);
|
|
|
+ if (CollectionUtils.isEmpty(useruus)) {// 以上两种情况都没有直接发送给管理员
|
|
|
+ useruus = commonDao.query(
|
|
|
+ "select distinct user_uu useruu from sec$userrole u left join sec$roles r on u.role_id = r.role_id where r.role_desc = '管理员' and r.role_enuu = " + enter.getEnuu(),
|
|
|
+ UserAndEnterprise.class);
|
|
|
+ }
|
|
|
}
|
|
|
// 新增消息
|
|
|
for (UserAndEnterprise userAndEnterprise : useruus) {
|
|
|
@@ -132,56 +148,72 @@ public class MessageListener implements ApplicationListener<SaveReleaseEvent<?,
|
|
|
PagingReleaseDetail pagingReleaseDetail = new PagingReleaseDetail(enter.getEnuu(), userUU, user.getUserName());
|
|
|
pagingReleaseDetail.setPagingRelease(detail.getPagingRelease());
|
|
|
otherReleaseDetails.add(pagingReleaseDetail);
|
|
|
+
|
|
|
+ // 发送邮件
|
|
|
+ Map<String, Object> model = new HashMap<String, Object>();
|
|
|
+ Enterprise vendor = enterpriseDao.findOne(enter.getEnuu());
|
|
|
+ model.put("vendorname", null != vendor.getEnName() ? vendor.getEnName() : "供应商");
|
|
|
+ model.put("custname", null != item.getInquiry().getEnterprise() ? item.getInquiry().getEnterprise().getEnName() : "");
|
|
|
+ model.put("code", item.getInquiry().getCode());
|
|
|
+ model.put("date", DateFormatUtils.DATE_FORMAT.format(new Date()));
|
|
|
+ if(null != user.getUserEmail() && user.getUserEmail().matches(emailRegex))
|
|
|
+ try {
|
|
|
+ mailService.send(messageConf.getTplInquiryForB2B(), user.getUserEmail(), model);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
} catch (RuntimeException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
// 发送邮件
|
|
|
- List<User> userEmails = commonDao.query(
|
|
|
- "select distinct user_email userEmail from sec$users u left join sec$userrole ur on u.user_uu = ur.user_uu " +
|
|
|
- "left join sec$roles r on r.role_id = ur.role_id " +
|
|
|
- "where r.role_desc = '业务员' and u.user_email is not null and r.role_enuu = " + enter.getEnuu(),
|
|
|
- User.class);
|
|
|
- if (CollectionUtils.isEmpty(userEmails)) {
|
|
|
- userEmails = commonDao.query(
|
|
|
- "select distinct user_email userEmail from sec$users u left join sec$userrole ur on u.user_uu = ur.user_uu " +
|
|
|
- "left join sec$roles r on r.role_id = ur.role_id " +
|
|
|
- "where r.role_desc = '管理员' and u.user_email is not null and r.role_enuu = " + enter.getEnuu(),
|
|
|
- User.class);
|
|
|
- }
|
|
|
- // 发邮件
|
|
|
- Map<String, Object> model = new HashMap<String, Object>();
|
|
|
- Enterprise vendor = enterpriseDao.findOne(enter.getEnuu());
|
|
|
- if (null != vendor) {
|
|
|
- model.put("vendorname", vendor.getEnName());
|
|
|
- } else {
|
|
|
- model.put("vendorname", "供应商");
|
|
|
- }
|
|
|
- if (null != item.getInquiry().getEnterprise()) {
|
|
|
- model.put("custname", item.getInquiry().getEnterprise().getEnName());
|
|
|
- } else {
|
|
|
- model.put("custname", "");
|
|
|
- }
|
|
|
- model.put("code", item.getInquiry().getCode());
|
|
|
- model.put("date", DateFormatUtils.DATE_FORMAT.format(new Date()));
|
|
|
- for (User userEmail : userEmails) {
|
|
|
- if (Pattern.matches(emailRegex, userEmail.getUserEmail())) {
|
|
|
- try {
|
|
|
- mailService.send(messageConf.getTplInquiryForB2B(), userEmail.getUserEmail(), model);
|
|
|
+// List<User> userEmails = commonDao.query(
|
|
|
+// "select distinct user_email userEmail from sec$users u left join sec$userrole ur on u.user_uu = ur.user_uu " +
|
|
|
+// "left join sec$roles r on r.role_id = ur.role_id " +
|
|
|
+// "where r.role_desc = '业务员' and u.user_email is not null and r.role_enuu = " + enter.getEnuu(),
|
|
|
+// User.class);
|
|
|
+// if (CollectionUtils.isEmpty(userEmails)) {
|
|
|
+// userEmails = commonDao.query(
|
|
|
+// "select distinct user_email userEmail from sec$users u left join sec$userrole ur on u.user_uu = ur.user_uu " +
|
|
|
+// "left join sec$roles r on r.role_id = ur.role_id " +
|
|
|
+// "where r.role_desc = '管理员' and u.user_email is not null and r.role_enuu = " + enter.getEnuu(),
|
|
|
+// User.class);
|
|
|
+// }
|
|
|
+// // 发邮件
|
|
|
+// Map<String, Object> model = new HashMap<String, Object>();
|
|
|
+// Enterprise vendor = enterpriseDao.findOne(enter.getEnuu());
|
|
|
+// if (null != vendor) {
|
|
|
+// model.put("vendorname", vendor.getEnName());
|
|
|
+// } else {
|
|
|
+// model.put("vendorname", "供应商");
|
|
|
+// }
|
|
|
+// if (null != item.getInquiry().getEnterprise()) {
|
|
|
+// model.put("custname", item.getInquiry().getEnterprise().getEnName());
|
|
|
+// } else {
|
|
|
+// model.put("custname", "");
|
|
|
+// }
|
|
|
+// model.put("code", item.getInquiry().getCode());
|
|
|
+// model.put("date", DateFormatUtils.DATE_FORMAT.format(new Date()));
|
|
|
+// for (User userEmail : userEmails) {
|
|
|
+// if (Pattern.matches(emailRegex, userEmail.getUserEmail())) {
|
|
|
+// try {
|
|
|
+// mailService.send(messageConf.getTplInquiryForB2B(), userEmail.getUserEmail(), model);
|
|
|
// noticeDao.saveErpLog(detail.getPagingRelease().getEmName(), "",
|
|
|
// detail.getPagingRelease().getEnUU(), detail.getPagingRelease().getEmUU(),
|
|
|
// "公共询价单通知邮件", "发送成功,询价单号" + detail.getPagingRelease().getCode());
|
|
|
- } catch (Exception e) {
|
|
|
+// } catch (Exception e) {
|
|
|
// noticeDao.saveErpLog(detail.getPagingRelease().getEmName(), "",
|
|
|
// detail.getPagingRelease().getEnUU(), detail.getPagingRelease().getEmUU(),
|
|
|
// "公共询价单通知邮件", "发送失败,询价单号" + detail.getPagingRelease().getCode());
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+// e.printStackTrace();
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
|
|
|
// // 发送短信
|
|
|
// List<User> userTels = commonDao.query(
|