Browse Source

公共询价单问题的处理

hejq 8 years ago
parent
commit
335b932cae

+ 13 - 0
src/main/java/com/uas/platform/b2b/dao/PurcInquiryInfoDao.java

@@ -0,0 +1,13 @@
+package com.uas.platform.b2b.dao;
+
+import com.uas.platform.b2b.model.PurcInquiryInfo;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+/**
+ * Created by hejq on 2017-09-20.
+ */
+@Repository
+public interface PurcInquiryInfoDao extends JpaRepository<PurcInquiryInfo, Long>,JpaSpecificationExecutor<PurcInquiryInfo>{
+}

+ 21 - 26
src/main/java/com/uas/platform/b2b/erp/service/impl/PublicInquiryServiceImpl.java

@@ -1,16 +1,17 @@
 package com.uas.platform.b2b.erp.service.impl;
 package com.uas.platform.b2b.erp.service.impl;
 
 
 import com.uas.platform.b2b.core.util.ContextUtils;
 import com.uas.platform.b2b.core.util.ContextUtils;
-import com.uas.platform.b2b.core.util.ThreadUtils;
 import com.uas.platform.b2b.dao.*;
 import com.uas.platform.b2b.dao.*;
 import com.uas.platform.b2b.erp.model.BatchInProduct;
 import com.uas.platform.b2b.erp.model.BatchInProduct;
 import com.uas.platform.b2b.erp.model.BatchInquiry;
 import com.uas.platform.b2b.erp.model.BatchInquiry;
 import com.uas.platform.b2b.erp.service.PublicInquiryService;
 import com.uas.platform.b2b.erp.service.PublicInquiryService;
+import com.uas.platform.b2b.erp.support.ErpBufferedLogger;
 import com.uas.platform.b2b.event.PurcInquirySaveReleaseEvent;
 import com.uas.platform.b2b.event.PurcInquirySaveReleaseEvent;
 import com.uas.platform.b2b.model.Product;
 import com.uas.platform.b2b.model.Product;
 import com.uas.platform.b2b.model.PurcInquiry;
 import com.uas.platform.b2b.model.PurcInquiry;
 import com.uas.platform.b2b.model.PurcInquiryItem;
 import com.uas.platform.b2b.model.PurcInquiryItem;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.SystemSession;
+import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.Status;
 import com.uas.platform.core.model.Status;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -44,6 +45,7 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
     @Autowired
     @Autowired
     protected  JdbcTemplate jdbcTemplate;
     protected  JdbcTemplate jdbcTemplate;
 
 
+    private final static ErpBufferedLogger logger = BufferedLoggerManager.getLogger(ErpBufferedLogger.class);
 
 
     @Override
     @Override
     public List<PurcInquiry> convertInquiry(List<BatchInquiry> inquiries) {
     public List<PurcInquiry> convertInquiry(List<BatchInquiry> inquiries) {
@@ -90,32 +92,25 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
     }
     }
 
 
     @Override
     @Override
-    public void save(final List<PurcInquiry> inquiries) {
-        // 采用并行处理
-        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 {
-                            items = purcInquiryItemDao.save(items);
-                            ContextUtils.publishEvent(new PurcInquirySaveReleaseEvent(items));
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                        }
+    public void save(List<PurcInquiry> inquiries) {
+        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);
                     }
                     }
                 }
                 }
+                try {
+                    items = purcInquiryItemDao.save(items);
+                    ContextUtils.publishEvent(new PurcInquirySaveReleaseEvent(items));
+                } catch (Exception e) {
+                    logger.log("公共询价保存出错", inquiry.getEnUU() + "," +inquiry.getCode() +" 保存失败", 0);
+                    e.printStackTrace();
+                }
             }
             }
-        });
-
+        }
     }
     }
 
 
     @Override
     @Override
@@ -124,8 +119,8 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
             for(BatchInquiry inquiry : 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 = "
                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);
+                       + SystemSession.getUser().getEnterprise().getUu() + " and in_code = '" + inquiry.getBi_code() + "')";
+               commonDao.getJdbcTemplate().update(sql);
             }
             }
         }
         }
     }
     }

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

