Browse Source

添加一个定时任务

master
shenzhouyu 1 month ago
parent
commit
c0752bfb4a
  1. 35
      src/main/java/com/heai/modules/pms/service/Impl/QcServiceImpl.java
  2. 5
      src/main/java/com/heai/modules/pms/service/QcService.java
  3. 44
      src/main/java/com/heai/modules/task/QmsTaskAutoGenerateScheduler.java
  4. 5
      src/main/resources/application-test.yml

35
src/main/java/com/heai/modules/pms/service/Impl/QcServiceImpl.java

@ -19,9 +19,11 @@ import com.heai.modules.pms.mapper.QcMapper;
import com.heai.modules.pms.service.QcService;
import com.heai.modules.pms.util.HttpClientUtil;
import com.heai.modules.pms.util.ResponseData;
import com.heai.modules.board.dao.BoardMapper;
import com.heai.modules.production.dao.PrintLabelRecordMapper;
import com.heai.modules.production.dao.StagnationDetailMapper;
import com.heai.modules.production.entity.BatchDetailVO;
import com.heai.modules.production.entity.SiteData;
import com.heai.modules.production.entity.StagnationDetail;
import com.heai.modules.production.service.InspectService;
@ -116,6 +118,9 @@ public class QcServiceImpl implements QcService {
@Autowired
private StagnationDetailMapper stagnationDetailMapper;
@Autowired
private BoardMapper boardMapper;
// ======================= 检验方法 =======================
/**
@ -5346,6 +5351,34 @@ public class QcServiceImpl implements QcService {
qcMapper.updateQcItemOrder(checkData);
}
/**
* Site 表全部 siteID 循环调用 GetQmsTaskAutomaticallyGenerated
*/
@Override
public void autoGenerateQmsTaskBySites() {
List<SiteData> siteList = boardMapper.getSiteData(new SiteData());
if (siteList == null || siteList.isEmpty()) {
log.info("Site 表无数据,跳过 GetQmsTaskAutomaticallyGenerated 调用");
return;
}
log.info("开始按 Site 调用 GetQmsTaskAutomaticallyGenerated,共 {} 个 site", siteList.size());
for (SiteData siteData : siteList) {
String siteId = siteData.getSiteID();
if (StringUtils.isBlank(siteId)) {
continue;
}
try {
List<Object> params = new ArrayList<>();
params.add(siteId);
// 库中过程名GetQmsTaskAutomaticallyGenerated参数 @site
procedureDao.execProduceData("GetQmsTaskAutomaticallyGenerated", params);
log.info("GetQmsTaskAutomaticallyGenerated 调用成功,site={}", siteId);
} catch (Exception e) {
log.error("GetQmsTaskAutomaticallyGenerated 调用失败,site={}", siteId, e);
}
}
}
/**
* 创建质量任务
*/
@ -5357,7 +5390,7 @@ public class QcServiceImpl implements QcService {
List<Object> params = new ArrayList<>();
params.add(site);
// 执行 不需要验证返回值
List<Map<String, Object>> resultList = procedureDao.getProcedureData("GET_QMS_TaskAutomaticallyGenerated", params);
List<Map<String, Object>> resultList = procedureDao.getProcedureData("GetQmsTaskAutomaticallyGenerated", params);
// QMS_soscheduledrouting_TASK delete_flag 为Y的数据
List<QmsTaskData> qmsTaskDataList = qcMapper.getQMSTask();
// 新增检验单

5
src/main/java/com/heai/modules/pms/service/QcService.java

@ -470,4 +470,9 @@ public interface QcService {
List<Map<String, Object>> searchQcSopFileList(Map<String, Object> params);
List<BatchDetailVO> getBatchDetailsByLaboratoryOrder(String laboratoryOrderNo);
/**
* Site 表全部 siteID 循环调用 GetQmsTaskAutomaticallyGenerated 存储过程
*/
void autoGenerateQmsTaskBySites();
}

44
src/main/java/com/heai/modules/task/QmsTaskAutoGenerateScheduler.java

@ -0,0 +1,44 @@
package com.heai.modules.task;
import com.heai.modules.pms.service.QcService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
* QMS 任务自动生成定时调度器
* <p>
* 每隔一段时间查询 Site 表全部 siteID逐个调用存储过程 GetQmsTaskAutomaticallyGenerated
*/
@Slf4j
@Component
public class QmsTaskAutoGenerateScheduler {
@Autowired
private QcService qcService;
@Value("${scheduler.qms-task-auto.enabled:true}")
private boolean enabled;
/**
* 默认每 10 分钟执行一次{@code 0 0/10 * * * ?}
* 可通过 {@code scheduler.qms-task-auto.cron} 覆盖
*/
@Scheduled(cron = "${scheduler.qms-task-auto.cron:0 0/10 * * * ?}")
public void scheduleQmsTaskAutoGenerate() {
if (!enabled) {
log.debug("QMS任务自动生成定时任务已禁用");
return;
}
log.info("=== QMS任务自动生成定时调度开始 ===");
try {
qcService.autoGenerateQmsTaskBySites();
log.info("=== QMS任务自动生成定时调度完成 ===");
} catch (Exception e) {
log.error("=== QMS任务自动生成定时调度失败 ===", e);
}
}
}

5
src/main/resources/application-test.yml

@ -65,3 +65,8 @@ scheduler:
# 是否启用定时任务(true-启用,false-禁用)
enabled: false
cron: "0 45 16 * * ?"
# QMS任务自动生成(按 Site 循环调用 GetQmsTaskAutomaticallyGenerated)
qms-task-auto:
enabled: true
# 每10分钟执行一次
cron: "0 0/10 * * * ?"
Loading…
Cancel
Save