From fcdb56cf78b63f5b1455bbfab0c2bd7934b0aca5 Mon Sep 17 00:00:00 2001 From: 李宇 <986321569@qq.com> Date: 星期三, 07 四月 2021 18:18:14 +0800 Subject: [PATCH] 去除多余事务 --- src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java | 87 ++++++++++++++++++++++--------------------- 1 files changed, 45 insertions(+), 42 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java index 33cd818..f4c3e7a 100644 --- a/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java @@ -476,45 +476,48 @@ } @Override - @Transactional(propagation = Propagation.REQUIRED) - public boolean updateReagentStatus3(OpeReagentStatus opeReagentStatus) { + public boolean updateReagentStatus3(List<String> reagentCodes,String userId,String projectNum,String laboratoryId,String laboratoryContainerId) { try { - //1.判断->试剂状态是否为在仓库 - if (isAllowWarehouseUse(opeReagentStatus)) { - //1.1获得 试剂的库存选择批次 - List<OpeWarehouseReserve> owrList = this.opeWarehouseReserveService - .getOpeWarehouseReserveList(opeReagentStatus.getReagent().getId(), opeReagentStatus.getArticleNumber(),opeReagentStatus.getHouseId()); - //在同一个仓库有相同批次的试剂,根据时间早的,个数少的先扣除库存 - owrList.get(0).setReserve(owrList.get(0).getReserve() - 1); - this.opeWarehouseReserveService.updateOpeWarehouseReserve(owrList.get(0)); + for (String opeReagentStatusId : reagentCodes) { + OpeReagentStatus opeReagentStatus = this.getOpeReagentStatus(opeReagentStatusId); + opeReagentStatus.setUserId(userId); + opeReagentStatus.setProjectNum(projectNum); + //1.判断->试剂状态是否为在仓库 + if (isAllowWarehouseUse(opeReagentStatus)) { + //1.1获得 试剂的库存选择批次 + List<OpeWarehouseReserve> owrList = this.opeWarehouseReserveService + .getOpeWarehouseReserveList(opeReagentStatus.getReagent().getId(), opeReagentStatus.getArticleNumber(), opeReagentStatus.getHouseId()); + //在同一个仓库有相同批次的试剂,根据时间早的,个数少的先扣除库存 + owrList.get(0).setReserve(owrList.get(0).getReserve() - 1); + this.opeWarehouseReserveService.updateOpeWarehouseReserve(owrList.get(0)); + } + //设置 试剂状态->领用待入库 + opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER); + opeReagentStatus.setHouseId(laboratoryId); + opeReagentStatus.setContainerId(laboratoryContainerId); + int row = this.updateOpeReagentStatus(opeReagentStatus); + + if (row == 0) { + return false; + } + + OpeUseFlow opeUseFlow = new OpeUseFlow(); + opeUseFlow.setReagentCode(opeReagentStatus.getReagentCode()); + opeUseFlow.setStatus(opeReagentStatus.getStatus()); + opeUseFlow.setHouseId(laboratoryId); + opeUseFlow.setContainerId(laboratoryContainerId); + opeUseFlow.setUserId(opeReagentStatus.getUserId()); + opeUseFlow.setPlace(opeReagentStatus.getPlace()); + opeUseFlow.setRemainder(opeReagentStatus.getRemainder()); + + Map<String, String> metaMap = new HashMap<>(); + metaMap.put("groupId", "operate_status"); + metaMap.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEOUT.getKey())); + List<BaseMeta> baseMetaList = baseMetaDao.getBaseMetaList(metaMap); + opeUseFlow.setOperateState(baseMetaList.get(0).getId()); + + this.opeUseFlowService.insertOpeUseFlow(opeUseFlow); } - //设置 试剂状态->领用待入库 - opeReagentStatus.setStatus(ArrivalStatus.NOREGISTER); - int row = this.opeReagentStatusDao.updateOpeReagentStatusDao(opeReagentStatus); - - if (row == 0) { - return false; - } - - - - 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()); - - Map<String, String> metaMap = new HashMap<>(); - metaMap.put("groupId", "operate_status"); - metaMap.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEOUT.getKey())); - List<BaseMeta> baseMetaList = baseMetaDao.getBaseMetaList(metaMap); - opeUseFlow.setOperateState(baseMetaList.get(0).getId()); - - this.opeUseFlowService.insertOpeUseFlow(opeUseFlow); - return true; } catch (DuplicateKeyException ex) { logger.warn(ex.getMessage(), ex); @@ -527,6 +530,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); } } @@ -576,7 +582,6 @@ } } - @Transactional(propagation = Propagation.REQUIRED) public OpeReagentStatus getOpeReagentStatus(String id) { try { return this.opeReagentStatusDao.getOpeReagentStatus(id); @@ -587,7 +592,6 @@ } } - @Transactional(propagation = Propagation.REQUIRED) public OpeReagentStatus getOpeReagentStatusByReagentCode2(OpeReagentStatus opeReagentStatus) { try { OpeReagentStatus status = this.opeReagentStatusDao.getOpeReagentStatusByReagentCode(opeReagentStatus.getReagentCode()); @@ -600,7 +604,6 @@ } } - @Transactional(propagation = Propagation.REQUIRED) public OpeReagentStatus getOpeReagentStatusByReagentCode(String reagentCode) { try { OpeReagentStatus status = this.opeReagentStatusDao.getOpeReagentStatusByReagentCode(reagentCode); @@ -1042,8 +1045,8 @@ } @Override - public void updateOpeReagentStatus(OpeReagentStatus opeReagentStatus) { - opeReagentStatusDao.updateOpeReagentStatusDao(opeReagentStatus); + public int updateOpeReagentStatus(OpeReagentStatus opeReagentStatus) { + return opeReagentStatusDao.updateOpeReagentStatusDao(opeReagentStatus); } @Override -- Gitblit v1.9.2