Hu Jie 7 лет назад
Родитель
Сommit
c072c2fdf8

+ 37 - 5
src/main/java/com/uas/platform/b2b/erp/model/Purchase.java

@@ -9,10 +9,9 @@ import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.Status;
 import org.springframework.util.CollectionUtils;
 
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.*;
 
 /**
  * ERP系统的采购订单
@@ -20,7 +19,7 @@ import java.util.Set;
  * @author yingp
  * 
  */
-public class Purchase {
+public class Purchase extends KeyEntity {
 
 	private String pu_code;
 	private Date pu_date;
@@ -388,4 +387,37 @@ public class Purchase {
 		return order;
 	}
 
+	/**
+	 * 主键值
+	 *
+	 * @return
+	 */
+	@Override
+	public Object getKey() {
+		return null;
+	}
+
+	/**
+	 * 获取物料编号
+	 * <per>
+	 * 有可能是主表带出明细数据,所以用List封装
+	 * </per>
+	 *
+	 * @return
+	 */
+	@Override
+	public List<String> getProductCode() {
+		if (!CollectionUtils.isEmpty(this.purchaseDetails)) {
+		    List<String> codeList = null;
+		    this.getPurchaseDetails().forEach(detail -> {
+                try {
+                    codeList.add(URLEncoder.encode(detail.getPd_prodcode(), "UTF-8"));
+                } catch (UnsupportedEncodingException e) {
+                    e.printStackTrace();
+                }
+            });
+		    return codeList;
+        }
+		return null;
+	}
 }

+ 2 - 15
src/main/java/com/uas/platform/b2b/erp/service/impl/PurchaseServiceImpl.java

@@ -31,6 +31,7 @@ import com.uas.platform.b2b.model.Vendor;
 import com.uas.platform.b2b.ps.ProductUtils;
 import com.uas.platform.b2b.service.NotExistProductService;
 import com.uas.platform.b2b.service.OrderRedDotService;
+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;
@@ -94,7 +95,7 @@ public class PurchaseServiceImpl implements PurchaseService {
 		long enUU = SystemSession.getUser().getEnterprise().getUu();
 
 		// 获取物料编号集合
-		Set<String> productCodes = getProductCodes(purchases);
+		Set<String> productCodes = CollectionUtil.getProductCodeCollection(purchases);
 		// 通过公共物料服务获取所有用到的物料信息
 		Map<String, ProductInfo> products = ProductUtils.findByEnUUAndCodes(enUU, productCodes);
 		for (Purchase purchase : purchases) {
@@ -316,18 +317,4 @@ public class PurchaseServiceImpl implements PurchaseService {
         }
     }
 
-	/**
-	 * 获取订单列表的物料编号集合
-	 * @param purchases
-	 * @return
-	 */
-	private Set<String> getProductCodes(List<Purchase> purchases) {
-    	Set<String> codes = new HashSet<String>();
-		for (Purchase purchase : purchases) {
-			for (PurchaseDetail purchaseDetail : purchase.getPurchaseDetails()) {
-				codes.add(purchaseDetail.getPd_prodcode());
-			}
-		}
-    	return codes;
-	}
 }