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.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 com.ycl.system.entity.SysUser; import com.ycl.utils.SecurityUtils; import enumeration.general.AuditingStatus; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.stream.Collectors; /** * 合同打分Service业务层处理 * * @author ruoyi * @date 2024-04-01 */ @Service public class ContractScoreServiceImpl extends ServiceImpl implements IContractScoreService { @Autowired private ContractScoreMapper contractScoreMapper; @Autowired private YwUnitMapper ywunitMapper; @Autowired private TContractMapper contractMapper; @Autowired private CalculateRuleMapper calculateRuleMapper; /** * 查询合同打分列表 * * @param contractScore 合同打分 * @return 合同打分 */ @Override public List selectDefaultScoreList(ContractScore contractScore) { return contractScoreMapper.selectDefaultScoreList(contractScore); } @Override public ContractScore getById(Serializable id) { //TODO:回显优化 ContractScore contractScore = super.getById(id); List ruleIds = new ArrayList<>(); ruleIds.add(contractScore.getRuleName().split("/")[0].trim()); ruleIds.add(contractScore.getRuleId()+""); contractScore.setRuleIdsArray(ruleIds); return contractScore; } @Override public boolean save(ContractScore contractScore) { SysUser user = SecurityUtils.getLoginUser().getUser(); contractScore.setCreateUserId(user.getUserId()); contractScore.setCreateUser(user.getNickName()); contractScore.setAuditingStatus(AuditingStatus.WAIT); // 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.setRuleId(Long.parseLong(contractScore.getRuleIdsArray().get(1))); contractScore.setUpdateTime(new Date()); contractScore.setAuditingStatus(AuditingStatus.WAIT); return super.updateById(contractScore); } @Override public boolean audit(ContractScore contractScore) { SysUser user = SecurityUtils.getLoginUser().getUser(); contractScore.setAuditingTime(com.ycl.utils.DateUtils.getNowDate()); contractScore.setAuditingUser(user.getNickName()); contractScore.setAuditingUserId(user.getUserId()); return super.updateById(contractScore); } @Override public List 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(); } }