排产相关-sjx

develop-QA
sunjianxi 3 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.service.IWorkOrderService;
import org.springblade.scheduling.scheduling.wrapper.WorkOrderWrapper;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.web.bind.annotation.*;
@ -72,6 +73,7 @@ public class WorkOrderController extends BladeController {
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 BS_PROCESS_SET f ON e.PPS_ID = f.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>
a.is_deleted = 0
<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 test="woCode !=null and woCode != ''">
and a.wo_code = #{woCode}
@ -219,7 +220,23 @@
and d.name = #{processName}
</if>
</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>
</mapper>

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

Loading…
Cancel
Save