Browse Source

出入库单反过账传输处理

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@911 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
suntg 11 years ago
parent
commit
251e5f3b9c
27 changed files with 647 additions and 24 deletions
  1. 11 2
      src/main/java/com/uas/platform/b2b/dao/PurchaseAcceptDao.java
  2. 11 2
      src/main/java/com/uas/platform/b2b/dao/PurchaseBadInDao.java
  3. 11 2
      src/main/java/com/uas/platform/b2b/dao/PurchaseBadOutDao.java
  4. 11 2
      src/main/java/com/uas/platform/b2b/dao/PurchaseReturnDao.java
  5. 16 1
      src/main/java/com/uas/platform/b2b/erp/controller/PurchaseProdBadInController.java
  6. 15 0
      src/main/java/com/uas/platform/b2b/erp/controller/PurchaseProdBadOutController.java
  7. 17 2
      src/main/java/com/uas/platform/b2b/erp/controller/PurchaseProdInOutController.java
  8. 16 1
      src/main/java/com/uas/platform/b2b/erp/controller/PurchaseProdReturnController.java
  9. 33 0
      src/main/java/com/uas/platform/b2b/erp/controller/SaleProdBadInDownController.java
  10. 36 2
      src/main/java/com/uas/platform/b2b/erp/controller/SaleProdBadOutDownController.java
  11. 33 0
      src/main/java/com/uas/platform/b2b/erp/controller/SaleProdInOutDownController.java
  12. 34 1
      src/main/java/com/uas/platform/b2b/erp/controller/SaleProdReturnDownController.java
  13. 28 0
      src/main/java/com/uas/platform/b2b/erp/service/PurchaseProdInOutService.java
  14. 73 4
      src/main/java/com/uas/platform/b2b/erp/service/impl/PurchaseProdInOutServiceImpl.java
  15. 1 1
      src/main/java/com/uas/platform/b2b/erp/service/impl/PurchaseQuaMRBServiceImpl.java
  16. 14 0
      src/main/java/com/uas/platform/b2b/model/PurchaseAccept.java
  17. 14 0
      src/main/java/com/uas/platform/b2b/model/PurchaseBadIn.java
  18. 14 0
      src/main/java/com/uas/platform/b2b/model/PurchaseBadOut.java
  19. 14 0
      src/main/java/com/uas/platform/b2b/model/PurchaseReturn.java
  20. 20 0
      src/main/java/com/uas/platform/b2b/service/PurchaseAcceptService.java
  21. 20 0
      src/main/java/com/uas/platform/b2b/service/PurchaseBadInService.java
  22. 21 0
      src/main/java/com/uas/platform/b2b/service/PurchaseBadOutService.java
  23. 22 0
      src/main/java/com/uas/platform/b2b/service/PurchaseReturnService.java
  24. 46 1
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseAcceptServiceImpl.java
  25. 35 1
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseBadInServiceImpl.java
  26. 34 1
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseBadOutServiceImpl.java
  27. 47 1
      src/main/java/com/uas/platform/b2b/service/impl/PurchaseReturnServiceImpl.java

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

@@ -18,12 +18,21 @@ public interface PurchaseAcceptDao extends JpaSpecificationExecutor<PurchaseAcce
 	 * @param code
 	 * @return
 	 */
-	public List<PurchaseAccept> findPurchaseAcceptByEnUUAndCode(Long enUU, String code);
+	public List<PurchaseAccept> findByEnUUAndCode(Long enUU, String code);
 	
 	/**
 	 * 卖家根据卖家UU号和下载状态获取需要下载的客户采购验收入库单
 	 * @return
 	 */
-	public List<PurchaseAccept> findPurchaseAcceptByVendUUAndSendStatus(Long vendUU, Short sendStatus);
+	public List<PurchaseAccept> findByVendUUAndSendStatus(Long vendUU, Short sendStatus);
+	
+	/**
+	 * 按卖家UU、下载状态、反过账状态查找
+	 * @param vendUU
+	 * @param sendStatus
+	 * @param nonPosting
+	 * @return
+	 */
+	public List<PurchaseAccept> findByVendUUAndSendStatusAndNonPosting(Long vendUU, Short sendStatus, Short nonPosting);
 
 }

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

@@ -18,12 +18,21 @@ public interface PurchaseBadInDao extends JpaSpecificationExecutor<PurchaseBadIn
 	 * @param code
 	 * @return
 	 */
-	public List<PurchaseBadIn> findPurchaseBadInByEnUUAndCode(Long enUU, String code);
+	public List<PurchaseBadIn> findByEnUUAndCode(Long enUU, String code);
 	
 	/**
 	 * 卖家根据卖家UU号和下载状态获取需要下载的客户采购验收入库单
 	 * @return
 	 */
-	public List<PurchaseBadIn> findPurchaseBadInByVendUUAndSendStatus(Long vendUU, Short sendStatus);
+	public List<PurchaseBadIn> findByVendUUAndSendStatus(Long vendUU, Short sendStatus);
+
+	/**
+	 * 按卖家UU、下载状态、反过账状态查找
+	 * @param vendUU
+	 * @param sendStatus
+	 * @param nonPosting
+	 * @return
+	 */
+	public List<PurchaseBadIn> findByVendUUAndSendStatusAndNonPosting(Long vendUU, Short sendStatus, Short nonPosting);
 
 }

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

