Commit e9f76f68 authored by Tong Li's avatar Tong Li

遗传算法-初始话日历

parent edb4f4d5
...@@ -393,7 +393,7 @@ public class RoutingDataService { ...@@ -393,7 +393,7 @@ public class RoutingDataService {
} }
public List<Machine> InitCalendarToAllMachines(MachineSchedulerService machineScheduler,boolean IsUseCalendar,LocalDateTime baseTime) { public List<Machine> InitCalendarToAllMachines(MachineSchedulerService machineScheduler,LocalDateTime baseTime) {
// 按设备分组 // 按设备分组
...@@ -438,12 +438,8 @@ public class RoutingDataService { ...@@ -438,12 +438,8 @@ public class RoutingDataService {
machine.setId(resource.getId()); machine.setId(resource.getId());
machine.setCode(resource.getReferenceCode()); machine.setCode(resource.getReferenceCode());
machine.setName(resource.getTitle()); machine.setName(resource.getTitle());
if(machine.getName().contains("铲车-2"))
{
int i=1+2;
}
if(!IsUseCalendar)
{
List<EquipCapacityDef> machineProdEquipSpecialCals = ProdEquipSpecialCals.stream() List<EquipCapacityDef> machineProdEquipSpecialCals = ProdEquipSpecialCals.stream()
.filter(t -> t.getPlanResourceId() != null &&t.getReferenceId() != null && t.getPlanResourceId() == machine.getId() && t.getReferenceType() == 1) .filter(t -> t.getPlanResourceId() != null &&t.getReferenceId() != null && t.getPlanResourceId() == machine.getId() && t.getReferenceType() == 1)
.collect(Collectors.toList()); .collect(Collectors.toList());
...@@ -553,7 +549,41 @@ public class RoutingDataService { ...@@ -553,7 +549,41 @@ public class RoutingDataService {
machine.setMaintenanceWindows(maintenanceWindows); machine.setMaintenanceWindows(maintenanceWindows);
}else {
machines.add(machine);
}
// 4. 初始化机器时间线
for (Machine machine : machines) {
MachineTimeline timeline = machineScheduler.getOrCreateTimeline(machine);
machine.setAvailability(timeline.getSegments());
}
return machines;
}
public List<Machine> InitNoCalendarToAllMachines(MachineSchedulerService machineScheduler,LocalDateTime baseTime) {
// 按设备分组
List<Machine> machines = new ArrayList<>();
List<PlanResource> PlanResources = _PlanResourceService.lambdaQuery()
.eq(PlanResource::getIsdeleted, 0)
.list();
//设备能力
for (PlanResource resource : PlanResources) {
Machine machine = new Machine();
machine.setId(resource.getId());
machine.setCode(resource.getReferenceCode());
machine.setName(resource.getTitle());
List<Shift> shifts1 = new ArrayList<>(); List<Shift> shifts1 = new ArrayList<>();
Shift shift=new Shift(); Shift shift=new Shift();
shift.setMachineId(machine.getId()); shift.setMachineId(machine.getId());
...@@ -572,7 +602,7 @@ public class RoutingDataService { ...@@ -572,7 +602,7 @@ public class RoutingDataService {
shift.setEndDate(LocalDateTime.of(2000, 1, 1, 0, 0, 0)); shift.setEndDate(LocalDateTime.of(2000, 1, 1, 0, 0, 0));
shifts1.add(shift); shifts1.add(shift);
machine.setShifts(shifts1); machine.setShifts(shifts1);
}
machines.add(machine); machines.add(machine);
} }
...@@ -589,6 +619,7 @@ public class RoutingDataService { ...@@ -589,6 +619,7 @@ public class RoutingDataService {
} }
/** /**
* 合并重复的ShiftData,将serialNumber收集为列表 * 合并重复的ShiftData,将serialNumber收集为列表
* @param originalList 原始数据列表 * @param originalList 原始数据列表
......
...@@ -766,13 +766,19 @@ order.setDueDate(LocalDateTime.of(2025, 12, 1,0,0,0)); ...@@ -766,13 +766,19 @@ order.setDueDate(LocalDateTime.of(2025, 12, 1,0,0,0));
// 按设备分组 // 按设备分组
FileHelper.writeLogFile("初始化设备日历-----------开始-------"); FileHelper.writeLogFile("初始化设备日历-----------开始-------");
if(!IsUseCalendar) {
ScheduleParams param = InitScheduleParams();
return _routingDataService.InitNoCalendarToAllMachines(machineScheduler,param.getBaseTime());
}else {
// List<Machine> machines = _routingDataService.InitCalendarToAllMachines(SceneId, ProdEquipments, machineScheduler, IsUseCalendar); // List<Machine> machines = _routingDataService.InitCalendarToAllMachines(SceneId, ProdEquipments, machineScheduler, IsUseCalendar);
List<Machine> machines= (List<Machine>)GlobalCacheUtil.get("machines"); List<Machine> machines = (List<Machine>) GlobalCacheUtil.get("machines");
if(machines==null||machines.size()==0) { if (machines == null || machines.size() == 0) {
machines = (List<Machine>) redisUtils.get("machines"); machines = (List<Machine>) redisUtils.get("machines");
if (machines == null||machines.size()==0) { if (machines == null || machines.size() == 0) {
machines = InitCalendarToAllMachines(); machines = InitCalendarToAllMachines();
...@@ -780,20 +786,21 @@ order.setDueDate(LocalDateTime.of(2025, 12, 1,0,0,0)); ...@@ -780,20 +786,21 @@ order.setDueDate(LocalDateTime.of(2025, 12, 1,0,0,0));
} }
FileHelper.writeLogFile("初始化设备日历-----------结束-------"); FileHelper.writeLogFile("初始化设备日历-----------结束-------");
GlobalCacheUtil.put("machines",machines, 10, TimeUnit.MINUTES); GlobalCacheUtil.put("machines", machines, 10, TimeUnit.MINUTES);
return machines; return machines;
} }
}
public List<Machine> InitCalendarToAllMachines () public List<Machine> InitCalendarToAllMachines ()
{ {
FileHelper.writeLogFile("初始化Redis设备日历-----------开始-------"); FileHelper.writeLogFile("初始化Redis设备日历-----------开始-------");
GlobalParam globalParam=InitGlobalParam();
ScheduleParams param = InitScheduleParams(); ScheduleParams param = InitScheduleParams();
MachineSchedulerService machineScheduler = new MachineSchedulerService( MachineSchedulerService machineScheduler = new MachineSchedulerService(
param.getBaseTime()); param.getBaseTime());
List<Machine> machines = _routingDataService.InitCalendarToAllMachines( machineScheduler, globalParam.isIsUseCalendar(),param.getBaseTime()); List<Machine> machines = _routingDataService.InitCalendarToAllMachines( machineScheduler,param.getBaseTime());
redisUtils.set("machines",machines); redisUtils.set("machines",machines);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment