فهرست منبع

买家确认收货的bug

yujia 7 سال پیش
والد
کامیت
431544c7a7

+ 1 - 1
src/main/java/com/uas/platform/b2c/logistics/model/InvoiceFPurchaseDetail.java

@@ -48,7 +48,7 @@ public class InvoiceFPurchaseDetail {
 	/**
 	 * 来源采购单明细id
 	 */
-	@Column(name = "pudetail_id", unique = true)
+	@Column(name = "pudetail_id")
 	private Long pudetailid;
 
 	/**

+ 24 - 12
src/main/java/com/uas/platform/b2c/logistics/service/impl/InvoiceFPurchaseServiceImpl.java

@@ -644,6 +644,7 @@ public class InvoiceFPurchaseServiceImpl implements InvoiceFPurchaseService {
 	 * @param id      采购单信息
 	 * @return 返回发货单
 	 */
+	@Transactional
 	@Override
 	public ResultMap ship(String shiInfo, Long id) {
 		if (StringUtilB2C.isEmpty(shiInfo)) {
@@ -694,8 +695,6 @@ public class InvoiceFPurchaseServiceImpl implements InvoiceFPurchaseService {
 			detail.setStatus(Status.INBOUND.value());
 		}
 		InvoiceFPurchase inFpu = inFpuDao.save(invoiceFPurchase);
-
-
 		if (inFpu.getLogistics() != null) {
 			purchase.setLgtId(inFpu.getLogistics().getId());
 		}
@@ -707,20 +706,36 @@ public class InvoiceFPurchaseServiceImpl implements InvoiceFPurchaseService {
 		purchase.addInid(inFpu.getInvoiceid());
 		//如果不是优软商城店铺,则代表店铺直售
 		Order order = null;
+		Double qty = 0.0d;
 		if(!purchase.getStoreid().equals(sysConf.getStoreid())) {
 			order = orderDao.findByOrderid(purchase.getOrderid());
 			order.addInInds(inFpu.getInvoiceid());
-		}
-
-		if(NumberUtil.compare(purchase.getQty(), purchase.getShipQty()) < 1) {
-			//如果不是优软商城店铺,则代表店铺直售
-			if(!purchase.getStoreid().equals(sysConf.getStoreid())) {
+			Set<OrderDetail> orderDetails = order.getOrderDetails();
+			for (OrderDetail orderDetail : orderDetails) {
+				Set<PurchaseDetail> purchaseDetails = purchase.getPurchaseDetails();
+				for (PurchaseDetail purchaseDetail : purchaseDetails) {
+					if (StringUtilB2C.equals(orderDetail.getDetailid(), purchaseDetail.getOrderdetailid())) {
+						orderDetail.setShipQty(purchaseDetail.getShipQty());
+						qty = NumberUtil.add(qty, purchaseDetail.getShipQty());
+						if (NumberUtil.compare(orderDetail.getShipQty(), orderDetail.getNumber()) > -1) {
+							orderDetail.setStatusInBound(SystemSession.getUser().getUserUU());
+						}
+						break;
+					}
+				}
+			}
+			order.setShipQty(qty);
+			if(NumberUtil.compare(purchase.getQty(), purchase.getShipQty()) < 1) {
 				order.setStatusInBound(userUU);
 				order.setSendstatus(Status.NOT_UPLOAD.value());// 将订单设置为未下载状态,以便erp下载
-				for (OrderDetail detail : order.getOrderDetails()) {
-					detail.setStatusInBound(userUU);
+				for (OrderDetail orderDetail : orderDetails) {
+					orderDetail.setStatusInBound(userUU);
 				}
 			}
+			orderDao.save(order);
+		}
+
+		if(NumberUtil.compare(purchase.getQty(), purchase.getShipQty()) < 1) {
 			Set<PurchaseDetail> purchaseDetails = purchase.getPurchaseDetails();
 			for (PurchaseDetail purchaseDetail : purchaseDetails) {
 				if (Status.TOBESHIPPED.value() == purchaseDetail.getStatus()) {
@@ -729,9 +744,6 @@ public class InvoiceFPurchaseServiceImpl implements InvoiceFPurchaseService {
 			}
 			purchase.setStatusInBound(userUU);
 		}
-		if (order != null) {
-			orderDao.save(order);
-		}
 		purchaseDao.save(purchase);
 		return ResultMap.success("ok");
 	}

+ 4 - 2
src/main/java/com/uas/platform/b2c/trade/order/model/Order.java

@@ -447,7 +447,7 @@ public class Order extends Document implements Serializable {
 	 * 关联出货单id
 	 */
 	@Column(name = "or_inids", length = 1000)
-	private String inIds;
+	private String inIds = "";
 
 	/**
 	 * 订单明细
@@ -2570,7 +2570,9 @@ public class Order extends Document implements Serializable {
 	}
 
 	public Order addInInds(String inid) {
-		if (!StringUtils.isEmpty(this.inIds)) {
+		if (StringUtils.isEmpty(this.inIds)) {
+			this.inIds = "";
+		} else {
 			this.inIds += ",";
 		}
 		this.inIds += inid;

+ 4 - 2
src/main/java/com/uas/platform/b2c/trade/order/model/Purchase.java

@@ -196,7 +196,7 @@ public class Purchase extends Document implements Serializable {
 	 * 转的发货单id
 	 */
 	@Column(name = "pu_inids", length = 1000)
-	private String inids;
+	private String inids = "";
 
 	/**
 	 * 存来源订单号(ID), 同意存放订单号
@@ -1453,7 +1453,9 @@ public class Purchase extends Document implements Serializable {
 	}
 
 	public void addInid(String inid) {
-		if (!StringUtils.isEmpty(this.inids)) {
+		if (StringUtils.isEmpty(this.inids)) {
+			this.inids = "";
+		} else {
 			this.inids += ",";
 		}
 		this.inids += inid;

+ 1 - 0
src/main/java/com/uas/platform/b2c/trade/order/service/impl/OrderServiceImpl.java

@@ -1747,6 +1747,7 @@ public class OrderServiceImpl implements OrderService {
      * @param invoiceId 出货单号
      * @return ResultMap
      */
+    @Transactional
     @Override
     public ResultMap ensureOrderAccept(Long id, String invoiceId) {
         if (id == null) {