| | |
| | | |
| | | 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.utils.DateUtils; |
| | | import com.ycl.utils.SecurityUtils; |
| | | import enumeration.general.AuditingStatus; |
| | | import org.apache.commons.lang3.ObjectUtils; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | * @date 2024-04-01 |
| | | */ |
| | | @Service |
| | | @RequiredArgsConstructor |
| | | 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; |
| | | |
| | | private final ContractScoreMapper contractScoreMapper; |
| | | private final YwUnitMapper ywunitMapper; |
| | | private final TContractMapper contractMapper; |
| | | private final CalculateRuleMapper calculateRuleMapper; |
| | | |
| | | /** |
| | | * 查询合同打分列表 |
| | |
| | | */ |
| | | @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()); |
| | | } |
| | | ).toList(); |
| | | //避免搜索条件失效 |
| | | if(contractScore.getUnitId()==null) { |
| | | //TODO:数据权限 |
| | | Integer unitId = SecurityUtils.getUnitId(); |
| | | Long uid = null; |
| | | if (Objects.nonNull(unitId)) { |
| | | uid = Long.valueOf(unitId); |
| | | } |
| | | contractScore.setUnitId(uid); |
| | | } |
| | | if(contractScore.getCreateStartTime()!=null) { |
| | | contractScore.setCreateStartTime(DateUtils.getDayStart(contractScore.getCreateStartTime())); |
| | | } |
| | | if(contractScore.getCreateEndTime()!=null) { |
| | | contractScore.setCreateEndTime(DateUtils.getDayStart(contractScore.getCreateEndTime())); |
| | | } |
| | | if(contractScore.getAuditingStartTime()!=null) { |
| | | contractScore.setAuditingStartTime(DateUtils.getDayStart(contractScore.getAuditingStartTime())); |
| | | } |
| | | if(contractScore.getAuditingEndTime()!=null) { |
| | | contractScore.setAuditingEndTime(DateUtils.getDayStart(contractScore.getAuditingEndTime())); |
| | | } |
| | | return contractScoreMapper.selectDefaultScoreList(contractScore); |
| | | } |
| | | |
| | | @Override |
| | | public ContractScore getById(Serializable id) { |
| | | //TODO:回显优化 |
| | | ContractScore contractScore = super.getById(id); |
| | | contractScore.setRuleIdsArray(Arrays.stream(contractScore.getRuleIds().split(",")).map(Long::parseLong).toArray(Long[]::new)); |
| | | List<String> ruleIds = new ArrayList<>(); |
| | | ruleIds.add(contractScore.getRuleName().split("/")[0].trim()); |
| | | ruleIds.add(contractScore.getRuleId()+""); |
| | | contractScore.setRuleIdsArray(ruleIds); |
| | | return contractScore; |
| | | } |
| | | |
| | |
| | | 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)); |
| | | List<CalculateRule> list = new LambdaQueryChainWrapper<>(calculateRuleMapper).in(CalculateRule::getId, contractScore.getRuleIdsArray()).list(); |
| | | contractScore.setRuleName(String.join(" / ", new String[]{list.get(0).getRuleName(), list.get(1).getRuleDesc(), list.get(2).getRuleCondition()})); |
| | | // 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.setRuleId(Long.parseLong(contractScore.getRuleIdsArray().get(1))); |
| | | contractScore.setUpdateTime(new Date()); |
| | | contractScore.setAuditingStatus(AuditingStatus.WAIT); |
| | | return super.updateById(contractScore); |
| | | } |
| | | |