From 40ac0fd62faca6b81b8708b5a7b222e29029a35c Mon Sep 17 00:00:00 2001
From: sunjianxi <839419401@qq.com>
Date: Fri, 23 Jan 2026 09:48:32 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8E=92=E4=BA=A7=E5=AE=9A=E6=97=B6=E4=BB=BB?=
=?UTF-8?q?=E5=8A=A1=E4=BF=AE=E6=94=B9-sjx?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
blade-ops/blade-job/pom.xml | 4 +++
.../scheduling/InitResourceProcessor.java | 32 +++++++++++++++++++
.../scheduling/SchedulingProcessor.java | 32 +++++++++++++++++++
.../scheduling/feign/IWorkOrderClient.java | 4 +++
.../feign/IWorkOrderClientFallback.java | 5 +++
.../scheduling/feign/WorkOrderClient.java | 23 +++++++++++++
.../scheduling/mapper/WorkOrderMapper.xml | 2 +-
.../impl/EquipResourceServiceImpl.java | 4 +++
.../impl/PersonResourceServiceImpl.java | 2 ++
.../service/impl/WorkOrderServiceImpl.java | 16 ++++++----
.../scheduling/task/InitResourceJob.java | 2 +-
.../scheduling/task/SchedulingJob.java | 2 +-
12 files changed, 119 insertions(+), 9 deletions(-)
create mode 100644 blade-ops/blade-job/src/main/java/org/springblade/job/processor/scheduling/InitResourceProcessor.java
create mode 100644 blade-ops/blade-job/src/main/java/org/springblade/job/processor/scheduling/SchedulingProcessor.java
diff --git a/blade-ops/blade-job/pom.xml b/blade-ops/blade-job/pom.xml
index 8d7b5745..afa588a5 100644
--- a/blade-ops/blade-job/pom.xml
+++ b/blade-ops/blade-job/pom.xml
@@ -52,6 +52,10 @@
4.6.0.RELEASE
compile
+
+ org.springblade
+ blade-scheduling-api
+
diff --git a/blade-ops/blade-job/src/main/java/org/springblade/job/processor/scheduling/InitResourceProcessor.java b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/scheduling/InitResourceProcessor.java
new file mode 100644
index 00000000..1ab22430
--- /dev/null
+++ b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/scheduling/InitResourceProcessor.java
@@ -0,0 +1,32 @@
+package org.springblade.job.processor.scheduling;
+
+import jakarta.annotation.Resource;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.scheduling.feign.IWorkOrderClient;
+import org.springframework.stereotype.Component;
+import tech.powerjob.worker.core.processor.ProcessResult;
+import tech.powerjob.worker.core.processor.TaskContext;
+import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
+
+import java.util.concurrent.CompletableFuture;
+
+/**
+ * 排产-定期生成设备和人力资源
+ */
+@Component
+@Data
+@Slf4j
+public class InitResourceProcessor implements BasicProcessor {
+
+ @Resource
+ private IWorkOrderClient client;
+
+ @Override
+ public ProcessResult process(TaskContext context) throws Exception {
+ log.info("初始化资源定时任务开始");
+ CompletableFuture runFuture = CompletableFuture.runAsync(()->client.initResource());
+ log.info("初始化资源定时任务结束");
+ return new ProcessResult(true);
+ }
+}
diff --git a/blade-ops/blade-job/src/main/java/org/springblade/job/processor/scheduling/SchedulingProcessor.java b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/scheduling/SchedulingProcessor.java
new file mode 100644
index 00000000..334adac8
--- /dev/null
+++ b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/scheduling/SchedulingProcessor.java
@@ -0,0 +1,32 @@
+package org.springblade.job.processor.scheduling;
+
+import jakarta.annotation.Resource;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.scheduling.feign.IWorkOrderClient;
+import org.springframework.stereotype.Component;
+import tech.powerjob.worker.core.processor.ProcessResult;
+import tech.powerjob.worker.core.processor.TaskContext;
+import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
+
+import java.util.concurrent.CompletableFuture;
+
+/**
+ * 排产-排产定时任务
+ */
+@Component
+@Data
+@Slf4j
+public class SchedulingProcessor implements BasicProcessor {
+
+ @Resource
+ private IWorkOrderClient client;
+
+ @Override
+ public ProcessResult process(TaskContext context) throws Exception {
+ log.info("排产定时任务开始");
+ CompletableFuture runFuture = CompletableFuture.runAsync(()->client.scheduling());
+ log.info("排产定时任务结束");
+ return new ProcessResult(true);
+ }
+}
diff --git a/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/feign/IWorkOrderClient.java b/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/feign/IWorkOrderClient.java
index 0f0af614..896306a6 100644
--- a/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/feign/IWorkOrderClient.java
+++ b/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/feign/IWorkOrderClient.java
@@ -21,6 +21,7 @@ public interface IWorkOrderClient {
String API_PREFIX = "/feign/client/workOrder";
String SCHEDULING = API_PREFIX + "/scheduling";
+ String INIT_RESOURCE = API_PREFIX + "/initResource";
/**
* 排产
@@ -28,4 +29,7 @@ public interface IWorkOrderClient {
*/
@GetMapping(SCHEDULING)
R scheduling();
+
+ @GetMapping(INIT_RESOURCE)
+ R initResource();
}
diff --git a/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/feign/IWorkOrderClientFallback.java b/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/feign/IWorkOrderClientFallback.java
index 076be6dc..10756076 100644
--- a/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/feign/IWorkOrderClientFallback.java
+++ b/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/feign/IWorkOrderClientFallback.java
@@ -40,4 +40,9 @@ public class IWorkOrderClientFallback implements IWorkOrderClient {
public R scheduling() {
return R.fail("获取数据失败");
}
+
+ @Override
+ public R initResource() {
+ return R.fail("初始化资源失败");
+ }
}
diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/feign/WorkOrderClient.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/feign/WorkOrderClient.java
index 980e90be..10a8bb4c 100644
--- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/feign/WorkOrderClient.java
+++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/feign/WorkOrderClient.java
@@ -28,12 +28,19 @@ package org.springblade.scheduling.scheduling.feign;
import io.swagger.v3.oas.annotations.Hidden;
import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.time.DateFormatUtils;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.DateUtil;
import org.springblade.scheduling.feign.IWorkOrderClient;
+import org.springblade.scheduling.scheduling.service.IEquipResourceService;
+import org.springblade.scheduling.scheduling.service.IPersonResourceService;
import org.springblade.scheduling.scheduling.service.IWorkOrderService;
import org.springframework.web.bind.annotation.RestController;
+import java.util.Date;
+
/**
* 字典服务Feign实现类
@@ -44,14 +51,30 @@ import org.springframework.web.bind.annotation.RestController;
@Hidden
@RestController
@AllArgsConstructor
+@Slf4j
public class WorkOrderClient implements IWorkOrderClient {
private final IWorkOrderService workOrderService;
+ private final IPersonResourceService personResourceService;
+
+ private final IEquipResourceService equipResourceService;
+
@Override
public R scheduling() {
+ log.info("排产任务开始:"+ DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss"));
workOrderService.scheduling();
+ log.info("排查任务结束:"+ DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss"));
+ return R.success();
+ }
+
+ @Override
+ public R initResource() {
+ log.info("初始化资源开始:"+ DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss"));
+ equipResourceService.initEquipResource();
+ personResourceService.initPersonResource();
+ log.info("初始化资源结束:" + DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss"));
return R.success();
}
}
diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.xml b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.xml
index 66532713..cc857190 100644
--- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.xml
+++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.xml
@@ -94,7 +94,7 @@
a.card_no AS "cardNO",
g.priority_aps AS "priorityAps",
g.product_ident AS "productIdent",
- to_char(g.release_date,'YYYY-MM-DD') AS "releaseDate",
+ to_char(g.receive_time,'YYYY-MM-DD') AS "receiveTime",
f.name AS "currentProcessName",
d.name AS "processName",
to_char(b.start_time,'YYYY-MM-DD HH24:MI') AS "startTime",
diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/EquipResourceServiceImpl.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/EquipResourceServiceImpl.java
index bf7323a2..74d77890 100644
--- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/EquipResourceServiceImpl.java
+++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/EquipResourceServiceImpl.java
@@ -31,6 +31,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.apache.commons.lang3.time.DateUtils;
@@ -61,6 +62,7 @@ import java.util.Map;
*/
@Service
@AllArgsConstructor
+@Slf4j
public class EquipResourceServiceImpl extends BaseServiceImpl implements IEquipResourceService {
private final IEquipAbilityService equipAbilityService;
@@ -78,6 +80,7 @@ public class EquipResourceServiceImpl extends BaseServiceImpl equipAbilityList = equipAbilityService.list(Wrappers.lambdaQuery().isNotNull(EquipAbilityEntity::getWorkCenterId).isNotNull(EquipAbilityEntity::getCraftId).isNotNull(EquipAbilityEntity::getEquipCode));
@@ -98,6 +101,7 @@ public class EquipResourceServiceImpl extends BaseServiceImpl deleteList = this.list(Wrappers.lambdaQuery().le(EquipResourceEntity::getDateTime,DateFormatUtils.format(DateUtils.addDays(date,-3),"yyyy-MM-dd")));
deleteList.forEach(item -> baseMapper.deleteById(item.getId()));
+ log.info("初始化设备资源结束:"+ DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss"));
}
public void initSingleEquipResource(EquipAbilityEntity entity){
diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/PersonResourceServiceImpl.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/PersonResourceServiceImpl.java
index e58133e3..b7547a40 100644
--- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/PersonResourceServiceImpl.java
+++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/PersonResourceServiceImpl.java
@@ -74,6 +74,7 @@ public class PersonResourceServiceImpl extends BaseServiceImpl sameFurnaceMap = new HashMap<>();
//烧结同炉
if(sintMap.containsKey(craft.getPpsId())){
- Boolean isSameFurnace = sameFurnace(order,craft,workPlanList,prevProcessEnd,glassCodeStr,sintMap);
+ sameFurnaceMap = sameFurnace(order,craft,workPlanList,prevProcessEnd,glassCodeStr,sintMap);
//同炉的话就不用走下面的匹配了,直接下一工序
- if(isSameFurnace){
+ if(sameFurnaceMap.get("isSameFurnace").toString() == "true"){
continue;
}
}
@@ -532,8 +533,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl workPlanList,LocalDateTime prevProcessEnd,String glassCodeStr,Map> sintMap){
+ public Map sameFurnace(YieldOrderEntity order,YieldOrderCraftEntity craft,List workPlanList,LocalDateTime prevProcessEnd,String glassCodeStr,Map> sintMap){
+ Map map = new HashMap<>();
Boolean isSameFurnace = false;
if(order.getYieldType() == 2 || order.getYieldType() == 3){//烧结订单
//获取当前工序的所有温度曲线
@@ -1325,6 +1327,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl