Browse Source

更新新增公共询价时消息精准推送的方法

hejq 7 years ago
parent
commit
5a5c0c1c7f

+ 52 - 52
src/main/java/com/uas/ps/inquiry/service/impl/PublicInquiryServiceImpl.java

@@ -181,66 +181,66 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
         for (PurcInquiryItem item : inquiryItems) {
             Product product = productDao.findOne(item.getProductId());
             if (null == product) {
-                List<Product> productList = productDao.findByEnUUAndCmpCodeAndBrand(item.getInquiry().getEnUU(), item.getCmpCode(), item.getBrand());
-                if (CollectionUtils.isEmpty(productList)) {
-                    throw new NotFoundException("询价单" + item.getInquiry().getCode() + ",明细第" + item.getNumber() + "行未找到对应物料");
-                } else {
+                List<Product> productList = productDao.findByEnUUAndCmpCodeAndBrand(item.getInquiry().getEnUU(), item.getCmpCode(), item.getInbrand());
+                if (!CollectionUtils.isEmpty(productList)) {
                     product = productList.get(0);
                 }
             }
-            String url = PS_PRODUCT_URL + "/productuser/getProductUsersByEnUUAndCmpCode";
-            JSONObject formData = new JSONObject();
-            formData.put("enUU", item.getInquiry().getEnUU());
-            formData.put("cmpCode", item.getCmpCode());
-            try {
-                HttpUtil.Response res = HttpUtil.sendGetRequest(url, formData);
-                if (res.getStatusCode() == 200) {
-                    List<ProductUsers> users = FlexJsonUtils.fromJsonArray(res.getResponseText(), ProductUsers.class);
-                    if (!CollectionUtils.isEmpty(users)) {
-                        List<MessageModel> models = new ArrayList<MessageModel>();
-                        for (ProductUsers user : users) {
-                            User u = userDao.findOne(null != item.getInquiry().getRecorderUU() ? item.getInquiry().getRecorderUU() : 0L);
-                            Enterprise e = enterpriseDao.findOne(item.getInquiry().getEnUU());
-                            String cmp = product.getCmpCode().length() > 10 ? product.getCmpCode().substring(0, 10).concat("...") : product.getCmpCode();
-                            String content = "发布关于“" + cmp + "”的公共询价信息,邀请您参与报价";
-                            if (null != e) {
-                                content = e.getEnName() + content;
-                            } else if (null != u) {
-                                content = u.getUserName() + content;
+            if (null != product) {
+                String url = PS_PRODUCT_URL + "/productuser/getProductUsersByEnUUAndCmpCode";
+                JSONObject formData = new JSONObject();
+                formData.put("enUU", item.getInquiry().getEnUU());
+                formData.put("cmpCode", item.getCmpCode());
+                try {
+                    HttpUtil.Response res = HttpUtil.sendGetRequest(url, formData);
+                    if (res.getStatusCode() == 200) {
+                        List<ProductUsers> users = FlexJsonUtils.fromJsonArray(res.getResponseText(), ProductUsers.class);
+                        if (!CollectionUtils.isEmpty(users)) {
+                            List<MessageModel> models = new ArrayList<MessageModel>();
+                            for (ProductUsers user : users) {
+                                User u = userDao.findOne(null != item.getInquiry().getRecorderUU() ? item.getInquiry().getRecorderUU() : 0L);
+                                Enterprise e = enterpriseDao.findOne(item.getInquiry().getEnUU());
+                                String cmp = product.getCmpCode().length() > 10 ? product.getCmpCode().substring(0, 10).concat("...") : product.getCmpCode();
+                                String content = "发布关于“" + cmp + "”的公共询价信息,邀请您参与报价";
+                                if (null != e) {
+                                    content = e.getEnName() + content;
+                                } else if (null != u) {
+                                    content = u.getUserName() + content;
+                                }
+                                MessageModel model = new MessageModel();
+                                model.setType(INQUIRY_TYPE);
+                                model.setProducerApp(sourceApp);
+                                model.setConsumerType(CUST_TYPE);
+                                model.setConsumerApp(CONSUMERAPP);
+                                model.setContent(content);
+                                model.setRemark(String.valueOf(item.getInquiry().getId()));
+                                model.setSourceId(item.getId());
+                                model.setReceiverEnuu(user.getEnuu());
+                                model.setReceiverUu(user.getUseruu());
+                                model.setSenderEnuu(item.getInquiry().getEnUU());
+                                if (null != item.getUserUU() || null != item.getInquiry().getRecorderUU()) {
+                                    model.setSenderUu(item.getUserUU() != null ? item.getUserUU() : item.getInquiry().getRecorderUU());
+                                } else {
+                                    Enterprise enterprise = enterpriseDao.findOne(item.getInquiry().getEnUU());
+                                    model.setSenderUu(null != enterprise ? enterprise.getAdminUU() : 0L);
+                                }
+                                model.setSmsType(SMS_TYPE);
+                                model.setMailTemplate(MAIL_TEMP_ID);
+                                model.setSmTemplate(SMS_TEMP_ID);
+                                models.add(model);
                             }
-                            MessageModel model = new MessageModel();
-                            model.setType(INQUIRY_TYPE);
-                            model.setProducerApp(sourceApp);
-                            model.setConsumerType(CUST_TYPE);
-                            model.setConsumerApp(CONSUMERAPP);
-                            model.setContent(content);
-                            model.setRemark(String.valueOf(item.getInquiry().getId()));
-                            model.setSourceId(item.getId());
-                            model.setReceiverEnuu(user.getEnuu());
-                            model.setReceiverUu(user.getUseruu());
-                            model.setSenderEnuu(item.getInquiry().getEnUU());
-                            if (null != item.getUserUU() || null != item.getInquiry().getRecorderUU()) {
-                                model.setSenderUu(item.getUserUU() != null ? item.getUserUU() : item.getInquiry().getRecorderUU());
-                            } else {
-                               Enterprise enterprise = enterpriseDao.findOne(item.getInquiry().getEnUU());
-                               model.setSenderUu(null != enterprise ? enterprise.getAdminUU() : 0L);
+                            if (!CollectionUtils.isEmpty(models)) {
+                                sendMessage(models);
                             }
-                            model.setSmsType(SMS_TYPE);
-                            model.setMailTemplate(MAIL_TEMP_ID);
-                            model.setSmTemplate(SMS_TEMP_ID);
-                            models.add(model);
-                        }
-                        if (!CollectionUtils.isEmpty(models)) {
-                            sendMessage(models);
-                        }
 
-                        // 生成推荐信息
-                        remindInquiry(inquiryItems, users);
+                            // 生成推荐信息
+                            remindInquiry(inquiryItems, users);
+                        }
                     }
+                } catch (Exception e) {
+                    logger.info("根据企业UU和物料原厂型号cmpCode从公共物料库获取个人产品库相关用户失败:" + e.getMessage());
+                    e.printStackTrace();
                 }
-            } catch (Exception e) {
-                logger.info("根据企业UU和物料原厂型号cmpCode从公共物料库获取个人产品库相关用户失败:" + e.getMessage());
-                e.printStackTrace();
             }
         }
     }