From 478d7f0f54b20434f863987e5d11d4472d8844b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Fri, 5 Jul 2024 16:00:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B8=82=E5=9C=BA=E6=B3=95=E8=A7=84=E5=BA=93?= =?UTF-8?q?=E6=B8=85=E5=8D=95=E6=8E=A5=E5=8F=A3=E6=96=B0=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MarketStandardController.java | 4 +- .../MarketStandardDetailController.java | 77 ++++++++++++++++-- .../ILawsMarketStandardDetailService.java | 29 +++++++ .../service/ILawsMarketStandardService.java | 2 +- .../LawsMarketStandardDetailServiceImpl.java | 42 +++++++--- .../impl/LawsMarketStandardServiceImpl.java | 20 +---- template/导入模板-市场法规清单.xlsx | Bin 17058 -> 10416 bytes 7 files changed, 135 insertions(+), 39 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardController.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardController.java index 4cdf81ca..69b5ff30 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardController.java @@ -137,8 +137,8 @@ public class MarketStandardController { @PostMapping(value = "/add") @RequiresPermissions("marketStandard:add") public Result add(@RequestBody MarketStandardDetailVO marketStandardDetailVO) { - this.marketStandardService.add(marketStandardDetailVO); - return Result.OK("新增成功!"); + String id = this.marketStandardService.add(marketStandardDetailVO); + return Result.OK(id); } /** diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardDetailController.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardDetailController.java index 43eb9316..6a89cdb9 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardDetailController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/controller/MarketStandardDetailController.java @@ -1,18 +1,11 @@ package com.jero.modules.laws.marketStandard.controller; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.jero.common.api.vo.Result; -import com.jero.common.api.vo.ResultCommon; import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.aspect.annotation.Translation; -import com.jero.common.util.MessageUtils; -import com.jero.modules.laws.marketStandard.entity.LawsMarketStandard; import com.jero.modules.laws.marketStandard.entity.LawsMarketStandardDetail; -import com.jero.modules.laws.marketStandard.entity.MarketStandardDetailVO; import com.jero.modules.laws.marketStandard.service.ILawsMarketStandardDetailService; -import com.jero.modules.laws.marketStandard.service.ILawsMarketStandardService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @@ -24,9 +17,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.util.Arrays; import java.util.List; import java.util.Map; @@ -56,6 +47,74 @@ public class MarketStandardDetailController { return lawsMarketStandardDetailService.getList(manifestId,manifestVersion); } + + /** + * 新增 + * + * @param marketStandardDetail + * @return + */ + @AutoLog(value = "外部标准库-市场法规清单-新增") + @ApiOperation(value = "外部标准库-市场法规清单-新增", notes = "外部标准库-市场法规清单-新增") + @ApiOperationSupport(order = 5) + @PostMapping(value = "/add") + @RequiresPermissions("marketStandard:add") + public Result add(@RequestBody LawsMarketStandardDetail marketStandardDetail) { + return lawsMarketStandardDetailService.add(marketStandardDetail); + } + + /** + * 编辑 + * + * @param marketStandardDetail + * @return + */ + @AutoLog(value = "外部标准库-市场法规清单-编辑") + @ApiOperation(value = "外部标准库-市场法规清单-编辑", notes = "外部标准库-市场法规清单-编辑") + @ApiOperationSupport(order = 6) + @PostMapping(value = "/edit") + @RequiresPermissions("marketStandard:edit") + public Result edit(@RequestBody LawsMarketStandardDetail marketStandardDetail) { + return lawsMarketStandardDetailService.edit(marketStandardDetail); + } + + + /** + * 删除 + * + * @param map + * @return + */ + @AutoLog(value = "外部标准库-市场法规清单-删除") + @ApiOperation(value = "外部标准库-市场法规清单-删除", notes = "外部标准库-市场法规清单-删除") + @ApiOperationSupport(order = 4) + @PostMapping(value = "/delete") + @RequiresPermissions("marketStandard:deleteBatch") + public Result delete(@RequestBody Map map) { + if (!map.containsKey("id") || StringUtils.isEmpty(map.get("id"))) { + return Result.error("请选择数据!"); + } + return lawsMarketStandardDetailService.deleteById(map.get("id")); + } + + /** + * 批量删除 + * + * @param map + * @return + */ + @AutoLog(value = "外部标准库-市场法规清单-批量删除") + @ApiOperation(value = "外部标准库-市场法规清单-批量删除", notes = "外部标准库-市场法规清单-批量删除") + @ApiOperationSupport(order = 4) + @PostMapping(value = "/deleteBatch") + @RequiresPermissions("marketStandard:deleteBatch") + public Result deleteBatch(@RequestBody Map map) { + if (!map.containsKey("ids") || StringUtils.isEmpty(map.get("ids"))) { + return Result.error("请选择数据!"); + } + return lawsMarketStandardDetailService.deleteBatchById(map.get("id")); + } + /** * 导入 * diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/ILawsMarketStandardDetailService.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/ILawsMarketStandardDetailService.java index 4e644a98..a901de5a 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/ILawsMarketStandardDetailService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/ILawsMarketStandardDetailService.java @@ -3,6 +3,7 @@ package com.jero.modules.laws.marketStandard.service; import com.jero.common.api.vo.Result; import com.jero.modules.laws.marketStandard.entity.LawsMarketStandardDetail; import com.baomidou.mybatisplus.extension.service.IService; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; @@ -34,4 +35,32 @@ public interface ILawsMarketStandardDetailService extends IService add(LawsMarketStandardDetail marketStandardDetail); + + /** + * 编辑 + * @param marketStandardDetail + * @return + */ + Result edit(LawsMarketStandardDetail marketStandardDetail); + + /** + * 删除 + * @param id + * @return + */ + Result deleteById(String id); + + /** + * 批量删除 + * @param ids + * @return + */ + Result deleteBatchById(String ids); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/ILawsMarketStandardService.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/ILawsMarketStandardService.java index 676f00af..0e45fdf5 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/ILawsMarketStandardService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/ILawsMarketStandardService.java @@ -61,7 +61,7 @@ public interface ILawsMarketStandardService extends IService * 新增 * @param marketStandardDetailVO */ - void add(MarketStandardDetailVO marketStandardDetailVO); + String add(MarketStandardDetailVO marketStandardDetailVO); /** * 编辑 diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardDetailServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardDetailServiceImpl.java index a241dc59..96b10987 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardDetailServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardDetailServiceImpl.java @@ -3,19 +3,15 @@ package com.jero.modules.laws.marketStandard.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.api.vo.Result; -import com.jero.common.exception.JeroBootException; -import com.jero.common.util.ImportExcelUtil; import com.jero.modules.laws.marketStandard.entity.LawsMarketStandard; import com.jero.modules.laws.marketStandard.entity.LawsMarketStandardDetail; -import com.jero.modules.laws.marketStandard.service.ILawsMarketStandardDetailService; import com.jero.modules.laws.marketStandard.mapper.LawsMarketStandardDetailMapper; +import com.jero.modules.laws.marketStandard.service.ILawsMarketStandardDetailService; import com.jero.modules.laws.marketStandard.service.ILawsMarketStandardService; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.entity.ImportParams; -import org.jeecgframework.poi.word.WordExportUtil; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; @@ -23,9 +19,10 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.*; -import java.nio.charset.StandardCharsets; -import java.util.*; -import java.util.stream.Collectors; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; /** * @author ThinkBook @@ -75,9 +72,8 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl list = new ArrayList<>(); ImportParams params = new ImportParams(); params.setHeadRows(0); - params.setSheetNum(1); - // 校验excel 字段是否正确 -// boolean b = ImportExcelUtil.checkTemplateTitle(file, LawsMarketStandardDetail.class, null, 0); + // todo 校验excel 字段是否正确 +// boolean b = ImportExcelUtil.checkTemplateTitle(file, LawsMarketStandardDetail.class, 0, 0); // if (!b) { // throw new JeroBootException("excel文件表头错误,请重新下载"); // } @@ -119,6 +115,30 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl add(LawsMarketStandardDetail marketStandardDetail) { + save(marketStandardDetail); + return Result.OK("操作成功"); + } + + @Override + public Result edit(LawsMarketStandardDetail marketStandardDetail) { + updateById(marketStandardDetail); + return Result.OK("操作成功"); + } + + @Override + public Result deleteById(String id) { + removeById(id); + return Result.OK("删除成功"); + } + + @Override + public Result deleteBatchById(String ids) { + removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功"); + } } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java index e9960574..a63af266 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/service/impl/LawsMarketStandardServiceImpl.java @@ -123,7 +123,7 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl lists = marketStandardDetailVO.getLists(); - lists.forEach(e -> e.setManifestId(manifest.getId())); - lawsMarketStandardDetailService.saveBatch(lists); + return manifest.getId(); } /** @@ -167,6 +165,7 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl listDict = map.get("market_state"); List country = listDict.stream().map(DictModel::getText).collect(Collectors.toList()); // 国家/地区+自定义+固定字段,自定义字段:预留手填,当前默认不填;固定字段:车型需满足标准法规清单 - manifest.setManifestName(country + manifest.getCustomColumnName() + "车型需满足标准法规清单"); + manifest.setManifestName(String.join("",country) + manifest.getCustomColumnName() + "车型需满足标准法规清单"); updateById(manifest); - // 删除旧数据 - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.in(LawsMarketStandardDetail::getManifestId, manifest.getId()); - lawsMarketStandardDetailService.remove(wrapper); - // 添加新数据 - List lists = marketStandardDetailVO.getLists(); - lists.forEach(e -> { - e.setManifestId(manifest.getId()); - e.setId(null); - }); - lawsMarketStandardDetailService.saveBatch(lists); } @Override diff --git a/template/导入模板-市场法规清单.xlsx b/template/导入模板-市场法规清单.xlsx index 7183995b5813960785aa40d7cc428cf86faffba5..585a98c49a84f52896775b5711a4dc8927d3e2f3 100644 GIT binary patch literal 10416 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 literal 17058 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