Browse Source

求购询价 站内信

hubert 7 years ago
parent
commit
b30e0a1fdd

+ 1 - 1
src/main/java/com/uas/ps/inquiry/Application.java

@@ -21,7 +21,7 @@ import java.io.PrintStream;
  * @since 2017年8月16日 下午4:00:03
  */
 @EnableTransactionManagement
-@SpringBootApplication
+@SpringBootApplication(scanBasePackages = "com.uas.ps.inquiry")
 @EnableWebMvc
 //@EnableSSO
 public class Application {

+ 125 - 0
src/main/java/com/uas/ps/inquiry/controller/DeadlineTask.java

@@ -0,0 +1,125 @@
+package com.uas.ps.inquiry.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.uas.ps.core.util.ContextUtils;
+import com.uas.ps.inquiry.AccessConfiguration;
+import com.uas.ps.inquiry.dao.EnterpriseDao;
+import com.uas.ps.inquiry.dao.PurcInquiryItemDao;
+import com.uas.ps.inquiry.entity.MessageModel;
+import com.uas.ps.inquiry.model.Enterprise;
+import com.uas.ps.inquiry.model.PublicInquiryItem;
+import com.uas.ps.inquiry.model.PurcInquiryItem;
+import com.uas.ps.inquiry.util.FlexJsonUtils;
+import com.uas.ps.inquiry.util.HttpUtil;
+import com.uas.ps.inquiry.util.ThreadUtils;
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 求购截止,每日晚上轮询一次
+ *
+ * @param
+
+ */
+@Component
+@EnableAsync
+@EnableScheduling
+public class DeadlineTask {
+    @Autowired
+    private PurcInquiryItemDao purcInquiryItemDao;
+
+    @Autowired
+    private EnterpriseDao enterpriseDao;
+
+    private static final Logger log = Logger.getLogger(Logger.class);
+
+    /**
+     * 公共消息访问地址
+     */
+    private final String PS_MESSAGE_URL = ContextUtils.getBean(AccessConfiguration.class).getPsMessageUrl();
+    /**
+     * 消息类型,公共询价的采纳结果
+     */
+    private final String INQUIRY_DECIDE_TYPE_MALL = "商城公共询价采纳结果";
+
+    /**
+     * 消费类型: 多个,MULTI
+     */
+    private final String CUST_TYPE = "MULTI";
+
+    /**
+     * 接收应用
+     */
+    private final String CONSUMERAPP = "B2B,MALL";
+
+    /**
+     * 应用来源,主要是为了平台公共询价做处理
+     */
+    private String sourceApp = "MALL";
+
+    @Scheduled(cron =  "0 30 23 ? * *" )//每天23:30分执行
+
+
+    public void execute(){
+         List<PublicInquiryItem> d = purcInquiryItemDao.findendDate();
+            for(PublicInquiryItem param : d){
+                final String SMS_TYPE = "SM"; //发送信息
+                List<MessageModel> models = new ArrayList<MessageModel>();
+                String cmpCode = param.getCmpCode();
+                String cmp = cmpCode.length() > 10 ? cmpCode.substring(0, 10).concat("...") : cmpCode;
+                String content= param.getInquiry().getEnName()+"关于“型号:"+ cmp +"“的求购【已截止】,您的报价尚未被采纳。";
+                MessageModel model = new MessageModel();
+                model.setType(INQUIRY_DECIDE_TYPE_MALL);
+                model.setProducerApp(sourceApp);
+                model.setConsumerType(CUST_TYPE);
+                model.setConsumerApp(CONSUMERAPP);
+                model.setContent(content);
+                model.setRemark(String.valueOf(param.getInquiry().getId()));
+                model.setSourceId(param.getId());
+                model.setReceiverEnuu(param.getVendUU());
+                model.setReceiverUu(param.getVendUserUU());
+                model.setSenderEnuu(param.getInquiry().getEnUU());
+                if (null != param.getUserUU() || null != param.getInquiry().getRecorderUU()) {
+                    model.setSenderUu(param.getUserUU() != null ? param.getUserUU() : param.getInquiry().getRecorderUU());
+                } else {
+                    Enterprise enterprise = enterpriseDao.findOne(param.getInquiry().getEnUU());
+                    model.setSenderUu(null != enterprise ? enterprise.getAdminUU() : 0L);
+                }
+                model.setSmsType(SMS_TYPE);
+                models.add(model);
+                if (!CollectionUtils.isEmpty(models)) {
+                    sendMessage(models);
+                }
+
+        }
+    }
+    /**
+     * 发送消息推送
+     *
+     * @param models 封装的消息信息
+     */
+    private void sendMessage(final List<MessageModel> models) {
+        ThreadUtils.task(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    log.info("发送消息实体" + JSON.toJSONString(models));
+                    String res = HttpUtil.doPost(PS_MESSAGE_URL + "/messages", FlexJsonUtils.toJsonDeep(models));
+                    log.info("消息请求发送日志" + res);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }).run();
+    }
+}

