| | |
| | | } |
| | | String sonLaboratory = insOrderPlanDTO.getSonLaboratory();//试验室 |
| | | insOrderPlanDTO.setSonLaboratory(null); |
| | | IPage<InsOrderPlanVO> insOrderPage = insSampleMapper.findInsSampleAndOrder(page, QueryWrappers.queryWrappers(insOrderPlanDTO), userName, sonLaboratory, laboratory); |
| | | String sampleCode = insOrderPlanDTO.getSampleCode(); |
| | | insOrderPlanDTO.setSampleCode(null); |
| | | IPage<InsOrderPlanVO> insOrderPage = insSampleMapper.findInsSampleAndOrder(page, QueryWrappers.queryWrappers(insOrderPlanDTO), userName, sonLaboratory, laboratory,sampleCode); |
| | | map.put("body", insOrderPage); |
| | | return map; |
| | | } |
| | |
| | | insOrderFile.setFileUrl(pathName); |
| | | insOrderFileMapper.insert(insOrderFile); |
| | | String[] split = filename.split("\\."); |
| | | if (ObjectUtils.isNotEmpty(sonLaboratory) && sonLaboratory.equals("近场") && split[split.length - 1].equals("csv")) { |
| | | if (ObjectUtils.isNotEmpty(sonLaboratory) && sonLaboratory.equals("近场") && (split[split.length - 1].equals("csv") || split[split.length - 1].equals("xlsx"))) { |
| | | fuSheUtils.getFuSheWord1(sonLaboratory, insOrderFile); |
| | | } else if (ObjectUtils.isNotEmpty(sonLaboratory) && sonLaboratory.equals("远场") && split[split.length - 1].equals("xlsx")) { |
| | | fuSheUtils.getFuSheWord2(sonLaboratory, insOrderFile); |
| | |
| | | insOrderState.setNum(1);//初始是第一次 |
| | | insOrderStateMapper.insert(insOrderState); |
| | | } |
| | | //同一样品在其他站点入库之后需要将其他站点的任务不显示 |
| | | insOrderStateMapper.update(null,Wrappers.<InsOrderState>lambdaUpdate() |
| | | .eq(InsOrderState::getInsOrderId,insSample.getInsOrderId()) |
| | | .eq(InsOrderState::getInsSampleId,insSample.getId()) |
| | | .eq(InsOrderState::getInsState,6)//复核继续试验 |
| | | .ne(InsOrderState::getLaboratory,sonLaboratory) |
| | | .set(InsOrderState::getIsOut,1));//不显示 |
| | | return 1; |
| | | } |
| | | |
| | | //扫码出库 |
| | | //扫码出库(只有复核结束才会调用) |
| | | @Override |
| | | public int outInsOrderState(String sonLaboratory, String sampleCode, String entrustCode) { |
| | | //判断该样品的检验任务是否已经结束(继续试验或者是结束试验) |
| | |
| | | if (!collect.contains(sonLaboratory)) { |
| | | throw new ErrorException("该样品没有" + sonLaboratory + "站点的相关项目,请查看下单详情!"); |
| | | } |
| | | //判断该任务是否是结束试验 |
| | | //判断该订单是否站点任务有(继续试验或者是结束试验) |
| | | List<InsOrderState> orderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery() |
| | | .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) |
| | | .eq(InsOrderState::getInsState, 5));//结束试验 |
| | | if (CollectionUtils.isEmpty(orderStates)) { |
| | | List<InsOrderState> orderStates1 = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery() |
| | | .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) |
| | | .eq(InsOrderState::getInsSampleId, insSample.getId()) |
| | | .eq(InsOrderState::getLaboratory, sonLaboratory) |
| | | .eq(InsOrderState::getInsState, 6));//继续试验 |
| | | if (CollectionUtils.isEmpty(orderStates1)) { |
| | | throw new ErrorException("该样品的检验任务还没有结束试验或继续试验,暂时无法出库!"); |
| | | } |
| | | InsOrderState orderStates = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery() |
| | | .eq(InsOrderState::getLaboratory,sonLaboratory) |
| | | .eq(InsOrderState::getInsSampleId, insSample.getId()) |
| | | .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())); |
| | | if (orderStates.getInsState()!=5) { |
| | | throw new ErrorException("当前样品的站点任务并不是复核的结束试验,无需手动出库!"); |
| | | } |
| | | boolean a = true; |
| | | warehouseService.outWarehouse(sampleCode, a, entrustCode); |
| | | orderStates.setIsOut(1); |
| | | insOrderStateMapper.updateById(orderStates);//复核结束出库之后列表不显示 |
| | | warehouseService.outWarehouse(sampleCode, true, entrustCode); |
| | | return 0; |
| | | } |
| | | |
| | |
| | | .set(InsOrderState::getInsState, 6) |
| | | .set(InsOrderState::getVerifyTell, tell) |
| | | .set(InsOrderState::getVerifyUser, userId)); |
| | | //继续试验自动出库 |
| | | WarehouseHistory history = new WarehouseHistory(); |
| | | history.setState(2); |
| | | history.setInsSampleId(sampleId); |
| | | history.setCellId(insSample.getCellId()); |
| | | history.setWarehouseCode(warehouseHistoryMapper.selectOne(Wrappers.<WarehouseHistory>lambdaQuery() |
| | | .eq(WarehouseHistory::getInsSampleId, sampleId).select(WarehouseHistory::getWarehouseCode).orderByDesc(WarehouseHistory::getId).last("limit 1")).getWarehouseCode()); |
| | | insSampleMapper.update(null, Wrappers.<InsSample>lambdaUpdate().eq(InsSample::getId, sampleId).set(InsSample::getCellId, null)); |
| | | warehouseHistoryMapper.insert(history); |
| | | break; |
| | | case 2: |
| | | //结束试验:此委托单停止试验(无法再次检验)。 |
| | |
| | | .set(InsOrderState::getInsState, 5) |
| | | .set(InsOrderState::getVerifyTell, tell) |
| | | .set(InsOrderState::getVerifyUser, userId)); |
| | | //结束之后将该订单的所有样品全部出库 |
| | | List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery() |
| | | .eq(InsSample::getInsOrderId, insSample.getInsOrderId())); |
| | | for (InsSample sample : insSamples) { |
| | | try{ |
| | | outInsOrderState(laboratory, sample.getSampleCode(), insOrder.getEntrustCode()); |
| | | }catch (Exception e){ |
| | | |
| | | } |
| | | } |
| | | /*生成对应的检验报告*/ |
| | | List<InsReportDto1> insReportDto1s=insOrderUserMapper.selectInsReportDto1(insOrder.getId()); |
| | | createReport(insOrder.getId(),insReportDto1s); |
| | | //该订单闭环 |
| | | insOrder.setState(4); |
| | | insOrderMapper.updateById(insOrder); |
| | | break; |
| | | } |
| | | } |
| | |
| | | .set(InsOrderState::getVerifyTell, tell) |
| | | .set(InsOrderState::getVerifyUser, userId)); |
| | | } |
| | | //继续试验需要出库 |
| | | WarehouseHistory history = new WarehouseHistory(); |
| | | history.setState(2); |
| | | history.setInsSampleId(sampleId); |
| | | history.setCellId(insSample.getCellId()); |
| | | history.setWarehouseCode(warehouseHistoryMapper.selectOne(Wrappers.<WarehouseHistory>lambdaQuery() |
| | | .eq(WarehouseHistory::getInsSampleId, sampleId).select(WarehouseHistory::getWarehouseCode).orderByDesc(WarehouseHistory::getId).last("limit 1")).getWarehouseCode()); |
| | | insSampleMapper.update(null, Wrappers.<InsSample>lambdaUpdate() |
| | | .eq(InsSample::getId, sampleId).set(InsSample::getCellId, null)); |
| | | warehouseHistoryMapper.insert(history); |
| | | break; |
| | | case 2: |
| | | //结束试验:此委托单停止试验(无法再次检验)。 |
| | |
| | | .eq(InsOrderState::getInsSampleId, sampleId) |
| | | .eq(InsOrderState::getLaboratory, laboratory) |
| | | .set(InsOrderState::getInsState, 5) |
| | | .set(InsOrderState::getIsOut,1)//复核结束出库之后列表不显示 |
| | | .set(InsOrderState::getNum, record.getNum() - 1)//次数-1 |
| | | .set(InsOrderState::getVerifyTell, tell) |
| | | .set(InsOrderState::getVerifyUser, userId)); |
| | |
| | | .eq(InsOrderState::getInsSampleId, sampleId) |
| | | .eq(InsOrderState::getLaboratory, laboratory) |
| | | .set(InsOrderState::getInsState, 5) |
| | | .set(InsOrderState::getIsOut,1)//复核结束出库之后列表不显示 |
| | | .set(InsOrderState::getVerifyTell, tell) |
| | | .set(InsOrderState::getVerifyUser, userId)); |
| | | } |
| | | //出库 |
| | | List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, insSample.getInsOrderId())); |
| | | for (InsSample sample : insSamples) { |
| | | try{ |
| | | outInsOrderState(laboratory, sample.getSampleCode(), insOrder.getEntrustCode()); |
| | | }catch (Exception e){ |
| | | } |
| | | } |
| | | /*生成对应的检验报告*/ |
| | | List<InsReportDto1> insReportDto1s=insOrderUserMapper.selectInsReportDto1(insOrder.getId()); |
| | | createReport(insOrder.getId(),insReportDto1s); |
| | | //订单闭环 |
| | | insOrder.setState(4); |
| | | insOrderMapper.updateById(insOrder); |
| | | break; |
| | | } |
| | | } |
| | |
| | | info.setCreateUser(insProductMapper.selectUserById(userId).get("name")); |
| | | info.setMessageType("2"); |
| | | info.setTheme("复核通知"); |
| | | info.setContent("您有一条检验任务待复核消息,订单号是:" + insOrder.getEntrustCode() + ",样品名称为:" + insSample.getSample()); |
| | | info.setContent("您有一条检验任务待复核消息,订单号是:" + insOrder.getEntrustCode()+"站点是:"+submitPlanDto.getLaboratory() + ",样品名称为:" + insSample.getSample()); |
| | | info.setSenderId(userId); |
| | | info.setConsigneeId(submitPlanDto.getVerifyUser()); |
| | | info.setViewStatus(false); |
| | | info.setJumpPath("b1-inspect-order-plan"); |
| | | info.setEntrustCode(insOrder.getEntrustCode());//委托编号 |
| | | info.setLaboratory(submitPlanDto.getLaboratory());//站点 |
| | | informationNotificationService.addInformationNotification(info); |
| | | //复核人--检验单相关负责人 |
| | | InsSampleUser insSampleUser = new InsSampleUser(); |
| | |
| | | } else { |
| | | wordUtils.generateWord2(submitPlanDto.getTerm(), orderState); |
| | | } |
| | | //todo 电路站点报告 正式库部署放开 |
| | | // try { |
| | | // if (!insOrder.getSampleType().equals("无源器件")) { |
| | | // wordUtils.generateWord(submitPlanDto.getTerm(), orderState); |
| | | // }else { |
| | | // wordUtils.generateWord2(submitPlanDto.getTerm(), orderState); |
| | | // } |
| | | // } catch (Exception e) { |
| | | // throw new ErrorException("电路试验的站点报告生成有误,请联系开发人员调整!"); |
| | | // } |
| | | } |
| | | /*生成产量工时*/ |
| | | //校验如果这个人这个检测项目已经添加过了则不需要再新增 |
| | |
| | | map.put("msgtype", "text");//消息类型 text:文本 |
| | | map.put("agentid", 1000517);//应用id |
| | | HashMap<String, Object> hashMap = new HashMap<>(); |
| | | hashMap.put("content", "您有一条检验任务待复核消息,订单号是:" + insOrder.getEntrustCode() + ",样品名称为:" + insSample.getSample() + |
| | | hashMap.put("content", "您有一条检验任务待复核消息,订单号是:" + insOrder.getEntrustCode()+"站点是:"+submitPlanDto.getLaboratory() + ",样品名称为:" + ",样品名称为:" + insSample.getSample() + |
| | | ",请前往LIMS系统查看。请点击<a href=\"https://ztwxlims.ztt.cn:7443/enter\">中天通信LIMS系统 </a>"); |
| | | map.put("text", hashMap);//消息内容 |
| | | map.put("safe", 0);//是否保密消息.0否 |