zhuo
2025-03-07 a24095d096e7ab1f83e44aa8054d0f673db05b38
Merge branch 'dev_dz' into dev
已修改15个文件
已删除21个文件
已添加8个文件
2881 ■■■■ 文件已修改
cnas-require/src/main/java/com/ruoyi/require/mapper/CollectLaboratoryMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/CollectTemperatureHumidityMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/CollectLaboratory.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/CollectTemperatureHumidity.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/task/FeTempHumDateSchedule.java 219 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderPlanController.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderRatesMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderRatesServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsOrderRatesMapper.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/ruoyi/performance/mapper/AuxiliaryOutputWorkingHoursTemporaryMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryOutputWorkingHoursTemporaryService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryOutputWorkingHoursTemporaryServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursTemporaryMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/pom.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application-druid.yml 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application-prod.yml 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application-test.yml 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application.yml 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/utils/GZipUtil.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/pom.xml 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/config/ScheduleConfig.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobController.java 185 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobLogController.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJob.java 171 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJobLog.java 155 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/SysJobLogMapper.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/SysJobMapper.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ISysJobLogService.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ISysJobService.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobLogServiceImpl.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java 261 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/AbstractQuartzJob.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/CronUtils.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/JobInvokeUtil.java 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/QuartzDisallowConcurrentExecution.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/QuartzJobExecution.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleUtils.java 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/CollectLaboratoryMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package com.ruoyi.require.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.require.pojo.CollectLaboratory;
/**
 * æ¸©æ¹¿åº¦é‡‡é›†å®žéªŒå®¤ç»‘定
 *
 * @author zhuo
 * @since 2024-12-18
 */
public interface CollectLaboratoryMapper extends BaseMapper<CollectLaboratory> {
}
cnas-require/src/main/java/com/ruoyi/require/mapper/CollectTemperatureHumidityMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package com.ruoyi.require.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.require.pojo.CollectTemperatureHumidity;
/**
 * æ¸©æ¹¿åº¦é‡‡é›†ä¿¡æ¯
 *
 * @author zhuo
 * @since 2024-12-18
 */
public interface CollectTemperatureHumidityMapper extends BaseMapper<CollectTemperatureHumidity> {
}
cnas-require/src/main/java/com/ruoyi/require/pojo/CollectLaboratory.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
package com.ruoyi.require.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * æ¸©æ¹¿åº¦é‡‡é›†å®žéªŒå®¤ç»‘定
 *
 * @author zhuo
 * @since 2024-12-18
 */
@Data
@TableName("collect_laboratory")
public class CollectLaboratory {
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty("实验室")
    private String laboratory;
    @ApiModelProperty("温湿度设备编号")
    private String deviceCode;
    @ApiModelProperty("最高温度")
    private Double temperatureHighest;
    @ApiModelProperty("最低温度")
    private Double temperatureLowest;
    @ApiModelProperty("最高湿度")
    private Double humidityHighest;
    @ApiModelProperty("最低湿度")
    private Double humidityLowest;
}
cnas-require/src/main/java/com/ruoyi/require/pojo/CollectTemperatureHumidity.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
package com.ruoyi.require.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
 * æ¸©æ¹¿åº¦é‡‡é›†ä¿¡æ¯
 *
 * @author zhuo
 * @since 2024-12-18
 */
@Data
@TableName("collect_temperature_humidity")
public class CollectTemperatureHumidity {
    @TableId(type = IdType.AUTO)
    private Integer superviseId;
    //7801温度
    private Double code7801Temperature;
    //7801湿度
    private Double code7801Humidity;
    //7802温度
    private Double code7802Temperature;
    //7802湿度
    private Double code7802Humidity;
    //7803温度
    private Double code7803Temperature;
    //7803湿度
    private Double code7803Humidity;
    //7804温度
    private Double code7804Temperature;
    //7804湿度
    private Double code7804Humidity;
    //7805温度
    private Double code7805Temperature;
    //7805湿度
    private Double code7805Humidity;
    //7806温度
    private Double code7806Temperature;
    //7806湿度
    private Double code7806Humidity;
    //7807温度
    private Double code7807Temperature;
    //7807湿度
    private Double code7807Humidity;
    //7808温度
    private Double code7808Temperature;
    //7808湿度
    private Double code7808Humidity;
    //7809温度
    private Double code7809Temperature;
    //7809湿度
    private Double code7809Humidity;
    //7810温度
    private Double code7810Temperature;
    //7810湿度
    private Double code7810Humidity;
    //采集时间
    private Date collectTime;
}
cnas-require/src/main/java/com/ruoyi/require/task/FeTempHumDateSchedule.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,219 @@
package com.ruoyi.require.task;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.require.mapper.CollectLaboratoryMapper;
import com.ruoyi.require.mapper.CollectTemperatureHumidityMapper;
import com.ruoyi.require.mapper.FeTempHumDateMapper;
import com.ruoyi.require.mapper.FeTempHumRecordMapper;
import com.ruoyi.require.pojo.CollectLaboratory;
import com.ruoyi.require.pojo.CollectTemperatureHumidity;
import com.ruoyi.require.pojo.FeTempHumDate;
import com.ruoyi.require.pojo.FeTempHumRecord;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.lang.reflect.Field;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.List;
/**
 * Author: yuan
 * Date: 2024-12-19 æ˜ŸæœŸå›› 8:33:56
 * Description:
 */
