Просмотр исходного кода

物料操作公共服务接口还未发布正式,此处回滚

dongbw 8 лет назад
Родитель
Сommit
9b9327bcd3

+ 32 - 62
src/main/java/com/uas/platform/b2b/service/impl/BaseInfoServiceImpl.java

@@ -3,47 +3,15 @@ package com.uas.platform.b2b.service.impl;
 import com.uas.account.entity.RequsetStatus;
 import com.uas.account.util.AccountUtils;
 import com.uas.platform.b2b.core.util.ThreadTask;
-import com.uas.platform.b2b.dao.CommonDao;
-import com.uas.platform.b2b.dao.DistributeDao;
-import com.uas.platform.b2b.dao.EnterpriseDao;
-import com.uas.platform.b2b.dao.ProductDao;
-import com.uas.platform.b2b.dao.ProductMatchResultDao;
-import com.uas.platform.b2b.dao.ProductStatusDao;
-import com.uas.platform.b2b.dao.PurchaseOrderAllDao;
-import com.uas.platform.b2b.dao.PurchaseOrderAllItemDao;
-import com.uas.platform.b2b.dao.RoleDao;
-import com.uas.platform.b2b.dao.UserBaseInfoDao;
-import com.uas.platform.b2b.dao.UserDao;
-import com.uas.platform.b2b.dao.UserOrderDao;
-import com.uas.platform.b2b.dao.VendorDao;
-import com.uas.platform.b2b.model.Attach;
-import com.uas.platform.b2b.model.Component;
-import com.uas.platform.b2b.model.Distribute;
-import com.uas.platform.b2b.model.Enterprise;
-import com.uas.platform.b2b.model.EnterpriseInfo;
-import com.uas.platform.b2b.model.FileUpload;
-import com.uas.platform.b2b.model.Product;
-import com.uas.platform.b2b.model.ProductStatus;
-import com.uas.platform.b2b.model.PurchaseOrderAll;
-import com.uas.platform.b2b.model.PurchaseOrderAllItem;
-import com.uas.platform.b2b.model.Role;
-import com.uas.platform.b2b.model.User;
-import com.uas.platform.b2b.model.UserBaseInfo;
-import com.uas.platform.b2b.model.UserOrders;
-import com.uas.platform.b2b.model.Vendor;
-import com.uas.platform.b2b.ps.ProductUtils;
+import com.uas.platform.b2b.dao.*;
+import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.AttachService;
 import com.uas.platform.b2b.service.BaseInfoService;
 import com.uas.platform.b2b.service.ComponentService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.UsageBufferedLogger;
-import com.uas.platform.b2b.temporary.model.BasePartnersInfo;
-import com.uas.platform.b2b.temporary.model.NewPurcOrder;
-import com.uas.platform.b2b.temporary.model.OrderItems;
-import com.uas.platform.b2b.temporary.model.PartStatus;
-import com.uas.platform.b2b.temporary.model.ProdInfo;
-import com.uas.platform.b2b.temporary.model.UserSpaceDetail;
+import com.uas.platform.b2b.temporary.model.*;
 import com.uas.platform.core.exception.IllegalOperatorException;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.Constant;
@@ -64,12 +32,7 @@ import org.springframework.ui.ModelMap;
 
 import javax.transaction.Transactional;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 @Service
 @Transactional
