| | |
| | | } |
| | | |
| | | @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); |
| | |
| | | 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 OpeReagentStatus getOpeReagentStatus(String id) { |
| | | try { |
| | | return this.opeReagentStatusDao.getOpeReagentStatus(id); |
| | |
| | | } |
| | | } |
| | | |
| | | @Transactional(propagation = Propagation.REQUIRED) |
| | | public OpeReagentStatus getOpeReagentStatusByReagentCode2(OpeReagentStatus opeReagentStatus) { |
| | | try { |
| | | OpeReagentStatus status = this.opeReagentStatusDao.getOpeReagentStatusByReagentCode(opeReagentStatus.getReagentCode()); |
| | |
| | | } |
| | | } |
| | | |
| | | @Transactional(propagation = Propagation.REQUIRED) |
| | | public OpeReagentStatus getOpeReagentStatusByReagentCode(String reagentCode) { |
| | | try { |
| | | OpeReagentStatus status = this.opeReagentStatusDao.getOpeReagentStatusByReagentCode(reagentCode); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void updateOpeReagentStatus(OpeReagentStatus opeReagentStatus) { |
| | | opeReagentStatusDao.updateOpeReagentStatusDao(opeReagentStatus); |
| | | public int updateOpeReagentStatus(OpeReagentStatus opeReagentStatus) { |
| | | return opeReagentStatusDao.updateOpeReagentStatusDao(opeReagentStatus); |
| | | } |
| | | |
| | | @Override |