下发修改

parent 6717a371
...@@ -868,16 +868,17 @@ public class ResourceGanttController { ...@@ -868,16 +868,17 @@ public class ResourceGanttController {
mediaType = "application/json", mediaType = "application/json",
examples = @io.swagger.v3.oas.annotations.media.ExampleObject( examples = @io.swagger.v3.oas.annotations.media.ExampleObject(
name = "获取供给关系示例", name = "获取供给关系示例",
value = "{\n \"sceneId\": \"B571EF6682DB463AB2977B1055A74112\",\n \"entryId\": 472\n}" value = "{\n \"sceneId\": \"7044578FAF8D488B96197ED77920CFBA\",\n \"id\": 6\n}"
) )
) )
) )
) )
public R<SupplyRelationResponse> getSupplyRelation(@RequestBody Map<String, Object> params) { public R<SupplyRelationResponse> getSupplyRelation(@RequestBody Map<String, Object> params) {
log.info("getSupplyRelation 请求参数: {}", params); log.info("getSupplyRelation 请求参数: {}", params);
// 提取参数 // 提取参数
String sceneId = ParamValidator.getString(params, "sceneId", "场景ID"); String sceneId = ParamValidator.getString(params, "sceneId", "场景ID");
Integer entryId = ParamValidator.getInteger(params, "entryId", "工序ID"); Integer entryId = ParamValidator.getInteger(params, "id", "工序ID");
// ParamValidator.validateSceneExists(sceneService, sceneId); // ParamValidator.validateSceneExists(sceneService, sceneId);
// 调用服务获取供给关系 // 调用服务获取供给关系
......
...@@ -23,6 +23,9 @@ public class OrderMaterialRequirement { ...@@ -23,6 +23,9 @@ public class OrderMaterialRequirement {
private String materialCode; private String materialCode;
private String materialName; private String materialName;
private String materialTypeName; private String materialTypeName;
@TableField(exist = false)
private String bomId; private String bomId;
/** /**
* 物料类型 * 物料类型
......
package com.aps.entity; package com.aps.entity;
import lombok.Data; import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableId;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
...@@ -9,6 +10,7 @@ import java.time.LocalDateTime; ...@@ -9,6 +10,7 @@ import java.time.LocalDateTime;
public class ProdSceneConfig { public class ProdSceneConfig {
@TableId
private String sceneId; private String sceneId;
private String sceneName; private String sceneName;
private String sceneDesc; private String sceneDesc;
......
...@@ -32,14 +32,14 @@ public class Entry { ...@@ -32,14 +32,14 @@ public class Entry {
* 所属组ID 需要按照前后顺序生产的工单给一组 * 所属组ID 需要按照前后顺序生产的工单给一组
*/ */
public int GroupId ; public int GroupId ;
/**
* 原订单ID
*/
public String OrderId ; public String OrderId ;
public String OrderCode ; public String OrderCode ;
/**
* 原订单ID
*/
public String SceneId ; public String SceneId ;
private Integer routingId; private Integer routingId;
private String routingCode; private String routingCode;
...@@ -73,7 +73,7 @@ public class Entry { ...@@ -73,7 +73,7 @@ public class Entry {
*/ */
public double Priority=1; public double Priority=1;
/** /**
* 基因编号 * 数量
*/ */
public double Quantity; public double Quantity;
/** /**
......
...@@ -204,12 +204,30 @@ public class LanuchServiceImpl implements LanuchService { ...@@ -204,12 +204,30 @@ public class LanuchServiceImpl implements LanuchService {
throw new RuntimeException("未找到排程结果"); throw new RuntimeException("未找到排程结果");
} }
ProdSceneConfig sceneConfig = prodSceneConfigService.getById(sceneId);
// 构建orderId到departmentId的映射
Map<String, Integer> orderDepartmentMap = new HashMap<>();
List<Entry> allEntries = chromosome.getAllOperations();
if (allEntries != null) {
for (Entry entry : allEntries) {
if (entry.getOrderId() != null && entry.getDepartmentId() != null) {
orderDepartmentMap.put(entry.getOrderId(), entry.getDepartmentId());
}
}
}
List<Order> prodLanuchList = chromosome.getOrders(); List<Order> prodLanuchList = chromosome.getOrders();
List<MesOrder> mesOrderList = new ArrayList<>(); List<MesOrder> mesOrderList = new ArrayList<>();
for (Order prodLaunchOrder : prodLanuchList) { for (Order prodLaunchOrder : prodLanuchList) {
MesOrder mesOrder = new MesOrder(); MesOrder mesOrder = new MesOrder();
mesOrder.setCreatorUserId(Long.valueOf(sceneConfig.getCreateUser()));
// 设置部门信息(使用upId字段存储部门ID)
Integer departmentId = orderDepartmentMap.get(prodLaunchOrder.getOrderId());
if (departmentId != null) {
mesOrder.setUpId(Long.valueOf(departmentId));
}
mesOrder.setMesCode(prodLaunchOrder.getOrderId()); mesOrder.setMesCode(prodLaunchOrder.getOrderId());
mesOrder.setMaterialId(prodLaunchOrder.getMaterialId()); mesOrder.setMaterialId(prodLaunchOrder.getMaterialId());
mesOrder.setQuantity(prodLaunchOrder.getQuantity()); mesOrder.setQuantity(prodLaunchOrder.getQuantity());
...@@ -219,7 +237,7 @@ public class LanuchServiceImpl implements LanuchService { ...@@ -219,7 +237,7 @@ public class LanuchServiceImpl implements LanuchService {
mesOrder.setDrawnNumber(prodLaunchOrder.getMaterialCode()); mesOrder.setDrawnNumber(prodLaunchOrder.getMaterialCode());
mesOrder.setOrderCode(prodLaunchOrder.getOrderCode()); mesOrder.setOrderCode(prodLaunchOrder.getOrderCode());
mesOrder.setStatus(12L); mesOrder.setStatus(12L);
mesOrder.setIsDeleted(0L);
mesOrder.setTaskType(prodLaunchOrder.getFinishOrderId() != null ? "半成品" : "成品"); mesOrder.setTaskType(prodLaunchOrder.getFinishOrderId() != null ? "半成品" : "成品");
mesOrderList.add(mesOrder); mesOrderList.add(mesOrder);
} }
...@@ -262,12 +280,14 @@ public class LanuchServiceImpl implements LanuchService { ...@@ -262,12 +280,14 @@ public class LanuchServiceImpl implements LanuchService {
dispatch.setBeginTime(baseTime.plusSeconds(gaResult.getStartTime())); dispatch.setBeginTime(baseTime.plusSeconds(gaResult.getStartTime()));
dispatch.setEndTime(baseTime.plusSeconds(gaResult.getEndTime())); dispatch.setEndTime(baseTime.plusSeconds(gaResult.getEndTime()));
dispatch.setENof(gaResult.getOrderId()); dispatch.setENof(gaResult.getOrderId());
dispatch.setCreatorUserId(Long.parseLong(sceneConfig.getCreateUser()));
// 设置状态等其他字段 // 设置状态等其他字段
dispatch.setTaskSeq(entry1.getTaskSeq()); dispatch.setTaskSeq(entry1.getTaskSeq());
dispatch.setMesCode(gaResult.getOrderId()); dispatch.setMesCode(gaResult.getOrderId());
dispatch.setRoutingDetailId(entry1.getRoutingDetailId()); dispatch.setRoutingDetailId(entry1.getRoutingDetailId());
dispatch.setOpe(entry1.getRoutingDetailName()); dispatch.setOpe(entry1.getRoutingDetailName());
dispatch.setRoutingDetailId(entry1.getRoutingDetailId()); dispatch.setRoutingDetailId(entry1.getRoutingDetailId());
dispatch.setIsDeleted(0L);
dispatch.setStatus(12L); dispatch.setStatus(12L);
// PART_TASK_READY_ID:取对应 mes_order 的主键 id(按 orderId/mesCode 关联) // PART_TASK_READY_ID:取对应 mes_order 的主键 id(按 orderId/mesCode 关联)
Long partTaskReadyId = mesOrderIdByOrderId.get(gaResult.getOrderId()); Long partTaskReadyId = mesOrderIdByOrderId.get(gaResult.getOrderId());
...@@ -285,7 +305,38 @@ public class LanuchServiceImpl implements LanuchService { ...@@ -285,7 +305,38 @@ public class LanuchServiceImpl implements LanuchService {
boolean savedDispatch = dispatchService.saveOrUpdateBatch(dispatches); boolean savedDispatch = dispatchService.saveOrUpdateBatch(dispatches);
List<OrderMaterialRequirement> orderMaterials = chromosome.getOrderMaterials(); // 构建ExecId到GAScheduleResult的映射,用于获取工序开始时间
Map<String, GAScheduleResult> execIdToScheduleMap = new HashMap<>();
for (GAScheduleResult gaResult : chromosome.getResult()) {
execIdToScheduleMap.put(gaResult.getExecId(), gaResult);
}
List<OrderMaterialRequirement> orderMaterials = new ArrayList<>();
// 获取所有entry下的物料需求
if (chromosome.getAllOperations() != null) {
for (Entry entry : chromosome.getAllOperations()) {
if (entry.getMaterialRequirements() != null && !entry.getMaterialRequirements().isEmpty()) {
// 获取该Entry对应的GAScheduleResult
GAScheduleResult gaResult = execIdToScheduleMap.get(entry.getExecId());
LocalDateTime operationStartTime = null;
// 计算工序开始时间
if (gaResult != null) {
LocalDateTime baseTime = chromosome.getBaseTime() != null ? chromosome.getBaseTime() : LocalDateTime.now();
operationStartTime = baseTime.plusSeconds(gaResult.getStartTime());
}
// 遍历物料需求,设置shortageTime
for (OrderMaterialRequirement omr : entry.getMaterialRequirements()) {
if (operationStartTime != null) {
omr.setShortageTime(operationStartTime);
}
orderMaterials.add(omr);
}
}
}
}
// 先删除表中所有数据 // 先删除表中所有数据
orderMaterialRequirementService.remove(new LambdaQueryWrapper<>()); orderMaterialRequirementService.remove(new LambdaQueryWrapper<>());
......
...@@ -1397,8 +1397,8 @@ private GlobalParam InitGlobalParam() ...@@ -1397,8 +1397,8 @@ private GlobalParam InitGlobalParam()
LocalDateTime lastEntryEndTime = getEntryEndTime(lastEntry, results, baseTime); LocalDateTime lastEntryEndTime = getEntryEndTime(lastEntry, results, baseTime);
Map<String, Object> item = new HashMap<>(); Map<String, Object> item = new HashMap<>();
item.put("taskIdFrom", String.valueOf(lastEntry.getId())); item.put("taskIdFrom", String.valueOf(lastEntry.getOrderId()));
item.put("taskIdTo", String.valueOf(currentEntry.getId())); item.put("taskIdTo", String.valueOf(currentEntry.getOrderId()));
item.put("fromTime", lastEntryEndTime != null ? lastEntryEndTime.toString() : "2025-12-13"); item.put("fromTime", lastEntryEndTime != null ? lastEntryEndTime.toString() : "2025-12-13");
item.put("toTime", currentStartTime != null ? currentStartTime.toString() : "2026-12-13"); item.put("toTime", currentStartTime != null ? currentStartTime.toString() : "2026-12-13");
item.put("fromIdFrom", String.valueOf(lastEntry.getId())); item.put("fromIdFrom", String.valueOf(lastEntry.getId()));
...@@ -1423,8 +1423,8 @@ private GlobalParam InitGlobalParam() ...@@ -1423,8 +1423,8 @@ private GlobalParam InitGlobalParam()
LocalDateTime targetStartTime = getEntryStartTime(targetEntry, results, baseTime); LocalDateTime targetStartTime = getEntryStartTime(targetEntry, results, baseTime);
Map<String, Object> item = new HashMap<>(); Map<String, Object> item = new HashMap<>();
item.put("taskIdFrom", String.valueOf(currentEntry.getId())); item.put("taskIdFrom", String.valueOf(currentEntry.getOrderId()));
item.put("taskIdTo", String.valueOf(targetEntry.getId())); item.put("taskIdTo", String.valueOf(targetEntry.getOrderId()));
item.put("fromTime", currentEndTime != null ? currentEndTime.toString() : "2025-12-13"); item.put("fromTime", currentEndTime != null ? currentEndTime.toString() : "2025-12-13");
item.put("toTime", targetStartTime != null ? targetStartTime.toString() : "2026-12-13"); item.put("toTime", targetStartTime != null ? targetStartTime.toString() : "2026-12-13");
item.put("fromIdFrom", String.valueOf(currentEntry.getId())); item.put("fromIdFrom", String.valueOf(currentEntry.getId()));
......
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