diff --git a/src/main/java/com/gxwebsoft/credit/controller/CreditJudiciaryController.java b/src/main/java/com/gxwebsoft/credit/controller/CreditJudiciaryController.java new file mode 100644 index 0000000..5903b99 --- /dev/null +++ b/src/main/java/com/gxwebsoft/credit/controller/CreditJudiciaryController.java @@ -0,0 +1,317 @@ +package com.gxwebsoft.credit.controller; + +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.ExcelImportUtil; +import cn.afterturn.easypoi.excel.entity.ExportParams; +import cn.afterturn.easypoi.excel.entity.ImportParams; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.credit.entity.CreditJudiciary; +import com.gxwebsoft.credit.param.CreditJudiciaryImportParam; +import com.gxwebsoft.credit.param.CreditJudiciaryParam; +import com.gxwebsoft.credit.service.CreditJudiciaryService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.apache.poi.ss.usermodel.Workbook; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * 司法案件控制器 + * + * @author 科技小王子 + * @since 2025-12-16 15:23:58 + */ +@Tag(name = "司法案件管理") +@RestController +@RequestMapping("/api/credit/credit-judiciary") +public class CreditJudiciaryController extends BaseController { + @Resource + private CreditJudiciaryService creditJudiciaryService; + + @Operation(summary = "分页查询司法案件") + @GetMapping("/page") + public ApiResult> page(CreditJudiciaryParam param) { + // 使用关联查询 + return success(creditJudiciaryService.pageRel(param)); + } + + @Operation(summary = "查询全部司法案件") + @GetMapping() + public ApiResult> list(CreditJudiciaryParam param) { + // 使用关联查询 + return success(creditJudiciaryService.listRel(param)); + } + + @Operation(summary = "根据id查询司法案件") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(creditJudiciaryService.getByIdRel(id)); + } + + @PreAuthorize("hasAuthority('credit:creditJudiciary:save')") + @OperationLog + @Operation(summary = "添加司法案件") + @PostMapping() + public ApiResult save(@RequestBody CreditJudiciary creditJudiciary) { + if (creditJudiciaryService.save(creditJudiciary)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('credit:creditJudiciary:update')") + @OperationLog + @Operation(summary = "修改司法案件") + @PutMapping() + public ApiResult update(@RequestBody CreditJudiciary creditJudiciary) { + if (creditJudiciaryService.updateById(creditJudiciary)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('credit:creditJudiciary:remove')") + @OperationLog + @Operation(summary = "删除司法案件") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (creditJudiciaryService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @PreAuthorize("hasAuthority('credit:creditJudiciary:save')") + @OperationLog + @Operation(summary = "批量添加司法案件") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (creditJudiciaryService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('credit:creditJudiciary:update')") + @OperationLog + @Operation(summary = "批量修改司法案件") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(creditJudiciaryService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('credit:creditJudiciary:remove')") + @OperationLog + @Operation(summary = "批量删除司法案件") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (creditJudiciaryService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + /** + * 批量导入司法案件 + */ + @PreAuthorize("hasAuthority('credit:creditJudiciary:save')") + @Operation(summary = "批量导入司法案件") + @PostMapping("/import") + public ApiResult> importBatch(@RequestParam("file") MultipartFile file) { + List errorMessages = new ArrayList<>(); + int successCount = 0; + + try { + List list = null; + int usedTitleRows = 0; + int usedHeadRows = 0; + int[][] tryConfigs = new int[][]{{1, 1}, {0, 1}, {0, 2}, {0, 3}}; + + for (int[] config : tryConfigs) { + list = filterEmptyRows(tryImport(file, config[0], config[1])); + if (!CollectionUtils.isEmpty(list)) { + usedTitleRows = config[0]; + usedHeadRows = config[1]; + break; + } + } + if (CollectionUtils.isEmpty(list)) { + return fail("未读取到数据,请确认模板表头与示例格式一致", null); + } + + User loginUser = getLoginUser(); + Integer currentUserId = loginUser != null ? loginUser.getUserId() : null; + Integer currentTenantId = loginUser != null ? loginUser.getTenantId() : null; + + for (int i = 0; i < list.size(); i++) { + CreditJudiciaryImportParam param = list.get(i); + try { + CreditJudiciary item = convertImportParamToEntity(param); + + // 设置默认值 + if (item.getUserId() == null && currentUserId != null) { + item.setUserId(currentUserId); + } + if (item.getTenantId() == null && currentTenantId != null) { + item.setTenantId(currentTenantId); + } + if (item.getStatus() == null) { + item.setStatus(0); + } + if (item.getRecommend() == null) { + item.setRecommend(0); + } + if (item.getType() == null) { + item.setType(0); + } + if (item.getDeleted() == null) { + item.setDeleted(0); + } + int excelRowNumber = i + 1 + usedTitleRows + usedHeadRows; + // 验证必填字段 + if (item.getName() == null || item.getName().trim().isEmpty()) { + errorMessages.add("第" + excelRowNumber + "行:项目名称不能为空"); + continue; + } + if (item.getCode() == null || item.getCode().trim().isEmpty()) { + errorMessages.add("第" + excelRowNumber + "行:唯一标识不能为空"); + continue; + } + + boolean saved = creditJudiciaryService.save(item); + if (!saved) { + CreditJudiciary existing = creditJudiciaryService.getByName(item.getName()); + if (existing != null) { + item.setId(existing.getId()); + if (creditJudiciaryService.updateById(item)) { + successCount++; + continue; + } + } + } else { + successCount++; + continue; + } + errorMessages.add("第" + excelRowNumber + "行:保存失败"); + } catch (Exception e) { + int excelRowNumber = i + 1 + usedTitleRows + usedHeadRows; + errorMessages.add("第" + excelRowNumber + "行:" + e.getMessage()); + e.printStackTrace(); + } + } + + if (errorMessages.isEmpty()) { + return success("成功导入" + successCount + "条数据", null); + } else { + return success("导入完成,成功" + successCount + "条,失败" + errorMessages.size() + "条", errorMessages); + } + + } catch (Exception e) { + e.printStackTrace(); + return fail("导入失败:" + e.getMessage(), null); + } + } + + /** + * 下载司法案件导入模板 + */ + @Operation(summary = "下载司法案件导入模板") + @GetMapping("/import/template") + public void downloadTemplate(HttpServletResponse response) throws IOException { + List templateList = new ArrayList<>(); + + CreditJudiciaryImportParam example = new CreditJudiciaryImportParam(); + example.setName("示例客户"); + example.setCode("C0001"); + example.setInfoType("执行案件"); + example.setReason("买卖合同纠纷"); + example.setProcessDate("2025-08-27"); + example.setCaseProgress("首次执行"); + example.setCaseIdentity("被执行人"); + example.setCode("(2025)闽0103执5480号"); + example.setCourt("福建省福州市台江区人民法院"); + example.setCaseAmount("5134060.00"); + templateList.add(example); + + ExportParams exportParams = new ExportParams("司法案件导入模板", "司法案件"); + + Workbook workbook = ExcelExportUtil.exportExcel(exportParams, CreditJudiciaryImportParam.class, templateList); + + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setHeader("Content-Disposition", "attachment; filename=credit_judiciary_import_template.xlsx"); + + workbook.write(response.getOutputStream()); + workbook.close(); + } + + private List tryImport(MultipartFile file, int titleRows, int headRows) throws Exception { + ImportParams importParams = new ImportParams(); + importParams.setTitleRows(titleRows); + importParams.setHeadRows(headRows); + importParams.setStartSheetIndex(0); + importParams.setSheetNum(1); + return ExcelImportUtil.importExcel(file.getInputStream(), CreditJudiciaryImportParam.class, importParams); + } + + /** + * 过滤掉完全空白的导入行,避免空行导致导入失败 + */ + private List filterEmptyRows(List rawList) { + if (CollectionUtils.isEmpty(rawList)) { + return rawList; + } + rawList.removeIf(this::isEmptyImportRow); + return rawList; + } + + private boolean isEmptyImportRow(CreditJudiciaryImportParam param) { + if (param == null) { + return true; + } + return isBlank(param.getName()) + && isBlank(param.getCode()) + && isBlank(param.getName()) + && isBlank(param.getInfoType()); + } + + private boolean isBlank(String value) { + return value == null || value.trim().isEmpty(); + } + + /** + * 将CreditJudiciaryImportParam转换为CreditJudiciary实体 + */ + private CreditJudiciary convertImportParamToEntity(CreditJudiciaryImportParam param) { + CreditJudiciary entity = new CreditJudiciary(); + + entity.setCode(param.getCode()); + entity.setName(param.getName()); + entity.setInfoType(param.getInfoType()); + entity.setReason(param.getReason()); + entity.setProcessDate(param.getProcessDate()); + entity.setCaseProgress(param.getCaseProgress()); + entity.setCaseIdentity(param.getCaseIdentity()); + entity.setCourt(param.getCourt()); + entity.setCaseAmount(param.getCaseAmount()); + + return entity; + } + +} diff --git a/src/main/java/com/gxwebsoft/credit/controller/CreditUserController.java b/src/main/java/com/gxwebsoft/credit/controller/CreditUserController.java index b5beb85..9dd458f 100644 --- a/src/main/java/com/gxwebsoft/credit/controller/CreditUserController.java +++ b/src/main/java/com/gxwebsoft/credit/controller/CreditUserController.java @@ -33,12 +33,12 @@ import java.util.ArrayList; import java.util.List; /** - * 赊账客户表控制器 + * 招投标信息表控制器 * * @author 科技小王子 * @since 2025-12-15 13:16:04 */ -@Tag(name = "赊账客户表管理") +@Tag(name = "招投标信息表管理") @RestController @RequestMapping("/api/credit/credit-user") public class CreditUserController extends BaseController { @@ -47,21 +47,21 @@ public class CreditUserController extends BaseController { @Resource private CreditUserService creditUserService; - @Operation(summary = "分页查询赊账客户表") + @Operation(summary = "分页查询招投标信息表") @GetMapping("/page") public ApiResult> page(CreditUserParam param) { // 使用关联查询 return success(creditUserService.pageRel(param)); } - @Operation(summary = "查询全部赊账客户表") + @Operation(summary = "查询全部招投标信息表") @GetMapping() public ApiResult> list(CreditUserParam param) { // 使用关联查询 return success(creditUserService.listRel(param)); } - @Operation(summary = "根据id查询赊账客户表") + @Operation(summary = "根据id查询招投标信息表") @GetMapping("/{id}") public ApiResult get(@PathVariable("id") Integer id) { // 使用关联查询 @@ -70,7 +70,7 @@ public class CreditUserController extends BaseController { @PreAuthorize("hasAuthority('credit:creditUser:save')") @OperationLog - @Operation(summary = "添加赊账客户表") + @Operation(summary = "添加招投标信息表") @PostMapping() public ApiResult save(@RequestBody CreditUser creditUser) { if (creditUserService.save(creditUser)) { @@ -81,7 +81,7 @@ public class CreditUserController extends BaseController { @PreAuthorize("hasAuthority('credit:creditUser:update')") @OperationLog - @Operation(summary = "修改赊账客户表") + @Operation(summary = "修改招投标信息表") @PutMapping() public ApiResult update(@RequestBody CreditUser creditUser) { if (creditUserService.updateById(creditUser)) { @@ -92,7 +92,7 @@ public class CreditUserController extends BaseController { @PreAuthorize("hasAuthority('credit:creditUser:remove')") @OperationLog - @Operation(summary = "删除赊账客户表") + @Operation(summary = "删除招投标信息表") @DeleteMapping("/{id}") public ApiResult remove(@PathVariable("id") Integer id) { if (creditUserService.removeById(id)) { @@ -103,7 +103,7 @@ public class CreditUserController extends BaseController { @PreAuthorize("hasAuthority('credit:creditUser:save')") @OperationLog - @Operation(summary = "批量添加赊账客户表") + @Operation(summary = "批量添加招投标信息表") @PostMapping("/batch") public ApiResult saveBatch(@RequestBody List list) { if (creditUserService.saveBatch(list)) { @@ -114,7 +114,7 @@ public class CreditUserController extends BaseController { @PreAuthorize("hasAuthority('credit:creditUser:update')") @OperationLog - @Operation(summary = "批量修改赊账客户表") + @Operation(summary = "批量修改招投标信息表") @PutMapping("/batch") public ApiResult removeBatch(@RequestBody BatchParam batchParam) { if (batchParam.update(creditUserService, "id")) { @@ -125,7 +125,7 @@ public class CreditUserController extends BaseController { @PreAuthorize("hasAuthority('credit:creditUser:remove')") @OperationLog - @Operation(summary = "批量删除赊账客户表") + @Operation(summary = "批量删除招投标信息表") @DeleteMapping("/batch") public ApiResult removeBatch(@RequestBody List ids) { if (creditUserService.removeByIds(ids)) { @@ -135,11 +135,11 @@ public class CreditUserController extends BaseController { } /** - * 批量导入赊账客户 + * 批量导入招投标信息 * Excel表头格式:客户名称、唯一标识、类型、企业角色、上级ID、信息类型、所在国家、所在省份、所在城市、所在辖区、街道地址、招采单位名称、中标单位名称、中标金额、备注、是否推荐、到期时间、排序、状态、用户ID、租户ID */ @PreAuthorize("hasAuthority('credit:creditUser:save')") - @Operation(summary = "批量导入赊账客户") + @Operation(summary = "批量导入招投标信息") @PostMapping("/import") public ApiResult> importBatch(@RequestParam("file") MultipartFile file) { List errorMessages = new ArrayList<>(); @@ -217,7 +217,7 @@ public class CreditUserController extends BaseController { if (errorMessages.isEmpty()) { return success("成功导入" + successCount + "条数据", null); } else { - return success("导入完成,成功" + successCount + "条,失败" + errorMessages.size() + "条", errorMessages); + return success("导入完成,成功" + successCount + "条,更新" + errorMessages.size() + "条", errorMessages); } } catch (Exception e) { @@ -227,9 +227,9 @@ public class CreditUserController extends BaseController { } /** - * 下载赊账客户导入模板 + * 下载招投标信息导入模板 */ - @Operation(summary = "下载赊账客户导入模板") + @Operation(summary = "下载招投标信息导入模板") @GetMapping("/import/template") public void downloadTemplate(HttpServletResponse response) throws IOException { List templateList = new ArrayList<>(); @@ -247,7 +247,7 @@ public class CreditUserController extends BaseController { example.setWinningPrice("100000"); templateList.add(example); - ExportParams exportParams = new ExportParams("赊账客户导入模板", "赊账客户"); + ExportParams exportParams = new ExportParams("招投标信息导入模板", "招投标信息"); Workbook workbook = ExcelExportUtil.exportExcel(exportParams, CreditUserImportParam.class, templateList); diff --git a/src/main/java/com/gxwebsoft/credit/entity/CreditJudiciary.java b/src/main/java/com/gxwebsoft/credit/entity/CreditJudiciary.java new file mode 100644 index 0000000..6659f53 --- /dev/null +++ b/src/main/java/com/gxwebsoft/credit/entity/CreditJudiciary.java @@ -0,0 +1,112 @@ +package com.gxwebsoft.credit.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * 司法案件 + * + * @author 科技小王子 + * @since 2025-12-16 15:23:58 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Schema(name = "CreditJudiciary对象", description = "司法案件") +public class CreditJudiciary implements Serializable { + private static final long serialVersionUID = 1L; + + @Schema(description = "ID") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @Schema(description = "案件名称") + private String name; + + @Schema(description = "案号") + private String code; + + @Schema(description = "类型, 0普通用户, 1招投标") + private Integer type; + + @Schema(description = "案由") + private String reason; + + @Schema(description = "上级id, 0是顶级") + private Integer parentId; + + @Schema(description = "案件类型") + private String infoType; + + @Schema(description = "所在国家") + private String country; + + @Schema(description = "所在省份") + private String province; + + @Schema(description = "所在城市") + private String city; + + @Schema(description = "所在辖区") + private String region; + + @Schema(description = "街道地址") + private String address; + + @Schema(description = "案件进程") + private String caseProgress; + + @Schema(description = "案件身份") + private String caseIdentity; + + @Schema(description = "法院") + private String court; + + @Schema(description = "进程日期") + private String processDate; + + @Schema(description = "案件金额(元)") + private String caseAmount; + + @Schema(description = "备注") + private String comments; + + @Schema(description = "是否推荐") + private Integer recommend; + + @Schema(description = "到期时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime expirationTime; + + @Schema(description = "排序(数字越小越靠前)") + private Integer sortNumber; + + @Schema(description = "状态, 0正常, 1冻结") + private Integer status; + + @Schema(description = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @Schema(description = "用户ID") + private Integer userId; + + @Schema(description = "租户id") + private Integer tenantId; + + @Schema(description = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @Schema(description = "修改时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + +} diff --git a/src/main/java/com/gxwebsoft/credit/entity/CreditUser.java b/src/main/java/com/gxwebsoft/credit/entity/CreditUser.java index 2d2b71b..a18d69b 100644 --- a/src/main/java/com/gxwebsoft/credit/entity/CreditUser.java +++ b/src/main/java/com/gxwebsoft/credit/entity/CreditUser.java @@ -11,14 +11,14 @@ import lombok.EqualsAndHashCode; import com.fasterxml.jackson.annotation.JsonFormat; /** - * 赊账客户表 + * 招投标信息表 * * @author 科技小王子 * @since 2025-12-15 13:16:03 */ @Data @EqualsAndHashCode(callSuper = false) -@Schema(name = "CreditUser对象", description = "赊账客户表") +@Schema(name = "CreditUser对象", description = "招投标信息表") public class CreditUser implements Serializable { private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/gxwebsoft/credit/mapper/CreditJudiciaryMapper.java b/src/main/java/com/gxwebsoft/credit/mapper/CreditJudiciaryMapper.java new file mode 100644 index 0000000..85c3efa --- /dev/null +++ b/src/main/java/com/gxwebsoft/credit/mapper/CreditJudiciaryMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.credit.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.credit.entity.CreditJudiciary; +import com.gxwebsoft.credit.param.CreditJudiciaryParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 司法案件Mapper + * + * @author 科技小王子 + * @since 2025-12-16 15:23:58 + */ +public interface CreditJudiciaryMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") CreditJudiciaryParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") CreditJudiciaryParam param); + +} diff --git a/src/main/java/com/gxwebsoft/credit/mapper/CreditUserMapper.java b/src/main/java/com/gxwebsoft/credit/mapper/CreditUserMapper.java index e867176..dd1372c 100644 --- a/src/main/java/com/gxwebsoft/credit/mapper/CreditUserMapper.java +++ b/src/main/java/com/gxwebsoft/credit/mapper/CreditUserMapper.java @@ -9,7 +9,7 @@ import org.apache.ibatis.annotations.Param; import java.util.List; /** - * 赊账客户表Mapper + * 招投标信息表Mapper * * @author 科技小王子 * @since 2025-12-15 13:16:03 diff --git a/src/main/java/com/gxwebsoft/credit/mapper/xml/CreditJudiciaryMapper.xml b/src/main/java/com/gxwebsoft/credit/mapper/xml/CreditJudiciaryMapper.xml new file mode 100644 index 0000000..2362dd6 --- /dev/null +++ b/src/main/java/com/gxwebsoft/credit/mapper/xml/CreditJudiciaryMapper.xml @@ -0,0 +1,108 @@ + + + + + + + SELECT a.* + FROM credit_judiciary a + + + AND a.id = #{param.id} + + + AND a.name LIKE CONCAT('%', #{param.name}, '%') + + + AND a.code LIKE CONCAT('%', #{param.code}, '%') + + + AND a.type = #{param.type} + + + AND a.reason LIKE CONCAT('%', #{param.reason}, '%') + + + AND a.parent_id = #{param.parentId} + + + AND a.info_type LIKE CONCAT('%', #{param.infoType}, '%') + + + AND a.country LIKE CONCAT('%', #{param.country}, '%') + + + AND a.province LIKE CONCAT('%', #{param.province}, '%') + + + AND a.city LIKE CONCAT('%', #{param.city}, '%') + + + AND a.region LIKE CONCAT('%', #{param.region}, '%') + + + AND a.address LIKE CONCAT('%', #{param.address}, '%') + + + AND a.case_progress LIKE CONCAT('%', #{param.caseProgress}, '%') + + + AND a.case_identity LIKE CONCAT('%', #{param.caseIdentity}, '%') + + + AND a.court LIKE CONCAT('%', #{param.court}, '%') + + + AND a.process_date LIKE CONCAT('%', #{param.processDate}, '%') + + + AND a.case_amount LIKE CONCAT('%', #{param.caseAmount}, '%') + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.recommend = #{param.recommend} + + + AND a.expiration_time LIKE CONCAT('%', #{param.expirationTime}, '%') + + + AND a.sort_number = #{param.sortNumber} + + + AND a.status = #{param.status} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.user_id = #{param.userId} + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/credit/param/CreditJudiciaryImportParam.java b/src/main/java/com/gxwebsoft/credit/param/CreditJudiciaryImportParam.java new file mode 100644 index 0000000..4c08656 --- /dev/null +++ b/src/main/java/com/gxwebsoft/credit/param/CreditJudiciaryImportParam.java @@ -0,0 +1,45 @@ +package com.gxwebsoft.credit.param; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; + +import java.io.Serializable; + +/** + * 招投标信息导入参数 + * + * @author 科技小王子 + * @since 2025-12-15 + */ +@Data +public class CreditJudiciaryImportParam implements Serializable { + private static final long serialVersionUID = 1L; + + @Excel(name = "案件名称") + private String name; + + @Excel(name = "案件类型") + private String infoType; + + @Excel(name = "案由") + private String reason; + + @Excel(name = "进程日期") + private String processDate; + + @Excel(name = "案件进程") + private String caseProgress; + + @Excel(name = "案件身份") + private String caseIdentity; + + @Excel(name = "案号") + private String code; + + @Excel(name = "法院") + private String court; + + @Excel(name = "案件金额(元)") + private String caseAmount; + +} diff --git a/src/main/java/com/gxwebsoft/credit/param/CreditJudiciaryParam.java b/src/main/java/com/gxwebsoft/credit/param/CreditJudiciaryParam.java new file mode 100644 index 0000000..3cabd5b --- /dev/null +++ b/src/main/java/com/gxwebsoft/credit/param/CreditJudiciaryParam.java @@ -0,0 +1,104 @@ +package com.gxwebsoft.credit.param; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 司法案件查询参数 + * + * @author 科技小王子 + * @since 2025-12-16 15:23:57 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@Schema(name = "CreditJudiciaryParam对象", description = "司法案件查询参数") +public class CreditJudiciaryParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @Schema(description = "ID") + @QueryField(type = QueryType.EQ) + private Integer id; + + @Schema(description = "案件名称") + private String name; + + @Schema(description = "案号") + private String code; + + @Schema(description = "类型, 0普通用户, 1招投标") + @QueryField(type = QueryType.EQ) + private Integer type; + + @Schema(description = "案由") + private String reason; + + @Schema(description = "上级id, 0是顶级") + @QueryField(type = QueryType.EQ) + private Integer parentId; + + @Schema(description = "案件类型") + private String infoType; + + @Schema(description = "所在国家") + private String country; + + @Schema(description = "所在省份") + private String province; + + @Schema(description = "所在城市") + private String city; + + @Schema(description = "所在辖区") + private String region; + + @Schema(description = "街道地址") + private String address; + + @Schema(description = "案件进程") + private String caseProgress; + + @Schema(description = "案件身份") + private String caseIdentity; + + @Schema(description = "法院") + private String court; + + @Schema(description = "进程日期") + private String processDate; + + @Schema(description = "案件金额(元)") + private String caseAmount; + + @Schema(description = "备注") + private String comments; + + @Schema(description = "是否推荐") + @QueryField(type = QueryType.EQ) + private Integer recommend; + + @Schema(description = "到期时间") + private String expirationTime; + + @Schema(description = "排序(数字越小越靠前)") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @Schema(description = "状态, 0正常, 1冻结") + @QueryField(type = QueryType.EQ) + private Integer status; + + @Schema(description = "是否删除, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer deleted; + + @Schema(description = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + +} diff --git a/src/main/java/com/gxwebsoft/credit/param/CreditUserImportParam.java b/src/main/java/com/gxwebsoft/credit/param/CreditUserImportParam.java index ff7fba0..0420439 100644 --- a/src/main/java/com/gxwebsoft/credit/param/CreditUserImportParam.java +++ b/src/main/java/com/gxwebsoft/credit/param/CreditUserImportParam.java @@ -7,7 +7,7 @@ import lombok.Data; import java.io.Serializable; /** - * 赊账客户导入参数 + * 招投标信息导入参数 * * @author 科技小王子 * @since 2025-12-15 diff --git a/src/main/java/com/gxwebsoft/credit/param/CreditUserParam.java b/src/main/java/com/gxwebsoft/credit/param/CreditUserParam.java index 2468f0d..2a55b5d 100644 --- a/src/main/java/com/gxwebsoft/credit/param/CreditUserParam.java +++ b/src/main/java/com/gxwebsoft/credit/param/CreditUserParam.java @@ -10,7 +10,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; /** - * 赊账客户表查询参数 + * 招投标信息表查询参数 * * @author 科技小王子 * @since 2025-12-15 13:16:03 @@ -18,7 +18,7 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = false) @JsonInclude(JsonInclude.Include.NON_NULL) -@Schema(name = "CreditUserParam对象", description = "赊账客户表查询参数") +@Schema(name = "CreditUserParam对象", description = "招投标信息表查询参数") public class CreditUserParam extends BaseParam { private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/gxwebsoft/credit/service/CreditJudiciaryService.java b/src/main/java/com/gxwebsoft/credit/service/CreditJudiciaryService.java new file mode 100644 index 0000000..122b303 --- /dev/null +++ b/src/main/java/com/gxwebsoft/credit/service/CreditJudiciaryService.java @@ -0,0 +1,50 @@ +package com.gxwebsoft.credit.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.credit.entity.CreditJudiciary; +import com.gxwebsoft.credit.param.CreditJudiciaryParam; + +import java.util.List; + +/** + * 司法案件Service + * + * @author 科技小王子 + * @since 2025-12-16 15:23:58 + */ +public interface CreditJudiciaryService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(CreditJudiciaryParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(CreditJudiciaryParam param); + + /** + * 根据id查询 + * + * @param id ID + * @return CreditJudiciary + */ + CreditJudiciary getByIdRel(Integer id); + + /** + * 根据名称查询 + * + * @param name 名称 + * @return CreditJudiciary + */ + CreditJudiciary getByName(String name); + +} diff --git a/src/main/java/com/gxwebsoft/credit/service/CreditUserService.java b/src/main/java/com/gxwebsoft/credit/service/CreditUserService.java index 5fe708d..e833256 100644 --- a/src/main/java/com/gxwebsoft/credit/service/CreditUserService.java +++ b/src/main/java/com/gxwebsoft/credit/service/CreditUserService.java @@ -8,7 +8,7 @@ import com.gxwebsoft.credit.param.CreditUserParam; import java.util.List; /** - * 赊账客户表Service + * 招投标信息表Service * * @author 科技小王子 * @since 2025-12-15 13:16:03 diff --git a/src/main/java/com/gxwebsoft/credit/service/impl/CreditJudiciaryServiceImpl.java b/src/main/java/com/gxwebsoft/credit/service/impl/CreditJudiciaryServiceImpl.java new file mode 100644 index 0000000..6b31fbe --- /dev/null +++ b/src/main/java/com/gxwebsoft/credit/service/impl/CreditJudiciaryServiceImpl.java @@ -0,0 +1,54 @@ +package com.gxwebsoft.credit.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.credit.entity.CreditJudiciary; +import com.gxwebsoft.credit.mapper.CreditJudiciaryMapper; +import com.gxwebsoft.credit.param.CreditJudiciaryParam; +import com.gxwebsoft.credit.service.CreditJudiciaryService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 司法案件Service实现 + * + * @author 科技小王子 + * @since 2025-12-16 15:23:58 + */ +@Service +public class CreditJudiciaryServiceImpl extends ServiceImpl implements CreditJudiciaryService { + + @Override + public PageResult pageRel(CreditJudiciaryParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(CreditJudiciaryParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public CreditJudiciary getByIdRel(Integer id) { + CreditJudiciaryParam param = new CreditJudiciaryParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + + @Override + public CreditJudiciary getByName(String name) { + CreditJudiciaryParam param = new CreditJudiciaryParam(); + param.setName(name); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/credit/service/impl/CreditUserServiceImpl.java b/src/main/java/com/gxwebsoft/credit/service/impl/CreditUserServiceImpl.java index 8578ea1..9bd5a00 100644 --- a/src/main/java/com/gxwebsoft/credit/service/impl/CreditUserServiceImpl.java +++ b/src/main/java/com/gxwebsoft/credit/service/impl/CreditUserServiceImpl.java @@ -12,7 +12,7 @@ import org.springframework.stereotype.Service; import java.util.List; /** - * 赊账客户表Service实现 + * 招投标信息表Service实现 * * @author 科技小王子 * @since 2025-12-15 13:16:03