From 3b6b3e356583e7ae3d264b4c59178c8b4087e5c4 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期四, 06 六月 2024 10:57:34 +0800 Subject: [PATCH] 检验任务的附件+提交前校验+复核确认新增不合格项目 --- inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 101 insertions(+), 13 deletions(-) diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java index 7e312bd..ed801ae 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java @@ -3,6 +3,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.UUID; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; @@ -34,11 +35,13 @@ import com.yuanchu.mom.utils.QueryWrappers; import com.yuanchu.mom.vo.InsOrderPlanTaskSwitchVo; import com.yuanchu.mom.vo.InsOrderPlanVO; +import com.yuanchu.mom.vo.Result; import org.apache.commons.io.IOUtils; import org.apache.poi.xwpf.usermodel.*; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.*; @@ -93,6 +96,9 @@ private InsProductUserMapper insProductUserMapper; @Resource + private InsUnPassService insUnPassService; + + @Resource AuxiliaryOutputWorkingHoursMapper auxiliaryOutputWorkingHoursMapper; @Resource @@ -109,6 +115,9 @@ @Resource private InsBushingService insBushingService; + + @Resource + private InsOrderFileMapper insOrderFileMapper; @Override public Map<String, Object> selectInsOrderPlanList(Page page, InsOrderPlanDTO insOrderPlanDTO) { @@ -175,7 +184,7 @@ @Override public List<InsProduct> getInsProduct(Integer id, Integer type, String laboratory) { List<InsProduct> insProducts = new ArrayList<>(); - switch (type){ + switch (type) { case 0: insProducts = insSampleMapper.getInsProduct1(id, laboratory); break; @@ -191,6 +200,65 @@ if (BeanUtil.isEmpty(insProducts)) return null; getTemplateThing(set, map2, insProducts); return insProducts; + } + + @Override + public List<String> checkSubmitPlan(Integer orderId, String laboratory) { + List<String> collect = new ArrayList<>(); + 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).eq(InsProduct::getInsResult, 0)); + if (insProducts.size() > 0) { + collect = insProducts.stream().map(insProduct -> { + return insProduct.getInspectionItem() + "-" + insProduct.getInspectionItemSubclass(); + }).collect(Collectors.toList()); + } + return collect; + } + + @Override + 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)); + map.put("body", insOrderFileIPage); + return map; + } + + @Override + public int uploadFile(Integer orderId, MultipartFile file) { + String urlString; + String pathName; + String path; + String filename = file.getOriginalFilename(); + String contentType = file.getContentType(); + InsOrderFile insOrderFile = new InsOrderFile(); + insOrderFile.setInsOrderId(orderId); + insOrderFile.setFileName(filename); + if (contentType != null && contentType.startsWith("image/")) { + // 鏄浘鐗� + path = imgUrl; + insOrderFile.setType(1); + } else { + // 鏄枃浠� + path = wordUrl; + insOrderFile.setType(2); + } + try { + File realpath = new File(path); + if (!realpath.exists()) { + realpath.mkdirs(); + } + pathName = UUID.randomUUID() + "_" + file.getOriginalFilename(); + urlString = realpath + "/" + pathName; + file.transferTo(new File(urlString)); + insOrderFile.setFileUrl(pathName); + return insOrderFileMapper.insert(insOrderFile); + } catch (Exception e) { + e.printStackTrace(); + System.err.println("闄勪欢涓婁紶閿欒"); + return 0; + } } @Override @@ -368,6 +436,7 @@ 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"))); Long count = insOrderStateMapper.selectCount(Wrappers.<InsOrderState>lambdaQuery().eq(InsOrderState::getInsOrderId, orderId).ne(InsOrderState::getInsState, 5)); if (count == 0 && num == 5) { + List<InsUnPass> insUnPasses = new ArrayList<>(); /*鏍峰搧涓嬬殑椤圭洰鍙鏈変竴涓」鐩笉鍚堟牸鍒欐楠岀粨鏋滀负0,鍚﹀垯涓�1*/ List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId)); for (InsSample insSample : insSamples) { @@ -379,7 +448,25 @@ insSample.setInsResult(1); } insSampleMapper.updateById(insSample); + /*澶嶆牳閫氳繃鍚庯紝灏嗕笉鍚堟牸鐨勯」鐩俊鎭坊鍔犲埌ins_un_pass琛ㄤ腑*/ + for (InsProduct insProduct : insProducts) { + if (insProduct.getInsResult() == 0) { + InsUnPass insUnPass = new InsUnPass(); + insUnPass.setModel(insSample.getModel()); + insUnPass.setSample(insSample.getSample()); + insUnPass.setInspectionItem(insProduct.getInspectionItem()); + insUnPass.setInspectionItemSubclass(insProduct.getInspectionItemSubclass()); + insUnPass.setLastValue(insProduct.getLastValue()); + insUnPass.setEntrustCode(insOrderMapper.selectById(orderId).getEntrustCode()); + List<Integer> userIds = insProductUserMapper.selectList(Wrappers.<InsProductUser>lambdaQuery().eq(InsProductUser::getInsProductId, insProduct.getId())).stream().map(InsProductUser::getCreateUser).distinct().collect(Collectors.toList()); + String name = userMapper.selectBatchIds(userIds).stream().map(User::getName).collect(Collectors.joining(",")); + insUnPass.setName(name); + insUnPasses.add(insUnPass); + } + } + insUnPassService.saveBatch(insUnPasses); } + InsOrder insOrder = insOrderMapper.selectById(orderId); Map<String, String> user = insProductMapper.selectUserById(insOrder.getUserId()); List<SampleProductDto> samples = insSampleMapper.selectSampleProductListByOrderId(orderId); @@ -398,7 +485,7 @@ 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+"")); + productSize.set(productSize.get() + Integer.parseInt(productCount + "")); models.add(a.getModel()); standardMethod.add(baseMapper.getStandardMethodCode(a.getStandardMethodListId())); Set<String> templateSet = new HashSet<>(); @@ -536,8 +623,8 @@ 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())); + 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: @@ -574,8 +661,8 @@ 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())); + 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: @@ -610,7 +697,7 @@ } TextRenderData[] text2 = text.toArray(new TextRenderData[0]); rowRenderData = Rows.of(text2).rowAtleastHeight(1).center().create(); - if(rowRenderData.getCells().size()!=0){ + if (rowRenderData.getCells().size() != 0) { rows.add(rowRenderData); } TableRenderData tableRenderData = new TableRenderData(); @@ -621,7 +708,7 @@ System.out.print(cell.getParagraphs().get(0).getContents()); } System.out.println("");*/ - if(row.getCells().size()!=countSize){ + if (row.getCells().size() != countSize) { throw new ErrorException("姣忚鍗曞厓鏍间笉鐩哥瓑"); } } @@ -699,13 +786,14 @@ 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{ + 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); @@ -849,7 +937,7 @@ int count = 0; for (InsProduct product : insProducts) { count++; - str += "<br/>"+count + "锛�" +product.getInspectionItem() + " " + product.getInspectionItemSubclass() + "<br/>"; + str += "<br/>" + count + "锛�" + product.getInspectionItem() + " " + product.getInspectionItemSubclass() + "<br/>"; } throw new ErrorException("<strong>瀛樺湪寰呮楠岀殑椤圭洰锛�</strong><br/>" + str); } -- Gitblit v1.9.3