排产相关-sjx

master
sunjianxi 2 days ago
parent 3d42a319e7
commit f2f01feb42
  1. 2
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/WorkOrderController.java
  2. 21
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.xml
  3. 8
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java

@ -51,6 +51,7 @@ import org.springblade.scheduling.scheduling.vo.WorkOrderVO;
import org.springblade.scheduling.scheduling.excel.WorkOrderExcel; import org.springblade.scheduling.scheduling.excel.WorkOrderExcel;
import org.springblade.scheduling.scheduling.service.IWorkOrderService; import org.springblade.scheduling.scheduling.service.IWorkOrderService;
import org.springblade.scheduling.scheduling.wrapper.WorkOrderWrapper; import org.springblade.scheduling.scheduling.wrapper.WorkOrderWrapper;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -72,6 +73,7 @@ public class WorkOrderController extends BladeController {
private final IWorkOrderService workOrderService; private final IWorkOrderService workOrderService;
private final StringRedisTemplate stringRedisTemplate;
/** /**
* 车间订单表 详情 * 车间订单表 详情

@ -204,10 +204,11 @@
LEFT JOIN MES_WORK_PLAN e ON c.NEXT_WP_ID = e.ID LEFT JOIN MES_WORK_PLAN e ON c.NEXT_WP_ID = e.ID
LEFT JOIN BS_PROCESS_SET f ON e.PPS_ID = f.ID LEFT JOIN BS_PROCESS_SET f ON e.PPS_ID = f.ID
LEFT JOIN BS_TEAM_SET g on c.MAKE_TEAM = g.ID LEFT JOIN BS_TEAM_SET g on c.MAKE_TEAM = g.ID
LEFT JOIN MES_WORK_PLAN h on h.wo_id = a.id
<where> <where>
a.is_deleted = 0 a.is_deleted = 0
<if test="startTime !=null and startTime != ''"> <if test="startTime !=null and startTime != ''">
and (to_char(c.start_time,'YYYY-MM-DD') = #{startTime} or (c.start_time <![CDATA[ < ]]> to_date(CONCAT(#{startTime},' 00:00:00'),'YYYY-MM-DD HH24:MI:SS') and c.end_time <![CDATA[ > ]]> to_date(CONCAT(#{startTime},' 23:59:59'),'YYYY-MM-DD HH24:MI:SS'))) and (to_char(h.start_time,'YYYY-MM-DD') = #{startTime} or (h.start_time <![CDATA[ < ]]> to_date(CONCAT(#{startTime},' 00:00:00'),'YYYY-MM-DD HH24:MI:SS') and h.end_time <![CDATA[ > ]]> to_date(CONCAT(#{startTime},' 23:59:59'),'YYYY-MM-DD HH24:MI:SS')))
</if> </if>
<if test="woCode !=null and woCode != ''"> <if test="woCode !=null and woCode != ''">
and a.wo_code = #{woCode} and a.wo_code = #{woCode}
@ -219,7 +220,23 @@
and d.name = #{processName} and d.name = #{processName}
</if> </if>
</where> </where>
order by a.WO_CODE,c.start_time GROUP BY
a.WO_CODE,
a.CARD_NO,
a.PART_CODE,
b.PART_NAME,
a.BATCH_NO,
b.product_ident,
b.plate,
b.yp_area,
a.MAKE_QTY,
b.RELEASE_DATE,
d.name,
g.ts_name,
f.name,
a.PLAN_START_DATE,
a.PLAN_END_DATE,
b.DEMAND_DATE
</select> </select>
</mapper> </mapper>

@ -757,7 +757,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
public List<BigDecimal> capacitySplit(Map<LocalDateTime, List<EquipResourceEntity>> map, BigDecimal sumCapacity) { public List<BigDecimal> capacitySplit(Map<LocalDateTime, List<EquipResourceEntity>> map, BigDecimal sumCapacity) {
List<EquipResourceEntity> equipResourceList1 = map.values().stream().flatMap(List::stream).collect(Collectors.toList()); List<EquipResourceEntity> equipResourceList1 = map.values().stream().flatMap(List::stream).collect(Collectors.toList());
BigDecimal maxRestCapacity = equipResourceList1.stream().filter(entity -> entity.getRestCapacity().compareTo(BigDecimal.ZERO) >= 0).map(EquipResourceEntity::getRestCapacity).max(BigDecimal::compareTo).orElseThrow(() -> new IllegalArgumentException("列表中无有效的 restCapacity 数值"));; BigDecimal maxRestCapacity = equipResourceList1.stream().filter(entity -> entity.getRestCapacity().compareTo(BigDecimal.ZERO) >= 0).map(EquipResourceEntity::getRestCapacity).max(BigDecimal::compareTo).orElseThrow(() -> new IllegalArgumentException("列表中无有效的 restCapacity 数值"));
;
List<BigDecimal> capacityList = new ArrayList<>(); List<BigDecimal> capacityList = new ArrayList<>();
if (sumCapacity.compareTo(maxRestCapacity) > 0) { if (sumCapacity.compareTo(maxRestCapacity) > 0) {
// 计算商(fullCount)和余数(remainder):divideAndRemainder返回[商, 余数] // 计算商(fullCount)和余数(remainder):divideAndRemainder返回[商, 余数]
@ -789,7 +790,9 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
capacityList.add(sumCapacity); capacityList.add(sumCapacity);
} }
return capacityList; return capacityList;
}; }
;
/** /**
* 获取时间列表中的最早时间字符串转LocalDateTime比较 * 获取时间列表中的最早时间字符串转LocalDateTime比较
@ -839,6 +842,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
.map(dt -> dt.format(dateTimeFormatter)) .map(dt -> dt.format(dateTimeFormatter))
.orElse(null); .orElse(null);
} }
public void checkSchedulingOrder(List<YieldOrderEntity> list) { public void checkSchedulingOrder(List<YieldOrderEntity> list) {
//判断待排产优先级,1级所有1级往后订单重新排产,2级订单重新排4/5级订单 //判断待排产优先级,1级所有1级往后订单重新排产,2级订单重新排4/5级订单
List<Integer> priorityList = list.stream().map(YieldOrderEntity::getPriorityAps).collect(Collectors.toList()); List<Integer> priorityList = list.stream().map(YieldOrderEntity::getPriorityAps).collect(Collectors.toList());

Loading…
Cancel
Save