Преглед изворни кода

反过账应付发票

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@1164 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
suntg пре 10 година
родитељ
комит
1ba28fe74c
19 измењених фајлова са 231 додато и 63 уклоњено
  1. 2 2
      src/main/java/com/uas/platform/b2b/dao/PurchaseAcceptDao.java
  2. 13 4
      src/main/java/com/uas/platform/b2b/dao/PurchaseApBillDao.java
  3. 2 2
      src/main/java/com/uas/platform/b2b/dao/PurchaseBadInDao.java
  4. 2 2
      src/main/java/com/uas/platform/b2b/dao/PurchaseBadOutDao.java
  5. 1 1
      src/main/java/com/uas/platform/b2b/dao/PurchaseReturnDao.java
  6. 15 0
      src/main/java/com/uas/platform/b2b/erp/controller/PurchaseAPBillController.java
  7. 33 0
      src/main/java/com/uas/platform/b2b/erp/controller/SaleAPBillController.java
  8. 9 1
      src/main/java/com/uas/platform/b2b/erp/model/InquiryDetail.java
  9. 7 0
      src/main/java/com/uas/platform/b2b/erp/service/PurchaseAPBillService.java
  10. 27 7
      src/main/java/com/uas/platform/b2b/erp/service/impl/PurchaseAPBillServiceImpl.java
  11. 13 2
      src/main/java/com/uas/platform/b2b/model/PurchaseApBill.java
  12. 10 5
      src/main/java/com/uas/platform/b2b/model/PurchaseApBillIndex.java
  13. 15 1
      src/main/java/com/uas/platform/b2b/model/PurchaseApBillItem.java
  14. 20 0
      src/main/java/com/uas/platform/b2b/service/PurchaseApBillService.java
  15. 23 23
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseAcceptServiceImpl.java
  16. 36 1
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseApBillServiceImpl.java
  17. 1 4
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseBadInServiceImpl.java
  18. 1 4
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseBadOutServiceImpl.java
  19. 1 4
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseReturnServiceImpl.java

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

@@ -27,12 +27,12 @@ public interface PurchaseAcceptDao extends JpaSpecificationExecutor<PurchaseAcce
 	public List<PurchaseAccept> findByVendUUAndSendStatus(Long vendUU, Short sendStatus);
 	
 	/**
-	 * 按卖家UU、下载状态、反过账状态查找
+	 * 按卖家UU、反过账状态查找
 	 * @param vendUU
 	 * @param sendStatus
 	 * @param nonPosting
 	 * @return
 	 */
-	public List<PurchaseAccept> findByVendUUAndSendStatusAndNonPosting(Long vendUU, Short sendStatus, Short nonPosting);
+	public List<PurchaseAccept> findByVendUUAndNonPosting(Long vendUU, Short nonPosting);
 
 }

+ 13 - 4
src/main/java/com/uas/platform/b2b/dao/PurchaseApBillDao.java

@@ -12,18 +12,27 @@ import com.uas.platform.b2b.model.PurchaseApBill;
 public interface PurchaseApBillDao extends JpaSpecificationExecutor<PurchaseApBill>, JpaRepository<PurchaseApBill, Long> {
 
 	/**
-	 * 按所属企业及编号查找采购验收单
+	 * 按所属企业及编号查找客户应付发票
 	 * 
 	 * @param enUU
 	 * @param code
 	 * @return
 	 */
-	public List<PurchaseApBill> findPurchaseApBillByEnUUAndCode(Long enUU, String code);
+	public List<PurchaseApBill> findByEnUUAndCode(Long enUU, String code);
 	
 	/**
-	 * 卖家根据卖家UU号和下载状态获取需要下载的客户采购验收入库单
+	 * 卖家根据卖家UU号和下载状态获取需要下载的客户应付发票
 	 * @return
 	 */
-	public List<PurchaseApBill> findPurchaseApBillByVendUUAndSendStatus(Long vendUU, Short sendStatus);
+	public List<PurchaseApBill> findByVendUUAndSendStatus(Long vendUU, Short sendStatus);
+	
+	/**
+	 * 卖家根据卖家UU号和下载状态和反过账状态获取客户反过账的客户应付发票
+	 * @param vendUU
+	 * @param sendStatus
+	 * @param nonPosting
+	 * @return
+	 */
+	public List<PurchaseApBill> findByVendUUAndNonPosting(Long vendUU, Short nonPosting);
 
 }

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

