zhuo
2025-03-28 01ed57def0d052ae87d95022013c64c760082610
修改温度生成定时任务问题
已修改4个文件
77 ■■■■ 文件已修改
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeTempHumDateServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/task/FeTempHumDateSchedule.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/resources/mapper/FeTempHumDateMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeTempHumDateServiceImpl.java
@@ -134,8 +134,13 @@
        // 温湿度记录添加记录员
        Integer userId = SecurityUtils.getUserId().intValue();
        feTempHumRecordService.update(Wrappers.<FeTempHumRecord>lambdaUpdate()
                .isNotNull(FeTempHumRecord::getMorningTestTime)
                .eq(FeTempHumRecord::getDateId, feTempHumDate.getDateId())
                .set(FeTempHumRecord::getAfternoonRecorderId, userId)
                .set(FeTempHumRecord::getMorningRecorderId, userId));
        feTempHumRecordService.update(Wrappers.<FeTempHumRecord>lambdaUpdate()
                .isNotNull(FeTempHumRecord::getAfternoonTime)
                .eq(FeTempHumRecord::getDateId, feTempHumDate.getDateId())
                .set(FeTempHumRecord::getAfternoonRecorderId, userId));
    }
}
cnas-require/src/main/java/com/ruoyi/require/task/FeTempHumDateSchedule.java
@@ -93,7 +93,9 @@
            // 查询试验区域
            FeTempHumDate feTempHumDate = feTempHumDateMapper.selectOne(Wrappers.<FeTempHumDate>lambdaQuery()
                    .eq(FeTempHumDate::getMonthDate, formattedDate)
                    .eq(FeTempHumDate::getTestAreaName, collectLaboratory.getLaboratory()));
                    .eq(FeTempHumDate::getTestAreaName, collectLaboratory.getLaboratory())
                    .orderByDesc(FeTempHumDate::getCreateTime)
                    .last("limit 1"));
            Integer dateId = feTempHumDate.getDateId();
            // 判断今天是否有温湿度记录
            FeTempHumRecord feTempHumRecord = record(dateId);
@@ -130,7 +132,9 @@
                .eq(FeTempHumRecord::getDateId, dateId)
                // 记录时间在今天之内
                .eq(FeTempHumRecord::getRecordDate, today)
                .between(FeTempHumRecord::getMorningTestTime, start, end));
                .between(FeTempHumRecord::getMorningTestTime, start, end)
                .orderByDesc(FeTempHumRecord::getTempHumId)
                .last("limit 1"));
    }
    /**
@@ -163,7 +167,9 @@
            // 查询试验区域
            FeTempHumDate feTempHumDate = feTempHumDateMapper.selectOne(Wrappers.<FeTempHumDate>lambdaQuery()
                    .eq(FeTempHumDate::getMonthDate, formattedDate)
                    .eq(FeTempHumDate::getTestAreaName, collectLaboratory.getLaboratory()));
                    .eq(FeTempHumDate::getTestAreaName, collectLaboratory.getLaboratory())
                    .orderByDesc(FeTempHumDate::getCreateTime)
                    .last("limit 1"));
            Integer dateId = feTempHumDate.getDateId();
            // 查询今天是否有温湿度记录
            FeTempHumRecord feTempHumRecord = record(dateId);
@@ -200,6 +206,49 @@
    }
    /**
     * 星期天执行添加空白数据
     * 获取温度湿度
     */
//    @Scheduled(cron = "0/5 * * * * *")
    @Scheduled(cron = "0 0 9 * * 7") //
    public void task3() {
        checkLaboratoriesSchedule();
        // 获取所有的实验室
        List<CollectLaboratory> collectLaboratories = collectLaboratoryMapper.selectList(null);
        // 遍历获取实验室编号 获取温湿度 保存在对应的
        for (CollectLaboratory collectLaboratory : collectLaboratories) {
            // 查询试验区域
            FeTempHumDate feTempHumDate = feTempHumDateMapper.selectOne(Wrappers.<FeTempHumDate>lambdaQuery()
                    .eq(FeTempHumDate::getMonthDate, formattedDate)
                    .eq(FeTempHumDate::getTestAreaName, collectLaboratory.getLaboratory())
                    .orderByDesc(FeTempHumDate::getCreateTime)
                    .last("limit 1"));
            Integer dateId = feTempHumDate.getDateId();
            // 判断今天是否有温湿度记录
            // 获取今天的日期
            LocalDate today = LocalDate.now();
            // 查询今天是否有温湿度记录
            Long count = feTempHumRecordMapper.selectCount(Wrappers.<FeTempHumRecord>lambdaQuery()
                    // 哪个实验室
                    .eq(FeTempHumRecord::getDateId, dateId)
                    // 记录时间在今天之内
                    .eq(FeTempHumRecord::getRecordDate, today));
            // 查询出来就代表今天记录过了就不记录
            if (!count.equals(0L)) {
                // 有温度湿度记录就不记录
                continue;
            }
            // 创建今天温湿度记录对象 记录上午温度湿度
            FeTempHumRecord newFeTempHumRecord = new FeTempHumRecord();
            newFeTempHumRecord.setRecordDate(LocalDate.now());
            newFeTempHumRecord.setDateId(dateId);
            feTempHumRecordMapper.insert(newFeTempHumRecord);
        }
    }
    /**
     * 根据实验室编号获取温度湿度
     *
     * @param collectTemperatureHumidity 温度湿度数据
cnas-require/src/main/resources/mapper/FeTempHumDateMapper.xml
@@ -21,6 +21,7 @@
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
        order by month_date desc
    </select>
    <select id="selectFeTempHumDateIncludeFormattedDate" resultType="java.lang.Integer">
        select count(*)
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
@@ -949,13 +949,23 @@
//                    if (insProduct.getInspectionItem().contains("老化")) {
//                        List<InsProductAnalysisDto> insProductAnalysisDtoList = insProductMapper.selectAnalysis(insProduct, ifsInventoryQuantity.getSupplierName());
//
//                        if (insProductAnalysisDtoList.size() < 10) {
//                            continue;
//                        }
//
//                        // 判断当前检测项是否偏差超过10%
//                        List<String> laseValueList = insProductAnalysisDtoList.stream().map(InsProductAnalysisDto::getLastValue)
//                                .collect(Collectors.toList());
//
//                        double deviation = isDeviationOverTenPercent(laseValueList, insProduct.getLastValue());
//                        // 判断偏差是否大于10
//                        if (deviation > 10) {
//                            // 发送通知, 并且添加数据
//
//
//
//
//                        }
//                    }
//                }
//            });
@@ -1953,10 +1963,6 @@
        ConfigureBuilder builder = Configure.builder();
        builder.useSpringEL(true);
        // 获取当前时间
        LocalDate currentDate = LocalDate.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        String formattedDate = currentDate.format(formatter);
        InputStream inputStream = this.getClass().getResourceAsStream("/static/small-report-template.docx");
        XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render(