Browse Source

反过账删除单据主记录

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@1201 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
suntg 10 years ago
parent
commit
1cf385a73e
22 changed files with 1239 additions and 109 deletions
  1. 29 0
      src/main/java/com/uas/platform/b2b/dao/MakeOrderDao.java
  2. 13 0
      src/main/java/com/uas/platform/b2b/dao/MakeOrderItemDao.java
  3. 267 0
      src/main/java/com/uas/platform/b2b/erp/model/Make.java
  4. 75 0
      src/main/java/com/uas/platform/b2b/erp/model/MakeMaterial.java
  5. 19 0
      src/main/java/com/uas/platform/b2b/erp/service/MakeService.java
  6. 2 1
      src/main/java/com/uas/platform/b2b/erp/service/PurchaseAPBillService.java
  7. 8 4
      src/main/java/com/uas/platform/b2b/erp/service/PurchaseProdInOutService.java
  8. 55 0
      src/main/java/com/uas/platform/b2b/erp/service/impl/MakeServiceImpl.java
  9. 6 7
      src/main/java/com/uas/platform/b2b/erp/service/impl/PurchaseAPBillServiceImpl.java
  10. 24 28
      src/main/java/com/uas/platform/b2b/erp/service/impl/PurchaseProdInOutServiceImpl.java
  11. 476 0
      src/main/java/com/uas/platform/b2b/model/MakeOrder.java
  12. 178 0
      src/main/java/com/uas/platform/b2b/model/MakeOrderItem.java
  13. 1 1
      src/main/java/com/uas/platform/b2b/service/PurchaseAcceptService.java
  14. 1 1
      src/main/java/com/uas/platform/b2b/service/PurchaseApBillService.java
  15. 1 1
      src/main/java/com/uas/platform/b2b/service/PurchaseBadInService.java
  16. 1 1
      src/main/java/com/uas/platform/b2b/service/PurchaseBadOutService.java
  17. 1 1
      src/main/java/com/uas/platform/b2b/service/PurchaseReturnService.java
  18. 23 18
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseAcceptServiceImpl.java
  19. 10 9
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseApBillServiceImpl.java
  20. 13 9
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseBadInServiceImpl.java
  21. 8 8
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseBadOutServiceImpl.java
  22. 28 20
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseReturnServiceImpl.java

+ 29 - 0
src/main/java/com/uas/platform/b2b/dao/MakeOrderDao.java

@@ -0,0 +1,29 @@
+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.MakeOrder;
+
+@Repository
+public interface MakeOrderDao extends JpaSpecificationExecutor<MakeOrder>, JpaRepository<MakeOrder, Long> {
+
+	/**
+	 * 按所属企业及编号查找委外加工单
+	 * 
+	 * @param enUU
+	 * @param code
+	 * @return
+	 */
+	public List<MakeOrder> findByEnUUAndCode(Long enUU, String code);
+	
+	/**
+	 * 卖家根据卖家UU号和下载状态获取需要下载的客户委外加工单
+	 * @return
+	 */
+	public List<MakeOrder> findByVendUUAndSendStatus(Long vendUU, Short sendStatus);
+
+}

+ 13 - 0
src/main/java/com/uas/platform/b2b/dao/MakeOrderItemDao.java

@@ -0,0 +1,13 @@
+package com.uas.platform.b2b.dao;
+
+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.MakeOrderItem;
+
+@Repository
+public interface MakeOrderItemDao extends JpaSpecificationExecutor<MakeOrderItem>,
+		JpaRepository<MakeOrderItem, Long> {
+
+}

+ 267 - 0
src/main/java/com/uas/platform/b2b/erp/model/Make.java

