From 23875dab418476d3b01bbd784a161c9f2b6b6ea1 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期四, 19 九月 2024 16:25:12 +0800 Subject: [PATCH] 编号规则变更 --- inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java | 98 +++++++++++++++++++++++++++++++++++------------- 1 files changed, 71 insertions(+), 27 deletions(-) diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java index 3a719a9..cccbc18 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java @@ -25,6 +25,8 @@ import com.itextpdf.text.pdf.PdfStamper; import com.yuanchu.mom.common.GetLook; import com.yuanchu.mom.common.PrintChina; +import com.yuanchu.mom.dto.InsReportDto; +import com.yuanchu.mom.dto.InsReportDto1; import com.yuanchu.mom.dto.ReportPageDto; import com.yuanchu.mom.dto.SampleProductDto; import com.yuanchu.mom.exception.ErrorException; @@ -95,10 +97,19 @@ private InsOrderMapper insOrderMapper; @Resource + private StandardMethodListMapper standardMethodListMapper; + + @Resource private InsOrderStateMapper insOrderStateMapper; @Resource private InsProductMapper insProductMapper; + + @Resource + private InsProductResultMapper insProductResultMapper; + + @Resource + private InsProductResult2Mapper insProductResult2Mapper; @Resource private InsSampleMapper insSampleMapper; @@ -325,7 +336,7 @@ for (File f : files) { // 鏍规嵁鏂囦欢鍚嶆煡璇d String name = f.getName(); - InsReport insReport = insReportMapper.selectOne(Wrappers.<InsReport>lambdaQuery().like(InsReport::getCode, f.getName().replace(".docx", "").replace("JCZX", "JCZX/"))); + InsReport insReport = insReportMapper.selectOne(Wrappers.<InsReport>lambdaQuery().like(InsReport::getCode, f.getName().replace(".docx", ""))); if (ObjectUtils.isEmpty(insReport)) { throw new ErrorException("娌℃湁鎵惧埌 " + f.getName() + " 杩欎釜鏂囦欢瀵瑰簲鐨勬姤鍛婃暟鎹�"); } @@ -364,16 +375,16 @@ //鏄惁闇�瑕佺敓鎴愭姤鍛�: 0涓嶉渶瑕�;1闇�瑕� @Override @Transactional(rollbackFor = Exception.class) - public int isReport(Integer id, Integer state) { + public int isReport(InsReportDto insReportDto) { //鍏堝垽鏂璁㈠崟鏄惁鍙互鍘荤敓浜ф姤鍛� - Long count = insOrderStateMapper.selectCount(Wrappers.<InsOrderState>lambdaQuery().eq(InsOrderState::getInsOrderId, id).eq(InsOrderState::getInsState, 5)); + Long count = insOrderStateMapper.selectCount(Wrappers.<InsOrderState>lambdaQuery().eq(InsOrderState::getInsOrderId, insReportDto.getId()).eq(InsOrderState::getInsState, 5)); if (count > 0) { - if (state == 1) { - generateReport(id); + if (insReportDto.getState() == 1) { + generateReport(insReportDto.getId(), insReportDto.getInsReportDto1s()); } else { //缁撴潫璁㈠崟 InsOrder insOrder = new InsOrder(); - insOrder.setId(id); + insOrder.setId(insReportDto.getId()); insOrder.setState(4); insOrderMapper.updateById(insOrder); } @@ -381,6 +392,13 @@ throw new ErrorException("璇ヨ鍗曡繕鏈粨鏉熻瘯楠�,鏃犳硶鐢熶骇鎶ュ憡!"); } return 0; + } + + //鏌ュ嚭璇ヨ鍗曚笅姣忎釜绔欑偣涓嬬殑妫�楠屾鏁� + @Override + public List<InsOrderState> getInsOrderStateCount(Integer id) { + List<InsOrderState> insOrderStates = insOrderStateMapper.getInsOrderStateCount(id); + return insOrderStates; } @@ -578,19 +596,16 @@ } //鐢熸垚鎶ュ憡 - private void generateReport(Integer orderId) { + private void generateReport(Integer orderId, List<InsReportDto1> insReportDto1s) { LocalDateTime now = LocalDateTime.now(); InsOrder insOrder = insOrderMapper.selectById(orderId); //濮旀墭閮ㄩ棬 departLims String departLims = userMapper.selectDepartLims(insOrder.getPrepareUser()); //samples鏄繃婊ゆ帀娌℃湁妫�楠岄」鐩殑鏍峰搧 List<SampleProductDto> samples = insSampleMapper.selectSampleProductListByOrderId(orderId); - if (samples.size()==0){ - samples=insSampleMapper.selectSampleProductListByOrder2Id(orderId); - } String sampleCode = samples.get(0).getSampleCode(); InsReport insReport = new InsReport(); - insReport.setCode(insOrder.getEntrustCode()); + insReport.setCode(insOrder.getEntrustCode().replace("WT","TXJC")); insReport.setInsOrderId(orderId); List<Map<String, Object>> tables = new ArrayList<>(); Set<String> standardMethod = new HashSet<>(); @@ -603,39 +618,67 @@ String[] monthNames = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; samples.forEach(s -> { models.add(s.getModel()); - standardMethod.add(insOrderMapper.getStandardMethodCode(s.getStandardMethodListId())); + standardMethod.addAll(standardMethodListMapper.selectList(Wrappers.<StandardMethodList>lambdaQuery() + .in(StandardMethodList::getId,Arrays.stream(s.getStandardMethodListId().replaceAll("[\\[\\]]", "").split(",")) + .map(String::trim).map(Integer::parseInt).collect(Collectors.toList()))).stream().map(aa->{return aa.getCode()+" "+aa.getName();}).distinct().collect(Collectors.toList())); //鎬绘暟 - Long productCount = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsSampleId, s.getId())); + Long productCount = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() + .eq(InsProduct::getInsSampleId, s.getId())); productSize.set(productSize.get() + Integer.parseInt(productCount + "")); //涓嶅垽瀹� Long productCount1 = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() .eq(InsProduct::getInsSampleId, s.getId()) - .eq(InsProduct::getInsResult,3)); + .eq(InsProduct::getInsResult, 3)); productSize1.set(productSize1.get() + Integer.parseInt(productCount1 + "")); //涓嶅悎鏍� Long productCount2 = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() .eq(InsProduct::getInsSampleId, s.getId()) - .eq(InsProduct::getInsResult,0)); + .eq(InsProduct::getInsResult, 0)); productSize2.set(productSize2.get() + Integer.parseInt(productCount2 + "")); //鍚堟牸 Long productCount3 = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() .eq(InsProduct::getInsSampleId, s.getId()) - .eq(InsProduct::getInsResult,1)); + .eq(InsProduct::getInsResult, 1)); productSize3.set(productSize3.get() + Integer.parseInt(productCount3 + "")); - for (InsProduct b : s.getInsProduct()) { - if (b.getInsProductResult() != null) { - List<JSONObject> jsonObjects = JSON.parseArray(b.getInsProductResult().getEquipValue(), JSONObject.class); + //灏嗛」鐩寜鐓х珯鐐硅繘琛屽垎绫� + Map<String, List<InsProduct>> listMap = s.getInsProduct().stream().collect(Collectors.groupingBy(InsProduct::getLaboratory)); + // 鍒涘缓涓�涓� Map 灏嗙珯鐐瑰拰椤圭洰ID鐨勬槧灏勫叧绯� + Map<String, Set<Integer>> labToDeviceMap = new HashMap<>(); + // 鑾峰彇鎵�鏈夌珯鐐圭殑椤圭洰ID 鍒楄〃 + for (Map.Entry<String, List<InsProduct>> entry : listMap.entrySet()) { + Set<Integer> deviceIds = entry.getValue().stream() + .map(InsProduct::getId) + .collect(Collectors.toSet()); + labToDeviceMap.put(entry.getKey(), deviceIds); + } + for (InsReportDto1 insReportDto1 : insReportDto1s) { + String laboratory = insReportDto1.getLaboratory(); + if (!labToDeviceMap.containsKey(laboratory)) { + continue; + } + Set<Integer> deviceIds = labToDeviceMap.get(laboratory); + Integer num = insReportDto1.getNum(); + List<InsProductResult> insProductResults = insProductResultMapper.selectList( + Wrappers.<InsProductResult>lambdaQuery() + .eq(InsProductResult::getNum, num) + .in(InsProductResult::getInsProductId, deviceIds)); + for (InsProductResult insProductResult : insProductResults) { + List<JSONObject> jsonObjects = JSON.parseArray(insProductResult.getEquipValue(), JSONObject.class); for (JSONObject jsonObject : jsonObjects) { - if (!"".equals(jsonObject.get("v") + "")) { - deviceSet.add(jsonObject.get("v") + ""); + String value = jsonObject.getString("v"); + if (value != null && !value.isEmpty()) { + deviceSet.add(value); } } } - if (b.getInsProductResult2() != null) { - for (InsProductResult2 jsonObject : b.getInsProductResult2()) { - if (jsonObject.getEquipValue() != null) { - deviceSet.add(jsonObject.getEquipValue()); - } + List<InsProductResult2> insProductResult2s = insProductResult2Mapper.selectList( + Wrappers.<InsProductResult2>lambdaQuery() + .eq(InsProductResult2::getNum, num) + .in(InsProductResult2::getInsProductId, deviceIds)); + for (InsProductResult2 result2 : insProductResult2s) { + String equipValue = result2.getEquipValue(); + if (equipValue != null && !equipValue.isEmpty()) { + deviceSet.add(equipValue); } } } @@ -654,8 +697,9 @@ } StringBuilder standardMethod2 = new StringBuilder(); for (String s : standardMethod) { - standardMethod2.append("銆�").append(s); + standardMethod2.append("锛沑n").append(s); } + standardMethod2.append("锛沑n").append("GB/T 9410-2008 銆婄Щ鍔ㄩ�氫俊澶╃嚎閫氱敤鎶�鏈鑼冦��"); standardMethod2.replace(0, 1, ""); tables.forEach(table -> { table.put("tableSize", tables.size() + 1); -- Gitblit v1.9.3