Browse Source

Merge remote-tracking branch 'origin/release-sy-v1.0.0' into release-sy-v1.0.0

master_tdsql
杜鑫 1 year ago
parent
commit
995fa16993
  1. 3
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfRecordService.java
  2. 248
      shuili-system/src/main/java/com/kms/yxgh/sz/service/SzRecordService.java

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

@ -143,6 +143,7 @@ public class DfRecordService extends BaseService<DfRecordMapper, DfRecord> {
if (CollectionUtil.isNotEmpty(dfRecord.getItems())) {
dfRecord.getItems().forEach(o -> {
DfRecordItem item = new DfRecordItem();
item.setId(o.getId());
item.setRecordId(dfRecord.getId());
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
@ -151,6 +152,8 @@ public class DfRecordService extends BaseService<DfRecordMapper, DfRecord> {
dfRecordItemMapper.updateById(item);
});
}
this.baseMapper.updateById(BeanCopyUtils.copy(dfRecord, DfRecord.class));
return dfRecord;
}

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

@ -1,7 +1,5 @@
package com.kms.yxgh.sz.service;
import static com.kms.yxgh.sz.service.SzCheckingService.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.sz.domain.SzRecord;
import com.kms.yxgh.sz.domain.SzRecordItem;
import com.kms.yxgh.sz.dto.StartPlan;
import com.kms.yxgh.sz.dto.SzCheckingDetailDto;
import com.kms.yxgh.sz.dto.SzPlanDetailDto;
import com.kms.yxgh.sz.dto.SzRecordDetailDto;
import com.kms.yxgh.sz.dto.*;
import com.kms.yxgh.sz.dto.SzRecordDetailDto.SzRecordItemDto;
import com.kms.yxgh.sz.dto.SzRecordSearchDto;
import com.kms.yxgh.sz.mapper.SzRecordItemMapper;
import com.kms.yxgh.sz.mapper.SzRecordMapper;
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.sz.service.SzCheckingService.PART_SEPARATOR;
/**
* 水闸巡视检查记录Service接口
*
@ -49,131 +41,133 @@ import org.springframework.transaction.annotation.Transactional;
@AllArgsConstructor
public class SzRecordService extends BaseService<SzRecordMapper, SzRecord> {
private final SzRecordItemMapper szRecordItemMapper;
private final SzCheckingService szCheckingService;
private final SzPlanService szPlanService;
private final SysUserService userService;
private final SzRecordItemMapper szRecordItemMapper;
private final SzCheckingService szCheckingService;
private final SzPlanService szPlanService;
private final SysUserService userService;
public IPage<SzRecordSearchDto> search(SearchParam<SzRecord> sp) {
IPage<SzRecord> page = selectPage(sp);
if (CollectionUtil.isNotEmpty(page.getRecords())) {
List<String> ids = page.getRecords().stream().map(SzRecord::getId)
.collect(Collectors.toList());
Wrapper<SzRecordItem> wp = Wrappers.<SzRecordItem>lambdaQuery()
.in(SzRecordItem::getRecordId, ids)
.eq(SzRecordItem::getStatus, CheckingStatus.ABNORMAL.getValue());
Map<String, List<SzRecordItem>> items = Optional.ofNullable(szRecordItemMapper.selectList(wp))
.map(list -> list.stream().collect(
Collectors.groupingBy(SzRecordItem::getRecordId, Collectors.toList())))
.orElseGet(Collections::emptyMap);
public IPage<SzRecordSearchDto> search(SearchParam<SzRecord> sp) {
IPage<SzRecord> page = selectPage(sp);
if (CollectionUtil.isNotEmpty(page.getRecords())) {
List<String> ids = page.getRecords().stream().map(SzRecord::getId)
.collect(Collectors.toList());
Wrapper<SzRecordItem> wp = Wrappers.<SzRecordItem>lambdaQuery()
.in(SzRecordItem::getRecordId, ids)
.eq(SzRecordItem::getStatus, CheckingStatus.ABNORMAL.getValue());
Map<String, List<SzRecordItem>> items = Optional.ofNullable(szRecordItemMapper.selectList(wp))
.map(list -> list.stream().collect(
Collectors.groupingBy(SzRecordItem::getRecordId, Collectors.toList())))
.orElseGet(Collections::emptyMap);
List<SzRecordSearchDto> records = page.getRecords().stream().map(r -> {
SzRecordSearchDto dto = BeanCopyUtils.copy(r, SzRecordSearchDto
.class);
if (dto != null) {
dto.setParts(items.getOrDefault(r.getId(), Collections.emptyList())
.stream().map(item -> {
List<String> parts = Arrays.stream(item.getParts().split(
SzCheckingService.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<SzRecordSearchDto> records = page.getRecords().stream().map(r -> {
SzRecordSearchDto dto = BeanCopyUtils.copy(r, SzRecordSearchDto
.class);
if (dto != null) {
dto.setParts(items.getOrDefault(r.getId(), Collections.emptyList())
.stream().map(item -> {
List<String> parts = Arrays.stream(item.getParts().split(
SzCheckingService.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<SzRecordSearchDto> 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<SzRecordSearchDto> 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 SzRecordDetailDto start(StartPlan startPlan) {
SzPlanDetailDto planDetailDto = szPlanService.getDetailById(startPlan.getPlanId());
if (planDetailDto != null) {
SzCheckingDetailDto checkingDetailDto = szCheckingService.getDetailById(
planDetailDto.getXcId());
if (checkingDetailDto != null) {
SzRecord record = new SzRecord();
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 -> {
SzRecordItem item = new SzRecordItem();
item.setRecordId(id);
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
item.setStatus(CheckingStatus.NORMAL.getValue());
item.setProblem("");
szRecordItemMapper.insert(item);
});
@Transactional(rollbackFor = Exception.class)
public SzRecordDetailDto start(StartPlan startPlan) {
SzPlanDetailDto planDetailDto = szPlanService.getDetailById(startPlan.getPlanId());
if (planDetailDto != null) {
SzCheckingDetailDto checkingDetailDto = szCheckingService.getDetailById(
planDetailDto.getXcId());
if (checkingDetailDto != null) {
SzRecord record = new SzRecord();
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 -> {
SzRecordItem item = new SzRecordItem();
item.setRecordId(id);
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
item.setStatus(CheckingStatus.NORMAL.getValue());
item.setProblem("");
szRecordItemMapper.insert(item);
});
}
return this.getDetailById(id);
} else {
throw new SzException("查询巡查检查项数据异常");
}
}
return this.getDetailById(id);
} else {
throw new SzException("查询巡查检查项数据异常");
}
throw new SzException("查询巡查计划");
}
throw new SzException("查询巡查计划");
}
public SzRecordDetailDto getDetailById(String id) {
SzRecord record = this.getBaseMapper().selectById(id);
if (record != null) {
SzRecordDetailDto dto = BeanCopyUtils.copy(record, SzRecordDetailDto.class);
Wrapper<SzRecordItem> wp = Wrappers.<SzRecordItem>lambdaQuery()
.eq(SzRecordItem::getRecordId, id);
List<SzRecordItem> items = szRecordItemMapper.selectList(wp);
if (CollectionUtil.isNotEmpty(items) && dto != null) {
dto.setItems(StreamUtils.toList(items, r -> {
SzRecordItemDto itemDto = BeanCopyUtils.copy(r, SzRecordItemDto.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 SzRecordDetailDto getDetailById(String id) {
SzRecord record = this.getBaseMapper().selectById(id);
if (record != null) {
SzRecordDetailDto dto = BeanCopyUtils.copy(record, SzRecordDetailDto.class);
Wrapper<SzRecordItem> wp = Wrappers.<SzRecordItem>lambdaQuery()
.eq(SzRecordItem::getRecordId, id);
List<SzRecordItem> items = szRecordItemMapper.selectList(wp);
if (CollectionUtil.isNotEmpty(items) && dto != null) {
dto.setItems(StreamUtils.toList(items, r -> {
SzRecordItemDto itemDto = BeanCopyUtils.copy(r, SzRecordItemDto.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 SzRecordDetailDto update(SzRecordDetailDto SzRecord) {
if (CollectionUtil.isNotEmpty(SzRecord.getItems())) {
SzRecord.getItems().forEach(o -> {
SzRecordItem item = new SzRecordItem();
item.setRecordId(SzRecord.getId());
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
item.setStatus(o.getStatus());
item.setProblem(o.getProblem());
szRecordItemMapper.updateById(item);
});
@Transactional(rollbackFor = Exception.class)
public SzRecordDetailDto update(SzRecordDetailDto szRecord) {
if (CollectionUtil.isNotEmpty(szRecord.getItems())) {
szRecord.getItems().forEach(o -> {
SzRecordItem item = new SzRecordItem();
item.setId(o.getId());
item.setRecordId(szRecord.getId());
item.setContent(o.getContent());
item.setParts(String.join(PART_SEPARATOR, o.getParts()));
item.setStatus(o.getStatus());
item.setProblem(o.getProblem());
szRecordItemMapper.updateById(item);
});
}
this.baseMapper.updateById(BeanCopyUtils.copy(szRecord, SzRecord.class));
return szRecord;
}
return SzRecord;
}
@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<SzRecordItem> wp = Wrappers.<SzRecordItem>lambdaQuery()
.eq(SzRecordItem::getRecordId, id);
szRecordItemMapper.delete(wp);
}
private void deleteItems(String id) {
Wrapper<SzRecordItem> wp = Wrappers.<SzRecordItem>lambdaQuery()
.eq(SzRecordItem::getRecordId, id);
szRecordItemMapper.delete(wp);
}
}

Loading…
Cancel
Save