liding
2 天以前 bd46f203b0d30a3d33b7c51ae9a528e4807477e1
feat: 1.检验单详情温湿度 2.报告编制样品外观.平均值优化
已修改2个文件
34 ■■■■ 文件已修改
basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardMethodServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardMethodServiceImpl.java
@@ -244,9 +244,11 @@
    @Override
    public StandardMethodAttachment uploadAttachment(Integer standardMethodId, MultipartFile file) {
        if (standardMethodMapper.selectById(standardMethodId) == null) throw new BaseException("标准不存在");
        if (file == null || file.isEmpty() || file.getSize() > 10 * 1024 * 1024) throw new BaseException("附件不能为空且不能超过10MB");
        if (file == null || file.isEmpty() || file.getSize() > 10 * 1024 * 1024)
            throw new BaseException("附件不能为空且不能超过10MB");
        String originalName = file.getOriginalFilename();
        if (originalName == null || !originalName.matches("(?i).+\\.(jpg|jpeg|png|gif|doc|docx|xls|xlsx|ppt|pptx|pdf|zip|rar)$")) throw new BaseException("不支持的附件格式");
        if (originalName == null || !originalName.matches("(?i).+\\.(jpg|jpeg|png|gif|doc|docx|xls|xlsx|ppt|pptx|pdf|zip|rar)$"))
            throw new BaseException("不支持的附件格式");
        try {
            boolean image = originalName.matches("(?i).+\\.(jpg|jpeg|png|gif)$");
            File directory = new File(image ? filePath : wordUrl);
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
@@ -3231,9 +3231,11 @@
        // 来样方式
        String formType = iSysDictTypeService.selectLabelByDict(DictDataConstants.FORM_TYPE, insOrder.getFormType());
        // 样品状态
        String sampleStatus = iSysDictTypeService.selectLabelByDict(DictDataConstants.SAMPLE_STATUS_LIST, insOrder.getSampleStatus());
        ;
        // 样品外观优先展示字典名称;历史数据或直接保存文本时,回退展示订单原值。
        String sampleStatus = defaultReportText(
                iSysDictTypeService.selectLabelByDict(
                        DictDataConstants.SAMPLE_STATUS_LIST, insOrder.getSampleStatus()),
                insOrder.getSampleStatus());
        // 公司信息
        Custom custom = customMapper.selectById(insOrder.getCompanyId());
@@ -3573,8 +3575,9 @@
            Map<String, String> row = new LinkedHashMap<>();
            row.put("seq", String.valueOf(sequence++));
            row.put("itemName", defaultReportText(itemName,
                    defaultReportText(snapshot.getName(), "模板ID " + snapshot.getTemplateId())));
            String reportItemName = defaultReportText(itemName,
                    defaultReportText(snapshot.getName(), "模板ID " + snapshot.getTemplateId()));
            row.put("itemName", formatExportItemName(reportItemName));
            row.put("unit", defaultReportText(unit, "/"));
            row.put("result", result);
            rows.add(row);
@@ -3716,7 +3719,12 @@
            }
        }
        if (numbers.isEmpty()) {
            return StringUtils.isBlank(fallback) ? "" : fallback + unit;
            // “/”表示模板明确填写了不适用,不能再按空值处理或追加单位。
            return candidates.stream()
                    .filter(StringUtils::isNotBlank)
                    .map(String::trim)
                    .distinct()
                    .collect(Collectors.joining("~"));
        }
        BigDecimal minimum = Collections.min(numbers);
        BigDecimal maximum = Collections.max(numbers);
@@ -3727,6 +3735,14 @@
        return minimumText + "~" + maximum.stripTrailingZeros().toPlainString() + unit;
    }
    /** 报告项目名称不展示模板计算过程中的“平均值”字样及其后的分隔逗号。 */
    private static String formatExportItemName(String itemName) {
        if (StringUtils.isBlank(itemName)) {
            return itemName;
        }
        return itemName.replaceAll("平均值\\s*[,,]?\\s*", "");
    }
    private static String getMapText(Map<String, String> map, String... keys) {
        if (map == null) {
            return null;