| | |
| | | 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; |
| | |
| | | |
| | | @Resource(name = "opeApplyDao") |
| | | OpeApplyDao opeApplyDao; |
| | | @Resource |
| | | OpeOrderService opeOrderService; |
| | | @Resource |
| | | OpeReagentStatusService opeReagentStatusService; |
| | | @Resource |
| | | OpeWarehouseReserveService opeWarehouseReserveService; |
| | | |
| | | @Resource |
| | | private SysUserService sysUserService; |
| | |
| | | if (sysUser.getSeeFlag().getKey() != SeeFlag.MANAGE.getKey()) { |
| | | params.put("applyUserId", applyUserId); |
| | | } |
| | | |
| | | if("连悦".equals(sysUser.getName())){ |
| | | params.remove("applyUserId"); |
| | | } |
| | | } |
| | | |
| | | params.put("approveUserId", approveUserId); |
| | |
| | | if (sysUser.getSeeFlag().getKey() != SeeFlag.MANAGE.getKey()) { |
| | | params.put("applyUserId", applyUserId); |
| | | } |
| | | |
| | | if("连悦".equals(sysUser.getName())){ |
| | | params.remove("applyUserId"); |
| | | } |
| | | } |
| | | |
| | | params.put("approveUserId", approveUserId); |
| | |
| | | } |
| | | |
| | | @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); |
| | |
| | | } |
| | | @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); |
| | |
| | | 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); |
| | |
| | | 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); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | } |