From 67683967e7be0e899ced1d460e53080b5098859d Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期二, 23 四月 2024 18:05:53 +0800 Subject: [PATCH] 合同导入、规则、展示 --- ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 55 insertions(+), 2 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 988d72f..810cd7b 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 @@ -3,19 +3,28 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.excel.write.merge.LoopMergeStrategy; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.ICalculateRuleService; import com.ycl.platform.service.ITContractService; +import com.ycl.utils.DateUtils; +import com.ycl.utils.StringUtils; import jakarta.servlet.http.HttpServletResponse; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -25,7 +34,12 @@ * @date 2024-03-12 */ @Service +@AllArgsConstructor public class TContractServiceImpl extends ServiceImpl<TContractMapper, TContract> implements ITContractService { + + private final ICalculateRuleService calculateRuleService; + private final YwUnitServiceImpl ywUnitService; + @Override public void importTemplate(HttpServletResponse response) { try { @@ -87,12 +101,10 @@ 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); @@ -107,4 +119,45 @@ list.add(calculateRule5); return list; } + + @Override + @Transactional + public void importData(MultipartFile file, TContract tContract) { + tContract.setCreateTime(DateUtils.getNowDate()); + tContract.setDeleted("0"); + save(tContract); + List<CalculateRule> list = calculateRuleService.readExcel(file); + + // 閬嶅巻鐖跺瓙鍏崇郴 + List<CalculateRule> calculateRulesToSave = new ArrayList<>(); + CalculateRule temp = new CalculateRule(); + for (CalculateRule calculateRule : list) { + // 鐖惰鍒� + 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.setContractId(tContract.getId().intValue()); + calculateRule.setCreateTime(DateUtils.getNowDate()); + calculateRule.setDeleted(0); + calculateRule.setParentId(temp.getId()); + calculateRulesToSave.add(calculateRule); + } + // 鎵归噺淇濆瓨瑙勫垯 + calculateRuleService.saveBatch(calculateRulesToSave); + } + + @Override + public List<TContract> selectAll() { + return list(new LambdaQueryWrapper<TContract>() + .orderByDesc(TContract::getCreateTime)) + .stream().peek( + tContract -> tContract.setUnitName(ywUnitService.getById(tContract.getUnitId()).getUnitName()) + ).toList(); + } } -- Gitblit v1.8.0