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

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