From 47a751cb301d05276ae5d75145d57b2d090fe4e1 Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: 星期一, 01 七月 2024 10:58:35 +0800
Subject: [PATCH] change

---
 src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java |  269 +++++++++++++++++++++++++++--------------------------
 1 files changed, 139 insertions(+), 130 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java
index ea5a824..4628a07 100644
--- a/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java
@@ -6,16 +6,17 @@
 
 import javax.annotation.Resource;
 
-import com.nanometer.smartlab.dao.OpeApplyDao;
-import com.nanometer.smartlab.dao.OpeReagentStatusDao;
+import com.nanometer.smartlab.dao.*;
 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.FacesUtils;
 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;
@@ -23,8 +24,6 @@
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
-import com.nanometer.smartlab.dao.BaseMetaDao;
-import com.nanometer.smartlab.dao.OpeWarehouseReserveDao;
 import com.nanometer.smartlab.entity.enumtype.ArrivalStatus;
 import com.nanometer.smartlab.entity.enumtype.OperateStatus;
 import com.nanometer.smartlab.entity.enumtype.StoreType;
@@ -46,6 +45,7 @@
 	@Resource
 	private OpeReagentStatusService opeReagentStatusService;
 
+	@Lazy
     @Resource
     private OpeUseFlowService opeUseFlowService;
 
@@ -59,8 +59,11 @@
 	@Resource
 	private OpeLaboratoryReserveService opeLaboratoryReserveService;
 
+	@Resource
+	private OpeLaboratoryReserveDao opeLaboratoryReserveDao;
+
 	@Transactional(propagation = Propagation.REQUIRED)
