From cf6b965a86065a537a40c74f67e88a04447d2582 Mon Sep 17 00:00:00 2001
From: 李宇 <986321569@qq.com>
Date: 星期一, 12 七月 2021 18:00:38 +0800
Subject: [PATCH] 修改导入申购

---
 src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java |  368 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 348 insertions(+), 20 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java
index 9086784..a37acb1 100644
--- a/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java
@@ -7,13 +7,16 @@
 import javax.annotation.Resource;
 
 import com.nanometer.smartlab.dao.OpeApplyDao;
+import com.nanometer.smartlab.dao.OpeReagentStatusDao;
 import com.nanometer.smartlab.entity.*;
+import com.nanometer.smartlab.entity.enumtype.ValidFlag;
 import com.nanometer.smartlab.exception.AlarmCode;
 import com.nanometer.smartlab.exception.AlarmException;
 import com.nanometer.smartlab.util.IDUtils;
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.dao.DataAccessException;
 import org.springframework.dao.DataIntegrityViolationException;
 import org.springframework.dao.DuplicateKeyException;
@@ -44,16 +47,19 @@
 	@Resource
 	private OpeReagentStatusService opeReagentStatusService;
 
+	@Lazy
     @Resource
     private OpeUseFlowService opeUseFlowService;
-    @Resource
-    private OpeWarehouseReserveService opeWarehouseReserveService;
 
     @Resource(name="baseMetaDao")
     private BaseMetaDao baseMetaDao;
 
     @Resource(name="opeApplyDao")
 	private OpeApplyDao opeApplyDao;