@Component
public class FeTempHumDateSchedule {
    @Autowired
    private CollectLaboratoryMapper collectLaboratoryMapper;
    @Autowired
    private FeTempHumDateMapper feTempHumDateMapper;
    @Autowired
    private CollectTemperatureHumidityMapper collectTemperatureHumidityMapper;
    @Autowired
    private FeTempHumRecordMapper feTempHumRecordMapper;
    // èŽ·å–å½“å‰å¹´ä»½å’Œæœˆä»½ å¦‚:2024-11
    private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
    private String formattedDate = sdf.format(Calendar.getInstance().getTime());
    /**
     * æ£€æŸ¥å®žéªŒå®¤æ˜¯å¦æœ‰ä»»åŠ¡
     */
    public synchronized void checkLaboratoriesSchedule() {
        // èŽ·å–å½“å‰å¹´ä»½å’Œæœˆä»½ å¦‚:2024-11
        formattedDate = sdf.format(Calendar.getInstance().getTime());
        // æŸ¥è¯¢æ‰€æœ‰çš„实验室
        List<CollectLaboratory> collectLaboratories = collectLaboratoryMapper.selectList(null);
        // éåŽ†å®žéªŒå®¤ï¼Œåˆ¤æ–­ä»»åŠ¡åˆ—è¡¨ä¸­æ˜¯å¦å­˜è¯¥å®žéªŒå®¤çš„ä»»åŠ¡
        for (CollectLaboratory collectLaboratory : collectLaboratories) {
            // æŸ¥è¯¢æ•°æ®åº“中是否存在该实验室的任务
            int count = feTempHumDateMapper.selectFeTempHumDateIncludeFormattedDate(collectLaboratory.getLaboratory(), formattedDate);
            // æŸ¥è¯¢ç»“果为0,说明数据库中不存在该实验室的任务,需要新增
            if (count == 0) {
                FeTempHumDate feTempHumDate = new FeTempHumDate();
                feTempHumDate.setMonthDate(formattedDate);
                feTempHumDate.setTestAreaName(collectLaboratory.getLaboratory());
                feTempHumDateMapper.insert(feTempHumDate);
            }
        }
    }
    /**
     * æ¯å¤©9点执行一次 é™¤äº†æ˜ŸæœŸå¤©
     * èŽ·å–æ¸©åº¦æ¹¿åº¦
     */
//    @Scheduled(cron = "0/5 * * * * *")
    @Scheduled(cron = "0 0 9 * * 1-6") // æ¯å¤©9点执行一次 é™¤äº†æ˜ŸæœŸå¤©
    public void task1() {
        checkLaboratoriesSchedule();
        // æ ¹æ®æ—¶é—´é™åºï¼ŒèŽ·å–åˆ°æœ€æ–°çš„ä¸€æ¡æ•°æ®
        CollectTemperatureHumidity collectTemperatureHumidity = collectTemperatureHumidityMapper.selectOne(Wrappers.<CollectTemperatureHumidity>lambdaQuery()
                .orderByDesc(CollectTemperatureHumidity::getCollectTime)
                .last("limit 1"));
        // èŽ·å–æ‰€æœ‰çš„å®žéªŒå®¤
        List<CollectLaboratory> collectLaboratories = collectLaboratoryMapper.selectList(null);
        // éåŽ†èŽ·å–å®žéªŒå®¤ç¼–å· èŽ·å–æ¸©æ¹¿åº¦ ä¿å­˜åœ¨å¯¹åº”çš„
        for (CollectLaboratory collectLaboratory : collectLaboratories) {
            // å®žéªŒå®¤ç¼–号
            int labNumber = Integer.parseInt(collectLaboratory.getDeviceCode());
            // æ ¹æ®å®žéªŒå®¤ç¼–号拼接对应的湿度和温度字段
            String temperatureField = "code" + labNumber + "Temperature";
            String humidityField = "code" + labNumber + "Humidity";
            // èŽ·å–æ¸©åº¦
            Double temperature = getFieldValue(collectTemperatureHumidity, temperatureField) != null ? (Double) getFieldValue(collectTemperatureHumidity, temperatureField) : Double.valueOf(00.0);
            // èŽ·å–æ¹¿åº¦
            Double humidity = getFieldValue(collectTemperatureHumidity, humidityField) != null ? (Double) getFieldValue(collectTemperatureHumidity, humidityField) : Double.valueOf(00.0);
            // æŸ¥è¯¢è¯•验区域
            FeTempHumDate feTempHumDate = feTempHumDateMapper.selectOne(Wrappers.<FeTempHumDate>lambdaQuery()
                    .eq(FeTempHumDate::getMonthDate, formattedDate)
                    .eq(FeTempHumDate::getTestAreaName, collectLaboratory.getLaboratory()));
            Integer dateId = feTempHumDate.getDateId();
            // åˆ¤æ–­ä»Šå¤©æ˜¯å¦æœ‰æ¸©æ¹¿åº¦è®°å½•
            FeTempHumRecord feTempHumRecord = record(dateId);
            // æŸ¥è¯¢å‡ºæ¥å°±ä»£è¡¨ä»Šå¤©è®°å½•过了就不记录
            if (feTempHumRecord != null) {
                // æœ‰æ¸©åº¦æ¹¿åº¦è®°å½•就不记录
                continue;
            }
            // åˆ›å»ºä»Šå¤©æ¸©æ¹¿åº¦è®°å½•对象 è®°å½•上午温度湿度
            FeTempHumRecord newFeTempHumRecord = new FeTempHumRecord();
            newFeTempHumRecord.setRecordDate(LocalDate.now());
            newFeTempHumRecord.setMorningTestTime(LocalTime.now());
            newFeTempHumRecord.setMorningTemp(temperature.toString());
            newFeTempHumRecord.setMorningHum(humidity.toString());
            newFeTempHumRecord.setDateId(dateId);
            feTempHumRecordMapper.insert(newFeTempHumRecord);
        }
    }
    /**
     * åˆ¤æ–­ä»Šå¤©æ˜¯å¦æœ‰æ¸©æ¹¿åº¦è®°å½•
     */
    private FeTempHumRecord record(Integer dateId) {
        // èŽ·å–ä»Šå¤©çš„æ—¥æœŸ
        LocalDate today = LocalDate.now();
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
        // èŽ·å–ä»Šå¤©çš„ 00:00:00 å’Œ 23:59:59
        String start = today.atStartOfDay().format(dateTimeFormatter);  // 00:00:00
        String end = today.atTime(LocalTime.MAX).format(dateTimeFormatter); // 23:59:59
        // æŸ¥è¯¢ä»Šå¤©æ˜¯å¦æœ‰æ¸©æ¹¿åº¦è®°å½•
        return feTempHumRecordMapper.selectOne(Wrappers.<FeTempHumRecord>lambdaQuery()
                // å“ªä¸ªå®žéªŒå®¤
                .eq(FeTempHumRecord::getDateId, dateId)
                // è®°å½•时间在今天之内
                .eq(FeTempHumRecord::getRecordDate, today)
                .between(FeTempHumRecord::getMorningTestTime, start, end));
    }
    /**
     * æ¯å¤©14点执行一次 é™¤äº†æ˜ŸæœŸå…­å’Œæ˜ŸæœŸå¤©
     * èŽ·å–æ¸©åº¦æ¹¿åº¦
     */
//    @Scheduled(cron = "0/5 * * * * *")
    @Scheduled(cron = "0 0 14 * * 1-5") // æ¯å¤©14点执行一次 é™¤äº†æ˜ŸæœŸå…­å’Œæ˜ŸæœŸå¤©
    public void task2() {
        // æ£€æŸ¥å®žéªŒå®¤æ˜¯å¦æœ‰ä»»åŠ¡ å¦‚果没有新增任务
        checkLaboratoriesSchedule();
        // æ ¹æ®æ—¶é—´é™åºï¼ŒèŽ·å–åˆ°æœ€æ–°çš„ä¸€æ¡æ•°æ®
        CollectTemperatureHumidity collectTemperatureHumidity = collectTemperatureHumidityMapper.selectOne(Wrappers.<CollectTemperatureHumidity>lambdaQuery()
                .orderByDesc(CollectTemperatureHumidity::getCollectTime)
                .last("limit 1"));
        // èŽ·å–æ‰€æœ‰çš„å®žéªŒå®¤
        List<CollectLaboratory> collectLaboratories = collectLaboratoryMapper.selectList(null);
        // éåŽ†èŽ·å–å®žéªŒå®¤ç¼–å· èŽ·å–æ¸©æ¹¿åº¦ ä¿å­˜åœ¨å¯¹åº”çš„
        for (CollectLaboratory collectLaboratory : collectLaboratories) {
            // å®žéªŒå®¤ç¼–号
            int labNumber = Integer.parseInt(collectLaboratory.getDeviceCode());
            // æ ¹æ®å®žéªŒå®¤ç¼–号拼接对应的湿度和温度字段
            String temperatureField = "code" + labNumber + "Temperature";
            String humidityField = "code" + labNumber + "Humidity";
            // èŽ·å–æ¸©åº¦
            Double temperature = getFieldValue(collectTemperatureHumidity, temperatureField) != null ? (Double) getFieldValue(collectTemperatureHumidity, temperatureField) : Double.valueOf(00.0);
            // èŽ·å–æ¹¿åº¦
            Double humidity = getFieldValue(collectTemperatureHumidity, humidityField) != null ? (Double) getFieldValue(collectTemperatureHumidity, humidityField) : Double.valueOf(00.0);
            // æŸ¥è¯¢è¯•验区域
            FeTempHumDate feTempHumDate = feTempHumDateMapper.selectOne(Wrappers.<FeTempHumDate>lambdaQuery()
                    .eq(FeTempHumDate::getMonthDate, formattedDate)
                    .eq(FeTempHumDate::getTestAreaName, collectLaboratory.getLaboratory()));
            Integer dateId = feTempHumDate.getDateId();
            // æŸ¥è¯¢ä»Šå¤©æ˜¯å¦æœ‰æ¸©æ¹¿åº¦è®°å½•
            FeTempHumRecord feTempHumRecord = record(dateId);
            // å¦‚果没有查询结果就说明上午没有记录
            if (feTempHumRecord == null) {
                // åˆ›å»ºä»Šå¤©æ¸©æ¹¿åº¦è®°å½•对象 è®°å½•下午温度湿度
                FeTempHumRecord newFeTempHumRecord = new FeTempHumRecord();
                newFeTempHumRecord.setAfternoonTime(LocalTime.now());
                newFeTempHumRecord.setAfternoonTemp(temperature.toString());
                newFeTempHumRecord.setAfternoonHum(humidity.toString());
                newFeTempHumRecord.setDateId(dateId);
                feTempHumRecordMapper.insert(newFeTempHumRecord);
                continue;
            }
            // æŸ¥è¯¢å‡ºæ¥å°±ä»£è¡¨ä»Šå¤©è®°å½•过 å†åˆ¤æ–­ä¸‹åˆæœ‰è®°å½•过没有
            // æ¸©åº¦æ˜¯å¦è®°å½•过
            if (feTempHumRecord.getAfternoonTemp() == null) {
                // æ²¡æœ‰å°±è‡ªåŠ¨è®°å½•
                feTempHumRecord.setAfternoonTemp(temperature.toString());
                // ä¿®æ”¹è®°å½•æ—¶é—´
                feTempHumRecord.setAfternoonTime(LocalTime.now());
            }
            // æ¹¿åº¦æ˜¯å¦è®°å½•过
            if (feTempHumRecord.getAfternoonHum() == null) {
                // æ²¡æœ‰å°±è‡ªåŠ¨è®°å½•
                feTempHumRecord.setAfternoonHum(humidity.toString());
                // ä¿®æ”¹è®°å½•æ—¶é—´
                feTempHumRecord.setAfternoonTime(LocalTime.now());
            }
            feTempHumRecordMapper.updateById(feTempHumRecord);
        }
    }
    /**
     * æ ¹æ®å®žéªŒå®¤ç¼–号获取温度湿度
     *
     * @param collectTemperatureHumidity æ¸©åº¦æ¹¿åº¦æ•°æ®
     * @param fieldName                  å­—段名
     * @return å­—段值
     */
    public static Object getFieldValue(CollectTemperatureHumidity collectTemperatureHumidity, String fieldName) {
        try {
            Field field = collectTemperatureHumidity.getClass().getDeclaredField(fieldName);
            field.setAccessible(true); // è®¾ç½®å¯ä»¥è®¿é—®ç§æœ‰å­—段
            return field.get(collectTemperatureHumidity); // èŽ·å–å­—æ®µçš„å€¼
        } catch (NoSuchFieldException | IllegalAccessException e) {
            e.printStackTrace();
            return null;
        }
    }
}
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java
@@ -27,6 +27,7 @@
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.ServletException;
@@ -76,6 +77,7 @@
    }
    @ApiOperation(value = "添加检验下单数据")
    @PreAuthorize("@ss.hasPermi('add:insOrder')")
    @PostMapping("/addInsOrder")
    public Result<?> addInsOrder(@RequestBody InsPlaceOrderDto insPlaceOrderDto) {
        return Result.success(insOrderService.addInsOrder(insPlaceOrderDto.getSampleList(), insPlaceOrderDto.getInsOrder()));
@@ -216,7 +218,7 @@
    public Result<?> delInsOrder(Integer insOrderId) {
        // æŸ¥è¯¢è®¢å•
        InsOrder order = insOrderService.getById(insOrderId);
        if (!order.getState().equals(2)) {
        if (!(order.getState().equals(2) || order.getState().equals(3))) {
            throw new ErrorException("只有退回订单才能删除");
        }
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderPlanController.java
@@ -1,6 +1,7 @@
package com.ruoyi.inspect.controller;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.Result;
@@ -14,10 +15,14 @@
import com.ruoyi.inspect.pojo.InsProduct;
import com.ruoyi.inspect.service.InsOrderFileService;
import com.ruoyi.inspect.service.InsOrderPlanService;
import com.ruoyi.inspect.service.InsOrderRatesService;
import com.ruoyi.inspect.service.InsProductService;
import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHoursTemporary;
import com.ruoyi.performance.service.AuxiliaryOutputWorkingHoursTemporaryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -35,10 +40,9 @@
public class InsOrderPlanController {
    private InsOrderPlanService insOrderPlanService;
    private InsOrderFileService insOrderFileService;
    private InsProductService insProductService;
    private AuxiliaryOutputWorkingHoursTemporaryService auxiliaryOutputWorkingHoursTemporaryService;
    @ApiOperation(value = "获取检验任务列表")
@@ -122,6 +126,7 @@
    @ApiOperation(value = "上传附件")
    @PreAuthorize("@ss.hasPermi('upload:order:file')")
    @PostMapping("/uploadFile")
    public Result<?> taskUploadFile(Integer orderId, MultipartFile file) {
        return Result.success(insOrderPlanService.uploadFile(orderId, file));
@@ -129,6 +134,7 @@
    @ApiOperation(value = "删除附件")
    @PreAuthorize("@ss.hasPermi('del:order:file')")
    @DeleteMapping("/delfile")
    public Result<?> delfile(Integer id) {
        return Result.success(insOrderFileService.removeById(id));
@@ -223,6 +229,7 @@
    @ApiOperation(value = "修改检验项内容")
    @PreAuthorize("@ss.hasPermi('update:product:onPlan')")
    @PostMapping("/updateProductOnPlan")
    public Result<?> updateProductOnPlan(@RequestBody InsProduct insProduct) {
        insProductService.updateById(insProduct);
@@ -259,4 +266,26 @@
    public Result<?> delProductTreeByProductId(Integer productId) {
        return Result.success(insProductService.removeBindingProductTree(productId));
    }
    /**
     * æ ¹æ®è®¢å•查询工时详情
     * @return
     */
    @ApiOperation(value = "根据订单查询工时详情")
    @PreAuthorize("@ss.hasPermi('get:working:hours:byOrder')")
    @GetMapping("/getWorkingHoursByOrderId")
    public Result<IPage<AuxiliaryOutputWorkingHoursTemporary>> getWorkingHoursByOrderId(Page page, AuxiliaryOutputWorkingHoursTemporary workingHoursTemporary) {
        return Result.success(auxiliaryOutputWorkingHoursTemporaryService.getWorkingHoursByOrderId(page, workingHoursTemporary));
    }
    /**
     * ä¿®æ”¹å·¥æ—¶è¯¦æƒ…
     * @return
     */
    @ApiOperation(value = "修改工时详情")
    @PreAuthorize("@ss.hasPermi('update:order:workingHours')")
    @PostMapping("/updateWorkingHours")
    public Result updateWorkingHours(@RequestBody AuxiliaryOutputWorkingHoursTemporary workingHoursTemporary) {
        return Result.success(auxiliaryOutputWorkingHoursTemporaryService.updateById(workingHoursTemporary));
    }
}
inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java
@@ -214,6 +214,7 @@
    @ApiOperation(value = "原材料报检查询全部")
    @PreAuthorize("@ss.hasPermi('get:Ifs:ByAll')")
    @GetMapping("/getIfsByAll")
    public Result getIfsByAll(Page page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto){
        return Result.success(rawMaterialOrderService.getIfsByOver(page, ifsInventoryQuantityDto));
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderRatesMapper.java
@@ -1,7 +1,12 @@
package com.ruoyi.inspect.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.inspect.dto.SampleOrderDto;
import com.ruoyi.inspect.pojo.InsOrderRates;
import org.apache.ibatis.annotations.Param;
/**
 * è®¢å•费用表
@@ -11,5 +16,10 @@
 */
public interface InsOrderRatesMapper extends BaseMapper<InsOrderRates> {
    /**
     * æŸ¥è¯¢è®¢å•费用列表
     * @return
     */
    IPage<SampleOrderDto> selectInsOrderRates(Page page, @Param("ew") QueryWrapper<SampleOrderDto> ew);
}
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderRatesServiceImpl.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.QueryWrappers;
import com.ruoyi.inspect.dto.SampleOrderDto;
import com.ruoyi.inspect.mapper.InsOrderRatesMapper;
import com.ruoyi.inspect.pojo.InsOrderRates;
@@ -26,7 +27,7 @@
     */
    @Override
    public IPage<SampleOrderDto> selectInsOrderRates(Page page, SampleOrderDto sampleOrderDto) {
        return null;
        return baseMapper.selectInsOrderRates(page, QueryWrappers.queryWrappers(sampleOrderDto));
    }
}
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
@@ -442,6 +442,9 @@
                if (StringUtils.isBlank(product.getAsk()) || StringUtils.isBlank(product.getTell())) {
                    throw new ErrorException("有检验项的要求值或要求描述为空, è¯·å…ˆåŽ»æ ‡å‡†åº“é…ç½®è¦æ±‚å€¼æˆ–è¦æ±‚æè¿°");
                }
                if (StringUtils.isBlank(product.getSonLaboratory())) {
                    throw new ErrorException("有检验项的的子实验室为绑定, è¯·å…ˆç»‘定子实验室");
                }
                insProductMapper.insert(product);
            }
        }
inspect-server/src/main/resources/mapper/InsOrderRatesMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.ruoyi.inspect.mapper.InsOrderRatesMapper">
    <!-- æŸ¥è¯¢è´¹ç”¨åˆ—表 -->
    <select id="selectInsOrderRates" resultType="com.ruoyi.inspect.dto.SampleOrderDto">
        select *
        from (select io.*,
                     case
                         when
                             io.type_source = 0
                             then io.sample_view
                         else io.sample end                            sample,
                     GROUP_CONCAT(DISTINCT isa.model SEPARATOR ' ') AS sample_model
              from ins_order io
                       LEFT JOIN ins_sample isa ON isa.ins_order_id = io.id
              group by  io.id) a
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
</mapper>
performance-server/src/main/java/com/ruoyi/performance/mapper/AuxiliaryOutputWorkingHoursTemporaryMapper.java
@@ -1,7 +1,11 @@
package com.ruoyi.performance.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHoursTemporary;
import org.apache.ibatis.annotations.Param;
/**
 * å·¥æ—¶æš‚存表
@@ -11,5 +15,11 @@
 */
public interface AuxiliaryOutputWorkingHoursTemporaryMapper extends BaseMapper<AuxiliaryOutputWorkingHoursTemporary> {
    /**
     * æ ¹æ®è®¢å•查询工时详情
     * @param page
     * @return
     */
    IPage<AuxiliaryOutputWorkingHoursTemporary> getWorkingHoursByOrderId(Page page, @Param("ew") QueryWrapper<AuxiliaryOutputWorkingHoursTemporary> ew);
}
performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryOutputWorkingHoursTemporaryService.java
@@ -1,5 +1,7 @@
package com.ruoyi.performance.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHoursTemporary;
@@ -11,5 +13,12 @@
 */
public interface AuxiliaryOutputWorkingHoursTemporaryService extends IService<AuxiliaryOutputWorkingHoursTemporary> {
    /**
     * æ ¹æ®è®¢å•查询工时详情
     * @param page
     * @param workingHoursTemporary
     * @return
     */
    IPage<AuxiliaryOutputWorkingHoursTemporary> getWorkingHoursByOrderId(Page page, AuxiliaryOutputWorkingHoursTemporary workingHoursTemporary);
}
performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryOutputWorkingHoursTemporaryServiceImpl.java
@@ -1,6 +1,9 @@
package com.ruoyi.performance.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.QueryWrappers;
import com.ruoyi.performance.mapper.AuxiliaryOutputWorkingHoursTemporaryMapper;
import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHoursTemporary;
import com.ruoyi.performance.service.AuxiliaryOutputWorkingHoursTemporaryService;
@@ -15,5 +18,15 @@
@Service
public class AuxiliaryOutputWorkingHoursTemporaryServiceImpl extends ServiceImpl<AuxiliaryOutputWorkingHoursTemporaryMapper, AuxiliaryOutputWorkingHoursTemporary> implements AuxiliaryOutputWorkingHoursTemporaryService {
    /**
     * æ ¹æ®è®¢å•查询工时详情
     * @param page
     * @param workingHoursTemporary
     * @return
     */
    @Override
    public IPage<AuxiliaryOutputWorkingHoursTemporary> getWorkingHoursByOrderId(Page page, AuxiliaryOutputWorkingHoursTemporary workingHoursTemporary) {
        return baseMapper.getWorkingHoursByOrderId(page, QueryWrappers.queryWrappers(workingHoursTemporary));
    }
}
performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursTemporaryMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.ruoyi.performance.mapper.AuxiliaryOutputWorkingHoursTemporaryMapper">
    <!-- æ ¹æ®è®¢å•查询工时详情 -->
    <select id="getWorkingHoursByOrderId"
            resultType="com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHoursTemporary">
        select *
        from auxiliary_output_working_hours_temporary
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
</mapper>
pom.xml
@@ -201,13 +201,6 @@
                <version>${kaptcha.version}</version>
            </dependency>
            <!-- å®šæ—¶ä»»åŠ¡-->
            <dependency>
                <groupId>com.ruoyi</groupId>
                <artifactId>ruoyi-quartz</artifactId>
                <version>${ruoyi.version}</version>
            </dependency>
            <!-- é€šç”¨å·¥å…·-->
            <dependency>
                <groupId>com.ruoyi</groupId>
@@ -390,7 +383,6 @@
        <module>ruoyi-admin</module>
        <module>ruoyi-framework</module>
        <module>ruoyi-system</module>
        <module>ruoyi-quartz</module>
        <module>ruoyi-common</module>
        <module>basic-server</module>
        <module>inspect-server</module>
ruoyi-admin/pom.xml
@@ -55,12 +55,6 @@
            <artifactId>ruoyi-framework</artifactId>
        </dependency>
        <!-- å®šæ—¶ä»»åŠ¡-->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-quartz</artifactId>
        </dependency>
        <!--基础模块-->
        <dependency>
            <groupId>com.ruoyi</groupId>
ruoyi-admin/src/main/resources/application-druid.yml
@@ -1,3 +1,5 @@
# æœ¬åœ°
# æ•°æ®æºé…ç½®
spring:
  datasource:
@@ -60,6 +62,46 @@
          config:
            multi-statement-allow: true
  # redis é…ç½®
  redis:
    # åœ°å€
    host: localhost
    # ç«¯å£ï¼Œé»˜è®¤ä¸º6379
    port: 6379
    # æ•°æ®åº“索引
    database: 0
    #    # å¯†ç 
    #    password: root2022!
    # è¿žæŽ¥è¶…æ—¶æ—¶é—´
    timeout: 10s
    lettuce:
      pool:
        # è¿žæŽ¥æ± ä¸­çš„æœ€å°ç©ºé—²è¿žæŽ¥
        min-idle: 0
        # è¿žæŽ¥æ± ä¸­çš„æœ€å¤§ç©ºé—²è¿žæŽ¥
        max-idle: 8
        # è¿žæŽ¥æ± çš„æœ€å¤§æ•°æ®åº“连接数
        max-active: 8
        # #连接池最大阻塞等待时间(使用负值表示没有限制)
        max-wait: -1ms
# mybatis-plus配置
mybatis-plus:
  mapper-locations: classpath*:mapper/**/*Mapper.xml
  type-aliases-package: com.ruoyi.**.domain
  global-config:
    banner: off
    db-config:
      id-type: auto
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: false
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# Swagger配置
swagger:
  # æ˜¯å¦å¼€å¯swagger
  enabled: true
minio:
  endpoint: http://114.132.189.42/
ruoyi-admin/src/main/resources/application-prod.yml
@@ -1,3 +1,5 @@
# å…¬å¸æµ‹è¯•库
# æ•°æ®æºé…ç½®
spring:
  datasource:
@@ -60,6 +62,46 @@
          config:
            multi-statement-allow: true
  # redis é…ç½®
  redis:
    # åœ°å€
    host: localhost
    # ç«¯å£ï¼Œé»˜è®¤ä¸º6379
    port: 6379
    # æ•°æ®åº“索引
    database: 1
    # å¯†ç 
    password: root2022!
    # è¿žæŽ¥è¶…æ—¶æ—¶é—´
    timeout: 10s
    lettuce:
      pool:
        # è¿žæŽ¥æ± ä¸­çš„æœ€å°ç©ºé—²è¿žæŽ¥
        min-idle: 0
        # è¿žæŽ¥æ± ä¸­çš„æœ€å¤§ç©ºé—²è¿žæŽ¥
        max-idle: 8
        # è¿žæŽ¥æ± çš„æœ€å¤§æ•°æ®åº“连接数
        max-active: 8
        # #连接池最大阻塞等待时间(使用负值表示没有限制)
        max-wait: -1ms
# mybatis-plus配置
mybatis-plus:
  mapper-locations: classpath*:mapper/**/*Mapper.xml
  type-aliases-package: com.ruoyi.**.domain
  global-config:
    banner: off
    db-config:
      id-type: auto
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: false
    log-impl: # org.apache.ibatis.logging.stdout.StdOutImpl
# Swagger配置
swagger:
  # æ˜¯å¦å¼€å¯swagger
  enabled: true
minio:
  endpoint: http://114.132.189.42/
ruoyi-admin/src/main/resources/application-test.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,153 @@
# è£…备测试库配置
# æ•°æ®æºé…ç½®
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.mysql.cj.jdbc.Driver
    druid:
      # ä¸»åº“数据源
      master:
        url: jdbc:mysql://localhost:3306/center-lims-dz?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        username: root
        password: zttZTT123!
      # ä»Žåº“数据源
      slave:
        # ä»Žæ•°æ®æºå¼€å…³/默认关闭
        enabled: false
        url:
        username:
        password:
      # åˆå§‹è¿žæŽ¥æ•°
      initialSize: 5
      # æœ€å°è¿žæŽ¥æ± æ•°é‡
      minIdle: 10
      # æœ€å¤§è¿žæŽ¥æ± æ•°é‡
      maxActive: 20
      # é…ç½®èŽ·å–è¿žæŽ¥ç­‰å¾…è¶…æ—¶çš„æ—¶é—´
      maxWait: 60000
      # é…ç½®è¿žæŽ¥è¶…æ—¶æ—¶é—´
      connectTimeout: 30000
      # é…ç½®ç½‘络超时时间
      socketTimeout: 60000
      # é…ç½®é—´éš”多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      timeBetweenEvictionRunsMillis: 60000
      # é…ç½®ä¸€ä¸ªè¿žæŽ¥åœ¨æ± ä¸­æœ€å°ç”Ÿå­˜çš„æ—¶é—´ï¼Œå•位是毫秒
      minEvictableIdleTimeMillis: 300000
      # é…ç½®ä¸€ä¸ªè¿žæŽ¥åœ¨æ± ä¸­æœ€å¤§ç”Ÿå­˜çš„æ—¶é—´ï¼Œå•位是毫秒
      maxEvictableIdleTimeMillis: 900000
      # é…ç½®æ£€æµ‹è¿žæŽ¥æ˜¯å¦æœ‰æ•ˆ
      validationQuery: SELECT 1 FROM DUAL
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false
      webStatFilter:
        enabled: true
      statViewServlet:
        enabled: true
        # è®¾ç½®ç™½åå•,不填则允许所有访问
        allow:
        url-pattern: /druid/*
        # æŽ§åˆ¶å°ç®¡ç†ç”¨æˆ·åå’Œå¯†ç 
        login-username: ruoyi
        login-password: 123456
      filter:
        stat:
          enabled: true
          # æ…¢SQL记录
          log-slow-sql: true
          slow-sql-millis: 1000
          merge-sql: true
        wall:
          config:
            multi-statement-allow: true
  # redis é…ç½®
  redis:
    # åœ°å€
    host: localhost
    # ç«¯å£ï¼Œé»˜è®¤ä¸º6379
    port: 6379
    # æ•°æ®åº“索引
    database: 0
    #    # å¯†ç 
    password: zttZTT123!
    # è¿žæŽ¥è¶…æ—¶æ—¶é—´
    timeout: 10s
    lettuce:
      pool:
        # è¿žæŽ¥æ± ä¸­çš„æœ€å°ç©ºé—²è¿žæŽ¥
        min-idle: 0
        # è¿žæŽ¥æ± ä¸­çš„æœ€å¤§ç©ºé—²è¿žæŽ¥
        max-idle: 8
        # è¿žæŽ¥æ± çš„æœ€å¤§æ•°æ®åº“连接数
        max-active: 8
        # #连接池最大阻塞等待时间(使用负值表示没有限制)
        max-wait: -1ms
# mybatis-plus配置
mybatis-plus:
  mapper-locations: classpath*:mapper/**/*Mapper.xml
  type-aliases-package: com.ruoyi.**.domain
  global-config:
    banner: off
    db-config:
      id-type: auto
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: false
    log-impl: # org.apache.ibatis.logging.stdout.StdOutImpl
# Swagger配置
swagger:
  # æ˜¯å¦å¼€å¯swagger
  enabled: true
minio:
  endpoint: http://114.132.189.42/
  port: 7019
  secure: false
  accessKey: admin
  secretKey: 12345678
  preview-expiry: 24 # é¢„览地址默认24小时
# ç…§ç‰‡å­˜å‚¨è·¯å¾„+++++++++++++++++++++++++++运维需要配置+++++++++++++++++++++++++++
file:
  path: /center-lims/Work/img
  # ä¸Šä¼ æ–‡ä»¶å…è®¸çš„æ‰©å±•名
  allowed: png,jpg,jpeg,gif
wordUrl: /center-lims/Work/word
twoCode: /center-lims/Work/two_code
#oa:
#    oaHost: http://192.168.0.49:8000/oa_workflowrequest.asmx?wsdl
#    prodIp: http://192.168.21.53:8081
#    unqualifiedProcessId: 41974
wechat:
  # è´¨é‡æŠ¥æ£€é€šçŸ¥
  examiningUrl: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=21993616-9966-4fe4-81b0-68e99a40c964
ifs:
  contract: ZTZB
  contract-key-get: 4ttDeLKNsZuhstjtROMcRE1USNFXKdFYE7lQ2p1m5Bo=
  contract-key-post: 4ttDeLKNsZuhstjtROMcRE1USNFXKdFYE7lQ2p1m5Bo=
  custorder: http://192.168.20.47/PurchService.ashx?
  custorder-port: http://192.168.20.47:8008/PurchService.ashx?
  erp-services: http://192.168.20.47:8081
# å¤‡æ³¨ 18083密码:zttZTT123!@
mqtt:
  url: tcp://mqtt-ztt.zttiot.com:1883 # æœåС噍ip
  username: forwarder # MQTT-服务端-用户名,后期会修改为用户登录名
  password: ZTlink12345 # MQTT-服务端-密码,,后期会修改为用户登录密码
  timeout: 100 # è¶…æ—¶æ—¶é—´ ï¼ˆå•位:秒)
  keepalive: 60 # å¿ƒè·³ ï¼ˆå•位:秒)
  qos: 1 # å¿ƒè·³åŒ…级别
  completion-timeout: 3000 # è¿žæŽ¥è¶…时时间(单位:秒)
  clientId: javaPublish # clientId
  subscribe: /ztt/v3/2443521/publish # è®¢é˜…主题
  client: false # å¦‚果开发需要启动测试,需要改为false不然会一直报错
ruoyi-admin/src/main/resources/application.yml
@@ -15,8 +15,8 @@
# å¼€å‘环境配置
server:
  # æœåŠ¡å™¨çš„HTTP端口,默认为8080
  port: 8002
  # æœåŠ¡å™¨çš„HTTP端口
  port: 8001
  servlet:
    # åº”用的访问路径
    context-path: /
@@ -70,28 +70,6 @@
#    restart:
#      # çƒ­éƒ¨ç½²å¼€å…³
#      enabled: false
  # redis é…ç½®
  redis:
    # åœ°å€
    host: localhost
    # ç«¯å£ï¼Œé»˜è®¤ä¸º6379
    port: 6379
    # æ•°æ®åº“索引
    database: 0
#    # å¯†ç 
#    password: root2022!
    # è¿žæŽ¥è¶…æ—¶æ—¶é—´
    timeout: 10s
    lettuce:
      pool:
        # è¿žæŽ¥æ± ä¸­çš„æœ€å°ç©ºé—²è¿žæŽ¥
        min-idle: 0
        # è¿žæŽ¥æ± ä¸­çš„æœ€å¤§ç©ºé—²è¿žæŽ¥
        max-idle: 8
        # è¿žæŽ¥æ± çš„æœ€å¤§æ•°æ®åº“连接数
        max-active: 8
        # #连接池最大阻塞等待时间(使用负值表示没有限制)
        max-wait: -1ms
# token配置
token:
@@ -108,11 +86,6 @@
  supportMethodsArguments: true
  params: count=countSql
# Swagger配置
swagger:
  # æ˜¯å¦å¼€å¯swagger
  enabled: true
# é˜²æ­¢XSS攻击
xss:
  # è¿‡æ»¤å¼€å…³
@@ -122,16 +95,4 @@
  # åŒ¹é…é“¾æŽ¥
  urlPatterns: /system/*,/monitor/*,/tool/*
# mybatis-plus配置
mybatis-plus:
  mapper-locations: classpath*:mapper/**/*Mapper.xml
  type-aliases-package: com.ruoyi.**.domain
  global-config:
    banner: off
    db-config:
      id-type: auto
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: false
    log-impl: # org.apache.ibatis.logging.stdout.StdOutImpl
ruoyi-common/src/main/java/com/ruoyi/common/utils/GZipUtil.java
@@ -28,8 +28,7 @@
            return new String(out.toByteArray(), "iso-8859-1");
        } catch (Exception e) {
            e.printStackTrace();
            return str;
            throw new RuntimeException("数据压缩失败");
        }
    }
@@ -55,8 +54,7 @@
            return new String(out.toByteArray(), "utf-8");
        } catch (Exception e) {
            e.printStackTrace();
            return str;
            throw new RuntimeException("数据解压失败");
        }
    }
