From 1439eb56c4432168d33e229688363f6c59259c07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Sat, 6 Jul 2024 23:23:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=B8=82=E5=9C=BA=E6=B3=95?= =?UTF-8?q?=E8=A7=84=E5=BA=93=E6=B8=85=E5=8D=95=E6=B7=BB=E5=8A=A0=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jero/common/util/ImportExcelUtil.java | 1 + .../controller/MarketStandardController.java | 7 +- .../MarketStandardDetailController.java | 18 +- .../entity/LawsMarketStandard.java | 2 +- .../entity/LawsMarketStandardDetail.java | 8 +- .../entity/LawsMarketStandardDetailExcel.java | 251 ++++++++++++++++++ .../LawsMarketStandardDetailMapper.java | 8 + .../xml/LawsMarketStandardDetailMapper.xml | 16 +- .../mapper/xml/LawsMarketStandardMapper.xml | 4 +- .../service/ILawsMarketStandardService.java | 4 +- .../LawsMarketStandardDetailServiceImpl.java | 113 +++++--- .../impl/LawsMarketStandardServiceImpl.java | 69 +++-- .../excelTemplate/导入模板-市场法规清单.xlsx | Bin 0 -> 10458 bytes .../src/main/resources/application-dev.yml | 1 - template/导入模板-市场法规清单.xlsx | Bin 10416 -> 0 bytes 15 files changed, 426 insertions(+), 76 deletions(-) create mode 100644 laws-modules/src/main/java/com/jero/modules/laws/marketStandard/entity/LawsMarketStandardDetailExcel.java create mode 100644 laws-modules/src/main/resources/excelTemplate/导入模板-市场法规清单.xlsx delete mode 100644 template/导入模板-市场法规清单.xlsx diff --git a/laws-base/laws-base-core/src/main/java/com/jero/common/util/ImportExcelUtil.java b/laws-base/laws-base-core/src/main/java/com/jero/common/util/ImportExcelUtil.java index 7a772694..8de2c6c2 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/common/util/ImportExcelUtil.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/common/util/ImportExcelUtil.java @@ -173,6 +173,7 @@ public class ImportExcelUtil { int i = 0; for (String name : list) { if (!excelList.contains(name)) { + System.out.println(name); i++; } } 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 373347b4..8fa54c1a 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 @@ -98,12 +98,11 @@ public class MarketStandardController { @ApiOperationSupport(order = 4) @PostMapping(value = "/delete") @RequiresPermissions("marketStandard:deleteBatch") - public Result delete(@RequestBody Map map) { + public Result delete(@RequestBody Map map) { if (!map.containsKey("id") || StringUtils.isEmpty(map.get("id"))) { return Result.error("请选择数据!"); } - this.marketStandardService.deleteById(map.get("id")); - return Result.OK("删除成功!"); + return this.marketStandardService.deleteById(map.get("id")); } /** @@ -167,7 +166,7 @@ public class MarketStandardController { @ApiOperation(value = "外部标准库-市场法规清单-发布", notes = "外部标准库-市场法规清单-发布") @ApiOperationSupport(order = 7) @PostMapping(value = "/publish") - @RequiresPermissions("marketStandard:publish") +// @RequiresPermissions("marketStandard:publish") public Result publish(@RequestBody Map map) { if (!map.containsKey("id") || StringUtils.isEmpty(map.get("id"))) { return Result.error("请选择数据!"); 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 3f69e9d7..2e1fb032 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 @@ -41,7 +41,7 @@ public class MarketStandardDetailController { @ApiOperation(value = "外部标准库-市场法规清单详情分页", notes = "外部标准库-市场法规清单详情分页") @GetMapping(value = "/page") @ApiOperationSupport(order = 2) - @RequiresPermissions("marketStandard:page") + @RequiresPermissions("marketStandard:edit") public Result getPage(LawsMarketStandardDetail marketStandardDetail, HttpServletRequest request, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { @@ -58,7 +58,7 @@ public class MarketStandardDetailController { @ApiOperation(value = "外部标准库-市场法规清单详情列表", notes = "外部标准库-市场法规清单详情列表") @GetMapping(value = "/list") @ApiOperationSupport(order = 2) - @RequiresPermissions("marketStandard:detail") + @RequiresPermissions("marketStandard:edit") @Translation public Result list(@RequestParam("manifestId") String manifestId, @RequestParam("manifestVersion") String manifestVersion) { return lawsMarketStandardDetailService.getList(manifestId,manifestVersion); @@ -75,7 +75,7 @@ public class MarketStandardDetailController { @ApiOperation(value = "外部标准库-市场法规清单-新增", notes = "外部标准库-市场法规清单-新增") @ApiOperationSupport(order = 5) @PostMapping(value = "/add") - @RequiresPermissions("marketStandard:add") + @RequiresPermissions("marketStandard:edit") public Result add(@RequestBody LawsMarketStandardDetail marketStandardDetail) { return lawsMarketStandardDetailService.add(marketStandardDetail); } @@ -91,7 +91,7 @@ public class MarketStandardDetailController { @ApiOperation(value = "外部标准库-市场法规清单-新增", notes = "外部标准库-市场法规清单-新增") @ApiOperationSupport(order = 5) @PostMapping(value = "/copy") - @RequiresPermissions("marketStandard:copy") + @RequiresPermissions("marketStandard:edit") public Result copy(@RequestBody Map map) { if (!map.containsKey("newId") || StringUtils.isEmpty(map.get("newId"))) { return Result.error("请选择数据!"); @@ -127,7 +127,7 @@ public class MarketStandardDetailController { @ApiOperation(value = "外部标准库-市场法规清单-根据id获取详情", notes = "外部标准库-市场法规清单-根据id获取详情") @ApiOperationSupport(order = 2) @PostMapping(value = "/getById") - @RequiresPermissions("marketStandard:getById") + @RequiresPermissions("marketStandard:edit") @Translation public Result getById(@RequestParam("id") String id) { return Result.OK(lawsMarketStandardDetailService.getById(id)); @@ -143,7 +143,7 @@ public class MarketStandardDetailController { @ApiOperation(value = "外部标准库-市场法规清单-删除", notes = "外部标准库-市场法规清单-删除") @ApiOperationSupport(order = 4) @PostMapping(value = "/delete") - @RequiresPermissions("marketStandard:deleteBatch") + @RequiresPermissions("marketStandard:edit") public Result delete(@RequestBody Map map) { if (!map.containsKey("id") || StringUtils.isEmpty(map.get("id"))) { return Result.error("请选择数据!"); @@ -161,7 +161,7 @@ public class MarketStandardDetailController { @ApiOperation(value = "外部标准库-市场法规清单-批量删除", notes = "外部标准库-市场法规清单-批量删除") @ApiOperationSupport(order = 4) @PostMapping(value = "/deleteBatch") - @RequiresPermissions("marketStandard:deleteBatch") + @RequiresPermissions("marketStandard:edit") public Result deleteBatch(@RequestBody Map map) { if (!map.containsKey("ids") || StringUtils.isEmpty(map.get("ids"))) { return Result.error("请选择数据!"); @@ -179,7 +179,7 @@ public class MarketStandardDetailController { @ApiOperation(value = "外部标准库-市场法规清单-导入", notes = "外部标准库-市场法规清单-导入") @ApiOperationSupport(order = 7) @PostMapping(value = "/importExcel") - @RequiresPermissions("marketStandard:importExcel") + @RequiresPermissions("marketStandard:edit") public Result importExcel(@RequestParam("file") @ApiParam("文件") MultipartFile file,@RequestParam("manifestId") String manifestId) { return lawsMarketStandardDetailService.importExcel(file, manifestId); } @@ -194,7 +194,7 @@ public class MarketStandardDetailController { @ApiOperation(value = "外部标准库-市场法规清单-下载模板", notes = "外部标准库-市场法规清单-下载模板") @ApiOperationSupport(order = 7) @GetMapping(value = "/downloadTemplate") - @RequiresPermissions("marketStandard:importExcel") + @RequiresPermissions("marketStandard:edit") public void downloadTemplate(HttpServletResponse response) { lawsMarketStandardDetailService.downloadTemplate(response); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/entity/LawsMarketStandard.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/entity/LawsMarketStandard.java index f66a4563..315b40cb 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/entity/LawsMarketStandard.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/entity/LawsMarketStandard.java @@ -124,7 +124,7 @@ public class LawsMarketStandard implements Serializable { * 发布时间 */ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") - @DateTimeFormat(pattern="yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "发布时间") @Excel(name = "发布时间", width = 15, needMerge = true, format = "yyyy-MM-dd") private Date releaseDate; diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/entity/LawsMarketStandardDetail.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/entity/LawsMarketStandardDetail.java index 672d8d09..1b5d3294 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/entity/LawsMarketStandardDetail.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/entity/LawsMarketStandardDetail.java @@ -37,8 +37,8 @@ public class LawsMarketStandardDetail implements Serializable { /** * 创建时间 */ - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") - @DateTimeFormat(pattern="yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "创建时间") private Date createTime; @@ -51,8 +51,8 @@ public class LawsMarketStandardDetail implements Serializable { /** * 更新时间 */ - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") - @DateTimeFormat(pattern="yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "更新时间") private Date updateTime; diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/entity/LawsMarketStandardDetailExcel.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/entity/LawsMarketStandardDetailExcel.java new file mode 100644 index 00000000..5450840d --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/entity/LawsMarketStandardDetailExcel.java @@ -0,0 +1,251 @@ +package com.jero.modules.laws.marketStandard.entity; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.jero.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.Date; + +/** + * + * @TableName laws_market_standard_detail + */ +@TableName(value ="laws_market_standard_detail") +@Data +public class LawsMarketStandardDetailExcel implements Serializable { + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键ID") + private String id; + + /** + * 创建人 + */ + @ApiModelProperty(value = "创建人") + private String createBy; + + /** + * 创建时间 + */ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建时间") + private Date createTime; + + /** + * 更新人 + */ + @ApiModelProperty(value = "更新人") + private String updateBy; + + /** + * 更新时间 + */ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新时间") + private Date updateTime; + + /** + * 所属部门 + */ + @ApiModelProperty(value = "所属部门") + private String orgCode; + + /** + * 0表示未删除,1表示删除 + */ + @TableLogic + @ApiModelProperty(value = "0表示未删除,1表示删除") + private Integer delFlag; + + /** + * 标准id + */ + @ApiModelProperty(value = "标准id") + private String standardId; + + /** + * 标准编号 + */ + @NotBlank(message = "标准编号不能为空") + @ApiModelProperty(value = "标准编号") + @Excel(name = "*标准编号", width = 15) + private String standardNumber; + + /** + * 标准名称 + */ + @ApiModelProperty(value = "标准名称") + @NotBlank(message = "标准名称不能为空") + @Excel(name = "*标准名称", width = 15) + private String standardName; + + /** + * 标准英文名称 + */ + @ApiModelProperty(value = "标准英文名称") + @Excel(name = "标准英文名称", width = 15) + private String standardEnglishName; + + /** + * 新生产车实施日期 + */ + @Excel(name = "*新生产车实施日期", width = 15) + @NotBlank(message = "新生产车实施日期不能为空") + @ApiModelProperty(value = "新生产车实施日期") + private String newProductImplDate; + + /** + * 新认证车实施日期 + */ + @Excel(name = "*新认证车实施日期", width = 15) + @NotBlank(message = "新认证车实施日期不能为空") + @ApiModelProperty(value = "新认证车实施日期") + private String newAuthImplDate; + + /** + * 注册日期 + */ + @Excel(name = "*注册日期", width = 15) + @NotBlank(message = "注册日期不能为空") + @ApiModelProperty(value = "注册日期") + private String registrationDate; + + /** + * 国家 + */ + @Excel(name = "*国家/地区", width = 15,dicCode = "market_state") + @NotBlank(message = "国家/地区不能为空") + @ApiModelProperty(value = "国家") + @Dict(dicCode = "market_state") + private String country; + + /** + * 适用车型 + */ + @Excel(name = "适用车型", width = 15, dicCode = "applicable_vehicle_type") + @Dict(dicCode = "applicable_vehicle_type") + @ApiModelProperty(value = "适用车型") + private String applicableVehicle; + + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + private String remark; + + /** + * 认证对象 + */ + @ApiModelProperty(value = "认证对象") + @Dict(dicCode = "authentication_object") + @Excel(name = "认证对象", width = 15, dicCode = "authentication_object") + private String authenticationObject; + + /** + * 认证交付物 + */ + @ApiModelProperty(value = "认证交付物") + @Excel(name = "认证交付物", width = 15) + private String certifyTheDeliverables; + + /** + * 类型 + */ + @Dict(dicCode = "type") + @Excel(name = "类型", width = 15, dicCode = "type") + @ApiModelProperty(value = "类型") + private String type; + + /** + * 动力类型 + */ + @Dict(dicCode = "dynamic_type") + @ApiModelProperty(value = "动力类型") + @Excel(name = "动力类型", width = 15, dicCode = "dynamic_type") + private String dynamicType; + + /** + * 主控部门 + */ + @Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") + @ApiModelProperty(value = "主控部门") + @NotBlank(message = "主控部门不能为空") + @Excel(name = "*主控部门", width = 15,dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") + private String mainDept; + + /** + * 主控部门专业模块 + */ + @ApiModelProperty(value = "主控部门专业模块") + @NotBlank(message = "主控部门专业模块不能为空") + @Dict(dicCode = "professional_module") + @Excel(name = "*主控部门专业模块", width = 15, dicCode = "professional_module") + private String mainDeptProfMode; + + /** + * 关联部门 + */ + @Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") + @ApiModelProperty(value = "关联部门") + @Excel(name = "关联部门", width = 15,dictTable = "sys_depart", dicCode = "id", dicText = "depart_name") + private String associateDept; + + /** + * 关联部门专业模块 + */ + @ApiModelProperty(value = "关联部门专业模块") + @Excel(name = "关联部门专业模块", width = 15, dicCode = "professional_module") + @Dict(dicCode = "professional_module") + private String associateDeptProfMode; + + /** + * 批量限制 + */ + @ApiModelProperty(value = "批量限制") + @Excel(name = "批量限制", width = 15, dicCode = "batch_restriction") + @Dict(dicCode = "batch_restriction") + private String batchLimit; + + /** + * 自动驾驶等级 + */ + @Dict(dicCode = "automatic_driving_level") + @ApiModelProperty(value = "自动驾驶等级") + @Excel(name = "自动驾驶等级", width = 15,dicCode = "automatic_driving_level") + private String autopilotLevel; + + /** + * 要求类型 + */ + @Dict(dicCode = "requirement_type") + @ApiModelProperty(value = "要求类型") + @Excel(name = "要求类型", width = 15,dicCode = "requirement_type") + private String requireType; + + + /** + * 清单Id + */ + @ApiModelProperty(value = "清单Id") + private String manifestId; + + @TableField(exist = false) + private static final long serialVersionUID = 1L; + + /** + * 清单版本 + */ + @ApiModelProperty(value = "清单版本") + @TableField(exist = false) + private String manifestVersion; +} diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/mapper/LawsMarketStandardDetailMapper.java b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/mapper/LawsMarketStandardDetailMapper.java index de7d3357..7fb3e71a 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/mapper/LawsMarketStandardDetailMapper.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/mapper/LawsMarketStandardDetailMapper.java @@ -3,6 +3,8 @@ package com.jero.modules.laws.marketStandard.mapper; import com.jero.modules.laws.marketStandard.entity.LawsMarketStandardDetail; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import java.util.List; + /** * @author ThinkBook * @description 针对表【laws_market_standard_detail】的数据库操作Mapper @@ -11,6 +13,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface LawsMarketStandardDetailMapper extends BaseMapper { + /** + * 根据标准名称获取标准编号 + * @param listNum + * @return + */ + List getStandardData(List listNum); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/mapper/xml/LawsMarketStandardDetailMapper.xml b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/mapper/xml/LawsMarketStandardDetailMapper.xml index 2c5a66dd..25fe9a1c 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/mapper/xml/LawsMarketStandardDetailMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/mapper/xml/LawsMarketStandardDetailMapper.xml @@ -3,6 +3,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - + diff --git a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/mapper/xml/LawsMarketStandardMapper.xml b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/mapper/xml/LawsMarketStandardMapper.xml index 37bd5201..c4a7958d 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/mapper/xml/LawsMarketStandardMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/laws/marketStandard/mapper/xml/LawsMarketStandardMapper.xml @@ -36,10 +36,10 @@ select ms.* from laws_market_standard ms JOIN ( - SELECT manifest_no as manifest_no_max, MAX(manifest_version) AS manifest_version_max + SELECT manifest_no as manifest_no_max, min(id) AS min_id FROM laws_market_standard where del_flag = 0 GROUP BY manifest_no - ) ms1 on ms1.manifest_version_max = ms.manifest_version and ms1.manifest_no_max = ms.manifest_no + ) ms1 on ms1.min_id = ms.id and ms1.manifest_no_max = ms.manifest_no left join sys_user as u on u.id = ms.author ${ew.customSqlSegment} 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 a3e3f02b..8a6faab9 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 @@ -22,9 +22,9 @@ public interface ILawsMarketStandardService extends IService /** * 删除 - * @param ids + * @param id */ - void deleteById(String id); + Result deleteById(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 efbe4a17..4c36cca5 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 @@ -1,5 +1,6 @@ package com.jero.modules.laws.marketStandard.service.impl; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -11,6 +12,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.LawsMarketStandardDetailExcel; import com.jero.modules.laws.marketStandard.entity.MarketStandardDetailVO; import com.jero.modules.laws.marketStandard.mapper.LawsMarketStandardDetailMapper; import com.jero.modules.laws.marketStandard.service.ILawsMarketStandardDetailService; @@ -22,6 +24,7 @@ import org.apache.shiro.SecurityUtils; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.entity.ImportParams; import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.io.ClassPathResource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @@ -34,6 +37,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * @author ThinkBook @@ -44,11 +48,10 @@ import java.util.Objects; public class LawsMarketStandardDetailServiceImpl extends ServiceImpl implements ILawsMarketStandardDetailService { - @Value("${jero.path.template}") - private String templatePath; - @Resource private ILawsMarketStandardService marketStandardService; + @Resource + private LawsMarketStandardDetailMapper lawsMarketStandardDetailMapper; @Override @@ -56,7 +59,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl(pageNo, pageSize)); } String manifestVersion = marketStandardDetail.getManifestVersion(); if(!StringUtils.isBlank(marketStandardDetail.getManifestVersion())){ @@ -111,39 +114,64 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl importExcel(MultipartFile file,String manifestId) { + public synchronized Result importExcel(MultipartFile file,String manifestId) { List list = new ArrayList<>(); // 校验文件是否为excel if (!ImportExcelUtil.checkExcelFile(file)) { - throw new JeroBootException("请导入excel文件"); + return Result.error("请导入excel文件"); } ImportParams params = new ImportParams(); params.setHeadRows(1); // 校验excel 字段是否正确 -// boolean b = ImportExcelUtil.checkTemplateTitle(file, LawsMarketStandardDetail.class, params.getTitleRows(), 0); -// if (!b) { -// throw new JeroBootException("excel文件表头错误,请重新下载"); -// } + boolean b = ImportExcelUtil.checkTemplateTitle(file, LawsMarketStandardDetailExcel.class, 0, 0); + if (!b) { + return Result.error("excel文件表头错误,请重新下载"); + } try { - List listLawsMarketStandardDetail = ExcelImportUtil.importExcel(file.getInputStream(), LawsMarketStandardDetail.class, params); - if(!CollectionUtils.isEmpty(listLawsMarketStandardDetail) && listLawsMarketStandardDetail.size() >= 2){ - listLawsMarketStandardDetail = listLawsMarketStandardDetail.subList(2,listLawsMarketStandardDetail.size()); + List listLawsMarketStandardDetailExcel = ExcelImportUtil.importExcel(file.getInputStream(), LawsMarketStandardDetailExcel.class, params); + if(!CollectionUtils.isEmpty(listLawsMarketStandardDetailExcel) && listLawsMarketStandardDetailExcel.size() >= 2){ + listLawsMarketStandardDetailExcel = listLawsMarketStandardDetailExcel.subList(2,listLawsMarketStandardDetailExcel.size()); + } + if(CollectionUtils.isEmpty(listLawsMarketStandardDetailExcel)){ + return Result.error("导入数据为空"); + } + List listLawsMarketStandardDetail = JSON.parseArray( + JSON.toJSONString(listLawsMarketStandardDetailExcel),LawsMarketStandardDetail.class); + List listStandardNumberNotNull = listLawsMarketStandardDetail.stream().filter(o->!StringUtils.isBlank(o.getStandardNumber())).collect(Collectors.toList()); + if(CollectionUtils.isEmpty(listStandardNumberNotNull)){ + return Result.error("标准编号不能为空"); + } + List listStandardNumber = listStandardNumberNotNull.stream().map(LawsMarketStandardDetail::getStandardNumber).collect(Collectors.toList()); + // 根据标准编号获取标准id + List listIds = lawsMarketStandardDetailMapper.getStandardData(listStandardNumber); + if(CollectionUtils.isEmpty(listIds)){ + return Result.error("标准编号不存在"); } StringBuilder m = new StringBuilder(); + // 验证标准编号是否重复 + List listStandardNum = new ArrayList<>(); for (int i = 0; i < listLawsMarketStandardDetail.size(); i++) { - LawsMarketStandardDetail lawsMarketStandardDetail = listLawsMarketStandardDetail.get(i); - lawsMarketStandardDetail.setManifestId(manifestId); + LawsMarketStandardDetail p = listLawsMarketStandardDetail.get(i); + p.setManifestId(manifestId); // 校验数据 - StringBuilder g = ValidUtil.validateReturnBuilder(lawsMarketStandardDetail); + StringBuilder g = ValidUtil.validateReturnBuilder(p); if(!StringUtils.isEmpty(g.toString())){ m.append(i + 4).append("行,").append(g.toString()); } + if(!StringUtils.isBlank(p.getStandardNumber())){ + List listStandardNumberData = listIds.stream().filter(o-> + Objects.equals(o.getStandardNumber(),p.getStandardNumber())).collect(Collectors.toList()); + + if(CollectionUtils.isEmpty(listStandardNumberData)){ + m.append(i + 4).append("行,标准编号不存在"); + } + } } if(!StringUtils.isBlank(m.toString())){ return Result.error(m.toString()); } saveBatch(listLawsMarketStandardDetail); - // 更细状态 + // 更新状态 marketStandardService.updateStatus(manifestId); return Result.OK("导入成功"); } catch (Exception e) { @@ -161,10 +189,9 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl add(LawsMarketStandardDetail marketStandardDetail) { + public synchronized Result add(LawsMarketStandardDetail marketStandardDetail) { LambdaQueryWrapper queryLawsMarketStandardDetail = new LambdaQueryWrapper<>(); queryLawsMarketStandardDetail.eq(LawsMarketStandardDetail::getStandardId,marketStandardDetail.getStandardId()); queryLawsMarketStandardDetail.eq(LawsMarketStandardDetail::getManifestId,marketStandardDetail.getManifestId()); long l = count(queryLawsMarketStandardDetail); if(l > 0){ - Result.error("标准已存在"); + return Result.error("标准已存在"); } save(marketStandardDetail); // 更细状态 @@ -197,21 +224,50 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl copy(String oldId,String newId) { - saveBatchData(oldId, newId); + public synchronized Result copy(String oldId,String newId) { + LambdaQueryWrapper queryOld = new LambdaQueryWrapper<>(); + queryOld.in(LawsMarketStandardDetail::getManifestId,Arrays.asList(oldId.split(","))); + queryOld.groupBy(LawsMarketStandardDetail::getStandardId); + List listOld = list(queryOld); + if(CollectionUtils.isEmpty(listOld)){ + return Result.error("数据不存在"); + } + LambdaQueryWrapper queryNew = new LambdaQueryWrapper<>(); + queryNew.eq(LawsMarketStandardDetail::getManifestId,newId); + List listNew = list(queryNew); + if(!CollectionUtils.isEmpty(listNew)){ + List listStandardId = listNew.stream().map(LawsMarketStandardDetail::getStandardId).collect(Collectors.toList()); + listOld = listOld.stream().filter(o->!listStandardId.contains(o.getStandardId())).collect(Collectors.toList()); + } + if(CollectionUtils.isEmpty(listOld)){ + return Result.error("数据不存在"); + } + setData(newId, listOld); + saveBatch(listOld); return Result.OK("操作成功"); } + private void setData(String newId, List listOld) { + for (LawsMarketStandardDetail lawsMarketStandardDetail : listOld) { + lawsMarketStandardDetail.setId(null); + lawsMarketStandardDetail.setCreateBy(null); + lawsMarketStandardDetail.setCreateTime(null); + lawsMarketStandardDetail.setUpdateBy(null); + lawsMarketStandardDetail.setUpdateTime(null); + lawsMarketStandardDetail.setManifestId(newId); + } + } + @Override @Transactional(rollbackFor = JeroBootException.class) - public Result edit(LawsMarketStandardDetail marketStandardDetail) { + public synchronized Result edit(LawsMarketStandardDetail marketStandardDetail) { LambdaQueryWrapper queryLawsMarketStandardDetail = new LambdaQueryWrapper<>(); queryLawsMarketStandardDetail.eq(LawsMarketStandardDetail::getStandardId,marketStandardDetail.getStandardId()); queryLawsMarketStandardDetail.eq(LawsMarketStandardDetail::getManifestId,marketStandardDetail.getManifestId()); queryLawsMarketStandardDetail.ne(LawsMarketStandardDetail::getId,marketStandardDetail.getId()); long l = count(queryLawsMarketStandardDetail); if(l > 0){ - Result.error("标准已存在"); + return Result.error("标准已存在"); } updateById(marketStandardDetail); // 更细状态 @@ -255,10 +311,7 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl updateLawsMarketStandard = new LambdaUpdateWrapper<>(); updateLawsMarketStandard.eq(LawsMarketStandard::getId,manifest.getId()); @@ -173,11 +175,14 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl update = new LambdaUpdateWrapper<>(); update.set(LawsMarketStandard::getManifestVersion,""); update.set(LawsMarketStandard::getManifestStatus,MarketStandardConstants.MANIFEST_STATUS_EDIT); - update.eq(LawsMarketStandard::getId,lawsMarketStandardOld.getId()); + update.set(LawsMarketStandard::getUpdateTime,new Date()); + update.set(LawsMarketStandard::getUpdateBy,sysUser.getUsername()); + update.eq(LawsMarketStandard::getId,manifest.getId()); update(update); }else{ List listCountry = Arrays.stream(manifest.getCountry().split(",")).sorted().collect(Collectors.toList()); @@ -228,10 +233,15 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl deleteById(String id) { + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if(!Arrays.asList(sysUser.getRoleIds().split(",")).contains(lawsAdmin) + && !Arrays.asList(sysUser.getRoleIds().split(",")).contains(superAdmin)){ + return Result.error("没有权限"); + } LawsMarketStandard lawsMarketStandard = getById(id); if(Objects.isNull(lawsMarketStandard)){ - throw new JeroBootException("数据不存在"); + return Result.error("数据不存在"); } // 获取不同版本的数据 LambdaQueryWrapper queryLawsMarketStandard = new LambdaQueryWrapper<>(); @@ -239,7 +249,7 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl listLawsMarketStandard = list(queryLawsMarketStandard); if(CollectionUtils.isEmpty(listLawsMarketStandard)){ - throw new JeroBootException("数据不存在"); + return Result.error("数据不存在"); } // 删除版本标识下所有数据 LambdaUpdateWrapper updateLawsMarketStandard = new LambdaUpdateWrapper<>(); @@ -250,10 +260,16 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); wrapper.in(LawsMarketStandardDetail::getManifestId, listIds); lawsMarketStandardDetailService.remove(wrapper); + return Result.OK("删除成功!"); } @Override public void deleteByIds(List ids) { + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if(!Arrays.asList(sysUser.getRoleIds().split(",")).contains(lawsAdmin) + && !Arrays.asList(sysUser.getRoleIds().split(",")).contains(superAdmin)){ + throw new JeroBootException("没有权限"); + } removeByIds(ids); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.in(LawsMarketStandardDetail::getManifestId, ids); @@ -282,24 +298,20 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl(); idList.add(manifest.getId()); } - String countryText = sysBaseAPI.translateDict("market_state",manifest.getCountry()); + Map> map = sysBaseAPI. + translateManyDict("market_state,security_class,drive_position,", + manifest.getCountry() + "," + manifest.getSecurityLevel() + "," + manifest.getDrivePosition()); + String countryText = map.get("market_state").stream().map(DictModel::getText) + .collect(Collectors.joining(",")); manifest.setCountryText(countryText); - String securityLevelText = sysBaseAPI.translateDict("security_class",manifest.getSecurityLevel()); + String securityLevelText = map.get("security_class").stream().map(DictModel::getText) + .collect(Collectors.joining(",")); manifest.setSecurityLevelText(securityLevelText); - String drivePositionText = sysBaseAPI.translateDict("drive_position",manifest.getDrivePosition()); + String drivePositionText = map.get("drive_position").stream().map(DictModel::getText) + .collect(Collectors.joining(",")); manifest.setDrivePositionText(drivePositionText); result.setManifest(manifest); - // 列表数据 -// LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); -// wrapper.like(StringUtils.isNotBlank(marketStandardDetail.getStandardNumber()), -// LawsMarketStandardDetail::getStandardNumber, marketStandardDetail.getStandardNumber()); -// wrapper.like(StringUtils.isNotBlank(marketStandardDetail.getStandardName()), -// LawsMarketStandardDetail::getStandardName, marketStandardDetail.getStandardName()); -// wrapper.in(LawsMarketStandardDetail::getManifestId, idList); -// List pageData = lawsMarketStandardDetailService.list(wrapper); -// result.setLists(pageData); - // 如果不是合并查看列表页面 if (idList.size() > 1) { return result; @@ -320,6 +332,7 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl listManifestNo = list(queryManifestNo); if(!CollectionUtils.isEmpty(listManifestNo)){ @@ -330,19 +343,26 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl publish(String id) { + public synchronized Result publish(String id) { LawsMarketStandard lawsMarketStandardOld = getById(id); if(Objects.isNull(lawsMarketStandardOld)){ - Result.error("数据不存在"); + return Result.error("数据不存在"); + } + if(Objects.equals(lawsMarketStandardOld.getManifestStatus(),MarketStandardConstants.MANIFEST_STATUS_PUBLISH)){ + return Result.error("数据已发布"); } LambdaQueryWrapper queryLawsMarketStandard = new LambdaQueryWrapper<>(); queryLawsMarketStandard.eq(LawsMarketStandard::getVersionFlag,lawsMarketStandardOld.getVersionFlag()); long l = count(queryLawsMarketStandard); // 更新状态 + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LambdaUpdateWrapper updateLawsMarketStandard = new LambdaUpdateWrapper<>(); updateLawsMarketStandard.eq(LawsMarketStandard::getId,id); - updateLawsMarketStandard.eq(LawsMarketStandard::getManifestVersion, "V1." + l); + updateLawsMarketStandard.set(LawsMarketStandard::getReleaseDate,new Date()); + updateLawsMarketStandard.set(LawsMarketStandard::getManifestVersion, "V1." + (l -1)); updateLawsMarketStandard.set(LawsMarketStandard::getManifestStatus,MarketStandardConstants.MANIFEST_STATUS_PUBLISH); + updateLawsMarketStandard.set(LawsMarketStandard::getUpdateTime,new Date()); + updateLawsMarketStandard.set(LawsMarketStandard::getUpdateBy,sysUser.getUsername()); update(updateLawsMarketStandard); // todo 发起流程 return Result.OK("发布成功"); @@ -359,10 +379,13 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl update = new LambdaUpdateWrapper<>(); update.set(LawsMarketStandard::getManifestVersion,""); update.set(LawsMarketStandard::getManifestStatus,MarketStandardConstants.MANIFEST_STATUS_EDIT); + update.set(LawsMarketStandard::getUpdateTime,new Date()); + update.set(LawsMarketStandard::getUpdateBy,sysUser.getUsername()); update.eq(LawsMarketStandard::getId,id); update(update); } @@ -371,6 +394,10 @@ public class LawsMarketStandardServiceImpl extends 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 Xk}Lw$J$^e71q5_K)e(;Nw@?2Mv+BeU literal 0 HcmV?d00001 diff --git a/laws-single-startup/src/main/resources/application-dev.yml b/laws-single-startup/src/main/resources/application-dev.yml index 5ac3497d..6cd2448a 100644 --- a/laws-single-startup/src/main/resources/application-dev.yml +++ b/laws-single-startup/src/main/resources/application-dev.yml @@ -216,7 +216,6 @@ jero: #文件上传根目录 设置 upload: D://opt//upFiles img: /upFiles/ - template: D://opt//template #webapp文件路径 webapp: D://opt//webapp uploadCos: 1 diff --git a/template/导入模板-市场法规清单.xlsx b/template/导入模板-市场法规清单.xlsx deleted file mode 100644 index 585a98c49a84f52896775b5711a4dc8927d3e2f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10416 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