Jelajahi Sumber

修改采购询价保存方法

hejq 8 tahun lalu
induk
melakukan
5488cb1b67

+ 15 - 21
src/main/java/com/uas/platform/b2b/erp/service/impl/InquiryServiceImpl.java

@@ -117,29 +117,23 @@ public class InquiryServiceImpl implements InquiryService {
 								item.setProduct(products.get(0));
 								item.setProductId(products.get(0).getId());
 							} else {
-                                List<NotExistProduct> productList = notExistProductDao.findByEnuuAndCode(enUU, product.getCode());
-                                if (org.springframework.util.CollectionUtils.isEmpty(productList)) {
-                                    notExistProductDao.save(new NotExistProduct(product.getCode(), enUU, "inquiry", inquiry.getIn_code()));
-                                } else {
-                                    NotExistProduct prod = productList.get(0);
-                                    prod.setStatus(Status.NOT_UPLOAD.value());
-                                    notExistProductDao.save(prod);
-                                }
-                                throw new NotFoundException("企业UU【" + enUU + "】,物料编号【" + product.getCode() + "】,来源【" + inquiry.getIn_code() + "】");
+								List<NotExistProduct> productList = notExistProductDao.findByEnuuAndCode(enUU, product.getCode());
+								if (org.springframework.util.CollectionUtils.isEmpty(productList)) {
+									notExistProductDao.save(new NotExistProduct(product.getCode(), enUU, "inquiry", inquiry.getIn_code()));
+								} else {
+									NotExistProduct prod = productList.get(0);
+									prod.setStatus(Status.NOT_UPLOAD.value());
+									notExistProductDao.save(prod);
+								}
+								throw new NotFoundException("企业UU【" + enUU + "】,物料编号【" + product.getCode() + "】,来源【" + inquiry.getIn_code() + "】");
 							}
-                            item.setInquiry(purchaseInquiry);
+							item.setInquiry(purchaseInquiry);
 							PurchaseInquiryTemp temp = new PurchaseInquiryTemp();
-                            BeanUtils.copyProperties(purchaseInquiry, temp, PurchaseInquiryTemp.class);
-                            PurchaseInquiryTemp inquiryTemp = tempDao.findByCodeAndEnUU(temp.getCode(), temp.getEnUU());
-                            PurchaseInquiryItemTemp itemTemp = new PurchaseInquiryItemTemp();
-                            BeanUtils.copyProperties(item, itemTemp, PurchaseInquiryItemTemp.class);
-                            if (inquiryTemp == null) {
-                                temp = tempDao.save(temp);
-                                itemTemp.setInId(temp.getId());
-                            } else {
-                                itemTemp.setInId(inquiryTemp.getId());
-                            }
-                            tempList.add(itemTemp);
+							BeanUtils.copyProperties(purchaseInquiry, temp, PurchaseInquiryTemp.class);
+							PurchaseInquiryItemTemp itemTemp = new PurchaseInquiryItemTemp();
+							BeanUtils.copyProperties(item, itemTemp, PurchaseInquiryItemTemp.class);
+							itemTemp.setInquiry(temp);
+							tempList.add(itemTemp);
 						}
 					}
 

+ 14 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseInquiryItemTemp.java

