|
|
@@ -1,9 +1,7 @@
|
|
|
package com.uas.platform.b2b.erp.service.impl;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
-import java.util.HashSet;
|
|
|
import java.util.List;
|
|
|
-import java.util.Set;
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@@ -22,7 +20,6 @@ import com.uas.platform.b2b.model.PurchaseForecastAllItem;
|
|
|
import com.uas.platform.b2b.model.User;
|
|
|
import com.uas.platform.b2b.model.Vendor;
|
|
|
import com.uas.platform.b2b.support.SystemSession;
|
|
|
-import com.uas.platform.core.model.Constant;
|
|
|
import com.uas.platform.b2b.erp.model.PurchaseForecast;
|
|
|
|
|
|
@Service
|
|
|
@@ -39,74 +36,90 @@ public class PurchaseForecastServiceImpl implements PurchaseForecastService {
|
|
|
@Autowired
|
|
|
private PurchaseForecastAllDao purchaseForecastDao;
|
|
|
@Override
|
|
|
- public List<PurchaseForecastAll> convertPurchaseForecast(List<PurchaseForecast> purchaseForecasts) {
|
|
|
- // TODO Auto-generated method stub
|
|
|
- List<PurchaseForecastAll> orderItems = new ArrayList<PurchaseForecastAll>();
|
|
|
- System.out.println(purchaseForecasts);
|
|
|
+ public List<PurchaseForecastAllItem> convertPurchaseForecast(List<PurchaseForecast> purchaseForecasts) {
|
|
|
+ List<PurchaseForecastAllItem> items = new ArrayList<PurchaseForecastAllItem>();
|
|
|
long enUU = SystemSession.getUser().getEnterprise().getUu();
|
|
|
for (PurchaseForecast purchaseForecast : purchaseForecasts) {
|
|
|
// 先查看是否已存在
|
|
|
- List<PurchaseForecastAll> orders = purchaseForecastDao.findByEnUUAndCode(enUU, purchaseForecast.getPf_code());
|
|
|
- if (orders.size() == 0) {
|
|
|
- PurchaseForecastAll order = purchaseForecast.convert();//将order的UserUU set 为em_uu
|
|
|
- List<Vendor> vendors = vendorDao.findByMyEnUUAndVendUU(order.getEnUU(), order.getVendUU());
|
|
|
- Vendor vendor = null;
|
|
|
- if (vendors.size() == 0) {//供应商资料在平台上不存在
|
|
|
- vendor = addVendor(order);//添加企业的供应商资料
|
|
|
- } else {//供应商资料在平台上存在
|
|
|
- vendor = vendors.get(0);
|
|
|
- }
|
|
|
- if (vendor != null && !CollectionUtils.isEmpty(order.getForecastItems())) {//平台中存在供应商的UU&&单据有明细行
|
|
|
- if (order.getVendUserUU() == null && vendors.get(0).getVendorUser() != null)//单据不包含供应商联系人UU号&&供应商列表中有供应商联系人
|
|
|
- order.setVendUserUU(vendor.getVendorUser().getUserUU());//将供应商列表中的联系人设为单据的供应商联系人
|
|
|
- User user = order.getUser();//单据采购员
|
|
|
- if (order.getUserUU() != null) {//单据采购员uu不为空
|
|
|
- List<User> users = userDao.findUserByUserUU(order.getUserUU());//根据单据采购员uu获取users
|
|
|
- if (users.size() == 0)//平台中不存在单据采购员UU的用户
|
|
|
- user = addUser(user);//新增当前企业的一个user
|
|
|
- else//平台中存在单据采购员UU的用户
|
|
|
- user = users.get(0);
|
|
|
- } else {//单据采购员uu为空
|
|
|
- user = addUser(user);//新增当前企业的一个user
|
|
|
+ List<PurchaseForecastAll> forecasts = purchaseForecastDao.findByEnUUAndCode(enUU, purchaseForecast.getPf_code());
|
|
|
+ if (forecasts.size() == 0) {
|
|
|
+ PurchaseForecastAll forecast = purchaseForecast.convert();
|
|
|
+ if (!CollectionUtils.isEmpty(forecast.getForecastItems())) {
|
|
|
+ //设置User
|
|
|
+ if(forecast.getUser().getUserUU() != null) {
|
|
|
+ List<User> users = userDao.findByEnUUAndUserUU(enUU, forecast.getUser().getUserUU());
|
|
|
+ if(users.size() > 0) {
|
|
|
+ forecast.setUser(users.get(0));
|
|
|
+ forecast.setUserUU(users.get(0).getUserUU());
|
|
|
+ } else {
|
|
|
+ forecast.setUser(SystemSession.getUser());
|
|
|
+ forecast.setUserUU(SystemSession.getUser().getUserUU());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ forecast.setUser(SystemSession.getUser());
|
|
|
+ forecast.setUserUU(SystemSession.getUser().getUserUU());
|
|
|
}
|
|
|
- order.setUser(user);
|
|
|
- order.setUserUU(user.getUserUU());//如果单据包含平台存在的UU号,即为这个UU号,否则新增一个当前企业的user(UU序列生成)
|
|
|
- for (PurchaseForecastAllItem item : order.getForecastItems()) {
|
|
|
- item.setOrder(order);
|
|
|
- // 取平台的产品ID
|
|
|
- Product product = item.getProduct();
|
|
|
- List<Product> products = productDao.findByEnUUAndCode(product.getEnUU(), product.getCode());
|
|
|
- if (products.size() > 0) {
|
|
|
- item.setProduct(products.get(0));
|
|
|
- item.setProductId(products.get(0).getId());
|
|
|
- }
|
|
|
+ //对明细遍历
|
|
|
+ for (PurchaseForecastAllItem item : forecast.getForecastItems()) {
|
|
|
+ item.setOrder(forecast);
|
|
|
+ if (item.getVendUU() != null) {//明细中有供应商uu号
|
|
|
+ List<Vendor> vendors = vendorDao.findByMyEnUUAndVendUU(enUU, item.getVendUU());
|
|
|
+ Vendor vendor = null;
|
|
|
+ if(vendors.size() == 0) {
|
|
|
+ vendor = addVendor(item);
|
|
|
+ } else {
|
|
|
+ vendor = vendors.get(0);
|
|
|
+ }
|
|
|
+ List<Product> products = productDao.findByEnUUAndCode(enUU, item.getProduct().getCode());
|
|
|
+ if (products.size() > 0 && vendor != null) {
|
|
|
+ item.setVendUU(vendor.getVendEnUU());
|
|
|
+ if(item.getVendUserUU() != null && item.getVendUserUU() != 0) {
|
|
|
+ List<User> vendUsers = userDao.findByEnUUAndUserUU(vendor.getVendEnUU(), item.getVendUserUU());
|
|
|
+ if(vendUsers.size() == 0) {
|
|
|
+ //平台中的供应商企业不存在供应商联系人uu的用户
|
|
|
+ //则设为平台中供应商列表中的供应商联系人UU
|
|
|
+ item.setVendUserUU(vendors.get(0).getVendUserUU());
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ //买方ERP中供应商资料没有设置供应商联系人uu
|
|
|
+ //则设为平台中供应商列表中的供应商联系人UU
|
|
|
+ item.setVendUserUU(vendors.get(0).getVendUserUU());
|
|
|
+ }
|
|
|
+ item.setProduct(products.get(0));
|
|
|
+ item.setProductId(products.get(0).getId());
|
|
|
+ item.setOrder(forecast);
|
|
|
+ items.add(item);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- orderItems.add(order);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- System.out.println(orderItems);
|
|
|
- return orderItems;
|
|
|
+ return items;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 添加供应商资料
|
|
|
*
|
|
|
- * @param order
|
|
|
+ * @param forecast
|
|
|
*/
|
|
|
- private Vendor addVendor(PurchaseForecastAll order) {
|
|
|
- Vendor vendor = new Vendor();
|
|
|
- vendor.setMyEnUU(order.getEnUU());
|
|
|
- vendor.setMyUserUU(SystemSession.getUser().getUserUU());
|
|
|
- Enterprise enterprise = enterpriseDao.findOne(order.getVendUU());
|
|
|
+ private Vendor addVendor(PurchaseForecastAllItem forecastItem) {
|
|
|
+ Enterprise enterprise = enterpriseDao.findOne(forecastItem.getVendUU());
|
|
|
if (enterprise != null) {
|
|
|
+ Vendor vendor = new Vendor();
|
|
|
+ vendor.setMyEnUU(forecastItem.getOrder().getEnUU());
|
|
|
+ if(forecastItem.getOrder().getUserUU() != null && userDao.findOne(forecastItem.getOrder().getUserUU()) != null)
|
|
|
+ vendor.setMyUserUU(forecastItem.getOrder().getUserUU());
|
|
|
+ else {
|
|
|
+ vendor.setMyUserUU(SystemSession.getUser().getUserUU());
|
|
|
+ }
|
|
|
vendor.setVendorEnterprise(enterprise);
|
|
|
- vendor.setVendEnUU(order.getVendUU());
|
|
|
- if (order.getVendUserUU() != null) {
|
|
|
- List<User> users = userDao.findByEnUUAndUserUU(enterprise.getUu(), order.getVendUserUU());
|
|
|
+ vendor.setVendEnUU(enterprise.getUu());
|
|
|
+ if (forecastItem.getVendUserUU() != null) {
|
|
|
+ List<User> users = userDao.findByEnUUAndUserUU(enterprise.getUu(), forecastItem.getVendUserUU());
|
|
|
if (users.size() > 0) {
|
|
|
vendor.setVendorUser(users.get(0));
|
|
|
- vendor.setVendUserUU(order.getVendUserUU());
|
|
|
+ vendor.setVendUserUU(forecastItem.getVendUserUU());
|
|
|
}
|
|
|
}
|
|
|
return vendorDao.save(vendor);
|
|
|
@@ -114,18 +127,4 @@ public class PurchaseForecastServiceImpl implements PurchaseForecastService {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 添加用户
|
|
|
- *
|
|
|
- * @param user
|
|
|
- * @return
|
|
|
- */
|
|
|
- private User addUser(User user) {
|
|
|
- user.setUserUU(null);
|
|
|
- user.setEnable(Constant.NO);
|
|
|
- Set<Enterprise> enterprises = new HashSet<Enterprise>();
|
|
|
- enterprises.add(SystemSession.getUser().getEnterprise());
|
|
|
- user.setEnterprises(enterprises);
|
|
|
- return userDao.save(user);
|
|
|
- }
|
|
|
}
|