Browse Source

针对供应商,客户对报价信息采纳结果进行消息通知

hejq 7 years ago
parent
commit
64744ef3cf

+ 8 - 0
src/main/java/com/uas/ps/inquiry/service/PublicInquiryService.java

@@ -199,6 +199,14 @@ public interface PublicInquiryService {
      */
     void notify(List<PurcInquiryItem> inquiryItems, String sourceApp) throws Exception;
 
+    /**
+     * 针对供应商,客户对报价采纳结果进行消息通知
+     *
+     * @param item 询价明细
+     * @param sourceApp 来源
+     */
+    void notifyDecide(PublicInquiryItem item, String sourceApp);
+
     /**
      * 通过id查询询价信息
      *

+ 2 - 4
src/main/java/com/uas/ps/inquiry/service/impl/InquiryServiceImpl.java

@@ -10,10 +10,7 @@ import com.uas.ps.inquiry.dao.PublicInquiryItemDao;
 import com.uas.ps.inquiry.dao.PurcInquiryDao;
 import com.uas.ps.inquiry.dao.PurcInquiryItemDao;
 import com.uas.ps.inquiry.dao.PurcInquiryItemInfoDao;
-import com.uas.ps.inquiry.entity.Constant;
-import com.uas.ps.inquiry.entity.InquiryDetailInfo;
-import com.uas.ps.inquiry.entity.InquiryProductInfo;
-import com.uas.ps.inquiry.entity.OrderStatus;
+import com.uas.ps.inquiry.entity.*;
 import com.uas.ps.inquiry.model.PublicInquiry;
 import com.uas.ps.inquiry.model.PublicInquiryItem;
 import com.uas.ps.inquiry.model.PurcInquiry;
@@ -208,6 +205,7 @@ public class InquiryServiceImpl implements InquiryService {
         // 更新原公共询价单该条明细,设置为不可报价
         String sql = "update purc$puinquiryitems set id_overdue = 1 where id_id = " + item.getSourceId();
         jdbcTemplate.update(sql);
+        inquiryService.notifyDecide(item, InquirySource.B2B.name());
     }
 
     /**

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

@@ -510,10 +510,57 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
         if (!CollectionUtils.isEmpty(publicInquiryItems)) {
             for (PublicInquiryItem inquiryItem : publicInquiryItems) {
                 publicInquiryItemDao.updateDecideStatusByID(inquiryItem.getAgreed(), inquiryItem.getDecideStatus(), inquiryItem.getId());
+                notifyDecide(inquiryItem, PRODUCERAPP);
             }
         }
     }
 
+    /**
+     * 针对供应商,客户对报价结果发送消息通知
+     *
+     * @param item 询价明细
+     * @param sourceApp 应用来源
+     */
+    @Override
+    public void notifyDecide(PublicInquiryItem item, String sourceApp) {
+        final String SMS_TYPE = "IM"; //只推送消息
+        List<MessageModel> models = new ArrayList<MessageModel>();
+        User u = userDao.findOne(null != item.getInquiry().getRecorderUU() ? item.getInquiry().getRecorderUU() : 0L);
+        Enterprise e = enterpriseDao.findOne(item.getInquiry().getEnUU());
+        String content = item.getAgreed() == 1 ? "【采纳】" : "【未采纳】" + "您关于“" + item.getCmpCode() + "”的报价";
+        if (null != e) {
+            content = e.getEnName() + content;
+        } else if (null != u) {
+            content = u.getUserName() + content;
+        } else {
+            content = "您关于“" + item.getCmpCode() + "”的报价已被";
+            String result = item.getAgreed() == 1 ? "【采纳】" : "【拒绝】";
+            content = content + result;
+        }
+        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(item.getVendUU());
+        model.setReceiverUu(item.getVendUserUU());
+        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);
+        models.add(model);
+        if (!CollectionUtils.isEmpty(models)) {
+            sendMessage(models);
+        }
+    }
+
     /**
      * 将ERP的报价采纳信息转为公共询价服务中心需要的信息
      *