|
|
@@ -8,6 +8,7 @@ import com.uas.platform.b2b.erp.model.*;
|
|
|
import com.uas.platform.b2b.erp.service.PurchaseService;
|
|
|
import com.uas.platform.b2b.erp.service.VendorService;
|
|
|
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.SystemSession;
|
|
|
import com.uas.platform.b2b.support.UsageBufferedLogger;
|
|
|
@@ -20,9 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* 采购单接
|
|
|
@@ -70,6 +69,11 @@ public class PurchaseServiceImpl implements PurchaseService {
|
|
|
// 应用来源
|
|
|
final String appId = "uas";
|
|
|
long enUU = SystemSession.getUser().getEnterprise().getUu();
|
|
|
+
|
|
|
+ // 获取物料编号集合
|
|
|
+ Set<String> productCodes = getProductCodes(purchases);
|
|
|
+ // 通过公共物料服务获取所有用到的物料信息
|
|
|
+ Map<String, ProductInfo> products = ProductUtils.findByEnUUAndCodes(enUU, productCodes);
|
|
|
for (Purchase purchase : purchases) {
|
|
|
// 先查看是否已存在
|
|
|
List<PurchaseOrder> orders = purchaseOrderDao.findByEnUUAndCode(enUU, purchase.getPu_code());
|
|
|
@@ -115,17 +119,16 @@ public class PurchaseServiceImpl implements PurchaseService {
|
|
|
item.setOrder(order);
|
|
|
item.setStatus((short) Status.NOT_REPLY.value());
|
|
|
// 取平台的产品ID
|
|
|
- ProductInfo product = item.getProduct();
|
|
|
- List<Product> products = productDao.findByEnUUAndCode(product.getEnUU(), product.getCode());
|
|
|
- if (products.size() > 0) {
|
|
|
- item.setProductId(products.get(0).getId());
|
|
|
- item.setErpDate(new Date(System.currentTimeMillis()));
|
|
|
+ ProductInfo product = products.get(item.getProductCode());
|
|
|
+ if (product != null) {
|
|
|
+ item.setProduct(product);
|
|
|
+ item.setErpDate(new Date());
|
|
|
orderItems.add(item);
|
|
|
} else {
|
|
|
if (StringUtils.isEmpty(sign)) {
|
|
|
sign = StringUtil.uuid();
|
|
|
}
|
|
|
- productList.add(new NotExistProduct(product.getCode(), enUU, OrderType.purchase.name(), purchase.getPu_code(), Constant.NO, sign));
|
|
|
+ productList.add(new NotExistProduct(item.getProductCode(), enUU, OrderType.purchase.name(), purchase.getPu_code(), Constant.NO, sign));
|
|
|
}
|
|
|
}
|
|
|
if (!CollectionUtils.isEmpty(productList)) {
|
|
|
@@ -294,4 +297,19 @@ public class PurchaseServiceImpl implements PurchaseService {
|
|
|
commonDao.getJdbcTemplate().update(sql);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取订单列表的物料编号集合
|
|
|
+ * @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_code());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return codes;
|
|
|
+ }
|
|
|
}
|