xiangpei
2024-09-03 d70a64df5d6f7b3b8f68436bd92df8366219981b
ycl-server/src/main/java/com/ycl/platform/service/impl/ContractScoreServiceImpl.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.platform.domain.entity.CalculateRule;
import com.ycl.platform.domain.entity.ContractScore;
import com.ycl.platform.mapper.CalculateRuleMapper;
import com.ycl.platform.mapper.ContractScoreMapper;
@@ -12,12 +11,12 @@
import com.ycl.system.entity.SysUser;
import com.ycl.utils.SecurityUtils;
import enumeration.general.AuditingStatus;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.Serializable;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@@ -46,22 +45,7 @@
     */
    @Override
    public List<ContractScore> selectDefaultScoreList(ContractScore contractScore) {
        return new LambdaQueryChainWrapper<>(contractScoreMapper)
                .eq(ObjectUtils.isNotEmpty(contractScore.getUnitId()), ContractScore::getUnitId, contractScore.getUnitId())
                .between(ObjectUtils.isNotEmpty(contractScore.getCreateStartTime()), ContractScore::getCreateTime, contractScore.getCreateStartTime(), contractScore.getCreateEndTime())
                .between(ObjectUtils.isNotEmpty(contractScore.getAuditingStartTime()), ContractScore::getAuditingTime, contractScore.getAuditingStartTime(), contractScore.getAuditingEndTime())
                .eq(ObjectUtils.isNotEmpty(contractScore.getAuditingStatus()), ContractScore::getAuditingStatus, contractScore.getAuditingStatus())
                .orderByDesc(ContractScore::getCreateTime)
                .list()
                .stream().peek(
                        item -> {
                            item.setUnitName(ywunitMapper.selectById(item.getUnitId()).getUnitName());
                            item.setContractName(contractMapper.selectById(item.getContractId()).getName());
                            item.setRuleIdsArray(Arrays.stream(item.getRuleIds().split(",")).map(Long::parseLong).toArray(Long[]::new));
                            List<CalculateRule> list = new LambdaQueryChainWrapper<>(calculateRuleMapper).in(CalculateRule::getId, item.getRuleIdsArray()).list();
                            item.setRuleName(String.join(" / ", new String[]{list.get(0).getRuleName(), list.get(1).getRuleDesc(), list.get(2).getRuleCondition()}));
                        }
                ).toList();
        return contractScoreMapper.selectDefaultScoreList(contractScore);
    }
    @Override
@@ -77,24 +61,35 @@
        contractScore.setCreateUserId(user.getUserId());
        contractScore.setCreateUser(user.getNickName());
        contractScore.setAuditingStatus(AuditingStatus.WAIT);
        contractScore.setDeleted("0");
        contractScore.setRuleIds(Arrays.stream(contractScore.getRuleIdsArray()).map(String::valueOf).collect(Collectors.joining(",")));
        contractScore.setRuleIdsArray(Arrays.stream(contractScore.getRuleIds().split(",")).map(Long::parseLong).toArray(Long[]::new));
        contractScore.setUpdateTime(new Date());
        return super.save(contractScore);
    }
    @Override
    public boolean updateById(ContractScore contractScore) {
        contractScore.setRuleIds(Arrays.stream(contractScore.getRuleIdsArray()).map(String::valueOf).collect(Collectors.joining(",")));
        contractScore.setUpdateTime(new Date());
        return super.updateById(contractScore);
    }
    @Override
    public boolean audit(ContractScore contractScore) {
        SysUser user = SecurityUtils.getLoginUser().getUser();
        contractScore.setRuleIds(Arrays.stream(contractScore.getRuleIdsArray()).map(String::valueOf).collect(Collectors.joining(",")));
        contractScore.setAuditingTime(com.ycl.utils.DateUtils.getNowDate());
        contractScore.setAuditingUser(user.getNickName());
        contractScore.setAuditingUserId(user.getUserId());
        return super.updateById(contractScore);
    }
    @Override
    public List<ContractScore> getDateRangeScoreByContractId(Long id, String startTime, String endTime) {
        return new LambdaQueryChainWrapper<>(contractScoreMapper)
                .eq(ContractScore::getContractId, id)
                .between(ContractScore::getCreateTime, startTime, endTime)
                .eq(ContractScore::getAuditingStatus, AuditingStatus.PASS)
                .list();
    }
}