+	@Resource
+	private OpeReagentStatusDao opeReagentStatusDao;
+	@Resource
+	private OpeLaboratoryReserveService opeLaboratoryReserveService;
 
 	@Transactional(propagation = Propagation.REQUIRED)
 	public List<OpeWarehouseReserve> getOpeWarehouseReserveList(String reagentId, String supplierId, Integer first,
@@ -88,13 +94,15 @@
 
 	@Transactional(propagation = Propagation.REQUIRED)
 	public List<OpeWarehouseReserve> getOpeWarehouseReserveListByName(String reagentId, String supplierId, Integer first,
-			Integer pageSize) {
+			Integer pageSize,String productSn,String warehouseName) {
 		try {
 			Map<String, Object> params = new HashMap<String, Object>();
 			params.put("reagentName", reagentId);
 			params.put("supplierId", supplierId);
 			params.put("first", first);
 			params.put("pageSize", pageSize);
+			params.put("productSn", productSn);
+			params.put("warehouseName", warehouseName);
 			return this.opeWarehouseReserveDao.getOpeWarehouseReserveList(params);
 		} catch (DataAccessException e) {
 			logger.error(e.getMessage(), e);
@@ -104,11 +112,13 @@
 	}
 
 	@Transactional(propagation = Propagation.REQUIRED)
-	public int getOpeWarehouseReserveTotalCountByName(String reagentId, String supplierId) {
+	public int getOpeWarehouseReserveTotalCountByName(String reagentId, String supplierId,String productSn,String warehouseName) {
 		try {
 			Map<String, Object> params = new HashMap<String, Object>();
 			params.put("reagentName", reagentId);
 			params.put("supplierId", supplierId);
+			params.put("productSn", productSn);
+			params.put("warehouseName", warehouseName);
 			return this.opeWarehouseReserveDao.getOpeWarehouseReserveTotalCount(params);
 		} catch (DataAccessException e) {
 			logger.error(e.getMessage(), e);
@@ -162,6 +172,17 @@
 					MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), e);
 		}
 	}
+
+	@Override
+	public List<OpeWarehouseReserve> getOpeWarehouseReserveList(String reagentId, String articleNumber,String warehouseId) {
+		Map<String, String> params = new HashMap<>();
+		params.put("reagentId", reagentId);
+		params.put("warehouseId", warehouseId);
+		params.put("articleNumber", articleNumber);
+
+		return this.opeWarehouseReserveDao.getOpeWarehouseReserveList2(params);
+	}
+
 	@Transactional(propagation = Propagation.REQUIRED)
 	public OpeWarehouseReserve insertOpeWarehouseReserve(OpeWarehouseReserve opeWarehouseReserve) {
 		try {
@@ -184,7 +205,7 @@
 		}
 	}
 
-	@Transactional(propagation = Propagation.REQUIRED)
+	@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
 	public boolean updateOpeWarehouseReserve(OpeWarehouseReserve opeWarehouseReserve) {
 		try {
 			int row = this.opeWarehouseReserveDao.updateOpeWarehouseReserve(opeWarehouseReserve);
@@ -204,21 +225,23 @@
 		}
 	}
 
-	@Transactional(propagation = Propagation.REQUIRED)
-	public void claimForPerson(List<OpeApplyReserve> selectedListForPerson,String userId,String projectNum){
+	@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
+	public void claimForPerson(List<OpeApplyReserve> selectedListForPerson,String userId,String projectNum,String laboratoryId,String laboratoryContainerId){
 		try{
 			for(OpeApplyReserve app:selectedListForPerson){
 				List<String> reagentCodes = app.getReagentCode();
 				if (reagentCodes != null && reagentCodes.size() > 0) {
-					List<OpeReagentStatus> ss=new ArrayList<>();
-					for (String opeReagentStatusId : reagentCodes) {
-						OpeReagentStatus opeReagentStatus = this.opeReagentStatusService.getOpeReagentStatus(opeReagentStatusId);
-						opeReagentStatus.setUserId(userId);
-						opeReagentStatus.setProjectNum(projectNum);
-						//boolean flag = this.opeReagentStatusService.updateReagentStatus(opeReagentStatus);
-						this.opeReagentStatusService.updateReagentStatus(opeReagentStatus);
-						ss.add(opeReagentStatus);
-					}
+					this.opeReagentStatusService.updateReagentStatus3(reagentCodes,userId,projectNum,laboratoryId,laboratoryContainerId);
+
+					//更新是现实库存
+					OpeLaboratoryReserve lr=new OpeLaboratoryReserve();
+					lr.setReagentId(app.getReagent().getId());
+					lr.setHouseId(laboratoryId);
+					lr.setContainerId(laboratoryContainerId);
+					lr.setReserve(app.getSelectNum());
+					lr.setUserId(userId);
+					lr.setValidFlag(ValidFlag.VALID);
+					this.opeLaboratoryReserveService.insert(lr);
 					/*HashSet<String> set=new HashSet<>();//存放批号
 					for(int i=0;i<ss.size();i++){
 						set.add(ss.get(i).getArticleNumber());
@@ -260,6 +283,9 @@
 			logger.error(ex.getMessage(), ex);
 			throw new BusinessException(ExceptionEnumCode.DB_ERR,
 					MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), ex);
+		}catch(Exception e){
+			e.printStackTrace();
+			throw new RuntimeException(e);
 		}
 	}
 
@@ -325,7 +351,7 @@
 			for (int i = 0; i < len; i++) {
 				temp += "0";
 			}
-			for (BigInteger i = startReagentCode; i.compareTo(endReagentCode) < 1; i = i.add(BigInteger.ONE)) {
+ 			for (BigInteger i = startReagentCode; i.compareTo(endReagentCode) < 1; i = i.add(BigInteger.ONE)) {
 				reagentCode = temp + String.valueOf(i);
 				if (this.opeReagentStatusService.isOpeReagentStatusExist(reagentCode)) {//条码存在
 					//throw new BusinessException(ExceptionEnumCode.REAGENT_CODE_EXIST, "入库试剂:" + opeApply.getReagent().getName() + "的试剂条形码[" + reagentCode + "]已存在。");
@@ -417,6 +443,135 @@
 		}
 	}
 
+	public void reagentDStore4(List<OpeApply> reagentDStoreList, String loginUserId){
+		if (reagentDStoreList == null) {
+			return;
+		}
+		OpeReagentStatus opeReagentStatus = null;
+		for (OpeApply opeApply : reagentDStoreList) {
+			List<String> codeList = opeApply.getReagentCodeList();
+			for (String reagentCode:codeList) {
+				if (this.opeReagentStatusService.isOpeReagentStatusExist(reagentCode)) {//条码存在
+					//throw new BusinessException(ExceptionEnumCode.REAGENT_CODE_EXIST, "入库试剂:" + opeApply.getReagent().getName() + "的试剂条形码[" + reagentCode + "]已存在。");
+					// 试剂最新状态update
+					opeReagentStatus=this.opeReagentStatusService.getOpeReagentStatusByReagentCode(reagentCode);
+					//opeReagentStatus = new OpeReagentStatus();
+					//opeReagentStatus.setId(id);
+					//opeReagentStatus.setReagentId(opeApply.getReagent().getId());
+					opeReagentStatus.setArticleNumber(opeApply.getArticleNumber());
+					opeReagentStatus.setReagentCode(reagentCode);
+					opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER);
+					opeReagentStatus.setHouseId(opeApply.getHouseId());
+					opeReagentStatus.setContainerId(opeApply.getContainerId());
+					opeReagentStatus.setUserId(loginUserId);
+					//opeReagentStatus.setPlace(opeApply.getPlaceId());
+					//opeReagentStatus.setRemainder(opeApply.getReagent().getMainMetering()!=null?(new BigDecimal(opeApply.getReagent().getMainMetering())):new BigDecimal(0));
+					//opeReagentStatus.setStoreType(StoreType.DIRECTSTORE);
+					this.opeReagentStatusService.updateReagentStatus2(opeReagentStatus);
+
+					// 试剂使用情况领用insert
+					/*OpeUseFlow ouf=new OpeUseFlow();
+					ouf.setReagentCode(opeReagentStatus.getReagentCode());
+					ouf.setStatus(opeReagentStatus.getStatus());
+					ouf.setHouseId(opeReagentStatus.getHouseId());
+					ouf.setContainerId(opeReagentStatus.getContainerId());
+					ouf.setUserId(opeReagentStatus.getUserId());
+					ouf.setPlace(opeReagentStatus.getPlace());
+					ouf.setRemainder(opeApply.getReagent().getMainMetering()!=null?(new BigDecimal(opeApply.getReagent().getMainMetering())):new BigDecimal(0));
+					ouf.setStoreType(StoreType.DIRECTSTORE);
+
+					Map<String, String> metaMap2 = new HashMap<>();
+					metaMap2.put("groupId", "operate_status");
+					metaMap2.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEOUT.getKey()));
+					List<BaseMeta> baseMetaList2 = baseMetaDao.getBaseMetaList(metaMap2);
+					ouf.setOperateState(baseMetaList2.get(0).getId());
+					this.opeUseFlowService.insertOpeUseFlow(ouf);*/
+				}else{//条码不存在
+					// 试剂最新状态insert
+					opeReagentStatus = new OpeReagentStatus();
+					opeReagentStatus.setReagentId(opeApply.getReagent().getId());
+					opeReagentStatus.setArticleNumber(opeApply.getArticleNumber());
+					opeReagentStatus.setReagentCode(reagentCode);
+					opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER);
+					opeReagentStatus.setHouseId(opeApply.getHouseId());
+					opeReagentStatus.setContainerId(opeApply.getContainerId());
+					opeReagentStatus.setUserId(loginUserId);
+					//opeReagentStatus.setPlace(opeApply.getPlaceId());
+					//opeReagentStatus.setRemainder(opeApply.getReagent().getMainMetering()!=null?(new BigDecimal(opeApply.getReagent().getMainMetering())):new BigDecimal(0));
+					opeReagentStatus.setStoreType(StoreType.DIRECTSTORE);
+					this.opeReagentStatusService.insertOpeReagentStatus(opeReagentStatus);
+
+
+					// 试剂使用情况领用insert
+					OpeUseFlow ouf=new OpeUseFlow();
+					ouf.setReagentCode(opeReagentStatus.getReagentCode());
+					ouf.setStatus(opeReagentStatus.getStatus());
+					ouf.setHouseId(opeReagentStatus.getHouseId());
+					ouf.setContainerId(opeReagentStatus.getContainerId());
+					ouf.setUserId(opeReagentStatus.getUserId());
+					ouf.setPlace(opeReagentStatus.getPlace());
+					ouf.setRemainder(opeApply.getReagent().getMainMetering()!=null?opeApply.getReagent().getMainMetering():new BigDecimal(0));
+					ouf.setStoreType(StoreType.DIRECTSTORE);
+
+					Map<String, String> metaMap2 = new HashMap<>();
+					metaMap2.put("groupId", "operate_status");
+					metaMap2.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEOUT.getKey()));
+					List<BaseMeta> baseMetaList2 = baseMetaDao.getBaseMetaList(metaMap2);
+					ouf.setOperateState(baseMetaList2.get(0).getId());
+					this.opeUseFlowService.insertOpeUseFlow(ouf);
+				}
+			}
+
+		}
+	}
+	public void reagentDStore3(List<OpeApply> reagentDStoreList, String loginUserId){
+		if (reagentDStoreList == null) {
+			return;
+		}
+		for (OpeApply opeApply : reagentDStoreList) {
+
+			for (String reagentCode:opeApply.getReagentCodeList()) {
+				if (this.opeReagentStatusService.isOpeReagentStatusExist(reagentCode)) {
+					//条码存在
+					throw new BusinessException(ExceptionEnumCode.REAGENT_CODE_EXIST, "入库试剂:" + opeApply.getReagent().getName() + "的试剂条形码[" + reagentCode + "]已存在。");
+
+				}else{
+					//条码不存在
+					// 试剂状态insert
+					OpeReagentStatus opeReagentStatus = new OpeReagentStatus();
+					opeReagentStatus.setReagentId(opeApply.getReagent().getId());
+					opeReagentStatus.setArticleNumber(opeApply.getArticleNumber());
+					opeReagentStatus.setReagentCode(reagentCode);
+					opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER);
+					opeReagentStatus.setHouseId(opeApply.getHouseId());
+					opeReagentStatus.setContainerId(opeApply.getContainerId());
+					opeReagentStatus.setUserId(loginUserId);
+					opeReagentStatus.setStoreType(StoreType.DIRECTSTORE);
+					this.opeReagentStatusService.insertOpeReagentStatus(opeReagentStatus);
+
+
+					// 试剂使用情况领用insert
+					OpeUseFlow ouf=new OpeUseFlow();
+					ouf.setReagentCode(opeReagentStatus.getReagentCode());
+					ouf.setStatus(opeReagentStatus.getStatus());
+					ouf.setHouseId(opeReagentStatus.getHouseId());
+					ouf.setContainerId(opeReagentStatus.getContainerId());
+					ouf.setUserId(opeReagentStatus.getUserId());
+					ouf.setPlace(opeReagentStatus.getPlace());
+					ouf.setRemainder(opeApply.getReagent().getMainMetering()!=null?opeApply.getReagent().getMainMetering():new BigDecimal(0));
+					ouf.setStoreType(StoreType.DIRECTSTORE);
+
+					Map<String, String> metaMap2 = new HashMap<>();
+					metaMap2.put("groupId", "operate_status");
+					metaMap2.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEOUT.getKey()));
+					List<BaseMeta> baseMetaList2 = baseMetaDao.getBaseMetaList(metaMap2);
+					ouf.setOperateState(baseMetaList2.get(0).getId());
+					this.opeUseFlowService.insertOpeUseFlow(ouf);
+				}
+			}
+
+		}
+	}
 	@Override
 	public List<OpeWarehouseReserve> selectByReId(String id) {
 		return this.opeWarehouseReserveDao.selectByReId(id);
@@ -428,6 +583,177 @@
 		params.put("newReId",newReId);
 		params.put("oldReId",oldReId);
 		this.opeWarehouseReserveDao.updateByReId(params);
+	}
+
+    @Override
+	@Transactional
+    public void insertOpeWarehouseReserve2(OpeApplyReserve opeApplyReserve, OpeOrder oo,String consigneeId) {
+
+		OpeWarehouseReserve ope = this.getOpeWarehouseReserve2(opeApplyReserve.getReagent().getId(), opeApplyReserve.getArticleNumber(),opeApplyReserve.getHouseId());
+		if (ope == null) {
+
+			ope = new OpeWarehouseReserve();
+			//库存为到货数量
+			ope.setReserve(opeApplyReserve.getArrivalNum());
+			//仓库
+			ope.setWarehouseId(opeApplyReserve.getHouseId());
+			//仓库的货柜号
+			ope.setContainerId(opeApplyReserve.getContainerId());
+			//试剂
+			ope.setReagentId(opeApplyReserve.getReagent().getId());
+			//订单编号
+			ope.setOrderCode(oo.getOrderCode());
+			// 申购编号
+			ope.setApplyCode(opeApplyReserve.getApplyCode());
+			//批号
+			ope.setArticleNumber(opeApplyReserve.getArticleNumber());
+			ope.setId(IDUtils.uuid());
+			//新增收货人 保存在仓库库存表
+			ope.setUserId(consigneeId);
+			opeWarehouseReserveDao.insertOpeWarehouseReserve2(ope);
+		}else {
+			ope.setReserve(ope.getReserve() + opeApplyReserve.getArrivalNum());
+			this.updateOpeWarehouseReserve(ope);
+		}
+
+
+
+
+    }
+
+	@Override
+	public List<OpeWarehouseReserve> selectWarehouseByReagentIdAndArticleNumber(String id,String articleNumber,boolean flag) {
+		Map<String, String> params = new HashMap<>();
+		params.put("reagentId", id);
+		params.put("articleNumber", articleNumber);
+		List<OpeWarehouseReserve> reserveList = opeWarehouseReserveDao.selectWarehouseByReagentIdAndArticleNumber(params);
+		//减去 每个仓库中的试剂有条码的个数
+		//count(reagent_id,warehouseId,1)
+		if (reserveList.size() > 0) {
+			for (OpeWarehouseReserve owr : reserveList) {
+				//根据批次号 仓库名和试剂 得到在仓库有条码的试剂总数
+				if (flag) {
+					int numOfReagentHasCode = opeReagentStatusService.getReagentNumInWarehouse(id, articleNumber, owr.getWarehouseId());
+					//仓库显示 可以补贴条码的试剂总数
+					owr.setReserve(owr.getReserve()-numOfReagentHasCode);
+				}
+			}
+		}
+		return reserveList;
+	}
+	/**
+	* 补贴扣库存去除有条码的数据
+	*/
+	public List<OpeWarehouseReserve> selectWarehouseByRidAndArticleNumberAndWarehouse(String id,String articleNumber,String warehouseId) {
+		Map<String, String> params = new HashMap<>();
+		params.put("reagentId", id);
+		params.put("articleNumber", articleNumber);
+		params.put("warehouseId", warehouseId);
+		List<OpeWarehouseReserve> reserveList = opeWarehouseReserveDao.selectWarehouseByRidAndArtiNumberAndWid(params);
+		//减去 每个仓库中的试剂有条码的个数
+		//count(reagent_id,warehouseId,1)
+		if (reserveList.size() > 0) {
+			for (OpeWarehouseReserve owr : reserveList) {
+				//根据批次号 仓库名和试剂 得到在仓库有条码的试剂总数
+				int numOfReagentHasCode = opeReagentStatusService.getReagentNumInWarehouse(id, owr.getArticleNumber(), owr.getWarehouseId());
+				//仓库显示 可以补贴条码的试剂总数
+				owr.setReserve(owr.getReserve()-numOfReagentHasCode);
+			}
+		}
+		return reserveList;
+	}
+
+	@Override
+	public void updateBtReserve(String id, Integer useNum) {
+		opeWarehouseReserveDao.updateBtReserve(id, useNum);
+	}
+
+    @Override
+    public int countByReagentId(String id) {
+		int num = 0;
+		if (opeWarehouseReserveDao.countByReagentId(id) != null) {
+			num = opeWarehouseReserveDao.countByReagentId(id);
+		}
+		return num;
+    }
+
+    @Override
+    public OpeWarehouseReserve getRowData(String rowKey) {
+        return opeWarehouseReserveDao.getRowData(rowKey);
+    }
+
+    @Override
+	public void btWarehouseReserveReduce(List<OpeApplyReserve> opeList) {
+		if (opeList.size() < 1) {
+			return;
+		}
+		for (OpeApplyReserve oar : opeList) {
+			String reagentId = oar.getReagent().getId();
+			List<String> reagentCodes = new ArrayList<>(oar.getReagentCode());
+			//开始库存扣除
+			List<OpeWarehouseReserve> cacheUpdateList = oar.getCacheUpdateList();
+			for (OpeWarehouseReserve owr : cacheUpdateList) {
+				//1.根据仓库id和试剂id搜索不同批号的试剂库存
+				List<OpeWarehouseReserve> reserveList = this
+						.selectWarehouseByRidAndArticleNumberAndWarehouse(reagentId, owr.getArticleNumber(), owr.getWarehouseId());
+				Integer numLeave = owr.getUseNum();
+
+				for (OpeWarehouseReserve warehouseReserve:reserveList){
+					//库存大于剩余领用-》直接扣完
+					int usedNum = 0;
+					if (warehouseReserve.getReserve() > numLeave) {
+					//	warehouseReserve.setReserve(warehouseReserve.getReserve() - numLeave);
+						usedNum = numLeave;
+						numLeave = 0;
+					} else {
+						numLeave = numLeave - warehouseReserve.getReserve();
+					//	warehouseReserve.setReserve(0);
+						usedNum =  warehouseReserve.getReserve();
+					}
+
+					//更新流向,加入一条
+					if (usedNum > 0) {
+						for (int i = 0; i < usedNum; i++) {
+							// 试剂使用情况入库insert TODO 流向需要当时的时间和地点
+							OpeUseFlow opeUseFlow = new OpeUseFlow();
+							opeUseFlow.setReagentCode(reagentCodes.get(0));
+							opeUseFlow.setStatus(ArrivalStatus.WAREHOUSE);
+							opeUseFlow.setUserId(warehouseReserve.getUserId());
+							//仓库地点
+							opeUseFlow.setHouseId(warehouseReserve.getWarehouseId());
+							opeUseFlow.setContainerId(warehouseReserve.getContainerId());
+							opeUseFlow.setRemainder(oar.getReagent().getMainMetering()!=null?oar.getReagent().getMainMetering():new BigDecimal(0));
+							//入库时间
+							opeUseFlow.setCreateTime(warehouseReserve.getUpdateTime());
+							opeUseFlow.setStoreType(StoreType.DIRECTSTORE);
+
+							Map<String, String> metaMap = new HashMap<>();
+							metaMap.put("groupId", "operate_status");
+							metaMap.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEIN.getKey()));
+							List<BaseMeta> baseMetaList = baseMetaDao.getBaseMetaList(metaMap);
+							opeUseFlow.setOperateState(baseMetaList.get(0).getId());
+							this.opeUseFlowService.insertOpeUseFlow(opeUseFlow);
+							//更新试剂状态表 :批号
+							opeReagentStatusDao.updateArticleNumberByRCode(reagentCodes.get(0),warehouseReserve.getArticleNumber());
+
+							reagentCodes.remove(0);
+
+						}
+
+					}
+
+
+					//更新库存
+					this.updateBtReserve(warehouseReserve.getId(),usedNum);
+					if (numLeave < 1) {
+						break;
+					}
+			}
+
+
+
+		}
+		}
 	}
 
 	@Transactional(propagation = Propagation.REQUIRED)
