完善市场法规库清单添加接口

This commit is contained in:
梁琦涛
2024-07-06 23:23:31 +08:00
parent 26065d61b0
commit 1439eb56c4
15 changed files with 426 additions and 76 deletions
@@ -98,12 +98,11 @@ public class MarketStandardController {
@ApiOperationSupport(order = 4)
@PostMapping(value = "/delete")
@RequiresPermissions("marketStandard:deleteBatch")
public Result<T> delete(@RequestBody Map<String, String> map) {
public Result<?> delete(@RequestBody Map<String, String> 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<String, String> map) {
if (!map.containsKey("id") || StringUtils.isEmpty(map.get("id"))) {
return Result.error("请选择数据!");
@@ -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<String, String> 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<String, String> 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<String, String> 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);
}
@@ -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;
@@ -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;
@@ -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;
}
@@ -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<LawsMarketStandardDetail> {
/**
* 根据标准名称获取标准编号
* @param listNum
* @return
*/
List<LawsMarketStandardDetail> getStandardData(List<String> listNum);
}
@@ -3,6 +3,18 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.laws.marketStandard.mapper.LawsMarketStandardDetailMapper">
<select id="getStandardData"
resultType="com.jero.modules.laws.marketStandard.entity.LawsMarketStandardDetail">
select id as standard_id,standard_number from
(select id, standard_number
from laws_domestic_standard
where del_flag = 0
union all
select id, standard_number,
from laws_enterprise_standard
where del_flag = 0) a where standard_number in
<foreach collection="listNum.split(',')" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</select>
</mapper>
@@ -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}
</select>
@@ -22,9 +22,9 @@ public interface ILawsMarketStandardService extends IService<LawsMarketStandard>
/**
* 删除
* @param ids
* @param id
*/
void deleteById(String id);
Result<?> deleteById(String id);
/**
* 批量删除
@@ -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<LawsMarketStandardDetailMapper, LawsMarketStandardDetail>
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<LawsMarketS
Integer pageNo, Integer pageSize) {
String manifestId = marketStandardDetail.getManifestId();
if(StringUtils.isBlank(marketStandardDetail.getManifestId())){
throw new JeroBootException("id不能为空");
return Result.OK(new Page<>(pageNo, pageSize));
}
String manifestVersion = marketStandardDetail.getManifestVersion();
if(!StringUtils.isBlank(marketStandardDetail.getManifestVersion())){
@@ -111,39 +114,64 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
@Override
@Transactional(rollbackFor = JeroBootException.class)
public Result<?> importExcel(MultipartFile file,String manifestId) {
public synchronized Result<?> importExcel(MultipartFile file,String manifestId) {
List<LawsMarketStandardDetail> 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<LawsMarketStandardDetail> listLawsMarketStandardDetail = ExcelImportUtil.importExcel(file.getInputStream(), LawsMarketStandardDetail.class, params);
if(!CollectionUtils.isEmpty(listLawsMarketStandardDetail) && listLawsMarketStandardDetail.size() >= 2){
listLawsMarketStandardDetail = listLawsMarketStandardDetail.subList(2,listLawsMarketStandardDetail.size());
List<LawsMarketStandardDetailExcel> 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<LawsMarketStandardDetail> listLawsMarketStandardDetail = JSON.parseArray(
JSON.toJSONString(listLawsMarketStandardDetailExcel),LawsMarketStandardDetail.class);
List<LawsMarketStandardDetail> listStandardNumberNotNull = listLawsMarketStandardDetail.stream().filter(o->!StringUtils.isBlank(o.getStandardNumber())).collect(Collectors.toList());
if(CollectionUtils.isEmpty(listStandardNumberNotNull)){
return Result.error("标准编号不能为空");
}
List<String> listStandardNumber = listStandardNumberNotNull.stream().map(LawsMarketStandardDetail::getStandardNumber).collect(Collectors.toList());
// 根据标准编号获取标准id
List<LawsMarketStandardDetail> listIds = lawsMarketStandardDetailMapper.getStandardData(listStandardNumber);
if(CollectionUtils.isEmpty(listIds)){
return Result.error("标准编号不存在");
}
StringBuilder m = new StringBuilder();
// 验证标准编号是否重复
List<String> 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<LawsMarketStandardDetail> 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<LawsMarketS
@Override
public void downloadTemplate(HttpServletResponse response) {
String templateName = "导入模板-市场法规清单.xlsx";
// 模板存放地址
String templateUrl = templatePath + File.separator + templateName;
try (InputStream inputStream = new BufferedInputStream(new FileInputStream(templateUrl));
ClassPathResource resource = new ClassPathResource("excelTemplate/导入模板-市场法规清单.xlsx");
try (InputStream inputStream = resource.getInputStream();
OutputStream outputStream = response.getOutputStream()
) {
byte[] buf = new byte[1024];
@@ -182,13 +209,13 @@ public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketS
@Override
@Transactional(rollbackFor = JeroBootException.class)
public Result<?> add(LawsMarketStandardDetail marketStandardDetail) {
public synchronized Result<?> add(LawsMarketStandardDetail marketStandardDetail) {
LambdaQueryWrapper<LawsMarketStandardDetail> 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<LawsMarketS
}
@Override
public Result<?> copy(String oldId,String newId) {
saveBatchData(oldId, newId);
public synchronized Result<?> copy(String oldId,String newId) {
LambdaQueryWrapper<LawsMarketStandardDetail> queryOld = new LambdaQueryWrapper<>();
queryOld.in(LawsMarketStandardDetail::getManifestId,Arrays.asList(oldId.split(",")));
queryOld.groupBy(LawsMarketStandardDetail::getStandardId);
List<LawsMarketStandardDetail> listOld = list(queryOld);
if(CollectionUtils.isEmpty(listOld)){
return Result.error("数据不存在");
}
LambdaQueryWrapper<LawsMarketStandardDetail> queryNew = new LambdaQueryWrapper<>();
queryNew.eq(LawsMarketStandardDetail::getManifestId,newId);
List<LawsMarketStandardDetail> listNew = list(queryNew);
if(!CollectionUtils.isEmpty(listNew)){
List<String> 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<LawsMarketStandardDetail> 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<LawsMarketStandardDetail> 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<LawsMarketS
if(CollectionUtils.isEmpty(listLawsMarketStandardDetail)){
return;
}
for (LawsMarketStandardDetail lawsMarketStandardDetail : listLawsMarketStandardDetail) {
lawsMarketStandardDetail.setId(null);
lawsMarketStandardDetail.setManifestId(newId);
}
setData(newId, listLawsMarketStandardDetail);
saveBatch(listLawsMarketStandardDetail);
}
@@ -114,7 +114,7 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl<LawsMarketStandar
}
queryWrapper.like(StringUtils.isNotBlank(marketStandard.getAuthor()),
"CONCAT(u.realname, '(', u.username, ')')", marketStandard.getAuthor());
queryWrapper.orderByDesc("ms.create_time");
queryWrapper.orderByDesc("ms.update_time");
return queryWrapper;
}
@@ -132,6 +132,8 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl<LawsMarketStandar
manifest.setManifestName(String.join("",country) + manifest.getCustomColumnName() + "车型需满足标准法规清单");
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
manifest.setAuthor(sysUser.getId());
manifest.setUpdateTime(new Date());
manifest.setUpdateBy(sysUser.getUsername());
save(manifest);
LambdaUpdateWrapper<LawsMarketStandard> updateLawsMarketStandard = new LambdaUpdateWrapper<>();
updateLawsMarketStandard.eq(LawsMarketStandard::getId,manifest.getId());
@@ -173,11 +175,14 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl<LawsMarketStandar
if(Objects.equals(lawsMarketStandardOld.getManifestStatus(),MarketStandardConstants.MANIFEST_STATUS_PUBLISH)){
// 将旧数据拷贝一份
syncData(lawsMarketStandardOld);
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// 新数据版本设置为空,状态设置为编辑中
LambdaUpdateWrapper<LawsMarketStandard> 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<String> listCountry = Arrays.stream(manifest.getCountry().split(",")).sorted().collect(Collectors.toList());
@@ -228,10 +233,15 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl<LawsMarketStandar
}
@Override
public void deleteById(String id) {
public Result<?> 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<LawsMarketStandard> queryLawsMarketStandard = new LambdaQueryWrapper<>();
@@ -239,7 +249,7 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl<LawsMarketStandar
queryLawsMarketStandard.eq(LawsMarketStandard::getVersionFlag,lawsMarketStandard.getVersionFlag());
List<LawsMarketStandard> listLawsMarketStandard = list(queryLawsMarketStandard);
if(CollectionUtils.isEmpty(listLawsMarketStandard)){
throw new JeroBootException("数据不存在");
return Result.error("数据不存在");
}
// 删除版本标识下所有数据
LambdaUpdateWrapper<LawsMarketStandard> updateLawsMarketStandard = new LambdaUpdateWrapper<>();
@@ -250,10 +260,16 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl<LawsMarketStandar
LambdaQueryWrapper<LawsMarketStandardDetail> wrapper = new LambdaQueryWrapper<>();
wrapper.in(LawsMarketStandardDetail::getManifestId, listIds);
lawsMarketStandardDetailService.remove(wrapper);
return Result.OK("删除成功!");
}
@Override
public void deleteByIds(List<String> 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<LawsMarketStandardDetail> wrapper = new LambdaQueryWrapper<>();
wrapper.in(LawsMarketStandardDetail::getManifestId, ids);
@@ -282,24 +298,20 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl<LawsMarketStandar
idList = new ArrayList<>();
idList.add(manifest.getId());
}
String countryText = sysBaseAPI.translateDict("market_state",manifest.getCountry());
Map<String, List<DictModel>> 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<LawsMarketStandardDetail> 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<LawsMarketStandardDetail> pageData = lawsMarketStandardDetailService.list(wrapper);
// result.setLists(pageData);
// 如果不是合并查看列表页面
if (idList.size() > 1) {
return result;
@@ -320,6 +332,7 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl<LawsMarketStandar
queryManifestNo.select(LawsMarketStandard::getManifestVersion);
queryManifestNo.isNotNull(LawsMarketStandard::getManifestNo);
queryManifestNo.eq(LawsMarketStandard::getManifestNo,manifest.getManifestNo());
queryManifestNo.isNotNull(LawsMarketStandard::getManifestVersion);
queryManifestNo.orderByDesc(LawsMarketStandard::getManifestVersion);
List<LawsMarketStandard> listManifestNo = list(queryManifestNo);
if(!CollectionUtils.isEmpty(listManifestNo)){
@@ -330,19 +343,26 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl<LawsMarketStandar
@Override
@Transactional(rollbackFor = JeroBootException.class)
public Result<?> 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<LawsMarketStandard> queryLawsMarketStandard = new LambdaQueryWrapper<>();
queryLawsMarketStandard.eq(LawsMarketStandard::getVersionFlag,lawsMarketStandardOld.getVersionFlag());
long l = count(queryLawsMarketStandard);
// 更新状态
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
LambdaUpdateWrapper<LawsMarketStandard> 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<LawsMarketStandar
if(Objects.equals(lawsMarketStandardOld.getManifestStatus(),MarketStandardConstants.MANIFEST_STATUS_PUBLISH)){
// 将旧数据拷贝一份
syncData(lawsMarketStandardOld);
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// 新数据版本设置为空,状态设置为编辑中
LambdaUpdateWrapper<LawsMarketStandard> 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<LawsMarketStandar
private void syncData(LawsMarketStandard lawsMarketStandardOld) {
String oldId = lawsMarketStandardOld.getId();
lawsMarketStandardOld.setId(null);
lawsMarketStandardOld.setCreateBy(null);
lawsMarketStandardOld.setCreateTime(null);
lawsMarketStandardOld.setUpdateBy(null);
lawsMarketStandardOld.setUpdateTime(null);
save(lawsMarketStandardOld);
// 添加标准数据
lawsMarketStandardDetailService.saveBatchData(oldId, lawsMarketStandardOld.getId());