@@ -44,6 +44,12 @@ public class PurchaseInquiryItemTemp {
 	@Column(name = "id_inid", nullable = false)
 	private Long inId;
 
+	/**
+	 * 询价单
+	 */
+	@Transient
+	private PurchaseInquiryTemp inquiry;
+
 	/**
 	 * 买家采购员UU
 	 */
@@ -311,6 +317,14 @@ public class PurchaseInquiryItemTemp {
 		this.inId = inId;
 	}
 
+	public PurchaseInquiryTemp getInquiry() {
+		return inquiry;
+	}
+
+	public void setInquiry(PurchaseInquiryTemp inquiry) {
+		this.inquiry = inquiry;
+	}
+
 	public Long getUserUU() {
 		return userUU;
 	}

+ 50 - 29
src/main/java/com/uas/platform/b2b/service/impl/PurchaseInquiryServiceImpl.java

@@ -117,6 +117,9 @@ public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
 	@Autowired
     private PurchaseInquiryItemTempDao tempDao;
 
+	@Autowired
+	private PurchaseInquiryTempDao inquiryTempDao;
+
 	private final static ErpBufferedLogger logger = BufferedLoggerManager.getLogger(ErpBufferedLogger.class);
 
     static final String TEL_REGEXP = "^((\\(\\d{3}\\))|(\\d{3}\\-))?(13|15|18|17)\\d{9}$";
@@ -128,35 +131,53 @@ public class PurchaseInquiryServiceImpl implements PurchaseInquiryService {
 
     @Override
     public void saveList(List<PurchaseInquiryItemTemp> purchaseInquiryItemTemps) {
-        purchaseInquiryItemTemps = tempDao.save(purchaseInquiryItemTemps);
-        List<PurchaseInquiryItem> inquiryItems = new ArrayList<PurchaseInquiryItem>();
-        if (!CollectionUtils.isEmpty(purchaseInquiryItemTemps)) {
-            for (PurchaseInquiryItemTemp temp : purchaseInquiryItemTemps) {
-                PurchaseInquiryItem item = new PurchaseInquiryItem();
-                BeanUtils.copyProperties(temp, item, PurchaseInquiryItem.class);
-                item.setInquiry(purchaseInquiryDao.findOne(temp.getInId()));
-                item.setProduct(productDao.findOne(temp.getProductId()));
-            }
-            saveUserOrders(inquiryItems);
-            Long userUU = SystemSession.getUser().getUserUU();
-            Long enUU = SystemSession.getUser().getEnterprise().getUu();
-            String userIp = SystemSession.getUser().getIp();
-            String userName = SystemSession.getUser().getUserName();
-            sendRemind(PurchaseInquiryItem.distinct(inquiryItems), userUU, userName, userIp, enUU);
-            // 产生消息
-            List<PurchaseInquiry> inquiries = PurchaseInquiryItem.distinct(inquiryItems);
-            List<PurchaseInquiryItem> items = new ArrayList<>();
-            for (PurchaseInquiry inquiry : inquiries) {
-                Set<Long> enUUs = new HashSet<>();
-                for (PurchaseInquiryItem inquiryItem : inquiry.getInquiryItems()) {
-                    if (!enUUs.contains(inquiryItem.getVendUU())) {
-                        items.add(inquiryItem);
-                        enUUs.add(inquiryItem.getVendUU());
-                    }
-                }
-            }
-            ContextUtils.publishEvent(new PurchaseInquiryItemSaveReleaseEvent(items));
-        }
+		try {
+			for (PurchaseInquiryItemTemp itemTemp : purchaseInquiryItemTemps) {
+				PurchaseInquiryTemp inquiryTemp = inquiryTempDao.findByCodeAndEnUU(itemTemp.getInquiry().getCode(), itemTemp.getInquiry().getEnUU());
+				if (inquiryTemp == null) {
+					PurchaseInquiryTemp temp = inquiryTempDao.save(itemTemp.getInquiry());
+					itemTemp.setInId(temp.getId());
+				} else {
+					itemTemp.setInId(inquiryTemp.getId());
+				}
+			}
+			purchaseInquiryItemTemps = tempDao.save(purchaseInquiryItemTemps);
+		} catch (Exception e) {
+			for (PurchaseInquiryItemTemp temp : purchaseInquiryItemTemps) {
+				if (inquiryTempDao.exists(temp.getInId())) {
+					inquiryTempDao.delete(temp.getInId());
+				}
+				throw new IllegalOperatorException("保存失败");
+			}
+		}
+		List<PurchaseInquiryItem> inquiryItems = new ArrayList<PurchaseInquiryItem>();
+		if (!CollectionUtils.isEmpty(purchaseInquiryItemTemps)) {
+			for (PurchaseInquiryItemTemp temp : purchaseInquiryItemTemps) {
+				PurchaseInquiryItem item = new PurchaseInquiryItem();
+				BeanUtils.copyProperties(temp, item, PurchaseInquiryItem.class);
+				item.setInquiry(purchaseInquiryDao.findOne(temp.getInId()));
+				item.setProduct(productDao.findOne(temp.getProductId()));
+			}
+			saveUserOrders(inquiryItems);
+			Long userUU = SystemSession.getUser().getUserUU();
+			Long enUU = SystemSession.getUser().getEnterprise().getUu();
+			String userIp = SystemSession.getUser().getIp();
+			String userName = SystemSession.getUser().getUserName();
+			sendRemind(PurchaseInquiryItem.distinct(inquiryItems), userUU, userName, userIp, enUU);
+			// 产生消息
+			List<PurchaseInquiry> inquiries = PurchaseInquiryItem.distinct(inquiryItems);
+			List<PurchaseInquiryItem> items = new ArrayList<>();
+			for (PurchaseInquiry inquiry : inquiries) {
+				Set<Long> enUUs = new HashSet<>();
+				for (PurchaseInquiryItem inquiryItem : inquiry.getInquiryItems()) {
+					if (!enUUs.contains(inquiryItem.getVendUU())) {
+						items.add(inquiryItem);
+						enUUs.add(inquiryItem.getVendUU());
+					}
+				}
+			}
+			ContextUtils.publishEvent(new PurchaseInquiryItemSaveReleaseEvent(items));
+		}
     }
 
     /**