Commit 2ac79222 authored by Tong Li's avatar Tong Li

Merge remote-tracking branch 'origin/tl'

parents f882d258 44ff7be1
......@@ -16,7 +16,7 @@ private Long isdeleted;
private LocalDateTime deletiontime;
private Long deleteruserid;
private String code;
private Long equipId;
private Integer equipId;
private String equipName;
private String equipCode;
private Long head;
......
......@@ -4,6 +4,9 @@ import java.time.LocalDateTime;
import java.util.Objects;
public class MaintenanceWindow {
private String id;
private LocalDateTime startTime;
private LocalDateTime endTime;
private String reason;
......@@ -58,6 +61,14 @@ public class MaintenanceWindow {
public void setReason(String reason) {
this.reason = reason;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
......
......@@ -51,6 +51,12 @@ public class RoutingDataService {
@Autowired
private ProdEquipSpecialCalService _prodEquipSpecialCalService;
@Autowired
private EquipCapacityDefService _equipCapacityDefService;
@Autowired
private EquipMaintainTaskService _equipMaintainTaskService;
@Autowired
private MesShiftWorkSchedService _MesShiftWorkSchedService;
......@@ -372,6 +378,162 @@ public class RoutingDataService {
}
public List<Machine> InitCalendarToAllMachines(MachineSchedulerService machineScheduler,boolean IsUseCalendar) {
// 按设备分组
List<Machine> machines = new ArrayList<>();
List<PlanResource> PlanResources = _PlanResourceService.lambdaQuery()
.eq(PlanResource::getIsdeleted, 0)
.list();
List<MesShiftWorkSched> MesShiftWorkScheds = _MesShiftWorkSchedService.lambdaQuery()
.eq(MesShiftWorkSched::getIsdeleted, 0).list();
//特殊日历
LambdaQueryWrapper<EquipCapacityDef> EquipSpecialCalWrapper = new LambdaQueryWrapper<>();
EquipSpecialCalWrapper.eq(EquipCapacityDef::getIsDeleted, 0);
List<EquipCapacityDef> ProdEquipSpecialCals = _equipCapacityDefService.list(EquipSpecialCalWrapper);
//维修记录
LambdaQueryWrapper<EquipMaintainTask> EquipMaintainTaskWrapper = new LambdaQueryWrapper<>();
EquipMaintainTaskWrapper.eq(EquipMaintainTask::getIsdeleted, 0);
EquipMaintainTaskWrapper.eq(EquipMaintainTask::getStatus, 0);
List<EquipMaintainTask> EquipMaintainTasks = _equipMaintainTaskService.list(EquipMaintainTaskWrapper);
for (PlanResource resource : PlanResources) {
Machine machine = new Machine();
machine.setId(resource.getId());
machine.setCode(resource.getReferenceCode());
machine.setName(resource.getTitle());
if(!IsUseCalendar)
{
List<EquipCapacityDef> machineProdEquipSpecialCals = ProdEquipSpecialCals.stream()
.filter(t -> t.getPlanResourceId() != null && t.getPlanResourceId() == machine.getId() && t.getReferenceType() == 1)
.collect(Collectors.toList());
List<Shift> shifts1 = new ArrayList<>();
for (EquipCapacityDef machineProdEquipSpecialCal : machineProdEquipSpecialCals) {
List<MesShiftWorkSched> ShiftWorkScheds = MesShiftWorkScheds.stream()
.filter(t -> (long) t.getWeekWorkSchedId() == machineProdEquipSpecialCal.getReferenceId())
.collect(Collectors.toList());
List<Shift> Shifts = mergeShiftData(ShiftWorkScheds);
for (Shift shift : Shifts) {
shift.setMachineId(machine.getId());
shift.setStartDate(machineProdEquipSpecialCal.getEffectiveStartTime());
shift.setEndDate(machineProdEquipSpecialCal.getEffectiveEndTime());
shifts1.add(shift);
}
}
List<MesShiftWorkSched> ShiftWorkScheds = MesShiftWorkScheds.stream()
.filter(t -> (long) t.getWeekWorkSchedId() == resource.getWorkSchedId())
.collect(Collectors.toList());
List<Shift> Shifts = mergeShiftData(ShiftWorkScheds);
for (Shift shift : Shifts) {
shift.setMachineId(machine.getId());
shift.setStartDate(LocalDateTime.of(2000, 1, 1, 0, 0, 0));
shift.setEndDate(LocalDateTime.of(2000, 1, 1, 0, 0, 0));
shifts1.add(shift);
}
machine.setShifts(shifts1);
List<EquipCapacityDef> Holidays = ProdEquipSpecialCals.stream()
.filter(t -> t.getPlanResourceId() != null && t.getPlanResourceId() == machine.getId() && t.getReferenceType() == 2)
.collect(Collectors.toList());
List<Holiday> Holidays1 = new ArrayList<>();
for (EquipCapacityDef machineProdEquipSpecialCal : Holidays) {
Holiday holiday = new Holiday();
holiday.setStart(machineProdEquipSpecialCal.getEffectiveStartTime());
holiday.setEnd(machineProdEquipSpecialCal.getEffectiveEndTime());
Holidays1.add(holiday);
}
machine.setHolidays(Holidays1);
List<MaintenanceWindow> maintenanceWindows=new ArrayList<>();
List<EquipMaintainTask> EquipMaintainTasks1 = EquipMaintainTasks.stream()
.filter(t -> t.getEquipId() == resource.getReferenceId() )
.collect(Collectors.toList());
for (EquipMaintainTask equipMaintainTask : EquipMaintainTasks1) {
MaintenanceWindow maintenanceWindow=new MaintenanceWindow();
maintenanceWindow.setId(equipMaintainTask.getId().toString());
maintenanceWindow.setStartTime(equipMaintainTask.getPlanStartTime());
maintenanceWindow.setEndTime(equipMaintainTask.getPlanFinishTime());
maintenanceWindow.setReason("");
maintenanceWindows.add(maintenanceWindow);
}
machine.setMaintenanceWindows(maintenanceWindows);
}else {
List<Shift> shifts1 = new ArrayList<>();
Shift shift=new Shift();
shift.setMachineId(machine.getId());
shift.setStartTime(LocalTime.of(0,0,0));
shift.setEndTime(LocalTime.of(23,59,59));
HashSet days= new HashSet<>();
days.add(1);
days.add(2);
days.add(3);
days.add(4);
days.add(5);
days.add(6);
days.add(0);
shift.setDays(days);
shift.setStartDate(LocalDateTime.of(2000, 1, 1, 0, 0, 0));
shift.setEndDate(LocalDateTime.of(2000, 1, 1, 0, 0, 0));
shifts1.add(shift);
machine.setShifts(shifts1);
}
machines.add(machine);
}
//节假日
// List<MesHoliday> holidays= _MesHolidayService.list();
if (IsUseCalendar) {
if (machines == null) {
return null;
}
for (Machine machine : machines) {
// 确保维护窗口列表不为null
if (machine.getMaintenanceWindows() == null) {
machine.setMaintenanceWindows(new ArrayList<>());
}
}
}
// 4. 初始化机器时间线
for (Machine machine : machines) {
MachineTimeline timeline = machineScheduler.getOrCreateTimeline(machine);
machine.setAvailability(timeline.getSegments());
}
return machines;
}
/**
* 合并重复的ShiftData,将serialNumber收集为列表
* @param originalList 原始数据列表
......
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