Merge branch 'refs/heads/zt-test' into test

This commit is contained in:
FCL
2026-02-04 11:25:07 +08:00
3407 changed files with 829 additions and 259881 deletions

View File

@@ -4,7 +4,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>zt-module-infra</artifactId>
<artifactId>zt-module-infra-dsc</artifactId>
<groupId>com.zt.plat</groupId>
<version>${revision}</version>
</parent>
@@ -24,6 +24,12 @@
<version>${revision}</version>
</dependency>
<!-- Test 测试相关 -->
<dependency>
<groupId>com.zt.plat</groupId>
<artifactId>zt-spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>

View File

@@ -0,0 +1,175 @@
package com.zt.plat.module.infra.controller.admin.businessfile;
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.pojo.PageParam;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.framework.excel.core.util.ExcelUtils;
import com.zt.plat.module.infra.controller.admin.businessfile.vo.BusinessFilePageReqVO;
import com.zt.plat.module.infra.controller.admin.businessfile.vo.BusinessFileRespVO;
import com.zt.plat.module.infra.controller.admin.businessfile.vo.BusinessFileSaveReqVO;
import com.zt.plat.module.infra.controller.admin.businessfile.vo.BusinessFileWithUrlRespVO;
import com.zt.plat.module.infra.dal.dataobject.businessfile.BusinessFileDO;
import com.zt.plat.module.infra.service.businessfile.BusinessFileService;
import com.zt.plat.module.infra.service.file.FileService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.io.IOException;
import java.util.List;
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import static com.zt.plat.framework.common.pojo.CommonResult.success;
@Tag(name = "管理后台 - 业务附件关联")
@RestController
@RequestMapping("/infra/business-file")
@Validated
public class BusinessFileController {
@Resource
private BusinessFileService businessFileService;
@Resource
private FileService fileService;
@PostMapping("/create")
@Operation(summary = "创建业务附件关联")
@PreAuthorize("@ss.hasPermission('infra:business-file:create')")
public CommonResult<Long> createBusinessFile(@Valid @RequestBody BusinessFileSaveReqVO createReqVO) {
return success(businessFileService.createBusinessFile(createReqVO));
}
@PostMapping("/batch-create")
@Operation(summary = "批量创建业务附件关联")
@PreAuthorize("@ss.hasPermission('infra:business-file:create')")
public CommonResult<List<Long>> batchCreateBusinessFile(@Valid @RequestBody List<BusinessFileSaveReqVO> createReqVOList) {
return success(businessFileService.batchCreateBusinessFile(createReqVOList));
}
@PutMapping("/update")
@Operation(summary = "更新业务附件关联")
@PreAuthorize("@ss.hasPermission('infra:business-file:update')")
public CommonResult<Boolean> updateBusinessFile(@Valid @RequestBody BusinessFileSaveReqVO updateReqVO) {
businessFileService.updateBusinessFile(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除业务附件关联")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('infra:business-file:delete')")
public CommonResult<Boolean> deleteBusinessFile(@RequestParam("id") Long id) {
businessFileService.deleteBusinessFile(id);
return success(true);
}
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除业务附件关联")
@PreAuthorize("@ss.hasPermission('infra:business-file:delete')")
public CommonResult<Boolean> deleteBusinessFileList(@RequestParam("ids") List<Long> ids) {
businessFileService.deleteBusinessFileListByIds(ids);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得业务附件关联")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('infra:business-file:query')")
public CommonResult<BusinessFileRespVO> getBusinessFile(@RequestParam("id") Long id) {
BusinessFileDO businessFile = businessFileService.getBusinessFile(id);
return success(BeanUtils.toBean(businessFile, BusinessFileRespVO.class));
}
@GetMapping("/get-by-code")
@Operation(summary = "根据业务编码获得业务附件关联")
@Parameter(name = "businessCode", description = "业务编码", required = true)
@PreAuthorize("@ss.hasPermission('infra:business-file:query')")
public CommonResult<BusinessFileRespVO> getBusinessFileByBusinessCode(@RequestParam("businessCode") String businessCode) {
BusinessFileDO businessFile = businessFileService.getBusinessFileByBusinessCode(businessCode);
return success(BeanUtils.toBean(businessFile, BusinessFileRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得业务附件关联分页")
@PreAuthorize("@ss.hasAnyPermissions({'infra:business-file:query','supply:purchase-credit-granting-form-template:query-list','supply:purchase-amount-request-form-template:query-list'})")
public CommonResult<PageResult<BusinessFileRespVO>> getBusinessFilePage(@Valid BusinessFilePageReqVO pageReqVO) {
PageResult<BusinessFileDO> pageResult = businessFileService.getBusinessFilePage(pageReqVO);
return success(BeanUtils.toBean(pageResult, BusinessFileRespVO.class));
}
@GetMapping("/page-with-url")
@Operation(summary = "获得业务附件关联分页带URL")
@PreAuthorize("@ss.hasPermission('infra:business-file:query')")
public CommonResult<PageResult<BusinessFileWithUrlRespVO>> getBusinessFilePageWithUrl(@Valid BusinessFilePageReqVO pageReqVO) {
return success(businessFileService.getBusinessFilePageWithUrl(pageReqVO));
}
@GetMapping("/export-excel")
@Operation(summary = "导出业务附件关联 Excel")
@PreAuthorize("@ss.hasPermission('infra:business-file:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportBusinessFileExcel(@Valid BusinessFilePageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<BusinessFileDO> list = businessFileService.getBusinessFilePage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "业务附件关联.xls", "数据", BusinessFileRespVO.class,
BeanUtils.toBean(list, BusinessFileRespVO.class));
}
@DeleteMapping("/delete-by-business")
@Operation(summary = "根据业务Id和来源删除业务附件关联")
@Parameter(name = "businessId", description = "业务Id", required = true)
@Parameter(name = "source", description = "业务来源", required = true)
@PreAuthorize("@ss.hasPermission('infra:business-file:delete')")
public CommonResult<Boolean> deleteBusinessFileByBusinessIdAndSource(@RequestParam("businessId") Long businessId,
@RequestParam("source") String source) {
businessFileService.deleteBusinessFileByBusinessIdAndSource(businessId, source);
return success(true);
}
@PutMapping("/enable")
@Operation(summary = "启用业务附件关联")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('infra:business-file:update')")
public CommonResult<Boolean> enableBusinessFile(@RequestParam("id") Long id) {
businessFileService.enableBusinessFile(id);
return success(true);
}
@PutMapping("/disable")
@Operation(summary = "禁用业务附件关联")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('infra:business-file:update')")
public CommonResult<Boolean> disableBusinessFile(@RequestParam("id") Long id) {
businessFileService.disableBusinessFile(id);
return success(true);
}
@PutMapping("/update-status")
@Operation(summary = "批量更新业务附件状态")
@PreAuthorize("@ss.hasPermission('infra:business-file:update')")
public CommonResult<Boolean> updateBusinessFileStatus(@RequestParam("ids") List<Long> ids,
@RequestParam("status") Integer status) {
businessFileService.updateBusinessFileStatus(ids, status);
return success(true);
}
}