yonge 3 tahun lalu
induk
melakukan
b1e158b415

+ 67 - 59
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SubjectChangeServiceImpl.java

@@ -594,38 +594,74 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
                 	studentPaymentOrderDetail.setPrice(BigDecimal.ZERO);
 	                studentPaymentOrderDetail.setUpdateTime(nowDate);
 	                studentPaymentOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
+	              
+	                //忽略的分部
+	        		List<Integer> ignoreOrganList = Arrays.asList(4, 55, 59);
+	        		
+	        		//查询商品收款账户配置
+	                String goodsSellReceiptMerNo = sysConfigDao.findConfigValue("goodsSellReceiptMerNo");
 	                
-	                //扣减库存
-					
-					BigDecimal totalGroupPurchaseAmount = BigDecimal.ZERO;
-					
-					BigDecimal groupPurchaseAmount = BigDecimal.ZERO;
-					
-					minuendStockGoodsIdList = new ArrayList<Integer>();
-					
-					// 是否是组合商品
-					if(StringUtils.isNotBlank(goods.getComplementGoodsIdList())){
-						List<Goods> goodsList = goodsService.getGoodsWithLocked(goods.getComplementGoodsIdList());
-						totalGroupPurchaseAmount =  totalGroupPurchaseAmount.add(goodsList.stream().map(Goods :: getGroupPurchasePrice).reduce(BigDecimal.ZERO,BigDecimal :: add));
+	                if(!ignoreOrganList.contains(subjectChange.getOrganId()) && StringUtils.isNotBlank(goodsSellReceiptMerNo)){
+	                	//扣减库存
+						
+						BigDecimal totalGroupPurchaseAmount = BigDecimal.ZERO;
+						
+						BigDecimal groupPurchaseAmount = BigDecimal.ZERO;
+						
+						minuendStockGoodsIdList = new ArrayList<Integer>();
 						
-						for(Goods subGoods : goodsList){
+						// 是否是组合商品
+						if(StringUtils.isNotBlank(goods.getComplementGoodsIdList())){
+							List<Goods> goodsList = goodsService.getGoodsWithLocked(goods.getComplementGoodsIdList());
+							totalGroupPurchaseAmount =  totalGroupPurchaseAmount.add(goodsList.stream().map(Goods :: getGroupPurchasePrice).reduce(BigDecimal.ZERO,BigDecimal :: add));
+							
+							for(Goods subGoods : goodsList){
+								
+								if(batchUpdateGoodsMap.get(subGoods.getId()) != null){
+									subGoods = batchUpdateGoodsMap.get(subGoods.getId());
+								}
+								//判断是否有内部库存
+								if(subGoods.getStockCount() > 0){
+									
+									groupPurchaseAmount = groupPurchaseAmount.add(subGoods.getGroupPurchasePrice());
+									subGoods.setStockCount(new AtomicInteger(subGoods.getStockCount()).decrementAndGet());
+									subGoods.setSellCount(new AtomicInteger(subGoods.getSellCount()).incrementAndGet());
+									subGoods.setUpdateTime(nowDate);
+									
+									batchUpdateGoodsMap.put(subGoods.getId(), subGoods);
+									
+									minuendStockGoodsIdList.add(subGoods.getId());
+									
+									goodsProcurement = goodsProcurementDao.getWithStockSurplusProcurement(subGoods.getId());
+									if(goodsProcurement != null){
+										if(goodsProcurementMap.get(goodsProcurement.getId()) != null){
+											goodsProcurement = goodsProcurementMap.get(goodsProcurement.getId());
+										}
+										goodsProcurement.setStockSoldNum(new AtomicInteger(goodsProcurement.getStockSoldNum()).incrementAndGet());
+										goodsProcurement.setUpdateTime(nowDate);
+										goodsProcurementMap.put(goodsProcurement.getId(), goodsProcurement);
+									}
+								}
+							}
+						}else{
+							totalGroupPurchaseAmount = totalGroupPurchaseAmount.add(goods.getGroupPurchasePrice());
 							
-							if(batchUpdateGoodsMap.get(subGoods.getId()) != null){
-								subGoods = batchUpdateGoodsMap.get(subGoods.getId());
+							if(batchUpdateGoodsMap.get(goods.getId()) != null){
+								goods = batchUpdateGoodsMap.get(goods.getId());
 							}
+							
 							//判断是否有内部库存
-							if(subGoods.getStockCount() > 0){
-								
-								groupPurchaseAmount = groupPurchaseAmount.add(subGoods.getGroupPurchasePrice());
-								subGoods.setStockCount(new AtomicInteger(subGoods.getStockCount()).decrementAndGet());
-								subGoods.setSellCount(new AtomicInteger(subGoods.getSellCount()).incrementAndGet());
-								subGoods.setUpdateTime(nowDate);
+							if(goods.getStockCount() > 0){
 								
-								batchUpdateGoodsMap.put(subGoods.getId(), subGoods);
+								groupPurchaseAmount = groupPurchaseAmount.add(goods.getGroupPurchasePrice());
+								goods.setStockCount(new AtomicInteger(goods.getStockCount()).decrementAndGet());
+								goods.setSellCount(new AtomicInteger(goods.getSellCount()).incrementAndGet());
+								goods.setUpdateTime(nowDate);
+								batchUpdateGoodsMap.put(goods.getId(), goods);
 								
-								minuendStockGoodsIdList.add(subGoods.getId());
+								minuendStockGoodsIdList.add(goods.getId());
 								
-								goodsProcurement = goodsProcurementDao.getWithStockSurplusProcurement(subGoods.getId());
+								goodsProcurement = goodsProcurementDao.getWithStockSurplusProcurement(goods.getId());
 								if(goodsProcurement != null){
 									if(goodsProcurementMap.get(goodsProcurement.getId()) != null){
 										goodsProcurement = goodsProcurementMap.get(goodsProcurement.getId());
@@ -636,44 +672,16 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
 								}
 							}
 						}
-					}else{
-						totalGroupPurchaseAmount = totalGroupPurchaseAmount.add(goods.getGroupPurchasePrice());
-						
-						if(batchUpdateGoodsMap.get(goods.getId()) != null){
-							goods = batchUpdateGoodsMap.get(goods.getId());
-						}
 						
-						//判断是否有内部库存
-						if(goods.getStockCount() > 0){
-							
-							groupPurchaseAmount = groupPurchaseAmount.add(goods.getGroupPurchasePrice());
-							goods.setStockCount(new AtomicInteger(goods.getStockCount()).decrementAndGet());
-							goods.setSellCount(new AtomicInteger(goods.getSellCount()).incrementAndGet());
-							goods.setUpdateTime(nowDate);
-							batchUpdateGoodsMap.put(goods.getId(), goods);
-							
-							minuendStockGoodsIdList.add(goods.getId());
-							
-							goodsProcurement = goodsProcurementDao.getWithStockSurplusProcurement(goods.getId());
-							if(goodsProcurement != null){
-								if(goodsProcurementMap.get(goodsProcurement.getId()) != null){
-									goodsProcurement = goodsProcurementMap.get(goodsProcurement.getId());
-								}
-								goodsProcurement.setStockSoldNum(new AtomicInteger(goodsProcurement.getStockSoldNum()).incrementAndGet());
-								goodsProcurement.setUpdateTime(nowDate);
-								goodsProcurementMap.put(goodsProcurement.getId(), goodsProcurement);
+						if (minuendStockGoodsIdList.size() > 0) {
+							studentPaymentOrderDetail.setIncomeItem(OrderDetailTypeEnum.CLOUD_TEACHER.name());
+							studentPaymentOrderDetail.setIncome(BigDecimal.ZERO);
+							studentPaymentOrderDetail.setBalanceIncome(BigDecimal.ZERO);
+							if(minuendStockGoodsIdList.size() > 0){
+								studentPaymentOrderDetail.setMinuendStockGoodsIdList(minuendStockGoodsIdList.stream().map(t -> t.toString()).collect(Collectors.joining(",")));
 							}
 						}
-					}
-					
-					if (minuendStockGoodsIdList.size() > 0) {
-						studentPaymentOrderDetail.setIncomeItem(OrderDetailTypeEnum.CLOUD_TEACHER.name());
-						studentPaymentOrderDetail.setIncome(BigDecimal.ZERO);
-						studentPaymentOrderDetail.setBalanceIncome(BigDecimal.ZERO);
-						if(minuendStockGoodsIdList.size() > 0){
-							studentPaymentOrderDetail.setMinuendStockGoodsIdList(minuendStockGoodsIdList.stream().map(t -> t.toString()).collect(Collectors.joining(",")));
-						}
-					}
+	                }
 	                
 	                studentPaymentOrderDetailList.add(studentPaymentOrderDetail);
 				}