@@ -27,12 +27,12 @@ public interface PurchaseBadInDao extends JpaSpecificationExecutor<PurchaseBadIn
 	public List<PurchaseBadIn> findByVendUUAndSendStatus(Long vendUU, Short sendStatus);
 
 	/**
-	 * 按卖家UU、下载状态、反过账状态查找
+	 * 按卖家UU、反过账状态查找
 	 * @param vendUU
 	 * @param sendStatus
 	 * @param nonPosting
 	 * @return
 	 */
-	public List<PurchaseBadIn> findByVendUUAndSendStatusAndNonPosting(Long vendUU, Short sendStatus, Short nonPosting);
+	public List<PurchaseBadIn> findByVendUUAndNonPosting(Long vendUU, Short nonPosting);
 
 }

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

@@ -27,12 +27,12 @@ public interface PurchaseBadOutDao extends JpaSpecificationExecutor<PurchaseBadO
 	public List<PurchaseBadOut> findByVendUUAndSendStatus(Long vendUU, Short sendStatus);
 
 	/**
-	 * 按卖家UU、下载状态、反过账状态查找
+	 * 按卖家UU、反过账状态查找
 	 * @param vendUU
 	 * @param sendStatus
 	 * @param nonPosting
 	 * @return
 	 */
-	public List<PurchaseBadOut> findByVendUUAndSendStatusAndNonPosting(Long vendUU, Short sendStatus, Short nonPosting);
+	public List<PurchaseBadOut> findByVendUUAndNonPosting(Long vendUU, Short nonPosting);
 
 }

+ 1 - 1
src/main/java/com/uas/platform/b2b/dao/PurchaseReturnDao.java

@@ -33,6 +33,6 @@ public interface PurchaseReturnDao extends JpaSpecificationExecutor<PurchaseRetu
 	 * @param nonPosting
 	 * @return
 	 */
-	public List<PurchaseReturn> findByVendUUAndSendStatusAndNonPosting(Long vendUU, Short sendStatus, Short nonPosting);
+	public List<PurchaseReturn> findByVendUUAndNonPosting(Long vendUU, Short nonPosting);
 
 }

+ 15 - 0
src/main/java/com/uas/platform/b2b/erp/controller/PurchaseAPBillController.java

@@ -48,4 +48,19 @@ public class PurchaseAPBillController {
 		purchaseApBillService.save(purchaseAPBillService.convertApBills(purchaseAPBills));
 	}
 
+	/**
+	 * 将ERP的反过账的应付发票写到平台
+	 * 
+	 * @param data
+	 * @return
+	 * @throws UnsupportedEncodingException
+	 */
+	@RequestMapping(value="/nonPosting", method = RequestMethod.POST)
+	@ResponseBody
+	public void nonPostingApBills(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		String jsonStr = URLDecoder.decode(data, "UTF-8");
+		List<PurchaseAPBill> apBills = FlexJsonUtils.fromJsonArray(jsonStr, PurchaseAPBill.class);
+		purchaseApBillService.nonPosting(purchaseAPBillService.convertNonPostingApBills(apBills));
+	}
+
 }

+ 33 - 0
src/main/java/com/uas/platform/b2b/erp/controller/SaleAPBillController.java

@@ -2,10 +2,12 @@ package com.uas.platform.b2b.erp.controller;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
+import java.util.ArrayList;
 import java.util.List;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -13,6 +15,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import com.uas.platform.b2b.erp.model.SaleAPBill;
 import com.uas.platform.b2b.erp.service.SaleAPBillService;
