Browse Source

erp公共询价单上传到平台及平台数据同步传回ERP插入询价表

hejq 9 years ago
parent
commit
d53ec8f31f

+ 1 - 1
src/main/java/com/uas/platform/b2b/dao/PurchaseInquiryItemDao.java

@@ -44,7 +44,7 @@ public interface PurchaseInquiryItemDao extends JpaSpecificationExecutor<Purchas
 	 * @param backStatus
 	 * @return
 	 */
-	@Query("from PurchaseInquiryItem d where d.inquiry.enUU = :enUU and d.backStatus = :backStatus and d.sourceApp is null")
+	@Query("from PurchaseInquiryItem d where d.inquiry.enUU = :enUU and d.backStatus = :backStatus and nvl(d.sourceApp, ' ') <> 'B2B'")
 	List<PurchaseInquiryItem> findByEnUUAndBackStatus(@Param("enUU") long enUU, @Param("backStatus") short backStatus);
 
 	/**

+ 59 - 0
src/main/java/com/uas/platform/b2b/erp/controller/PublicInquiryController.java

@@ -0,0 +1,59 @@
+package com.uas.platform.b2b.erp.controller;
+
+import com.uas.platform.b2b.erp.model.BatchInquiry;
+import com.uas.platform.b2b.erp.service.PublicInquiryService;
+import com.uas.platform.b2b.erp.support.ErpBufferedLogger;
+import com.uas.platform.b2b.support.SystemSession;
+import com.uas.platform.core.logging.BufferedLoggerManager;
+import com.uas.platform.core.util.serializer.FlexJsonUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.util.List;
+
+/**
+ * Created by hejq on 2017-09-14.
+ * <pre>
+ *     erp公共询价接口
+ * </pre>
+ */
+@RestController
+@RequestMapping("/erp/purchase/publicinquiry")
+public class PublicInquiryController {
+
+    @Autowired
+    private PublicInquiryService publicInquiryService;
+
+    private final static ErpBufferedLogger logger = BufferedLoggerManager.getLogger(ErpBufferedLogger.class);
+
+    /**
+     * 保存erp发布的公共询价
+     *
+     * @param data
+     * @throws UnsupportedEncodingException
+     */
+    @RequestMapping(method = RequestMethod.POST)
+    public void saveInquiry(@RequestParam("data") String data) throws UnsupportedEncodingException {
+        String jsonStr = URLDecoder.decode(data, "UTF-8");
+        List<BatchInquiry> inquiries = FlexJsonUtils.fromJsonArray(jsonStr, BatchInquiry.class);
+        publicInquiryService.save(publicInquiryService.convertInquiry(inquiries), SystemSession.getUser().getEnterprise().getUu());
+        logger.log("erp公共询价单", "erp上传公共询价单", inquiries.size());
+
+    }
+
+    /**
+     * erp的公共询价单提交待审核时,更新平台的单据设置为不能报价
+     *
+     * @param data
+     * @throws UnsupportedEncodingException
+     */
+    @RequestMapping(value = "/check", method = RequestMethod.POST)
+    public void updateInquiryStatus(@RequestParam("data") String data) throws  UnsupportedEncodingException {
+        String jsonStr = URLDecoder.decode(data, "UTF-8");
+        List<BatchInquiry> inquiries = FlexJsonUtils.fromJsonArray(jsonStr, BatchInquiry.class);
+        publicInquiryService.updateStatus(inquiries);
+        logger.log("erp公共询价单", "erp关闭公共询价单", inquiries.size());
+    }
+}

+ 88 - 0
src/main/java/com/uas/platform/b2b/erp/model/BatchInProduct.java

