Browse Source

验退单允许关联的采购单为空

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@2670 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
yingp 10 years ago
parent
commit
5cb29127ff

+ 68 - 79
src/main/java/com/uas/platform/b2b/erp/service/impl/PurchaseProdInOutServiceImpl.java

@@ -33,57 +33,56 @@ import com.uas.platform.b2b.model.PurchaseReturnItem;
 import com.uas.platform.b2b.support.SystemSession;
 
 @Service
-public class PurchaseProdInOutServiceImpl implements PurchaseProdInOutService{
+public class PurchaseProdInOutServiceImpl implements PurchaseProdInOutService {
 
 	@Autowired
 	private PurchaseOrderDao purchaseOrderDao;
-	
+
 	@Autowired
 	private PurchaseOrderItemDao purchaseOrderItemDao;
-	
+
 	@Autowired
 	private PurchaseAcceptDao purchaseAcceptDao;
-	
+
 	@Autowired
 	private PurchaseReturnDao purchaseReturnDao;
-	
+
 	@Autowired
 	private PurchaseReturnItemDao purchaseReturnItemDao;
-	
+
 	@Autowired
 	private PurchaseBadInDao purchaseBadInDao;
-	
+
 	@Autowired
 	private PurchaseBadInItemDao purchaseBadInItemDao;
 
 	@Autowired
 	private PurchaseBadOutDao purchaseBadOutDao;
-	
+
 	@Autowired
 	private PurchaseBadOutItemDao purchaseBadOutItemDao;
-	
+
 	@Autowired
 	private EnterpriseDao enterpriseDao;
-	
+
 	@Override
-	public List<PurchaseAcceptItem> convertProdInOuts(
-			List<PurchaseProdInOut> prodInOuts) {
+	public List<PurchaseAcceptItem> convertProdInOuts(List<PurchaseProdInOut> prodInOuts) {
 		List<PurchaseAcceptItem> acceptItems = new ArrayList<PurchaseAcceptItem>();
 		long enUU = SystemSession.getUser().getEnterprise().getUu();
-		for(PurchaseProdInOut prodInOut : prodInOuts) {
+		for (PurchaseProdInOut prodInOut : prodInOuts) {
 			PurchaseAccept accept = prodInOut.convent();
 			List<PurchaseAccept> accepts2 = purchaseAcceptDao.findByEnUUAndCode(enUU, accept.getCode());
 			Enterprise vendor = enterpriseDao.findEnterpriseByUu(accept.getVendUU());
-			//采购验收单不存在,供应商UU号存在对应供应商
-			if(accepts2.size() == 0 && vendor != null) {
-				for(Iterator<PurchaseAcceptItem> it = accept.getAcceptItems().iterator(); it.hasNext();) {//设置明细对应的采购单明细
+			// 采购验收单不存在,供应商UU号存在对应供应商
+			if (accepts2.size() == 0 && vendor != null) {
+				for (Iterator<PurchaseAcceptItem> it = accept.getAcceptItems().iterator(); it.hasNext();) {// 设置明细对应的采购单明细
 					PurchaseAcceptItem item = it.next();
-					List<PurchaseOrderItem> purchaseOrderItems = purchaseOrderItemDao.findByEnUUAndOrderCodeAndNumber(enUU, 
-							item.getOrderItem().getOrder().getCode(), item.getOrderItem().getNumber());
-					if(purchaseOrderItems.size() > 0) {//对应的采购单存在
-						item.setOrderItem(purchaseOrderItems.get(0));//对应的采购单明细set进去
+					List<PurchaseOrderItem> purchaseOrderItems = purchaseOrderItemDao.findByEnUUAndOrderCodeAndNumber(enUU, item
+							.getOrderItem().getOrder().getCode(), item.getOrderItem().getNumber());
+					if (purchaseOrderItems.size() > 0) {// 对应的采购单存在
+						item.setOrderItem(purchaseOrderItems.get(0));// 对应的采购单明细set进去
 						item.setOrderItemId(purchaseOrderItems.get(0).getId());
-						item.setAccept(accept);//设置主记录
+						item.setAccept(accept);// 设置主记录
 						acceptItems.add(item);
 					} else {
 						it.remove();
@@ -95,53 +94,48 @@ public class PurchaseProdInOutServiceImpl implements PurchaseProdInOutService{
 	}
 
 	@Override
-	public List<PurchaseReturnItem> convertReturns(
-			List<PurchaseProdInOut> prodInOuts) {
+	public List<PurchaseReturnItem> convertReturns(List<PurchaseProdInOut> prodInOuts) {
 		List<PurchaseReturnItem> returnItems = new ArrayList<PurchaseReturnItem>();
 		long enUU = SystemSession.getUser().getEnterprise().getUu();
-		for(PurchaseProdInOut prodInOut : prodInOuts) {
+		for (PurchaseProdInOut prodInOut : prodInOuts) {
 			PurchaseReturn returnn = prodInOut.conventToReturn();
 			List<PurchaseReturn> returns2 = purchaseReturnDao.findByEnUUAndCode(enUU, returnn.getCode());
 			Enterprise vendor = enterpriseDao.findEnterpriseByUu(returnn.getVendUU());
-			//采购验收单不存在,供应商UU号存在对应供应商
-			if(returns2.size() == 0 && vendor != null) {
-				for(Iterator<PurchaseReturnItem> it = returnn.getReturnItems().iterator(); it.hasNext();) {//设置明细对应的采购单明细
-					PurchaseReturnItem returnItem = it.next();
-					List<PurchaseOrderItem> purchaseOrderItems = purchaseOrderItemDao.findByEnUUAndOrderCodeAndNumber(enUU, 
-							returnItem.getOrderItem().getOrder().getCode(), returnItem.getOrderItem().getNumber());
-					if(purchaseOrderItems.size() > 0) {//对应的采购单存在
-						returnItem.setOrderItem(purchaseOrderItems.get(0));//对应的采购单明细set进去
+			// 采购验收单不存在,供应商UU号存在对应供应商
+			if (returns2.size() == 0 && vendor != null) {
+				for (PurchaseReturnItem returnItem : returnn.getReturnItems()) {// 设置明细对应的采购单明细
+					List<PurchaseOrderItem> purchaseOrderItems = purchaseOrderItemDao.findByEnUUAndOrderCodeAndNumber(enUU, returnItem
+							.getOrderItem().getOrder().getCode(), returnItem.getOrderItem().getNumber());
+					if (purchaseOrderItems.size() > 0) {// 对应的采购单存在
+						returnItem.setOrderItem(purchaseOrderItems.get(0));// 对应的采购单明细set进去
 						returnItem.setOrderItemId(purchaseOrderItems.get(0).getId());
-						returnItem.setPurchaseReturn(returnn);//设置主记录
-						returnItems.add(returnItem);
-					} else {
-						it.remove();
+						returnItem.setPurchaseReturn(returnn);// 设置主记录
 					}
+					returnItems.add(returnItem);
 				}
 			}
 		}
 		return returnItems;
 	}
-	
+
 	@Override
-	public List<PurchaseBadInItem> convertBadIns(
-			List<PurchaseProdInOut> prodInOuts) {
+	public List<PurchaseBadInItem> convertBadIns(List<PurchaseProdInOut> prodInOuts) {
 		List<PurchaseBadInItem> badInItems = new ArrayList<PurchaseBadInItem>();
 		long enUU = SystemSession.getUser().getEnterprise().getUu();
-		for(PurchaseProdInOut prodInOut : prodInOuts) {
+		for (PurchaseProdInOut prodInOut : prodInOuts) {
 			PurchaseBadIn badIn = prodInOut.conventToBadIn();
 			List<PurchaseBadIn> badIns = purchaseBadInDao.findByEnUUAndCode(enUU, badIn.getCode());
 			Enterprise vendor = enterpriseDao.findEnterpriseByUu(badIn.getVendUU());
-			//采购验收单不存在,供应商UU号存在对应供应商
-			if(badIns.size() == 0 && vendor != null) {
-				for(Iterator<PurchaseBadInItem> it = badIn.getBadInItems().iterator(); it.hasNext();) {//设置明细对应的采购单明细
+			// 采购验收单不存在,供应商UU号存在对应供应商
+			if (badIns.size() == 0 && vendor != null) {
+				for (Iterator<PurchaseBadInItem> it = badIn.getBadInItems().iterator(); it.hasNext();) {// 设置明细对应的采购单明细
 					PurchaseBadInItem badInItem = it.next();
-					List<PurchaseOrderItem> purchaseOrderItems = purchaseOrderItemDao.findByEnUUAndOrderCodeAndNumber(enUU, 
-							badInItem.getOrderItem().getOrder().getCode(), badInItem.getOrderItem().getNumber());
-					if(purchaseOrderItems.size() > 0) {//对应的采购单存在
-						badInItem.setOrderItem(purchaseOrderItems.get(0));//对应的采购单明细set进去
+					List<PurchaseOrderItem> purchaseOrderItems = purchaseOrderItemDao.findByEnUUAndOrderCodeAndNumber(enUU, badInItem
+							.getOrderItem().getOrder().getCode(), badInItem.getOrderItem().getNumber());
+					if (purchaseOrderItems.size() > 0) {// 对应的采购单存在
+						badInItem.setOrderItem(purchaseOrderItems.get(0));// 对应的采购单明细set进去
 						badInItem.setOrderItemId(purchaseOrderItems.get(0).getId());
-						badInItem.setBadIn(badIn);//设置主记录
+						badInItem.setBadIn(badIn);// 设置主记录
 						badInItems.add(badInItem);
 					} else {
 						it.remove();
@@ -153,24 +147,23 @@ public class PurchaseProdInOutServiceImpl implements PurchaseProdInOutService{
 	}
 
 	@Override
-	public List<PurchaseBadOutItem> convertBadOuts(
-			List<PurchaseProdInOut> prodInOuts) {
+	public List<PurchaseBadOutItem> convertBadOuts(List<PurchaseProdInOut> prodInOuts) {
 		List<PurchaseBadOutItem> badOutItems = new ArrayList<PurchaseBadOutItem>();
 		long enUU = SystemSession.getUser().getEnterprise().getUu();
-		for(PurchaseProdInOut prodInOut : prodInOuts) {
+		for (PurchaseProdInOut prodInOut : prodInOuts) {
 			PurchaseBadOut badOut = prodInOut.conventToBadOut();
 			List<PurchaseBadOut> badOuts = purchaseBadOutDao.findByEnUUAndCode(enUU, badOut.getCode());
 			Enterprise vendor = enterpriseDao.findEnterpriseByUu(badOut.getVendUU());
-			//不良品出库单不存在,供应商UU号存在对应供应商
-			if(badOuts.size() == 0 && vendor != null) {
-				for(Iterator<PurchaseBadOutItem> it = badOut.getBadOutItems().iterator(); it.hasNext();) {//设置明细对应的采购单明细
+			// 不良品出库单不存在,供应商UU号存在对应供应商
+			if (badOuts.size() == 0 && vendor != null) {
+				for (Iterator<PurchaseBadOutItem> it = badOut.getBadOutItems().iterator(); it.hasNext();) {// 设置明细对应的采购单明细
 					PurchaseBadOutItem badOutItem = it.next();
-					List<PurchaseOrderItem> purchaseOrderItems = purchaseOrderItemDao.findByEnUUAndOrderCodeAndNumber(enUU, 
-							badOutItem.getOrderItem().getOrder().getCode(), badOutItem.getOrderItem().getNumber());
-					if(purchaseOrderItems.size() > 0) {//对应的采购单存在
-						badOutItem.setOrderItem(purchaseOrderItems.get(0));//对应的采购单明细set进去
+					List<PurchaseOrderItem> purchaseOrderItems = purchaseOrderItemDao.findByEnUUAndOrderCodeAndNumber(enUU, badOutItem
+							.getOrderItem().getOrder().getCode(), badOutItem.getOrderItem().getNumber());
+					if (purchaseOrderItems.size() > 0) {// 对应的采购单存在
+						badOutItem.setOrderItem(purchaseOrderItems.get(0));// 对应的采购单明细set进去
 						badOutItem.setOrderItemId(purchaseOrderItems.get(0).getId());
-						badOutItem.setBadOut(badOut);//设置主记录
+						badOutItem.setBadOut(badOut);// 设置主记录
 						badOutItems.add(badOutItem);
 					} else {
 						it.remove();
@@ -182,14 +175,13 @@ public class PurchaseProdInOutServiceImpl implements PurchaseProdInOutService{
 	}
 
 	@Override
-	public List<PurchaseAccept> convertNonPostingProdInOuts(
-			List<PurchaseProdInOut> prodInOuts) {
+	public List<PurchaseAccept> convertNonPostingProdInOuts(List<PurchaseProdInOut> prodInOuts) {
 		List<PurchaseAccept> accepts = new ArrayList<PurchaseAccept>();
-		if( ! CollectionUtils.isEmpty(prodInOuts)) {
+		if (!CollectionUtils.isEmpty(prodInOuts)) {
 			Long enUU = SystemSession.getUser().getEnterprise().getUu();
-			for(PurchaseProdInOut prodInOut : prodInOuts) {
+			for (PurchaseProdInOut prodInOut : prodInOuts) {
 				List<PurchaseAccept> existAccepts = purchaseAcceptDao.findByEnUUAndCode(enUU, prodInOut.getPi_inoutno());
-				if(existAccepts.size() > 0) {
+				if (existAccepts.size() > 0) {
 					accepts.add(existAccepts.get(0));
 				}
 			}
@@ -198,14 +190,13 @@ public class PurchaseProdInOutServiceImpl implements PurchaseProdInOutService{
 	}
 
 	@Override
-	public List<PurchaseReturn> convertNonPostingReturns(
-			List<PurchaseProdInOut> prodInOuts) {
+	public List<PurchaseReturn> convertNonPostingReturns(List<PurchaseProdInOut> prodInOuts) {
 		List<PurchaseReturn> returns = new ArrayList<PurchaseReturn>();
-		if( ! CollectionUtils.isEmpty(prodInOuts)) {
+		if (!CollectionUtils.isEmpty(prodInOuts)) {
 			Long enUU = SystemSession.getUser().getEnterprise().getUu();
-			for(PurchaseProdInOut prodInOut : prodInOuts) {
+			for (PurchaseProdInOut prodInOut : prodInOuts) {
 				List<PurchaseReturn> existReturns = purchaseReturnDao.findByEnUUAndCode(enUU, prodInOut.getPi_inoutno());
-				if(existReturns.size() > 0) {
+				if (existReturns.size() > 0) {
 					returns.add(existReturns.get(0));
 				}
 			}
@@ -214,14 +205,13 @@ public class PurchaseProdInOutServiceImpl implements PurchaseProdInOutService{
 	}
 
 	@Override
-	public List<PurchaseBadIn> convertNonPostingBadIns(
-			List<PurchaseProdInOut> prodInOuts) {
+	public List<PurchaseBadIn> convertNonPostingBadIns(List<PurchaseProdInOut> prodInOuts) {
 		List<PurchaseBadIn> badIns = new ArrayList<PurchaseBadIn>();
-		if( ! CollectionUtils.isEmpty(prodInOuts)) {
+		if (!CollectionUtils.isEmpty(prodInOuts)) {
 			Long enUU = SystemSession.getUser().getEnterprise().getUu();
-			for(PurchaseProdInOut prodInOut : prodInOuts) {
+			for (PurchaseProdInOut prodInOut : prodInOuts) {
 				List<PurchaseBadIn> existBadIns = purchaseBadInDao.findByEnUUAndCode(enUU, prodInOut.getPi_inoutno());
-				if(existBadIns.size() > 0) {
+				if (existBadIns.size() > 0) {
 					badIns.add(existBadIns.get(0));
 				}
 			}
@@ -230,14 +220,13 @@ public class PurchaseProdInOutServiceImpl implements PurchaseProdInOutService{
 	}
 
 	@Override
-	public List<PurchaseBadOut> convertNonPostingBadOuts(
-			List<PurchaseProdInOut> prodInOuts) {
+	public List<PurchaseBadOut> convertNonPostingBadOuts(List<PurchaseProdInOut> prodInOuts) {
 		List<PurchaseBadOut> badOuts = new ArrayList<PurchaseBadOut>();
-		if( ! CollectionUtils.isEmpty(prodInOuts)) {
+		if (!CollectionUtils.isEmpty(prodInOuts)) {
 			Long enUU = SystemSession.getUser().getEnterprise().getUu();
-			for(PurchaseProdInOut prodInOut : prodInOuts) {
+			for (PurchaseProdInOut prodInOut : prodInOuts) {
 				List<PurchaseBadOut> existBadOuts = purchaseBadOutDao.findByEnUUAndCode(enUU, prodInOut.getPi_inoutno());
-				if(existBadOuts.size() > 0) {
+				if (existBadOuts.size() > 0) {
 					badOuts.add(existBadOuts.get(0));
 				}
 			}

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

@@ -71,8 +71,8 @@ public class PurchaseReturnItem {
 	/**
 	 * 采购订单明细
 	 */
-	@OneToOne(cascade = { CascadeType.REFRESH })
-	@JoinColumn(name = "pri_pdid", insertable = false, updatable = false)
+	@OneToOne(optional = true, cascade = { CascadeType.REFRESH })
+	@JoinColumn(name = "pri_pdid", insertable = false, updatable = false, nullable = true)
 	private PurchaseOrderItem orderItem;
 
 	@Column(name = "pri_pdid")