@@ -18,12 +18,21 @@ public interface PurchaseBadOutDao extends JpaSpecificationExecutor<PurchaseBadO
 	 * @param code
 	 * @return
 	 */
-	public List<PurchaseBadOut> findPurchaseBadOutByEnUUAndCode(Long enUU, String code);
+	public List<PurchaseBadOut> findByEnUUAndCode(Long enUU, String code);
 	
 	/**
 	 * 卖家根据卖家UU号和下载状态获取需要下载的客户不良品出库单
 	 * @return
 	 */
-	public List<PurchaseBadOut> findPurchaseBadOutByVendUUAndSendStatus(Long vendUU, Short sendStatus);
+	public List<PurchaseBadOut> findByVendUUAndSendStatus(Long vendUU, Short sendStatus);
+
+	/**
+	 * 按卖家UU、下载状态、反过账状态查找
+	 * @param vendUU
+	 * @param sendStatus
+	 * @param nonPosting
+	 * @return
+	 */
+	public List<PurchaseBadOut> findByVendUUAndSendStatusAndNonPosting(Long vendUU, Short sendStatus, Short nonPosting);
 
 }

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

@@ -18,12 +18,21 @@ public interface PurchaseReturnDao extends JpaSpecificationExecutor<PurchaseRetu
 	 * @param code
 	 * @return
 	 */
-	public List<PurchaseReturn> findPurchaseReturnByEnUUAndCode(Long enUU, String code);
+	public List<PurchaseReturn> findByEnUUAndCode(Long enUU, String code);
 	
 	/**
 	 * 卖家根据卖家UU号和下载状态获取需要下载的客户采购验收入库单
 	 * @return
 	 */
-	public List<PurchaseReturn> findPurchaseReturnByVendUUAndSendStatus(Long vendUU, Short sendStatus);
+	public List<PurchaseReturn> findByVendUUAndSendStatus(Long vendUU, Short sendStatus);
+
+	/**
+	 * 按卖家UU、下载状态、反过账状态查找
+	 * @param vendUU
+	 * @param sendStatus
+	 * @param nonPosting
+	 * @return
+	 */
+	public List<PurchaseReturn> findByVendUUAndSendStatusAndNonPosting(Long vendUU, Short sendStatus, Short nonPosting);
 
 }

+ 16 - 1
src/main/java/com/uas/platform/b2b/erp/controller/PurchaseProdBadInController.java

@@ -34,7 +34,7 @@ public class PurchaseProdBadInController {
 	PurchaseProdInOutService purchaseProdInOutService;
 
 	/**
-	 * 将ERP的采购变更单写到平台
+	 * 将ERP的不良品入库单写到平台
 	 * 
 	 * @param data
 	 * @return
@@ -48,4 +48,19 @@ public class PurchaseProdBadInController {
 		purchaseBadInService.save(purchaseProdInOutService.convertBadIns(prodInOuts));
 	}
 
+	/**
+	 * 将ERP的反过账的不良品入库单写到平台
+	 * 
+	 * @param data
+	 * @return
+	 * @throws UnsupportedEncodingException
+	 */
+	@RequestMapping(value="/nonPosting", method = RequestMethod.POST)
+	@ResponseBody
+	public void nonPostingProdInOuts(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		String jsonStr = URLDecoder.decode(data, "UTF-8");
+		List<PurchaseProdInOut> prodInOuts = FlexJsonUtils.fromJsonArray(jsonStr, PurchaseProdInOut.class);
+		purchaseBadInService.nonPosting(purchaseProdInOutService.convertNonPostingBadIns(prodInOuts));
+	}
+
 }

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

@@ -48,4 +48,19 @@ public class PurchaseProdBadOutController {
 		purchaseBadOutService.save(purchaseProdInOutService.convertBadOuts(prodInOuts));
 	}
 
+	/**
+	 * 将ERP的反过账的不良品出库单写到平台
+	 * 
+	 * @param data
+	 * @return
+	 * @throws UnsupportedEncodingException
+	 */
+	@RequestMapping(value="/nonPosting", method = RequestMethod.POST)
+	@ResponseBody
+	public void nonPostingProdInOuts(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		String jsonStr = URLDecoder.decode(data, "UTF-8");
+		List<PurchaseProdInOut> prodInOuts = FlexJsonUtils.fromJsonArray(jsonStr, PurchaseProdInOut.class);
+		purchaseBadOutService.nonPosting(purchaseProdInOutService.convertNonPostingBadOuts(prodInOuts));
+	}
+
 }

+ 17 - 2
src/main/java/com/uas/platform/b2b/erp/controller/PurchaseProdInOutController.java