@@ -0,0 +1,267 @@
+package com.uas.platform.b2b.erp.model;
+
+import java.sql.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.commons.collections.CollectionUtils;
+
+import com.uas.platform.b2b.model.MakeOrder;
+import com.uas.platform.b2b.model.MakeOrderItem;
+import com.uas.platform.b2b.support.SystemSession;
+import com.uas.platform.core.model.Constant;
+import com.uas.platform.core.model.Status;
+
+/**
+ * ERP系统的委外加工单
+ * 
+ * @author suntg
+ * 
+ */
+public class Make{
+
+	private Long ma_id;//id
+	private String ma_code;//委外编号
+	private Date ma_date;//单据日期
+	private String ma_tasktype;//单据类型
+	private Date ma_requiredate;//需求日期
+	private Long ve_uu;//供应商UU号
+	private String ma_prodcode;//物料编号
+	private Double ma_qty;//需求数量
+	private Double ma_makeqty;//已生产数
+	private String ma_kind;//工单类型
+	private Double ma_price;//加工单价
+	private Double ma_total;//加工金额
+	private String ma_currency;//币别
+	private Float ma_rate;//汇率
+	private Double ma_taxrate;//税率
+	private String ma_shipaddresscode;//收货地址
+	private String ma_payments;//付款方式
+	private String ma_recorder;//录入人
+	private Date ma_planbegindate;//计划开工日期
+	private Date ma_planenddate;//计划完工日期
+	private String ma_auditman;//审核人
+	private String ma_remark;//备注
+	private List<MakeMaterial> materials;//用料明细
+
+	public Long getMa_id() {
+		return ma_id;
+	}
+
+	public void setMa_id(Long ma_id) {
+		this.ma_id = ma_id;
+	}
+
+	public String getMa_code() {
+		return ma_code;
+	}
+
+	public void setMa_code(String ma_code) {
+		this.ma_code = ma_code;
+	}
+
+	public Date getMa_date() {
+		return ma_date;
+	}
+
+	public void setMa_date(Date ma_date) {
+		this.ma_date = ma_date;
+	}
+
+	public String getMa_tasktype() {
+		return ma_tasktype;
+	}
+
+	public void setMa_tasktype(String ma_tasktype) {
+		this.ma_tasktype = ma_tasktype;
+	}
+
+	public Date getMa_requiredate() {
+		return ma_requiredate;
+	}
+
+	public void setMa_requiredate(Date ma_requiredate) {
+		this.ma_requiredate = ma_requiredate;
+	}
+
+	public Long getVe_uu() {
+		return ve_uu;
+	}
+
+	public void setVe_uu(Long ve_uu) {
+		this.ve_uu = ve_uu;
+	}
+
+	public String getMa_prodcode() {
+		return ma_prodcode;
+	}
+
+	public void setMa_prodcode(String ma_prodcode) {
+		this.ma_prodcode = ma_prodcode;
+	}
+
+	public Double getMa_qty() {
+		return ma_qty;
+	}
+
+	public void setMa_qty(Double ma_qty) {
+		this.ma_qty = ma_qty;
+	}
+
+	public Double getMa_makeqty() {
+		return ma_makeqty;
+	}
+
+	public void setMa_makeqty(Double ma_makeqty) {
+		this.ma_makeqty = ma_makeqty;
+	}
+
+	public String getMa_kind() {
+		return ma_kind;
+	}
+
+	public void setMa_kind(String ma_kind) {
+		this.ma_kind = ma_kind;
+	}
+
+	public Double getMa_price() {
+		return ma_price;
+	}
+
+	public void setMa_price(Double ma_price) {
+		this.ma_price = ma_price;
+	}
+
+	public Double getMa_total() {
+		return ma_total;
+	}
+
+	public void setMa_total(Double ma_total) {
+		this.ma_total = ma_total;
+	}
+
+	public String getMa_currency() {
+		return ma_currency;
+	}
+
+	public void setMa_currency(String ma_currency) {
+		this.ma_currency = ma_currency;
+	}
+
+	public Float getMa_rate() {
+		return ma_rate;
+	}
+
+	public void setMa_rate(Float ma_rate) {
+		this.ma_rate = ma_rate;
+	}
+
+	public Double getMa_taxrate() {
+		return ma_taxrate;
+	}
+
+	public void setMa_taxrate(Double ma_taxrate) {
+		this.ma_taxrate = ma_taxrate;
+	}
+
+	public String getMa_shipaddresscode() {
+		return ma_shipaddresscode;
+	}
+
+	public void setMa_shipaddresscode(String ma_shipaddresscode) {
+		this.ma_shipaddresscode = ma_shipaddresscode;
+	}
+
+	public String getMa_payments() {
+		return ma_payments;
+	}
+
+	public void setMa_payments(String ma_payments) {
+		this.ma_payments = ma_payments;
+	}
+
+	public String getMa_recorder() {
+		return ma_recorder;
+	}
+
+	public void setMa_recorder(String ma_recorder) {
+		this.ma_recorder = ma_recorder;
+	}
+
+	public Date getMa_planbegindate() {
+		return ma_planbegindate;
+	}
+
+	public void setMa_planbegindate(Date ma_planbegindate) {
+		this.ma_planbegindate = ma_planbegindate;
+	}
+
+	public Date getMa_planenddate() {
+		return ma_planenddate;
+	}
+
+	public void setMa_planenddate(Date ma_planenddate) {
+		this.ma_planenddate = ma_planenddate;
+	}
+
+	public String getMa_auditman() {
+		return ma_auditman;
+	}
+
+	public void setMa_auditman(String ma_auditman) {
+		this.ma_auditman = ma_auditman;
+	}
+
+	public String getMa_remark() {
+		return ma_remark;
+	}
+
+	public void setMa_remark(String ma_remark) {
+		this.ma_remark = ma_remark;
+	}
+
+	public List<MakeMaterial> getMaterials() {
+		return materials;
+	}
+
+	public void setMaterials(List<MakeMaterial> materials) {
+		this.materials = materials;
+	}
+	
+	public MakeOrder convert(){
+		MakeOrder make = new MakeOrder();
+		make.setAuditor(ma_auditman);
+		make.setCode(ma_code);
+		make.setCommence(ma_planbegindate);
+		make.setComplete(ma_planenddate);
+		make.setCurrency(ma_currency);
+		make.setDate(ma_date);
+		make.setDelivery(ma_date);
+		make.setEnd(Constant.NO);
+		make.setEnUU(SystemSession.getUser().getEnterprise().getUu());
+		make.setKind(ma_kind);
+		make.setMakeQty(ma_makeqty);
+		make.setPayments(ma_payments);
+		make.setPrice(ma_price);
+		make.setQty(ma_qty);
+		make.setRate(ma_rate);
+		make.setRecorder(ma_recorder);
+		make.setRemark(ma_remark);
+		make.setSendStatus((short) Status.NOT_UPLOAD.value());
+		make.setShipAddress(ma_shipaddresscode);
+		make.setTotal(ma_total);
+		make.setType(ma_tasktype);
+		make.setUserUU(SystemSession.getUser().getUserUU());
+		make.setVendUU(ve_uu);
+		if(!CollectionUtils.isEmpty(this.materials)) {
+			Set<MakeOrderItem> items = new HashSet<MakeOrderItem>();
+			for(MakeMaterial material : this.materials) {
+				items.add(material.conver());
+			}
+			make.setItems(items);
+		}
+		return make;
+	}
+
+}

+ 75 - 0
src/main/java/com/uas/platform/b2b/erp/model/MakeMaterial.java

@@ -0,0 +1,75 @@
+package com.uas.platform.b2b.erp.model;
+
+import com.uas.platform.b2b.model.MakeOrderItem;
+import com.uas.platform.b2b.model.Product;
+
+/**
+ * ERP系统的委外加工单用料明细
+ * 
+ * @author suntg
+ * 
+ */
+public class MakeMaterial{
+
+	private Short mm_detno;//行号
+	private String mm_prodcode;//用料物料编号
+	private Double mm_oneuserqty;//单位用量
+	private Double mm_qty;//订单需求
+	private Short mm_ifrep;//是否替代
+	private String mm_repprodcode;//替代物料编号
+	
+	public Short getMm_detno() {
+		return mm_detno;
+	}
+	public void setMm_detno(Short mm_detno) {
+		this.mm_detno = mm_detno;
+	}
+	public String getMm_prodcode() {
+		return mm_prodcode;
+	}
+	public void setMm_prodcode(String mm_prodcode) {
+		this.mm_prodcode = mm_prodcode;
+	}
+	public Double getMm_oneuserqty() {
+		return mm_oneuserqty;
+	}
+	public void setMm_oneuserqty(Double mm_oneuserqty) {
+		this.mm_oneuserqty = mm_oneuserqty;
+	}
+	public Double getMm_qty() {
+		return mm_qty;
+	}
+	public void setMm_qty(Double mm_qty) {
+		this.mm_qty = mm_qty;
+	}
+	public Short getMm_ifrep() {
+		return mm_ifrep;
+	}
+	public void setMm_ifrep(Short mm_ifrep) {
+		this.mm_ifrep = mm_ifrep;
+	}
+	public String getMm_repprodcode() {
+		return mm_repprodcode;
+	}
+	public void setMm_repprodcode(String mm_repprodcode) {
+		this.mm_repprodcode = mm_repprodcode;
+	}
+	
+	public MakeOrderItem conver(){
+		MakeOrderItem item = new MakeOrderItem();
+		item.setIfReplace(mm_ifrep);
+		item.setNumber(mm_detno);
+		item.setPerQty(mm_oneuserqty);
+		Product product = new Product();
+		product.setCode(mm_prodcode);
+		item.setProduct(product);
+		item.setQty(mm_qty);
+		Product repProduct = new Product();
+		repProduct.setCode(mm_repprodcode);
+		item.setRepProduct(repProduct);
+		return item;
+	}
+	
+	
+
+}