@@ -63,7 +63,7 @@ public class MessageListener implements ApplicationListener<SaveReleaseEvent<?,
 				PurcInquiryItem item = purcInquiryItemDao.findOne(detail.getPagingRelease().getSourceId());
 				PurcInquiryItem item = purcInquiryItemDao.findOne(detail.getPagingRelease().getSourceId());
 				if (null != item) {
 				if (null != item) {
 					//先取出企业uu
 					//先取出企业uu
-					String sql = "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 sql = "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();
 					List<UserAndEnterprise> enuus = commonDao.query(sql, UserAndEnterprise.class);
 					List<UserAndEnterprise> enuus = commonDao.query(sql, UserAndEnterprise.class);
 					// enuus存在才进行人员选择
 					// enuus存在才进行人员选择
 					if(enuus.size() > 0) {
 					if(enuus.size() > 0) {

+ 69 - 0
src/main/java/com/uas/platform/b2b/model/PurcInquiryInfo.java

@@ -156,6 +156,36 @@ public class PurcInquiryInfo implements Serializable {
 	@Column(name = "in_isopen")
 	@Column(name = "in_isopen")
 	private Short isOpen;
 	private Short isOpen;
 
 
+	/**
+	 * 询价类型
+	 */
+	@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;
+
+	/**
+	 * 收货地址
+	 */
+	@Column(name = "in_ship")
+	private String ship;
+
 	public Long getId() {
 	public Long getId() {
 		return id;
 		return id;
 	}
 	}
@@ -310,4 +340,43 @@ public class PurcInquiryInfo implements Serializable {
 		this.userBaseInfo = userBaseInfo;
 		this.userBaseInfo = userBaseInfo;
 	}
 	}
 
 
+	public String getInquirytype() {
+		return inquirytype;
+	}
+
+	public void setInquirytype(String inquirytype) {
+		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;
+	}
+
+	public String getShip() {
+		return ship;
+	}
+
+	public void setShip(String ship) {
+		this.ship = ship;
+	}
 }
 }

+ 14 - 0
src/main/java/com/uas/platform/b2b/model/PurcInquiryItemInfo.java

@@ -191,6 +191,12 @@ public class PurcInquiryItemInfo {
 	@Column(name = "id_date")
 	@Column(name = "id_date")
 	private  Date date;
 	private  Date date;
 
 
+	/**
+	 * 来源id,可能是ERP同步过来的单据
+	 */
+	@Column(name = "id_sourceid")
+	private Long sourceid;
+
 	public Long getId() {
 	public Long getId() {
 		return id;
 		return id;
 	}
 	}
@@ -422,4 +428,12 @@ public class PurcInquiryItemInfo {
 	public void setDate(Date date) {
 	public void setDate(Date date) {
 		this.date = date;
 		this.date = date;
 	}
 	}
+
+	public Long getSourceid() {
+		return sourceid;
+	}
+
+	public void setSourceid(Long sourceid) {
+		this.sourceid = sourceid;
+	}
 }
 }

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

@@ -688,7 +688,7 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
 						item.setProductId(purcInquiryItem.getProductId());
 						item.setProductId(purcInquiryItem.getProductId());
 						item.setVendUU(SystemSession.getUser().getEnterprise().getUu());
 						item.setVendUU(SystemSession.getUser().getEnterprise().getUu());
 						item.setVendUserUU(SystemSession.getUser().getUserUU());
 						item.setVendUserUU(SystemSession.getUser().getUserUU());
-						item.setSourceApp(SOURCERAPP);
+						item.setSourceApp(purcInquiryItem.getSource());
 						item.setStatus((short) Status.NOT_REPLY.value());
 						item.setStatus((short) Status.NOT_REPLY.value());
 						item.setCustLap(Constant.NO);
 						item.setCustLap(Constant.NO);
 						item.setSendStatus((short) Status.NOT_UPLOAD.value());
 						item.setSendStatus((short) Status.NOT_UPLOAD.value());
@@ -715,6 +715,12 @@ public class PurcInquiryServiceImpl implements PurcInquiryService {
 							e.printStackTrace();
 							e.printStackTrace();
 						}
 						}
 						item = purchaseInquiryItemDao.findOne(idid);
 						item = purchaseInquiryItemDao.findOne(idid);
+						//回复清单更新
+						if(replies.size() > 0) {
+							for (PurchaseInquiryReply reply1 : replies) {
+								jdbcTemplate.update("update purc$inquiryreply set ir_idid = " + idid + "where ir_id = " + reply1.getId());
+							}
+						}
 						if (item != null) {
 						if (item != null) {
 							map.put("success", "转客户询价单成功");
 							map.put("success", "转客户询价单成功");
 							map.put("id", item.getInquiry().getId());
 							map.put("id", item.getInquiry().getId());

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

@@ -554,7 +554,7 @@ public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
 	public List<InquiryMessage> getMessageList() {
 	public List<InquiryMessage> getMessageList() {
 		String sql = "select * from (select p.id_id id,p.id_prid productId from purc$puinquiryitems p left join purc$puinquiry i on i.in_id = p.id_inid where i.in_isopen = 1 and i.in_enuu <> "
 		String sql = "select * from (select p.id_id id,p.id_prid productId from purc$puinquiryitems p left join purc$puinquiry i on i.in_id = p.id_inid where i.in_isopen = 1 and i.in_enuu <> "
 				+ SystemSession.getUser().getEnterprise().getUu()
 				+ SystemSession.getUser().getEnterprise().getUu()
-				+ "and i.in_enddate > trunc(sysdate)  order by id_id desc) where rownum < 6";
+				+ "and i.in_enddate > trunc(sysdate) and nvl(p.id_overdue, 0) <> 1 order by id_id desc) where rownum < 6";
 		List<PurcInquiryItem> items = commonDao.query(sql, PurcInquiryItem.class);
 		List<PurcInquiryItem> items = commonDao.query(sql, PurcInquiryItem.class);
 		List<InquiryMessage> messages = new ArrayList<InquiryMessage>();
 		List<InquiryMessage> messages = new ArrayList<InquiryMessage>();
 		if (!CollectionUtils.isEmpty(items)) {
 		if (!CollectionUtils.isEmpty(items)) {

+ 1 - 1
src/main/webapp/resources/tpl/index/baseInfo/inquiry_list.html

@@ -186,7 +186,7 @@
                                         <td>{{::inquiryItem.product.code}}</td>
                                         <td>{{::inquiryItem.product.code}}</td>
                                         <td>{{::inquiryItem.inquiry.date| date: 'yyyy-MM-dd'}}</td>
                                         <td>{{::inquiryItem.inquiry.date| date: 'yyyy-MM-dd'}}</td>
                                         <td>{{::inquiryItem.inquiry.endDate| date: 'yyyy-MM-dd'}}</td>
                                         <td>{{::inquiryItem.inquiry.endDate| date: 'yyyy-MM-dd'}}</td>
-                                        <td><span class="text-trans overdue" ng-if="nowdate > inquiryItem.inquiry.endDate">已过期</span></td>
+                                        <td><span class="text-trans overdue" ng-if="nowdate > inquiryItem.inquiry.endDate || inquiryItem.overdue == 1">已失效</span></td>
                                     </tr>
                                     </tr>
                                </tbody>
                                </tbody>
                            </table>
                            </table>