From 7ce7861b02a6a4c4fe53d6292d3d216a65551371 Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期二, 23 四月 2024 10:47:47 +0800 Subject: [PATCH] 合同导入模板 --- ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java | 163 +++++++++++++++++++++++++++++------------------------ 1 files changed, 89 insertions(+), 74 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 f3296a3..988d72f 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,95 +1,110 @@ package com.ycl.platform.service.impl; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.write.merge.LoopMergeStrategy; +import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ycl.handler.CommentWriteHandler; +import com.ycl.handler.CustomSheetWriteHandler; +import com.ycl.platform.domain.entity.CalculateRule; import com.ycl.platform.domain.entity.TContract; import com.ycl.platform.mapper.TContractMapper; import com.ycl.platform.service.ITContractService; -import org.springframework.beans.factory.annotation.Autowired; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.stereotype.Service; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; import java.util.List; /** * 銆愯濉啓鍔熻兘鍚嶇О銆慡ervice涓氬姟灞傚鐞� - * + * * @author ruoyi * @date 2024-03-12 */ @Service -public class TContractServiceImpl extends ServiceImpl<TContractMapper, TContract> implements ITContractService -{ - @Autowired - private TContractMapper tContractMapper; - - /** - * 鏌ヨ銆愯濉啓鍔熻兘鍚嶇О銆� - * - * @param id 銆愯濉啓鍔熻兘鍚嶇О銆戜富閿� - * @return 銆愯濉啓鍔熻兘鍚嶇О銆� - */ +public class TContractServiceImpl extends ServiceImpl<TContractMapper, TContract> implements ITContractService { @Override - public TContract selectTContractById(Long id) - { - return tContractMapper.selectTContractById(id); + public void importTemplate(HttpServletResponse response) { + try { + List<CalculateRule> list = getExcelData(); + ArrayList<String> arrayList = new ArrayList<>(); + arrayList.add("鎵f寚瀹氬垎鏁�"); + arrayList.add("鍒嗘暟涔樹互鏁伴噺"); + arrayList.add("闄や互鏁伴噺鍚庝箻浠ュ垎鏁�"); + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("瀵煎叆鍚堝悓妯℃澘", StandardCharsets.UTF_8).replace("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); + // 绗竴鍒椼�佺浜屽垪涓婁笅鍚堝苟3琛� + LoopMergeStrategy loopMergeStrategy1 = new LoopMergeStrategy(3, 0); + LoopMergeStrategy loopMergeStrategy2 = new LoopMergeStrategy(3, 1); + EasyExcel.write(response.getOutputStream(), CalculateRule.class) + .registerWriteHandler(loopMergeStrategy1) + .registerWriteHandler(loopMergeStrategy2) + // 鑷�傚簲鍒楀 + .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) + // 涓嬫媺妗� + .registerWriteHandler(new CustomSheetWriteHandler(arrayList)) + // 鏍囨敞 + .registerWriteHandler(new CommentWriteHandler()) + .sheet("鍚堝悓瀵煎叆妯℃澘").doWrite(list); + } catch (Exception e) { + throw new RuntimeException(e); + } } - /** - * 鏌ヨ銆愯濉啓鍔熻兘鍚嶇О銆戝垪琛� - * - * @param tContract 銆愯濉啓鍔熻兘鍚嶇О銆� - * @return 銆愯濉啓鍔熻兘鍚嶇О銆� - */ - @Override - public List<TContract> selectTContractList(TContract tContract) - { - return tContractMapper.selectTContractList(tContract); - } - - /** - * 鏂板銆愯濉啓鍔熻兘鍚嶇О銆� - * - * @param tContract 銆愯濉啓鍔熻兘鍚嶇О銆� - * @return 缁撴灉 - */ - @Override - public int insertTContract(TContract tContract) - { - return tContractMapper.insertTContract(tContract); - } - - /** - * 淇敼銆愯濉啓鍔熻兘鍚嶇О銆� - * - * @param tContract 銆愯濉啓鍔熻兘鍚嶇О銆� - * @return 缁撴灉 - */ - @Override - public int updateTContract(TContract tContract) - { - return tContractMapper.updateTContract(tContract); - } - - /** - * 鎵归噺鍒犻櫎銆愯濉啓鍔熻兘鍚嶇О銆� - * - * @param ids 闇�瑕佸垹闄ょ殑銆愯濉啓鍔熻兘鍚嶇О銆戜富閿� - * @return 缁撴灉 - */ - @Override - public int deleteTContractByIds(Long[] ids) - { - return tContractMapper.deleteTContractByIds(ids); - } - - /** - * 鍒犻櫎銆愯濉啓鍔熻兘鍚嶇О銆戜俊鎭� - * - * @param id 銆愯濉啓鍔熻兘鍚嶇О銆戜富閿� - * @return 缁撴灉 - */ - @Override - public int deleteTContractById(Long id) - { - return tContractMapper.deleteTContractById(id); + private List<CalculateRule> getExcelData() { + ArrayList<CalculateRule> list = new ArrayList<>(); + CalculateRule calculateRule1 = new CalculateRule(); + calculateRule1.setId(1L); + calculateRule1.setRuleName("瑙嗛骞冲潎鍦ㄧ嚎鐜�"); + calculateRule1.setRuleDesc("锛�1锛夎棰戝湪绾跨巼=瑙嗛鍦ㄧ嚎鏁伴噺梅鍓嶇鏈嶅姟閰嶇疆鏁帮紙搴旀墸闄や笉鍙姉鍔涙垨涓庝腑鏍囦汉鏈嶅姟鏃犲叧閫犳垚鐨勬帀绾块櫎澶栥�傦級"); + calculateRule1.setRuleCondition("鈮�98%"); + calculateRule1.setDeductCategory("鎵f寚瀹氬垎鏁�"); + calculateRule1.setCalcFraction(0.00); + list.add(calculateRule1); + CalculateRule calculateRule2 = new CalculateRule(); + calculateRule2.setRuleDesc("锛�2锛夎棰戝钩鍧囧湪绾跨巼锛氬綋鏈堟瘡鏃ヨ棰戝湪绾跨巼鐨勫钩鍧囧�笺��"); + calculateRule2.setRuleCondition("95%鈮よ棰戝钩鍧囧湪绾跨巼锛�98%"); + calculateRule2.setDeductCategory("鎵f寚瀹氬垎鏁�"); + calculateRule2.setCalcFraction(5.00); + list.add(calculateRule2); + CalculateRule calculateRule3 = new CalculateRule(); + calculateRule3.setRuleDesc("锛�3锛夎棰戝湪绾跨巼淇濈暀鏁存暟骞朵笖鍚戜笅鍙栨暣銆�"); + calculateRule3.setRuleCondition("90%鈮よ棰戝钩鍧囧湪绾跨巼锛�95%"); + calculateRule3.setDeductCategory("鎵f寚瀹氬垎鏁�"); + calculateRule3.setCalcFraction(10.00); + list.add(calculateRule3); + CalculateRule calculateRule4 = new CalculateRule(); + calculateRule4.setId(2L); + calculateRule4.setRuleName("鍓嶇鎰熺煡婧愭不鐞嗗伐浣�"); + calculateRule4.setRuleDesc("鏃堕挓鍚屾锛堣秴杩嚶�3绉掍负涓嶅悎鏍硷級"); + calculateRule4.setRuleCondition("瑙嗛鐩戞帶鎽勫儚鏈烘椂閽熶笉鍚屾锛�24灏忔椂鍐呮湭淇鐨�"); + calculateRule4.setDeductCategory("鍒嗘暟涔樹互鏁伴噺"); + calculateRule4.setCalcFraction(0.1); + list.add(calculateRule4); + CalculateRule calculateRule7 = new CalculateRule(); + calculateRule7.setRuleName("鈥︹�︹�︹��"); + calculateRule7.setRuleDesc("鈥︹�︹�︹��"); + calculateRule7.setRuleCondition("鈥︹�︹�︹��"); + list.add(calculateRule7); + CalculateRule calculateRule6 = new CalculateRule(); + calculateRule6.setRuleName("鈥︹�︹�︹��"); + calculateRule6.setRuleDesc("鈥︹�︹�︹��"); + calculateRule6.setRuleCondition("鈥︹�︹�︹��"); + list.add(calculateRule6); + CalculateRule calculateRule5 = new CalculateRule(); + calculateRule5.setId(3L); + calculateRule5.setRuleName("鍚庡彴绯荤粺鐨勪繚闅�"); + calculateRule5.setRuleDesc("鍦ㄤ釜鍒澶囨晠闅滀絾涓嶅奖鍝嶈鍔熻兘妯″潡鏁翠綋搴旂敤鎯呭喌涓嬶紝椤诲湪72灏忔椂浠ュ唴鎺掗櫎鏁呴殰銆�"); + calculateRule5.setRuleCondition("鍗曟鏁呴殰鏃堕暱鑻ヨ秴鍑�144灏忔椂浠ュ悗锛屾瘡瓒呭嚭12灏忔椂锛堜笉瓒�12灏忔椂鎸�12灏忔椂璁★級"); + calculateRule5.setDeductCategory("闄や互鏁伴噺鍚庝箻浠ュ垎鏁�"); + calculateRule5.setCalcFraction(2.00); + calculateRule5.setCalcUnit(12); + list.add(calculateRule5); + return list; } } -- Gitblit v1.8.0