| | |
| | | if(tree.length < 4){ |
| | | throw new ErrorException("库位选择错误"); |
| | | } |
| | | List<InsOrder> insOrders = insOrderMapper.selectList(Wrappers.<InsOrder>lambdaQuery().eq(InsOrder::getEntrustCode, entrustCode)); |
| | | List<InsOrder> insOrders = insOrderMapper.selectList(Wrappers.<InsOrder>lambdaQuery() |
| | | .ne(InsOrder::getState,3)//排除撤销的订单 |
| | | .eq(InsOrder::getEntrustCode, entrustCode)); |
| | | if(insOrders.size()!=1){ |
| | | throw new ErrorException("订单编号输入有误"); |
| | | throw new ErrorException("订单编号输入有误,或者该订单编号已经撤销"); |
| | | } |
| | | List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery() |
| | | .eq(InsSample::getSampleCode, sampleCode) |
| | |
| | | |
| | | @Override |
| | | public int outWarehouse(String sampleCode, boolean a,String entrustCode) { |
| | | List<InsOrder> insOrders = insOrderMapper.selectList(Wrappers.<InsOrder>lambdaQuery().eq(InsOrder::getEntrustCode, entrustCode)); |
| | | List<InsOrder> insOrders = insOrderMapper.selectList(Wrappers.<InsOrder>lambdaQuery() |
| | | .ne(InsOrder::getState,3)//排除撤销的订单 |
| | | .eq(InsOrder::getEntrustCode, entrustCode)); |
| | | if(insOrders.size()!=1){ |
| | | throw new ErrorException("订单编号输入有误"); |
| | | throw new ErrorException("订单编号输入有误,或者该订单编号已经撤销"); |
| | | } |
| | | List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery() |
| | | .eq(InsSample::getSampleCode, sampleCode) |
| | | .eq(InsSample::getInsOrderId,insOrders.get(0).getId()) |
| | | .select(InsSample::getId,InsSample::getCellId)); |
| | | .eq(InsSample::getInsOrderId,insOrders.get(0).getId())); |
| | | if(samples.size()!=1){ |
| | | throw new ErrorException("样品编号输入有误"); |
| | | } |
| | | if(samples.get(0).getCellId()==null){ |
| | | throw new ErrorException("样品 " + sampleCode + " 未入库"); |
| | | } |
| | | if (!a) { |
| | | //判断该订单是否站点任务有(继续试验或者是结束试验) |
| | | List<InsOrderState> orderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery() |
| | | .eq(InsOrderState::getInsOrderId, samples.get(0).getInsOrderId()) |
| | | .eq(InsOrderState::getInsState, 5)); |
| | | List<Integer> orderIds = new ArrayList<Integer>(); |
| | | orderIds.add(6); |
| | | if (CollectionUtils.isEmpty(orderStates)) { |
| | | List<Integer> collect = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery() |
| | | .eq(InsOrderState::getInsOrderId, samples.get(0).getInsOrderId())).stream().map(InsOrderState::getInsState).distinct().collect(Collectors.toList()); |
| | | if (collect.size()!=0 && !collect.containsAll(orderIds)) { |
| | | throw new ErrorException("该样品的检验任务还没有结束试验或继续试验,暂时无法出库!"); |
| | | } |
| | | } |
| | | } |
| | | WarehouseHistory history = new WarehouseHistory(); |
| | | history.setState(2); |
| | |
| | | history.setCellId(samples.get(0).getCellId()); |
| | | history.setWarehouseCode(warehouseHistoryMapper.selectOne(Wrappers.<WarehouseHistory>lambdaQuery().eq(WarehouseHistory::getInsSampleId, samples.get(0).getId()).select(WarehouseHistory::getWarehouseCode).orderByDesc(WarehouseHistory::getId).last("limit 1")).getWarehouseCode()); |
| | | insSampleMapper.update(null, Wrappers.<InsSample>lambdaUpdate().eq(InsSample::getId, samples.get(0).getId()).set(InsSample::getCellId, null)); |
| | | //该订单闭环 |
| | | InsOrder insOrder = insOrders.get(0); |
| | | insOrder.setState(4); |
| | | insOrderMapper.updateById(insOrder); |
| | | return warehouseHistoryMapper.insert(history); |
| | | } |
| | | |