| inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderPlanController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| inspect-server/src/main/java/com/ruoyi/inspect/controller/InsUnqualifiedHandlerController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleOrderDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| inspect-server/src/main/java/com/ruoyi/inspect/util/ReportResultTableRenderPolicy.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| inspect-server/src/main/resources/mapper/InsOrderMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| sql/lims_delta.sql | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderPlanController.java
@@ -169,9 +169,13 @@ @GetMapping("/downFile") public Result<?> downFile(Integer id) { InsOrderFile insOrderFile = insOrderFileService.getById(id); if (insOrderFile == null) { return Result.fail("éä»¶ä¸åå¨æå·²è¢«å é¤"); } HashMap<String, Object> map = new HashMap<>(); map.put("type", insOrderFile.getType()); map.put("fileUrl", insOrderFile.getFileUrl()); map.put("fileName", insOrderFile.getFileName()); return Result.success(map); } inspect-server/src/main/java/com/ruoyi/inspect/controller/InsUnqualifiedHandlerController.java
@@ -73,9 +73,13 @@ @GetMapping("/downFile") public Result<?> oaDownFile(Integer id) { InsUnqualifiedHandlerFile insUnqualifiedHandlerFile = unqualifiedHandlerFileService.getById(id); if (insUnqualifiedHandlerFile == null) { return Result.fail("éä»¶ä¸åå¨æå·²è¢«å é¤"); } HashMap<String, Object> map = new HashMap<>(); map.put("type", insUnqualifiedHandlerFile.getType()); map.put("fileUrl", insUnqualifiedHandlerFile.getFileUrl()); map.put("fileName", insUnqualifiedHandlerFile.getFileName()); return Result.success(map); } inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleOrderDto.java
@@ -84,11 +84,11 @@ private String unqualifiedItem; /** * (æ¥å导åº)ä¸åæ¶é´ * (æ¥å导åº)éæ ·æ¶é´ */ @ExcelProperty(index = 11, value = "ä¸åæ¶é´") @Schema(description = "ä¸åæ¶é´") private String createTimeString; @ExcelProperty(index = 11, value = "éæ ·æ¶é´") @Schema(description = "éæ ·æ¶é´") private String sampleDateString; @Schema(description = "åå®éªå®¤") private String sonLaboratory; inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
@@ -45,6 +45,7 @@ import com.ruoyi.inspect.pojo.*; import com.ruoyi.inspect.service.*; import com.ruoyi.inspect.util.HackLoopTableRenderPolicy; import com.ruoyi.inspect.util.ReportResultTableRenderPolicy; import com.ruoyi.inspect.util.PreserveReportPicturePlaceholderHandler; import com.ruoyi.inspect.util.ReportSignaturePictureUtils; import com.ruoyi.inspect.vo.InsOrderPlanTaskSwitchVo; @@ -3747,7 +3748,7 @@ } Configure configure = Configure.builder() .bind("deviceList", new HackLoopTableRenderPolicy()) .bind("r", new HackLoopTableRenderPolicy(true)) .bind("r", new ReportResultTableRenderPolicy()) .setValidErrorHandler(new PreserveReportPicturePlaceholderHandler()) .useSpringEL(true) .build(); inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
@@ -1803,7 +1803,7 @@ List<String> unqualifiedList = insProductMapper.selectUnqualifiedList(orderDto.getId()); orderDto.setUnqualifiedItem(CollUtil.join(unqualifiedList, ",")); } orderDto.setCreateTimeString(orderDto.getCreateTime() == null ? "" : orderDto.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); orderDto.setSampleDateString(orderDto.getSampleDate() == null ? "" : orderDto.getSampleDate().toString()); } inspect-server/src/main/java/com/ruoyi/inspect/util/ReportResultTableRenderPolicy.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,34 @@ package com.ruoyi.inspect.util; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; import org.apache.poi.xwpf.usermodel.XWPFTable; import org.apache.poi.xwpf.usermodel.XWPFTableCell; import org.apache.poi.xwpf.usermodel.XWPFTableRow; /** æ¥åç»æè¡¨åºå·ä½¿ç¨æ®éæåï¼é¿å æ¸²ææ¶äº§çé»è®¤ä¸å线ã */ public class ReportResultTableRenderPolicy extends HackLoopTableRenderPolicy { public ReportResultTableRenderPolicy() { super(true); } @Override protected void afterloop(XWPFTable table, Object data) { for (XWPFTableRow row : table.getRows()) { XWPFTableCell cell = row.getCell(0); if (cell == null || !cell.getText().trim().matches("\\d+")) { continue; } for (XWPFParagraph paragraph : cell.getParagraphs()) { for (XWPFRun run : paragraph.getRuns()) { if (run.getCTR().isSetRPr()) { while (run.getCTR().getRPr().sizeOfUArray() > 0) { run.getCTR().getRPr().removeU(0); } } } } } } } inspect-server/src/main/resources/mapper/InsOrderMapper.xml
@@ -66,6 +66,46 @@ ip.cable_tag </sql> <!-- ç´ç»è®¢åææ¨¡æ¿ç»è®ºç»è®¡ï¼ä¼ ç»è®¢åæææä¸éç»å®çæ£éªé¡¹ç®ç»è®¡ã --> <sql id="inspectionProgressColumn"> CONCAT(COALESCE(ROUND( CASE WHEN template_progress.total_count > 0 THEN template_progress.completed_count * 100.0 / template_progress.total_count ELSE product_progress.completed_count * 100.0 / NULLIF(product_progress.total_count, 0) END, 2), 0), '%') AS insProgress </sql> <sql id="inspectionProgressJoins"> LEFT JOIN ( SELECT s.ins_order_id, COUNT(*) AS total_count, SUM(CASE WHEN p.ins_result IN (0, 1, 3) THEN 1 ELSE 0 END) AS completed_count FROM ins_product p JOIN ins_sample s ON p.ins_sample_id = s.id WHERE p.state = 1 AND (p.is_binding IS NULL OR p.is_binding != 1) GROUP BY s.ins_order_id ) product_progress ON io.id = product_progress.ins_order_id LEFT JOIN ( SELECT t.ins_order_id, COUNT(*) AS total_count, SUM(CASE WHEN t.ins_result IN (0, 1) THEN 1 ELSE 0 END) AS completed_count FROM ins_order_standard_template t JOIN ins_order template_order ON template_order.id = t.ins_order_id WHERE EXISTS ( SELECT 1 FROM ins_sample s LEFT JOIN ins_product p ON p.ins_sample_id = s.id WHERE s.ins_order_id = t.ins_order_id AND (p.template_row_index IS NOT NULL OR (s.standard_method_list_id IS NULL AND COALESCE(TRIM(s.factory), '') = '' AND COALESCE(TRIM(s.sample_type), '') = '' AND COALESCE(TRIM(s.model), '') = '' AND COALESCE(TRIM(template_order.factory), '') = '' AND COALESCE(TRIM(template_order.sample_type), '') = '')) ) GROUP BY t.ins_order_id ) template_progress ON io.id = template_progress.ins_order_id </sql> <sql id="selectInsOrderExport"> SELECT io.*, @@ -74,7 +114,7 @@ ir.url, ir.url_s, sample_counts.sample_num, CONCAT(ROUND(approved_product_counts.approved_count / total_product_counts.total_count * 100, 2), '%') AS insProgress, <include refid="inspectionProgressColumn"/>, io.sample_view AS sample_name, GROUP_CONCAT(DISTINCT isa.model SEPARATOR ' ') AS sample_model, u.name, @@ -101,18 +141,7 @@ FROM ins_sample WHERE id in(select id1 from (select is2.id id1 ,ip.id from ins_sample is2 left join ins_product ip on is2.id = ip.ins_sample_id where ip.id is not null)s ) GROUP BY ins_order_id) sample_counts ON io.id = sample_counts.ins_order_id LEFT JOIN (SELECT ins_sample.ins_order_id, COUNT(*) AS total_count FROM ins_product JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id WHERE ins_product.state = 1 GROUP BY ins_sample.ins_order_id) total_product_counts ON io.id = total_product_counts.ins_order_id LEFT JOIN (SELECT ins_sample.ins_order_id, COUNT(*) AS approved_count FROM ins_product JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id WHERE ins_product.state = 1 AND ins_product.ins_result IS NOT NULL GROUP BY ins_sample.ins_order_id) approved_product_counts ON io.id = approved_product_counts.ins_order_id <include refid="inspectionProgressJoins"/> LEFT JOIN (SELECT ins_sample_id, GROUP_CONCAT(DISTINCT uu.name SEPARATOR ',') AS testing_name FROM ins_sample_user u LEFT JOIN user uu ON u.user_id = uu.id @@ -131,7 +160,7 @@ ir.url, ir.url_s, sample_counts.sample_num, CONCAT(ROUND(approved_product_counts.approved_count / total_product_counts.total_count * 100, 2), '%') AS insProgress, <include refid="inspectionProgressColumn"/>, io.sample_view AS sample_name, GROUP_CONCAT(DISTINCT isa.model SEPARATOR ' ') AS sample_model, u.name, @@ -155,18 +184,7 @@ FROM ins_sample WHERE id in(select id1 from (select is2.id id1 ,ip.id from ins_sample is2 left join ins_product ip on is2.id = ip.ins_sample_id where ip.id is not null)s ) GROUP BY ins_order_id) sample_counts ON io.id = sample_counts.ins_order_id LEFT JOIN (SELECT ins_sample.ins_order_id, COUNT(*) AS total_count FROM ins_product JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id WHERE ins_product.state = 1 and is_binding !=1 GROUP BY ins_sample.ins_order_id) total_product_counts ON io.id = total_product_counts.ins_order_id LEFT JOIN (SELECT ins_sample.ins_order_id, COUNT(*) AS approved_count FROM ins_product JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id WHERE ins_product.state = 1 and is_binding !=1 AND ins_product.ins_result IS NOT NULL GROUP BY ins_sample.ins_order_id) approved_product_counts ON io.id = approved_product_counts.ins_order_id <include refid="inspectionProgressJoins"/> LEFT JOIN (SELECT ins_sample_id, GROUP_CONCAT(DISTINCT uu.name SEPARATOR ',') AS testing_name FROM ins_sample_user u LEFT JOIN user uu ON u.user_id = uu.id sql/lims_delta.sql
ÎļþÒÑɾ³ý