Browse Source

批量回复优化

Hu Jie 7 years ago
parent
commit
a221b91d47

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

@@ -86,8 +86,8 @@ public interface PurchaseOrderItemDao extends JpaSpecificationExecutor<PurchaseO
 	 * @param id
 	 */
 	@Modifying(clearAutomatically = true)
-	@Query("update PurchaseOrderItem p set p.replyQty=(select sum(r.qty) from PurchaseOrderReply r where r.orderItem=p),p.replyDelivery= :delivery,p.replyRemark= :remark,p.status = :status where p.id= :id")
-	public void updateByReply(@Param("delivery") Date delivery, @Param("remark") String remark, @Param("id") long id, @Param("status") Short status);
+	@Query("update PurchaseOrderItem p set p.replyQty= :replyQtySum,p.replyDelivery= :delivery,p.replyRemark= :remark,p.status = :status where p.id= :id")
+	public void updateByReply(@Param("replyQtySum") Double replyQtySum, @Param("delivery") Date delivery, @Param("remark") String remark, @Param("id") long id, @Param("status") Short status);
 
 	/**
 	 * 批量回复采购订单

+ 8 - 0
src/main/java/com/uas/platform/b2b/dao/PurchaseOrderReplyDao.java

@@ -49,4 +49,12 @@ public interface PurchaseOrderReplyDao extends JpaSpecificationExecutor<Purchase
 	 */
 	@Query("from PurchaseOrderReply r where r.orderItem.order.vendUU = :vendUU and r.sendStatus = :status")
 	List<PurchaseOrderReply> findByVendUUAndSendStatus(@Param("vendUU") long vendUU, @Param("status") short status);
+
+	/**
+	 * 根据明细id查找回复数量
+	 * @param itemId 采购订单明细id
+	 * @return
+	 */
+	@Query(nativeQuery = true, value = "select sum(r.pr_qty) from purc$reply r where r.pr_pdid = :itemId")
+	Double getReplyQty(@Param("itemId") Long itemId);
 }

+ 3 - 7
src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderServiceImpl.java

@@ -3,6 +3,7 @@ package com.uas.platform.b2b.service.impl;
 import com.uas.platform.b2b.core.util.ContextUtils;
 import com.uas.platform.b2b.core.util.SplitArray;
 import com.uas.platform.b2b.core.util.ThreadTask;
+import com.uas.platform.b2b.core.util.ThreadUtils;
 import com.uas.platform.b2b.dao.*;
 import com.uas.platform.b2b.erp.model.PurchaseDetail;
 import com.uas.platform.b2b.event.PurchaseOrderEndReleaseEvent;
@@ -284,7 +285,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 		} else {
 			item.setStatus((short) Status.NOT_REPLY.value());
 		}
-		purchaseOrderItemDao.updateByReply(reply.getDelivery(), reply.getRemark(), item.getId(), item.getStatus());
+		Double replyQtySum = purchaseOrderReplyDao.getReplyQty(item.getId());
+		purchaseOrderItemDao.updateByReply(replyQtySum, reply.getDelivery(), reply.getRemark(), item.getId(), item.getStatus());
 		PurchaseOrder order = item.getOrder();
 		// 订单主记录状态
 		order = updateOrderStatus(order.getId());
@@ -296,12 +298,6 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 				XingePusher.pushByUser(user, "新增采购单回复", "单号:" + order.getCode() + ",供应商:" + vendor.getEnName(), "", "");
 			}
 		}
-		// 将采购员的单据设置成未读
-        try {
-            // userOrderDao.setReadStatus(order.getEnUU(), order.getUserUU(), "purc$orders", "purc", (short) Status.NOT_READ.value(), order.getId());
-        } catch (RuntimeException e){
-
-        }
 		return reply;
 	}