xiangpei
2024-04-28 3b7d2d743514cf3793c07daa5f0e1d8aca4cd528
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package com.ycl.platform.service.impl;
 
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;
import com.ycl.platform.mapper.TContractMapper;
import com.ycl.platform.mapper.YwUnitMapper;
import com.ycl.platform.service.IContractScoreService;
import org.apache.commons.lang3.ObjectUtils;
import org.aspectj.weaver.ast.Var;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import utils.DateUtils;
 
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
 
/**
 * 合同打分Service业务层处理
 *
 * @author ruoyi
 * @date 2024-04-01
 */
@Service
public class ContractScoreServiceImpl extends ServiceImpl<ContractScoreMapper, ContractScore> implements IContractScoreService
{
    @Autowired
    private ContractScoreMapper contractScoreMapper;
    @Autowired
    private YwUnitMapper ywunitMapper;
    @Autowired
    private TContractMapper contractMapper;
    @Autowired
    private CalculateRuleMapper calculateRuleMapper;
 
    /**
     * 查询合同打分
     *
     * @param id 合同打分主键
     * @return 合同打分
     */
    @Override
    public ContractScore selectDefaultScoreById(Long id)
    {
        return contractScoreMapper.selectDefaultScoreById(id);
    }
 
    /**
     * 查询合同打分列表
     *
     * @param contractScore 合同打分
     * @return 合同打分
     */
    @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();
    }
 
    /**
     * 新增合同打分
     *
     * @param contractScore 合同打分
     * @return 结果
     */
    @Override
    public int insertDefaultScore(ContractScore contractScore)
    {
        contractScore.setCreateTime(DateUtils.getNowDate());
        return contractScoreMapper.insertDefaultScore(contractScore);
    }
 
    /**
     * 修改合同打分
     *
     * @param contractScore 合同打分
     * @return 结果
     */
    @Override
    public int updateDefaultScore(ContractScore contractScore)
    {
        contractScore.setUpdateTime(DateUtils.getNowDate());
        return contractScoreMapper.updateDefaultScore(contractScore);
    }
 
    /**
     * 批量删除合同打分
     *
     * @param ids 需要删除的合同打分主键
     * @return 结果
     */
    @Override
    public int deleteDefaultScoreByIds(Long[] ids)
    {
        return contractScoreMapper.deleteDefaultScoreByIds(ids);
    }
 
    /**
     * 删除合同打分信息
     *
     * @param id 合同打分主键
     * @return 结果
     */
    @Override
    public int deleteDefaultScoreById(Long id)
    {
        return contractScoreMapper.deleteDefaultScoreById(id);
    }
}