Browse Source

UAS反提交询价单传到B2B,且因为未报价但单据提交被归入已失效列表的单会重新回到嗲报价列表。

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@9204 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
dongbw 8 years ago
parent
commit
4f239b13f2

+ 13 - 0
src/main/java/com/uas/platform/b2b/erp/controller/InquiryController.java

@@ -1,3 +1,4 @@
+
 package com.uas.platform.b2b.erp.controller;
 
 import com.uas.platform.b2b.erp.model.Inquiry;
@@ -74,6 +75,18 @@ public class InquiryController {
 		purchaseInquiryService.check(ArrayUtils.convertStringToNumberArray(URLDecoder.decode(data, "UTF-8"), Long.class));
 	}
 
+	/**
+	 * 买家反提交询价单后,状态传回平台,待报价单据重新回到待报价列表且可以进行报价,已报价单据可以修改报价
+	 *
+	 * @param data
+	 * @throws UnsupportedEncodingException
+	 */
+	@RequestMapping(value = "/reCheck", method = RequestMethod.POST)
+	@ResponseBody
+	public void reCheckInquiry(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		purchaseInquiryService.reCheck(ArrayUtils.convertStringToNumberArray(URLDecoder.decode(data, "UTF-8"), Long.class));
+	}
+
 	/**
 	 * 买家ERP获取平台的报价信息
 	 * 

+ 6 - 4
src/main/java/com/uas/platform/b2b/model/PurchaseInquiryItem.java

@@ -239,17 +239,19 @@ public class PurchaseInquiryItem {
 	/**
 	 * search项目进行单据是否已过期时实际根据主表中enddate与当前时间的比较获取,但是数据库无字段会报“标识符无效”的错误
 	 * 所以建立此字段,但是此字段不会赋值。
-	 * 
-	 * @return
+	 *   在建立索引时,overdue的值加入到了invalid(已失效)的判断条件中,所以此字段的值无实际意义,
+	 *   UAS询价单提交或反提交时,更新此字段,来使询价单明细更新触发器生效,更新询价单明细索引,
+	 *   才能使未过期未报价已提交单据进入失效列表,未过期未报价反提交单据从已失效列表回到待报价列表。
+	 *
+	 *   (1为已提交, 0为被反提交, null为未提交)
 	 */
 	@Column(name = "id_overdue")
 	private Short overdue;
 
 	/**
-	 * 报价是否已过期    根据vendToDate与当前时间的比较获取,但是数据库无字段会报“标识符无效”的错误
+	 * 报价是否已过期  根据vendToDate与当前时间的比较获取,但是数据库无字段会报“标识符无效”的错误
 	 * 所以建立此字段,此字段在视图中赋值。
 	 *
-	 * @return
 	 */
 	@Column(name = "id_invalid", insertable = false, updatable = false)
 	private Short invalid;

+ 7 - 0
src/main/java/com/uas/platform/b2b/service/PurchaseInquiryService.java

