diff --git a/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java b/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java index 65744d4..b07e8d3 100644 --- a/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java +++ b/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java @@ -79,6 +79,8 @@ public interface ErrorCodeConstants { ErrorCode CONFIG_QC_SAMPLE_METHOD_NOT_EXISTS = new ErrorCode(1_032_050_000, "质控样与检测方法配置不存在"); ErrorCode CONFIG_QC_STANDARD_SAMPLE_NOT_EXISTS = new ErrorCode(1_032_050_000, "质控与定值样关系不存在"); + ErrorCode CONFIG_PERMISSION_NOT_EXISTS = new ErrorCode(1_032_050_000, "权限配置不存在"); + ErrorCode CONFIG_WAREHOUSE_LOCATION_NOT_EXISTS = new ErrorCode(1_032_050_000, "存放位置不存在"); /*=================================bus 检验业务 1_032_100_000 ~ 1_032_149_999==================================*/ ErrorCode BUSINESS_SAMPLE_ENTRUST_REGISTRATION_NOT_EXISTS = new ErrorCode(1_032_100_000, "委检登记业务不存在"); @@ -120,6 +122,9 @@ public interface ErrorCodeConstants { ErrorCode REPORT_DOCUMENT_TYPE_NOT_EXISTS = new ErrorCode(1_032_100_000, "报告类型配置不存在"); ErrorCode REPORT_DOCUMENT_MAIN_CORRELATION_NOT_EXISTS = new ErrorCode(1_032_100_000, "报告主数据关系不存在"); + ErrorCode BUSINESS_SAMPLE_DISPATCH_NOT_EXISTS = new ErrorCode(1_032_100_000, "样品调拨不存在"); + ErrorCode BUSINESS_SAMPLE_DISPATCH_DETAIL_NOT_EXISTS = new ErrorCode(1_032_100_000, "样品调拨明细不存在"); + /*=================================resource 资源管理 1_032_150_000 ~ 1_032_199_999 ==================================*/ ErrorCode DEVICE_INFOMATION_NOT_EXISTS = new ErrorCode(1_032_150_000, "设备_设备信息不存在"); ErrorCode DEVICE_PRODUCT_NOT_EXISTS = new ErrorCode(1_032_150_000, "设备_设备大类不存在"); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessSampleDispatchController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessSampleDispatchController.java new file mode 100644 index 0000000..14ffa2c --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessSampleDispatchController.java @@ -0,0 +1,109 @@ +package com.zt.plat.module.qms.business.bus.controller.admin; + +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchPageReqVO; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchRespVO; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchSaveReqVO; +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import com.zt.plat.framework.business.interceptor.BusinessControllerMarker; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.util.object.BeanUtils; +import static com.zt.plat.framework.common.pojo.CommonResult.success; + +import com.zt.plat.framework.excel.core.util.ExcelUtils; + +import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; +import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*; + +import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleDispatchDO; +import com.zt.plat.module.qms.business.bus.service.BusinessSampleDispatchService; + +@Tag(name = "管理后台 - 样品调拨") +@RestController +@RequestMapping("/qms/business-sample-dispatch") +@Validated +public class BusinessSampleDispatchController implements BusinessControllerMarker { + + + @Resource + private BusinessSampleDispatchService businessSampleDispatchService; + + @PostMapping("/create") + @Operation(summary = "创建样品调拨") +// @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch:create')") + public CommonResult createBusinessSampleDispatch(@Valid @RequestBody BusinessSampleDispatchSaveReqVO createReqVO) { + return success(businessSampleDispatchService.createBusinessSampleDispatch(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新样品调拨") +// @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch:update')") + public CommonResult updateBusinessSampleDispatch(@Valid @RequestBody BusinessSampleDispatchSaveReqVO updateReqVO) { + businessSampleDispatchService.updateBusinessSampleDispatch(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除样品调拨") + @Parameter(name = "id", description = "编号", required = true) +// @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch:delete')") + public CommonResult deleteBusinessSampleDispatch(@RequestParam("id") Long id) { + businessSampleDispatchService.deleteBusinessSampleDispatch(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除样品调拨") + @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch:delete')") + public CommonResult deleteBusinessSampleDispatchList(@RequestBody BatchDeleteReqVO req) { + businessSampleDispatchService.deleteBusinessSampleDispatchListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得样品调拨") + @Parameter(name = "id", description = "编号", required = true, example = "1024") +// @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch:query')") + public CommonResult getBusinessSampleDispatch(@RequestParam("id") Long id) { + BusinessSampleDispatchDO businessSampleDispatch = businessSampleDispatchService.getBusinessSampleDispatch(id); + return success(BeanUtils.toBean(businessSampleDispatch, BusinessSampleDispatchRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得样品调拨分页") +// @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch:query')") + public CommonResult> getBusinessSampleDispatchPage(@Valid BusinessSampleDispatchPageReqVO pageReqVO) { + PageResult pageResult = businessSampleDispatchService.getBusinessSampleDispatchPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, BusinessSampleDispatchRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出样品调拨 Excel") + @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportBusinessSampleDispatchExcel(@Valid BusinessSampleDispatchPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = businessSampleDispatchService.getBusinessSampleDispatchPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "样品调拨.xls", "数据", BusinessSampleDispatchRespVO.class, + BeanUtils.toBean(list, BusinessSampleDispatchRespVO.class)); + } + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessSampleDispatchDetailController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessSampleDispatchDetailController.java new file mode 100644 index 0000000..684999e --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessSampleDispatchDetailController.java @@ -0,0 +1,109 @@ +package com.zt.plat.module.qms.business.bus.controller.admin; + +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchDetailPageReqVO; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchDetailRespVO; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchDetailSaveReqVO; +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import com.zt.plat.framework.business.interceptor.BusinessControllerMarker; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.util.object.BeanUtils; +import static com.zt.plat.framework.common.pojo.CommonResult.success; + +import com.zt.plat.framework.excel.core.util.ExcelUtils; + +import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; +import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*; + +import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleDispatchDetailDO; +import com.zt.plat.module.qms.business.bus.service.BusinessSampleDispatchDetailService; + +@Tag(name = "管理后台 - 样品调拨明细") +@RestController +@RequestMapping("/qms/business-sample-dispatch-detail") +@Validated +public class BusinessSampleDispatchDetailController implements BusinessControllerMarker { + + + @Resource + private BusinessSampleDispatchDetailService businessSampleDispatchDetailService; + + @PostMapping("/create") + @Operation(summary = "创建样品调拨明细") +// @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch-detail:create')") + public CommonResult createBusinessSampleDispatchDetail(@Valid @RequestBody BusinessSampleDispatchDetailSaveReqVO createReqVO) { + return success(businessSampleDispatchDetailService.createBusinessSampleDispatchDetail(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新样品调拨明细") +// @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch-detail:update')") + public CommonResult updateBusinessSampleDispatchDetail(@Valid @RequestBody BusinessSampleDispatchDetailSaveReqVO updateReqVO) { + businessSampleDispatchDetailService.updateBusinessSampleDispatchDetail(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除样品调拨明细") + @Parameter(name = "id", description = "编号", required = true) +// @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch-detail:delete')") + public CommonResult deleteBusinessSampleDispatchDetail(@RequestParam("id") Long id) { + businessSampleDispatchDetailService.deleteBusinessSampleDispatchDetail(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除样品调拨明细") + @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch-detail:delete')") + public CommonResult deleteBusinessSampleDispatchDetailList(@RequestBody BatchDeleteReqVO req) { + businessSampleDispatchDetailService.deleteBusinessSampleDispatchDetailListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得样品调拨明细") + @Parameter(name = "id", description = "编号", required = true, example = "1024") +// @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch-detail:query')") + public CommonResult getBusinessSampleDispatchDetail(@RequestParam("id") Long id) { + BusinessSampleDispatchDetailDO businessSampleDispatchDetail = businessSampleDispatchDetailService.getBusinessSampleDispatchDetail(id); + return success(BeanUtils.toBean(businessSampleDispatchDetail, BusinessSampleDispatchDetailRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得样品调拨明细分页") +// @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch-detail:query')") + public CommonResult> getBusinessSampleDispatchDetailPage(@Valid BusinessSampleDispatchDetailPageReqVO pageReqVO) { + PageResult pageResult = businessSampleDispatchDetailService.getBusinessSampleDispatchDetailPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, BusinessSampleDispatchDetailRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出样品调拨明细 Excel") + @PreAuthorize("@ss.hasPermission('qms:business-sample-dispatch-detail:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportBusinessSampleDispatchDetailExcel(@Valid BusinessSampleDispatchDetailPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = businessSampleDispatchDetailService.getBusinessSampleDispatchDetailPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "样品调拨明细.xls", "数据", BusinessSampleDispatchDetailRespVO.class, + BeanUtils.toBean(list, BusinessSampleDispatchDetailRespVO.class)); + } + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleDispatchDetailPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleDispatchDetailPageReqVO.java new file mode 100644 index 0000000..8d828a3 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleDispatchDetailPageReqVO.java @@ -0,0 +1,85 @@ +package com.zt.plat.module.qms.business.bus.controller.vo; + +import lombok.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zt.plat.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 样品调拨明细分页 Request VO") +@Data +public class BusinessSampleDispatchDetailPageReqVO extends PageParam { + + @Schema(description = "主表数据id,支持", example = "10889") + private Long parentId; + + @Schema(description = "业务数据ID", example = "10723") + private Long businessSubSampleId; + + @Schema(description = "领用人") + private String borrowUser; + + @Schema(description = "领用人id", example = "11884") + private Long borrowUserId; + + @Schema(description = "领用时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private Long[] borrowTime; + + @Schema(description = "归还人") + private String givebackUser; + + @Schema(description = "归还人id", example = "30812") + private Long givebackUserId; + + @Schema(description = "归还时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private Long[] givebackTime; + + @Schema(description = "申请部门") + private String applyDepartment; + + @Schema(description = "申请部门id", example = "10703") + private Long applyDepartmentId; + + @Schema(description = "申请时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] applyTime; + + @Schema(description = "提交状态,0-未提交;1-已提交", example = "2") + private String submitStatus; + + @Schema(description = "审批状态,0-未审批;1-已审批", example = "2") + private String approvalStatus; + + @Schema(description = "使用状态", example = "2") + private String useStatus; + + @Schema(description = "表单数据,表单数据") + private String formData; + + @Schema(description = "表单模板,表单编辑器模板") + private String formTemplate; + + @Schema(description = "流程实例id", example = "25078") + private String flowInstanceId; + + @Schema(description = "流程审批状态", example = "1") + private String flowStatus; + + @Schema(description = "审批意见") + private String opinion; + + @Schema(description = "所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleDispatchDetailRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleDispatchDetailRespVO.java new file mode 100644 index 0000000..b619794 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleDispatchDetailRespVO.java @@ -0,0 +1,106 @@ +package com.zt.plat.module.qms.business.bus.controller.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 样品调拨明细 Response VO") +@Data +@ExcelIgnoreUnannotated +public class BusinessSampleDispatchDetailRespVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "31752") + @ExcelProperty("主键") + private Long id; + + @Schema(description = "主表数据id,支持", requiredMode = Schema.RequiredMode.REQUIRED, example = "10889") + @ExcelProperty("主表数据id,支持") + private Long parentId; + + @Schema(description = "业务数据ID", example = "10723") + @ExcelProperty("业务数据ID") + private Long businessSubSampleId; + + @Schema(description = "领用人") + @ExcelProperty("领用人") + private String borrowUser; + + @Schema(description = "领用人id", example = "11884") + @ExcelProperty("领用人id") + private Long borrowUserId; + + @Schema(description = "领用时间") + @ExcelProperty("领用时间") + private Long borrowTime; + + @Schema(description = "归还人") + @ExcelProperty("归还人") + private String givebackUser; + + @Schema(description = "归还人id", example = "30812") + @ExcelProperty("归还人id") + private Long givebackUserId; + + @Schema(description = "归还时间") + @ExcelProperty("归还时间") + private Long givebackTime; + + @Schema(description = "申请部门") + @ExcelProperty("申请部门") + private String applyDepartment; + + @Schema(description = "申请部门id", example = "10703") + @ExcelProperty("申请部门id") + private Long applyDepartmentId; + + @Schema(description = "申请时间") + @ExcelProperty("申请时间") + private LocalDateTime applyTime; + + @Schema(description = "提交状态,0-未提交;1-已提交", example = "2") + @ExcelProperty("提交状态,0-未提交;1-已提交") + private String submitStatus; + + @Schema(description = "审批状态,0-未审批;1-已审批", example = "2") + @ExcelProperty("审批状态,0-未审批;1-已审批") + private String approvalStatus; + + @Schema(description = "使用状态", example = "2") + @ExcelProperty("使用状态") + private String useStatus; + + @Schema(description = "表单数据,表单数据") + @ExcelProperty("表单数据,表单数据") + private String formData; + + @Schema(description = "表单模板,表单编辑器模板") + @ExcelProperty("表单模板,表单编辑器模板") + private String formTemplate; + + @Schema(description = "流程实例id", example = "25078") + @ExcelProperty("流程实例id") + private String flowInstanceId; + + @Schema(description = "流程审批状态", example = "1") + @ExcelProperty("流程审批状态") + private String flowStatus; + + @Schema(description = "审批意见") + @ExcelProperty("审批意见") + private String opinion; + + @Schema(description = "所属部门") + @ExcelProperty("所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleDispatchDetailSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleDispatchDetailSaveReqVO.java new file mode 100644 index 0000000..6a53009 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleDispatchDetailSaveReqVO.java @@ -0,0 +1,80 @@ +package com.zt.plat.module.qms.business.bus.controller.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import jakarta.validation.constraints.*; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 样品调拨明细新增/修改 Request VO") +@Data +public class BusinessSampleDispatchDetailSaveReqVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "31752") + private Long id; + + @Schema(description = "主表数据id,支持", requiredMode = Schema.RequiredMode.REQUIRED, example = "10889") + @NotNull(message = "主表数据id,支持不能为空") + private Long parentId; + + @Schema(description = "业务数据ID", example = "10723") + private Long businessSubSampleId; + + @Schema(description = "领用人") + private String borrowUser; + + @Schema(description = "领用人id", example = "11884") + private Long borrowUserId; + + @Schema(description = "领用时间") + private Long borrowTime; + + @Schema(description = "归还人") + private String givebackUser; + + @Schema(description = "归还人id", example = "30812") + private Long givebackUserId; + + @Schema(description = "归还时间") + private Long givebackTime; + + @Schema(description = "申请部门") + private String applyDepartment; + + @Schema(description = "申请部门id", example = "10703") + private Long applyDepartmentId; + + @Schema(description = "申请时间") + private LocalDateTime applyTime; + + @Schema(description = "提交状态,0-未提交;1-已提交", example = "2") + private String submitStatus; + + @Schema(description = "审批状态,0-未审批;1-已审批", example = "2") + private String approvalStatus; + + @Schema(description = "使用状态", example = "2") + private String useStatus; + + @Schema(description = "表单数据,表单数据") + private String formData; + + @Schema(description = "表单模板,表单编辑器模板") + private String formTemplate; + + @Schema(description = "流程实例id", example = "25078") + private String flowInstanceId; + + @Schema(description = "流程审批状态", example = "1") + private String flowStatus; + + @Schema(description = "审批意见") + private String opinion; + + @Schema(description = "所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + private String remark; + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleDispatchPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleDispatchPageReqVO.java new file mode 100644 index 0000000..7ad0761 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleDispatchPageReqVO.java @@ -0,0 +1,68 @@ +package com.zt.plat.module.qms.business.bus.controller.vo; + +import lombok.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zt.plat.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 样品调拨分页 Request VO") +@Data +public class BusinessSampleDispatchPageReqVO extends PageParam { + + @Schema(description = "主管部门id", example = "14119") + private Long mainDepartmentId; + + @Schema(description = "主管部门名称", example = "王五") + private String mainDepartmentName; + + @Schema(description = "申请人") + private String applyUser; + + @Schema(description = "申请人id", example = "20497") + private Long applyUserId; + + @Schema(description = "申请部门") + private String applyDepartment; + + @Schema(description = "申请部门id", example = "28216") + private Long applyDepartmentId; + + @Schema(description = "申请时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] applyTime; + + @Schema(description = "库管员") + private String warehouseUser; + + @Schema(description = "库管员ID", example = "15295") + private Long warehouseUserId; + + @Schema(description = "提交状态,用于无申请调拨,0-未提交;1-已提交", example = "2") + private String submitStatus; + + @Schema(description = "流程实例id", example = "25006") + private String flowInstanceId; + + @Schema(description = "流程审批状态", example = "1") + private String flowStatus; + + @Schema(description = "完成状态", example = "1") + private String finishStatus; + + @Schema(description = "取消状态", example = "1") + private String cancelStatus; + + @Schema(description = "所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleDispatchRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleDispatchRespVO.java new file mode 100644 index 0000000..1820f06 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleDispatchRespVO.java @@ -0,0 +1,86 @@ +package com.zt.plat.module.qms.business.bus.controller.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 样品调拨 Response VO") +@Data +@ExcelIgnoreUnannotated +public class BusinessSampleDispatchRespVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "24883") + @ExcelProperty("主键") + private Long id; + + @Schema(description = "主管部门id", example = "14119") + @ExcelProperty("主管部门id") + private Long mainDepartmentId; + + @Schema(description = "主管部门名称", example = "王五") + @ExcelProperty("主管部门名称") + private String mainDepartmentName; + + @Schema(description = "申请人") + @ExcelProperty("申请人") + private String applyUser; + + @Schema(description = "申请人id", example = "20497") + @ExcelProperty("申请人id") + private Long applyUserId; + + @Schema(description = "申请部门") + @ExcelProperty("申请部门") + private String applyDepartment; + + @Schema(description = "申请部门id", example = "28216") + @ExcelProperty("申请部门id") + private Long applyDepartmentId; + + @Schema(description = "申请时间") + @ExcelProperty("申请时间") + private LocalDateTime applyTime; + + @Schema(description = "库管员") + @ExcelProperty("库管员") + private String warehouseUser; + + @Schema(description = "库管员ID", example = "15295") + @ExcelProperty("库管员ID") + private Long warehouseUserId; + + @Schema(description = "提交状态,用于无申请调拨,0-未提交;1-已提交", example = "2") + @ExcelProperty("提交状态,用于无申请调拨,0-未提交;1-已提交") + private String submitStatus; + + @Schema(description = "流程实例id", example = "25006") + @ExcelProperty("流程实例id") + private String flowInstanceId; + + @Schema(description = "流程审批状态", example = "1") + @ExcelProperty("流程审批状态") + private String flowStatus; + + @Schema(description = "完成状态", example = "1") + @ExcelProperty("完成状态") + private String finishStatus; + + @Schema(description = "取消状态", example = "1") + @ExcelProperty("取消状态") + private String cancelStatus; + + @Schema(description = "所属部门") + @ExcelProperty("所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleDispatchSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleDispatchSaveReqVO.java new file mode 100644 index 0000000..8802cc6 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleDispatchSaveReqVO.java @@ -0,0 +1,63 @@ +package com.zt.plat.module.qms.business.bus.controller.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 样品调拨新增/修改 Request VO") +@Data +public class BusinessSampleDispatchSaveReqVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "24883") + private Long id; + + @Schema(description = "主管部门id", example = "14119") + private Long mainDepartmentId; + + @Schema(description = "主管部门名称", example = "王五") + private String mainDepartmentName; + + @Schema(description = "申请人") + private String applyUser; + + @Schema(description = "申请人id", example = "20497") + private Long applyUserId; + + @Schema(description = "申请部门") + private String applyDepartment; + + @Schema(description = "申请部门id", example = "28216") + private Long applyDepartmentId; + + @Schema(description = "申请时间") + private LocalDateTime applyTime; + + @Schema(description = "库管员") + private String warehouseUser; + + @Schema(description = "库管员ID", example = "15295") + private Long warehouseUserId; + + @Schema(description = "提交状态,用于无申请调拨,0-未提交;1-已提交", example = "2") + private String submitStatus; + + @Schema(description = "流程实例id", example = "25006") + private String flowInstanceId; + + @Schema(description = "流程审批状态", example = "1") + private String flowStatus; + + @Schema(description = "完成状态", example = "1") + private String finishStatus; + + @Schema(description = "取消状态", example = "1") + private String cancelStatus; + + @Schema(description = "所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + private String remark; + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessSampleDispatchDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessSampleDispatchDO.java new file mode 100644 index 0000000..f2860af --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessSampleDispatchDO.java @@ -0,0 +1,115 @@ +package com.zt.plat.module.qms.business.bus.dal.dataobject; + +import lombok.*; + +import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +/** +* 样品调拨 DO +* +* @author 后台管理 +*/ +@TableName("t_bsn_smp_dst") +@KeySequence("t_bsn_smp_dst_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class BusinessSampleDispatchDO extends BusinessBaseDO { + + + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 主管部门id + */ + @TableField("MAIN_DEPT_ID") + private Long mainDepartmentId; + /** + * 主管部门名称 + */ + @TableField("MAIN_DEPT_NAME") + private String mainDepartmentName; + /** + * 申请人 + */ + @TableField("APL_USER") + private String applyUser; + /** + * 申请人id + */ + @TableField("APL_USER_ID") + private Long applyUserId; + /** + * 申请部门 + */ + @TableField("APL_DEPT") + private String applyDepartment; + /** + * 申请部门id + */ + @TableField("APL_DEPT_ID") + private Long applyDepartmentId; + /** + * 申请时间 + */ + @TableField("APL_TM") + private LocalDateTime applyTime; + /** + * 库管员 + */ + @TableField("WRH_USER") + private String warehouseUser; + /** + * 库管员ID + */ + @TableField("WRH_USER_ID") + private Long warehouseUserId; + /** + * 提交状态,用于无申请调拨,0-未提交;1-已提交 + */ + @TableField("SBM_STS") + private String submitStatus; + /** + * 流程实例id + */ + @TableField("FLW_INSC_ID") + private String flowInstanceId; + /** + * 流程审批状态 + */ + @TableField("FLW_STS") + private String flowStatus; + /** + * 完成状态 + */ + @TableField("FIN_STS") + private String finishStatus; + /** + * 取消状态 + */ + @TableField("CNL_STS") + private String cancelStatus; + /** + * 所属部门 + */ + @TableField("SYS_DEPT_CD") + private String systemDepartmentCode; + /** + * 备注 + */ + @TableField("RMK") + private String remark; + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessSampleDispatchDetailDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessSampleDispatchDetailDO.java new file mode 100644 index 0000000..bd7de2c --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessSampleDispatchDetailDO.java @@ -0,0 +1,140 @@ +package com.zt.plat.module.qms.business.bus.dal.dataobject; + +import lombok.*; + +import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +/** +* 样品调拨明细 DO +* +* @author 后台管理 +*/ +@TableName("t_bsn_smp_dst_dtl") +@KeySequence("t_bsn_smp_dst_dtl_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class BusinessSampleDispatchDetailDO extends BusinessBaseDO { + + + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 主表数据id,支持 + */ + @TableField("PRN_ID") + private Long parentId; + /** + * 业务数据ID + */ + @TableField("BSN_SB_SMP_ID") + private Long businessSubSampleId; + /** + * 领用人 + */ + @TableField("BRW_USER") + private String borrowUser; + /** + * 领用人id + */ + @TableField("BRW_USER_ID") + private Long borrowUserId; + /** + * 领用时间 + */ + @TableField("BRW_TM") + private Long borrowTime; + /** + * 归还人 + */ + @TableField("GIV_USER") + private String givebackUser; + /** + * 归还人id + */ + @TableField("GIV_USER_ID") + private Long givebackUserId; + /** + * 归还时间 + */ + @TableField("GIV_TM") + private Long givebackTime; + /** + * 申请部门 + */ + @TableField("APL_DEPT") + private String applyDepartment; + /** + * 申请部门id + */ + @TableField("APL_DEPT_ID") + private Long applyDepartmentId; + /** + * 申请时间 + */ + @TableField("APL_TM") + private LocalDateTime applyTime; + /** + * 提交状态,0-未提交;1-已提交 + */ + @TableField("SBM_STS") + private String submitStatus; + /** + * 审批状态,0-未审批;1-已审批 + */ + @TableField("APRV_STS") + private String approvalStatus; + /** + * 使用状态 + */ + @TableField("USE_STS") + private String useStatus; + /** + * 表单数据,表单数据 + */ + @TableField("FORM_DAT") + private String formData; + /** + * 表单模板,表单编辑器模板 + */ + @TableField("FORM_TMPL") + private String formTemplate; + /** + * 流程实例id + */ + @TableField("FLW_INSC_ID") + private String flowInstanceId; + /** + * 流程审批状态 + */ + @TableField("FLW_STS") + private String flowStatus; + /** + * 审批意见 + */ + @TableField("ONN") + private String opinion; + /** + * 所属部门 + */ + @TableField("SYS_DEPT_CD") + private String systemDepartmentCode; + /** + * 备注 + */ + @TableField("RMK") + private String remark; + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleDispatchDetailMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleDispatchDetailMapper.java new file mode 100644 index 0000000..149b830 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleDispatchDetailMapper.java @@ -0,0 +1,45 @@ +package com.zt.plat.module.qms.business.bus.dal.mapper; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchDetailPageReqVO; +import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleDispatchDetailDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 样品调拨明细 Mapper + * + * @author 后台管理 + */ +@Mapper +public interface BusinessSampleDispatchDetailMapper extends BaseMapperX { + + default PageResult selectPage(BusinessSampleDispatchDetailPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(BusinessSampleDispatchDetailDO::getParentId, reqVO.getParentId()) + .eqIfPresent(BusinessSampleDispatchDetailDO::getBusinessSubSampleId, reqVO.getBusinessSubSampleId()) + .eqIfPresent(BusinessSampleDispatchDetailDO::getBorrowUser, reqVO.getBorrowUser()) + .eqIfPresent(BusinessSampleDispatchDetailDO::getBorrowUserId, reqVO.getBorrowUserId()) + .betweenIfPresent(BusinessSampleDispatchDetailDO::getBorrowTime, reqVO.getBorrowTime()) + .eqIfPresent(BusinessSampleDispatchDetailDO::getGivebackUser, reqVO.getGivebackUser()) + .eqIfPresent(BusinessSampleDispatchDetailDO::getGivebackUserId, reqVO.getGivebackUserId()) + .betweenIfPresent(BusinessSampleDispatchDetailDO::getGivebackTime, reqVO.getGivebackTime()) + .eqIfPresent(BusinessSampleDispatchDetailDO::getApplyDepartment, reqVO.getApplyDepartment()) + .eqIfPresent(BusinessSampleDispatchDetailDO::getApplyDepartmentId, reqVO.getApplyDepartmentId()) + .betweenIfPresent(BusinessSampleDispatchDetailDO::getApplyTime, reqVO.getApplyTime()) + .eqIfPresent(BusinessSampleDispatchDetailDO::getSubmitStatus, reqVO.getSubmitStatus()) + .eqIfPresent(BusinessSampleDispatchDetailDO::getApprovalStatus, reqVO.getApprovalStatus()) + .eqIfPresent(BusinessSampleDispatchDetailDO::getUseStatus, reqVO.getUseStatus()) + .eqIfPresent(BusinessSampleDispatchDetailDO::getFormData, reqVO.getFormData()) + .eqIfPresent(BusinessSampleDispatchDetailDO::getFormTemplate, reqVO.getFormTemplate()) + .eqIfPresent(BusinessSampleDispatchDetailDO::getFlowInstanceId, reqVO.getFlowInstanceId()) + .eqIfPresent(BusinessSampleDispatchDetailDO::getFlowStatus, reqVO.getFlowStatus()) + .eqIfPresent(BusinessSampleDispatchDetailDO::getOpinion, reqVO.getOpinion()) + .eqIfPresent(BusinessSampleDispatchDetailDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode()) + .eqIfPresent(BusinessSampleDispatchDetailDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(BusinessSampleDispatchDetailDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(BusinessSampleDispatchDetailDO::getId)); + } + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleDispatchMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleDispatchMapper.java new file mode 100644 index 0000000..6f6cd79 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleDispatchMapper.java @@ -0,0 +1,40 @@ +package com.zt.plat.module.qms.business.bus.dal.mapper; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchPageReqVO; +import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleDispatchDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 样品调拨 Mapper + * + * @author 后台管理 + */ +@Mapper +public interface BusinessSampleDispatchMapper extends BaseMapperX { + + default PageResult selectPage(BusinessSampleDispatchPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(BusinessSampleDispatchDO::getMainDepartmentId, reqVO.getMainDepartmentId()) + .likeIfPresent(BusinessSampleDispatchDO::getMainDepartmentName, reqVO.getMainDepartmentName()) + .eqIfPresent(BusinessSampleDispatchDO::getApplyUser, reqVO.getApplyUser()) + .eqIfPresent(BusinessSampleDispatchDO::getApplyUserId, reqVO.getApplyUserId()) + .eqIfPresent(BusinessSampleDispatchDO::getApplyDepartment, reqVO.getApplyDepartment()) + .eqIfPresent(BusinessSampleDispatchDO::getApplyDepartmentId, reqVO.getApplyDepartmentId()) + .betweenIfPresent(BusinessSampleDispatchDO::getApplyTime, reqVO.getApplyTime()) + .eqIfPresent(BusinessSampleDispatchDO::getWarehouseUser, reqVO.getWarehouseUser()) + .eqIfPresent(BusinessSampleDispatchDO::getWarehouseUserId, reqVO.getWarehouseUserId()) + .eqIfPresent(BusinessSampleDispatchDO::getSubmitStatus, reqVO.getSubmitStatus()) + .eqIfPresent(BusinessSampleDispatchDO::getFlowInstanceId, reqVO.getFlowInstanceId()) + .eqIfPresent(BusinessSampleDispatchDO::getFlowStatus, reqVO.getFlowStatus()) + .eqIfPresent(BusinessSampleDispatchDO::getFinishStatus, reqVO.getFinishStatus()) + .eqIfPresent(BusinessSampleDispatchDO::getCancelStatus, reqVO.getCancelStatus()) + .eqIfPresent(BusinessSampleDispatchDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode()) + .eqIfPresent(BusinessSampleDispatchDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(BusinessSampleDispatchDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(BusinessSampleDispatchDO::getId)); + } + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessSampleDispatchDetailService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessSampleDispatchDetailService.java new file mode 100644 index 0000000..04b3c65 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessSampleDispatchDetailService.java @@ -0,0 +1,64 @@ +package com.zt.plat.module.qms.business.bus.service; + +import java.util.*; + +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchDetailPageReqVO; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchDetailRespVO; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchDetailSaveReqVO; +import jakarta.validation.*; +import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleDispatchDetailDO; +import com.zt.plat.framework.common.pojo.PageResult; + +/** + * 样品调拨明细 Service 接口 + * + * @author 后台管理 + */ +public interface BusinessSampleDispatchDetailService { + + /** + * 创建样品调拨明细 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + BusinessSampleDispatchDetailRespVO createBusinessSampleDispatchDetail(@Valid BusinessSampleDispatchDetailSaveReqVO createReqVO); + + /** + * 更新样品调拨明细 + * + * @param updateReqVO 更新信息 + */ + void updateBusinessSampleDispatchDetail(@Valid BusinessSampleDispatchDetailSaveReqVO updateReqVO); + + /** + * 删除样品调拨明细 + * + * @param id 编号 + */ + void deleteBusinessSampleDispatchDetail(Long id); + + /** + * 批量删除样品调拨明细 + * + * @param ids 编号 + */ + void deleteBusinessSampleDispatchDetailListByIds(List ids); + + /** + * 获得样品调拨明细 + * + * @param id 编号 + * @return 样品调拨明细 + */ + BusinessSampleDispatchDetailDO getBusinessSampleDispatchDetail(Long id); + + /** + * 获得样品调拨明细分页 + * + * @param pageReqVO 分页查询 + * @return 样品调拨明细分页 + */ + PageResult getBusinessSampleDispatchDetailPage(BusinessSampleDispatchDetailPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessSampleDispatchDetailServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessSampleDispatchDetailServiceImpl.java new file mode 100644 index 0000000..c05cfa6 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessSampleDispatchDetailServiceImpl.java @@ -0,0 +1,92 @@ +package com.zt.plat.module.qms.business.bus.service; + +import cn.hutool.core.collection.CollUtil; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchDetailPageReqVO; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchDetailRespVO; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchDetailSaveReqVO; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import java.util.*; + +import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleDispatchDetailDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.util.object.BeanUtils; + +import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleDispatchDetailMapper; + +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList; +import static com.zt.plat.module.qms.enums.ErrorCodeConstants.*; + +/** + * 样品调拨明细 Service 实现类 + * + * @author 后台管理 + */ +@Service +@Validated +public class BusinessSampleDispatchDetailServiceImpl implements BusinessSampleDispatchDetailService { + + @Resource + private BusinessSampleDispatchDetailMapper businessSampleDispatchDetailMapper; + + @Override + public BusinessSampleDispatchDetailRespVO createBusinessSampleDispatchDetail(BusinessSampleDispatchDetailSaveReqVO createReqVO) { + // 插入 + BusinessSampleDispatchDetailDO businessSampleDispatchDetail = BeanUtils.toBean(createReqVO, BusinessSampleDispatchDetailDO.class); + businessSampleDispatchDetailMapper.insert(businessSampleDispatchDetail); + // 返回 + return BeanUtils.toBean(businessSampleDispatchDetail, BusinessSampleDispatchDetailRespVO.class); + } + + @Override + public void updateBusinessSampleDispatchDetail(BusinessSampleDispatchDetailSaveReqVO updateReqVO) { + // 校验存在 + validateBusinessSampleDispatchDetailExists(updateReqVO.getId()); + // 更新 + BusinessSampleDispatchDetailDO updateObj = BeanUtils.toBean(updateReqVO, BusinessSampleDispatchDetailDO.class); + businessSampleDispatchDetailMapper.updateById(updateObj); + } + + @Override + public void deleteBusinessSampleDispatchDetail(Long id) { + // 校验存在 + validateBusinessSampleDispatchDetailExists(id); + // 删除 + businessSampleDispatchDetailMapper.deleteById(id); + } + + @Override + public void deleteBusinessSampleDispatchDetailListByIds(List ids) { + // 校验存在 + validateBusinessSampleDispatchDetailExists(ids); + // 删除 + businessSampleDispatchDetailMapper.deleteByIds(ids); + } + + private void validateBusinessSampleDispatchDetailExists(List ids) { + List list = businessSampleDispatchDetailMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(BUSINESS_SAMPLE_DISPATCH_DETAIL_NOT_EXISTS); + } + } + + private void validateBusinessSampleDispatchDetailExists(Long id) { + if (businessSampleDispatchDetailMapper.selectById(id) == null) { + throw exception(BUSINESS_SAMPLE_DISPATCH_DETAIL_NOT_EXISTS); + } + } + + @Override + public BusinessSampleDispatchDetailDO getBusinessSampleDispatchDetail(Long id) { + return businessSampleDispatchDetailMapper.selectById(id); + } + + @Override + public PageResult getBusinessSampleDispatchDetailPage(BusinessSampleDispatchDetailPageReqVO pageReqVO) { + return businessSampleDispatchDetailMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessSampleDispatchService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessSampleDispatchService.java new file mode 100644 index 0000000..1eb0c3d --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessSampleDispatchService.java @@ -0,0 +1,64 @@ +package com.zt.plat.module.qms.business.bus.service; + +import java.util.*; + +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchPageReqVO; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchRespVO; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchSaveReqVO; +import jakarta.validation.*; +import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleDispatchDO; +import com.zt.plat.framework.common.pojo.PageResult; + +/** + * 样品调拨 Service 接口 + * + * @author 后台管理 + */ +public interface BusinessSampleDispatchService { + + /** + * 创建样品调拨 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + BusinessSampleDispatchRespVO createBusinessSampleDispatch(@Valid BusinessSampleDispatchSaveReqVO createReqVO); + + /** + * 更新样品调拨 + * + * @param updateReqVO 更新信息 + */ + void updateBusinessSampleDispatch(@Valid BusinessSampleDispatchSaveReqVO updateReqVO); + + /** + * 删除样品调拨 + * + * @param id 编号 + */ + void deleteBusinessSampleDispatch(Long id); + + /** + * 批量删除样品调拨 + * + * @param ids 编号 + */ + void deleteBusinessSampleDispatchListByIds(List ids); + + /** + * 获得样品调拨 + * + * @param id 编号 + * @return 样品调拨 + */ + BusinessSampleDispatchDO getBusinessSampleDispatch(Long id); + + /** + * 获得样品调拨分页 + * + * @param pageReqVO 分页查询 + * @return 样品调拨分页 + */ + PageResult getBusinessSampleDispatchPage(BusinessSampleDispatchPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessSampleDispatchServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessSampleDispatchServiceImpl.java new file mode 100644 index 0000000..55f7493 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessSampleDispatchServiceImpl.java @@ -0,0 +1,92 @@ +package com.zt.plat.module.qms.business.bus.service; + +import cn.hutool.core.collection.CollUtil; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchPageReqVO; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchRespVO; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSampleDispatchSaveReqVO; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import java.util.*; + +import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleDispatchDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.util.object.BeanUtils; + +import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleDispatchMapper; + +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList; +import static com.zt.plat.module.qms.enums.ErrorCodeConstants.*; + +/** + * 样品调拨 Service 实现类 + * + * @author 后台管理 + */ +@Service +@Validated +public class BusinessSampleDispatchServiceImpl implements BusinessSampleDispatchService { + + @Resource + private BusinessSampleDispatchMapper businessSampleDispatchMapper; + + @Override + public BusinessSampleDispatchRespVO createBusinessSampleDispatch(BusinessSampleDispatchSaveReqVO createReqVO) { + // 插入 + BusinessSampleDispatchDO businessSampleDispatch = BeanUtils.toBean(createReqVO, BusinessSampleDispatchDO.class); + businessSampleDispatchMapper.insert(businessSampleDispatch); + // 返回 + return BeanUtils.toBean(businessSampleDispatch, BusinessSampleDispatchRespVO.class); + } + + @Override + public void updateBusinessSampleDispatch(BusinessSampleDispatchSaveReqVO updateReqVO) { + // 校验存在 + validateBusinessSampleDispatchExists(updateReqVO.getId()); + // 更新 + BusinessSampleDispatchDO updateObj = BeanUtils.toBean(updateReqVO, BusinessSampleDispatchDO.class); + businessSampleDispatchMapper.updateById(updateObj); + } + + @Override + public void deleteBusinessSampleDispatch(Long id) { + // 校验存在 + validateBusinessSampleDispatchExists(id); + // 删除 + businessSampleDispatchMapper.deleteById(id); + } + + @Override + public void deleteBusinessSampleDispatchListByIds(List ids) { + // 校验存在 + validateBusinessSampleDispatchExists(ids); + // 删除 + businessSampleDispatchMapper.deleteByIds(ids); + } + + private void validateBusinessSampleDispatchExists(List ids) { + List list = businessSampleDispatchMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(BUSINESS_SAMPLE_DISPATCH_NOT_EXISTS); + } + } + + private void validateBusinessSampleDispatchExists(Long id) { + if (businessSampleDispatchMapper.selectById(id) == null) { + throw exception(BUSINESS_SAMPLE_DISPATCH_NOT_EXISTS); + } + } + + @Override + public BusinessSampleDispatchDO getBusinessSampleDispatch(Long id) { + return businessSampleDispatchMapper.selectById(id); + } + + @Override + public PageResult getBusinessSampleDispatchPage(BusinessSampleDispatchPageReqVO pageReqVO) { + return businessSampleDispatchMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/admin/ConfigPermissionController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/admin/ConfigPermissionController.java new file mode 100644 index 0000000..017d925 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/admin/ConfigPermissionController.java @@ -0,0 +1,109 @@ +package com.zt.plat.module.qms.business.config.controller.admin; + +import com.zt.plat.module.qms.business.config.controller.vo.ConfigPermissionPageReqVO; +import com.zt.plat.module.qms.business.config.controller.vo.ConfigPermissionRespVO; +import com.zt.plat.module.qms.business.config.controller.vo.ConfigPermissionSaveReqVO; +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import com.zt.plat.framework.business.interceptor.BusinessControllerMarker; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.util.object.BeanUtils; +import static com.zt.plat.framework.common.pojo.CommonResult.success; + +import com.zt.plat.framework.excel.core.util.ExcelUtils; + +import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; +import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*; + +import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigPermissionDO; +import com.zt.plat.module.qms.business.config.service.ConfigPermissionService; + +@Tag(name = "管理后台 - 权限配置,通用权限配置") +@RestController +@RequestMapping("/qms/config-permission") +@Validated +public class ConfigPermissionController implements BusinessControllerMarker { + + + @Resource + private ConfigPermissionService configPermissionService; + + @PostMapping("/create") + @Operation(summary = "创建权限配置,通用权限配置") +// @PreAuthorize("@ss.hasPermission('qms:config-permission:create')") + public CommonResult createConfigPermission(@Valid @RequestBody ConfigPermissionSaveReqVO createReqVO) { + return success(configPermissionService.createConfigPermission(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新权限配置,通用权限配置") +// @PreAuthorize("@ss.hasPermission('qms:config-permission:update')") + public CommonResult updateConfigPermission(@Valid @RequestBody ConfigPermissionSaveReqVO updateReqVO) { + configPermissionService.updateConfigPermission(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除权限配置,通用权限配置") + @Parameter(name = "id", description = "编号", required = true) +// @PreAuthorize("@ss.hasPermission('qms:config-permission:delete')") + public CommonResult deleteConfigPermission(@RequestParam("id") Long id) { + configPermissionService.deleteConfigPermission(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除权限配置,通用权限配置") + @PreAuthorize("@ss.hasPermission('qms:config-permission:delete')") + public CommonResult deleteConfigPermissionList(@RequestBody BatchDeleteReqVO req) { + configPermissionService.deleteConfigPermissionListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得权限配置,通用权限配置") + @Parameter(name = "id", description = "编号", required = true, example = "1024") +// @PreAuthorize("@ss.hasPermission('qms:config-permission:query')") + public CommonResult getConfigPermission(@RequestParam("id") Long id) { + ConfigPermissionDO configPermission = configPermissionService.getConfigPermission(id); + return success(BeanUtils.toBean(configPermission, ConfigPermissionRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得权限配置,通用权限配置分页") +// @PreAuthorize("@ss.hasPermission('qms:config-permission:query')") + public CommonResult> getConfigPermissionPage(@Valid ConfigPermissionPageReqVO pageReqVO) { + PageResult pageResult = configPermissionService.getConfigPermissionPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, ConfigPermissionRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出权限配置,通用权限配置 Excel") + @PreAuthorize("@ss.hasPermission('qms:config-permission:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportConfigPermissionExcel(@Valid ConfigPermissionPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = configPermissionService.getConfigPermissionPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "权限配置,通用权限配置.xls", "数据", ConfigPermissionRespVO.class, + BeanUtils.toBean(list, ConfigPermissionRespVO.class)); + } + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/admin/ConfigWarehouseLocationController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/admin/ConfigWarehouseLocationController.java new file mode 100644 index 0000000..53b4614 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/admin/ConfigWarehouseLocationController.java @@ -0,0 +1,109 @@ +package com.zt.plat.module.qms.business.config.controller.admin; + +import com.zt.plat.module.qms.business.config.controller.vo.ConfigWarehouseLocationPageReqVO; +import com.zt.plat.module.qms.business.config.controller.vo.ConfigWarehouseLocationRespVO; +import com.zt.plat.module.qms.business.config.controller.vo.ConfigWarehouseLocationSaveReqVO; +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import com.zt.plat.framework.business.interceptor.BusinessControllerMarker; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.util.object.BeanUtils; +import static com.zt.plat.framework.common.pojo.CommonResult.success; + +import com.zt.plat.framework.excel.core.util.ExcelUtils; + +import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; +import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*; + +import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigWarehouseLocationDO; +import com.zt.plat.module.qms.business.config.service.ConfigWarehouseLocationService; + +@Tag(name = "管理后台 - 存放位置") +@RestController +@RequestMapping("/qms/config-warehouse-location") +@Validated +public class ConfigWarehouseLocationController implements BusinessControllerMarker { + + + @Resource + private ConfigWarehouseLocationService configWarehouseLocationService; + + @PostMapping("/create") + @Operation(summary = "创建存放位置") +// @PreAuthorize("@ss.hasPermission('qms:config-warehouse-location:create')") + public CommonResult createConfigWarehouseLocation(@Valid @RequestBody ConfigWarehouseLocationSaveReqVO createReqVO) { + return success(configWarehouseLocationService.createConfigWarehouseLocation(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新存放位置") +// @PreAuthorize("@ss.hasPermission('qms:config-warehouse-location:update')") + public CommonResult updateConfigWarehouseLocation(@Valid @RequestBody ConfigWarehouseLocationSaveReqVO updateReqVO) { + configWarehouseLocationService.updateConfigWarehouseLocation(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除存放位置") + @Parameter(name = "id", description = "编号", required = true) +// @PreAuthorize("@ss.hasPermission('qms:config-warehouse-location:delete')") + public CommonResult deleteConfigWarehouseLocation(@RequestParam("id") Long id) { + configWarehouseLocationService.deleteConfigWarehouseLocation(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除存放位置") + @PreAuthorize("@ss.hasPermission('qms:config-warehouse-location:delete')") + public CommonResult deleteConfigWarehouseLocationList(@RequestBody BatchDeleteReqVO req) { + configWarehouseLocationService.deleteConfigWarehouseLocationListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得存放位置") + @Parameter(name = "id", description = "编号", required = true, example = "1024") +// @PreAuthorize("@ss.hasPermission('qms:config-warehouse-location:query')") + public CommonResult getConfigWarehouseLocation(@RequestParam("id") Long id) { + ConfigWarehouseLocationDO configWarehouseLocation = configWarehouseLocationService.getConfigWarehouseLocation(id); + return success(BeanUtils.toBean(configWarehouseLocation, ConfigWarehouseLocationRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得存放位置分页") +// @PreAuthorize("@ss.hasPermission('qms:config-warehouse-location:query')") + public CommonResult> getConfigWarehouseLocationPage(@Valid ConfigWarehouseLocationPageReqVO pageReqVO) { + PageResult pageResult = configWarehouseLocationService.getConfigWarehouseLocationPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, ConfigWarehouseLocationRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出存放位置 Excel") + @PreAuthorize("@ss.hasPermission('qms:config-warehouse-location:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportConfigWarehouseLocationExcel(@Valid ConfigWarehouseLocationPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = configWarehouseLocationService.getConfigWarehouseLocationPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "存放位置.xls", "数据", ConfigWarehouseLocationRespVO.class, + BeanUtils.toBean(list, ConfigWarehouseLocationRespVO.class)); + } + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigPermissionPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigPermissionPageReqVO.java new file mode 100644 index 0000000..d45ebc6 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigPermissionPageReqVO.java @@ -0,0 +1,40 @@ +package com.zt.plat.module.qms.business.config.controller.vo; + +import lombok.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zt.plat.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 权限配置,通用权限配置分页 Request VO") +@Data +public class ConfigPermissionPageReqVO extends PageParam { + + @Schema(description = "主数据id", example = "31572") + private Long sourceId; + + @Schema(description = "主数据类型", example = "1") + private String sourceType; + + @Schema(description = "关联id", example = "20071") + private Long targetId; + + @Schema(description = "关联数据类型", example = "1") + private String targetType; + + @Schema(description = "权限类型", example = "2") + private String permissionType; + + @Schema(description = "所属部门") + private String systemDepartmentCode; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "备注") + private String remark; + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigPermissionRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigPermissionRespVO.java new file mode 100644 index 0000000..161487f --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigPermissionRespVO.java @@ -0,0 +1,50 @@ +package com.zt.plat.module.qms.business.config.controller.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 权限配置,通用权限配置 Response VO") +@Data +@ExcelIgnoreUnannotated +public class ConfigPermissionRespVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16806") + @ExcelProperty("ID") + private Long id; + + @Schema(description = "主数据id", example = "31572") + @ExcelProperty("主数据id") + private Long sourceId; + + @Schema(description = "主数据类型", example = "1") + @ExcelProperty("主数据类型") + private String sourceType; + + @Schema(description = "关联id", example = "20071") + @ExcelProperty("关联id") + private Long targetId; + + @Schema(description = "关联数据类型", example = "1") + @ExcelProperty("关联数据类型") + private String targetType; + + @Schema(description = "权限类型", example = "2") + @ExcelProperty("权限类型") + private String permissionType; + + @Schema(description = "所属部门") + @ExcelProperty("所属部门") + private String systemDepartmentCode; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "备注") + @ExcelProperty("备注") + private String remark; + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigPermissionSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigPermissionSaveReqVO.java new file mode 100644 index 0000000..4095625 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigPermissionSaveReqVO.java @@ -0,0 +1,34 @@ +package com.zt.plat.module.qms.business.config.controller.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +@Schema(description = "管理后台 - 权限配置,通用权限配置新增/修改 Request VO") +@Data +public class ConfigPermissionSaveReqVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16806") + private Long id; + + @Schema(description = "主数据id", example = "31572") + private Long sourceId; + + @Schema(description = "主数据类型", example = "1") + private String sourceType; + + @Schema(description = "关联id", example = "20071") + private Long targetId; + + @Schema(description = "关联数据类型", example = "1") + private String targetType; + + @Schema(description = "权限类型", example = "2") + private String permissionType; + + @Schema(description = "所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + private String remark; + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigWarehouseLocationPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigWarehouseLocationPageReqVO.java new file mode 100644 index 0000000..b7dcf98 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigWarehouseLocationPageReqVO.java @@ -0,0 +1,49 @@ +package com.zt.plat.module.qms.business.config.controller.vo; + +import lombok.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zt.plat.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 存放位置分页 Request VO") +@Data +public class ConfigWarehouseLocationPageReqVO extends PageParam { + + @Schema(description = "父ID", example = "31498") + private Long parentId; + + @Schema(description = "名称", example = "王五") + private String name; + + @Schema(description = "编码") + private String code; + + @Schema(description = "排序号") + private Integer sortNo; + + @Schema(description = "容量") + private Integer capacity; + + @Schema(description = "主管部门id", example = "12738") + private Long mainDepartmentId; + + @Schema(description = "主管部门名称", example = "张三") + private String mainDepartmentName; + + @Schema(description = "数据类型(仓库、库位)", example = "2") + private String dataType; + + @Schema(description = "所属部门") + private String systemDepartmentCode; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "备注") + private String remark; + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigWarehouseLocationRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigWarehouseLocationRespVO.java new file mode 100644 index 0000000..86557a4 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigWarehouseLocationRespVO.java @@ -0,0 +1,62 @@ +package com.zt.plat.module.qms.business.config.controller.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 存放位置 Response VO") +@Data +@ExcelIgnoreUnannotated +public class ConfigWarehouseLocationRespVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "13212") + @ExcelProperty("ID") + private Long id; + + @Schema(description = "父ID", example = "31498") + @ExcelProperty("父ID") + private Long parentId; + + @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @ExcelProperty("名称") + private String name; + + @Schema(description = "编码", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("编码") + private String code; + + @Schema(description = "排序号") + @ExcelProperty("排序号") + private Integer sortNo; + + @Schema(description = "容量", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("容量") + private Integer capacity; + + @Schema(description = "主管部门id", example = "12738") + @ExcelProperty("主管部门id") + private Long mainDepartmentId; + + @Schema(description = "主管部门名称", example = "张三") + @ExcelProperty("主管部门名称") + private String mainDepartmentName; + + @Schema(description = "数据类型(仓库、库位)", example = "2") + @ExcelProperty("数据类型(仓库、库位)") + private String dataType; + + @Schema(description = "所属部门") + @ExcelProperty("所属部门") + private String systemDepartmentCode; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "备注") + @ExcelProperty("备注") + private String remark; + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigWarehouseLocationSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigWarehouseLocationSaveReqVO.java new file mode 100644 index 0000000..f594544 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigWarehouseLocationSaveReqVO.java @@ -0,0 +1,47 @@ +package com.zt.plat.module.qms.business.config.controller.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 存放位置新增/修改 Request VO") +@Data +public class ConfigWarehouseLocationSaveReqVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "13212") + private Long id; + + @Schema(description = "父ID", example = "31498") + private Long parentId; + + @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @NotEmpty(message = "名称不能为空") + private String name; + + @Schema(description = "编码", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "编码不能为空") + private String code; + + @Schema(description = "排序号") + private Integer sortNo; + + @Schema(description = "容量", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "容量不能为空") + private Integer capacity; + + @Schema(description = "主管部门id", example = "12738") + private Long mainDepartmentId; + + @Schema(description = "主管部门名称", example = "张三") + private String mainDepartmentName; + + @Schema(description = "数据类型(仓库、库位)", example = "2") + private String dataType; + + @Schema(description = "所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + private String remark; + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/dataobject/ConfigPermissionDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/dataobject/ConfigPermissionDO.java new file mode 100644 index 0000000..4a2f4b8 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/dataobject/ConfigPermissionDO.java @@ -0,0 +1,67 @@ +package com.zt.plat.module.qms.business.config.dal.dataobject; + +import lombok.*; +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +/** +* 权限配置,通用权限配置 DO +* +* @author 后台管理 +*/ +@TableName("t_cfg_perm") +@KeySequence("t_cfg_perm_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class ConfigPermissionDO extends BusinessBaseDO { + + + + /** + * ID + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 主数据id + */ + @TableField("SRC_ID") + private Long sourceId; + /** + * 主数据类型 + */ + @TableField("SRC_TP") + private String sourceType; + /** + * 关联id + */ + @TableField("TGT_ID") + private Long targetId; + /** + * 关联数据类型 + */ + @TableField("TGT_TP") + private String targetType; + /** + * 权限类型 + */ + @TableField("PERM_TP") + private String permissionType; + /** + * 所属部门 + */ + @TableField("SYS_DEPT_CD") + private String systemDepartmentCode; + /** + * 备注 + */ + @TableField("RMK") + private String remark; + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/dataobject/ConfigWarehouseLocationDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/dataobject/ConfigWarehouseLocationDO.java new file mode 100644 index 0000000..813e5c6 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/dataobject/ConfigWarehouseLocationDO.java @@ -0,0 +1,82 @@ +package com.zt.plat.module.qms.business.config.dal.dataobject; + +import lombok.*; +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +/** +* 存放位置 DO +* +* @author 后台管理 +*/ +@TableName("t_cfg_wrh_loc") +@KeySequence("t_cfg_wrh_loc_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class ConfigWarehouseLocationDO extends BusinessBaseDO { + + + + /** + * ID + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 父ID + */ + @TableField("PRN_ID") + private Long parentId; + /** + * 名称 + */ + @TableField("NAME") + private String name; + /** + * 编码 + */ + @TableField("CD") + private String code; + /** + * 排序号 + */ + @TableField("SRT_NO") + private Integer sortNo; + /** + * 容量 + */ + @TableField("CPY") + private Integer capacity; + /** + * 主管部门id + */ + @TableField("MAIN_DEPT_ID") + private Long mainDepartmentId; + /** + * 主管部门名称 + */ + @TableField("MAIN_DEPT_NAME") + private String mainDepartmentName; + /** + * 数据类型(仓库、库位) + */ + @TableField("DAT_TP") + private String dataType; + /** + * 所属部门 + */ + @TableField("SYS_DEPT_CD") + private String systemDepartmentCode; + /** + * 备注 + */ + @TableField("RMK") + private String remark; + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigPermissionMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigPermissionMapper.java new file mode 100644 index 0000000..2c445d3 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigPermissionMapper.java @@ -0,0 +1,31 @@ +package com.zt.plat.module.qms.business.config.dal.mapper; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.module.qms.business.config.controller.vo.ConfigPermissionPageReqVO; +import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigPermissionDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 权限配置,通用权限配置 Mapper + * + * @author 后台管理 + */ +@Mapper +public interface ConfigPermissionMapper extends BaseMapperX { + + default PageResult selectPage(ConfigPermissionPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ConfigPermissionDO::getSourceId, reqVO.getSourceId()) + .eqIfPresent(ConfigPermissionDO::getSourceType, reqVO.getSourceType()) + .eqIfPresent(ConfigPermissionDO::getTargetId, reqVO.getTargetId()) + .eqIfPresent(ConfigPermissionDO::getTargetType, reqVO.getTargetType()) + .eqIfPresent(ConfigPermissionDO::getPermissionType, reqVO.getPermissionType()) + .eqIfPresent(ConfigPermissionDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode()) + .betweenIfPresent(ConfigPermissionDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(ConfigPermissionDO::getRemark, reqVO.getRemark()) + .orderByDesc(ConfigPermissionDO::getId)); + } + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigWarehouseLocationMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigWarehouseLocationMapper.java new file mode 100644 index 0000000..8ee8f33 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigWarehouseLocationMapper.java @@ -0,0 +1,34 @@ +package com.zt.plat.module.qms.business.config.dal.mapper; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.module.qms.business.config.controller.vo.ConfigWarehouseLocationPageReqVO; +import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigWarehouseLocationDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 存放位置 Mapper + * + * @author 后台管理 + */ +@Mapper +public interface ConfigWarehouseLocationMapper extends BaseMapperX { + + default PageResult selectPage(ConfigWarehouseLocationPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ConfigWarehouseLocationDO::getParentId, reqVO.getParentId()) + .likeIfPresent(ConfigWarehouseLocationDO::getName, reqVO.getName()) + .eqIfPresent(ConfigWarehouseLocationDO::getCode, reqVO.getCode()) + .eqIfPresent(ConfigWarehouseLocationDO::getSortNo, reqVO.getSortNo()) + .eqIfPresent(ConfigWarehouseLocationDO::getCapacity, reqVO.getCapacity()) + .eqIfPresent(ConfigWarehouseLocationDO::getMainDepartmentId, reqVO.getMainDepartmentId()) + .likeIfPresent(ConfigWarehouseLocationDO::getMainDepartmentName, reqVO.getMainDepartmentName()) + .eqIfPresent(ConfigWarehouseLocationDO::getDataType, reqVO.getDataType()) + .eqIfPresent(ConfigWarehouseLocationDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode()) + .betweenIfPresent(ConfigWarehouseLocationDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(ConfigWarehouseLocationDO::getRemark, reqVO.getRemark()) + .orderByDesc(ConfigWarehouseLocationDO::getId)); + } + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigPermissionService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigPermissionService.java new file mode 100644 index 0000000..55edfb1 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigPermissionService.java @@ -0,0 +1,64 @@ +package com.zt.plat.module.qms.business.config.service; + +import java.util.*; + +import com.zt.plat.module.qms.business.config.controller.vo.ConfigPermissionPageReqVO; +import com.zt.plat.module.qms.business.config.controller.vo.ConfigPermissionRespVO; +import com.zt.plat.module.qms.business.config.controller.vo.ConfigPermissionSaveReqVO; +import jakarta.validation.*; +import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigPermissionDO; +import com.zt.plat.framework.common.pojo.PageResult; + +/** + * 权限配置,通用权限配置 Service 接口 + * + * @author 后台管理 + */ +public interface ConfigPermissionService { + + /** + * 创建权限配置,通用权限配置 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + ConfigPermissionRespVO createConfigPermission(@Valid ConfigPermissionSaveReqVO createReqVO); + + /** + * 更新权限配置,通用权限配置 + * + * @param updateReqVO 更新信息 + */ + void updateConfigPermission(@Valid ConfigPermissionSaveReqVO updateReqVO); + + /** + * 删除权限配置,通用权限配置 + * + * @param id 编号 + */ + void deleteConfigPermission(Long id); + + /** + * 批量删除权限配置,通用权限配置 + * + * @param ids 编号 + */ + void deleteConfigPermissionListByIds(List ids); + + /** + * 获得权限配置,通用权限配置 + * + * @param id 编号 + * @return 权限配置,通用权限配置 + */ + ConfigPermissionDO getConfigPermission(Long id); + + /** + * 获得权限配置,通用权限配置分页 + * + * @param pageReqVO 分页查询 + * @return 权限配置,通用权限配置分页 + */ + PageResult getConfigPermissionPage(ConfigPermissionPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigPermissionServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigPermissionServiceImpl.java new file mode 100644 index 0000000..ef1b64b --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigPermissionServiceImpl.java @@ -0,0 +1,92 @@ +package com.zt.plat.module.qms.business.config.service; + +import cn.hutool.core.collection.CollUtil; +import com.zt.plat.module.qms.business.config.controller.vo.ConfigPermissionPageReqVO; +import com.zt.plat.module.qms.business.config.controller.vo.ConfigPermissionRespVO; +import com.zt.plat.module.qms.business.config.controller.vo.ConfigPermissionSaveReqVO; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import java.util.*; + +import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigPermissionDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.util.object.BeanUtils; + +import com.zt.plat.module.qms.business.config.dal.mapper.ConfigPermissionMapper; + +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList; +import static com.zt.plat.module.qms.enums.ErrorCodeConstants.*; + +/** + * 权限配置,通用权限配置 Service 实现类 + * + * @author 后台管理 + */ +@Service +@Validated +public class ConfigPermissionServiceImpl implements ConfigPermissionService { + + @Resource + private ConfigPermissionMapper configPermissionMapper; + + @Override + public ConfigPermissionRespVO createConfigPermission(ConfigPermissionSaveReqVO createReqVO) { + // 插入 + ConfigPermissionDO configPermission = BeanUtils.toBean(createReqVO, ConfigPermissionDO.class); + configPermissionMapper.insert(configPermission); + // 返回 + return BeanUtils.toBean(configPermission, ConfigPermissionRespVO.class); + } + + @Override + public void updateConfigPermission(ConfigPermissionSaveReqVO updateReqVO) { + // 校验存在 + validateConfigPermissionExists(updateReqVO.getId()); + // 更新 + ConfigPermissionDO updateObj = BeanUtils.toBean(updateReqVO, ConfigPermissionDO.class); + configPermissionMapper.updateById(updateObj); + } + + @Override + public void deleteConfigPermission(Long id) { + // 校验存在 + validateConfigPermissionExists(id); + // 删除 + configPermissionMapper.deleteById(id); + } + + @Override + public void deleteConfigPermissionListByIds(List ids) { + // 校验存在 + validateConfigPermissionExists(ids); + // 删除 + configPermissionMapper.deleteByIds(ids); + } + + private void validateConfigPermissionExists(List ids) { + List list = configPermissionMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(CONFIG_PERMISSION_NOT_EXISTS); + } + } + + private void validateConfigPermissionExists(Long id) { + if (configPermissionMapper.selectById(id) == null) { + throw exception(CONFIG_PERMISSION_NOT_EXISTS); + } + } + + @Override + public ConfigPermissionDO getConfigPermission(Long id) { + return configPermissionMapper.selectById(id); + } + + @Override + public PageResult getConfigPermissionPage(ConfigPermissionPageReqVO pageReqVO) { + return configPermissionMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigWarehouseLocationService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigWarehouseLocationService.java new file mode 100644 index 0000000..b24af2e --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigWarehouseLocationService.java @@ -0,0 +1,64 @@ +package com.zt.plat.module.qms.business.config.service; + +import java.util.*; + +import com.zt.plat.module.qms.business.config.controller.vo.ConfigWarehouseLocationPageReqVO; +import com.zt.plat.module.qms.business.config.controller.vo.ConfigWarehouseLocationRespVO; +import com.zt.plat.module.qms.business.config.controller.vo.ConfigWarehouseLocationSaveReqVO; +import jakarta.validation.*; +import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigWarehouseLocationDO; +import com.zt.plat.framework.common.pojo.PageResult; + +/** + * 存放位置 Service 接口 + * + * @author 后台管理 + */ +public interface ConfigWarehouseLocationService { + + /** + * 创建存放位置 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + ConfigWarehouseLocationRespVO createConfigWarehouseLocation(@Valid ConfigWarehouseLocationSaveReqVO createReqVO); + + /** + * 更新存放位置 + * + * @param updateReqVO 更新信息 + */ + void updateConfigWarehouseLocation(@Valid ConfigWarehouseLocationSaveReqVO updateReqVO); + + /** + * 删除存放位置 + * + * @param id 编号 + */ + void deleteConfigWarehouseLocation(Long id); + + /** + * 批量删除存放位置 + * + * @param ids 编号 + */ + void deleteConfigWarehouseLocationListByIds(List ids); + + /** + * 获得存放位置 + * + * @param id 编号 + * @return 存放位置 + */ + ConfigWarehouseLocationDO getConfigWarehouseLocation(Long id); + + /** + * 获得存放位置分页 + * + * @param pageReqVO 分页查询 + * @return 存放位置分页 + */ + PageResult getConfigWarehouseLocationPage(ConfigWarehouseLocationPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigWarehouseLocationServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigWarehouseLocationServiceImpl.java new file mode 100644 index 0000000..ce2c9aa --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/service/ConfigWarehouseLocationServiceImpl.java @@ -0,0 +1,92 @@ +package com.zt.plat.module.qms.business.config.service; + +import cn.hutool.core.collection.CollUtil; +import com.zt.plat.module.qms.business.config.controller.vo.ConfigWarehouseLocationPageReqVO; +import com.zt.plat.module.qms.business.config.controller.vo.ConfigWarehouseLocationRespVO; +import com.zt.plat.module.qms.business.config.controller.vo.ConfigWarehouseLocationSaveReqVO; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import java.util.*; + +import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigWarehouseLocationDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.util.object.BeanUtils; + +import com.zt.plat.module.qms.business.config.dal.mapper.ConfigWarehouseLocationMapper; + +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList; +import static com.zt.plat.module.qms.enums.ErrorCodeConstants.*; + +/** + * 存放位置 Service 实现类 + * + * @author 后台管理 + */ +@Service +@Validated +public class ConfigWarehouseLocationServiceImpl implements ConfigWarehouseLocationService { + + @Resource + private ConfigWarehouseLocationMapper configWarehouseLocationMapper; + + @Override + public ConfigWarehouseLocationRespVO createConfigWarehouseLocation(ConfigWarehouseLocationSaveReqVO createReqVO) { + // 插入 + ConfigWarehouseLocationDO configWarehouseLocation = BeanUtils.toBean(createReqVO, ConfigWarehouseLocationDO.class); + configWarehouseLocationMapper.insert(configWarehouseLocation); + // 返回 + return BeanUtils.toBean(configWarehouseLocation, ConfigWarehouseLocationRespVO.class); + } + + @Override + public void updateConfigWarehouseLocation(ConfigWarehouseLocationSaveReqVO updateReqVO) { + // 校验存在 + validateConfigWarehouseLocationExists(updateReqVO.getId()); + // 更新 + ConfigWarehouseLocationDO updateObj = BeanUtils.toBean(updateReqVO, ConfigWarehouseLocationDO.class); + configWarehouseLocationMapper.updateById(updateObj); + } + + @Override + public void deleteConfigWarehouseLocation(Long id) { + // 校验存在 + validateConfigWarehouseLocationExists(id); + // 删除 + configWarehouseLocationMapper.deleteById(id); + } + + @Override + public void deleteConfigWarehouseLocationListByIds(List ids) { + // 校验存在 + validateConfigWarehouseLocationExists(ids); + // 删除 + configWarehouseLocationMapper.deleteByIds(ids); + } + + private void validateConfigWarehouseLocationExists(List ids) { + List list = configWarehouseLocationMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(CONFIG_WAREHOUSE_LOCATION_NOT_EXISTS); + } + } + + private void validateConfigWarehouseLocationExists(Long id) { + if (configWarehouseLocationMapper.selectById(id) == null) { + throw exception(CONFIG_WAREHOUSE_LOCATION_NOT_EXISTS); + } + } + + @Override + public ConfigWarehouseLocationDO getConfigWarehouseLocation(Long id) { + return configWarehouseLocationMapper.selectById(id); + } + + @Override + public PageResult getConfigWarehouseLocationPage(ConfigWarehouseLocationPageReqVO pageReqVO) { + return configWarehouseLocationMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleDispatchDetailMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleDispatchDetailMapper.xml new file mode 100644 index 0000000..30131be --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleDispatchDetailMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleDispatchMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleDispatchMapper.xml new file mode 100644 index 0000000..43d28b5 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleDispatchMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/config/dal/mapper/ConfigPermissionMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/config/dal/mapper/ConfigPermissionMapper.xml new file mode 100644 index 0000000..f8503e9 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/config/dal/mapper/ConfigPermissionMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/config/dal/mapper/ConfigWarehouseLocationMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/config/dal/mapper/ConfigWarehouseLocationMapper.xml new file mode 100644 index 0000000..848cce9 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/business/config/dal/mapper/ConfigWarehouseLocationMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file