From 4da3b0321291a1ad8a1341f8f843a41d4b516903 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期三, 24 四月 2024 18:09:11 +0800
Subject: [PATCH] 合同规则分三层、合同积分新增
---
ycl-server/src/main/java/com/ycl/platform/mapper/CalculateRuleMapper.java | 8 ++
ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateRuleServiceImpl.java | 13 +++-
ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java | 34 ++++++++---
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateRuleCascaderVO.java | 36 ++++++++++++
ycl-server/src/main/java/com/ycl/platform/service/ICalculateRuleService.java | 8 ++
ycl-server/src/main/java/com/ycl/platform/controller/CalculateRuleController.java | 10 +++
ycl-server/src/main/resources/mapper/zgyw/CalculateRuleMapper.xml | 14 ++++
7 files changed, 110 insertions(+), 13 deletions(-)
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateRuleCascaderVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateRuleCascaderVO.java
new file mode 100644
index 0000000..eecdbc8
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateRuleCascaderVO.java
@@ -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;
+
+ /**
+ * 鎵e垎鏂瑰紡
+ */
+ private RuleDeductCategoryEnum deductCategory;
+
+ /**
+ * 鎵i櫎鍒嗘暟
+ */
+ private Double calcFraction;
+
+ /**
+ * 褰撴柟寮忎负闄や互鏃讹紝闄や互褰撳墠瀛楁鏁伴噺
+ */
+ private Integer calcUnit;
+
+}
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/CalculateRuleController.java b/ycl-server/src/main/java/com/ycl/platform/controller/CalculateRuleController.java
index e4218cd..30d5dc4 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/CalculateRuleController.java
+++ b/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')")
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/CalculateRuleMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/CalculateRuleMapper.java
index c0aa17e..4b3fa26 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/CalculateRuleMapper.java
+++ b/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);
}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/ICalculateRuleService.java b/ycl-server/src/main/java/com/ycl/platform/service/ICalculateRuleService.java
index 2be0456..d0db182 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/ICalculateRuleService.java
+++ b/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);
}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateRuleServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateRuleServiceImpl.java
index 39896a1..0283e71 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateRuleServiceImpl.java
+++ b/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);
+ }
}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java
index c3e1b55..9ea9b05 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java
+++ b/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);
}
// 鎵归噺淇濆瓨瑙勫垯
diff --git a/ycl-server/src/main/resources/mapper/zgyw/CalculateRuleMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CalculateRuleMapper.xml
index ec90956..f22190c 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/CalculateRuleMapper.xml
+++ b/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=",">
--
Gitblit v1.8.0