@@ -34,7 +34,7 @@ public class PurchaseProdInOutController {
 	PurchaseProdInOutService purchaseProdInOutService;
 
 	/**
-	 * 将ERP的采购变更单写到平台
+	 * 将ERP的采购验收单写到平台
 	 * 
 	 * @param data
 	 * @return
@@ -42,10 +42,25 @@ public class PurchaseProdInOutController {
 	 */
 	@RequestMapping(method = RequestMethod.POST)
 	@ResponseBody
-	public void savePurchases(@RequestParam("data") String data) throws UnsupportedEncodingException {
+	public void saveProdInOuts(@RequestParam("data") String data) throws UnsupportedEncodingException {
 		String jsonStr = URLDecoder.decode(data, "UTF-8");
 		List<PurchaseProdInOut> prodInOuts = FlexJsonUtils.fromJsonArray(jsonStr, PurchaseProdInOut.class);
 		purchaseAcceptService.save(purchaseProdInOutService.convertProdInOuts(prodInOuts));
 	}
 
+	/**
+	 * 将ERP的反过账的采购验收单写到平台
+	 * 
+	 * @param data
+	 * @return
+	 * @throws UnsupportedEncodingException
+	 */
+	@RequestMapping(value="/nonPosting", method = RequestMethod.POST)
+	@ResponseBody
+	public void nonPostingProdInOuts(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		String jsonStr = URLDecoder.decode(data, "UTF-8");
+		List<PurchaseProdInOut> prodInOuts = FlexJsonUtils.fromJsonArray(jsonStr, PurchaseProdInOut.class);
+		purchaseAcceptService.nonPosting(purchaseProdInOutService.convertNonPostingProdInOuts(prodInOuts));
+	}
+
 }

+ 16 - 1
src/main/java/com/uas/platform/b2b/erp/controller/PurchaseProdReturnController.java

@@ -34,7 +34,7 @@ public class PurchaseProdReturnController {
 	PurchaseProdInOutService purchaseProdInOutService;
 
 	/**
-	 * 将ERP的采购验单写到平台
+	 * 将ERP的采购验退单写到平台
 	 * 
 	 * @param data
 	 * @return
@@ -48,4 +48,19 @@ public class PurchaseProdReturnController {
 		purchaseReturnService.save(purchaseProdInOutService.convertReturns(prodInOuts));
 	}
 
+	/**
+	 * 将ERP的反过账的采购验退单写到平台
+	 * 
+	 * @param data
+	 * @return
+	 * @throws UnsupportedEncodingException
+	 */
+	@RequestMapping(value="/nonPosting", method = RequestMethod.POST)
+	@ResponseBody
+	public void nonPostingProdInOuts(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		String jsonStr = URLDecoder.decode(data, "UTF-8");
+		List<PurchaseProdInOut> prodInOuts = FlexJsonUtils.fromJsonArray(jsonStr, PurchaseProdInOut.class);
+		purchaseReturnService.nonPosting(purchaseProdInOutService.convertNonPostingReturns(prodInOuts));
+	}
+
 }

+ 33 - 0
src/main/java/com/uas/platform/b2b/erp/controller/SaleProdBadInDownController.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.SaleProdInOutDown;
 import com.uas.platform.b2b.erp.service.SaleProdInOutDownService;
+import com.uas.platform.b2b.model.PurchaseBadIn;
 import com.uas.platform.b2b.service.PurchaseBadInService;
 
 /**
@@ -54,4 +57,34 @@ public class SaleProdBadInDownController {
 		purchaseBadInService.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<PurchaseBadIn> badIns = purchaseBadInService.getNonPosting();
+		if(! CollectionUtils.isEmpty(badIns)) {
+			for(PurchaseBadIn badIn : badIns) {
+				ids.add(badIn.getId());
+			}
+		}
+		return ids;
+	}
+
+	/**
+	 * 平台的客户采购验收单传到供应商ERP之后,修改平台里面的客户不良品入库单的上传状态
+	 * 
+	 * @return
+	 * @throws UnsupportedEncodingException
+	 */
+	@RequestMapping(value="/nonPosting", method = RequestMethod.POST)
+	@ResponseBody
+	public void onNonPostingDownSuccess(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		purchaseBadInService.onNonPostingUploadSuccess(URLDecoder.decode(data, "UTF-8").split(","));
+	}
+
 }

+ 36 - 2
src/main/java/com/uas/platform/b2b/erp/controller/SaleProdBadOutDownController.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.SaleProdInOutDown;
 import com.uas.platform.b2b.erp.service.SaleProdInOutDownService;
+import com.uas.platform.b2b.model.PurchaseBadOut;
 import com.uas.platform.b2b.service.PurchaseBadOutService;
 
 /**
@@ -32,7 +35,7 @@ public class SaleProdBadOutDownController {
 	private SaleProdInOutDownService saleProdInOutDownService;
 
 	/**
-	 * 卖家ERP从平台获取未下载的客户不良品库单
+	 * 卖家ERP从平台获取未下载的客户不良品库单
 	 * 
 	 * @return
 	 */
@@ -43,7 +46,7 @@ public class SaleProdBadOutDownController {
 	}
 
 	/**
-	 * 平台的客户不良品入库单传到供应商ERP之后,修改平台里面的客户不良品入库单的上传状态
+	 * 平台的客户不良品出库单传到供应商ERP之后,修改平台里面的客户不良品出库单的上传状态
 	 * 
 	 * @return
 	 * @throws UnsupportedEncodingException
@@ -54,4 +57,35 @@ public class SaleProdBadOutDownController {
 		purchaseBadOutServices.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<PurchaseBadOut> badOuts = purchaseBadOutServices.getNonPosting();
+		if(! CollectionUtils.isEmpty(badOuts)) {
+			for(PurchaseBadOut badOut : badOuts) {
+				ids.add(badOut.getId());
+			}
+		}
+		return ids;
+	}
+
+	/**
+	 * 平台的客户采购验收单传到供应商ERP之后,修改平台里面的客户不良品出库单的上传状态
+	 * 
+	 * @return
+	 * @throws UnsupportedEncodingException
+	 */
+	@RequestMapping(value="/nonPosting", method = RequestMethod.POST)
+	@ResponseBody
+	public void onNonPostingDownSuccess(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		purchaseBadOutServices.onNonPostingUploadSuccess(URLDecoder.decode(data, "UTF-8").split(","));
+	}
+
+
 }