@@ -505,19 +831,21 @@
 
 
             // 仓库库存update
-            opeWarehouseReserve = this.opeWarehouseReserveService.getOpeWarehouseReserve2(opeApply.getReagent().getId(), opeApply.getArticleNumber(),opeApply.getHouseId());
+            opeWarehouseReserve = this.getOpeWarehouseReserve2(opeApply.getReagent().getId(), opeApply.getArticleNumber(),opeApply.getHouseId());
             if (opeWarehouseReserve == null) {
                 opeWarehouseReserve = new OpeWarehouseReserve();
                 opeWarehouseReserve.setReagentId(opeApply.getReagent().getId());
                 opeWarehouseReserve.setArticleNumber(opeApply.getArticleNumber());
                 opeWarehouseReserve.setReserve(0);
                 opeWarehouseReserve.setWarehouseId(opeApply.getHouseId());
+                opeWarehouseReserve.setContainerId(opeApply.getContainerId());
+                opeWarehouseReserve.setUserId(loginUserId);
             }
             opeWarehouseReserve.setReserve(opeWarehouseReserve.getReserve() + opeApply.getArrivalNum());
             if (StringUtils.isBlank(opeWarehouseReserve.getId())) {
-                this.opeWarehouseReserveService.insertOpeWarehouseReserve(opeWarehouseReserve);
+                this.insertOpeWarehouseReserve(opeWarehouseReserve);
             } else {
-                this.opeWarehouseReserveService.updateOpeWarehouseReserve(opeWarehouseReserve);
+                this.updateOpeWarehouseReserve(opeWarehouseReserve);
             }
         }
 	}

--
Gitblit v1.9.2