From b20931da45368031ec19e37816b6879bdcba528e Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期五, 26 七月 2024 17:51:51 +0800 Subject: [PATCH] feat:合同导入 --- ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CalculateRule.java | 15 +--- ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateRuleServiceImpl.java | 42 ------------- ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java | 53 ++++++----------- ycl-server/src/main/java/com/ycl/platform/service/ICalculateRuleService.java | 9 --- ycl-server/src/main/java/com/ycl/handler/CustomCellWriteHandler.java | 6 +- 5 files changed, 28 insertions(+), 97 deletions(-) diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CalculateRule.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CalculateRule.java index 22e3f62..2e2cb7e 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CalculateRule.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CalculateRule.java @@ -7,12 +7,10 @@ import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; -import com.ycl.system.domain.TreeNode; import enumeration.converter.RuleDeductCategoryConverter; import enumeration.general.RuleDeductCategoryEnum; import lombok.Data; -import java.io.Serial; import java.util.Date; /** @@ -25,10 +23,12 @@ @ExcelIgnoreUnannotated @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, verticalAlignment = VerticalAlignmentEnum.CENTER) @TableName("t_calculate_rule") -public class CalculateRule extends TreeNode { +public class CalculateRule { - @Serial - private static final long serialVersionUID = 1L; + /** + * id + */ + private Integer id; /** * 鍚堝悓id @@ -40,11 +40,6 @@ */ @ExcelProperty("鑰冩牳鍐呭") private String ruleName; - - /** - * 鍏宠仈涓婄骇id - */ - private Long parentId; /** * 瑙勫垯鏉′欢 diff --git a/ycl-server/src/main/java/com/ycl/handler/CustomCellWriteHandler.java b/ycl-server/src/main/java/com/ycl/handler/CustomCellWriteHandler.java index acb9559..41b9066 100644 --- a/ycl-server/src/main/java/com/ycl/handler/CustomCellWriteHandler.java +++ b/ycl-server/src/main/java/com/ycl/handler/CustomCellWriteHandler.java @@ -197,7 +197,7 @@ private static List<CalculateRule> getExcelData() { ArrayList<CalculateRule> list = new ArrayList<>(); CalculateRule calculateRule1 = new CalculateRule(); - calculateRule1.setId(1L); + calculateRule1.setId(1); calculateRule1.setRuleName("瑙嗛骞冲潎鍦ㄧ嚎鐜�"); calculateRule1.setRuleCondition("鈮�98%"); calculateRule1.setMax(98D); @@ -228,7 +228,7 @@ calculateRule33.setCalcFraction(10.00); list.add(calculateRule33); CalculateRule calculateRule4 = new CalculateRule(); - calculateRule4.setId(2L); + calculateRule4.setId(2); calculateRule4.setRuleName("鍓嶇鎰熺煡婧愭不鐞嗗伐浣�"); calculateRule4.setRuleCondition("鏃堕挓鍚屾锛堣秴杩嚶�3绉掍负涓嶅悎鏍硷級"); calculateRule4.setDeductCategory(RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY); @@ -243,7 +243,7 @@ calculateRule6.setRuleCondition("涓�鏈轰竴妗�"); list.add(calculateRule6); CalculateRule calculateRule5 = new CalculateRule(); - calculateRule5.setId(3L); + calculateRule5.setId(3); calculateRule5.setRuleName("鍚庡彴绯荤粺鐨勪繚闅�"); calculateRule5.setRuleCondition("鍗曟鏁呴殰鏃堕暱鑻ヨ秴鍑�72灏忔椂涓嶈冻144灏忔椂鐨勶紝姣忚秴鍑�12灏忔椂锛堜笉瓒�12灏忔椂鎸�12灏忔椂璁★級"); calculateRule5.setMax(144D); 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 d0db182..22295fa 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 @@ -2,9 +2,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; @@ -62,13 +60,6 @@ * @return 缁撴灉 */ public int deleteDefaultRuleById(Long id); - - /** - * 璇诲彇Excel鏁版嵁 - * - * @param file 鏂囦欢 - */ - List<CalculateRule> readExcel(MultipartFile file); /** * 鏍规嵁鍚堝悓id鏌ヨ瑙勫垯 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 0cadd77..34c406f 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 @@ -1,12 +1,8 @@ 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; @@ -14,11 +10,8 @@ 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; /** @@ -102,44 +95,11 @@ 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; - } - @Override public List<CalculateRule> getRuleListByContractId(Integer contractId) { - List<CalculateRule> list = new LambdaQueryChainWrapper<>(calculateRuleMapper) + return new LambdaQueryChainWrapper<>(calculateRuleMapper) .eq(CalculateRule::getContractId, contractId) .list(); - return TreeUtils.build(list, 0L); } @Override 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 ba2cb87..346b141 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 @@ -1,6 +1,7 @@ package com.ycl.platform.service.impl; import com.alibaba.excel.EasyExcel; +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.metadata.IPage; @@ -26,6 +27,7 @@ import enumeration.general.RuleDeductCategoryEnum; import jakarta.servlet.http.HttpServletResponse; import lombok.AllArgsConstructor; +import lombok.SneakyThrows; import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -78,7 +80,7 @@ private List<CalculateRule> getExcelData() { ArrayList<CalculateRule> list = new ArrayList<>(); CalculateRule calculateRule1 = new CalculateRule(); - calculateRule1.setId(1L); + calculateRule1.setId(1); calculateRule1.setRuleName("瑙嗛骞冲潎鍦ㄧ嚎鐜�"); calculateRule1.setRuleCondition("鈮�98%"); calculateRule1.setMax(98D); @@ -109,7 +111,7 @@ calculateRule33.setCalcFraction(10.00); list.add(calculateRule33); CalculateRule calculateRule4 = new CalculateRule(); - calculateRule4.setId(2L); + calculateRule4.setId(2); calculateRule4.setRuleName("鍓嶇鎰熺煡婧愭不鐞嗗伐浣�"); calculateRule4.setRuleCondition("鏃堕挓鍚屾锛堣秴杩嚶�3绉掍负涓嶅悎鏍硷級"); calculateRule4.setDeductCategory(RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY); @@ -118,13 +120,17 @@ CalculateRule calculateRule7 = new CalculateRule(); calculateRule7.setRuleName("鍓嶇鎰熺煡婧愭不鐞嗗伐浣�"); calculateRule7.setRuleCondition("OSD鏍囪瘑"); + calculateRule7.setDeductCategory(RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY); + calculateRule7.setCalcFraction(0.1); list.add(calculateRule7); CalculateRule calculateRule6 = new CalculateRule(); calculateRule6.setRuleName("鍓嶇鎰熺煡婧愭不鐞嗗伐浣�"); calculateRule6.setRuleCondition("涓�鏈轰竴妗�"); + calculateRule6.setDeductCategory(RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY); + calculateRule6.setCalcFraction(0.1); list.add(calculateRule6); CalculateRule calculateRule5 = new CalculateRule(); - calculateRule5.setId(3L); + calculateRule5.setId(3); calculateRule5.setRuleName("鍚庡彴绯荤粺鐨勪繚闅�"); calculateRule5.setRuleCondition("鍗曟鏁呴殰鏃堕暱鑻ヨ秴鍑�72灏忔椂涓嶈冻144灏忔椂鐨勶紝姣忚秴鍑�12灏忔椂锛堜笉瓒�12灏忔椂鎸�12灏忔椂璁★級"); calculateRule5.setMax(144D); @@ -138,17 +144,18 @@ @Override @Transactional + @SneakyThrows public AjaxResult importData(MultipartFile file, TContract tContract) { // 淇濆瓨鍚堝悓 tContract.setCreateTime(DateUtils.getNowDate()); save(tContract); - List<CalculateRule> list = calculateRuleService.readExcel(file); + + // 鑾峰彇鍚堝悓Excel瑙勫垯 + List<CalculateRule> list = new ArrayList<>(); + EasyExcel.read(file.getInputStream(), CalculateRule.class, new PageReadListener<CalculateRule>(list::addAll)).sheet().doRead(); // 閬嶅巻鐖跺瓙鍏崇郴 List<CalculateRule> calculateRulesToSave = new ArrayList<>(); - CalculateRule fu1 = new CalculateRule(); - CalculateRule fu2 = new CalculateRule(); - boolean fuNew = true; for (CalculateRule calculateRule : list) { // 鍒ゆ柇鏁版嵁瀹屾暣鎬� if (ObjectUtils.isEmpty(calculateRule.getDeductCategory())) { @@ -163,35 +170,13 @@ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return AjaxResult.warn("璇峰~鍐�" + calculateRule.getRuleName() + calculateRule.getRuleCondition() + "鎵e垎鏁板��"); } - // 淇濆瓨鐖惰鍒欒幏鍙栫埗id + // 淇濆瓨瑙勫垯 if (StringUtils.isNotBlank(calculateRule.getRuleName())) { - 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; + calculateRule.setContractId(tContract.getId().intValue()); + calculateRule.setCreateTime(DateUtils.getNowDate()); + calculateRule.setUpdateTime(DateUtils.getNowDate()); + calculateRulesToSave.add(calculateRule); } - // 淇濆瓨绗簩灞傜埗瑙勫垯鑾峰彇绗簩灞傜埗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(fuNew ? fu1.getId() : fu2.getId()); - calculateRulesToSave.add(calculateRule); } // 鎵归噺淇濆瓨瑙勫垯 calculateRuleService.saveBatch(calculateRulesToSave); -- Gitblit v1.8.0