Browse Source

重写接口第三天

master
庄锐波 5 months ago
parent
commit
c4ffbcab35
  1. 105
      ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/ZdxtFileController.java
  2. 133
      ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/ZdxtFile.java
  3. 135
      ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/ZdxtFileBo.java
  4. 160
      ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/ZdxtFileVo.java
  5. 15
      ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/ZdxtFileMapper.java
  6. 68
      ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IZdxtFileService.java
  7. 151
      ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/ZdxtFileServiceImpl.java
  8. 6
      ruoyi-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/ZdxtFileMapper.xml
  9. 6
      script/sql/zfjd-refactoring-v1/009-修改执法码相关的表.sql
  10. 2
      zdxt-web-client/zdxt-admin-plus-ui/package.json
  11. 2
      zdxt-web-client/zdxt-admin-plus-ui/vite.config.ts

105
ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/web/supervision/ZdxtFileController.java

@ -0,0 +1,105 @@
package com.zdxt.enforcementcode.controller.web.supervision;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import com.zdxt.enforcementcode.domain.vo.ZdxtFileVo;
import com.zdxt.enforcementcode.domain.bo.ZdxtFileBo;
import com.zdxt.enforcementcode.service.IZdxtFileService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 附件
*
* @author Lion Li
* @date 2026-04-15
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/enforcementcode/file")
public class ZdxtFileController extends BaseController {
private final IZdxtFileService zdxtFileService;
/**
* 查询附件列表
*/
@SaCheckPermission("enforcementcode:file:list")
@GetMapping("/list")
public TableDataInfo<ZdxtFileVo> list(ZdxtFileBo bo, PageQuery pageQuery) {
return zdxtFileService.queryPageList(bo, pageQuery);
}
/**
* 导出附件列表
*/
@SaCheckPermission("enforcementcode:file:export")
@Log(title = "附件", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(ZdxtFileBo bo, HttpServletResponse response) {
List<ZdxtFileVo> list = zdxtFileService.queryList(bo);
ExcelUtil.exportExcel(list, "附件", ZdxtFileVo.class, response);
}
/**
* 获取附件详细信息
*
* @param guid 主键
*/
@SaCheckPermission("enforcementcode:file:query")
@GetMapping("/{guid}")
public R<ZdxtFileVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String guid) {
return R.ok(zdxtFileService.queryById(guid));
}
/**
* 新增附件
*/
@SaCheckPermission("enforcementcode:file:add")
@Log(title = "附件", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody ZdxtFileBo bo) {
return toAjax(zdxtFileService.insertByBo(bo));
}
/**
* 修改附件
*/
@SaCheckPermission("enforcementcode:file:edit")
@Log(title = "附件", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ZdxtFileBo bo) {
return toAjax(zdxtFileService.updateByBo(bo));
}
/**
* 删除附件
*
* @param guids 主键串
*/
@SaCheckPermission("enforcementcode:file:remove")
@Log(title = "附件", businessType = BusinessType.DELETE)
@DeleteMapping("/{guids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] guids) {
return toAjax(zdxtFileService.deleteWithValidByIds(List.of(guids), true));
}
}

133
ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/ZdxtFile.java

@ -0,0 +1,133 @@
package com.zdxt.enforcementcode.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
/**
* 附件对象 zdxt_file
*
* @author Lion Li
* @date 2026-04-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("zdxt_file")
public class ZdxtFile extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "guid")
private String guid;
/**
* 业务ID
*/
private String businessId;
/**
* 分类代码
*/
private String sortCode;
/**
* 文件名称
*/
private String fileName;
/**
* 上传人员ID
*/
private String uploadPersonId;
/**
* 上传人员姓名
*/
private String uploadPersonName;
/**
* 上传路径
*/
private String uploadPath;
/**
* 上传时间
*/
private Date uploadTime;
/**
* 机构编号
*/
private String orgCode;
/**
* 机构名称
*/
private String orgName;
/**
* 附件类型
*/
private String fileType;
/**
* 附件后缀
*/
private String fileSuffix;
/**
* 保存后附件名称
*/
private String fileSaveName;
/**
* 附件大小
*/
private String fileSize;
/**
* 备注
*/
private String fileRemark;
/**
* 修改人员姓名
*/
private String updatePersonName;
/**
* 逻辑删除20可用1删除
*/
private Long isDelete2;
/**
* 预留字段1
*/
private String expand1;
/**
* 预留字段2
*/
private String expand2;
/**
* 预留字段3
*/
private String expand3;
/**
* 租户id
*/
private String sassId;
}

