场景修改

parent 1a1e87d2
...@@ -11,7 +11,6 @@ import io.swagger.v3.oas.annotations.tags.Tag; ...@@ -11,7 +11,6 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@RestController @RestController
...@@ -30,25 +29,23 @@ public class LanuchController { ...@@ -30,25 +29,23 @@ public class LanuchController {
/** /**
* 启动工单 * 启动工单
* *
* @param sceneName 场景名称 * @param sceneId 场景名称
* @param username 用户名 * @param userId 用户名
* @return 处理结果 * @return 处理结果
*/ */
@PostMapping("/execute") @PostMapping("/execute")
public R<String> lanuch( public R<String> lanuch(
@RequestParam String sceneName, @RequestParam String sceneId,
@RequestHeader(required = false) String username) { @RequestHeader(required = false) String userId) {
if (username == null || username.isEmpty()) {
username = "system";
}
return lanuchService.lanuch(sceneName, username); return lanuchService.lanuch(sceneId, userId);
} }
@GetMapping("/schedule") @GetMapping("/schedule")
public Chromosome schedule(@RequestParam String sceneID,@RequestParam LocalDateTime baseTime) { public Chromosome schedule(@RequestParam String sceneId) {
// 调用 PlanResultService 获取 ScheduleChromosome 列表 // 调用 PlanResultService 获取 ScheduleChromosome 列表
Chromosome scheduleChromosomes = planResultService.schedule(sceneID,baseTime); Chromosome scheduleChromosomes = planResultService.schedule(sceneId);
// 提取所有场景ID // 提取所有场景ID
return scheduleChromosomes; return scheduleChromosomes;
...@@ -57,31 +54,36 @@ public class LanuchController { ...@@ -57,31 +54,36 @@ public class LanuchController {
@PostMapping("/copyScene") @PostMapping("/copyScene")
public R<String> copyScene( public R<String> copyScene(
@RequestParam String newSceneName,@RequestParam String oldSceneName, @RequestParam String newSceneId,@RequestParam String oldSceneId,
@RequestHeader(required = false) String username) { @RequestHeader(required = false) String userId) {
if (username == null || username.isEmpty()) {
username = "system";
}
return lanuchService.copyScene(oldSceneName,username,newSceneName);
return lanuchService.copyScene(oldSceneId,userId,newSceneId);
} }
@GetMapping("/exportPlan") @GetMapping("/exportPlan")
public R<String> exportPlan(@RequestParam String sceneID) { public R<String> exportPlan(@RequestParam String sceneId) {
// 调用 PlanResultService 获取 ScheduleChromosome 列表 // 调用 PlanResultService 获取 ScheduleChromosome 列表
return lanuchService.exportPlan(sceneID); return lanuchService.exportPlan(sceneId);
} }
@GetMapping("/deleteScene") @GetMapping("/deleteScene")
public R<Boolean> deleteScene(@RequestParam String sceneID) { public R<Boolean> deleteScene(@RequestParam String sceneId) {
// 调用 PlanResultService 获取 ScheduleChromosome 列表 // 调用 PlanResultService 获取 ScheduleChromosome 列表
return R.ok(prodSceneConfigService.deleteSceneById(sceneID)); return R.ok(prodSceneConfigService.deleteSceneById(sceneId));
} }
@GetMapping("/getAllScene")
public R<List<ProdSceneConfig>> getAllScene(@RequestParam String userId) {
// 调用 PlanResultService 获取 ScheduleChromosome 列表
return R.ok(prodSceneConfigService.lambdaQuery()
.eq(ProdSceneConfig::getCreateUser,userId)
.list());
}
} }
\ No newline at end of file
...@@ -488,7 +488,7 @@ public class ResourceGanttController { ...@@ -488,7 +488,7 @@ public class ResourceGanttController {
// 转换为 ResourceGanttVO 格式 // 转换为 ResourceGanttVO 格式
List<ResourceGanttVO> resourceGanttVOList = new ArrayList<>(); List<ResourceGanttVO> resourceGanttVOList = new ArrayList<>();
List<ResourceGanttVO> resourceGanttVOs = convertToResourceGanttVO1(schedule); List<ResourceGanttVO> resourceGanttVOs = convertToResourceGanttVO1(schedule,sceneId);
resourceGanttVOList.addAll(resourceGanttVOs); resourceGanttVOList.addAll(resourceGanttVOs);
return resourceGanttVOList; return resourceGanttVOList;
...@@ -497,10 +497,13 @@ public class ResourceGanttController { ...@@ -497,10 +497,13 @@ public class ResourceGanttController {
private List<ResourceGanttVO> convertToResourceGanttVO1(Chromosome scheduleChromosome) { private List<ResourceGanttVO> convertToResourceGanttVO1(Chromosome scheduleChromosome,String sceneId) {
List<ResourceGanttVO> resourceGanttVOList = new ArrayList<>(); List<ResourceGanttVO> resourceGanttVOList = new ArrayList<>();
List<Machine> machineList = planResultService.InitCalendarToAllMachines1(scheduleChromosome.getScenarioID()); List<Machine> machineList = planResultService.InitCalendarToAllMachines1(sceneId);
// 遍历所有机器资源 // 遍历所有机器资源
if (machineList != null) { if (machineList != null) {
for (int i = 0; i < machineList.size(); i++) { for (int i = 0; i < machineList.size(); i++) {
...@@ -508,14 +511,16 @@ public class ResourceGanttController { ...@@ -508,14 +511,16 @@ public class ResourceGanttController {
ResourceGanttVO resourceGanttVO = new ResourceGanttVO(); ResourceGanttVO resourceGanttVO = new ResourceGanttVO();
resourceGanttVO.setId(machine.getId()); resourceGanttVO.setId(machine.getId());
resourceGanttVO.setName(machine.getId()+"号设备"); resourceGanttVO.setName(machine.getId() + "号设备");
resourceGanttVO.setShift(convertToVO(machine)); resourceGanttVO.setShift(convertToVO(machine));
// 转换任务列表 // 转换任务列表
List<TaskVO> taskVOList = new ArrayList<>(); List<TaskVO> taskVOList = new ArrayList<>();
if (scheduleChromosome.getResult() != null) {
if (scheduleChromosome != null){
if (scheduleChromosome.getResult() != null ) {
// 筛选出属于当前设备的任务 // 筛选出属于当前设备的任务
List<GAScheduleResult> machineGenes = scheduleChromosome.getResult().stream() List<GAScheduleResult> machineGenes = scheduleChromosome.getResult().stream()
.filter(gene -> gene.getMachineId()==(machine.getId())) .filter(gene -> gene.getMachineId() == (machine.getId()))
.collect(Collectors.toList()); .collect(Collectors.toList());
// 按开始时间排序 // 按开始时间排序
...@@ -567,10 +572,9 @@ public class ResourceGanttController { ...@@ -567,10 +572,9 @@ public class ResourceGanttController {
taskVO.setAbsolutePreparationTime(gene.getTeardownTime()); taskVO.setAbsolutePreparationTime(gene.getTeardownTime());
} }
} }
}
resourceGanttVO.setList(taskVOList); resourceGanttVO.setList(taskVOList);
resourceGanttVOList.add(resourceGanttVO); resourceGanttVOList.add(resourceGanttVO);
} }
...@@ -592,6 +596,9 @@ public class ResourceGanttController { ...@@ -592,6 +596,9 @@ public class ResourceGanttController {
List<ProductGanttVO> productGanttVOList = new ArrayList<>(); List<ProductGanttVO> productGanttVOList = new ArrayList<>();
// 按产品ID和工单ID分组基因 // 按产品ID和工单ID分组基因
if (scheduleChromosome!= null) {
if (scheduleChromosome.getResult() != null) { if (scheduleChromosome.getResult() != null) {
// 按工单ID分组 // 按工单ID分组
scheduleChromosome.getResult().stream() scheduleChromosome.getResult().stream()
...@@ -601,17 +608,17 @@ public class ResourceGanttController { ...@@ -601,17 +608,17 @@ public class ResourceGanttController {
ProductGanttVO productGanttVO = new ProductGanttVO(); ProductGanttVO productGanttVO = new ProductGanttVO();
GAScheduleResult firstGene = genes.get(0); GAScheduleResult firstGene = genes.get(0);
productGanttVO.setId(firstGene.getOrderId()); productGanttVO.setId(firstGene.getOrderId());
productGanttVO.setProductName("产品"+firstGene.getProductId()); // 默认值,实际应从订单数据获取 productGanttVO.setProductName("产品" + firstGene.getProductId()); // 默认值,实际应从订单数据获取
productGanttVO.setProductType(0); productGanttVO.setProductType(0);
productGanttVO.setProductId(firstGene.getProductId()); productGanttVO.setProductId(firstGene.getProductId());
// 计算总数量(假设同一批次) // 计算总数量(假设同一批次)
productGanttVO.setQuantity(firstGene.getQuantity()); productGanttVO.setQuantity(firstGene.getQuantity());
productGanttVO.setCode("编号"+firstGene.getProductId()); // 默认值 productGanttVO.setCode("编号" + firstGene.getProductId()); // 默认值
productGanttVO.setShopId(firstGene.getMachineId()); // 默认值 productGanttVO.setShopId(firstGene.getMachineId()); // 默认值
productGanttVO.setShopName(firstGene.getMachineId()+"号线"); // 默认值 productGanttVO.setShopName(firstGene.getMachineId() + "号线"); // 默认值
productGanttVO.setStatus("已发布"); productGanttVO.setStatus("已发布");
// productGanttVO.setHeaderId(firstGene.getProductId()); // productGanttVO.setHeaderId(firstGene.getProductId());
productGanttVO.setHeaderName("工艺"+firstGene.getProductId()); // 默认值 productGanttVO.setHeaderName("工艺" + firstGene.getProductId()); // 默认值
// 计算开始和结束时间 // 计算开始和结束时间
int minStartTime = genes.stream() int minStartTime = genes.stream()
...@@ -637,7 +644,7 @@ public class ResourceGanttController { ...@@ -637,7 +644,7 @@ public class ResourceGanttController {
taskVO.setId(gene.getOrderId()); // 生成唯一ID taskVO.setId(gene.getOrderId()); // 生成唯一ID
taskVO.setPlanId(String.valueOf(orderId)); taskVO.setPlanId(String.valueOf(orderId));
taskVO.setProductType(0); taskVO.setProductType(0);
taskVO.setProductName("产品"+gene.getProductId()); taskVO.setProductName("产品" + gene.getProductId());
taskVO.setProductId(String.valueOf(gene.getProductId())); taskVO.setProductId(String.valueOf(gene.getProductId()));
taskVO.setQuantity(gene.getQuantity()); taskVO.setQuantity(gene.getQuantity());
taskVO.setStart(scheduleChromosome.getBaseTime().plusSeconds(gene.getStartTime())); taskVO.setStart(scheduleChromosome.getBaseTime().plusSeconds(gene.getStartTime()));
...@@ -653,11 +660,11 @@ public class ResourceGanttController { ...@@ -653,11 +660,11 @@ public class ResourceGanttController {
scheduleChromosome.getBaseTime().plusMinutes(gene.getEndTime()))); scheduleChromosome.getBaseTime().plusMinutes(gene.getEndTime())));
taskVO.setEquipId(gene.getMachineId()); // 生成设备ID taskVO.setEquipId(gene.getMachineId()); // 生成设备ID
taskVO.setShopId(gene.getMachineId()); taskVO.setShopId(gene.getMachineId());
taskVO.setShopName(gene.getMachineId()+"车间"); taskVO.setShopName(gene.getMachineId() + "车间");
taskVO.setStatus(0); taskVO.setStatus(0);
// taskVO.setDetailId((long) gene.getProductId() * 1000 + gene.getOperationId()); // taskVO.setDetailId((long) gene.getProductId() * 1000 + gene.getOperationId());
// taskVO.setHeaderId(gene.getProductId()); // taskVO.setHeaderId(gene.getProductId());
taskVO.setHeaderName("工艺"+gene.getProductId()); taskVO.setHeaderName("工艺" + gene.getProductId());
// taskVO.setSeq(gene.getSequenceId()); // taskVO.setSeq(gene.getSequenceId());
// taskVO.setSeqName("工序名称"+gene.getSequenceId()); // taskVO.setSeqName("工序名称"+gene.getSequenceId());
// taskVO.setAbsoluteStart(scheduleChromosome.getBaseTime().plusMinutes(gene.getStartTime())); // taskVO.setAbsoluteStart(scheduleChromosome.getBaseTime().plusMinutes(gene.getStartTime()));
...@@ -671,7 +678,7 @@ public class ResourceGanttController { ...@@ -671,7 +678,7 @@ public class ResourceGanttController {
} }
}); });
} }
}
return productGanttVOList; return productGanttVOList;
} }
......
...@@ -28,7 +28,7 @@ private Long equipid; ...@@ -28,7 +28,7 @@ private Long equipid;
private String equipname; private String equipname;
private Long measureparameterid; private Long measureparameterid;
private String measureparametername; private String measureparametername;
private BigDecimal measureduration; private Long measureduration;
private String measureunit; private String measureunit;
private Long measureunitid; private Long measureunitid;
private BigDecimal duration; private BigDecimal duration;
......
...@@ -99,7 +99,7 @@ public class LanuchServiceImpl implements LanuchService { ...@@ -99,7 +99,7 @@ public class LanuchServiceImpl implements LanuchService {
// 1. 创建场景 // 1. 创建场景
String sceneId = createScene(sceneName); String sceneId = createScene(sceneName, username);
if (sceneId == null) { if (sceneId == null) {
return R.failed("场景名称已存在"); return R.failed("场景名称已存在");
} }
...@@ -170,7 +170,7 @@ public class LanuchServiceImpl implements LanuchService { ...@@ -170,7 +170,7 @@ public class LanuchServiceImpl implements LanuchService {
return R.failed("源场景不存在"); return R.failed("源场景不存在");
} }
// 创建场景 // 创建场景
String newSceneId = createScene(newSceneName); String newSceneId = createScene(newSceneName, username);
if (newSceneId == null) { if (newSceneId == null) {
return R.failed("场景名称已存在"); return R.failed("场景名称已存在");
} }
...@@ -346,13 +346,13 @@ public class LanuchServiceImpl implements LanuchService { ...@@ -346,13 +346,13 @@ public class LanuchServiceImpl implements LanuchService {
launchOrder.setSerie(order.getSeries()); launchOrder.setSerie(order.getSeries());
launchOrder.setCreateUser(String.valueOf(order.getCreatoruserid())); launchOrder.setCreateUser(String.valueOf(order.getCreatoruserid()));
launchOrder.setMaterialCode(order.getMmcode()); launchOrder.setMaterialCode(order.getMmcode());
launchOrder.setStartDate(order.getBegintime()); // launchOrder.setStartDate(order.get);
launchOrder.setEndDate(order.getDeliverytime()); launchOrder.setEndDate(order.getDeliverytime());
// launchOrder.setOrderPriority(order.getPrioritry()); // launchOrder.setOrderPriority(order.getPrioritry());
launchOrder.setOrderPriority(1); launchOrder.setOrderPriority(1);
launchOrder.setQuantity(order.getQuantity()); launchOrder.setQuantity(order.getQuantity());
launchOrder.setMaterialId(order.getMmid()); launchOrder.setMaterialId(order.getMmid());
launchOrder.setOrderCode(order.getCode());
String mmid = order.getMmid(); String mmid = order.getMmid();
// // 通过mmid查找对应的工艺 // // 通过mmid查找对应的工艺
// if (mmid != null && !mmid.isEmpty()) { // if (mmid != null && !mmid.isEmpty()) {
...@@ -388,7 +388,7 @@ public class LanuchServiceImpl implements LanuchService { ...@@ -388,7 +388,7 @@ public class LanuchServiceImpl implements LanuchService {
◦ @return 场景ID,如果场景已存在则返回null ◦ @return 场景ID,如果场景已存在则返回null
*/ */
private String createScene(String sceneName) { private String createScene(String sceneName,String userId) {
// 检查场景名称是否已存在 // 检查场景名称是否已存在
boolean exists = prodSceneConfigService.lambdaQuery() boolean exists = prodSceneConfigService.lambdaQuery()
.eq(ProdSceneConfig::getSceneName, sceneName) .eq(ProdSceneConfig::getSceneName, sceneName)
...@@ -406,7 +406,7 @@ public class LanuchServiceImpl implements LanuchService { ...@@ -406,7 +406,7 @@ public class LanuchServiceImpl implements LanuchService {
sceneConfig.setSceneName(sceneName); sceneConfig.setSceneName(sceneName);
sceneConfig.setSceneStatus((short) 1); sceneConfig.setSceneStatus((short) 1);
sceneConfig.setCreateTime(LocalDateTime.now()); sceneConfig.setCreateTime(LocalDateTime.now());
sceneConfig.setCreateUser(userId);
prodSceneConfigService.save(sceneConfig); prodSceneConfigService.save(sceneConfig);
log.info("创建新场景成功,场景ID:{},名称:{}", sceneId, sceneName); log.info("创建新场景成功,场景ID:{},名称:{}", sceneId, sceneName);
...@@ -1190,4 +1190,7 @@ public class LanuchServiceImpl implements LanuchService { ...@@ -1190,4 +1190,7 @@ public class LanuchServiceImpl implements LanuchService {
} }
} }
\ No newline at end of file
...@@ -493,12 +493,13 @@ order.setDueDate(LocalDateTime.of(2025, 12, 1,0,0,0)); ...@@ -493,12 +493,13 @@ order.setDueDate(LocalDateTime.of(2025, 12, 1,0,0,0));
public Chromosome schedule(String SceneId,LocalDateTime baseTime) { public Chromosome schedule(String SceneId) {
try { try {
ScheduleParams param = new ScheduleParams(); ScheduleParams param = new ScheduleParams();
param.setBaseTime(baseTime); // param.setBaseTime(baseTime);
param.setBaseTime(LocalDateTime.of(2025, 11, 1, 0, 0, 0));
// 1. 读取数据 // 1. 读取数据
......
This diff is collapsed.
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