下发删除历史版本

parent 7c7c3461
...@@ -347,10 +347,16 @@ public class LanuchServiceImpl implements LanuchService { ...@@ -347,10 +347,16 @@ public class LanuchServiceImpl implements LanuchService {
// 再批量插入新数据 // 再批量插入新数据
orderMaterialRequirementService.saveBatch(orderMaterials); orderMaterialRequirementService.saveBatch(orderMaterials);
System.out.println("保存物料需求成功");
if (savedDispatch) { 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 { } else {
throw new RuntimeException("保存到数据库失败"); throw new RuntimeException("保存到数据库失败");
} }
......
...@@ -1227,7 +1227,7 @@ private GlobalParam InitGlobalParam() ...@@ -1227,7 +1227,7 @@ private GlobalParam InitGlobalParam()
public List<Material> getMaterials(){ public List<Material> getMaterials(){
List<Material> materials=new ArrayList<>(); List<Material> materials=new ArrayList<>();
System.out.println("开始初始化物料数据"); FileHelper.writeLogFile("初始化物料-----------开始-------");
LambdaQueryWrapper<MaterialInfo> MaterialInfoWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<MaterialInfo> MaterialInfoWrapper = new LambdaQueryWrapper<>();
MaterialInfoWrapper.eq(MaterialInfo::getIsdeleted,0); MaterialInfoWrapper.eq(MaterialInfo::getIsdeleted,0);
...@@ -1369,6 +1369,7 @@ private GlobalParam InitGlobalParam() ...@@ -1369,6 +1369,7 @@ private GlobalParam InitGlobalParam()
} }
redisUtils.set("material",materials); redisUtils.set("material",materials);
GlobalCacheUtil.put("material",materials, 10, TimeUnit.MINUTES); GlobalCacheUtil.put("material",materials, 10, TimeUnit.MINUTES);
FileHelper.writeLogFile("初始化物料-----------结束-------");
return materials; return materials;
} }
......
...@@ -329,6 +329,52 @@ public class SceneService { ...@@ -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