135
ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/bo/ZdxtFileBo.java

@ -0,0 +1,135 @@
package com.zdxt.enforcementcode.domain.bo;
import com.zdxt.enforcementcode.domain.ZdxtFile;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 附件业务对象 zdxt_file
*
* @author Lion Li
* @date 2026-04-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = ZdxtFile.class, reverseConvertGenerate = false)
public class ZdxtFileBo extends BaseEntity {
/**
* 主键ID
*/
@NotBlank(message = "主键ID不能为空", groups = { EditGroup.class })
private String guid;
/**
* 业务ID
*/
private String businessId;
/**
* 分类代码
*/
private String sortCode;
/**
* 文件名称
*/
private String fileName;
/**
* 上传人员ID
*/
@NotBlank(message = "上传人员ID不能为空", groups = { AddGroup.class, EditGroup.class })
private String uploadPersonId;
/**
* 上传人员姓名
*/
@NotBlank(message = "上传人员姓名不能为空", groups = { AddGroup.class, EditGroup.class })
private String uploadPersonName;
/**
* 上传路径
*/
@NotBlank(message = "上传路径不能为空", groups = { AddGroup.class, EditGroup.class })
private String uploadPath;
/**
* 上传时间
*/
private Date uploadTime;
/**
* 机构编号
*/
private String orgCode;
/**
* 机构名称
*/
private String orgName;
/**
* 附件类型
*/
private String fileType;
/**
* 附件后缀
*/
private String fileSuffix;
/**
* 保存后附件名称
*/
private String fileSaveName;
/**
* 附件大小
*/
private String fileSize;
/**
* 备注
*/
private String fileRemark;
/**
* 修改人员姓名
*/
private String updatePersonName;
/**
* 逻辑删除20可用1删除
*/
private Long isDelete2;
/**
* 预留字段1
*/
private String expand1;
/**
* 预留字段2
*/
private String expand2;
/**
* 预留字段3
*/
private String expand3;
/**
* 租户id
*/
private String sassId;
}

160
ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/ZdxtFileVo.java

@ -0,0 +1,160 @@
package com.zdxt.enforcementcode.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zdxt.enforcementcode.domain.ZdxtFile;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* 附件视图对象 zdxt_file
*
* @author Lion Li
* @date 2026-04-15
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = ZdxtFile.class)
public class ZdxtFileVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private String guid;
/**
* 业务ID
*/
@ExcelProperty(value = "业务ID")
private String businessId;
/**
* 分类代码
*/
@ExcelProperty(value = "分类代码")
private String sortCode;
/**
* 文件名称
*/
@ExcelProperty(value = "文件名称")
private String fileName;
/**
* 上传人员ID
*/
@ExcelProperty(value = "上传人员ID")
private String uploadPersonId;
/**
* 上传人员姓名
*/
@ExcelProperty(value = "上传人员姓名")
private String uploadPersonName;
/**
* 上传路径
*/
@ExcelProperty(value = "上传路径")
private String uploadPath;
/**
* 上传时间
*/
@ExcelProperty(value = "上传时间")
private Date uploadTime;
/**
* 机构编号
*/
@ExcelProperty(value = "机构编号")
private String orgCode;
/**
* 机构名称
*/
@ExcelProperty(value = "机构名称")
private String orgName;
/**
* 附件类型
*/
@ExcelProperty(value = "附件类型")
private String fileType;
/**
* 附件后缀
*/
@ExcelProperty(value = "附件后缀")
private String fileSuffix;
/**
* 保存后附件名称
*/
@ExcelProperty(value = "保存后附件名称")
private String fileSaveName;
/**
* 附件大小
*/
@ExcelProperty(value = "附件大小")
private String fileSize;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String fileRemark;
/**
* 修改人员姓名
*/
@ExcelProperty(value = "修改人员姓名")
private String updatePersonName;
/**
* 逻辑删除20可用1删除
*/
@ExcelProperty(value = "逻辑删除2:0可用,1删除")
private Long isDelete2;
/**
* 预留字段1
*/
@ExcelProperty(value = "预留字段1")
private String expand1;
/**
* 预留字段2
*/
@ExcelProperty(value = "预留字段2")
private String expand2;
/**
* 预留字段3
*/
@ExcelProperty(value = "预留字段3")
private String expand3;
/**
* 租户id
*/
@ExcelProperty(value = "租户id")
private String sassId;
}

