Browse Source

ERP-B2B送货提醒数据传输

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@448 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
administrator 11 years ago
parent
commit
9c82f80728

+ 28 - 0
src/main/java/com/uas/platform/b2b/dao/PurchaseNoticeDao.java

@@ -0,0 +1,28 @@
+package com.uas.platform.b2b.dao;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+import com.uas.platform.b2b.model.PurchaseNotice;
+
+@Repository
+public interface PurchaseNoticeDao extends JpaSpecificationExecutor<PurchaseNotice>, JpaRepository<PurchaseNotice, Long> {
+
+	/**
+	 * 按买家企业ID和编号查找送货提醒单
+	 * 
+	 * @return
+	 */
+	List<PurchaseNotice> findByEnUUAndCode(long enUU, String code);
+
+	/**
+	 * 按供应商企业ID和传输状态查找送货提醒单
+	 * 
+	 * @return
+	 */
+	List<PurchaseNotice> findByVendUUAndSendStatus(long vendUU, Short sendStatus);
+
+}

+ 32 - 0
src/main/java/com/uas/platform/b2b/dao/SaleSendDao.java

@@ -0,0 +1,32 @@
+package com.uas.platform.b2b.dao;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+import com.uas.platform.b2b.model.SaleSend;
+
+@Repository
+public interface SaleSendDao extends JpaSpecificationExecutor<SaleSend>, JpaRepository<SaleSend, Long> {
+
+	/**
+	 * 按卖出方企业ID和传输状态查找发货单
+	 * 
+	 * @param enUU
+	 * @param backStatus
+	 * @return
+	 */
+	List<SaleSend> findByEnUUAndBackStatus(long enUU, Short backStatus);
+
+	/**
+	 * 按买方企业ID和传输状态查找发货单
+	 * 
+	 * @param custUU
+	 * @param sendStatus
+	 * @return
+	 */
+	List<SaleSend> findByCustUUAndSendStatus(long custUU, Short sendStatus);
+
+}

+ 66 - 6
src/main/java/com/uas/platform/b2b/erp/model/AcceptNotify.java

@@ -1,6 +1,15 @@
 package com.uas.platform.b2b.erp.model;
 
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.commons.collections.CollectionUtils;
+
 import com.uas.platform.b2b.model.SaleSend;
+import com.uas.platform.b2b.model.SaleSendItem;
+import com.uas.platform.b2b.support.SystemSession;
 
 /**
  * 买家ERP的收料通知单
@@ -12,6 +21,8 @@ public class AcceptNotify {
 	private Float an_rate;
 	private String an_payment;
 	private long an_buyeruu;
+	private String an_remark;
+	private List<AcceptNotifyDetail> details;
 
 	public long getAn_venduu() {
 		return an_venduu;
@@ -52,18 +63,67 @@ public class AcceptNotify {
 	public void setAn_buyeruu(long an_buyeruu) {
 		this.an_buyeruu = an_buyeruu;
 	}
-	
+
+	public String getAn_remark() {
+		return an_remark;
+	}
+
+	public void setAn_remark(String an_remark) {
+		this.an_remark = an_remark;
+	}
+
+	public List<AcceptNotifyDetail> getDetails() {
+		return details;
+	}
+
+	public void setDetails(List<AcceptNotifyDetail> details) {
+		this.details = details;
+	}
+
 	public AcceptNotify() {
-		
+
 	}
-	
+
+	/**
+	 * 卖家做的发货单,转为买家的收料通知
+	 * 
+	 * @param send
+	 */
 	public AcceptNotify(SaleSend send) {
-		
+		this.an_buyeruu = send.getCustUserUU();
+		this.an_currency = send.getCurrency();
+		this.an_payment = send.getPayments();
+		this.an_rate = send.getRate();
+		this.an_remark = send.getRemark();
+		this.an_venduu = send.getEnUU();
+		this.details = new ArrayList<AcceptNotifyDetail>();
+		if (!CollectionUtils.isEmpty(send.getSendItems())) {
+			for (SaleSendItem item : send.getSendItems()) {
+				this.details.add(new AcceptNotifyDetail(item));
+			}
+		}
 	}
