| cnas-process/src/main/java/com/ruoyi/process/listener/NewJuOrderInspectionListener.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| sql/fix_inspection_order_field_bindings.sql | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
cnas-process/src/main/java/com/ruoyi/process/listener/NewJuOrderInspectionListener.java
@@ -1,6 +1,10 @@ package com.ruoyi.process.listener; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.basic.mapper.StandardMethodMapper; import com.ruoyi.basic.mapper.StandardTreeMapper; import com.ruoyi.basic.pojo.StandardMethod; import com.ruoyi.basic.pojo.StandardTree; import com.ruoyi.inspect.event.NewJuOrderPlacedEvent; import com.ruoyi.inspect.mapper.InsOrderStandardTemplateMapper; import com.ruoyi.inspect.mapper.InsSampleMapper; @@ -33,6 +37,8 @@ private final InspectionOrderDetailMapper inspectionOrderDetailMapper; private final InsSampleMapper insSampleMapper; private final InsOrderStandardTemplateMapper insOrderStandardTemplateMapper; private final StandardTreeMapper standardTreeMapper; private final StandardMethodMapper standardMethodMapper; @EventListener public void onNewJuOrderPlaced(NewJuOrderPlacedEvent event) { @@ -67,11 +73,11 @@ ? order.getSampleView() : order.getSample()); inspectionOrder.setProduction(order.getProduction()); inspectionOrder.setQuantity(order.getTestQuantity()); inspectionOrder.setCommissionDate(LocalDate.now()); inspectionOrder.setCommissionDate(order.getSampleDate() != null ? order.getSampleDate() : LocalDate.now()); inspectionOrder.setCommissionUnit(order.getCompany()); inspectionOrder.setCommissionUser(order.getPrepareUser()); inspectionOrder.setCommissionPhone(order.getPhone()); inspectionOrder.setSampleStatus("å®å¥½"); inspectionOrder.setSampleStatus(order.getSampleStatus()); // æ¯å¦çæ ·è¯ä¹è½¬æ¢ï¼ins 0å¦/1æ¯ -> cnas 1æ¯/2å¦ inspectionOrder.setIsLeave(Integer.valueOf(1).equals(order.getIsLeave()) ? 1 : 2); // æ ·åå¤ç½®ï¼1å§ææ¹åå/2æ£æµæ¹å¤ç½® -> processing 0å§æåä½åå/1å®éªå®¤å¤çï¼æªéæ¶æ²¿ç¨æ§å段 @@ -102,7 +108,7 @@ detail.setSampleName(inspectionOrder.getSampleName()); detail.setQuantity(order.getTestQuantity()); detail.setSampleStatus(inspectionOrder.getSampleStatus()); detail.setTestStandard(order.getSample()); detail.setRemark(order.getRemark()); List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery() .eq(InsSample::getInsOrderId, order.getId()) @@ -110,15 +116,39 @@ if (!samples.isEmpty()) { detail.setSampleNumber(samples.get(0).getSampleCode()); } String testItem = insOrderStandardTemplateMapper.selectList( Wrappers.<InsOrderStandardTemplate>lambdaQuery() .eq(InsOrderStandardTemplate::getInsOrderId, order.getId()) .orderByAsc(InsOrderStandardTemplate::getSort, InsOrderStandardTemplate::getId)) .stream() List<InsOrderStandardTemplate> templates = insOrderStandardTemplateMapper.selectList( Wrappers.<InsOrderStandardTemplate>lambdaQuery() .eq(InsOrderStandardTemplate::getInsOrderId, order.getId()) .orderByAsc(InsOrderStandardTemplate::getSort, InsOrderStandardTemplate::getId)); detail.setTestStandard(resolveTestStandard(order, templates)); detail.setTestItem(templates.stream() .map(InsOrderStandardTemplate::getName) .filter(StringUtils::isNotBlank) .collect(Collectors.joining("ã")); detail.setTestItem(testItem); .collect(Collectors.joining("ã"))); inspectionOrderDetailMapper.insert(detail); } /** * æ£æµä¾æ®æ¾ç¤ºâæ åå·+æ ååç§°âï¼ä¼å åæ åæ¹æ³ï¼åä¸å°æ¶åéå°æ¨¡æ¿å¿«ç §ç¼å·ã */ private String resolveTestStandard(InsOrder order, List<InsOrderStandardTemplate> templates) { if (order.getStandardTreeId() != null) { StandardTree tree = standardTreeMapper.selectById(order.getStandardTreeId()); if (tree != null && tree.getStandardMethodId() != null) { StandardMethod method = standardMethodMapper.selectById(tree.getStandardMethodId()); if (method != null) { String combined = (StringUtils.trimToEmpty(method.getCode()) + " " + StringUtils.trimToEmpty(method.getName())).trim(); if (StringUtils.isNotBlank(combined)) { return combined; } } } } return templates.stream() .map(InsOrderStandardTemplate::getNumber) .filter(StringUtils::isNotBlank) .distinct() .collect(Collectors.joining("ã")); } } cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderServiceImpl.java
@@ -870,7 +870,7 @@ } private InspectionOrderExportDto extracted(InspectionOrder inspectionOrder, InsOrder insOrder) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyå¹´MMæddæ¥"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyå¹´Mædæ¥"); InspectionOrderExportDto inspectionOrderExportDto = new InspectionOrderExportDto(); BeanUtils.copyProperties(inspectionOrder, inspectionOrderExportDto); sql/fix_inspection_order_field_bindings.sql
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,83 @@ -- ============================================================ -- æ£éªå§æååæ®µç»å®ä¿®æ£ï¼æ°æ®ä¿®å¤ï¼éç»æåæ´ï¼ -- çææ¥æï¼2026-11-05 -- -- èæ¯ï¼æ§çâä¸ååèªå¨çææ£éªå§æåâåå¨ç»å®éè¯¯ï¼ -- 1. éæ ·æ¶é´åçæ¯çæå½å¤©ï¼èéä¸åéæ ·æ¥æï¼ -- 2. æ ·åç¶æåæ»ä¸ºâå®å¥½âï¼ -- 3. æ£æµä¾æ®åªææ åå·ï¼ç¼ºå°æ ååç§°ï¼ -- 4. 夿³¨ä¿¡æ¯æªåå ¥ã -- æ¬èæ¬ä» åå¡«ä»ä¿ææ§é»è®¤å¼/空å¼çè®°å½ï¼äººå·¥æ¹è¿çå¼ä¸ä¼è¢«è¦çã -- å¯é夿§è¡ï¼å¹çï¼ã -- -- æ§è¡å建议å¤ä»½ï¼å¨ LIMS æ°æ®åºå æ§è¡ï¼ï¼ -- CREATE TABLE cnas_inspection_order_bak_20261105 AS SELECT * FROM cnas_inspection_order; -- CREATE TABLE cnas_inspection_order_detail_bak_20261105 AS SELECT * FROM cnas_inspection_order_detail; -- ============================================================ START TRANSACTION; -- 1) å§æå表头ï¼éæ ·æ¶é´æ¹ä¸ºä¸åéæ ·æ¥æ -- ä» ä¿®æ£âå½åéæ ·æ¶é´ = åå»ºæ¥æâçèªå¨é»è®¤å¼ UPDATE cnas_inspection_order io JOIN ins_order o ON o.id = io.ins_order_id SET io.commission_date = o.sample_date WHERE io.commission_date IS NOT NULL AND o.sample_date IS NOT NULL AND io.commission_date = DATE(io.create_time) AND io.commission_date <> o.sample_date; -- 2) å§æåè¡¨å¤´ï¼æ ·åç¶ææ¹ä¸ºä¸åæ ·åç¶æ -- ä» ä¿®æ£æ§é»è¾åæ»çâå®å¥½â UPDATE cnas_inspection_order io JOIN ins_order o ON o.id = io.ins_order_id SET io.sample_status = o.sample_status WHERE io.sample_status = 'å®å¥½' AND o.sample_status IS NOT NULL AND o.sample_status <> ''; -- 3) å§æåæç»ï¼æ ·åç¶ææ¹ä¸ºä¸åæ ·åç¶æ UPDATE cnas_inspection_order_detail d JOIN cnas_inspection_order io ON io.inspection_order_id = d.inspection_order_id JOIN ins_order o ON o.id = io.ins_order_id SET d.sample_status = o.sample_status WHERE d.sample_status = 'å®å¥½' AND o.sample_status IS NOT NULL AND o.sample_status <> ''; -- 4) å§æåæç»ï¼å¤æ³¨æ¹ä¸ºä¸å夿³¨ -- ä» å¡«å ç©ºå¤æ³¨ UPDATE cnas_inspection_order_detail d JOIN cnas_inspection_order io ON io.inspection_order_id = d.inspection_order_id JOIN ins_order o ON o.id = io.ins_order_id SET d.remark = o.remark WHERE (d.remark IS NULL OR d.remark = '') AND o.remark IS NOT NULL AND o.remark <> ''; -- 5) å§æåæç»ï¼æ£æµä¾æ®æ¹ä¸ºâæ åå· + æ ååç§°â -- ä» ä¿®æ£ç©ºå¼ãæ§é»è¾åå ¥ç纯æ åå·ï¼äººå·¥æ¹è¿ç宿´ä¾æ®ä¸è¦ç UPDATE cnas_inspection_order_detail d JOIN cnas_inspection_order io ON io.inspection_order_id = d.inspection_order_id JOIN ins_order o ON o.id = io.ins_order_id LEFT JOIN standard_tree st ON st.id = o.standard_tree_id LEFT JOIN standard_method sm ON sm.id = st.standard_method_id SET d.test_standard = TRIM(CONCAT(COALESCE(sm.code, ''), ' ', COALESCE(sm.name, ''))) WHERE sm.id IS NOT NULL AND (d.test_standard IS NULL OR d.test_standard = '' OR d.test_standard COLLATE utf8mb4_general_ci = o.sample COLLATE utf8mb4_general_ci OR d.test_standard COLLATE utf8mb4_general_ci = sm.code COLLATE utf8mb4_general_ci); COMMIT; -- æ ¡éªï¼æ§è¡å®å¯äººå·¥æ ¸å¯¹ï¼ï¼ -- SELECT io.inspection_order_id, io.entrust_code, io.commission_date, o.sample_date, -- io.sample_status, o.sample_status -- FROM cnas_inspection_order io JOIN ins_order o ON o.id = io.ins_order_id -- WHERE io.ins_order_id IS NOT NULL; -- -- SELECT d.inspection_order_detail_id, d.sample_name, d.sample_status, d.test_standard, d.remark -- FROM cnas_inspection_order_detail d -- JOIN cnas_inspection_order io ON io.inspection_order_id = d.inspection_order_id -- JOIN ins_order o ON o.id = io.ins_order_id;