Browse Source

打样申请单上传增加物料判断

hejq 7 years ago
parent
commit
b483b7b633

+ 14 - 7
src/main/java/com/uas/platform/b2b/controller/SaleSampleController.java

@@ -14,6 +14,7 @@ import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;
 import com.uas.platform.core.model.Status;
+import com.uas.platform.core.persistence.criteria.PredicateUtils;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
 import com.uas.platform.core.web.bind.RequestState;
 import com.uas.search.b2b.model.MultiValue;
@@ -28,6 +29,7 @@ import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
 import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
 
@@ -70,27 +72,32 @@ public class SaleSampleController {
 	@ResponseBody
 	public SPage<PurchaseProofingItem> getProofingItems(PageParams params, String searchFilter) {
 		logger.log("客户打样申请", "查看所有客户打样申请");
-		JSONObject jsonObject = JSON.parseObject(searchFilter);
-		String keyword = jsonObject.getString("keyword");
+		SearchFilter filter = JSONObject.parseObject(searchFilter, SearchFilter.class);
 		// // 判断当前用户是否被客户分配
 		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, searchFilter);
 		// 当前登录企业作为供应商
 		pageParams.getFilters().put("ppi_venduu", SystemSession.getUser().getEnterprise().getUu());
-		SearchFilter filter = userService.distribute();
-		if (filter != null && filter.getDistribute() == null) {
+		SearchFilter distribute = userService.distribute();
+		PageInfo pageInfo = new PageInfo(params);
+		if (distribute != null && distribute.getDistribute() == null) {
 			return null;
 		}
-		if (filter != null && !CollectionUtils.isEmpty(filter.getDistribute())) {
+		if (distribute != null && !CollectionUtils.isEmpty(distribute.getDistribute())) {
 			List<Object> list = new ArrayList<>();
-			for (Object object : filter.getDistribute()) {
+			for (Object object : distribute.getDistribute()) {
 				list.add(object);
 			}
 			pageParams.getFilters().put("ppi_ppid", new MultiValue(list, true));
+			pageInfo.expression(PredicateUtils.in("proofing.enUU", distribute.getDistribute(), true));
 		}
+		if (StringUtils.isEmpty(filter.getKeyword())) {
+            pageInfo.filter("vendUU", SystemSession.getUser().getEnterprise().getUu());
+		    return purchaseProofingService.findByPageInfo(pageInfo, null, filter);
+        }
 		List<Sort> sortList = new ArrayList<>();
 		sortList.add(new Sort("ppi_id", false, Type.LONG, new Long(1)));
 		pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);
-		return searchService.searchPurchaseProofingItemIds(keyword, pageParams);
+		return searchService.searchPurchaseProofingItemIds(filter.getKeyword(), pageParams);
 	}
 
 	/**

+ 43 - 38
src/main/java/com/uas/platform/b2b/erp/service/impl/PurchaseSampleServiceImpl.java

@@ -7,6 +7,7 @@ import com.uas.platform.b2b.erp.service.PurchaseSampleService;
 import com.uas.platform.b2b.erp.service.VendorService;
 import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.support.SystemSession;
+import com.uas.platform.core.exception.NotFoundException;
 import com.uas.platform.core.model.Constant;
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -45,50 +46,54 @@ public class PurchaseSampleServiceImpl implements PurchaseSampleService {
 		for (ProductSample sample : samples) {
 			List<PurchaseProofing> proofingList = purchaseProofingDao.findByEnUUAndCode(enUU, sample.getPs_code());
 			List<Product> products = productDao.findByEnUUAndCode(enUU, sample.getPs_prodcode());
-			if (proofingList.size() == 0 && products.size() > 0) {// 平台中不存在的单据&&物料已经上传到平台
-				PurchaseProofing proofing = sample.convert();
-				if (!CollectionUtils.isEmpty(proofing.getProofingItems())) {
-					Long userUU = proofing.getUserUU();
-					if (userUU != null) {
-						List<User> users = userDao.findByEnUUAndUserUU(enUU, userUU);
-						if (users.size() > 0)
-							userUU = users.get(0).getUserUU();
-						else
+			if (!CollectionUtils.isEmpty(products)) {
+				if (proofingList.size() == 0) {// 平台中不存在的单据&&物料已经上传到平台
+					PurchaseProofing proofing = sample.convert();
+					if (!CollectionUtils.isEmpty(proofing.getProofingItems())) {
+						Long userUU = proofing.getUserUU();
+						if (userUU != null) {
+							List<User> users = userDao.findByEnUUAndUserUU(enUU, userUU);
+							if (users.size() > 0)
+								userUU = users.get(0).getUserUU();
+							else
+								userUU = SystemSession.getUser().getUserUU();
+						} else
 							userUU = SystemSession.getUser().getUserUU();
-					} else
-						userUU = SystemSession.getUser().getUserUU();
-					// 单据中能获取到申请人的uu号,并且有效则为申请人,否则为企业管理员
-					proofing.setUserUU(userUU);
-					proofing.setUser(null);
-					proofing.setProduct(products.get(0));
-					proofing.setProductId(products.get(0).getId());
-					for (PurchaseProofingItem proofingItem : proofing.getProofingItems()) {// 对明细遍历
-						proofingItem.setProofing(proofing);
-						List<Vendor> vendors = vendorDao.findByMyEnUUAndVendUU(enUU, proofingItem.getVendUU());
-						Vendor vendor = null;
-						if (vendors.size() == 0) {// 供应商列表中不存在供应商关系
-							vendor = addVendor(proofingItem);// 增加供应商关系
-							if (null != vendor) {
-								vendorService.addPartnerShipRecord(vendor, appId);
+						// 单据中能获取到申请人的uu号,并且有效则为申请人,否则为企业管理员
+						proofing.setUserUU(userUU);
+						proofing.setUser(null);
+						proofing.setProduct(products.get(0));
+						proofing.setProductId(products.get(0).getId());
+						for (PurchaseProofingItem proofingItem : proofing.getProofingItems()) {// 对明细遍历
+							proofingItem.setProofing(proofing);
+							List<Vendor> vendors = vendorDao.findByMyEnUUAndVendUU(enUU, proofingItem.getVendUU());
+							Vendor vendor = null;
+							if (vendors.size() == 0) {// 供应商列表中不存在供应商关系
+								vendor = addVendor(proofingItem);// 增加供应商关系
+								if (null != vendor) {
+									vendorService.addPartnerShipRecord(vendor, appId);
+								}
+							} else {
+								vendor = vendors.get(0);
 							}
-						} else {
-							vendor = vendors.get(0);
-						}
-						if (vendor != null) {// 供应商uu号不为非法的值
-							// 如果明细中客户联系人UU号为空或者UU号不存在对应的用户,则设为供应商资料中的供应商联系人(可能为空)
-							if (proofingItem.getVendUserUU() != null) {
-								List<User> vendUsers = userDao.findByEnUUAndUserUU(vendor.getVendEnUU(),
-										proofingItem.getVendUserUU());
-								if (vendUsers.size() == 0)
+							if (vendor != null) {// 供应商uu号不为非法的值
+								// 如果明细中客户联系人UU号为空或者UU号不存在对应的用户,则设为供应商资料中的供应商联系人(可能为空)
+								if (proofingItem.getVendUserUU() != null) {
+									List<User> vendUsers = userDao.findByEnUUAndUserUU(vendor.getVendEnUU(),
+											proofingItem.getVendUserUU());
+									if (vendUsers.size() == 0)
+										proofingItem.setVendUserUU(vendor.getVendUserUU());
+								} else
 									proofingItem.setVendUserUU(vendor.getVendUserUU());
-							} else
-								proofingItem.setVendUserUU(vendor.getVendUserUU());
-							proofingItem.setErpDate(new Date(System.currentTimeMillis()));
-							proofingItem.setDate(new Date(System.currentTimeMillis()));
-							proofingItems.add(proofingItem);
+								proofingItem.setErpDate(new Date(System.currentTimeMillis()));
+								proofingItem.setDate(new Date(System.currentTimeMillis()));
+								proofingItems.add(proofingItem);
+							}
 						}
 					}
 				}
+			} else {
+				throw new NotFoundException(sample.getPs_prodcode() + ",物料不存在,企业UU:" + SystemSession.getUser().getEnterprise().getUu());
 			}
 
 		}