+ 33 - 0
src/main/java/com/uas/platform/b2b/erp/controller/SaleProdInOutDownController.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.SaleProdInOutDown;
 import com.uas.platform.b2b.erp.service.SaleProdInOutDownService;
+import com.uas.platform.b2b.model.PurchaseAccept;
 import com.uas.platform.b2b.service.PurchaseAcceptService;
 
 /**
@@ -54,4 +57,34 @@ public class SaleProdInOutDownController {
 		purchaseAcceptService.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<PurchaseAccept> accepts = purchaseAcceptService.getNonPosting();
+		if(! CollectionUtils.isEmpty(accepts)) {
+			for(PurchaseAccept accept : accepts) {
+				ids.add(accept.getId());
+			}
+		}
+		return ids;
+	}
+
+	/**
+	 * 平台的客户采购验收单传到供应商ERP之后,修改平台里面的客户采购验收单的上传状态
+	 * 
+	 * @return
+	 * @throws UnsupportedEncodingException
+	 */
+	@RequestMapping(value="/nonPosting", method = RequestMethod.POST)
+	@ResponseBody
+	public void onNonPostingDownSuccess(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		purchaseAcceptService.onNonPostingUploadSuccess(URLDecoder.decode(data, "UTF-8").split(","));
+	}
+
 }

+ 34 - 1
src/main/java/com/uas/platform/b2b/erp/controller/SaleProdReturnDownController.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.SaleProdInOutDown;
 import com.uas.platform.b2b.erp.service.SaleProdInOutDownService;
+import com.uas.platform.b2b.model.PurchaseReturn;
 import com.uas.platform.b2b.service.PurchaseReturnService;
 
 /**
@@ -43,7 +46,7 @@ public class SaleProdReturnDownController {
 	}
 
 	/**
-	 * 平台的客户采购验退单传到供应商ERP之后,修改平台里面的客户采购验单的上传状态
+	 * 平台的客户采购验退单传到供应商ERP之后,修改平台里面的客户采购验退单的上传状态
 	 * 
 	 * @return
 	 * @throws UnsupportedEncodingException
@@ -54,4 +57,34 @@ public class SaleProdReturnDownController {
 		purchaseReturnService.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<PurchaseReturn> purchaseReturns = purchaseReturnService.getNonPosting();
+		if(! CollectionUtils.isEmpty(purchaseReturns)) {
+			for(PurchaseReturn purchaseReturn : purchaseReturns) {
+				ids.add(purchaseReturn.getId());
+			}
+		}
+		return ids;
+	}
+
+	/**
+	 * 平台的客户采购验收单传到供应商ERP之后,修改平台里面的客户采购验退单的上传状态
+	 * 
+	 * @return
+	 * @throws UnsupportedEncodingException
+	 */
+	@RequestMapping(value="/nonPosting", method = RequestMethod.POST)
+	@ResponseBody
+	public void onNonPostingDownSuccess(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		purchaseReturnService.onNonPostingUploadSuccess(URLDecoder.decode(data, "UTF-8").split(","));
+	}
+
 }

+ 28 - 0
src/main/java/com/uas/platform/b2b/erp/service/PurchaseProdInOutService.java

@@ -18,6 +18,13 @@ public interface PurchaseProdInOutService {
 	 */
 	List<PurchaseAcceptItem> convertProdInOuts(List<PurchaseProdInOut> prodInOuts);
 	
+	/**
+	 * 将ERP中已反过账的采购验收单,转为反过账的客户采购验收单
+	 * @param prodInOuts
+	 * @return
+	 */
+	List<PurchaseAcceptItem> convertNonPostingProdInOuts(List<PurchaseProdInOut> prodInOuts);
+	
 	/**
 	 * 将ERP系统的采购验退单,转为平台的客户采购验退单
 	 * 
@@ -25,6 +32,13 @@ public interface PurchaseProdInOutService {
 	 * @return
 	 */
 	List<PurchaseReturnItem> convertReturns(List<PurchaseProdInOut> prodInOuts);
+
+	/**
+	 * 将ERP中已反过账的采购验收单,转为反过账的客户采购验退单
+	 * @param prodInOuts
+	 * @return
+	 */
+	List<PurchaseReturnItem> convertNonPostingReturns(List<PurchaseProdInOut> prodInOuts);
 	
 	/**
 	 * 将ERP系统的不良品入库单,转为平台的客户不良品入库单
@@ -33,6 +47,13 @@ public interface PurchaseProdInOutService {
 	 * @return
 	 */
 	List<PurchaseBadInItem> convertBadIns(List<PurchaseProdInOut> prodInOuts);
+
+	/**
+	 * 将ERP中已反过账的采购验收单,转为反过账的客户不良品入库单
+	 * @param prodInOuts
+	 * @return
+	 */
+	List<PurchaseBadInItem> convertNonPostingBadIns(List<PurchaseProdInOut> prodInOuts);
 	
 	/**
 	 * 将ERP系统的不良品出库单,转为平台的客户不良品出库单
@@ -42,4 +63,11 @@ public interface PurchaseProdInOutService {
 	 */
 	List<PurchaseBadOutItem> convertBadOuts(List<PurchaseProdInOut> prodInOuts);
 
+	/**
+	 * 将ERP中已反过账的采购验收单,转为反过账的客户不良品出库单
+	 * @param prodInOuts
+	 * @return
+	 */
+	List<PurchaseBadOutItem> convertNonPostingBadOuts(List<PurchaseProdInOut> prodInOuts);
+
 }

