|  | @@ -6,6 +6,7 @@ import cn.hnthyy.thmz.mapper.his.yf.YfDivideMapper;
 | 
	
		
			
				|  |  |  import cn.hnthyy.thmz.mapper.his.yp.*;
 | 
	
		
			
				|  |  |  import cn.hnthyy.thmz.service.his.yf.YfDivideService;
 | 
	
		
			
				|  |  |  import cn.hnthyy.thmz.vo.YpBaseYfVo;
 | 
	
		
			
				|  |  | +import org.springframework.beans.BeanUtils;
 | 
	
		
			
				|  |  |  import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  |  import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  |  import org.springframework.transaction.annotation.Isolation;
 | 
	
	
		
			
				|  | @@ -104,8 +105,8 @@ public class YfDivideServiceImpl implements YfDivideService {
 | 
	
		
			
				|  |  |              ypInDetlYf.setAcctType("1");
 | 
	
		
			
				|  |  |              ypInDetlYf.setGroupOut(ypBaseYfVo.getGroupNo());
 | 
	
		
			
				|  |  |              ypInDetlYf.setGroupNo(ypBaseYfVo.getGroupNo());
 | 
	
		
			
				|  |  | -            ypInDetlYf.setCurrentStock(ypBaseYfVo.getAmount()+ypBaseYf.getStockAmount());
 | 
	
		
			
				|  |  | -            ypInDetlYf.setStockAmount(ypBaseYf.getStockAmount());
 | 
	
		
			
				|  |  | +            ypInDetlYf.setCurrentStock(ypBaseYfVo.getAmount()+(null == ypBaseYf?0:ypBaseYf.getStockAmount()));
 | 
	
		
			
				|  |  | +            ypInDetlYf.setStockAmount((null == ypBaseYf?0:ypBaseYf.getStockAmount()));
 | 
	
		
			
				|  |  |              ypInDetlYf.setSysDate(new Date());
 | 
	
		
			
				|  |  |              ypInDetlYfMapper.insertYpInDetlYf(ypInDetlYf);
 | 
	
		
			
				|  |  |              YpOutDetlYf ypOutDetlYf = new YpOutDetlYf();
 | 
	
	
		
			
				|  | @@ -138,14 +139,28 @@ public class YfDivideServiceImpl implements YfDivideService {
 | 
	
		
			
				|  |  |              ypOutDetlYf.setComment("分装出库");
 | 
	
		
			
				|  |  |              ypOutDetlYfMapper.insertYpOutDetlYf(ypOutDetlYf);
 | 
	
		
			
				|  |  |              YpBaseYf ypBaseYfNew = new YpBaseYf();
 | 
	
		
			
				|  |  | -            double stockAmount = ypBaseYf.getStockAmount() + ypBaseYfVo.getAmount();
 | 
	
		
			
				|  |  | -            ypBaseYfNew.setStockAmount(stockAmount);
 | 
	
		
			
				|  |  | -            ypBaseYfNew.setStockAmountVirtual(stockAmount);
 | 
	
		
			
				|  |  | -            ypBaseYfNew.setStockValue(ypZdDict.getPackRetprice().multiply(BigDecimal.valueOf(stockAmount)));
 | 
	
		
			
				|  |  | -            ypBaseYfNew.setChargeCode(ypBaseYfVo.getChargeCode());
 | 
	
		
			
				|  |  | -            ypBaseYfNew.setSerial(ypBaseYfVo.getSerial());
 | 
	
		
			
				|  |  | -            ypBaseYfNew.setGroupNo(ypBaseYfVo.getGroupNo());
 | 
	
		
			
				|  |  | -            ypBaseYfMapper.updateYpBaseYf(ypBaseYfNew);
 | 
	
		
			
				|  |  | +            if(null == ypBaseYf){
 | 
	
		
			
				|  |  | +                BeanUtils.copyProperties(ypBaseYfOld, ypBaseYfNew);
 | 
	
		
			
				|  |  | +                double stockAmount = ypInDetlYf.getCurrentStock();
 | 
	
		
			
				|  |  | +                ypBaseYfNew.setStockAmount(stockAmount);
 | 
	
		
			
				|  |  | +                ypBaseYfNew.setStockAmountVirtual(stockAmount);
 | 
	
		
			
				|  |  | +                ypBaseYfNew.setStockValue(ypZdDict.getPackRetprice().multiply(BigDecimal.valueOf(stockAmount)));
 | 
	
		
			
				|  |  | +                ypBaseYfNew.setChargeCode(ypBaseYfVo.getChargeCode());
 | 
	
		
			
				|  |  | +                // 新药拆零没有拆零包装的规格,这里是拆零包装的
 | 
	
		
			
				|  |  | +                ypBaseYfNew.setSerial("01");
 | 
	
		
			
				|  |  | +                ypBaseYfNew.setGroupNo(ypBaseYfVo.getGroupNo());
 | 
	
		
			
				|  |  | +                ypBaseYfNew.setLocation(ypBaseYfVo.getLocation());
 | 
	
		
			
				|  |  | +                ypBaseYfMapper.insertYpBaseYf(ypBaseYfNew);
 | 
	
		
			
				|  |  | +            }else{
 | 
	
		
			
				|  |  | +                double stockAmount = ypInDetlYf.getCurrentStock();
 | 
	
		
			
				|  |  | +                ypBaseYfNew.setStockAmount(stockAmount);
 | 
	
		
			
				|  |  | +                ypBaseYfNew.setStockAmountVirtual(stockAmount);
 | 
	
		
			
				|  |  | +                ypBaseYfNew.setStockValue(ypZdDict.getPackRetprice().multiply(BigDecimal.valueOf(stockAmount)));
 | 
	
		
			
				|  |  | +                ypBaseYfNew.setChargeCode(ypBaseYfVo.getChargeCode());
 | 
	
		
			
				|  |  | +                ypBaseYfNew.setSerial(ypBaseYfVo.getSerial());
 | 
	
		
			
				|  |  | +                ypBaseYfNew.setGroupNo(ypBaseYfVo.getGroupNo());
 | 
	
		
			
				|  |  | +                ypBaseYfMapper.updateYpBaseYf(ypBaseYfNew);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |              YpBaseYf ypBaseYfNewOld = new YpBaseYf();
 | 
	
		
			
				|  |  |              double stockAmountOld = ypBaseYfOld.getStockAmount() - ypBaseYfVo.getOldAmount();
 | 
	
		
			
				|  |  |              ypBaseYfNewOld.setStockAmount(stockAmountOld);
 |