龚焕茏
2024-04-24 4da3b0321291a1ad8a1341f8f843a41d4b516903
合同规则分三层、合同积分新增
6个文件已修改
1个文件已添加
123 ■■■■ 已修改文件
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateRuleCascaderVO.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/controller/CalculateRuleController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/mapper/CalculateRuleMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/ICalculateRuleService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateRuleServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/CalculateRuleMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateRuleCascaderVO.java
New file
@@ -0,0 +1,36 @@
package com.ycl.platform.domain.vo;
import com.ycl.system.domain.TreeNode;
import enumeration.general.RuleDeductCategoryEnum;
import lombok.Data;
/**
 * 分数核算规则对象 t_default_rule
 *
 * @author ruoyi
 * @date 2024-04-01
 */
@Data
public class CalculateRuleCascaderVO extends TreeNode {
    private static final long serialVersionUID = 1L;
    private Long value;
    private String label;
    /**
     * 扣分方式
     */
    private RuleDeductCategoryEnum deductCategory;
    /**
     * 扣除分数
     */
    private Double calcFraction;
    /**
     * 当方式为除以时,除以当前字段数量
     */
    private Integer calcUnit;
}
ycl-server/src/main/java/com/ycl/platform/controller/CalculateRuleController.java
@@ -49,6 +49,16 @@
    }
    /**
     * 根据运维单位查询违约规则列表
     */
    @PreAuthorize("@ss.hasPermi('system:rule:query')")
    @GetMapping("/getRuleListByUnitId")
    public AjaxResult getRuleListByUnitId(Integer unitId)
    {
        return success(defaultRuleService.getRuleListByUnitId(unitId));
    }
    /**
     * 导出违约规则列表
     */
    @PreAuthorize("@ss.hasPermi('system:rule:export')")
ycl-server/src/main/java/com/ycl/platform/mapper/CalculateRuleMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ycl.platform.domain.entity.CalculateRule;
import com.ycl.platform.domain.vo.CalculateRuleCascaderVO;
import java.util.List;
@@ -60,4 +61,11 @@
     * @return 结果
     */
    public int deleteDefaultRuleByIds(Long[] ids);
    /**
     * 获取违约规则列表-用于Cascader下拉
     * @param unitId 运维单位
     * @return 数据
     */
    List<CalculateRuleCascaderVO> getRuleListByUnitId(Integer unitId);
}
ycl-server/src/main/java/com/ycl/platform/service/ICalculateRuleService.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ycl.platform.domain.entity.CalculateRule;
import com.ycl.platform.domain.entity.TContract;
import com.ycl.platform.domain.vo.CalculateRuleCascaderVO;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@@ -75,4 +76,11 @@
     * @return 合同规则
     */
    List<CalculateRule> getRuleListByContractId(Integer contractId);
    /**
     * 根据单位id查询规则
     * @param unitId 运维单位
     * @return 规则
     */
    List<CalculateRuleCascaderVO> getRuleListByUnitId(Integer unitId);
}
ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateRuleServiceImpl.java
@@ -2,17 +2,15 @@
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;
@@ -33,6 +31,8 @@
public class CalculateRuleServiceImpl extends ServiceImpl<CalculateRuleMapper, CalculateRule> implements ICalculateRuleService {
    @Autowired
    private CalculateRuleMapper calculateRuleMapper;
    @Autowired
    private TContractMapper contractMapper;
    /**
     * 查询违约规则
@@ -141,4 +141,9 @@
                .list();
        return TreeUtils.build(list, 0L);
    }
    @Override
    public List<CalculateRuleCascaderVO> getRuleListByUnitId(Integer unitId) {
        return TreeUtils.build(calculateRuleMapper.getRuleListByUnitId(unitId), 0L);
    }
}
ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java
@@ -135,7 +135,9 @@
        // 遍历父子关系
        List<CalculateRule> calculateRulesToSave = new ArrayList<>();
        CalculateRule temp = new CalculateRule();
        CalculateRule fu1 = new CalculateRule();
        CalculateRule fu2 = new CalculateRule();
        boolean fuNew = true;
        for (CalculateRule calculateRule : list) {
            // 判断数据完整性
            if (ObjectUtils.isEmpty(calculateRule.getDeductCategory())) {
@@ -152,18 +154,32 @@
            }
            // 保存父规则获取父id
            if (StringUtils.isNotBlank(calculateRule.getRuleName())) {
                CalculateRule fu = new CalculateRule();
                fu.setContractId(tContract.getId().intValue());
                fu.setRuleName(calculateRule.getRuleName());
                fu.setCreateTime(DateUtils.getNowDate());
                fu.setDeleted(0);
                calculateRuleService.save(fu);
                temp = fu;
                CalculateRule one = new CalculateRule();
                one.setParentId(0L);
                one.setContractId(tContract.getId().intValue());
                one.setRuleName(calculateRule.getRuleName());
                one.setCreateTime(DateUtils.getNowDate());
                one.setDeleted(0);
                calculateRuleService.save(one);
                fu1 = one;
                fuNew = true;
            }
            // 保存第二层父规则获取第二层父id
            if (StringUtils.isNotBlank(calculateRule.getRuleDesc())) {
                CalculateRule two = new CalculateRule();
                two.setContractId(tContract.getId().intValue());
                two.setParentId(fu1.getId());
                two.setRuleDesc(calculateRule.getRuleDesc());
                two.setCreateTime(DateUtils.getNowDate());
                two.setDeleted(0);
                calculateRuleService.save(two);
                fu2 = two;
                fuNew = false;
            }
            calculateRule.setContractId(tContract.getId().intValue());
            calculateRule.setCreateTime(DateUtils.getNowDate());
            calculateRule.setDeleted(0);
            calculateRule.setParentId(temp.getId());
            calculateRule.setParentId(fuNew ? fu1.getId() : fu2.getId());
            calculateRulesToSave.add(calculateRule);
        }
        // 批量保存规则
ycl-server/src/main/resources/mapper/zgyw/CalculateRuleMapper.xml
@@ -35,6 +35,20 @@
        where id = #{id}
    </select>
    <select id="getRuleListByUnitId" resultType="com.ycl.platform.domain.vo.CalculateRuleCascaderVO">
        select id,
               deduct_category,
               calc_fraction,
               calc_unit,
               id as value,
               if(rule_condition is not null, rule_condition, if(rule_desc is not null, rule_desc, rule_name)) as label,
               parent_id
        from t_calculate_rule
        where deleted = 0
          and contract_id
            in (select id from t_contract where unit_id = #{unitId})
    </select>
    <insert id="insertDefaultRule" useGeneratedKeys="true" keyProperty="id">
        insert into t_calculate_rule
        <trim prefix="(" suffix=")" suffixOverrides=",">