From c2fb54cf6794f250b1746c3f37e8403b516c1549 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期日, 08 十二月 2024 22:30:26 +0800
Subject: [PATCH] 导入规则
---
ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 55 insertions(+), 4 deletions(-)
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 f01b16e..7bd7178 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
@@ -4,6 +4,7 @@
import com.alibaba.excel.read.listener.PageReadListener;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.alibaba.fastjson2.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -33,14 +34,13 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
+import java.io.IOException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -159,6 +159,57 @@
}
@Override
+ public AjaxResult importRule(MultipartFile file, TContract tContract) throws IOException {
+
+ // 鑾峰彇鍚堝悓Excel瑙勫垯
+ List<CalculateRule> list = new ArrayList<>();
+ if(file!=null) {
+ EasyExcel.read(file.getInputStream(), CalculateRule.class, new PageReadListener<CalculateRule>(list::addAll)).sheet().doRead();
+
+ // 閬嶅巻鐖跺瓙鍏崇郴
+ List<CalculateRule> calculateRulesToSave = new ArrayList<>();
+ for (CalculateRule calculateRule : list) {
+ // 鍒ゆ柇鏁版嵁瀹屾暣鎬�
+ if (ObjectUtils.isEmpty(calculateRule.getDeductCategory())) {
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return AjaxResult.warn("璇烽�夋嫨" + calculateRule.getRuleName() + calculateRule.getRuleCondition() + "鎵e垎鏂瑰紡");
+ }
+ if (RuleDeductCategoryEnum.MULTIPLY_POINTS_AFTER_DIVIDING_QUANTITY.equals(calculateRule.getDeductCategory()) && ObjectUtils.isEmpty(calculateRule.getCalcUnit())) {
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return AjaxResult.warn("璇峰~鍐�" + calculateRule.getRuleName() + calculateRule.getRuleCondition() + "闄や互鏁伴噺");
+ }
+ if (ObjectUtils.isEmpty(calculateRule.getCalcFraction())) {
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return AjaxResult.warn("璇峰~鍐�" + calculateRule.getRuleName() + calculateRule.getRuleCondition() + "鎵e垎鏁板��");
+ }
+ // 淇濆瓨瑙勫垯
+ if (StringUtils.isNotBlank(calculateRule.getRuleName())) {
+ calculateRule.setContractId(tContract.getId().intValue());
+ calculateRule.setCreateTime(DateUtils.getNowDate());
+ calculateRule.setUpdateTime(DateUtils.getNowDate());
+ calculateRulesToSave.add(calculateRule);
+ }
+ }
+ if (!CollectionUtils.isEmpty(calculateRulesToSave)) {
+ //鍒犻櫎鍘熻鍒�
+ calculateRuleService.remove(new QueryWrapper<CalculateRule>().eq("contract_id", tContract.getId()));
+ // 鎵归噺淇濆瓨瑙勫垯
+ calculateRuleService.saveBatch(calculateRulesToSave);
+ }
+ }
+ List<CalculateMoneyRule> moneyRule = JSON.parseArray(tContract.getRuleList(), CalculateMoneyRule.class).stream().peek(
+ calculateMoneyRule -> calculateMoneyRule.setContractId(tContract.getId().intValue())
+ ).collect(Collectors.toList());
+ if (!CollectionUtils.isEmpty(moneyRule)) {
+ //鍒犻櫎鍘熻鍒�
+ calculateMoneyRuleService.remove(new QueryWrapper<CalculateMoneyRule>().eq("contract_id",tContract.getId()));
+ //鎵归噺淇濆瓨鑰冩牳缁撴灉搴旂敤瑙勫垯
+ calculateMoneyRuleService.saveBatch(moneyRule);
+ }
+ return AjaxResult.success("鎿嶄綔鎴愬姛");
+ }
+
+ @Override
public Result selectAll(ContractQuery query) {
IPage<ContractVO> page = PageUtil.getPage(query, ContractVO.class);
query.setUnitId(SecurityUtils.getUnitId());
--
Gitblit v1.8.0