-	public List<OpeWarehouseReserve> getOpeWarehouseReserveList(String reagentId, String supplierId, Integer first,
+	public List<OpeWarehouseReserve> getOpeWarehouseReserveList(Long reagentId, Long supplierId, Integer first,
 			Integer pageSize) {
 		try {
 			Map<String, Object> params = new HashMap<String, Object>();
@@ -77,7 +80,7 @@
 	}
 
 	@Transactional(propagation = Propagation.REQUIRED)
-	public int getOpeWarehouseReserveTotalCount(String reagentId, String supplierId) {
+	public int getOpeWarehouseReserveTotalCount(Long reagentId, Long supplierId) {
 		try {
 			Map<String, Object> params = new HashMap<String, Object>();
 			params.put("reagentId", reagentId);
@@ -91,11 +94,11 @@
 	}
 
 	@Transactional(propagation = Propagation.REQUIRED)
-	public List<OpeWarehouseReserve> getOpeWarehouseReserveListByName(String reagentId, String supplierId, Integer first,
+	public List<OpeWarehouseReserve> getOpeWarehouseReserveListByName(String reagentName, Long supplierId, Integer first,
 			Integer pageSize,String productSn,String warehouseName) {
 		try {
 			Map<String, Object> params = new HashMap<String, Object>();
-			params.put("reagentName", reagentId);
+			params.put("reagentName", reagentName);
 			params.put("supplierId", supplierId);
 			params.put("first", first);
 			params.put("pageSize", pageSize);
@@ -110,10 +113,10 @@
 	}
 
 	@Transactional(propagation = Propagation.REQUIRED)
-	public int getOpeWarehouseReserveTotalCountByName(String reagentId, String supplierId,String productSn,String warehouseName) {
+	public int getOpeWarehouseReserveTotalCountByName(String reagentName, Long supplierId,String productSn,String warehouseName) {
 		try {
 			Map<String, Object> params = new HashMap<String, Object>();
-			params.put("reagentName", reagentId);
+			params.put("reagentName", reagentName);
 			params.put("supplierId", supplierId);
 			params.put("productSn", productSn);
 			params.put("warehouseName", warehouseName);
@@ -126,7 +129,7 @@
 	}
 
 	@Transactional(propagation = Propagation.REQUIRED)
-	public OpeWarehouseReserve getOpeWarehouseReserveBy(String reagentId, String articleNumber){
+	public OpeWarehouseReserve getOpeWarehouseReserveBy(Long reagentId, String articleNumber){
 		OpeWarehouseReserve ope=new OpeWarehouseReserve();
 		ope.setReagentId(reagentId);
 		ope.setArticleNumber(articleNumber);
@@ -134,7 +137,7 @@
 	}
 
 	@Transactional(propagation = Propagation.REQUIRED)
-	public OpeWarehouseReserve getOpeWarehouseReserve(String reagentId, String articleNumber) {
+	public OpeWarehouseReserve getOpeWarehouseReserve(Long reagentId, String articleNumber) {
 		try {
 			Map<String, Object> params = new HashMap<String, Object>();
 			params.put("reagentId", reagentId);
@@ -152,7 +155,7 @@
 		}
 	}
 	@Transactional(propagation = Propagation.REQUIRED)
-	public OpeWarehouseReserve getOpeWarehouseReserve2(String reagentId, String articleNumber,String warehouseId) {
+	public OpeWarehouseReserve getOpeWarehouseReserve2(Long reagentId, String articleNumber,Long warehouseId) {
 		try {
 			Map<String, Object> params = new HashMap<String, Object>();
 			params.put("reagentId", reagentId);
@@ -172,8 +175,8 @@
 	}
 
 	@Override
-	public List<OpeWarehouseReserve> getOpeWarehouseReserveList(String reagentId, String articleNumber,String warehouseId) {
-		Map<String, String> params = new HashMap<>();
+	public List<OpeWarehouseReserve> getOpeWarehouseReserveList(Long reagentId, String articleNumber,Long warehouseId) {
+		Map<String, Object> params = new HashMap<>();
 		params.put("reagentId", reagentId);
 		params.put("warehouseId", warehouseId);
 		params.put("articleNumber", articleNumber);
@@ -184,9 +187,9 @@
 	@Transactional(propagation = Propagation.REQUIRED)
 	public OpeWarehouseReserve insertOpeWarehouseReserve(OpeWarehouseReserve opeWarehouseReserve) {
 		try {
-			if (opeWarehouseReserve.getId() == null) {
-				opeWarehouseReserve.setId(IDUtils.uuid());
-			}
+//			if (opeWarehouseReserve.getId() == null) {
+//				opeWarehouseReserve.setId(IDUtils.uuid());
+//			}
 			this.opeWarehouseReserveDao.insertOpeWarehouseReserve(opeWarehouseReserve);
 			return opeWarehouseReserve;
 		} catch (DuplicateKeyException ex) {
@@ -203,7 +206,7 @@
 		}
 	}
 
-	@Transactional(propagation = Propagation.REQUIRED)
+	@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
 	public boolean updateOpeWarehouseReserve(OpeWarehouseReserve opeWarehouseReserve) {
 		try {
 			int row = this.opeWarehouseReserveDao.updateOpeWarehouseReserve(opeWarehouseReserve);
@@ -223,26 +226,14 @@
 		}
 	}
 
-	@Transactional(propagation = Propagation.REQUIRED)
-	public void claimForPerson(List<OpeApplyReserve> selectedListForPerson,String userId,String projectNum,String laboratoryId,String laboratoryContainerId){
+	@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
+	public void claimForPerson(List<OpeApplyReserve> selectedListForPerson,Long userId,Long projectId,Long laboratoryId,Long laboratoryContainerId,String receiptNumber){
 		try{
 			for(OpeApplyReserve app:selectedListForPerson){
-				List<String> reagentCodes = app.getReagentCode();
+				List<String> reagentCodes = app.getReagentCodes();
 				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.updateReagentStatus3(opeReagentStatus);
-						ss.add(opeReagentStatus);
-						//更新试剂状态和
-						opeReagentStatus.setHouseId(laboratoryId);
-						opeReagentStatus.setContainerId(laboratoryContainerId);
-						this.opeReagentStatusDao.updateOpeReagentStatusDao(opeReagentStatus);
+					this.opeReagentStatusService.updateReagentStatus3(reagentCodes,userId,projectId,laboratoryId,laboratoryContainerId,receiptNumber);
 
-					}
 					//更新是现实库存
 					OpeLaboratoryReserve lr=new OpeLaboratoryReserve();
 					lr.setReagentId(app.getReagent().getId());
@@ -293,47 +284,70 @@
 			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);
 		}
 	}
 
 	// 仓库领用
-	@Transactional(propagation = Propagation.REQUIRED)
-	public void claim(List<OpeWarehouseReserve> selectedList, String userId,String projectNum) {
-		try {
-			for (OpeWarehouseReserve opeWarehouseReserve : selectedList) {
-				List<String> reagentCodes = opeWarehouseReserve.getReagentCodes();
-				if (reagentCodes != null && reagentCodes.size() > 0) {
-					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);
-						//if (flag) {
-							//opeWarehouseReserve.setReserve(opeWarehouseReserve.getReserve() - 1);
-							//opeWarehouseReserve.setSelectNum(0);
-						//}
+	@Transactional(propagation = Propagation.REQUIRED,rollbackFor = RuntimeException.class)
+	public void claim(List<OpeWarehouseReserve> selectedList, Long userId,Long projectId,Long laboratoryId,Long laboratoryContainerId,String receiptNumber) {
+		for (OpeWarehouseReserve opeWarehouseReserve : selectedList) {
+			List<OpeLaboratoryReserve>lrList=new ArrayList<>();
+			List<Long> reagentStatusIds=new ArrayList<>();
+			List<String> reagentCodes = opeWarehouseReserve.getReagentCodes();
+			List<OpeUseFlow> opeUseFlowList=new ArrayList<>();
+			if (reagentCodes != null && !reagentCodes.isEmpty()) {
+				for (String reagentCode : reagentCodes) {
+					OpeReagentStatus opeReagentStatus = this.opeReagentStatusService
+							.getOpeReagentStatusByCode(reagentCode);
+					if (!this.opeReagentStatusService.isAllowWarehouseUse(opeReagentStatus)) {
+						throw new BusinessException(ExceptionEnumCode.SYS_ERR,"只能申领在仓库的试剂");
 					}
+
+					opeReagentStatus.setUserId(userId);
+					opeReagentStatus.setProjectId(projectId);
+				//	this.opeReagentStatusService.updateReagentStatus(opeReagentStatus,receiptNumber);
+					reagentStatusIds.add(opeReagentStatus.getId());
+					OpeLaboratoryReserve lr = new OpeLaboratoryReserve();
+					lr.setReagentId(opeWarehouseReserve.getReagentId());
+					lr.setHouseId(laboratoryId);
+					lr.setContainerId(laboratoryContainerId);
+					lr.setReserve(opeWarehouseReserve.getSelectNum());
+					lr.setUserId(userId);
+					lr.setValidFlag(ValidFlag.VALID);
+					lrList.add(lr);
+
+					OpeUseFlow opeUseFlow = new OpeUseFlow();
+					opeUseFlow.setReagentCode(opeReagentStatus.getReagentCode());
+					opeUseFlow.setStatus(opeReagentStatus.getStatus());
+					opeUseFlow.setHouseId(opeReagentStatus.getHouseId());
+					opeUseFlow.setContainerId(opeReagentStatus.getContainerId());
+					opeUseFlow.setUserId(opeReagentStatus.getUserId());
+					opeUseFlow.setPlace(opeReagentStatus.getPlace());
+					opeUseFlow.setRemainder(opeReagentStatus.getRemainder());
+					opeUseFlow.setReceiptNumber(receiptNumber);
+					opeUseFlow.setOperateState(OperateStatus.WAREHOUSEOUT.getKey());
+					opeUseFlowList.add(opeUseFlow);
 				}
-				opeWarehouseReserve.setReserve(opeWarehouseReserve.getReserve()-opeWarehouseReserve.getSelectNum());
-				opeWarehouseReserveDao.updateOpeWarehouseReserve(opeWarehouseReserve);
 			}
-		} catch (DuplicateKeyException ex) {
-			logger.warn(ex.getMessage(), ex);
-			throw new AlarmException(AlarmCode.DATA_DUPLICATE,
-					MessageUtil.getMessage(AlarmCode.DATA_DUPLICATE.getCode()));
-		} catch (DataIntegrityViolationException ex) {
-			logger.warn(ex.getMessage(), ex);
-			throw new AlarmException(AlarmCode.DATA_CONFICT, MessageUtil.getMessage(AlarmCode.DATA_CONFICT.getCode()));
-		} catch (DataAccessException ex) {
-			logger.error(ex.getMessage(), ex);
-			throw new BusinessException(ExceptionEnumCode.DB_ERR,
-					MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), ex);
+			if(reagentStatusIds.size()>0){
+				this.opeReagentStatusDao.batchUpdateReagentStatusByIds(reagentStatusIds,laboratoryId,laboratoryContainerId,ArrivalStatus.NOREGISTER.getKey());
+			}
+			if(lrList.size()>0){
+				this.opeLaboratoryReserveDao.batchInsert(lrList);
+			}
+			if(opeUseFlowList.size()>0){
+				this.opeUseFlowService.batchInsertOpeUseFlow(opeUseFlowList);
+			}
+			opeWarehouseReserve.setReserve(opeWarehouseReserve.getReserve()-opeWarehouseReserve.getSelectNum());
+			opeWarehouseReserveDao.updateOpeWarehouseReserve(opeWarehouseReserve);
 		}
+
 	}
 
-	public void reagentDStore2(List<OpeApply> reagentDStoreList, String loginUserId){
+	public void reagentDStore2(List<OpeApply> reagentDStoreList, Long loginUserId){
 		if (reagentDStoreList == null) {
 			return;
 		}
@@ -369,7 +383,7 @@
 					//opeReagentStatus.setReagentId(opeApply.getReagent().getId());
 					opeReagentStatus.setArticleNumber(opeApply.getArticleNumber());
 					opeReagentStatus.setReagentCode(reagentCode);
-					opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER);
+					opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER.getKey());
 					opeReagentStatus.setHouseId(opeApply.getHouseId());
 					opeReagentStatus.setContainerId(opeApply.getContainerId());
 					opeReagentStatus.setUserId(loginUserId);
@@ -401,13 +415,13 @@
 					opeReagentStatus.setReagentId(opeApply.getReagent().getId());
 					opeReagentStatus.setArticleNumber(opeApply.getArticleNumber());
 					opeReagentStatus.setReagentCode(reagentCode);
-					opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER);
+					opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER.getKey());
 					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);
+					opeReagentStatus.setStoreType(StoreType.DIRECTSTORE.getKey());
 					this.opeReagentStatusService.insertOpeReagentStatus(opeReagentStatus);
 
 					// 试剂使用情况入库insert
@@ -419,13 +433,9 @@
 					opeUseFlow.setUserId(opeReagentStatus.getUserId());
 					opeUseFlow.setPlace(opeReagentStatus.getPlace());
 					opeUseFlow.setRemainder(opeApply.getReagent().getMainMetering()!=null?opeApply.getReagent().getMainMetering():new BigDecimal(0));
-					opeUseFlow.setStoreType(StoreType.DIRECTSTORE);
+					opeUseFlow.setStoreType(StoreType.DIRECTSTORE.getKey());
 
-					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());
+					opeUseFlow.setOperateState(OperateStatus.WAREHOUSEIN.getKey());
 					this.opeUseFlowService.insertOpeUseFlow(opeUseFlow);
 					// 试剂使用情况领用insert
 					OpeUseFlow ouf=new OpeUseFlow();
@@ -436,13 +446,9 @@
 					ouf.setUserId(opeReagentStatus.getUserId());
 					ouf.setPlace(opeReagentStatus.getPlace());
 					ouf.setRemainder(opeApply.getReagent().getMainMetering()!=null?opeApply.getReagent().getMainMetering():new BigDecimal(0));
-					ouf.setStoreType(StoreType.DIRECTSTORE);
+					ouf.setStoreType(StoreType.DIRECTSTORE.getKey());
 
-					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());
+					ouf.setOperateState(OperateStatus.WAREHOUSEOUT.getKey());
 					this.opeUseFlowService.insertOpeUseFlow(ouf);
 				}
 			}
@@ -450,7 +456,7 @@
 		}
 	}
 
-	public void reagentDStore4(List<OpeApply> reagentDStoreList, String loginUserId){
+	public void reagentDStore4(List<OpeApply> reagentDStoreList, Long loginUserId,String receiptNumber){
 		if (reagentDStoreList == null) {
 			return;
 		}
@@ -467,7 +473,7 @@
 					//opeReagentStatus.setReagentId(opeApply.getReagent().getId());
 					opeReagentStatus.setArticleNumber(opeApply.getArticleNumber());
 					opeReagentStatus.setReagentCode(reagentCode);
-					opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER);
+					opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER.getKey());
 					opeReagentStatus.setHouseId(opeApply.getHouseId());
 					opeReagentStatus.setContainerId(opeApply.getContainerId());
 					opeReagentStatus.setUserId(loginUserId);
@@ -499,13 +505,13 @@
 					opeReagentStatus.setReagentId(opeApply.getReagent().getId());
 					opeReagentStatus.setArticleNumber(opeApply.getArticleNumber());
 					opeReagentStatus.setReagentCode(reagentCode);
-					opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER);
+					opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER.getKey());
 					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);
+					opeReagentStatus.setStoreType(StoreType.DIRECTSTORE.getKey());
 					this.opeReagentStatusService.insertOpeReagentStatus(opeReagentStatus);
 
 
@@ -518,20 +524,17 @@
 					ouf.setUserId(opeReagentStatus.getUserId());
 					ouf.setPlace(opeReagentStatus.getPlace());
 					ouf.setRemainder(opeApply.getReagent().getMainMetering()!=null?opeApply.getReagent().getMainMetering():new BigDecimal(0));
-					ouf.setStoreType(StoreType.DIRECTSTORE);
+					ouf.setStoreType(StoreType.DIRECTSTORE.getKey());
 
-					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());
+					ouf.setOperateState(OperateStatus.WAREHOUSEOUT.getKey());
+					ouf.setReceiptNumber(receiptNumber);
 					this.opeUseFlowService.insertOpeUseFlow(ouf);
 				}
 			}
 
 		}
 	}
