| | |
| | | @Resource |
| | | private InsOrderFileMapper insOrderFileMapper; |
| | | |
| | | @Resource |
| | | FuSheUtils fuSheUtils; |
| | | |
| | | @Override |
| | | public Map<String, Object> selectInsOrderPlanList(Page page, InsOrderPlanDTO insOrderPlanDTO) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | |
| | | //样品 |
| | | insProducts = insSampleMapper.getInsProduct1(id, laboratory); |
| | | if (insProducts.size() == 0) { |
| | | insProducts = insSampleMapper.getIns2Product1(id, laboratory); |
| | | insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() |
| | | .eq(InsProduct::getInsSampleId, id) |
| | | .eq(InsProduct::getState, 1) |
| | | .eq(InsProduct::getSonLaboratory, laboratory)); |
| | | for (InsProduct insProduct : insProducts) { |
| | | List<InsProductResult2> insProductResult2List = insProductResult2Mapper.selectList(Wrappers.<InsProductResult2>lambdaQuery() |
| | | .eq(InsProductResult2::getInsProductId, insProduct.getId()).isNull(InsProductResult2::getNum)); |
| | | insProduct.setInsProductResult2(insProductResult2List); |
| | | InsProductResult insProductResult = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery() |
| | | .eq(InsProductResult::getInsProductId, insProduct.getId()).isNull(InsProductResult::getNum)); |
| | | insProduct.setInsProductResult(insProductResult); |
| | | } |
| | | } |
| | | /*if (insProducts.size() == 0) { |
| | | insProducts = insSampleMapper.getIns2Product1(id, laboratory); |
| | | }*/ |
| | | break; |
| | | case 1: |
| | | //光纤带 |
| | |
| | | public Map<String, Object> getFileList(Page page, InsOrderFile insOrderFile) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("head", PrintChina.printChina(InsOrderFile.class)); |
| | | IPage<InsOrderFile> insOrderFileIPage = insOrderFileMapper.getFileList(page, QueryWrappers.queryWrappers(insOrderFile)); |
| | | Integer insOrderId = insOrderFile.getInsOrderId(); |
| | | insOrderFile.setInsOrderId(null); |
| | | String sonLaboratory = null; |
| | | if (ObjectUtils.isNotEmpty(insOrderFile.getSonLaboratory())) { |
| | | sonLaboratory = insOrderFile.getSonLaboratory(); |
| | | insOrderFile.setSonLaboratory(null); |
| | | } |
| | | IPage<InsOrderFile> insOrderFileIPage = insOrderFileMapper.getFileList(page, QueryWrappers.queryWrappers(insOrderFile), insOrderId, sonLaboratory); |
| | | map.put("body", insOrderFileIPage); |
| | | return map; |
| | | } |
| | | |
| | | @Override |
| | | public int uploadFile(Integer orderId, MultipartFile file) { |
| | | public int uploadFile(Integer orderId, MultipartFile file, String sonLaboratory) { |
| | | String urlString; |
| | | String pathName; |
| | | String path; |
| | |
| | | if (!realpath.exists()) { |
| | | realpath.mkdirs(); |
| | | } |
| | | pathName = UUID.randomUUID() + "_" + file.getOriginalFilename(); |
| | | pathName = file.getOriginalFilename().replace("#", "&"); |
| | | urlString = realpath + "/" + pathName; |
| | | file.transferTo(new File(urlString)); |
| | | insOrderFile.setFileUrl(pathName); |
| | | return insOrderFileMapper.insert(insOrderFile); |
| | | if (ObjectUtils.isNotEmpty(sonLaboratory)) { |
| | | insOrderFile.setSonLaboratory(sonLaboratory); |
| | | //删除重复的数据 |
| | | insOrderFileMapper.delete(Wrappers.<InsOrderFile>lambdaQuery() |
| | | .eq(InsOrderFile::getInsOrderId, orderId) |
| | | .eq(InsOrderFile::getType, insOrderFile.getType()) |
| | | .eq(InsOrderFile::getFileName, insOrderFile.getFileName()) |
| | | .eq(InsOrderFile::getSonLaboratory, insOrderFile.getSonLaboratory()) |
| | | .eq(InsOrderFile::getFileUrl, insOrderFile.getFileUrl())); |
| | | } else { |
| | | //删除重复的数据 |
| | | insOrderFileMapper.delete(Wrappers.<InsOrderFile>lambdaQuery() |
| | | .eq(InsOrderFile::getInsOrderId, orderId) |
| | | .eq(InsOrderFile::getType, insOrderFile.getType()) |
| | | .eq(InsOrderFile::getFileName, insOrderFile.getFileName()) |
| | | .isNull(InsOrderFile::getSonLaboratory) |
| | | .eq(InsOrderFile::getFileUrl, insOrderFile.getFileUrl())); |
| | | } |
| | | insOrderFileMapper.insert(insOrderFile); |
| | | //如果是辐射试验(近场/远程上传的csv文件) |
| | | String[] split = filename.split("\\."); |
| | | if (ObjectUtils.isNotEmpty(sonLaboratory) && (sonLaboratory.equals("近场") || sonLaboratory.equals("远场")) && |
| | | split[split.length - 1].equals("csv")) { |
| | | //判断是哪种csv文件,是否有—— |
| | | if (!file.getOriginalFilename().contains("——")) { |
| | | fuSheUtils.getFuSheWord1(sonLaboratory, insOrderFile); |
| | | } else { |
| | | fuSheUtils.getFuSheWord2(sonLaboratory, insOrderFile); |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | System.err.println("附件上传错误"); |
| | | return 0; |
| | | } |
| | | return 0; |
| | | } |
| | | |
| | | @Override |
| | |
| | | //判断该订单是否站点任务有(继续试验或者是结束试验) |
| | | List<InsOrderState> orderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery() |
| | | .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) |
| | | .and(wrapper -> wrapper |
| | | .eq(InsOrderState::getInsState, 5) |
| | | .or() |
| | | .eq(InsOrderState::getInsState, 6) |
| | | )); |
| | | .eq(InsOrderState::getInsState, 5)); |
| | | if (CollectionUtils.isEmpty(orderStates)) { |
| | | throw new ErrorException("该样品的检验任务还没有结束试验,暂时无法出库!"); |
| | | List<InsOrderState> orderStates1 = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery() |
| | | .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) |
| | | .eq(InsOrderState::getLaboratory, sonLaboratory) |
| | | .eq(InsOrderState::getInsState, 6)); |
| | | if (CollectionUtils.isEmpty(orderStates1)) { |
| | | throw new ErrorException("该样品的检验任务还没有结束试验或继续试验,暂时无法出库!"); |
| | | } |
| | | } |
| | | warehouseService.outWarehouse(sampleCode); |
| | | boolean a = true; |
| | | warehouseService.outWarehouse(sampleCode, a); |
| | | return 0; |
| | | } |
| | | |
| | |
| | | insProductResultMapper.delete(Wrappers.<InsProductResult>lambdaQuery() |
| | | .eq(InsProductResult::getInsProductId, insProductResult.getInsProductId()) |
| | | .eq(InsProductResult::getNum, insProductResult.getNum())); |
| | | insProductResult.setEquipValue("[{\"v\":\"" + insProductResult.getEquipValue() + "\"}]"); |
| | | insProductResult.setEquipName("[{\"v\":\"" + insProductResult.getEquipName() + "\"}]"); |
| | | insProductResultMapper.insert(insProductResult); |
| | | return 0; |
| | | } |
| | |
| | | Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); |
| | | List<InsUnPass> insUnPasses = new ArrayList<>(); |
| | | /*样品下的项目只要有一个项目不合格则检验结果为0,否则为1*/ |
| | | //这里的insSamples是订单下的所有样品包括("/") |
| | | List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId)); |
| | | for (InsSample insSample : samples) { |
| | | List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() |
| | |
| | | //如果订单类型是原理样机,则该订单直接闭环 |
| | | InsOrder insOrder = insOrderMapper.selectById(orderId); |
| | | if (insOrder.getFormType().equals("原理样机")) { |
| | | for (InsSample sample : samples) { |
| | | //出库 |
| | | try { |
| | | outInsOrderState(laboratory, sample.getSampleCode()); |
| | | } catch (Exception e) { |
| | | |
| | | } |
| | | } |
| | | insOrder.setState(4); |
| | | insOrderMapper.updateById(insOrder); |
| | | } |
| | |
| | | .eq(InsOrderState::getLaboratory, submitPlanDto.getLaboratory()) |
| | | .set(InsOrderState::getInsState, 3) |
| | | .set(InsOrderState::getVerifyUser, submitPlanDto.getVerifyUser())); |
| | | InsOrder insOrder = insOrderMapper.selectById(submitPlanDto.getOrderId()); |
| | | /*这个情况先关闭----如果是C类订单且是下发到质量部,则直接复核通过(结束试验)*/ |
| | | // InsOrder insOrder = insOrderMapper.selectById(orderId); |
| | | // if (insOrder.getOrderType().equals("C") && insOrder.getDepartmentLims().equals("质量部")) { |
| | | // try { |
| | | // verifyPlan(orderId, laboratory, 2, null); |
| | |
| | | info.setViewStatus(false); |
| | | info.setJumpPath("b1-inspect-order-plan"); |
| | | informationNotificationService.addInformationNotification(info); |
| | | //todo 企业微信消息推送@zss |
| | | /* HashMap<String, Object> map = new HashMap<>(); |
| | | // todo 企业微信消息推送@zss |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | String account = userMapper.selectById(userId).getAccount(); |
| | | map.put("touser", *//*account*//*"ZT-012117");//接收消息成员的账号'ZT-031292'这种类型(如果有多个用'|'分隔) |
| | | map.put("touser", account);//接收消息成员的账号'ZT-031292'这种类型(如果有多个用'|'分隔) |
| | | map.put("toparty", "");//接收部门id |
| | | map.put("totag", "");//消息标签id |
| | | map.put("msgtype", "text");//消息类型 text:文本 |
| | | map.put("agentid", 1000513);//应用id |
| | | map.put("agentid", 1000517);//应用id |
| | | HashMap<String, Object> hashMap = new HashMap<>(); |
| | | hashMap.put("content", "您有一条检验任务待复核消息,请前往LIMS系统查看。<a href=\"http://10.1.13.77/enter\"> </a>"); |
| | | map.put("text", JSONArray.toJSONString(hashMap));//消息内容 |
| | | hashMap.put("content", "您有一条检验任务待复核消息,订单号是:"+insOrder.getEntrustCode()+",请前往LIMS系统查看。<a href=\"https://ztwxlims.ztt.cn:7443/enter\">中天通信LIMS系统 </a>"); |
| | | map.put("text", hashMap);//消息内容 |
| | | map.put("safe", 0);//是否保密消息.0否 |
| | | map.put("enable_id_trans", 0);//是否开启id转译.0否 |
| | | map.put("enable_duplicate_check", 0);//是否开启重复消息检查.0否 |
| | | qywxApi.send(map);*/ |
| | | qywxApi.send(map); |
| | | // } |
| | | //复核人--检验单相关负责人 |
| | | InsSampleUser insSampleUser = new InsSampleUser(); |
| | |
| | | insSampleUser.setState(1); |
| | | insSampleUser.setSonLaboratory(submitPlanDto.getLaboratory()); |
| | | insSampleUserMapper.insert(insSampleUser); |
| | | /*//校验一下result表 |
| | | CompletableFuture.supplyAsync(() -> { |
| | | List<Integer> ips = insProducts.stream().map(InsProduct::getId).distinct().collect(Collectors.toList()); |
| | | for (Integer ip : ips) { |
| | | List<InsProductResult> insProductResults = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery() |
| | | .eq(InsProductResult::getNum, orderState.getNum()) |
| | | .eq(InsProductResult::getInsProductId, ip)); |
| | | if (insProductResults.size() > 1) { |
| | | for (int i = 1; i < insProductResults.size(); i++) { |
| | | insProductResultMapper.deleteById(insProductResults.get(i)); |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | });*/ |
| | | /*生成电路试验的站点报告并上传到附件中*/ |
| | | if (submitPlanDto.getLaboratory().equals("电路试验")) { |
| | | //wordUtils.generateWord(submitPlanDto.getTerm(), orderState); |
| | | //todo 电路站点报告 正式库部署放开 |
| | | try { |
| | | wordUtils.generateWord(submitPlanDto.getNote(), submitPlanDto.getTerm(), orderState); |
| | | wordUtils.generateWord(submitPlanDto.getTerm(), orderState); |
| | | } catch (Exception e) { |
| | | throw new ErrorException("电路试验的站点报告生成有误,请联系开发人员调整!"); |
| | | } |
| | |
| | | RedisUtil.delsLike(key);*/ |
| | | |
| | | /*生成产量工时*/ |
| | | //查询检验单信息 |
| | | InsOrder insOrder = insOrderMapper.selectById(submitPlanDto.getOrderId()); |
| | | //校验如果这个人这个检测项目已经添加过了则不需要再新增 |
| | | //首先判断当前人的当前时间是否是排班时间内,如果不是就是加班 |
| | | LocalDateTime today = LocalDateTime.of(LocalDate.now(), LocalTime.MIDNIGHT); |