From c79db68acbde1b10c7ef37b8d15f0593962ac8a2 Mon Sep 17 00:00:00 2001 From: ccongli <1441652193@qq.com> Date: Tue, 10 Oct 2023 19:12:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=90=8C=E5=9F=BA=E7=A1=80=E3=80=81?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E4=BF=A1=E6=81=AF=E4=B8=9A=E5=8A=A1=E5=BC=80?= =?UTF-8?q?=E5=8F=91v1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scm/module/xxjj/api/package-info.java | 4 + .../module/xxjj/enums/ErrorCodeConstants.java | 23 +- .../admin/contract/ContractController.java | 102 ++++++ .../admin/contract/vo/ContractBaseVO.java | 70 ++++ .../contract/vo/ContractCreateReqVO.java | 14 + .../admin/contract/vo/ContractExcelVO.java | 66 ++++ .../contract/vo/ContractExportReqVO.java | 61 ++++ .../admin/contract/vo/ContractPageReqVO.java | 63 ++++ .../admin/contract/vo/ContractRespVO.java | 19 + .../contract/vo/ContractUpdateReqVO.java | 18 + .../contractinfo/ContractInfoController.java | 102 ++++++ .../contractinfo/vo/ContractInfoBaseVO.java | 113 ++++++ .../vo/ContractInfoCreateReqVO.java | 14 + .../contractinfo/vo/ContractInfoExcelVO.java | 100 ++++++ .../vo/ContractInfoExportReqVO.java | 96 +++++ .../vo/ContractInfoPageReqVO.java | 98 +++++ .../contractinfo/vo/ContractInfoRespVO.java | 19 + .../vo/ContractInfoUpdateReqVO.java | 18 + .../convert/contract/ContractConvert.java | 34 ++ .../contractinfo/ContractInfoConvert.java | 34 ++ .../dal/dataobject/contract/ContractDO.java | 85 +++++ .../contractinfo/ContractInfoDO.java | 130 +++++++ .../dal/mysql/contract/ContractMapper.java | 58 +++ .../contractinfo/ContractInfoMapper.java | 80 +++++ .../businessline/BusinessLineServiceImpl.java | 1 - .../service/contract/ContractService.java | 70 ++++ .../service/contract/ContractServiceImpl.java | 82 +++++ .../contractinfo/ContractInfoService.java | 70 ++++ .../contractinfo/ContractInfoServiceImpl.java | 82 +++++ .../service/material/MaterialServiceImpl.java | 1 - .../MaterialCategoryServiceImpl.java | 1 - .../materialtype/MaterialTypeServiceImpl.java | 2 +- .../mapper/contract/ContractMapper.xml | 12 + .../contractinfo/ContractInfoMapper.xml | 12 + .../BrandLibraryServiceImplTest.java | 6 - .../BusinessLineServiceImplTest.java | 6 - .../contract/ContractServiceImplTest.java | 249 +++++++++++++ .../ContractInfoServiceImplTest.java | 337 ++++++++++++++++++ .../customer/CustomerServiceImplTest.java | 6 - .../EnterpriseContractServiceImplTest.java | 6 - .../material/MaterialServiceImplTest.java | 2 - .../MaterialBrandServiceImplTest.java | 2 - .../MaterialIndustryServiceImplTest.java | 2 - .../MaterialQualityServiceImplTest.java | 6 - .../MaterialTypeServiceImplTest.java | 2 - .../ProductionProcessesServiceImplTest.java | 6 - .../QualityInspectionServiceImplTest.java | 6 - .../SubjectBasicServiceImplTest.java | 6 - .../supplier/SupplierServiceImplTest.java | 6 - .../UnitLibraryServiceImplTest.java | 6 - .../warehouse/WarehouseServiceImplTest.java | 6 - .../WarehouseAreaServiceImplTest.java | 6 - .../WarehouseDayWarningServiceImplTest.java | 6 - .../WarehouseDetailServiceImplTest.java | 6 - .../WarehouseOutServiceImplTest.java | 6 - .../WarehouseReceiptServiceImplTest.java | 6 - .../WarehouseWarningServiceImplTest.java | 7 - .../workorder/WorkOrderServiceImplTest.java | 6 - .../src/main/resources/application-dev.yaml | 2 +- .../src/main/resources/application.yaml | 2 +- 60 files changed, 2337 insertions(+), 124 deletions(-) create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-api/src/main/java/com/yunxi/scm/module/xxjj/api/package-info.java rename yunxi-module-xxjj/{yunxi-module-xxjj-biz => yunxi-module-xxjj-api}/src/main/java/com/yunxi/scm/module/xxjj/enums/ErrorCodeConstants.java (90%) create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/ContractController.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractBaseVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractCreateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractExcelVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractExportReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractPageReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractRespVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractUpdateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/ContractInfoController.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoBaseVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoCreateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoExcelVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoExportReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoPageReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoRespVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoUpdateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/contract/ContractConvert.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/contractinfo/ContractInfoConvert.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/contract/ContractDO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/contractinfo/ContractInfoDO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/contract/ContractMapper.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/contractinfo/ContractInfoMapper.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/contract/ContractService.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/contract/ContractServiceImpl.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/contractinfo/ContractInfoService.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/contractinfo/ContractInfoServiceImpl.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/contract/ContractMapper.xml create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/contractinfo/ContractInfoMapper.xml create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/contract/ContractServiceImplTest.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/contractinfo/ContractInfoServiceImplTest.java diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-api/src/main/java/com/yunxi/scm/module/xxjj/api/package-info.java b/yunxi-module-xxjj/yunxi-module-xxjj-api/src/main/java/com/yunxi/scm/module/xxjj/api/package-info.java new file mode 100644 index 0000000..f49b603 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-api/src/main/java/com/yunxi/scm/module/xxjj/api/package-info.java @@ -0,0 +1,4 @@ +/** + * System API 包,定义暴露给其它模块的 API + */ +package com.yunxi.scm.module.xxjj.api; diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/enums/ErrorCodeConstants.java b/yunxi-module-xxjj/yunxi-module-xxjj-api/src/main/java/com/yunxi/scm/module/xxjj/enums/ErrorCodeConstants.java similarity index 90% rename from yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/enums/ErrorCodeConstants.java rename to yunxi-module-xxjj/yunxi-module-xxjj-api/src/main/java/com/yunxi/scm/module/xxjj/enums/ErrorCodeConstants.java index 624b9ce..26e4b70 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/enums/ErrorCodeConstants.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-api/src/main/java/com/yunxi/scm/module/xxjj/enums/ErrorCodeConstants.java @@ -2,7 +2,13 @@ package com.yunxi.scm.module.xxjj.enums; import com.yunxi.scm.framework.common.exception.ErrorCode; +/** + * 业务错误码枚举类 + * + * 系统,使用 1-003-000-000 段 + */ public interface ErrorCodeConstants { + // ========== 物料行业 TODO 补充编号 ========== ErrorCode MATERIAL_INDUSTRY_NOT_EXISTS = new ErrorCode(1002025002, "物料行业不存在"); // ========== 物料类型 TODO 补充编号 ========== @@ -19,7 +25,7 @@ public interface ErrorCodeConstants { ErrorCode CUSTOMER_NOT_EXISTS = new ErrorCode(1002025008, "客户信息不存在"); // ========== 工单 TODO 补充编号 ========== ErrorCode WORK_ORDER_NOT_EXISTS = new ErrorCode(1002025009, "工单不存在"); -// ========== 供应商 TODO 补充编号 ========== + // ========== 供应商 TODO 补充编号 ========== ErrorCode SUPPLIER_NOT_EXISTS = new ErrorCode(1002026010, "供应商不存在"); // ========== 业务线 TODO 补充编号 ========== ErrorCode BUSINESS_LINE_NOT_EXISTS = new ErrorCode(1002025011, "业务线不存在"); @@ -69,4 +75,19 @@ public interface ErrorCodeConstants { ErrorCode ENTERPRISE_CONTRACT_NOT_EXISTS = new ErrorCode(1002004016, "企业合约不存在"); ErrorCode SUBJECT_BASIC_NOT_EXISTS = new ErrorCode(1002004017, "基础业务信息表(客户,供应商,服务商主体)不存在"); + + + /** + * 合同 使用 1-005-000-000 段 + */ + + // ========== 合同信息 500100001 ========== + ErrorCode CONTRACT_NOT_EXISTS = new ErrorCode(1005000001, "合同信息不存在"); + + + // ========== 合同详情信息 500100001 ========== + ErrorCode CONTRACT_INFO_NOT_EXISTS = new ErrorCode(1005000002, "合同详情信息不存在"); + + + } diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/ContractController.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/ContractController.java new file mode 100644 index 0000000..ec6aeec --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/ContractController.java @@ -0,0 +1,102 @@ +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 createContract(@Valid @RequestBody ContractCreateReqVO createReqVO) { + return success(contractService.createContract(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新合同") + @PreAuthorize("@ss.hasPermission('xxjj:contract:update')") + public CommonResult 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 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 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> getContractList(@RequestParam("ids") Collection ids) { + List list = contractService.getContractList(ids); + return success(ContractConvert.INSTANCE.convertList(list)); + } + + @GetMapping("/page") + @Operation(summary = "获得合同分页") + @PreAuthorize("@ss.hasPermission('xxjj:contract:query')") + public CommonResult> getContractPage(@Valid ContractPageReqVO pageVO) { + PageResult 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 list = contractService.getContractList(exportReqVO); + // 导出 Excel + List datas = ContractConvert.INSTANCE.convertList02(list); + ExcelUtils.write(response, "合同.xls", "数据", ContractExcelVO.class, datas); + } + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractBaseVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractBaseVO.java new file mode 100644 index 0000000..62839c5 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractBaseVO.java @@ -0,0 +1,70 @@ +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 javax.validation.constraints.*; +import org.springframework.format.annotation.DateTimeFormat; + +import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +/** + * 合同 Base VO,提供给添加、修改、详细的子 VO 使用 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + */ +@Data +public class ContractBaseVO { + + @Schema(description = "合同状态(0:待提交 1:待审核 2:审核中 3:待生效 4:进行中 5:已完成 6:已取消 7:已关闭)", example = "1") + private String contractStatus; + + @Schema(description = "合同类型(0:采购合同 1:销售合同 2:租凭合同 3:仓储合同 4:运输合同 5:施工合同 6:服务合同 7:其他合同)", example = "2") + private String contractType; + + @Schema(description = "合同模板", example = "6806") + private Long contractTemplateId; + + @Schema(description = "合同编号", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "合同编号不能为空") + private Long contractNumber; + + @Schema(description = "合同名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @NotNull(message = "合同名称不能为空") + private String contractName; + + @Schema(description = "供应商/客户名称id") + private Long subject; + + @Schema(description = "部门id", example = "10183") + private Long deptId; + + @Schema(description = "对方合同编号") + private String contractNo; + + @Schema(description = "签订地点", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "签订地点不能为空") + private String contractSigned; + + @Schema(description = "签订时间", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "签订时间不能为空") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime contractSignedTime; + + @Schema(description = "关联业务线", requiredMode = Schema.RequiredMode.REQUIRED, example = "32066") + @NotNull(message = "关联业务线不能为空") + private Long businessId; + + @Schema(description = "业务类型(0:钢材类 1:设备类 2:废钢类 3:低值易耗品 4:合金类 5:矿产类)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotNull(message = "业务类型(0:钢材类 1:设备类 2:废钢类 3:低值易耗品 4:合金类 5:矿产类)不能为空") + private String businessType; + + @Schema(description = "申报时间", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "申报时间不能为空") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime declarationTime; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractCreateReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractCreateReqVO.java new file mode 100644 index 0000000..c9a43d0 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractCreateReqVO.java @@ -0,0 +1,14 @@ +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 { + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractExcelVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractExcelVO.java new file mode 100644 index 0000000..90c85d1 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractExcelVO.java @@ -0,0 +1,66 @@ +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; + +/** + * 合同 Excel VO + * + * @author 长江云息 + */ +@Data +public class ContractExcelVO { + + @ExcelProperty("编号") + private Long id; + + @ExcelProperty("合同状态(0:待提交 1:待审核 2:审核中 3:待生效 4:进行中 5:已完成 6:已取消 7:已关闭)") + private String contractStatus; + + @ExcelProperty("合同类型(0:采购合同 1:销售合同 2:租凭合同 3:仓储合同 4:运输合同 5:施工合同 6:服务合同 7:其他合同)") + 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("业务类型(0:钢材类 1:设备类 2:废钢类 3:低值易耗品 4:合金类 5:矿产类)") + private String businessType; + + @ExcelProperty("申报时间") + private LocalDateTime declarationTime; + + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractExportReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractExportReqVO.java new file mode 100644 index 0000000..1cbd8f4 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractExportReqVO.java @@ -0,0 +1,61 @@ +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 java.time.LocalDateTime; +import org.springframework.format.annotation.DateTimeFormat; + +import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 合同 Excel 导出 Request VO,参数和 ContractPageReqVO 是一致的") +@Data +public class ContractExportReqVO { + + @Schema(description = "合同状态(0:待提交 1:待审核 2:审核中 3:待生效 4:进行中 5:已完成 6:已取消 7:已关闭)", example = "1") + private String contractStatus; + + @Schema(description = "合同类型(0:采购合同 1:销售合同 2:租凭合同 3:仓储合同 4:运输合同 5:施工合同 6:服务合同 7:其他合同)", 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 = "业务类型(0:钢材类 1:设备类 2:废钢类 3:低值易耗品 4:合金类 5:矿产类)", 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; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractPageReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractPageReqVO.java new file mode 100644 index 0000000..e478685 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractPageReqVO.java @@ -0,0 +1,63 @@ +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 = "合同状态(0:待提交 1:待审核 2:审核中 3:待生效 4:进行中 5:已完成 6:已取消 7:已关闭)", example = "1") + private String contractStatus; + + @Schema(description = "合同类型(0:采购合同 1:销售合同 2:租凭合同 3:仓储合同 4:运输合同 5:施工合同 6:服务合同 7:其他合同)", 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 = "业务类型(0:钢材类 1:设备类 2:废钢类 3:低值易耗品 4:合金类 5:矿产类)", 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; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractRespVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractRespVO.java new file mode 100644 index 0000000..1a9c3a5 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractRespVO.java @@ -0,0 +1,19 @@ +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; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractUpdateReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractUpdateReqVO.java new file mode 100644 index 0000000..93d8ed4 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contract/vo/ContractUpdateReqVO.java @@ -0,0 +1,18 @@ +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; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/ContractInfoController.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/ContractInfoController.java new file mode 100644 index 0000000..f9f1700 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/ContractInfoController.java @@ -0,0 +1,102 @@ +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 createContractInfo(@Valid @RequestBody ContractInfoCreateReqVO createReqVO) { + return success(contractInfoService.createContractInfo(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新合同信息") + @PreAuthorize("@ss.hasPermission('xxjj:contract-info:update')") + public CommonResult 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 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 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> getContractInfoList(@RequestParam("ids") Collection ids) { + List list = contractInfoService.getContractInfoList(ids); + return success(ContractInfoConvert.INSTANCE.convertList(list)); + } + + @GetMapping("/page") + @Operation(summary = "获得合同信息分页") + @PreAuthorize("@ss.hasPermission('xxjj:contract-info:query')") + public CommonResult> getContractInfoPage(@Valid ContractInfoPageReqVO pageVO) { + PageResult 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 list = contractInfoService.getContractInfoList(exportReqVO); + // 导出 Excel + List datas = ContractInfoConvert.INSTANCE.convertList02(list); + ExcelUtils.write(response, "合同信息.xls", "数据", ContractInfoExcelVO.class, datas); + } + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoBaseVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoBaseVO.java new file mode 100644 index 0000000..2383bc3 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoBaseVO.java @@ -0,0 +1,113 @@ +package com.yunxi.scm.module.xxjj.controller.admin.contractinfo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import javax.validation.constraints.*; +import org.springframework.format.annotation.DateTimeFormat; + +import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +/** + * 合同信息 Base VO,提供给添加、修改、详细的子 VO 使用 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + */ +@Data +public class ContractInfoBaseVO { + + @Schema(description = "关联合同id", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "关联合同id不能为空") + private Long contractInfo; + + @Schema(description = "币种(0:人民币 1:港币 2:美元 3:欧元 4:加币 5:日元 6:台币)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "币种(0:人民币 1:港币 2:美元 3:欧元 4:加币 5:日元 6:台币)不能为空") + private String currency; + + @Schema(description = "采购模式(0:以销定采 1:以采定销)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "采购模式(0:以销定采 1:以采定销)不能为空") + private String procurementModel; + + @Schema(description = "定价模式(0:锁价模式 1:后结算模式)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "定价模式(0:锁价模式 1:后结算模式)不能为空") + private String pricingModel; + + @Schema(description = "合同期限", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "合同期限不能为空") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime contractPeriodTime; + + @Schema(description = "交货时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime deliveryTime; + + @Schema(description = "交货方式(0:快递上门 1:送货上门 2:上门提货)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "交货方式(0:快递上门 1:送货上门 2:上门提货)不能为空") + private String deliveryModel; + + @Schema(description = "交货地点", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "交货地点不能为空") + private String deliveryLocation; + + @Schema(description = "配送方式(0:仓配 1:直送 2:直通 3:无)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "配送方式(0:仓配 1:直送 2:直通 3:无)不能为空") + private String deliveryMethod; + + @Schema(description = "运输方式(0:公路 1:铁路 2:轮船 3:空运 4:无)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "运输方式(0:公路 1:铁路 2:轮船 3:空运 4:无)不能为空") + private String modeTransport; + + @Schema(description = "费用承担主体(0:甲方 1:乙方)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "费用承担主体(0:甲方 1:乙方)不能为空") + private String costBearingMian; + + @Schema(description = "合计金额(人民币)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "合计金额(人民币)不能为空") + private BigDecimal totalAmount; + + @Schema(description = "大写金额(人民币)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "大写金额(人民币)不能为空") + private String amountCapitalization; + + @Schema(description = "合同要求") + private String contractRequirement; + + @Schema(description = "备注", example = "你说的对") + private String remark; + + @Schema(description = "合同附件") + private String contractAppendices; + + @Schema(description = "附属文件") + private String ancillaryDocuments; + + @Schema(description = "合同标签") + private String contractLabel; + + @Schema(description = "长协合同", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "长协合同不能为空") + private String contractAgreement; + + @Schema(description = "安全协议", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "安全协议不能为空") + private String securityProtocol; + + @Schema(description = "扩展字段", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "扩展字段不能为空") + private String extendedField; + + @Schema(description = "是否招投标(0:是 1:否)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "是否招投标(0:是 1:否)不能为空") + private String bidding; + + @Schema(description = "备注2") + private String remark2; + + @Schema(description = "备注3") + private String remark3; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoCreateReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoCreateReqVO.java new file mode 100644 index 0000000..a6eeb9d --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoCreateReqVO.java @@ -0,0 +1,14 @@ +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 { + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoExcelVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoExcelVO.java new file mode 100644 index 0000000..8607b08 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoExcelVO.java @@ -0,0 +1,100 @@ +package com.yunxi.scm.module.xxjj.controller.admin.contractinfo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.LocalDateTime; + +import com.alibaba.excel.annotation.ExcelProperty; + +/** + * 合同信息 Excel VO + * + * @author 长江云息 + */ +@Data +public class ContractInfoExcelVO { + + @ExcelProperty("编号") + private Long id; + + @ExcelProperty("关联合同id") + private Long contractInfo; + + @ExcelProperty("币种(0:人民币 1:港币 2:美元 3:欧元 4:加币 5:日元 6:台币)") + private String currency; + + @ExcelProperty("采购模式(0:以销定采 1:以采定销)") + private String procurementModel; + + @ExcelProperty("定价模式(0:锁价模式 1:后结算模式)") + private String pricingModel; + + @ExcelProperty("合同期限") + private LocalDateTime contractPeriodTime; + + @ExcelProperty("交货时间") + private LocalDateTime deliveryTime; + + @ExcelProperty("交货方式(0:快递上门 1:送货上门 2:上门提货)") + private String deliveryModel; + + @ExcelProperty("交货地点") + private String deliveryLocation; + + @ExcelProperty("配送方式(0:仓配 1:直送 2:直通 3:无)") + private String deliveryMethod; + + @ExcelProperty("运输方式(0:公路 1:铁路 2:轮船 3:空运 4:无)") + private String modeTransport; + + @ExcelProperty("费用承担主体(0:甲方 1:乙方)") + private String costBearingMian; + + @ExcelProperty("合计金额(人民币)") + private BigDecimal totalAmount; + + @ExcelProperty("大写金额(人民币)") + private String amountCapitalization; + + @ExcelProperty("合同要求") + private String contractRequirement; + + @ExcelProperty("备注") + private String remark; + + @ExcelProperty("合同附件") + private String contractAppendices; + + @ExcelProperty("附属文件") + private String ancillaryDocuments; + + @ExcelProperty("合同标签") + private String contractLabel; + + @ExcelProperty("长协合同") + private String contractAgreement; + + @ExcelProperty("安全协议") + private String securityProtocol; + + @ExcelProperty("扩展字段") + private String extendedField; + + @ExcelProperty("是否招投标(0:是 1:否)") + private String bidding; + + @ExcelProperty("备注2") + private String remark2; + + @ExcelProperty("备注3") + private String remark3; + + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoExportReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoExportReqVO.java new file mode 100644 index 0000000..cf09180 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoExportReqVO.java @@ -0,0 +1,96 @@ +package com.yunxi.scm.module.xxjj.controller.admin.contractinfo.vo; + +import lombok.*; + +import java.math.BigDecimal; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.yunxi.scm.framework.common.pojo.PageParam; +import java.time.LocalDateTime; +import org.springframework.format.annotation.DateTimeFormat; + +import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 合同信息 Excel 导出 Request VO,参数和 ContractInfoPageReqVO 是一致的") +@Data +public class ContractInfoExportReqVO { + + @Schema(description = "关联合同id") + private Long contractInfo; + + @Schema(description = "币种(0:人民币 1:港币 2:美元 3:欧元 4:加币 5:日元 6:台币)") + private String currency; + + @Schema(description = "采购模式(0:以销定采 1:以采定销)") + private String procurementModel; + + @Schema(description = "定价模式(0:锁价模式 1:后结算模式)") + private String pricingModel; + + @Schema(description = "合同期限") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] contractPeriodTime; + + @Schema(description = "交货时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] deliveryTime; + + @Schema(description = "交货方式(0:快递上门 1:送货上门 2:上门提货)") + private String deliveryModel; + + @Schema(description = "交货地点") + private String deliveryLocation; + + @Schema(description = "配送方式(0:仓配 1:直送 2:直通 3:无)") + private String deliveryMethod; + + @Schema(description = "运输方式(0:公路 1:铁路 2:轮船 3:空运 4:无)") + private String modeTransport; + + @Schema(description = "费用承担主体(0:甲方 1:乙方)") + private String costBearingMian; + + @Schema(description = "合计金额(人民币)") + private BigDecimal totalAmount; + + @Schema(description = "大写金额(人民币)") + private String amountCapitalization; + + @Schema(description = "合同要求") + private String contractRequirement; + + @Schema(description = "备注", example = "你说的对") + private String remark; + + @Schema(description = "合同附件") + private String contractAppendices; + + @Schema(description = "附属文件") + private String ancillaryDocuments; + + @Schema(description = "合同标签") + private String contractLabel; + + @Schema(description = "长协合同") + private String contractAgreement; + + @Schema(description = "安全协议") + private String securityProtocol; + + @Schema(description = "扩展字段") + private String extendedField; + + @Schema(description = "是否招投标(0:是 1:否)") + private String bidding; + + @Schema(description = "备注2") + private String remark2; + + @Schema(description = "备注3") + private String remark3; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoPageReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoPageReqVO.java new file mode 100644 index 0000000..034c214 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoPageReqVO.java @@ -0,0 +1,98 @@ +package com.yunxi.scm.module.xxjj.controller.admin.contractinfo.vo; + +import lombok.*; + +import java.math.BigDecimal; +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 ContractInfoPageReqVO extends PageParam { + + @Schema(description = "关联合同id") + private Long contractInfo; + + @Schema(description = "币种(0:人民币 1:港币 2:美元 3:欧元 4:加币 5:日元 6:台币)") + private String currency; + + @Schema(description = "采购模式(0:以销定采 1:以采定销)") + private String procurementModel; + + @Schema(description = "定价模式(0:锁价模式 1:后结算模式)") + private String pricingModel; + + @Schema(description = "合同期限") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] contractPeriodTime; + + @Schema(description = "交货时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] deliveryTime; + + @Schema(description = "交货方式(0:快递上门 1:送货上门 2:上门提货)") + private String deliveryModel; + + @Schema(description = "交货地点") + private String deliveryLocation; + + @Schema(description = "配送方式(0:仓配 1:直送 2:直通 3:无)") + private String deliveryMethod; + + @Schema(description = "运输方式(0:公路 1:铁路 2:轮船 3:空运 4:无)") + private String modeTransport; + + @Schema(description = "费用承担主体(0:甲方 1:乙方)") + private String costBearingMian; + + @Schema(description = "合计金额(人民币)") + private BigDecimal totalAmount; + + @Schema(description = "大写金额(人民币)") + private String amountCapitalization; + + @Schema(description = "合同要求") + private String contractRequirement; + + @Schema(description = "备注", example = "你说的对") + private String remark; + + @Schema(description = "合同附件") + private String contractAppendices; + + @Schema(description = "附属文件") + private String ancillaryDocuments; + + @Schema(description = "合同标签") + private String contractLabel; + + @Schema(description = "长协合同") + private String contractAgreement; + + @Schema(description = "安全协议") + private String securityProtocol; + + @Schema(description = "扩展字段") + private String extendedField; + + @Schema(description = "是否招投标(0:是 1:否)") + private String bidding; + + @Schema(description = "备注2") + private String remark2; + + @Schema(description = "备注3") + private String remark3; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoRespVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoRespVO.java new file mode 100644 index 0000000..a5a51c5 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoRespVO.java @@ -0,0 +1,19 @@ +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; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoUpdateReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoUpdateReqVO.java new file mode 100644 index 0000000..6005cd6 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/contractinfo/vo/ContractInfoUpdateReqVO.java @@ -0,0 +1,18 @@ +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; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/contract/ContractConvert.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/contract/ContractConvert.java new file mode 100644 index 0000000..fad9dbc --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/contract/ContractConvert.java @@ -0,0 +1,34 @@ +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 convertList(List list); + + PageResult convertPage(PageResult page); + + List convertList02(List list); + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/contractinfo/ContractInfoConvert.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/contractinfo/ContractInfoConvert.java new file mode 100644 index 0000000..ddc6199 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/contractinfo/ContractInfoConvert.java @@ -0,0 +1,34 @@ +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 convertList(List list); + + PageResult convertPage(PageResult page); + + List convertList02(List list); + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/contract/ContractDO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/contract/ContractDO.java new file mode 100644 index 0000000..1381f7d --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/contract/ContractDO.java @@ -0,0 +1,85 @@ +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; + /** + * 合同状态(0:待提交 1:待审核 2:审核中 3:待生效 4:进行中 5:已完成 6:已取消 7:已关闭) + */ + private String contractStatus; + /** + * 合同类型(0:采购合同 1:销售合同 2:租凭合同 3:仓储合同 4:运输合同 5:施工合同 6:服务合同 7:其他合同) + */ + 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; + /** + * 业务类型(0:钢材类 1:设备类 2:废钢类 3:低值易耗品 4:合金类 5:矿产类) + */ + private String businessType; + /** + * 申报时间 + */ + private LocalDateTime declarationTime; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/contractinfo/ContractInfoDO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/contractinfo/ContractInfoDO.java new file mode 100644 index 0000000..13eb81a --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/contractinfo/ContractInfoDO.java @@ -0,0 +1,130 @@ +package com.yunxi.scm.module.xxjj.dal.dataobject.contractinfo; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import java.math.BigDecimal; +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_info") +@KeySequence("xxjj_contract_info_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ContractInfoDO extends BaseDO { + + /** + * 编号 + */ + @TableId + private Long id; + /** + * 关联合同id + */ + private Long contractInfo; + /** + * 币种(0:人民币 1:港币 2:美元 3:欧元 4:加币 5:日元 6:台币) + */ + private String currency; + /** + * 采购模式(0:以销定采 1:以采定销) + */ + private String procurementModel; + /** + * 定价模式(0:锁价模式 1:后结算模式) + */ + private String pricingModel; + /** + * 合同期限 + */ + private LocalDateTime contractPeriodTime; + /** + * 交货时间 + */ + private LocalDateTime deliveryTime; + /** + * 交货方式(0:快递上门 1:送货上门 2:上门提货) + */ + private String deliveryModel; + /** + * 交货地点 + */ + private String deliveryLocation; + /** + * 配送方式(0:仓配 1:直送 2:直通 3:无) + */ + private String deliveryMethod; + /** + * 运输方式(0:公路 1:铁路 2:轮船 3:空运 4:无) + */ + private String modeTransport; + /** + * 费用承担主体(0:甲方 1:乙方) + */ + private String costBearingMian; + /** + * 合计金额(人民币) + */ + private BigDecimal totalAmount; + /** + * 大写金额(人民币) + */ + private String amountCapitalization; + /** + * 合同要求 + */ + private String contractRequirement; + /** + * 备注 + */ + private String remark; + /** + * 合同附件 + */ + private String contractAppendices; + /** + * 附属文件 + */ + private String ancillaryDocuments; + /** + * 合同标签 + */ + private String contractLabel; + /** + * 长协合同 + */ + private String contractAgreement; + /** + * 安全协议 + */ + private String securityProtocol; + /** + * 扩展字段 + */ + private String extendedField; + /** + * 是否招投标(0:是 1:否) + */ + private String bidding; + /** + * 备注2 + */ + private String remark2; + /** + * 备注3 + */ + private String remark3; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/contract/ContractMapper.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/contract/ContractMapper.java new file mode 100644 index 0000000..a828f12 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/contract/ContractMapper.java @@ -0,0 +1,58 @@ +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 { + + default PageResult selectPage(ContractPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .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 selectList(ContractExportReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .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)); + } + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/contractinfo/ContractInfoMapper.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/contractinfo/ContractInfoMapper.java new file mode 100644 index 0000000..11c5a39 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/contractinfo/ContractInfoMapper.java @@ -0,0 +1,80 @@ +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 { + + default PageResult selectPage(ContractInfoPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .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 selectList(ContractInfoExportReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .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)); + } + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/businessline/BusinessLineServiceImpl.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/businessline/BusinessLineServiceImpl.java index 32d6517..13a1c6a 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/businessline/BusinessLineServiceImpl.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/businessline/BusinessLineServiceImpl.java @@ -1,6 +1,5 @@ package com.yunxi.scm.module.xxjj.service.businessline; -import com.yunxi.scm.module.xxjj.dal.dataobject.customer.CustomerDO; import com.yunxi.scm.module.xxjj.dal.dataobject.warehouse.WarehouseDO; import com.yunxi.scm.module.xxjj.dal.mysql.customer.CustomerMapper; import com.yunxi.scm.module.xxjj.dal.mysql.warehouse.WarehouseMapper; diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/contract/ContractService.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/contract/ContractService.java new file mode 100644 index 0000000..6eca2ee --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/contract/ContractService.java @@ -0,0 +1,70 @@ +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 getContractList(Collection ids); + + /** + * 获得合同分页 + * + * @param pageReqVO 分页查询 + * @return 合同分页 + */ + PageResult getContractPage(ContractPageReqVO pageReqVO); + + /** + * 获得合同列表, 用于 Excel 导出 + * + * @param exportReqVO 查询条件 + * @return 合同列表 + */ + List getContractList(ContractExportReqVO exportReqVO); + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/contract/ContractServiceImpl.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/contract/ContractServiceImpl.java new file mode 100644 index 0000000..b85b170 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/contract/ContractServiceImpl.java @@ -0,0 +1,82 @@ +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 getContractList(Collection ids) { + return contractMapper.selectBatchIds(ids); + } + + @Override + public PageResult getContractPage(ContractPageReqVO pageReqVO) { + return contractMapper.selectPage(pageReqVO); + } + + @Override + public List getContractList(ContractExportReqVO exportReqVO) { + return contractMapper.selectList(exportReqVO); + } + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/contractinfo/ContractInfoService.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/contractinfo/ContractInfoService.java new file mode 100644 index 0000000..1cb5ad4 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/contractinfo/ContractInfoService.java @@ -0,0 +1,70 @@ +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 getContractInfoList(Collection ids); + + /** + * 获得合同信息分页 + * + * @param pageReqVO 分页查询 + * @return 合同信息分页 + */ + PageResult getContractInfoPage(ContractInfoPageReqVO pageReqVO); + + /** + * 获得合同信息列表, 用于 Excel 导出 + * + * @param exportReqVO 查询条件 + * @return 合同信息列表 + */ + List getContractInfoList(ContractInfoExportReqVO exportReqVO); + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/contractinfo/ContractInfoServiceImpl.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/contractinfo/ContractInfoServiceImpl.java new file mode 100644 index 0000000..9f11913 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/contractinfo/ContractInfoServiceImpl.java @@ -0,0 +1,82 @@ +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 getContractInfoList(Collection ids) { + return contractInfoMapper.selectBatchIds(ids); + } + + @Override + public PageResult getContractInfoPage(ContractInfoPageReqVO pageReqVO) { + return contractInfoMapper.selectPage(pageReqVO); + } + + @Override + public List getContractInfoList(ContractInfoExportReqVO exportReqVO) { + return contractInfoMapper.selectList(exportReqVO); + } + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/material/MaterialServiceImpl.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/material/MaterialServiceImpl.java index 687ba96..eee0511 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/material/MaterialServiceImpl.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/material/MaterialServiceImpl.java @@ -13,7 +13,6 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; -import java.math.BigDecimal; import java.util.*; import com.yunxi.scm.module.xxjj.dal.dataobject.material.MaterialDO; import com.yunxi.scm.module.xxjj.convert.material.MaterialConvert; diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/materialcategory/MaterialCategoryServiceImpl.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/materialcategory/MaterialCategoryServiceImpl.java index d0fac37..111a274 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/materialcategory/MaterialCategoryServiceImpl.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/materialcategory/MaterialCategoryServiceImpl.java @@ -1,6 +1,5 @@ package com.yunxi.scm.module.xxjj.service.materialcategory; -import com.yunxi.scm.framework.common.enums.CommonStatusEnum; import com.yunxi.scm.module.xxjj.controller.admin.materialcategory.vo.MaterialCategoryCreateReqVO; import com.yunxi.scm.module.xxjj.controller.admin.materialcategory.vo.MaterialCategoryListReqVO; import com.yunxi.scm.module.xxjj.controller.admin.materialcategory.vo.MaterialCategoryUpdateReqVO; diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/materialtype/MaterialTypeServiceImpl.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/materialtype/MaterialTypeServiceImpl.java index 404366b..4d65b8a 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/materialtype/MaterialTypeServiceImpl.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/materialtype/MaterialTypeServiceImpl.java @@ -9,7 +9,7 @@ import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; import java.util.*; -import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.*; + import com.yunxi.scm.module.xxjj.dal.dataobject.materialtype.MaterialTypeDO; import com.yunxi.scm.framework.common.pojo.PageResult; diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/contract/ContractMapper.xml b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/contract/ContractMapper.xml new file mode 100644 index 0000000..a4d7008 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/contract/ContractMapper.xml @@ -0,0 +1,12 @@ + + + + + + + diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/contractinfo/ContractInfoMapper.xml b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/contractinfo/ContractInfoMapper.xml new file mode 100644 index 0000000..425aec3 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/contractinfo/ContractInfoMapper.xml @@ -0,0 +1,12 @@ + + + + + + + diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/brandlibrary/BrandLibraryServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/brandlibrary/BrandLibraryServiceImplTest.java index 0a6cc90..0888011 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/brandlibrary/BrandLibraryServiceImplTest.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/brandlibrary/BrandLibraryServiceImplTest.java @@ -2,7 +2,6 @@ package com.yunxi.scm.module.xxjj.service.brandlibrary; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; import javax.annotation.Resource; @@ -13,20 +12,15 @@ import com.yunxi.scm.module.xxjj.dal.dataobject.brandlibrary.BrandLibraryDO; import com.yunxi.scm.module.xxjj.dal.mysql.brandlibrary.BrandLibraryMapper; 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 BrandLibraryServiceImpl} 的单元测试类 diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/businessline/BusinessLineServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/businessline/BusinessLineServiceImplTest.java index b455db9..7eedf40 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/businessline/BusinessLineServiceImplTest.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/businessline/BusinessLineServiceImplTest.java @@ -2,7 +2,6 @@ package com.yunxi.scm.module.xxjj.service.businessline; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; import javax.annotation.Resource; @@ -13,20 +12,15 @@ import com.yunxi.scm.module.xxjj.dal.dataobject.businessline.BusinessLineDO; import com.yunxi.scm.module.xxjj.dal.mysql.businessline.BusinessLineMapper; 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 BusinessLineServiceImpl} 的单元测试类 diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/contract/ContractServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/contract/ContractServiceImplTest.java new file mode 100644 index 0000000..914a578 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/contract/ContractServiceImplTest.java @@ -0,0 +1,249 @@ +package com.yunxi.scm.module.xxjj.service.contract; + +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.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 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 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 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 list = contractService.getContractList(reqVO); + // 断言 + assertEquals(1, list.size()); + assertPojoEquals(dbContract, list.get(0)); + } + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/contractinfo/ContractInfoServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/contractinfo/ContractInfoServiceImplTest.java new file mode 100644 index 0000000..451fec6 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/contractinfo/ContractInfoServiceImplTest.java @@ -0,0 +1,337 @@ +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 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 list = contractInfoService.getContractInfoList(reqVO); + // 断言 + assertEquals(1, list.size()); + assertPojoEquals(dbContractInfo, list.get(0)); + } + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/customer/CustomerServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/customer/CustomerServiceImplTest.java index a4b04af..e09812d 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/customer/CustomerServiceImplTest.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/customer/CustomerServiceImplTest.java @@ -2,7 +2,6 @@ package com.yunxi.scm.module.xxjj.service.customer; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; import javax.annotation.Resource; @@ -13,20 +12,15 @@ import com.yunxi.scm.module.xxjj.dal.dataobject.customer.CustomerDO; import com.yunxi.scm.module.xxjj.dal.mysql.customer.CustomerMapper; 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 CustomerServiceImpl} 的单元测试类 diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/enterprisecontract/EnterpriseContractServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/enterprisecontract/EnterpriseContractServiceImplTest.java index 9af0d72..825b2d5 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/enterprisecontract/EnterpriseContractServiceImplTest.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/enterprisecontract/EnterpriseContractServiceImplTest.java @@ -2,7 +2,6 @@ package com.yunxi.scm.module.xxjj.service.enterprisecontract; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; import javax.annotation.Resource; @@ -13,20 +12,15 @@ import com.yunxi.scm.module.xxjj.dal.dataobject.enterprisecontract.EnterpriseCon import com.yunxi.scm.module.xxjj.dal.mysql.enterprisecontract.EnterpriseContractMapper; 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 EnterpriseContractServiceImpl} 的单元测试类 diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/material/MaterialServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/material/MaterialServiceImplTest.java index 49a5870..22a8ffe 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/material/MaterialServiceImplTest.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/material/MaterialServiceImplTest.java @@ -13,7 +13,6 @@ import javax.annotation.Resource; import com.yunxi.scm.framework.test.core.ut.BaseDbUnitTest; -import com.yunxi.scm.module.xxjj.controller.admin.material.vo.*; import com.yunxi.scm.framework.common.pojo.PageResult; import org.springframework.context.annotation.Import; @@ -24,7 +23,6 @@ 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.*; /** diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/materialbrand/MaterialBrandServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/materialbrand/MaterialBrandServiceImplTest.java index 17a4bf6..3b05ad8 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/materialbrand/MaterialBrandServiceImplTest.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/materialbrand/MaterialBrandServiceImplTest.java @@ -13,7 +13,6 @@ import javax.annotation.Resource; import com.yunxi.scm.framework.test.core.ut.BaseDbUnitTest; -import com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo.*; import com.yunxi.scm.framework.common.pojo.PageResult; import org.springframework.context.annotation.Import; @@ -24,7 +23,6 @@ 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.*; /** diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/materialindustry/MaterialIndustryServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/materialindustry/MaterialIndustryServiceImplTest.java index 58e22c4..95db39b 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/materialindustry/MaterialIndustryServiceImplTest.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/materialindustry/MaterialIndustryServiceImplTest.java @@ -13,7 +13,6 @@ import javax.annotation.Resource; import com.yunxi.scm.framework.test.core.ut.BaseDbUnitTest; -import com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo.*; import com.yunxi.scm.framework.common.pojo.PageResult; import org.springframework.context.annotation.Import; @@ -24,7 +23,6 @@ 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.*; /** diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/materialquality/MaterialQualityServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/materialquality/MaterialQualityServiceImplTest.java index fc12b11..d0596b8 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/materialquality/MaterialQualityServiceImplTest.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/materialquality/MaterialQualityServiceImplTest.java @@ -2,7 +2,6 @@ package com.yunxi.scm.module.xxjj.service.materialquality; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; import javax.annotation.Resource; @@ -13,20 +12,15 @@ import com.yunxi.scm.module.xxjj.dal.dataobject.materialquality.MaterialQualityD import com.yunxi.scm.module.xxjj.dal.mysql.materialquality.MaterialQualityMapper; 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 MaterialQualityServiceImpl} 的单元测试类 diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/materialtype/MaterialTypeServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/materialtype/MaterialTypeServiceImplTest.java index b319d21..318750a 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/materialtype/MaterialTypeServiceImplTest.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/materialtype/MaterialTypeServiceImplTest.java @@ -13,7 +13,6 @@ import javax.annotation.Resource; import com.yunxi.scm.framework.test.core.ut.BaseDbUnitTest; -import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.*; import com.yunxi.scm.framework.common.pojo.PageResult; import org.springframework.context.annotation.Import; @@ -24,7 +23,6 @@ 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.*; /** diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/productionprocesses/ProductionProcessesServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/productionprocesses/ProductionProcessesServiceImplTest.java index 4763fdd..b940828 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/productionprocesses/ProductionProcessesServiceImplTest.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/productionprocesses/ProductionProcessesServiceImplTest.java @@ -2,7 +2,6 @@ package com.yunxi.scm.module.xxjj.service.productionprocesses; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; import javax.annotation.Resource; @@ -13,20 +12,15 @@ import com.yunxi.scm.module.xxjj.dal.dataobject.productionprocesses.ProductionPr import com.yunxi.scm.module.xxjj.dal.mysql.productionprocesses.ProductionProcessesMapper; 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 ProductionProcessesServiceImpl} 的单元测试类 diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/qualityinspection/QualityInspectionServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/qualityinspection/QualityInspectionServiceImplTest.java index 9741955..78c71f7 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/qualityinspection/QualityInspectionServiceImplTest.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/qualityinspection/QualityInspectionServiceImplTest.java @@ -2,7 +2,6 @@ package com.yunxi.scm.module.xxjj.service.qualityinspection; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; import javax.annotation.Resource; @@ -13,20 +12,15 @@ import com.yunxi.scm.module.xxjj.dal.dataobject.qualityinspection.QualityInspect import com.yunxi.scm.module.xxjj.dal.mysql.qualityinspection.QualityInspectionMapper; 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 QualityInspectionServiceImpl} 的单元测试类 diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/subjectbasic/SubjectBasicServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/subjectbasic/SubjectBasicServiceImplTest.java index 5192c9b..4698363 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/subjectbasic/SubjectBasicServiceImplTest.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/subjectbasic/SubjectBasicServiceImplTest.java @@ -2,7 +2,6 @@ package com.yunxi.scm.module.xxjj.service.subjectbasic; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; import javax.annotation.Resource; @@ -13,20 +12,15 @@ import com.yunxi.scm.module.xxjj.dal.dataobject.subjectbasic.SubjectBasicDO; import com.yunxi.scm.module.xxjj.dal.mysql.subjectbasic.SubjectBasicMapper; 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 SubjectBasicServiceImpl} 的单元测试类 diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/supplier/SupplierServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/supplier/SupplierServiceImplTest.java index 429c2eb..06bd8c9 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/supplier/SupplierServiceImplTest.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/supplier/SupplierServiceImplTest.java @@ -2,7 +2,6 @@ package com.yunxi.scm.module.xxjj.service.supplier; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; import javax.annotation.Resource; @@ -13,20 +12,15 @@ import com.yunxi.scm.module.xxjj.dal.dataobject.supplier.SupplierDO; import com.yunxi.scm.module.xxjj.dal.mysql.supplier.SupplierMapper; 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 SupplierServiceImpl} 的单元测试类 diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/unitlibrary/UnitLibraryServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/unitlibrary/UnitLibraryServiceImplTest.java index 75cfd99..9afbd9d 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/unitlibrary/UnitLibraryServiceImplTest.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/unitlibrary/UnitLibraryServiceImplTest.java @@ -2,7 +2,6 @@ package com.yunxi.scm.module.xxjj.service.unitlibrary; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; import javax.annotation.Resource; @@ -13,20 +12,15 @@ import com.yunxi.scm.module.xxjj.dal.dataobject.unitlibrary.UnitLibraryDO; import com.yunxi.scm.module.xxjj.dal.mysql.unitlibrary.UnitLibraryMapper; 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 UnitLibraryServiceImpl} 的单元测试类 diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehouse/WarehouseServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehouse/WarehouseServiceImplTest.java index e11ee86..fe4210c 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehouse/WarehouseServiceImplTest.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehouse/WarehouseServiceImplTest.java @@ -2,7 +2,6 @@ package com.yunxi.scm.module.xxjj.service.warehouse; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; import javax.annotation.Resource; @@ -13,20 +12,15 @@ import com.yunxi.scm.module.xxjj.dal.dataobject.warehouse.WarehouseDO; import com.yunxi.scm.module.xxjj.dal.mysql.warehouse.WarehouseMapper; 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 WarehouseServiceImpl} 的单元测试类 diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehousearea/WarehouseAreaServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehousearea/WarehouseAreaServiceImplTest.java index 9c8a817..a7e9e62 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehousearea/WarehouseAreaServiceImplTest.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehousearea/WarehouseAreaServiceImplTest.java @@ -2,7 +2,6 @@ package com.yunxi.scm.module.xxjj.service.warehousearea; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; import javax.annotation.Resource; @@ -13,20 +12,15 @@ import com.yunxi.scm.module.xxjj.dal.dataobject.warehousearea.WarehouseAreaDO; import com.yunxi.scm.module.xxjj.dal.mysql.warehousearea.WarehouseAreaMapper; 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 WarehouseAreaServiceImpl} 的单元测试类 diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehousedaywarning/WarehouseDayWarningServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehousedaywarning/WarehouseDayWarningServiceImplTest.java index 0ab8000..fd48b77 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehousedaywarning/WarehouseDayWarningServiceImplTest.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehousedaywarning/WarehouseDayWarningServiceImplTest.java @@ -2,7 +2,6 @@ package com.yunxi.scm.module.xxjj.service.warehousedaywarning; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; import javax.annotation.Resource; @@ -13,20 +12,15 @@ import com.yunxi.scm.module.xxjj.dal.dataobject.warehousedaywarning.WarehouseDay import com.yunxi.scm.module.xxjj.dal.mysql.warehousedaywarning.WarehouseDayWarningMapper; 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 WarehouseDayWarningServiceImpl} 的单元测试类 diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehousedetail/WarehouseDetailServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehousedetail/WarehouseDetailServiceImplTest.java index fbbf795..2a3da61 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehousedetail/WarehouseDetailServiceImplTest.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehousedetail/WarehouseDetailServiceImplTest.java @@ -2,7 +2,6 @@ package com.yunxi.scm.module.xxjj.service.warehousedetail; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; import javax.annotation.Resource; @@ -13,20 +12,15 @@ import com.yunxi.scm.module.xxjj.dal.dataobject.warehousedetail.WarehouseDetailD import com.yunxi.scm.module.xxjj.dal.mysql.warehousedetail.WarehouseDetailMapper; 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 WarehouseDetailServiceImpl} 的单元测试类 diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehouseout/WarehouseOutServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehouseout/WarehouseOutServiceImplTest.java index 9bf69d3..68ded7c 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehouseout/WarehouseOutServiceImplTest.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehouseout/WarehouseOutServiceImplTest.java @@ -2,7 +2,6 @@ package com.yunxi.scm.module.xxjj.service.warehouseout; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; import javax.annotation.Resource; @@ -13,20 +12,15 @@ import com.yunxi.scm.module.xxjj.dal.dataobject.warehouseout.WarehouseOutDO; import com.yunxi.scm.module.xxjj.dal.mysql.warehouseout.WarehouseOutMapper; 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 WarehouseOutServiceImpl} 的单元测试类 diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehousereceipt/WarehouseReceiptServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehousereceipt/WarehouseReceiptServiceImplTest.java index a197dc6..981f0b0 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehousereceipt/WarehouseReceiptServiceImplTest.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehousereceipt/WarehouseReceiptServiceImplTest.java @@ -2,7 +2,6 @@ package com.yunxi.scm.module.xxjj.service.warehousereceipt; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; import javax.annotation.Resource; @@ -13,20 +12,15 @@ import com.yunxi.scm.module.xxjj.dal.dataobject.warehousereceipt.WarehouseReceip import com.yunxi.scm.module.xxjj.dal.mysql.warehousereceipt.WarehouseReceiptMapper; 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 WarehouseReceiptServiceImpl} 的单元测试类 diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehousewarning/WarehouseWarningServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehousewarning/WarehouseWarningServiceImplTest.java index b85526e..c5505dd 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehousewarning/WarehouseWarningServiceImplTest.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehousewarning/WarehouseWarningServiceImplTest.java @@ -2,7 +2,6 @@ package com.yunxi.scm.module.xxjj.service.warehousewarning; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; import javax.annotation.Resource; @@ -13,20 +12,14 @@ import com.yunxi.scm.module.xxjj.dal.dataobject.warehousewarning.WarehouseWarnin import com.yunxi.scm.module.xxjj.dal.mysql.warehousewarning.WarehouseWarningMapper; 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 WarehouseWarningServiceImpl} 的单元测试类 diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/workorder/WorkOrderServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/workorder/WorkOrderServiceImplTest.java index e209209..4b50b8d 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/workorder/WorkOrderServiceImplTest.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/workorder/WorkOrderServiceImplTest.java @@ -2,7 +2,6 @@ package com.yunxi.scm.module.xxjj.service.workorder; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; import javax.annotation.Resource; @@ -13,20 +12,15 @@ import com.yunxi.scm.module.xxjj.dal.dataobject.workorder.WorkOrderDO; import com.yunxi.scm.module.xxjj.dal.mysql.workorder.WorkOrderMapper; 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 WorkOrderServiceImpl} 的单元测试类 diff --git a/yunxi-server/src/main/resources/application-dev.yaml b/yunxi-server/src/main/resources/application-dev.yaml index c1b112c..d5a2d5b 100644 --- a/yunxi-server/src/main/resources/application-dev.yaml +++ b/yunxi-server/src/main/resources/application-dev.yaml @@ -68,7 +68,7 @@ spring: # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 redis: - host: 127.0.0.1 # 地址 + host: 222.71.165.188 # 地址 port: 6379 # 端口 database: 0 # 数据库索引 password: 'qweasd,.123' # 密码,建议生产环境开启 diff --git a/yunxi-server/src/main/resources/application.yaml b/yunxi-server/src/main/resources/application.yaml index a536e8b..668e88f 100644 --- a/yunxi-server/src/main/resources/application.yaml +++ b/yunxi-server/src/main/resources/application.yaml @@ -3,7 +3,7 @@ spring: name: yunxi-server profiles: - active: local + active: dev main: allow-circular-references: true # 允许循环依赖,因为项目是三层架构,无法避免这个情况。