@@ -0,0 +1,88 @@
+package com.uas.platform.b2b.erp.model;
+
+/**
+ * 公共询价物料
+ * 
+ * @author hejq
+ * @time 创建时间:2017年9月18日
+ */
+public class BatchInProduct {
+
+	/**
+	 * 明细id
+	 */
+	private Long bip_id;
+	
+	/**
+	 * 主表id
+	 */
+	private Long bip_biid;
+	
+	/**
+	 * 序号
+	 */
+	private Short bip_detno;
+	
+	/**
+	 * 物料编号
+	 */
+	private String bip_prodcode;
+	
+	/**
+	 * 备注
+	 */
+	private String bip_remark;
+
+	/**
+	 * 币别
+	 */
+	private String bip_currency;
+
+	public Long getBip_id() {
+		return bip_id;
+	}
+
+	public void setBip_id(Long bip_id) {
+		this.bip_id = bip_id;
+	}
+
+	public Long getBip_biid() {
+		return bip_biid;
+	}
+
+	public void setBip_biid(Long bip_biid) {
+		this.bip_biid = bip_biid;
+	}
+
+	public Short getBip_detno() {
+		return bip_detno;
+	}
+
+	public void setBip_detno(Short bip_detno) {
+		this.bip_detno = bip_detno;
+	}
+
+	public String getBip_prodcode() {
+		return bip_prodcode;
+	}
+
+	public void setBip_prodcode(String bip_prodcode) {
+		this.bip_prodcode = bip_prodcode;
+	}
+
+	public String getBip_remark() {
+		return bip_remark;
+	}
+
+	public void setBip_remark(String bip_remark) {
+		this.bip_remark = bip_remark;
+	}
+
+	public String getBip_currency() {
+		return bip_currency;
+	}
+
+	public void setBip_currency(String bip_currency) {
+		this.bip_currency = bip_currency;
+	}
+}

+ 260 - 0
src/main/java/com/uas/platform/b2b/erp/model/BatchInquiry.java

