排产相关-sjx

develop-QA
sunjianxi 3 months ago
parent c26cfe9afe
commit c883287e55
  1. 7
      blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/entity/EquipAbilityEntity.java
  2. 6
      blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/entity/SameTroughEntity.java
  3. 3
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/SameTroughMapper.java
  4. 23
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/SameTroughMapper.xml
  5. 4
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/ISameTroughService.java
  6. 6
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/SameTroughServiceImpl.java
  7. 33
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java
  8. 5
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/vo/SameTroughVO.java

@ -26,6 +26,9 @@
package org.springblade.scheduling.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -96,24 +99,28 @@ public class EquipAbilityEntity extends BaseEntity {
* 额定加工能力
*/
@Schema(description = "额定加工能力")
@JsonSerialize(nullsUsing = NullSerializer.class)
private BigDecimal standardProcessAbility;
/**
* 额定工时分钟
*/
@Schema(description = "额定工时(分钟)")
@JsonSerialize(nullsUsing = NullSerializer.class)
private BigDecimal standardTime;
/**
* 准备工时分钟
*/
@Schema(description = "准备工时(分钟)")
@JsonSerialize(nullsUsing = NullSerializer.class)
private BigDecimal prepareTime;
/**
* 轮次间隔分钟
*/
@Schema(description = "轮次间隔(分钟)")
@JsonSerialize(using = ToStringSerializer.class)
private BigDecimal interval;
/**

@ -53,7 +53,7 @@ public class SameTroughEntity extends BaseEntity {
* 作业中心id
*/
@Schema(description = "作业中心id")
private BigDecimal workCenterId;
private Long workCenterId;
/**
* 作业中心名称
*/
@ -63,7 +63,7 @@ public class SameTroughEntity extends BaseEntity {
* 工序id
*/
@Schema(description = "工序id")
private BigDecimal processId;
private Long processId;
/**
* 工序名称
*/
@ -73,7 +73,7 @@ public class SameTroughEntity extends BaseEntity {
* 工艺id
*/
@Schema(description = "工艺id")
private BigDecimal craftId;
private Long craftId;
/**
* 工艺名称
*/

@ -34,6 +34,7 @@ import org.springblade.scheduling.scheduling.excel.SameTroughExcel;
import org.springblade.scheduling.scheduling.vo.SameTroughVO;
import java.util.List;
import java.util.Map;
/**
* 非同槽因素表 Mapper 接口
@ -61,4 +62,6 @@ public interface SameTroughMapper extends BaseMapper<SameTroughEntity> {
*/
List<SameTroughExcel> export(@Param("ew") Wrapper<SameTroughEntity> queryWrapper);
SameTroughVO selectSameTroughInfo(Long id);
}

@ -41,4 +41,27 @@
SELECT * FROM MES_SAME_TROUGH ${ew.customSqlSegment}
</select>
<select id="selectSameTroughInfo" resultType="org.springblade.scheduling.scheduling.vo.SameTroughVO">
SELECT
a.PART_CODE as "partCode",
a.PLATE as "plate",
a.PRODUCT_IDENT as "productIdent",
a.BATCH_NO as "batchNo",
b.material as "material",
b.hardness as "hardness",
c.pps_id as "processId",
c.ca_id as "craftId",
c.WORK_CENTER_ID as "workCenterId"
FROM
MES_YIELD_ORDER a
LEFT JOIN DS_PART b ON a.PART_CODE = b.PART_CODE
LEFT JOIN MES_YIELD_ORDER_CRAFT c ON a.id = c.yo_id
<where>
a.is_deleted = 0 AND c.WORK_CENTER_ID IS NOT NULL
<if test="id != null">
and c.id = #{id}
</if>
</where>
</select>
</mapper>

@ -27,12 +27,14 @@ package org.springblade.scheduling.scheduling.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.core.mp.base.BaseService;
import org.springblade.scheduling.pojo.entity.SameTroughEntity;
import org.springblade.scheduling.scheduling.excel.SameTroughExcel;
import org.springblade.scheduling.scheduling.vo.SameTroughVO;
import java.util.List;
import java.util.Map;
/**
* 非同槽因素表 服务类
@ -59,4 +61,6 @@ public interface ISameTroughService extends BaseService<SameTroughEntity> {
*/
List<SameTroughExcel> export(Wrapper<SameTroughEntity> queryWrapper);
SameTroughVO selectSameTroughInfo(Long id);
}

@ -35,6 +35,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl;
import java.util.List;
import java.util.Map;
/**
* 非同槽因素表 服务实现类
@ -58,4 +59,9 @@ public class SameTroughServiceImpl extends BaseServiceImpl<SameTroughMapper, Sam
return SameTroughList;
}
@Override
public SameTroughVO selectSameTroughInfo(Long id) {
return baseMapper.selectSameTroughInfo(id);
}
}

@ -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());
}
//不同零件号判断工艺
}
}*/
}

@ -42,4 +42,9 @@ public class SameTroughVO extends SameTroughEntity {
@Serial
private static final long serialVersionUID = 1L;
private String partCode;
private String plate;
}

Loading…
Cancel
Save