feat: 市场法规清单相关接口

This commit is contained in:
2024-06-29 18:06:11 +08:00
parent efde5d2808
commit e4aa0ecd07
13 changed files with 907 additions and 0 deletions
@@ -0,0 +1,20 @@
package com.jero.modules.laws.marketStandard.constans;
public class MarketStandardConstants {
/**
* 已发布
*/
public static final String MANIFEST_STATUS_PUBLISH = "1";
/**
* 修改中
*/
public static final String MANIFEST_STATUS_EDIT = "2";
/**
* 未发布
*/
public static final String MANIFEST_STATUS_NOT_PUBLISH = "3";
}
@@ -0,0 +1,158 @@
package com.jero.modules.laws.marketStandard.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.jero.common.api.vo.Result;
import com.jero.common.api.vo.ResultCommon;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.util.MessageUtils;
import com.jero.modules.laws.marketStandard.entity.LawsMarketStandard;
import com.jero.modules.laws.marketStandard.entity.LawsMarketStandardDetail;
import com.jero.modules.laws.marketStandard.entity.MarketStandardDetailVO;
import com.jero.modules.laws.marketStandard.service.ILawsMarketStandardService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@Api(tags = "外部标准库-市场法规清单")
@RestController
@RequestMapping("/laws/marketStandard")
@Slf4j
public class MarketStandardController {
@Resource
private ILawsMarketStandardService marketStandardService;
/**
* 分页列表查询
*
* @param marketStandard
* @param pageNo
* @param pageSize
* @return
*/
@AutoLog(value = "外部标准库-市场法规清单-分页列表查询")
@ApiOperation(value = "外部标准库-市场法规清单-分页列表查询", notes = "外部标准库-市场法规清单-分页列表查询")
@GetMapping(value = "/page")
@ApiOperationSupport(order = 1)
@RequiresPermissions("marketStandard:search")
public Result<IPage<LawsMarketStandard>> queryPageList(LawsMarketStandard marketStandard,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
IPage<LawsMarketStandard> pageList = marketStandardService.queryPage(marketStandard, pageNo, pageSize);
return Result.OK(pageList);
}
/**
* 查看
*
* @param marketStandardDetail
* @param pageNo
* @param pageSize
* @return
*/
@AutoLog(value = "外部标准库-市场法规清单-查看")
@ApiOperation(value = "外部标准库-市场法规清单-查看", notes = "外部标准库-市场法规清单-查看")
@GetMapping(value = "/detail")
@ApiOperationSupport(order = 2)
@RequiresPermissions("lawsConformityAssessment:detail")
public Result<MarketStandardDetailVO> detail(LawsMarketStandardDetail marketStandardDetail,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
MarketStandardDetailVO result = marketStandardService.detail(marketStandardDetail, pageNo, pageSize);
return Result.OK(result);
}
/**
* 导出excel
*/
@AutoLog(value = "外部标准库-市场法规清单-导出")
@ApiOperation(value = "外部标准库-市场法规清单-导出", notes = "外部标准库-市场法规清单-导出")
@ApiOperationSupport(order = 3)
@RequiresPermissions("lawsConformityAssessment:export")
@GetMapping(value = "/exportXls", produces = "application/zip")
public void exportXls(HttpServletResponse response, LawsMarketStandard LawsMarketStandard, HttpServletRequest req) {
marketStandardService.export(response, LawsMarketStandard, "市场法规清单", "市场法规清单", req);
}
/**
* 批量删除
*
* @param map
* @return
*/
@AutoLog(value = "外部标准库-市场法规清单-批量删除")
@ApiOperation(value = "外部标准库-市场法规清单-批量删除", notes = "外部标准库-市场法规清单-批量删除")
@ApiOperationSupport(order = 4)
@PostMapping(value = "/deleteBatch")
public Result<T> deleteBatch(@RequestBody Map<String, String> map) {
if (!map.containsKey("ids") || StringUtils.isEmpty(map.get("ids"))) {
return Result.error("请选择数据!");
}
this.marketStandardService.deleteByIds(Arrays.asList(map.get("ids").split(",")));
return Result.OK("批量删除成功!");
}
/**
* 新增
*
* @param marketStandardDetailVO
* @return
*/
@AutoLog(value = "外部标准库-市场法规清单-新增")
@ApiOperation(value = "外部标准库-市场法规清单-新增", notes = "外部标准库-市场法规清单-新增")
@ApiOperationSupport(order = 5)
@PostMapping(value = "/add")
public Result<T> add(@RequestBody MarketStandardDetailVO marketStandardDetailVO) {
this.marketStandardService.add(marketStandardDetailVO);
return Result.OK("新增成功!");
}
/**
* 编辑
*
* @param marketStandardDetailVO
* @return
*/
@AutoLog(value = "外部标准库-市场法规清单-编辑")
@ApiOperation(value = "外部标准库-市场法规清单-编辑", notes = "外部标准库-市场法规清单-编辑")
@ApiOperationSupport(order = 6)
@PostMapping(value = "/edit")
public Result<T> edit(@RequestBody MarketStandardDetailVO marketStandardDetailVO) {
this.marketStandardService.edit(marketStandardDetailVO);
return Result.OK("修改成功!");
}
/**
* 导入
*
* @param file
* @return
*/
@AutoLog(value = "外部标准库-市场法规清单-导入")
@ApiOperation(value = "外部标准库-市场法规清单-导入", notes = "外部标准库-市场法规清单-导入")
@ApiOperationSupport(order = 7)
@PostMapping(value = "/deleteBatch")
public Result<T> importExcel(@RequestParam("file") @ApiParam("文件") MultipartFile file) {
List<String> errorMessages = marketStandardService.importExcel(file);
if (!errorMessages.isEmpty()) {
return Result.error(MessageUtils.getMessage(ResultCommon.IMPORT_ERROR));
}
return Result.OK();
}
}
@@ -0,0 +1,146 @@
package com.jero.modules.laws.marketStandard.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
/**
* 市场法规
* @TableName laws_market_standard
*/
@TableName(value ="laws_market_standard")
@Data
public class LawsMarketStandard 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")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 更新人
*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**
* 更新时间
*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/**
* 所属部门
*/
@ApiModelProperty(value = "所属部门")
private String orgCode;
/**
* 0表示未删除,1表示删除
*/
@ApiModelProperty(value = "0表示未删除,1表示删除")
private Integer delFlag;
/**
* 国家
*/
@Dict(dicCode = "market_state")
@ApiModelProperty(value = "国家")
private String country;
/**
* 清单编号
*/
@ApiModelProperty(value = "清单编号")
private String manifestNo;
/**
* 清单名称
*/
@ApiModelProperty(value = "清单名称")
private String manifestName;
/**
* 驾驶位置
*/
@Dict(dicCode = "drive_position")
@ApiModelProperty(value = "驾驶位置")
private String drivePosition;
/**
* 清单版本
*/
@Dict(dicCode = "manifest_version")
@ApiModelProperty(value = "清单版本")
private String manifestVersion;
/**
* 发布时间
*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "发布时间")
private Date releaseDate;
/**
* 作者
*/
@Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
@ApiModelProperty(value = "作者")
private String author;
/**
* 密级
*/
@Dict(dicCode = "security_level")
@ApiModelProperty(value = "密级")
private String securityLevel;
/**
* 清单状态
*/
@Dict(dicCode = "manifest_status")
@ApiModelProperty(value = "清单状态")
private String manifestStatus;
/**
* 自定义字段名称
*/
@ApiModelProperty(value = "自定义字段名称")
private String customColumnName;
/**
* 自定义字段值
*/
@ApiModelProperty(value = "自定义字段值")
private String customColumnValue;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
@@ -0,0 +1,211 @@
package com.jero.modules.laws.marketStandard.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
/**
*
* @TableName laws_market_standard_detail
*/
@TableName(value ="laws_market_standard_detail")
@Data
public class LawsMarketStandardDetail 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")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 更新人
*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**
* 更新时间
*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/**
* 所属部门
*/
@ApiModelProperty(value = "所属部门")
private String orgCode;
/**
* 0表示未删除,1表示删除
*/
@ApiModelProperty(value = "0表示未删除,1表示删除")
private Integer delFlag;
/**
* 标准id
*/
@ApiModelProperty(value = "标准id")
private String standardId;
/**
* 标准编号
*/
@ApiModelProperty(value = "标准编号")
private String standardNumber;
/**
* 标准名称
*/
@ApiModelProperty(value = "标准名称")
private String standardName;
/**
* 标准英文名称
*/
@ApiModelProperty(value = "标准英文名称")
private String standardEnglishName;
/**
* 注册日期
*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "注册日期")
private String registrationDate;
/**
* 备注
*/
@ApiModelProperty(value = "备注")
private String remark;
/**
* 认证对象
*/
@ApiModelProperty(value = "认证对象")
private String authenticationObject;
/**
* 认证交付物
*/
@ApiModelProperty(value = "认证交付物")
private String certifyTheDeliverables;
/**
* 类型
*/
@Dict(dicCode = "type")
@ApiModelProperty(value = "类型")
private String type;
/**
* 适用车型
*/
@Dict(dicCode = "applicable_vehicle_type")
@ApiModelProperty(value = "适用车型")
private String applicableVehicle;
/**
* 动力类型
*/
@Dict(dicCode = "dynamic_type")
@ApiModelProperty(value = "动力类型")
private String dynamicType;
/**
* 主控部门
*/
@Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name")
@ApiModelProperty(value = "主控部门")
private String mainDept;
/**
* 主控部门专业模块
*/
@ApiModelProperty(value = "主控部门专业模块")
private String mainDeptProfMode;
/**
* 关联部门
*/
@Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name")
@ApiModelProperty(value = "关联部门")
private String associateDept;
/**
* 关联部门专业模块
*/
@ApiModelProperty(value = "关联部门专业模块")
private String associateDeptProfMode;
/**
* 批量限制
*/
@ApiModelProperty(value = "批量限制")
private String batchLimit;
/**
* 自动驾驶等级
*/
@Dict(dicCode = "automatic_driving_level")
@ApiModelProperty(value = "自动驾驶等级")
private String autopilotLevel;
/**
* 要求类型
*/
@Dict(dicCode = "requirement_type")
@ApiModelProperty(value = "要求类型")
private String requireType;
/**
* 新生产车实施日期
*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "新生产车实施日期")
private Date newProductImplDate;
/**
* 新认证车实施日期
*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "新认证车实施日期")
private Date newAuthImplDate;
/**
* 清单Id
*/
@ApiModelProperty(value = "清单Id")
private String manifestId;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
@@ -0,0 +1,25 @@
package com.jero.modules.laws.marketStandard.entity;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.Data;
import java.util.List;
@Data
public class MarketStandardDetailVO {
@ApiModelProperty(value = "清单信息")
private LawsMarketStandard manifest;
@ApiModelProperty(value = "新增编辑数据")
private List<LawsMarketStandardDetail> lists;
@ApiModelProperty(value = "查看分页数据")
private IPage<LawsMarketStandardDetail> pageData;
@ApiModelProperty(value = "历史版本")
private List<String> historyVersions;
}
@@ -0,0 +1,18 @@
package com.jero.modules.laws.marketStandard.mapper;
import com.jero.modules.laws.marketStandard.entity.LawsMarketStandardDetail;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author ThinkBook
* @description 针对表【laws_market_standard_detail】的数据库操作Mapper
* @createDate 2024-06-29 11:34:34
* @Entity com.jero.modules.laws.marketStandard.entity.LawsMarketStandardDetail
*/
public interface LawsMarketStandardDetailMapper extends BaseMapper<LawsMarketStandardDetail> {
}
@@ -0,0 +1,24 @@
package com.jero.modules.laws.marketStandard.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.modules.laws.marketStandard.entity.LawsMarketStandard;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* @author ThinkBook
* @description 针对表【laws_market_standard(市场法规)】的数据库操作Mapper
* @createDate 2024-06-29 11:34:04
* @Entity com.jero.modules.laws.markStandard.entity.LawsMarketStandard
*/
public interface LawsMarketStandardMapper extends BaseMapper<LawsMarketStandard> {
IPage<LawsMarketStandard> queryByPage(Page<LawsMarketStandard> page, @Param(Constants.WRAPPER) QueryWrapper<LawsMarketStandard> queryWrapper);
}
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
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">
</mapper>
@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.laws.marketStandard.mapper.LawsMarketStandardMapper">
<resultMap id="BaseResultMap" type="com.jero.modules.laws.marketStandard.entity.LawsMarketStandard">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="createBy" column="create_by" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="orgCode" column="org_code" jdbcType="VARCHAR"/>
<result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
<result property="country" column="country" jdbcType="VARCHAR"/>
<result property="manifestNo" column="manifest_no" jdbcType="VARCHAR"/>
<result property="manifestName" column="mainfest_name" jdbcType="VARCHAR"/>
<result property="drivePosition" column="drive_position" jdbcType="VARCHAR"/>
<result property="manifestVersion" column="manifest_version" jdbcType="VARCHAR"/>
<result property="releaseDate" column="release_date" jdbcType="TIMESTAMP"/>
<result property="author" column="author" jdbcType="VARCHAR"/>
<result property="securityLevel" column="security_level" jdbcType="VARCHAR"/>
<result property="manifestStatus" column="manifest_status" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
id,create_by,create_time,
update_by,update_time,org_code,
del_flag,country,manifest_no,
mainfest_name,drive_position,manifest_version,
release_date,author,security_level,
manifest_status
</sql>
<select id="queryByPage" resultType="com.jero.modules.laws.marketStandard.entity.LawsMarketStandard">
select ms.*
from laws_market_standard ms
left join sys_user as u on u.id = ms.author
${ew.customSqlSegment}
</select>
</mapper>
@@ -0,0 +1,13 @@
package com.jero.modules.laws.marketStandard.service;
import com.jero.modules.laws.marketStandard.entity.LawsMarketStandardDetail;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author ThinkBook
* @description 针对表【laws_market_standard_detail】的数据库操作Service
* @createDate 2024-06-29 11:34:34
*/
public interface ILawsMarketStandardDetailService extends IService<LawsMarketStandardDetail> {
}
@@ -0,0 +1,73 @@
package com.jero.modules.laws.marketStandard.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.modules.laws.marketStandard.entity.LawsMarketStandard;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.laws.marketStandard.entity.LawsMarketStandardDetail;
import com.jero.modules.laws.marketStandard.entity.MarketStandardDetailVO;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* @author ThinkBook
* @description 针对表【laws_market_standard(市场法规)】的数据库操作Service
* @createDate 2024-06-29 11:34:04
*/
public interface ILawsMarketStandardService extends IService<LawsMarketStandard> {
/**
* 批量删除
* @param ids
*/
void deleteByIds(List<String> ids);
/**
* 导出
* @param response
* @param lawsMarketStandard
* @param fileName
* @param sheetName
* @param req
*/
void export(HttpServletResponse response, LawsMarketStandard lawsMarketStandard, String fileName, String sheetName, HttpServletRequest req);
/**
* 查看
* @param marketStandardDetail
* @param pageNo
* @param pageSize
* @return
*/
MarketStandardDetailVO detail(LawsMarketStandardDetail marketStandardDetail, Integer pageNo, Integer pageSize);
/**
* 分页查询
* @param marketStandard
* @param pageNo
* @param pageSize
* @return
*/
IPage<LawsMarketStandard> queryPage(LawsMarketStandard marketStandard, Integer pageNo, Integer pageSize);
/**
* 新增
* @param marketStandardDetailVO
*/
void add(MarketStandardDetailVO marketStandardDetailVO);
/**
* 编辑
* @param marketStandardDetailVO
*/
void edit(MarketStandardDetailVO marketStandardDetailVO);
/**
* 导入Excel
* @param file
* @return
*/
List<String> importExcel(MultipartFile file);
}
@@ -0,0 +1,22 @@
package com.jero.modules.laws.marketStandard.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.modules.laws.marketStandard.entity.LawsMarketStandardDetail;
import com.jero.modules.laws.marketStandard.service.ILawsMarketStandardDetailService;
import com.jero.modules.laws.marketStandard.mapper.LawsMarketStandardDetailMapper;
import org.springframework.stereotype.Service;
/**
* @author ThinkBook
* @description 针对表【laws_market_standard_detail】的数据库操作Service实现
* @createDate 2024-06-29 11:34:34
*/
@Service
public class LawsMarketStandardDetailServiceImpl extends ServiceImpl<LawsMarketStandardDetailMapper, LawsMarketStandardDetail>
implements ILawsMarketStandardDetailService {
}
@@ -0,0 +1,148 @@
package com.jero.modules.laws.marketStandard.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.modules.laws.marketStandard.constans.MarketStandardConstants;
import com.jero.modules.laws.marketStandard.entity.LawsMarketStandard;
import com.jero.modules.laws.marketStandard.entity.LawsMarketStandardDetail;
import com.jero.modules.laws.marketStandard.entity.MarketStandardDetailVO;
import com.jero.modules.laws.marketStandard.service.ILawsMarketStandardDetailService;
import com.jero.modules.laws.marketStandard.service.ILawsMarketStandardService;
import com.jero.modules.laws.marketStandard.mapper.LawsMarketStandardMapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* @author ThinkBook
* @description 针对表【laws_market_standard(市场法规)】的数据库操作Service实现
* @createDate 2024-06-29 11:34:04
*/
@Service
public class LawsMarketStandardServiceImpl extends ServiceImpl<LawsMarketStandardMapper, LawsMarketStandard>
implements ILawsMarketStandardService {
@Resource
private LawsMarketStandardMapper marketStandardMapper;
@Resource
private ILawsMarketStandardDetailService lawsMarketStandardDetailService;
@Override
public IPage<LawsMarketStandard> queryPage(LawsMarketStandard marketStandard, Integer pageNo, Integer pageSize) {
QueryWrapper<LawsMarketStandard> queryWrapper = new QueryWrapper<>();
Page<LawsMarketStandard> page = new Page<>(pageNo, pageSize);
queryWrapper.like(StringUtils.isNotBlank(marketStandard.getManifestNo()),
"ms.manifestNo", marketStandard.getManifestNo());
queryWrapper.like(StringUtils.isNotBlank(marketStandard.getManifestName()),
"ms.manifestName", marketStandard.getManifestName());
if (StringUtils.isNotBlank(marketStandard.getCountry())) {
queryWrapper.in("ms.country", Arrays.asList(marketStandard.getCountry().split(",")));
}
queryWrapper.eq(StringUtils.isNotBlank(marketStandard.getDrivePosition()),
"ms.drive_position", marketStandard.getDrivePosition());
queryWrapper.like(StringUtils.isNotBlank(marketStandard.getAuthor()),
"CONCAT(u.realname, '(', u.username, ')')", marketStandard.getAuthor());
queryWrapper.orderByDesc("cs.create_time");
return marketStandardMapper.queryByPage(page, queryWrapper);
}
@Override
public void add(MarketStandardDetailVO marketStandardDetailVO) {
LawsMarketStandard manifest = marketStandardDetailVO.getManifest();
manifest.setManifestStatus(MarketStandardConstants.MANIFEST_STATUS_NOT_PUBLISH);
// 设置清单编号
manifest.setManifestNo(this.generateManifestNo(manifest.getCountry()));
save(manifest);
List<LawsMarketStandardDetail> lists = marketStandardDetailVO.getLists();
lists.forEach(e -> e.setManifestId(manifest.getId()));
lawsMarketStandardDetailService.saveBatch(lists);
}
/**
* 生成清单编号
* @param country
* @return
*/
private String generateManifestNo(String country) {
// TODO 生成清单编号
return "BZFG" + "01";
}
@Override
public void edit(MarketStandardDetailVO marketStandardDetailVO) {
// 修改清单信息
LawsMarketStandard manifest = marketStandardDetailVO.getManifest();
updateById(manifest);
// 删除旧数据
LambdaQueryWrapper<LawsMarketStandardDetail> wrapper = new LambdaQueryWrapper<>();
wrapper.in(LawsMarketStandardDetail::getManifestId, manifest.getId());
lawsMarketStandardDetailService.remove(wrapper);
// 添加新数据
List<LawsMarketStandardDetail> lists = marketStandardDetailVO.getLists();
lists.forEach(e -> e.setManifestId(manifest.getId()));
lawsMarketStandardDetailService.saveBatch(lists);
}
@Override
public List<String> importExcel(MultipartFile file) {
return null;
}
@Override
public void export(HttpServletResponse response, LawsMarketStandard lawsMarketStandard, String fileName, String sheetName, HttpServletRequest req) {
}
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
LambdaQueryWrapper<LawsMarketStandardDetail> wrapper = new LambdaQueryWrapper<>();
wrapper.in(LawsMarketStandardDetail::getManifestId, ids);
lawsMarketStandardDetailService.remove(wrapper);
}
@Override
public MarketStandardDetailVO detail(LawsMarketStandardDetail marketStandardDetail, Integer pageNo, Integer pageSize) {
MarketStandardDetailVO result = new MarketStandardDetailVO();
String ids = marketStandardDetail.getManifestId();
List<String> idList = Arrays.asList(ids.split(","));
// 列表数据
Page<LawsMarketStandardDetail> page = new Page<>(pageNo, pageSize);
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);
Page<LawsMarketStandardDetail> pageData = lawsMarketStandardDetailService.page(page, wrapper);
result.setPageData(pageData);
// 如果不是合并查看列表页面
if (idList.size() > 1) {
return result;
}
LawsMarketStandard manifest = getById(idList.get(0));
result.setManifest(manifest);
// TODO 历史版本信息
result.setHistoryVersions(new ArrayList<>());
return result;
}
}