Joburgess 5 роки тому
батько
коміт
32284f85b1

+ 13 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/GoodsServiceImpl.java

@@ -114,6 +114,7 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods>  implement
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public void updateGoodsStatus(Integer goodsId, Integer status) {
 		if(Objects.isNull(goodsId)){
 			throw new BizException("请指定商品");
@@ -486,7 +487,11 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods>  implement
 					SellOrder sellOrder = new SellOrder();
 					sellOrder.setGoodsId(goodsNumMapEntry.getKey());
 					sellOrder.setNum(goodsNumMapEntry.getValue().intValue());
-					sellOrder.setStockType(goods.getStockType());
+					if(StockType.INTERNAL.equals(goods.getStockType())||(StockType.ALL.equals(goods.getStockType())&&AccountType.INTERNAL.equals(accountType))){
+						sellOrder.setStockType(StockType.INTERNAL);
+					}else if(StockType.EXTERNAL.equals(goods.getStockType())||(StockType.ALL.equals(goods.getStockType())&&AccountType.EXTERNAL.equals(accountType))){
+						sellOrder.setStockType(StockType.EXTERNAL);
+					}
 					sellOrder.setGoodsName(goods.getName());
 					sellOrder.setAccountType(accountType);
 					sellOrder.setBatchNo(batchNoGoodsIdMapEntry.getKey());
@@ -511,7 +516,11 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods>  implement
 				sellOrder.setParentGoodsId(goodsProcurement.getParentGoodsId());
 				sellOrder.setGoodsId(goodsProcurement.getGoodsId());
 				sellOrder.setNum(1);
-				sellOrder.setStockType(goods.getStockType());
+				if(StockType.INTERNAL.equals(goods.getStockType())||(StockType.ALL.equals(goods.getStockType())&&AccountType.INTERNAL.equals(accountType))){
+					sellOrder.setStockType(StockType.INTERNAL);
+				}else if(StockType.EXTERNAL.equals(goods.getStockType())||(StockType.ALL.equals(goods.getStockType())&&AccountType.EXTERNAL.equals(accountType))){
+					sellOrder.setStockType(StockType.EXTERNAL);
+				}
 				sellOrder.setGoodsName(goods.getName());
 				sellOrder.setAccountType(accountType);
 				sellOrder.setBatchNo(goodsProcurement.getBatchNo());
@@ -550,12 +559,12 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods>  implement
 		for (SellOrder sellOrder : sellOrders) {
 			Goods goods = goodsDao.get(sellOrder.getGoodsId());
 			GoodsProcurement goodsProcurement = goodsProcurementDao.getWithGoodsAndBatchNo(sellOrder.getGoodsId(), sellOrder.getBatchNo());
-			if(StockType.INTERNAL.equals(goods.getStockType())||(StockType.ALL.equals(goods.getStockType())&&AccountType.INTERNAL.equals(accountType))){
+			if(StockType.INTERNAL.equals(sellOrder.getStockType())){
 				goods.setStockCount(new AtomicInteger(goods.getStockCount()).addAndGet(sellOrder.getNum()));
 				if(Objects.nonNull(goodsProcurement)){
 					goodsProcurement.setStockSoldNum(new AtomicInteger(goodsProcurement.getStockSoldNum()).addAndGet(-sellOrder.getNum()));
 				}
-			}else if(StockType.EXTERNAL.equals(goods.getStockType())||(StockType.ALL.equals(goods.getStockType())&&AccountType.EXTERNAL.equals(accountType))){
+			}else if(StockType.EXTERNAL.equals(sellOrder.getStockType())){
 				goods.setTaxStockCount(new AtomicInteger(goods.getTaxStockCount()).addAndGet(sellOrder.getNum()));
 				if(Objects.nonNull(goodsProcurement)){
 					goodsProcurement.setTaxStockSoldNum(new AtomicInteger(goodsProcurement.getTaxStockSoldNum()).addAndGet(-sellOrder.getNum()));