-	
+
+	/**
+	 * 买家主动做的收料通知,转到平台的发货单
+	 * 
+	 * @return
+	 */
 	public SaleSend convert() {
 		SaleSend send = new SaleSend();
-		
+		send.setEnUU(this.getAn_venduu());
+		send.setCustUU(SystemSession.getUser().getEnterprise().getUu());
+		send.setCurrency(this.an_currency);
+		send.setRate(this.an_rate);
+		send.setPayments(this.an_payment);
+		send.setCustUserUU(this.an_buyeruu);
+		send.setRemark(this.an_remark);
+		Set<SaleSendItem> items = new HashSet<SaleSendItem>();
+		if (!CollectionUtils.isEmpty(details)) {
+			for (AcceptNotifyDetail detail : details)
+				items.add(detail.convert());
+		}
+		send.setSendItems(items);
 		return send;
 	}
 

+ 72 - 0
src/main/java/com/uas/platform/b2b/erp/model/AcceptNotifyDetail.java

@@ -1,5 +1,11 @@
 package com.uas.platform.b2b.erp.model;
 
+import com.uas.platform.b2b.model.PurchaseNotice;
+import com.uas.platform.b2b.model.PurchaseOrder;
+import com.uas.platform.b2b.model.PurchaseOrderItem;
+import com.uas.platform.b2b.model.SaleSendItem;
+import com.uas.platform.b2b.support.SystemSession;
+
 /**
  * 收料通知单明细
  * 
@@ -10,8 +16,11 @@ public class AcceptNotifyDetail {
 
 	private String and_ordercode;
 	private Short and_orderdetno;
+	private String pn_code;
 	private Double and_inqty;
+	private Double and_price;
 	private String and_remark;
+	private Short and_detno;
 
 	public String getAnd_ordercode() {
 		return and_ordercode;
@@ -45,4 +54,67 @@ public class AcceptNotifyDetail {
 		this.and_remark = and_remark;
 	}
 
+	public Short getAnd_detno() {
+		return and_detno;
+	}
+
+	public void setAnd_detno(Short and_detno) {
+		this.and_detno = and_detno;
+	}
+
+	public Double getAnd_price() {
+		return and_price;
+	}
+
+	public void setAnd_price(Double and_price) {
+		this.and_price = and_price;
+	}
+
+	public String getPn_code() {
+		return pn_code;
+	}
+
+	public void setPn_code(String pn_code) {
+		this.pn_code = pn_code;
+	}
+
+	public AcceptNotifyDetail() {
+	}
+
+	/**
+	 * 卖家做的发货单,转到买家的收料通知
+	 */
+	public AcceptNotifyDetail(SaleSendItem item) {
+		this.and_detno = item.getNumber();
+		this.and_inqty = item.getQty();
+		this.and_ordercode = item.getNotice().getOrderItem().getOrder().getCode();
+		this.and_orderdetno = item.getNotice().getOrderItem().getNumber();
+		this.and_price = item.getPrice();
+		this.and_remark = item.getRemark();
+	}
+
+	/**
+	 * 买家主动做的收料通知明细,转到平台的发货单明细
+	 * 
+	 * @return
+	 */
+	public SaleSendItem convert() {
+		SaleSendItem item = new SaleSendItem();
+		item.setNumber(this.and_detno);
+		item.setPrice(this.and_price);
+		item.setQty(this.and_inqty);
+		item.setRemark(this.and_remark);
+		PurchaseOrder order = new PurchaseOrder();
+		order.setCode(this.and_ordercode);
+		PurchaseOrderItem orderItem = new PurchaseOrderItem();
+		orderItem.setNumber(this.and_detno);
+		orderItem.setOrder(order);
+		PurchaseNotice notice = new PurchaseNotice();
+		notice.setOrderItem(orderItem);
+		notice.setCode(this.pn_code);
+		notice.setEnUU(SystemSession.getUser().getEnterprise().getUu());
+		item.setNotice(notice);
+		return item;
+	}
+
 }

+ 31 - 10
src/main/java/com/uas/platform/b2b/erp/model/SaleNotifyDown.java

@@ -2,6 +2,8 @@ package com.uas.platform.b2b.erp.model;
 
 import java.util.Date;
 
