Browse Source

采购明细未上传处理

Hu Jie 7 years ago
parent
commit
fe8e712cc4

+ 19 - 1
src/main/java/com/uas/platform/b2b/dao/PurchaseOrderItemDao.java

@@ -34,7 +34,25 @@ public interface PurchaseOrderItemDao extends JpaSpecificationExecutor<PurchaseO
 	 */
 	@Query("select count(d) from PurchaseOrderItem d where d.order.id = :orderId and d.replyQty >= d.qty")
 	public int getCountByReply(@Param("orderId") long orderId);
-	
+
+	/**
+	 * 按订单id查找订单明细数量
+	 *
+	 * @param orderId
+	 * @return
+	 */
+	@Query("select count(d) from PurchaseOrderItem d where d.order.id = :orderId ")
+	int getCountByOrderId(@Param("orderId") long orderId);
+
+	/**
+	 * 按订单id查找订单明细
+	 *
+	 * @param orderId
+	 * @return
+	 */
+	@Query("select d from PurchaseOrderItem d where d.order.id = :orderId ")
+	List<PurchaseOrderItem> getItemByOrderId(@Param("orderId") long orderId);
+
 	/**
 	 * 按订单明细结案情况查找订单明细
 	 * 

+ 13 - 1
src/main/java/com/uas/platform/b2b/erp/service/impl/PurchaseServiceImpl.java

@@ -74,7 +74,19 @@ public class PurchaseServiceImpl implements PurchaseService {
 		for (Purchase purchase : purchases) {
 			// 先查看是否已存在
 			Integer orderCount = purchaseOrderDao.countByEnUUAndCode(enUU, purchase.getPu_code());
-			if (orderCount == 0) {
+			Integer itemCount=0;
+			if (orderCount != 0) {
+				PurchaseOrder purchaseOrder = purchaseOrderDao.findByEnUUAndCode(enUU, purchase.getPu_code()).get(0);
+				itemCount= purchaseOrderItemDao.getCountByOrderId(purchaseOrder.getId());
+				if (purchase.getPurchaseDetails().size() != itemCount) {
+					List<PurchaseOrderItem> items = purchaseOrderItemDao.getItemByOrderId(purchaseOrder.getId());
+					for(PurchaseOrderItem item : items) {
+						purchaseOrderItemDao.delete(item.getId());
+					}
+					purchaseOrderDao.delete(purchaseOrder.getId());
+				}
+			}
+			if ((orderCount == 0) || (purchase.getPurchaseDetails().size() != itemCount)) {
 				PurchaseOrderInfo order = purchase.convert();
 				// 将order的UserUU set 为em_uu
 				List<Vendor> vendors = vendorDao.findByMyEnUUAndVendUU(order.getEnUU(), order.getVendUU());