+import com.uas.platform.b2b.model.PurchaseApBill;
 import com.uas.platform.b2b.service.PurchaseApBillService;
 
 /**
@@ -53,5 +56,35 @@ public class SaleAPBillController {
 	public void onSaleAPBillDownSuccess(@RequestParam("data") String data) throws UnsupportedEncodingException {
 		purchaseApBillService.onUploadSuccess(URLDecoder.decode(data, "UTF-8").split(","));
 	}
+	
+	/**
+	 * 卖家ERP从平台获取未下载客户已反过帐的的客户采购验收单
+	 * 
+	 * @return
+	 */
+	@RequestMapping(value="/nonPosting", method = RequestMethod.GET)
+	@ResponseBody
+	public List<Long> getNonPosting() {
+		List<Long> ids = new ArrayList<Long>();
+		List<PurchaseApBill> apBills = purchaseApBillService.getNonPosting();
+		if(! CollectionUtils.isEmpty(apBills)) {
+			for(PurchaseApBill apBill : apBills) {
+				ids.add(apBill.getId());
+			}
+		}
+		return ids;
+	}
+
+	/**
+	 * 平台的客户采购验收单传到供应商ERP之后,修改平台里面的客户采购验收单的上传状态
+	 * 
+	 * @return
+	 * @throws UnsupportedEncodingException
+	 */
+	@RequestMapping(value="/nonPosting", method = RequestMethod.POST)
+	@ResponseBody
+	public void onNonPostingDownSuccess(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		purchaseApBillService.onNonPostingUploadSuccess(URLDecoder.decode(data, "UTF-8").split(","));
+	}
 
 }

+ 9 - 1
src/main/java/com/uas/platform/b2b/erp/model/InquiryDetail.java

@@ -278,11 +278,19 @@ public class InquiryDetail {
 		this.id_minqty = item.getMinPackQty();
 		this.id_myfromdate = item.getQuotation().getDate();
 		this.id_mytodate = item.getQuotation().getEndDate();
-		this.id_prodcode = item.getCustProductCode();
+		this.id_prodcode = item.getProduct() != null ? item.getProduct().getCode(): item.getCustProductCode();
 		this.id_rate = item.getQuotation().getRate();
 		this.id_remark = item.getRemark();
 		this.id_todate = item.getQuotation().getEndDate();
 		this.ve_uu = item.getQuotation().getEnUU();
+		this.id_brand = item.getBrand();
+		this.id_leadtime = item.getLeadtime();
+		this.id_vendorprodcode = item.getVendorprodcode();
+		if(item.getQuotation().getUser() != null) {
+			this.ve_contact = item.getQuotation().getUser().getUserName();
+		}
+		this.ve_contactuu = item.getQuotation().getUserUU();
+		this.ve_buyeruu = item.getQuotation().getCustUserUU();
 		if (!CollectionUtils.isEmpty(item.getPrices())) {
 			dets = new ArrayList<InquiryDetailDet>();
 			for (SaleQuotationPrice price : item.getPrices()) {

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

@@ -14,6 +14,13 @@ public interface PurchaseAPBillService {
 	 * @return
 	 */
 	List<PurchaseApBillItem> convertApBills(List<PurchaseAPBill> apBills);
+
+	/**
+	 * 将ERP中已反过账的应付发票,转为反过账的客户应付发票
+	 * @param prodInOuts
+	 * @return
+	 */
+	List<PurchaseApBillItem> convertNonPostingApBills(List<PurchaseAPBill> apBills);
 	
 
 }

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

@@ -5,6 +5,7 @@ import java.util.List;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import com.uas.platform.b2b.dao.EnterpriseDao;
 import com.uas.platform.b2b.dao.ProductDao;
@@ -35,25 +36,44 @@ public class PurchaseAPBillServiceImpl implements PurchaseAPBillService{
 
 	@Override
 	public List<PurchaseApBillItem> convertApBills(List<PurchaseAPBill> apBills) {
+		System.out.println("convertSize ==== " + apBills.size());
 		List<PurchaseApBillItem> apBillItems = new ArrayList<PurchaseApBillItem>();
 		long enUU = SystemSession.getUser().getEnterprise().getUu();
 		for(PurchaseAPBill apBill : apBills) {
-			PurchaseApBill purchaseApBill = apBill.convert();
-			List<PurchaseApBill> apBills2 = purchaseApBillDao.findPurchaseApBillByEnUUAndCode(enUU, purchaseApBill.getCode());
-			Enterprise vendor = enterpriseDao.findEnterpriseByUu(purchaseApBill.getVendUU());
+			List<PurchaseApBill> apBills2 = purchaseApBillDao.findByEnUUAndCode(enUU, apBill.getAb_code());
+			Enterprise vendor = enterpriseDao.findEnterpriseByUu(apBill.getAb_vendoruu());
 			if(apBills2.size() == 0 && vendor != null) {
+				PurchaseApBill purchaseApBill = apBill.convert();
 				for(PurchaseApBillItem apBillItem : purchaseApBill.getItems()){
 					List<Product> products = productDao.findByEnUUAndCode(enUU, apBillItem.getProduct().getCode());
 					if(products.size() > 0) {
 						apBillItem.setProduct(products.get(0));
-					}
-					apBillItem.setaPBill(purchaseApBill);
-					apBillItems.add(apBillItem);
+						apBillItem.setProductId(products.get(0).getId());
+						apBillItem.setaPBill(purchaseApBill);
+						apBillItems.add(apBillItem);
+					} else
+						purchaseApBill.getItems().remove(apBillItem);
 				}
-				
 			}
 		}
 		return apBillItems;
 	}
 
+	@Override
+	public List<PurchaseApBillItem> convertNonPostingApBills(
+			List<PurchaseAPBill> apBills) {
+		List<PurchaseApBillItem> apBillItems = new ArrayList<PurchaseApBillItem>();
+		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());
+				}
+			}
+			return apBillItems;
+		}
+		return apBillItems;
+	}
+
 }

