fuliqi
2025-02-21 64efb660b2c119c00432434c0f651f8996483f18
ycl-server/src/main/java/com/ycl/platform/service/impl/ContractResultServiceImpl.java
@@ -1,97 +1,152 @@
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业务层处理
 * 考核结果Service业务层处理
 *
 * @author ruoyi
 * @date 2024-04-01
 */
@Service
public class ContractResultServiceImpl extends ServiceImpl<ContractResultMapper, ContractResult> implements IContractResultService
{
    @Autowired
    private ContractResultMapper contractResultMapper;
@RequiredArgsConstructor
public class ContractResultServiceImpl extends ServiceImpl<ContractResultMapper, ContractResult> implements IContractResultService {
    private final ContractResultMapper checkResultMapper;
    private final ContractResultRecordMapper contractResultRecordMapper;
    /**
     * 查询合同考核结果
     * 查询考核结果
     *
     * @param id 合同考核结果主键
     * @return 合同考核结果
     * @param id 考核结果主键
     * @return 考核结果
     */
    @Override
    public ContractResult selectDefaultResultById(Long id)
    {
        return contractResultMapper.selectDefaultResultById(id);
    public ContractResult selectCheckResultById(Long id) {
        return checkResultMapper.selectById(id);
    }
    /**
     * 查询合同考核结果列表
     * 查询考核结果列表
     *
     * @param contractResult 合同考核结果
     * @return 合同考核结果
     * @param contractResult 考核结果
     * @return 考核结果
     */
    @Override
    public List<ContractResult> selectDefaultResultList(ContractResult contractResult)
    {
        return contractResultMapper.selectDefaultResultList(contractResult);
    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 合同考核结果
     * @param contractResult 考核结果
     * @return 结果
     */
    @Override
    public int insertDefaultResult(ContractResult contractResult)
    {
        return contractResultMapper.insertDefaultResult(contractResult);
    public int insertCheckResult(ContractResult contractResult) {
        return checkResultMapper.insert(contractResult);
    }
    /**
     * 修改合同考核结果
     * 修改考核结果
     *
     * @param contractResult 合同考核结果
     * @param contractResult 考核结果
     * @return 结果
     */
    @Override
    public int updateDefaultResult(ContractResult contractResult)
    {
    public int updateCheckResult(ContractResult contractResult) {
        contractResult.setUpdateTime(DateUtils.getNowDate());
        return contractResultMapper.updateDefaultResult(contractResult);
        return checkResultMapper.updateById(contractResult);
    }
    /**
     * 批量删除合同考核结果
     * 批量删除考核结果
     *
     * @param ids 需要删除的合同考核结果主键
     * @param ids 需要删除的考核结果主键
     * @return 结果
     */
    @Override
    public int deleteDefaultResultByIds(Long[] ids)
    {
        return contractResultMapper.deleteDefaultResultByIds(ids);
    public int deleteCheckResultByIds(Long[] ids) {
        return checkResultMapper.deleteBatchIds(Arrays.asList(ids));
    }
    /**
     * 删除合同考核结果信息
     * 删除考核结果信息
     *
     * @param id 合同考核结果主键
     * @param id 考核结果主键
     * @return 结果
     */
    @Override
    public int deleteDefaultResultById(Long id)
    {
        return contractResultMapper.deleteDefaultResultById(id);
    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();
    }
}