生成跟新记录时防止事务的影响

This commit is contained in:
wulin 2020-12-15 13:55:15 +08:00
parent ecf2c05c87
commit 56b0188dd9

View File

@ -802,6 +802,7 @@ public class ResultRecordController extends AbstractController {
resultDetails.stream().collect(Collectors.toMap(ResultDetail::getId, Function.identity(), (e, r) -> e)); resultDetails.stream().collect(Collectors.toMap(ResultDetail::getId, Function.identity(), (e, r) -> e));
List<ResultDetail> updateResultDetails = new ArrayList<>(); List<ResultDetail> updateResultDetails = new ArrayList<>();
List<ResultDetail> editResultDetails = new ArrayList<>();//涉及到修改的指标保存方便后面生成修改记录
//获取当前绩效的节点 //获取当前绩效的节点
boolean isSetKeyResult = false; boolean isSetKeyResult = false;
@ -837,11 +838,15 @@ public class ResultRecordController extends AbstractController {
BeanUtils.copyProperties(detailDto, resultDetail); BeanUtils.copyProperties(detailDto, resultDetail);
if(!isSetKeyResult){ if(!isSetKeyResult){
if(resultDetail.getIsDelete() != null && resultDetail.getIsDelete().intValue() == 1){//被删除了 if(resultDetail.getIsDelete() != null && resultDetail.getIsDelete().intValue() == 1){//被删除了
log.info("指标被删除了");
resultDetail.setIsBack(2); resultDetail.setIsBack(2);
resultDetail.setBackId(resultDetail.getId()); resultDetail.setBackId(resultDetail.getId());
updateResultDetails.add(resultDetail); updateResultDetails.add(resultDetail);
editResultDetails.add(resultDetail);
}else if(resultDetail.getId() == null){ }else if(resultDetail.getId() == null){
resultDetail.setIsBack(3);//新增 resultDetail.setIsBack(3);//新增
editResultDetails.add(resultDetail);//插入数据库之后会生成id
log.info("新增指标");
}else { }else {
if(resultDetail.getId() != null && mapDetails.containsKey(resultDetail.getId())){ if(resultDetail.getId() != null && mapDetails.containsKey(resultDetail.getId())){
//这里判断是否有更新或者删除 //这里判断是否有更新或者删除
@ -852,15 +857,18 @@ public class ResultRecordController extends AbstractController {
if(!resultDetail.getTarget().equals(resultDetail1.getTarget())){ if(!resultDetail.getTarget().equals(resultDetail1.getTarget())){
//打上标识 //打上标识
log.info("修改名称");
isUp = true; isUp = true;
} }
if(!resultDetail.getKeyResult().equals(resultDetail1.getKeyResult())){ if(!resultDetail.getKeyResult().equals(resultDetail1.getKeyResult())){
//打上标识 //打上标识
log.info("修改关键结果");
isUp = true; isUp = true;
} }
if(!resultDetail.getCheckWeight().equals(resultDetail1.getCheckWeight())){ if(!resultDetail.getCheckWeight().equals(resultDetail1.getCheckWeight())){
//打上标识 //打上标识
log.info("修改权重");
isUp = true; isUp = true;
} }
if(isUp){ if(isUp){
@ -868,6 +876,7 @@ public class ResultRecordController extends AbstractController {
resultDetail1.setIsBack(2); resultDetail1.setIsBack(2);
resultDetail1.setBackId(resultDetail.getId()); resultDetail1.setBackId(resultDetail.getId());
inserts.add(resultDetail1); inserts.add(resultDetail1);
editResultDetails.add(resultDetail1);//插入数据库之后会生成id
} }
} }
} }
@ -968,11 +977,11 @@ public class ResultRecordController extends AbstractController {
if(dto.getCommentId() != null && dto.getCommentId().intValue() > 0){ if(dto.getCommentId() != null && dto.getCommentId().intValue() > 0){
//修改评论信息 //修改评论信息
updateResultDetails.addAll(resultDetailService.selectNotNoticeResultDetailByRecordId(dto.getId())) ; editResultDetails.addAll(resultDetailService.selectNotNoticeResultDetailByRecordId(dto.getId())) ;
log.info("可能需要写入评论的内容条数{}", updateResultDetails.size()); log.info("可能需要写入评论的内容条数{}", updateResultDetails.size());
//去重 //去重
mapDetails = updateResultDetails.stream().collect(Collectors.toMap(ResultDetail::getId, Function.identity(), (e, r) -> e)); mapDetails = editResultDetails.stream().collect(Collectors.toMap(ResultDetail::getId, Function.identity(), (e, r) -> e));
updateResultDetails = mapDetails.values().stream().collect(Collectors.toList()); editResultDetails = mapDetails.values().stream().collect(Collectors.toList());
if(!isSetKeyResult){ if(!isSetKeyResult){
log.info("实际需要写入评论的内容条数{}", updateResultDetails.size()); log.info("实际需要写入评论的内容条数{}", updateResultDetails.size());
if(updateResultDetails.size() > 0){ if(updateResultDetails.size() > 0){