+import com.uas.platform.b2b.model.PurchaseNotice;
+
 /**
  * 卖家ERP系统的客户送货提醒单
  * 
@@ -12,8 +14,8 @@ public class SaleNotifyDown {
 
 	private long b2b_pn_id;
 	private long sn_custuu;
-	private String sn_ordercode;
-	private Short sn_orderdetno;
+	private String sn_pocode;
+	private Short sn_podetno;
 	private String sn_remark;
 	private Double sn_qty;
 	private Date sn_delivery;
@@ -35,20 +37,20 @@ public class SaleNotifyDown {
 		this.sn_custuu = sn_custuu;
 	}
 
-	public String getSn_ordercode() {
-		return sn_ordercode;
+	public String getSn_pocode() {
+		return sn_pocode;
 	}
 
-	public void setSn_ordercode(String sn_ordercode) {
-		this.sn_ordercode = sn_ordercode;
+	public void setSn_pocode(String sn_pocode) {
+		this.sn_pocode = sn_pocode;
 	}
 
-	public Short getSn_orderdetno() {
-		return sn_orderdetno;
+	public Short getSn_podetno() {
+		return sn_podetno;
 	}
 
-	public void setSn_orderdetno(Short sn_orderdetno) {
-		this.sn_orderdetno = sn_orderdetno;
+	public void setSn_podetno(Short sn_podetno) {
+		this.sn_podetno = sn_podetno;
 	}
 
 	public String getSn_remark() {
@@ -83,4 +85,23 @@ public class SaleNotifyDown {
 		this.sn_sendqty = sn_sendqty;
 	}
 
+	public SaleNotifyDown() {
+	}
+
+	/**
+	 * 平台的客户送货提醒,转为卖家的客户送货提醒
+	 * 
+	 * @param notice
+	 */
+	public SaleNotifyDown(PurchaseNotice notice) {
+		this.b2b_pn_id = notice.getId();
+		this.sn_custuu = notice.getEnUU();
+		this.sn_delivery = notice.getDelivery();
+		this.sn_pocode = notice.getOrderItem().getOrder().getCode();
+		this.sn_podetno = notice.getOrderItem().getNumber();
+		this.sn_qty = notice.getQty();
+		this.sn_sendqty = notice.getEndQty();
+		this.sn_remark = notice.getRemark();
+	}
+
 }

+ 33 - 0
src/main/java/com/uas/platform/b2b/erp/model/SaleOut.java

@@ -1,7 +1,13 @@
 package com.uas.platform.b2b.erp.model;
 
+import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.commons.collections.CollectionUtils;
+
+import com.uas.platform.b2b.model.SaleSend;
+import com.uas.platform.b2b.model.SaleSendItem;
+
 /**
  * 卖家ERP系统的发货单
  * 
@@ -10,6 +16,7 @@ import java.util.List;
  */
 public class SaleOut {
 
+	private Long b2b_ss_id;
 	private String pi_inuotno;
 	private long cu_uu;
 	private List<SaleOutDetail> details;
@@ -38,4 +45,30 @@ public class SaleOut {
 		this.details = details;
 	}
 
+	public Long getB2b_ss_id() {
+		return b2b_ss_id;
+	}
+
+	public void setB2b_ss_id(Long b2b_ss_id) {
+		this.b2b_ss_id = b2b_ss_id;
+	}
+
+	public SaleOut() {
+	}
+
+	/**
+	 * 平台的发货单,传到卖家平台
+	 * 
+	 * @param item
+	 */
+	public SaleOut(SaleSend send) {
+		this.b2b_ss_id = send.getId();
+		this.details = new ArrayList<SaleOutDetail>();
+		if (!CollectionUtils.isEmpty(send.getSendItems())) {
+			for (SaleSendItem item : send.getSendItems()) {
+				this.details.add(new SaleOutDetail(item));
+			}
+		}
+	}
+
 }

+ 17 - 18
src/main/java/com/uas/platform/b2b/erp/model/SaleOutDetail.java

@@ -1,5 +1,7 @@
 package com.uas.platform.b2b.erp.model;
 
+import com.uas.platform.b2b.model.SaleSendItem;
+
 /**
  * 卖家ERP系统的发货单明细
  * 
@@ -9,8 +11,6 @@ package com.uas.platform.b2b.erp.model;
 public class SaleOutDetail {
 
 	private short pd_pdno;
-	private String pd_ordercode;
-	private short pd_orderdetno;
 	private Double pd_outqty;
 	private Double pd_sendprice;
 	/**
@@ -26,22 +26,6 @@ public class SaleOutDetail {
 		this.pd_pdno = pd_pdno;
 	}
 
-	public String getPd_ordercode() {
-		return pd_ordercode;
-	}
-
-	public void setPd_ordercode(String pd_ordercode) {
-		this.pd_ordercode = pd_ordercode;
-	}
-
-	public short getPd_orderdetno() {
-		return pd_orderdetno;
-	}
-
-	public void setPd_orderdetno(short pd_orderdetno) {
-		this.pd_orderdetno = pd_orderdetno;
-	}
-
 	public Double getPd_outqty() {
 		return pd_outqty;
 	}
@@ -66,4 +50,19 @@ public class SaleOutDetail {
 		this.b2b_pn_id = b2b_pn_id;
 	}
 
+	public SaleOutDetail() {
+	}
+
+	/**
+	 * 平台的发货单,传到卖家平台
+	 * 
+	 * @param item
+	 */
+	public SaleOutDetail(SaleSendItem item) {
+		this.b2b_pn_id = item.getNotice().getId();
+		this.pd_outqty = item.getQty();
+		this.pd_pdno = item.getNumber();
+		this.pd_sendprice = item.getPrice();
+	}
+
 }

