Commit e9f76f68 authored by Tong Li's avatar Tong Li

遗传算法-初始话日历

parent edb4f4d5
......@@ -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 {
machine.setId(resource.getId());
machine.setCode(resource.getReferenceCode());
machine.setName(resource.getTitle());
if(machine.getName().contains("铲车-2"))
{
int i=1+2;
}
if(!IsUseCalendar)
{
List<EquipCapacityDef> machineProdEquipSpecialCals = ProdEquipSpecialCals.stream()
.filter(t -> t.getPlanResourceId() != null &&t.getReferenceId() != null && t.getPlanResourceId() == machine.getId() && t.getReferenceType() == 1)
.collect(Collectors.toList());
......@@ -553,7 +549,41 @@ public class RoutingDataService {
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<>();
Shift shift=new Shift();
shift.setMachineId(machine.getId());
......@@ -572,7 +602,7 @@ public class RoutingDataService {
shift.setEndDate(LocalDateTime.of(2000, 1, 1, 0, 0, 0));
shifts1.add(shift);
machine.setShifts(shifts1);
}
machines.add(machine);
}
......@@ -589,6 +619,7 @@ public class RoutingDataService {
}
/**
* 合并重复的ShiftData,将serialNumber收集为列表
* @param originalList 原始数据列表
......
......@@ -766,13 +766,19 @@ order.setDueDate(LocalDateTime.of(2025, 12, 1,0,0,0));
// 按设备分组
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= (List<Machine>)GlobalCacheUtil.get("machines");
if(machines==null||machines.size()==0) {
List<Machine> machines = (List<Machine>) GlobalCacheUtil.get("machines");
if (machines == null || machines.size() == 0) {
machines = (List<Machine>) redisUtils.get("machines");
if (machines == null||machines.size()==0) {
if (machines == null || machines.size() == 0) {
machines = InitCalendarToAllMachines();
......@@ -780,20 +786,21 @@ order.setDueDate(LocalDateTime.of(2025, 12, 1,0,0,0));
}
FileHelper.writeLogFile("初始化设备日历-----------结束-------");
GlobalCacheUtil.put("machines",machines, 10, TimeUnit.MINUTES);
GlobalCacheUtil.put("machines", machines, 10, TimeUnit.MINUTES);
return machines;
}
}
public List<Machine> InitCalendarToAllMachines ()
{
FileHelper.writeLogFile("初始化Redis设备日历-----------开始-------");
GlobalParam globalParam=InitGlobalParam();
ScheduleParams param = InitScheduleParams();
MachineSchedulerService machineScheduler = new MachineSchedulerService(
param.getBaseTime());
List<Machine> machines = _routingDataService.InitCalendarToAllMachines( machineScheduler, globalParam.isIsUseCalendar(),param.getBaseTime());
List<Machine> machines = _routingDataService.InitCalendarToAllMachines( machineScheduler,param.getBaseTime());
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