From 5eaa5ee48d6b55246ec47c1c75ba00f8ddc0fb8f Mon Sep 17 00:00:00 2001 From: 李宇 <986321569@qq.com> Date: 星期二, 02 二月 2021 17:17:30 +0800 Subject: [PATCH] 修改危废状态 --- src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java | 95 ++++++++++++++++++++++++----------------------- 1 files changed, 49 insertions(+), 46 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java index a0deb2c..ea5a824 100644 --- a/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/OpeWarehouseReserveServiceImpl.java @@ -48,8 +48,6 @@ @Resource private OpeUseFlowService opeUseFlowService; - @Resource - private OpeWarehouseReserveService opeWarehouseReserveService; @Resource(name="baseMetaDao") private BaseMetaDao baseMetaDao; @@ -94,7 +92,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); @@ -102,6 +100,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); @@ -111,12 +110,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); @@ -508,23 +508,7 @@ opeReagentStatus.setStoreType(StoreType.DIRECTSTORE); this.opeReagentStatusService.insertOpeReagentStatus(opeReagentStatus); - // 试剂使用情况入库insert - 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(opeApply.getReagent().getMainMetering()!=null?opeApply.getReagent().getMainMetering():new BigDecimal(0)); - 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); // 试剂使用情况领用insert OpeUseFlow ouf=new OpeUseFlow(); ouf.setReagentCode(opeReagentStatus.getReagentCode()); @@ -572,23 +556,7 @@ opeReagentStatus.setStoreType(StoreType.DIRECTSTORE); this.opeReagentStatusService.insertOpeReagentStatus(opeReagentStatus); - // 试剂使用情况入库insert - 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(opeApply.getReagent().getMainMetering()!=null?opeApply.getReagent().getMainMetering():new BigDecimal(0)); - 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); // 试剂使用情况领用insert OpeUseFlow ouf=new OpeUseFlow(); ouf.setReagentCode(opeReagentStatus.getReagentCode()); @@ -626,10 +594,9 @@ @Override @Transactional - public void insertOpeWarehouseReserve2(OpeApplyReserve opeApplyReserve, OpeOrder oo) { + public void insertOpeWarehouseReserve2(OpeApplyReserve opeApplyReserve, OpeOrder oo,String consigneeId) { - OpeWarehouseReserve ope = this.opeWarehouseReserveService - .getOpeWarehouseReserve2(opeApplyReserve.getReagent().getId(), opeApplyReserve.getArticleNumber(),opeApplyReserve.getHouseId()); + OpeWarehouseReserve ope = this.getOpeWarehouseReserve2(opeApplyReserve.getReagent().getId(), opeApplyReserve.getArticleNumber(),opeApplyReserve.getHouseId()); if (ope == null) { ope = new OpeWarehouseReserve(); @@ -637,6 +604,8 @@ ope.setReserve(opeApplyReserve.getArrivalNum()); //仓库 ope.setWarehouseId(opeApplyReserve.getHouseId()); + //仓库的货柜号 + ope.setContainerId(opeApplyReserve.getContainerId()); //试剂 ope.setReagentId(opeApplyReserve.getReagent().getId()); //订单编号 @@ -646,10 +615,12 @@ //批号 ope.setArticleNumber(opeApplyReserve.getArticleNumber()); ope.setId(IDUtils.uuid()); + //新增收货人 保存在仓库库存表 + ope.setUserId(consigneeId); opeWarehouseReserveDao.insertOpeWarehouseReserve2(ope); }else { ope.setReserve(ope.getReserve() + opeApplyReserve.getArrivalNum()); - this.opeWarehouseReserveService.updateOpeWarehouseReserve(ope); + this.updateOpeWarehouseReserve(ope); } @@ -711,14 +682,15 @@ } 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 = opeWarehouseReserveService + List<OpeWarehouseReserve> reserveList = this .selectWarehouseByRidAndArticleNumberAndWarehouse(reagentId, owr.getArticleNumber(), owr.getWarehouseId()); Integer numLeave = owr.getUseNum(); + for (OpeWarehouseReserve warehouseReserve:reserveList){ //库存大于剩余领用-》直接扣完 int usedNum = 0; @@ -731,8 +703,37 @@ // 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); + reagentCodes.remove(0); + } + + } + + //更新库存 - opeWarehouseReserveService.updateBtReserve(warehouseReserve.getId(),usedNum); + this.updateBtReserve(warehouseReserve.getId(),usedNum); if (numLeave < 1) { break; } @@ -819,19 +820,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