-	public void reagentDStore3(List<OpeApply> reagentDStoreList, String loginUserId){
+	public void reagentDStore3(List<OpeApply> reagentDStoreList, Long loginUserId){
 		if (reagentDStoreList == null) {
 			return;
 		}
@@ -549,11 +552,11 @@
 					opeReagentStatus.setReagentId(opeApply.getReagent().getId());
 					opeReagentStatus.setArticleNumber(opeApply.getArticleNumber());
 					opeReagentStatus.setReagentCode(reagentCode);
-					opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER);
+					opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER.getKey());
 					opeReagentStatus.setHouseId(opeApply.getHouseId());
 					opeReagentStatus.setContainerId(opeApply.getContainerId());
 					opeReagentStatus.setUserId(loginUserId);
-					opeReagentStatus.setStoreType(StoreType.DIRECTSTORE);
+					opeReagentStatus.setStoreType(StoreType.DIRECTSTORE.getKey());
 					this.opeReagentStatusService.insertOpeReagentStatus(opeReagentStatus);
 
 
@@ -566,13 +569,9 @@
 					ouf.setUserId(opeReagentStatus.getUserId());
 					ouf.setPlace(opeReagentStatus.getPlace());
 					ouf.setRemainder(opeApply.getReagent().getMainMetering()!=null?opeApply.getReagent().getMainMetering():new BigDecimal(0));
