From c3510da29a7974c6af7ff3de1ade3db429d6f848 Mon Sep 17 00:00:00 2001 From: 李宇 <986321569@qq.com> Date: 星期三, 18 八月 2021 14:27:59 +0800 Subject: [PATCH] 申购管理申请履历显示所有历史单据,提交时如有无效试剂耗材报错 --- src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java | 58 +++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 37 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java index 18fc0ef..a37acb1 100644 --- a/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java @@ -16,6 +16,7 @@ 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; @@ -46,6 +47,7 @@ @Resource private OpeReagentStatusService opeReagentStatusService; + @Lazy @Resource private OpeUseFlowService opeUseFlowService; @@ -92,7 +94,7 @@ @Transactional(propagation = Propagation.REQUIRED) public List<OpeWarehouseReserve> getOpeWarehouseReserveListByName(String reagentId, String supplierId, Integer first, - Integer pageSize,String productSn) { + Integer pageSize,String productSn,String warehouseName) { try { Map<String, Object> params = new HashMap<String, Object>(); params.put("reagentName", reagentId); @@ -100,6 +102,7 @@ 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); @@ -109,12 +112,13 @@ } @Transactional(propagation = Propagation.REQUIRED) - public int getOpeWarehouseReserveTotalCountByName(String reagentId, String supplierId,String productSn) { + 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); @@ -201,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); @@ -221,26 +225,14 @@ } } - @Transactional(propagation = Propagation.REQUIRED) + @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.updateReagentStatus3(opeReagentStatus); - ss.add(opeReagentStatus); - //更新试剂状态和 - opeReagentStatus.setHouseId(laboratoryId); - opeReagentStatus.setContainerId(laboratoryContainerId); - this.opeReagentStatusDao.updateOpeReagentStatusDao(opeReagentStatus); + this.opeReagentStatusService.updateReagentStatus3(reagentCodes,userId,projectNum,laboratoryId,laboratoryContainerId); - } //更新是现实库存 OpeLaboratoryReserve lr=new OpeLaboratoryReserve(); lr.setReagentId(app.getReagent().getId()); @@ -291,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); } } @@ -592,7 +587,7 @@ @Override @Transactional - public void insertOpeWarehouseReserve2(OpeApplyReserve opeApplyReserve, OpeOrder oo) { + public void insertOpeWarehouseReserve2(OpeApplyReserve opeApplyReserve, OpeOrder oo,String consigneeId) { OpeWarehouseReserve ope = this.getOpeWarehouseReserve2(opeApplyReserve.getReagent().getId(), opeApplyReserve.getArticleNumber(),opeApplyReserve.getHouseId()); if (ope == null) { @@ -613,6 +608,8 @@ //批号 ope.setArticleNumber(opeApplyReserve.getArticleNumber()); ope.setId(IDUtils.uuid()); + //新增收货人 保存在仓库库存表 + ope.setUserId(consigneeId); opeWarehouseReserveDao.insertOpeWarehouseReserve2(ope); }else { ope.setReserve(ope.getReserve() + opeApplyReserve.getArrivalNum()); @@ -671,8 +668,22 @@ opeWarehouseReserveDao.updateBtReserve(id, useNum); } - @Override - public void btWarehouseReserveReduce(List<OpeApplyReserve> opeList,String userId) { + @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; } @@ -707,7 +718,7 @@ OpeUseFlow opeUseFlow = new OpeUseFlow(); opeUseFlow.setReagentCode(reagentCodes.get(0)); opeUseFlow.setStatus(ArrivalStatus.WAREHOUSE); - opeUseFlow.setUserId(userId); + opeUseFlow.setUserId(warehouseReserve.getUserId()); //仓库地点 opeUseFlow.setHouseId(warehouseReserve.getWarehouseId()); opeUseFlow.setContainerId(warehouseReserve.getContainerId()); @@ -722,7 +733,11 @@ 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); + } } @@ -824,6 +839,7 @@ 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())) { -- Gitblit v1.9.2