Browse Source

fix: 完善校验

master_tdsql
hxh 1 year ago
parent
commit
212996a791
  1. 226
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingService.java
  2. 2
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfRecordService.java
  3. 226
      shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingService.java
  4. 2
      shuili-system/src/main/java/com/kms/yxgh/sz/service/SzRecordService.java

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

@ -4,24 +4,27 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.kms.yxgh.base.DfException;
import com.kms.yxgh.df.dto.DfCheckingDetailDto;
import com.kms.yxgh.df.dto.DfCheckingDetailDto.DfCheckingItemDto;
import com.kms.yxgh.df.domain.DfChecking;
import com.kms.yxgh.df.domain.DfCheckingItem;
import com.kms.yxgh.df.domain.DfPlan;
import com.kms.yxgh.df.dto.DfCheckingDetailDto;
import com.kms.yxgh.df.dto.DfCheckingDetailDto.DfCheckingItemDto;
import com.kms.yxgh.df.mapper.DfCheckingItemMapper;
import com.kms.yxgh.df.mapper.DfCheckingMapper;
import com.kms.yxgh.df.mapper.DfPlanMapper;
import com.kms.yxgh.util.BeanCopyUtils;
import com.kms.yxgh.util.StreamUtils;
import com.shuili.common.core.domain.SearchParam;
import com.shuili.common.core.service.BaseService;
import com.shuili.common.utils.StringUtils;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* 堤防巡视检查Service接口
@ -33,117 +36,126 @@ import org.springframework.transaction.annotation.Transactional;
@AllArgsConstructor
public class DfCheckingService extends BaseService<DfCheckingMapper, DfChecking> {
private final DfCheckingItemMapper dfCheckingItemMapper;
public final static String PART_SEPARATOR = ":";
public List<DfChecking> selectSimple(SearchParam<DfChecking> sp) {
Wrapper<DfChecking> wp = Wrappers.<DfChecking>lambdaQuery()
.select(DfChecking::getId, DfChecking::getName)
.eq(DfChecking::getType, sp.getData().getType());
return getBaseMapper().selectList(wp);
}
public DfCheckingDetailDto getDetailById(String id) {
DfChecking checking = this.getById(id);
DfCheckingDetailDto dto = BeanCopyUtils.copy(checking, DfCheckingDetailDto.class);
if (dto != null) {
Wrapper<DfCheckingItem> wp = Wrappers.<DfCheckingItem>lambdaQuery()
.select(DfCheckingItem::getId, DfCheckingItem::getParts, DfCheckingItem::getContent)
.eq(DfCheckingItem::getXcId, id);
dto.setItems(StreamUtils.toList(dfCheckingItemMapper.selectList(wp), (o) -> {
DfCheckingItemDto itemDto = new DfCheckingItemDto();
itemDto.setContent(o.getContent());
itemDto.setId(o.getId());
itemDto.setParts(Arrays.stream(StringUtils.split(o.getParts(), PART_SEPARATOR))
.sorted(Comparator.comparingInt(String::length)).collect(Collectors.toList()));
return itemDto;
}));
private final DfCheckingItemMapper dfCheckingItemMapper;
private final DfPlanMapper dfPlanMapper;
public final static String PART_SEPARATOR = ":";
public List<DfChecking> selectSimple(SearchParam<DfChecking> sp) {
Wrapper<DfChecking> wp = Wrappers.<DfChecking>lambdaQuery()
.select(DfChecking::getId, DfChecking::getName)
.eq(DfChecking::getType, sp.getData().getType());
return getBaseMapper().selectList(wp);
}
return dto;
}
@Transactional(rollbackFor = Exception.class)
public DfCheckingDetailDto add(DfCheckingDetailDto dto) {
DfChecking checking = BeanCopyUtils.copy(dto, DfChecking.class);
if (checking != null) {
if (checkNameDistinct(checking.getId(), checking.getName())) {
getBaseMapper().insert(checking);
String id = checking.getId();
if (CollectionUtil.isNotEmpty(dto.getItems())) {
dto.getItems().forEach((o) -> {
DfCheckingItem item = new DfCheckingItem();
item.setXcId(id);
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
dfCheckingItemMapper.insert(item);
});
public DfCheckingDetailDto getDetailById(String id) {
DfChecking checking = this.getById(id);
DfCheckingDetailDto dto = BeanCopyUtils.copy(checking, DfCheckingDetailDto.class);
if (dto != null) {
Wrapper<DfCheckingItem> wp = Wrappers.<DfCheckingItem>lambdaQuery()
.select(DfCheckingItem::getId, DfCheckingItem::getParts, DfCheckingItem::getContent)
.eq(DfCheckingItem::getXcId, id);
dto.setItems(StreamUtils.toList(dfCheckingItemMapper.selectList(wp), (o) -> {
DfCheckingItemDto itemDto = new DfCheckingItemDto();
itemDto.setContent(o.getContent());
itemDto.setId(o.getId());
itemDto.setParts(Arrays.stream(StringUtils.split(o.getParts(), PART_SEPARATOR))
.sorted(Comparator.comparingInt(String::length)).collect(Collectors.toList()));
return itemDto;
}));
}
return this.getDetailById(id);
} else {
throw new DfException("该名称已存在");
}
return dto;
}
@Transactional(rollbackFor = Exception.class)
public DfCheckingDetailDto add(DfCheckingDetailDto dto) {
DfChecking checking = BeanCopyUtils.copy(dto, DfChecking.class);
if (checking != null) {
if (checkNameDistinct(checking.getId(), checking.getName())) {
getBaseMapper().insert(checking);
String id = checking.getId();
if (CollectionUtil.isNotEmpty(dto.getItems())) {
dto.getItems().forEach((o) -> {
DfCheckingItem item = new DfCheckingItem();
item.setXcId(id);
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
dfCheckingItemMapper.insert(item);
});
}
return this.getDetailById(id);
} else {
throw new DfException("该名称已存在");
}
}
return null;
}
@Transactional(rollbackFor = Exception.class)
public DfCheckingDetailDto update(DfCheckingDetailDto dto) {
if (exist(dto.getId())) {
DfChecking checking = BeanCopyUtils.copy(dto, DfChecking.class);
if (checking != null) {
if (checkNameDistinct(checking.getId(), checking.getName())) {
getBaseMapper().updateById(checking);
String id = checking.getId();
deleteItems(id);
if (CollectionUtil.isNotEmpty(dto.getItems())) {
dto.getItems().forEach((o) -> {
DfCheckingItem item = new DfCheckingItem();
item.setXcId(id);
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
dfCheckingItemMapper.insert(item);
});
}
return this.getDetailById(id);
} else {
throw new DfException("该名称已存在");
}
}
}
throw new DfException("源数据不存在,请确认id值是否正确");
}
return null;
}
@Transactional(rollbackFor = Exception.class)
public DfCheckingDetailDto update(DfCheckingDetailDto dto) {
if (exist(dto.getId())) {
DfChecking checking = BeanCopyUtils.copy(dto, DfChecking.class);
if (checking != null) {
if (checkNameDistinct(checking.getId(), checking.getName())) {
getBaseMapper().updateById(checking);
String id = checking.getId();
deleteItems(id);
if (CollectionUtil.isNotEmpty(dto.getItems())) {
dto.getItems().forEach((o) -> {
DfCheckingItem item = new DfCheckingItem();
item.setXcId(id);
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
dfCheckingItemMapper.insert(item);
});
}
return this.getDetailById(id);
} else {
throw new DfException("该名称已存在");
@Transactional(rollbackFor = Exception.class)
public Boolean deleteById(String id) {
if (isUsed(id)) {
throw new DfException("已被巡查计划,不能删除!");
}
}
boolean rt = removeById(id);
if (rt) {
deleteItems(id);
}
return rt;
}
throw new DfException("源数据不存在,请确认id值是否正确");
}
private boolean isUsed(String id) {
return dfPlanMapper.selectCount(Wrappers.<DfPlan>lambdaQuery()
.eq(DfPlan::getXcId, id)) > 0;
}
private void deleteItems(String id) {
Wrapper<DfCheckingItem> wp = Wrappers.<DfCheckingItem>lambdaQuery()
.eq(DfCheckingItem::getXcId, id);
dfCheckingItemMapper.delete(wp);
}
private boolean checkNameDistinct(String id, String name) {
Wrapper<DfChecking> wp = Wrappers.<DfChecking>lambdaQuery()
.eq(DfChecking::getName, name)
.ne(StringUtils.isNotEmpty(id), DfChecking::getId, id);
return this.getBaseMapper().selectCount(wp) <= 0;
}
@Transactional(rollbackFor = Exception.class)
public Boolean deleteById(String id) {
boolean rt = removeById(id);
if (rt) {
deleteItems(id);
private boolean exist(String id) {
Wrapper<DfChecking> wp = Wrappers.<DfChecking>lambdaQuery()
.eq(DfChecking::getId, id);
return this.getBaseMapper().selectCount(wp) > 0;
}
return rt;
}
private void deleteItems(String id) {
Wrapper<DfCheckingItem> wp = Wrappers.<DfCheckingItem>lambdaQuery()
.eq(DfCheckingItem::getXcId, id);
dfCheckingItemMapper.delete(wp);
}
private boolean checkNameDistinct(String id, String name) {
Wrapper<DfChecking> wp = Wrappers.<DfChecking>lambdaQuery()
.eq(DfChecking::getName, name)
.ne(StringUtils.isNotEmpty(id), DfChecking::getId, id);
return this.getBaseMapper().selectCount(wp) <= 0;
}
private boolean exist(String id) {
Wrapper<DfChecking> wp = Wrappers.<DfChecking>lambdaQuery()
.eq(DfChecking::getId, id);
return this.getBaseMapper().selectCount(wp) > 0;
}
}

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

@ -100,7 +100,7 @@ public class DfRecordService extends BaseService<DfRecordMapper, DfRecord> {
if (checkingDetailDto != null) {
DfRecord record = new DfRecord();
record.setPlanId(startPlan.getPlanId());
record.setName(planDetailDto.getName() + DateUtils.dateTimeNow());
record.setName(planDetailDto.getName() + DateUtils.getTime());
record.setStatus(RecordStatus.CHECKING.getValue());
getBaseMapper().insert(record);
String id = record.getId();

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

@ -4,24 +4,27 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.kms.yxgh.base.SzException;
import com.kms.yxgh.sz.dto.SzCheckingDetailDto.SzCheckingItemDto;
import com.kms.yxgh.sz.dto.SzCheckingDetailDto;
import com.kms.yxgh.sz.domain.SzChecking;
import com.kms.yxgh.sz.domain.SzCheckingItem;
import com.kms.yxgh.sz.domain.SzPlan;
import com.kms.yxgh.sz.dto.SzCheckingDetailDto;
import com.kms.yxgh.sz.dto.SzCheckingDetailDto.SzCheckingItemDto;
import com.kms.yxgh.sz.mapper.SzCheckingItemMapper;
import com.kms.yxgh.sz.mapper.SzCheckingMapper;
import com.kms.yxgh.sz.mapper.SzPlanMapper;
import com.kms.yxgh.util.BeanCopyUtils;
import com.kms.yxgh.util.StreamUtils;
import com.shuili.common.core.domain.SearchParam;
import com.shuili.common.core.service.BaseService;
import com.shuili.common.utils.StringUtils;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* 水闸巡视检查Service接口
@ -33,117 +36,126 @@ import org.springframework.transaction.annotation.Transactional;
@AllArgsConstructor
public class SzCheckingService extends BaseService<SzCheckingMapper, SzChecking> {
private final SzCheckingItemMapper SzCheckingItemMapper;
public final static String PART_SEPARATOR = ":";
public List<SzChecking> selectSimple(SearchParam<SzChecking> sp) {
Wrapper<SzChecking> wp = Wrappers.<SzChecking>lambdaQuery()
.select(SzChecking::getId, SzChecking::getName)
.eq(SzChecking::getType, sp.getData().getType());
return getBaseMapper().selectList(wp);
}
public SzCheckingDetailDto getDetailById(String id) {
SzChecking checking = this.getById(id);
SzCheckingDetailDto dto = BeanCopyUtils.copy(checking, SzCheckingDetailDto.class);
if (dto != null) {
Wrapper<SzCheckingItem> wp = Wrappers.<SzCheckingItem>lambdaQuery()
.select(SzCheckingItem::getId, SzCheckingItem::getParts, SzCheckingItem::getContent)
.eq(SzCheckingItem::getXcId, id);
dto.setItems(StreamUtils.toList(SzCheckingItemMapper.selectList(wp), (o) -> {
SzCheckingItemDto itemDto = new SzCheckingItemDto();
itemDto.setContent(o.getContent());
itemDto.setId(o.getId());
itemDto.setParts(Arrays.stream(StringUtils.split(o.getParts(), PART_SEPARATOR))
.sorted(Comparator.comparingInt(String::length)).collect(Collectors.toList()));
return itemDto;
}));
private final SzCheckingItemMapper SzCheckingItemMapper;
private final SzPlanMapper szPlanMapper;
public final static String PART_SEPARATOR = ":";
public List<SzChecking> selectSimple(SearchParam<SzChecking> sp) {
Wrapper<SzChecking> wp = Wrappers.<SzChecking>lambdaQuery()
.select(SzChecking::getId, SzChecking::getName)
.eq(SzChecking::getType, sp.getData().getType());
return getBaseMapper().selectList(wp);
}
return dto;
}
@Transactional(rollbackFor = Exception.class)
public SzCheckingDetailDto add(SzCheckingDetailDto dto) {
SzChecking checking = BeanCopyUtils.copy(dto, SzChecking.class);
if (checking != null) {
if (checkNameDistinct(checking.getId(), checking.getName())) {
getBaseMapper().insert(checking);
String id = checking.getId();
if (CollectionUtil.isNotEmpty(dto.getItems())) {
dto.getItems().forEach((o) -> {
SzCheckingItem item = new SzCheckingItem();
item.setXcId(id);
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
SzCheckingItemMapper.insert(item);
});
public SzCheckingDetailDto getDetailById(String id) {
SzChecking checking = this.getById(id);
SzCheckingDetailDto dto = BeanCopyUtils.copy(checking, SzCheckingDetailDto.class);
if (dto != null) {
Wrapper<SzCheckingItem> wp = Wrappers.<SzCheckingItem>lambdaQuery()
.select(SzCheckingItem::getId, SzCheckingItem::getParts, SzCheckingItem::getContent)
.eq(SzCheckingItem::getXcId, id);
dto.setItems(StreamUtils.toList(SzCheckingItemMapper.selectList(wp), (o) -> {
SzCheckingItemDto itemDto = new SzCheckingItemDto();
itemDto.setContent(o.getContent());
itemDto.setId(o.getId());
itemDto.setParts(Arrays.stream(StringUtils.split(o.getParts(), PART_SEPARATOR))
.sorted(Comparator.comparingInt(String::length)).collect(Collectors.toList()));
return itemDto;
}));
}
return this.getDetailById(id);
} else {
throw new SzException("该名称已存在");
}
return dto;
}
@Transactional(rollbackFor = Exception.class)
public SzCheckingDetailDto add(SzCheckingDetailDto dto) {
SzChecking checking = BeanCopyUtils.copy(dto, SzChecking.class);
if (checking != null) {
if (checkNameDistinct(checking.getId(), checking.getName())) {
getBaseMapper().insert(checking);
String id = checking.getId();
if (CollectionUtil.isNotEmpty(dto.getItems())) {
dto.getItems().forEach((o) -> {
SzCheckingItem item = new SzCheckingItem();
item.setXcId(id);
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
SzCheckingItemMapper.insert(item);
});
}
return this.getDetailById(id);
} else {
throw new SzException("该名称已存在");
}
}
return null;
}
@Transactional(rollbackFor = Exception.class)
public SzCheckingDetailDto update(SzCheckingDetailDto dto) {
if (exist(dto.getId())) {
SzChecking checking = BeanCopyUtils.copy(dto, SzChecking.class);
if (checking != null) {
if (checkNameDistinct(checking.getId(), checking.getName())) {
getBaseMapper().updateById(checking);
String id = checking.getId();
deleteItems(id);
if (CollectionUtil.isNotEmpty(dto.getItems())) {
dto.getItems().forEach((o) -> {
SzCheckingItem item = new SzCheckingItem();
item.setXcId(id);
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
SzCheckingItemMapper.insert(item);
});
}
return this.getDetailById(id);
} else {
throw new SzException("该名称已存在");
}
}
}
throw new SzException("源数据不存在,请确认id值是否正确");
}
return null;
}
@Transactional(rollbackFor = Exception.class)
public SzCheckingDetailDto update(SzCheckingDetailDto dto) {
if (exist(dto.getId())) {
SzChecking checking = BeanCopyUtils.copy(dto, SzChecking.class);
if (checking != null) {
if (checkNameDistinct(checking.getId(), checking.getName())) {
getBaseMapper().updateById(checking);
String id = checking.getId();
deleteItems(id);
if (CollectionUtil.isNotEmpty(dto.getItems())) {
dto.getItems().forEach((o) -> {
SzCheckingItem item = new SzCheckingItem();
item.setXcId(id);
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
SzCheckingItemMapper.insert(item);
});
}
return this.getDetailById(id);
} else {
throw new SzException("该名称已存在");
@Transactional(rollbackFor = Exception.class)
public Boolean deleteById(String id) {
if (isUsed(id)) {
throw new SzException("已被巡查计划,不能删除!");
}
}
boolean rt = removeById(id);
if (rt) {
deleteItems(id);
}
return rt;
}
throw new SzException("源数据不存在,请确认id值是否正确");
}
private boolean isUsed(String id) {
return szPlanMapper.selectCount(Wrappers.<SzPlan>lambdaQuery()
.eq(SzPlan::getXcId, id)) > 0;
}
private void deleteItems(String id) {
Wrapper<SzCheckingItem> wp = Wrappers.<SzCheckingItem>lambdaQuery()
.eq(SzCheckingItem::getXcId, id);
SzCheckingItemMapper.delete(wp);
}
private boolean checkNameDistinct(String id, String name) {
Wrapper<SzChecking> wp = Wrappers.<SzChecking>lambdaQuery()
.eq(SzChecking::getName, name)
.ne(StringUtils.isNotEmpty(id), SzChecking::getId, id);
return this.getBaseMapper().selectCount(wp) <= 0;
}
@Transactional(rollbackFor = Exception.class)
public Boolean deleteById(String id) {
boolean rt = removeById(id);
if (rt) {
deleteItems(id);
private boolean exist(String id) {
Wrapper<SzChecking> wp = Wrappers.<SzChecking>lambdaQuery()
.eq(SzChecking::getId, id);
return this.getBaseMapper().selectCount(wp) > 0;
}
return rt;
}
private void deleteItems(String id) {
Wrapper<SzCheckingItem> wp = Wrappers.<SzCheckingItem>lambdaQuery()
.eq(SzCheckingItem::getXcId, id);
SzCheckingItemMapper.delete(wp);
}
private boolean checkNameDistinct(String id, String name) {
Wrapper<SzChecking> wp = Wrappers.<SzChecking>lambdaQuery()
.eq(SzChecking::getName, name)
.ne(StringUtils.isNotEmpty(id), SzChecking::getId, id);
return this.getBaseMapper().selectCount(wp) <= 0;
}
private boolean exist(String id) {
Wrapper<SzChecking> wp = Wrappers.<SzChecking>lambdaQuery()
.eq(SzChecking::getId, id);
return this.getBaseMapper().selectCount(wp) > 0;
}
}

2
shuili-system/src/main/java/com/kms/yxgh/sz/service/SzRecordService.java

@ -101,7 +101,7 @@ public class SzRecordService extends BaseService<SzRecordMapper, SzRecord> {
if (checkingDetailDto != null) {
SzRecord record = new SzRecord();
record.setPlanId(startPlan.getPlanId());
record.setName(planDetailDto.getName() + DateUtils.dateTimeNow());
record.setName(planDetailDto.getName() + DateUtils.getTime());
record.setStatus(RecordStatus.CHECKING.getValue());
getBaseMapper().insert(record);
String id = record.getId();

Loading…
Cancel
Save