回退版本

parent c8e8eeea
...@@ -458,6 +458,16 @@ public class SwaggerMapParamConfig { ...@@ -458,6 +458,16 @@ public class SwaggerMapParamConfig {
"}" "}"
)); ));
break; break;
case "returnChromosome":
properties.put("sceneId", new StringSchema().description("场景ID").example("B571EF6682DB463AB2977B1055A74112"));
examples.put("回退版本示例", createExample(
"回退到上一个版本",
"{\n" +
" \"sceneId\": \"B571EF6682DB463AB2977B1055A74112\"\n" +
"}"
));
break;
} }
if (!properties.isEmpty()) { if (!properties.isEmpty()) {
...@@ -542,6 +552,8 @@ public class SwaggerMapParamConfig { ...@@ -542,6 +552,8 @@ public class SwaggerMapParamConfig {
return "修改时间配置请求参数"; return "修改时间配置请求参数";
case "updateConfig": case "updateConfig":
return "更新APS时间配置请求参数"; return "更新APS时间配置请求参数";
case "returnChromosome":
return "回退版本请求参数";
default: default:
return "请求参数"; return "请求参数";
} }
......
...@@ -876,4 +876,26 @@ public class ResourceGanttController { ...@@ -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 { ...@@ -84,7 +84,10 @@ public class OrderMaterialRequirement {
*/ */
@TableField(exist = false) @TableField(exist = false)
private List<Integer> productOrderID=new ArrayList<>(); private List<Integer> productOrderID=new ArrayList<>();
/**
* 采购结束时间
*/
private LocalDateTime shortageTime;
/** /**
* 检验周期 * 检验周期
*/ */
......
...@@ -212,22 +212,31 @@ public class SceneService { ...@@ -212,22 +212,31 @@ public class SceneService {
} }
public Chromosome moveChromosome(String sceneId,Integer version) public Chromosome moveChromosome(String sceneId,Integer version)
{ {
try {
SceneChromsome sceneChromsome=(SceneChromsome)redisUtils.get("SceneId."+sceneId); SceneChromsome sceneChromsome=(SceneChromsome)redisUtils.get("SceneId."+sceneId);
if(sceneChromsome==null) { if(sceneChromsome==null) {
return null; return null;
}else { }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) { return chromosome;
logger.error("回退/前进失败,场景ID: " + sceneId, e);
return null;
} }
} }
/** /**
......
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