定义专项核查拓展查询接口契约
This commit is contained in:
@@ -1,7 +1,19 @@
|
||||
package com.ruoyi.ccdi.project.controller;
|
||||
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedPurchaseDetailQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedPurchaseQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedRecruitmentDetailQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedRecruitmentQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedTransferDetailQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedTransferQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectFamilyAssetLiabilityDetailQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectFamilyAssetLiabilityListQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedPurchaseDetailVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedPurchaseListVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedRecruitmentDetailVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedRecruitmentListVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedTransferDetailVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedTransferListVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectFamilyAssetLiabilityDetailVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectFamilyAssetLiabilityListVO;
|
||||
import com.ruoyi.ccdi.project.service.ICcdiProjectSpecialCheckService;
|
||||
@@ -48,4 +60,70 @@ public class CcdiProjectSpecialCheckController extends BaseController {
|
||||
CcdiProjectFamilyAssetLiabilityDetailVO result = specialCheckService.getFamilyAssetLiabilityDetail(queryDTO);
|
||||
return AjaxResult.success(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询采购拓展列表
|
||||
*/
|
||||
@GetMapping("/extended-query/purchase/list")
|
||||
@Operation(summary = "查询采购拓展列表")
|
||||
@PreAuthorize("@ss.hasPermi('ccdi:project:query')")
|
||||
public AjaxResult getExtendedPurchaseList(@Validated CcdiProjectExtendedPurchaseQueryDTO queryDTO) {
|
||||
CcdiProjectExtendedPurchaseListVO result = specialCheckService.getExtendedPurchaseList(queryDTO);
|
||||
return AjaxResult.success(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询采购拓展详情
|
||||
*/
|
||||
@GetMapping("/extended-query/purchase/detail")
|
||||
@Operation(summary = "查询采购拓展详情")
|
||||
@PreAuthorize("@ss.hasPermi('ccdi:project:query')")
|
||||
public AjaxResult getExtendedPurchaseDetail(@Validated CcdiProjectExtendedPurchaseDetailQueryDTO queryDTO) {
|
||||
CcdiProjectExtendedPurchaseDetailVO result = specialCheckService.getExtendedPurchaseDetail(queryDTO);
|
||||
return AjaxResult.success(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询招聘拓展列表
|
||||
*/
|
||||
@GetMapping("/extended-query/recruitment/list")
|
||||
@Operation(summary = "查询招聘拓展列表")
|
||||
@PreAuthorize("@ss.hasPermi('ccdi:project:query')")
|
||||
public AjaxResult getExtendedRecruitmentList(@Validated CcdiProjectExtendedRecruitmentQueryDTO queryDTO) {
|
||||
CcdiProjectExtendedRecruitmentListVO result = specialCheckService.getExtendedRecruitmentList(queryDTO);
|
||||
return AjaxResult.success(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询招聘拓展详情
|
||||
*/
|
||||
@GetMapping("/extended-query/recruitment/detail")
|
||||
@Operation(summary = "查询招聘拓展详情")
|
||||
@PreAuthorize("@ss.hasPermi('ccdi:project:query')")
|
||||
public AjaxResult getExtendedRecruitmentDetail(@Validated CcdiProjectExtendedRecruitmentDetailQueryDTO queryDTO) {
|
||||
CcdiProjectExtendedRecruitmentDetailVO result = specialCheckService.getExtendedRecruitmentDetail(queryDTO);
|
||||
return AjaxResult.success(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询调动拓展列表
|
||||
*/
|
||||
@GetMapping("/extended-query/transfer/list")
|
||||
@Operation(summary = "查询调动拓展列表")
|
||||
@PreAuthorize("@ss.hasPermi('ccdi:project:query')")
|
||||
public AjaxResult getExtendedTransferList(@Validated CcdiProjectExtendedTransferQueryDTO queryDTO) {
|
||||
CcdiProjectExtendedTransferListVO result = specialCheckService.getExtendedTransferList(queryDTO);
|
||||
return AjaxResult.success(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询调动拓展详情
|
||||
*/
|
||||
@GetMapping("/extended-query/transfer/detail")
|
||||
@Operation(summary = "查询调动拓展详情")
|
||||
@PreAuthorize("@ss.hasPermi('ccdi:project:query')")
|
||||
public AjaxResult getExtendedTransferDetail(@Validated CcdiProjectExtendedTransferDetailQueryDTO queryDTO) {
|
||||
CcdiProjectExtendedTransferDetailVO result = specialCheckService.getExtendedTransferDetail(queryDTO);
|
||||
return AjaxResult.success(result);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.ruoyi.ccdi.project.domain.dto;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 专项核查采购拓展查询详情入参
|
||||
*/
|
||||
@Data
|
||||
public class CcdiProjectExtendedPurchaseDetailQueryDTO {
|
||||
|
||||
/** 项目ID */
|
||||
@NotNull(message = "项目ID不能为空")
|
||||
private Long projectId;
|
||||
|
||||
/** 采购事项ID */
|
||||
@NotBlank(message = "采购事项ID不能为空")
|
||||
private String purchaseId;
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.ruoyi.ccdi.project.domain.dto;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 专项核查采购拓展查询列表入参
|
||||
*/
|
||||
@Data
|
||||
public class CcdiProjectExtendedPurchaseQueryDTO {
|
||||
|
||||
/** 项目ID */
|
||||
@NotNull(message = "项目ID不能为空")
|
||||
private Long projectId;
|
||||
|
||||
/** 申请人姓名 */
|
||||
private String applicantName;
|
||||
|
||||
/** 申请日期开始 */
|
||||
private String applyDateStart;
|
||||
|
||||
/** 申请日期结束 */
|
||||
private String applyDateEnd;
|
||||
|
||||
/** 页码 */
|
||||
private Integer pageNum = 1;
|
||||
|
||||
/** 每页条数 */
|
||||
private Integer pageSize = 10;
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.ruoyi.ccdi.project.domain.dto;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 专项核查招聘拓展查询详情入参
|
||||
*/
|
||||
@Data
|
||||
public class CcdiProjectExtendedRecruitmentDetailQueryDTO {
|
||||
|
||||
/** 项目ID */
|
||||
@NotNull(message = "项目ID不能为空")
|
||||
private Long projectId;
|
||||
|
||||
/** 招聘项目编号 */
|
||||
@NotBlank(message = "招聘项目编号不能为空")
|
||||
private String recruitId;
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.ruoyi.ccdi.project.domain.dto;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 专项核查招聘拓展查询列表入参
|
||||
*/
|
||||
@Data
|
||||
public class CcdiProjectExtendedRecruitmentQueryDTO {
|
||||
|
||||
/** 项目ID */
|
||||
@NotNull(message = "项目ID不能为空")
|
||||
private Long projectId;
|
||||
|
||||
/** 面试官姓名 */
|
||||
private String interviewerName;
|
||||
|
||||
/** 页码 */
|
||||
private Integer pageNum = 1;
|
||||
|
||||
/** 每页条数 */
|
||||
private Integer pageSize = 10;
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.ruoyi.ccdi.project.domain.dto;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 专项核查调动拓展查询详情入参
|
||||
*/
|
||||
@Data
|
||||
public class CcdiProjectExtendedTransferDetailQueryDTO {
|
||||
|
||||
/** 项目ID */
|
||||
@NotNull(message = "项目ID不能为空")
|
||||
private Long projectId;
|
||||
|
||||
/** 主键ID */
|
||||
@NotNull(message = "主键ID不能为空")
|
||||
private Long id;
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.ruoyi.ccdi.project.domain.dto;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 专项核查调动拓展查询列表入参
|
||||
*/
|
||||
@Data
|
||||
public class CcdiProjectExtendedTransferQueryDTO {
|
||||
|
||||
/** 项目ID */
|
||||
@NotNull(message = "项目ID不能为空")
|
||||
private Long projectId;
|
||||
|
||||
/** 员工姓名 */
|
||||
private String staffName;
|
||||
|
||||
/** 调动日期开始 */
|
||||
private String transferDateStart;
|
||||
|
||||
/** 调动日期结束 */
|
||||
private String transferDateEnd;
|
||||
|
||||
/** 页码 */
|
||||
private Integer pageNum = 1;
|
||||
|
||||
/** 每页条数 */
|
||||
private Integer pageSize = 10;
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
package com.ruoyi.ccdi.project.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 专项核查采购拓展查询详情
|
||||
*/
|
||||
@Data
|
||||
public class CcdiProjectExtendedPurchaseDetailVO {
|
||||
|
||||
private String purchaseId;
|
||||
|
||||
private String purchaseCategory;
|
||||
|
||||
private String projectName;
|
||||
|
||||
private String subjectName;
|
||||
|
||||
private String subjectDesc;
|
||||
|
||||
private BigDecimal purchaseQty;
|
||||
|
||||
private BigDecimal budgetAmount;
|
||||
|
||||
private BigDecimal bidAmount;
|
||||
|
||||
private BigDecimal actualAmount;
|
||||
|
||||
private BigDecimal contractAmount;
|
||||
|
||||
private BigDecimal settlementAmount;
|
||||
|
||||
private String purchaseMethod;
|
||||
|
||||
private String supplierName;
|
||||
|
||||
private String contactPerson;
|
||||
|
||||
private String contactPhone;
|
||||
|
||||
private String supplierUscc;
|
||||
|
||||
private String supplierBankAccount;
|
||||
|
||||
private String applyDate;
|
||||
|
||||
private String planApproveDate;
|
||||
|
||||
private String announceDate;
|
||||
|
||||
private String bidOpenDate;
|
||||
|
||||
private String contractSignDate;
|
||||
|
||||
private String expectedDeliveryDate;
|
||||
|
||||
private String actualDeliveryDate;
|
||||
|
||||
private String acceptanceDate;
|
||||
|
||||
private String settlementDate;
|
||||
|
||||
private String applicantId;
|
||||
|
||||
private String applicantName;
|
||||
|
||||
private String applyDepartment;
|
||||
|
||||
private String purchaseLeaderId;
|
||||
|
||||
private String purchaseLeaderName;
|
||||
|
||||
private String purchaseDepartment;
|
||||
|
||||
private String createdBy;
|
||||
|
||||
private String createTime;
|
||||
|
||||
private String updatedBy;
|
||||
|
||||
private String updateTime;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.ruoyi.ccdi.project.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 专项核查采购拓展查询列表项
|
||||
*/
|
||||
@Data
|
||||
public class CcdiProjectExtendedPurchaseListItemVO {
|
||||
|
||||
/** 采购事项ID */
|
||||
private String purchaseId;
|
||||
|
||||
/** 项目名称 */
|
||||
private String projectName;
|
||||
|
||||
/** 标的物名称 */
|
||||
private String subjectName;
|
||||
|
||||
/** 申请人姓名 */
|
||||
private String applicantName;
|
||||
|
||||
/** 申请日期 */
|
||||
private String applyDate;
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.ruoyi.ccdi.project.domain.vo;
|
||||
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 专项核查采购拓展查询列表结果
|
||||
*/
|
||||
@Data
|
||||
public class CcdiProjectExtendedPurchaseListVO {
|
||||
|
||||
/** 列表数据 */
|
||||
private List<CcdiProjectExtendedPurchaseListItemVO> rows;
|
||||
|
||||
/** 总数 */
|
||||
private Long total;
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.ruoyi.ccdi.project.domain.vo;
|
||||
|
||||
import java.util.Date;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 专项核查招聘拓展查询详情
|
||||
*/
|
||||
@Data
|
||||
public class CcdiProjectExtendedRecruitmentDetailVO {
|
||||
|
||||
private String recruitId;
|
||||
|
||||
private String recruitName;
|
||||
|
||||
private String posName;
|
||||
|
||||
private String posCategory;
|
||||
|
||||
private String posDesc;
|
||||
|
||||
private String candName;
|
||||
|
||||
private String candEdu;
|
||||
|
||||
private String candId;
|
||||
|
||||
private String candSchool;
|
||||
|
||||
private String candMajor;
|
||||
|
||||
private String candGrad;
|
||||
|
||||
private String admitStatus;
|
||||
|
||||
private String interviewerName1;
|
||||
|
||||
private String interviewerId1;
|
||||
|
||||
private String interviewerName2;
|
||||
|
||||
private String interviewerId2;
|
||||
|
||||
private String createdBy;
|
||||
|
||||
private Date createTime;
|
||||
|
||||
private String updatedBy;
|
||||
|
||||
private Date updateTime;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.ruoyi.ccdi.project.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 专项核查招聘拓展查询列表项
|
||||
*/
|
||||
@Data
|
||||
public class CcdiProjectExtendedRecruitmentListItemVO {
|
||||
|
||||
/** 招聘项目编号 */
|
||||
private String recruitId;
|
||||
|
||||
/** 招聘项目名称 */
|
||||
private String recruitName;
|
||||
|
||||
/** 职位名称 */
|
||||
private String posName;
|
||||
|
||||
/** 面试官摘要 */
|
||||
private String interviewerNameSummary;
|
||||
|
||||
/** 录用情况 */
|
||||
private String admitStatus;
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.ruoyi.ccdi.project.domain.vo;
|
||||
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 专项核查招聘拓展查询列表结果
|
||||
*/
|
||||
@Data
|
||||
public class CcdiProjectExtendedRecruitmentListVO {
|
||||
|
||||
/** 列表数据 */
|
||||
private List<CcdiProjectExtendedRecruitmentListItemVO> rows;
|
||||
|
||||
/** 总数 */
|
||||
private Long total;
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.ruoyi.ccdi.project.domain.vo;
|
||||
|
||||
import java.util.Date;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 专项核查调动拓展查询详情
|
||||
*/
|
||||
@Data
|
||||
public class CcdiProjectExtendedTransferDetailVO {
|
||||
|
||||
private Long id;
|
||||
|
||||
private Long staffId;
|
||||
|
||||
private String staffName;
|
||||
|
||||
private String transferType;
|
||||
|
||||
private String transferSubType;
|
||||
|
||||
private Long deptIdBefore;
|
||||
|
||||
private String deptNameBefore;
|
||||
|
||||
private String gradeBefore;
|
||||
|
||||
private String positionBefore;
|
||||
|
||||
private String salaryLevelBefore;
|
||||
|
||||
private Long deptIdAfter;
|
||||
|
||||
private String deptNameAfter;
|
||||
|
||||
private String gradeAfter;
|
||||
|
||||
private String positionAfter;
|
||||
|
||||
private String salaryLevelAfter;
|
||||
|
||||
private Date transferDate;
|
||||
|
||||
private String createdBy;
|
||||
|
||||
private Date createTime;
|
||||
|
||||
private String updatedBy;
|
||||
|
||||
private Date updateTime;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.ruoyi.ccdi.project.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 专项核查调动拓展查询列表项
|
||||
*/
|
||||
@Data
|
||||
public class CcdiProjectExtendedTransferListItemVO {
|
||||
|
||||
/** 员工姓名 */
|
||||
private String staffName;
|
||||
|
||||
/** 调动类型 */
|
||||
private String transferType;
|
||||
|
||||
/** 调动前部门 */
|
||||
private String deptNameBefore;
|
||||
|
||||
/** 调动后部门 */
|
||||
private String deptNameAfter;
|
||||
|
||||
/** 调动日期 */
|
||||
private String transferDate;
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.ruoyi.ccdi.project.domain.vo;
|
||||
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 专项核查调动拓展查询列表结果
|
||||
*/
|
||||
@Data
|
||||
public class CcdiProjectExtendedTransferListVO {
|
||||
|
||||
/** 列表数据 */
|
||||
private List<CcdiProjectExtendedTransferListItemVO> rows;
|
||||
|
||||
/** 总数 */
|
||||
private Long total;
|
||||
}
|
||||
@@ -1,7 +1,19 @@
|
||||
package com.ruoyi.ccdi.project.service;
|
||||
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedPurchaseDetailQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedPurchaseQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedRecruitmentDetailQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedRecruitmentQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedTransferDetailQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedTransferQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectFamilyAssetLiabilityDetailQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectFamilyAssetLiabilityListQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedPurchaseDetailVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedPurchaseListVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedRecruitmentDetailVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedRecruitmentListVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedTransferDetailVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedTransferListVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectFamilyAssetLiabilityDetailVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectFamilyAssetLiabilityListVO;
|
||||
|
||||
@@ -29,4 +41,54 @@ public interface ICcdiProjectSpecialCheckService {
|
||||
CcdiProjectFamilyAssetLiabilityDetailVO getFamilyAssetLiabilityDetail(
|
||||
CcdiProjectFamilyAssetLiabilityDetailQueryDTO queryDTO
|
||||
);
|
||||
|
||||
/**
|
||||
* 查询采购拓展列表
|
||||
*
|
||||
* @param queryDTO 查询条件
|
||||
* @return 列表结果
|
||||
*/
|
||||
CcdiProjectExtendedPurchaseListVO getExtendedPurchaseList(CcdiProjectExtendedPurchaseQueryDTO queryDTO);
|
||||
|
||||
/**
|
||||
* 查询采购拓展详情
|
||||
*
|
||||
* @param queryDTO 查询条件
|
||||
* @return 详情结果
|
||||
*/
|
||||
CcdiProjectExtendedPurchaseDetailVO getExtendedPurchaseDetail(CcdiProjectExtendedPurchaseDetailQueryDTO queryDTO);
|
||||
|
||||
/**
|
||||
* 查询招聘拓展列表
|
||||
*
|
||||
* @param queryDTO 查询条件
|
||||
* @return 列表结果
|
||||
*/
|
||||
CcdiProjectExtendedRecruitmentListVO getExtendedRecruitmentList(CcdiProjectExtendedRecruitmentQueryDTO queryDTO);
|
||||
|
||||
/**
|
||||
* 查询招聘拓展详情
|
||||
*
|
||||
* @param queryDTO 查询条件
|
||||
* @return 详情结果
|
||||
*/
|
||||
CcdiProjectExtendedRecruitmentDetailVO getExtendedRecruitmentDetail(
|
||||
CcdiProjectExtendedRecruitmentDetailQueryDTO queryDTO
|
||||
);
|
||||
|
||||
/**
|
||||
* 查询调动拓展列表
|
||||
*
|
||||
* @param queryDTO 查询条件
|
||||
* @return 列表结果
|
||||
*/
|
||||
CcdiProjectExtendedTransferListVO getExtendedTransferList(CcdiProjectExtendedTransferQueryDTO queryDTO);
|
||||
|
||||
/**
|
||||
* 查询调动拓展详情
|
||||
*
|
||||
* @param queryDTO 查询条件
|
||||
* @return 详情结果
|
||||
*/
|
||||
CcdiProjectExtendedTransferDetailVO getExtendedTransferDetail(CcdiProjectExtendedTransferDetailQueryDTO queryDTO);
|
||||
}
|
||||
|
||||
@@ -1,8 +1,20 @@
|
||||
package com.ruoyi.ccdi.project.service.impl;
|
||||
|
||||
import com.ruoyi.ccdi.project.domain.CcdiProject;
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedPurchaseDetailQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedPurchaseQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedRecruitmentDetailQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedRecruitmentQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedTransferDetailQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedTransferQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectFamilyAssetLiabilityDetailQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectFamilyAssetLiabilityListQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedPurchaseDetailVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedPurchaseListVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedRecruitmentDetailVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedRecruitmentListVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedTransferDetailVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedTransferListVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectFamilyAssetDetailVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectFamilyAssetLiabilityDetailVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectFamilyAssetLiabilityListItemVO;
|
||||
@@ -58,6 +70,53 @@ public class CcdiProjectSpecialCheckServiceImpl implements ICcdiProjectSpecialCh
|
||||
return detail;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CcdiProjectExtendedPurchaseListVO getExtendedPurchaseList(CcdiProjectExtendedPurchaseQueryDTO queryDTO) {
|
||||
CcdiProjectExtendedPurchaseListVO result = new CcdiProjectExtendedPurchaseListVO();
|
||||
result.setRows(List.of());
|
||||
result.setTotal(0L);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CcdiProjectExtendedPurchaseDetailVO getExtendedPurchaseDetail(
|
||||
CcdiProjectExtendedPurchaseDetailQueryDTO queryDTO
|
||||
) {
|
||||
return new CcdiProjectExtendedPurchaseDetailVO();
|
||||
}
|
||||
|
||||
@Override
|
||||
public CcdiProjectExtendedRecruitmentListVO getExtendedRecruitmentList(
|
||||
CcdiProjectExtendedRecruitmentQueryDTO queryDTO
|
||||
) {
|
||||
CcdiProjectExtendedRecruitmentListVO result = new CcdiProjectExtendedRecruitmentListVO();
|
||||
result.setRows(List.of());
|
||||
result.setTotal(0L);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CcdiProjectExtendedRecruitmentDetailVO getExtendedRecruitmentDetail(
|
||||
CcdiProjectExtendedRecruitmentDetailQueryDTO queryDTO
|
||||
) {
|
||||
return new CcdiProjectExtendedRecruitmentDetailVO();
|
||||
}
|
||||
|
||||
@Override
|
||||
public CcdiProjectExtendedTransferListVO getExtendedTransferList(CcdiProjectExtendedTransferQueryDTO queryDTO) {
|
||||
CcdiProjectExtendedTransferListVO result = new CcdiProjectExtendedTransferListVO();
|
||||
result.setRows(List.of());
|
||||
result.setTotal(0L);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CcdiProjectExtendedTransferDetailVO getExtendedTransferDetail(
|
||||
CcdiProjectExtendedTransferDetailQueryDTO queryDTO
|
||||
) {
|
||||
return new CcdiProjectExtendedTransferDetailVO();
|
||||
}
|
||||
|
||||
private void ensureProjectExists(Long projectId) {
|
||||
CcdiProject project = projectMapper.selectById(projectId);
|
||||
if (project == null) {
|
||||
|
||||
@@ -0,0 +1,185 @@
|
||||
package com.ruoyi.ccdi.project.controller;
|
||||
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
class CcdiProjectSpecialCheckExtendedQueryContractTest {
|
||||
|
||||
@Test
|
||||
void shouldExposeExtendedPurchaseEndpointsAndContracts() throws Exception {
|
||||
assertEndpoint(
|
||||
"getExtendedPurchaseList",
|
||||
"com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedPurchaseQueryDTO",
|
||||
"/extended-query/purchase/list"
|
||||
);
|
||||
assertEndpoint(
|
||||
"getExtendedPurchaseDetail",
|
||||
"com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedPurchaseDetailQueryDTO",
|
||||
"/extended-query/purchase/detail"
|
||||
);
|
||||
|
||||
assertFields(
|
||||
"com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedPurchaseQueryDTO",
|
||||
"projectId",
|
||||
"applicantName",
|
||||
"applyDateStart",
|
||||
"applyDateEnd",
|
||||
"pageNum",
|
||||
"pageSize"
|
||||
);
|
||||
assertFields(
|
||||
"com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedPurchaseDetailQueryDTO",
|
||||
"projectId",
|
||||
"purchaseId"
|
||||
);
|
||||
assertFields(
|
||||
"com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedPurchaseListVO",
|
||||
"rows",
|
||||
"total"
|
||||
);
|
||||
assertExactFields(
|
||||
"com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedPurchaseListItemVO",
|
||||
"purchaseId",
|
||||
"projectName",
|
||||
"subjectName",
|
||||
"applicantName",
|
||||
"applyDate"
|
||||
);
|
||||
assertDetailVoOwnedByProject("com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedPurchaseDetailVO");
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldExposeExtendedRecruitmentEndpointsAndContracts() throws Exception {
|
||||
assertEndpoint(
|
||||
"getExtendedRecruitmentList",
|
||||
"com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedRecruitmentQueryDTO",
|
||||
"/extended-query/recruitment/list"
|
||||
);
|
||||
assertEndpoint(
|
||||
"getExtendedRecruitmentDetail",
|
||||
"com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedRecruitmentDetailQueryDTO",
|
||||
"/extended-query/recruitment/detail"
|
||||
);
|
||||
|
||||
assertFields(
|
||||
"com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedRecruitmentQueryDTO",
|
||||
"projectId",
|
||||
"interviewerName",
|
||||
"pageNum",
|
||||
"pageSize"
|
||||
);
|
||||
assertFields(
|
||||
"com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedRecruitmentDetailQueryDTO",
|
||||
"projectId",
|
||||
"recruitId"
|
||||
);
|
||||
assertFields(
|
||||
"com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedRecruitmentListVO",
|
||||
"rows",
|
||||
"total"
|
||||
);
|
||||
assertExactFields(
|
||||
"com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedRecruitmentListItemVO",
|
||||
"recruitId",
|
||||
"recruitName",
|
||||
"posName",
|
||||
"interviewerNameSummary",
|
||||
"admitStatus"
|
||||
);
|
||||
assertDetailVoOwnedByProject("com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedRecruitmentDetailVO");
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldExposeExtendedTransferEndpointsAndContracts() throws Exception {
|
||||
assertEndpoint(
|
||||
"getExtendedTransferList",
|
||||
"com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedTransferQueryDTO",
|
||||
"/extended-query/transfer/list"
|
||||
);
|
||||
assertEndpoint(
|
||||
"getExtendedTransferDetail",
|
||||
"com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedTransferDetailQueryDTO",
|
||||
"/extended-query/transfer/detail"
|
||||
);
|
||||
|
||||
assertFields(
|
||||
"com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedTransferQueryDTO",
|
||||
"projectId",
|
||||
"staffName",
|
||||
"transferDateStart",
|
||||
"transferDateEnd",
|
||||
"pageNum",
|
||||
"pageSize"
|
||||
);
|
||||
assertFields(
|
||||
"com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedTransferDetailQueryDTO",
|
||||
"projectId",
|
||||
"id"
|
||||
);
|
||||
assertFields(
|
||||
"com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedTransferListVO",
|
||||
"rows",
|
||||
"total"
|
||||
);
|
||||
assertExactFields(
|
||||
"com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedTransferListItemVO",
|
||||
"staffName",
|
||||
"transferType",
|
||||
"deptNameBefore",
|
||||
"deptNameAfter",
|
||||
"transferDate"
|
||||
);
|
||||
assertDetailVoOwnedByProject("com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedTransferDetailVO");
|
||||
}
|
||||
|
||||
private void assertEndpoint(String methodName, String dtoClassName, String expectedPath) throws Exception {
|
||||
Class<?> controllerClass = Class.forName("com.ruoyi.ccdi.project.controller.CcdiProjectSpecialCheckController");
|
||||
Class<?> dtoClass = Class.forName(dtoClassName);
|
||||
Method method = controllerClass.getMethod(methodName, dtoClass);
|
||||
|
||||
GetMapping getMapping = method.getAnnotation(GetMapping.class);
|
||||
PreAuthorize preAuthorize = method.getAnnotation(PreAuthorize.class);
|
||||
Operation operation = method.getAnnotation(Operation.class);
|
||||
|
||||
assertNotNull(getMapping);
|
||||
assertEquals(expectedPath, getMapping.value()[0]);
|
||||
assertNotNull(preAuthorize);
|
||||
assertEquals("@ss.hasPermi('ccdi:project:query')", preAuthorize.value());
|
||||
assertNotNull(operation);
|
||||
}
|
||||
|
||||
private void assertFields(String className, String... expectedFields) throws Exception {
|
||||
Class<?> type = Class.forName(className);
|
||||
List<String> fieldNames = Arrays.stream(type.getDeclaredFields()).map(Field::getName).collect(Collectors.toList());
|
||||
for (String expectedField : expectedFields) {
|
||||
assertTrue(fieldNames.contains(expectedField), className + " 缺少字段 " + expectedField);
|
||||
}
|
||||
}
|
||||
|
||||
private void assertExactFields(String className, String... expectedFields) throws Exception {
|
||||
Class<?> type = Class.forName(className);
|
||||
List<String> fieldNames = Arrays.stream(type.getDeclaredFields()).map(Field::getName).collect(Collectors.toList());
|
||||
|
||||
assertEquals(expectedFields.length, fieldNames.size(), className + " 字段数量不符合预期");
|
||||
for (String expectedField : expectedFields) {
|
||||
assertTrue(fieldNames.contains(expectedField), className + " 缺少字段 " + expectedField);
|
||||
}
|
||||
}
|
||||
|
||||
private void assertDetailVoOwnedByProject(String className) throws Exception {
|
||||
Class<?> type = Class.forName(className);
|
||||
assertTrue(type.getName().startsWith("com.ruoyi.ccdi.project.domain.vo."));
|
||||
assertTrue(!type.getName().contains("info.collection"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user