+ 19 - 0
src/main/java/com/uas/platform/b2b/erp/service/MakeService.java

@@ -0,0 +1,19 @@
+package com.uas.platform.b2b.erp.service;
+
+import java.util.List;
+
+import com.uas.platform.b2b.erp.model.Make;
+import com.uas.platform.b2b.model.MakeOrderItem;
+
+public interface MakeService {
+
+	/**
+	 * 将ERP系统的委外加工单,转为平台的客户委外加工单
+	 * 
+	 * @param changes
+	 * @return
+	 */
+	List<MakeOrderItem> convertMakes(List<Make> makes);
+	
+
+}

+ 2 - 1
src/main/java/com/uas/platform/b2b/erp/service/PurchaseAPBillService.java

@@ -3,6 +3,7 @@ package com.uas.platform.b2b.erp.service;
 import java.util.List;
 
 import com.uas.platform.b2b.erp.model.PurchaseAPBill;
+import com.uas.platform.b2b.model.PurchaseApBill;
 import com.uas.platform.b2b.model.PurchaseApBillItem;
 
 public interface PurchaseAPBillService {
@@ -20,7 +21,7 @@ public interface PurchaseAPBillService {
 	 * @param prodInOuts
 	 * @return
 	 */
-	List<PurchaseApBillItem> convertNonPostingApBills(List<PurchaseAPBill> apBills);
+	List<PurchaseApBill> convertNonPostingApBills(List<PurchaseAPBill> apBills);
 	
 
 }

+ 8 - 4
src/main/java/com/uas/platform/b2b/erp/service/PurchaseProdInOutService.java

@@ -3,9 +3,13 @@ package com.uas.platform.b2b.erp.service;
 import java.util.List;
 
 import com.uas.platform.b2b.erp.model.PurchaseProdInOut;
+import com.uas.platform.b2b.model.PurchaseAccept;
 import com.uas.platform.b2b.model.PurchaseAcceptItem;
+import com.uas.platform.b2b.model.PurchaseBadIn;
 import com.uas.platform.b2b.model.PurchaseBadInItem;
+import com.uas.platform.b2b.model.PurchaseBadOut;
 import com.uas.platform.b2b.model.PurchaseBadOutItem;
+import com.uas.platform.b2b.model.PurchaseReturn;
 import com.uas.platform.b2b.model.PurchaseReturnItem;
 
 public interface PurchaseProdInOutService {
@@ -23,7 +27,7 @@ public interface PurchaseProdInOutService {
 	 * @param prodInOuts
 	 * @return
 	 */
-	List<PurchaseAcceptItem> convertNonPostingProdInOuts(List<PurchaseProdInOut> prodInOuts);
+	List<PurchaseAccept> convertNonPostingProdInOuts(List<PurchaseProdInOut> prodInOuts);
 	
 	/**
 	 * 将ERP系统的采购验退单,转为平台的客户采购验退单
@@ -38,7 +42,7 @@ public interface PurchaseProdInOutService {
 	 * @param prodInOuts
 	 * @return
 	 */
-	List<PurchaseReturnItem> convertNonPostingReturns(List<PurchaseProdInOut> prodInOuts);
+	List<PurchaseReturn> convertNonPostingReturns(List<PurchaseProdInOut> prodInOuts);
 	
 	/**
 	 * 将ERP系统的不良品入库单,转为平台的客户不良品入库单
@@ -53,7 +57,7 @@ public interface PurchaseProdInOutService {
 	 * @param prodInOuts
 	 * @return
 	 */
-	List<PurchaseBadInItem> convertNonPostingBadIns(List<PurchaseProdInOut> prodInOuts);
+	List<PurchaseBadIn> convertNonPostingBadIns(List<PurchaseProdInOut> prodInOuts);
 	
 	/**
 	 * 将ERP系统的不良品出库单,转为平台的客户不良品出库单
@@ -68,6 +72,6 @@ public interface PurchaseProdInOutService {
 	 * @param prodInOuts
 	 * @return
 	 */
-	List<PurchaseBadOutItem> convertNonPostingBadOuts(List<PurchaseProdInOut> prodInOuts);
+	List<PurchaseBadOut> convertNonPostingBadOuts(List<PurchaseProdInOut> prodInOuts);
 
 }

+ 55 - 0
src/main/java/com/uas/platform/b2b/erp/service/impl/MakeServiceImpl.java

@@ -0,0 +1,55 @@
+package com.uas.platform.b2b.erp.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.uas.platform.b2b.dao.EnterpriseDao;
+import com.uas.platform.b2b.dao.MakeOrderDao;
+import com.uas.platform.b2b.dao.MakeOrderItemDao;
+import com.uas.platform.b2b.dao.ProductDao;
+import com.uas.platform.b2b.erp.model.Make;
+import com.uas.platform.b2b.erp.service.MakeService;
+import com.uas.platform.b2b.model.Enterprise;
+import com.uas.platform.b2b.model.MakeOrder;
+import com.uas.platform.b2b.model.MakeOrderItem;
+import com.uas.platform.b2b.model.Product;
+import com.uas.platform.b2b.support.SystemSession;
+
+@Service
+public class MakeServiceImpl implements MakeService{
+
+	@Autowired
+	private MakeOrderDao makeOrderDao;
+	
+	@Autowired
+	private MakeOrderItemDao makeOrderItemDao;
+	
+	@Autowired
+	private ProductDao productDao;
+	
+	@Autowired
+	private EnterpriseDao enterpriseDao;
+
+	@Override
+	public List<MakeOrderItem> convertMakes(List<Make> makes) {
+		List<MakeOrderItem> makeOrderItems = new ArrayList<MakeOrderItem>();
+		long enUU = SystemSession.getUser().getEnterprise().getUu();
+		for(Make make : makes) {
+			List<MakeOrder> orders = makeOrderDao.findByEnUUAndCode(enUU, make.getMa_code());
+			Enterprise vendor = enterpriseDao.findEnterpriseByUu(make.getVe_uu());
+			List<Product> products = productDao.findByEnUUAndCode(enUU, make.getMa_prodcode());
+			if(orders.size() == 0 && vendor != null && products.size() > 0) {
+				MakeOrder makeOrder = make.convert();
+				Product product = products.get(0);
+				makeOrder.setProduct(product);
+				makeOrder.setProductId(product.getId());
+			}
+		}
+		return makeOrderItems;
+	}
+
+
+}

+ 6 - 7
src/main/java/com/uas/platform/b2b/erp/service/impl/PurchaseAPBillServiceImpl.java

@@ -59,20 +59,19 @@ public class PurchaseAPBillServiceImpl implements PurchaseAPBillService{
 	}
 
 	@Override
-	public List<PurchaseApBillItem> convertNonPostingApBills(
+	public List<PurchaseApBill> convertNonPostingApBills(
 			List<PurchaseAPBill> apBills) {
-		List<PurchaseApBillItem> apBillItems = new ArrayList<PurchaseApBillItem>();
+		List<PurchaseApBill> purchaseApBills = new ArrayList<PurchaseApBill>();
 		if( ! CollectionUtils.isEmpty(apBills)) {
 			Long enUU = SystemSession.getUser().getEnterprise().getUu();
 			for(PurchaseAPBill apBill : apBills) {
-				List<PurchaseApBill> purchaseApBills = purchaseApBillDao.findByEnUUAndCode(enUU, apBill.getAb_code());
-				if(purchaseApBills.size() > 0) {
-					apBillItems.addAll(purchaseApBills.get(0).getItems());
+				List<PurchaseApBill> list = purchaseApBillDao.findByEnUUAndCode(enUU, apBill.getAb_code());
+				if(list.size() > 0) {
+					purchaseApBills.add(list.get(0));
 				}
 			}
-			return apBillItems;
 		}
-		return apBillItems;
+		return purchaseApBills;
 	}
 
 }

+ 24 - 28
src/main/java/com/uas/platform/b2b/erp/service/impl/PurchaseProdInOutServiceImpl.java

@@ -182,71 +182,67 @@ public class PurchaseProdInOutServiceImpl implements PurchaseProdInOutService{
 	}
 
 	@Override
-	public List<PurchaseAcceptItem> convertNonPostingProdInOuts(
+	public List<PurchaseAccept> convertNonPostingProdInOuts(
 			List<PurchaseProdInOut> prodInOuts) {
+		List<PurchaseAccept> accepts = new ArrayList<PurchaseAccept>();
 		if( ! CollectionUtils.isEmpty(prodInOuts)) {
-			List<PurchaseAcceptItem> acceptItems = new ArrayList<PurchaseAcceptItem>();
 			Long enUU = SystemSession.getUser().getEnterprise().getUu();
 			for(PurchaseProdInOut prodInOut : prodInOuts) {
-				List<PurchaseAccept> accepts = purchaseAcceptDao.findByEnUUAndCode(enUU, prodInOut.getPi_inoutno());
-				if(accepts.size() > 0) {
-					acceptItems.addAll(accepts.get(0).getAcceptItems());
+				List<PurchaseAccept> existAccepts = purchaseAcceptDao.findByEnUUAndCode(enUU, prodInOut.getPi_inoutno());
+				if(existAccepts.size() > 0) {
+					accepts.add(existAccepts.get(0));
 				}
 			}
-			return acceptItems;
 		}
-		return null;
+		return accepts;
 	}
 
 	@Override
-	public List<PurchaseReturnItem> convertNonPostingReturns(
+	public List<PurchaseReturn> convertNonPostingReturns(
 			List<PurchaseProdInOut> prodInOuts) {
+		List<PurchaseReturn> returns = new ArrayList<PurchaseReturn>();
 		if( ! CollectionUtils.isEmpty(prodInOuts)) {
-			List<PurchaseReturnItem> returnItems = new ArrayList<PurchaseReturnItem>();
 			Long enUU = SystemSession.getUser().getEnterprise().getUu();
 			for(PurchaseProdInOut prodInOut : prodInOuts) {
-				List<PurchaseReturn> returns = purchaseReturnDao.findByEnUUAndCode(enUU, prodInOut.getPi_inoutno());
-				if(returns.size() > 0) {
-					returnItems.addAll(returns.get(0).getReturnItems());
+				List<PurchaseReturn> existReturns = purchaseReturnDao.findByEnUUAndCode(enUU, prodInOut.getPi_inoutno());
+				if(existReturns.size() > 0) {
+					returns.add(existReturns.get(0));
 				}
 			}
-			return returnItems;
 		}
-		return null;
+		return returns;
 	}
 
 	@Override
-	public List<PurchaseBadInItem> convertNonPostingBadIns(
+	public List<PurchaseBadIn> convertNonPostingBadIns(
 			List<PurchaseProdInOut> prodInOuts) {
+		List<PurchaseBadIn> badIns = new ArrayList<PurchaseBadIn>();
 		if( ! CollectionUtils.isEmpty(prodInOuts)) {
-			List<PurchaseBadInItem> badInItems = new ArrayList<PurchaseBadInItem>();
 			Long enUU = SystemSession.getUser().getEnterprise().getUu();
 			for(PurchaseProdInOut prodInOut : prodInOuts) {
-				List<PurchaseBadIn> badIns = purchaseBadInDao.findByEnUUAndCode(enUU, prodInOut.getPi_inoutno());
-				if(badIns.size() > 0) {
-					badInItems.addAll(badIns.get(0).getBadInItems());
+				List<PurchaseBadIn> existBadIns = purchaseBadInDao.findByEnUUAndCode(enUU, prodInOut.getPi_inoutno());
+				if(existBadIns.size() > 0) {
+					badIns.add(existBadIns.get(0));
 				}
 			}
-			return badInItems;
 		}
-		return null;
+		return badIns;
 	}
 
 	@Override
-	public List<PurchaseBadOutItem> convertNonPostingBadOuts(
+	public List<PurchaseBadOut> convertNonPostingBadOuts(
 			List<PurchaseProdInOut> prodInOuts) {
+		List<PurchaseBadOut> badOuts = new ArrayList<PurchaseBadOut>();
 		if( ! CollectionUtils.isEmpty(prodInOuts)) {
-			List<PurchaseBadOutItem> badOutItems = new ArrayList<PurchaseBadOutItem>();
 			Long enUU = SystemSession.getUser().getEnterprise().getUu();
 			for(PurchaseProdInOut prodInOut : prodInOuts) {
-				List<PurchaseBadOut> badOuts = purchaseBadOutDao.findByEnUUAndCode(enUU, prodInOut.getPi_inoutno());
-				if(badOuts.size() > 0) {
-					badOutItems.addAll(badOuts.get(0).getBadOutItems());
+				List<PurchaseBadOut> existBadOuts = purchaseBadOutDao.findByEnUUAndCode(enUU, prodInOut.getPi_inoutno());
+				if(existBadOuts.size() > 0) {
+					badOuts.add(existBadOuts.get(0));
 				}
 			}
-			return badOutItems;
 		}
-		return null;
+		return badOuts;
 	}
 
 }

+ 476 - 0
src/main/java/com/uas/platform/b2b/model/MakeOrder.java

@@ -0,0 +1,476 @@
+package com.uas.platform.b2b.model;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Set;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToMany;
+import javax.persistence.OneToOne;
+import javax.persistence.OrderBy;
+import javax.persistence.SequenceGenerator;
+import javax.persistence.Table;
+
+/**
+ * 平台里面,以供应商的角度来查看委外加工单
+ * 
+ * @author suntg
+ *
+ */
+@Table(name = "make$orders")
+@Entity
+public class MakeOrder implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	@Id
+	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "make$orders_gen")
+	@SequenceGenerator(name = "make$orders_gen", sequenceName = "make$orders_seq", allocationSize = 1)
+	@Column(name = "ma_id")
+	private Long id;
+
+	/**
+	 * 委外加工单所属(买方)企业UU
+	 */
+	@Column(name = "ma_enuu")
+	private Long enUU;
+
+	/**
+	 * 委外加工单所属(买方)企业
+	 */
+	@OneToOne(cascade = { CascadeType.REFRESH })
+	@JoinColumn(name = "ma_enuu", insertable = false, updatable = false)
+	private Enterprise enterprise;
+
+	/**
+	 * 委外加工单所属(买方)采购员
+	 */
+	@OneToOne(cascade = { CascadeType.REFRESH })
+	@JoinColumn(name = "ma_useruu", insertable = false, updatable = false)
+	private UserBaseInfo user;
+
+	/**
+	 * 委外加工单所属(买方)采购员UU
+	 */
+	@Column(name = "ma_useruu")
+	private Long userUU;
+
+	/**
+	 * 委外加工单号
+	 */
+	@Column(name = "ma_code")
+	private String code;
+
+	/**
+	 * 单据类型
+	 */
+	@Column(name = "ma_type")
+	private String type;
+
+	/**
+	 * 单据归属日期
+	 */
+	@Column(name = "ma_date")
+	private Date date;
+
+	/**
+	 * 录单人
+	 */
+	@Column(name = "ma_recorder")
+	private String recorder;
+
+	/**
+	 * 审核人
+	 */
+	@Column(name = "ma_auditor")
+	private String auditor;
+
+	/**
+	 * 供应商UU
+	 */
+	@Column(name = "ma_venduu")
+	private Long vendUU;
+
+	/**
+	 * 供应商联系人UU
+	 */
+	@Column(name = "ma_venduseruu")
+	private Long vendUserUU;
+
+	/**
+	 * 产品ID
+	 */
+	@Column(name = "ma_prid")
+	private Long productId;
+
+	/**
+	 * 产品
+	 */
+	@OneToOne(cascade = { CascadeType.REFRESH })
+	@JoinColumn(name = "ma_prid", insertable = false, updatable = false)
+	private Product product;
+	
+	/**
+	 * 需求日期
+	 */
+	@Column(name = "ma_delivery")
+	private Date delivery;
+	
+	/**
+	 * 加工数量
+	 */
+	@Column(name = "ma_qty")
+	private Double qty;
+	
+	/**
+	 * 已加工数
+	 */
+	@Column(name = "ma_makeqty")
+	private Double makeQty;
+	
+	/**
+	 * 工单类型
+	 */
+	@Column(name = "ma_kind")
+	private String kind;
+
+	/**
+	 * 加工单价
+	 */
+	@Column(name = "ma_price")
+	private Double price;
+
+	/**
+	 * 加工金额
+	 */
+	@Column(name = "ma_total")
+	private Double total;
+	
+	/**
+	 * 计划开工日期
+	 */
+	@Column(name = "ma_commence")
+	private Date commence;
+	
+	/**
+	 * 计划完工日期
+	 */
+	@Column(name = "ma_complete")
+	private Date complete;
+
+	/**
+	 * 收货地址
+	 */
+	@Column(name = "ma_shipaddress")
+	private String shipAddress;
+
+	/**
+	 * 备注
+	 */
+	@Column(name = "ma_remark")
+	private String remark;
+
+	/**
+	 * 付款币种
+	 */
+	@Column(name = "ma_currency")
+	private String currency;
+
+	/**
+	 * 汇率
+	 */
+	@Column(name = "ma_rate")
+	private Float rate;
+
+	/**
+	 * 付款方式
+	 */
+	@Column(name = "ma_payments")
+	private String payments;
+
+	/**
+	 * 处理状态(已回复、未回复),全部回复后改为已回复
+	 */
+	@Column(name = "ma_status")
+	private Short status;
+
+	/**
+	 * 从平台传到供应商ERP的状态
+	 */
+	@Column(name = "ma_sendstatus")
+	private Short sendStatus;
+	
+	/**
+	 * 1表示该采购单的明细至少有一条结案的情况
+	 */
+	@Column(name = "ma_end")
+	private Short end;
+
+	/**
+	 * 委外加工单用料明细
+	 */
+	@OneToMany(mappedBy = "make", cascade = { CascadeType.REFRESH, CascadeType.PERSIST, CascadeType.REMOVE, CascadeType.MERGE }, fetch = FetchType.EAGER)
+	@OrderBy("number")
+	private Set<MakeOrderItem> items;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Long getEnUU() {
+		return enUU;
+	}
+
+	public void setEnUU(Long enUU) {
+		this.enUU = enUU;
+	}
+
+	public Enterprise getEnterprise() {
+		return enterprise;
+	}
+
+	public void setEnterprise(Enterprise enterprise) {
+		this.enterprise = enterprise;
+	}
+
+	public UserBaseInfo getUser() {
+		return user;
+	}
+
+	public void setUser(UserBaseInfo user) {
+		this.user = user;
+	}
+
+	public Long getUserUU() {
+		return userUU;
+	}
+
+	public void setUserUU(Long userUU) {
+		this.userUU = userUU;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getType() {
+		return type;
+	}
+
+	public void setType(String type) {
+		this.type = type;
+	}
+
+	public Date getDate() {
+		return date;
+	}
+
+	public void setDate(Date date) {
+		this.date = date;
+	}
+
+	public String getRecorder() {
+		return recorder;
+	}
+
+	public void setRecorder(String recorder) {
+		this.recorder = recorder;
+	}
+
+	public String getAuditor() {
+		return auditor;
+	}
+
+	public void setAuditor(String auditor) {
+		this.auditor = auditor;
+	}
+
+	public Long getVendUU() {
+		return vendUU;
+	}
+
+	public void setVendUU(Long vendUU) {
+		this.vendUU = vendUU;
+	}
+
+	public Long getVendUserUU() {
+		return vendUserUU;
+	}
+
+	public void setVendUserUU(Long vendUserUU) {
+		this.vendUserUU = vendUserUU;
+	}
+
+	public Long getProductId() {
+		return productId;
+	}
+
+	public void setProductId(Long productId) {
+		this.productId = productId;
+	}
+
+	public Product getProduct() {
+		return product;
+	}
+
+	public void setProduct(Product product) {
+		this.product = product;
+	}
+
+	public Date getDelivery() {
+		return delivery;
+	}
+
+	public void setDelivery(Date delivery) {
+		this.delivery = delivery;
+	}
+
+	public Double getQty() {
+		return qty;
+	}
+
+	public void setQty(Double qty) {
+		this.qty = qty;
+	}
+
+	public Double getMakeQty() {
+		return makeQty;
+	}
+
+	public void setMakeQty(Double makeQty) {
+		this.makeQty = makeQty;
+	}
+
+	public String getKind() {
+		return kind;
+	}
+
+	public void setKind(String kind) {
+		this.kind = kind;
+	}
+
+	public Double getPrice() {
+		return price;
+	}
+
+	public void setPrice(Double price) {
+		this.price = price;
+	}
+
+	public Double getTotal() {
+		return total;
+	}
+
+	public void setTotal(Double total) {
+		this.total = total;
+	}
+
+	public Date getCommence() {
+		return commence;
+	}
+
+	public void setCommence(Date commence) {
+		this.commence = commence;
+	}
+
+	public Date getComplete() {
+		return complete;
+	}
+
+	public void setComplete(Date complete) {
+		this.complete = complete;
+	}
+
+	public String getShipAddress() {
+		return shipAddress;
+	}
+
+	public void setShipAddress(String shipAddress) {
+		this.shipAddress = shipAddress;
+	}
+
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
+	public String getCurrency() {
+		return currency;
+	}
+
+	public void setCurrency(String currency) {
+		this.currency = currency;
+	}
+
+	public Float getRate() {
+		return rate;
+	}
+
+	public void setRate(Float rate) {
+		this.rate = rate;
+	}
+
+	public String getPayments() {
+		return payments;
+	}
+
+	public void setPayments(String payments) {
+		this.payments = payments;
+	}
+
+	public Short getStatus() {
+		return status;
+	}
+
+	public void setStatus(Short status) {
+		this.status = status;
+	}
+
+	public Short getSendStatus() {
+		return sendStatus;
+	}
+
+	public void setSendStatus(Short sendStatus) {
+		this.sendStatus = sendStatus;
+	}
+
+	public Short getEnd() {
+		return end;
+	}
+
+	public void setEnd(Short end) {
+		this.end = end;
+	}
+
+	public Set<MakeOrderItem> getItems() {
+		return items;
+	}
+
+	public void setItems(Set<MakeOrderItem> items) {
+		this.items = items;
+	}
+	
+
+
+}

+ 178 - 0
src/main/java/com/uas/platform/b2b/model/MakeOrderItem.java

@@ -0,0 +1,178 @@
+package com.uas.platform.b2b.model;
+
+import java.io.Serializable;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.OneToOne;
+import javax.persistence.SequenceGenerator;
+import javax.persistence.Table;
+
+/**
+ * 平台里面,以供应商的角度来查看委外加工单用料明细
+ * 
+ * @author suntg
+ *
+ */
+@Table(name = "make$orderitems")
+@Entity
+public class MakeOrderItem implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	@Id
+	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "make$orderitems_gen")
+	@SequenceGenerator(name = "make$orderitems_gen", sequenceName = "make$orderitems_seq", allocationSize = 1)
+	@Column(name = "mai_id")
+	private Long id;
+
+	/**
+	 * 序号
+	 */
+	@Column(name = "mai_number")
+	private Short number;
+
+	/**
+	 * 用料ID
+	 */
+	@Column(name = "mai_prid")
+	private Long productId;
+
+	/**
+	 * 用料
+	 */
+	@OneToOne(cascade = { CascadeType.REFRESH })
+	@JoinColumn(name = "mai_prid", insertable = false, updatable = false)
+	private Product product;
+	
+	/**
+	 * 单位用量
+	 */
+	@Column(name = "mai_perqty")
+	private Double perQty;
+
+	/**
+	 * 订单用量
+	 */
+	@Column(name = "mai_qty")
+	private Double qty;
+	
+	/**
+	 * 是否可以替代
+	 * 1 可以,0 不可
+	 */
+	@Column(name = "mai_ifreplace")
+	private Short ifReplace;
+
+	/**
+	 * 替代料ID
+	 */
+	@Column(name = "mai_repprid")
+	private Long repProductId;
+
+	/**
+	 * 替代料
+	 */
+	@OneToOne(cascade = { CascadeType.REFRESH })
+	@JoinColumn(name = "mai_repprid", insertable = false, updatable = false)
+	private Product repProduct;
+
+	/**
+	 * 委外加工单主记录
+	 */
+	@ManyToOne(cascade = CascadeType.ALL, optional = true)
+	@JoinColumn(name = "mai_maid", nullable = false)
+	private MakeOrder make;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Short getNumber() {
+		return number;
+	}
+
+	public void setNumber(Short number) {
+		this.number = number;
+	}
+
+	public Long getProductId() {
+		return productId;
+	}
+
+	public void setProductId(Long productId) {
+		this.productId = productId;
+	}
+
+	public Product getProduct() {
+		return product;
+	}
+
+	public void setProduct(Product product) {
+		this.product = product;
+	}
+
+	public Double getPerQty() {
+		return perQty;
+	}
+
+	public void setPerQty(Double perQty) {
+		this.perQty = perQty;
+	}
+
+	public Double getQty() {
+		return qty;
+	}
+
+	public void setQty(Double qty) {
+		this.qty = qty;
+	}
+
+	public Short getIfReplace() {
+		return ifReplace;
+	}
+
+	public void setIfReplace(Short ifReplace) {
+		this.ifReplace = ifReplace;
+	}
+
+	public Long getRepProductId() {
+		return repProductId;
+	}
+
+	public void setRepProductId(Long repProductId) {
+		this.repProductId = repProductId;
+	}
+
+	public Product getRepProduct() {
+		return repProduct;
+	}
+
+	public void setRepProduct(Product repProduct) {
+		this.repProduct = repProduct;
+	}
+
+	public MakeOrder getMake() {
+		return make;
+	}
+
+	public void setMake(MakeOrder make) {
+		this.make = make;
+	}
+	
+
+
+}

+ 1 - 1
src/main/java/com/uas/platform/b2b/service/PurchaseAcceptService.java

@@ -24,7 +24,7 @@ public interface PurchaseAcceptService {
 	 * @param changeItems
 	 * @return
 	 */
-	public void nonPosting(List<PurchaseAcceptItem> acceptItems);
+	public void nonPosting(List<PurchaseAccept> accepts);
 	
 	/**
 	 * 获取需要上传(到卖方)的以反过账的验收单

+ 1 - 1
src/main/java/com/uas/platform/b2b/service/PurchaseApBillService.java

@@ -38,7 +38,7 @@ public interface PurchaseApBillService {
 	 * @param changeItems
 	 * @return
 	 */
-	public void nonPosting(List<PurchaseApBillItem> apBillItems);
+	public void nonPosting(List<PurchaseApBill> apBills);
 	
 	/**
 	 * 获取需要上传(到卖方)的已反过账的客户应发发票

+ 1 - 1
src/main/java/com/uas/platform/b2b/service/PurchaseBadInService.java

@@ -38,7 +38,7 @@ public interface PurchaseBadInService {
 	 * @param changeItems
 	 * @return
 	 */
-	public void nonPosting(List<PurchaseBadInItem> badInItems);
+	public void nonPosting(List<PurchaseBadIn> badIns);
 	
 	/**
 	 * 获取需要上传(到卖方)的以反过账的不良品入库单

+ 1 - 1
src/main/java/com/uas/platform/b2b/service/PurchaseBadOutService.java

@@ -38,7 +38,7 @@ public interface PurchaseBadOutService {
 	 * @param changeItems
 	 * @return
 	 */
-	public void nonPosting(List<PurchaseBadOutItem> badOutItems);
+	public void nonPosting(List<PurchaseBadOut> badOuts);
 	
 	/**
 	 * 获取需要上传(到卖方)的以反过账的不良品出库单

+ 1 - 1
src/main/java/com/uas/platform/b2b/service/PurchaseReturnService.java

@@ -39,7 +39,7 @@ public interface PurchaseReturnService {
 	 * @param changeItems
 	 * @return
 	 */
-	public void nonPosting(List<PurchaseReturnItem> returnItems);
+	public void nonPosting(List<PurchaseReturn> returns);
 	
 	/**
 	 * 获取需要上传(到卖方)的以反过账的采购验退单

+ 23 - 18
src/main/java/com/uas/platform/b2b/service/impl/PurchaseAcceptServiceImpl.java

@@ -62,28 +62,33 @@ public class PurchaseAcceptServiceImpl implements PurchaseAcceptService {
 	}
 
 	@Override
-	public void nonPosting(List<PurchaseAcceptItem> acceptItems) {
-		if( ! CollectionUtils.isEmpty(acceptItems)) {
-			for(PurchaseAcceptItem acceptItem : acceptItems) {
-				if(acceptItem.getAccept().getSendStatus() == Status.NOT_UPLOAD.value()) {
-					//未传输到供应商ERP,直接删除平台上的单据
-					purchaseAcceptItemDao.delete(acceptItem);
-				} else if(acceptItem.getAccept().getSendStatus() == Status.DOWNLOADED.value()) {
+	public void nonPosting(List<PurchaseAccept> accepts) {
+		if( ! CollectionUtils.isEmpty(accepts)) {
+			for(PurchaseAccept accept : accepts) {
+				if(accept.getSendStatus() == Status.DOWNLOADED.value()) {
 					//已传输到供应商ERP,修改单据反过账状态
-					acceptItem.getAccept().setNonPosting(Constant.YES);
-					purchaseAcceptItemDao.save(acceptItem);
+					accept.setNonPosting(Constant.YES);
+					purchaseAcceptDao.save(accept);
+				} else {
+					//未传输到供应商ERP,直接删除平台上的单据
+					purchaseAcceptDao.delete(accept);
 				}
 				//关联订单的验收数量
-				List<PurchaseOrderItem> orderItems = purchaseOrderItemDao.findByEnUUAndOrderCodeAndNumber(acceptItem.getOrderItem().getOrder().getEnUU(), 
-						acceptItem.getOrderItem().getOrder().getCode(), acceptItem.getOrderItem().getNumber());
-				if(orderItems.size() > 0) {
-					PurchaseOrderItem orderItem = orderItems.get(0);
-					if(orderItem.getAcceptQty() == null || orderItem.getAcceptQty() < acceptItem.getQty()) {//已接受数未空或小于本次验收单数目,设为0
-						orderItem.setAcceptQty((double) 0);
-					} else {//否则减去本次的验收数量
-						orderItem.setAcceptQty(orderItem.getAcceptQty() - acceptItem.getQty());
+				if(! CollectionUtils.isEmpty(accept.getAcceptItems())) {
+					for(PurchaseAcceptItem acceptItem : accept.getAcceptItems()) {
+						List<PurchaseOrderItem> orderItems = purchaseOrderItemDao.findByEnUUAndOrderCodeAndNumber(acceptItem.getOrderItem().getOrder().getEnUU(), 
+								acceptItem.getOrderItem().getOrder().getCode(), acceptItem.getOrderItem().getNumber());
+						if(orderItems.size() > 0) {
+							PurchaseOrderItem orderItem = orderItems.get(0);
+							//已接受数未空或小于本次验收单数目,设为0
+							if(orderItem.getAcceptQty() == null || orderItem.getAcceptQty() < acceptItem.getQty()) {
+								orderItem.setAcceptQty((double) 0);
+							} else {//否则减去本次的验收数量
+								orderItem.setAcceptQty(orderItem.getAcceptQty() - acceptItem.getQty());
+							}
+							purchaseOrderItemDao.save(orderItem);
+						}
 					}
-					purchaseOrderItemDao.save(orderItem);
 				}
 			}
 		}

+ 10 - 9
src/main/java/com/uas/platform/b2b/service/impl/PurchaseApBillServiceImpl.java

@@ -96,16 +96,17 @@ public class PurchaseApBillServiceImpl implements PurchaseApBillService {
 	}
 
 	@Override
-	public void nonPosting(List<PurchaseApBillItem> apBillItems) {
-		if(CollectionUtils.isEmpty(apBillItems)) {
-			for(PurchaseApBillItem apBillItem : apBillItems) {
-				if(apBillItem.getaPBill().getSendStatus() == Status.NOT_UPLOAD.value()) {
-					//未传输到供应商ERP,直接删除平台上的单据
-					purchaseApBillItemDao.delete(apBillItem);
-				} else if(apBillItem.getaPBill().getSendStatus() == Status.DOWNLOADED.value()) {
+	public void nonPosting(List<PurchaseApBill> apBills) {
+		System.out.println("apBills from convert : " + apBills.size());
+		if(!CollectionUtils.isEmpty(apBills)) {
+			for(PurchaseApBill apBill : apBills) {
+				if(apBill.getSendStatus() == Status.DOWNLOADED.value()) {
 					//已传输到供应商ERP,修改单据反过账状态
-					apBillItem.getaPBill().setNonPosting(Constant.YES);
-					purchaseApBillItemDao.save(apBillItem);
+					apBill.setNonPosting(Constant.YES);
+					purchaseApBillDao.save(apBill);
+				} else {
+					//未传输到供应商ERP,直接删除平台上的单据
+					purchaseApBillDao.delete(apBill);
 				}
 			}
 		}

+ 13 - 9
src/main/java/com/uas/platform/b2b/service/impl/PurchaseBadInServiceImpl.java

@@ -7,6 +7,7 @@ import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
 
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.jpa.domain.Specification;
@@ -83,17 +84,20 @@ public class PurchaseBadInServiceImpl implements PurchaseBadInService {
 
 
 	@Override
-	public void nonPosting(List<PurchaseBadInItem> badInItems) {
-		for(PurchaseBadInItem badInItem : badInItems) {
-			if(badInItem.getBadIn().getSendStatus() == Status.NOT_UPLOAD.value()) {
-				//未传输到供应商ERP,直接删除平台上的单据
-				purchaseBadInItemDao.delete(badInItem);
-			} else if(badInItem.getBadIn().getSendStatus() == Status.DOWNLOADED.value()) {
-				//已传输到供应商ERP,修改单据反过账状态
-				badInItem.getBadIn().setNonPosting(Constant.YES);
-				purchaseBadInItemDao.save(badInItem);
+	public void nonPosting(List<PurchaseBadIn> badIns) {
+		if(!CollectionUtils.isEmpty(badIns)) {
+			for(PurchaseBadIn badIn : badIns) {
+				if(badIn.getSendStatus() == Status.DOWNLOADED.value()) {
+					//已传输到供应商ERP,修改单据反过账状态
+					badIn.setNonPosting(Constant.YES);
+					purchaseBadInDao.save(badIn);
+				} else {
+					//未传输到供应商ERP,直接删除平台上的单据
+					purchaseBadInDao.delete(badIn);
+				}
 			}
 		}
+		
 	}
 
 	@Override

+ 8 - 8
src/main/java/com/uas/platform/b2b/service/impl/PurchaseBadOutServiceImpl.java

@@ -82,15 +82,15 @@ public class PurchaseBadOutServiceImpl implements PurchaseBadOutService {
 	}
 
 	@Override
-	public void nonPosting(List<PurchaseBadOutItem> badOutItems) {
-		for(PurchaseBadOutItem badOutItem : badOutItems) {
-			if(badOutItem.getBadOut().getSendStatus() == Status.NOT_UPLOAD.value()) {
-				//未传输到供应商ERP,直接删除平台上的单据
-				purchaseBadOutItemDao.delete(badOutItem);
-			} else if(badOutItem.getBadOut().getSendStatus() == Status.DOWNLOADED.value()) {
+	public void nonPosting(List<PurchaseBadOut> badOuts) {
+		for(PurchaseBadOut badOut : badOuts) {
+			if (badOut.getSendStatus() == Status.DOWNLOADED.value()) {
 				//已传输到供应商ERP,修改单据反过账状态
-				badOutItem.getBadOut().setNonPosting(Constant.YES);
-				purchaseBadOutItemDao.save(badOutItem);
+				badOut.setNonPosting(Constant.YES);
+				purchaseBadOutDao.save(badOut);
+			}else {
+				//未传输到供应商ERP,直接删除平台上的单据
+				purchaseBadOutDao.delete(badOut);
 			}
 		}
 	}

+ 28 - 20
src/main/java/com/uas/platform/b2b/service/impl/PurchaseReturnServiceImpl.java

@@ -7,6 +7,7 @@ import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
 
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.jpa.domain.Specification;
@@ -97,27 +98,34 @@ public class PurchaseReturnServiceImpl implements PurchaseReturnService {
 	}
 
 	@Override
-	public void nonPosting(List<PurchaseReturnItem> badOutItems) {
-		for(PurchaseReturnItem returnItem : badOutItems) {
-			if(returnItem.getPurchaseReturn().getSendStatus() == Status.NOT_UPLOAD.value()) {
-				//未传输到供应商ERP,直接删除平台上的单据
-				purchaseReturnItemDao.delete(returnItem);
-			} else if(returnItem.getPurchaseReturn().getSendStatus() == Status.DOWNLOADED.value()) {
-				//已传输到供应商ERP,修改单据反过账状态
-				returnItem.getPurchaseReturn().setNonPosting(Constant.YES);
-				purchaseReturnItemDao.save(returnItem);
-			}
-			//关联订单的验退数量
-			List<PurchaseOrderItem> orderItems = purchaseOrderItemDao.findByEnUUAndOrderCodeAndNumber(returnItem.getOrderItem().getOrder().getEnUU(), 
-					returnItem.getOrderItem().getOrder().getCode(), returnItem.getOrderItem().getNumber());
-			if(orderItems.size() > 0) {
-				PurchaseOrderItem orderItem = orderItems.get(0);
-				if(orderItem.getReturnQty() == null || orderItem.getReturnQty() < returnItem.getQty()) {//已接受数未空或小于本次验收单数目,设为0
-					orderItem.setReturnQty((double) 0);
-				} else {//否则减去本次的验收数量
-					orderItem.setReturnQty(orderItem.getReturnQty() - returnItem.getQty());
+	public void nonPosting(List<PurchaseReturn> purchaseReturns) {
+		if(!CollectionUtils.isEmpty(purchaseReturns)) {
+			for(PurchaseReturn purchaseReturn : purchaseReturns) {
+				if(purchaseReturn.getSendStatus() == Status.DOWNLOADED.value()) {
+					//已传输到供应商ERP,修改单据反过账状态
+					purchaseReturn.setNonPosting(Constant.YES);
+					purchaseReturnDao.save(purchaseReturn);
+				} else {
+					//未传输到供应商ERP,直接删除平台上的单据
+					purchaseReturnDao.delete(purchaseReturn);
+				}
+				//关联订单的验退数量
+				if(! CollectionUtils.isEmpty(purchaseReturn.getReturnItems())) {
+					for(PurchaseReturnItem returnItem : purchaseReturn.getReturnItems()) {
+						List<PurchaseOrderItem> orderItems = purchaseOrderItemDao.findByEnUUAndOrderCodeAndNumber(returnItem.getOrderItem().getOrder().getEnUU(), 
+								returnItem.getOrderItem().getOrder().getCode(), returnItem.getOrderItem().getNumber());
+						if(orderItems.size() > 0) {
+							PurchaseOrderItem orderItem = orderItems.get(0);
+							//已接受数未空或小于本次验收单数目,设为0
+							if(orderItem.getReturnQty() == null || orderItem.getReturnQty() < returnItem.getQty()) {
+								orderItem.setReturnQty((double) 0);
+							} else {//否则减去本次的验收数量
+								orderItem.setReturnQty(orderItem.getReturnQty() - returnItem.getQty());
+							}
+							purchaseOrderItemDao.save(orderItem);
+						}
+					}
 				}
-				purchaseOrderItemDao.save(orderItem);
 			}
 		}
 	}