From e15da2afeb941b6fa9c3a0f132d036b81c025aeb Mon Sep 17 00:00:00 2001 From: songguoqiang Date: Tue, 7 Nov 2023 08:34:42 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=87=87=E8=B4=AD=E6=94=B6=E8=B4=A7?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=20APP=E8=8E=B7=E5=BE=97=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E6=94=B6=E8=B4=A7=E4=BB=BB=E5=8A=A1=E4=B8=BB=E5=AD=90=E8=A1=A8?= =?UTF-8?q?=E6=98=8E=E7=BB=86=E5=88=97=E8=A1=A8=20APP=E8=8E=B7=E5=BE=97?= =?UTF-8?q?=E9=87=87=E8=B4=AD=E6=94=B6=E8=B4=A7=E4=BB=BB=E5=8A=A1=E4=B8=BB?= =?UTF-8?q?=E5=AD=90=E8=A1=A8=E6=98=8E=E7=BB=86=E5=88=97=E8=A1=A8=20APP?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E5=8F=91=E8=B4=A7=E5=8D=95=E5=8F=B7=E5=92=8C?= =?UTF-8?q?=E5=8D=95=E6=8D=AE=E5=8F=B7=E6=9F=A5=E8=AF=A2=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E6=94=B6=E8=B4=A7=E4=BB=BB=E5=8A=A1=E4=B8=BB=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PurchasereceiptJobMainController.java | 50 +++++- .../PurchasereceiptJobDetailExportReqVO.java | 3 + .../vo/PurchasereceiptJobMainRespTypesVO.java | 149 +++++++++++++++++- .../vo/PurchasereceiptJobMainRespVO.java | 3 + .../PurchasereceiptJobDetailMapper.java | 2 + .../PurchasereceiptJobMainMapper.java | 91 +++++++++++ .../PurchasereceiptJobMainService.java | 10 ++ .../PurchasereceiptJobMainServiceImpl.java | 10 ++ 8 files changed, 308 insertions(+), 10 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/PurchasereceiptJobMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/PurchasereceiptJobMainController.java index ba8d5cfd..21e0732a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/PurchasereceiptJobMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/PurchasereceiptJobMainController.java @@ -3,6 +3,9 @@ package com.win.module.wms.controller.purchasereceiptJob; import com.win.framework.common.pojo.CustomConditions; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; +import com.win.module.wms.convert.purchasereceiptJob.PurchasereceiptJobDetailConvert; +import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobDetailDO; +import com.win.module.wms.service.purchasereceiptJob.PurchasereceiptJobDetailService; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -10,22 +13,16 @@ 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.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.CommonResult; import static com.win.framework.common.pojo.CommonResult.success; - import com.win.framework.excel.core.util.ExcelUtils; - import com.win.framework.operatelog.core.annotations.OperateLog; import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*; - import com.win.module.wms.controller.purchasereceiptJob.vo.*; import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO; import com.win.module.wms.convert.purchasereceiptJob.PurchasereceiptJobMainConvert; @@ -40,6 +37,9 @@ public class PurchasereceiptJobMainController { @Resource private PurchasereceiptJobMainService purchasereceiptJobMainService; + @Resource + private PurchasereceiptJobDetailService purchasereceiptJobDetailService; + @Resource private AdminUserApi userApi; @@ -122,4 +122,42 @@ public class PurchasereceiptJobMainController { ExcelUtils.write(response, "采购收货任务主.xls", "数据", PurchasereceiptJobMainExcelVO.class, datas); } + @GetMapping("/getPurchasereceiptJobyId") + @Operation(summary = "APP获得采购收货任务主子表明细列表") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('wms:purchasereceipt-job-main:query')") + public CommonResult getPurchasereceiptJobyId(@RequestParam("id") Long id) { + PurchasereceiptJobMainDO purchasereceiptJobMain = purchasereceiptJobMainService.getPurchasereceiptJobMain(id); + PurchasereceiptJobMainRespVO result = PurchasereceiptJobMainConvert.INSTANCE.convert(purchasereceiptJobMain); + PurchasereceiptJobDetailExportReqVO purchasereceiptJobDetailExportReqVO = new PurchasereceiptJobDetailExportReqVO(); + purchasereceiptJobDetailExportReqVO.setMasterId(result.getId()); + List purchasereceiptJobDetailList = purchasereceiptJobDetailService.getPurchasereceiptJobDetailList(purchasereceiptJobDetailExportReqVO); + List purchasereceiptJobDetailExcelVOS = PurchasereceiptJobDetailConvert.INSTANCE.convertList02(purchasereceiptJobDetailList); + result.setSubList(purchasereceiptJobDetailExcelVOS); + return success(result); + } + + @PostMapping("/getPageByStatusAndTime") + @Operation(summary = "APP获得采购收货任务主子表明细列表") + @Parameter(name = "createTime", description = "今日开始结束时间", required = false, example = "[\"1699200000000\",\"1701878400000\"]") + @Parameter(name = "types", description = "字典类型数组", required = false, example = "\"types\":[\"JOB_PENDING\",\"JOB_COMPLETED\"]") + @PreAuthorize("@ss.hasPermission('wms:purchasereceipt-job-main:query')") + public CommonResult> getPageByStatusAndTime(@RequestBody PurchasereceiptJobMainRespTypesVO purchasereceiptJobMainRespTypesVO) { + PageResult purchasereceiptJobMainByStatusPage = purchasereceiptJobMainService.getPurchasereceiptJobMainByStatusPage(purchasereceiptJobMainRespTypesVO); + PageResult result = PurchasereceiptJobMainConvert.INSTANCE.convertPage(purchasereceiptJobMainByStatusPage); + return success(result); + } + + @PostMapping("/getPurchasereceiptJobMainSenior") + @Operation(summary = "APP根据发货单号和单据号查询采购收货任务主任务列表") + @Parameter(name = "asnNumber", description = "发货单号", required = false, example = "100") + @Parameter(name = "number", description = "单据号", required = false, example = "100") + @PreAuthorize("@ss.hasPermission('wms:purchasereceipt-job-main:query')") + public CommonResult> getPurchasereceiptJobMainSenior(@RequestBody PurchasereceiptJobMainRespVO respVO) { + List purchasereceiptJobMainSenior = purchasereceiptJobMainService.getPurchasereceiptJobMainSenior(respVO); + List result = PurchasereceiptJobMainConvert.INSTANCE.convertList(purchasereceiptJobMainSenior); + return success(result); + } + + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobDetailExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobDetailExportReqVO.java index d7fbdc5a..c86f3d72 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobDetailExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobDetailExportReqVO.java @@ -109,4 +109,7 @@ public class PurchasereceiptJobDetailExportReqVO { @Schema(description = "到货主代码") private String toOwnerCode; + @Schema(description = "主表ID", example = "6060") + private Long masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobMainRespTypesVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobMainRespTypesVO.java index 37fc24bb..e6c58840 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobMainRespTypesVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobMainRespTypesVO.java @@ -5,21 +5,162 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; import javax.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.List; -@Schema(description = "管理后台 - 采购收货任务主 Response VO") +import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 采购收货任务主接收类接收多个任务状态 Response VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class PurchasereceiptJobMainRespTypesVO extends PageParam { + @Schema(description = "申请单号") + private String requestNumber; + + @Schema(description = "发货单号") + private String asnNumber; + + @Schema(description = "要货计划单号") + private String ppNumber; + + @Schema(description = "供应商代码") + private String supplierCode; + + @Schema(description = "到月台代码") + private String toDockCode; + + @Schema(description = "承运商") + private String carrierCode; + + @Schema(description = "运输方式") + private String transferMode; + + @Schema(description = "车牌号") + private String vehiclePlateNumber; + + @Schema(description = "从仓库代码") + private String fromWarehouseCode; + + @Schema(description = "到仓库代码") + private String toWarehouseCode; + + @Schema(description = "申请时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] requestTime; + + @Schema(description = "要求截止时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] requestDueTime; + + @Schema(description = "状态") + private String status; + + @Schema(description = "过期时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] expiredTime; + + @Schema(description = "最后更新时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] updateTime; + + @Schema(description = "最后更新者Id") + private String updater; + + @Schema(description = "状态") + private String jobStageStatus; + + @Schema(description = "优先级") + private Integer priority; + + @Schema(description = "优先级增量") + private Integer priorityIncrement; + + @Schema(description = "部门") + private String departmentCode; + + @Schema(description = "岗位") + private String userPositionCode; + + @Schema(description = "承接人用户ID") + private String acceptUserId; + + @Schema(description = "承接时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] acceptTime; + + @Schema(description = "完成人用户ID") + private String completeUserId; + + @Schema(description = "完成时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] completeTime; + + @Schema(description = "从库位类型范围") + private String fromLocationTypes; + + @Schema(description = "到库位类型范围") + private String toLocationTypes; + + @Schema(description = "单据号") + private String number; + + @Schema(description = "业务类型") + private String businessType; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "创建者id") + private String creator; + + @Schema(description = "允许修改批次") + private String allowModifyBatch; + + @Schema(description = "从库区代码范围") + private String fromAreaCodes; + + @Schema(description = "到库位代码范围") + private String toAreaCodes; + + @Schema(description = "自动完成") + private String autoComplete; + + @Schema(description = "允许修改库位") + private String allowModifyLocation; + + @Schema(description = "允许修改数量") + private String allowModifyQty; + + @Schema(description = "允许大于推荐数量") + private String allowBiggerQty; + + @Schema(description = "允许小于推荐数量") + private String allowSmallerQty; + + @Schema(description = "允许修改库存状态") + private String allowModifyInventoryStatus; + + @Schema(description = "允许连续扫描") + private String allowContinuousScanning; + + @Schema(description = "允许部分完成") + private String allowPartialComplete; + + @Schema(description = "允许修改箱码") + private String allowModifyPackingNumber; + @Schema(description = "任务状态list可以为空", requiredMode = Schema.RequiredMode.REQUIRED) private List types; - @NotNull(message = "是否今日展示状态不能为空") - @Schema(description = "是否只展示今日数据ture展示false展示全部", requiredMode = Schema.RequiredMode.REQUIRED) - private Boolean today; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobMainRespVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobMainRespVO.java index 4cf52487..00ae6ccf 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobMainRespVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobMainRespVO.java @@ -3,6 +3,7 @@ package com.win.module.wms.controller.purchasereceiptJob.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.time.LocalDateTime; +import java.util.List; @Schema(description = "管理后台 - 采购收货任务主 Response VO") @Data @@ -10,4 +11,6 @@ import java.time.LocalDateTime; @ToString(callSuper = true) public class PurchasereceiptJobMainRespVO extends PurchasereceiptJobMainBaseVO { + @Schema(description = "收货任务子表job_purchasereceipt_detail 列表数据", requiredMode = Schema.RequiredMode.REQUIRED) + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptJob/PurchasereceiptJobDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptJob/PurchasereceiptJobDetailMapper.java index 683baf7e..310da04b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptJob/PurchasereceiptJobDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptJob/PurchasereceiptJobDetailMapper.java @@ -7,6 +7,7 @@ import com.win.framework.common.pojo.PageResult; import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.framework.mybatis.core.mapper.BaseMapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; +import com.win.module.wms.dal.dataobject.barcode.BarcodeDO; import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobDetailDO; import org.apache.ibatis.annotations.Mapper; import com.win.module.wms.controller.purchasereceiptJob.vo.*; @@ -58,6 +59,7 @@ public interface PurchasereceiptJobDetailMapper extends BaseMapperX selectList(PurchasereceiptJobDetailExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() + .eqIfPresent(PurchasereceiptJobDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(PurchasereceiptJobDetailDO::getPackingNumber, reqVO.getPackingNumber()) .eqIfPresent(PurchasereceiptJobDetailDO::getContainerNumber, reqVO.getContainerNumber()) .eqIfPresent(PurchasereceiptJobDetailDO::getBatch, reqVO.getBatch()) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptJob/PurchasereceiptJobMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptJob/PurchasereceiptJobMainMapper.java index 4655ec7f..58279188 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptJob/PurchasereceiptJobMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptJob/PurchasereceiptJobMainMapper.java @@ -119,4 +119,95 @@ public interface PurchasereceiptJobMainMapper extends BaseMapperX selectByStatusPage(PurchasereceiptJobMainRespTypesVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(PurchasereceiptJobMainDO::getRequestNumber, reqVO.getRequestNumber()) + .eqIfPresent(PurchasereceiptJobMainDO::getAsnNumber, reqVO.getAsnNumber()) + .eqIfPresent(PurchasereceiptJobMainDO::getPpNumber, reqVO.getPpNumber()) + .eqIfPresent(PurchasereceiptJobMainDO::getSupplierCode, reqVO.getSupplierCode()) + .eqIfPresent(PurchasereceiptJobMainDO::getToDockCode, reqVO.getToDockCode()) + .eqIfPresent(PurchasereceiptJobMainDO::getCarrierCode, reqVO.getCarrierCode()) + .eqIfPresent(PurchasereceiptJobMainDO::getTransferMode, reqVO.getTransferMode()) + .eqIfPresent(PurchasereceiptJobMainDO::getVehiclePlateNumber, reqVO.getVehiclePlateNumber()) + .eqIfPresent(PurchasereceiptJobMainDO::getFromWarehouseCode, reqVO.getFromWarehouseCode()) + .eqIfPresent(PurchasereceiptJobMainDO::getToWarehouseCode, reqVO.getToWarehouseCode()) + .betweenIfPresent(PurchasereceiptJobMainDO::getRequestTime, reqVO.getRequestTime()) + .betweenIfPresent(PurchasereceiptJobMainDO::getRequestDueTime, reqVO.getRequestDueTime()) + .inIfPresent(PurchasereceiptJobMainDO::getStatus, reqVO.getTypes()) + .betweenIfPresent(PurchasereceiptJobMainDO::getExpiredTime, reqVO.getExpiredTime()) + .betweenIfPresent(PurchasereceiptJobMainDO::getUpdateTime, reqVO.getUpdateTime()) + .eqIfPresent(PurchasereceiptJobMainDO::getUpdater, reqVO.getUpdater()) + .eqIfPresent(PurchasereceiptJobMainDO::getJobStageStatus, reqVO.getJobStageStatus()) + .eqIfPresent(PurchasereceiptJobMainDO::getPriority, reqVO.getPriority()) + .eqIfPresent(PurchasereceiptJobMainDO::getPriorityIncrement, reqVO.getPriorityIncrement()) + .eqIfPresent(PurchasereceiptJobMainDO::getDepartmentCode, reqVO.getDepartmentCode()) + .eqIfPresent(PurchasereceiptJobMainDO::getUserPositionCode, reqVO.getUserPositionCode()) + .eqIfPresent(PurchasereceiptJobMainDO::getAcceptUserId, reqVO.getAcceptUserId()) + .betweenIfPresent(PurchasereceiptJobMainDO::getAcceptTime, reqVO.getAcceptTime()) + .eqIfPresent(PurchasereceiptJobMainDO::getCompleteUserId, reqVO.getCompleteUserId()) + .betweenIfPresent(PurchasereceiptJobMainDO::getCompleteTime, reqVO.getCompleteTime()) + .eqIfPresent(PurchasereceiptJobMainDO::getFromLocationTypes, reqVO.getFromLocationTypes()) + .eqIfPresent(PurchasereceiptJobMainDO::getToLocationTypes, reqVO.getToLocationTypes()) + .eqIfPresent(PurchasereceiptJobMainDO::getNumber, reqVO.getNumber()) + .eqIfPresent(PurchasereceiptJobMainDO::getBusinessType, reqVO.getBusinessType()) + .eqIfPresent(PurchasereceiptJobMainDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(PurchasereceiptJobMainDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(PurchasereceiptJobMainDO::getCreator, reqVO.getCreator()) + .eqIfPresent(PurchasereceiptJobMainDO::getAllowModifyBatch, reqVO.getAllowModifyBatch()) + .eqIfPresent(PurchasereceiptJobMainDO::getFromAreaCodes, reqVO.getFromAreaCodes()) + .eqIfPresent(PurchasereceiptJobMainDO::getToAreaCodes, reqVO.getToAreaCodes()) + .eqIfPresent(PurchasereceiptJobMainDO::getAutoComplete, reqVO.getAutoComplete()) + .eqIfPresent(PurchasereceiptJobMainDO::getAllowModifyLocation, reqVO.getAllowModifyLocation()) + .eqIfPresent(PurchasereceiptJobMainDO::getAllowModifyQty, reqVO.getAllowModifyQty()) + .eqIfPresent(PurchasereceiptJobMainDO::getAllowBiggerQty, reqVO.getAllowBiggerQty()) + .eqIfPresent(PurchasereceiptJobMainDO::getAllowSmallerQty, reqVO.getAllowSmallerQty()) + .eqIfPresent(PurchasereceiptJobMainDO::getAllowModifyInventoryStatus, reqVO.getAllowModifyInventoryStatus()) + .eqIfPresent(PurchasereceiptJobMainDO::getAllowContinuousScanning, reqVO.getAllowContinuousScanning()) + .eqIfPresent(PurchasereceiptJobMainDO::getAllowPartialComplete, reqVO.getAllowPartialComplete()) + .eqIfPresent(PurchasereceiptJobMainDO::getAllowModifyPackingNumber, reqVO.getAllowModifyPackingNumber()) + .orderByDesc(PurchasereceiptJobMainDO::getId)); + } + + default List getPurchasereceiptJobMainSenior(PurchasereceiptJobMainRespVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(PurchasereceiptJobMainDO::getRequestNumber, reqVO.getRequestNumber()) + .eqIfPresent(PurchasereceiptJobMainDO::getAsnNumber, reqVO.getAsnNumber()) + .eqIfPresent(PurchasereceiptJobMainDO::getPpNumber, reqVO.getPpNumber()) + .eqIfPresent(PurchasereceiptJobMainDO::getSupplierCode, reqVO.getSupplierCode()) + .eqIfPresent(PurchasereceiptJobMainDO::getToDockCode, reqVO.getToDockCode()) + .eqIfPresent(PurchasereceiptJobMainDO::getCarrierCode, reqVO.getCarrierCode()) + .eqIfPresent(PurchasereceiptJobMainDO::getTransferMode, reqVO.getTransferMode()) + .eqIfPresent(PurchasereceiptJobMainDO::getVehiclePlateNumber, reqVO.getVehiclePlateNumber()) + .eqIfPresent(PurchasereceiptJobMainDO::getFromWarehouseCode, reqVO.getFromWarehouseCode()) + .eqIfPresent(PurchasereceiptJobMainDO::getToWarehouseCode, reqVO.getToWarehouseCode()) + .eqIfPresent(PurchasereceiptJobMainDO::getStatus, reqVO.getStatus()) + .eqIfPresent(PurchasereceiptJobMainDO::getUpdater, reqVO.getUpdater()) + .eqIfPresent(PurchasereceiptJobMainDO::getJobStageStatus, reqVO.getJobStageStatus()) + .eqIfPresent(PurchasereceiptJobMainDO::getPriority, reqVO.getPriority()) + .eqIfPresent(PurchasereceiptJobMainDO::getPriorityIncrement, reqVO.getPriorityIncrement()) + .eqIfPresent(PurchasereceiptJobMainDO::getDepartmentCode, reqVO.getDepartmentCode()) + .eqIfPresent(PurchasereceiptJobMainDO::getUserPositionCode, reqVO.getUserPositionCode()) + .eqIfPresent(PurchasereceiptJobMainDO::getAcceptUserId, reqVO.getAcceptUserId()) + .eqIfPresent(PurchasereceiptJobMainDO::getCompleteUserId, reqVO.getCompleteUserId()) + .eqIfPresent(PurchasereceiptJobMainDO::getFromLocationTypes, reqVO.getFromLocationTypes()) + .eqIfPresent(PurchasereceiptJobMainDO::getToLocationTypes, reqVO.getToLocationTypes()) + .eqIfPresent(PurchasereceiptJobMainDO::getNumber, reqVO.getNumber()) + .eqIfPresent(PurchasereceiptJobMainDO::getBusinessType, reqVO.getBusinessType()) + .eqIfPresent(PurchasereceiptJobMainDO::getRemark, reqVO.getRemark()) + .eqIfPresent(PurchasereceiptJobMainDO::getCreator, reqVO.getCreator()) + .eqIfPresent(PurchasereceiptJobMainDO::getAllowModifyBatch, reqVO.getAllowModifyBatch()) + .eqIfPresent(PurchasereceiptJobMainDO::getFromAreaCodes, reqVO.getFromAreaCodes()) + .eqIfPresent(PurchasereceiptJobMainDO::getToAreaCodes, reqVO.getToAreaCodes()) + .eqIfPresent(PurchasereceiptJobMainDO::getAutoComplete, reqVO.getAutoComplete()) + .eqIfPresent(PurchasereceiptJobMainDO::getAllowModifyLocation, reqVO.getAllowModifyLocation()) + .eqIfPresent(PurchasereceiptJobMainDO::getAllowModifyQty, reqVO.getAllowModifyQty()) + .eqIfPresent(PurchasereceiptJobMainDO::getAllowBiggerQty, reqVO.getAllowBiggerQty()) + .eqIfPresent(PurchasereceiptJobMainDO::getAllowSmallerQty, reqVO.getAllowSmallerQty()) + .eqIfPresent(PurchasereceiptJobMainDO::getAllowModifyInventoryStatus, reqVO.getAllowModifyInventoryStatus()) + .eqIfPresent(PurchasereceiptJobMainDO::getAllowContinuousScanning, reqVO.getAllowContinuousScanning()) + .eqIfPresent(PurchasereceiptJobMainDO::getAllowPartialComplete, reqVO.getAllowPartialComplete()) + .eqIfPresent(PurchasereceiptJobMainDO::getAllowModifyPackingNumber, reqVO.getAllowModifyPackingNumber()) + .orderByDesc(PurchasereceiptJobMainDO::getId)); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainService.java index a99916ae..43edbd22 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainService.java @@ -82,4 +82,14 @@ public interface PurchasereceiptJobMainService { * @return 采购订单主列表 */ public PurchasereceiptJobMainDO purchasereceiptJobMainDoStatusRight(String pnumber, String pstatus); + + /** + * 获得采购收货任务主分页根据多个状态选择以及是否今日数据 + * + * @param pageReqVO 分页查询 + * @return 采购收货任务主分页 + */ + PageResult getPurchasereceiptJobMainByStatusPage(PurchasereceiptJobMainRespTypesVO pageReqVO); + + List getPurchasereceiptJobMainSenior(PurchasereceiptJobMainRespVO respVO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java index 4be351f2..0e071d5d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java @@ -116,4 +116,14 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain throw exception(PURCHASERECEIPT_JOB_MAIN_STATUS_ERROR); } } + + @Override + public PageResult getPurchasereceiptJobMainByStatusPage(PurchasereceiptJobMainRespTypesVO pageReqVO) { + return purchasereceiptJobMainMapper.selectByStatusPage(pageReqVO); + } + + @Override + public List getPurchasereceiptJobMainSenior(PurchasereceiptJobMainRespVO respVO) { + return purchasereceiptJobMainMapper.getPurchasereceiptJobMainSenior(respVO); + } } From 6f999fd3eccffef97d6a07a6142770a0e8bd26f7 Mon Sep 17 00:00:00 2001 From: "daikun1@bosssoft.com.cn" Date: Tue, 7 Nov 2023 08:49:24 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E8=B0=83=E6=95=B4-->=E5=8E=BB=E6=8E=89servic?= =?UTF-8?q?e=E5=B1=82=E6=8E=A5=E5=8F=A3=E7=94=9F=E6=88=90=EF=BC=8C?= =?UTF-8?q?=E6=94=B9impl=E4=B8=BAservice?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/codegen/inner/CodegenEngine.java | 6 +- .../resources/codegen/java/service/service.vm | 154 +++++++++------- .../codegen/java/service/service.vm.bark | 79 +++++++++ .../{serviceImpl.vm => serviceImpl.vm.bark} | 0 .../codegen/java/test/serviceTest.vm | 8 +- .../codegen/java/test/serviceTest.vm.bark | 165 ++++++++++++++++++ 6 files changed, 338 insertions(+), 74 deletions(-) create mode 100644 win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/service.vm.bark rename win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/{serviceImpl.vm => serviceImpl.vm.bark} (100%) create mode 100644 win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm.bark diff --git a/win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/service/codegen/inner/CodegenEngine.java b/win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/service/codegen/inner/CodegenEngine.java index a741984d..8b993b22 100644 --- a/win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/service/codegen/inner/CodegenEngine.java +++ b/win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/service/codegen/inner/CodegenEngine.java @@ -75,13 +75,13 @@ public class CodegenEngine { .put(javaTemplatePath("dal/mapper"), javaModuleImplMainFilePath("dal/mysql/${table.businessName}/${table.className}Mapper")) .put(javaTemplatePath("dal/mapper.xml"), mapperXmlFilePath()) - .put(javaTemplatePath("service/serviceImpl"), - javaModuleImplMainFilePath("service/${table.businessName}/${table.className}ServiceImpl")) +// .put(javaTemplatePath("service/serviceImpl"), +// javaModuleImplMainFilePath("service/${table.businessName}/${table.className}ServiceImpl")) .put(javaTemplatePath("service/service"), javaModuleImplMainFilePath("service/${table.businessName}/${table.className}Service")) // Java module-biz Test .put(javaTemplatePath("test/serviceTest"), - javaModuleImplTestFilePath("service/${table.businessName}/${table.className}ServiceImplTest")) + javaModuleImplTestFilePath("service/${table.businessName}/${table.className}ServiceTest")) // Java module-api Main .put(javaTemplatePath("enums/errorcode"), javaModuleApiMainFilePath("enums/ErrorCodeConstants_手动操作")) // SQL diff --git a/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/service.vm b/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/service.vm index 0d41403c..568abec4 100644 --- a/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/service.vm +++ b/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/service.vm @@ -1,79 +1,99 @@ package ${basePackage}.module.${table.moduleName}.service.${table.businessName}; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; + import java.util.*; -import javax.validation.*; import ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePackage}.${table.businessName}.vo.*; import ${basePackage}.module.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO; import ${PageResultClassName}; +import ${basePackage}.module.${table.moduleName}.convert.${table.businessName}.${table.className}Convert; +import ${basePackage}.module.${table.moduleName}.dal.mysql.${table.businessName}.${table.className}Mapper; + +import static ${ServiceExceptionUtilClassName}.exception; +import static ${basePackage}.module.${table.moduleName}.enums.ErrorCodeConstants.*; + /** - * ${table.classComment} Service 接口 + * ${table.classComment} Service * * @author ${table.author} */ -public interface ${table.className}Service { - - /** - * 创建${table.classComment} - * - * @param createReqVO 创建信息 - * @return 编号 - */ - ${primaryColumn.javaType} create${simpleClassName}(@Valid ${sceneEnum.prefixClass}${table.className}CreateReqVO createReqVO); - - /** - * 更新${table.classComment} - * - * @param updateReqVO 更新信息 - */ - void update${simpleClassName}(@Valid ${sceneEnum.prefixClass}${table.className}UpdateReqVO updateReqVO); - - /** - * 删除${table.classComment} - * - * @param id 编号 - */ - void delete${simpleClassName}(${primaryColumn.javaType} id); - - /** - * 获得${table.classComment} - * - * @param id 编号 - * @return ${table.classComment} - */ - ${table.className}DO get${simpleClassName}(${primaryColumn.javaType} id); - - /** - * 获得${table.classComment}列表 - * - * @param ids 编号 - * @return ${table.classComment}列表 - */ - List<${table.className}DO> get${simpleClassName}List(Collection<${primaryColumn.javaType}> ids); - - /** - * 获得${table.classComment}分页 - * - * @param pageReqVO 分页查询 - * @return ${table.classComment}分页 - */ - PageResult<${table.className}DO> get${simpleClassName}Page(${sceneEnum.prefixClass}${table.className}PageReqVO pageReqVO); - - /** - * 获得${table.classComment}列表, 用于 Excel 导出 - * - * @param exportReqVO 查询条件 - * @return ${table.classComment}列表 - */ - List<${table.className}DO> get${simpleClassName}List(${sceneEnum.prefixClass}${table.className}ExportReqVO exportReqVO); - - /** - * 导入${table.classComment}主信息 - * - * @param datas 导入${table.classComment}主信息列表 - * @param mode 导入模式1更新2追加3覆盖 - * @param updatePart 是否支持更新 - * @return 导入结果 - */ - public List<${table.className}ExcelVO> import${table.className}List(List<${table.className}ExcelVO> datas, Integer mode, boolean updatePart); +@Service +@Validated +public class ${table.className}Service { + + @Resource + private ${table.className}Mapper ${classNameVar}Mapper; + + + public ${primaryColumn.javaType} create${simpleClassName}(${sceneEnum.prefixClass}${table.className}CreateReqVO createReqVO) { + // 插入 + ${table.className}DO ${classNameVar} = ${table.className}Convert.INSTANCE.convert(createReqVO); + ${classNameVar}Mapper.insert(${classNameVar}); + // 返回 + return ${classNameVar}.getId(); + } + + public void update${simpleClassName}(${sceneEnum.prefixClass}${table.className}UpdateReqVO updateReqVO) { + // 校验存在 + validate${simpleClassName}Exists(updateReqVO.getId()); + // 更新 + ${table.className}DO updateObj = ${table.className}Convert.INSTANCE.convert(updateReqVO); + ${classNameVar}Mapper.updateById(updateObj); + } + + public void delete${simpleClassName}(${primaryColumn.javaType} id) { + // 校验存在 + validate${simpleClassName}Exists(id); + // 删除 + ${classNameVar}Mapper.deleteById(id); + } + + private void validate${simpleClassName}Exists(${primaryColumn.javaType} id) { + if (${classNameVar}Mapper.selectById(id) == null) { + throw exception(${simpleClassName_underlineCase.toUpperCase()}_NOT_EXISTS); + } + } + + public ${table.className}DO get${simpleClassName}(${primaryColumn.javaType} id) { + return ${classNameVar}Mapper.selectById(id); + } + + public List<${table.className}DO> get${simpleClassName}List(Collection<${primaryColumn.javaType}> ids) { + return ${classNameVar}Mapper.selectBatchIds(ids); + } + + public PageResult<${table.className}DO> get${simpleClassName}Page(${sceneEnum.prefixClass}${table.className}PageReqVO pageReqVO) { + return ${classNameVar}Mapper.selectPage(pageReqVO); + } + + public List<${table.className}DO> get${simpleClassName}List(${sceneEnum.prefixClass}${table.className}ExportReqVO exportReqVO) { + return ${classNameVar}Mapper.selectList(exportReqVO); + } + + public List<${table.className}ExcelVO> import${table.className}List(List<${table.className}ExcelVO> datas, Integer mode, boolean updatePart) { + if (CollUtil.isEmpty(datas)) { + throw exception(${simpleClassName_underlineCase.toUpperCase()}_IMPORT_LIST_IS_EMPTY); + } + + List<${table.className}ExcelVO> errorList = new ArrayList<>(); + datas.forEach(item -> { + if(errorList == null){ + // 判断如果不存在,在进行插入 + ${table.className}DO obj = ${classNameVar}Mapper.selectByCode(item.getCode()); + if (obj == null&& mode != 3) { + ${classNameVar}Mapper.insert(${table.className}Convert.INSTANCE.convert(item)); + } + else if (obj != null && mode != 2) {// 如果存在,判断是否允许更新 + ${table.className}DO ${classNameVar}DO = ${table.className}Convert.INSTANCE.convert(item); + ${classNameVar}DO.setId(obj.getId()); + ${classNameVar}Mapper.updateById(obj); + } + } + }); + + return errorList; + } } diff --git a/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/service.vm.bark b/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/service.vm.bark new file mode 100644 index 00000000..0d41403c --- /dev/null +++ b/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/service.vm.bark @@ -0,0 +1,79 @@ +package ${basePackage}.module.${table.moduleName}.service.${table.businessName}; + +import java.util.*; +import javax.validation.*; +import ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePackage}.${table.businessName}.vo.*; +import ${basePackage}.module.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO; +import ${PageResultClassName}; + +/** + * ${table.classComment} Service 接口 + * + * @author ${table.author} + */ +public interface ${table.className}Service { + + /** + * 创建${table.classComment} + * + * @param createReqVO 创建信息 + * @return 编号 + */ + ${primaryColumn.javaType} create${simpleClassName}(@Valid ${sceneEnum.prefixClass}${table.className}CreateReqVO createReqVO); + + /** + * 更新${table.classComment} + * + * @param updateReqVO 更新信息 + */ + void update${simpleClassName}(@Valid ${sceneEnum.prefixClass}${table.className}UpdateReqVO updateReqVO); + + /** + * 删除${table.classComment} + * + * @param id 编号 + */ + void delete${simpleClassName}(${primaryColumn.javaType} id); + + /** + * 获得${table.classComment} + * + * @param id 编号 + * @return ${table.classComment} + */ + ${table.className}DO get${simpleClassName}(${primaryColumn.javaType} id); + + /** + * 获得${table.classComment}列表 + * + * @param ids 编号 + * @return ${table.classComment}列表 + */ + List<${table.className}DO> get${simpleClassName}List(Collection<${primaryColumn.javaType}> ids); + + /** + * 获得${table.classComment}分页 + * + * @param pageReqVO 分页查询 + * @return ${table.classComment}分页 + */ + PageResult<${table.className}DO> get${simpleClassName}Page(${sceneEnum.prefixClass}${table.className}PageReqVO pageReqVO); + + /** + * 获得${table.classComment}列表, 用于 Excel 导出 + * + * @param exportReqVO 查询条件 + * @return ${table.classComment}列表 + */ + List<${table.className}DO> get${simpleClassName}List(${sceneEnum.prefixClass}${table.className}ExportReqVO exportReqVO); + + /** + * 导入${table.classComment}主信息 + * + * @param datas 导入${table.classComment}主信息列表 + * @param mode 导入模式1更新2追加3覆盖 + * @param updatePart 是否支持更新 + * @return 导入结果 + */ + public List<${table.className}ExcelVO> import${table.className}List(List<${table.className}ExcelVO> datas, Integer mode, boolean updatePart); +} diff --git a/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/serviceImpl.vm b/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/serviceImpl.vm.bark similarity index 100% rename from win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/serviceImpl.vm rename to win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/service/serviceImpl.vm.bark diff --git a/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm b/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm index ec1b45a9..6978f249 100644 --- a/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm +++ b/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm @@ -61,15 +61,15 @@ import static org.mockito.Mockito.*; #end #end /** - * {@link ${table.className}ServiceImpl} 的单元测试类 + * {@link ${table.className}Service} 的单元测试类 * * @author ${table.author} */ -@Import(${table.className}ServiceImpl.class) -public class ${table.className}ServiceImplTest extends BaseDbUnitTest { +@Import(${table.className}Service.class) +public class ${table.className}ServiceTest extends BaseDbUnitTest { @Resource - private ${table.className}ServiceImpl ${classNameVar}Service; + private ${table.className}Service ${classNameVar}Service; @Resource private ${table.className}Mapper ${classNameVar}Mapper; diff --git a/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm.bark b/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm.bark new file mode 100644 index 00000000..ec1b45a9 --- /dev/null +++ b/win-module-infra/win-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm.bark @@ -0,0 +1,165 @@ +package ${basePackage}.module.${table.moduleName}.service.${table.businessName}; + +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.mock.mockito.MockBean; + +import javax.annotation.Resource; + +import ${baseFrameworkPackage}.test.core.ut.BaseDbUnitTest; + +import ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePackage}.${table.businessName}.vo.*; +import ${basePackage}.module.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO; +import ${basePackage}.module.${table.moduleName}.dal.mysql.${table.businessName}.${table.className}Mapper; +import ${PageResultClassName}; + +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 ${basePackage}.module.${table.moduleName}.enums.ErrorCodeConstants.*; +import static ${baseFrameworkPackage}.test.core.util.AssertUtils.*; +import static ${baseFrameworkPackage}.test.core.util.RandomUtils.*; +import static ${LocalDateTimeUtilsClassName}.*; +import static ${ObjectUtilsClassName}.*; +import static ${DateUtilsClassName}.*; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.*; + +## 字段模板 +#macro(getPageCondition $VO) + // mock 数据 + ${table.className}DO db${simpleClassName} = randomPojo(${table.className}DO.class, o -> { // 等会查询到 + #foreach ($column in $columns) + #if (${column.listOperation}) + #set ($JavaField = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})##首字母大写 + o.set$JavaField(null); + #end + #end + }); + ${classNameVar}Mapper.insert(db${simpleClassName}); + #foreach ($column in $columns) + #if (${column.listOperation}) + #set ($JavaField = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})##首字母大写 + // 测试 ${column.javaField} 不匹配 + ${classNameVar}Mapper.insert(cloneIgnoreId(db${simpleClassName}, o -> o.set$JavaField(null))); + #end + #end + // 准备参数 + ${sceneEnum.prefixClass}${table.className}${VO} reqVO = new ${sceneEnum.prefixClass}${table.className}${VO}(); + #foreach ($column in $columns) + #if (${column.listOperation}) + #set ($JavaField = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})##首字母大写 + #if (${column.listOperationCondition} == "BETWEEN")## BETWEEN 的情况 + reqVO.set${JavaField}(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); + #else + reqVO.set$JavaField(null); + #end + #end + #end +#end +/** + * {@link ${table.className}ServiceImpl} 的单元测试类 + * + * @author ${table.author} + */ +@Import(${table.className}ServiceImpl.class) +public class ${table.className}ServiceImplTest extends BaseDbUnitTest { + + @Resource + private ${table.className}ServiceImpl ${classNameVar}Service; + + @Resource + private ${table.className}Mapper ${classNameVar}Mapper; + + @Test + public void testCreate${simpleClassName}_success() { + // 准备参数 + ${sceneEnum.prefixClass}${table.className}CreateReqVO reqVO = randomPojo(${sceneEnum.prefixClass}${table.className}CreateReqVO.class); + + // 调用 + ${primaryColumn.javaType} ${classNameVar}Id = ${classNameVar}Service.create${simpleClassName}(reqVO); + // 断言 + assertNotNull(${classNameVar}Id); + // 校验记录的属性是否正确 + ${table.className}DO ${classNameVar} = ${classNameVar}Mapper.selectById(${classNameVar}Id); + assertPojoEquals(reqVO, ${classNameVar}); + } + + @Test + public void testUpdate${simpleClassName}_success() { + // mock 数据 + ${table.className}DO db${simpleClassName} = randomPojo(${table.className}DO.class); + ${classNameVar}Mapper.insert(db${simpleClassName});// @Sql: 先插入出一条存在的数据 + // 准备参数 + ${sceneEnum.prefixClass}${table.className}UpdateReqVO reqVO = randomPojo(${sceneEnum.prefixClass}${table.className}UpdateReqVO.class, o -> { + o.setId(db${simpleClassName}.getId()); // 设置更新的 ID + }); + + // 调用 + ${classNameVar}Service.update${simpleClassName}(reqVO); + // 校验是否更新正确 + ${table.className}DO ${classNameVar} = ${classNameVar}Mapper.selectById(reqVO.getId()); // 获取最新的 + assertPojoEquals(reqVO, ${classNameVar}); + } + + @Test + public void testUpdate${simpleClassName}_notExists() { + // 准备参数 + ${sceneEnum.prefixClass}${table.className}UpdateReqVO reqVO = randomPojo(${sceneEnum.prefixClass}${table.className}UpdateReqVO.class); + + // 调用, 并断言异常 + assertServiceException(() -> ${classNameVar}Service.update${simpleClassName}(reqVO), ${simpleClassName_underlineCase.toUpperCase()}_NOT_EXISTS); + } + + @Test + public void testDelete${simpleClassName}_success() { + // mock 数据 + ${table.className}DO db${simpleClassName} = randomPojo(${table.className}DO.class); + ${classNameVar}Mapper.insert(db${simpleClassName});// @Sql: 先插入出一条存在的数据 + // 准备参数 + ${primaryColumn.javaType} id = db${simpleClassName}.getId(); + + // 调用 + ${classNameVar}Service.delete${simpleClassName}(id); + // 校验数据不存在了 + assertNull(${classNameVar}Mapper.selectById(id)); + } + + @Test + public void testDelete${simpleClassName}_notExists() { + // 准备参数 + ${primaryColumn.javaType} id = random${primaryColumn.javaType}Id(); + + // 调用, 并断言异常 + assertServiceException(() -> ${classNameVar}Service.delete${simpleClassName}(id), ${simpleClassName_underlineCase.toUpperCase()}_NOT_EXISTS); + } + + @Test + @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 + public void testGet${simpleClassName}Page() { + #getPageCondition("PageReqVO") + + // 调用 + PageResult<${table.className}DO> pageResult = ${classNameVar}Service.get${simpleClassName}Page(reqVO); + // 断言 + assertEquals(1, pageResult.getTotal()); + assertEquals(1, pageResult.getList().size()); + assertPojoEquals(db${simpleClassName}, pageResult.getList().get(0)); + } + + @Test + @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 + public void testGet${simpleClassName}List() { + #getPageCondition("ExportReqVO") + + // 调用 + List<${table.className}DO> list = ${classNameVar}Service.get${simpleClassName}List(reqVO); + // 断言 + assertEquals(1, list.size()); + assertPojoEquals(db${simpleClassName}, list.get(0)); + } + +}