+ 31 - 0
src/main/java/com/uas/ps/inquiry/controller/InquiryForBuyerController.java

@@ -69,6 +69,37 @@ public class InquiryForBuyerController {
         inquiryService.decideQuote(id, status);
     }
 
+    /**
+     * 通过明细id对供应商报价进行审核操作
+     *
+     * @param id 报价明细id
+     * @param status 状态
+     * @return
+     * @throws Exception
+     */
+    @HttpLog
+    @RequestMapping(value = "/adopt", method = RequestMethod.POST)
+    public void adoptQuote(Long id, Short status, Long enuu, Long useruu) throws Exception {
+        logger.log("公共询价", "通过明细id采纳供应商报价", "id: " + id + ",采纳状态: " + status, useruu, enuu, InquirySource.PLAIN.name());
+        inquiryService.adpotQuote(id, status);
+    }
+
+
+    /**
+     * 通过明细id对供应商报价进行审核操作
+     *
+     * @param id 报价明细id
+     * @param status 状态
+     * @return
+     * @throws Exception
+     */
+    @HttpLog
+    @RequestMapping(value = "/refuse", method = RequestMethod.POST)
+    public void refuseQuote(Long id, Short status, Long enuu, Long useruu,String refusereason) throws Exception {
+        logger.log("公共询价", "通过明细id决绝供应商报价", "id: " + id + ",采纳状态: " + status, useruu, enuu, InquirySource.PLAIN.name());
+        inquiryService.refuseQuote(id, status,refusereason);
+    }
+
     /**
      * 客户查询供应商报价详情
      *

+ 4 - 0
src/main/java/com/uas/ps/inquiry/controller/InquiryForSaleController.java

@@ -12,6 +12,7 @@ import com.uas.ps.inquiry.model.*;
 import com.uas.ps.inquiry.page.PageInfo;
 import com.uas.ps.inquiry.page.SearchFilter;
 import com.uas.ps.inquiry.service.InquiryForSaleService;
+import com.uas.ps.inquiry.service.PublicInquiryService;
 import com.uas.ps.inquiry.support.InquiryBufferedLogger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Sort;
@@ -36,6 +37,8 @@ public class InquiryForSaleController {
 
     @Autowired
     private InquiryForSaleService saleService;
+    @Autowired
+    private PublicInquiryService publicInquiryService;
 
     private final static InquiryBufferedLogger logger = BufferedLoggerManager.getLogger(InquiryBufferedLogger.class);
 
@@ -119,6 +122,7 @@ public class InquiryForSaleController {
         item = saleService.saveItem(item);
         logger.log("公共询价", "作为卖家,对公共询价进行报价操作", "sourceid: " + item.getSourceId() == null ? null : item.getSourceId() + ", id" + item.getId(),
                 item.getVendUserUU(), item.getVendUU(), item.getQutoApp());
+        publicInquiryService.ReceiveMessage(item,InquirySource.MALL.name());
         if (null != item) {
             PublicInquiry inquiry = item.getInquiry();
             inquiry.setQuteId(item.getId());

+ 9 - 0
src/main/java/com/uas/ps/inquiry/dao/PurcInquiryItemDao.java

@@ -49,4 +49,13 @@ public interface PurcInquiryItemDao extends JpaSpecificationExecutor<PurcInquiry
      */
     @Query("from PurcInquiryItem i where i.inquiry.id = :inid")
     List<PurcInquiryItem> findByInid(@Param("inid") Long inid);