15
ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/ZdxtFileMapper.java

@ -0,0 +1,15 @@
package com.zdxt.enforcementcode.mapper;
import com.zdxt.enforcementcode.domain.ZdxtFile;
import com.zdxt.enforcementcode.domain.vo.ZdxtFileVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 附件Mapper接口
*
* @author Lion Li
* @date 2026-04-15
*/
public interface ZdxtFileMapper extends BaseMapperPlus<ZdxtFile, ZdxtFileVo> {
}

68
ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IZdxtFileService.java

@ -0,0 +1,68 @@
package com.zdxt.enforcementcode.service;
import com.zdxt.enforcementcode.domain.vo.ZdxtFileVo;
import com.zdxt.enforcementcode.domain.bo.ZdxtFileBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 附件Service接口
*
* @author Lion Li
* @date 2026-04-15
*/
public interface IZdxtFileService {
/**
* 查询附件
*
* @param guid 主键
* @return 附件
*/
ZdxtFileVo queryById(String guid);
/**
* 分页查询附件列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 附件分页列表
*/
TableDataInfo<ZdxtFileVo> queryPageList(ZdxtFileBo bo, PageQuery pageQuery);
/**
* 查询符合条件的附件列表
*
* @param bo 查询条件
* @return 附件列表
*/
List<ZdxtFileVo> queryList(ZdxtFileBo bo);
/**
* 新增附件
*
* @param bo 附件
* @return 是否新增成功
*/
Boolean insertByBo(ZdxtFileBo bo);
/**
* 修改附件
*
* @param bo 附件
* @return 是否修改成功
*/
Boolean updateByBo(ZdxtFileBo bo);
/**
* 校验并批量删除附件信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
}

151
ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/ZdxtFileServiceImpl.java

@ -0,0 +1,151 @@
package com.zdxt.enforcementcode.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.zdxt.enforcementcode.domain.bo.ZdxtFileBo;
import com.zdxt.enforcementcode.domain.vo.ZdxtFileVo;
import com.zdxt.enforcementcode.domain.ZdxtFile;
import com.zdxt.enforcementcode.mapper.ZdxtFileMapper;
import com.zdxt.enforcementcode.service.IZdxtFileService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 附件Service业务层处理
*
* @author Lion Li
* @date 2026-04-15
*/
@Slf4j
@RequiredArgsConstructor
@Service
public class ZdxtFileServiceImpl implements IZdxtFileService {
private final ZdxtFileMapper baseMapper;
/**
* 查询附件
*
* @param guid 主键
* @return 附件
*/
@Override
public ZdxtFileVo queryById(String guid){
return baseMapper.selectVoById(guid);
}
/**
* 分页查询附件列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 附件分页列表
*/
@Override
public TableDataInfo<ZdxtFileVo> queryPageList(ZdxtFileBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<ZdxtFile> lqw = buildQueryWrapper(bo);
Page<ZdxtFileVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的附件列表
*
* @param bo 查询条件
* @return 附件列表
*/
@Override
public List<ZdxtFileVo> queryList(ZdxtFileBo bo) {
LambdaQueryWrapper<ZdxtFile> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<ZdxtFile> buildQueryWrapper(ZdxtFileBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<ZdxtFile> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(ZdxtFile::getGuid);
lqw.eq(StringUtils.isNotBlank(bo.getBusinessId()), ZdxtFile::getBusinessId, bo.getBusinessId());
lqw.eq(StringUtils.isNotBlank(bo.getSortCode()), ZdxtFile::getSortCode, bo.getSortCode());
lqw.like(StringUtils.isNotBlank(bo.getFileName()), ZdxtFile::getFileName, bo.getFileName());
lqw.eq(StringUtils.isNotBlank(bo.getUploadPersonId()), ZdxtFile::getUploadPersonId, bo.getUploadPersonId());
lqw.like(StringUtils.isNotBlank(bo.getUploadPersonName()), ZdxtFile::getUploadPersonName, bo.getUploadPersonName());
lqw.eq(StringUtils.isNotBlank(bo.getUploadPath()), ZdxtFile::getUploadPath, bo.getUploadPath());
lqw.eq(bo.getUploadTime() != null, ZdxtFile::getUploadTime, bo.getUploadTime());
lqw.eq(StringUtils.isNotBlank(bo.getOrgCode()), ZdxtFile::getOrgCode, bo.getOrgCode());
lqw.like(StringUtils.isNotBlank(bo.getOrgName()), ZdxtFile::getOrgName, bo.getOrgName());
lqw.eq(StringUtils.isNotBlank(bo.getFileType()), ZdxtFile::getFileType, bo.getFileType());
lqw.eq(StringUtils.isNotBlank(bo.getFileSuffix()), ZdxtFile::getFileSuffix, bo.getFileSuffix());
lqw.like(StringUtils.isNotBlank(bo.getFileSaveName()), ZdxtFile::getFileSaveName, bo.getFileSaveName());
lqw.eq(StringUtils.isNotBlank(bo.getFileSize()), ZdxtFile::getFileSize, bo.getFileSize());
lqw.eq(StringUtils.isNotBlank(bo.getFileRemark()), ZdxtFile::getFileRemark, bo.getFileRemark());
lqw.like(StringUtils.isNotBlank(bo.getUpdatePersonName()), ZdxtFile::getUpdatePersonName, bo.getUpdatePersonName());
lqw.eq(bo.getIsDelete2() != null, ZdxtFile::getIsDelete2, bo.getIsDelete2());
lqw.eq(StringUtils.isNotBlank(bo.getExpand1()), ZdxtFile::getExpand1, bo.getExpand1());
lqw.eq(StringUtils.isNotBlank(bo.getExpand2()), ZdxtFile::getExpand2, bo.getExpand2());
lqw.eq(StringUtils.isNotBlank(bo.getExpand3()), ZdxtFile::getExpand3, bo.getExpand3());
lqw.eq(StringUtils.isNotBlank(bo.getSassId()), ZdxtFile::getSassId, bo.getSassId());
return lqw;
}
/**
* 新增附件
*
* @param bo 附件
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(ZdxtFileBo bo) {
ZdxtFile add = MapstructUtils.convert(bo, ZdxtFile.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setGuid(add.getGuid());
}
return flag;
}
/**
* 修改附件
*
* @param bo 附件
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(ZdxtFileBo bo) {
ZdxtFile update = MapstructUtils.convert(bo, ZdxtFile.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(ZdxtFile entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除附件信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

6
ruoyi-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/ZdxtFileMapper.xml

@ -0,0 +1,6 @@
<?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.zdxt.enforcementcode.mapper.ZdxtFileMapper">
</mapper>

6
script/sql/zfjd-refactoring-v1/009-修改执法码相关的表.sql

@ -6,3 +6,9 @@ ALTER TABLE enterprise_merchant_authorization
ADD COLUMN create_by varchar(50) NULL COMMENT '创建者' AFTER create_dept,
ADD COLUMN update_by varchar(50) NULL COMMENT '更新者' AFTER create_by,
ADD COLUMN update_time datetime NULL COMMENT '更新时间' AFTER update_by;
ALTER TABLE zdxt_file
ADD COLUMN create_dept varchar(100) NULL COMMENT '创建部门' AFTER sass_id,
ADD COLUMN create_by varchar(50) NULL COMMENT '创建者' AFTER create_dept,
ADD COLUMN update_by varchar(50) NULL COMMENT '更新者' AFTER create_by

2
zdxt-web-client/zdxt-admin-plus-ui/package.json

@ -7,7 +7,7 @@
"license": "MIT",
"type": "module",
"scripts": {
"zdxt-admin-plus-ui-dev": "vite serve --mode development",
"web-vite-supervision-dev": "vite serve --mode development",
"zdxt-admin-plus-ui-build:prod": "vite build --mode production --outDir dist/prod",
"zdxt-admin-plus-ui-build:dev": "vite build --mode development --outDir dist/dev",
"zdxt-admin-plus-ui-preview": "vite preview --outDir dist/prod",

2
zdxt-web-client/zdxt-admin-plus-ui/vite.config.ts

@ -24,7 +24,7 @@ export default defineConfig(({ mode, command }) => {
open: true,
proxy: {
[env.VITE_APP_BASE_API]: {
target: 'http://localhost:17000/supervision',
target: 'http://localhost:17000/sup-ep',
changeOrigin: true,
ws: true,
rewrite: (path) => path.replace(new RegExp('^' + env.VITE_APP_BASE_API), '')

Loading…
Cancel
Save