| | |
| | | @Resource |
| | | private UserMapper userMapper; |
| | | |
| | | @Resource |
| | | private CustomMapper customMapper; |
| | | |
| | | @Value("${file.path}") |
| | | private String imgUrl; |
| | | |
| | |
| | | Integer num = (type == 1 ? 5 : 4); |
| | | LocalDateTime now = LocalDateTime.now(); |
| | | insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate().eq(InsOrderState::getInsOrderId, orderId).eq(InsOrderState::getLaboratory, laboratory).set(InsOrderState::getInsTime, now).set(InsOrderState::getInsState, num).set(InsOrderState::getVerifyTell, tell).set(InsOrderState::getVerifyUser, getLook.selectPowerByMethodAndUserId(null).get("userId"))); |
| | | List<InsOrderState> insOrderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery().eq(InsOrderState::getInsOrderId, orderId)); |
| | | long count = insOrderStates.stream().filter(a -> a.getInsState() == 5).count(); |
| | | if (count == insOrderStates.size() && num == 5) { |
| | | Long count = insOrderStateMapper.selectCount(Wrappers.<InsOrderState>lambdaQuery().eq(InsOrderState::getInsOrderId, orderId).ne(InsOrderState::getInsState, 5)); |
| | | if (count == 0 && num == 5) { |
| | | /*样品下的项目只要有一个项目不合格则检验结果为0,否则为1*/ |
| | | List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId)); |
| | | for (InsSample insSample : insSamples) { |
| | |
| | | } |
| | | InsOrder insOrder = insOrderMapper.selectById(orderId); |
| | | Map<String, String> user = insProductMapper.selectUserById(insOrder.getUserId()); |
| | | List<SampleProductDto> samples = insSampleMapper.selectSampleProductListByOrderId(orderId); |
| | | List<SampleProductDto> samples = insSampleMapper.selectSampleProductListByOrderId2(orderId); |
| | | InsReport insReport = new InsReport(); |
| | | insReport.setCode(insOrder.getEntrustCode()); |
| | | insReport.setInsOrderId(orderId); |
| | |
| | | Set<String> models = new HashSet<>(); |
| | | AtomicReference<Integer> productSize = new AtomicReference<>(0); |
| | | String[] monthNames = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; |
| | | AtomicReference<String> resultCh = new AtomicReference<>(""); |
| | | AtomicReference<String> resultEn = new AtomicReference<>(""); |
| | | samples.forEach(a -> { |
| | | Long productCount = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsSampleId, a.getId())); |
| | | productSize.set(productSize.get()+Integer.parseInt(productCount+"")); |
| | | models.add(a.getModel()); |
| | | standardMethod.add(baseMapper.getStandardMethodCode(a.getStandardMethodListId())); |
| | | Set<String> templateSet = new HashSet<>(); |
| | | getTemplateThing(set, map2, a); |
| | | for (InsProduct b : a.getInsProduct()) { |
| | | productSize.set(productSize.get() + 1); |
| | | if (b.getInsProductResult() != null) { |
| | | List<JSONObject> jsonObjects = JSON.parseArray(b.getInsProductResult().getEquipValue(), JSONObject.class); |
| | | for (JSONObject jsonObject : jsonObjects) { |
| | |
| | | textRenderData.setText("√"); |
| | | break; |
| | | case 0: |
| | | resultCh.set(resultCh.get() + "、" + p.getInspectionItem() + (Objects.equals(p.getInspectionItemSubclass(), "") ?"":" "+p.getInspectionItemSubclass())); |
| | | resultEn.set(resultEn.get() + "、" + p.getInspectionItemEn() + ((Objects.equals(p.getInspectionItemSubclassEn(), "")||Objects.equals(p.getInspectionItemSubclassEn(), null)) ?"":" "+p.getInspectionItemSubclassEn())); |
| | | textRenderData.setText("×"); |
| | | break; |
| | | default: |
| | |
| | | textRenderData.setText("✔"); |
| | | break; |
| | | case 0: |
| | | resultCh.set(resultCh.get() + "、" + p.getInspectionItem() + (p.getInspectionItemSubclass().equals("")?"":" "+p.getInspectionItemSubclass())); |
| | | resultEn.set(resultEn.get() + "、" + p.getInspectionItemEn() + ((Objects.equals(p.getInspectionItemSubclassEn(), "")||Objects.equals(p.getInspectionItemSubclassEn(), null)) ?"":" "+p.getInspectionItemSubclassEn())); |
| | | textRenderData.setText("✖"); |
| | | break; |
| | | default: |
| | |
| | | } |
| | | TextRenderData[] text2 = text.toArray(new TextRenderData[0]); |
| | | rowRenderData = Rows.of(text2).rowAtleastHeight(1).center().create(); |
| | | if(rowRenderData.getCells().size()!=0){ |
| | | rows.add(rowRenderData); |
| | | } |
| | | TableRenderData tableRenderData = new TableRenderData(); |
| | | tableRenderData.setRows(rows); |
| | | int countSize = tableRenderData.getRows().get(0).getCells().size(); |
| | | for (RowRenderData row : tableRenderData.getRows()) { |
| | | /*for (CellRenderData cell : row.getCells()) { |
| | | System.out.print(cell.getParagraphs().get(0).getContents()); |
| | | } |
| | | System.out.println("");*/ |
| | | if(row.getCells().size()!=countSize){ |
| | | throw new ErrorException("每行单元格不相等"); |
| | | } |
| | | } |
| | | TableStyle tableStyle = new TableStyle(); |
| | | tableStyle.setColWidths(new int[]{650, 1600, 2000, 750, 2800, 1100, 1100}); |
| | | tableStyle.setWidth("10000"); |
| | |
| | | } catch (Exception e) { |
| | | throw new ErrorException("找不到检验人的签名"); |
| | | } |
| | | if (signatureUrl == null || "".equals(signatureUrl)) { |
| | | throw new ErrorException("找不到检验人的签名"); |
| | | Custom custom = customMapper.selectById(user.get("company")); |
| | | if(!resultCh.get().equals("")){ |
| | | resultCh.set("依据委托要求,"+resultCh.get().replaceFirst("、", "")+"等所检项目不符合要求,其余所检项目均符合要求。"); |
| | | resultEn.set("According to commissioned requirements,"+resultEn.get().replaceFirst("、", "")+" these inspected items do not meet the requirements, all other inspected items meet the requirements."); |
| | | }else{ |
| | | resultCh.set("依据委托要求,所检项目均符合要求。"); |
| | | resultEn.set("According to commissioned requirements, all the tested items meet the requirements."); |
| | | } |
| | | XWPFTemplate template = XWPFTemplate.compile(url, builder.build()).render( |
| | | new HashMap<String, Object>() {{ |
| | | put("order", insOrder); |
| | | put("report", insReport); |
| | | put("user", user); |
| | | put("custom", custom); |
| | | put("sampleSize", samples.size()); |
| | | put("tables", tables); |
| | | put("tableSize", tables.size() + 1); |
| | |
| | | put("seal2", null); |
| | | put("formTypeCh", formType); |
| | | put("formTypeEn", insOrder.getFormType()); |
| | | put("resultCh", resultCh.get()); |
| | | put("resultEn", resultEn.get()); |
| | | }}); |
| | | try { |
| | | String name = insReport.getCode().replace("/", "") + ".docx"; |
| | |
| | | public int submitPlan(Integer orderId, String laboratory, Integer verifyUser) { |
| | | List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId).select(InsSample::getId)); |
| | | List<Integer> ids = insSamples.stream().map(a -> a.getId()).collect(Collectors.toList()); |
| | | List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().in(InsProduct::getInsSampleId, ids).eq(InsProduct::getSonLaboratory, laboratory).eq(InsProduct::getState, 1).isNull(InsProduct::getInsResult)); |
| | | List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().in(InsProduct::getInsSampleId, ids).eq(InsProduct::getSonLaboratory, laboratory).eq(InsProduct::getState, 1).isNull(InsProduct::getInsResult).isNull(InsProduct::getInsFiberId).isNull(InsProduct::getInsFibersId)); |
| | | insProducts.addAll(insProductMapper.selectFiberInsProduct(ids)); |
| | | if (insProducts.size() > 0) { |
| | | String str = ""; |
| | | int count = 0; |
| | | for (InsProduct product : insProducts) { |
| | | str += product.getInspectionItem() + " " + product.getInspectionItemSubclass() + ";"; |
| | | count++; |
| | | str += "<br/>"+count + ":" +product.getInspectionItem() + " " + product.getInspectionItemSubclass() + "<br/>"; |
| | | } |
| | | throw new ErrorException("以下是未检验的项目:" + str); |
| | | throw new ErrorException("<strong>存在待检验的项目:</strong><br/>" + str); |
| | | } |
| | | insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate().eq(InsOrderState::getInsOrderId, orderId).eq(InsOrderState::getLaboratory, laboratory).set(InsOrderState::getInsTime, LocalDateTime.now()).set(InsOrderState::getInsState, 3).set(InsOrderState::getVerifyUser, verifyUser)); |
| | | Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); |