+
+    /**
+     * 查询截止日期
+     *
+     * @param
+     * @return
+     */
+    @Query("FROM PublicInquiryItem where DATE_FORMAT(endDate, '%y-%m-%d') = DATE_FORMAT(now(), '%y-%m-%d') And agreed is null")
+    List<PublicInquiryItem> findendDate();
 }

+ 84 - 63
src/main/java/com/uas/ps/inquiry/model/PublicInquiryItem.java

@@ -225,6 +225,13 @@ public class PublicInquiryItem implements Serializable {
 	@Column(name = "id_agreed")
 	private Short agreed;
 
+
+	/**
+	 * 拒绝采纳理由
+	 */
+	@Column(name = "id_refusereason")
+	private String refusereason;
+
 	/**
 	 * (针对卖家的)是否采纳信息传输状态{待上传、已下载}
 	 */
@@ -944,6 +951,14 @@ public class PublicInquiryItem implements Serializable {
 		this.custCurrency = custCurrency;
 	}
 
+	public String getRefusereason() {
+		return refusereason;
+	}
+
+	public void setRefusereason(String refusereason) {
+		this.refusereason = refusereason;
+	}
+
 	/**
 	 * 将公共询价单转成报价单
 	 *
@@ -1039,67 +1054,73 @@ public class PublicInquiryItem implements Serializable {
 		return inquiries;
     }
 
-    @Override
-    public String toString() {
-        return "PublicInquiryItem{" +
-                "id=" + id +
-                ", sourceId=" + sourceId +
-                ", number=" + number +
-                ", inquiry=" + inquiry +
-                ", userUU=" + userUU +
-                ", userName='" + userName + '\'' +
-                ", userTel='" + userTel + '\'' +
-                ", userCode='" + userCode + '\'' +
-                ", productId=" + productId +
-                ", product=" + product +
-                ", currency='" + currency + '\'' +
-                ", taxrate=" + taxrate +
-                ", remark='" + remark + '\'' +
-                ", vendUU=" + vendUU +
-                ", enterprise=" + enterprise +
-                ", vendUserUU=" + vendUserUU +
-                ", user=" + user +
-                ", fromDate=" + fromDate +
-                ", toDate=" + toDate +
-                ", vendFromDate=" + vendFromDate +
-                ", vendToDate=" + vendToDate +
-                ", minOrderQty=" + minOrderQty +
-                ", minPackQty=" + minPackQty +
-                ", brand='" + brand + '\'' +
-                ", vendorprodcode='" + vendorprodcode + '\'' +
-                ", leadtime=" + leadtime +
-                ", replies=" + replies +
-                ", status=" + status +
-                ", sendStatus=" + sendStatus +
-                ", backStatus=" + backStatus +
-                ", replySendStatus=" + replySendStatus +
-                ", agreed=" + agreed +
-                ", decideStatus=" + decideStatus +
-                ", invalidStatus=" + invalidStatus +
-                ", custLap=" + custLap +
-                ", erpDate=" + erpDate +
-                ", date=" + date +
-                ", overdue=" + overdue +
-                ", invalid=" + invalid +
-                ", source='" + source + '\'' +
-                ", qutoApp='" + qutoApp + '\'' +
-                ", attaches=" + attaches +
-                ", needquantity=" + needquantity +
-                ", erpstatus=" + erpstatus +
-                ", kind='" + kind + '\'' +
-                ", vendName='" + vendName + '\'' +
-                ", businessCode='" + businessCode + '\'' +
-                ", offerTime=" + offerTime +
-                ", unitPrice=" + unitPrice +
-                ", produceDate='" + produceDate + '\'' +
-                ", encapsulation='" + encapsulation + '\'' +
-                ", endDate=" + endDate +
-                ", prodCode='" + prodCode + '\'' +
-                ", prodTitle='" + prodTitle + '\'' +
-                ", spec='" + spec + '\'' +
-                ", unit='" + unit + '\'' +
-                ", cmpCode='" + cmpCode + '\'' +
-                ", inbrand='" + inbrand + '\'' +
-                '}';
-    }
+	@Override
+	public String toString() {
+		return "PublicInquiryItem{" +
+				"id=" + id +
+				", sourceId=" + sourceId +
+				", number=" + number +
+				", inquiry=" + inquiry +
+				", userUU=" + userUU +
+				", userName='" + userName + '\'' +
+				", userTel='" + userTel + '\'' +
+				", userCode='" + userCode + '\'' +
+				", productId=" + productId +
+				", product=" + product +
+				", currency='" + currency + '\'' +
+				", taxrate=" + taxrate +
+				", remark='" + remark + '\'' +
+				", vendUU=" + vendUU +
+				", enterprise=" + enterprise +
+				", vendUserUU=" + vendUserUU +
+				", user=" + user +
+				", fromDate=" + fromDate +
+				", toDate=" + toDate +
+				", vendFromDate=" + vendFromDate +
+				", vendToDate=" + vendToDate +
+				", minOrderQty=" + minOrderQty +
+				", minPackQty=" + minPackQty +
+				", brand='" + brand + '\'' +
+				", vendorprodcode='" + vendorprodcode + '\'' +
+				", leadtime=" + leadtime +
+				", replies=" + replies +
+				", status=" + status +
+				", sendStatus=" + sendStatus +
+				", backStatus=" + backStatus +
+				", replySendStatus=" + replySendStatus +
+				", agreed=" + agreed +
+				", refusereason='" + refusereason + '\'' +
+				", decideStatus=" + decideStatus +
+				", invalidStatus=" + invalidStatus +
+				", custLap=" + custLap +
+				", erpDate=" + erpDate +
+				", date=" + date +
+				", overdue=" + overdue +
+				", invalid=" + invalid +
+				", source='" + source + '\'' +
+				", qutoApp='" + qutoApp + '\'' +
+				", attaches=" + attaches +
+				", needquantity=" + needquantity +
+				", erpstatus=" + erpstatus +
+				", kind='" + kind + '\'' +
+				", vendName='" + vendName + '\'' +
+				", businessCode='" + businessCode + '\'' +
+				", offerTime=" + offerTime +
+				", unitPrice=" + unitPrice +
+				", produceDate='" + produceDate + '\'' +
+				", encapsulation='" + encapsulation + '\'' +
+				", endDate=" + endDate +
+				", prodCode='" + prodCode + '\'' +
+				", prodTitle='" + prodTitle + '\'' +
+				", spec='" + spec + '\'' +
+				", unit='" + unit + '\'' +
+				", cmpCode='" + cmpCode + '\'' +
+				", inbrand='" + inbrand + '\'' +
+				", remainingTime=" + remainingTime +
+				", checked=" + checked +
+				", attachUrl='" + attachUrl + '\'' +
+				", attachName='" + attachName + '\'' +
+				", custCurrency='" + custCurrency + '\'' +
+				'}';
+	}
 }

+ 1 - 4
src/main/java/com/uas/ps/inquiry/service/InquiryForSaleService.java

@@ -1,10 +1,7 @@
 package com.uas.ps.inquiry.service;
 
 import com.uas.ps.inquiry.domain.IPage;
-import com.uas.ps.inquiry.model.Attach;
-import com.uas.ps.inquiry.model.InquiryRemind;
-import com.uas.ps.inquiry.model.PublicInquiryItem;
-import com.uas.ps.inquiry.model.PublicInquiryReply;
+import com.uas.ps.inquiry.model.*;
 import com.uas.ps.inquiry.page.PageInfo;
 import com.uas.ps.inquiry.page.SearchFilter;
 import org.springframework.data.domain.Page;

+ 17 - 0
src/main/java/com/uas/ps/inquiry/service/InquiryService.java

@@ -40,6 +40,23 @@ public interface InquiryService {
      */
     void decideQuote(Long id, Short status);
 
+    /**
+     * 通过报价明细id对供应商报价进行相关审核操作
+     *
+     * @param id 报价明细id
+     * @param status 状态
+     */
+    void adpotQuote(Long id, Short status);
+
+    /**
+     * 通过报价明细id对供应商报价进行相关审核操作
+     *
+     * @param id 报价明细id
+     * @param status 状态
+     * @param refusereason 拒绝理由
+     */
+    void refuseQuote(Long id, Short status,String refusereason);
+
     /**
      * 针对客户,查询供应商报价详情
      *

+ 30 - 5
src/main/java/com/uas/ps/inquiry/service/PublicInquiryService.java

@@ -1,11 +1,7 @@
 package com.uas.ps.inquiry.service;
 
 import com.uas.ps.inquiry.domain.IPage;
-import com.uas.ps.inquiry.entity.BatchInquiry;
-import com.uas.ps.inquiry.entity.Inquiry;
-import com.uas.ps.inquiry.entity.InquiryDecide;
-import com.uas.ps.inquiry.entity.InquiryDetail;
-import com.uas.ps.inquiry.entity.InquiryMessage;
+import com.uas.ps.inquiry.entity.*;
 import com.uas.ps.inquiry.model.*;
 import com.uas.ps.inquiry.page.PageInfo;
 import com.uas.ps.inquiry.page.SearchFilter;
@@ -232,5 +228,34 @@ public interface PublicInquiryService {
      * @return
      */
     List<PurcInquiryItemInfo> covertRemindToInquiry(List<InquiryRemind> content);
+
+    /**
+     * 消息推送
+     *
+     * @param item 询价明细
+     * @param sourceApp 应用来源
+     * @return
+     */
+    Page<MessageModel> refuseMessage(PublicInquiryItem item, String sourceApp);
+
+    /**
+     * 消息推送
+     *
+     * @param item 询价明细
+     * @param sourceApp 应用来源
+     * @return
+     */
+    Page<MessageModel> adoptMessage(PublicInquiryItem item, String sourceApp);
+
+
+
+    /**
+     * 针对买家,通知买家供应商已报价
+     *
+     * @param
+     * @param
+     * @return
+     */
+    Page<MessageModel> ReceiveMessage(PublicInquiryItem item, String sourceApp);
 }
 