+ 73 - 4
src/main/java/com/uas/platform/b2b/erp/service/impl/PurchaseProdInOutServiceImpl.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.PurchaseAcceptDao;
@@ -70,7 +71,7 @@ public class PurchaseProdInOutServiceImpl implements PurchaseProdInOutService{
 		long enUU = SystemSession.getUser().getEnterprise().getUu();
 		for(PurchaseProdInOut prodInOut : prodInOuts) {
 			PurchaseAccept accept = prodInOut.convent();
-			List<PurchaseAccept> accepts2 = purchaseAcceptDao.findPurchaseAcceptByEnUUAndCode(enUU, accept.getCode());
+			List<PurchaseAccept> accepts2 = purchaseAcceptDao.findByEnUUAndCode(enUU, accept.getCode());
 			Enterprise vendor = enterpriseDao.findEnterpriseByUu(accept.getVendUU());
 			//采购验收单不存在,供应商UU号存在对应供应商
 			if(accepts2.size() == 0 && vendor != null) {
@@ -96,7 +97,7 @@ public class PurchaseProdInOutServiceImpl implements PurchaseProdInOutService{
 		long enUU = SystemSession.getUser().getEnterprise().getUu();
 		for(PurchaseProdInOut prodInOut : prodInOuts) {
 			PurchaseReturn returnn = prodInOut.conventToReturn();
-			List<PurchaseReturn> returns2 = purchaseReturnDao.findPurchaseReturnByEnUUAndCode(enUU, returnn.getCode());
+			List<PurchaseReturn> returns2 = purchaseReturnDao.findByEnUUAndCode(enUU, returnn.getCode());
 			Enterprise vendor = enterpriseDao.findEnterpriseByUu(returnn.getVendUU());
 			//采购验收单不存在,供应商UU号存在对应供应商
 			if(returns2.size() == 0 && vendor != null) {
@@ -122,7 +123,7 @@ public class PurchaseProdInOutServiceImpl implements PurchaseProdInOutService{
 		long enUU = SystemSession.getUser().getEnterprise().getUu();
 		for(PurchaseProdInOut prodInOut : prodInOuts) {
 			PurchaseBadIn badIn = prodInOut.conventToBadIn();
-			List<PurchaseBadIn> badIns = purchaseBadInDao.findPurchaseBadInByEnUUAndCode(enUU, badIn.getCode());
+			List<PurchaseBadIn> badIns = purchaseBadInDao.findByEnUUAndCode(enUU, badIn.getCode());
 			Enterprise vendor = enterpriseDao.findEnterpriseByUu(badIn.getVendUU());
 			//采购验收单不存在,供应商UU号存在对应供应商
 			if(badIns.size() == 0 && vendor != null) {
@@ -148,7 +149,7 @@ public class PurchaseProdInOutServiceImpl implements PurchaseProdInOutService{
 		long enUU = SystemSession.getUser().getEnterprise().getUu();
 		for(PurchaseProdInOut prodInOut : prodInOuts) {
 			PurchaseBadOut badOut = prodInOut.conventToBadOut();
-			List<PurchaseBadOut> badOuts = purchaseBadOutDao.findPurchaseBadOutByEnUUAndCode(enUU, badOut.getCode());
+			List<PurchaseBadOut> badOuts = purchaseBadOutDao.findByEnUUAndCode(enUU, badOut.getCode());
 			Enterprise vendor = enterpriseDao.findEnterpriseByUu(badOut.getVendUU());
 			//不良品出库单不存在,供应商UU号存在对应供应商
 			if(badOuts.size() == 0 && vendor != null) {
@@ -167,4 +168,72 @@ public class PurchaseProdInOutServiceImpl implements PurchaseProdInOutService{
 		return badOutItems;
 	}
 
+	@Override
+	public List<PurchaseAcceptItem> convertNonPostingProdInOuts(
+			List<PurchaseProdInOut> prodInOuts) {
+		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());
+				}
+			}
+			return acceptItems;
+		}
+		return null;
+	}
+
+	@Override
+	public List<PurchaseReturnItem> convertNonPostingReturns(
+			List<PurchaseProdInOut> prodInOuts) {
+		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());
+				}
+			}
+			return returnItems;
+		}
+		return null;
+	}
+
+	@Override
+	public List<PurchaseBadInItem> convertNonPostingBadIns(
+			List<PurchaseProdInOut> prodInOuts) {
+		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());
+				}
+			}
+			return badInItems;
+		}
+		return null;
+	}
+
+	@Override
+	public List<PurchaseBadOutItem> convertNonPostingBadOuts(
+			List<PurchaseProdInOut> prodInOuts) {
+		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());
+				}
+			}
+			return badOutItems;
+		}
+		return null;
+	}
+
 }

