package com.ycl.platform.service.impl;
|
|
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ycl.platform.domain.entity.ContractResult;
|
import com.ycl.platform.domain.entity.ContractResultRecord;
|
import com.ycl.platform.domain.vo.ContractResultVO;
|
import com.ycl.platform.mapper.ContractResultMapper;
|
import com.ycl.platform.mapper.ContractResultRecordMapper;
|
import com.ycl.platform.service.IContractResultService;
|
import com.ycl.system.entity.BaseEntity;
|
import com.ycl.system.entity.SysRole;
|
import com.ycl.system.entity.SysUser;
|
import com.ycl.utils.SecurityUtils;
|
import enumeration.general.PublishType;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import utils.DateUtils;
|
|
import java.util.Arrays;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.Objects;
|
|
/**
|
* 考核结果Service业务层处理
|
*
|
* @author ruoyi
|
* @date 2024-04-01
|
*/
|
@Service
|
@RequiredArgsConstructor
|
public class ContractResultServiceImpl extends ServiceImpl<ContractResultMapper, ContractResult> implements IContractResultService {
|
|
private final ContractResultMapper checkResultMapper;
|
private final ContractResultRecordMapper contractResultRecordMapper;
|
|
|
/**
|
* 查询考核结果
|
*
|
* @param id 考核结果主键
|
* @return 考核结果
|
*/
|
@Override
|
public ContractResult selectCheckResultById(Long id) {
|
return checkResultMapper.selectById(id);
|
}
|
|
/**
|
* 查询考核结果列表
|
*
|
* @param contractResult 考核结果
|
* @return 考核结果
|
*/
|
@Override
|
public List<ContractResultVO> selectCheckResultList(ContractResultVO contractResult) {
|
//避免查询条件失效
|
if (contractResult.getUnitId() == null) {
|
Integer unitId = SecurityUtils.getUnitId();
|
Long uid = null;
|
if (Objects.nonNull(unitId)) {
|
uid = Long.valueOf(unitId);
|
}
|
contractResult.setUnitId(uid);
|
}
|
roleControl(contractResult);
|
return checkResultMapper.selectCheckResultList(contractResult);
|
}
|
|
private void roleControl(ContractResultVO contractResult) {
|
List<SysRole> roles = SecurityUtils.getLoginUser().getUser().getRoles();
|
SysUser user = SecurityUtils.getLoginUser().getUser();
|
if (!user.isAdmin()) {
|
for (SysRole role : roles) {
|
if (role.getPermissions().contains("check:contract:role:publish")) {
|
contractResult.setPublish(1);
|
}
|
}
|
}
|
}
|
|
|
/**
|
* 新增考核结果
|
*
|
* @param contractResult 考核结果
|
* @return 结果
|
*/
|
@Override
|
public int insertCheckResult(ContractResult contractResult) {
|
return checkResultMapper.insert(contractResult);
|
}
|
|
/**
|
* 修改考核结果
|
*
|
* @param contractResult 考核结果
|
* @return 结果
|
*/
|
@Override
|
public int updateCheckResult(ContractResult contractResult) {
|
contractResult.setUpdateTime(DateUtils.getNowDate());
|
return checkResultMapper.updateById(contractResult);
|
}
|
|
/**
|
* 批量删除考核结果
|
*
|
* @param ids 需要删除的考核结果主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteCheckResultByIds(Long[] ids) {
|
return checkResultMapper.deleteBatchIds(Arrays.asList(ids));
|
}
|
|
/**
|
* 删除考核结果信息
|
*
|
* @param id 考核结果主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteCheckResultById(Long id) {
|
return checkResultMapper.deleteById(id);
|
}
|
|
@Override
|
public void saveBatchRecord(List<ContractResultRecord> contractResultRecord) {
|
if (!contractResultRecord.isEmpty()) {
|
contractResultRecordMapper.saveBatch(contractResultRecord);
|
}
|
}
|
|
@Override
|
public List<ContractResultRecord> selectCheckResultRecordList(Long resultId, Long contractId) {
|
return checkResultMapper.selectCheckResultRecordList(resultId, contractId);
|
}
|
|
@Override
|
public Boolean publish(Long id) {
|
ContractResult contractResult = checkResultMapper.selectById(id);
|
|
return new LambdaUpdateChainWrapper<>(checkResultMapper)
|
.eq(ContractResult::getId, id)
|
.set(ContractResult::getPublish, contractResult.getPublish() == 0 ? 1 : 0)
|
.set(ContractResult::getPublishId, SecurityUtils.getLoginUser().getUserId())
|
.update();
|
}
|
}
|