+ 1 - 0
src/main/java/com/uas/ps/inquiry/service/impl/InquiryForSaleServiceImpl.java

@@ -10,6 +10,7 @@ import com.uas.ps.inquiry.dao.*;
 import com.uas.ps.inquiry.domain.IPage;
 import com.uas.ps.inquiry.entity.Constant;
 import com.uas.ps.inquiry.entity.InquirySource;
+import com.uas.ps.inquiry.entity.MessageModel;
 import com.uas.ps.inquiry.model.*;
 import com.uas.ps.inquiry.page.PageInfo;
 import com.uas.ps.inquiry.page.SearchFilter;

+ 44 - 0
src/main/java/com/uas/ps/inquiry/service/impl/InquiryServiceImpl.java

@@ -286,6 +286,50 @@ public class InquiryServiceImpl implements InquiryService {
         inquiryService.notifyDecide(item, InquirySource.B2B.name());
     }
 
+
+    /**
+     * 商城通过报价明细id采纳对供应商报价
+     *
+     * @param id 报价明细id
+     * @param status 状态
+     */
+    @Override
+    public void adpotQuote(Long id, Short status) {
+        PublicInquiryItem item = itemDao.findOne(id);
+        item.setAgreed(status);
+        itemDao.save(item);
+        // 更新询价推荐表相关信息
+        if (status.equals(Constant.YES)) {
+            inquiryRemindDao.updateStatus(item.getSourceId(), Status.ALLOW.value(), item.getVendUU());
+        } else if (status.equals(Constant.NO)) {
+            inquiryRemindDao.updateStatus(item.getSourceId(), Status.NOTALLOW.value(), item.getVendUU());
+        }
+        // 更新原公共询价单该条明细,设置为不可报价
+        String sql = "update purc$puinquiryitems set id_overdue = 1 where id_id = " + item.getSourceId();
+        jdbcTemplate.update(sql);
+        inquiryService.adoptMessage(item, InquirySource.MALL.name());
+    }
+
+    /**
+     * 商城通过报价明细id拒绝对供应商报价
+     *
+     * @param id 报价明细id
+     * @param status 状态
+     */
+    @Override
+    public void refuseQuote(Long id, Short status,String refusereason) {
+        PublicInquiryItem item = itemDao.findOne(id);
+        item.setAgreed(status);
+        item.setRefusereason(refusereason);
+        itemDao.save(item);
+        if (status.equals(Constant.YES)) {
+            inquiryRemindDao.updateStatus(item.getSourceId(), Status.ALLOW.value(), item.getVendUU());
+        } else if (status.equals(Constant.NO)) {
+            inquiryRemindDao.updateStatus(item.getSourceId(), Status.NOTALLOW.value(), item.getVendUU());
+        }
+        inquiryService.refuseMessage(item,InquirySource.MALL.name());
+    }
+
     /**
      * 针对客户,查询供应商报价详情
      *

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

@@ -90,16 +90,32 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
      */
     private final String SOURCERAPP = "B2B";
 