ruoyi-quartz/pom.xml
ÎļþÒÑɾ³ý
ruoyi-quartz/src/main/java/com/ruoyi/quartz/config/ScheduleConfig.java
ÎļþÒÑɾ³ý
ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobController.java
ÎļþÒÑɾ³ý
ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobLogController.java
ÎļþÒÑɾ³ý
ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJob.java
ÎļþÒÑɾ³ý
ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJobLog.java
ÎļþÒÑɾ³ý
ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/SysJobLogMapper.java
ÎļþÒÑɾ³ý
ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/SysJobMapper.java
ÎļþÒÑɾ³ý
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ISysJobLogService.java
ÎļþÒÑɾ³ý
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ISysJobService.java
ÎļþÒÑɾ³ý
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobLogServiceImpl.java
ÎļþÒÑɾ³ý
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java
ÎļþÒÑɾ³ý
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
ÎļþÒÑɾ³ý
ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/AbstractQuartzJob.java
ÎļþÒÑɾ³ý
ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/CronUtils.java
ÎļþÒÑɾ³ý
ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/JobInvokeUtil.java
ÎļþÒÑɾ³ý
ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/QuartzDisallowConcurrentExecution.java
ÎļþÒÑɾ³ý
ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/QuartzJobExecution.java
ÎļþÒÑɾ³ý
ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleUtils.java
ÎļþÒÑɾ³ý
ruoyi-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml
ÎļþÒÑɾ³ý
ruoyi-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml
ÎļþÒÑɾ³ý