From 26065d61b0048fe3ee11ffd41edf1c5583e1bba3 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 18:28:41 +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=B7=BB=E5=8A=A0=E5=8F=91=E5=B8=83=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MarketStandardDetailController.java | 24 ++++++++- .../ILawsMarketStandardDetailService.java | 15 ++++++ .../service/ILawsMarketStandardService.java | 6 +++ .../LawsMarketStandardDetailServiceImpl.java | 48 ++++++++++++++++++ .../impl/LawsMarketStandardServiceImpl.java | 49 ++++++++++++++----- 5 files changed, 127 insertions(+), 15 deletions(-) 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 c923fb7b..3f69e9d7 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 @@ -11,7 +11,6 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.apache.poi.ss.formula.functions.T; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -19,7 +18,6 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.util.List; import java.util.Map; @@ -82,6 +80,28 @@ public class MarketStandardDetailController { return lawsMarketStandardDetailService.add(marketStandardDetail); } + + /** + * 复制 + * + * @param map + * @return + */ + @AutoLog(value = "外部标准库-市场法规清单-新增") + @ApiOperation(value = "外部标准库-市场法规清单-新增", notes = "外部标准库-市场法规清单-新增") + @ApiOperationSupport(order = 5) + @PostMapping(value = "/copy") + @RequiresPermissions("marketStandard:copy") + public Result copy(@RequestBody Map map) { + if (!map.containsKey("newId") || StringUtils.isEmpty(map.get("newId"))) { + return Result.error("请选择数据!"); + } + if (!map.containsKey("oldId") || StringUtils.isEmpty(map.get("oldId"))) { + return Result.error("请选择数据!"); + } + return lawsMarketStandardDetailService.copy(map.get("oldId"),map.get("newId")); + } + /** * 编辑 * 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 96b85033..a52aea74 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 @@ -53,6 +53,14 @@ public interface ILawsMarketStandardDetailService extends IService add(LawsMarketStandardDetail marketStandardDetail); + /** + * 复制 + * @param oldId 原始id + * @param newId 新id + * @return + */ + Result copy(String oldId,String newId); + /** * 编辑 * @param marketStandardDetail @@ -73,4 +81,11 @@ public interface ILawsMarketStandardDetailService extends IService deleteBatchById(String ids); + + /** + * 批量保存数据 + * @param oldId + * @param newId + */ + void saveBatchData(String oldId,String newId); } 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 9a107011..a3e3f02b 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 @@ -76,4 +76,10 @@ public interface ILawsMarketStandardService extends IService * @return */ Result publish(String id); + + /** + * 修改清单状态 + * @param id 清单id + */ + void updateStatus(String id); } 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 07a559be..efbe4a17 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 @@ -11,6 +11,7 @@ import com.jero.common.system.vo.LoginUser; 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.entity.MarketStandardDetailVO; import com.jero.modules.laws.marketStandard.mapper.LawsMarketStandardDetailMapper; import com.jero.modules.laws.marketStandard.service.ILawsMarketStandardDetailService; import com.jero.modules.laws.marketStandard.service.ILawsMarketStandardService; @@ -22,6 +23,7 @@ import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.entity.ImportParams; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; @@ -108,6 +110,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl importExcel(MultipartFile file,String manifestId) { List list = new ArrayList<>(); // 校验文件是否为excel @@ -140,6 +143,8 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl add(LawsMarketStandardDetail marketStandardDetail) { LambdaQueryWrapper queryLawsMarketStandardDetail = new LambdaQueryWrapper<>(); queryLawsMarketStandardDetail.eq(LawsMarketStandardDetail::getStandardId,marketStandardDetail.getStandardId()); @@ -184,10 +191,19 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl copy(String oldId,String newId) { + saveBatchData(oldId, newId); + return Result.OK("操作成功"); + } + + @Override + @Transactional(rollbackFor = JeroBootException.class) public Result edit(LawsMarketStandardDetail marketStandardDetail) { LambdaQueryWrapper queryLawsMarketStandardDetail = new LambdaQueryWrapper<>(); queryLawsMarketStandardDetail.eq(LawsMarketStandardDetail::getStandardId,marketStandardDetail.getStandardId()); @@ -198,22 +214,54 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl deleteById(String id) { checkData(id); + LawsMarketStandardDetail lawsMarketStandardDetail = getById(id); + if(Objects.isNull(lawsMarketStandardDetail)){ + throw new JeroBootException("数据不存在"); + } removeById(id); + // 更细状态 + marketStandardService.updateStatus(lawsMarketStandardDetail.getManifestId()); return Result.OK("删除成功"); } @Override + @Transactional(rollbackFor = JeroBootException.class) public Result deleteBatchById(String ids) { checkData(ids); + LawsMarketStandardDetail lawsMarketStandardDetail = getById(ids.split(",")[0]); + if(Objects.isNull(lawsMarketStandardDetail)){ + throw new JeroBootException("数据不存在"); + } + // 更细状态 + marketStandardService.updateStatus(lawsMarketStandardDetail.getManifestId()); removeByIds(Arrays.asList(ids.split(","))); return Result.OK("批量删除成功"); } + + @Override + public void saveBatchData(String oldId, String newId) { + LambdaQueryWrapper queryLawsMarketStandardDetail = new LambdaQueryWrapper<>(); + queryLawsMarketStandardDetail.eq(LawsMarketStandardDetail::getManifestId, oldId); + List listLawsMarketStandardDetail = list(queryLawsMarketStandardDetail); + if(CollectionUtils.isEmpty(listLawsMarketStandardDetail)){ + return; + } + for (LawsMarketStandardDetail lawsMarketStandardDetail : listLawsMarketStandardDetail) { + lawsMarketStandardDetail.setId(null); + lawsMarketStandardDetail.setManifestId(newId); + } + saveBatch(listLawsMarketStandardDetail); + } + // 验证数据权限 private void checkData(String id) { LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); 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 3f5ce2f8..5e9db925 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 @@ -171,19 +171,14 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl> map = sysBaseAPI.translateManyDict("market_state",manifest.getCountry()); - List listDict = map.get("market_state"); - List country = listDict.stream().map(DictModel::getText).collect(Collectors.toList()); - // 国家/地区+自定义+固定字段,自定义字段:预留手填,当前默认不填;固定字段:车型需满足标准法规清单 - manifest.setManifestName(String.join("",country) + manifest.getCustomColumnName() + "车型需满足标准法规清单"); - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - manifest.setAuthor(sysUser.getId()); - manifest.setVersionFlag(lawsMarketStandardOld.getVersionFlag()); - save(manifest); + // 将旧数据拷贝一份 + syncData(lawsMarketStandardOld); + // 新数据版本设置为空,状态设置为编辑中 + LambdaUpdateWrapper update = new LambdaUpdateWrapper<>(); + update.set(LawsMarketStandard::getManifestVersion,""); + update.set(LawsMarketStandard::getManifestStatus,MarketStandardConstants.MANIFEST_STATUS_EDIT); + update.eq(LawsMarketStandard::getId,lawsMarketStandardOld.getId()); + update(update); }else{ List listCountry = Arrays.stream(manifest.getCountry().split(",")).sorted().collect(Collectors.toList()); List listOldCountry = Arrays.stream(lawsMarketStandardOld.getCountry().split(",")).sorted().collect(Collectors.toList());; @@ -352,6 +347,34 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl update = new LambdaUpdateWrapper<>(); + update.set(LawsMarketStandard::getManifestVersion,""); + update.set(LawsMarketStandard::getManifestStatus,MarketStandardConstants.MANIFEST_STATUS_EDIT); + update.eq(LawsMarketStandard::getId,id); + update(update); + } + } + + private void syncData(LawsMarketStandard lawsMarketStandardOld) { + String oldId = lawsMarketStandardOld.getId(); + lawsMarketStandardOld.setId(null); + save(lawsMarketStandardOld); + // 添加标准数据 + lawsMarketStandardDetailService.saveBatchData(oldId, lawsMarketStandardOld.getId()); + } }