+
     /**
      * 消息类型 (在B2B消息中拼接跳转单据详情url请求时需要)
      */
     private final String INQUIRY_TYPE = "公共询价";
 
+    /**
+     * 消息类型 (在B2B消息中拼接跳转单据详情url请求时需要)
+     */
+    private final String INQUIRY_TYPE_MALL = "MALL公共询价";
+
+    /**
+     * 消息类型 (在MALL消息中拼接求购询价待报价)
+     */
+    private final String INQUIRY_TYPE_SELLER_MALL = "MALL跳转卖家待报价页面";
+
     /**
      * 消息类型,公共询价的采纳结果
      */
     private final String INQUIRY_DECIDE_TYPE = "公共询价采纳结果";
 
+    /**
+     * 消息类型,公共询价的采纳结果
+     */
+    private final String INQUIRY_DECIDE_TYPE_MALL = "商城公共询价采纳结果";
+
     /**
      * 询价种类
      */
@@ -133,7 +149,7 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
     /**
      * 接收应用
      */
-    private final String CONSUMERAPP = "B2B,MALL";
+    private final String CONSUMERAPP = "B2B";
 
     /**
      * 公共物料访问地址
@@ -202,6 +218,7 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
      */
     @Override
     public void notifyMessage(List<PurcInquiryItem> inquiryItems, String sourceApp) throws Exception {
+        final String CONSUMERAPP ="MALL,B2B";
         for (PurcInquiryItem item : inquiryItems) {
            String cmpCode = null;
            if (item.getCmpCode() != null) {
@@ -226,7 +243,7 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
                                 User u = userDao.findOne(null != item.getInquiry().getRecorderUU() ? item.getInquiry().getRecorderUU() : 0L);
                                 Enterprise e = enterpriseDao.findOne(item.getInquiry().getEnUU());
                                 String cmp = cmpCode.length() > 10 ? cmpCode.substring(0, 10).concat("...") : cmpCode;
-                                String content = "发布关于“" + cmp + "”的公共询价信息,邀请您参与报价";
+                                String content = "发布关于“型号:" + cmp + "”的公共询价信息,邀请您参与报价";
                                 if (null != e) {
                                     content = e.getEnName() + content;
                                 } else if (null != u) {
@@ -234,6 +251,7 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
                                 }
                                 MessageModel model = new MessageModel();
                                 model.setType(INQUIRY_TYPE);
+                                model.setType(INQUIRY_TYPE_SELLER_MALL);
                                 model.setProducerApp(sourceApp);
                                 model.setConsumerType(CUST_TYPE);
                                 model.setConsumerApp(CONSUMERAPP);
@@ -612,7 +630,7 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
             product = productDao.findOne(item.getProductId());
         }
         String cmpCode = product.getCmpCode() != null ? product.getCmpCode() : item.getCmpCode();
-        String content = item.getAgreed() == 1 ? "【采纳】" : "【未采纳】";
+        String content = item.getAgreed() == 1 ? "【采纳】" : "【未采纳】";
         content = content + "您关于“" + cmpCode + "”的报价";
         if (null != e) {
             content = e.getEnName() + content;
@@ -620,7 +638,7 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
             content = u.getUserName() + content;
         } else if (null == e && null == u) {
             content = "您关于“" + cmpCode + "”的报价已被";
-            String result = item.getAgreed() == 1 ? "【采纳】" : "【拒绝】";
+            String result = item.getAgreed() == 1 ? "【采纳】" : "【拒绝】";
             content = content + result;
         }
         MessageModel model = new MessageModel();
@@ -1199,4 +1217,130 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
         }
         return infoList;
     }
