|
|
@ -1,6 +1,5 @@ |
|
|
|
package com.kms.yxgh.df.service; |
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil; |
|
|
|
import com.alibaba.fastjson.JSON; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
@ -8,19 +7,13 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
|
|
import com.kms.yxgh.base.DfException; |
|
|
|
import com.kms.yxgh.base.enums.YhRecordStatus; |
|
|
|
import com.kms.yxgh.common.dto.ApprovalDetailDto; |
|
|
|
import com.kms.yxgh.common.dto.ApprovalSearchDto; |
|
|
|
import com.kms.yxgh.common.dto.DocDto; |
|
|
|
import com.kms.yxgh.common.dto.OperatorDto; |
|
|
|
import com.kms.yxgh.common.dto.*; |
|
|
|
import com.kms.yxgh.common.service.ApprovalBusinessService; |
|
|
|
import com.kms.yxgh.df.domain.DfYhOperator; |
|
|
|
import com.kms.yxgh.df.domain.DfYhRecord; |
|
|
|
import com.kms.yxgh.df.dto.DfYhRecordDetailDto; |
|
|
|
import com.kms.yxgh.df.dto.DfYhRecordSearchDto; |
|
|
|
import com.kms.yxgh.df.mapper.DfYhOperatorMapper; |
|
|
|
import com.kms.yxgh.df.mapper.DfYhRecordMapper; |
|
|
|
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 lombok.AllArgsConstructor; |
|
|
@ -30,7 +23,6 @@ import org.springframework.transaction.annotation.Transactional; |
|
|
|
import java.util.Collections; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Optional; |
|
|
|
import java.util.function.Consumer; |
|
|
|
|
|
|
|
/** |
|
|
|
* 堤防维修养护记录Service接口 |
|
|
@ -42,26 +34,17 @@ import java.util.function.Consumer; |
|
|
|
@Service |
|
|
|
public class DfYhRecordService extends BaseService<DfYhRecordMapper, DfYhRecord> implements ApprovalBusinessService<DfYhRecordSearchDto, DfYhRecordDetailDto, DfYhRecord> { |
|
|
|
|
|
|
|
private final DfYhOperatorMapper dfYhOperatorMapper; |
|
|
|
private final DfYhPlanService dfYhPlanService; |
|
|
|
|
|
|
|
public DfYhRecordDetailDto getDetailById(String id) { |
|
|
|
DfYhRecord record = this.getBaseMapper().selectById(id); |
|
|
|
if (record != null) { |
|
|
|
DfYhRecordDetailDto dto = BeanCopyUtils.copy(record, DfYhRecordDetailDto.class); |
|
|
|
if (dto != null) { |
|
|
|
dto.setDoc(JSON.parseObject(record.getDoc(), DocDto.class)); |
|
|
|
} |
|
|
|
Wrapper<DfYhOperator> wp = Wrappers.<DfYhOperator>lambdaQuery() |
|
|
|
.eq(DfYhOperator::getRecordId, id); |
|
|
|
List<DfYhOperator> items = dfYhOperatorMapper.selectList(wp); |
|
|
|
if (CollectionUtil.isNotEmpty(items) && dto != null) { |
|
|
|
dto.setOperators(StreamUtils.toList(items, r -> { |
|
|
|
OperatorDto operatorDto = new OperatorDto(); |
|
|
|
operatorDto.setId(r.getId()); |
|
|
|
operatorDto.setUid(r.getOperatorUid()); |
|
|
|
operatorDto.setName(r.getOperatorName()); |
|
|
|
return operatorDto; |
|
|
|
})); |
|
|
|
dto.setDoc(JSON.parseArray(record.getDoc(), DocDto.class)); |
|
|
|
dto.setLedgerDoc(JSON.parseArray(record.getLedgerDoc(), DocDto.class)); |
|
|
|
dto.setSupplements(JSON.parseArray(record.getSupplement(), SupplementDto.class)); |
|
|
|
dto.setPlan(dfYhPlanService.getDetailById(dto.getPlanId())); |
|
|
|
} |
|
|
|
return dto; |
|
|
|
} |
|
|
@ -74,11 +57,10 @@ public class DfYhRecordService extends BaseService<DfYhRecordMapper, DfYhRecord> |
|
|
|
if (dfYhRecord != null) { |
|
|
|
dfYhRecord.setId(null); |
|
|
|
dfYhRecord.setDoc(JSON.toJSONString(dto.getDoc())); |
|
|
|
dfYhRecord.setLedgerDoc(JSON.toJSONString(dto.getLedgerDoc())); |
|
|
|
dfYhRecord.setSupplement(JSON.toJSONString(dto.getSupplements())); |
|
|
|
getBaseMapper().insert(dfYhRecord); |
|
|
|
dto.setId(dfYhRecord.getId()); |
|
|
|
if (CollectionUtil.isNotEmpty(dto.getOperators())) { |
|
|
|
dto.getOperators().forEach(insertOperator(dto.getId())); |
|
|
|
} |
|
|
|
return dto; |
|
|
|
} |
|
|
|
return null; |
|
|
@ -92,12 +74,9 @@ public class DfYhRecordService extends BaseService<DfYhRecordMapper, DfYhRecord> |
|
|
|
DfYhRecord dfYhRecord = BeanCopyUtils.copy(dfRecord, DfYhRecord.class); |
|
|
|
if (dfYhRecord != null) { |
|
|
|
dfYhRecord.setDoc(JSON.toJSONString(dfRecord.getDoc())); |
|
|
|
dfYhRecord.setLedgerDoc(JSON.toJSONString(dfRecord.getLedgerDoc())); |
|
|
|
dfYhRecord.setSupplement(JSON.toJSONString(dfRecord.getSupplements())); |
|
|
|
getBaseMapper().updateById(dfYhRecord); |
|
|
|
String id = dfRecord.getId(); |
|
|
|
deleteItems(id); |
|
|
|
if (CollectionUtil.isNotEmpty(dfRecord.getOperators())) { |
|
|
|
dfRecord.getOperators().forEach(insertOperator(id)); |
|
|
|
} |
|
|
|
return dfRecord; |
|
|
|
} |
|
|
|
} else { |
|
|
@ -107,29 +86,10 @@ public class DfYhRecordService extends BaseService<DfYhRecordMapper, DfYhRecord> |
|
|
|
throw new DfException("源数据不存在,请确认id值是否正确"); |
|
|
|
} |
|
|
|
|
|
|
|
private Consumer<OperatorDto> insertOperator(String id) { |
|
|
|
return (o) -> { |
|
|
|
DfYhOperator item = new DfYhOperator(); |
|
|
|
item.setRecordId(id); |
|
|
|
item.setOperatorName(o.getName()); |
|
|
|
item.setOperatorUid(o.getUid()); |
|
|
|
dfYhOperatorMapper.insert(item); |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public Boolean deleteById(String id) { |
|
|
|
boolean rt = removeById(id); |
|
|
|
if (rt) { |
|
|
|
deleteItems(id); |
|
|
|
} |
|
|
|
return rt; |
|
|
|
} |
|
|
|
|
|
|
|
private void deleteItems(String id) { |
|
|
|
Wrapper<DfYhOperator> wp = Wrappers.<DfYhOperator>lambdaQuery() |
|
|
|
.eq(DfYhOperator::getRecordId, id); |
|
|
|
dfYhOperatorMapper.delete(wp); |
|
|
|
return removeById(id); |
|
|
|
} |
|
|
|
|
|
|
|
private boolean checkStatus(String id) { |
|
|
@ -145,13 +105,6 @@ public class DfYhRecordService extends BaseService<DfYhRecordMapper, DfYhRecord> |
|
|
|
return this.getBaseMapper().selectCount(wp) > 0; |
|
|
|
} |
|
|
|
|
|
|
|
private boolean existRecord(String planId) { |
|
|
|
Wrapper<DfYhRecord> wp = Wrappers.<DfYhRecord>lambdaQuery() |
|
|
|
.eq(DfYhRecord::getPlanId, planId); |
|
|
|
Integer count = this.getBaseMapper().selectCount(wp); |
|
|
|
return count > 0; |
|
|
|
} |
|
|
|
|
|
|
|
public IPage<DfYhRecordDetailDto> search(SearchParam<DfYhRecordSearchDto> sp) { |
|
|
|
Page<DfYhRecordDetailDto> page = new Page<>(sp.getPageNum(), sp.getPageSize()); |
|
|
|
return this.getBaseMapper().searchPage(page, Optional.ofNullable(sp.getData()).orElse(new DfYhRecordSearchDto())); |
|
|
|