Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
H
HYH.APSJ
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
佟礼
HYH.APSJ
Commits
15b3d7d4
Commit
15b3d7d4
authored
Nov 21, 2025
by
Tong Li
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加实体类
parent
273eaaae
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
196 additions
and
53 deletions
+196
-53
ResourceGanttController.java
...ava/com/aps/controller/gantt/ResourceGanttController.java
+1
-1
Chromosome.java
src/main/java/com/aps/entity/Algorithm/Chromosome.java
+13
-11
GlobalOperationInfo.java
...in/java/com/aps/entity/Algorithm/GlobalOperationInfo.java
+30
-0
OperationSequencingWeight.java
...a/com/aps/entity/Algorithm/OperationSequencingWeight.java
+23
-0
ScheduleParams.java
src/main/java/com/aps/entity/Algorithm/ScheduleParams.java
+66
-0
ScheduleResult.java
src/main/java/com/aps/entity/Algorithm/ScheduleResult.java
+24
-0
ScheduleResultDetail.java
...n/java/com/aps/entity/Algorithm/ScheduleResultDetail.java
+14
-0
MaterialRequirement.java
src/main/java/com/aps/entity/basic/MaterialRequirement.java
+6
-6
MaterialSupply.java
src/main/java/com/aps/entity/basic/MaterialSupply.java
+6
-6
ScheduleChromosome.java
src/main/java/com/aps/entity/basic/ScheduleChromosome.java
+3
-0
ScheduleResult.java
src/main/java/com/aps/entity/basic/ScheduleResult.java
+0
-24
GeneticAlgorithm.java
...main/java/com/aps/service/Algorithm/GeneticAlgorithm.java
+0
-2
AlgorithmScheduler6.java
src/main/java/com/aps/service/plan/AlgorithmScheduler6.java
+1
-0
AlgorithmScheduler7.java
src/main/java/com/aps/service/plan/AlgorithmScheduler7.java
+1
-0
PlanResultService.java
src/main/java/com/aps/service/plan/PlanResultService.java
+6
-2
PlanSchedulerService.java
src/main/java/com/aps/service/plan/PlanSchedulerService.java
+1
-0
MachineSchedulerTest.java
src/test/java/com/aps/demo/MachineSchedulerTest.java
+1
-1
No files found.
src/main/java/com/aps/controller/gantt/ResourceGanttController.java
View file @
15b3d7d4
package
com
.
aps
.
controller
.
gantt
;
import
com.aps.entity.basic.ScheduleChromosome
;
import
com.aps.entity.Gantt.ProductGanttVO
;
import
com.aps.entity.Gantt.ResourceGanttVO
;
import
com.aps.entity.Gantt.TaskVO
;
import
com.aps.entity.Schedule.MachineVO
;
import
com.aps.entity.basic.*
;
import
com.aps.service.plan.PlanResultService
;
import
com.aps.service.plan.PlanSchedulerService
;
...
...
src/main/java/com/aps/entity/
basic
/Chromosome.java
→
src/main/java/com/aps/entity/
Algorithm
/Chromosome.java
View file @
15b3d7d4
package
com
.
aps
.
entity
.
basic
;
package
com
.
aps
.
entity
.
Algorithm
;
import
com.aps.entity.Algorithm.ScheduleResult
;
import
com.aps.entity.basic.Machine
;
import
lombok.Data
;
import
java.util.List
;
...
...
@@ -13,52 +15,52 @@ public class Chromosome {
/// <summary>
/// 机器选择部分(可选机器集中的顺序号)
/// </summary>
public
List
<
Integer
>
m
achineSelection
;
public
List
<
Integer
>
M
achineSelection
;
/// <summary>
/// 工序排序部分(工件/订单ID)
/// </summary>
public
List
<
Integer
>
o
perationSequencing
;
public
List
<
Integer
>
P
perationSequencing
;
/// <summary>
/// 适应度值
/// </summary>
public
double
f
itness
;
public
double
F
itness
;
/// <summary>
/// 机器
/// </summary>
public
List
<
Machine
>
m
achines
;
public
List
<
Machine
>
M
achines
;
/// <summary>
/// 解码后的调度结果
/// </summary>
public
List
<
ScheduleResult
>
r
esult
;
public
List
<
ScheduleResult
>
R
esult
;
/// <summary>
/// 最早完工时间
/// </summary>
public
double
m
akespan
;
public
double
M
akespan
;
/// <summary>
/// 总流程时间
/// </summary>
public
double
t
otalFlowTime
;
public
double
T
otalFlowTime
;
/// <summary>
/// 总换型时间
/// </summary>
public
double
t
otalChangeoverTime
;
public
double
T
otalChangeoverTime
;
/// <summary>
/// 机器负载标准差(越小越均衡)
/// </summary>
public
double
m
achineLoadStd
;
public
double
M
achineLoadStd
;
/// <summary>
/// 交付期延迟时间
/// </summary>
public
double
d
elayTime
;
public
double
D
elayTime
;
}
src/main/java/com/aps/entity/Algorithm/GlobalOperationInfo.java
0 → 100644
View file @
15b3d7d4
package
com
.
aps
.
entity
.
Algorithm
;
import
com.aps.entity.basic.Entry
;
import
lombok.Data
;
/**
* 作者:佟礼
* 时间:2025-11-21
*/
@Data
public
class
GlobalOperationInfo
{
/**
* 全局唯一工序ID(0开始递增)
*/
public
int
GlobalOpId
;
/**
* 所属组ID
*/
public
int
GroupId
;
/**
* 订单内工序顺序号
*/
public
int
Sequence
;
/**
* 对应的工序实例
*/
public
Entry
Op
;
}
src/main/java/com/aps/entity/Algorithm/OperationSequencingWeight.java
0 → 100644
View file @
15b3d7d4
package
com
.
aps
.
entity
.
Algorithm
;
import
lombok.Data
;
/**
* 作者:佟礼
* 时间:2025-11-21
*/
@Data
public
class
OperationSequencingWeight
{
/**
* 工序基因的序号
*/
public
int
Index
;
/**
* 工序基因的值
*/
public
int
OsValue
;
/**
* 权重
*/
public
int
Weight
;
}
src/main/java/com/aps/entity/Algorithm/ScheduleParams.java
0 → 100644
View file @
15b3d7d4
package
com
.
aps
.
entity
.
Algorithm
;
import
com.aps.entity.basic.Entry
;
import
lombok.Data
;
import
java.util.Date
;
/**
* 作者:佟礼 遗传参数
* 时间:2025-11-21
*/
@Data
public
class
ScheduleParams
{
public
Date
BaseTime
=
new
Date
();
// 当前基准时间
/// <summary>
/// 设备总数
/// </summary>
public
int
MachineCount
;
// 设备总数
/// <summary>
/// 交叉概率
/// </summary>
public
double
CrossoverProb
=
0.8
;
/// <summary>
/// 变异概率
/// </summary>
public
double
MutationProb
=
0.1
;
// 变异概率
/// <summary>
/// 种群规模
/// </summary>
public
int
PopulationSize
=
50
;
// 种群规模
/// <summary>
/// 最大迭代次数
/// </summary>
public
int
MaxIterations
=
100
;
// 最大迭代次数
/// <summary>
/// 精英保留计数
/// </summary>
public
int
ElitismCount
=
5
;
/// <summary>
/// 全局选择占比
/// </summary>
public
double
GsRatio
=
0.4
;
// 全局选择占比
/// <summary>
/// 局部选择占比
/// </summary>
public
double
LsRatio
=
0.4
;
// 局部选择占比
/// <summary>
/// 随机选择占比
/// </summary>
public
double
RsRatio
=
0.2
;
// 随机选择占比
}
src/main/java/com/aps/entity/Algorithm/ScheduleResult.java
0 → 100644
View file @
15b3d7d4
package
com
.
aps
.
entity
.
Algorithm
;
import
lombok.Data
;
import
java.util.List
;
/**
* 作者:佟礼
* 时间:2025-11-21
*/
@Data
public
class
ScheduleResult
{
public
int
GroupId
;
public
int
ProductId
;
public
int
OperationId
;
public
int
MachineId
;
public
int
StartTime
;
// 相对开始时间(分钟)
public
int
EndTime
;
// 相对结束时间(分钟)
public
int
Quantity
;
// 批次大小(订单可拆分)
public
List
<
ScheduleResultDetail
>
GeneDetails
;
// 时间详情
public
int
OneTime
;
// 单件工时
public
int
ProcessingTime
;
// 绝对处理时间(分钟)
public
int
ChangeoverTime
;
}
src/main/java/com/aps/entity/
basic
/ScheduleResultDetail.java
→
src/main/java/com/aps/entity/
Algorithm
/ScheduleResultDetail.java
View file @
15b3d7d4
package
com
.
aps
.
entity
.
basic
;
package
com
.
aps
.
entity
.
Algorithm
;
import
lombok.Data
;
...
...
@@ -8,7 +8,7 @@ import lombok.Data;
*/
@Data
public
class
ScheduleResultDetail
{
public
String
k
ey
;
public
int
s
tartTime
;
// 相对开始时间(分钟)
public
int
e
ndTime
;
// 相对结束时间(分钟)
public
String
K
ey
;
public
int
S
tartTime
;
// 相对开始时间(分钟)
public
int
E
ndTime
;
// 相对结束时间(分钟)
}
src/main/java/com/aps/entity/basic/MaterialRequirement.java
View file @
15b3d7d4
...
...
@@ -17,24 +17,24 @@ public class MaterialRequirement {
/**
* 物料ID
*/
public
int
m
aterialId
;
public
int
M
aterialId
;
/**
* 物料类型
*/
public
MaterialType
m
aterialType
;
public
MaterialType
M
aterialType
;
/**
* 该工序需要的物料数量
*/
public
BigDecimal
r
equiredQuantity
;
public
BigDecimal
R
equiredQuantity
;
@Override
public
String
toString
()
{
return
"MaterialRequirement{"
+
"materialId="
+
m
aterialId
+
", materialType="
+
m
aterialType
+
", requiredQuantity="
+
r
equiredQuantity
+
"materialId="
+
M
aterialId
+
", materialType="
+
M
aterialType
+
", requiredQuantity="
+
R
equiredQuantity
+
'}'
;
}
}
...
...
src/main/java/com/aps/entity/basic/MaterialSupply.java
View file @
15b3d7d4
...
...
@@ -17,24 +17,24 @@ public class MaterialSupply {
/**
* 物料ID
*/
public
int
m
aterialId
;
public
int
M
aterialId
;
/**
* 数量
*/
public
double
q
uantity
;
public
double
Q
uantity
;
/**
* 预计到货时间
*/
public
LocalDateTime
a
rrivalTime
;
public
LocalDateTime
A
rrivalTime
;
@Override
public
String
toString
()
{
return
"MaterialSupply{"
+
"materialId="
+
m
aterialId
+
", quantity="
+
q
uantity
+
", arrivalTime="
+
a
rrivalTime
+
"materialId="
+
M
aterialId
+
", quantity="
+
Q
uantity
+
", arrivalTime="
+
A
rrivalTime
+
'}'
;
}
}
src/main/java/com/aps/entity/basic/ScheduleChromosome.java
View file @
15b3d7d4
package
com
.
aps
.
entity
.
basic
;
import
com.aps.entity.basic.Gene
;
import
com.aps.entity.basic.Machine
;
import
com.aps.entity.basic.Order
;
import
lombok.Data
;
import
java.time.LocalDateTime
;
...
...
src/main/java/com/aps/entity/basic/ScheduleResult.java
deleted
100644 → 0
View file @
273eaaae
package
com
.
aps
.
entity
.
basic
;
import
lombok.Data
;
import
java.util.List
;
/**
* 作者:佟礼
* 时间:2025-11-21
*/
@Data
public
class
ScheduleResult
{
public
int
groupId
;
public
int
productId
;
public
int
operationId
;
public
int
machineId
;
public
int
startTime
;
// 相对开始时间(分钟)
public
int
endTime
;
// 相对结束时间(分钟)
public
int
quantity
;
// 批次大小(订单可拆分)
public
List
<
ScheduleResultDetail
>
geneDetails
;
// 时间详情
public
int
oneTime
;
// 单件工时
public
int
processingTime
;
// 绝对处理时间(分钟)
public
int
changeoverTime
;
}
src/main/java/com/aps/service/Algorithm/GeneticAlgorithm.java
View file @
15b3d7d4
package
com
.
aps
.
service
.
Algorithm
;
import
com.aps.entity.basic.ScheduleChromosome
;
/**
* 作者:佟礼
* 时间:2025-11-21
...
...
src/main/java/com/aps/service/plan/AlgorithmScheduler6.java
View file @
15b3d7d4
...
...
@@ -3,6 +3,7 @@ package com.aps.service.plan;
import
com.aps.common.util.FileHelper
;
import
com.aps.entity.basic.ScheduleChromosome
;
import
com.aps.entity.basic.*
;
import
java.time.LocalDateTime
;
...
...
src/main/java/com/aps/service/plan/AlgorithmScheduler7.java
View file @
15b3d7d4
...
...
@@ -3,6 +3,7 @@ package com.aps.service.plan;
import
com.aps.common.util.FileHelper
;
import
com.aps.entity.basic.ScheduleChromosome
;
import
com.aps.entity.basic.*
;
import
java.time.LocalDateTime
;
...
...
src/main/java/com/aps/service/plan/PlanResultService.java
View file @
15b3d7d4
...
...
@@ -2,9 +2,11 @@ package com.aps.service.plan;
import
com.aps.common.util.JsonFileReader
;
import
com.aps.controller.gantt.FileUploadController
;
import
com.aps.entity.basic.ScheduleChromosome
;
import
com.aps.entity.Schedule.GenVO
;
import
com.aps.entity.Schedule.MachineVO
;
import
com.aps.entity.basic.*
;
import
com.aps.service.Algorithm.GeneticAlgorithm
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -141,8 +143,10 @@ public class PlanResultService {
}
// 5. 执行调度算法
AlgorithmScheduler7
scheduler
=
new
AlgorithmScheduler7
(
products
,
machines
,
orders
,
machineScheduler
);
List
<
ScheduleChromosome
>
scheduleChromosomes
=
scheduler
.
RunAll
();
GeneticAlgorithm
scheduler
=
new
GeneticAlgorithm
();
//new GeneticAlgorithm(products, machines, orders, machineScheduler);
List
<
ScheduleChromosome
>
scheduleChromosomes
=
null
;
scheduler
.
Run
();
// 对调度结果按照 fitness 由高到低排序
scheduleChromosomes
.
sort
((
c1
,
c2
)
->
Double
.
compare
(
c2
.
getFitness
(),
c1
.
getFitness
()));
...
...
src/main/java/com/aps/service/plan/PlanSchedulerService.java
View file @
15b3d7d4
package
com
.
aps
.
service
.
plan
;
import
com.aps.common.util.JsonFileReader
;
import
com.aps.entity.basic.ScheduleChromosome
;
import
com.aps.entity.Schedule.GenVO
;
import
com.aps.entity.Schedule.MachineVO
;
import
com.aps.entity.Schedule.PlanResourceTaskGanttVO
;
...
...
src/test/java/com/aps/demo/MachineSchedulerTest.java
View file @
15b3d7d4
...
...
@@ -2,8 +2,8 @@ package com.aps.demo;
import
com.aps.common.util.JsonFileReader
;
import
com.aps.entity.basic.ScheduleChromosome
;
import
com.aps.entity.basic.*
;
import
com.aps.service.plan.AlgorithmScheduler6
;
import
com.aps.service.plan.AlgorithmScheduler7
;
import
com.aps.service.plan.MachineSchedulerService
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment