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
1c20209d
Commit
1c20209d
authored
Dec 05, 2025
by
Tong Li
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
遗传算法
parent
edfba6c2
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
699 additions
and
80 deletions
+699
-80
DependencyType.java
src/main/java/com/aps/entity/Algorithm/DependencyType.java
+22
-0
OperationDependency.java
...in/java/com/aps/entity/Algorithm/OperationDependency.java
+15
-0
ScheduleResultDetail.java
...n/java/com/aps/entity/Algorithm/ScheduleResultDetail.java
+36
-2
Entry.java
src/main/java/com/aps/entity/basic/Entry.java
+5
-4
GeneticDecoder.java
src/main/java/com/aps/service/Algorithm/GeneticDecoder.java
+261
-13
MachineCalculator.java
...ain/java/com/aps/service/Algorithm/MachineCalculator.java
+212
-4
ScheduleOperationService.java
...a/com/aps/service/Algorithm/ScheduleOperationService.java
+91
-15
PlanResultService.java
src/main/java/com/aps/service/plan/PlanResultService.java
+47
-16
machines.json
src/main/resources/machines.json
+10
-26
No files found.
src/main/java/com/aps/entity/Algorithm/DependencyType.java
0 → 100644
View file @
1c20209d
package
com
.
aps
.
entity
.
Algorithm
;
/**
* 作者:佟礼
* 时间:2025-12-04
*/
public
enum
DependencyType
{
FinishToStart
(
0
),
// 完成-开始(FS):串行 下料→加工→组装
StartToStart
(
1
),
// 开始-开始(SS): 加工 A 和加工 B 可同时进行 重叠 重叠生产:涂装开始后 30 分钟,烘烤可开始
FinishToFinish
(
2
),
// 完成-完成(FF):前置工序完成后,后继工序才能完成 所有并行加工工序需同时完成
StartToFinish
(
3
);
// 开始-完成(SF):前置工序开始后,后继工序才能完成
private
final
int
value
;
DependencyType
(
int
value
)
{
this
.
value
=
value
;
}
public
int
getValue
()
{
return
value
;
}
}
src/main/java/com/aps/entity/Algorithm/OperationDependency.java
0 → 100644
View file @
1c20209d
package
com
.
aps
.
entity
.
Algorithm
;
import
lombok.Data
;
/**
* 作者:佟礼
* 时间:2025-12-04
*/
@Data
public
class
OperationDependency
{
private
int
Id
;
private
int
prevOperationId
;
// 前置工序ID
private
int
nextOperationId
;
// 后继工序ID
private
DependencyType
dependencyType
=
DependencyType
.
FinishToStart
;
// 依赖类型
}
src/main/java/com/aps/entity/Algorithm/ScheduleResultDetail.java
View file @
1c20209d
...
@@ -9,6 +9,40 @@ import lombok.Data;
...
@@ -9,6 +9,40 @@ import lombok.Data;
@Data
@Data
public
class
ScheduleResultDetail
{
public
class
ScheduleResultDetail
{
private
String
Key
;
private
String
Key
;
private
int
StartTime
;
// 相对开始时间(分钟)
private
int
StartTime
;
// 相对开始时间(秒)
private
int
EndTime
;
// 相对结束时间(分钟)
private
int
EndTime
;
// 相对结束时间(秒)
private
double
OneTime
;
// 单件工时
private
double
Quantity
;
// 时间段
// Key 的 getter/setter
public
String
getKey
()
{
return
Key
;
}
public
void
setKey
(
String
key
)
{
this
.
Key
=
key
;
}
// StartTime 的 getter/setter
public
int
getStartTime
()
{
return
StartTime
;
}
public
void
setStartTime
(
int
startTime
)
{
this
.
StartTime
=
startTime
;
}
// EndTime 的 getter/setter
public
int
getEndTime
()
{
return
EndTime
;
}
public
void
setEndTime
(
int
endTime
)
{
this
.
EndTime
=
endTime
;
}
// 对应C#的计算属性 processingTime(通过方法实现)
public
int
getProcessingTime
()
{
return
EndTime
-
StartTime
;
// 绝对处理时间(分钟)
}
}
}
src/main/java/com/aps/entity/basic/Entry.java
View file @
1c20209d
package
com
.
aps
.
entity
.
basic
;
package
com
.
aps
.
entity
.
basic
;
import
com.aps.entity.Algorithm.OperationDependency
;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
...
@@ -12,7 +13,7 @@ import java.util.List;
...
@@ -12,7 +13,7 @@ import java.util.List;
@Data
@Data
public
class
Entry
{
public
class
Entry
{
public
Entry
()
{
public
Entry
()
{
PrevEntryIds
=
new
ArrayList
<
Integer
>();
PrevEntryIds
=
new
ArrayList
<
OperationDependency
>();
}
}
/**
/**
...
@@ -74,12 +75,12 @@ public class Entry {
...
@@ -74,12 +75,12 @@ public class Entry {
/**
/**
* 前工单ID
* 前工单ID
*/
*/
public
List
<
Integer
>
PrevEntryIds
;
//前工序
public
List
<
OperationDependency
>
PrevEntryIds
;
//前工序
/**
/**
*
前
工单ID
*
后
工单ID
*/
*/
public
List
<
Integer
>
NextEntryIds
;
//后工序
public
List
<
OperationDependency
>
NextEntryIds
;
//后工序
/**
/**
* 数据状态 1 拆分 2 新建
* 数据状态 1 拆分 2 新建
...
...
src/main/java/com/aps/service/Algorithm/GeneticDecoder.java
View file @
1c20209d
This diff is collapsed.
Click to expand it.
src/main/java/com/aps/service/Algorithm/MachineCalculator.java
View file @
1c20209d
This diff is collapsed.
Click to expand it.
src/main/java/com/aps/service/Algorithm/ScheduleOperationService.java
View file @
1c20209d
package
com
.
aps
.
service
.
Algorithm
;
package
com
.
aps
.
service
.
Algorithm
;
import
com.aps.common.util.ProductionDeepCopyUtil
;
import
com.aps.common.util.ProductionDeepCopyUtil
;
import
com.aps.entity.Algorithm.Chromosome
;
import
com.aps.entity.Algorithm.*
;
import
com.aps.entity.Algorithm.GAScheduleResult
;
import
com.aps.entity.Algorithm.GlobalOperationInfo
;
import
com.aps.entity.Algorithm.IDAndChildID.GroupResult
;
import
com.aps.entity.Algorithm.IDAndChildID.GroupResult
;
import
com.aps.entity.Algorithm.IDAndChildID.NodeInfo
;
import
com.aps.entity.Algorithm.IDAndChildID.NodeInfo
;
import
com.aps.entity.Algorithm.ScheduleResultDetail
;
import
com.aps.entity.basic.Entry
;
import
com.aps.entity.basic.Entry
;
import
com.aps.entity.basic.GlobalParam
;
import
com.aps.entity.basic.GlobalParam
;
import
com.aps.entity.basic.MachineOption
;
import
com.aps.entity.basic.MachineOption
;
...
@@ -173,9 +170,28 @@ public class ScheduleOperationService {
...
@@ -173,9 +170,28 @@ public class ScheduleOperationService {
{
{
//存在则修改顺和前后序
//存在则修改顺和前后序
entry
.
setSequence
(
nodeInfo
.
getGroupSerial
());
entry
.
setSequence
(
nodeInfo
.
getGroupSerial
());
entry
.
setPrevEntryIds
(
nodeInfo
.
getNewParentIds
());
// entry.setPrevEntryIds(nodeInfo.getNewParentIds());
entry
.
setNextEntryIds
(
nodeInfo
.
getNewChildIds
());
// entry.setNextEntryIds(nodeInfo.getNewChildIds());
if
(
nodeInfo
.
getNewParentIds
()!=
null
)
{
List
<
OperationDependency
>
OperationDependency
=
new
ArrayList
<>();
for
(
int
id
:
nodeInfo
.
getNewParentIds
())
{
OperationDependency
od
=
new
OperationDependency
();
od
.
setPrevOperationId
(
id
);
OperationDependency
.
add
(
od
);
}
entry
.
setPrevEntryIds
(
OperationDependency
);
}
if
(
nodeInfo
.
getNewChildIds
()!=
null
)
{
List
<
OperationDependency
>
OperationDependency
=
new
ArrayList
<>();
for
(
int
id
:
nodeInfo
.
getNewChildIds
())
{
OperationDependency
od
=
new
OperationDependency
();
od
.
setNextOperationId
(
id
);
OperationDependency
.
add
(
od
);
}
entry
.
setNextEntryIds
(
OperationDependency
);
}
GlobalOperationInfo
info
=
chromosome
.
getGlobalOpList
().
stream
()
GlobalOperationInfo
info
=
chromosome
.
getGlobalOpList
().
stream
()
.
filter
(
t
->
t
.
getOp
().
getId
()==
entry
.
getId
())
.
filter
(
t
->
t
.
getOp
().
getId
()==
entry
.
getId
())
.
findFirst
()
.
findFirst
()
...
@@ -196,8 +212,28 @@ public class ScheduleOperationService {
...
@@ -196,8 +212,28 @@ public class ScheduleOperationService {
newOp
.
setId
(
nodeInfo
.
getGlobalSerial
());
newOp
.
setId
(
nodeInfo
.
getGlobalSerial
());
newOp
.
setSequence
(
nodeInfo
.
getGroupSerial
());
newOp
.
setSequence
(
nodeInfo
.
getGroupSerial
());
newOp
.
setExecId
(
nodeInfo
.
getOriginalId
());
newOp
.
setExecId
(
nodeInfo
.
getOriginalId
());
newOp
.
setPrevEntryIds
(
nodeInfo
.
getNewParentIds
());
// newOp.setPrevEntryIds(nodeInfo.getNewParentIds());
newOp
.
setNextEntryIds
(
nodeInfo
.
getNewChildIds
());
// newOp.setNextEntryIds(nodeInfo.getNewChildIds());
if
(
nodeInfo
.
getNewParentIds
()!=
null
)
{
List
<
OperationDependency
>
OperationDependency
=
new
ArrayList
<>();
for
(
int
id
:
nodeInfo
.
getNewParentIds
())
{
OperationDependency
od
=
new
OperationDependency
();
od
.
setPrevOperationId
(
id
);
OperationDependency
.
add
(
od
);
}
entry
.
setPrevEntryIds
(
OperationDependency
);
}
if
(
nodeInfo
.
getNewChildIds
()!=
null
)
{
List
<
OperationDependency
>
OperationDependency
=
new
ArrayList
<>();
for
(
int
id
:
nodeInfo
.
getNewChildIds
())
{
OperationDependency
od
=
new
OperationDependency
();
od
.
setNextOperationId
(
id
);
OperationDependency
.
add
(
od
);
}
entry
.
setNextEntryIds
(
OperationDependency
);
}
newOp
.
setQuantity
(
newids
.
get
(
nodeInfo
.
getOriginalId
()));
newOp
.
setQuantity
(
newids
.
get
(
nodeInfo
.
getOriginalId
()));
newOp
.
setMainId
(
MainId
);
newOp
.
setMainId
(
MainId
);
newOp
.
setState
(
2
);
newOp
.
setState
(
2
);
...
@@ -281,10 +317,10 @@ public class ScheduleOperationService {
...
@@ -281,10 +317,10 @@ public class ScheduleOperationService {
for
(
Entry
entry
:
newEntrys
)
{
for
(
Entry
entry
:
newEntrys
)
{
if
(
entry
.
getNextEntryIds
().
size
()>
0
)
if
(
entry
.
getNextEntryIds
().
size
()>
0
)
{
{
for
(
Integer
i
d
:
entry
.
getNextEntryIds
())
{
for
(
OperationDependency
o
d
:
entry
.
getNextEntryIds
())
{
Entry
nextentry
=
newEntrys
.
stream
()
Entry
nextentry
=
newEntrys
.
stream
()
.
filter
(
t
->
t
.
getGroupId
()==
entry
.
getGroupId
()&&
t
.
getId
()==
id
)
.
filter
(
t
->
t
.
getGroupId
()==
entry
.
getGroupId
()&&
t
.
getId
()==
od
.
getNextOperationId
()
)
.
findFirst
()
.
findFirst
()
.
orElse
(
null
);
.
orElse
(
null
);
if
(
nextentry
!=
null
)
{
if
(
nextentry
!=
null
)
{
...
@@ -325,8 +361,28 @@ public class ScheduleOperationService {
...
@@ -325,8 +361,28 @@ public class ScheduleOperationService {
entry
.
setGroupId
(
i
+
1
);
entry
.
setGroupId
(
i
+
1
);
entry
.
setSequence
(
nodeInfo
.
getGroupSerial
());
entry
.
setSequence
(
nodeInfo
.
getGroupSerial
());
entry
.
setExecId
(
nodeInfo
.
getOriginalId
());
entry
.
setExecId
(
nodeInfo
.
getOriginalId
());
entry
.
setPrevEntryIds
(
nodeInfo
.
getNewParentIds
());
// entry.setPrevEntryIds(nodeInfo.getNewParentIds());
entry
.
setNextEntryIds
(
nodeInfo
.
getNewChildIds
());
// entry.setNextEntryIds(nodeInfo.getNewChildIds());
if
(
nodeInfo
.
getNewParentIds
()!=
null
)
{
List
<
OperationDependency
>
OperationDependency
=
new
ArrayList
<>();
for
(
int
id
:
nodeInfo
.
getNewParentIds
())
{
OperationDependency
od
=
new
OperationDependency
();
od
.
setPrevOperationId
(
id
);
OperationDependency
.
add
(
od
);
}
entry
.
setPrevEntryIds
(
OperationDependency
);
}
if
(
nodeInfo
.
getNewChildIds
()!=
null
)
{
List
<
OperationDependency
>
OperationDependency
=
new
ArrayList
<>();
for
(
int
id
:
nodeInfo
.
getNewChildIds
())
{
OperationDependency
od
=
new
OperationDependency
();
od
.
setNextOperationId
(
id
);
OperationDependency
.
add
(
od
);
}
entry
.
setNextEntryIds
(
OperationDependency
);
}
entry
.
setMainId
(
""
);
entry
.
setMainId
(
""
);
entry
.
setState
(
2
);
entry
.
setState
(
2
);
//工序基本信息
//工序基本信息
...
@@ -487,8 +543,28 @@ public class ScheduleOperationService {
...
@@ -487,8 +543,28 @@ public class ScheduleOperationService {
if
(
node
!=
null
)
if
(
node
!=
null
)
{
{
entry
.
setSequence
(
node
.
getGroupSerial
());
entry
.
setSequence
(
node
.
getGroupSerial
());
entry
.
setPrevEntryIds
(
node
.
getNewParentIds
());
// entry.setPrevEntryIds(node.getNewParentIds());
entry
.
setNextEntryIds
(
node
.
getNewChildIds
());
// entry.setNextEntryIds(node.getNewChildIds());
if
(
node
.
getNewParentIds
()!=
null
)
{
List
<
OperationDependency
>
OperationDependency
=
new
ArrayList
<>();
for
(
int
id
:
node
.
getNewParentIds
())
{
OperationDependency
od
=
new
OperationDependency
();
od
.
setPrevOperationId
(
id
);
OperationDependency
.
add
(
od
);
}
entry
.
setPrevEntryIds
(
OperationDependency
);
}
if
(
node
.
getNewChildIds
()!=
null
)
{
List
<
OperationDependency
>
OperationDependency
=
new
ArrayList
<>();
for
(
int
id
:
node
.
getNewChildIds
())
{
OperationDependency
od
=
new
OperationDependency
();
od
.
setNextOperationId
(
id
);
OperationDependency
.
add
(
od
);
}
entry
.
setNextEntryIds
(
OperationDependency
);
}
GlobalOperationInfo
info
=
chromosome
.
getGlobalOpList
().
stream
()
GlobalOperationInfo
info
=
chromosome
.
getGlobalOpList
().
stream
()
.
filter
(
t
->
t
.
getOp
().
getId
()==
entry
.
getId
())
.
filter
(
t
->
t
.
getOp
().
getId
()==
entry
.
getId
())
.
findFirst
()
.
findFirst
()
...
...
src/main/java/com/aps/service/plan/PlanResultService.java
View file @
1c20209d
...
@@ -5,12 +5,9 @@ import com.aps.common.util.JsonFileReader;
...
@@ -5,12 +5,9 @@ import com.aps.common.util.JsonFileReader;
import
com.aps.common.util.ProductionDeepCopyUtil
;
import
com.aps.common.util.ProductionDeepCopyUtil
;
import
com.aps.controller.gantt.FileUploadController
;
import
com.aps.controller.gantt.FileUploadController
;
import
com.aps.entity.*
;
import
com.aps.entity.*
;
import
com.aps.entity.Algorithm.Chromosome
;
import
com.aps.entity.Algorithm.*
;
import
com.aps.entity.Algorithm.GAScheduleResult
;
import
com.aps.entity.Algorithm.IDAndChildID.GroupResult
;
import
com.aps.entity.Algorithm.IDAndChildID.GroupResult
;
import
com.aps.entity.Algorithm.IDAndChildID.NodeInfo
;
import
com.aps.entity.Algorithm.IDAndChildID.NodeInfo
;
import
com.aps.entity.Algorithm.ScheduleParams
;
import
com.aps.entity.Algorithm.ScheduleResultDetail
;
import
com.aps.entity.basic.ScheduleChromosome
;
import
com.aps.entity.basic.ScheduleChromosome
;
import
com.aps.entity.Schedule.GenVO
;
import
com.aps.entity.Schedule.GenVO
;
import
com.aps.entity.Schedule.MachineVO
;
import
com.aps.entity.Schedule.MachineVO
;
...
@@ -135,10 +132,25 @@ public class PlanResultService {
...
@@ -135,10 +132,25 @@ public class PlanResultService {
}
}
}
}
public
Chromosome
execute1
()
{
public
Chromosome
execute1
()
{
try
{
try
{
//List<ScheduleResultDetail> details=new ArrayList<>();
// ScheduleResultDetail detail1=new ScheduleResultDetail();
//
// detail1.setOneTime(100);//单件工时
//
//
// ScheduleResultDetail detail2=new ScheduleResultDetail();
//
// detail2.setOneTime(200);//单件工时
// details.add(detail1);
// details.add(detail2);
// mergeSegmentsWithDifferentOneTime(details, 50);
// 1. 读取数据
// 1. 读取数据
List
<
Machine
>
machines
=
loadData
(
"machines.json"
,
Machine
.
class
);
List
<
Machine
>
machines
=
loadData
(
"machines.json"
,
Machine
.
class
);
List
<
Product
>
products
=
loadData
(
"products.json"
,
Product
.
class
);
List
<
Product
>
products
=
loadData
(
"products.json"
,
Product
.
class
);
...
@@ -166,23 +178,20 @@ public class PlanResultService {
...
@@ -166,23 +178,20 @@ public class PlanResultService {
}
}
ScheduleParams
param
=
new
ScheduleParams
();
ScheduleParams
param
=
new
ScheduleParams
();
param
.
setBaseTime
(
LocalDateTime
.
of
(
2025
,
11
,
1
,
0
,
0
,
0
));
param
.
setBaseTime
(
LocalDateTime
.
of
(
2025
,
11
,
1
,
0
,
0
,
0
));
param
.
setPopulationSize
(
50
);
param
.
setPopulationSize
(
1
);
param
.
setMaxIterations
(
100
);
param
.
setMaxIterations
(
2
);
// List<MesHoliday> holidays= _MesHolidayService.list();
// List<MesHoliday> holidays= _MesHolidayService.list();
// 创建节假日
// 创建节假日
List
<
Holiday
>
holidays
=
Arrays
.
asList
(
new
Holiday
(
LocalDateTime
.
of
(
2025
,
10
,
1
,
0
,
0
),
LocalDateTime
.
of
(
2025
,
10
,
7
,
23
,
59
))
);
// 将节假日添加到所有设备中
// 将节假日添加到所有设备中
addHolidaysToAllMachines
(
machines
,
holiday
s
);
// addHolidaysToAllMachines(machine
s);
// 3. 创建调度服务
// 3. 创建调度服务
MachineSchedulerService
machineScheduler
=
new
MachineSchedulerService
(
MachineSchedulerService
machineScheduler
=
new
MachineSchedulerService
(
holidays
,
param
.
getBaseTime
());
param
.
getBaseTime
());
// 4. 初始化机器时间线
// 4. 初始化机器时间线
for
(
Machine
machine
:
machines
)
{
for
(
Machine
machine
:
machines
)
{
...
@@ -214,7 +223,10 @@ order.setDueDate(LocalDateTime.of(2025, 12, 1,0,0,0));
...
@@ -214,7 +223,10 @@ order.setDueDate(LocalDateTime.of(2025, 12, 1,0,0,0));
// entry.setMaterialRequirements(o.getMaterialRequirements()); // 假设Operation类有获取物料需求的方法
// entry.setMaterialRequirements(o.getMaterialRequirements()); // 假设Operation类有获取物料需求的方法
if
(
sequence
!=
1
)
{
if
(
sequence
!=
1
)
{
entry
.
getPrevEntryIds
().
add
(
id
-
1
);
// 假设Entry类有getPrevEntryIds()返回List<Integer>
OperationDependency
od
=
new
OperationDependency
();
od
.
setPrevOperationId
(
id
-
1
);
entry
.
getPrevEntryIds
().
add
(
od
);
// 假设Entry类有getPrevEntryIds()返回List<Integer>
}
}
allOperations
.
add
(
entry
);
allOperations
.
add
(
entry
);
...
@@ -794,8 +806,27 @@ order.setDueDate(LocalDateTime.of(2025, 12, 1,0,0,0));
...
@@ -794,8 +806,27 @@ order.setDueDate(LocalDateTime.of(2025, 12, 1,0,0,0));
entry
.
setGroupId
(
i
+
1
);
entry
.
setGroupId
(
i
+
1
);
entry
.
setSequence
(
nodeInfo
.
getGroupSerial
());
entry
.
setSequence
(
nodeInfo
.
getGroupSerial
());
entry
.
setExecId
(
nodeInfo
.
getOriginalId
());
entry
.
setExecId
(
nodeInfo
.
getOriginalId
());
entry
.
setPrevEntryIds
(
nodeInfo
.
getNewParentIds
());
entry
.
setNextEntryIds
(
nodeInfo
.
getNewChildIds
());
if
(
nodeInfo
.
getNewParentIds
()!=
null
)
{
List
<
OperationDependency
>
OperationDependency
=
new
ArrayList
<>();
for
(
int
id
:
nodeInfo
.
getNewParentIds
())
{
OperationDependency
od
=
new
OperationDependency
();
od
.
setPrevOperationId
(
id
);
OperationDependency
.
add
(
od
);
}
entry
.
setPrevEntryIds
(
OperationDependency
);
}
if
(
nodeInfo
.
getNewChildIds
()!=
null
)
{
List
<
OperationDependency
>
OperationDependency
=
new
ArrayList
<>();
for
(
int
id
:
nodeInfo
.
getNewChildIds
())
{
OperationDependency
od
=
new
OperationDependency
();
od
.
setNextOperationId
(
id
);
OperationDependency
.
add
(
od
);
}
entry
.
setNextEntryIds
(
OperationDependency
);
}
ProdProcessExec
op
=
ProdProcessExecs
.
stream
()
ProdProcessExec
op
=
ProdProcessExecs
.
stream
()
.
filter
(
t
->
t
.
getExecId
().
equals
(
entry
.
getExecId
()))
.
filter
(
t
->
t
.
getExecId
().
equals
(
entry
.
getExecId
()))
.
findFirst
().
orElse
(
null
);
.
findFirst
().
orElse
(
null
);
...
...
src/main/resources/machines.json
View file @
1c20209d
...
@@ -5,36 +5,12 @@
...
@@ -5,36 +5,12 @@
"startTime"
:
"08:00:00"
,
"startTime"
:
"08:00:00"
,
"endTime"
:
"18:00:00"
,
"endTime"
:
"18:00:00"
,
"days"
:
[
1
,
2
,
3
,
4
,
5
],
"days"
:
[
1
,
2
,
3
,
4
,
5
],
"startDate"
:
"20
25-10-10
T00:00:00"
,
"startDate"
:
"20
00-01-01
T00:00:00"
,
"endDate"
:
"20
25-11-10
T00:00:00"
,
"endDate"
:
"20
00-01-01
T00:00:00"
,
"shiftDate"
:
"0001-01-01T00:00:00"
,
"shiftDate"
:
"0001-01-01T00:00:00"
,
"temporaryShift"
:
false
,
"temporaryShift"
:
false
,
"priority"
:
0
,
"priority"
:
0
,
"status"
:
0
"status"
:
0
},{
"startTime"
:
"18:00:00"
,
"endTime"
:
"20:00:00"
,
"days"
:
[
1
,
2
,
3
,
4
,
5
],
"shiftDate"
:
"0001-01-01T00:00:00"
,
"temporaryShift"
:
true
,
"priority"
:
0
,
"status"
:
1
},{
"startTime"
:
"08:00:00"
,
"endTime"
:
"18:00:00"
,
"days"
:
[
0
],
"shiftDate"
:
"0001-01-01T00:00:00"
,
"temporaryShift"
:
true
,
"priority"
:
0
,
"status"
:
1
},{
"startTime"
:
"08:00:00"
,
"endTime"
:
"18:00:00"
,
"days"
:
null
,
"shiftDate"
:
"2025-10-01T00:00:00"
,
"temporaryShift"
:
true
,
"priority"
:
0
,
"status"
:
1
}],
}],
"maintenanceWindows"
:
[{
"maintenanceWindows"
:
[{
"startTime"
:
"2025-10-08T10:00:00"
,
"startTime"
:
"2025-10-08T10:00:00"
,
...
@@ -49,6 +25,8 @@
...
@@ -49,6 +25,8 @@
"endTime"
:
"18:00:00"
,
"endTime"
:
"18:00:00"
,
"days"
:
[
1
,
2
,
3
,
4
,
5
],
"days"
:
[
1
,
2
,
3
,
4
,
5
],
"shiftDate"
:
"0001-01-01T00:00:00"
,
"shiftDate"
:
"0001-01-01T00:00:00"
,
"startDate"
:
"2000-01-01T00:00:00"
,
"endDate"
:
"2000-01-01T00:00:00"
,
"temporaryShift"
:
false
,
"temporaryShift"
:
false
,
"priority"
:
0
,
"priority"
:
0
,
"status"
:
0
"status"
:
0
...
@@ -62,6 +40,8 @@
...
@@ -62,6 +40,8 @@
"endTime"
:
"18:00:00"
,
"endTime"
:
"18:00:00"
,
"days"
:
[
1
,
2
,
3
,
4
,
5
],
"days"
:
[
1
,
2
,
3
,
4
,
5
],
"shiftDate"
:
"0001-01-01T00:00:00"
,
"shiftDate"
:
"0001-01-01T00:00:00"
,
"startDate"
:
"2000-01-01T00:00:00"
,
"endDate"
:
"2000-01-01T00:00:00"
,
"temporaryShift"
:
false
,
"temporaryShift"
:
false
,
"priority"
:
0
,
"priority"
:
0
,
"status"
:
0
"status"
:
0
...
@@ -75,6 +55,8 @@
...
@@ -75,6 +55,8 @@
"endTime"
:
"18:00:00"
,
"endTime"
:
"18:00:00"
,
"days"
:
[
1
,
2
,
3
,
4
,
5
],
"days"
:
[
1
,
2
,
3
,
4
,
5
],
"shiftDate"
:
"0001-01-01T00:00:00"
,
"shiftDate"
:
"0001-01-01T00:00:00"
,
"startDate"
:
"2000-01-01T00:00:00"
,
"endDate"
:
"2000-01-01T00:00:00"
,
"temporaryShift"
:
false
,
"temporaryShift"
:
false
,
"priority"
:
0
,
"priority"
:
0
,
"status"
:
0
"status"
:
0
...
@@ -88,6 +70,8 @@
...
@@ -88,6 +70,8 @@
"endTime"
:
"18:00:00"
,
"endTime"
:
"18:00:00"
,
"days"
:
[
1
,
2
,
3
,
4
,
5
],
"days"
:
[
1
,
2
,
3
,
4
,
5
],
"shiftDate"
:
"0001-01-01T00:00:00"
,
"shiftDate"
:
"0001-01-01T00:00:00"
,
"startDate"
:
"2000-01-01T00:00:00"
,
"endDate"
:
"2000-01-01T00:00:00"
,
"temporaryShift"
:
false
,
"temporaryShift"
:
false
,
"priority"
:
0
,
"priority"
:
0
,
"status"
:
0
"status"
:
0
...
...
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