|
|
@ -1,32 +1,32 @@ |
|
|
|
package com.kms.yxgh.sz.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; |
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
|
|
import com.kms.system.service.SysUserService; |
|
|
|
import com.kms.yxgh.base.SzException; |
|
|
|
import com.kms.yxgh.base.enums.YhRecordStatus; |
|
|
|
import com.kms.yxgh.common.dto.DocDto; |
|
|
|
import com.kms.yxgh.common.dto.OperatorDto; |
|
|
|
import com.kms.yxgh.sz.domain.SzYhOperator; |
|
|
|
import com.kms.yxgh.common.ApprovalStatusEnum; |
|
|
|
import com.kms.yxgh.common.dto.*; |
|
|
|
import com.kms.yxgh.common.service.ApprovalBusinessService; |
|
|
|
import com.kms.yxgh.sz.domain.SzYhRecord; |
|
|
|
import com.kms.yxgh.sz.dto.SzYhRecordApprovalDto; |
|
|
|
import com.kms.yxgh.sz.dto.SzYhRecordDetailDto; |
|
|
|
import com.kms.yxgh.sz.dto.SzYhRecordSearchDto; |
|
|
|
import com.kms.yxgh.sz.mapper.SzYhOperatorMapper; |
|
|
|
import com.kms.yxgh.sz.mapper.SzYhRecordMapper; |
|
|
|
import com.kms.yxgh.util.BeanCopyUtils; |
|
|
|
import com.kms.yxgh.util.StreamUtils; |
|
|
|
import com.shuili.common.core.domain.SearchParam; |
|
|
|
import com.shuili.common.core.domain.entity.SysUser; |
|
|
|
import com.shuili.common.core.service.BaseService; |
|
|
|
import lombok.AllArgsConstructor; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
import java.util.Collections; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Optional; |
|
|
|
import java.util.function.Consumer; |
|
|
|
|
|
|
|
/** |
|
|
|
* 水闸维修养护记录Service接口 |
|
|
@ -36,29 +36,20 @@ import java.util.function.Consumer; |
|
|
|
*/ |
|
|
|
@AllArgsConstructor |
|
|
|
@Service |
|
|
|
public class SzYhRecordService extends BaseService<SzYhRecordMapper, SzYhRecord> { |
|
|
|
public class SzYhRecordService extends BaseService<SzYhRecordMapper, SzYhRecord> implements ApprovalBusinessService<SzYhRecordSearchDto, SzYhRecordApprovalDto> { |
|
|
|
|
|
|
|
private final SzYhOperatorMapper szYhOperatorMapper; |
|
|
|
private final SzYhPlanService szYhPlanService; |
|
|
|
private final SysUserService sysUserService; |
|
|
|
|
|
|
|
public SzYhRecordDetailDto getDetailById(String id) { |
|
|
|
SzYhRecord record = this.getBaseMapper().selectById(id); |
|
|
|
if (record != null) { |
|
|
|
record.setId(null); |
|
|
|
SzYhRecordDetailDto dto = BeanCopyUtils.copy(record, SzYhRecordDetailDto.class); |
|
|
|
if (dto != null) { |
|
|
|
dto.setDoc(JSON.parseObject(record.getDoc(), DocDto.class)); |
|
|
|
} |
|
|
|
Wrapper<SzYhOperator> wp = Wrappers.<SzYhOperator>lambdaQuery() |
|
|
|
.eq(SzYhOperator::getRecordId, id); |
|
|
|
List<SzYhOperator> items = szYhOperatorMapper.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.setLedgerDoc(JSON.parseObject(record.getLedgerDoc(), DocDto.class)); |
|
|
|
dto.setSupplements(JSON.parseArray(record.getSupplement(), SupplementDto.class)); |
|
|
|
dto.setPlan(szYhPlanService.getDetailById(dto.getPlanId())); |
|
|
|
} |
|
|
|
return dto; |
|
|
|
} |
|
|
@ -69,12 +60,12 @@ public class SzYhRecordService extends BaseService<SzYhRecordMapper, SzYhRecord> |
|
|
|
public SzYhRecordDetailDto add(SzYhRecordDetailDto dto) { |
|
|
|
SzYhRecord szYhRecord = BeanCopyUtils.copy(dto, SzYhRecord.class); |
|
|
|
if (szYhRecord != null) { |
|
|
|
szYhRecord.setId(null); |
|
|
|
szYhRecord.setDoc(JSON.toJSONString(dto.getDoc())); |
|
|
|
szYhRecord.setLedgerDoc(JSON.toJSONString(dto.getLedgerDoc())); |
|
|
|
szYhRecord.setSupplement(JSON.toJSONString(dto.getSupplements())); |
|
|
|
getBaseMapper().insert(szYhRecord); |
|
|
|
dto.setId(szYhRecord.getId()); |
|
|
|
if (CollectionUtil.isNotEmpty(dto.getOperators())) { |
|
|
|
dto.getOperators().forEach(insertOperator(dto.getId())); |
|
|
|
} |
|
|
|
return dto; |
|
|
|
} |
|
|
|
return null; |
|
|
@ -88,12 +79,9 @@ public class SzYhRecordService extends BaseService<SzYhRecordMapper, SzYhRecord> |
|
|
|
SzYhRecord szYhRecord = BeanCopyUtils.copy(szRecord, SzYhRecord.class); |
|
|
|
if (szYhRecord != null) { |
|
|
|
szYhRecord.setDoc(JSON.toJSONString(szRecord.getDoc())); |
|
|
|
szYhRecord.setLedgerDoc(JSON.toJSONString(szRecord.getLedgerDoc())); |
|
|
|
szYhRecord.setSupplement(JSON.toJSONString(szRecord.getSupplements())); |
|
|
|
getBaseMapper().updateById(szYhRecord); |
|
|
|
String id = szRecord.getId(); |
|
|
|
deleteItems(id); |
|
|
|
if (CollectionUtil.isNotEmpty(szRecord.getOperators())) { |
|
|
|
szRecord.getOperators().forEach(insertOperator(id)); |
|
|
|
} |
|
|
|
return szRecord; |
|
|
|
} |
|
|
|
} else { |
|
|
@ -103,29 +91,10 @@ public class SzYhRecordService extends BaseService<SzYhRecordMapper, SzYhRecord> |
|
|
|
throw new SzException("源数据不存在,请确认id值是否正确"); |
|
|
|
} |
|
|
|
|
|
|
|
private Consumer<OperatorDto> insertOperator(String id) { |
|
|
|
return (o) -> { |
|
|
|
SzYhOperator item = new SzYhOperator(); |
|
|
|
item.setRecordId(id); |
|
|
|
item.setOperatorName(o.getName()); |
|
|
|
item.setOperatorUid(o.getUid()); |
|
|
|
szYhOperatorMapper.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<SzYhOperator> wp = Wrappers.<SzYhOperator>lambdaQuery() |
|
|
|
.eq(SzYhOperator::getRecordId, id); |
|
|
|
szYhOperatorMapper.delete(wp); |
|
|
|
return removeById(id); |
|
|
|
} |
|
|
|
|
|
|
|
private boolean checkStatus(String id) { |
|
|
@ -141,21 +110,44 @@ public class SzYhRecordService extends BaseService<SzYhRecordMapper, SzYhRecord> |
|
|
|
return this.getBaseMapper().selectCount(wp) > 0; |
|
|
|
} |
|
|
|
|
|
|
|
private boolean existRecord(String planId) { |
|
|
|
Wrapper<SzYhRecord> wp = Wrappers.<SzYhRecord>lambdaQuery() |
|
|
|
.eq(SzYhRecord::getPlanId, planId); |
|
|
|
return this.getBaseMapper().selectCount(wp) > 0; |
|
|
|
public IPage<SzYhRecordDetailDto> search(SearchParam<SzYhRecordSearchDto> sp) { |
|
|
|
Page<SzYhRecordDetailDto> page = new Page<>(sp.getPageNum(), sp.getPageSize()); |
|
|
|
return this.getBaseMapper().searchPage(page, Optional.ofNullable(sp.getData()).orElse(new SzYhRecordSearchDto())); |
|
|
|
} |
|
|
|
|
|
|
|
///更新状态
|
|
|
|
public Boolean updateStatus(SzYhRecordDetailDto szYhRecord) { |
|
|
|
Wrapper<SzYhRecord> wp = Wrappers.<SzYhRecord>lambdaUpdate() |
|
|
|
.eq(SzYhRecord::getId, szYhRecord.getId()) |
|
|
|
.set(SzYhRecord::getStatus, szYhRecord.getStatus()); |
|
|
|
return this.update(wp); |
|
|
|
return this.getBaseMapper().update(null, wp) > 0; |
|
|
|
} |
|
|
|
|
|
|
|
public IPage<SzYhRecordDetailDto> search(SearchParam<SzYhRecordSearchDto> sp) { |
|
|
|
Page<SzYhRecordDetailDto> page = new Page<>(sp.getPageNum(), sp.getPageSize()); |
|
|
|
return this.getBaseMapper().searchPage(page, Optional.ofNullable(sp.getData()).orElse(new SzYhRecordSearchDto())); |
|
|
|
@Override |
|
|
|
public IPage<ApprovalDetailDto<SzYhRecordApprovalDto>> approvalSearch(SearchParam<ApprovalSearchDto<SzYhRecordSearchDto>> sp) { |
|
|
|
Page<SzYhRecordSearchDto> page = new Page<>(sp.getPageNum(), sp.getPageSize()); |
|
|
|
return this.getBaseMapper().approvalSearchPage(page, sp.getData()); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<OperatorDto> getOperatorList(String formId) { |
|
|
|
SysUser user = sysUserService.getById("1"); |
|
|
|
if (user != null) { |
|
|
|
OperatorDto operatorDto = new OperatorDto(); |
|
|
|
operatorDto.setUid(user.getId()); |
|
|
|
operatorDto.setName(user.getNickName()); |
|
|
|
return Collections.singletonList(operatorDto); |
|
|
|
} |
|
|
|
return Collections.emptyList(); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void updateApprovalStatus(String formId, ApprovalStatusEnum status) { |
|
|
|
Wrapper<SzYhRecord> wp = Wrappers.<SzYhRecord>lambdaUpdate() |
|
|
|
.eq(SzYhRecord::getId, formId) |
|
|
|
.set(SzYhRecord::getStatus, status.getValue()); |
|
|
|
getBaseMapper().update(null, wp); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|