|
|
@@ -2,8 +2,7 @@ package com.uas.platform.b2b.listener;
|
|
|
|
|
|
import com.uas.platform.b2b.dao.*;
|
|
|
import com.uas.platform.b2b.erp.model.UserAndEnterprise;
|
|
|
-import com.uas.platform.b2b.event.PurcInquirySaveReleaseEvent;
|
|
|
-import com.uas.platform.b2b.event.SaveReleaseEvent;
|
|
|
+import com.uas.platform.b2b.event.*;
|
|
|
import com.uas.platform.b2b.mobile.service.MobileReleaseService;
|
|
|
import com.uas.platform.b2b.model.*;
|
|
|
import com.uas.platform.core.model.Constant;
|
|
|
@@ -63,17 +62,32 @@ public class MessageListener implements ApplicationListener<SaveReleaseEvent<?,
|
|
|
PurcInquiryItem item = purcInquiryItemDao.findOne(detail.getPagingRelease().getSourceId());
|
|
|
if (null != item) {
|
|
|
//先取出企业uu
|
|
|
- String prodSql = "select distinct pr_enuu enuu from products p left join purc$vendors v on v.ve_vendenuu = p.pr_enuu where p.pr_title = '" + item.getProduct().getTitle() + "' and v.ve_myenuu = " + item.getInquiry().getEnUU();
|
|
|
- String inquirySql = "select distinct id_venduu enuu from purc$inquiryitems d left join purc$inquiry n on n.in_id = d.id_inid left join products p on p.pr_id = d.id_prid where p.pr_title = '" + item.getProduct().getTitle() + "' and n.in_enuu = " + item.getInquiry().getEnUU();
|
|
|
- String orderSql = "select distinct pu_venduu enuu from purc$orders pu left join purc$orderitems pd on pu.pu_id = pd.pd_puid left join products p on p.pr_id = pd.pd_prid where p.pr_title = '" + item.getProduct().getTitle() + "' and pu.pu_enuu = " + item.getInquiry().getEnUU();
|
|
|
+ // 产品库存在
|
|
|
+ String prodSql = "select distinct pr_enuu enuu from products p left join purc$vendors v " +
|
|
|
+ "on v.ve_vendenuu = p.pr_enuu where p.pr_title = '" + item.getProduct().getTitle() + "' " +
|
|
|
+ "and v.ve_myenuu = " + item.getInquiry().getEnUU();
|
|
|
+ // 询价单已报价的
|
|
|
+ String inquirySql = "select distinct id_venduu enuu from purc$inquiryitems d left join purc$inquiry n " +
|
|
|
+ "on n.in_id = d.id_inid left join products p on p.pr_id = d.id_prid where d.id_status = 201 " +
|
|
|
+ "and p.pr_title = '" + item.getProduct().getTitle() + "' and n.in_enuu = " + item.getInquiry().getEnUU();
|
|
|
+ // 下过采购订单的
|
|
|
+ String orderSql = "select distinct pu_venduu enuu from purc$orders pu left join purc$orderitems pd " +
|
|
|
+ "on pu.pu_id = pd.pd_puid left join products p on p.pr_id = pd.pd_prid " +
|
|
|
+ "where p.pr_title = '" + item.getProduct().getTitle() + "' and pu.pu_enuu = " + item.getInquiry().getEnUU();
|
|
|
+ // 主动报价过的
|
|
|
+ String quotationSql = "select distinct qu_enuu enuu from sale$quotation qu left join sale$quotationitem qd" +
|
|
|
+ " on qu.qu_id = qd.qd_quid left join products p on qd.qd_prid = p.pr_id " +
|
|
|
+ "where p.pr_title = '" + item.getProduct().getTitle() + "' and qu.qu_custuu = " + item.getInquiry().getEnUU();
|
|
|
List<UserAndEnterprise> prodEnUUs = commonDao.query(prodSql, UserAndEnterprise.class);
|
|
|
List<UserAndEnterprise> inquiryEnUUs = commonDao.query(inquirySql, UserAndEnterprise.class);
|
|
|
- List<UserAndEnterprise> orderEnuus = commonDao.query(orderSql, UserAndEnterprise.class);
|
|
|
+ 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<>();
|
|
|
enuus.addAll(prodEnUUs);
|
|
|
enuus.addAll(inquiryEnUUs);
|
|
|
- enuus.addAll(orderEnuus);
|
|
|
+ enuus.addAll(orderEnUUs);
|
|
|
+ enuus.addAll(quotationEnUUs);
|
|
|
// enuus存在才进行人员选择
|
|
|
if(enuus.size() > 0) {
|
|
|
for(UserAndEnterprise enter : enuus) {
|
|
|
@@ -110,6 +124,9 @@ public class MessageListener implements ApplicationListener<SaveReleaseEvent<?,
|
|
|
}
|
|
|
// 公共询价消息暂时不采用手机推送
|
|
|
pagingReleaseDetailDao.save(otherReleaseDetails);
|
|
|
+ // 询价单单独处理(使用共用方法会出现,分别给两个企业发同一张询价单,两个企业都存在的用户会只收到其中一个企业的一条消息。)
|
|
|
+// } else if (event instanceof PurchaseInquiryItemSaveReleaseEvent || event instanceof PurchaseInquiryItemInvalidReleaseEvent || event instanceof PurchaseInquiryItemDecideReleaseEvent) {
|
|
|
+
|
|
|
} else {
|
|
|
for (PagingReleaseDetail detail : pagingReleaseDetails) {
|
|
|
// 先将产生的一条记录加入保存列表,去掉用1补充空值的情况
|
|
|
@@ -118,8 +135,8 @@ public class MessageListener implements ApplicationListener<SaveReleaseEvent<?,
|
|
|
}
|
|
|
PagingRelease release = detail.getPagingRelease();
|
|
|
if (null != detail.getVendUU() && null != release.getEnUU()) { // 确保消息有效才继续
|
|
|
- if (release.getToVendor() == Constant.YES) { // 如果是发给供应商的消息,才会管理员和有权限用户都可以收到消息--2017年8月24日 16:12:05 dongbw加,避免客户方用户收到太多消息
|
|
|
- // 添加管理员 2017-08-25 10:18:36 注释
|
|
|
+ if (release.getToVendor() == Constant.YES) { // 如果是发给供应商的消息,才会管理员和有权限用户都可以收到消息--2017年8月24日 16:12:05加,避免客户方用户收到太多消息
|
|
|
+ // 添加管理员
|
|
|
// List<Role> roles = roleDao.findByEnUUAndIssys(detail.getVendUU(), Constant.YES);
|
|
|
// if (!CollectionUtils.isEmpty(roles)) {
|
|
|
// List<User> admins = userDao.findByRole(roles.get(0).getId());
|
|
|
@@ -130,7 +147,7 @@ public class MessageListener implements ApplicationListener<SaveReleaseEvent<?,
|
|
|
// }
|
|
|
// }
|
|
|
List<Vendor> vendors;
|
|
|
- // 判断提前,防止客户方收到过多单据提示消息 2017年8月24日 16:19:26 注 dongbw
|
|
|
+ // 判断提前,防止客户方收到过多单据提示消息
|
|
|
// if (release.getToVendor() == Constant.YES) { // 消息接收方为供应商,查找供应商表方式不同
|
|
|
vendors = vendorDao.findByMyEnUUAndVendUU(release.getEnUU(), detail.getVendUU());
|
|
|
if (!CollectionUtils.isEmpty(vendors) && !userUUs.contains(vendors.get(0).getVendUserUU())) {
|