|
@@ -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);
|