From d6c65a4e3d1ca7d9a7bd6806c99fee035d0a44eb Mon Sep 17 00:00:00 2001 From: 李宇 <986321569@qq.com> Date: 星期三, 27 一月 2021 16:54:34 +0800 Subject: [PATCH] 合并 --- src/main/java/com/nanometer/smartlab/service/OpeApplyServiceImpl.java | 86 ++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 84 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/service/OpeApplyServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeApplyServiceImpl.java index 1f61365..4f09cda 100644 --- a/src/main/java/com/nanometer/smartlab/service/OpeApplyServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/OpeApplyServiceImpl.java @@ -3,6 +3,7 @@ import com.nanometer.smartlab.dao.OpeApplyDao; import com.nanometer.smartlab.entity.OpeApply; import com.nanometer.smartlab.entity.OpeApplyReserve; +import com.nanometer.smartlab.entity.OpeOrder; import com.nanometer.smartlab.entity.SysUser; import com.nanometer.smartlab.entity.enumtype.ApplyStatus; import com.nanometer.smartlab.entity.enumtype.SeeFlag; @@ -40,6 +41,12 @@ @Resource(name = "opeApplyDao") OpeApplyDao opeApplyDao; + @Resource + OpeOrderService opeOrderService; + @Resource + OpeReagentStatusService opeReagentStatusService; + @Resource + OpeWarehouseReserveService opeWarehouseReserveService; @Resource private SysUserService sysUserService; @@ -519,12 +526,15 @@ } @Override - public int getOpeApplyReserveTotalCountByNameFor(String id,String reagentName, String personName) { + public int getOpeApplyReserveTotalCountByNameFor(String id,String reagentName, String personName,String productSn,String applyCode,Integer status) { try { Map<String, Object> params = new HashMap<String, Object>(); params.put("reagentName", reagentName); params.put("personName", personName); params.put("userId",id); + params.put("productSn",productSn); + params.put("applyCode",applyCode); + params.put("status",status); return this.opeApplyDao.getOpeApplyReserveTotalCountFor(params); } catch (DataAccessException e) { logger.error(e.getMessage(), e); @@ -534,7 +544,7 @@ } @Override public List<OpeApplyReserve> getOpeApplyReserveListByNameFor(String id,String reagentName, String personName, Integer first, - Integer pageSize) { + Integer pageSize,String productSn,String applyCode,Integer status) { try { Map<String, Object> params = new HashMap<String, Object>(); params.put("reagentName", reagentName); @@ -542,6 +552,9 @@ params.put("userId",id); params.put("first", first); params.put("pageSize", pageSize); + params.put("productSn",productSn); + params.put("applyCode",applyCode); + params.put("status",status); return this.opeApplyDao.getOpeApplyReserveListFor(params); } catch (DataAccessException e) { logger.error(e.getMessage(), e); @@ -633,4 +646,73 @@ params.put("oldReId",oldReId); this.opeApplyDao.updateByReId(params); } + + @Override + public OpeApplyReserve getOpeApplyDetail(String id) { + return opeApplyDao.getOpeApplyDetail(id); + } + + @Override + public void updateOpeApplyInfo(ApplyStatus storage, String consigneeId, Timestamp arrivalTime, String applyId) { + Map<String,Object> params = new HashMap(); + params.put("status", storage); + params.put("consigneeId", consigneeId); + params.put("arrivalTime", arrivalTime); + params.put("applyId", applyId); + opeApplyDao.updateOpeApplyInfo(params); + } + + @Override + @Transactional + public void orderInputWarehouse(List<OpeApplyReserve> opeApplyList,String consigneeId,Timestamp arrivalTime) { + for (OpeApplyReserve opeApplyReserve:opeApplyList) { + //0.1获取该申购单的订单 + OpeOrder oo = opeOrderService.getOrder(opeApplyReserve.getId()); + if (oo == null) { + throw new BusinessException(ExceptionEnumCode.ORDER_ERROR,"订单不存在"); + } + //0.2检查条码->得到试剂条码列表 + List<String> codeList = opeReagentStatusService + .checkReagentCode(opeApplyReserve.getStartReagentCode2(), opeApplyReserve.getEndReagentCode2(), opeApplyReserve.getArrivalNum()); + //1.入库 + if (codeList == null){ + //无条码入库 不需要增加状态和流向 + //1.1库存表增加 + opeWarehouseReserveService.insertOpeWarehouseReserve2(opeApplyReserve, oo); + }else{ + //条码入库 + assert codeList.size() > 0; + //1.1入库(库存表增加) + opeWarehouseReserveService.insertOpeWarehouseReserve2(opeApplyReserve, oo); + //1.2试剂状态表增加,流向增加 + opeReagentStatusService.orderInputWarehouseReagentStatusAndUseFlow(opeApplyReserve,consigneeId,codeList,oo); + } + //2.更改申购单所属订单状态(判断子订单是否全部完成) + //2.1更改该申购单的状态,收货人和到货时间 + this.updateOpeApplyInfo(ApplyStatus.STORAGE,consigneeId,arrivalTime, opeApplyReserve.getId()); + //2.2更改订单状态 + List<OpeApply> oas = opeOrderService.getOpeApplyListByOrder(oo.getId()); + assert oas.size() > 0; + //子订单是否全部入库,是则父单为已入库,否则未完成 + boolean flag = oas.stream().allMatch(oa -> oa.getStatus() == ApplyStatus.STORAGE); + oo.setConsigneeUserId(consigneeId); + oo.setArrivalTime(arrivalTime); + if (flag){ + oo.setStatus(ApplyStatus.STORAGE); + opeOrderService.updateOpeOrderStatus(oo); + }else{ + oo.setStatus(ApplyStatus.UNCOMPLETED); + opeOrderService.updateOpeOrder(oo); + } + + } + } + /** + * 补贴条码更新订单的领用数量 + */ + @Override + public void btUpdateApplyAndOrder(List<OpeApply> opeList) { + + } + } -- Gitblit v1.9.2