Browse Source

提取获取物料编号方法为公共方法

hejq 7 years ago
parent
commit
e89c343d57

+ 42 - 4
src/main/java/com/uas/platform/b2b/erp/model/Inquiry.java

@@ -13,7 +13,7 @@ import java.util.*;
  * @author yingp
  * 
  */
-public class Inquiry {
+public class Inquiry extends KeyEntity {
 
 	private Long in_id;
 	private String in_code;
@@ -22,13 +22,26 @@ public class Inquiry {
 	private Long in_recorderuu;
 	private String in_auditor;
 	private Date in_recorddate;
-	private String in_environment;//环保要求
+
+	/**
+	 * 	环保要求
+	 */
+	private String in_environment;
 	private Date in_enddate;
 	private String in_remark;
 	private String in_pricetype;
 	private List<InquiryDetail> details;
-	private String in_kind; //询价类型
-	private Long in_b2bid; // b2b存储的id信息
+
+	/**
+	 * 询价类型
+	 */
+	private String in_kind;
+
+	/**
+	 * b2b存储的id信息
+	 */
+	private Long in_b2bid;
+
 	/**
 	 * 主动报价时,平台的主动报价单SaleQuotation的ID
 	 */
@@ -236,4 +249,29 @@ public class Inquiry {
 		}
 	}
 
+	/**
+	 * 主键值
+	 *
+	 * @return
+	 */
+	@Override
+	public Object getKey() {
+		return in_id;
+	}
+
+	/**
+	 * 获取物料编号
+	 *
+	 * @return
+	 */
+	@Override
+	public List<String> getProductCode() {
+	    List<String> codeList = new ArrayList<>();
+	    if (!CollectionUtils.isEmpty(details)) {
+	        for (InquiryDetail detail : details) {
+                codeList.add(detail.getId_prodcode());
+            }
+        }
+		return codeList;
+	}
 }

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

@@ -2,6 +2,8 @@ package com.uas.platform.b2b.erp.model;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 
+import java.util.List;
+
 
 /**
  * 获取关键字
@@ -18,4 +20,15 @@ public abstract class KeyEntity {
      */
     @JsonIgnore
     public abstract Object getKey();
+
+    /**
+     * 获取物料编号
+     * <per>
+     *     有可能是主表带出明细数据,所以用List封装
+     * </per>
+     *
+     * @return
+     */
+    @JsonIgnore
+    public abstract List<String> getProductCode();
 }

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

@@ -6,7 +6,9 @@ import com.uas.platform.b2b.model.PurchaseOrderItem;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.core.model.Status;
 
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 买家ERP系统的送货提醒单(提醒卖家发货)
@@ -228,4 +230,16 @@ public class PurchaseNotify extends KeyEntity {
     public Object getKey() {
         return pn_id;
     }
+
+    /**
+     * 获取物料编号
+     *
+     * @return
+     */
+    @Override
+    public List<String> getProductCode() {
+        List<String> stringList = new ArrayList<>();
+        stringList.add(pn_ordercode);
+        return stringList;
+    }
 }

+ 2 - 16
src/main/java/com/uas/platform/b2b/erp/service/impl/InquiryServiceImpl.java

@@ -15,6 +15,7 @@ import com.uas.platform.b2b.event.PurchaseInquiryItemSaveReleaseEvent;
 import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.ps.ProductUtils;
 import com.uas.platform.b2b.service.NotExistProductService;
+import com.uas.platform.b2b.support.CollectionUtil;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.UsageBufferedLogger;
 import com.uas.platform.b2b.temporary.model.OrderType;
@@ -80,7 +81,7 @@ public class InquiryServiceImpl implements InquiryService {
 		long enUU = SystemSession.getUser().getEnterprise().getUu();
 
 		// 获取物料编号集合
-		Set<String> productCodes = getProductCodes(inquiries);
+		Set<String> productCodes = CollectionUtil.getProductCodeCollection(inquiries);
 		Map<String, ProductInfo> products = ProductUtils.findByEnUUAndCodes(enUU, productCodes);
 		for (Inquiry inquiry : inquiries) {
 			// 先查看是否已存在
@@ -314,19 +315,4 @@ public class InquiryServiceImpl implements InquiryService {
 		}
 		return inquiryList;
 	}
-
-	/**
-	 * 获取询价单关联的物料编号集合
-	 * @param inquiries
-	 * @return
-	 */
-	private Set<String> getProductCodes(List<Inquiry> inquiries) {
-		Set<String> productCodes = new HashSet<String>();
-		for (Inquiry inquiry : inquiries) {
-			for (InquiryDetail inquiryDetail : inquiry.getDetails()) {
-				productCodes.add(inquiryDetail.getId_prodcode());
-			}
-		}
-		return productCodes;
-	}
 }

+ 22 - 3
src/main/java/com/uas/platform/b2b/support/CollectionUtil.java

@@ -3,9 +3,7 @@ package com.uas.platform.b2b.support;
 import com.uas.platform.b2b.erp.model.KeyEntity;
 import org.springframework.util.CollectionUtils;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
+import java.util.*;
 
 /**
  * 集合处理工具类
@@ -33,4 +31,25 @@ public class CollectionUtil {
         }
         return idList;
     }
+
+    /**
+     * 用继承自KeyEntity的类,重写的getKey方法来取值,提取物料编号
+     *
+     * @param paramArray
+     * @return
+     */
+    public static Set<String> getProductCodeCollection(Collection<? extends KeyEntity> paramArray) {
+        Set<String> codeSet = new HashSet<>();
+        if (!CollectionUtils.isEmpty(paramArray)) {
+            for (KeyEntity param : paramArray) {
+                List<String> codeList = param.getProductCode();
+                if (!CollectionUtils.isEmpty(codeList)) {
+                    for (String code : codeList) {
+                        codeSet.add(code);
+                    }
+                }
+            }
+        }
+        return codeSet;
+    }
 }