+
+    /**
+     * 针对供应商,客户将拒绝理由发送信息给供应商
+     *
+     * @param item 询价明细
+     * @param sourceApp 应用来源
+     * @throws Exception
+     */
+    @Override
+    public Page<MessageModel> refuseMessage(PublicInquiryItem item, String sourceApp) {
+        if (null != item.getVendUU() && null != item.getVendUserUU() ) {
+                final String SMS_TYPE = "SM"; //发送信息
+                final String CONSUMERAPP ="MALL";
+                List<MessageModel> models = new ArrayList<MessageModel>();
+                String Buyer=item.getInquiry().getEnName() == null ? item.getInquiry().getRecorder():item.getInquiry().getEnName();
+                String cmpCode = item.getCmpCode();
+                String cmp = cmpCode.length() > 10 ? cmpCode.substring(0, 10).concat("...") : cmpCode;
+                String content= "因"+item.getRefusereason() + "," + Buyer + "【未采纳】您关于“型号:" + cmp + "”的报价。期待与您的下次合作!" ;
+                MessageModel model = new MessageModel();
+                model.setType(INQUIRY_DECIDE_TYPE_MALL);
+                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);
+                }
+            }
+        return null;
+
+    }
+    /**
+     * 针对供应商,把客户采纳报价的消息发送给供应商
+     *
+     * @param item 询价明细
+     * @param sourceApp 应用来源
+     * @throws Exception
+     */
+    @Override
+    public Page<MessageModel> adoptMessage(PublicInquiryItem item, String sourceApp) {
+        if (null != item.getVendUU() && null != item.getVendUserUU() ) {
+            final String SMS_TYPE = "SM"; //发送信息
+            final String CONSUMERAPP ="MALL";
+            List<MessageModel> models = new ArrayList<MessageModel>();
+            String cmpCode = item.getCmpCode();
+            String cmp = cmpCode.length() > 10 ? cmpCode.substring(0, 10).concat("...") : cmpCode;
+            String content= item.getInquiry().getEnName()+"【已采纳】您关于'型号:'" + cmp + "的报价,期待与您的合作!" ;
+            MessageModel model = new MessageModel();
+            model.setType(INQUIRY_DECIDE_TYPE_MALL);
+            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);
+            }
+        }
+        return null;
+
+    }
+
+    @Override
+    public Page<MessageModel> ReceiveMessage(PublicInquiryItem item, String sourceApp) {
+        if (null != item.getVendUU() && null != item.getVendUserUU() ) {
+            final String SMS_TYPE = "SM"; //发送信息
+            final String CONSUMERAPP ="MALL";
+            List<MessageModel> models = new ArrayList<MessageModel>();
+            String cmpCode = item.getCmpCode();
+            String cmp = cmpCode.length() > 10 ? cmpCode.substring(0, 10).concat("...") : cmpCode;
+            String content= "您收到了"+item.getVendName()+"关于“型号:"+ cmp +"“的报价,马上去看一看吧!";
+
+            MessageModel model = new MessageModel();
+            model.setType(INQUIRY_TYPE_MALL);
+            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.getInquiry().getEnUU());
+            model.setReceiverUu(item.getInquiry().getRecorderUU());
+            model.setSenderEnuu(item.getVendUU());
+            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);
+            }
+        }
+        return null;
+
+
+    }
+
+
 }