Compare commits
1 Commits
Author | SHA1 | Date |
---|---|---|
ccongli | 210b79c69b | 1 year ago |
@ -1,102 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.contract;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.common.pojo.CommonResult;
|
||||
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
|
||||
import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.contract.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.contract.ContractDO;
|
||||
import com.yunxi.scm.module.xxjj.convert.contract.ContractConvert;
|
||||
import com.yunxi.scm.module.xxjj.service.contract.ContractService;
|
||||
|
||||
@Tag(name = "管理后台 - 合同信息")
|
||||
@RestController
|
||||
@RequestMapping("/xxjj/contract")
|
||||
@Validated
|
||||
public class ContractController {
|
||||
|
||||
@Resource
|
||||
private ContractService contractService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建合同信息")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:contract:create')")
|
||||
public CommonResult<Long> createContract(@Valid @RequestBody ContractCreateReqVO createReqVO) {
|
||||
return success(contractService.createContract(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新合同信息")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:contract:update')")
|
||||
public CommonResult<Boolean> updateContract(@Valid @RequestBody ContractUpdateReqVO updateReqVO) {
|
||||
contractService.updateContract(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除合同信息")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:contract:delete')")
|
||||
public CommonResult<Boolean> deleteContract(@RequestParam("id") Long id) {
|
||||
contractService.deleteContract(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得合同信息")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:contract:query')")
|
||||
public CommonResult<ContractRespVO> getContract(@RequestParam("id") Long id) {
|
||||
ContractDO contract = contractService.getContract(id);
|
||||
return success(ContractConvert.INSTANCE.convert(contract));
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
@Operation(summary = "获得合同信息列表")
|
||||
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:contract:query')")
|
||||
public CommonResult<List<ContractRespVO>> getContractList(@RequestParam("ids") Collection<Long> ids) {
|
||||
List<ContractDO> list = contractService.getContractList(ids);
|
||||
return success(ContractConvert.INSTANCE.convertList(list));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得合同信息分页")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:contract:query')")
|
||||
public CommonResult<PageResult<ContractRespVO>> getContractPage(@Valid ContractPageReqVO pageVO) {
|
||||
PageResult<ContractDO> pageResult = contractService.getContractPage(pageVO);
|
||||
return success(ContractConvert.INSTANCE.convertPage(pageResult));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出合同信息 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:contract:export')")
|
||||
@OperateLog(type = EXPORT)
|
||||
public void exportContractExcel(@Valid ContractExportReqVO exportReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
List<ContractDO> list = contractService.getContractList(exportReqVO);
|
||||
// 导出 Excel
|
||||
List<ContractExcelVO> datas = ContractConvert.INSTANCE.convertList02(list);
|
||||
ExcelUtils.write(response, "合同信息.xls", "数据", ContractExcelVO.class, datas);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.contract.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 合同信息创建 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class ContractCreateReqVO extends ContractBaseVO {
|
||||
|
||||
}
|
@ -1,72 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.contract.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.yunxi.scm.framework.excel.core.annotations.DictFormat;
|
||||
import com.yunxi.scm.framework.excel.core.convert.DictConvert;
|
||||
|
||||
|
||||
/**
|
||||
* 合同信息 Excel VO
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Data
|
||||
public class ContractExcelVO {
|
||||
|
||||
@ExcelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ExcelProperty(value = "合同状态", converter = DictConvert.class)
|
||||
@DictFormat("contract_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
|
||||
private String contractStatus;
|
||||
|
||||
@ExcelProperty(value = "合同类型", converter = DictConvert.class)
|
||||
@DictFormat("contract_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
|
||||
private String contractType;
|
||||
|
||||
@ExcelProperty("合同模板")
|
||||
private Long contractTemplateId;
|
||||
|
||||
@ExcelProperty("合同编号")
|
||||
private Long contractNumber;
|
||||
|
||||
@ExcelProperty("合同名称")
|
||||
private String contractName;
|
||||
|
||||
@ExcelProperty("供应商/客户名称id")
|
||||
private Long subject;
|
||||
|
||||
@ExcelProperty("部门id")
|
||||
private Long deptId;
|
||||
|
||||
@ExcelProperty("对方合同编号")
|
||||
private String contractNo;
|
||||
|
||||
@ExcelProperty("签订地点")
|
||||
private String contractSigned;
|
||||
|
||||
@ExcelProperty("签订时间")
|
||||
private LocalDateTime contractSignedTime;
|
||||
|
||||
@ExcelProperty("关联业务线")
|
||||
private Long businessId;
|
||||
|
||||
@ExcelProperty(value = "业务类型", converter = DictConvert.class)
|
||||
@DictFormat("contract_business_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
|
||||
private String businessType;
|
||||
|
||||
@ExcelProperty("申报时间")
|
||||
private LocalDateTime declarationTime;
|
||||
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -1,63 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.contract.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import com.yunxi.scm.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 合同信息分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class ContractPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "合同状态", example = "1")
|
||||
private String contractStatus;
|
||||
|
||||
@Schema(description = "合同类型", example = "2")
|
||||
private String contractType;
|
||||
|
||||
@Schema(description = "合同模板", example = "6806")
|
||||
private Long contractTemplateId;
|
||||
|
||||
@Schema(description = "合同编号")
|
||||
private Long contractNumber;
|
||||
|
||||
@Schema(description = "合同名称", example = "王五")
|
||||
private String contractName;
|
||||
|
||||
@Schema(description = "供应商/客户名称id")
|
||||
private Long subject;
|
||||
|
||||
@Schema(description = "部门id", example = "10183")
|
||||
private Long deptId;
|
||||
|
||||
@Schema(description = "对方合同编号")
|
||||
private String contractNo;
|
||||
|
||||
@Schema(description = "签订地点")
|
||||
private String contractSigned;
|
||||
|
||||
@Schema(description = "签订时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] contractSignedTime;
|
||||
|
||||
@Schema(description = "关联业务线", example = "32066")
|
||||
private Long businessId;
|
||||
|
||||
@Schema(description = "业务类型", example = "2")
|
||||
private String businessType;
|
||||
|
||||
@Schema(description = "申报时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] declarationTime;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.contract.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Schema(description = "管理后台 - 合同信息 Response VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class ContractRespVO extends ContractBaseVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "367")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.contract.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 合同信息更新 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class ContractUpdateReqVO extends ContractBaseVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "367")
|
||||
@NotNull(message = "编号不能为空")
|
||||
private Long id;
|
||||
|
||||
}
|
@ -1,102 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.contractinfo;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.common.pojo.CommonResult;
|
||||
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
|
||||
import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.contractinfo.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.contractinfo.ContractInfoDO;
|
||||
import com.yunxi.scm.module.xxjj.convert.contractinfo.ContractInfoConvert;
|
||||
import com.yunxi.scm.module.xxjj.service.contractinfo.ContractInfoService;
|
||||
|
||||
@Tag(name = "管理后台 - 合同信息")
|
||||
@RestController
|
||||
@RequestMapping("/xxjj/contract-info")
|
||||
@Validated
|
||||
public class ContractInfoController {
|
||||
|
||||
@Resource
|
||||
private ContractInfoService contractInfoService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建合同信息")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:contract-info:create')")
|
||||
public CommonResult<Long> createContractInfo(@Valid @RequestBody ContractInfoCreateReqVO createReqVO) {
|
||||
return success(contractInfoService.createContractInfo(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新合同信息")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:contract-info:update')")
|
||||
public CommonResult<Boolean> updateContractInfo(@Valid @RequestBody ContractInfoUpdateReqVO updateReqVO) {
|
||||
contractInfoService.updateContractInfo(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除合同信息")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:contract-info:delete')")
|
||||
public CommonResult<Boolean> deleteContractInfo(@RequestParam("id") Long id) {
|
||||
contractInfoService.deleteContractInfo(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得合同信息")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:contract-info:query')")
|
||||
public CommonResult<ContractInfoRespVO> getContractInfo(@RequestParam("id") Long id) {
|
||||
ContractInfoDO contractInfo = contractInfoService.getContractInfo(id);
|
||||
return success(ContractInfoConvert.INSTANCE.convert(contractInfo));
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
@Operation(summary = "获得合同信息列表")
|
||||
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:contract-info:query')")
|
||||
public CommonResult<List<ContractInfoRespVO>> getContractInfoList(@RequestParam("ids") Collection<Long> ids) {
|
||||
List<ContractInfoDO> list = contractInfoService.getContractInfoList(ids);
|
||||
return success(ContractInfoConvert.INSTANCE.convertList(list));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得合同信息分页")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:contract-info:query')")
|
||||
public CommonResult<PageResult<ContractInfoRespVO>> getContractInfoPage(@Valid ContractInfoPageReqVO pageVO) {
|
||||
PageResult<ContractInfoDO> pageResult = contractInfoService.getContractInfoPage(pageVO);
|
||||
return success(ContractInfoConvert.INSTANCE.convertPage(pageResult));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出合同信息 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:contract-info:export')")
|
||||
@OperateLog(type = EXPORT)
|
||||
public void exportContractInfoExcel(@Valid ContractInfoExportReqVO exportReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
List<ContractInfoDO> list = contractInfoService.getContractInfoList(exportReqVO);
|
||||
// 导出 Excel
|
||||
List<ContractInfoExcelVO> datas = ContractInfoConvert.INSTANCE.convertList02(list);
|
||||
ExcelUtils.write(response, "合同信息.xls", "数据", ContractInfoExcelVO.class, datas);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.contractinfo.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 合同信息创建 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class ContractInfoCreateReqVO extends ContractInfoBaseVO {
|
||||
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.contractinfo.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Schema(description = "管理后台 - 合同信息 Response VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class ContractInfoRespVO extends ContractInfoBaseVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "21063")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.contractinfo.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 合同信息更新 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class ContractInfoUpdateReqVO extends ContractInfoBaseVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "21063")
|
||||
@NotNull(message = "编号不能为空")
|
||||
private Long id;
|
||||
|
||||
}
|
@ -1,102 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.subjectfollowmanagement;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.common.pojo.CommonResult;
|
||||
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
|
||||
import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.subjectfollowmanagement.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.subjectfollowmanagement.SubjectFollowManagementDO;
|
||||
import com.yunxi.scm.module.xxjj.convert.subjectfollowmanagement.SubjectFollowManagementConvert;
|
||||
import com.yunxi.scm.module.xxjj.service.subjectfollowmanagement.SubjectFollowManagementService;
|
||||
|
||||
@Tag(name = "管理后台 - 主体跟进管理")
|
||||
@RestController
|
||||
@RequestMapping("/xxjj/subject-follow-management")
|
||||
@Validated
|
||||
public class SubjectFollowManagementController {
|
||||
|
||||
@Resource
|
||||
private SubjectFollowManagementService subjectFollowManagementService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建主体跟进管理")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:subject-follow-management:create')")
|
||||
public CommonResult<Long> createSubjectFollowManagement(@Valid @RequestBody SubjectFollowManagementCreateReqVO createReqVO) {
|
||||
return success(subjectFollowManagementService.createSubjectFollowManagement(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新主体跟进管理")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:subject-follow-management:update')")
|
||||
public CommonResult<Boolean> updateSubjectFollowManagement(@Valid @RequestBody SubjectFollowManagementUpdateReqVO updateReqVO) {
|
||||
subjectFollowManagementService.updateSubjectFollowManagement(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除主体跟进管理")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:subject-follow-management:delete')")
|
||||
public CommonResult<Boolean> deleteSubjectFollowManagement(@RequestParam("id") Long id) {
|
||||
subjectFollowManagementService.deleteSubjectFollowManagement(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得主体跟进管理")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:subject-follow-management:query')")
|
||||
public CommonResult<SubjectFollowManagementRespVO> getSubjectFollowManagement(@RequestParam("id") Long id) {
|
||||
SubjectFollowManagementDO subjectFollowManagement = subjectFollowManagementService.getSubjectFollowManagement(id);
|
||||
return success(SubjectFollowManagementConvert.INSTANCE.convert(subjectFollowManagement));
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
@Operation(summary = "获得主体跟进管理列表")
|
||||
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:subject-follow-management:query')")
|
||||
public CommonResult<List<SubjectFollowManagementRespVO>> getSubjectFollowManagementList(@RequestParam("ids") Collection<Long> ids) {
|
||||
List<SubjectFollowManagementDO> list = subjectFollowManagementService.getSubjectFollowManagementList(ids);
|
||||
return success(SubjectFollowManagementConvert.INSTANCE.convertList(list));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得主体跟进管理分页")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:subject-follow-management:query')")
|
||||
public CommonResult<PageResult<SubjectFollowManagementRespVO>> getSubjectFollowManagementPage(@Valid SubjectFollowManagementPageReqVO pageVO) {
|
||||
PageResult<SubjectFollowManagementDO> pageResult = subjectFollowManagementService.getSubjectFollowManagementPage(pageVO);
|
||||
return success(SubjectFollowManagementConvert.INSTANCE.convertPage(pageResult));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出主体跟进管理 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:subject-follow-management:export')")
|
||||
@OperateLog(type = EXPORT)
|
||||
public void exportSubjectFollowManagementExcel(@Valid SubjectFollowManagementExportReqVO exportReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
List<SubjectFollowManagementDO> list = subjectFollowManagementService.getSubjectFollowManagementList(exportReqVO);
|
||||
// 导出 Excel
|
||||
List<SubjectFollowManagementExcelVO> datas = SubjectFollowManagementConvert.INSTANCE.convertList02(list);
|
||||
ExcelUtils.write(response, "主体跟进管理.xls", "数据", SubjectFollowManagementExcelVO.class, datas);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.subjectfollowmanagement.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 主体跟进管理创建 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class SubjectFollowManagementCreateReqVO extends SubjectFollowManagementBaseVO {
|
||||
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.subjectfollowmanagement.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Schema(description = "管理后台 - 主体跟进管理 Response VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class SubjectFollowManagementRespVO extends SubjectFollowManagementBaseVO {
|
||||
|
||||
@Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "23298")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.subjectfollowmanagement.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 主体跟进管理更新 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class SubjectFollowManagementUpdateReqVO extends SubjectFollowManagementBaseVO {
|
||||
|
||||
@Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "23298")
|
||||
@NotNull(message = "主键id不能为空")
|
||||
private Long id;
|
||||
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.convert.contract;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.contract.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.contract.ContractDO;
|
||||
|
||||
/**
|
||||
* 合同信息 Convert
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Mapper
|
||||
public interface ContractConvert {
|
||||
|
||||
ContractConvert INSTANCE = Mappers.getMapper(ContractConvert.class);
|
||||
|
||||
ContractDO convert(ContractCreateReqVO bean);
|
||||
|
||||
ContractDO convert(ContractUpdateReqVO bean);
|
||||
|
||||
ContractRespVO convert(ContractDO bean);
|
||||
|
||||
List<ContractRespVO> convertList(List<ContractDO> list);
|
||||
|
||||
PageResult<ContractRespVO> convertPage(PageResult<ContractDO> page);
|
||||
|
||||
List<ContractExcelVO> convertList02(List<ContractDO> list);
|
||||
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.convert.contractinfo;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.contractinfo.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.contractinfo.ContractInfoDO;
|
||||
|
||||
/**
|
||||
* 合同信息 Convert
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Mapper
|
||||
public interface ContractInfoConvert {
|
||||
|
||||
ContractInfoConvert INSTANCE = Mappers.getMapper(ContractInfoConvert.class);
|
||||
|
||||
ContractInfoDO convert(ContractInfoCreateReqVO bean);
|
||||
|
||||
ContractInfoDO convert(ContractInfoUpdateReqVO bean);
|
||||
|
||||
ContractInfoRespVO convert(ContractInfoDO bean);
|
||||
|
||||
List<ContractInfoRespVO> convertList(List<ContractInfoDO> list);
|
||||
|
||||
PageResult<ContractInfoRespVO> convertPage(PageResult<ContractInfoDO> page);
|
||||
|
||||
List<ContractInfoExcelVO> convertList02(List<ContractInfoDO> list);
|
||||
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.convert.subjectfollowmanagement;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.subjectfollowmanagement.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.subjectfollowmanagement.SubjectFollowManagementDO;
|
||||
|
||||
/**
|
||||
* 主体跟进管理 Convert
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Mapper
|
||||
public interface SubjectFollowManagementConvert {
|
||||
|
||||
SubjectFollowManagementConvert INSTANCE = Mappers.getMapper(SubjectFollowManagementConvert.class);
|
||||
|
||||
SubjectFollowManagementDO convert(SubjectFollowManagementCreateReqVO bean);
|
||||
|
||||
SubjectFollowManagementDO convert(SubjectFollowManagementUpdateReqVO bean);
|
||||
|
||||
SubjectFollowManagementRespVO convert(SubjectFollowManagementDO bean);
|
||||
|
||||
List<SubjectFollowManagementRespVO> convertList(List<SubjectFollowManagementDO> list);
|
||||
|
||||
PageResult<SubjectFollowManagementRespVO> convertPage(PageResult<SubjectFollowManagementDO> page);
|
||||
|
||||
List<SubjectFollowManagementExcelVO> convertList02(List<SubjectFollowManagementDO> list);
|
||||
|
||||
}
|
@ -1,91 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.dal.dataobject.contract;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* 合同信息 DO
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@TableName("xxjj_contract")
|
||||
@KeySequence("xxjj_contract_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ContractDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 编号
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 合同状态
|
||||
*
|
||||
* 枚举 {@link TODO contract_status 对应的类}
|
||||
*/
|
||||
private String contractStatus;
|
||||
/**
|
||||
* 合同类型
|
||||
*
|
||||
* 枚举 {@link TODO contract_type 对应的类}
|
||||
*/
|
||||
private String contractType;
|
||||
/**
|
||||
* 合同模板
|
||||
*/
|
||||
private Long contractTemplateId;
|
||||
/**
|
||||
* 合同编号
|
||||
*/
|
||||
private Long contractNumber;
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
private String contractName;
|
||||
/**
|
||||
* 供应商/客户名称id
|
||||
*/
|
||||
private Long subject;
|
||||
/**
|
||||
* 部门id
|
||||
*/
|
||||
private Long deptId;
|
||||
/**
|
||||
* 对方合同编号
|
||||
*/
|
||||
private String contractNo;
|
||||
/**
|
||||
* 签订地点
|
||||
*/
|
||||
private String contractSigned;
|
||||
/**
|
||||
* 签订时间
|
||||
*/
|
||||
private LocalDateTime contractSignedTime;
|
||||
/**
|
||||
* 关联业务线
|
||||
*/
|
||||
private Long businessId;
|
||||
/**
|
||||
* 业务类型
|
||||
*
|
||||
* 枚举 {@link TODO contract_business_type 对应的类}
|
||||
*/
|
||||
private String businessType;
|
||||
/**
|
||||
* 申报时间
|
||||
*/
|
||||
private LocalDateTime declarationTime;
|
||||
|
||||
}
|
@ -1,58 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.dal.mysql.contract;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.contract.ContractDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.contract.vo.*;
|
||||
|
||||
/**
|
||||
* 合同信息 Mapper
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Mapper
|
||||
public interface ContractMapper extends BaseMapperX<ContractDO> {
|
||||
|
||||
default PageResult<ContractDO> selectPage(ContractPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<ContractDO>()
|
||||
.eqIfPresent(ContractDO::getContractStatus, reqVO.getContractStatus())
|
||||
.eqIfPresent(ContractDO::getContractType, reqVO.getContractType())
|
||||
.eqIfPresent(ContractDO::getContractTemplateId, reqVO.getContractTemplateId())
|
||||
.eqIfPresent(ContractDO::getContractNumber, reqVO.getContractNumber())
|
||||
.likeIfPresent(ContractDO::getContractName, reqVO.getContractName())
|
||||
.eqIfPresent(ContractDO::getSubject, reqVO.getSubject())
|
||||
.eqIfPresent(ContractDO::getDeptId, reqVO.getDeptId())
|
||||
.eqIfPresent(ContractDO::getContractNo, reqVO.getContractNo())
|
||||
.eqIfPresent(ContractDO::getContractSigned, reqVO.getContractSigned())
|
||||
.betweenIfPresent(ContractDO::getContractSignedTime, reqVO.getContractSignedTime())
|
||||
.eqIfPresent(ContractDO::getBusinessId, reqVO.getBusinessId())
|
||||
.eqIfPresent(ContractDO::getBusinessType, reqVO.getBusinessType())
|
||||
.betweenIfPresent(ContractDO::getDeclarationTime, reqVO.getDeclarationTime())
|
||||
.betweenIfPresent(ContractDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(ContractDO::getId));
|
||||
}
|
||||
|
||||
default List<ContractDO> selectList(ContractExportReqVO reqVO) {
|
||||
return selectList(new LambdaQueryWrapperX<ContractDO>()
|
||||
.eqIfPresent(ContractDO::getContractStatus, reqVO.getContractStatus())
|
||||
.eqIfPresent(ContractDO::getContractType, reqVO.getContractType())
|
||||
.eqIfPresent(ContractDO::getContractTemplateId, reqVO.getContractTemplateId())
|
||||
.eqIfPresent(ContractDO::getContractNumber, reqVO.getContractNumber())
|
||||
.likeIfPresent(ContractDO::getContractName, reqVO.getContractName())
|
||||
.eqIfPresent(ContractDO::getSubject, reqVO.getSubject())
|
||||
.eqIfPresent(ContractDO::getDeptId, reqVO.getDeptId())
|
||||
.eqIfPresent(ContractDO::getContractNo, reqVO.getContractNo())
|
||||
.eqIfPresent(ContractDO::getContractSigned, reqVO.getContractSigned())
|
||||
.betweenIfPresent(ContractDO::getContractSignedTime, reqVO.getContractSignedTime())
|
||||
.eqIfPresent(ContractDO::getBusinessId, reqVO.getBusinessId())
|
||||
.eqIfPresent(ContractDO::getBusinessType, reqVO.getBusinessType())
|
||||
.betweenIfPresent(ContractDO::getDeclarationTime, reqVO.getDeclarationTime())
|
||||
.betweenIfPresent(ContractDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(ContractDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -1,80 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.dal.mysql.contractinfo;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.contractinfo.ContractInfoDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.contractinfo.vo.*;
|
||||
|
||||
/**
|
||||
* 合同信息 Mapper
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Mapper
|
||||
public interface ContractInfoMapper extends BaseMapperX<ContractInfoDO> {
|
||||
|
||||
default PageResult<ContractInfoDO> selectPage(ContractInfoPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<ContractInfoDO>()
|
||||
.eqIfPresent(ContractInfoDO::getContractInfo, reqVO.getContractInfo())
|
||||
.eqIfPresent(ContractInfoDO::getCurrency, reqVO.getCurrency())
|
||||
.eqIfPresent(ContractInfoDO::getProcurementModel, reqVO.getProcurementModel())
|
||||
.eqIfPresent(ContractInfoDO::getPricingModel, reqVO.getPricingModel())
|
||||
.betweenIfPresent(ContractInfoDO::getContractPeriodTime, reqVO.getContractPeriodTime())
|
||||
.betweenIfPresent(ContractInfoDO::getDeliveryTime, reqVO.getDeliveryTime())
|
||||
.eqIfPresent(ContractInfoDO::getDeliveryModel, reqVO.getDeliveryModel())
|
||||
.eqIfPresent(ContractInfoDO::getDeliveryLocation, reqVO.getDeliveryLocation())
|
||||
.eqIfPresent(ContractInfoDO::getDeliveryMethod, reqVO.getDeliveryMethod())
|
||||
.eqIfPresent(ContractInfoDO::getModeTransport, reqVO.getModeTransport())
|
||||
.eqIfPresent(ContractInfoDO::getCostBearingMian, reqVO.getCostBearingMian())
|
||||
.eqIfPresent(ContractInfoDO::getTotalAmount, reqVO.getTotalAmount())
|
||||
.eqIfPresent(ContractInfoDO::getAmountCapitalization, reqVO.getAmountCapitalization())
|
||||
.eqIfPresent(ContractInfoDO::getContractRequirement, reqVO.getContractRequirement())
|
||||
.eqIfPresent(ContractInfoDO::getRemark, reqVO.getRemark())
|
||||
.eqIfPresent(ContractInfoDO::getContractAppendices, reqVO.getContractAppendices())
|
||||
.eqIfPresent(ContractInfoDO::getAncillaryDocuments, reqVO.getAncillaryDocuments())
|
||||
.eqIfPresent(ContractInfoDO::getContractLabel, reqVO.getContractLabel())
|
||||
.eqIfPresent(ContractInfoDO::getContractAgreement, reqVO.getContractAgreement())
|
||||
.eqIfPresent(ContractInfoDO::getSecurityProtocol, reqVO.getSecurityProtocol())
|
||||
.eqIfPresent(ContractInfoDO::getExtendedField, reqVO.getExtendedField())
|
||||
.eqIfPresent(ContractInfoDO::getBidding, reqVO.getBidding())
|
||||
.eqIfPresent(ContractInfoDO::getRemark2, reqVO.getRemark2())
|
||||
.eqIfPresent(ContractInfoDO::getRemark3, reqVO.getRemark3())
|
||||
.betweenIfPresent(ContractInfoDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(ContractInfoDO::getId));
|
||||
}
|
||||
|
||||
default List<ContractInfoDO> selectList(ContractInfoExportReqVO reqVO) {
|
||||
return selectList(new LambdaQueryWrapperX<ContractInfoDO>()
|
||||
.eqIfPresent(ContractInfoDO::getContractInfo, reqVO.getContractInfo())
|
||||
.eqIfPresent(ContractInfoDO::getCurrency, reqVO.getCurrency())
|
||||
.eqIfPresent(ContractInfoDO::getProcurementModel, reqVO.getProcurementModel())
|
||||
.eqIfPresent(ContractInfoDO::getPricingModel, reqVO.getPricingModel())
|
||||
.betweenIfPresent(ContractInfoDO::getContractPeriodTime, reqVO.getContractPeriodTime())
|
||||
.betweenIfPresent(ContractInfoDO::getDeliveryTime, reqVO.getDeliveryTime())
|
||||
.eqIfPresent(ContractInfoDO::getDeliveryModel, reqVO.getDeliveryModel())
|
||||
.eqIfPresent(ContractInfoDO::getDeliveryLocation, reqVO.getDeliveryLocation())
|
||||
.eqIfPresent(ContractInfoDO::getDeliveryMethod, reqVO.getDeliveryMethod())
|
||||
.eqIfPresent(ContractInfoDO::getModeTransport, reqVO.getModeTransport())
|
||||
.eqIfPresent(ContractInfoDO::getCostBearingMian, reqVO.getCostBearingMian())
|
||||
.eqIfPresent(ContractInfoDO::getTotalAmount, reqVO.getTotalAmount())
|
||||
.eqIfPresent(ContractInfoDO::getAmountCapitalization, reqVO.getAmountCapitalization())
|
||||
.eqIfPresent(ContractInfoDO::getContractRequirement, reqVO.getContractRequirement())
|
||||
.eqIfPresent(ContractInfoDO::getRemark, reqVO.getRemark())
|
||||
.eqIfPresent(ContractInfoDO::getContractAppendices, reqVO.getContractAppendices())
|
||||
.eqIfPresent(ContractInfoDO::getAncillaryDocuments, reqVO.getAncillaryDocuments())
|
||||
.eqIfPresent(ContractInfoDO::getContractLabel, reqVO.getContractLabel())
|
||||
.eqIfPresent(ContractInfoDO::getContractAgreement, reqVO.getContractAgreement())
|
||||
.eqIfPresent(ContractInfoDO::getSecurityProtocol, reqVO.getSecurityProtocol())
|
||||
.eqIfPresent(ContractInfoDO::getExtendedField, reqVO.getExtendedField())
|
||||
.eqIfPresent(ContractInfoDO::getBidding, reqVO.getBidding())
|
||||
.eqIfPresent(ContractInfoDO::getRemark2, reqVO.getRemark2())
|
||||
.eqIfPresent(ContractInfoDO::getRemark3, reqVO.getRemark3())
|
||||
.betweenIfPresent(ContractInfoDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(ContractInfoDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -1,58 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.dal.mysql.subjectfollowmanagement;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.subjectfollowmanagement.SubjectFollowManagementDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.subjectfollowmanagement.vo.*;
|
||||
|
||||
/**
|
||||
* 主体跟进管理 Mapper
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Mapper
|
||||
public interface SubjectFollowManagementMapper extends BaseMapperX<SubjectFollowManagementDO> {
|
||||
|
||||
default PageResult<SubjectFollowManagementDO> selectPage(SubjectFollowManagementPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<SubjectFollowManagementDO>()
|
||||
.eqIfPresent(SubjectFollowManagementDO::getBusinessId, reqVO.getBusinessId())
|
||||
.eqIfPresent(SubjectFollowManagementDO::getBusinessType, reqVO.getBusinessType())
|
||||
.eqIfPresent(SubjectFollowManagementDO::getTitle, reqVO.getTitle())
|
||||
.eqIfPresent(SubjectFollowManagementDO::getIdCard, reqVO.getIdCard())
|
||||
.betweenIfPresent(SubjectFollowManagementDO::getStartTime, reqVO.getStartTime())
|
||||
.betweenIfPresent(SubjectFollowManagementDO::getEndTime, reqVO.getEndTime())
|
||||
.eqIfPresent(SubjectFollowManagementDO::getResponsible, reqVO.getResponsible())
|
||||
.eqIfPresent(SubjectFollowManagementDO::getPartake, reqVO.getPartake())
|
||||
.eqIfPresent(SubjectFollowManagementDO::getMark, reqVO.getMark())
|
||||
.eqIfPresent(SubjectFollowManagementDO::getUrgency, reqVO.getUrgency())
|
||||
.eqIfPresent(SubjectFollowManagementDO::getRemindType, reqVO.getRemindType())
|
||||
.eqIfPresent(SubjectFollowManagementDO::getDescription, reqVO.getDescription())
|
||||
.eqIfPresent(SubjectFollowManagementDO::getAnnex, reqVO.getAnnex())
|
||||
.betweenIfPresent(SubjectFollowManagementDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(SubjectFollowManagementDO::getId));
|
||||
}
|
||||
|
||||
default List<SubjectFollowManagementDO> selectList(SubjectFollowManagementExportReqVO reqVO) {
|
||||
return selectList(new LambdaQueryWrapperX<SubjectFollowManagementDO>()
|
||||
.eqIfPresent(SubjectFollowManagementDO::getBusinessId, reqVO.getBusinessId())
|
||||
.eqIfPresent(SubjectFollowManagementDO::getBusinessType, reqVO.getBusinessType())
|
||||
.eqIfPresent(SubjectFollowManagementDO::getTitle, reqVO.getTitle())
|
||||
.eqIfPresent(SubjectFollowManagementDO::getIdCard, reqVO.getIdCard())
|
||||
.betweenIfPresent(SubjectFollowManagementDO::getStartTime, reqVO.getStartTime())
|
||||
.betweenIfPresent(SubjectFollowManagementDO::getEndTime, reqVO.getEndTime())
|
||||
.eqIfPresent(SubjectFollowManagementDO::getResponsible, reqVO.getResponsible())
|
||||
.eqIfPresent(SubjectFollowManagementDO::getPartake, reqVO.getPartake())
|
||||
.eqIfPresent(SubjectFollowManagementDO::getMark, reqVO.getMark())
|
||||
.eqIfPresent(SubjectFollowManagementDO::getUrgency, reqVO.getUrgency())
|
||||
.eqIfPresent(SubjectFollowManagementDO::getRemindType, reqVO.getRemindType())
|
||||
.eqIfPresent(SubjectFollowManagementDO::getDescription, reqVO.getDescription())
|
||||
.eqIfPresent(SubjectFollowManagementDO::getAnnex, reqVO.getAnnex())
|
||||
.betweenIfPresent(SubjectFollowManagementDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(SubjectFollowManagementDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -1,70 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.service.contract;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.contract.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.contract.ContractDO;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
/**
|
||||
* 合同信息 Service 接口
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
public interface ContractService {
|
||||
|
||||
/**
|
||||
* 创建合同信息
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createContract(@Valid ContractCreateReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新合同信息
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateContract(@Valid ContractUpdateReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除合同信息
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteContract(Long id);
|
||||
|
||||
/**
|
||||
* 获得合同信息
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 合同信息
|
||||
*/
|
||||
ContractDO getContract(Long id);
|
||||
|
||||
/**
|
||||
* 获得合同信息列表
|
||||
*
|
||||
* @param ids 编号
|
||||
* @return 合同信息列表
|
||||
*/
|
||||
List<ContractDO> getContractList(Collection<Long> ids);
|
||||
|
||||
/**
|
||||
* 获得合同信息分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 合同信息分页
|
||||
*/
|
||||
PageResult<ContractDO> getContractPage(ContractPageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 获得合同信息列表, 用于 Excel 导出
|
||||
*
|
||||
* @param exportReqVO 查询条件
|
||||
* @return 合同信息列表
|
||||
*/
|
||||
List<ContractDO> getContractList(ContractExportReqVO exportReqVO);
|
||||
|
||||
}
|
@ -1,82 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.service.contract;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.util.*;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.contract.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.contract.ContractDO;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.convert.contract.ContractConvert;
|
||||
import com.yunxi.scm.module.xxjj.dal.mysql.contract.ContractMapper;
|
||||
|
||||
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
* 合同信息 Service 实现类
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class ContractServiceImpl implements ContractService {
|
||||
|
||||
@Resource
|
||||
private ContractMapper contractMapper;
|
||||
|
||||
@Override
|
||||
public Long createContract(ContractCreateReqVO createReqVO) {
|
||||
// 插入
|
||||
ContractDO contract = ContractConvert.INSTANCE.convert(createReqVO);
|
||||
contractMapper.insert(contract);
|
||||
// 返回
|
||||
return contract.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateContract(ContractUpdateReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateContractExists(updateReqVO.getId());
|
||||
// 更新
|
||||
ContractDO updateObj = ContractConvert.INSTANCE.convert(updateReqVO);
|
||||
contractMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteContract(Long id) {
|
||||
// 校验存在
|
||||
validateContractExists(id);
|
||||
// 删除
|
||||
contractMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateContractExists(Long id) {
|
||||
if (contractMapper.selectById(id) == null) {
|
||||
throw exception(CONTRACT_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ContractDO getContract(Long id) {
|
||||
return contractMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ContractDO> getContractList(Collection<Long> ids) {
|
||||
return contractMapper.selectBatchIds(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<ContractDO> getContractPage(ContractPageReqVO pageReqVO) {
|
||||
return contractMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ContractDO> getContractList(ContractExportReqVO exportReqVO) {
|
||||
return contractMapper.selectList(exportReqVO);
|
||||
}
|
||||
|
||||
}
|
@ -1,70 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.service.contractinfo;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.contractinfo.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.contractinfo.ContractInfoDO;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
/**
|
||||
* 合同信息 Service 接口
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
public interface ContractInfoService {
|
||||
|
||||
/**
|
||||
* 创建合同信息
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createContractInfo(@Valid ContractInfoCreateReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新合同信息
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateContractInfo(@Valid ContractInfoUpdateReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除合同信息
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteContractInfo(Long id);
|
||||
|
||||
/**
|
||||
* 获得合同信息
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 合同信息
|
||||
*/
|
||||
ContractInfoDO getContractInfo(Long id);
|
||||
|
||||
/**
|
||||
* 获得合同信息列表
|
||||
*
|
||||
* @param ids 编号
|
||||
* @return 合同信息列表
|
||||
*/
|
||||
List<ContractInfoDO> getContractInfoList(Collection<Long> ids);
|
||||
|
||||
/**
|
||||
* 获得合同信息分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 合同信息分页
|
||||
*/
|
||||
PageResult<ContractInfoDO> getContractInfoPage(ContractInfoPageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 获得合同信息列表, 用于 Excel 导出
|
||||
*
|
||||
* @param exportReqVO 查询条件
|
||||
* @return 合同信息列表
|
||||
*/
|
||||
List<ContractInfoDO> getContractInfoList(ContractInfoExportReqVO exportReqVO);
|
||||
|
||||
}
|
@ -1,82 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.service.contractinfo;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.util.*;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.contractinfo.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.contractinfo.ContractInfoDO;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.convert.contractinfo.ContractInfoConvert;
|
||||
import com.yunxi.scm.module.xxjj.dal.mysql.contractinfo.ContractInfoMapper;
|
||||
|
||||
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
* 合同信息 Service 实现类
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class ContractInfoServiceImpl implements ContractInfoService {
|
||||
|
||||
@Resource
|
||||
private ContractInfoMapper contractInfoMapper;
|
||||
|
||||
@Override
|
||||
public Long createContractInfo(ContractInfoCreateReqVO createReqVO) {
|
||||
// 插入
|
||||
ContractInfoDO contractInfo = ContractInfoConvert.INSTANCE.convert(createReqVO);
|
||||
contractInfoMapper.insert(contractInfo);
|
||||
// 返回
|
||||
return contractInfo.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateContractInfo(ContractInfoUpdateReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateContractInfoExists(updateReqVO.getId());
|
||||
// 更新
|
||||
ContractInfoDO updateObj = ContractInfoConvert.INSTANCE.convert(updateReqVO);
|
||||
contractInfoMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteContractInfo(Long id) {
|
||||
// 校验存在
|
||||
validateContractInfoExists(id);
|
||||
// 删除
|
||||
contractInfoMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateContractInfoExists(Long id) {
|
||||
if (contractInfoMapper.selectById(id) == null) {
|
||||
throw exception(CONTRACT_INFO_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ContractInfoDO getContractInfo(Long id) {
|
||||
return contractInfoMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ContractInfoDO> getContractInfoList(Collection<Long> ids) {
|
||||
return contractInfoMapper.selectBatchIds(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<ContractInfoDO> getContractInfoPage(ContractInfoPageReqVO pageReqVO) {
|
||||
return contractInfoMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ContractInfoDO> getContractInfoList(ContractInfoExportReqVO exportReqVO) {
|
||||
return contractInfoMapper.selectList(exportReqVO);
|
||||
}
|
||||
|
||||
}
|
@ -1,70 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.service.subjectfollowmanagement;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.subjectfollowmanagement.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.subjectfollowmanagement.SubjectFollowManagementDO;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
/**
|
||||
* 主体跟进管理 Service 接口
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
public interface SubjectFollowManagementService {
|
||||
|
||||
/**
|
||||
* 创建主体跟进管理
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createSubjectFollowManagement(@Valid SubjectFollowManagementCreateReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新主体跟进管理
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateSubjectFollowManagement(@Valid SubjectFollowManagementUpdateReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除主体跟进管理
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteSubjectFollowManagement(Long id);
|
||||
|
||||
/**
|
||||
* 获得主体跟进管理
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 主体跟进管理
|
||||
*/
|
||||
SubjectFollowManagementDO getSubjectFollowManagement(Long id);
|
||||
|
||||
/**
|
||||
* 获得主体跟进管理列表
|
||||
*
|
||||
* @param ids 编号
|
||||
* @return 主体跟进管理列表
|
||||
*/
|
||||
List<SubjectFollowManagementDO> getSubjectFollowManagementList(Collection<Long> ids);
|
||||
|
||||
/**
|
||||
* 获得主体跟进管理分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 主体跟进管理分页
|
||||
*/
|
||||
PageResult<SubjectFollowManagementDO> getSubjectFollowManagementPage(SubjectFollowManagementPageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 获得主体跟进管理列表, 用于 Excel 导出
|
||||
*
|
||||
* @param exportReqVO 查询条件
|
||||
* @return 主体跟进管理列表
|
||||
*/
|
||||
List<SubjectFollowManagementDO> getSubjectFollowManagementList(SubjectFollowManagementExportReqVO exportReqVO);
|
||||
|
||||
}
|
@ -1,82 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.service.subjectfollowmanagement;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.util.*;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.subjectfollowmanagement.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.subjectfollowmanagement.SubjectFollowManagementDO;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.convert.subjectfollowmanagement.SubjectFollowManagementConvert;
|
||||
import com.yunxi.scm.module.xxjj.dal.mysql.subjectfollowmanagement.SubjectFollowManagementMapper;
|
||||
|
||||
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
* 主体跟进管理 Service 实现类
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class SubjectFollowManagementServiceImpl implements SubjectFollowManagementService {
|
||||
|
||||
@Resource
|
||||
private SubjectFollowManagementMapper subjectFollowManagementMapper;
|
||||
|
||||
@Override
|
||||
public Long createSubjectFollowManagement(SubjectFollowManagementCreateReqVO createReqVO) {
|
||||
// 插入
|
||||
SubjectFollowManagementDO subjectFollowManagement = SubjectFollowManagementConvert.INSTANCE.convert(createReqVO);
|
||||
subjectFollowManagementMapper.insert(subjectFollowManagement);
|
||||
// 返回
|
||||
return subjectFollowManagement.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateSubjectFollowManagement(SubjectFollowManagementUpdateReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateSubjectFollowManagementExists(updateReqVO.getId());
|
||||
// 更新
|
||||
SubjectFollowManagementDO updateObj = SubjectFollowManagementConvert.INSTANCE.convert(updateReqVO);
|
||||
subjectFollowManagementMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteSubjectFollowManagement(Long id) {
|
||||
// 校验存在
|
||||
validateSubjectFollowManagementExists(id);
|
||||
// 删除
|
||||
subjectFollowManagementMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateSubjectFollowManagementExists(Long id) {
|
||||
if (subjectFollowManagementMapper.selectById(id) == null) {
|
||||
throw exception(SUBJECT_FOLLOW_MANAGEMENT_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SubjectFollowManagementDO getSubjectFollowManagement(Long id) {
|
||||
return subjectFollowManagementMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SubjectFollowManagementDO> getSubjectFollowManagementList(Collection<Long> ids) {
|
||||
return subjectFollowManagementMapper.selectBatchIds(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<SubjectFollowManagementDO> getSubjectFollowManagementPage(SubjectFollowManagementPageReqVO pageReqVO) {
|
||||
return subjectFollowManagementMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SubjectFollowManagementDO> getSubjectFollowManagementList(SubjectFollowManagementExportReqVO exportReqVO) {
|
||||
return subjectFollowManagementMapper.selectList(exportReqVO);
|
||||
}
|
||||
|
||||
}
|
@ -1,255 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.service.contract;
|
||||
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import com.yunxi.scm.framework.test.core.ut.BaseDbUnitTest;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.contract.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.contract.ContractDO;
|
||||
import com.yunxi.scm.module.xxjj.dal.mysql.contract.ContractMapper;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.hutool.core.util.RandomUtil.*;
|
||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||
import static com.yunxi.scm.framework.test.core.util.AssertUtils.*;
|
||||
import static com.yunxi.scm.framework.test.core.util.RandomUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.date.LocalDateTimeUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.object.ObjectUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.date.DateUtils.*;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
/**
|
||||
* {@link ContractServiceImpl} 的单元测试类
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Import(ContractServiceImpl.class)
|
||||
public class ContractServiceImplTest extends BaseDbUnitTest {
|
||||
|
||||
@Resource
|
||||
private ContractServiceImpl contractService;
|
||||
|
||||
@Resource
|
||||
private ContractMapper contractMapper;
|
||||
|
||||
@Test
|
||||
public void testCreateContract_success() {
|
||||
// 准备参数
|
||||
ContractCreateReqVO reqVO = randomPojo(ContractCreateReqVO.class);
|
||||
|
||||
// 调用
|
||||
Long contractId = contractService.createContract(reqVO);
|
||||
// 断言
|
||||
assertNotNull(contractId);
|
||||
// 校验记录的属性是否正确
|
||||
ContractDO contract = contractMapper.selectById(contractId);
|
||||
assertPojoEquals(reqVO, contract);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateContract_success() {
|
||||
// mock 数据
|
||||
ContractDO dbContract = randomPojo(ContractDO.class);
|
||||
contractMapper.insert(dbContract);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
ContractUpdateReqVO reqVO = randomPojo(ContractUpdateReqVO.class, o -> {
|
||||
o.setId(dbContract.getId()); // 设置更新的 ID
|
||||
});
|
||||
|
||||
// 调用
|
||||
contractService.updateContract(reqVO);
|
||||
// 校验是否更新正确
|
||||
ContractDO contract = contractMapper.selectById(reqVO.getId()); // 获取最新的
|
||||
assertPojoEquals(reqVO, contract);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateContract_notExists() {
|
||||
// 准备参数
|
||||
ContractUpdateReqVO reqVO = randomPojo(ContractUpdateReqVO.class);
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> contractService.updateContract(reqVO), CONTRACT_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteContract_success() {
|
||||
// mock 数据
|
||||
ContractDO dbContract = randomPojo(ContractDO.class);
|
||||
contractMapper.insert(dbContract);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
Long id = dbContract.getId();
|
||||
|
||||
// 调用
|
||||
contractService.deleteContract(id);
|
||||
// 校验数据不存在了
|
||||
assertNull(contractMapper.selectById(id));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteContract_notExists() {
|
||||
// 准备参数
|
||||
Long id = randomLongId();
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> contractService.deleteContract(id), CONTRACT_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetContractPage() {
|
||||
// mock 数据
|
||||
ContractDO dbContract = randomPojo(ContractDO.class, o -> { // 等会查询到
|
||||
o.setContractStatus(null);
|
||||
o.setContractType(null);
|
||||
o.setContractTemplateId(null);
|
||||
o.setContractNumber(null);
|
||||
o.setContractName(null);
|
||||
o.setSubject(null);
|
||||
o.setDeptId(null);
|
||||
o.setContractNo(null);
|
||||
o.setContractSigned(null);
|
||||
o.setContractSignedTime(null);
|
||||
o.setBusinessId(null);
|
||||
o.setBusinessType(null);
|
||||
o.setDeclarationTime(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
contractMapper.insert(dbContract);
|
||||
// 测试 contractStatus 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setContractStatus(null)));
|
||||
// 测试 contractType 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setContractType(null)));
|
||||
// 测试 contractTemplateId 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setContractTemplateId(null)));
|
||||
// 测试 contractNumber 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setContractNumber(null)));
|
||||
// 测试 contractName 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setContractName(null)));
|
||||
// 测试 subject 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setSubject(null)));
|
||||
// 测试 deptId 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setDeptId(null)));
|
||||
// 测试 contractNo 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setContractNo(null)));
|
||||
// 测试 contractSigned 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setContractSigned(null)));
|
||||
// 测试 contractSignedTime 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setContractSignedTime(null)));
|
||||
// 测试 businessId 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setBusinessId(null)));
|
||||
// 测试 businessType 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setBusinessType(null)));
|
||||
// 测试 declarationTime 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setDeclarationTime(null)));
|
||||
// 测试 createTime 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
ContractPageReqVO reqVO = new ContractPageReqVO();
|
||||
reqVO.setContractStatus(null);
|
||||
reqVO.setContractType(null);
|
||||
reqVO.setContractTemplateId(null);
|
||||
reqVO.setContractNumber(null);
|
||||
reqVO.setContractName(null);
|
||||
reqVO.setSubject(null);
|
||||
reqVO.setDeptId(null);
|
||||
reqVO.setContractNo(null);
|
||||
reqVO.setContractSigned(null);
|
||||
reqVO.setContractSignedTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
reqVO.setBusinessId(null);
|
||||
reqVO.setBusinessType(null);
|
||||
reqVO.setDeclarationTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
PageResult<ContractDO> pageResult = contractService.getContractPage(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, pageResult.getTotal());
|
||||
assertEquals(1, pageResult.getList().size());
|
||||
assertPojoEquals(dbContract, pageResult.getList().get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetContractList() {
|
||||
// mock 数据
|
||||
ContractDO dbContract = randomPojo(ContractDO.class, o -> { // 等会查询到
|
||||
o.setContractStatus(null);
|
||||
o.setContractType(null);
|
||||
o.setContractTemplateId(null);
|
||||
o.setContractNumber(null);
|
||||
o.setContractName(null);
|
||||
o.setSubject(null);
|
||||
o.setDeptId(null);
|
||||
o.setContractNo(null);
|
||||
o.setContractSigned(null);
|
||||
o.setContractSignedTime(null);
|
||||
o.setBusinessId(null);
|
||||
o.setBusinessType(null);
|
||||
o.setDeclarationTime(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
contractMapper.insert(dbContract);
|
||||
// 测试 contractStatus 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setContractStatus(null)));
|
||||
// 测试 contractType 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setContractType(null)));
|
||||
// 测试 contractTemplateId 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setContractTemplateId(null)));
|
||||
// 测试 contractNumber 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setContractNumber(null)));
|
||||
// 测试 contractName 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setContractName(null)));
|
||||
// 测试 subject 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setSubject(null)));
|
||||
// 测试 deptId 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setDeptId(null)));
|
||||
// 测试 contractNo 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setContractNo(null)));
|
||||
// 测试 contractSigned 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setContractSigned(null)));
|
||||
// 测试 contractSignedTime 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setContractSignedTime(null)));
|
||||
// 测试 businessId 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setBusinessId(null)));
|
||||
// 测试 businessType 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setBusinessType(null)));
|
||||
// 测试 declarationTime 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setDeclarationTime(null)));
|
||||
// 测试 createTime 不匹配
|
||||
contractMapper.insert(cloneIgnoreId(dbContract, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
ContractExportReqVO reqVO = new ContractExportReqVO();
|
||||
reqVO.setContractStatus(null);
|
||||
reqVO.setContractType(null);
|
||||
reqVO.setContractTemplateId(null);
|
||||
reqVO.setContractNumber(null);
|
||||
reqVO.setContractName(null);
|
||||
reqVO.setSubject(null);
|
||||
reqVO.setDeptId(null);
|
||||
reqVO.setContractNo(null);
|
||||
reqVO.setContractSigned(null);
|
||||
reqVO.setContractSignedTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
reqVO.setBusinessId(null);
|
||||
reqVO.setBusinessType(null);
|
||||
reqVO.setDeclarationTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
List<ContractDO> list = contractService.getContractList(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, list.size());
|
||||
assertPojoEquals(dbContract, list.get(0));
|
||||
}
|
||||
|
||||
}
|
@ -1,337 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.service.contractinfo;
|
||||
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import com.yunxi.scm.framework.test.core.ut.BaseDbUnitTest;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.contractinfo.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.contractinfo.ContractInfoDO;
|
||||
import com.yunxi.scm.module.xxjj.dal.mysql.contractinfo.ContractInfoMapper;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import org.springframework.context.annotation.Import;
|
||||
import java.util.*;
|
||||
|
||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||
import static com.yunxi.scm.framework.test.core.util.AssertUtils.*;
|
||||
import static com.yunxi.scm.framework.test.core.util.RandomUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.date.LocalDateTimeUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.object.ObjectUtils.*;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
/**
|
||||
* {@link ContractInfoServiceImpl} 的单元测试类
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Import(ContractInfoServiceImpl.class)
|
||||
public class ContractInfoServiceImplTest extends BaseDbUnitTest {
|
||||
|
||||
@Resource
|
||||
private ContractInfoServiceImpl contractInfoService;
|
||||
|
||||
@Resource
|
||||
private ContractInfoMapper contractInfoMapper;
|
||||
|
||||
@Test
|
||||
public void testCreateContractInfo_success() {
|
||||
// 准备参数
|
||||
ContractInfoCreateReqVO reqVO = randomPojo(ContractInfoCreateReqVO.class);
|
||||
|
||||
// 调用
|
||||
Long contractInfoId = contractInfoService.createContractInfo(reqVO);
|
||||
// 断言
|
||||
assertNotNull(contractInfoId);
|
||||
// 校验记录的属性是否正确
|
||||
ContractInfoDO contractInfo = contractInfoMapper.selectById(contractInfoId);
|
||||
assertPojoEquals(reqVO, contractInfo);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateContractInfo_success() {
|
||||
// mock 数据
|
||||
ContractInfoDO dbContractInfo = randomPojo(ContractInfoDO.class);
|
||||
contractInfoMapper.insert(dbContractInfo);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
ContractInfoUpdateReqVO reqVO = randomPojo(ContractInfoUpdateReqVO.class, o -> {
|
||||
o.setId(dbContractInfo.getId()); // 设置更新的 ID
|
||||
});
|
||||
|
||||
// 调用
|
||||
contractInfoService.updateContractInfo(reqVO);
|
||||
// 校验是否更新正确
|
||||
ContractInfoDO contractInfo = contractInfoMapper.selectById(reqVO.getId()); // 获取最新的
|
||||
assertPojoEquals(reqVO, contractInfo);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateContractInfo_notExists() {
|
||||
// 准备参数
|
||||
ContractInfoUpdateReqVO reqVO = randomPojo(ContractInfoUpdateReqVO.class);
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> contractInfoService.updateContractInfo(reqVO), CONTRACT_INFO_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteContractInfo_success() {
|
||||
// mock 数据
|
||||
ContractInfoDO dbContractInfo = randomPojo(ContractInfoDO.class);
|
||||
contractInfoMapper.insert(dbContractInfo);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
Long id = dbContractInfo.getId();
|
||||
|
||||
// 调用
|
||||
contractInfoService.deleteContractInfo(id);
|
||||
// 校验数据不存在了
|
||||
assertNull(contractInfoMapper.selectById(id));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteContractInfo_notExists() {
|
||||
// 准备参数
|
||||
Long id = randomLongId();
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> contractInfoService.deleteContractInfo(id), CONTRACT_INFO_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetContractInfoPage() {
|
||||
// mock 数据
|
||||
ContractInfoDO dbContractInfo = randomPojo(ContractInfoDO.class, o -> { // 等会查询到
|
||||
o.setContractInfo(null);
|
||||
o.setCurrency(null);
|
||||
o.setProcurementModel(null);
|
||||
o.setPricingModel(null);
|
||||
o.setContractPeriodTime(null);
|
||||
o.setDeliveryTime(null);
|
||||
o.setDeliveryModel(null);
|
||||
o.setDeliveryLocation(null);
|
||||
o.setDeliveryMethod(null);
|
||||
o.setModeTransport(null);
|
||||
o.setCostBearingMian(null);
|
||||
o.setTotalAmount(null);
|
||||
o.setAmountCapitalization(null);
|
||||
o.setContractRequirement(null);
|
||||
o.setRemark(null);
|
||||
o.setContractAppendices(null);
|
||||
o.setAncillaryDocuments(null);
|
||||
o.setContractLabel(null);
|
||||
o.setContractAgreement(null);
|
||||
o.setSecurityProtocol(null);
|
||||
o.setExtendedField(null);
|
||||
o.setBidding(null);
|
||||
o.setRemark2(null);
|
||||
o.setRemark3(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
contractInfoMapper.insert(dbContractInfo);
|
||||
// 测试 contractInfo 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setContractInfo(null)));
|
||||
// 测试 currency 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setCurrency(null)));
|
||||
// 测试 procurementModel 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setProcurementModel(null)));
|
||||
// 测试 pricingModel 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setPricingModel(null)));
|
||||
// 测试 contractPeriodTime 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setContractPeriodTime(null)));
|
||||
// 测试 deliveryTime 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setDeliveryTime(null)));
|
||||
// 测试 deliveryModel 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setDeliveryModel(null)));
|
||||
// 测试 deliveryLocation 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setDeliveryLocation(null)));
|
||||
// 测试 deliveryMethod 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setDeliveryMethod(null)));
|
||||
// 测试 modeTransport 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setModeTransport(null)));
|
||||
// 测试 costBearingMian 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setCostBearingMian(null)));
|
||||
// 测试 totalAmount 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setTotalAmount(null)));
|
||||
// 测试 amountCapitalization 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setAmountCapitalization(null)));
|
||||
// 测试 contractRequirement 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setContractRequirement(null)));
|
||||
// 测试 remark 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setRemark(null)));
|
||||
// 测试 contractAppendices 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setContractAppendices(null)));
|
||||
// 测试 ancillaryDocuments 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setAncillaryDocuments(null)));
|
||||
// 测试 contractLabel 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setContractLabel(null)));
|
||||
// 测试 contractAgreement 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setContractAgreement(null)));
|
||||
// 测试 securityProtocol 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setSecurityProtocol(null)));
|
||||
// 测试 extendedField 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setExtendedField(null)));
|
||||
// 测试 bidding 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setBidding(null)));
|
||||
// 测试 remark2 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setRemark2(null)));
|
||||
// 测试 remark3 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setRemark3(null)));
|
||||
// 测试 createTime 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
ContractInfoPageReqVO reqVO = new ContractInfoPageReqVO();
|
||||
reqVO.setContractInfo(null);
|
||||
reqVO.setCurrency(null);
|
||||
reqVO.setProcurementModel(null);
|
||||
reqVO.setPricingModel(null);
|
||||
reqVO.setContractPeriodTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
reqVO.setDeliveryTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
reqVO.setDeliveryModel(null);
|
||||
reqVO.setDeliveryLocation(null);
|
||||
reqVO.setDeliveryMethod(null);
|
||||
reqVO.setModeTransport(null);
|
||||
reqVO.setCostBearingMian(null);
|
||||
reqVO.setTotalAmount(null);
|
||||
reqVO.setAmountCapitalization(null);
|
||||
reqVO.setContractRequirement(null);
|
||||
reqVO.setRemark(null);
|
||||
reqVO.setContractAppendices(null);
|
||||
reqVO.setAncillaryDocuments(null);
|
||||
reqVO.setContractLabel(null);
|
||||
reqVO.setContractAgreement(null);
|
||||
reqVO.setSecurityProtocol(null);
|
||||
reqVO.setExtendedField(null);
|
||||
reqVO.setBidding(null);
|
||||
reqVO.setRemark2(null);
|
||||
reqVO.setRemark3(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
PageResult<ContractInfoDO> pageResult = contractInfoService.getContractInfoPage(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, pageResult.getTotal());
|
||||
assertEquals(1, pageResult.getList().size());
|
||||
assertPojoEquals(dbContractInfo, pageResult.getList().get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetContractInfoList() {
|
||||
// mock 数据
|
||||
ContractInfoDO dbContractInfo = randomPojo(ContractInfoDO.class, o -> { // 等会查询到
|
||||
o.setContractInfo(null);
|
||||
o.setCurrency(null);
|
||||
o.setProcurementModel(null);
|
||||
o.setPricingModel(null);
|
||||
o.setContractPeriodTime(null);
|
||||
o.setDeliveryTime(null);
|
||||
o.setDeliveryModel(null);
|
||||
o.setDeliveryLocation(null);
|
||||
o.setDeliveryMethod(null);
|
||||
o.setModeTransport(null);
|
||||
o.setCostBearingMian(null);
|
||||
o.setTotalAmount(null);
|
||||
o.setAmountCapitalization(null);
|
||||
o.setContractRequirement(null);
|
||||
o.setRemark(null);
|
||||
o.setContractAppendices(null);
|
||||
o.setAncillaryDocuments(null);
|
||||
o.setContractLabel(null);
|
||||
o.setContractAgreement(null);
|
||||
o.setSecurityProtocol(null);
|
||||
o.setExtendedField(null);
|
||||
o.setBidding(null);
|
||||
o.setRemark2(null);
|
||||
o.setRemark3(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
contractInfoMapper.insert(dbContractInfo);
|
||||
// 测试 contractInfo 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setContractInfo(null)));
|
||||
// 测试 currency 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setCurrency(null)));
|
||||
// 测试 procurementModel 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setProcurementModel(null)));
|
||||
// 测试 pricingModel 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setPricingModel(null)));
|
||||
// 测试 contractPeriodTime 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setContractPeriodTime(null)));
|
||||
// 测试 deliveryTime 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setDeliveryTime(null)));
|
||||
// 测试 deliveryModel 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setDeliveryModel(null)));
|
||||
// 测试 deliveryLocation 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setDeliveryLocation(null)));
|
||||
// 测试 deliveryMethod 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setDeliveryMethod(null)));
|
||||
// 测试 modeTransport 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setModeTransport(null)));
|
||||
// 测试 costBearingMian 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setCostBearingMian(null)));
|
||||
// 测试 totalAmount 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setTotalAmount(null)));
|
||||
// 测试 amountCapitalization 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setAmountCapitalization(null)));
|
||||
// 测试 contractRequirement 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setContractRequirement(null)));
|
||||
// 测试 remark 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setRemark(null)));
|
||||
// 测试 contractAppendices 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setContractAppendices(null)));
|
||||
// 测试 ancillaryDocuments 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setAncillaryDocuments(null)));
|
||||
// 测试 contractLabel 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setContractLabel(null)));
|
||||
// 测试 contractAgreement 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setContractAgreement(null)));
|
||||
// 测试 securityProtocol 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setSecurityProtocol(null)));
|
||||
// 测试 extendedField 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setExtendedField(null)));
|
||||
// 测试 bidding 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setBidding(null)));
|
||||
// 测试 remark2 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setRemark2(null)));
|
||||
// 测试 remark3 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setRemark3(null)));
|
||||
// 测试 createTime 不匹配
|
||||
contractInfoMapper.insert(cloneIgnoreId(dbContractInfo, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
ContractInfoExportReqVO reqVO = new ContractInfoExportReqVO();
|
||||
reqVO.setContractInfo(null);
|
||||
reqVO.setCurrency(null);
|
||||
reqVO.setProcurementModel(null);
|
||||
reqVO.setPricingModel(null);
|
||||
reqVO.setContractPeriodTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
reqVO.setDeliveryTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
reqVO.setDeliveryModel(null);
|
||||
reqVO.setDeliveryLocation(null);
|
||||
reqVO.setDeliveryMethod(null);
|
||||
reqVO.setModeTransport(null);
|
||||
reqVO.setCostBearingMian(null);
|
||||
reqVO.setTotalAmount(null);
|
||||
reqVO.setAmountCapitalization(null);
|
||||
reqVO.setContractRequirement(null);
|
||||
reqVO.setRemark(null);
|
||||
reqVO.setContractAppendices(null);
|
||||
reqVO.setAncillaryDocuments(null);
|
||||
reqVO.setContractLabel(null);
|
||||
reqVO.setContractAgreement(null);
|
||||
reqVO.setSecurityProtocol(null);
|
||||
reqVO.setExtendedField(null);
|
||||
reqVO.setBidding(null);
|
||||
reqVO.setRemark2(null);
|
||||
reqVO.setRemark3(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
List<ContractInfoDO> list = contractInfoService.getContractInfoList(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, list.size());
|
||||
assertPojoEquals(dbContractInfo, list.get(0));
|
||||
}
|
||||
|
||||
}
|
@ -1,255 +0,0 @@
|
||||
package com.yunxi.scm.module.xxjj.service.subjectfollowmanagement;
|
||||
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import com.yunxi.scm.framework.test.core.ut.BaseDbUnitTest;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.subjectfollowmanagement.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.subjectfollowmanagement.SubjectFollowManagementDO;
|
||||
import com.yunxi.scm.module.xxjj.dal.mysql.subjectfollowmanagement.SubjectFollowManagementMapper;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.hutool.core.util.RandomUtil.*;
|
||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||
import static com.yunxi.scm.framework.test.core.util.AssertUtils.*;
|
||||
import static com.yunxi.scm.framework.test.core.util.RandomUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.date.LocalDateTimeUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.object.ObjectUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.date.DateUtils.*;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
/**
|
||||
* {@link SubjectFollowManagementServiceImpl} 的单元测试类
|
||||
*
|
||||
* @author 长江云息
|
||||
*/
|
||||
@Import(SubjectFollowManagementServiceImpl.class)
|
||||
public class SubjectFollowManagementServiceImplTest extends BaseDbUnitTest {
|
||||
|
||||
@Resource
|
||||
private SubjectFollowManagementServiceImpl subjectFollowManagementService;
|
||||
|
||||
@Resource
|
||||
private SubjectFollowManagementMapper subjectFollowManagementMapper;
|
||||
|
||||
@Test
|
||||
public void testCreateSubjectFollowManagement_success() {
|
||||
// 准备参数
|
||||
SubjectFollowManagementCreateReqVO reqVO = randomPojo(SubjectFollowManagementCreateReqVO.class);
|
||||
|
||||
// 调用
|
||||
Long subjectFollowManagementId = subjectFollowManagementService.createSubjectFollowManagement(reqVO);
|
||||
// 断言
|
||||
assertNotNull(subjectFollowManagementId);
|
||||
// 校验记录的属性是否正确
|
||||
SubjectFollowManagementDO subjectFollowManagement = subjectFollowManagementMapper.selectById(subjectFollowManagementId);
|
||||
assertPojoEquals(reqVO, subjectFollowManagement);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateSubjectFollowManagement_success() {
|
||||
// mock 数据
|
||||
SubjectFollowManagementDO dbSubjectFollowManagement = randomPojo(SubjectFollowManagementDO.class);
|
||||
subjectFollowManagementMapper.insert(dbSubjectFollowManagement);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
SubjectFollowManagementUpdateReqVO reqVO = randomPojo(SubjectFollowManagementUpdateReqVO.class, o -> {
|
||||
o.setId(dbSubjectFollowManagement.getId()); // 设置更新的 ID
|
||||
});
|
||||
|
||||
// 调用
|
||||
subjectFollowManagementService.updateSubjectFollowManagement(reqVO);
|
||||
// 校验是否更新正确
|
||||
SubjectFollowManagementDO subjectFollowManagement = subjectFollowManagementMapper.selectById(reqVO.getId()); // 获取最新的
|
||||
assertPojoEquals(reqVO, subjectFollowManagement);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateSubjectFollowManagement_notExists() {
|
||||
// 准备参数
|
||||
SubjectFollowManagementUpdateReqVO reqVO = randomPojo(SubjectFollowManagementUpdateReqVO.class);
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> subjectFollowManagementService.updateSubjectFollowManagement(reqVO), SUBJECT_FOLLOW_MANAGEMENT_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteSubjectFollowManagement_success() {
|
||||
// mock 数据
|
||||
SubjectFollowManagementDO dbSubjectFollowManagement = randomPojo(SubjectFollowManagementDO.class);
|
||||
subjectFollowManagementMapper.insert(dbSubjectFollowManagement);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
Long id = dbSubjectFollowManagement.getId();
|
||||
|
||||
// 调用
|
||||
subjectFollowManagementService.deleteSubjectFollowManagement(id);
|
||||
// 校验数据不存在了
|
||||
assertNull(subjectFollowManagementMapper.selectById(id));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteSubjectFollowManagement_notExists() {
|
||||
// 准备参数
|
||||
Long id = randomLongId();
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> subjectFollowManagementService.deleteSubjectFollowManagement(id), SUBJECT_FOLLOW_MANAGEMENT_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetSubjectFollowManagementPage() {
|
||||
// mock 数据
|
||||
SubjectFollowManagementDO dbSubjectFollowManagement = randomPojo(SubjectFollowManagementDO.class, o -> { // 等会查询到
|
||||
o.setBusinessId(null);
|
||||
o.setBusinessType(null);
|
||||
o.setTitle(null);
|
||||
o.setIdCard(null);
|
||||
o.setStartTime(null);
|
||||
o.setEndTime(null);
|
||||
o.setResponsible(null);
|
||||
o.setPartake(null);
|
||||
o.setMark(null);
|
||||
o.setUrgency(null);
|
||||
o.setRemindType(null);
|
||||
o.setDescription(null);
|
||||
o.setAnnex(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
subjectFollowManagementMapper.insert(dbSubjectFollowManagement);
|
||||
// 测试 businessId 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setBusinessId(null)));
|
||||
// 测试 businessType 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setBusinessType(null)));
|
||||
// 测试 title 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setTitle(null)));
|
||||
// 测试 idCard 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setIdCard(null)));
|
||||
// 测试 startTime 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setStartTime(null)));
|
||||
// 测试 endTime 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setEndTime(null)));
|
||||
// 测试 responsible 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setResponsible(null)));
|
||||
// 测试 partake 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setPartake(null)));
|
||||
// 测试 mark 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setMark(null)));
|
||||
// 测试 urgency 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setUrgency(null)));
|
||||
// 测试 remindType 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setRemindType(null)));
|
||||
// 测试 description 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setDescription(null)));
|
||||
// 测试 annex 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setAnnex(null)));
|
||||
// 测试 createTime 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
SubjectFollowManagementPageReqVO reqVO = new SubjectFollowManagementPageReqVO();
|
||||
reqVO.setBusinessId(null);
|
||||
reqVO.setBusinessType(null);
|
||||
reqVO.setTitle(null);
|
||||
reqVO.setIdCard(null);
|
||||
reqVO.setStartTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
reqVO.setEndTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
reqVO.setResponsible(null);
|
||||
reqVO.setPartake(null);
|
||||
reqVO.setMark(null);
|
||||
reqVO.setUrgency(null);
|
||||
reqVO.setRemindType(null);
|
||||
reqVO.setDescription(null);
|
||||
reqVO.setAnnex(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
PageResult<SubjectFollowManagementDO> pageResult = subjectFollowManagementService.getSubjectFollowManagementPage(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, pageResult.getTotal());
|
||||
assertEquals(1, pageResult.getList().size());
|
||||
assertPojoEquals(dbSubjectFollowManagement, pageResult.getList().get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetSubjectFollowManagementList() {
|
||||
// mock 数据
|
||||
SubjectFollowManagementDO dbSubjectFollowManagement = randomPojo(SubjectFollowManagementDO.class, o -> { // 等会查询到
|
||||
o.setBusinessId(null);
|
||||
o.setBusinessType(null);
|
||||
o.setTitle(null);
|
||||
o.setIdCard(null);
|
||||
o.setStartTime(null);
|
||||
o.setEndTime(null);
|
||||
o.setResponsible(null);
|
||||
o.setPartake(null);
|
||||
o.setMark(null);
|
||||
o.setUrgency(null);
|
||||
o.setRemindType(null);
|
||||
o.setDescription(null);
|
||||
o.setAnnex(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
subjectFollowManagementMapper.insert(dbSubjectFollowManagement);
|
||||
// 测试 businessId 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setBusinessId(null)));
|
||||
// 测试 businessType 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setBusinessType(null)));
|
||||
// 测试 title 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setTitle(null)));
|
||||
// 测试 idCard 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setIdCard(null)));
|
||||
// 测试 startTime 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setStartTime(null)));
|
||||
// 测试 endTime 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setEndTime(null)));
|
||||
// 测试 responsible 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setResponsible(null)));
|
||||
// 测试 partake 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setPartake(null)));
|
||||
// 测试 mark 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setMark(null)));
|
||||
// 测试 urgency 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setUrgency(null)));
|
||||
// 测试 remindType 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setRemindType(null)));
|
||||
// 测试 description 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setDescription(null)));
|
||||
// 测试 annex 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setAnnex(null)));
|
||||
// 测试 createTime 不匹配
|
||||
subjectFollowManagementMapper.insert(cloneIgnoreId(dbSubjectFollowManagement, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
SubjectFollowManagementExportReqVO reqVO = new SubjectFollowManagementExportReqVO();
|
||||
reqVO.setBusinessId(null);
|
||||
reqVO.setBusinessType(null);
|
||||
reqVO.setTitle(null);
|
||||
reqVO.setIdCard(null);
|
||||
reqVO.setStartTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
reqVO.setEndTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
reqVO.setResponsible(null);
|
||||
reqVO.setPartake(null);
|
||||
reqVO.setMark(null);
|
||||
reqVO.setUrgency(null);
|
||||
reqVO.setRemindType(null);
|
||||
reqVO.setDescription(null);
|
||||
reqVO.setAnnex(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
List<SubjectFollowManagementDO> list = subjectFollowManagementService.getSubjectFollowManagementList(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, list.size());
|
||||
assertPojoEquals(dbSubjectFollowManagement, list.get(0));
|
||||
}
|
||||
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
<configuration>
|
||||
<!-- 引用 Spring Boot 的 logback 基础配置 -->
|
||||
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
|
||||
</configuration>
|
@ -1,31 +0,0 @@
|
||||
import { defHttp } from '@/utils/http/axios'
|
||||
|
||||
// 查询主体跟进管理列表
|
||||
export function getSubjectFollowManagementPage(params) {
|
||||
return defHttp.get({ url: '/xxjj/subject-follow-management/page', params })
|
||||
}
|
||||
|
||||
// 查询主体跟进管理详情
|
||||
export function getSubjectFollowManagement(id: number) {
|
||||
return defHttp.get({ url: '/xxjj/subject-follow-management/get?id=' + id })
|
||||
}
|
||||
|
||||
// 新增主体跟进管理
|
||||
export function createSubjectFollowManagement(data) {
|
||||
return defHttp.post({ url: '/xxjj/subject-follow-management/create', data })
|
||||
}
|
||||
|
||||
// 修改主体跟进管理
|
||||
export function updateSubjectFollowManagement(data) {
|
||||
return defHttp.put({ url: '/xxjj/subject-follow-management/update', data })
|
||||
}
|
||||
|
||||
// 删除主体跟进管理
|
||||
export function deleteSubjectFollowManagement(id: number) {
|
||||
return defHttp.delete({ url: '/xxjj/subject-follow-management/delete?id=' + id })
|
||||
}
|
||||
|
||||
// 导出主体跟进管理 Excel
|
||||
export function exportSubjectFollowManagement(params) {
|
||||
return defHttp.download({ url: '/xxjj/subject-follow-management/export-excel', params }, '主体跟进管理.xls')
|
||||
}
|
@ -1,235 +0,0 @@
|
||||
<script lang="ts" setup>
|
||||
import ModalAdd from './src/ModalAdd.vue'
|
||||
import ModalEdit from './src/ModalEdit.vue'
|
||||
import { ref, h } from 'vue'
|
||||
import { EditOutlined, DeleteOutlined, PlusOutlined, SearchOutlined, UndoOutlined } from '@ant-design/icons-vue';
|
||||
|
||||
const activeKey = ref('1');
|
||||
const columns: any = [
|
||||
{
|
||||
title: '分支机构名称',
|
||||
dataIndex: 'k1a',
|
||||
key: 'k1a',
|
||||
},
|
||||
{
|
||||
title: '机构类型',
|
||||
dataIndex: 'k2',
|
||||
key: 'k2',
|
||||
sorter: true,
|
||||
},
|
||||
{
|
||||
title: '关联子公司',
|
||||
dataIndex: 'k3',
|
||||
key: 'k3',
|
||||
},
|
||||
{
|
||||
title: '包含业务线',
|
||||
dataIndex: 'k4',
|
||||
key: 'k4',
|
||||
},
|
||||
{
|
||||
title: '关联员工',
|
||||
dataIndex: 'k5',
|
||||
key: 'k5',
|
||||
},
|
||||
{
|
||||
title: '管理员',
|
||||
dataIndex: 'k6',
|
||||
key: 'k6',
|
||||
},
|
||||
{
|
||||
title: '联系电话',
|
||||
dataIndex: 'k7',
|
||||
key: 'k7',
|
||||
sorter: true,
|
||||
},
|
||||
{
|
||||
title: '更新时间',
|
||||
dataIndex: 'k8',
|
||||
key: 'k8',
|
||||
sorter: true,
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
key: 'action',
|
||||
}
|
||||
]
|
||||
const dataSource: any = [
|
||||
{
|
||||
key: '1',
|
||||
k1a: '济钢城市矿产科技有限公司',
|
||||
k1b: 'JGCSKC202309030001',
|
||||
k1c: 'JGCSKC202309030001',
|
||||
k2: '总公司',
|
||||
k3: 4,
|
||||
k4: 100,
|
||||
k5: 100,
|
||||
k6: '魏杰',
|
||||
k7: '18612345678',
|
||||
k8: '2023-09-11 23:26:08',
|
||||
k9: '详情',
|
||||
},
|
||||
{
|
||||
key: '2',
|
||||
k1a: '济钢城市矿产科技有限公司',
|
||||
k1b: 'JGCSKC202309030001',
|
||||
k1c: 'JGCSKC202309030001',
|
||||
k2: '子公司',
|
||||
k3: 1,
|
||||
k4: 100,
|
||||
k5: 100,
|
||||
k6: '徐守亮',
|
||||
k7: '18612345678',
|
||||
k8: '2023-09-11 23:26:08',
|
||||
k9: '详情',
|
||||
},
|
||||
{
|
||||
key: '3',
|
||||
k1a: '日照济钢金属科技有限公司',
|
||||
k1b: 'JGCSKC202309030001',
|
||||
k1c: 'JGCSKC202309030001',
|
||||
k2: '子公司',
|
||||
k3: 1,
|
||||
k4: 50,
|
||||
k5: 200,
|
||||
k6: '高鹏',
|
||||
k7: '18612344321',
|
||||
k8: '2023-09-11 23:26:08',
|
||||
k9: '详情',
|
||||
},
|
||||
{
|
||||
key: '4',
|
||||
k1a: '济钢城市矿产科技(佛山)有限公司',
|
||||
k1b: 'JGCSKC202309030001',
|
||||
k1c: 'JGCSKC202309030001',
|
||||
k2: '子公司',
|
||||
k3: 2,
|
||||
k4: 20,
|
||||
k5: 300,
|
||||
k6: '王恒山',
|
||||
k7: '18612344321',
|
||||
k8: '2023-09-11 23:26:08',
|
||||
k9: '详情',
|
||||
},
|
||||
{
|
||||
key: '5',
|
||||
k1a: '山东济钢愿景工业科技有限公司',
|
||||
k1b: 'JGCSKC202309030001',
|
||||
k1c: 'JGCSKC202309030001',
|
||||
k2: '子公司',
|
||||
k3: 1,
|
||||
k4: 30,
|
||||
k5: 400,
|
||||
k6: '邹慧丽',
|
||||
k7: '18612344321',
|
||||
k8: '2023-09-11 23:26:08',
|
||||
k9: '详情',
|
||||
}
|
||||
];
|
||||
// 新增
|
||||
let isShowModalAdd = ref(false);
|
||||
const doShowModalAdd = (isshow: boolean) => {
|
||||
isShowModalAdd.value = isshow;
|
||||
}
|
||||
// 编辑
|
||||
let isShowModalEdit = ref(false);
|
||||
const doShowModalEdit = (isshow: boolean, record: any) => {
|
||||
console.log(record);
|
||||
isShowModalEdit.value = isshow;
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<a-row :wrap="false" class="y1-enterprise-centre-branch">
|
||||
<a-col flex="1 1 auto">
|
||||
<a-row :wrap="false" class="y1y1">
|
||||
<a-col flex="1 1 auto">
|
||||
<a-row :wrap="false">
|
||||
<a-col flex="1 1 300px" class="y1y1x1">
|
||||
<a-space>
|
||||
<a-input placeholder="部门名称" />
|
||||
<a-button type="primary" :icon="h(SearchOutlined)">查询</a-button>
|
||||
<a-button :icon="h(UndoOutlined)">重置</a-button>
|
||||
</a-space>
|
||||
</a-col>
|
||||
<a-col flex="0 0 200px" class="y1y1x2">
|
||||
<a-button type="primary" :icon="h(PlusOutlined)" @click="doShowModalAdd(true)">新建机构</a-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :wrap="false" class="y1y2">
|
||||
<a-col flex="1 1 auto">
|
||||
<a-table class="ant-table-striped" :dataSource="dataSource" :columns="columns"
|
||||
:row-class-name="(_record, index) => (index % 2 === 1 ? 'table-tr-b' : 'table-tr-a')">
|
||||
<template #bodyCell="{ column, record }">
|
||||
<template v-if="column.key === 'k1a'">
|
||||
<a-row>
|
||||
<a-col :span="5">
|
||||
<div style="text-align: center;">
|
||||
<a-image :width="40"
|
||||
src="https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png" />
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="19">
|
||||
<div>{{ record.k1a }}</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</template>
|
||||
<template v-else-if="column.key === 'k7'">
|
||||
<template v-if="record.k7 == true">
|
||||
<a-row>
|
||||
<a-col :span="6">
|
||||
<div class="dot-true"></div>
|
||||
</a-col>
|
||||
<a-col :span="18">
|
||||
<div>启用</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</template>
|
||||
<template v-else>
|
||||
<a-row>
|
||||
<a-col :span="6">
|
||||
<div class="dot-false"></div>
|
||||
</a-col>
|
||||
<a-col :span="18">
|
||||
<div>禁用</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</template>
|
||||
</template>
|
||||
<template v-else-if="column.key === 'action'">
|
||||
<a-space size="0">
|
||||
<template #split>
|
||||
<a-divider type="vertical" />
|
||||
</template>
|
||||
<!-- <a-button type="link" :icon="h(EditOutlined)" @click=doShowModalEdit(true, record)>编辑</a-button> -->
|
||||
<a-button type="link" :icon="h(DeleteOutlined)" danger>删除</a-button>
|
||||
</a-space>
|
||||
</template>
|
||||
</template>
|
||||
</a-table>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<ModalAdd :isShow="isShowModalAdd" @do-cancel="doShowModalAdd"></ModalAdd>
|
||||
<ModalEdit :isShow="isShowModalEdit" :record="record" @do-cancel="doShowModalEdit"></ModalEdit>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</template>
|
||||
<style lang="less" scoped>
|
||||
.y1-enterprise-centre-branch {
|
||||
margin: 24px;
|
||||
border-radius: 3px;
|
||||
font-size: 14px;
|
||||
background-color: #FFFFFF;
|
||||
|
||||
.y1y1 {
|
||||
margin: 24px;
|
||||
}
|
||||
|
||||
.y1y2 {
|
||||
margin: 24px;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -1,77 +0,0 @@
|
||||
|
||||
<script lang="ts" setup>
|
||||
import TransferList from './TransferList.vue'
|
||||
import { reactive } from 'vue';
|
||||
|
||||
interface FormState {
|
||||
k1: string;
|
||||
k2: string;
|
||||
k3: string;
|
||||
k4: string;
|
||||
k5: string;
|
||||
}
|
||||
|
||||
const formState = reactive<FormState>({
|
||||
k1: '',
|
||||
k2: '济钢城市矿产科技有限公司',
|
||||
k3: '',
|
||||
k4: '',
|
||||
k5: '',
|
||||
});
|
||||
|
||||
const props = defineProps({
|
||||
isShow: Boolean
|
||||
})
|
||||
const emit = defineEmits(['doCancel'])
|
||||
// 模态显示
|
||||
// const isOpen: any = ref(true);
|
||||
// 确认
|
||||
const doOk = (e: MouseEvent) => {
|
||||
console.log('ok');
|
||||
emit('doCancel', false)
|
||||
}
|
||||
// 取消
|
||||
const doCancel = (e: MouseEvent) => {
|
||||
emit('doCancel', false)
|
||||
}
|
||||
const onFinish = (values: any) => {
|
||||
console.log('Success:', values);
|
||||
};
|
||||
|
||||
const onFinishFailed = (errorInfo: any) => {
|
||||
console.log('Failed:', errorInfo);
|
||||
};
|
||||
|
||||
const onSelect = (errorInfo: any) => {
|
||||
console.log('onSelect');
|
||||
};
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<template v-if="props.isShow">
|
||||
<a-modal :open="true" title="新建机构" @ok="doOk" @cancel="doCancel">
|
||||
<a-form :model="formState" name="basic" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }" autocomplete="off"
|
||||
@finish="onFinish" @finishFailed="onFinishFailed">
|
||||
<a-form-item label="机构名称" name="k1" :rules="[{ required: true, message: '请输入机构名称!' }]">
|
||||
<a-input v-model:value="formState.k1" placeholder="输入内容" />
|
||||
</a-form-item>
|
||||
<a-form-item label="上级机构" name="k2" :rules="[]">
|
||||
<a-input v-model:value="formState.k2" disabled />
|
||||
</a-form-item>
|
||||
<a-form-item label=" 负责人员" name="k3" :rules="[{ required: true, message: '请选择负责人员!' }]">
|
||||
<a-input v-model:value="formState.k3" placeholder="选择人员" @click="onSelect" />
|
||||
</a-form-item>
|
||||
<a-form-item label=" 联系电话" name="k4" :rules="[{ required: true, message: '请输入联系电话!' }]">
|
||||
<a-input v-model:value="formState.k4" placeholder="输入内容" />
|
||||
</a-form-item>
|
||||
<a-form-item label=" 机构描述" name="k5" :rules="[]">
|
||||
<a-textarea v-model:value="formState.k5" placeholder="输入内容" :auto-size="{ minRows: 4, maxRows: 6 }" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</a-modal>
|
||||
<TransferList isShow="true"></TransferList>
|
||||
</template>
|
||||
</template>
|
||||
|
||||
<style lang="less" scoped></style>
|
@ -1,73 +0,0 @@
|
||||
|
||||
<script lang="ts" setup>
|
||||
import TransferList from './TransferList.vue'
|
||||
import { reactive } from 'vue';
|
||||
|
||||
interface FormState {
|
||||
k1: string;
|
||||
k2: string;
|
||||
k3: string;
|
||||
k4: string;
|
||||
k5: string;
|
||||
}
|
||||
|
||||
const formState = reactive<FormState>({
|
||||
k1: '',
|
||||
k2: '济钢城市矿产科技有限公司',
|
||||
k3: '',
|
||||
k4: '',
|
||||
k5: '',
|
||||
});
|
||||
|
||||
const props = defineProps({
|
||||
isShow: Boolean,
|
||||
record: Object
|
||||
})
|
||||
const emit = defineEmits(['doCancel'])
|
||||
// 模态显示
|
||||
// const isOpen: any = ref(true);
|
||||
// 确认
|
||||
const doOk = (e: MouseEvent) => {
|
||||
console.log('ok');
|
||||
emit('doCancel', [false, null])
|
||||
}
|
||||
// 取消
|
||||
const doCancel = (e: MouseEvent) => {
|
||||
emit('doCancel', [false, null])
|
||||
}
|
||||
const onFinish = (values: any) => {
|
||||
console.log('Success:', values);
|
||||
};
|
||||
|
||||
const onFinishFailed = (errorInfo: any) => {
|
||||
console.log('Failed:', errorInfo);
|
||||
};
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<template v-if="props.isShow">
|
||||
<a-modal :open="true" title="新建机构" @ok="doOk" @cancel="doCancel">
|
||||
<a-form :model="formState" name="basic" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }" autocomplete="off"
|
||||
@finish="onFinish" @finishFailed="onFinishFailed">
|
||||
<a-form-item label="机构名称" name="k1" :rules="[{ required: true, message: '请输入机构名称!' }]">
|
||||
<a-input v-model:value="formState.k1" placeholder="输入内容" />
|
||||
</a-form-item>
|
||||
<a-form-item label="上级机构" name="k2" :rules="[]">
|
||||
<a-input v-model:value="formState.k2" disabled />
|
||||
</a-form-item>
|
||||
<a-form-item label=" 负责人员" name="k3" :rules="[{ required: true, message: '请选择负责人员!' }]">
|
||||
<a-input v-model:value="formState.k3" placeholder="选择人员" />
|
||||
</a-form-item>
|
||||
<a-form-item label=" 联系电话" name="k4" :rules="[{ required: true, message: '请输入联系电话!' }]">
|
||||
<a-input v-model:value="formState.k4" placeholder="输入内容" />
|
||||
</a-form-item>
|
||||
<a-form-item label=" 机构描述" name="k5" :rules="[]">
|
||||
<a-textarea v-model:value="formState.k5" placeholder="输入内容" :auto-size="{ minRows: 4, maxRows: 6 }" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</a-modal>
|
||||
</template>
|
||||
</template>
|
||||
|
||||
<style lang="less" scoped></style>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue