|
|
@@ -7,7 +7,9 @@ import com.uas.platform.b2b.erp.model.PurchaseChange;
|
|
|
import com.uas.platform.b2b.erp.model.PurchaseChangeReply;
|
|
|
import com.uas.platform.b2b.erp.service.PurchaseChangeService;
|
|
|
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.temporary.model.OrderType;
|
|
|
import com.uas.platform.core.model.Constant;
|
|
|
@@ -16,9 +18,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.*;
|
|
|
|
|
|
/**
|
|
|
* 采购变更新增变更物料信息判断
|
|
|
@@ -51,6 +51,8 @@ public class PurchaseChangeServiceImpl implements PurchaseChangeService {
|
|
|
public List<PurchaseOrderChangeItem> convertPurchaseChange(List<PurchaseChange> changes) {
|
|
|
List<PurchaseOrderChangeItem> changeItems = new ArrayList<PurchaseOrderChangeItem>();
|
|
|
long enUU = SystemSession.getUser().getEnterprise().getUu();
|
|
|
+ Set<String> productCodes = CollectionUtil.getProductCodeCollection(changes);
|
|
|
+ Map<String, ProductInfo> products = ProductUtils.findByEnUUAndCodes(enUU, productCodes);
|
|
|
for (PurchaseChange change : changes) {
|
|
|
PurchaseOrderChange orderChange = change.convert();
|
|
|
List<PurchaseOrder> orders = purchaseOrderDao.findByEnUUAndCode(enUU, change.getPc_purccode());
|
|
|
@@ -72,20 +74,23 @@ public class PurchaseChangeServiceImpl implements PurchaseChangeService {
|
|
|
// 赋值原单据信息字段
|
|
|
convertOrderItemInfo(item, orderItems.get(0));
|
|
|
}
|
|
|
- // 取平台的产品ID
|
|
|
- Product newProduct = item.getNewProduct();
|
|
|
- List<Product> products = productDao.findByEnUUAndCode(newProduct.getEnUU(),
|
|
|
- newProduct.getCode());
|
|
|
- if (products.size() > 0) {
|
|
|
- item.setNewProduct(products.get(0));
|
|
|
- item.setNewProductId(products.get(0).getId());
|
|
|
+ // 设置新物料,如果新物料没变则设为原物料
|
|
|
+ if (item.getNewProductCode() == null || item.getNewProductCode().equals(item.getOldProductCode())) {
|
|
|
+ item.setNewProduct(item.getOldProduct());
|
|
|
} else {
|
|
|
- if (StringUtils.isEmpty(uuid)) {
|
|
|
- uuid = StringUtil.uuid();
|
|
|
- }
|
|
|
- productList.add(new NotExistProduct(newProduct.getCode(), enUU, OrderType.purcorderChange.name(),
|
|
|
- change.getPc_code(), Constant.NO, uuid));
|
|
|
- }
|
|
|
+ // 如果修改了物料,则设置新物料
|
|
|
+ ProductInfo newProduct = products.get(item.getNewProductCode());
|
|
|
+ if (newProduct != null) {
|
|
|
+ item.setNewProduct(newProduct);
|
|
|
+ } else {
|
|
|
+ if (StringUtils.isEmpty(uuid)) {
|
|
|
+ uuid = StringUtil.uuid();
|
|
|
+ }
|
|
|
+ productList.add(new NotExistProduct(item.getNewProductCode(), enUU, OrderType.purcorderChange.name(),
|
|
|
+ change.getPc_code(), Constant.NO, uuid));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
item.setOrderChange(orderChange);
|
|
|
}
|
|
|
if (!CollectionUtils.isEmpty(productList)) {
|
|
|
@@ -139,6 +144,7 @@ public class PurchaseChangeServiceImpl implements PurchaseChangeService {
|
|
|
changeItem.setOldTaxrate(orderItem.getTaxrate());
|
|
|
changeItem.setOrderItemId(orderItem.getId());
|
|
|
changeItem.setOrderItemNumber(orderItem.getNumber());
|
|
|
+ changeItem.setOldProduct(orderItem.getProduct());
|
|
|
}
|
|
|
|
|
|
@Override
|