Commit 23f09171 authored by Tong Li's avatar Tong Li

Merge remote-tracking branch 'origin/master'

parents 45ee5031 a27d4795
......@@ -347,10 +347,16 @@ public class LanuchServiceImpl implements LanuchService {
// 再批量插入新数据
orderMaterialRequirementService.saveBatch(orderMaterials);
System.out.println("保存物料需求成功");
if (savedDispatch) {
return R.ok("计划下发成功,共处理 " + dispatches.size() + " 条记录");
// 清理历史版本的排产结果文件,只留下当前版本
boolean cleanupSuccess = sceneService.cleanupHistoricalVersions(sceneId);
if (cleanupSuccess) {
log.info("清理历史版本排产结果文件成功,场景ID: {}", sceneId);
} else {
log.warn("清理历史版本排产结果文件失败,场景ID: {}", sceneId);
}
return R.ok("计划下发成功");
} else {
throw new RuntimeException("保存到数据库失败");
}
......
......@@ -1227,7 +1227,7 @@ private GlobalParam InitGlobalParam()
public List<Material> getMaterials(){
List<Material> materials=new ArrayList<>();
System.out.println("开始初始化物料数据");
FileHelper.writeLogFile("初始化物料-----------开始-------");
LambdaQueryWrapper<MaterialInfo> MaterialInfoWrapper = new LambdaQueryWrapper<>();
MaterialInfoWrapper.eq(MaterialInfo::getIsdeleted,0);
......@@ -1369,6 +1369,7 @@ private GlobalParam InitGlobalParam()
}
redisUtils.set("material",materials);
GlobalCacheUtil.put("material",materials, 10, TimeUnit.MINUTES);
FileHelper.writeLogFile("初始化物料-----------结束-------");
return materials;
}
......
......@@ -329,6 +329,52 @@ public class SceneService {
}
}
/**
* 清理历史版本的排产结果文件,只保留当前版本
* @param sceneId 场景ID
* @return 是否清理成功
*/
public boolean cleanupHistoricalVersions(String sceneId) {
try {
if (sceneId == null || sceneId.trim().isEmpty()) {
logger.warn("场景ID不能为空");
return false;
}
SceneChromsome sceneChromsome = (SceneChromsome) redisUtils.get("SceneId." + sceneId);
if (sceneChromsome == null) {
logger.warn("场景信息不存在: {}", sceneId);
return false;
}
Integer currentVersion = sceneChromsome.getVersion();
logger.info("清理场景 {} 的历史版本排产结果文件,当前版本: {}", sceneId, currentVersion);
List<SceneDetail> sceneDetails = sceneChromsome.getSceneDetails();
if (sceneDetails != null && !sceneDetails.isEmpty()) {
for (SceneDetail detail : sceneDetails) {
Integer version = detail.getVersion();
if (version < currentVersion) {
// 删除历史版本的文件
File file = getChromosomeFile(sceneId, version.toString());
if (file.exists()) {
boolean deleted = Files.deleteIfExists(file.toPath());
if (deleted) {
logger.info("删除历史版本排产结果文件成功: {},版本: {}", file.getAbsolutePath(), version);
}
}
}
}
}
logger.info("清理场景 {} 的历史版本排产结果文件完成", sceneId);
return true;
} catch (Exception e) {
logger.error("清理历史版本排产结果文件失败,场景ID: " + sceneId, e);
return false;
}
}
......
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