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 ServiceImpl