Browse Source

feat: 新增数据时避免外部设置id

master_tdsql
hxh 1 year ago
parent
commit
87b82dcbff
  1. 1
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfAnimalPlanService.java
  2. 1
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfAnimalRecordService.java
  3. 1
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingService.java
  4. 44
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfPlanService.java
  5. 245
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfRecordService.java
  6. 1
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhPlanService.java
  7. 1
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhRecordService.java
  8. 1
      shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingService.java
  9. 244
      shuili-system/src/main/java/com/kms/yxgh/sz/service/SzPlanService.java
  10. 1
      shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhPlanService.java
  11. 1
      shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhRecordService.java

1
shuili-system/src/main/java/com/kms/yxgh/df/service/DfAnimalPlanService.java

@ -72,6 +72,7 @@ public class DfAnimalPlanService extends BaseService<DfAnimalPlanMapper, DfAnima
public DfAnimalPlanDto add(DfAnimalPlanDto dto) {
DfAnimalPlan dfPlan = BeanCopyUtils.copy(dto, DfAnimalPlan.class);
if (dfPlan != null) {
dfPlan.setId(null);
if (checkNameDistinct(dfPlan.getId(), dfPlan.getName())) {
dfPlan.setOtherConfig(JSON.toJSONString(dto.getOtherConfig()));
getBaseMapper().insert(dfPlan);

1
shuili-system/src/main/java/com/kms/yxgh/df/service/DfAnimalRecordService.java

@ -65,6 +65,7 @@ public class DfAnimalRecordService extends BaseService<DfAnimalRecordMapper, DfA
public DfAnimalRecordDto add(DfAnimalRecordDto dto) {
DfAnimalRecord dfAnimalRecord = BeanCopyUtils.copy(dto, DfAnimalRecord.class);
if (dfAnimalRecord != null) {
dfAnimalRecord.setId(null);
if (!existRecord(dto.getPlanId())) {
getBaseMapper().insert(dfAnimalRecord);
dto.setId(dfAnimalRecord.getId());

1
shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingService.java

@ -72,6 +72,7 @@ public class DfCheckingService extends BaseService<DfCheckingMapper, DfChecking>
public DfCheckingDetailDto add(DfCheckingDetailDto dto) {
DfChecking checking = BeanCopyUtils.copy(dto, DfChecking.class);
if (checking != null) {
checking.setId(null);
if (checkNameDistinct(checking.getId(), checking.getName())) {
getBaseMapper().insert(checking);
String id = checking.getId();

44
shuili-system/src/main/java/com/kms/yxgh/df/service/DfPlanService.java

@ -8,7 +8,6 @@ import com.kms.yxgh.base.DfException;
import com.kms.yxgh.df.domain.DfPlan;
import com.kms.yxgh.df.domain.DfPlanOperator;
import com.kms.yxgh.df.domain.DfPoint;
import com.kms.yxgh.df.dto.DfAnimalPlanDto;
import com.kms.yxgh.df.dto.DfPlanDetailDto;
import com.kms.yxgh.df.dto.DfPlanDetailDto.OperatorDto;
import com.kms.yxgh.df.dto.DfPointDto;
@ -36,34 +35,35 @@ import java.util.function.Consumer;
@AllArgsConstructor
public class DfPlanService extends BaseService<DfPlanMapper, DfPlan> {
private final DfPlanOperatorMapper dfPlanOperatorMapper;
private final DfPointMapper dfPointMapper;
public DfPlanDetailDto getDetailById(String id) {
DfPlan dfPlan = this.getById(id);
DfPlanDetailDto dto = BeanCopyUtils.copy(dfPlan, DfPlanDetailDto.class);
if (dto != null) {
dto.setOtherConfig(JSON.parseObject(dfPlan.getOtherConfig()));
Wrapper<DfPlanOperator> wp = Wrappers.<DfPlanOperator>lambdaQuery()
.select(DfPlanOperator::getId, DfPlanOperator::getOperatorUid,
DfPlanOperator::getOperatorName)
.eq(DfPlanOperator::getPlanId, id);
dto.setOperators(StreamUtils.toList(dfPlanOperatorMapper.selectList(wp), (o) -> {
OperatorDto itemDto = new OperatorDto();
itemDto.setId(o.getId());
itemDto.setUid(o.getOperatorUid());
itemDto.setName(o.getOperatorName());
return itemDto;
}));
private final DfPlanOperatorMapper dfPlanOperatorMapper;
private final DfPointMapper dfPointMapper;
public DfPlanDetailDto getDetailById(String id) {
DfPlan dfPlan = this.getById(id);
DfPlanDetailDto dto = BeanCopyUtils.copy(dfPlan, DfPlanDetailDto.class);
if (dto != null) {
dto.setOtherConfig(JSON.parseObject(dfPlan.getOtherConfig()));
Wrapper<DfPlanOperator> wp = Wrappers.<DfPlanOperator>lambdaQuery()
.select(DfPlanOperator::getId, DfPlanOperator::getOperatorUid,
DfPlanOperator::getOperatorName)
.eq(DfPlanOperator::getPlanId, id);
dto.setOperators(StreamUtils.toList(dfPlanOperatorMapper.selectList(wp), (o) -> {
OperatorDto itemDto = new OperatorDto();
itemDto.setId(o.getId());
itemDto.setUid(o.getOperatorUid());
itemDto.setName(o.getOperatorName());
return itemDto;
}));
}
return dto;
}
return dto;
}
@Transactional(rollbackFor = Exception.class)
public DfPlanDetailDto add(DfPlanDetailDto dto) {
DfPlan dfPlan = BeanCopyUtils.copy(dto, DfPlan.class);
if (dfPlan != null) {
dfPlan.setId(null);
if (checkNameDistinct(dfPlan.getId(), dfPlan.getName())) {
dfPlan.setOtherConfig(JSON.toJSONString(dto.getOtherConfig()));
getBaseMapper().insert(dfPlan);

245
shuili-system/src/main/java/com/kms/yxgh/df/service/DfRecordService.java

@ -1,7 +1,5 @@
package com.kms.yxgh.df.service;
import static com.kms.yxgh.df.service.DfCheckingService.PART_SEPARATOR;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -13,12 +11,8 @@ import com.kms.yxgh.base.enums.CheckingStatus;
import com.kms.yxgh.base.enums.RecordStatus;
import com.kms.yxgh.df.domain.DfRecord;
import com.kms.yxgh.df.domain.DfRecordItem;
import com.kms.yxgh.df.dto.DfCheckingDetailDto;
import com.kms.yxgh.df.dto.DfPlanDetailDto;
import com.kms.yxgh.df.dto.DfRecordDetailDto;
import com.kms.yxgh.df.dto.*;
import com.kms.yxgh.df.dto.DfRecordDetailDto.DfRecordItemDto;
import com.kms.yxgh.df.dto.DfRecordSearchDto;
import com.kms.yxgh.df.dto.StartPlan;
import com.kms.yxgh.df.mapper.DfRecordItemMapper;
import com.kms.yxgh.df.mapper.DfRecordMapper;
import com.kms.yxgh.util.BeanCopyUtils;
@ -28,17 +22,15 @@ import com.shuili.common.core.domain.entity.SysUser;
import com.shuili.common.core.service.BaseService;
import com.shuili.common.utils.DateUtils;
import com.shuili.common.utils.StringUtils;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
import static com.kms.yxgh.df.service.DfCheckingService.PART_SEPARATOR;
/**
* 堤防巡视检查记录Service接口
*
@ -49,130 +41,131 @@ import org.springframework.transaction.annotation.Transactional;
@AllArgsConstructor
public class DfRecordService extends BaseService<DfRecordMapper, DfRecord> {
private final DfRecordItemMapper dfRecordItemMapper;
private final DfCheckingService dfCheckingService;
private final DfPlanService dfPlanService;
private final SysUserService userService;
private final DfRecordItemMapper dfRecordItemMapper;
private final DfCheckingService dfCheckingService;
private final DfPlanService dfPlanService;
private final SysUserService userService;
public IPage<DfRecordSearchDto> search(SearchParam<DfRecord> sp) {
IPage<DfRecord> page = selectPage(sp);
if (CollectionUtil.isNotEmpty(page.getRecords())) {
List<String> ids = page.getRecords().stream().map(DfRecord::getId)
.collect(Collectors.toList());
Wrapper<DfRecordItem> wp = Wrappers.<DfRecordItem>lambdaQuery()
.in(DfRecordItem::getRecordId, ids)
.eq(DfRecordItem::getStatus, CheckingStatus.ABNORMAL.getValue());
Map<String, List<DfRecordItem>> items = Optional.ofNullable(dfRecordItemMapper.selectList(wp))
.map(list -> list.stream().collect(
Collectors.groupingBy(DfRecordItem::getRecordId, Collectors.toList())))
.orElseGet(Collections::emptyMap);
public IPage<DfRecordSearchDto> search(SearchParam<DfRecord> sp) {
IPage<DfRecord> page = selectPage(sp);
if (CollectionUtil.isNotEmpty(page.getRecords())) {
List<String> ids = page.getRecords().stream().map(DfRecord::getId)
.collect(Collectors.toList());
Wrapper<DfRecordItem> wp = Wrappers.<DfRecordItem>lambdaQuery()
.in(DfRecordItem::getRecordId, ids)
.eq(DfRecordItem::getStatus, CheckingStatus.ABNORMAL.getValue());
Map<String, List<DfRecordItem>> items = Optional.ofNullable(dfRecordItemMapper.selectList(wp))
.map(list -> list.stream().collect(
Collectors.groupingBy(DfRecordItem::getRecordId, Collectors.toList())))
.orElseGet(Collections::emptyMap);
List<DfRecordSearchDto> records = page.getRecords().stream().map(r -> {
DfRecordSearchDto dto = BeanCopyUtils.copy(r, DfRecordSearchDto
.class);
if (dto != null) {
dto.setParts(items.getOrDefault(r.getId(), Collections.emptyList())
.stream().map(item -> {
List<String> parts = Arrays.stream(item.getParts().split(PART_SEPARATOR))
.sorted(Comparator.comparingInt(String::length)).collect(Collectors.toList());
return parts.get(parts.size() - 1);
}).collect(Collectors.toList()));
dto.setOperatorName(Optional.ofNullable(userService.getWithRedis(r.getCreateUid())).map(
SysUser::getNickName).orElse(""));
List<DfRecordSearchDto> records = page.getRecords().stream().map(r -> {
DfRecordSearchDto dto = BeanCopyUtils.copy(r, DfRecordSearchDto
.class);
if (dto != null) {
dto.setParts(items.getOrDefault(r.getId(), Collections.emptyList())
.stream().map(item -> {
List<String> parts = Arrays.stream(item.getParts().split(PART_SEPARATOR))
.sorted(Comparator.comparingInt(String::length)).collect(Collectors.toList());
return parts.get(parts.size() - 1);
}).collect(Collectors.toList()));
dto.setOperatorName(Optional.ofNullable(userService.getWithRedis(r.getCreateUid())).map(
SysUser::getNickName).orElse(""));
}
return dto;
}).collect(Collectors.toList());
Page<DfRecordSearchDto> recordSearchDtoPage = new Page<>(page.getCurrent(), page.getSize(),
page.getTotal());
recordSearchDtoPage.setRecords(records);
return recordSearchDtoPage;
} else {
return new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
}
return dto;
}).collect(Collectors.toList());
Page<DfRecordSearchDto> recordSearchDtoPage = new Page<>(page.getCurrent(), page.getSize(),
page.getTotal());
recordSearchDtoPage.setRecords(records);
return recordSearchDtoPage;
} else {
return new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
}
}
@Transactional(rollbackFor = Exception.class)
public DfRecordDetailDto start(StartPlan startPlan) {
DfPlanDetailDto planDetailDto = dfPlanService.getDetailById(startPlan.getPlanId());
if (planDetailDto != null) {
DfCheckingDetailDto checkingDetailDto = dfCheckingService.getDetailById(
planDetailDto.getXcId());
if (checkingDetailDto != null) {
DfRecord record = new DfRecord();
record.setPlanId(startPlan.getPlanId());
record.setName(planDetailDto.getName() + DateUtils.getTime());
record.setStatus(RecordStatus.CHECKING.getValue());
getBaseMapper().insert(record);
String id = record.getId();
if (CollectionUtil.isNotEmpty(checkingDetailDto.getItems())) {
checkingDetailDto.getItems().forEach(o -> {
DfRecordItem item = new DfRecordItem();
item.setRecordId(id);
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
item.setStatus(CheckingStatus.NORMAL.getValue());
item.setProblem("");
dfRecordItemMapper.insert(item);
});
@Transactional(rollbackFor = Exception.class)
public DfRecordDetailDto start(StartPlan startPlan) {
DfPlanDetailDto planDetailDto = dfPlanService.getDetailById(startPlan.getPlanId());
if (planDetailDto != null) {
planDetailDto.setId(null);
DfCheckingDetailDto checkingDetailDto = dfCheckingService.getDetailById(
planDetailDto.getXcId());
if (checkingDetailDto != null) {
DfRecord record = new DfRecord();
record.setPlanId(startPlan.getPlanId());
record.setName(planDetailDto.getName() + DateUtils.getTime());
record.setStatus(RecordStatus.CHECKING.getValue());
getBaseMapper().insert(record);
String id = record.getId();
if (CollectionUtil.isNotEmpty(checkingDetailDto.getItems())) {
checkingDetailDto.getItems().forEach(o -> {
DfRecordItem item = new DfRecordItem();
item.setRecordId(id);
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
item.setStatus(CheckingStatus.NORMAL.getValue());
item.setProblem("");
dfRecordItemMapper.insert(item);
});
}
return this.getDetailById(id);
} else {
throw new DfException("查询巡查检查项数据异常");
}
}
return this.getDetailById(id);
} else {
throw new DfException("查询巡查检查项数据异常");
}
throw new DfException("查询巡查计划");
}
throw new DfException("查询巡查计划");
}
public DfRecordDetailDto getDetailById(String id) {
DfRecord record = this.getBaseMapper().selectById(id);
if (record != null) {
DfRecordDetailDto dto = BeanCopyUtils.copy(record, DfRecordDetailDto.class);
Wrapper<DfRecordItem> wp = Wrappers.<DfRecordItem>lambdaQuery()
.eq(DfRecordItem::getRecordId, id);
List<DfRecordItem> items = dfRecordItemMapper.selectList(wp);
if (CollectionUtil.isNotEmpty(items) && dto != null) {
dto.setItems(StreamUtils.toList(items, r -> {
DfRecordItemDto itemDto = BeanCopyUtils.copy(r, DfRecordItemDto.class);
if (itemDto != null) {
itemDto.setParts(Arrays.stream(StringUtils.split(r.getParts(), PART_SEPARATOR))
.sorted(Comparator.comparingInt(String::length)).collect(Collectors.toList()));
}
return itemDto;
}));
}
return dto;
public DfRecordDetailDto getDetailById(String id) {
DfRecord record = this.getBaseMapper().selectById(id);
if (record != null) {
DfRecordDetailDto dto = BeanCopyUtils.copy(record, DfRecordDetailDto.class);
Wrapper<DfRecordItem> wp = Wrappers.<DfRecordItem>lambdaQuery()
.eq(DfRecordItem::getRecordId, id);
List<DfRecordItem> items = dfRecordItemMapper.selectList(wp);
if (CollectionUtil.isNotEmpty(items) && dto != null) {
dto.setItems(StreamUtils.toList(items, r -> {
DfRecordItemDto itemDto = BeanCopyUtils.copy(r, DfRecordItemDto.class);
if (itemDto != null) {
itemDto.setParts(Arrays.stream(StringUtils.split(r.getParts(), PART_SEPARATOR))
.sorted(Comparator.comparingInt(String::length)).collect(Collectors.toList()));
}
return itemDto;
}));
}
return dto;
}
return null;
}
return null;
}
@Transactional(rollbackFor = Exception.class)
public DfRecordDetailDto update(DfRecordDetailDto dfRecord) {
if (CollectionUtil.isNotEmpty(dfRecord.getItems())) {
dfRecord.getItems().forEach(o -> {
DfRecordItem item = new DfRecordItem();
item.setRecordId(dfRecord.getId());
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
item.setStatus(o.getStatus());
item.setProblem(o.getProblem());
dfRecordItemMapper.updateById(item);
});
@Transactional(rollbackFor = Exception.class)
public DfRecordDetailDto update(DfRecordDetailDto dfRecord) {
if (CollectionUtil.isNotEmpty(dfRecord.getItems())) {
dfRecord.getItems().forEach(o -> {
DfRecordItem item = new DfRecordItem();
item.setRecordId(dfRecord.getId());
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
item.setStatus(o.getStatus());
item.setProblem(o.getProblem());
dfRecordItemMapper.updateById(item);
});
}
return dfRecord;
}
return dfRecord;
}
@Transactional(rollbackFor = Exception.class)
public Boolean deleteById(String id) {
boolean rt = removeById(id);
if (rt) {
deleteItems(id);
@Transactional(rollbackFor = Exception.class)
public Boolean deleteById(String id) {
boolean rt = removeById(id);
if (rt) {
deleteItems(id);
}
return rt;
}
return rt;
}
private void deleteItems(String id) {
Wrapper<DfRecordItem> wp = Wrappers.<DfRecordItem>lambdaQuery()
.eq(DfRecordItem::getRecordId, id);
dfRecordItemMapper.delete(wp);
}
private void deleteItems(String id) {
Wrapper<DfRecordItem> wp = Wrappers.<DfRecordItem>lambdaQuery()
.eq(DfRecordItem::getRecordId, id);
dfRecordItemMapper.delete(wp);
}
}

1
shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhPlanService.java

@ -32,6 +32,7 @@ public class DfYhPlanService extends BaseService<DfYhPlanMapper, DfYhPlan> {
public DfYhPlanDetailDto add(DfYhPlanDetailDto dto) {
DfYhPlan dfPlan = BeanCopyUtils.copy(dto, DfYhPlan.class);
if (dfPlan != null) {
dfPlan.setId(null);
if (checkNameDistinct(dfPlan.getId(), dfPlan.getName())) {
getBaseMapper().insert(dfPlan);
dto.setId(dfPlan.getId());

1
shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhRecordService.java

@ -58,6 +58,7 @@ public class DfYhRecordService extends BaseService<DfYhRecordMapper, DfYhRecord>
public DfYhRecordDetailDto add(DfYhRecordDetailDto dto) {
DfYhRecord dfYhRecord = BeanCopyUtils.copy(dto, DfYhRecord.class);
if (dfYhRecord != null) {
dfYhRecord.setId(null);
if (!existRecord(dto.getPlanId())) {
getBaseMapper().insert(dfYhRecord);
dto.setId(dfYhRecord.getId());

1
shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingService.java

@ -72,6 +72,7 @@ public class SzCheckingService extends BaseService<SzCheckingMapper, SzChecking>
public SzCheckingDetailDto add(SzCheckingDetailDto dto) {
SzChecking checking = BeanCopyUtils.copy(dto, SzChecking.class);
if (checking != null) {
checking.setId(null);
if (checkNameDistinct(checking.getId(), checking.getName())) {
getBaseMapper().insert(checking);
String id = checking.getId();

244
shuili-system/src/main/java/com/kms/yxgh/sz/service/SzPlanService.java

@ -18,12 +18,13 @@ import com.kms.yxgh.util.BeanCopyUtils;
import com.kms.yxgh.util.StreamUtils;
import com.shuili.common.core.service.BaseService;
import com.shuili.common.utils.StringUtils;
import java.util.List;
import java.util.function.Consumer;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.function.Consumer;
/**
* 水闸巡视检查计划Service接口
*
@ -34,134 +35,135 @@ import org.springframework.transaction.annotation.Transactional;
@AllArgsConstructor
public class SzPlanService extends BaseService<SzPlanMapper, SzPlan> {
private final SzPlanOperatorMapper SzPlanOperatorMapper;
private final SzPointMapper SzPointMapper;
public SzPlanDetailDto getDetailById(String id) {
SzPlan SzPlan = this.getById(id);
SzPlanDetailDto dto = BeanCopyUtils.copy(SzPlan, SzPlanDetailDto.class);
if (dto != null) {
dto.setOtherConfig(JSON.parseObject(SzPlan.getOtherConfig()));
Wrapper<SzPlanOperator> wp = Wrappers.<SzPlanOperator>lambdaQuery()
.select(SzPlanOperator::getId, SzPlanOperator::getOperatorUid,
SzPlanOperator::getOperatorName)
.eq(SzPlanOperator::getPlanId, id);
dto.setOperators(StreamUtils.toList(SzPlanOperatorMapper.selectList(wp), (o) -> {
OperatorDto itemDto = new OperatorDto();
itemDto.setId(o.getId());
itemDto.setUid(o.getOperatorUid());
itemDto.setName(o.getOperatorName());
return itemDto;
}));
private final SzPlanOperatorMapper SzPlanOperatorMapper;
private final SzPointMapper SzPointMapper;
public SzPlanDetailDto getDetailById(String id) {
SzPlan SzPlan = this.getById(id);
SzPlanDetailDto dto = BeanCopyUtils.copy(SzPlan, SzPlanDetailDto.class);
if (dto != null) {
dto.setOtherConfig(JSON.parseObject(SzPlan.getOtherConfig()));
Wrapper<SzPlanOperator> wp = Wrappers.<SzPlanOperator>lambdaQuery()
.select(SzPlanOperator::getId, SzPlanOperator::getOperatorUid,
SzPlanOperator::getOperatorName)
.eq(SzPlanOperator::getPlanId, id);
dto.setOperators(StreamUtils.toList(SzPlanOperatorMapper.selectList(wp), (o) -> {
OperatorDto itemDto = new OperatorDto();
itemDto.setId(o.getId());
itemDto.setUid(o.getOperatorUid());
itemDto.setName(o.getOperatorName());
return itemDto;
}));
}
return dto;
}
return dto;
}
@Transactional(rollbackFor = Exception.class)
public SzPlanDetailDto add(SzPlanDetailDto dto) {
SzPlan SzPlan = BeanCopyUtils.copy(dto, SzPlan.class);
if (SzPlan != null) {
if (checkNameDistinct(SzPlan.getId(), SzPlan.getName())) {
SzPlan.setOtherConfig(JSON.toJSONString(dto.getOtherConfig()));
getBaseMapper().insert(SzPlan);
String id = SzPlan.getId();
if (CollectionUtil.isNotEmpty(dto.getOperators())) {
dto.getOperators().forEach(insertOperator(id));
@Transactional(rollbackFor = Exception.class)
public SzPlanDetailDto add(SzPlanDetailDto dto) {
SzPlan szPlan = BeanCopyUtils.copy(dto, SzPlan.class);
if (szPlan != null) {
szPlan.setId(null);
if (checkNameDistinct(szPlan.getId(), szPlan.getName())) {
szPlan.setOtherConfig(JSON.toJSONString(dto.getOtherConfig()));
getBaseMapper().insert(szPlan);
String id = szPlan.getId();
if (CollectionUtil.isNotEmpty(dto.getOperators())) {
dto.getOperators().forEach(insertOperator(id));
}
return this.getDetailById(id);
} else {
throw new SzException("该名称已存在");
}
}
return this.getDetailById(id);
} else {
throw new SzException("该名称已存在");
}
return null;
}
private Consumer<OperatorDto> insertOperator(String id) {
return (o) -> {
SzPlanOperator item = new SzPlanOperator();
item.setPlanId(id);
item.setOperatorName(o.getName());
item.setOperatorUid(o.getUid());
SzPlanOperatorMapper.insert(item);
};
}
return null;
}
private Consumer<OperatorDto> insertOperator(String id) {
return (o) -> {
SzPlanOperator item = new SzPlanOperator();
item.setPlanId(id);
item.setOperatorName(o.getName());
item.setOperatorUid(o.getUid());
SzPlanOperatorMapper.insert(item);
};
}
@Transactional(rollbackFor = Exception.class)
public SzPlanDetailDto update(SzPlanDetailDto dto) {
if (exist(dto.getId())) {
SzPlan SzPlan = BeanCopyUtils.copy(dto, SzPlan.class);
if (SzPlan != null) {
if (checkNameDistinct(SzPlan.getId(), SzPlan.getName())) {
SzPlan.setOtherConfig(JSON.toJSONString(dto.getOtherConfig()));
getBaseMapper().updateById(SzPlan);
String id = SzPlan.getId();
deleteItems(id);
if (CollectionUtil.isNotEmpty(dto.getOperators())) {
dto.getOperators().forEach(insertOperator(id));
}
return this.getDetailById(id);
} else {
throw new SzException("该名称已存在");
@Transactional(rollbackFor = Exception.class)
public SzPlanDetailDto update(SzPlanDetailDto dto) {
if (exist(dto.getId())) {
SzPlan SzPlan = BeanCopyUtils.copy(dto, SzPlan.class);
if (SzPlan != null) {
if (checkNameDistinct(SzPlan.getId(), SzPlan.getName())) {
SzPlan.setOtherConfig(JSON.toJSONString(dto.getOtherConfig()));
getBaseMapper().updateById(SzPlan);
String id = SzPlan.getId();
deleteItems(id);
if (CollectionUtil.isNotEmpty(dto.getOperators())) {
dto.getOperators().forEach(insertOperator(id));
}
return this.getDetailById(id);
} else {
throw new SzException("该名称已存在");
}
}
}
}
}
throw new SzException("源数据不存在,请确认id值是否正确");
throw new SzException("源数据不存在,请确认id值是否正确");
}
}
@Transactional(rollbackFor = Exception.class)
public Boolean deleteById(String id) {
boolean rt = removeById(id);
if (rt) {
deleteItems(id);
@Transactional(rollbackFor = Exception.class)
public Boolean deleteById(String id) {
boolean rt = removeById(id);
if (rt) {
deleteItems(id);
}
return rt;
}
return rt;
}
@Transactional(rollbackFor = Exception.class)
public Boolean addPoints(String id, List<SzPointDto> points) {
Wrapper<SzPoint> wp = Wrappers.<SzPoint>lambdaQuery()
.eq(SzPoint::getPlanId, id);
SzPointMapper.delete(wp);
if (CollectionUtil.isNotEmpty(points)) {
points.forEach(po -> {
SzPoint point = BeanCopyUtils.copy(po, SzPoint.class);
if (point != null) {
point.setPlanId(id);
SzPointMapper.insert(point);
@Transactional(rollbackFor = Exception.class)
public Boolean addPoints(String id, List<SzPointDto> points) {
Wrapper<SzPoint> wp = Wrappers.<SzPoint>lambdaQuery()
.eq(SzPoint::getPlanId, id);
SzPointMapper.delete(wp);
if (CollectionUtil.isNotEmpty(points)) {
points.forEach(po -> {
SzPoint point = BeanCopyUtils.copy(po, SzPoint.class);
if (point != null) {
point.setPlanId(id);
SzPointMapper.insert(point);
}
});
}
});
return true;
}
public List<SzPointDto> getPoints(String id) {
Wrapper<SzPoint> wp = Wrappers.<SzPoint>lambdaQuery()
.eq(SzPoint::getPlanId, id);
return StreamUtils.toList(SzPointMapper.selectList(wp),
(o) -> BeanCopyUtils.copy(o, SzPointDto.class));
}
private void deleteItems(String id) {
Wrapper<SzPlanOperator> wp = Wrappers.<SzPlanOperator>lambdaQuery()
.eq(SzPlanOperator::getPlanId, id);
SzPlanOperatorMapper.delete(wp);
}
private boolean checkNameDistinct(String id, String name) {
Wrapper<SzPlan> wp = Wrappers.<SzPlan>lambdaQuery()
.eq(SzPlan::getName, name)
.ne(StringUtils.isNotEmpty(id), SzPlan::getId, id);
return this.getBaseMapper().selectCount(wp) <= 0;
}
private boolean exist(String id) {
Wrapper<SzPlan> wp = Wrappers.<SzPlan>lambdaQuery()
.eq(SzPlan::getId, id);
return this.getBaseMapper().selectCount(wp) > 0;
}
return true;
}
public List<SzPointDto> getPoints(String id) {
Wrapper<SzPoint> wp = Wrappers.<SzPoint>lambdaQuery()
.eq(SzPoint::getPlanId, id);
return StreamUtils.toList(SzPointMapper.selectList(wp),
(o) -> BeanCopyUtils.copy(o, SzPointDto.class));
}
private void deleteItems(String id) {
Wrapper<SzPlanOperator> wp = Wrappers.<SzPlanOperator>lambdaQuery()
.eq(SzPlanOperator::getPlanId, id);
SzPlanOperatorMapper.delete(wp);
}
private boolean checkNameDistinct(String id, String name) {
Wrapper<SzPlan> wp = Wrappers.<SzPlan>lambdaQuery()
.eq(SzPlan::getName, name)
.ne(StringUtils.isNotEmpty(id), SzPlan::getId, id);
return this.getBaseMapper().selectCount(wp) <= 0;
}
private boolean exist(String id) {
Wrapper<SzPlan> wp = Wrappers.<SzPlan>lambdaQuery()
.eq(SzPlan::getId, id);
return this.getBaseMapper().selectCount(wp) > 0;
}
}

1
shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhPlanService.java

@ -32,6 +32,7 @@ public class SzYhPlanService extends BaseService<SzYhPlanMapper, SzYhPlan> {
public SzYhPlanDetailDto add(SzYhPlanDetailDto dto) {
SzYhPlan szPlan = BeanCopyUtils.copy(dto, SzYhPlan.class);
if (szPlan != null) {
szPlan.setId(null);
if (checkNameDistinct(szPlan.getId(), szPlan.getName())) {
getBaseMapper().insert(szPlan);
dto.setId(szPlan.getId());

1
shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhRecordService.java

@ -36,6 +36,7 @@ public class SzYhRecordService extends BaseService<SzYhRecordMapper, SzYhRecord>
public SzYhRecordDetailDto getDetailById(String id) {
SzYhRecord record = this.getBaseMapper().selectById(id);
if (record != null) {
record.setId(null);
SzYhRecordDetailDto dto = BeanCopyUtils.copy(record, SzYhRecordDetailDto.class);
Wrapper<SzYhOperator> wp = Wrappers.<SzYhOperator>lambdaQuery()
.eq(SzYhOperator::getRecordId, id);

Loading…
Cancel
Save