+ 24 - 5
src/main/java/com/uas/platform/b2b/erp/service/impl/PurchaseNotifyServiceImpl.java

@@ -2,11 +2,13 @@ package com.uas.platform.b2b.erp.service.impl;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Set;
 
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import com.uas.platform.b2b.dao.PurchaseNoticeDao;
 import com.uas.platform.b2b.dao.PurchaseOrderItemDao;
 import com.uas.platform.b2b.erp.model.AcceptNotify;
 import com.uas.platform.b2b.erp.model.PurchaseNotify;
@@ -14,12 +16,15 @@ import com.uas.platform.b2b.erp.service.PurchaseNotifyService;
 import com.uas.platform.b2b.model.PurchaseNotice;
 import com.uas.platform.b2b.model.PurchaseOrderItem;
 import com.uas.platform.b2b.model.SaleSend;
+import com.uas.platform.b2b.model.SaleSendItem;
 
 @Service
 public class PurchaseNotifyServiceImpl implements PurchaseNotifyService {
 
 	@Autowired
 	private PurchaseOrderItemDao purchaseOrderItemDao;
+	@Autowired
+	private PurchaseNoticeDao purchaseNoticeDao;
 
 	@Override
 	public List<PurchaseNotice> convertPurchaseNotify(List<PurchaseNotify> notifies) {
@@ -38,15 +43,29 @@ public class PurchaseNotifyServiceImpl implements PurchaseNotifyService {
 
 	@Override
 	public List<AcceptNotify> convertSaleSend(List<SaleSend> sends) {
-		// TODO
-		
-		return null;
+		List<AcceptNotify> accepts = new ArrayList<AcceptNotify>();
+		for (SaleSend send : sends)
+			accepts.add(new AcceptNotify(send));
+		return accepts;
 	}
 
 	@Override
 	public List<SaleSend> convertAcceptNotify(List<AcceptNotify> accepts) {
-		// TODO
-		return null;
+		List<SaleSend> sends = new ArrayList<SaleSend>();
+		for (AcceptNotify accept : accepts) {
+			SaleSend send = accept.convert();
+			Set<SaleSendItem> items = send.getSendItems();
+			if (!CollectionUtils.isEmpty(items)) {
+				for (SaleSendItem item : items) {
+					PurchaseNotice notice = item.getNotice();
+					List<PurchaseNotice> notices = purchaseNoticeDao.findByEnUUAndCode(notice.getEnUU(), notice.getCode());
+					if (!CollectionUtils.isEmpty(notices)) {
+						item.setNotice(notices.get(0));
+					}
+				}
+			}
+		}
+		return sends;
 	}
 
 }

+ 11 - 5
src/main/java/com/uas/platform/b2b/erp/service/impl/SaleNotifyDownServiceImpl.java

@@ -1,5 +1,6 @@
 package com.uas.platform.b2b.erp.service.impl;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.stereotype.Service;
@@ -11,24 +12,29 @@ import com.uas.platform.b2b.model.PurchaseNotice;
 import com.uas.platform.b2b.model.SaleSend;
 
 @Service
-public class SaleNotifyDownServiceImpl implements SaleNotifyDownService{
+public class SaleNotifyDownServiceImpl implements SaleNotifyDownService {
 
 	@Override
 	public List<SaleNotifyDown> convertPurchaseNotice(List<PurchaseNotice> notices) {
-		// TODO
-		return null;
+		List<SaleNotifyDown> downs = new ArrayList<SaleNotifyDown>();
+		for (PurchaseNotice notice : notices)
+			downs.add(new SaleNotifyDown(notice));
+		return downs;
 	}
 
 	@Override
 	public List<SaleSend> convertSaleOut(List<SaleOut> outs) {
 		// TODO
+		// 按卖家发货单明细的订单号,对应的买家的采购单的采购员、币别、付款方式分组
 		return null;
 	}
 
 	@Override
 	public List<SaleOut> convertSaleSend(List<SaleSend> sends) {
-		// TODO
-		return null;
+		List<SaleOut> outs = new ArrayList<SaleOut>();
+		for (SaleSend send : sends)
+			outs.add(new SaleOut(send));
+		return outs;
 	}
 
 }

+ 42 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseNotice.java

@@ -34,12 +34,24 @@ public class PurchaseNotice implements Serializable {
 	@Column(name = "pn_id")
 	private Long id;
 
+	/**
+	 * 送货提醒单号
+	 */
+	@Column(name = "pn_code")
+	private String code;
+
 	/**
 	 * 送货提醒单所属企业UU
 	 */
 	@Column(name = "pn_enuu")
 	private Long enUU;
 
+	/**
+	 * 卖家企业UU
+	 */
+	@Column(name = "pn_venduu'")
+	private Long vendUU;
+
 	/**
 	 * 录入日期
 	 */
@@ -77,6 +89,12 @@ public class PurchaseNotice implements Serializable {
 	@JoinColumn(name = "pn_pdid", insertable = false, updatable = false, nullable = false)
 	private PurchaseOrderItem orderItem;
 
+	/**
+	 * (对卖家)传输状态
+	 */
+	@Column(name = "pn_sendstatus")
+	private Short sendStatus;
+
 	public Long getId() {
 		return id;
 	}
@@ -85,6 +103,14 @@ public class PurchaseNotice implements Serializable {
 		this.id = id;
 	}
 
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
 	public Long getEnUU() {
 		return enUU;
 	}
@@ -93,6 +119,14 @@ public class PurchaseNotice implements Serializable {
 		this.enUU = enUU;
 	}
 
+	public Long getVendUU() {
+		return vendUU;
+	}
+
+	public void setVendUU(Long vendUU) {
+		this.vendUU = vendUU;
+	}
+
 	public Double getQty() {
 		return qty;
 	}
@@ -141,4 +175,12 @@ public class PurchaseNotice implements Serializable {
 		this.orderItem = orderItem;
 	}
 
+	public Short getSendStatus() {
+		return sendStatus;
+	}
+
+	public void setSendStatus(Short sendStatus) {
+		this.sendStatus = sendStatus;
+	}
+
 }

+ 31 - 3
src/main/java/com/uas/platform/b2b/model/SaleSend.java

@@ -16,7 +16,8 @@ import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 
 /**
- * 平台里面,供应商发起的发货单
+ * 平台里面,供应商发起的发货单<br>
+ * (以供应商的视角)
  * 
  * @author yingp
  * 
@@ -87,11 +88,22 @@ public class SaleSend implements Serializable {
 	/**
 	 * 发货明细
 	 */
-	@OneToMany(mappedBy = "send", cascade = { CascadeType.REFRESH, CascadeType.PERSIST, CascadeType.REMOVE,
-			CascadeType.MERGE }, fetch = FetchType.EAGER)
+	@OneToMany(mappedBy = "send", cascade = { CascadeType.REFRESH, CascadeType.PERSIST, CascadeType.REMOVE, CascadeType.MERGE }, fetch = FetchType.EAGER)
 	@OrderBy("number")
 	private Set<SaleSendItem> sendItems;
 
+	/**
+	 * (对买家)传输状态
+	 */
+	@Column(name = "ss_sendstatus")
+	private Short sendStatus;
+
+	/**
+	 * (对卖家)传输状态
+	 */
+	@Column(name = "ss_backstatus")
+	private Short backStatus;
+
 	public Long getId() {
 		return id;
 	}
@@ -172,4 +184,20 @@ public class SaleSend implements Serializable {
 		this.sendItems = sendItems;
 	}
 
+	public Short getSendStatus() {
+		return sendStatus;
+	}
+
+	public void setSendStatus(Short sendStatus) {
+		this.sendStatus = sendStatus;
+	}
+
+	public Short getBackStatus() {
+		return backStatus;
+	}
+
+	public void setBackStatus(Short backStatus) {
+		this.backStatus = backStatus;
+	}
+
 }

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

@@ -60,6 +60,12 @@ public class SaleSendItem {
 	@JoinColumn(name = "si_ssid", nullable = false)
 	private SaleSend send;
 
+	/**
+	 * 备注
+	 */
+	@Column(name = "si_remark")
+	private String remark;
+
 	public Long getId() {
 		return id;
 	}
@@ -108,4 +114,12 @@ public class SaleSendItem {
 		this.send = send;
 	}
 
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
 }

+ 55 - 21
src/main/java/com/uas/platform/b2b/service/impl/PurchaseNoticeServiceImpl.java

@@ -2,45 +2,66 @@ package com.uas.platform.b2b.service.impl;
 
 import java.util.List;
 
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
+import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
 
+import com.uas.platform.b2b.dao.PurchaseNoticeDao;
+import com.uas.platform.b2b.dao.SaleSendDao;
 import com.uas.platform.b2b.model.PurchaseNotice;
 import com.uas.platform.b2b.model.SaleSend;
 import com.uas.platform.b2b.service.PurchaseNoticeService;
+import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.core.model.PageInfo;
+import com.uas.platform.core.model.Status;
 
 @Service
-public class PurchaseNoticeServiceImpl implements PurchaseNoticeService{
+public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
+
+	@Autowired
+	private PurchaseNoticeDao purchaseNoticeDao;
+
+	@Autowired
+	private SaleSendDao saleSendDao;
 
 	@Override
 	public void save(List<PurchaseNotice> notices) {
 		// TODO
-		
+
 	}
 
 	@Override
-	public Page<PurchaseNotice> findAllByPageInfo(PageInfo pageInfo) {
-		// TODO
-		return null;
+	public Page<PurchaseNotice> findAllByPageInfo(final PageInfo pageInfo) {
+		return purchaseNoticeDao.findAll(new Specification<PurchaseNotice>() {
+
+			public Predicate toPredicate(Root<PurchaseNotice> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
+				query.where(pageInfo.getPredicates(root, builder));
+				return null;
+			}
+		}, pageInfo);
 	}
 
 	@Override
 	public PurchaseNotice findById(Long id) {
-		// TODO
-		return null;
+		return purchaseNoticeDao.findOne(id);
 	}
 
 	@Override
 	public void send(SaleSend send) {
 		// TODO
-		
+
 	}
 
 	@Override
 	public void send(List<SaleSend> sends) {
 		// TODO
-		
+
 	}
 
 	@Override
@@ -51,38 +72,51 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService{
 
 	@Override
 	public List<PurchaseNotice> findNotUploadNotice() {
-		// TODO
-		return null;
+		return purchaseNoticeDao.findByVendUUAndSendStatus(SystemSession.getUser().getEnterprise().getUu(),
+				(short) Status.NOT_UPLOAD.value());
 	}
 
 	@Override
 	public void onNoticeDownSuccess(String[] idArray) {
-		// TODO
-		
+		for (String id : idArray) {
+			PurchaseNotice notice = purchaseNoticeDao.findOne(Long.parseLong(id));
+			if (notice != null) {
+				notice.setSendStatus((short) Status.DOWNLOADED.value());
+				purchaseNoticeDao.save(notice);
+			}
+		}
 	}
 
 	@Override
 	public List<SaleSend> findNotUploadSend() {
-		// TODO
-		return null;
+		return saleSendDao.findByCustUUAndSendStatus(SystemSession.getUser().getEnterprise().getUu(), (short) Status.NOT_UPLOAD.value());
 	}
 
 	@Override
 	public List<SaleSend> findNotSendSend() {
-		// TODO
-		return null;
+		return saleSendDao.findByEnUUAndBackStatus(SystemSession.getUser().getEnterprise().getUu(), (short) Status.NOT_UPLOAD.value());
 	}
 
 	@Override
 	public void onSendUploadSuccess(String[] idArray) {
-		// TODO
-		
+		for (String id : idArray) {
+			SaleSend send = saleSendDao.findOne(Long.parseLong(id));
+			if (send != null) {
+				send.setSendStatus((short) Status.DOWNLOADED.value());
+				saleSendDao.save(send);
+			}
+		}
 	}
 
 	@Override
 	public void onSendDownSuccess(String[] idArray) {
-		// TODO
-		
+		for (String id : idArray) {
+			SaleSend send = saleSendDao.findOne(Long.parseLong(id));
+			if (send != null) {
+				send.setBackStatus((short) Status.DOWNLOADED.value());
+				saleSendDao.save(send);
+			}
+		}
 	}
 
 }