Browse Source

批量发货

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@740 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
suntg 11 years ago
parent
commit
a5ffca8ee4

+ 7 - 0
src/main/java/com/uas/platform/b2b/service/PurchaseNoticeService.java

@@ -68,6 +68,13 @@ public interface PurchaseNoticeService {
 	 * @param sendItems
 	 * @param sendItems
 	 */
 	 */
 	public void send(List<SaleSendItem> sendItems);
 	public void send(List<SaleSendItem> sendItems);
+	
+	/**
+	 * 同一张发货单批量发货
+	 * @param saleSend
+	 * @return 
+	 */
+	public SaleSend send(SaleSend saleSend);
 
 
 	/**
 	/**
 	 * 查找送货提醒单的发货记录
 	 * 查找送货提醒单的发货记录

+ 40 - 0
src/main/java/com/uas/platform/b2b/service/impl/PurchaseNoticeServiceImpl.java

@@ -218,6 +218,8 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 			notice.setEndQty(endQty);
 			notice.setEndQty(endQty);
 			notice.setStatus((short) (endQty == notice.getQty() ? Status.REPLIED.value() : Status.NOT_REPLY.value()));
 			notice.setStatus((short) (endQty == notice.getQty() ? Status.REPLIED.value() : Status.NOT_REPLY.value()));
 			purchaseNoticeDao.save(notice);
 			purchaseNoticeDao.save(notice);
+			XingePusher.pushSingleAccountAndroid(send.getCustUserUU().toString(), "供应商发货了", "供应商:" + SystemSession.getUser().getEnterprise().getEnName(), null);
+			XingePusher.pushSingleAccountIOS(send.getCustUserUU().toString(), "供应商发货了" + "  供应商:" + SystemSession.getUser().getEnterprise().getEnName());
 		}
 		}
 	}
 	}
 
 
@@ -227,4 +229,42 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 				(short) Status.NOT_REPLY.value());
 				(short) Status.NOT_REPLY.value());
 	}
 	}
 
 
+	@Override
+	public SaleSend send(SaleSend saleSend) {
+		if (saleSend != null) {
+			saleSend.setBackStatus((short) Status.NOT_UPLOAD.value());
+			saleSend.setSendStatus((short) Status.NOT_UPLOAD.value());
+			saleSend.setEnUU(SystemSession.getUser().getEnterprise().getUu());
+			saleSend.setRecorder(SystemSession.getUser().getUserName());
+			short number = 0;
+			for (SaleSendItem item : saleSend.getSendItems()) {
+				PurchaseNotice notice = purchaseNoticeDao.findOne(item.getNoticeId());
+				if(notice != null) {
+					double thisQty = item.getQty();
+					double endQty = (notice.getEndQty() == null ? 0.0 : notice.getEndQty()) + thisQty;
+					if (endQty > notice.getQty())
+						throw new IllegalArgumentException("累计发货数量将超出本次送货提醒的需求数!");
+					item.setNotice(notice);
+					item.setNumber(++number);
+					item.setSend(saleSend);
+					saleSend.setRate(notice.getOrderItem().getOrder().getRate());
+				} else {
+					throw new IllegalArgumentException("参数错误,无效的客户送货提醒单!");
+				}
+				
+			}
+			List<SaleSendItem> sendItems = saleSendItemDao.save(saleSend.getSendItems());
+			for(SaleSendItem sendItem : sendItems) {
+				PurchaseNotice notice = purchaseNoticeDao.findOne(sendItem.getNoticeId());
+				double endQty = (notice.getEndQty() == null ? 0.0 : notice.getEndQty()) + sendItem.getQty();
+				notice.setEndQty(endQty);
+				notice.setStatus((short) (endQty == notice.getQty() ? Status.REPLIED.value() : Status.NOT_REPLY.value()));
+				purchaseNoticeDao.save(notice);
+			}
+			XingePusher.pushSingleAccountAndroid(saleSend.getCustUserUU().toString(), "供应商发货了", "供应商:" + SystemSession.getUser().getEnterprise().getEnName(), null);
+			XingePusher.pushSingleAccountIOS(saleSend.getCustUserUU().toString(), "供应商发货了" + "  供应商:" + SystemSession.getUser().getEnterprise().getEnName());
+		}
+		return null;
+	}
+
 }
 }