回退版本

parent c8e8eeea
......@@ -458,6 +458,16 @@ public class SwaggerMapParamConfig {
"}"
));
break;
case "returnChromosome":
properties.put("sceneId", new StringSchema().description("场景ID").example("B571EF6682DB463AB2977B1055A74112"));
examples.put("回退版本示例", createExample(
"回退到上一个版本",
"{\n" +
" \"sceneId\": \"B571EF6682DB463AB2977B1055A74112\"\n" +
"}"
));
break;
}
if (!properties.isEmpty()) {
......@@ -542,6 +552,8 @@ public class SwaggerMapParamConfig {
return "修改时间配置请求参数";
case "updateConfig":
return "更新APS时间配置请求参数";
case "returnChromosome":
return "回退版本请求参数";
default:
return "请求参数";
}
......
......@@ -876,4 +876,26 @@ public class ResourceGanttController {
/**
* 移动染色体到指定版本
*
* @param params 参数Map
* @return 染色体对象
*/
@PostMapping("/returnChromosome")
@Operation(summary = "回退版本", description = "回退到上一个版本")
public R<String> returnChromosome(@RequestBody Map<String, Object> params) {
String sceneId = ParamValidator.getString(params, "sceneId", "场景ID不能为空");
if (sceneId == null ) {
return R.failed("场景ID和版本号不能为空");
}
Chromosome result = planResultService.moveChromosome(sceneId, 0);
return R.ok("回退成功");
}
}
\ No newline at end of file
......@@ -84,7 +84,10 @@ public class OrderMaterialRequirement {
*/
@TableField(exist = false)
private List<Integer> productOrderID=new ArrayList<>();
/**
* 采购结束时间
*/
private LocalDateTime shortageTime;
/**
* 检验周期
*/
......
......@@ -212,22 +212,31 @@ public class SceneService {
}
public Chromosome moveChromosome(String sceneId,Integer version)
{
try {
SceneChromsome sceneChromsome=(SceneChromsome)redisUtils.get("SceneId."+sceneId);
if(sceneChromsome==null) {
return null;
}else {
sceneChromsome.setVersion(version);
redisUtils.set("SceneId."+sceneId,sceneChromsome);
return loadChromosomeFromFile(sceneId);
int prevVersion = sceneChromsome.getVersion() - 1;
if (prevVersion == 0) {
throw new RuntimeException("当前已是第一个版本");
}
sceneChromsome.setVersion(prevVersion);
redisUtils.set("SceneId."+sceneId,sceneChromsome);
Chromosome chromosome = loadChromosomeFromFile(sceneId);
System.out.println("会退的版本为"+sceneChromsome.getVersion());
if (chromosome == null) {
sceneChromsome.setVersion(sceneChromsome.getVersion() + 1);
redisUtils.set("SceneId."+sceneId,sceneChromsome);
throw new RuntimeException("回退失败,未找到上一个版本");
}
} catch (Exception e) {
logger.error("回退/前进失败,场景ID: " + sceneId, e);
return null;
return chromosome;
}
}
/**
......
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