@@ -254,9 +217,9 @@ public class BaseInfoServiceImpl implements BaseInfoService {
 			}
 			if (!CollectionUtils.isEmpty(products)) {
 				try {
-					List<Long> ids = ProductUtils.update(products);
+					products = productDao.save(products);
 //					saveUserOrders(products);
-					modelMap.put("success", ids != null ? ids.size() : 0);
+					modelMap.put("success", products.size());
 				} catch (Exception e) {
 					modelMap.put("error", "存在编号相同的产品");
 				}
@@ -340,7 +303,7 @@ public class BaseInfoServiceImpl implements BaseInfoService {
 			prodInfo.setStandard(Constant.NO);
 		}
 		prodInfo.setErpDate(new Date());
-		ProductUtils.updateOne(prodInfo);
+		prodInfo = productDao.save(prodInfo);
 //		saveUserOrders(prodInfo);
 		map.put("success", "更新成功");
 		return map;
@@ -397,9 +360,9 @@ public class BaseInfoServiceImpl implements BaseInfoService {
 			prodInfo.setEnUU(SystemSession.getUser().getEnterprise().getUu());
 			prodInfo.setSourceApp("B2B");
 			prodInfo.setErpDate(new Date());
-			Long id = ProductUtils.updateOne(prodInfo);
+			prodInfo = productDao.save(prodInfo);
 //			saveUserOrders(prodInfo);
-			map.put("id", id);
+			map.put("id", prodInfo.getId());
 			map.put("success", "物料添加成功");
 		}
 		return map;
@@ -429,26 +392,36 @@ public class BaseInfoServiceImpl implements BaseInfoService {
 	public Product findById(Long id) {
 		Product product = productDao.findOne(id);
 		Integer num = productDao.findProductBusinessStatusById(id);
+//		if (num > 0) {
+//			product.setIsbusiness(Constant.YES);
+//		} else {
+//			product.setIsbusiness(Constant.NO);
+//		}
 		return product;
 	}
 
-	/**
-	 * 删除物料,设置成disabled
-	 * @param id 物料id
-	 */
 	@Override
 	public void deleteById(Long id) throws Exception {
-		Product product = productDao.findOne(id);
-		if (null != product) {
-			ProductUtils.deleteMatchResultAndProductUser(id);
-			// 物料禁用
-			ProductStatus productStatus = new ProductStatus();
-			productStatus.setProduct(product);
-			productStatus.setB2bDisabled(Constant.YES);
-			productStatusDao.save(productStatus);
+		if (productDao.exists(id)) {
+			// 先删除匹配结果的id
+			List<ProductMatchResult> results = productMatchResultDao.findByPrid(id);
+			if (!CollectionUtils.isEmpty(results)) {
+				productMatchResultDao.delete(results);
+			}
+			// 需要删除个人物料库的数据
+            deleteUserProduct(id);
+			productDao.delete(id);
 		}
 	}
 
+    /**
+     * 删除个人物料库的数据
+     * @param id
+     */
+    private void deleteUserProduct(Long id) {
+        commonDao.getJdbcTemplate().execute("delete product$users where pu_prid = " + id);
+    }
+
     @Override
 	public Vendor addCust(BasePartnersInfo partner) {
 		Enterprise enter = enterpriseDao.findEnterpriseByEnBussinessCode(partner.getVendUID());
@@ -826,8 +799,7 @@ public class BaseInfoServiceImpl implements BaseInfoService {
 	}
 
 	@Override
-	public void switchPorduct(String status) throws Exception {
-		// sale or purc
+	public void switchPorduct(String status) {
 		String switchtype = "sale";
 		Integer switchstatus = 0;
 		Enterprise enter = SystemSession.getUser().getEnterprise();
@@ -840,8 +812,6 @@ public class BaseInfoServiceImpl implements BaseInfoService {
 		// TODO 这里之后要修改为只调用公共服务方法,B2B数据从公共服务同步
 		productDao.switchProductByEnuuAndTypeAndStatus(SystemSession.getUser().getEnterprise().getUu(), switchtype,
 				switchstatus);
-		ProductUtils.switchProductByEnuuAndTypeAndStatus(SystemSession.getUser().getEnterprise().getUu(), switchtype,
-				switchstatus);
 	}
 
 }

+ 75 - 70
src/main/java/com/uas/platform/b2b/service/impl/ProductServiceImpl.java

@@ -1,24 +1,11 @@
 package com.uas.platform.b2b.service.impl;
 
 import com.uas.platform.b2b.core.util.ContextUtils;
-import com.uas.platform.b2b.dao.CommonDao;
-import com.uas.platform.b2b.dao.ProductDao;
-import com.uas.platform.b2b.dao.ProductMatchResultDao;
-import com.uas.platform.b2b.dao.ProductStatusDao;
-import com.uas.platform.b2b.dao.ProductStoreStatusDao;
-import com.uas.platform.b2b.dao.ProductUsersDao;
-import com.uas.platform.b2b.dao.UserOrderDao;
+import com.uas.platform.b2b.dao.*;
 import com.uas.platform.b2b.erp.model.ProductSaler;
 import com.uas.platform.b2b.erp.support.ErpBufferedLogger;
 import com.uas.platform.b2b.event.ProductSaveEvent;
-import com.uas.platform.b2b.model.Component;
-import com.uas.platform.b2b.model.Product;
-import com.uas.platform.b2b.model.ProductMatchResult;
-import com.uas.platform.b2b.model.ProductStatus;
-import com.uas.platform.b2b.model.ProductStoreStatus;
-import com.uas.platform.b2b.model.ProductUsers;
-import com.uas.platform.b2b.model.UpdateType;
-import com.uas.platform.b2b.ps.ProductUtils;
+import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.search.SearchService;
 import com.uas.platform.b2b.service.ComponentService;
 import com.uas.platform.b2b.service.ProductService;
@@ -77,7 +64,7 @@ public class ProductServiceImpl implements ProductService {
     private ProductUsersDao productUsersDao;
 
 	@Autowired
-    private ProductStatusDao productStatusDao;
+	private ProductStatusDao productStatusDao;
 
 	private final static UsageBufferedLogger logger = BufferedLoggerManager.getLogger(UsageBufferedLogger.class);
 
@@ -111,12 +98,10 @@ public class ProductServiceImpl implements ProductService {
 
 	@Override
 	public void unlock(Long id) {
-	    // TODO 这里之后要修改为只调用公共服务方法,B2B数据从公共服务同步
 		try {
-            Product prod = productDao.findOne(id);
-            prod.setIsSale(Constant.YES);
-            ProductUtils.switchProduct(id, "sale", (int) Constant.YES);
-            productDao.save(prod);
+			Product prod = productDao.findOne(id);
+			prod.setIsSale(Constant.YES);
+			productDao.save(prod);
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
@@ -125,12 +110,10 @@ public class ProductServiceImpl implements ProductService {
 
 	@Override
 	public void lock(Long id) {
-        // TODO 这里之后要修改为只调用公共服务方法,B2B数据从公共服务同步
 		try {
-            Product prod = productDao.findOne(id);
-            prod.setIsSale(Constant.YES);
-            ProductUtils.switchProduct(id, "sale", (int) Constant.NO);
-            productDao.save(prod);
+			Product prod = productDao.findOne(id);
+			prod.setIsSale(Constant.NO);
+			productDao.save(prod);
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
@@ -138,12 +121,10 @@ public class ProductServiceImpl implements ProductService {
 
 	@Override
 	public void unlockPurc(Long id) {
-        // TODO 这里之后要修改为只调用公共服务方法,B2B数据从公共服务同步
 		try {
 			Product prod = productDao.findOne(id);
 			prod.setIsPurchase(Constant.YES);
-            ProductUtils.switchProduct(id, "purc", (int) Constant.YES);
-            productDao.save(prod);
+			productDao.save(prod);
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
@@ -151,12 +132,10 @@ public class ProductServiceImpl implements ProductService {
 
 	@Override
 	public void lockPurc(Long id) {
-        // TODO 这里之后要修改为只调用公共服务方法,B2B数据从公共服务同步
 		try {
 			Product prod = productDao.findOne(id);
 			prod.setIsPurchase(Constant.NO);
-            ProductUtils.switchProduct(id, "purc", (int) Constant.NO);
-            productDao.save(prod);
+			productDao.save(prod);
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
@@ -186,7 +165,7 @@ public class ProductServiceImpl implements ProductService {
 	}
 
 	@Override
-	public ModelMap alterByBatch(UpdateByBatchParameter param) throws Exception {
+	public ModelMap alterByBatch(UpdateByBatchParameter param) {
 		ModelMap map = new ModelMap();
 		Integer size = 0;
 		List<Product> prods = new ArrayList<Product>();
@@ -208,10 +187,10 @@ public class ProductServiceImpl implements ProductService {
 							product.setBrand(param.getNewvalue());
 							prods.add(product);
 						}
-                        size = prods.size();
-                    }
-                    ProductUtils.update(prods);
-                }
+						size = prods.size();
+						productDao.save(prods);
+					}
+				}
 
 			} else if (param.getUpdatetype().equals(UpdateType.TITLEUPDATE.getPhrase())) {
 				List<Product> products = new ArrayList<Product>();
@@ -229,11 +208,11 @@ public class ProductServiceImpl implements ProductService {
 					for (Product product : products) {
 						if (product.getCmpUuId() == null) {
 							product.setTitle(param.getNewvalue());
+							productDao.save(product);
 							prods.add(product);
 						}
 						size = prods.size();
 					}
-					ProductUtils.update(prods);
 				}
 			}
 			map.put("success", param.getUpdatetype() + "修改成功,更新数量为" + size);
@@ -268,7 +247,7 @@ public class ProductServiceImpl implements ProductService {
 	}
 
 	@Override
-	public ModelMap matchall(String matchtype) throws Exception{
+	public ModelMap matchall(String matchtype) {
 		ModelMap map = new ModelMap();
 		boolean flag = true;
 		ProductStoreStatus status = productStoreStatusDao.findByEnuu(SystemSession.getUser().getEnterprise().getUu());
@@ -290,19 +269,21 @@ public class ProductServiceImpl implements ProductService {
 		}
 		String num = null;
 		if (flag) {
-//			if (matchtype.equals("sale")) {
-//				num = productDao.upateResultByEnuuForSale(SystemSession.getUser().getEnterprise().getUu());
-//				logger.log("产品匹配", "一键匹配了产品信息", "大小" + num);
-//			} else if (matchtype.equals("purc")) {
-//				num = productDao.upateResultByEnuuForPurc(SystemSession.getUser().getEnterprise().getUu());
-//				logger.log("物料匹配", "一键匹配了物料信息", "大小" + num);
-//			} else if (matchtype.equals("all")) {
-//				num = productDao.upateResultByEnuu(SystemSession.getUser().getEnterprise().getUu());
-//				logger.log("物料匹配", "一键匹配了产品(物料)信息", "大小" + num);
-//			}
-            // 调用公共服务一键匹配
-            ProductUtils.matchAll(SystemSession.getUser().getEnterprise().getUu());
-            map.put("success", "一键匹配成功");
+			if (matchtype.equals("sale")) {
+				num = productDao.upateResultByEnuuForSale(SystemSession.getUser().getEnterprise().getUu());
+				logger.log("产品匹配", "一键匹配了产品信息", "大小" + num);
+			} else if (matchtype.equals("purc")) {
+				num = productDao.upateResultByEnuuForPurc(SystemSession.getUser().getEnterprise().getUu());
+				logger.log("物料匹配", "一键匹配了物料信息", "大小" + num);
+			} else if (matchtype.equals("all")) {
+				num = productDao.upateResultByEnuu(SystemSession.getUser().getEnterprise().getUu());
+				logger.log("物料匹配", "一键匹配了产品(物料)信息", "大小" + num);
+			}
+			if (null == num) {
+				map.put("size", 0);
+			} else {
+				map.put("size", num);
+			}
 			status.setStatus(Status.FINISH.value());
 			productStoreStatusDao.save(status);
 		}
@@ -342,7 +323,7 @@ public class ProductServiceImpl implements ProductService {
                 productStatus.setB2bDisabled(Constant.NO);
 			}
 			try {
-				ProductUtils.updateOne(prod);
+				prod = productDao.save(prod);
 				// 保存物料禁用状态信息
 				productStatusDao.save(productStatus);
 			} catch (Exception e) {
@@ -363,19 +344,19 @@ public class ProductServiceImpl implements ProductService {
 		int size1 = idStrings.size();
 		int size2 = 0;
 		if (status) {
-//            List<Product> products = productDao.findByEnUUAndMatchstatus(
-//                    SystemSession.getUser().getEnterprise().getUu(),
-//                    Status.SUBMITTED.value());
-//            if (!CollectionUtils.isEmpty(products)) {
-//                for (Product porduct : products) {
-//                    if (porduct.getMatchresults().size() == 1) {
-//                        for (ProductMatchResult result : porduct.getMatchresults()) {
-//                            refreshproduct(result.getId());
-//                            size2 = size2 + 1;
-//                        }
-//                    }
-//                }
-//            }
+			// List<Product> products = productDao.findByEnUUAndMatchstatus(
+			// SystemSession.getUser().getEnterprise().getUu(),
+			// Status.SUBMITTED.value());
+			// if (!CollectionUtils.isEmpty(products)) {
+			// for (Product porduct : products) {
+			// if (porduct.getMatchresults().size() == 1) {
+			// for (ProductMatchResult result : porduct.getMatchresults()) {
+			// refreshproduct(result.getId());
+			// size2 = size2 + 1;
+			// }
+			// }
+			// }
+			// }
 			String num = productDao.upateProductByEnuuAndType(SystemSession.getUser().getEnterprise().getUu(), type);
 			if (num != null) {
 				size2 = Integer.valueOf(num);
@@ -389,10 +370,34 @@ public class ProductServiceImpl implements ProductService {
 
 	@Override
 	public List<ProductMatchResult> matchaone(Long id) throws Exception {
-		List<Long> ids = new ArrayList<>();
-		ids.add(id);
-		ProductUtils.matchChoose(SystemSession.getUser().getEnterprise().getUu(), ids);
-		return null;
+		List<ProductMatchResult> results = productMatchResultDao.findByPrid(id);
+		if (CollectionUtils.isEmpty(results)) {// 如果还没有匹配过,再次进行匹配
+			Product prod = productDao.findOne(id);
+			if (prod != null) {
+				List<Component> components = componentService.findByCode(prod.getCmpCode());
+				short i = 1;
+				results = new ArrayList<ProductMatchResult>();
+				if (!CollectionUtils.isEmpty(components)) {
+					for (Component cmp : components) {
+						ProductMatchResult re = new ProductMatchResult();
+						re.setBrandcn(cmp.getBrand().getNameCn());
+						re.setBranden(cmp.getBrand().getNameEn());
+						re.setBrid(cmp.getBrandid());
+						re.setCmpcode(cmp.getCode());
+						re.setCmpid(cmp.getId());
+						re.setKindcn(cmp.getKind().getNameCn());
+						re.setKinden(cmp.getKind().getNameEn());
+						re.setKindid(cmp.getKindid());
+						re.setNumber(i);
+						re.setPrid(id);
+						re.setUuid(cmp.getUuid());
+						results.add(re);
+					}
+					results = productMatchResultDao.save(results);
+				}
+			}
+		}
+		return results;
 	}
 
 	@Override