package com.ycl.platform.service.impl; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.read.listener.ReadListener; 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.TContract; import com.ycl.platform.domain.vo.CalculateRuleCascaderVO; import com.ycl.platform.mapper.CalculateRuleMapper; import com.ycl.platform.mapper.TContractMapper; import com.ycl.platform.service.ICalculateRuleService; import com.ycl.system.domain.TreeUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import utils.DateUtils; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * 违约规则Service业务层处理 * * @author ruoyi * @date 2024-04-01 */ @Service public class CalculateRuleServiceImpl extends ServiceImpl implements ICalculateRuleService { @Autowired private CalculateRuleMapper calculateRuleMapper; @Autowired private TContractMapper contractMapper; /** * 查询违约规则 * * @param id 违约规则主键 * @return 违约规则 */ @Override public CalculateRule selectDefaultRuleById(Long id) { return calculateRuleMapper.selectById(id); } /** * 查询违约规则列表 * * @param calculateRule 违约规则 * @return 违约规则 */ @Override public List selectDefaultRuleList(CalculateRule calculateRule) { return calculateRuleMapper.selectDefaultRuleList(calculateRule); } /** * 新增违约规则 * * @param calculateRule 违约规则 * @return 结果 */ @Override public int insertDefaultRule(CalculateRule calculateRule) { calculateRule.setCreateTime(DateUtils.getNowDate()); return calculateRuleMapper.insertDefaultRule(calculateRule); } /** * 修改违约规则 * * @param calculateRule 违约规则 * @return 结果 */ @Override public int updateDefaultRule(CalculateRule calculateRule) { calculateRule.setUpdateTime(DateUtils.getNowDate()); return calculateRuleMapper.updateDefaultRule(calculateRule); } /** * 批量删除违约规则 * * @param ids 需要删除的违约规则主键 * @return 结果 */ @Override public int deleteDefaultRuleByIds(Long[] ids) { return calculateRuleMapper.deleteDefaultRuleByIds(ids); } /** * 删除违约规则信息 * * @param id 违约规则主键 * @return 结果 */ @Override public int deleteDefaultRuleById(Long id) { return calculateRuleMapper.deleteDefaultRuleById(id); } /** * 获取合同Excel规则 * * @param file 合同Excel文件 * @return 规则 */ @Override public List readExcel(MultipartFile file) { List calculateRuleList = new ArrayList<>(); try { EasyExcel.read(file.getInputStream(), CalculateRule.class, new ReadListener() { @Override public void invoke(CalculateRule calculateRule, AnalysisContext analysisContext) { calculateRule.setId(null); calculateRuleList.add(calculateRule); } @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { } }) .head(CalculateRule.class) .sheet() .doRead(); } catch (IOException e) { throw new RuntimeException(e); } return calculateRuleList; } @Override public List getRuleListByContractId(Integer contractId) { List list = new LambdaQueryChainWrapper<>(calculateRuleMapper) .eq(CalculateRule::getContractId, contractId) .list(); return TreeUtils.build(list, 0L); } @Override public List getRuleListByUnitId(Integer unitId) { return TreeUtils.build(calculateRuleMapper.getRuleListByUnitId(unitId), 0L); } }