| | |
| | | package com.ycl.platform.service.impl; |
| | | |
| | | import com.alibaba.excel.EasyExcel; |
| | | import com.alibaba.excel.context.AnalysisContext; |
| | | import com.alibaba.excel.enums.CellExtraTypeEnum; |
| | | import com.alibaba.excel.metadata.CellExtra; |
| | | import com.alibaba.excel.read.listener.ReadListener; |
| | | import com.alibaba.fastjson2.JSON; |
| | | 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.TreeNode; |
| | | 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; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 违约规则Service业务层处理 |
| | |
| | | public class CalculateRuleServiceImpl extends ServiceImpl<CalculateRuleMapper, CalculateRule> implements ICalculateRuleService { |
| | | @Autowired |
| | | private CalculateRuleMapper calculateRuleMapper; |
| | | @Autowired |
| | | private TContractMapper contractMapper; |
| | | |
| | | /** |
| | | * 查询违约规则 |
| | |
| | | */ |
| | | @Override |
| | | public CalculateRule selectDefaultRuleById(Long id) { |
| | | return calculateRuleMapper.selectDefaultRuleById(id); |
| | | return calculateRuleMapper.selectById(id); |
| | | } |
| | | |
| | | /** |
| | |
| | | return calculateRuleMapper.deleteDefaultRuleById(id); |
| | | } |
| | | |
| | | /** |
| | | * 获取合同Excel规则 |
| | | * |
| | | * @param file 合同Excel文件 |
| | | * @return 规则 |
| | | */ |
| | | |
| | | @Override |
| | | public List<CalculateRule> readExcel(MultipartFile file) { |
| | | List<CalculateRule> calculateRuleList = new ArrayList<>(); |
| | | try { |
| | | EasyExcel.read(file.getInputStream(), CalculateRule.class, new ReadListener<CalculateRule>() { |
| | | @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; |
| | | public List<CalculateRule> getRuleListByContractId(Integer contractId) { |
| | | return new LambdaQueryChainWrapper<>(calculateRuleMapper) |
| | | .eq(CalculateRule::getContractId, contractId) |
| | | .list(); |
| | | } |
| | | |
| | | @Override |
| | | public List<CalculateRule> getRuleListByContractId(Integer contractId) { |
| | | List<CalculateRule> list = new LambdaQueryChainWrapper<>(calculateRuleMapper) |
| | | .eq(CalculateRule::getContractId, contractId) |
| | | .list(); |
| | | return TreeUtils.build(list, 0L); |
| | | public List<CalculateRuleCascaderVO> getRuleListByUnitId(Integer unitId) { |
| | | List<CalculateRuleCascaderVO> ruleListByUnitId = calculateRuleMapper.getRuleListByUnitId(unitId, DateUtils.getDate()); |
| | | Map<String, List<CalculateRuleCascaderVO>> map = ruleListByUnitId.stream().collect(Collectors.groupingBy(CalculateRuleCascaderVO::getRuleName)); |
| | | List<CalculateRuleCascaderVO> result = new ArrayList<>(); |
| | | map.forEach((str,list)->{ |
| | | CalculateRuleCascaderVO vo = new CalculateRuleCascaderVO(); |
| | | vo.setValue(str); |
| | | vo.setLabel(str); |
| | | vo.setChildren(list); |
| | | result.add(vo); |
| | | }); |
| | | return result; |
| | | } |
| | | } |