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 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 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 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) { if (!contractResultRecord.isEmpty()) { contractResultRecordMapper.saveBatch(contractResultRecord); } } @Override public List 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(); } }