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
ffd1e0bc
Commit
ffd1e0bc
authored
May 26, 2026
by
DESKTOP-VKRD9QF\Administration
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://39.100.78.207:1213/tongli/hyh.apsj
parents
78900059
7e90812c
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
26 additions
and
23 deletions
+26
-23
GeneticDecoder.java
src/main/java/com/aps/service/Algorithm/GeneticDecoder.java
+1
-1
Initialization.java
src/main/java/com/aps/service/Algorithm/Initialization.java
+8
-6
MaterialRequirementService.java
...com/aps/service/Algorithm/MaterialRequirementService.java
+17
-16
No files found.
src/main/java/com/aps/service/Algorithm/GeneticDecoder.java
View file @
ffd1e0bc
...
...
@@ -2038,7 +2038,7 @@ if(geneDetails!=null&&geneDetails.size()>0)
}
}
List
<
OrderMaterialRequirement
>
remove
=
new
ArrayList
<>();
materialRequirementService
.
CalBom
(
chromosome
,
0
,
totalNeededByMaterial
,
materials
,
baseTime
.
plusSeconds
(
estimatedStartTime
)
,
false
,
remove
,
null
,
false
);
materialRequirementService
.
CalBom
(
chromosome
,
0
,
totalNeededByMaterial
,
chromosome
.
getMaterials
()
,
baseTime
.
plusSeconds
(
estimatedStartTime
)
,
false
,
remove
,
null
,
false
);
Optional
<
LocalDateTime
>
rawDateOpt
=
totalNeededByMaterial
.
values
().
stream
()
.
map
(
OrderMaterialRequirement:
:
getUseTime
)
...
...
src/main/java/com/aps/service/Algorithm/Initialization.java
View file @
ffd1e0bc
...
...
@@ -364,31 +364,32 @@ public class Initialization {
chromo
.
setOrders
(
new
CopyOnWriteArrayList
<>(
orders
));
if
(
i
<
sptCount
)
{
// SPT规则
// SPT规则
// 1 SPT(最短加工时间)
chromo
.
setGenerateType
(
"SPT"
);
generateChromosomeByType
(
chromo
,
1
);
}
else
if
(
i
<
eddsptCount
)
{
// EDD+SPT混合策略
// EDD+SPT混合策略
先按截止日期,再按加工时间
chromo
.
setGenerateType
(
"EDD+SPT"
);
generateEDDSPTChromosome
(
chromo
);
}
else
if
(
i
<
eddCount
)
{
// EDD规则
// EDD规则
截止时间
chromo
.
setGenerateType
(
"EDD"
);
generateChromosomeByType
(
chromo
,
3
);
}
else
if
(
i
<
bottleneckCount
)
{
// 瓶颈优先策略
chromo
.
setGenerateType
(
"BottleneckFirst"
);
generateBottleneckFirstChromosome
(
chromo
);
}
else
if
(
i
<
sstCount
)
{
// SST规则(已有物料排序)
// SST规则(已有物料排序)
:优先选择准备时间最短的工序
chromo
.
setGenerateType
(
"SST"
);
generateSSTChromosome
(
chromo
);
}
else
if
(
i
<
crCount
)
{
// CR规则
// CR规则
CR(关键比率)规则:关键比率 = (截止日期 - 当前日期) / 剩余加工时间
chromo
.
setGenerateType
(
"CR"
);
generateCRChromosome
(
chromo
);
}
else
if
(
i
<
lptCount
)
{
// LPT规则
// LPT规则
2 LPT(最长加工时间)
chromo
.
setGenerateType
(
"LPT"
);
generateChromosomeByType
(
chromo
,
2
);
}
else
{
...
...
@@ -460,6 +461,7 @@ public class Initialization {
}
}
else
if
(
sortType
==
3
)
{
//截止时间
if
(
considerSequence
)
{
sortedOps
.
sort
(
Comparator
.
comparing
((
Entry
op
)
->
op
.
getPriority
())
.
thenComparing
(
Entry:
:
getSequence
)
...
...
src/main/java/com/aps/service/Algorithm/MaterialRequirementService.java
View file @
ffd1e0bc
...
...
@@ -1548,24 +1548,25 @@ if(demand==null)
.
sorted
(
Comparator
.
comparing
(
MaterialSupply:
:
getArrivalTime
,
Comparator
.
nullsLast
(
LocalDateTime:
:
compareTo
)))
.
collect
(
Collectors
.
toList
());
for
(
MaterialSupply
supply
:
sortedInTransit
)
{
double
useq
=
Math
.
min
(
needed
,
supply
.
getQuantity
());
if
(
useq
<=
0
)
{
continue
;
}
useTransit
+=
useq
;
needed
-=
useq
;
if
(
commitChanges
)
{
supply
.
setQuantity
(
supply
.
getQuantity
()
-
useq
);
}
if
(
earliestTime
==
null
||
(
supply
.
getArrivalTime
()
!=
null
&&
supply
.
getArrivalTime
().
isAfter
(
earliestTime
)))
{
earliestTime
=
supply
.
getArrivalTime
();
}
if
(
needed
<=
0
)
{
break
;
if
(
sortedInTransit
!=
null
&&
sortedInTransit
.
size
()>
0
)
{
for
(
MaterialSupply
supply
:
sortedInTransit
)
{
double
useq
=
Math
.
min
(
needed
,
supply
.
getQuantity
());
if
(
useq
<=
0
)
{
continue
;
}
useTransit
+=
useq
;
needed
-=
useq
;
if
(
commitChanges
)
{
supply
.
setQuantity
(
supply
.
getQuantity
()
-
useq
);
}
if
(
earliestTime
==
null
||
(
supply
.
getArrivalTime
()
!=
null
&&
supply
.
getArrivalTime
().
isAfter
(
earliestTime
)))
{
earliestTime
=
supply
.
getArrivalTime
();
}
if
(
needed
<=
0
)
{
break
;
}
}
}
orderMaterial
.
setUseTransit
(
useTransit
);
orderMaterial
.
setArrivalTime
(
earliestTime
);
...
...
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