@@ -0,0 +1,260 @@
+package com.uas.platform.b2b.erp.model;
+
+import com.alibaba.dubbo.common.utils.CollectionUtils;
+import com.uas.platform.b2b.model.PurcInquiry;
+import com.uas.platform.core.model.Constant;
+import com.uas.platform.core.model.Status;
+
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * 公共询价单
+ * 
+ * @author hejq
+ * @time 创建时间:2017年9月15日
+ */
+public class BatchInquiry {
+
+	/**
+	 * erp id
+	 */
+	private Long bi_id;
+	
+	/**
+	 * 询价单号
+	 */
+	private String bi_code;
+	
+	/**
+	 * 时间
+	 */
+	private Date bi_date;
+	
+	/**
+	 * 询价类型
+	 */
+	private String bi_kind;
+	
+	/**
+	 * 环保需求
+	 */
+	private String bi_environment;
+	
+	/**
+	 * 使用范围
+	 */
+	private String bi_purpose;
+	
+	/**
+	 * 价格类型
+	 */
+	private String bi_pricekind;
+	
+	/**
+	 * 录入人
+	 */
+	private String bi_recorder;
+
+	/**
+	 * 录入人uu
+	 */
+	private Long bi_recorduu;
+
+	/**
+	 * 录入时间
+	 */
+	private String bi_recorddate;
+	
+	/**
+	 * 报价截止日期
+	 */
+	private Date bi_enddate;
+	
+	/**
+	 * 备注
+	 */
+	private String bi_remark;
+	
+	/**
+	 * 价格种类
+	 */
+	private String bi_pricetype;
+
+	/**
+	 * 询价物料
+	 */
+	private List<BatchInProduct> inProducts;
+	
+	/**
+	 * 附件
+	 */
+	private String in_attach;
+	
+	/**
+	 *  所有的附件信息
+	 */
+	private List<Attach> attaches;
+	
+	public Long getBi_id() {
+		return bi_id;
+	}
+
+	public void setBi_id(Long bi_id) {
+		this.bi_id = bi_id;
+	}
+
+	public String getBi_code() {
+		return bi_code;
+	}
+
+	public void setBi_code(String bi_code) {
+		this.bi_code = bi_code;
+	}
+
+	public Date getBi_date() {
+		return bi_date;
+	}
+
+	public void setBi_date(Date bi_date) {
+		this.bi_date = bi_date;
+	}
+
+	public String getBi_kind() {
+		return bi_kind;
+	}
+
+	public void setBi_kind(String bi_kind) {
+		this.bi_kind = bi_kind;
+	}
+
+	public String getBi_environment() {
+		return bi_environment;
+	}
+
+	public void setBi_environment(String bi_environment) {
+		this.bi_environment = bi_environment;
+	}
+
+	public String getBi_purpose() {
+		return bi_purpose;
+	}
+
+	public void setBi_purpose(String bi_purpose) {
+		this.bi_purpose = bi_purpose;
+	}
+
+	public String getBi_pricekind() {
+		return bi_pricekind;
+	}
+
+	public void setBi_pricekind(String bi_pricekind) {
+		this.bi_pricekind = bi_pricekind;
+	}
+
+	public String getBi_recorder() {
+		return bi_recorder;
+	}
+
+	public void setBi_recorder(String bi_recorder) {
+		this.bi_recorder = bi_recorder;
+	}
+
+	public Long getBi_recorduu() {
+		return bi_recorduu;
+	}
+
+	public void setBi_recorduu(Long bi_recorduu) {
+		this.bi_recorduu = bi_recorduu;
+	}
+
+	public String getBi_recorddate() {
+		return bi_recorddate;
+	}
+
+	public void setBi_recorddate(String bi_recorddate) {
+		this.bi_recorddate = bi_recorddate;
+	}
+
+	public Date getBi_enddate() {
+		return bi_enddate;
+	}
+
+	public void setBi_enddate(Date bi_enddate) {
+		this.bi_enddate = bi_enddate;
+	}
+
+	public String getBi_remark() {
+		return bi_remark;
+	}
+
+	public void setBi_remark(String bi_remark) {
+		this.bi_remark = bi_remark;
+	}
+
+	public String getBi_pricetype() {
+		return bi_pricetype;
+	}
+
+	public void setBi_pricetype(String bi_pricetype) {
+		this.bi_pricetype = bi_pricetype;
+	}
+
+	public List<BatchInProduct> getInProducts() {
+		return inProducts;
+	}
+
+	public void setInProducts(List<BatchInProduct> inProducts) {
+		this.inProducts = inProducts;
+	}
+
+	public String getIn_attach() {
+		return in_attach;
+	}
+
+	public void setIn_attach(String in_attach) {
+		this.in_attach = in_attach;
+	}
+
+	public List<Attach> getAttaches() {
+		return attaches;
+	}
+
+	public void setAttaches(List<Attach> attaches) {
+		this.attaches = attaches;
+	}
+
+
+    public PurcInquiry covert() {
+		PurcInquiry inquiry = new PurcInquiry();
+		inquiry.setEnteryStatus(Status.ENABLED.value());
+		inquiry.setCode(this.getBi_code());
+		inquiry.setPriceType(this.bi_pricetype);
+		inquiry.setDate(this.bi_date);
+		inquiry.setEndDate(this.bi_enddate);
+		inquiry.setEnvironment(this.bi_environment);
+		inquiry.setInquirytype("公共询价");
+		inquiry.setIsOpen(Constant.YES);
+		inquiry.setRemark(this.bi_remark);
+		inquiry.setRecorder(this.bi_recorder);
+		inquiry.setRecorderUU(this.bi_recorduu);
+		inquiry.setErpdate(new Date());
+		inquiry.setErpid(this.bi_id);
+		inquiry.setSourceapp("ERP");
+		if (!CollectionUtils.isEmpty(this.attaches)) {
+			Set<com.uas.platform.b2b.model.Attach> b2bAttaches = new HashSet<com.uas.platform.b2b.model.Attach>();
+			for(Attach attach : this.attaches) {
+				com.uas.platform.b2b.model.Attach b2bAttach = attach.convertToB2bAttach("客户采购公共询价单附件");
+				b2bAttaches.add(b2bAttach);
+			}
+			inquiry.setAttachs(b2bAttaches);
+		}
+		return inquiry;
+    }
+
+    public BatchInquiry() {
+
+	}
+}

+ 36 - 13
src/main/java/com/uas/platform/b2b/erp/model/InquiryDetail.java

@@ -1,22 +1,13 @@
 package com.uas.platform.b2b.erp.model;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.commons.collections.CollectionUtils;
-
 import com.uas.platform.b2b.model.Attach;
-import com.uas.platform.b2b.model.Product;
-import com.uas.platform.b2b.model.PurchaseInquiryItem;
-import com.uas.platform.b2b.model.PurchaseInquiryReply;
-import com.uas.platform.b2b.model.SaleQuotationItem;
-import com.uas.platform.b2b.model.SaleQuotationPrice;
+import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.Status;
+import org.apache.commons.collections.CollectionUtils;
+
+import java.util.*;
 
 /**
  * 买家ERP系统的采购询价单明细
@@ -50,6 +41,9 @@ public class InquiryDetail {
 	private String id_attach;
 	private Long ve_buyeruu;
 	private String sourceApp;
+	private String id_vendname;// 供应商名称
+	private String id_vendyyzzh;// 供应商营业执照号
+	private String in_code;// 公共询价时epr没有表不同,这时,需要新建数据
 
 	public Long getB2b_id_id() {
 		return b2b_id_id;
@@ -243,6 +237,30 @@ public class InquiryDetail {
 		this.id_attach = id_attach;
 	}
 
+	public String getId_vendname() {
+		return id_vendname;
+	}
+
+	public void setId_vendname(String id_vendname) {
+		this.id_vendname = id_vendname;
+	}
+
+	public String getId_vendyyzzh() {
+		return id_vendyyzzh;
+	}
+
+	public void setId_vendyyzzh(String id_vendyyzzh) {
+		this.id_vendyyzzh = id_vendyyzzh;
+	}
+
+	public String getIn_code() {
+		return in_code;
+	}
+
+	public void setIn_code(String in_code) {
+		this.in_code = in_code;
+	}
+
 	/**
 	 * 转为平台的采购询价明细
 	 * 
@@ -294,6 +312,11 @@ public class InquiryDetail {
 		this.id_leadtime = item.getLeadtime();
 		this.sourceApp = item.getSourceApp();
 		this.id_rate = item.getTaxrate();
+		this.id_vendname = item.getEnterprise().getEnName();
+		this.id_vendyyzzh = item.getEnterprise().getBusinesscode();
+		this.in_code = item.getInquiry().getCode();
+		this.id_prodcode = item.getProduct().getCode();
+		this.id_currency = item.getCurrency();
 		if (!CollectionUtils.isEmpty(item.getReplies())) {
 			dets = new ArrayList<InquiryDetailDet>();
 			for (PurchaseInquiryReply reply : item.getReplies()) {

+ 27 - 0
src/main/java/com/uas/platform/b2b/erp/model/UserAndEnterprise.java

@@ -0,0 +1,27 @@
+package com.uas.platform.b2b.erp.model;
+
+/**
+ * Created by hejq on 2017-09-18.
+ */
+public class UserAndEnterprise {
+
+    private Long enuu;
+
+    private Long useruu;
+
+    public Long getEnuu() {
+        return enuu;
+    }
+
+    public void setEnuu(Long enuu) {
+        this.enuu = enuu;
+    }
+
+    public Long getUseruu() {
+        return useruu;
+    }
+
+    public void setUseruu(Long useruu) {
+        this.useruu = useruu;
+    }
+}

+ 34 - 0
src/main/java/com/uas/platform/b2b/erp/service/PublicInquiryService.java

@@ -0,0 +1,34 @@
+package com.uas.platform.b2b.erp.service;
+
+import com.uas.platform.b2b.erp.model.BatchInquiry;
+import com.uas.platform.b2b.model.PurcInquiry;
+
+import java.util.List;
+
+/**
+ * Created by hejq on 2017-09-18.
+ */
+public interface PublicInquiryService {
+
+    /**
+     * 将ERP系统的采购询价,转为平台的询价单
+     *
+     * @param inquiries
+     * @return
+     */
+    List<PurcInquiry> convertInquiry(List<BatchInquiry> inquiries);
+
+    /**
+     * 保存erp的公共询价
+     *
+     * @param inquiries
+     */
+    void save(List<PurcInquiry> inquiries, Long enuu);
+
+    /**
+     * erp提交状态后,平台单据停止报价
+     *
+     * @param inquiries
+     */
+    void updateStatus(List<BatchInquiry> inquiries);
+}

+ 173 - 0
src/main/java/com/uas/platform/b2b/erp/service/impl/PublicInquiryServiceImpl.java

@@ -0,0 +1,173 @@
+package com.uas.platform.b2b.erp.service.impl;
+
+import com.uas.platform.b2b.core.util.ThreadTask;
+import com.uas.platform.b2b.core.util.ThreadUtils;
+import com.uas.platform.b2b.dao.*;
+import com.uas.platform.b2b.erp.model.BatchInProduct;
+import com.uas.platform.b2b.erp.model.BatchInquiry;
+import com.uas.platform.b2b.erp.model.UserAndEnterprise;
+import com.uas.platform.b2b.erp.service.PublicInquiryService;
+import com.uas.platform.b2b.model.Product;
+import com.uas.platform.b2b.model.PurcInquiry;
+import com.uas.platform.b2b.model.PurcInquiryItem;
+import com.uas.platform.b2b.support.SystemSession;
+import com.uas.platform.core.model.Constant;
+import com.uas.platform.core.model.Status;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.BeanPropertyRowMapper;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
+import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.*;
+
+/**
+ * Created by hejq on 2017-09-18.
+ */
+@Service
+public class PublicInquiryServiceImpl implements PublicInquiryService {
+
+    @Autowired
+    private PurcInquiryDao inquiryDao;
+
+    @Autowired
+    private ProductDao productDao;
+
+    @Autowired
+    private EnterpriseDao enterpriseDao;
+
+    @Autowired
+    private PurcInquiryItemDao purcInquiryItemDao;
+
+    @Autowired
+    private CommonDao commonDao;
+
+    @Autowired
+    protected  JdbcTemplate jdbcTemplate;
+
+
+    @Override
+    public List<PurcInquiry> convertInquiry(List<BatchInquiry> inquiries) {
+        Long enuu = SystemSession.getUser().getEnterprise().getUu();
+        List<PurcInquiry>  purcInquiries = new ArrayList<PurcInquiry>();
+        if(!CollectionUtils.isEmpty(inquiries)) {
+            for(BatchInquiry inquiry : inquiries) {
+                PurcInquiry old = inquiryDao.findByCode(inquiry.getBi_code());
+                //先判断是否已经存在,不存在才进行存储
+                if(null == old) {
+                    PurcInquiry purcInquiry = inquiry.covert();
+                    purcInquiry.setEnUU(enuu);
+                    purcInquiry.setEnterprise(enterpriseDao.findEnterpriseInfoByUu(enuu));
+                    purcInquiry.setShip(SystemSession.getUser().getEnterprise().getEnAddress());
+                    Set<PurcInquiryItem> purcInquiryItems = new HashSet<PurcInquiryItem>();
+                    if(!CollectionUtils.isEmpty(inquiry.getInProducts())) {
+                        for(BatchInProduct batch : inquiry.getInProducts()) {
+                            PurcInquiryItem item = new PurcInquiryItem();
+                            item.setIsOpen(Constant.YES);
+                            List<Product> products = productDao.findByEnUUAndCode(enuu, batch.getBip_prodcode());
+                            item.setProduct(products.get(0));
+                            item.setProductId(products.get(0).getId());
+                            item.setRemark(batch.getBip_remark());
+                            item.setNumber(batch.getBip_detno());
+                            item.setFromDate(new Date());
+                            item.setToDate(purcInquiry.getEndDate());
+                            item.setStatus((short) Status.NOT_REPLY.value());
+                            item.setIsOpen(Constant.YES);
+                            item.setSource("ERP");
+                            item.setSourceid(batch.getBip_id());
+                            item.setCurrency(batch.getBip_currency());
+                            if(item.getCurrency() == null) {
+                                item.setCurrency("RMB");
+                            }
+                            purcInquiryItems.add(item);
+                        }
+                    }
+                    purcInquiry.setInquiryItems(purcInquiryItems);
+                    purcInquiries.add(purcInquiry);
+                }
+            }
+        }
+        return purcInquiries;
+    }
+
+    @Override
+    public void save(final List<PurcInquiry> inquiries, final Long enuu) {
+        // 采用并行处理
+        ThreadUtils.task(new Runnable() {
+            @Override
+            public void run() {
+                if(!CollectionUtils.isEmpty(inquiries)) {
+                    for(PurcInquiry inquiry : inquiries) {
+                        List<PurcInquiryItem> items = new ArrayList<PurcInquiryItem>();
+                        if(!CollectionUtils.isEmpty(inquiry.getInquiryItems())) {
+                            for(PurcInquiryItem item : inquiry.getInquiryItems()) {
+                                item.setInquiry(inquiry);
+                                items.add(item);
+                            }
+                        }
+                        inquiry.setInquiryItems(null);
+                        try {
+                            purcInquiryItemDao.save(items);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                    }
+                }
+            }
+        }).task(new Runnable() {
+            @Override
+            public void run() {
+                //消息提醒
+                messageList(inquiries, enuu);
+            }
+        });
+
+    }
+
+    /**
+     * 消息提醒功能
+     *
+     * @param inquiries
+     */
+    private void messageList(final List<PurcInquiry> inquiries, final Long enuu) {
+        ThreadTask.getInstance().execute(new Runnable() {
+            @Override
+            public void run() {
+                if(!CollectionUtils.isEmpty(inquiries)) {
+                    for(PurcInquiry inquiry : inquiries) {
+                        if(!CollectionUtils.isEmpty(inquiry.getInquiryItems())) {
+                            for(PurcInquiryItem item : inquiry.getInquiryItems()) {
+                                //先取出企业uu
+                                String sql = "select distinct pr_enuu from products p left join purc$vendors v on v.ve_vendenuu = p.pr_enuu where p.pr_spec = '" + item.getProduct().getSpec() + "' and v.ve_myenuu = " + enuu;
+                                List<Object[]> enuus = commonDao.query(sql, Object[].class);
+                                // enuus存在才进行人员选择
+                                if(enuus.size() > 0) {
+                                    MapSqlParameterSource parameters = new MapSqlParameterSource("enuus", enuus);
+                                    // 不要直接拼SQL,防参数过多出错
+                                    NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate);
+                                    List<UserAndEnterprise> useruus =  namedParameterJdbcTemplate.query(
+                                            "select user_uu useruu from sec$userrole u left join sec$roles r on u.role_id = r.role_id where rrole_desc = '业务员' and r.role_enuu in (:enuus)",
+                                            parameters, new BeanPropertyRowMapper<UserAndEnterprise>(UserAndEnterprise.class));
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        });
+    }
+
+    @Override
+    public void updateStatus(List<BatchInquiry> inquiries) {
+        if(!CollectionUtils.isEmpty(inquiries)) {
+            for(BatchInquiry inquiry : inquiries) {
+                // 更新为过期状态,不能进行报价处理
+               String sql = "update purc$puinquiryitems set id_overdue = 1 where id_inid in ( select in_id from purc$puinquiry where in_enuu = "
+                       + SystemSession.getUser().getEnterprise().getUu() + " and in_code = '" + inquiry.getBi_code() + "'";
+               commonDao.getJdbcTemplate().execute(sql);
+            }
+        }
+    }
+}

+ 42 - 0
src/main/java/com/uas/platform/b2b/model/PurcInquiry.java

@@ -18,6 +18,7 @@ import javax.persistence.OneToOne;
 import javax.persistence.OrderBy;
 import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
+import javax.xml.soap.Name;
 
 /**
  * 平台新增询价单中间表
@@ -177,6 +178,24 @@ public class PurcInquiry implements Serializable {
 	@Column(name = "in_inquirytype")
 	private String inquirytype;
 
+	/**
+	 * 应用来源
+	 */
+	@Column(name = "in_sourceapp")
+	private String sourceapp;
+
+	/**
+	 * 如果从erp传过来的,记录id
+	 */
+	@Column(name = "in_erpid")
+	private Long erpid;
+
+	/**
+	 * erp传过来的记录时间
+	 */
+	@Column(name = "in_erpdate")
+	private  Date erpdate;
+
 	public Long getId() {
 		return id;
 	}
@@ -361,4 +380,27 @@ public class PurcInquiry implements Serializable {
 		this.inquirytype = inquirytype;
 	}
 
+	public String getSourceapp() {
+		return sourceapp;
+	}
+
+	public void setSourceapp(String sourceapp) {
+		this.sourceapp = sourceapp;
+	}
+
+	public Long getErpid() {
+		return erpid;
+	}
+
+	public void setErpid(Long erpid) {
+		this.erpid = erpid;
+	}
+
+	public Date getErpdate() {
+		return erpdate;
+	}
+
+	public void setErpdate(Date erpdate) {
+		this.erpdate = erpdate;
+	}
 }

+ 13 - 0
src/main/java/com/uas/platform/b2b/model/PurcInquiryItem.java

@@ -256,6 +256,12 @@ public class PurcInquiryItem {
 	@Column(name = "id_needquantity")
 	private Double needquantity;
 
+	/**
+	 * 来源id,可能是ERP同步过来的单据
+	 */
+	@Column(name = "id_sourceid")
+	private Long sourceid;
+
 	public Long getId() {
 		return id;
 	}
@@ -538,4 +544,11 @@ public class PurcInquiryItem {
 		this.needquantity = needquantity;
 	}
 
+	public Long getSourceid() {
+		return sourceid;
+	}
+
+	public void setSourceid(Long sourceid) {
+		this.sourceid = sourceid;
+	}
 }

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

@@ -1,79 +1,40 @@
 package com.uas.platform.b2b.service.impl;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.dao.DataAccessException;
-import org.springframework.data.domain.Page;
-import org.springframework.data.jpa.domain.Specification;
-import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.stereotype.Service;
-import org.springframework.ui.ModelMap;
-
 import com.uas.platform.b2b.core.util.ContextUtils;
 import com.uas.platform.b2b.core.util.ThreadTask;
-import com.uas.platform.b2b.dao.CommonDao;
-import com.uas.platform.b2b.dao.DistributeDao;
-import com.uas.platform.b2b.dao.EnterpriseDao;
-import com.uas.platform.b2b.dao.ProductDao;
-import com.uas.platform.b2b.dao.PurcInquiryDao;
-import com.uas.platform.b2b.dao.PurcInquiryItemDao;
-import com.uas.platform.b2b.dao.PurcInquiryItemInfoDao;
-import com.uas.platform.b2b.dao.PurchaseInquiryDao;
-import com.uas.platform.b2b.dao.PurchaseInquiryInfoDao;
-import com.uas.platform.b2b.dao.PurchaseInquiryItemDao;
-import com.uas.platform.b2b.dao.PurchaseInquiryReplyDao;
-import com.uas.platform.b2b.dao.RoleDao;
-import com.uas.platform.b2b.dao.UserDao;
-import com.uas.platform.b2b.dao.UserOrderDao;
-import com.uas.platform.b2b.dao.VendorDao;
+import com.uas.platform.b2b.dao.*;
 import com.uas.platform.b2b.event.PurchaseInquiryItemDecideReleaseEvent;
 import com.uas.platform.b2b.event.PurchaseInquiryItemSaveReleaseEvent;
-import com.uas.platform.b2b.model.Attach;
-import com.uas.platform.b2b.model.Distribute;
-import com.uas.platform.b2b.model.Enterprise;
-import com.uas.platform.b2b.model.FileUpload;
-import com.uas.platform.b2b.model.Product;
-import com.uas.platform.b2b.model.PurcInquiry;
-import com.uas.platform.b2b.model.PurcInquiryItem;
-import com.uas.platform.b2b.model.PurcInquiryItemInfo;
-import com.uas.platform.b2b.model.PurchaseInquiry;
-import com.uas.platform.b2b.model.PurchaseInquiryInfo;
-import com.uas.platform.b2b.model.PurchaseInquiryItem;
-import com.uas.platform.b2b.model.PurchaseInquiryItemInfo;
-import com.uas.platform.b2b.model.PurchaseInquiryReply;
-import com.uas.platform.b2b.model.Role;
-import com.uas.platform.b2b.model.User;
-import com.uas.platform.b2b.model.UserOrders;
-import com.uas.platform.b2b.model.Vendor;
+import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.service.AttachService;
 import com.uas.platform.b2b.service.PurcInquiryService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.UsageBufferedLogger;
-import com.uas.platform.b2b.temporary.model.InquiryDetailInfo;
-import com.uas.platform.b2b.temporary.model.InquiryProductInfo;
+import com.uas.platform.b2b.temporary.model.*;
 import com.uas.platform.b2b.temporary.model.PurcInquiryInfo;
-import com.uas.platform.b2b.temporary.model.PurcInquiryProductInfo;
-import com.uas.platform.b2b.temporary.model.VendorAndContact;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;
 import com.uas.platform.core.model.Status;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.DataAccessException;
+import org.springframework.data.domain.Page;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.stereotype.Service;
+import org.springframework.ui.ModelMap;
+
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+import java.util.*;
 
 @Service
 public class PurcInquiryServiceImpl implements PurcInquiryService {
@@ -686,7 +647,7 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
 				item.setStatus((short) Status.NOT_REPLY.value());
 				item.setVendUU(enuu);
 				item.setVendUserUU(useruu);
-				item.setSourceApp(SOURCERAPP);
+				item.setSourceApp(purcInquiryItem.getSource());
 				item.setCustLap(Constant.NO);
 				item.setSendStatus((short) Status.NOT_UPLOAD.value());
 				item.setSourceId(id);