-					ouf.setStoreType(StoreType.DIRECTSTORE);
+					ouf.setStoreType(StoreType.DIRECTSTORE.getKey());
 
-					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());
+					ouf.setOperateState(OperateStatus.WAREHOUSEOUT.getKey());
 					this.opeUseFlowService.insertOpeUseFlow(ouf);
 				}
 			}
@@ -580,12 +579,12 @@
 		}
 	}
 	@Override
-	public List<OpeWarehouseReserve> selectByReId(String id) {
+	public List<OpeWarehouseReserve> selectByReId(Long id) {
 		return this.opeWarehouseReserveDao.selectByReId(id);
 	}
 
 	@Override
-	public void updateByReId(String newReId, String oldReId) {
+	public void updateByReId(Long newReId, Long oldReId) {
 		Map<String, Object> params=new HashMap();
 		params.put("newReId",newReId);
 		params.put("oldReId",oldReId);
@@ -594,7 +593,7 @@
 
     @Override
 	@Transactional
-    public void insertOpeWarehouseReserve2(OpeApplyReserve opeApplyReserve, OpeOrder oo,String consigneeId) {
+    public void insertOpeWarehouseReserve2(OpeApplyReserve opeApplyReserve, OpeOrder oo,Long consigneeId) {
 
 		OpeWarehouseReserve ope = this.getOpeWarehouseReserve2(opeApplyReserve.getReagent().getId(), opeApplyReserve.getArticleNumber(),opeApplyReserve.getHouseId());
 		if (ope == null) {
@@ -614,7 +613,7 @@
 			ope.setApplyCode(opeApplyReserve.getApplyCode());
 			//批号
 			ope.setArticleNumber(opeApplyReserve.getArticleNumber());
-			ope.setId(IDUtils.uuid());
+			//ope.setId(IDUtils.uuid());
 			//新增收货人 保存在仓库库存表
 			ope.setUserId(consigneeId);
 			opeWarehouseReserveDao.insertOpeWarehouseReserve2(ope);
@@ -629,8 +628,8 @@
     }
 
 	@Override
-	public List<OpeWarehouseReserve> selectWarehouseByReagentIdAndArticleNumber(String id,String articleNumber,boolean flag) {
-		Map<String, String> params = new HashMap<>();
+	public List<OpeWarehouseReserve> selectWarehouseByReagentIdAndArticleNumber(Long id,String articleNumber,boolean flag) {
+		Map<String, Object> params = new HashMap<>();
 		params.put("reagentId", id);
 		params.put("articleNumber", articleNumber);
 		List<OpeWarehouseReserve> reserveList = opeWarehouseReserveDao.selectWarehouseByReagentIdAndArticleNumber(params);
@@ -651,8 +650,8 @@
 	/**
 	* 补贴扣库存去除有条码的数据
 	*/
-	public List<OpeWarehouseReserve> selectWarehouseByRidAndArticleNumberAndWarehouse(String id,String articleNumber,String warehouseId) {
-		Map<String, String> params = new HashMap<>();
+	public List<OpeWarehouseReserve> selectWarehouseByRidAndArticleNumberAndWarehouse(Long id,String articleNumber,Long warehouseId) {
+		Map<String, Object> params = new HashMap<>();
 		params.put("reagentId", id);
 		params.put("articleNumber", articleNumber);
 		params.put("warehouseId", warehouseId);
@@ -671,18 +670,32 @@
 	}
 
 	@Override
-	public void updateBtReserve(String id, Integer useNum) {
+	public void updateBtReserve(Long id, Integer useNum) {
 		opeWarehouseReserveDao.updateBtReserve(id, useNum);
 	}
 
-	@Override
+    @Override
+    public int countByReagentId(Long id) {
+		int num = 0;
+		if (opeWarehouseReserveDao.countByReagentId(id) != null) {
+			num = opeWarehouseReserveDao.countByReagentId(id);
+		}
+		return num;
+    }
+
+    @Override
+    public OpeWarehouseReserve getRowData(Long 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());
+			Long reagentId = oar.getReagent().getId();
+			List<String> reagentCodes = new ArrayList<>(oar.getReagentCodes());
 			//开始库存扣除
 			List<OpeWarehouseReserve> cacheUpdateList = oar.getCacheUpdateList();
 			for (OpeWarehouseReserve owr : cacheUpdateList) {
@@ -710,7 +723,7 @@
 							// 试剂使用情况入库insert TODO 流向需要当时的时间和地点
 							OpeUseFlow opeUseFlow = new OpeUseFlow();
 							opeUseFlow.setReagentCode(reagentCodes.get(0));
-							opeUseFlow.setStatus(ArrivalStatus.WAREHOUSE);
+							opeUseFlow.setStatus(ArrivalStatus.WAREHOUSE.getKey());
 							opeUseFlow.setUserId(warehouseReserve.getUserId());
 							//仓库地点
 							opeUseFlow.setHouseId(warehouseReserve.getWarehouseId());
@@ -718,15 +731,15 @@
 							opeUseFlow.setRemainder(oar.getReagent().getMainMetering()!=null?oar.getReagent().getMainMetering():new BigDecimal(0));
 							//入库时间
 							opeUseFlow.setCreateTime(warehouseReserve.getUpdateTime());
-							opeUseFlow.setStoreType(StoreType.DIRECTSTORE);
+							opeUseFlow.setStoreType(StoreType.DIRECTSTORE.getKey());
 
-							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());
+							opeUseFlow.setOperateState(OperateStatus.WAREHOUSEIN.getKey());
 							this.opeUseFlowService.insertOpeUseFlow(opeUseFlow);
+							//更新试剂状态表 :批号
+							opeReagentStatusDao.updateArticleNumberByRCode(reagentCodes.get(0),warehouseReserve.getArticleNumber());
+
 							reagentCodes.remove(0);
+
 						}
 
 					}
@@ -746,7 +759,7 @@
 	}
 
 	@Transactional(propagation = Propagation.REQUIRED)
-	public void reagentDStore(List<OpeApply> reagentDStoreList, String loginUserId) {
+	public void reagentDStore(List<OpeApply> reagentDStoreList, Long loginUserId) {
 
 		if (reagentDStoreList == null) {
             return;
@@ -787,13 +800,13 @@
 					opeReagentStatus.setReagentId(opeApply.getReagent().getId());
 					opeReagentStatus.setArticleNumber(opeApply.getArticleNumber());
 					opeReagentStatus.setReagentCode(reagentCode);
-					opeReagentStatus.setStatus(ArrivalStatus.WAREHOUSE);
+					opeReagentStatus.setStatus(ArrivalStatus.WAREHOUSE.getKey());
 					opeReagentStatus.setHouseId(opeApply.getHouseId());
 					opeReagentStatus.setContainerId(opeApply.getContainerId());
 					opeReagentStatus.setUserId(loginUserId);
-					opeReagentStatus.setPlace(opeApply.getPlaceId());
+					opeReagentStatus.setPlace(opeApply.getPlace());
 					opeReagentStatus.setRemainder(opeApply.getReagent().getMainMetering()!=null?(opeApply.getReagent().getMainMetering()):new BigDecimal(0));
-					opeReagentStatus.setStoreType(StoreType.DIRECTSTORE);
+					opeReagentStatus.setStoreType(StoreType.DIRECTSTORE.getKey());
 					this.opeReagentStatusService.insertOpeReagentStatus(opeReagentStatus);
 
 					// 试剂使用情况insert
@@ -805,13 +818,9 @@
 					opeUseFlow.setUserId(opeReagentStatus.getUserId());
 					opeUseFlow.setPlace(opeReagentStatus.getPlace());
 					opeUseFlow.setRemainder(opeApply.getReagent().getMainMetering()!=null?(opeApply.getReagent().getMainMetering()):new BigDecimal(0));
-					opeUseFlow.setStoreType(StoreType.DIRECTSTORE);
+					opeUseFlow.setStoreType(StoreType.DIRECTSTORE.getKey());
 
-					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());
+					opeUseFlow.setOperateState(OperateStatus.WAREHOUSEIN.getKey());
 
 
 					this.opeUseFlowService.insertOpeUseFlow(opeUseFlow);
@@ -831,7 +840,7 @@
                 opeWarehouseReserve.setUserId(loginUserId);
             }
             opeWarehouseReserve.setReserve(opeWarehouseReserve.getReserve() + opeApply.getArrivalNum());
-            if (StringUtils.isBlank(opeWarehouseReserve.getId())) {
+            if (opeWarehouseReserve.getId()!=null) {
                 this.insertOpeWarehouseReserve(opeWarehouseReserve);
             } else {
                 this.updateOpeWarehouseReserve(opeWarehouseReserve);

--
Gitblit v1.9.2