@@ -169,6 +169,13 @@ public interface PurchaseInquiryService {
 	 * @param sourceIds
 	 */
 	public void check(Long[] sourceIds);
+
+	/**
+	 * 买家在收到报价信息后,点击提交按钮后,状态传至平台,至此平台的供应商不能再对这张询价单进行报价
+	 *
+	 * @param sourceIds
+	 */
+	public void reCheck(Long[] sourceIds);
 	
 	/**
 	 * 根据企业UU查询采购询价单数量

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

@@ -1,52 +1,13 @@
 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.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Sort.Direction;
-import org.springframework.data.jpa.domain.Specification;
-import org.springframework.stereotype.Service;
-import org.springframework.ui.ModelMap;
-import org.springframework.util.CollectionUtils;
-import org.springframework.util.StringUtils;
-
 import com.uas.platform.b2b.core.util.ContextUtils;
 import com.uas.platform.b2b.core.util.ThreadUtils;
-import com.uas.platform.b2b.dao.AttachDao;
-import com.uas.platform.b2b.dao.CommonDao;
-import com.uas.platform.b2b.dao.ProductDao;
-import com.uas.platform.b2b.dao.PurcInquiryItemDao;
-import com.uas.platform.b2b.dao.PurchaseInquiryDao;
-import com.uas.platform.b2b.dao.PurchaseInquiryItemDao;
-import com.uas.platform.b2b.dao.PurchaseInquiryReplyDao;
-import com.uas.platform.b2b.dao.UserBaseInfoDao;
+import com.uas.platform.b2b.dao.*;
 import com.uas.platform.b2b.erp.model.Inquiry;
 import com.uas.platform.b2b.erp.model.QuotationDown;
 import com.uas.platform.b2b.erp.model.QuotationDownDetail;
-import com.uas.platform.b2b.event.PurchaseInquiryItemDecideReleaseEvent;
-import com.uas.platform.b2b.event.PurchaseInquiryItemInvalidReleaseEvent;
-import com.uas.platform.b2b.event.PurchaseInquiryItemReplyReleaseEvent;
-import com.uas.platform.b2b.event.PurchaseInquiryItemSaveEvent;
-import com.uas.platform.b2b.event.PurchaseInquiryItemSaveReleaseEvent;
-import com.uas.platform.b2b.model.Attach;
-import com.uas.platform.b2b.model.FileUpload;
-import com.uas.platform.b2b.model.Product;
-import com.uas.platform.b2b.model.PurcInquiryItem;
-import com.uas.platform.b2b.model.PurchaseInquiry;
-import com.uas.platform.b2b.model.PurchaseInquiryItem;
-import com.uas.platform.b2b.model.PurchaseInquiryReply;
-import com.uas.platform.b2b.model.SearchFilter;
-import com.uas.platform.b2b.model.UserBaseInfo;
+import com.uas.platform.b2b.event.*;
+import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.AttachService;
 import com.uas.platform.b2b.service.PurchaseInquiryService;
@@ -61,6 +22,20 @@ import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.Status;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
 import com.uas.search.b2b.model.PageParams;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Sort.Direction;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.stereotype.Service;
+import org.springframework.ui.ModelMap;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+import java.util.*;
 
 
 @Service
@@ -379,9 +354,42 @@ public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
 
 	@Override
 	public void check(Long[] sourceIds) {
+		// UAS报价单提交时,需要更新采购询价单明细触发器中的监听字段,触发索引更新,来让待报价但已提交的单据进入已失效列表
+		List<PurchaseInquiryItem> saveItems = new ArrayList<>();
+		for (Long sourceId : sourceIds) {
+			List<PurchaseInquiry> inquiries = purchaseInquiryDao.findByEnUUAndSourceId(SystemSession.getUser().getEnterprise().getUu(), sourceId);
+			if (!CollectionUtils.isEmpty(inquiries)) {
+				for (PurchaseInquiryItem inquiryItem : inquiries.get(0).getInquiryItems()) {
+					inquiryItem.setOverdue(Constant.YES);  // 修改此字段触发索引
+					saveItems.add(inquiryItem);
+				}
+			}
+		}
+		purchaseInquiryItemDao.save(saveItems);
 		purchaseInquiryDao.updateByCheck(Constant.YES, SystemSession.getUser().getEnterprise().getUu(), sourceIds);
 	}
 
+	@Override
+	public void reCheck(Long[] sourceIds) {
+		// UAS报价单反提交时,需要更新采购询价单明细触发器中的监听字段,触发索引更新,来让待报价被反提交的单据从已失效回到待报价列表
+		List<PurchaseInquiryItem> saveItems = new ArrayList<>();
+		List<PurchaseInquiry> saveInquiries = new ArrayList<>();
+		for (Long sourceId : sourceIds) {
+			List<PurchaseInquiry> inquiries = purchaseInquiryDao.findByEnUUAndSourceId(SystemSession.getUser().getEnterprise().getUu(), sourceId);
+			if (!CollectionUtils.isEmpty(inquiries)) {
+				PurchaseInquiry inquiry = inquiries.get(0);
+				inquiry.setCheck(Constant.NO);  // 反提交
+				saveInquiries.add(inquiry);
+				for (PurchaseInquiryItem inquiryItem : inquiry.getInquiryItems()) {
+					inquiryItem.setOverdue(Constant.NO);  // 修改此字段触发索引
+					saveItems.add(inquiryItem);
+				}
+			}
+		}
+		purchaseInquiryDao.save(saveInquiries);
+		purchaseInquiryItemDao.save(saveItems);
+	}
+
 	@Override
 	public Long getAllCount() {
 		return purchaseInquiryItemDao.countByVendUU(SystemSession.getUser().getEnterprise().getUu());