|
|
|
|
@ -45,6 +45,7 @@ import org.springblade.scheduling.scheduling.excel.SchedulingBoardExcel; |
|
|
|
|
import org.springblade.scheduling.scheduling.excel.WorkOrderExcel; |
|
|
|
|
import org.springblade.scheduling.scheduling.mapper.WorkOrderMapper; |
|
|
|
|
import org.springblade.scheduling.scheduling.service.*; |
|
|
|
|
import org.springblade.scheduling.scheduling.vo.SameTroughVO; |
|
|
|
|
import org.springblade.scheduling.scheduling.vo.WorkOrderVO; |
|
|
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
@ -194,6 +195,9 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO |
|
|
|
|
@Override |
|
|
|
|
public List<WorkOrderDto> schedulingBoard(WorkOrderDto workOrder) { |
|
|
|
|
List<WorkOrderDto> list = baseMapper.selectWorkOrderList(workOrder); |
|
|
|
|
list.forEach(item -> { |
|
|
|
|
item.setPriorityAps(YieldOrderEnum.getName(Integer.parseInt(item.getPriorityAps()))); |
|
|
|
|
}); |
|
|
|
|
Map<String, List<WorkOrderDto>> woCodeGroup = list.stream().collect(Collectors.groupingBy(WorkOrderDto::getWoCode)); |
|
|
|
|
List<WorkOrderDto> resultList = new ArrayList<>(); |
|
|
|
|
for (Map.Entry<String, List<WorkOrderDto>> entry : woCodeGroup.entrySet()) { |
|
|
|
|
@ -482,7 +486,12 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO |
|
|
|
|
LocalDateTime dateTime = getNextIntegerTime(prevProcessEnd); |
|
|
|
|
for (Map.Entry<Integer, List<EquipAbilityEntity>> entry : equipAbilityMap.entrySet()) { |
|
|
|
|
//根据时间点获取所有设备资源
|
|
|
|
|
List<EquipResourceEntity> equipResourceList = equipResourceService.list(Wrappers.<EquipResourceEntity>lambdaQuery().eq(EquipResourceEntity::getCraftId, craft.getCaId()).eq(EquipResourceEntity::getWorkCenterId, craft.getWorkCenterId()).ge(EquipResourceEntity::getStartTime, dateTime).eq(EquipResourceEntity::getIsUsed, 0).in(EquipResourceEntity::getEquipOrder, entry.getKey())); |
|
|
|
|
List<EquipResourceEntity> equipResourceList = equipResourceService.list(Wrappers.<EquipResourceEntity>lambdaQuery() |
|
|
|
|
.eq(EquipResourceEntity::getCraftId, craft.getCaId()) |
|
|
|
|
.eq(EquipResourceEntity::getWorkCenterId, craft.getWorkCenterId()) |
|
|
|
|
.ge(EquipResourceEntity::getStartTime, dateTime) |
|
|
|
|
.eq(EquipResourceEntity::getIsUsed, 0) |
|
|
|
|
.in(EquipResourceEntity::getEquipOrder, entry.getKey())); |
|
|
|
|
if (CollectionUtils.isEmpty(equipResourceList)) { |
|
|
|
|
order.setStatus(YieldOrderEnum.STATUS_PROCESS_ERROR.getCode()); |
|
|
|
|
order.setErrorInfo("工序:" + processMap.get(craft.getPpsId()) + ",未匹配到对应的设备资源"); |
|
|
|
|
@ -1167,19 +1176,17 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void sameTrough(List<YieldOrderEntity> list,Long workCenterId){ |
|
|
|
|
List<SameTroughEntity> sameTroughEntities = sameTroughService.list(); |
|
|
|
|
//相同零件号判断键位、生产厂家、检验编号、生产标识
|
|
|
|
|
//按照零件号分组
|
|
|
|
|
Map<String,List<YieldOrderEntity>> map = list.stream().collect(Collectors.groupingBy(YieldOrderEntity::getPartCode)); |
|
|
|
|
for(Map.Entry<String,List<YieldOrderEntity>> entry : map.entrySet()){ |
|
|
|
|
List<YieldOrderEntity> list1 = entry.getValue(); |
|
|
|
|
if(list1.size() > 1){ |
|
|
|
|
List<YieldOrderCraftEntity> craftList = yieldOrderCraftService.list(Wrappers.<YieldOrderCraftEntity>lambdaQuery().in(YieldOrderCraftEntity::getYoId,list1.stream().map(BaseEntity::getId).collect(Collectors.toList()))); |
|
|
|
|
|
|
|
|
|
/*public void sameTrough(YieldOrderCraftEntity yieldOrderCraft,LocalDateTime dateTime){ |
|
|
|
|
SameTroughEntity sameTrough =sameTroughService.getOne(Wrappers.<SameTroughEntity>lambdaQuery().eq(SameTroughEntity::getWorkCenterId,yieldOrderCraft.getWorkCenterId()).eq(SameTroughEntity::getCraftId,yieldOrderCraft.getCaId()).eq(SameTroughEntity::getProcessId,yieldOrderCraft.getPpsId())); |
|
|
|
|
if(sameTrough != null){ |
|
|
|
|
//查询是否有已经排产的计划
|
|
|
|
|
List<WorkPlanEntity> workPlanList = workPlanService.list(Wrappers.<WorkPlanEntity>lambdaQuery().eq(WorkPlanEntity::getWorkCenterId,yieldOrderCraft.getWorkCenterId()).eq(WorkPlanEntity::getCaId,yieldOrderCraft.getCaId()).eq(WorkPlanEntity::getPpsId,yieldOrderCraft.getPpsId())); |
|
|
|
|
if(CollectionUtils.isNotEmpty(workPlanList)){ |
|
|
|
|
Map<> |
|
|
|
|
} |
|
|
|
|
SameTroughVO vo = sameTroughService.selectSameTroughInfo(yieldOrderCraft.getId()); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
//不同零件号判断工艺
|
|
|
|
|
} |
|
|
|
|
}*/ |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|