From ede49ec7133b86d9db9dc1f0328418dcdaaef8aa Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期五, 28 二月 2025 15:16:55 +0800 Subject: [PATCH] 报告修改+实验结果 --- inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 189 +++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 156 insertions(+), 33 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 d185f98..af24757 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 @@ -311,6 +311,7 @@ @Override public Object uploadFile(Integer orderId, MultipartFile file, String sonLaboratory, Integer sampleId) { + InsOrder insOrder = insOrderMapper.selectById(orderId); String urlString; String pathName; String path; @@ -353,6 +354,8 @@ dianLuUtils.readDianLuFile1(sampleId, insOrderFile); } else if (ObjectUtils.isNotEmpty(sonLaboratory) && sonLaboratory.equals("鐢佃矾璇曢獙") && split[split.length - 1].equals("csv") && filename.contains("椹绘尝")) { dianLuUtils.readDianLuFile2(sampleId, insOrderFile); + } else if (ObjectUtils.isNotEmpty(sonLaboratory) && sonLaboratory.equals("鐢佃矾璇曢獙") && split[split.length - 1].equals("csv") && insOrder.getSampleType().equals("鏃犳簮鍣ㄤ欢")) { + dianLuUtils.readDianLuFile3(sampleId, insOrderFile); } } catch (Exception e) { throw new ErrorException(e.getMessage()); @@ -649,6 +652,16 @@ } catch (Exception e) { result.setAfterCheck("");//'' } + //瀹為獙缁撴灉 + try { + JSONObject resValue = JSON.parseObject(JSON.toJSONString(jo.get("testResult"))); + if (resValue.get("v") != null) { + Object o = JSON.parseObject(JSON.toJSONString(resValue.get("v"))).get("v"); + result.setTestResult(o.equals("") ? null : (o.toString())); + } + } catch (Exception e) { + result.setTestResult("");//'' + } //璁惧缂栧彿 if (jo.get("equipValue") != null) { JSONArray jsonArray2 = JSON.parseArray(JSON.toJSONString(jo.get("equipValue"))); @@ -888,7 +901,7 @@ for (InsProductResultDto insProductResultDto : insProductResultDtos.getInsProductResultDtos()) { saveInsContext2(insProductResultDto); } - return 1; + return 1; } //娓╂箍搴﹁瘯楠�+鍔熺巼璇曢獙鐨勪繚瀛樻楠屽唴瀹� @@ -917,19 +930,19 @@ } } // 澶勭悊鍏朵粬姣旇緝鏉′欢 - if (ask.startsWith(">")) { + if (ask.startsWith(">") || ask.startsWith("锛�")) { double threshold = Double.parseDouble(ask.substring(1)); return s > threshold; } else if (ask.startsWith("鈮�")) { double threshold = Double.parseDouble(ask.substring(1)); return s >= threshold; - } else if (ask.startsWith("<")) { + } else if (ask.startsWith("<")|| ask.startsWith("锛�")) { double threshold = Double.parseDouble(ask.substring(1)); return s < threshold; } else if (ask.startsWith("鈮�")) { double threshold = Double.parseDouble(ask.substring(1)); return s <= threshold; - } else if (ask.equals("=")) { + } else if (ask.equals("=")|| ask.startsWith("锛�")) { double exactValue = Double.parseDouble(ask.substring(1)); return s == exactValue; } @@ -976,7 +989,7 @@ @Override @Transactional(rollbackFor = Exception.class) - public int verifyPlan(Integer sampleId, String laboratory, Integer type, String tell) throws IOException { + public int verifyPlan(Integer sampleId, String laboratory, Integer type, String tell) { LocalDateTime now = LocalDateTime.now(); Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); List<InsUnPass> insUnPasses = new ArrayList<>(); @@ -1058,26 +1071,127 @@ .set(InsOrderState::getVerifyTell, tell) .set(InsOrderState::getVerifyUser, userId)); //濡傛灉璁㈠崟绫诲瀷鏄師鐞嗘牱鏈�,鍒欒璁㈠崟鐩存帴闂幆 - if (insOrder.getFormType().equals("鍘熺悊鏍锋満")) { - //鍑哄簱 - try { - List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, insSample.getInsOrderId())); - for (InsSample sample : insSamples) { - outInsOrderState(laboratory, sample.getSampleCode(), insOrder.getEntrustCode()); - } - } catch (Exception e) { + 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){ } } - insOrder.setState(4); - insOrderMapper.updateById(insOrder); + /*鐢熸垚瀵瑰簲鐨勬楠屾姤鍛�*/ + List<InsReportDto1> insReportDto1s=insOrderUserMapper.selectInsReportDto1(insOrder.getId()); + createReport(insOrder.getId(),insReportDto1s); break; } } return 1; } - private void getTemplateThing(Set<Integer> set, Map<Integer, String> map2, List<InsProduct> insProducts) { + @Override + @Transactional(rollbackFor = Exception.class) + public int verifyPlan2(Integer sampleId, String laboratory, Integer type, String tell) { + Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); + InsSample insSample = insSampleMapper.selectById(sampleId); + InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId()); + /*type=0 鍐嶆璇曢獙; type=1 缁х画璇曢獙 ; type=2 缁撴潫璇曢獙*/ + // 鏌ヨ鏍规嵁 id 鍊掑簭鎺掑垪鐨勭涓�鏉¤褰� + InsOrderState record = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery() + .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) + .eq(InsOrderState::getInsSampleId, sampleId) + .eq(InsOrderState::getLaboratory, laboratory) + .orderByDesc(InsOrderState::getId) + .last("LIMIT 1")); // 纭繚鍙彇涓�鏉¤褰� + if (record != null) { + switch (type) { + case 0: + //鍐嶆璇曢獙:璇ュ崟瀛愰��鍥炲埌妫�楠岀姸鎬�(鎺掑簭鏀规垚褰撳墠鐨勬渶鍚�),娆℃暟閫掑(淇濈暀浠ュ墠鐨勬暟鎹�)锛� + insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() + .eq(InsOrderState::getId, record.getId()) + .set(InsOrderState::getInsTime, LocalDateTime.now()) + .set(InsOrderState::getInsState, 4) + .set(InsOrderState::getVerifyTell, tell) + .set(InsOrderState::getVerifyUser, userId) + .set(InsOrderState::getNum, record.getNum() + 1)//娆℃暟鍔�1 + .set(InsOrderState::getCreateTime, LocalDateTime.now())); + break; + case 1: + //缁х画璇曢獙:璇ユ牱鍝佽绔欑偣浠诲姟缁撴潫(鍙互鍐嶆鎵爜妫�楠�)锛� + //鍏堝垽鏂笂涓�涓鏍告槸浠�涔堢粨璁� + if (record.getInsState()==4){ + insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() + .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) + .eq(InsOrderState::getInsSampleId, sampleId) + .eq(InsOrderState::getLaboratory, laboratory) + .set(InsOrderState::getInsState, 6) + .set(InsOrderState::getVerifyTell, tell) + .set(InsOrderState::getNum, record.getNum() - 1)//娆℃暟-1 + .set(InsOrderState::getVerifyUser, userId)); + }else { + insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() + .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) + .eq(InsOrderState::getInsSampleId, sampleId) + .eq(InsOrderState::getLaboratory, laboratory) + .set(InsOrderState::getInsState, 6) + .set(InsOrderState::getVerifyTell, tell) + .set(InsOrderState::getVerifyUser, userId)); + } + break; + case 2: + //缁撴潫璇曢獙:姝ゅ鎵樺崟鍋滄璇曢獙(鏃犳硶鍐嶆妫�楠�)銆� + //鍏堝垽鏂笂涓�涓鏍告槸浠�涔堢粨璁� + if (record.getInsState()==4){ + insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() + .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) + .eq(InsOrderState::getInsSampleId, sampleId) + .eq(InsOrderState::getLaboratory, laboratory) + .set(InsOrderState::getInsState, 5) + .set(InsOrderState::getNum, record.getNum() - 1)//娆℃暟-1 + .set(InsOrderState::getVerifyTell, tell) + .set(InsOrderState::getVerifyUser, userId)); + }else { + insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() + .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) + .eq(InsOrderState::getInsSampleId, sampleId) + .eq(InsOrderState::getLaboratory, laboratory) + .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); + break; + } + } + return 1; + } + + + /*鐢熸垚瀵瑰簲鐨勬楠屾姤鍛�*/ + private void createReport(Integer orderId,List<InsReportDto1> insReportDto1s){ + for (InsReportDto1 insReportDto1 : insReportDto1s) { + if (ObjectUtils.isNotEmpty(insReportDto1.getInsReportDto2s())){ + wordUtils.generateReport(orderId, insReportDto1); +// try{ +// wordUtils.generateReport(orderId, insReportDto1); +// }catch (Exception e){ +// throw new ErrorException("鎶ュ憡鏍煎紡鐢熸垚鏈夎,璇疯仈绯荤鐞嗗憳!"); +// } + } + } + } + + private void getTemplateThing + (Set<Integer> set, Map<Integer, String> map2, List<InsProduct> insProducts) { for (InsProduct product : insProducts) { if (product.getTemplateId() == null) { product.setTemplate(new ArrayList<>()); @@ -1115,6 +1229,7 @@ InsOrderUser insOrderUser = new InsOrderUser(); insOrderUser.setInsOrderStateId(orderState.getId()); insOrderUser.setSubmitUser(getLook.selectPowerByMethodAndUserId(null).get("userId")); + insOrderUser.setInsTime(orderState.getInsTime()); insOrderUser.setSubmitTime(LocalDateTime.now()); insOrderUser.setNum(orderState.getNum()); insOrderUser.setNote(ObjectUtils.isNotEmpty(submitPlanDto.getNote()) ? submitPlanDto.getNote() : null); @@ -1133,8 +1248,8 @@ String str = ""; int count = 0; for (InsProduct product : insProducts) { - //杈愬皠璇曢獙,娓╂箍搴﹁瘯楠�,鍔熺巼璇曢獙鐨勬楠岄」鐩�,涓嶉渶瑕佸幓鎵嬪姩濉啓妫�楠屽��,鍙渶瑕佷笂浼犺〃鏍兼枃浠跺氨鍙互浜�,鍚庡彴鎻愪氦鐨勬椂鍊欐牎楠岃烦杩囪繖涓楠岄」鐩� - if (product.getInspectionItem().equals("杈愬皠璇曢獙") || product.getInspectionItem().equals("娓╂箍搴﹁瘯楠�") || product.getInspectionItem().equals("鍔熺巼璇曢獙")) { + //娓╂箍搴﹁瘯楠�,鍔熺巼璇曢獙鐨勬楠岄」鐩�,涓嶉渶瑕佸幓鎵嬪姩濉啓妫�楠屽��,鍙渶瑕佷笂浼犺〃鏍兼枃浠跺氨鍙互浜�,鍚庡彴鎻愪氦鐨勬椂鍊欐牎楠岃烦杩囪繖涓楠岄」鐩� + if ( product.getInspectionItem().equals("娓╂箍搴﹁瘯楠�") || product.getInspectionItem().equals("鍔熺巼璇曢獙")) { product.setInsResult(3);//涓嶅垽瀹� insProductMapper.updateById(product); continue; @@ -1188,13 +1303,21 @@ insSampleUserMapper.insert(insSampleUser); /*鐢熸垚鐢佃矾璇曢獙鐨勭珯鐐规姤鍛婂苟涓婁紶鍒伴檮浠朵腑*/ if (submitPlanDto.getLaboratory().equals("鐢佃矾璇曢獙")) { -// wordUtils.generateWord(submitPlanDto.getTerm(), orderState); - //todo 鐢佃矾绔欑偣鎶ュ憡 姝e紡搴撻儴缃叉斁寮� - try { + if (!insOrder.getSampleType().equals("鏃犳簮鍣ㄤ欢")) { wordUtils.generateWord(submitPlanDto.getTerm(), orderState); - } catch (Exception e) { - throw new ErrorException("鐢佃矾璇曢獙鐨勭珯鐐规姤鍛婄敓鎴愭湁璇�,璇疯仈绯诲紑鍙戜汉鍛樿皟鏁�!"); + } else { + wordUtils.generateWord2(submitPlanDto.getTerm(), orderState); } + //todo 鐢佃矾绔欑偣鎶ュ憡 姝e紡搴撻儴缃叉斁寮� +// try { +// if (!insOrder.getSampleType().equals("鏃犳簮鍣ㄤ欢")) { +// wordUtils.generateWord(submitPlanDto.getTerm(), orderState); +// }else { +// wordUtils.generateWord2(submitPlanDto.getTerm(), orderState); +// } +// } catch (Exception e) { +// throw new ErrorException("鐢佃矾璇曢獙鐨勭珯鐐规姤鍛婄敓鎴愭湁璇�,璇疯仈绯诲紑鍙戜汉鍛樿皟鏁�!"); +// } } /*鐢熸垚浜ч噺宸ユ椂*/ //鏍¢獙濡傛灉杩欎釜浜鸿繖涓娴嬮」鐩凡缁忔坊鍔犺繃浜嗗垯涓嶉渶瑕佸啀鏂板 @@ -1271,8 +1394,8 @@ InsSample insSample = insSampleMapper.selectById(orderState.getInsSampleId()); /*鍒犻櫎璁板綍妫�楠屼换鍔℃瘡娆$殑澶囨敞淇℃伅*/ insOrderUserMapper.delete(Wrappers.<InsOrderUser>lambdaQuery() - .eq(InsOrderUser::getInsOrderStateId,orderState.getId()) - .eq(InsOrderUser::getNum,orderState.getNum())); + .eq(InsOrderUser::getInsOrderStateId, orderState.getId()) + .eq(InsOrderUser::getNum, orderState.getNum())); //鎾ら攢鎻愪氦 insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() .eq(InsOrderState::getInsOrderId, orderState.getInsOrderId()) @@ -1293,15 +1416,15 @@ informationNotificationService.addInformationNotification(info); //鍒犻櫎澶嶆牳浜�--妫�楠屽崟鐩稿叧璐熻矗浜� insSampleUserMapper.delete(Wrappers.<InsSampleUser>lambdaQuery() - .eq(InsSampleUser::getState,1) - .eq(InsSampleUser::getSonLaboratory,orderState.getLaboratory()) - .eq(InsSampleUser::getUserId,orderState.getVerifyUser()) - .eq(InsSampleUser::getInsSampleId,orderState.getInsSampleId())); + .eq(InsSampleUser::getState, 1) + .eq(InsSampleUser::getSonLaboratory, orderState.getLaboratory()) + .eq(InsSampleUser::getUserId, orderState.getVerifyUser()) + .eq(InsSampleUser::getInsSampleId, orderState.getInsSampleId())); //鍒犻櫎鐢熸垚鐨勬姤鍛� if (orderState.getLaboratory().equals("鐢佃矾璇曢獙")) { List<InsOrderFile> insOrderFiles = insOrderFileMapper.selectList(Wrappers.<InsOrderFile>lambdaQuery() .eq(InsOrderFile::getType, 2) - .like(InsOrderFile::getFileName,"鐢佃矾鍙傛暟.docx") + .like(InsOrderFile::getFileName, "鐢佃矾鍙傛暟.docx") .eq(InsOrderFile::getInsOrderId, insOrder.getId()) .eq(InsOrderFile::getInsSampleId, orderState.getInsSampleId()) .eq(InsOrderFile::getSonLaboratory, orderState.getLaboratory())); @@ -1316,9 +1439,9 @@ List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsSampleId, insSample.getId())); List<Integer> productIds = insProducts.stream().map(InsProduct::getId).distinct().collect(Collectors.toList()); auxiliaryOutputWorkingHoursMapper.delete(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() - .eq(AuxiliaryOutputWorkingHours::getSample,insSample.getSampleCode()) - .in(AuxiliaryOutputWorkingHours::getInsProductId,productIds) - .eq(AuxiliaryOutputWorkingHours::getNum,orderState.getNum())); + .eq(AuxiliaryOutputWorkingHours::getSample, insSample.getSampleCode()) + .in(AuxiliaryOutputWorkingHours::getInsProductId, productIds) + .eq(AuxiliaryOutputWorkingHours::getNum, orderState.getNum())); // todo 浼佷笟寰俊娑堟伅鎺ㄩ�丂zss HashMap<String, Object> map = new HashMap<>(); -- Gitblit v1.9.3