Commit 64e32721 authored by 黎博's avatar 黎博

修改提测说明并发问题提

parent ebed049a
...@@ -5,6 +5,8 @@ import cn.qg.holmes.config.annotation.RequiresPermissions; ...@@ -5,6 +5,8 @@ import cn.qg.holmes.config.annotation.RequiresPermissions;
import cn.qg.holmes.entity.quality.SubmitTestInstruction; import cn.qg.holmes.entity.quality.SubmitTestInstruction;
import cn.qg.holmes.service.quality.JiraService; import cn.qg.holmes.service.quality.JiraService;
import cn.qg.holmes.service.quality.SubmitTestInstructionService; import cn.qg.holmes.service.quality.SubmitTestInstructionService;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.atlassian.jira.rest.client.api.domain.BasicProject; import com.atlassian.jira.rest.client.api.domain.BasicProject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
...@@ -14,9 +16,7 @@ import org.apache.commons.lang3.StringUtils; ...@@ -14,9 +16,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.HashMap; import java.util.*;
import java.util.List;
import java.util.Map;
/** /**
* 质量管理相关接口 * 质量管理相关接口
...@@ -107,7 +107,71 @@ public class QualityController { ...@@ -107,7 +107,71 @@ public class QualityController {
@RequiresPermissions("qa:testDescription:edit") @RequiresPermissions("qa:testDescription:edit")
@PostMapping("/testInstruction/update") @PostMapping("/testInstruction/update")
public JsonResult updateSubmitTestInstruction(@RequestBody SubmitTestInstruction submitTestInstruction) { public JsonResult updateSubmitTestInstruction(@RequestBody SubmitTestInstruction submitTestInstruction) {
return JsonResult.buildSuccessResult("更新成功!", instructionService.saveOrUpdate(submitTestInstruction)); Integer id = submitTestInstruction.getId();
Date dateParam = submitTestInstruction.getUpdateTime();
// 获取数据库中保存的实体
SubmitTestInstruction submitTestInstructionDb = instructionService.getById(id);
Date dateDb = submitTestInstructionDb.getUpdateTime();
// 如果前端传的更新时间与数据库存的更新时间一致,那就直接更新
if (!dateParam.equals(dateDb)) {
// 多人修改时,处理服务与分支
List<Map> serviceAndBranchParamList = JSONArray.parseArray(submitTestInstruction.getServiceAndBranch(), Map.class);
List<Map> serviceAndBranchDbList = JSONArray.parseArray(submitTestInstructionDb.getServiceAndBranch(), Map.class);
for (Map mapParam : serviceAndBranchParamList) {
boolean flag = false;
for (Map mapDb : serviceAndBranchDbList) {
if (mapParam.get("serviceName").toString().equals(mapDb.get("serviceName").toString())) {
flag = true;
}
}
if (!flag) {
serviceAndBranchDbList.add(mapParam);
}
}
submitTestInstruction.setServiceAndBranch(JSON.toJSONString(serviceAndBranchDbList));
// 多人修改时,处理Apollo
List<Map> apolloParamList = JSONArray.parseArray(submitTestInstruction.getApollo(), Map.class);
List<Map> apolloDbList = JSONArray.parseArray(submitTestInstructionDb.getApollo(), Map.class);
for (Map mapParam: apolloParamList) {
boolean flag = false;
for (Map mapDb: apolloDbList) {
if (mapParam.get("projectName").toString().equals(mapDb.get("projectName").toString())
&& mapParam.get("key").toString().equals(mapDb.get("key").toString())) {
flag = true;
}
}
if (!flag) {
apolloDbList.add(mapParam);
}
}
submitTestInstruction.setApollo(JSON.toJSONString(apolloDbList));
// 多人修改时,处理数据库
List<Map> databaseParamList = JSONArray.parseArray(submitTestInstruction.getDatabase(), Map.class);
List<Map> databaseDbList = JSONArray.parseArray(submitTestInstructionDb.getDatabase(), Map.class);
for (Map mapParam: databaseParamList) {
boolean flag = false;
for (Map mapDb: databaseDbList) {
if (mapParam.get("db").toString().equals(mapDb.get("db").toString())) {
flag = true;
}
}
if (!flag) {
databaseDbList.add(mapParam);
}
}
submitTestInstruction.setDatabase(JSON.toJSONString(databaseDbList));
// 多人修改时,处理备注
String scopeParam = submitTestInstruction.getScope();
String scopeDb = submitTestInstructionDb.getScope();
submitTestInstruction.setScope(scopeDb + "\n" + scopeParam);
}
submitTestInstruction.setUpdateTime(null);
instructionService.saveOrUpdate(submitTestInstruction);
return JsonResult.buildSuccessResult("更新成功!");
} }
/** /**
......
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