+ 13 - 2
src/main/java/com/uas/platform/b2b/model/PurchaseApBill.java

@@ -179,6 +179,12 @@ public class PurchaseApBill implements Serializable {
 	@OrderBy("number")
 	private Set<PurchaseApBillItem> items;
 
+	/**
+	 * 已反过账(1 已反过账, 0|空 未反过账(默认未空))
+	 */
+	@Column(name = "pab_nonposting")
+	private Short nonPosting;
+
 	public Long getId() {
 		return id;
 	}
@@ -370,9 +376,14 @@ public class PurchaseApBill implements Serializable {
 	public void setVendUU(Long vendUU) {
 		this.vendUU = vendUU;
 	}
-	
-	
 
+	public Short getNonPosting() {
+		return nonPosting;
+	}
+
+	public void setNonPosting(Short nonPosting) {
+		this.nonPosting = nonPosting;
+	}
 	
 	
 }

+ 10 - 5
src/main/java/com/uas/platform/b2b/model/PurchaseApBillIndex.java

@@ -13,6 +13,8 @@ import javax.persistence.Index;
 import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 
+import org.springframework.util.CollectionUtils;
+
 /**
  * 客户应付发票关键词库
  * 
@@ -78,20 +80,23 @@ public class PurchaseApBillIndex {
 	public void setKeyword(String keyword) {
 		this.keyword = keyword;
 	}
-	
+
 	public PurchaseApBillIndex() {
 	}
-	
+
 	public PurchaseApBillIndex(long enUU, long key, String keyword) {
 		this.enUU = enUU;
 		this.key = key;
 		this.keyword = keyword;
 	}
 
-	public static List<PurchaseApBillIndex> format(long enUU, long key, Set<String> keywords) {
+	public static List<PurchaseApBillIndex> format(long enUU, long key,
+			Set<String> keywords) {
 		List<PurchaseApBillIndex> indexes = new ArrayList<PurchaseApBillIndex>();
-		for (String keyword : keywords) {
-			indexes.add(new PurchaseApBillIndex(enUU, key, keyword));
+		if (!CollectionUtils.isEmpty(keywords)) {
+			for (String keyword : keywords) {
+				indexes.add(new PurchaseApBillIndex(enUU, key, keyword));
+			}
 		}
 		return indexes;
 	}

+ 15 - 1
src/main/java/com/uas/platform/b2b/model/PurchaseApBillItem.java

@@ -65,9 +65,15 @@ public class PurchaseApBillItem {
 	 * 物料
 	 */
 	@OneToOne(cascade = { CascadeType.REFRESH })
-	@JoinColumn(name = "papi_product", updatable = false)
+	@JoinColumn(name = "papi_product", insertable = false, updatable = false)
 	private Product product;
 
+	/**
+	 * 物料id
+	 */
+	@Column(name = "papi_product")
+	private Long productId;
+
 	/**
 	 * 数量
 	 */
@@ -315,6 +321,14 @@ public class PurchaseApBillItem {
 		this.yQty = yQty;
 	}
 
+	public Long getProductId() {
+		return productId;
+	}
+
+	public void setProductId(Long productId) {
+		this.productId = productId;
+	}
+
 	public static List<PurchaseApBill> distinct(List<PurchaseApBillItem> items) {
 		List<PurchaseApBill> bills = new ArrayList<PurchaseApBill>();
 		Set<Long> keys = new HashSet<Long>();

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

@@ -31,6 +31,26 @@ public interface PurchaseApBillService {
 	 * @param idArray
 	 */
 	public void onUploadSuccess(String[] idArray);
+	
+	/**
+	 * 批量反过账客户应付发票
+	 * 
+	 * @param changeItems
+	 * @return
+	 */
+	public void nonPosting(List<PurchaseApBillItem> apBillItems);
+	
+	/**
+	 * 获取需要上传(到卖方)的已反过账的客户应发发票
+	 * @return
+	 */
+	public List<PurchaseApBill> getNonPosting();
+
+	/**
+	 * 删除已上传(到卖方)的反过账客户应付发票
+	 * @param idArray
+	 */
+	public void onNonPostingUploadSuccess(String[] idArray);
 
 	/**
 	 * 分页查找客户应付票据,包括明细

+ 23 - 23
src/main/java/com/uas/platform/b2b/service/impl/PurchaseAcceptServiceImpl.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;
@@ -62,27 +63,28 @@ public class PurchaseAcceptServiceImpl implements PurchaseAcceptService {
 
 	@Override
 	public void nonPosting(List<PurchaseAcceptItem> 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()) {
-				//已传输到供应商ERP,修改单据反过账状态
-				acceptItem.getAccept().setNonPosting(Constant.YES);
-				acceptItem.getAccept().setSendStatus((short) Status.NOT_UPLOAD.value());
-				purchaseAcceptItemDao.save(acceptItem);
-			}
-			//关联订单的验收数量
-			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(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()) {
+					//已传输到供应商ERP,修改单据反过账状态
+					acceptItem.getAccept().setNonPosting(Constant.YES);
+					purchaseAcceptItemDao.save(acceptItem);
+				}
+				//关联订单的验收数量
+				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());
+					}
+					purchaseOrderItemDao.save(orderItem);
 				}
-				purchaseOrderItemDao.save(orderItem);
 			}
 		}
 	}
@@ -125,8 +127,7 @@ public class PurchaseAcceptServiceImpl implements PurchaseAcceptService {
 
 	@Override
 	public List<PurchaseAccept> getNonPosting() {
-		return purchaseAcceptDao.findByVendUUAndSendStatusAndNonPosting(SystemSession.getUser().getEnterprise().getUu(), 
-				(short) Status.NOT_UPLOAD.value(), Constant.YES);
+		return purchaseAcceptDao.findByVendUUAndNonPosting(SystemSession.getUser().getEnterprise().getUu(), Constant.YES);
 	}
 
 	@Override
@@ -134,7 +135,6 @@ public class PurchaseAcceptServiceImpl implements PurchaseAcceptService {
 		for(String id : idArray) {
 			PurchaseAccept accept = purchaseAcceptDao.findOne(Long.parseLong(id));
 			if (accept != null) {
-				accept.setSendStatus((short) Status.DOWNLOADED.value());
 				purchaseAcceptDao.delete(accept);
 			}
 		}

+ 36 - 1
src/main/java/com/uas/platform/b2b/service/impl/PurchaseApBillServiceImpl.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;
@@ -23,6 +24,7 @@ import com.uas.platform.b2b.model.PurchaseApBill;
 import com.uas.platform.b2b.model.PurchaseApBillItem;
 import com.uas.platform.b2b.service.PurchaseApBillService;
 import com.uas.platform.b2b.support.SystemSession;
+import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.Status;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
@@ -44,6 +46,7 @@ public class PurchaseApBillServiceImpl implements PurchaseApBillService {
 
 	@Override
 	public void save(List<PurchaseApBillItem> apBillItems) {
+		System.out.println("saveSize ==== " + apBillItems.size());
 		List<PurchaseApBillItem> newApBillItems = purchaseApBillItemDao.save(apBillItems);
 		if (newApBillItems.size() > 0)
 			ContextUtils.publishEvent(new PurchaseApBillSaveEvent(PurchaseApBillItem.distinct(newApBillItems)));
@@ -51,7 +54,7 @@ public class PurchaseApBillServiceImpl implements PurchaseApBillService {
 
 	@Override
 	public List<PurchaseApBill> findNotUpload() {
-		return purchaseApBillDao.findPurchaseApBillByVendUUAndSendStatus(SystemSession.getUser().getEnterprise()
+		return purchaseApBillDao.findByVendUUAndSendStatus(SystemSession.getUser().getEnterprise()
 				.getUu(), (short) Status.NOT_UPLOAD.value());
 	}
 
@@ -85,4 +88,36 @@ public class PurchaseApBillServiceImpl implements PurchaseApBillService {
 		return purchaseApBillDao.findOne(id);
 	}
 
+	@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()) {
+					//已传输到供应商ERP,修改单据反过账状态
+					apBillItem.getaPBill().setNonPosting(Constant.YES);
+					purchaseApBillItemDao.save(apBillItem);
+				}
+			}
+		}
+		
+	}
+
+	@Override
+	public List<PurchaseApBill> getNonPosting() {
+		return purchaseApBillDao.findByVendUUAndNonPosting(SystemSession.getUser().getEnterprise().getUu(), Constant.YES);
+	}
+
+	@Override
+	public void onNonPostingUploadSuccess(String[] idArray) {
+		for(String id : idArray) {
+			PurchaseApBill apBill = purchaseApBillDao.findOne(Long.parseLong(id));
+			if (apBill != null) {
+				purchaseApBillDao.delete(apBill);
+			}
+		}
+	}
+
 }

+ 1 - 4
src/main/java/com/uas/platform/b2b/service/impl/PurchaseBadInServiceImpl.java

@@ -91,7 +91,6 @@ public class PurchaseBadInServiceImpl implements PurchaseBadInService {
 			} else if(badInItem.getBadIn().getSendStatus() == Status.DOWNLOADED.value()) {
 				//已传输到供应商ERP,修改单据反过账状态
 				badInItem.getBadIn().setNonPosting(Constant.YES);
-				badInItem.getBadIn().setSendStatus((short) Status.NOT_UPLOAD.value());
 				purchaseBadInItemDao.save(badInItem);
 			}
 		}
@@ -99,8 +98,7 @@ public class PurchaseBadInServiceImpl implements PurchaseBadInService {
 
 	@Override
 	public List<PurchaseBadIn> getNonPosting() {
-		return purchaseBadInDao.findByVendUUAndSendStatusAndNonPosting(SystemSession.getUser().getEnterprise().getUu(), 
-				(short) Status.NOT_UPLOAD.value(), Constant.YES);
+		return purchaseBadInDao.findByVendUUAndNonPosting(SystemSession.getUser().getEnterprise().getUu(), Constant.YES);
 	}
 
 	@Override
@@ -108,7 +106,6 @@ public class PurchaseBadInServiceImpl implements PurchaseBadInService {
 		for(String id : idArray) {
 			PurchaseBadIn badIn = purchaseBadInDao.findOne(Long.parseLong(id));
 			if (badIn != null) {
-				badIn.setSendStatus((short) Status.DOWNLOADED.value());
 				purchaseBadInDao.delete(badIn);
 			}
 		}

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

@@ -90,7 +90,6 @@ public class PurchaseBadOutServiceImpl implements PurchaseBadOutService {
 			} else if(badOutItem.getBadOut().getSendStatus() == Status.DOWNLOADED.value()) {
 				//已传输到供应商ERP,修改单据反过账状态
 				badOutItem.getBadOut().setNonPosting(Constant.YES);
-				badOutItem.getBadOut().setSendStatus((short) Status.NOT_UPLOAD.value());
 				purchaseBadOutItemDao.save(badOutItem);
 			}
 		}
@@ -98,8 +97,7 @@ public class PurchaseBadOutServiceImpl implements PurchaseBadOutService {
 
 	@Override
 	public List<PurchaseBadOut> getNonPosting() {
-		return purchaseBadOutDao.findByVendUUAndSendStatusAndNonPosting(SystemSession.getUser().getEnterprise().getUu(), 
-				(short) Status.NOT_UPLOAD.value(), Constant.YES);
+		return purchaseBadOutDao.findByVendUUAndNonPosting(SystemSession.getUser().getEnterprise().getUu(), Constant.YES);
 	}
 
 	@Override
@@ -107,7 +105,6 @@ public class PurchaseBadOutServiceImpl implements PurchaseBadOutService {
 		for(String id : idArray) {
 			PurchaseBadOut badOut = purchaseBadOutDao.findOne(Long.parseLong(id));
 			if (badOut != null) {
-				badOut.setSendStatus((short) Status.DOWNLOADED.value());
 				purchaseBadOutDao.delete(badOut);
 			}
 		}

+ 1 - 4
src/main/java/com/uas/platform/b2b/service/impl/PurchaseReturnServiceImpl.java

@@ -105,7 +105,6 @@ public class PurchaseReturnServiceImpl implements PurchaseReturnService {
 			} else if(returnItem.getPurchaseReturn().getSendStatus() == Status.DOWNLOADED.value()) {
 				//已传输到供应商ERP,修改单据反过账状态
 				returnItem.getPurchaseReturn().setNonPosting(Constant.YES);
-				returnItem.getPurchaseReturn().setSendStatus((short) Status.NOT_UPLOAD.value());
 				purchaseReturnItemDao.save(returnItem);
 			}
 			//关联订单的验退数量
@@ -125,8 +124,7 @@ public class PurchaseReturnServiceImpl implements PurchaseReturnService {
 
 	@Override
 	public List<PurchaseReturn> getNonPosting() {
-		return purchaseReturnDao.findByVendUUAndSendStatusAndNonPosting(SystemSession.getUser().getEnterprise().getUu(), 
-				(short) Status.NOT_UPLOAD.value(), Constant.YES);
+		return purchaseReturnDao.findByVendUUAndNonPosting(SystemSession.getUser().getEnterprise().getUu(), Constant.YES);
 	}
 
 	@Override
@@ -134,7 +132,6 @@ public class PurchaseReturnServiceImpl implements PurchaseReturnService {
 		for(String id : idArray) {
 			PurchaseReturn purchaseReturn = purchaseReturnDao.findOne(Long.parseLong(id));
 			if (purchaseReturn != null) {
-				purchaseReturn.setSendStatus((short) Status.DOWNLOADED.value());
 				purchaseReturnDao.delete(purchaseReturn);
 			}
 		}