+ 1 - 1
src/main/java/com/uas/platform/b2b/erp/service/impl/PurchaseQuaMRBServiceImpl.java

@@ -48,7 +48,7 @@ public class PurchaseQuaMRBServiceImpl implements PurchaseQuaMRBService{
 			Enterprise vendor = enterpriseDao.findEnterpriseByUu(mrb.getVendUU());
 			//采购验收单不存在,供应商UU号存在对应供应商
 			if(purchaseMRBs.size() == 0 && vendor != null) {
-				List<PurchaseBadIn> badIns =  purchaseBadInDao.findPurchaseBadInByEnUUAndCode(enUU, mrb.getBadIn().getCode());
+				List<PurchaseBadIn> badIns =  purchaseBadInDao.findByEnUUAndCode(enUU, mrb.getBadIn().getCode());
 				if(badIns.size() > 0) {//存在对应的不良品入库单
 					mrb.setBadIn(badIns.get(0));
 					mrb.setBadInId(badIns.get(0).getId());

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

@@ -109,6 +109,12 @@ public class PurchaseAccept implements Serializable {
 	@OneToMany(mappedBy = "accept", cascade = { CascadeType.REFRESH, CascadeType.PERSIST, CascadeType.REMOVE, CascadeType.MERGE }, fetch = FetchType.EAGER)
 	@OrderBy("number")
 	private Set<PurchaseAcceptItem> acceptItems;
+	
+	/**
+	 * 已反过账(1 已反过账, 0|空 未反过账(默认未空))
+	 */
+	@Column(name = "pa_nonposting")
+	private Short nonPosting;
 
 	public Long getId() {
 		return id;
@@ -214,4 +220,12 @@ public class PurchaseAccept implements Serializable {
 		this.acceptItems = acceptItems;
 	}
 
+	public Short getNonPosting() {
+		return nonPosting;
+	}
+
+	public void setNonPosting(Short nonPosting) {
+		this.nonPosting = nonPosting;
+	}
+
 }

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

@@ -110,6 +110,12 @@ public class PurchaseBadIn implements Serializable {
 	@OrderBy("number")
 	private Set<PurchaseBadInItem> badInItems;
 
+	/**
+	 * 已反过账(1 已反过账, 0|空 未反过账(默认未空))
+	 */
+	@Column(name = "pa_nonposting")
+	private Short nonPosting;
+
 	public Long getId() {
 		return id;
 	}
@@ -214,4 +220,12 @@ public class PurchaseBadIn implements Serializable {
 		this.badInItems = badInItems;
 	}
 
+	public Short getNonPosting() {
+		return nonPosting;
+	}
+
+	public void setNonPosting(Short nonPosting) {
+		this.nonPosting = nonPosting;
+	}
+
 }

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

@@ -111,6 +111,12 @@ public class PurchaseBadOut implements Serializable {
 	@OrderBy("number")
 	private Set<PurchaseBadOutItem> badOutItems;
 
+	/**
+	 * 已反过账(1 已反过账, 0|空 未反过账(默认未空))
+	 */
+	@Column(name = "pa_nonposting")
+	private Short nonPosting;
+
 	public Long getId() {
 		return id;
 	}
@@ -215,4 +221,12 @@ public class PurchaseBadOut implements Serializable {
 		this.badOutItems = badOutItems;
 	}
 
+	public Short getNonPosting() {
+		return nonPosting;
+	}
+
+	public void setNonPosting(Short nonPosting) {
+		this.nonPosting = nonPosting;
+	}
+
 }

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

@@ -110,6 +110,12 @@ public class PurchaseReturn implements Serializable {
 	@OrderBy("number")
 	private Set<PurchaseReturnItem> returnItems;
 
+	/**
+	 * 已反过账(1 已反过账, 0|空 未反过账(默认未空))
+	 */
+	@Column(name = "pa_nonposting")
+	private Short nonPosting;
+
 	public Set<PurchaseReturnItem> getReturnItems() {
 		return returnItems;
 	}
@@ -214,5 +220,13 @@ public class PurchaseReturn implements Serializable {
 		this.date = date;
 	}
 
+	public Short getNonPosting() {
+		return nonPosting;
+	}
+
+	public void setNonPosting(Short nonPosting) {
+		this.nonPosting = nonPosting;
+	}
+
 
 }

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

@@ -18,11 +18,31 @@ public interface PurchaseAcceptService {
 	 */
 	public void save(List<PurchaseAcceptItem> acceptItems);
 	
+	/**
+	 * 批量反过账客户采购验收单
+	 * 
+	 * @param changeItems
+	 * @return
+	 */
+	public void nonPosting(List<PurchaseAcceptItem> acceptItems);
+	
+	/**
+	 * 获取需要上传(到卖方)的以反过账的验收单
+	 * @return
+	 */
+	public List<PurchaseAccept> getNonPosting();
+	
 	/**
 	 * 获取需要上传(到卖方)的未上传验收入库单
 	 * @return
 	 */
 	public List<PurchaseAccept> findNotUpload();
+
+	/**
+	 * 删除已上传(到卖方)的反过账验收单
+	 * @param idArray
+	 */
+	public void onNonPostingUploadSuccess(String[] idArray);
 	
 	/**
 	 * 上传好需要上传的客户采购验收单后修改单据的上传状态

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

@@ -31,6 +31,26 @@ public interface PurchaseBadInService {
 	 * @param idArray
 	 */
 	public void onUploadSuccess(String[] idArray);
+	
+	/**
+	 * 批量反过账客户不良品入库单
+	 * 
+	 * @param changeItems
+	 * @return
+	 */
+	public void nonPosting(List<PurchaseBadInItem> badInItems);
+	
+	/**
+	 * 获取需要上传(到卖方)的以反过账的不良品入库单
+	 * @return
+	 */
+	public List<PurchaseBadIn> getNonPosting();
+
+	/**
+	 * 删除已上传(到卖方)的反过账不良品入库单
+	 * @param idArray
+	 */
+	public void onNonPostingUploadSuccess(String[] idArray);
 
 	/**
 	 * 分页查找客户不良品入库单,包括明细

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

@@ -32,6 +32,27 @@ public interface PurchaseBadOutService {
 	 */
 	public void onUploadSuccess(String[] idArray);
 
+	/**
+	 * 批量反过账客户不良品出库单
+	 * 
+	 * @param changeItems
+	 * @return
+	 */
+	public void nonPosting(List<PurchaseBadOutItem> badOutItems);
+	
+	/**
+	 * 获取需要上传(到卖方)的以反过账的不良品出库单
+	 * @return
+	 */
+	public List<PurchaseBadOut> getNonPosting();
+
+	/**
+	 * 删除已上传(到卖方)的反过账不良品出库单
+	 * @param idArray
+	 */
+	public void onNonPostingUploadSuccess(String[] idArray);
+
+
 	/**
 	 * 分页查找客客户不良品出库单,包括明细
 	 * 

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

@@ -31,6 +31,28 @@ public interface PurchaseReturnService {
 	 * @param idArray
 	 */
 	public void onUploadSuccess(String[] idArray);
+	
+
+	/**
+	 * 批量反过账客户采购验退单
+	 * 
+	 * @param changeItems
+	 * @return
+	 */
+	public void nonPosting(List<PurchaseReturnItem> returnItems);
+	
+	/**
+	 * 获取需要上传(到卖方)的以反过账的采购验退单
+	 * @return
+	 */
+	public List<PurchaseReturn> getNonPosting();
+
+	/**
+	 * 删除已上传(到卖方)的反过账采购验退单
+	 * @param idArray
+	 */
+	public void onNonPostingUploadSuccess(String[] idArray);
+	
 
 	/**
 	 * 分页查找客户采购验收,包括明细

+ 46 - 1
src/main/java/com/uas/platform/b2b/service/impl/PurchaseAcceptServiceImpl.java

@@ -27,6 +27,7 @@ import com.uas.platform.b2b.model.PurchaseOrderItem;
 import com.uas.platform.b2b.service.PurchaseAcceptService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.XingePusher;
+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;
@@ -74,9 +75,36 @@ 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());
+				}
+				purchaseOrderItemDao.save(orderItem);
+			}
+		}
+	}
+
 	@Override
 	public List<PurchaseAccept> findNotUpload() {
-		return purchaseAcceptDao.findPurchaseAcceptByVendUUAndSendStatus(SystemSession.getUser().getEnterprise()
+		return purchaseAcceptDao.findByVendUUAndSendStatus(SystemSession.getUser().getEnterprise()
 				.getUu(), (short) Status.NOT_UPLOAD.value());
 	}
 
@@ -110,4 +138,21 @@ public class PurchaseAcceptServiceImpl implements PurchaseAcceptService {
 		return purchaseAcceptDao.findOne(id);
 	}
 
+	@Override
+	public List<PurchaseAccept> getNonPosting() {
+		return purchaseAcceptDao.findByVendUUAndSendStatusAndNonPosting(SystemSession.getUser().getEnterprise().getUu(), 
+				(short) Status.NOT_UPLOAD.value(), Constant.YES);
+	}
+
+	@Override
+	public void onNonPostingUploadSuccess(String[] idArray) {
+		for(String id : idArray) {
+			PurchaseAccept accept = purchaseAcceptDao.findOne(Long.parseLong(id));
+			if (accept != null) {
+				accept.setSendStatus((short) Status.DOWNLOADED.value());
+				purchaseAcceptDao.delete(accept);
+			}
+		}
+	}
+
 }

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

@@ -25,6 +25,7 @@ import com.uas.platform.b2b.model.PurchaseBadInItem;
 import com.uas.platform.b2b.service.PurchaseBadInService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.XingePusher;
+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;
@@ -61,7 +62,7 @@ public class PurchaseBadInServiceImpl implements PurchaseBadInService {
 
 	@Override
 	public List<PurchaseBadIn> findNotUpload() {
-		return purchaseBadInDao.findPurchaseBadInByVendUUAndSendStatus(SystemSession.getUser().getEnterprise().getUu(),
+		return purchaseBadInDao.findByVendUUAndSendStatus(SystemSession.getUser().getEnterprise().getUu(),
 				(short) Status.NOT_UPLOAD.value());
 	}
 
@@ -95,4 +96,37 @@ public class PurchaseBadInServiceImpl implements PurchaseBadInService {
 		return purchaseBadInDao.findOne(id);
 	}
 
+
+	@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);
+				badInItem.getBadIn().setSendStatus((short) Status.NOT_UPLOAD.value());
+				purchaseBadInItemDao.save(badInItem);
+			}
+		}
+	}
+
+	@Override
+	public List<PurchaseBadIn> getNonPosting() {
+		return purchaseBadInDao.findByVendUUAndSendStatusAndNonPosting(SystemSession.getUser().getEnterprise().getUu(), 
+				(short) Status.NOT_UPLOAD.value(), Constant.YES);
+	}
+
+	@Override
+	public void onNonPostingUploadSuccess(String[] idArray) {
+		for(String id : idArray) {
+			PurchaseBadIn badIn = purchaseBadInDao.findOne(Long.parseLong(id));
+			if (badIn != null) {
+				badIn.setSendStatus((short) Status.DOWNLOADED.value());
+				purchaseBadInDao.delete(badIn);
+			}
+		}
+	}
+
 }

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

@@ -25,6 +25,7 @@ import com.uas.platform.b2b.model.PurchaseBadOutItem;
 import com.uas.platform.b2b.service.PurchaseBadOutService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.XingePusher;
+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;
@@ -61,7 +62,7 @@ public class PurchaseBadOutServiceImpl implements PurchaseBadOutService {
 
 	@Override
 	public List<PurchaseBadOut> findNotUpload() {
-		return purchaseBadOutDao.findPurchaseBadOutByVendUUAndSendStatus(SystemSession.getUser().getEnterprise()
+		return purchaseBadOutDao.findByVendUUAndSendStatus(SystemSession.getUser().getEnterprise()
 				.getUu(), (short) Status.NOT_UPLOAD.value());
 	}
 
@@ -95,4 +96,36 @@ public class PurchaseBadOutServiceImpl implements PurchaseBadOutService {
 		return purchaseBadOutDao.findOne(id);
 	}
 
+	@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()) {
+				//已传输到供应商ERP,修改单据反过账状态
+				badOutItem.getBadOut().setNonPosting(Constant.YES);
+				badOutItem.getBadOut().setSendStatus((short) Status.NOT_UPLOAD.value());
+				purchaseBadOutItemDao.save(badOutItem);
+			}
+		}
+	}
+
+	@Override
+	public List<PurchaseBadOut> getNonPosting() {
+		return purchaseBadOutDao.findByVendUUAndSendStatusAndNonPosting(SystemSession.getUser().getEnterprise().getUu(), 
+				(short) Status.NOT_UPLOAD.value(), Constant.YES);
+	}
+
+	@Override
+	public void onNonPostingUploadSuccess(String[] idArray) {
+		for(String id : idArray) {
+			PurchaseBadOut badOut = purchaseBadOutDao.findOne(Long.parseLong(id));
+			if (badOut != null) {
+				badOut.setSendStatus((short) Status.DOWNLOADED.value());
+				purchaseBadOutDao.delete(badOut);
+			}
+		}
+	}
+
 }

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

@@ -27,6 +27,7 @@ import com.uas.platform.b2b.model.PurchaseReturnItem;
 import com.uas.platform.b2b.service.PurchaseReturnService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.XingePusher;
+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;
@@ -76,7 +77,7 @@ public class PurchaseReturnServiceImpl implements PurchaseReturnService {
 
 	@Override
 	public List<PurchaseReturn> findNotUpload() {
-		return purchaseReturnDao.findPurchaseReturnByVendUUAndSendStatus(SystemSession.getUser().getEnterprise()
+		return purchaseReturnDao.findByVendUUAndSendStatus(SystemSession.getUser().getEnterprise()
 				.getUu(), (short) Status.NOT_UPLOAD.value());
 	}
 
@@ -110,4 +111,49 @@ public class PurchaseReturnServiceImpl implements PurchaseReturnService {
 		return purchaseReturnDao.findOne(id);
 	}
 
+	@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);
+				returnItem.getPurchaseReturn().setSendStatus((short) Status.NOT_UPLOAD.value());
+				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());
+				}
+				purchaseOrderItemDao.save(orderItem);
+			}
+		}
+	}
+
+	@Override
+	public List<PurchaseReturn> getNonPosting() {
+		return purchaseReturnDao.findByVendUUAndSendStatusAndNonPosting(SystemSession.getUser().getEnterprise().getUu(), 
+				(short) Status.NOT_UPLOAD.value(), Constant.YES);
+	}
+
+	@Override
+	public void onNonPostingUploadSuccess(String[] idArray) {
+		for(String id : idArray) {
+			PurchaseReturn purchaseReturn = purchaseReturnDao.findOne(Long.parseLong(id));
+			if (purchaseReturn != null) {
+				purchaseReturn.setSendStatus((short) Status.DOWNLOADED.value());
+				purchaseReturnDao.delete(purchaseReturn);
+			}
+		}
+	}
+
+
 }