Browse Source

Merge remote-tracking branch 'origin/dev' into dev

huangct 8 years ago
parent
commit
e5d084c0e5

+ 27 - 10
src/main/java/com/uas/platform/b2b/listener/MessageListener.java

@@ -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())) {

+ 3 - 3
src/main/java/com/uas/platform/b2b/service/impl/PurcInquiryServiceImpl.java

@@ -294,7 +294,7 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
 				items.add(saleItem);
 			}
 		}
-		final List<PurchaseInquiryItem> purcitems = purchaseInquiryItemDao.save(items);
+		List<PurchaseInquiryItem> purcitems = purchaseInquiryItemDao.save(items);
 		// 触发事件,产生消息
 		ContextUtils.publishEvent(new PurchaseInquiryItemSaveReleaseEvent(PurchaseInquiryItem.distinct(purcitems)));
 		if (purcitems.get(0).getId() != null) {
@@ -302,7 +302,7 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
 			inquiry.setEnteryStatus(Status.ENABLED.value());
 			inquiryDao.save(inquiry);
 			saveUserOrders(purcitems);
-			logger.log("询价单", "平台提交询价单", useruu, SystemSession.getUser().getIp());
+			logger.log("询价单", "平台提交询价单", useruu, SystemSession.getUser().getIp());
 			map.put("success", "询价单提交成功");
 		} else {
 			map.put("error", "询价单提交失败");
@@ -333,7 +333,7 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
 							}
 						}
 					}
-					List<Vendor> vendors = vendorDao.findByMyEnUUAndVendUU(item.getVendUU(), item.getInquiry().getEnUU());
+					List<Vendor> vendors = vendorDao.findByMyEnUUAndVendUU(item.getInquiry().getEnUU(), item.getVendUU());
 					// 查找有权限的用户
 					if (!CollectionUtils.isEmpty(vendors)) {
 						Long vendorId = vendors.get(0).getId();

+ 1 - 1
src/main/java/com/uas/platform/b2b/service/impl/PurchaseInquiryServiceImpl.java

@@ -120,7 +120,7 @@ public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
 							}
 						}
 					}
-					List<Vendor> vendors = vendorDao.findByMyEnUUAndVendUU(item.getVendUU(), item.getInquiry().getEnUU());
+					List<Vendor> vendors = vendorDao.findByMyEnUUAndVendUU(item.getInquiry().getEnUU(), item.getVendUU());
 					// 查找有权限的用户
 					if (!CollectionUtils.isEmpty(vendors)) {
 						Long vendorId = vendors.get(0).getId();