From 66845dcfabebd58f2846af93c752f89c41781545 Mon Sep 17 00:00:00 2001 From: hewencai <2357300448@qq.com> Date: Wed, 29 Oct 2025 10:57:45 +0800 Subject: [PATCH 1/4] =?UTF-8?q?feat:=E6=96=B0=E5=A2=9E=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + .../module/base/enums/ErrorCodeConstants.java | 16 ++ zt-module-base/zt-module-base-server/pom.xml | 7 + .../DocTemplateCategoryController.java | 89 ++++++++++ .../doctemplate/DocTemplateController.java | 82 +++++++++ .../DocTemplateInstanceController.java | 107 ++++++++++++ .../doctemplate/DocTemplateTagController.java | 82 +++++++++ .../vo/DocTemplateCategoryPageReqVO.java | 27 +++ .../vo/DocTemplateCategoryRespVO.java | 43 +++++ .../vo/DocTemplateCategorySaveReqVO.java | 37 ++++ .../vo/DocTemplateInstancePageReqVO.java | 36 ++++ .../vo/DocTemplateInstanceRespVO.java | 51 ++++++ .../vo/DocTemplateInstanceSaveReqVO.java | 49 ++++++ .../doctemplate/vo/DocTemplatePageReqVO.java | 39 +++++ .../doctemplate/vo/DocTemplateRespVO.java | 57 +++++++ .../doctemplate/vo/DocTemplateSaveReqVO.java | 53 ++++++ .../vo/DocTemplateTagPageReqVO.java | 27 +++ .../doctemplate/vo/DocTemplateTagRespVO.java | 63 +++++++ .../vo/DocTemplateTagSaveReqVO.java | 44 +++++ .../DocTemplateCategoryConvert.java | 30 ++++ .../doctemplate/DocTemplateConvert.java | 30 ++++ .../DocTemplateInstanceConvert.java | 30 ++++ .../doctemplate/DocTemplateTagConvert.java | 30 ++++ .../DocTemplateCategoryMapper.java | 28 ++++ .../DocTemplateInstanceMapper.java | 28 ++++ .../dao/doctemplate/DocTemplateMapper.java | 29 ++++ .../dao/doctemplate/DocTemplateTagMapper.java | 28 ++++ .../doctemplate/DocTemplateCategoryDO.java | 63 +++++++ .../dataobject/doctemplate/DocTemplateDO.java | 99 +++++++++++ .../doctemplate/DocTemplateInstanceDO.java | 87 ++++++++++ .../doctemplate/DocTemplateTagDO.java | 81 +++++++++ .../DocTemplateCategoryService.java | 78 +++++++++ .../DocTemplateCategoryServiceImpl.java | 158 ++++++++++++++++++ .../DocTemplateInstanceService.java | 63 +++++++ .../DocTemplateInstanceServiceImpl.java | 136 +++++++++++++++ .../doctemplate/DocTemplateRenderService.java | 31 ++++ .../DocTemplateRenderServiceImpl.java | 144 ++++++++++++++++ .../doctemplate/DocTemplateService.java | 63 +++++++ .../doctemplate/DocTemplateServiceImpl.java | 115 +++++++++++++ .../doctemplate/DocTemplateTagService.java | 63 +++++++ .../DocTemplateTagServiceImpl.java | 115 +++++++++++++ 41 files changed, 2440 insertions(+) create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/DocTemplateCategoryController.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/DocTemplateController.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/DocTemplateInstanceController.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/DocTemplateTagController.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateCategoryPageReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateCategoryRespVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateCategorySaveReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateInstancePageReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateInstanceRespVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateInstanceSaveReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplatePageReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateRespVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateSaveReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateTagPageReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateTagRespVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateTagSaveReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/convert/doctemplate/DocTemplateCategoryConvert.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/convert/doctemplate/DocTemplateConvert.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/convert/doctemplate/DocTemplateInstanceConvert.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/convert/doctemplate/DocTemplateTagConvert.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/doctemplate/DocTemplateCategoryMapper.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/doctemplate/DocTemplateInstanceMapper.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/doctemplate/DocTemplateMapper.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/doctemplate/DocTemplateTagMapper.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/doctemplate/DocTemplateCategoryDO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/doctemplate/DocTemplateDO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/doctemplate/DocTemplateInstanceDO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/doctemplate/DocTemplateTagDO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateCategoryService.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateCategoryServiceImpl.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateInstanceService.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateInstanceServiceImpl.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateRenderService.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateRenderServiceImpl.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateService.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateServiceImpl.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateTagService.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateTagServiceImpl.java diff --git a/.gitignore b/.gitignore index e55eb64b..c652c405 100644 --- a/.gitignore +++ b/.gitignore @@ -73,3 +73,5 @@ functions/mock screenshot .firebase sessionStore +/CLAUDE.md +/nul diff --git a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/base/enums/ErrorCodeConstants.java b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/base/enums/ErrorCodeConstants.java index c36bd6e0..954c17c8 100644 --- a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/base/enums/ErrorCodeConstants.java +++ b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/base/enums/ErrorCodeConstants.java @@ -29,4 +29,20 @@ public interface ErrorCodeConstants { ErrorCode BUSINESS_DICTIONARY_TYPE_NOT_EXISTS = new ErrorCode(1_027_200_003, "业务字典类型不存在"); ErrorCode BUSINESS_DEPARTMENT_INDICATOR_NOT_EXISTS = new ErrorCode(1_027_200_004, "部门持有指标不存在"); + // ========== 模板文档管理系统 1-006-xxx-xxx ========== + // 模板分类 1-006-001-xxx + ErrorCode TEMPLATE_CATEGORY_NOT_EXISTS = new ErrorCode(1_006_001_001, "模板分类不存在"); + + // 标签库 1-006-002-xxx + ErrorCode TEMPLATE_TAG_NOT_EXISTS = new ErrorCode(1_006_002_001, "标签不存在"); + ErrorCode TEMPLATE_TAG_CODE_DUPLICATE = new ErrorCode(1_006_002_002, "标签编码已存在"); + + // 模板 1-006-003-xxx + ErrorCode TEMPLATE_NOT_EXISTS = new ErrorCode(1_006_003_001, "模板不存在"); + ErrorCode TEMPLATE_CODE_DUPLICATE = new ErrorCode(1_006_003_002, "模板编码已存在"); + + // 模板实例 1-006-004-xxx + ErrorCode TEMPLATE_INSTANCE_NOT_EXISTS = new ErrorCode(1_006_004_001, "模板实例不存在"); + ErrorCode TEMPLATE_INSTANCE_CODE_DUPLICATE = new ErrorCode(1_006_004_002, "实例编码已存在"); + } diff --git a/zt-module-base/zt-module-base-server/pom.xml b/zt-module-base/zt-module-base-server/pom.xml index acd97ea1..431837b0 100644 --- a/zt-module-base/zt-module-base-server/pom.xml +++ b/zt-module-base/zt-module-base-server/pom.xml @@ -122,6 +122,13 @@ zt-spring-boot-starter-excel + + + org.apache.velocity + velocity-engine-core + 2.3 + + com.zt.plat diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/DocTemplateCategoryController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/DocTemplateCategoryController.java new file mode 100644 index 00000000..d673d013 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/DocTemplateCategoryController.java @@ -0,0 +1,89 @@ +package com.zt.plat.module.base.controller.admin.doctemplate; + +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateCategoryPageReqVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateCategoryRespVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateCategorySaveReqVO; +import com.zt.plat.module.base.service.doctemplate.DocTemplateCategoryService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +import java.util.List; + +import static com.zt.plat.framework.common.pojo.CommonResult.success; + +/** + * 模板分类 Controller + * + * @author 系统生成 + */ +@Tag(name = "管理后台 - 模板分类") +@RestController +@RequestMapping("/base/doc-template-category") +@Validated +public class DocTemplateCategoryController { + + @Resource + private DocTemplateCategoryService templateCategoryService; + + @PostMapping("/create") + @Operation(summary = "创建模板分类") + @PreAuthorize("@ss.hasPermission('base:template-category:create')") + public CommonResult createTemplateCategory(@Valid @RequestBody DocTemplateCategorySaveReqVO createReqVO) { + return success(templateCategoryService.createTemplateCategory(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新模板分类") + @PreAuthorize("@ss.hasPermission('base:template-category:update')") + public CommonResult updateTemplateCategory(@Valid @RequestBody DocTemplateCategorySaveReqVO updateReqVO) { + templateCategoryService.updateTemplateCategory(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除模板分类") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('base:template-category:delete')") + public CommonResult deleteTemplateCategory(@RequestParam("id") Long id) { + templateCategoryService.deleteTemplateCategory(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得模板分类") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('base:template-category:query')") + public CommonResult getTemplateCategory(@RequestParam("id") Long id) { + return success(templateCategoryService.getTemplateCategory(id)); + } + + @GetMapping("/page") + @Operation(summary = "获得模板分类分页") + @PreAuthorize("@ss.hasPermission('base:template-category:query')") + public CommonResult> getTemplateCategoryPage(@Valid DocTemplateCategoryPageReqVO pageReqVO) { + return success(templateCategoryService.getTemplateCategoryPage(pageReqVO)); + } + + @GetMapping("/list") + @Operation(summary = "获得模板分类列表") + @PreAuthorize("@ss.hasPermission('base:template-category:query')") + public CommonResult> getTemplateCategoryList() { + return success(templateCategoryService.getTemplateCategoryList()); + } + + @GetMapping("/tree") + @Operation(summary = "获得模板分类树形结构") + @PreAuthorize("@ss.hasPermission('base:template-category:query')") + public CommonResult> getTemplateCategoryTree() { + return success(templateCategoryService.buildTree()); + } + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/DocTemplateController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/DocTemplateController.java new file mode 100644 index 00000000..0b23670e --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/DocTemplateController.java @@ -0,0 +1,82 @@ +package com.zt.plat.module.base.controller.admin.doctemplate; + +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplatePageReqVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateRespVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateSaveReqVO; +import com.zt.plat.module.base.service.doctemplate.DocTemplateService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +import java.util.List; + +import static com.zt.plat.framework.common.pojo.CommonResult.success; + +/** + * 模板 Controller + * + * @author 系统生成 + */ +@Tag(name = "管理后台 - 模板") +@RestController +@RequestMapping("/base/doc-template") +@Validated +public class DocTemplateController { + + @Resource + private DocTemplateService templateService; + + @PostMapping("/create") + @Operation(summary = "创建模板") + @PreAuthorize("@ss.hasPermission('base:template:create')") + public CommonResult createTemplate(@Valid @RequestBody DocTemplateSaveReqVO createReqVO) { + return success(templateService.createTemplate(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新模板") + @PreAuthorize("@ss.hasPermission('base:template:update')") + public CommonResult updateTemplate(@Valid @RequestBody DocTemplateSaveReqVO updateReqVO) { + templateService.updateTemplate(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除模板") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('base:template:delete')") + public CommonResult deleteTemplate(@RequestParam("id") Long id) { + templateService.deleteTemplate(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得模板") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('base:template:query')") + public CommonResult getTemplate(@RequestParam("id") Long id) { + return success(templateService.getTemplate(id)); + } + + @GetMapping("/page") + @Operation(summary = "获得模板分页") + @PreAuthorize("@ss.hasPermission('base:template:query')") + public CommonResult> getTemplatePage(@Valid DocTemplatePageReqVO pageReqVO) { + return success(templateService.getTemplatePage(pageReqVO)); + } + + @GetMapping("/list") + @Operation(summary = "获得模板列表") + @PreAuthorize("@ss.hasPermission('base:template:query')") + public CommonResult> getTemplateList() { + return success(templateService.getTemplateList()); + } + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/DocTemplateInstanceController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/DocTemplateInstanceController.java new file mode 100644 index 00000000..4b3b5132 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/DocTemplateInstanceController.java @@ -0,0 +1,107 @@ +package com.zt.plat.module.base.controller.admin.doctemplate; + +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateInstancePageReqVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateInstanceRespVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateInstanceSaveReqVO; +import com.zt.plat.module.base.service.doctemplate.DocTemplateInstanceService; +import com.zt.plat.module.base.service.doctemplate.DocTemplateRenderService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +import java.util.List; +import java.util.Map; + +import static com.zt.plat.framework.common.pojo.CommonResult.success; + +/** + * 模板实例 Controller + * + * @author 系统生成 + */ +@Tag(name = "管理后台 - 模板实例") +@RestController +@RequestMapping("/base/doc-template-instance") +@Validated +public class DocTemplateInstanceController { + + @Resource + private DocTemplateInstanceService templateInstanceService; + + @Resource + private DocTemplateRenderService renderService; + + @PostMapping("/create") + @Operation(summary = "创建模板实例") + @PreAuthorize("@ss.hasPermission('base:template-instance:create')") + public CommonResult createTemplateInstance(@Valid @RequestBody DocTemplateInstanceSaveReqVO createReqVO) { + return success(templateInstanceService.createTemplateInstance(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新模板实例") + @PreAuthorize("@ss.hasPermission('base:template-instance:update')") + public CommonResult updateTemplateInstance(@Valid @RequestBody DocTemplateInstanceSaveReqVO updateReqVO) { + templateInstanceService.updateTemplateInstance(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除模板实例") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('base:template-instance:delete')") + public CommonResult deleteTemplateInstance(@RequestParam("id") Long id) { + templateInstanceService.deleteTemplateInstance(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得模板实例") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('base:template-instance:query')") + public CommonResult getTemplateInstance(@RequestParam("id") Long id) { + return success(templateInstanceService.getTemplateInstance(id)); + } + + @GetMapping("/page") + @Operation(summary = "获得模板实例分页") + @PreAuthorize("@ss.hasPermission('base:template-instance:query')") + public CommonResult> getTemplateInstancePage(@Valid DocTemplateInstancePageReqVO pageReqVO) { + return success(templateInstanceService.getTemplateInstancePage(pageReqVO)); + } + + @GetMapping("/list") + @Operation(summary = "获得模板实例列表") + @PreAuthorize("@ss.hasPermission('base:template-instance:query')") + public CommonResult> getTemplateInstanceList() { + return success(templateInstanceService.getTemplateInstanceList()); + } + + @PostMapping("/render") + @Operation(summary = "渲染模板实例") + @PreAuthorize("@ss.hasPermission('base:template-instance:query')") + public CommonResult renderTemplateInstance( + @Parameter(name = "instanceId", description = "实例ID", required = true) @RequestParam("instanceId") Long instanceId, + @Parameter(name = "dataMap", description = "数据Map") @RequestBody(required = false) Map dataMap) { + String renderedContent = renderService.render(null, instanceId, null, dataMap); + return success(renderedContent); + } + + @PostMapping("/render-and-save") + @Operation(summary = "渲染并保存模板实例") + @PreAuthorize("@ss.hasPermission('base:template-instance:update')") + public CommonResult renderAndSaveTemplateInstance( + @Parameter(name = "instanceId", description = "实例ID", required = true) @RequestParam("instanceId") Long instanceId, + @Parameter(name = "dataMap", description = "数据Map", required = true) @RequestBody Map dataMap) { + renderService.renderAndSave(instanceId, dataMap); + return success(true); + } + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/DocTemplateTagController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/DocTemplateTagController.java new file mode 100644 index 00000000..25e2ecfd --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/DocTemplateTagController.java @@ -0,0 +1,82 @@ +package com.zt.plat.module.base.controller.admin.doctemplate; + +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateTagPageReqVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateTagRespVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateTagSaveReqVO; +import com.zt.plat.module.base.service.doctemplate.DocTemplateTagService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +import java.util.List; + +import static com.zt.plat.framework.common.pojo.CommonResult.success; + +/** + * 标签库 Controller + * + * @author 系统生成 + */ +@Tag(name = "管理后台 - 标签库") +@RestController +@RequestMapping("/base/doc-template-tag") +@Validated +public class DocTemplateTagController { + + @Resource + private DocTemplateTagService templateTagService; + + @PostMapping("/create") + @Operation(summary = "创建标签") + @PreAuthorize("@ss.hasPermission('base:template-tag:create')") + public CommonResult createTemplateTag(@Valid @RequestBody DocTemplateTagSaveReqVO createReqVO) { + return success(templateTagService.createTemplateTag(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新标签") + @PreAuthorize("@ss.hasPermission('base:template-tag:update')") + public CommonResult updateTemplateTag(@Valid @RequestBody DocTemplateTagSaveReqVO updateReqVO) { + templateTagService.updateTemplateTag(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除标签") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('base:template-tag:delete')") + public CommonResult deleteTemplateTag(@RequestParam("id") Long id) { + templateTagService.deleteTemplateTag(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得标签") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('base:template-tag:query')") + public CommonResult getTemplateTag(@RequestParam("id") Long id) { + return success(templateTagService.getTemplateTag(id)); + } + + @GetMapping("/page") + @Operation(summary = "获得标签分页") + @PreAuthorize("@ss.hasPermission('base:template-tag:query')") + public CommonResult> getTemplateTagPage(@Valid DocTemplateTagPageReqVO pageReqVO) { + return success(templateTagService.getTemplateTagPage(pageReqVO)); + } + + @GetMapping("/list") + @Operation(summary = "获得标签列表") + @PreAuthorize("@ss.hasPermission('base:template-tag:query')") + public CommonResult> getTemplateTagList() { + return success(templateTagService.getTemplateTagList()); + } + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateCategoryPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateCategoryPageReqVO.java new file mode 100644 index 00000000..da89763e --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateCategoryPageReqVO.java @@ -0,0 +1,27 @@ +package com.zt.plat.module.base.controller.admin.doctemplate.vo; + +import com.zt.plat.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Schema(description = "管理后台 - 模板分类分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class DocTemplateCategoryPageReqVO extends PageParam { + + @Schema(description = "分类名称", example = "采购类") + private String categoryName; + + @Schema(description = "分类编码", example = "PURCHASE") + private String categoryCode; + + @Schema(description = "父分类ID", example = "1") + private Long parentId; + + @Schema(description = "层级(1=大类,2=小类)", example = "1") + private Integer level; + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateCategoryRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateCategoryRespVO.java new file mode 100644 index 00000000..fe742441 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateCategoryRespVO.java @@ -0,0 +1,43 @@ +package com.zt.plat.module.base.controller.admin.doctemplate.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +@Schema(description = "管理后台 - 模板分类 Response VO") +@Data +public class DocTemplateCategoryRespVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "分类名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "采购类") + private String categoryName; + + @Schema(description = "分类编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "PURCHASE") + private String categoryCode; + + @Schema(description = "父分类ID", example = "1") + private Long parentId; + + @Schema(description = "层级(1=大类,2=小类)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer level; + + @Schema(description = "排序号", example = "1") + private Integer sort; + + @Schema(description = "备注", example = "采购业务相关文档分类") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + + @Schema(description = "创建人", example = "admin") + private String creator; + + @Schema(description = "子分类列表") + private List children; + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateCategorySaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateCategorySaveReqVO.java new file mode 100644 index 00000000..21217ac2 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateCategorySaveReqVO.java @@ -0,0 +1,37 @@ +package com.zt.plat.module.base.controller.admin.doctemplate.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 模板分类新增/修改 Request VO") +@Data +public class DocTemplateCategorySaveReqVO { + + @Schema(description = "主键", example = "1024") + private Long id; + + @Schema(description = "分类名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "采购类") + @NotBlank(message = "分类名称不能为空") + private String categoryName; + + @Schema(description = "分类编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "PURCHASE") + @NotBlank(message = "分类编码不能为空") + private String categoryCode; + + @Schema(description = "父分类ID", example = "1") + private Long parentId; + + @Schema(description = "层级(1=大类,2=小类)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "层级不能为空") + private Integer level; + + @Schema(description = "排序号", example = "1") + private Integer sort; + + @Schema(description = "备注", example = "采购业务相关文档分类") + private String remark; + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateInstancePageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateInstancePageReqVO.java new file mode 100644 index 00000000..ab6f3cb4 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateInstancePageReqVO.java @@ -0,0 +1,36 @@ +package com.zt.plat.module.base.controller.admin.doctemplate.vo; + +import com.zt.plat.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +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 +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class DocTemplateInstancePageReqVO extends PageParam { + + @Schema(description = "实例名称", example = "采购合同") + private String instanceName; + + @Schema(description = "模板ID", example = "1") + private Long templateId; + + @Schema(description = "业务关联类型", example = "contract") + private String businessType; + + @Schema(description = "状态", example = "draft") + private String status; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateInstanceRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateInstanceRespVO.java new file mode 100644 index 00000000..b27bab09 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateInstanceRespVO.java @@ -0,0 +1,51 @@ +package com.zt.plat.module.base.controller.admin.doctemplate.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 模板实例 Response VO") +@Data +public class DocTemplateInstanceRespVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "实例名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "2025年上海XX供应商采购合同") + private String instanceName; + + @Schema(description = "实例编码", example = "DOC-20250127-001") + private String instanceCode; + + @Schema(description = "引用的模板ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long templateId; + + @Schema(description = "业务关联类型", example = "contract") + private String businessType; + + @Schema(description = "业务关联ID", example = "100") + private Long businessId; + + @Schema(description = "业务关联标签", example = "PC-2025-001") + private String businessLabel; + + @Schema(description = "用户编辑后的内容") + private String editedContent; + + @Schema(description = "渲染后的最终内容") + private String renderedContent; + + @Schema(description = "备注", example = "采购合同文档") + private String remark; + + @Schema(description = "状态", example = "draft") + private String status; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + + @Schema(description = "创建人", example = "admin") + private String creator; + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateInstanceSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateInstanceSaveReqVO.java new file mode 100644 index 00000000..49e0a137 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateInstanceSaveReqVO.java @@ -0,0 +1,49 @@ +package com.zt.plat.module.base.controller.admin.doctemplate.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 模板实例新增/修改 Request VO") +@Data +public class DocTemplateInstanceSaveReqVO { + + @Schema(description = "主键", example = "1024") + private Long id; + + @Schema(description = "实例名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "2025年上海XX供应商采购合同") + @NotBlank(message = "实例名称不能为空") + private String instanceName; + + @Schema(description = "实例编码", example = "DOC-20250127-001") + private String instanceCode; + + @Schema(description = "引用的模板ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "模板ID不能为空") + private Long templateId; + + @Schema(description = "业务关联类型", example = "contract") + private String businessType; + + @Schema(description = "业务关联ID", example = "100") + private Long businessId; + + @Schema(description = "业务关联标签", example = "PC-2025-001") + private String businessLabel; + + @Schema(description = "用户编辑后的内容", requiredMode = Schema.RequiredMode.REQUIRED) + @NotBlank(message = "内容不能为空") + private String editedContent; + + @Schema(description = "渲染后的最终内容") + private String renderedContent; + + @Schema(description = "备注", example = "采购合同文档") + private String remark; + + @Schema(description = "状态", example = "draft") + private String status; + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplatePageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplatePageReqVO.java new file mode 100644 index 00000000..ee8f37c8 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplatePageReqVO.java @@ -0,0 +1,39 @@ +package com.zt.plat.module.base.controller.admin.doctemplate.vo; + +import com.zt.plat.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +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 +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class DocTemplatePageReqVO extends PageParam { + + @Schema(description = "模板名称", example = "采购合同模板") + private String tmplName; + + @Schema(description = "模板编码", example = "PO_CONTRACT_001") + private String tmplCode; + + @Schema(description = "所属大类", example = "1") + private Long bigCategoryId; + + @Schema(description = "所属小类", example = "11") + private Long smallCategoryId; + + @Schema(description = "状态(1=启用,0=停用,2=草稿)", example = "1") + private String enabled; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateRespVO.java new file mode 100644 index 00000000..3a86c8e8 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateRespVO.java @@ -0,0 +1,57 @@ +package com.zt.plat.module.base.controller.admin.doctemplate.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 模板 Response VO") +@Data +public class DocTemplateRespVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "模板名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "采购合同模板") + private String tmplName; + + @Schema(description = "模板编码(唯一)", requiredMode = Schema.RequiredMode.REQUIRED, example = "PO_CONTRACT_001") + private String tmplCode; + + @Schema(description = "模板图标", example = "📄") + private String icon; + + @Schema(description = "所属大类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long bigCategoryId; + + @Schema(description = "所属小类", example = "11") + private Long smallCategoryId; + + @Schema(description = "版本号", example = "v1.2") + private String version; + + @Schema(description = "模板描述", example = "标准采购合同范本") + private String description; + + @Schema(description = "模板内容(HTML,含占位符)", requiredMode = Schema.RequiredMode.REQUIRED) + private String content; + + @Schema(description = "SQL配置(JSON格式,可选)") + private String sqlConfig; + + @Schema(description = "数据源标识", example = "default") + private String dataSource; + + @Schema(description = "使用次数", example = "10") + private Integer useCount; + + @Schema(description = "状态(1=启用,0=停用,2=草稿)", example = "1") + private String enabled; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + + @Schema(description = "创建人", example = "admin") + private String creator; + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateSaveReqVO.java new file mode 100644 index 00000000..19003af9 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateSaveReqVO.java @@ -0,0 +1,53 @@ +package com.zt.plat.module.base.controller.admin.doctemplate.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 模板新增/修改 Request VO") +@Data +public class DocTemplateSaveReqVO { + + @Schema(description = "主键", example = "1024") + private Long id; + + @Schema(description = "模板名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "采购合同模板") + @NotBlank(message = "模板名称不能为空") + private String tmplName; + + @Schema(description = "模板编码(唯一)", requiredMode = Schema.RequiredMode.REQUIRED, example = "PO_CONTRACT_001") + @NotBlank(message = "模板编码不能为空") + private String tmplCode; + + @Schema(description = "模板图标", example = "📄") + private String icon; + + @Schema(description = "所属大类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "所属大类不能为空") + private Long bigCategoryId; + + @Schema(description = "所属小类", example = "11") + private Long smallCategoryId; + + @Schema(description = "版本号", example = "v1.2") + private String version; + + @Schema(description = "模板描述", example = "标准采购合同范本") + private String description; + + @Schema(description = "模板内容(HTML,含占位符)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotBlank(message = "模板内容不能为空") + private String content; + + @Schema(description = "SQL配置(JSON格式,可选)") + private String sqlConfig; + + @Schema(description = "数据源标识", example = "default") + private String dataSource; + + @Schema(description = "状态(1=启用,0=停用,2=草稿)", example = "2") + private String enabled; + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateTagPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateTagPageReqVO.java new file mode 100644 index 00000000..8d7f9220 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateTagPageReqVO.java @@ -0,0 +1,27 @@ +package com.zt.plat.module.base.controller.admin.doctemplate.vo; + +import com.zt.plat.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Schema(description = "管理后台 - 标签库分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class DocTemplateTagPageReqVO extends PageParam { + + @Schema(description = "标签名称", example = "合同编号") + private String tagName; + + @Schema(description = "标签编码", example = "contractNo") + private String tagCode; + + @Schema(description = "所属分类ID", example = "1") + private Long categoryId; + + @Schema(description = "是否启用(1=启用,0=停用)", example = "1") + private String enabled; + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateTagRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateTagRespVO.java new file mode 100644 index 00000000..9c031389 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateTagRespVO.java @@ -0,0 +1,63 @@ +package com.zt.plat.module.base.controller.admin.doctemplate.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 标签库 Response VO") +@Data +public class DocTemplateTagRespVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "标签名称(中文)", requiredMode = Schema.RequiredMode.REQUIRED, example = "合同编号") + private String tagName; + + @Schema(description = "标签编码(Velocity变量名)", requiredMode = Schema.RequiredMode.REQUIRED, example = "contractNo") + private String tagCode; + + @Schema(description = "所属分类ID", example = "1") + private Long categoryId; + + @Schema(description = "所属分类名称", example = "合同管理") + private String categoryName; + + @Schema(description = "数据类型", example = "String") + private String dataType; + + @Schema(description = "默认值", example = "") + private String defaultValue; + + @Schema(description = "SQL脚本(可选,仅保存参考)", example = "SELECT contract_no FROM contract_main WHERE id = #{businessId}") + private String sqlScript; + + @Schema(description = "描述", example = "合同主表的合同编号字段") + private String description; + + @Schema(description = "排序号", example = "1") + private Integer sort; + + @Schema(description = "是否启用(1=启用,0=停用)", example = "1") + private String enabled; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + + @Schema(description = "创建人ID", example = "1") + private String creator; + + @Schema(description = "创建人名称", example = "管理员") + private String creatorName; + + @Schema(description = "更新时间") + private LocalDateTime updateTime; + + @Schema(description = "更新人ID", example = "1") + private String updater; + + @Schema(description = "更新人名称", example = "管理员") + private String updaterName; + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateTagSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateTagSaveReqVO.java new file mode 100644 index 00000000..4e066018 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/doctemplate/vo/DocTemplateTagSaveReqVO.java @@ -0,0 +1,44 @@ +package com.zt.plat.module.base.controller.admin.doctemplate.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import jakarta.validation.constraints.NotBlank; + +@Schema(description = "管理后台 - 标签库新增/修改 Request VO") +@Data +public class DocTemplateTagSaveReqVO { + + @Schema(description = "主键", example = "1024") + private Long id; + + @Schema(description = "标签名称(中文)", requiredMode = Schema.RequiredMode.REQUIRED, example = "合同编号") + @NotBlank(message = "标签名称不能为空") + private String tagName; + + @Schema(description = "标签编码(Velocity变量名)", requiredMode = Schema.RequiredMode.REQUIRED, example = "contractNo") + @NotBlank(message = "标签编码不能为空") + private String tagCode; + + @Schema(description = "所属分类ID", example = "1") + private Long categoryId; + + @Schema(description = "数据类型", example = "String") + private String dataType; + + @Schema(description = "默认值", example = "") + private String defaultValue; + + @Schema(description = "SQL脚本(可选,仅保存参考)", example = "SELECT contract_no FROM contract_main WHERE id = #{businessId}") + private String sqlScript; + + @Schema(description = "描述", example = "合同主表的合同编号字段") + private String description; + + @Schema(description = "排序号", example = "1") + private Integer sort; + + @Schema(description = "是否启用(1=启用,0=停用)", example = "1") + private String enabled; + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/convert/doctemplate/DocTemplateCategoryConvert.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/convert/doctemplate/DocTemplateCategoryConvert.java new file mode 100644 index 00000000..2ec24029 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/convert/doctemplate/DocTemplateCategoryConvert.java @@ -0,0 +1,30 @@ +package com.zt.plat.module.base.convert.doctemplate; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateCategoryRespVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateCategorySaveReqVO; +import com.zt.plat.module.base.dal.dataobject.doctemplate.DocTemplateCategoryDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 模板分类 Convert + * + * @author 系统生成 + */ +@Mapper +public interface DocTemplateCategoryConvert { + + DocTemplateCategoryConvert INSTANCE = Mappers.getMapper(DocTemplateCategoryConvert.class); + + DocTemplateCategoryDO convert(DocTemplateCategorySaveReqVO bean); + + DocTemplateCategoryRespVO convert(DocTemplateCategoryDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/convert/doctemplate/DocTemplateConvert.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/convert/doctemplate/DocTemplateConvert.java new file mode 100644 index 00000000..95590538 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/convert/doctemplate/DocTemplateConvert.java @@ -0,0 +1,30 @@ +package com.zt.plat.module.base.convert.doctemplate; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateRespVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateSaveReqVO; +import com.zt.plat.module.base.dal.dataobject.doctemplate.DocTemplateDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 模板 Convert + * + * @author 系统生成 + */ +@Mapper +public interface DocTemplateConvert { + + DocTemplateConvert INSTANCE = Mappers.getMapper(DocTemplateConvert.class); + + DocTemplateDO convert(DocTemplateSaveReqVO bean); + + DocTemplateRespVO convert(DocTemplateDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/convert/doctemplate/DocTemplateInstanceConvert.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/convert/doctemplate/DocTemplateInstanceConvert.java new file mode 100644 index 00000000..716cedce --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/convert/doctemplate/DocTemplateInstanceConvert.java @@ -0,0 +1,30 @@ +package com.zt.plat.module.base.convert.doctemplate; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateInstanceRespVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateInstanceSaveReqVO; +import com.zt.plat.module.base.dal.dataobject.doctemplate.DocTemplateInstanceDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 模板实例 Convert + * + * @author 系统生成 + */ +@Mapper +public interface DocTemplateInstanceConvert { + + DocTemplateInstanceConvert INSTANCE = Mappers.getMapper(DocTemplateInstanceConvert.class); + + DocTemplateInstanceDO convert(DocTemplateInstanceSaveReqVO bean); + + DocTemplateInstanceRespVO convert(DocTemplateInstanceDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/convert/doctemplate/DocTemplateTagConvert.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/convert/doctemplate/DocTemplateTagConvert.java new file mode 100644 index 00000000..1ef73be5 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/convert/doctemplate/DocTemplateTagConvert.java @@ -0,0 +1,30 @@ +package com.zt.plat.module.base.convert.doctemplate; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateTagRespVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateTagSaveReqVO; +import com.zt.plat.module.base.dal.dataobject.doctemplate.DocTemplateTagDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 标签库 Convert + * + * @author 系统生成 + */ +@Mapper +public interface DocTemplateTagConvert { + + DocTemplateTagConvert INSTANCE = Mappers.getMapper(DocTemplateTagConvert.class); + + DocTemplateTagDO convert(DocTemplateTagSaveReqVO bean); + + DocTemplateTagRespVO convert(DocTemplateTagDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/doctemplate/DocTemplateCategoryMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/doctemplate/DocTemplateCategoryMapper.java new file mode 100644 index 00000000..b6310e0d --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/doctemplate/DocTemplateCategoryMapper.java @@ -0,0 +1,28 @@ +package com.zt.plat.module.base.dal.dao.doctemplate; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateCategoryPageReqVO; +import com.zt.plat.module.base.dal.dataobject.doctemplate.DocTemplateCategoryDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 模板分类 Mapper + * + * @author 系统生成 + */ +@Mapper +public interface DocTemplateCategoryMapper extends BaseMapperX { + + default PageResult selectPage(DocTemplateCategoryPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(DocTemplateCategoryDO::getCategoryName, reqVO.getCategoryName()) + .eqIfPresent(DocTemplateCategoryDO::getCategoryCode, reqVO.getCategoryCode()) + .eqIfPresent(DocTemplateCategoryDO::getParentId, reqVO.getParentId()) + .eqIfPresent(DocTemplateCategoryDO::getLevel, reqVO.getLevel()) + .orderByAsc(DocTemplateCategoryDO::getSort) + .orderByDesc(DocTemplateCategoryDO::getId)); + } + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/doctemplate/DocTemplateInstanceMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/doctemplate/DocTemplateInstanceMapper.java new file mode 100644 index 00000000..80630834 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/doctemplate/DocTemplateInstanceMapper.java @@ -0,0 +1,28 @@ +package com.zt.plat.module.base.dal.dao.doctemplate; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateInstancePageReqVO; +import com.zt.plat.module.base.dal.dataobject.doctemplate.DocTemplateInstanceDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 模板实例 Mapper + * + * @author 系统生成 + */ +@Mapper +public interface DocTemplateInstanceMapper extends BaseMapperX { + + default PageResult selectPage(DocTemplateInstancePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(DocTemplateInstanceDO::getInstanceName, reqVO.getInstanceName()) + .eqIfPresent(DocTemplateInstanceDO::getTemplateId, reqVO.getTemplateId()) + .eqIfPresent(DocTemplateInstanceDO::getBusinessType, reqVO.getBusinessType()) + .eqIfPresent(DocTemplateInstanceDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(DocTemplateInstanceDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(DocTemplateInstanceDO::getId)); + } + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/doctemplate/DocTemplateMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/doctemplate/DocTemplateMapper.java new file mode 100644 index 00000000..8de6f6b9 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/doctemplate/DocTemplateMapper.java @@ -0,0 +1,29 @@ +package com.zt.plat.module.base.dal.dao.doctemplate; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplatePageReqVO; +import com.zt.plat.module.base.dal.dataobject.doctemplate.DocTemplateDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 模板 Mapper + * + * @author 系统生成 + */ +@Mapper +public interface DocTemplateMapper extends BaseMapperX { + + default PageResult selectPage(DocTemplatePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(DocTemplateDO::getTmplName, reqVO.getTmplName()) + .likeIfPresent(DocTemplateDO::getTmplCode, reqVO.getTmplCode()) + .eqIfPresent(DocTemplateDO::getBigCategoryId, reqVO.getBigCategoryId()) + .eqIfPresent(DocTemplateDO::getSmallCategoryId, reqVO.getSmallCategoryId()) + .eqIfPresent(DocTemplateDO::getEnabled, reqVO.getEnabled()) + .betweenIfPresent(DocTemplateDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(DocTemplateDO::getId)); + } + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/doctemplate/DocTemplateTagMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/doctemplate/DocTemplateTagMapper.java new file mode 100644 index 00000000..d791d60e --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/doctemplate/DocTemplateTagMapper.java @@ -0,0 +1,28 @@ +package com.zt.plat.module.base.dal.dao.doctemplate; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateTagPageReqVO; +import com.zt.plat.module.base.dal.dataobject.doctemplate.DocTemplateTagDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 标签库 Mapper + * + * @author 系统生成 + */ +@Mapper +public interface DocTemplateTagMapper extends BaseMapperX { + + default PageResult selectPage(DocTemplateTagPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(DocTemplateTagDO::getTagName, reqVO.getTagName()) + .likeIfPresent(DocTemplateTagDO::getTagCode, reqVO.getTagCode()) + .eqIfPresent(DocTemplateTagDO::getCategoryId, reqVO.getCategoryId()) + .eqIfPresent(DocTemplateTagDO::getEnabled, reqVO.getEnabled()) + .orderByAsc(DocTemplateTagDO::getSort) + .orderByDesc(DocTemplateTagDO::getId)); + } + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/doctemplate/DocTemplateCategoryDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/doctemplate/DocTemplateCategoryDO.java new file mode 100644 index 00000000..390706f2 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/doctemplate/DocTemplateCategoryDO.java @@ -0,0 +1,63 @@ +package com.zt.plat.module.base.dal.dataobject.doctemplate; + +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +import lombok.*; + +/** + * 模板分类 DO + * + * @author 系统生成 + */ +@TableName(value = "bse_doc_category") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DocTemplateCategoryDO extends BusinessBaseDO { + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + + /** + * 分类名称 + */ + @TableField("category_name") + private String categoryName; + + /** + * 分类编码 + */ + @TableField("category_code") + private String categoryCode; + + /** + * 父分类ID(NULL=大类) + */ + @TableField("parent_id") + private Long parentId; + + /** + * 层级(1=大类,2=小类) + */ + @TableField("level") + private Integer level; + + /** + * 排序号 + */ + @TableField("sort") + private Integer sort; + + /** + * 备注 + */ + @TableField("remark") + private String remark; + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/doctemplate/DocTemplateDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/doctemplate/DocTemplateDO.java new file mode 100644 index 00000000..344835a9 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/doctemplate/DocTemplateDO.java @@ -0,0 +1,99 @@ +package com.zt.plat.module.base.dal.dataobject.doctemplate; + +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +import lombok.*; + +/** + * 模板 DO + * + * @author 系统生成 + */ +@TableName(value = "bse_doc_tmpl") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DocTemplateDO extends BusinessBaseDO { + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + + /** + * 模板名称 + */ + @TableField("tmpl_name") + private String tmplName; + + /** + * 模板编码(唯一) + */ + @TableField("tmpl_code") + private String tmplCode; + + /** + * 模板图标 + */ + @TableField("icon") + private String icon; + + /** + * 所属大类 + */ + @TableField("big_category_id") + private Long bigCategoryId; + + /** + * 所属小类 + */ + @TableField("small_category_id") + private Long smallCategoryId; + + /** + * 版本号 + */ + @TableField("version") + private String version; + + /** + * 模板描述 + */ + @TableField("description") + private String description; + + /** + * 模板内容(HTML,含占位符) + */ + @TableField("content") + private String content; + + /** + * SQL配置(JSON格式,可选) + */ + @TableField("sql_config") + private String sqlConfig; + + /** + * 数据源标识 + */ + @TableField("data_source") + private String dataSource; + + /** + * 使用次数(引用创建实例的次数) + */ + @TableField("use_count") + private Integer useCount; + + /** + * 状态(1=启用,0=停用,2=草稿) + */ + @TableField("enabled") + private String enabled; + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/doctemplate/DocTemplateInstanceDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/doctemplate/DocTemplateInstanceDO.java new file mode 100644 index 00000000..88621fd1 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/doctemplate/DocTemplateInstanceDO.java @@ -0,0 +1,87 @@ +package com.zt.plat.module.base.dal.dataobject.doctemplate; + +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +import lombok.*; + +/** + * 模板实例 DO + * + * @author 系统生成 + */ +@TableName(value = "bse_doc_instance") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DocTemplateInstanceDO extends BusinessBaseDO { + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + + /** + * 实例名称 + */ + @TableField("instance_name") + private String instanceName; + + /** + * 实例编码(唯一) + */ + @TableField("instance_code") + private String instanceCode; + + /** + * 引用的模板ID + */ + @TableField("template_id") + private Long templateId; + + /** + * 业务关联类型 + */ + @TableField("business_type") + private String businessType; + + /** + * 业务关联ID + */ + @TableField("business_id") + private Long businessId; + + /** + * 业务关联标签(如 PC-2025-001) + */ + @TableField("business_label") + private String businessLabel; + + /** + * 用户编辑后的内容(含占位符) + */ + @TableField("edited_content") + private String editedContent; + + /** + * 渲染后的最终内容(占位符已替换) + */ + @TableField("rendered_content") + private String renderedContent; + + /** + * 备注 + */ + @TableField("remark") + private String remark; + + /** + * 状态(draft=草稿,published=已发布) + */ + @TableField("status") + private String status; + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/doctemplate/DocTemplateTagDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/doctemplate/DocTemplateTagDO.java new file mode 100644 index 00000000..564561ff --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/doctemplate/DocTemplateTagDO.java @@ -0,0 +1,81 @@ +package com.zt.plat.module.base.dal.dataobject.doctemplate; + +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +import lombok.*; + +/** + * 标签库 DO + * + * @author 系统生成 + */ +@TableName(value = "bse_doc_tag") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DocTemplateTagDO extends BusinessBaseDO { + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + + /** + * 标签名称(中文) + */ + @TableField("tag_name") + private String tagName; + + /** + * 标签编码(Velocity变量名) + */ + @TableField("tag_code") + private String tagCode; + + /** + * 所属分类ID + */ + @TableField("category_id") + private Long categoryId; + + /** + * 数据类型(String/Number/Date/Boolean) + */ + @TableField("data_type") + private String dataType; + + /** + * 默认值 + */ + @TableField("default_value") + private String defaultValue; + + /** + * SQL脚本(可选,仅保存参考) + */ + @TableField("sql_script") + private String sqlScript; + + /** + * 描述 + */ + @TableField("description") + private String description; + + /** + * 排序号 + */ + @TableField("sort") + private Integer sort; + + /** + * 是否启用(1=启用,0=停用) + */ + @TableField("enabled") + private String enabled; + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateCategoryService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateCategoryService.java new file mode 100644 index 00000000..6b1d7eb0 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateCategoryService.java @@ -0,0 +1,78 @@ +package com.zt.plat.module.base.service.doctemplate; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateCategoryPageReqVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateCategoryRespVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateCategorySaveReqVO; + +import jakarta.validation.Valid; +import java.util.List; + +/** + * 模板分类 Service 接口 + * + * @author 系统生成 + */ +public interface DocTemplateCategoryService { + + /** + * 创建模板分类 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createTemplateCategory(@Valid DocTemplateCategorySaveReqVO createReqVO); + + /** + * 更新模板分类 + * + * @param updateReqVO 更新信息 + */ + void updateTemplateCategory(@Valid DocTemplateCategorySaveReqVO updateReqVO); + + /** + * 删除模板分类 + * + * @param id 编号 + */ + void deleteTemplateCategory(Long id); + + /** + * 获得模板分类 + * + * @param id 编号 + * @return 模板分类 + */ + DocTemplateCategoryRespVO getTemplateCategory(Long id); + + /** + * 获得模板分类分页 + * + * @param pageReqVO 分页查询 + * @return 模板分类分页 + */ + PageResult getTemplateCategoryPage(DocTemplateCategoryPageReqVO pageReqVO); + + /** + * 获得模板分类列表 + * + * @return 模板分类列表 + */ + List getTemplateCategoryList(); + + /** + * 获得模板分类树形结构 + * + * @return 模板分类树 + */ + List buildTree(); + + /** + * 获得分类完整路径(包含所有父级) + * + * @param categoryId 分类ID + * @return 分类路径,用"/"分隔,如"合同管理/销售合同" + */ + String getCategoryFullPath(Long categoryId); + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateCategoryServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateCategoryServiceImpl.java new file mode 100644 index 00000000..326d8a24 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateCategoryServiceImpl.java @@ -0,0 +1,158 @@ +package com.zt.plat.module.base.service.doctemplate; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateCategoryPageReqVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateCategoryRespVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateCategorySaveReqVO; +import com.zt.plat.module.base.convert.doctemplate.DocTemplateCategoryConvert; +import com.zt.plat.module.base.dal.dataobject.doctemplate.DocTemplateCategoryDO; +import com.zt.plat.module.base.dal.dao.doctemplate.DocTemplateCategoryMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import jakarta.annotation.Resource; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.module.base.enums.ErrorCodeConstants.TEMPLATE_CATEGORY_NOT_EXISTS; + +/** + * 模板分类 Service 实现类 + * + * @author 系统生成 + */ +@Service +@Validated +public class DocTemplateCategoryServiceImpl implements DocTemplateCategoryService { + + @Resource + private DocTemplateCategoryMapper templateCategoryMapper; + + @Override + public Long createTemplateCategory(DocTemplateCategorySaveReqVO createReqVO) { + // 插入 + DocTemplateCategoryDO templateCategory = DocTemplateCategoryConvert.INSTANCE.convert(createReqVO); + // 设置默认值 + if (templateCategory.getSort() == null) { + templateCategory.setSort(0); + } + templateCategoryMapper.insert(templateCategory); + // 返回 + return templateCategory.getId(); + } + + @Override + public void updateTemplateCategory(DocTemplateCategorySaveReqVO updateReqVO) { + // 校验存在 + validateTemplateCategoryExists(updateReqVO.getId()); + // 更新 + DocTemplateCategoryDO updateObj = DocTemplateCategoryConvert.INSTANCE.convert(updateReqVO); + templateCategoryMapper.updateById(updateObj); + } + + @Override + public void deleteTemplateCategory(Long id) { + // 校验存在 + validateTemplateCategoryExists(id); + // 删除 + templateCategoryMapper.deleteById(id); + } + + private void validateTemplateCategoryExists(Long id) { + if (templateCategoryMapper.selectById(id) == null) { + throw exception(TEMPLATE_CATEGORY_NOT_EXISTS); + } + } + + @Override + public DocTemplateCategoryRespVO getTemplateCategory(Long id) { + DocTemplateCategoryDO templateCategory = templateCategoryMapper.selectById(id); + return DocTemplateCategoryConvert.INSTANCE.convert(templateCategory); + } + + @Override + public PageResult getTemplateCategoryPage(DocTemplateCategoryPageReqVO pageReqVO) { + PageResult pageResult = templateCategoryMapper.selectPage(pageReqVO); + return DocTemplateCategoryConvert.INSTANCE.convertPage(pageResult); + } + + @Override + public List getTemplateCategoryList() { + List list = templateCategoryMapper.selectList(); + return DocTemplateCategoryConvert.INSTANCE.convertList(list); + } + + @Override + public List buildTree() { + // 1. 查询所有分类数据 + List allCategories = templateCategoryMapper.selectList(); + + // 2. 转换为 VO + List categoryVOs = DocTemplateCategoryConvert.INSTANCE.convertList(allCategories); + + // 3. 构建树形结构 + return buildTreeStructure(categoryVOs); + } + + /** + * 构建树形结构 + */ + private List buildTreeStructure(List categories) { + // 1. 按 parentId 分组 + Map> groupByParentId = categories.stream() + .collect(Collectors.groupingBy(node -> + node.getParentId() != null ? node.getParentId().toString() : "null")); + + // 2. 设置子节点并排序 + categories.forEach(node -> { + List children = groupByParentId.get(node.getId().toString()); + if (children != null && !children.isEmpty()) { + // 按排序号升序排列 + children.sort(Comparator.comparing(DocTemplateCategoryRespVO::getSort, + Comparator.nullsLast(Comparator.naturalOrder()))); + node.setChildren(children); + } + }); + + // 3. 返回根节点(parentId 为 null 的节点) + List rootNodes = groupByParentId.get("null"); + if (rootNodes != null) { + // 根节点也要排序 + rootNodes.sort(Comparator.comparing(DocTemplateCategoryRespVO::getSort, + Comparator.nullsLast(Comparator.naturalOrder()))); + return rootNodes; + } + return List.of(); + } + + @Override + public String getCategoryFullPath(Long categoryId) { + if (categoryId == null) { + return ""; + } + + // 构建分类路径 + List pathNames = new ArrayList<>(); + Long currentId = categoryId; + + // 递归查找父级分类 + while (currentId != null) { + DocTemplateCategoryDO category = templateCategoryMapper.selectById(currentId); + if (category == null) { + break; + } + // 将当前分类名称添加到列表开头 + pathNames.add(0, category.getCategoryName()); + // 继续查找父级 + currentId = category.getParentId(); + } + + // 用"/"拼接分类路径 + return String.join("/", pathNames); + } + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateInstanceService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateInstanceService.java new file mode 100644 index 00000000..4c9acf2d --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateInstanceService.java @@ -0,0 +1,63 @@ +package com.zt.plat.module.base.service.doctemplate; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateInstancePageReqVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateInstanceRespVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateInstanceSaveReqVO; + +import jakarta.validation.Valid; +import java.util.List; + +/** + * 模板实例 Service 接口 + * + * @author 系统生成 + */ +public interface DocTemplateInstanceService { + + /** + * 创建模板实例 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createTemplateInstance(@Valid DocTemplateInstanceSaveReqVO createReqVO); + + /** + * 更新模板实例 + * + * @param updateReqVO 更新信息 + */ + void updateTemplateInstance(@Valid DocTemplateInstanceSaveReqVO updateReqVO); + + /** + * 删除模板实例 + * + * @param id 编号 + */ + void deleteTemplateInstance(Long id); + + /** + * 获得模板实例 + * + * @param id 编号 + * @return 模板实例 + */ + DocTemplateInstanceRespVO getTemplateInstance(Long id); + + /** + * 获得模板实例分页 + * + * @param pageReqVO 分页查询 + * @return 模板实例分页 + */ + PageResult getTemplateInstancePage(DocTemplateInstancePageReqVO pageReqVO); + + /** + * 获得模板实例列表 + * + * @return 模板实例列表 + */ + List getTemplateInstanceList(); + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateInstanceServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateInstanceServiceImpl.java new file mode 100644 index 00000000..17100c48 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateInstanceServiceImpl.java @@ -0,0 +1,136 @@ +package com.zt.plat.module.base.service.doctemplate; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateInstancePageReqVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateInstanceRespVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateInstanceSaveReqVO; +import com.zt.plat.module.base.convert.doctemplate.DocTemplateInstanceConvert; +import com.zt.plat.module.base.dal.dataobject.doctemplate.DocTemplateInstanceDO; +import com.zt.plat.module.base.dal.dataobject.doctemplate.DocTemplateDO; +import com.zt.plat.module.base.dal.dao.doctemplate.DocTemplateInstanceMapper; +import com.zt.plat.module.base.dal.dao.doctemplate.DocTemplateMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import jakarta.annotation.Resource; +import java.util.List; + +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.module.base.enums.ErrorCodeConstants.*; + +/** + * 模板实例 Service 实现类 + * + * @author 系统生成 + */ +@Service +@Validated +public class DocTemplateInstanceServiceImpl implements DocTemplateInstanceService { + + @Resource + private DocTemplateInstanceMapper docTemplateInstanceMapper; + + @Resource + private DocTemplateMapper docTemplateMapper; + + @Override + @Transactional(rollbackFor = Exception.class) + public Long createTemplateInstance(DocTemplateInstanceSaveReqVO createReqVO) { + // 校验模板存在 + DocTemplateDO template = docTemplateMapper.selectById(createReqVO.getTemplateId()); + if (template == null) { + throw exception(TEMPLATE_NOT_EXISTS); + } + // 校验实例编码唯一性 + validateInstanceCodeUnique(null, createReqVO.getInstanceCode()); + + // 插入实例 + DocTemplateInstanceDO templateInstance = DocTemplateInstanceConvert.INSTANCE.convert(createReqVO); + docTemplateInstanceMapper.insert(templateInstance); + + // 更新模板使用次数 + incrementTemplateUseCount(createReqVO.getTemplateId()); + + // 返回 + return templateInstance.getId(); + } + + @Override + public void updateTemplateInstance(DocTemplateInstanceSaveReqVO updateReqVO) { + // 校验存在 + validateTemplateInstanceExists(updateReqVO.getId()); + // 校验实例编码唯一性 + validateInstanceCodeUnique(updateReqVO.getId(), updateReqVO.getInstanceCode()); + // 更新 + DocTemplateInstanceDO updateObj = DocTemplateInstanceConvert.INSTANCE.convert(updateReqVO); + docTemplateInstanceMapper.updateById(updateObj); + } + + @Override + public void deleteTemplateInstance(Long id) { + // 校验存在 + validateTemplateInstanceExists(id); + // 删除 + docTemplateInstanceMapper.deleteById(id); + } + + private void validateTemplateInstanceExists(Long id) { + if (docTemplateInstanceMapper.selectById(id) == null) { + throw exception(TEMPLATE_INSTANCE_NOT_EXISTS); + } + } + + /** + * 校验实例编码唯一性 + */ + private void validateInstanceCodeUnique(Long id, String instanceCode) { + if (StrUtil.isBlank(instanceCode)) { + return; + } + DocTemplateInstanceDO instance = docTemplateInstanceMapper.selectOne(new LambdaQueryWrapper() + .eq(DocTemplateInstanceDO::getInstanceCode, instanceCode)); + if (instance == null) { + return; + } + // 如果是更新操作,排除自己 + if (id != null && id.equals(instance.getId())) { + return; + } + throw exception(TEMPLATE_INSTANCE_CODE_DUPLICATE); + } + + /** + * 增加模板使用次数 + */ + private void incrementTemplateUseCount(Long templateId) { + DocTemplateDO template = docTemplateMapper.selectById(templateId); + if (template != null) { + DocTemplateDO updateObj = new DocTemplateDO(); + updateObj.setId(templateId); + updateObj.setUseCount(template.getUseCount() == null ? 1 : template.getUseCount() + 1); + docTemplateMapper.updateById(updateObj); + } + } + + @Override + public DocTemplateInstanceRespVO getTemplateInstance(Long id) { + DocTemplateInstanceDO templateInstance = docTemplateInstanceMapper.selectById(id); + return DocTemplateInstanceConvert.INSTANCE.convert(templateInstance); + } + + @Override + public PageResult getTemplateInstancePage(DocTemplateInstancePageReqVO pageReqVO) { + PageResult pageResult = docTemplateInstanceMapper.selectPage(pageReqVO); + return DocTemplateInstanceConvert.INSTANCE.convertPage(pageResult); + } + + @Override + public List getTemplateInstanceList() { + List list = docTemplateInstanceMapper.selectList(); + return DocTemplateInstanceConvert.INSTANCE.convertList(list); + } + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateRenderService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateRenderService.java new file mode 100644 index 00000000..277d3e00 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateRenderService.java @@ -0,0 +1,31 @@ +package com.zt.plat.module.base.service.doctemplate; + +import java.util.Map; + +/** + * 文档模板渲染 Service 接口 + * + * @author 系统生成 + */ +public interface DocTemplateRenderService { + + /** + * 渲染模板内容 + * + * @param templateId 模板ID(可选,与instanceId二选一) + * @param instanceId 实例ID(可选,与templateId二选一) + * @param content 直接传入内容(可选,优先级最高) + * @param dataMap 数据Map(必填) + * @return 渲染后的内容 + */ + String render(Long templateId, Long instanceId, String content, Map dataMap); + + /** + * 渲染模板并保存到实例 + * + * @param instanceId 实例ID + * @param dataMap 数据Map + */ + void renderAndSave(Long instanceId, Map dataMap); + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateRenderServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateRenderServiceImpl.java new file mode 100644 index 00000000..18374ae6 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateRenderServiceImpl.java @@ -0,0 +1,144 @@ +package com.zt.plat.module.base.service.doctemplate; + +import cn.hutool.core.util.StrUtil; +import com.zt.plat.module.base.dal.dataobject.doctemplate.DocTemplateDO; +import com.zt.plat.module.base.dal.dataobject.doctemplate.DocTemplateInstanceDO; +import com.zt.plat.module.base.dal.dao.doctemplate.DocTemplateMapper; +import com.zt.plat.module.base.dal.dao.doctemplate.DocTemplateInstanceMapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.velocity.VelocityContext; +import org.apache.velocity.app.Velocity; +import org.springframework.stereotype.Service; + +import jakarta.annotation.PostConstruct; +import jakarta.annotation.Resource; +import java.io.StringWriter; +import java.util.Map; +import java.util.Properties; + +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.module.base.enums.ErrorCodeConstants.*; + +/** + * 文档模板渲染 Service 实现类 + * 使用 Apache Velocity 模板引擎进行渲染 + * + * @author 系统生成 + */ +@Service +@Slf4j +public class DocTemplateRenderServiceImpl implements DocTemplateRenderService { + + @Resource + private DocTemplateMapper templateMapper; + + @Resource + private DocTemplateInstanceMapper instanceMapper; + + /** + * 初始化 Velocity 引擎 + */ + @PostConstruct + public void initVelocity() { + try { + Properties props = new Properties(); + // 设置编码 + props.setProperty("input.encoding", "UTF-8"); + props.setProperty("output.encoding", "UTF-8"); + // 设置资源加载器为字符串 + props.setProperty("resource.loader", "string"); + props.setProperty("string.resource.loader.class", + "org.apache.velocity.runtime.resource.loader.StringResourceLoader"); + // 关闭日志(可选) + props.setProperty("runtime.log.logsystem.class", + "org.apache.velocity.runtime.log.NullLogChute"); + + Velocity.init(props); + log.info("Velocity 模板引擎初始化成功"); + } catch (Exception e) { + log.error("Velocity 模板引擎初始化失败", e); + throw new RuntimeException("Velocity 模板引擎初始化失败", e); + } + } + + @Override + public String render(Long templateId, Long instanceId, String content, Map dataMap) { + // 1. 获取模板内容 + String templateContent = getTemplateContent(templateId, instanceId, content); + + if (StrUtil.isBlank(templateContent)) { + throw exception(TEMPLATE_NOT_EXISTS); + } + + // 2. 创建 Velocity 上下文 + VelocityContext context = new VelocityContext(); + if (dataMap != null && !dataMap.isEmpty()) { + dataMap.forEach(context::put); + } + + // 3. 渲染模板 + try { + StringWriter writer = new StringWriter(); + Velocity.evaluate(context, writer, "DocTemplateRender", templateContent); + String result = writer.toString(); + + log.debug("模板渲染成功,数据量: {}, 内容长度: {}", + dataMap != null ? dataMap.size() : 0, result.length()); + + return result; + } catch (Exception e) { + log.error("模板渲染失败,templateId: {}, instanceId: {}", templateId, instanceId, e); + throw new RuntimeException("模板渲染失败: " + e.getMessage(), e); + } + } + + @Override + public void renderAndSave(Long instanceId, Map dataMap) { + // 1. 校验实例存在 + DocTemplateInstanceDO instance = instanceMapper.selectById(instanceId); + if (instance == null) { + throw exception(TEMPLATE_INSTANCE_NOT_EXISTS); + } + + // 2. 渲染内容 + String renderedContent = render(null, instanceId, null, dataMap); + + // 3. 更新实例的渲染内容 + DocTemplateInstanceDO updateObj = new DocTemplateInstanceDO(); + updateObj.setId(instanceId); + updateObj.setRenderedContent(renderedContent); + instanceMapper.updateById(updateObj); + + log.info("模板实例渲染并保存成功,instanceId: {}", instanceId); + } + + /** + * 获取模板内容 + * 优先级:content > instanceId > templateId + */ + private String getTemplateContent(Long templateId, Long instanceId, String content) { + // 优先使用直接传入的内容 + if (StrUtil.isNotBlank(content)) { + return content; + } + + // 其次使用实例的编辑内容 + if (instanceId != null) { + DocTemplateInstanceDO instance = instanceMapper.selectById(instanceId); + if (instance != null && StrUtil.isNotBlank(instance.getEditedContent())) { + return instance.getEditedContent(); + } + } + + // 最后使用模板内容 + if (templateId != null) { + DocTemplateDO template = templateMapper.selectById(templateId); + if (template != null && StrUtil.isNotBlank(template.getContent())) { + return template.getContent(); + } + } + + return null; + } + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateService.java new file mode 100644 index 00000000..4bc15f77 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateService.java @@ -0,0 +1,63 @@ +package com.zt.plat.module.base.service.doctemplate; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplatePageReqVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateRespVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateSaveReqVO; + +import jakarta.validation.Valid; +import java.util.List; + +/** + * 模板 Service 接口 + * + * @author 系统生成 + */ +public interface DocTemplateService { + + /** + * 创建模板 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createTemplate(@Valid DocTemplateSaveReqVO createReqVO); + + /** + * 更新模板 + * + * @param updateReqVO 更新信息 + */ + void updateTemplate(@Valid DocTemplateSaveReqVO updateReqVO); + + /** + * 删除模板 + * + * @param id 编号 + */ + void deleteTemplate(Long id); + + /** + * 获得模板 + * + * @param id 编号 + * @return 模板 + */ + DocTemplateRespVO getTemplate(Long id); + + /** + * 获得模板分页 + * + * @param pageReqVO 分页查询 + * @return 模板分页 + */ + PageResult getTemplatePage(DocTemplatePageReqVO pageReqVO); + + /** + * 获得模板列表 + * + * @return 模板列表 + */ + List getTemplateList(); + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateServiceImpl.java new file mode 100644 index 00000000..b5e353b2 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateServiceImpl.java @@ -0,0 +1,115 @@ +package com.zt.plat.module.base.service.doctemplate; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplatePageReqVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateRespVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateSaveReqVO; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.zt.plat.module.base.convert.doctemplate.DocTemplateConvert; +import com.zt.plat.module.base.dal.dataobject.doctemplate.DocTemplateDO; +import com.zt.plat.module.base.dal.dao.doctemplate.DocTemplateMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import jakarta.annotation.Resource; +import java.util.List; + +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.module.base.enums.ErrorCodeConstants.*; + +/** + * 模板 Service 实现类 + * + * @author 系统生成 + */ +@Service +@Validated +public class DocTemplateServiceImpl implements DocTemplateService { + + @Resource + private DocTemplateMapper templateMapper; + + @Override + public Long createTemplate(DocTemplateSaveReqVO createReqVO) { + // 校验模板编码唯一性 + validateTemplateCodeUnique(null, createReqVO.getTmplCode()); + + // 插入 + DocTemplateDO template = DocTemplateConvert.INSTANCE.convert(createReqVO); + // 设置默认值 + if (template.getUseCount() == null) { + template.setUseCount(0); + } + if (template.getEnabled() == null) { + template.setEnabled("2"); // 默认为草稿状态 + } + templateMapper.insert(template); + // 返回 + return template.getId(); + } + + @Override + public void updateTemplate(DocTemplateSaveReqVO updateReqVO) { + // 校验存在 + validateTemplateExists(updateReqVO.getId()); + // 校验模板编码唯一性 + validateTemplateCodeUnique(updateReqVO.getId(), updateReqVO.getTmplCode()); + + // 更新 + DocTemplateDO updateObj = DocTemplateConvert.INSTANCE.convert(updateReqVO); + templateMapper.updateById(updateObj); + } + + @Override + public void deleteTemplate(Long id) { + // 校验存在 + validateTemplateExists(id); + // 删除 + templateMapper.deleteById(id); + } + + private void validateTemplateExists(Long id) { + if (templateMapper.selectById(id) == null) { + throw exception(TEMPLATE_NOT_EXISTS); + } + } + + /** + * 校验模板编码唯一性 + */ + private void validateTemplateCodeUnique(Long id, String tmplCode) { + if (StrUtil.isBlank(tmplCode)) { + return; + } + DocTemplateDO template = templateMapper.selectOne(new LambdaQueryWrapper() + .eq(DocTemplateDO::getTmplCode, tmplCode)); + if (template == null) { + return; + } + // 如果是更新操作,排除自己 + if (id != null && id.equals(template.getId())) { + return; + } + throw exception(TEMPLATE_CODE_DUPLICATE); + } + + @Override + public DocTemplateRespVO getTemplate(Long id) { + DocTemplateDO template = templateMapper.selectById(id); + return DocTemplateConvert.INSTANCE.convert(template); + } + + @Override + public PageResult getTemplatePage(DocTemplatePageReqVO pageReqVO) { + PageResult pageResult = templateMapper.selectPage(pageReqVO); + return DocTemplateConvert.INSTANCE.convertPage(pageResult); + } + + @Override + public List getTemplateList() { + List list = templateMapper.selectList(); + return DocTemplateConvert.INSTANCE.convertList(list); + } + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateTagService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateTagService.java new file mode 100644 index 00000000..15954ed0 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateTagService.java @@ -0,0 +1,63 @@ +package com.zt.plat.module.base.service.doctemplate; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateTagPageReqVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateTagRespVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateTagSaveReqVO; + +import jakarta.validation.Valid; +import java.util.List; + +/** + * 标签库 Service 接口 + * + * @author 系统生成 + */ +public interface DocTemplateTagService { + + /** + * 创建标签 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createTemplateTag(@Valid DocTemplateTagSaveReqVO createReqVO); + + /** + * 更新标签 + * + * @param updateReqVO 更新信息 + */ + void updateTemplateTag(@Valid DocTemplateTagSaveReqVO updateReqVO); + + /** + * 删除标签 + * + * @param id 编号 + */ + void deleteTemplateTag(Long id); + + /** + * 获得标签 + * + * @param id 编号 + * @return 标签 + */ + DocTemplateTagRespVO getTemplateTag(Long id); + + /** + * 获得标签分页 + * + * @param pageReqVO 分页查询 + * @return 标签分页 + */ + PageResult getTemplateTagPage(DocTemplateTagPageReqVO pageReqVO); + + /** + * 获得标签列表 + * + * @return 标签列表 + */ + List getTemplateTagList(); + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateTagServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateTagServiceImpl.java new file mode 100644 index 00000000..194c6e98 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/doctemplate/DocTemplateTagServiceImpl.java @@ -0,0 +1,115 @@ +package com.zt.plat.module.base.service.doctemplate; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateTagPageReqVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateTagRespVO; +import com.zt.plat.module.base.controller.admin.doctemplate.vo.DocTemplateTagSaveReqVO; +import com.zt.plat.module.base.convert.doctemplate.DocTemplateTagConvert; +import com.zt.plat.module.base.dal.dataobject.doctemplate.DocTemplateTagDO; +import com.zt.plat.module.base.dal.dao.doctemplate.DocTemplateTagMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import jakarta.annotation.Resource; +import java.util.List; + +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.module.base.enums.ErrorCodeConstants.TEMPLATE_TAG_NOT_EXISTS; + +/** + * 标签库 Service 实现类 + * + * @author 系统生成 + */ +@Service +@Validated +public class DocTemplateTagServiceImpl implements DocTemplateTagService { + + @Resource + private DocTemplateTagMapper templateTagMapper; + + @Resource + private DocTemplateCategoryService templateCategoryService; + + @Override + public Long createTemplateTag(DocTemplateTagSaveReqVO createReqVO) { + // 插入 + DocTemplateTagDO templateTag = DocTemplateTagConvert.INSTANCE.convert(createReqVO); + // 设置默认值 + if (templateTag.getSort() == null) { + templateTag.setSort(0); + } + if (templateTag.getEnabled() == null) { + templateTag.setEnabled("1"); + } + templateTagMapper.insert(templateTag); + // 返回 + return templateTag.getId(); + } + + @Override + public void updateTemplateTag(DocTemplateTagSaveReqVO updateReqVO) { + // 校验存在 + validateTemplateTagExists(updateReqVO.getId()); + // 更新 + DocTemplateTagDO updateObj = DocTemplateTagConvert.INSTANCE.convert(updateReqVO); + templateTagMapper.updateById(updateObj); + } + + @Override + public void deleteTemplateTag(Long id) { + // 校验存在 + validateTemplateTagExists(id); + // 删除 + templateTagMapper.deleteById(id); + } + + private void validateTemplateTagExists(Long id) { + if (templateTagMapper.selectById(id) == null) { + throw exception(TEMPLATE_TAG_NOT_EXISTS); + } + } + + @Override + public DocTemplateTagRespVO getTemplateTag(Long id) { + DocTemplateTagDO templateTag = templateTagMapper.selectById(id); + DocTemplateTagRespVO respVO = DocTemplateTagConvert.INSTANCE.convert(templateTag); + // 填充分类名称 + fillCategoryName(respVO); + return respVO; + } + + @Override + public PageResult getTemplateTagPage(DocTemplateTagPageReqVO pageReqVO) { + PageResult pageResult = templateTagMapper.selectPage(pageReqVO); + PageResult result = DocTemplateTagConvert.INSTANCE.convertPage(pageResult); + // 填充分类名称 + result.getList().forEach(this::fillCategoryName); + return result; + } + + @Override + public List getTemplateTagList() { + List list = templateTagMapper.selectList(); + List result = DocTemplateTagConvert.INSTANCE.convertList(list); + // 填充分类名称 + result.forEach(this::fillCategoryName); + return result; + } + + /** + * 填充分类名称(包含父级路径) + * + * @param respVO 标签响应VO + */ + private void fillCategoryName(DocTemplateTagRespVO respVO) { + if (respVO == null || respVO.getCategoryId() == null) { + return; + } + + // 调用分类Service获取完整路径 + String categoryPath = templateCategoryService.getCategoryFullPath(respVO.getCategoryId()); + respVO.setCategoryName(categoryPath); + } + +} From d00aebb49d6efe11295dff3ab9780f9f9e2a633a Mon Sep 17 00:00:00 2001 From: hewencai <2357300448@qq.com> Date: Wed, 29 Oct 2025 13:18:23 +0800 Subject: [PATCH 2/4] =?UTF-8?q?feat:=E5=AE=8C=E5=96=84=E8=AE=A1=E9=87=8F?= =?UTF-8?q?=E5=8D=95=E4=BD=8D=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../QuantityUnitRelationController.java | 15 ++++++++ .../vo/CreateUnitWithRelationReqVO.java | 27 +++++++++++++++ .../vo/DeleteUnitWithRelationReqVO.java | 19 +++++++++++ .../vo/UnitConversionPageReqVO.java | 3 ++ .../vo/UnitConversionSaveReqVO.java | 4 +++ .../UnitConversion/UnitConversionMapper.java | 1 + .../UnitConversion/UnitConversionDO.java | 5 +++ .../QuantityUnitRelationService.java | 19 +++++++++++ .../QuantityUnitRelationServiceImpl.java | 34 +++++++++++++++++++ 9 files changed, 127 insertions(+) create mode 100644 zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/CreateUnitWithRelationReqVO.java create mode 100644 zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/DeleteUnitWithRelationReqVO.java diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/QuantityUnitRelationController.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/QuantityUnitRelationController.java index 6a48f14d..f6eef72d 100644 --- a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/QuantityUnitRelationController.java +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/QuantityUnitRelationController.java @@ -113,4 +113,19 @@ public class QuantityUnitRelationController implements BusinessControllerMarker return success(true); } + @PostMapping("/create-unit-with-relation") + @Operation(summary = "创建单位并关联到量纲(组合接口)") + @PreAuthorize("@ss.hasPermission('unitmanagement:quantity-unit-relation:create')") + public CommonResult createUnitWithRelation(@Valid @RequestBody CreateUnitWithRelationReqVO createReqVO) { + return success(quantityUnitRelationService.createUnitWithRelation(createReqVO)); + } + + @PostMapping("/delete-unit-with-relation") + @Operation(summary = "删除单位及关联关系(组合接口)") + @PreAuthorize("@ss.hasPermission('unitmanagement:quantity-unit-relation:delete')") + public CommonResult deleteUnitWithRelation(@Valid @RequestBody DeleteUnitWithRelationReqVO deleteReqVO) { + quantityUnitRelationService.deleteUnitWithRelation(deleteReqVO); + return success(true); + } + } \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/CreateUnitWithRelationReqVO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/CreateUnitWithRelationReqVO.java new file mode 100644 index 00000000..9dee92f3 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/CreateUnitWithRelationReqVO.java @@ -0,0 +1,27 @@ +package com.zt.plat.module.unitmanagement.controller.admin.QuantityUnitRelation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 创建单位并关联到量纲 Request VO") +@Data +public class CreateUnitWithRelationReqVO { + + @Schema(description = "量纲ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "量纲ID不能为空") + private Long untQtyId; + + @Schema(description = "单位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "米") + @NotEmpty(message = "单位名称不能为空") + private String name; + + @Schema(description = "单位符号", requiredMode = Schema.RequiredMode.REQUIRED, example = "m") + @NotEmpty(message = "单位符号不能为空") + private String smb; + + @Schema(description = "是否基准单位:0=否,1=是", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "是否基准单位不能为空") + private Integer isBse; + +} diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/DeleteUnitWithRelationReqVO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/DeleteUnitWithRelationReqVO.java new file mode 100644 index 00000000..4d604e3d --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/DeleteUnitWithRelationReqVO.java @@ -0,0 +1,19 @@ +package com.zt.plat.module.unitmanagement.controller.admin.QuantityUnitRelation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 删除单位及关联关系 Request VO") +@Data +public class DeleteUnitWithRelationReqVO { + + @Schema(description = "关联关系ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "关联关系ID不能为空") + private Long relationId; + + @Schema(description = "单位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "单位ID不能为空") + private Long untId; + +} diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionPageReqVO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionPageReqVO.java index 77fb3394..0763d9b1 100644 --- a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionPageReqVO.java +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionPageReqVO.java @@ -14,6 +14,9 @@ import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH @Data public class UnitConversionPageReqVO extends PageParam { + @Schema(description = "计量单位量ID(量纲ID)", example = "1") + private Long untQtyId; + @Schema(description = "源单位ID", example = "26239") private Long srcUntId; diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionSaveReqVO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionSaveReqVO.java index b8da368c..19fcaaf0 100644 --- a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionSaveReqVO.java +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionSaveReqVO.java @@ -13,6 +13,10 @@ public class UnitConversionSaveReqVO { @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "339") private Long id; + @Schema(description = "计量单位量ID(量纲ID)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "量纲ID不能为空") + private Long untQtyId; + @Schema(description = "源单位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "26239") @NotNull(message = "源单位ID不能为空") private Long srcUntId; diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dao/UnitConversion/UnitConversionMapper.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dao/UnitConversion/UnitConversionMapper.java index a667ad78..53a4bb71 100644 --- a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dao/UnitConversion/UnitConversionMapper.java +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dao/UnitConversion/UnitConversionMapper.java @@ -19,6 +19,7 @@ public interface UnitConversionMapper extends BaseMapperX { default PageResult selectPage(UnitConversionPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(UnitConversionDO::getUntQtyId, reqVO.getUntQtyId()) .eqIfPresent(UnitConversionDO::getSrcUntId, reqVO.getSrcUntId()) .eqIfPresent(UnitConversionDO::getTgtUntId, reqVO.getTgtUntId()) .eqIfPresent(UnitConversionDO::getFctr, reqVO.getFctr()) diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dataobject/UnitConversion/UnitConversionDO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dataobject/UnitConversion/UnitConversionDO.java index 05431d29..82679d4a 100644 --- a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dataobject/UnitConversion/UnitConversionDO.java +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dataobject/UnitConversion/UnitConversionDO.java @@ -33,6 +33,11 @@ public class UnitConversionDO extends BaseDO { @TableId(type = IdType.ASSIGN_ID) private Long id; /** + * 计量单位量ID(量纲ID) + */ + @TableField("UNT_QTY_ID") + private Long untQtyId; + /** * 源单位ID */ @TableField("SRC_UNT_ID") diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/QuantityUnitRelation/QuantityUnitRelationService.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/QuantityUnitRelation/QuantityUnitRelationService.java index cd2e715d..61e42e91 100644 --- a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/QuantityUnitRelation/QuantityUnitRelationService.java +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/QuantityUnitRelation/QuantityUnitRelationService.java @@ -67,4 +67,23 @@ public interface QuantityUnitRelationService { */ void batchSaveQuantityUnitRelations(@Valid QuantityUnitRelationBatchSaveReqVO batchSaveReqVO); + /** + * 创建单位并关联到量纲(组合接口) + * 1. 创建计量单位 + * 2. 创建量纲-单位关联关系 + * + * @param createReqVO 创建信息 + * @return 关联关系响应VO + */ + QuantityUnitRelationRespVO createUnitWithRelation(@Valid CreateUnitWithRelationReqVO createReqVO); + + /** + * 删除单位及关联关系(组合接口) + * 1. 删除量纲-单位关联关系 + * 2. 删除计量单位 + * + * @param deleteReqVO 删除信息 + */ + void deleteUnitWithRelation(@Valid DeleteUnitWithRelationReqVO deleteReqVO); + } \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/QuantityUnitRelation/QuantityUnitRelationServiceImpl.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/QuantityUnitRelation/QuantityUnitRelationServiceImpl.java index 3848e1cb..1a1be0d7 100644 --- a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/QuantityUnitRelation/QuantityUnitRelationServiceImpl.java +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/QuantityUnitRelation/QuantityUnitRelationServiceImpl.java @@ -14,6 +14,9 @@ import com.zt.plat.framework.common.pojo.PageParam; import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.module.unitmanagement.dal.dao.QuantityUnitRelation.QuantityUnitRelationMapper; +import com.zt.plat.module.unitmanagement.service.UntInfo.UntInfoService; +import com.zt.plat.module.unitmanagement.controller.admin.UntInfo.vo.UntInfoSaveReqVO; +import com.zt.plat.module.unitmanagement.controller.admin.UntInfo.vo.UntInfoRespVO; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList; @@ -32,6 +35,9 @@ public class QuantityUnitRelationServiceImpl implements QuantityUnitRelationServ @Resource private QuantityUnitRelationMapper quantityUnitRelationMapper; + @Resource + private UntInfoService untInfoService; + @Override public QuantityUnitRelationRespVO createQuantityUnitRelation(QuantityUnitRelationSaveReqVO createReqVO) { // 插入 @@ -138,4 +144,32 @@ public class QuantityUnitRelationServiceImpl implements QuantityUnitRelationServ } } + @Override + @Transactional(rollbackFor = Exception.class) + public QuantityUnitRelationRespVO createUnitWithRelation(CreateUnitWithRelationReqVO createReqVO) { + // 1. 创建计量单位 + UntInfoSaveReqVO untInfoReqVO = new UntInfoSaveReqVO(); + untInfoReqVO.setName(createReqVO.getName()); + untInfoReqVO.setSmb(createReqVO.getSmb()); + UntInfoRespVO untInfoResp = untInfoService.createUntInfo(untInfoReqVO); + + // 2. 创建量纲-单位关联关系 + QuantityUnitRelationSaveReqVO relationReqVO = new QuantityUnitRelationSaveReqVO(); + relationReqVO.setUntQtyId(createReqVO.getUntQtyId()); + relationReqVO.setUntId(untInfoResp.getId()); + relationReqVO.setIsBse(createReqVO.getIsBse()); + + return createQuantityUnitRelation(relationReqVO); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteUnitWithRelation(DeleteUnitWithRelationReqVO deleteReqVO) { + // 1. 先删除关联关系(外键约束,必须先删除) + deleteQuantityUnitRelation(deleteReqVO.getRelationId()); + + // 2. 再删除计量单位 + untInfoService.deleteUntInfo(deleteReqVO.getUntId()); + } + } \ No newline at end of file From 7a23d9ba3ef4d2b0ade30ff53899743b05072d71 Mon Sep 17 00:00:00 2001 From: guojunyun Date: Wed, 29 Oct 2025 15:59:58 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=9B=BD=E8=B4=B82.0?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E5=90=88=E5=90=8C=E5=88=86=E9=A1=B5=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=8E=A5=E5=8F=A3=20=E4=BF=AE=E6=94=B9=E5=9B=BD?= =?UTF-8?q?=E8=B4=B82.0=E7=B3=BB=E7=BB=9F=E5=90=88=E5=90=8C=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E6=8E=A5=E5=8F=A3=EF=BC=9A=E5=90=88=E5=90=8C=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E4=BF=AE=E6=94=B9=20=E5=90=88=E5=90=8C=E4=B8=BB?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E6=B7=BB=E5=8A=A0=E4=BB=A3=E7=90=86=E6=96=B9?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/contractorder/api/ContractApi.java | 12 +- .../api/dto/contract/ContractRespDTO.java | 3 + .../api/vo/contract/ContractRespVO.java | 3 + .../api/vo/contract/ContractSaveReqVO.java | 3 + ...{ContractRequest.java => IntContract.java} | 2 +- .../international/IntContractPageReq.java | 13 ++ .../enums/contract/DictEnum.java | 9 ++ .../contractorder/api/ContractApiImpl.java | 134 +++++++++++++++++- .../dataobject/contract/ContractMainDO.java | 5 + 9 files changed, 176 insertions(+), 8 deletions(-) rename zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/{ContractRequest.java => IntContract.java} (99%) create mode 100644 zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/IntContractPageReq.java diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java index 66a3d5fc..051c0fbd 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java @@ -2,9 +2,11 @@ package com.zt.plat.module.contractorder.api; import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.module.contractorder.api.dto.contract.ContractRespDTO; import com.zt.plat.module.contractorder.api.dto.order.PurchaseOrderWithDetailsDTO; -import com.zt.plat.module.contractorder.api.vo.contract.international.ContractRequest; +import com.zt.plat.module.contractorder.api.vo.contract.international.IntContract; +import com.zt.plat.module.contractorder.api.vo.contract.international.IntContractPageReq; import com.zt.plat.module.contractorder.enums.ApiConstants; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -39,6 +41,10 @@ public interface ContractApi { CommonResult> getOrderByOrderIds(@RequestBody List ids); @PostMapping(PREFIX + "/push") - @Operation(summary = "国贸2.0系统创建合同调用") - CommonResult push(@Valid @RequestBody ContractRequest reqVO) throws Exception; + @Operation(summary = "国贸2.0系统创建合同") + CommonResult push(@Valid @RequestBody IntContract reqVO) throws Exception; + + @GetMapping(PREFIX + "/logistics/list/page") + @Operation(summary = "国贸2.0系统合同分页查询") + CommonResult> logisticsListPage(IntContractPageReq pageReq); } diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/ContractRespDTO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/ContractRespDTO.java index 3e10aa4c..4def12c7 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/ContractRespDTO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/ContractRespDTO.java @@ -233,6 +233,9 @@ public class ContractRespDTO { @Schema(description = "合同分类(字典:SPLY_BSN_TP)") private String businessType; + @Schema(description = "代理方名称") + private String agentName; + // 物料信息 private List detail; diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractRespVO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractRespVO.java index cf1c8cc2..a112ce09 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractRespVO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractRespVO.java @@ -236,6 +236,9 @@ public class ContractRespVO { @Schema(description = "合同分类(字典:SPLY_BSN_TP)") private String businessType; + @Schema(description = "代理方名称") + private String agentName; + // 物料信息 private List detail; diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractSaveReqVO.java index eeb6bc95..6b0bd4ca 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractSaveReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractSaveReqVO.java @@ -208,6 +208,9 @@ public class ContractSaveReqVO { @Schema(description = "合同分类(字典:SPLY_BSN_TP)") private String businessType; + @Schema(description = "代理方名称") + private String agentName; + // 物料信息 private List detail; diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ContractRequest.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/IntContract.java similarity index 99% rename from zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ContractRequest.java rename to zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/IntContract.java index b6b4507f..238351cc 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ContractRequest.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/IntContract.java @@ -10,7 +10,7 @@ import java.util.List; * 合同请求主实体 */ @Data -public class ContractRequest { +public class IntContract { // 基础信息 @Schema(description = "操作标志") diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/IntContractPageReq.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/IntContractPageReq.java new file mode 100644 index 00000000..abddecab --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/IntContractPageReq.java @@ -0,0 +1,13 @@ +package com.zt.plat.module.contractorder.api.vo.contract.international; + +import com.zt.plat.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class IntContractPageReq extends PageParam { + @Schema(description = "合同编号") + private String contractCode; + @Schema(description = "合同名称") + private String contractName; +} diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/contract/DictEnum.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/contract/DictEnum.java index 8df642dc..4bf0fafc 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/contract/DictEnum.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/contract/DictEnum.java @@ -8,6 +8,15 @@ import lombok.Getter; @Getter public enum DictEnum { + /** 供应链业务大类 */ + SPLY_BSN_TP_03BX("货物保险","03BX",null), + SPLY_BSN_TP_11CC("货物保管仓储","11CC",null), + SPLY_BSN_TP_10YS("货物运输","10YS",null), + SPLY_BSN_TP_13HD("货运代理","13HD",null), + SPLY_BSN_TP_ENTED("来料加工","ENTED",null), + SPLY_BSN_TP_ENT("委托加工","ENT",null), + SPLY_BSN_TP_PUR("采购","PUR",null), + SPLY_BSN_TP_SALE("销售","SALE",null), /** 业务类型 */ BSN_TP_3("物流合同","3",null), /** ERP合同类型编码 */ diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java index 5395f2da..95bbc35a 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java @@ -1,9 +1,12 @@ package com.zt.plat.module.contractorder.api; import cn.hutool.extra.spring.SpringUtil; +import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zt.plat.module.contractorder.api.dto.contract.ContractRespDTO; import com.zt.plat.module.contractorder.api.dto.order.PrchOrdDtlDTO; import com.zt.plat.module.contractorder.api.dto.order.PurchaseOrderWithDetailsDTO; @@ -39,6 +42,7 @@ import java.lang.reflect.Field; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -147,7 +151,7 @@ public class ContractApiImpl implements ContractApi { @Transactional @Override - public CommonResult push(@RequestBody ContractRequest reqVO) throws Exception { + public CommonResult push(@RequestBody IntContract reqVO) throws Exception { // 合同主信息表映射 ContractMainDO contractMainDO = getcontractMainDO(reqVO); @@ -339,6 +343,128 @@ public class ContractApiImpl implements ContractApi { return success(true); } + @Override + public CommonResult> logisticsListPage(IntContractPageReq pageReq) { + + // 查询条件 + LambdaQueryWrapperX queryWrapperX = new LambdaQueryWrapperX<>(); + // 合同类型 + queryWrapperX.in( + ContractMainDO::getBusinessType, + Arrays.asList( + DictEnum.SPLY_BSN_TP_13HD.getCode(), + DictEnum.SPLY_BSN_TP_10YS.getCode(), + DictEnum.SPLY_BSN_TP_11CC.getCode(), + DictEnum.SPLY_BSN_TP_03BX.getCode() + ) + ); + // 合同编号 + queryWrapperX.likeIfPresent(ContractMainDO::getContractPaperNumber, pageReq.getContractCode()); + // 合同名称 + queryWrapperX.likeIfPresent(ContractMainDO::getContractName, pageReq.getContractName()); + + // 查询 + PageResult pageResult = contractMainMapper.selectPage(pageReq, queryWrapperX); + + // 返回数据 + PageResult result = new PageResult<>(); + List resultList = new ArrayList<>(); + // 设置返回数据 + result.setTotal(pageResult.getTotal()); + result.setList(resultList); + + // 遍历查询结果,设置返回数据列表 + if (pageResult.getTotal() > 0) { + pageResult.getList().forEach(contractMainDO -> { + + // 合同ID + Long mainDOId = contractMainDO.getId(); + + // 合同主信息 + List mainFields = contractOtherFieldMapper.selectList( + new LambdaQueryWrapperX() + .eq(ContractOtherFieldDO::getContractMainId, mainDOId) + .isNull(ContractOtherFieldDO::getRelativityId) + ); + JSONObject resultJson = new JSONObject(); + mainFields.forEach(field + -> resultJson.putOnce(field.getFieldNumber(), field.getFieldValue())); + + // 附件清单列表 + List attachForms = contractOtherFormMapper.selectList( + new LambdaQueryWrapperX() + .eq(ContractOtherFormDO::getContractMainId, mainDOId) + .eq(ContractOtherFormDO::getFormNumber, "attachList") + ); + if (attachForms != null && !attachForms.isEmpty()) { + JSONArray jsonArray = new JSONArray(); + attachForms.forEach(form -> { + ContractOtherFieldDO fieldDO = contractOtherFieldMapper.selectOne( + new LambdaQueryWrapperX() + .eq(ContractOtherFieldDO::getContractMainId, mainDOId) + .eq(ContractOtherFieldDO::getRelativityId, form.getId()) + ); + if (fieldDO != null) { + jsonArray.add(fieldDO.getFieldValue()); + } + }); + if (!jsonArray.isEmpty()) { + resultJson.putOnce("attachList", jsonArray); + } + } + + // 客商信息 + resultJson.putOnce("partnerList", getQueryFieldJsonArray(mainDOId, "partnerList")); + // 收发港/站点 + resultJson.putOnce("goodsSiteList", getQueryFieldJsonArray(mainDOId, "goodsSiteList")); + // 货物装卸要求 + resultJson.putOnce("loadingRequirementsList", getQueryFieldJsonArray(mainDOId, "loadingRequirementsList")); + // 收付款账号 + resultJson.putOnce("accountList", getQueryFieldJsonArray(mainDOId, "accountList")); + // 费用明细 + resultJson.putOnce("freightList", getQueryFieldJsonArray(mainDOId, "freightList")); + // 服务费用项目 + resultJson.putOnce("serviceFeeList", getQueryFieldJsonArray(mainDOId, "serviceFeeList")); + // 仓库明细 + resultJson.putOnce("storgeList", getQueryFieldJsonArray(mainDOId, "storgeList")); + // 接货地址 + resultJson.putOnce("receivingAddrList", getQueryFieldJsonArray(mainDOId, "receivingAddrList")); + + // 添加到结果集 + resultList.add(resultJson.toBean(IntContract.class)); + }); + } + + return success(result); + } + + private JSONArray getQueryFieldJsonArray(Long mainDOId, String fieldName) { + + JSONArray jsonArray = new JSONArray(); + List forms = contractOtherFormMapper.selectList( + new LambdaQueryWrapperX() + .eq(ContractOtherFormDO::getContractMainId, mainDOId) + .eq(ContractOtherFormDO::getFormNumber, fieldName) + ); + if (forms != null && !forms.isEmpty()) { + forms.forEach(form -> { + List fieldDOs = contractOtherFieldMapper.selectList( + new LambdaQueryWrapperX() + .eq(ContractOtherFieldDO::getContractMainId, mainDOId) + .eq(ContractOtherFieldDO::getRelativityId, form.getId()) + ); + if (fieldDOs != null && !fieldDOs.isEmpty()) { + JSONObject jsonObject = new JSONObject(); + fieldDOs.forEach(field + -> jsonObject.putOnce(field.getFieldNumber(), field.getFieldValue())); + jsonArray.add(jsonObject); + } + }); + } + + return jsonArray.isEmpty() ? null : jsonArray; + } + @Override public CommonResult> getOrderByOrderIds(List ids) { if (ids == null || ids.isEmpty()) { @@ -370,7 +496,7 @@ public class ContractApiImpl implements ContractApi { return CommonResult.success(purchaseOrderDetails); } - private ContractMainDO getcontractMainDO(ContractRequest reqVO) { + private ContractMainDO getcontractMainDO(IntContract reqVO) { // 合同主信息表映射 ContractMainDO contractMainDO = new ContractMainDO(); @@ -430,8 +556,8 @@ public class ContractApiImpl implements ContractApi { // 本币履约保证金 默认值:NULL // 交易方式 默认值:先款后货 contractMainDO.setHasPayable(DictEnum.HS_PYBL_TP_PRE_PAY.getCode()); - // 合同类型 默认值:物流合同 - contractMainDO.setContractType(DictEnum.BSN_TP_3.getCode()); + // 合同类型 + contractMainDO.setBusinessType(reqVO.getContractType()); // 签署地 -> 签约地 (40-签约必填) contractMainDO.setSignPlace(reqVO.getSignSite()); // 甲方公司编号(采购方) -> 账套代码 diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractMainDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractMainDO.java index ea057628..f5d9681e 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractMainDO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractMainDO.java @@ -394,4 +394,9 @@ public class ContractMainDO extends BusinessBaseDO { */ @TableField("BSN_TP") private String businessType; + /** + * 代理方名称 + */ + @TableField("AGT_NAME") + private String agentName; } \ No newline at end of file From 21ac7f982823cd486ae73349992d6501de3b6485 Mon Sep 17 00:00:00 2001 From: chenbowen Date: Wed, 29 Oct 2025 16:05:51 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E7=89=A9=E6=96=99=E3=80=81=E5=B7=A5?= =?UTF-8?q?=E8=89=BA=E5=9F=BA=E6=9C=AC=E5=A2=9E=E5=88=A0=E6=94=B9=E6=9F=A5?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/base/enums/ErrorCodeConstants.java | 12 + .../base/vo/MaterialInfomationPageReqVO.java | 3 + .../base/vo/MaterialInfomationRespVO.java | 4 + .../base/vo/MaterialInfomationSaveReqVO.java | 5 + .../DepartmentMaterialController.java | 107 ++++++++ .../vo/DepartmentMaterialPageReqVO.java | 47 ++++ .../vo/DepartmentMaterialRespVO.java | 83 ++++++ .../vo/DepartmentMaterialSaveReqVO.java | 30 +++ .../MaterialClassesController.java | 138 ++++++++++ .../vo/MaterialClassesPageReqVO.java | 35 +++ .../vo/MaterialClassesRespVO.java | 43 +++ .../vo/MaterialClassesSaveReqVO.java | 33 +++ .../vo/MaterialClassesTreeRespVO.java | 33 +++ .../MaterialHasClassesController.java | 107 ++++++++ .../vo/MaterialHasClassesPageReqVO.java | 26 ++ .../vo/MaterialHasClassesRespVO.java | 31 +++ .../vo/MaterialHasClassesSaveReqVO.java | 23 ++ .../MaterialHasPropertiesController.java | 107 ++++++++ .../vo/MaterialHasPropertiesPageReqVO.java | 41 +++ .../vo/MaterialHasPropertiesRespVO.java | 51 ++++ .../vo/MaterialHasPropertiesSaveReqVO.java | 39 +++ .../MaterialPropertiesController.java | 107 ++++++++ .../vo/MaterialPropertiesPageReqVO.java | 38 +++ .../vo/MaterialPropertiesRespVO.java | 47 ++++ .../vo/MaterialPropertiesSaveReqVO.java | 38 +++ .../ProcessingInfomationController.java | 138 ++++++++++ .../vo/ProcessingInfomationPageReqVO.java | 42 +++ .../vo/ProcessingInfomationRespVO.java | 51 ++++ .../vo/ProcessingInfomationSaveReqVO.java | 42 +++ .../vo/ProcessingInfomationTreeRespVO.java | 34 +++ ...ocessingInfomationOperationController.java | 107 ++++++++ ...rocessingInfomationOperationPageReqVO.java | 41 +++ .../ProcessingInfomationOperationRespVO.java | 59 +++++ ...rocessingInfomationOperationSaveReqVO.java | 31 +++ .../ProcessingOperationController.java | 115 ++++++++ .../vo/ProcessingOperationPageReqVO.java | 35 +++ .../vo/ProcessingOperationRespVO.java | 43 +++ .../vo/ProcessingOperationSaveReqVO.java | 34 +++ .../vo/ProcessingOperationSimpleRespVO.java | 19 ++ ...ProcessingOperationMaterialController.java | 107 ++++++++ .../ProcessingOperationMaterialPageReqVO.java | 29 +++ .../vo/ProcessingOperationMaterialRespVO.java | 43 +++ .../ProcessingOperationMaterialSaveReqVO.java | 32 +++ .../DepartmentMaterialMapper.java | 32 +++ .../MaterialClassesMapper.java | 31 +++ .../MaterialHasClassesMapper.java | 28 ++ .../MaterialHasPropertiesMapper.java | 33 +++ .../MaterialPropertiesMapper.java | 32 +++ .../ProcessingInfomationMapper.java | 33 +++ .../ProcessingInfomationOperationMapper.java | 42 +++ .../ProcessingOperationMapper.java | 31 +++ .../ProcessingOperationMaterialMapper.java | 29 +++ .../dataobject/base/MaterialInfomationDO.java | 5 + .../DepartmentMaterialDO.java | 60 +++++ .../materialclasses/MaterialClassesDO.java | 60 +++++ .../MaterialHasClassesDO.java | 45 ++++ .../MaterialHasPropertiesDO.java | 70 +++++ .../MaterialPropertiesDO.java | 65 +++++ .../ProcessingInfomationDO.java | 76 ++++++ .../ProcessingInfomationOperationDO.java | 60 +++++ .../ProcessingOperationDO.java | 60 +++++ .../ProcessingOperationMaterialDO.java | 58 +++++ .../mysql/base/MaterialInfomationMapper.java | 9 +- .../base/MaterialInfomationServiceImpl.java | 77 +++++- .../DepartmentMaterialService.java | 62 +++++ .../DepartmentMaterialServiceImpl.java | 246 ++++++++++++++++++ .../MaterialClassesService.java | 69 +++++ .../MaterialClassesServiceImpl.java | 97 +++++++ .../MaterialHasClassesService.java | 62 +++++ .../MaterialHasClassesServiceImpl.java | 92 +++++++ .../MaterialHasPropertiesService.java | 62 +++++ .../MaterialHasPropertiesServiceImpl.java | 92 +++++++ .../MaterialPropertiesService.java | 62 +++++ .../MaterialPropertiesServiceImpl.java | 92 +++++++ .../ProcessingInfomationService.java | 69 +++++ .../ProcessingInfomationServiceImpl.java | 97 +++++++ .../ProcessingInfomationOperationService.java | 78 ++++++ ...cessingInfomationOperationServiceImpl.java | 182 +++++++++++++ .../ProcessingOperationService.java | 69 +++++ .../ProcessingOperationServiceImpl.java | 97 +++++++ .../ProcessingOperationMaterialService.java | 62 +++++ ...rocessingOperationMaterialServiceImpl.java | 92 +++++++ .../DepartmentMaterialMapper.xml | 12 + .../materialclasses/MaterialClassesMapper.xml | 12 + .../MaterialHasClassesMapper.xml | 12 + .../MaterialHasPropertiesMapper.xml | 12 + .../MaterialPropertiesMapper.xml | 12 + .../ProcessingInfomationMapper.xml | 12 + .../ProcessingInfomationOperationMapper.xml | 12 + .../ProcessingOperationMapper.xml | 12 + .../ProcessingOperationMaterialMapper.xml | 12 + 91 files changed, 4953 insertions(+), 3 deletions(-) create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/departmentmaterial/DepartmentMaterialController.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/departmentmaterial/vo/DepartmentMaterialPageReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/departmentmaterial/vo/DepartmentMaterialRespVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/departmentmaterial/vo/DepartmentMaterialSaveReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialclasses/MaterialClassesController.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialclasses/vo/MaterialClassesPageReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialclasses/vo/MaterialClassesRespVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialclasses/vo/MaterialClassesSaveReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialclasses/vo/MaterialClassesTreeRespVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasclasses/MaterialHasClassesController.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasclasses/vo/MaterialHasClassesPageReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasclasses/vo/MaterialHasClassesRespVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasclasses/vo/MaterialHasClassesSaveReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/MaterialHasPropertiesController.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/vo/MaterialHasPropertiesPageReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/vo/MaterialHasPropertiesRespVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/vo/MaterialHasPropertiesSaveReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/MaterialPropertiesController.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesPageReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesRespVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesSaveReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/ProcessingInfomationController.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationPageReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationRespVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationSaveReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationTreeRespVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/ProcessingInfomationOperationController.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationPageReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationRespVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationSaveReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/ProcessingOperationController.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/vo/ProcessingOperationPageReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/vo/ProcessingOperationRespVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/vo/ProcessingOperationSaveReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/vo/ProcessingOperationSimpleRespVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperationmaterial/ProcessingOperationMaterialController.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperationmaterial/vo/ProcessingOperationMaterialPageReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperationmaterial/vo/ProcessingOperationMaterialRespVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperationmaterial/vo/ProcessingOperationMaterialSaveReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/departmentmaterial/DepartmentMaterialMapper.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/materialclasses/MaterialClassesMapper.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/materialhasclasses/MaterialHasClassesMapper.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/materialhasproperties/MaterialHasPropertiesMapper.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/materialproperties/MaterialPropertiesMapper.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/processinginfomation/ProcessingInfomationMapper.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/processinginfomationoperation/ProcessingInfomationOperationMapper.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/processingoperation/ProcessingOperationMapper.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/processingoperationmaterial/ProcessingOperationMaterialMapper.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/departmentmaterial/DepartmentMaterialDO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/materialclasses/MaterialClassesDO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/materialhasclasses/MaterialHasClassesDO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/materialhasproperties/MaterialHasPropertiesDO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/materialproperties/MaterialPropertiesDO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processinginfomation/ProcessingInfomationDO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processinginfomationoperation/ProcessingInfomationOperationDO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processingoperation/ProcessingOperationDO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processingoperationmaterial/ProcessingOperationMaterialDO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/departmentmaterial/DepartmentMaterialService.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/departmentmaterial/DepartmentMaterialServiceImpl.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialclasses/MaterialClassesService.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialclasses/MaterialClassesServiceImpl.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialhasclasses/MaterialHasClassesService.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialhasclasses/MaterialHasClassesServiceImpl.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialhasproperties/MaterialHasPropertiesService.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialhasproperties/MaterialHasPropertiesServiceImpl.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialproperties/MaterialPropertiesService.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialproperties/MaterialPropertiesServiceImpl.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomation/ProcessingInfomationService.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomation/ProcessingInfomationServiceImpl.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomationoperation/ProcessingInfomationOperationService.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomationoperation/ProcessingInfomationOperationServiceImpl.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processingoperation/ProcessingOperationService.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processingoperation/ProcessingOperationServiceImpl.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processingoperationmaterial/ProcessingOperationMaterialService.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processingoperationmaterial/ProcessingOperationMaterialServiceImpl.java create mode 100644 zt-module-base/zt-module-base-server/src/main/resources/mapper/departmentmaterial/DepartmentMaterialMapper.xml create mode 100644 zt-module-base/zt-module-base-server/src/main/resources/mapper/materialclasses/MaterialClassesMapper.xml create mode 100644 zt-module-base/zt-module-base-server/src/main/resources/mapper/materialhasclasses/MaterialHasClassesMapper.xml create mode 100644 zt-module-base/zt-module-base-server/src/main/resources/mapper/materialhasproperties/MaterialHasPropertiesMapper.xml create mode 100644 zt-module-base/zt-module-base-server/src/main/resources/mapper/materialproperties/MaterialPropertiesMapper.xml create mode 100644 zt-module-base/zt-module-base-server/src/main/resources/mapper/processinginfomation/ProcessingInfomationMapper.xml create mode 100644 zt-module-base/zt-module-base-server/src/main/resources/mapper/processinginfomationoperation/ProcessingInfomationOperationMapper.xml create mode 100644 zt-module-base/zt-module-base-server/src/main/resources/mapper/processingoperation/ProcessingOperationMapper.xml create mode 100644 zt-module-base/zt-module-base-server/src/main/resources/mapper/processingoperationmaterial/ProcessingOperationMaterialMapper.xml diff --git a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/base/enums/ErrorCodeConstants.java b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/base/enums/ErrorCodeConstants.java index 954c17c8..a15b0ee8 100644 --- a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/base/enums/ErrorCodeConstants.java +++ b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/base/enums/ErrorCodeConstants.java @@ -45,4 +45,16 @@ public interface ErrorCodeConstants { ErrorCode TEMPLATE_INSTANCE_NOT_EXISTS = new ErrorCode(1_006_004_001, "模板实例不存在"); ErrorCode TEMPLATE_INSTANCE_CODE_DUPLICATE = new ErrorCode(1_006_004_002, "实例编码已存在"); + // ========== 物料属性 ========== + ErrorCode MATERIAL_PROPERTIES_NOT_EXISTS = new ErrorCode(1_027_101_001, "物料属性不存在"); + ErrorCode MATERIAL_HAS_PROPERTIES_NOT_EXISTS = new ErrorCode(1_027_101_002, "物料持有属性不存在"); + ErrorCode MATERIAL_CLASSES_NOT_EXISTS = new ErrorCode(1_027_101_003, "物料分类不存在"); + ErrorCode DEPARTMENT_MATERIAL_NOT_EXISTS = new ErrorCode(1_027_101_004, "组织物料不存在"); + ErrorCode MATERIAL_HAS_CLASSES_NOT_EXISTS = new ErrorCode(1_027_101_004, "物料持有属性不存在"); + + // ========== 工艺信息属性 ========== + ErrorCode PROCESSING_INFOMATION_NOT_EXISTS = new ErrorCode(1_027_101_005, "工艺信息不存在"); + ErrorCode PROCESSING_INFOMATION_OPERATION_NOT_EXISTS = new ErrorCode(1_027_101_006, "工艺工序不存在"); + ErrorCode PROCESSING_OPERATION_NOT_EXISTS = new ErrorCode(1_027_101_007, "工序不存在"); + ErrorCode PROCESSING_OPERATION_MATERIAL_NOT_EXISTS = new ErrorCode(1_027_101_008, "工艺工序物料不存在"); } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialInfomationPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialInfomationPageReqVO.java index 5e1fe2b0..d81d1cab 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialInfomationPageReqVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialInfomationPageReqVO.java @@ -19,6 +19,9 @@ public class MaterialInfomationPageReqVO extends PageParam { @Schema(description = "物料名称", example = "张三") private String name; + @Schema(description = "分类ID", example = "1024") + private Long classesId; + @Schema(description = "备注") private String remark; diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialInfomationRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialInfomationRespVO.java index 47237be6..7fc8b56c 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialInfomationRespVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialInfomationRespVO.java @@ -24,6 +24,10 @@ public class MaterialInfomationRespVO { @ExcelProperty("物料名称") private String name; + @Schema(description = "分类ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("分类ID") + private Long classesId; + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("备注") private String remark; diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialInfomationSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialInfomationSaveReqVO.java index 80d5cbec..687c5875 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialInfomationSaveReqVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialInfomationSaveReqVO.java @@ -2,6 +2,7 @@ package com.zt.plat.module.base.controller.admin.base.vo; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; import lombok.Data; @Schema(description = "管理后台 - 物料信息新增/修改 Request VO") @@ -19,6 +20,10 @@ public class MaterialInfomationSaveReqVO { @NotEmpty(message = "物料名称不能为空") private String name; + @Schema(description = "分类ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "所属分类不能为空") + private Long classesId; + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "备注不能为空") private String remark; diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/departmentmaterial/DepartmentMaterialController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/departmentmaterial/DepartmentMaterialController.java new file mode 100644 index 00000000..bbde8459 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/departmentmaterial/DepartmentMaterialController.java @@ -0,0 +1,107 @@ +package com.zt.plat.module.base.controller.admin.departmentmaterial; + +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +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.base.controller.admin.departmentmaterial.vo.*; +import com.zt.plat.module.base.dal.dataobject.departmentmaterial.DepartmentMaterialDO; +import com.zt.plat.module.base.service.departmentmaterial.DepartmentMaterialService; + +@Tag(name = "管理后台 - 组织架构物料") +@RestController +@RequestMapping("/base/department-material") +@Validated +public class DepartmentMaterialController { + + + @Resource + private DepartmentMaterialService departmentMaterialService; + + @PostMapping("/create") + @Operation(summary = "创建组织架构物料") + @PreAuthorize("@ss.hasPermission('base:department-material:create')") + public CommonResult createDepartmentMaterial(@Valid @RequestBody DepartmentMaterialSaveReqVO createReqVO) { + return success(departmentMaterialService.createDepartmentMaterial(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新组织架构物料") + @PreAuthorize("@ss.hasPermission('base:department-material:update')") + public CommonResult updateDepartmentMaterial(@Valid @RequestBody DepartmentMaterialSaveReqVO updateReqVO) { + departmentMaterialService.updateDepartmentMaterial(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除组织架构物料") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('base:department-material:delete')") + public CommonResult deleteDepartmentMaterial(@RequestParam("id") Long id) { + departmentMaterialService.deleteDepartmentMaterial(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除组织架构物料") + @PreAuthorize("@ss.hasPermission('base:department-material:delete')") + public CommonResult deleteDepartmentMaterialList(@RequestBody BatchDeleteReqVO req) { + departmentMaterialService.deleteDepartmentMaterialListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得组织架构物料") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('base:department-material:query')") + public CommonResult getDepartmentMaterial(@RequestParam("id") Long id) { + DepartmentMaterialDO departmentMaterial = departmentMaterialService.getDepartmentMaterial(id); + return success(BeanUtils.toBean(departmentMaterial, DepartmentMaterialRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得组织架构物料分页") + @PreAuthorize("@ss.hasPermission('base:department-material:query')") + public CommonResult> getDepartmentMaterialPage(@Valid DepartmentMaterialPageReqVO pageReqVO) { + PageResult pageResult = departmentMaterialService.getDepartmentMaterialPage(pageReqVO); + return success(pageResult); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出组织架构物料 Excel") + @PreAuthorize("@ss.hasPermission('base:department-material:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportDepartmentMaterialExcel(@Valid DepartmentMaterialPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = departmentMaterialService.getDepartmentMaterialPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "组织架构物料.xls", "数据", DepartmentMaterialRespVO.class, + list); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/departmentmaterial/vo/DepartmentMaterialPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/departmentmaterial/vo/DepartmentMaterialPageReqVO.java new file mode 100644 index 00000000..0ae288f5 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/departmentmaterial/vo/DepartmentMaterialPageReqVO.java @@ -0,0 +1,47 @@ +package com.zt.plat.module.base.controller.admin.departmentmaterial.vo; + +import lombok.*; +import java.util.*; +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 DepartmentMaterialPageReqVO extends PageParam { + + @Schema(description = "物料信息ID", example = "3923") + private Long infomationId; + + @Schema(description = "物料信息ID集合(内部使用)") + private List infomationIds; + + @Schema(description = "物料分类ID", example = "30114") + private Long classesId; + + @Schema(description = "部门ID", example = "1001") + private Long deptId; + + @Schema(description = "字典数据值-物料类型") + private String dictionaryDataValue; + + @Schema(description = "状态编码", example = "1") + private String isEnable; + + @Schema(description = "物料编码") + private String materialNumber; + + @Schema(description = "物料名称") + private String materialName; + + @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-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/departmentmaterial/vo/DepartmentMaterialRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/departmentmaterial/vo/DepartmentMaterialRespVO.java new file mode 100644 index 00000000..4d694bda --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/departmentmaterial/vo/DepartmentMaterialRespVO.java @@ -0,0 +1,83 @@ +package com.zt.plat.module.base.controller.admin.departmentmaterial.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 组织架构物料 Response VO") +@Data +@ExcelIgnoreUnannotated +public class DepartmentMaterialRespVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "5674") + @ExcelProperty("主键ID") + private Long id; + + @Schema(description = "物料信息ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "3923") + @ExcelProperty("物料信息ID") + private Long infomationId; + + @Schema(description = "物料分类ID", example = "30114") + @ExcelProperty("物料分类ID") + private Long classesId; + + @Schema(description = "字典数据值-物料类型", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("字典数据值-物料类型") + private String dictionaryDataValue; + + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "部门ID") + @ExcelIgnore + private Long deptId; + + @Schema(description = "部门名称") + @ExcelProperty("部门名称") + private String deptName; + + @Schema(description = "物料编码") + @ExcelProperty("物料编码") + private String materialNumber; + + @Schema(description = "物料名称") + @ExcelProperty("物料名称") + private String materialName; + + @Schema(description = "物料大类名称") + @ExcelProperty("物料大类") + private String categoryLargeName; + + @Schema(description = "物料中类名称") + @ExcelProperty("物料中类") + private String categoryMediumName; + + @Schema(description = "物料小类名称") + @ExcelProperty("物料小类") + private String categorySmallName; + + @Schema(description = "物料分类路径") + @ExcelProperty("物料分类路径") + private String categoryPath; + + @Schema(description = "组织物料类型名称") + @ExcelProperty("组织物料类型") + private String dictionaryDataLabel; + + @Schema(description = "状态编码") + @ExcelProperty("状态编码") + private String isEnable; + + @Schema(description = "状态名称") + @ExcelProperty("状态") + private String statusLabel; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/departmentmaterial/vo/DepartmentMaterialSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/departmentmaterial/vo/DepartmentMaterialSaveReqVO.java new file mode 100644 index 00000000..375428ab --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/departmentmaterial/vo/DepartmentMaterialSaveReqVO.java @@ -0,0 +1,30 @@ +package com.zt.plat.module.base.controller.admin.departmentmaterial.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 组织架构物料新增/修改 Request VO") +@Data +public class DepartmentMaterialSaveReqVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "5674") + private Long id; + + @Schema(description = "物料信息ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "3923") + @NotNull(message = "物料信息ID不能为空") + private Long infomationId; + + @Schema(description = "物料分类ID", example = "30114") + private Long classesId; + + @Schema(description = "字典数据值-物料类型", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "字典数据值-物料类型不能为空") + private String dictionaryDataValue; + + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "备注不能为空") + private String remark; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialclasses/MaterialClassesController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialclasses/MaterialClassesController.java new file mode 100644 index 00000000..acb855ed --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialclasses/MaterialClassesController.java @@ -0,0 +1,138 @@ +package com.zt.plat.module.base.controller.admin.materialclasses; + +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +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.base.controller.admin.materialclasses.vo.*; +import com.zt.plat.module.base.dal.dataobject.materialclasses.MaterialClassesDO; +import com.zt.plat.module.base.service.materialclasses.MaterialClassesService; + +@Tag(name = "管理后台 - 物料分类") +@RestController +@RequestMapping("/base/material-classes") +@Validated +public class MaterialClassesController { + + + @Resource + private MaterialClassesService materialClassesService; + + @PostMapping("/create") + @Operation(summary = "创建物料分类") + @PreAuthorize("@ss.hasPermission('base:material-classes:create')") + public CommonResult createMaterialClasses(@Valid @RequestBody MaterialClassesSaveReqVO createReqVO) { + return success(materialClassesService.createMaterialClasses(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新物料分类") + @PreAuthorize("@ss.hasPermission('base:material-classes:update')") + public CommonResult updateMaterialClasses(@Valid @RequestBody MaterialClassesSaveReqVO updateReqVO) { + materialClassesService.updateMaterialClasses(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除物料分类") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('base:material-classes:delete')") + public CommonResult deleteMaterialClasses(@RequestParam("id") Long id) { + materialClassesService.deleteMaterialClasses(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除物料分类") + @PreAuthorize("@ss.hasPermission('base:material-classes:delete')") + public CommonResult deleteMaterialClassesList(@RequestBody BatchDeleteReqVO req) { + materialClassesService.deleteMaterialClassesListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得物料分类") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('base:material-classes:query')") + public CommonResult getMaterialClasses(@RequestParam("id") Long id) { + MaterialClassesDO materialClasses = materialClassesService.getMaterialClasses(id); + return success(BeanUtils.toBean(materialClasses, MaterialClassesRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得物料分类分页") + @PreAuthorize("@ss.hasPermission('base:material-classes:query')") + public CommonResult> getMaterialClassesPage(@Valid MaterialClassesPageReqVO pageReqVO) { + PageResult pageResult = materialClassesService.getMaterialClassesPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, MaterialClassesRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出物料分类 Excel") + @PreAuthorize("@ss.hasPermission('base:material-classes:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportMaterialClassesExcel(@Valid MaterialClassesPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = materialClassesService.getMaterialClassesPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "物料分类.xls", "数据", MaterialClassesRespVO.class, + BeanUtils.toBean(list, MaterialClassesRespVO.class)); + } + + @GetMapping("/tree") + @Operation(summary = "获得物料分类树") + @PreAuthorize("@ss.hasPermission('base:material-classes:query')") + public CommonResult> getMaterialClassesTree() { + List list = materialClassesService.getMaterialClassesList(); + return success(buildTree(list)); + } + + private List buildTree(List list) { + if (list == null || list.isEmpty()) { + return Collections.emptyList(); + } + Map nodeMap = new LinkedHashMap<>(); + list.stream() + .sorted(Comparator.comparing(MaterialClassesDO::getId)) + .forEach(item -> { + MaterialClassesTreeRespVO node = BeanUtils.toBean(item, MaterialClassesTreeRespVO.class); + nodeMap.put(node.getId(), node); + }); + List roots = new ArrayList<>(); + nodeMap.values().forEach(node -> { + Long parentId = node.getParentId(); + if (parentId == null || parentId == 0 || !nodeMap.containsKey(parentId)) { + roots.add(node); + } else { + nodeMap.get(parentId).getChildren().add(node); + } + }); + return roots; + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialclasses/vo/MaterialClassesPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialclasses/vo/MaterialClassesPageReqVO.java new file mode 100644 index 00000000..60683023 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialclasses/vo/MaterialClassesPageReqVO.java @@ -0,0 +1,35 @@ +package com.zt.plat.module.base.controller.admin.materialclasses.vo; + +import lombok.*; +import java.util.*; +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 MaterialClassesPageReqVO extends PageParam { + + @Schema(description = "父级ID", example = "20706") + private Long parentId; + + @Schema(description = "分类编码") + private String code; + + @Schema(description = "分类名称", example = "赵六") + private String name; + + @Schema(description = "分类级别-用于类别层级(大/中/小类)") + private Long level; + + @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-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialclasses/vo/MaterialClassesRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialclasses/vo/MaterialClassesRespVO.java new file mode 100644 index 00000000..a4825a72 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialclasses/vo/MaterialClassesRespVO.java @@ -0,0 +1,43 @@ +package com.zt.plat.module.base.controller.admin.materialclasses.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 物料分类 Response VO") +@Data +@ExcelIgnoreUnannotated +public class MaterialClassesRespVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4051") + @ExcelProperty("主键ID") + private Long id; + + @Schema(description = "父级ID", example = "20706") + @ExcelProperty("父级ID") + private Long parentId; + + @Schema(description = "分类编码", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("分类编码") + private String code; + + @Schema(description = "分类名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") + @ExcelProperty("分类名称") + private String name; + + @Schema(description = "分类级别-用于类别层级(大/中/小类)") + @ExcelProperty("分类级别-用于类别层级(大/中/小类)") + private Long level; + + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialclasses/vo/MaterialClassesSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialclasses/vo/MaterialClassesSaveReqVO.java new file mode 100644 index 00000000..92ffea06 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialclasses/vo/MaterialClassesSaveReqVO.java @@ -0,0 +1,33 @@ +package com.zt.plat.module.base.controller.admin.materialclasses.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 物料分类新增/修改 Request VO") +@Data +public class MaterialClassesSaveReqVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4051") + private Long id; + + @Schema(description = "父级ID", example = "20706") + private Long parentId; + + @Schema(description = "分类编码", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "分类编码不能为空") + private String code; + + @Schema(description = "分类名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") + @NotEmpty(message = "分类名称不能为空") + private String name; + + @Schema(description = "分类级别-用于类别层级(大/中/小类)") + private Long level; + + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "备注不能为空") + private String remark; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialclasses/vo/MaterialClassesTreeRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialclasses/vo/MaterialClassesTreeRespVO.java new file mode 100644 index 00000000..f47d2151 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialclasses/vo/MaterialClassesTreeRespVO.java @@ -0,0 +1,33 @@ +package com.zt.plat.module.base.controller.admin.materialclasses.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +@Schema(description = "管理后台 - 物料分类树节点 Response VO") +@Data +public class MaterialClassesTreeRespVO { + + @Schema(description = "主键ID", example = "1001") + private Long id; + + @Schema(description = "父级ID", example = "0") + private Long parentId; + + @Schema(description = "分类编码", example = "CL-001") + private String code; + + @Schema(description = "分类名称", example = "原材料") + private String name; + + @Schema(description = "分类级别") + private Long level; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "子节点") + private List children = new ArrayList<>(); +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasclasses/MaterialHasClassesController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasclasses/MaterialHasClassesController.java new file mode 100644 index 00000000..2dcc8418 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasclasses/MaterialHasClassesController.java @@ -0,0 +1,107 @@ +package com.zt.plat.module.base.controller.admin.materialhasclasses; + +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +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.base.controller.admin.materialhasclasses.vo.*; +import com.zt.plat.module.base.dal.dataobject.materialhasclasses.MaterialHasClassesDO; +import com.zt.plat.module.base.service.materialhasclasses.MaterialHasClassesService; + +@Tag(name = "管理后台 - 物料持有分类") +@RestController +@RequestMapping("/base/material-has-classes") +@Validated +public class MaterialHasClassesController { + + + @Resource + private MaterialHasClassesService materialHasClassesService; + + @PostMapping("/create") + @Operation(summary = "创建物料持有分类") + @PreAuthorize("@ss.hasPermission('base:material-has-classes:create')") + public CommonResult createMaterialHasClasses(@Valid @RequestBody MaterialHasClassesSaveReqVO createReqVO) { + return success(materialHasClassesService.createMaterialHasClasses(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新物料持有分类") + @PreAuthorize("@ss.hasPermission('base:material-has-classes:update')") + public CommonResult updateMaterialHasClasses(@Valid @RequestBody MaterialHasClassesSaveReqVO updateReqVO) { + materialHasClassesService.updateMaterialHasClasses(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除物料持有分类") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('base:material-has-classes:delete')") + public CommonResult deleteMaterialHasClasses(@RequestParam("id") Long id) { + materialHasClassesService.deleteMaterialHasClasses(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除物料持有分类") + @PreAuthorize("@ss.hasPermission('base:material-has-classes:delete')") + public CommonResult deleteMaterialHasClassesList(@RequestBody BatchDeleteReqVO req) { + materialHasClassesService.deleteMaterialHasClassesListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得物料持有分类") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('base:material-has-classes:query')") + public CommonResult getMaterialHasClasses(@RequestParam("id") Long id) { + MaterialHasClassesDO materialHasClasses = materialHasClassesService.getMaterialHasClasses(id); + return success(BeanUtils.toBean(materialHasClasses, MaterialHasClassesRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得物料持有分类分页") + @PreAuthorize("@ss.hasPermission('base:material-has-classes:query')") + public CommonResult> getMaterialHasClassesPage(@Valid MaterialHasClassesPageReqVO pageReqVO) { + PageResult pageResult = materialHasClassesService.getMaterialHasClassesPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, MaterialHasClassesRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出物料持有分类 Excel") + @PreAuthorize("@ss.hasPermission('base:material-has-classes:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportMaterialHasClassesExcel(@Valid MaterialHasClassesPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = materialHasClassesService.getMaterialHasClassesPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "物料持有分类.xls", "数据", MaterialHasClassesRespVO.class, + BeanUtils.toBean(list, MaterialHasClassesRespVO.class)); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasclasses/vo/MaterialHasClassesPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasclasses/vo/MaterialHasClassesPageReqVO.java new file mode 100644 index 00000000..3f5efd1e --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasclasses/vo/MaterialHasClassesPageReqVO.java @@ -0,0 +1,26 @@ +package com.zt.plat.module.base.controller.admin.materialhasclasses.vo; + +import lombok.*; +import java.util.*; +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 MaterialHasClassesPageReqVO extends PageParam { + + @Schema(description = "物料信息ID", example = "31031") + private Long infomationId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "分类ID", example = "5914") + private Long classesId; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasclasses/vo/MaterialHasClassesRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasclasses/vo/MaterialHasClassesRespVO.java new file mode 100644 index 00000000..b5d6bdcc --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasclasses/vo/MaterialHasClassesRespVO.java @@ -0,0 +1,31 @@ +package com.zt.plat.module.base.controller.admin.materialhasclasses.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 物料持有分类 Response VO") +@Data +@ExcelIgnoreUnannotated +public class MaterialHasClassesRespVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16228") + @ExcelProperty("主键ID") + private Long id; + + @Schema(description = "物料信息ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "31031") + @ExcelProperty("物料信息ID") + private Long infomationId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "分类ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "5914") + @ExcelProperty("分类ID") + private Long classesId; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasclasses/vo/MaterialHasClassesSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasclasses/vo/MaterialHasClassesSaveReqVO.java new file mode 100644 index 00000000..1c0dbbc6 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasclasses/vo/MaterialHasClassesSaveReqVO.java @@ -0,0 +1,23 @@ +package com.zt.plat.module.base.controller.admin.materialhasclasses.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 物料持有分类新增/修改 Request VO") +@Data +public class MaterialHasClassesSaveReqVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16228") + private Long id; + + @Schema(description = "物料信息ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "31031") + @NotNull(message = "物料信息ID不能为空") + private Long infomationId; + + @Schema(description = "分类ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "5914") + @NotNull(message = "分类ID不能为空") + private Long classesId; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/MaterialHasPropertiesController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/MaterialHasPropertiesController.java new file mode 100644 index 00000000..74cd3366 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/MaterialHasPropertiesController.java @@ -0,0 +1,107 @@ +package com.zt.plat.module.base.controller.admin.materialhasproperties; + +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +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.base.controller.admin.materialhasproperties.vo.*; +import com.zt.plat.module.base.dal.dataobject.materialhasproperties.MaterialHasPropertiesDO; +import com.zt.plat.module.base.service.materialhasproperties.MaterialHasPropertiesService; + +@Tag(name = "管理后台 - 物料持有属性") +@RestController +@RequestMapping("/base/material-has-properties") +@Validated +public class MaterialHasPropertiesController { + + + @Resource + private MaterialHasPropertiesService materialHasPropertiesService; + + @PostMapping("/create") + @Operation(summary = "创建物料持有属性") + @PreAuthorize("@ss.hasPermission('base:material-has-properties:create')") + public CommonResult createMaterialHasProperties(@Valid @RequestBody MaterialHasPropertiesSaveReqVO createReqVO) { + return success(materialHasPropertiesService.createMaterialHasProperties(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新物料持有属性") + @PreAuthorize("@ss.hasPermission('base:material-has-properties:update')") + public CommonResult updateMaterialHasProperties(@Valid @RequestBody MaterialHasPropertiesSaveReqVO updateReqVO) { + materialHasPropertiesService.updateMaterialHasProperties(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除物料持有属性") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('base:material-has-properties:delete')") + public CommonResult deleteMaterialHasProperties(@RequestParam("id") Long id) { + materialHasPropertiesService.deleteMaterialHasProperties(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除物料持有属性") + @PreAuthorize("@ss.hasPermission('base:material-has-properties:delete')") + public CommonResult deleteMaterialHasPropertiesList(@RequestBody BatchDeleteReqVO req) { + materialHasPropertiesService.deleteMaterialHasPropertiesListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得物料持有属性") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('base:material-has-properties:query')") + public CommonResult getMaterialHasProperties(@RequestParam("id") Long id) { + MaterialHasPropertiesDO materialHasProperties = materialHasPropertiesService.getMaterialHasProperties(id); + return success(BeanUtils.toBean(materialHasProperties, MaterialHasPropertiesRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得物料持有属性分页") + @PreAuthorize("@ss.hasPermission('base:material-has-properties:query')") + public CommonResult> getMaterialHasPropertiesPage(@Valid MaterialHasPropertiesPageReqVO pageReqVO) { + PageResult pageResult = materialHasPropertiesService.getMaterialHasPropertiesPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, MaterialHasPropertiesRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出物料持有属性 Excel") + @PreAuthorize("@ss.hasPermission('base:material-has-properties:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportMaterialHasPropertiesExcel(@Valid MaterialHasPropertiesPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = materialHasPropertiesService.getMaterialHasPropertiesPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "物料持有属性.xls", "数据", MaterialHasPropertiesRespVO.class, + BeanUtils.toBean(list, MaterialHasPropertiesRespVO.class)); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/vo/MaterialHasPropertiesPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/vo/MaterialHasPropertiesPageReqVO.java new file mode 100644 index 00000000..f1a33498 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/vo/MaterialHasPropertiesPageReqVO.java @@ -0,0 +1,41 @@ +package com.zt.plat.module.base.controller.admin.materialhasproperties.vo; + +import lombok.*; +import java.util.*; +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 MaterialHasPropertiesPageReqVO extends PageParam { + + @Schema(description = "物料信息ID", example = "2614") + private Long infomationId; + + @Schema(description = "属性ID", example = "8607") + private Long propertiesId; + + @Schema(description = "计量单位ID-默认计量单位", example = "23731") + private Long unitId; + + @Schema(description = "属性值") + private String value; + + @Schema(description = "是否关键属性-关键属性表示物料唯一性") + private Integer isKey; + + @Schema(description = "是否计量定价") + private Integer isMetering; + + @Schema(description = "排序号") + private Long sort; + + @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-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/vo/MaterialHasPropertiesRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/vo/MaterialHasPropertiesRespVO.java new file mode 100644 index 00000000..79cdc7a6 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/vo/MaterialHasPropertiesRespVO.java @@ -0,0 +1,51 @@ +package com.zt.plat.module.base.controller.admin.materialhasproperties.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 物料持有属性 Response VO") +@Data +@ExcelIgnoreUnannotated +public class MaterialHasPropertiesRespVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "6800") + @ExcelProperty("主键ID") + private Long id; + + @Schema(description = "物料信息ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2614") + @ExcelProperty("物料信息ID") + private Long infomationId; + + @Schema(description = "属性ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8607") + @ExcelProperty("属性ID") + private Long propertiesId; + + @Schema(description = "计量单位ID-默认计量单位", example = "23731") + @ExcelProperty("计量单位ID-默认计量单位") + private Long unitId; + + @Schema(description = "属性值", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("属性值") + private String value; + + @Schema(description = "是否关键属性-关键属性表示物料唯一性") + @ExcelProperty("是否关键属性-关键属性表示物料唯一性") + private Integer isKey; + + @Schema(description = "是否计量定价") + @ExcelProperty("是否计量定价") + private Integer isMetering; + + @Schema(description = "排序号") + @ExcelProperty("排序号") + private Long sort; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/vo/MaterialHasPropertiesSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/vo/MaterialHasPropertiesSaveReqVO.java new file mode 100644 index 00000000..e3092ab7 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialhasproperties/vo/MaterialHasPropertiesSaveReqVO.java @@ -0,0 +1,39 @@ +package com.zt.plat.module.base.controller.admin.materialhasproperties.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 物料持有属性新增/修改 Request VO") +@Data +public class MaterialHasPropertiesSaveReqVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "6800") + private Long id; + + @Schema(description = "物料信息ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2614") + @NotNull(message = "物料信息ID不能为空") + private Long infomationId; + + @Schema(description = "属性ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8607") + @NotNull(message = "属性ID不能为空") + private Long propertiesId; + + @Schema(description = "计量单位ID-默认计量单位", example = "23731") + private Long unitId; + + @Schema(description = "属性值", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "属性值不能为空") + private String value; + + @Schema(description = "是否关键属性-关键属性表示物料唯一性") + private Integer isKey; + + @Schema(description = "是否计量定价") + private Integer isMetering; + + @Schema(description = "排序号") + private Long sort; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/MaterialPropertiesController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/MaterialPropertiesController.java new file mode 100644 index 00000000..09290736 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/MaterialPropertiesController.java @@ -0,0 +1,107 @@ +package com.zt.plat.module.base.controller.admin.materialproperties; + +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +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.base.controller.admin.materialproperties.vo.*; +import com.zt.plat.module.base.dal.dataobject.materialproperties.MaterialPropertiesDO; +import com.zt.plat.module.base.service.materialproperties.MaterialPropertiesService; + +@Tag(name = "管理后台 - 物料属性") +@RestController +@RequestMapping("/base/material-properties") +@Validated +public class MaterialPropertiesController { + + + @Resource + private MaterialPropertiesService materialPropertiesService; + + @PostMapping("/create") + @Operation(summary = "创建物料属性") + @PreAuthorize("@ss.hasPermission('base:material-properties:create')") + public CommonResult createMaterialProperties(@Valid @RequestBody MaterialPropertiesSaveReqVO createReqVO) { + return success(materialPropertiesService.createMaterialProperties(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新物料属性") + @PreAuthorize("@ss.hasPermission('base:material-properties:update')") + public CommonResult updateMaterialProperties(@Valid @RequestBody MaterialPropertiesSaveReqVO updateReqVO) { + materialPropertiesService.updateMaterialProperties(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除物料属性") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('base:material-properties:delete')") + public CommonResult deleteMaterialProperties(@RequestParam("id") Long id) { + materialPropertiesService.deleteMaterialProperties(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除物料属性") + @PreAuthorize("@ss.hasPermission('base:material-properties:delete')") + public CommonResult deleteMaterialPropertiesList(@RequestBody BatchDeleteReqVO req) { + materialPropertiesService.deleteMaterialPropertiesListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得物料属性") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('base:material-properties:query')") + public CommonResult getMaterialProperties(@RequestParam("id") Long id) { + MaterialPropertiesDO materialProperties = materialPropertiesService.getMaterialProperties(id); + return success(BeanUtils.toBean(materialProperties, MaterialPropertiesRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得物料属性分页") + @PreAuthorize("@ss.hasPermission('base:material-properties:query')") + public CommonResult> getMaterialPropertiesPage(@Valid MaterialPropertiesPageReqVO pageReqVO) { + PageResult pageResult = materialPropertiesService.getMaterialPropertiesPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, MaterialPropertiesRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出物料属性 Excel") + @PreAuthorize("@ss.hasPermission('base:material-properties:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportMaterialPropertiesExcel(@Valid MaterialPropertiesPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = materialPropertiesService.getMaterialPropertiesPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "物料属性.xls", "数据", MaterialPropertiesRespVO.class, + BeanUtils.toBean(list, MaterialPropertiesRespVO.class)); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesPageReqVO.java new file mode 100644 index 00000000..6621b95c --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesPageReqVO.java @@ -0,0 +1,38 @@ +package com.zt.plat.module.base.controller.admin.materialproperties.vo; + +import lombok.*; +import java.util.*; +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 MaterialPropertiesPageReqVO extends PageParam { + + @Schema(description = "属性编码") + private String code; + + @Schema(description = "属性名称", example = "芋艿") + private String name; + + @Schema(description = "计量单位量ID", example = "30468") + private Long unitQuantityId; + + @Schema(description = "业务字典数据值") + private String dictionaryDataValue; + + @Schema(description = "数据类型", example = "1") + private String dataType; + + @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-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesRespVO.java new file mode 100644 index 00000000..c2ac468a --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesRespVO.java @@ -0,0 +1,47 @@ +package com.zt.plat.module.base.controller.admin.materialproperties.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 物料属性 Response VO") +@Data +@ExcelIgnoreUnannotated +public class MaterialPropertiesRespVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "10591") + @ExcelProperty("主键ID") + private Long id; + + @Schema(description = "属性编码", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("属性编码") + private String code; + + @Schema(description = "属性名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("属性名称") + private String name; + + @Schema(description = "计量单位量ID", example = "30468") + @ExcelProperty("计量单位量ID") + private Long unitQuantityId; + + @Schema(description = "业务字典数据值", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("业务字典数据值") + private String dictionaryDataValue; + + @Schema(description = "数据类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("数据类型") + private String dataType; + + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesSaveReqVO.java new file mode 100644 index 00000000..e296bbe6 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/materialproperties/vo/MaterialPropertiesSaveReqVO.java @@ -0,0 +1,38 @@ +package com.zt.plat.module.base.controller.admin.materialproperties.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 物料属性新增/修改 Request VO") +@Data +public class MaterialPropertiesSaveReqVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "10591") + private Long id; + + @Schema(description = "属性编码", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "属性编码不能为空") + private String code; + + @Schema(description = "属性名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @NotEmpty(message = "属性名称不能为空") + private String name; + + @Schema(description = "计量单位量ID", example = "30468") + private Long unitQuantityId; + + @Schema(description = "业务字典数据值", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "业务字典数据值不能为空") + private String dictionaryDataValue; + + @Schema(description = "数据类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotEmpty(message = "数据类型不能为空") + private String dataType; + + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "备注不能为空") + private String remark; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/ProcessingInfomationController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/ProcessingInfomationController.java new file mode 100644 index 00000000..2cb57b52 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/ProcessingInfomationController.java @@ -0,0 +1,138 @@ +package com.zt.plat.module.base.controller.admin.processinginfomation; + +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +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.base.controller.admin.processinginfomation.vo.*; +import com.zt.plat.module.base.dal.dataobject.processinginfomation.ProcessingInfomationDO; +import com.zt.plat.module.base.service.processinginfomation.ProcessingInfomationService; + +@Tag(name = "管理后台 - 工艺信息") +@RestController +@RequestMapping("/base/processing-infomation") +@Validated +public class ProcessingInfomationController { + + + @Resource + private ProcessingInfomationService processingInfomationService; + + @PostMapping("/create") + @Operation(summary = "创建工艺信息") + @PreAuthorize("@ss.hasPermission('base:processing-infomation:create')") + public CommonResult createProcessingInfomation(@Valid @RequestBody ProcessingInfomationSaveReqVO createReqVO) { + return success(processingInfomationService.createProcessingInfomation(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新工艺信息") + @PreAuthorize("@ss.hasPermission('base:processing-infomation:update')") + public CommonResult updateProcessingInfomation(@Valid @RequestBody ProcessingInfomationSaveReqVO updateReqVO) { + processingInfomationService.updateProcessingInfomation(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除工艺信息") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('base:processing-infomation:delete')") + public CommonResult deleteProcessingInfomation(@RequestParam("id") Long id) { + processingInfomationService.deleteProcessingInfomation(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除工艺信息") + @PreAuthorize("@ss.hasPermission('base:processing-infomation:delete')") + public CommonResult deleteProcessingInfomationList(@RequestBody BatchDeleteReqVO req) { + processingInfomationService.deleteProcessingInfomationListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得工艺信息") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('base:processing-infomation:query')") + public CommonResult getProcessingInfomation(@RequestParam("id") Long id) { + ProcessingInfomationDO processingInfomation = processingInfomationService.getProcessingInfomation(id); + return success(BeanUtils.toBean(processingInfomation, ProcessingInfomationRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得工艺信息分页") + @PreAuthorize("@ss.hasPermission('base:processing-infomation:query')") + public CommonResult> getProcessingInfomationPage(@Valid ProcessingInfomationPageReqVO pageReqVO) { + PageResult pageResult = processingInfomationService.getProcessingInfomationPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, ProcessingInfomationRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出工艺信息 Excel") + @PreAuthorize("@ss.hasPermission('base:processing-infomation:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportProcessingInfomationExcel(@Valid ProcessingInfomationPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = processingInfomationService.getProcessingInfomationPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "工艺信息.xls", "数据", ProcessingInfomationRespVO.class, + BeanUtils.toBean(list, ProcessingInfomationRespVO.class)); + } + + @GetMapping("/tree") + @Operation(summary = "获得工艺信息树") + @PreAuthorize("@ss.hasPermission('base:processing-infomation:query')") + public CommonResult> getProcessingInfomationTree() { + List list = processingInfomationService.getProcessingInfomationList(); + return success(buildTree(list)); + } + + private List buildTree(List list) { + if (list == null || list.isEmpty()) { + return Collections.emptyList(); + } + Map nodeMap = new LinkedHashMap<>(); + list.stream() + .sorted(Comparator.comparing(ProcessingInfomationDO::getId)) + .forEach(item -> { + ProcessingInfomationTreeRespVO node = BeanUtils.toBean(item, ProcessingInfomationTreeRespVO.class); + nodeMap.put(node.getId(), node); + }); + List roots = new ArrayList<>(); + nodeMap.values().forEach(node -> { + Long parentId = node.getParentId(); + if (parentId == null || parentId == 0 || !nodeMap.containsKey(parentId)) { + roots.add(node); + } else { + nodeMap.get(parentId).getChildren().add(node); + } + }); + return roots; + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationPageReqVO.java new file mode 100644 index 00000000..35efbf83 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationPageReqVO.java @@ -0,0 +1,42 @@ +package com.zt.plat.module.base.controller.admin.processinginfomation.vo; + +import lombok.*; +import java.util.*; +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 ProcessingInfomationPageReqVO extends PageParam { + + @Schema(description = "父级ID", example = "16823") + private Long parentId; + + @Schema(description = "工艺编码-唯一业务键") + private String code; + + @Schema(description = "工艺名称", example = "赵六") + private String name; + + @Schema(description = "工艺类型值") + private Long typeValue; + + @Schema(description = "状态值-工艺状态") + private String statusValue; + + @Schema(description = "工艺描述") + private String description; + + @Schema(description = "生效日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] effectiveDate; + + @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-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationRespVO.java new file mode 100644 index 00000000..c22e4e9e --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationRespVO.java @@ -0,0 +1,51 @@ +package com.zt.plat.module.base.controller.admin.processinginfomation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 工艺信息 Response VO") +@Data +@ExcelIgnoreUnannotated +public class ProcessingInfomationRespVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16240") + @ExcelProperty("主键ID") + private Long id; + + @Schema(description = "父级ID", example = "16823") + @ExcelProperty("父级ID") + private Long parentId; + + @Schema(description = "工艺编码-唯一业务键", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("工艺编码-唯一业务键") + private String code; + + @Schema(description = "工艺名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") + @ExcelProperty("工艺名称") + private String name; + + @Schema(description = "工艺类型值") + @ExcelProperty("工艺类型值") + private Long typeValue; + + @Schema(description = "状态值-工艺状态", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("状态值-工艺状态") + private String statusValue; + + @Schema(description = "工艺描述", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("工艺描述") + private String description; + + @Schema(description = "生效日期") + @ExcelProperty("生效日期") + private LocalDateTime effectiveDate; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationSaveReqVO.java new file mode 100644 index 00000000..bcf17ca3 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationSaveReqVO.java @@ -0,0 +1,42 @@ +package com.zt.plat.module.base.controller.admin.processinginfomation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 工艺信息新增/修改 Request VO") +@Data +public class ProcessingInfomationSaveReqVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16240") + private Long id; + + @Schema(description = "父级ID", example = "16823") + private Long parentId; + + @Schema(description = "工艺编码-唯一业务键", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "工艺编码-唯一业务键不能为空") + private String code; + + @Schema(description = "工艺名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") + @NotEmpty(message = "工艺名称不能为空") + private String name; + + @Schema(description = "工艺类型值") + private Long typeValue; + + @Schema(description = "状态值-工艺状态", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "状态值-工艺状态不能为空") + private String statusValue; + + @Schema(description = "工艺描述", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "工艺描述不能为空") + private String description; + + @Schema(description = "生效日期") + private LocalDateTime effectiveDate; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationTreeRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationTreeRespVO.java new file mode 100644 index 00000000..87b276ab --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationTreeRespVO.java @@ -0,0 +1,34 @@ +package com.zt.plat.module.base.controller.admin.processinginfomation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +@Schema(description = "管理后台 - 工艺信息树节点 Response VO") +@Data +public class ProcessingInfomationTreeRespVO { + + @Schema(description = "主键ID", example = "1001") + private Long id; + + @Schema(description = "父级ID", example = "0") + private Long parentId; + + @Schema(description = "工艺编码", example = "PRC-001") + private String code; + + @Schema(description = "工艺名称", example = "熔铸") + private String name; + + @Schema(description = "工艺类型值") + private Long typeValue; + + @Schema(description = "状态值-工艺状态") + private String statusValue; + + @Schema(description = "子节点") + private List children = new ArrayList<>(); + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/ProcessingInfomationOperationController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/ProcessingInfomationOperationController.java new file mode 100644 index 00000000..16b25097 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/ProcessingInfomationOperationController.java @@ -0,0 +1,107 @@ +package com.zt.plat.module.base.controller.admin.processinginfomationoperation; + +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +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.base.controller.admin.processinginfomationoperation.vo.*; +import com.zt.plat.module.base.dal.dataobject.processinginfomationoperation.ProcessingInfomationOperationDO; +import com.zt.plat.module.base.service.processinginfomationoperation.ProcessingInfomationOperationService; + +@Tag(name = "管理后台 - 工艺工序") +@RestController +@RequestMapping("/base/processing-infomation-operation") +@Validated +public class ProcessingInfomationOperationController { + + + @Resource + private ProcessingInfomationOperationService processingInfomationOperationService; + + @PostMapping("/create") + @Operation(summary = "创建工艺工序") + @PreAuthorize("@ss.hasPermission('base:processing-infomation-operation:create')") + public CommonResult createProcessingInfomationOperation(@Valid @RequestBody ProcessingInfomationOperationSaveReqVO createReqVO) { + return success(processingInfomationOperationService.createProcessingInfomationOperation(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新工艺工序") + @PreAuthorize("@ss.hasPermission('base:processing-infomation-operation:update')") + public CommonResult updateProcessingInfomationOperation(@Valid @RequestBody ProcessingInfomationOperationSaveReqVO updateReqVO) { + processingInfomationOperationService.updateProcessingInfomationOperation(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除工艺工序") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('base:processing-infomation-operation:delete')") + public CommonResult deleteProcessingInfomationOperation(@RequestParam("id") Long id) { + processingInfomationOperationService.deleteProcessingInfomationOperation(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除工艺工序") + @PreAuthorize("@ss.hasPermission('base:processing-infomation-operation:delete')") + public CommonResult deleteProcessingInfomationOperationList(@RequestBody BatchDeleteReqVO req) { + processingInfomationOperationService.deleteProcessingInfomationOperationListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得工艺工序") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('base:processing-infomation-operation:query')") + public CommonResult getProcessingInfomationOperation(@RequestParam("id") Long id) { + ProcessingInfomationOperationDO processingInfomationOperation = processingInfomationOperationService.getProcessingInfomationOperation(id); + return success(BeanUtils.toBean(processingInfomationOperation, ProcessingInfomationOperationRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得工艺工序分页") + @PreAuthorize("@ss.hasPermission('base:processing-infomation-operation:query')") + public CommonResult> getProcessingInfomationOperationPage(@Valid ProcessingInfomationOperationPageReqVO pageReqVO) { + PageResult pageResult = processingInfomationOperationService.getProcessingInfomationOperationDetailPage(pageReqVO); + return success(pageResult); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出工艺工序 Excel") + @PreAuthorize("@ss.hasPermission('base:processing-infomation-operation:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportProcessingInfomationOperationExcel(@Valid ProcessingInfomationOperationPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = processingInfomationOperationService.getProcessingInfomationOperationDetailList(pageReqVO); + // 导出 Excel + ExcelUtils.write(response, "工艺工序.xls", "数据", ProcessingInfomationOperationRespVO.class, + list); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationPageReqVO.java new file mode 100644 index 00000000..96590e15 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationPageReqVO.java @@ -0,0 +1,41 @@ +package com.zt.plat.module.base.controller.admin.processinginfomationoperation.vo; + +import lombok.*; +import java.util.*; +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 ProcessingInfomationOperationPageReqVO extends PageParam { + + @Schema(description = "前序工序ID", example = "14658") + private Long previousOperationId; + + @Schema(description = "后续工序ID", example = "22110") + private Long nextOperationId; + + @Schema(description = "工艺ID", example = "5773") + private Long processingId; + + @Schema(description = "是否关键工序") + private Integer isKey; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "后续工序编码") + private String nextOperationCode; + + @Schema(description = "后续工序名称") + private String nextOperationName; + + @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-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationRespVO.java new file mode 100644 index 00000000..78b09db8 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationRespVO.java @@ -0,0 +1,59 @@ +package com.zt.plat.module.base.controller.admin.processinginfomationoperation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 工艺工序 Response VO") +@Data +@ExcelIgnoreUnannotated +public class ProcessingInfomationOperationRespVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29694") + @ExcelProperty("主键ID") + private Long id; + + @Schema(description = "前序工序ID", example = "14658") + @ExcelProperty("前序工序ID") + private Long previousOperationId; + + @Schema(description = "前序工序编码") + @ExcelProperty("前序工序编码") + private String previousOperationCode; + + @Schema(description = "前序工序名称") + @ExcelProperty("前序工序名称") + private String previousOperationName; + + @Schema(description = "后续工序ID", example = "22110") + @ExcelProperty("后续工序ID") + private Long nextOperationId; + + @Schema(description = "后续工序编码") + @ExcelProperty("后续工序编码") + private String nextOperationCode; + + @Schema(description = "后续工序名称") + @ExcelProperty("后续工序名称") + private String nextOperationName; + + @Schema(description = "工艺ID", example = "5773") + @ExcelProperty("工艺ID") + private Long processingId; + + @Schema(description = "是否关键工序") + @ExcelProperty("是否关键工序") + private Integer isKey; + + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationSaveReqVO.java new file mode 100644 index 00000000..eb396caf --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationSaveReqVO.java @@ -0,0 +1,31 @@ +package com.zt.plat.module.base.controller.admin.processinginfomationoperation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 工艺工序新增/修改 Request VO") +@Data +public class ProcessingInfomationOperationSaveReqVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29694") + private Long id; + + @Schema(description = "前序工序ID", example = "14658") + private Long previousOperationId; + + @Schema(description = "后续工序ID", example = "22110") + private Long nextOperationId; + + @Schema(description = "工艺ID", example = "5773") + private Long processingId; + + @Schema(description = "是否关键工序") + private Integer isKey; + + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "备注不能为空") + private String remark; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/ProcessingOperationController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/ProcessingOperationController.java new file mode 100644 index 00000000..4dd13395 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/ProcessingOperationController.java @@ -0,0 +1,115 @@ +package com.zt.plat.module.base.controller.admin.processingoperation; + +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +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.base.controller.admin.processingoperation.vo.*; +import com.zt.plat.module.base.dal.dataobject.processingoperation.ProcessingOperationDO; +import com.zt.plat.module.base.service.processingoperation.ProcessingOperationService; + +@Tag(name = "管理后台 - 工序") +@RestController +@RequestMapping("/base/processing-operation") +@Validated +public class ProcessingOperationController { + + + @Resource + private ProcessingOperationService processingOperationService; + + @PostMapping("/create") + @Operation(summary = "创建工序") + @PreAuthorize("@ss.hasPermission('base:processing-operation:create')") + public CommonResult createProcessingOperation(@Valid @RequestBody ProcessingOperationSaveReqVO createReqVO) { + return success(processingOperationService.createProcessingOperation(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新工序") + @PreAuthorize("@ss.hasPermission('base:processing-operation:update')") + public CommonResult updateProcessingOperation(@Valid @RequestBody ProcessingOperationSaveReqVO updateReqVO) { + processingOperationService.updateProcessingOperation(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除工序") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('base:processing-operation:delete')") + public CommonResult deleteProcessingOperation(@RequestParam("id") Long id) { + processingOperationService.deleteProcessingOperation(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除工序") + @PreAuthorize("@ss.hasPermission('base:processing-operation:delete')") + public CommonResult deleteProcessingOperationList(@RequestBody BatchDeleteReqVO req) { + processingOperationService.deleteProcessingOperationListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得工序") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('base:processing-operation:query')") + public CommonResult getProcessingOperation(@RequestParam("id") Long id) { + ProcessingOperationDO processingOperation = processingOperationService.getProcessingOperation(id); + return success(BeanUtils.toBean(processingOperation, ProcessingOperationRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得工序分页") + @PreAuthorize("@ss.hasPermission('base:processing-operation:query')") + public CommonResult> getProcessingOperationPage(@Valid ProcessingOperationPageReqVO pageReqVO) { + PageResult pageResult = processingOperationService.getProcessingOperationPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, ProcessingOperationRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出工序 Excel") + @PreAuthorize("@ss.hasPermission('base:processing-operation:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportProcessingOperationExcel(@Valid ProcessingOperationPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = processingOperationService.getProcessingOperationPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "工序.xls", "数据", ProcessingOperationRespVO.class, + BeanUtils.toBean(list, ProcessingOperationRespVO.class)); + } + + @GetMapping("/simple-list") + @Operation(summary = "获得工序简单列表") + @PreAuthorize("@ss.hasPermission('base:processing-operation:query')") + public CommonResult> getProcessingOperationSimpleList() { + List list = processingOperationService.getProcessingOperationList(); + return success(BeanUtils.toBean(list, ProcessingOperationSimpleRespVO.class)); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/vo/ProcessingOperationPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/vo/ProcessingOperationPageReqVO.java new file mode 100644 index 00000000..30eb3b91 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/vo/ProcessingOperationPageReqVO.java @@ -0,0 +1,35 @@ +package com.zt.plat.module.base.controller.admin.processingoperation.vo; + +import lombok.*; +import java.util.*; +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 ProcessingOperationPageReqVO extends PageParam { + + @Schema(description = "工序编码") + private String code; + + @Schema(description = "工序名称", example = "王五") + private String name; + + @Schema(description = "排序号") + private Long sort; + + @Schema(description = "类型值-工序类型") + private String typeValue; + + @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-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/vo/ProcessingOperationRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/vo/ProcessingOperationRespVO.java new file mode 100644 index 00000000..a011073f --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/vo/ProcessingOperationRespVO.java @@ -0,0 +1,43 @@ +package com.zt.plat.module.base.controller.admin.processingoperation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 工序 Response VO") +@Data +@ExcelIgnoreUnannotated +public class ProcessingOperationRespVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14097") + @ExcelProperty("主键ID") + private Long id; + + @Schema(description = "工序编码", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("工序编码") + private String code; + + @Schema(description = "工序名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @ExcelProperty("工序名称") + private String name; + + @Schema(description = "排序号") + @ExcelProperty("排序号") + private Long sort; + + @Schema(description = "类型值-工序类型", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("类型值-工序类型") + private String typeValue; + + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/vo/ProcessingOperationSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/vo/ProcessingOperationSaveReqVO.java new file mode 100644 index 00000000..33ef1168 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/vo/ProcessingOperationSaveReqVO.java @@ -0,0 +1,34 @@ +package com.zt.plat.module.base.controller.admin.processingoperation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 工序新增/修改 Request VO") +@Data +public class ProcessingOperationSaveReqVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14097") + private Long id; + + @Schema(description = "工序编码", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "工序编码不能为空") + private String code; + + @Schema(description = "工序名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @NotEmpty(message = "工序名称不能为空") + private String name; + + @Schema(description = "排序号") + private Long sort; + + @Schema(description = "类型值-工序类型", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "类型值-工序类型不能为空") + private String typeValue; + + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "备注不能为空") + private String remark; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/vo/ProcessingOperationSimpleRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/vo/ProcessingOperationSimpleRespVO.java new file mode 100644 index 00000000..75808482 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/vo/ProcessingOperationSimpleRespVO.java @@ -0,0 +1,19 @@ +package com.zt.plat.module.base.controller.admin.processingoperation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 工序简单信息 Response VO") +@Data +public class ProcessingOperationSimpleRespVO { + + @Schema(description = "工序ID", example = "1001") + private Long id; + + @Schema(description = "工序编码", example = "OP-001") + private String code; + + @Schema(description = "工序名称", example = "熔铸") + private String name; + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperationmaterial/ProcessingOperationMaterialController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperationmaterial/ProcessingOperationMaterialController.java new file mode 100644 index 00000000..dfa6bcba --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperationmaterial/ProcessingOperationMaterialController.java @@ -0,0 +1,107 @@ +package com.zt.plat.module.base.controller.admin.processingoperationmaterial; + +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +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.base.controller.admin.processingoperationmaterial.vo.*; +import com.zt.plat.module.base.dal.dataobject.processingoperationmaterial.ProcessingOperationMaterialDO; +import com.zt.plat.module.base.service.processingoperationmaterial.ProcessingOperationMaterialService; + +@Tag(name = "管理后台 - 工艺工序物料") +@RestController +@RequestMapping("/base/processing-operation-material") +@Validated +public class ProcessingOperationMaterialController { + + + @Resource + private ProcessingOperationMaterialService processingOperationMaterialService; + + @PostMapping("/create") + @Operation(summary = "创建工艺工序物料") + @PreAuthorize("@ss.hasPermission('base:processing-operation-material:create')") + public CommonResult createProcessingOperationMaterial(@Valid @RequestBody ProcessingOperationMaterialSaveReqVO createReqVO) { + return success(processingOperationMaterialService.createProcessingOperationMaterial(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新工艺工序物料") + @PreAuthorize("@ss.hasPermission('base:processing-operation-material:update')") + public CommonResult updateProcessingOperationMaterial(@Valid @RequestBody ProcessingOperationMaterialSaveReqVO updateReqVO) { + processingOperationMaterialService.updateProcessingOperationMaterial(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除工艺工序物料") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('base:processing-operation-material:delete')") + public CommonResult deleteProcessingOperationMaterial(@RequestParam("id") Long id) { + processingOperationMaterialService.deleteProcessingOperationMaterial(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除工艺工序物料") + @PreAuthorize("@ss.hasPermission('base:processing-operation-material:delete')") + public CommonResult deleteProcessingOperationMaterialList(@RequestBody BatchDeleteReqVO req) { + processingOperationMaterialService.deleteProcessingOperationMaterialListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得工艺工序物料") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('base:processing-operation-material:query')") + public CommonResult getProcessingOperationMaterial(@RequestParam("id") Long id) { + ProcessingOperationMaterialDO processingOperationMaterial = processingOperationMaterialService.getProcessingOperationMaterial(id); + return success(BeanUtils.toBean(processingOperationMaterial, ProcessingOperationMaterialRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得工艺工序物料分页") + @PreAuthorize("@ss.hasPermission('base:processing-operation-material:query')") + public CommonResult> getProcessingOperationMaterialPage(@Valid ProcessingOperationMaterialPageReqVO pageReqVO) { + PageResult pageResult = processingOperationMaterialService.getProcessingOperationMaterialPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, ProcessingOperationMaterialRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出工艺工序物料 Excel") + @PreAuthorize("@ss.hasPermission('base:processing-operation-material:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportProcessingOperationMaterialExcel(@Valid ProcessingOperationMaterialPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = processingOperationMaterialService.getProcessingOperationMaterialPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "工艺工序物料.xls", "数据", ProcessingOperationMaterialRespVO.class, + BeanUtils.toBean(list, ProcessingOperationMaterialRespVO.class)); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperationmaterial/vo/ProcessingOperationMaterialPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperationmaterial/vo/ProcessingOperationMaterialPageReqVO.java new file mode 100644 index 00000000..8e8853c4 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperationmaterial/vo/ProcessingOperationMaterialPageReqVO.java @@ -0,0 +1,29 @@ +package com.zt.plat.module.base.controller.admin.processingoperationmaterial.vo; + +import lombok.*; +import java.util.*; +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 ProcessingOperationMaterialPageReqVO extends PageParam { + + @Schema(description = "类型值-物料类型(产出/投入)") + private String typeValue; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "组织机构") + private String departmentIds; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperationmaterial/vo/ProcessingOperationMaterialRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperationmaterial/vo/ProcessingOperationMaterialRespVO.java new file mode 100644 index 00000000..a0e3b0a5 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperationmaterial/vo/ProcessingOperationMaterialRespVO.java @@ -0,0 +1,43 @@ +package com.zt.plat.module.base.controller.admin.processingoperationmaterial.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 工艺工序物料 Response VO") +@Data +@ExcelIgnoreUnannotated +public class ProcessingOperationMaterialRespVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27200") + @ExcelProperty("主键ID") + private Long id; + + @Schema(description = "工艺工序ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "18575") + @ExcelProperty("工艺工序ID") + private Long processingOperationId; + + @Schema(description = "物料ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "15117") + @ExcelProperty("物料ID") + private Long materialId; + + @Schema(description = "类型值-物料类型(产出/投入)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("类型值-物料类型(产出/投入)") + private String typeValue; + + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "组织机构") + @ExcelProperty("组织机构") + private String departmentIds; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperationmaterial/vo/ProcessingOperationMaterialSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperationmaterial/vo/ProcessingOperationMaterialSaveReqVO.java new file mode 100644 index 00000000..18bd082b --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperationmaterial/vo/ProcessingOperationMaterialSaveReqVO.java @@ -0,0 +1,32 @@ +package com.zt.plat.module.base.controller.admin.processingoperationmaterial.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 工艺工序物料新增/修改 Request VO") +@Data +public class ProcessingOperationMaterialSaveReqVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27200") + private Long id; + + @Schema(description = "工艺工序ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "18575") + private Long processingOperationId; + + @Schema(description = "物料ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "15117") + private Long materialId; + + @Schema(description = "类型值-物料类型(产出/投入)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "类型值-物料类型(产出/投入)不能为空") + private String typeValue; + + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "备注不能为空") + private String remark; + + @Schema(description = "组织机构") + private String departmentIds; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/departmentmaterial/DepartmentMaterialMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/departmentmaterial/DepartmentMaterialMapper.java new file mode 100644 index 00000000..d7dbd2d1 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/departmentmaterial/DepartmentMaterialMapper.java @@ -0,0 +1,32 @@ +package com.zt.plat.module.base.dal.dao.departmentmaterial; + +import java.util.*; + +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.base.dal.dataobject.departmentmaterial.DepartmentMaterialDO; +import org.apache.ibatis.annotations.Mapper; +import com.zt.plat.module.base.controller.admin.departmentmaterial.vo.*; + +/** + * 组织架构物料 Mapper + * + * @author 后台管理-1 + */ +@Mapper +public interface DepartmentMaterialMapper extends BaseMapperX { + + default PageResult selectPage(DepartmentMaterialPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(DepartmentMaterialDO::getInfomationId, reqVO.getInfomationId()) + .inIfPresent(DepartmentMaterialDO::getInfomationId, reqVO.getInfomationIds()) + .eqIfPresent(DepartmentMaterialDO::getClassesId, reqVO.getClassesId()) + .eqIfPresent(DepartmentMaterialDO::getDeptId, reqVO.getDeptId()) + .eqIfPresent(DepartmentMaterialDO::getDictionaryDataValue, reqVO.getDictionaryDataValue()) + .eqIfPresent(DepartmentMaterialDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(DepartmentMaterialDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(DepartmentMaterialDO::getId)); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/materialclasses/MaterialClassesMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/materialclasses/MaterialClassesMapper.java new file mode 100644 index 00000000..c4861958 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/materialclasses/MaterialClassesMapper.java @@ -0,0 +1,31 @@ +package com.zt.plat.module.base.dal.dao.materialclasses; + +import java.util.*; + +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.base.dal.dataobject.materialclasses.MaterialClassesDO; +import org.apache.ibatis.annotations.Mapper; +import com.zt.plat.module.base.controller.admin.materialclasses.vo.*; + +/** + * 物料分类 Mapper + * + * @author 后台管理-1 + */ +@Mapper +public interface MaterialClassesMapper extends BaseMapperX { + + default PageResult selectPage(MaterialClassesPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(MaterialClassesDO::getParentId, reqVO.getParentId()) + .eqIfPresent(MaterialClassesDO::getCode, reqVO.getCode()) + .likeIfPresent(MaterialClassesDO::getName, reqVO.getName()) + .eqIfPresent(MaterialClassesDO::getLevel, reqVO.getLevel()) + .eqIfPresent(MaterialClassesDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(MaterialClassesDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(MaterialClassesDO::getId)); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/materialhasclasses/MaterialHasClassesMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/materialhasclasses/MaterialHasClassesMapper.java new file mode 100644 index 00000000..8bbde0f2 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/materialhasclasses/MaterialHasClassesMapper.java @@ -0,0 +1,28 @@ +package com.zt.plat.module.base.dal.dao.materialhasclasses; + +import java.util.*; + +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.base.dal.dataobject.materialhasclasses.MaterialHasClassesDO; +import org.apache.ibatis.annotations.Mapper; +import com.zt.plat.module.base.controller.admin.materialhasclasses.vo.*; + +/** + * 物料持有分类 Mapper + * + * @author 后台管理-1 + */ +@Mapper +public interface MaterialHasClassesMapper extends BaseMapperX { + + default PageResult selectPage(MaterialHasClassesPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(MaterialHasClassesDO::getInfomationId, reqVO.getInfomationId()) + .betweenIfPresent(MaterialHasClassesDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(MaterialHasClassesDO::getClassesId, reqVO.getClassesId()) + .orderByDesc(MaterialHasClassesDO::getId)); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/materialhasproperties/MaterialHasPropertiesMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/materialhasproperties/MaterialHasPropertiesMapper.java new file mode 100644 index 00000000..824da813 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/materialhasproperties/MaterialHasPropertiesMapper.java @@ -0,0 +1,33 @@ +package com.zt.plat.module.base.dal.dao.materialhasproperties; + +import java.util.*; + +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.base.dal.dataobject.materialhasproperties.MaterialHasPropertiesDO; +import org.apache.ibatis.annotations.Mapper; +import com.zt.plat.module.base.controller.admin.materialhasproperties.vo.*; + +/** + * 物料持有属性 Mapper + * + * @author 后台管理-1 + */ +@Mapper +public interface MaterialHasPropertiesMapper extends BaseMapperX { + + default PageResult selectPage(MaterialHasPropertiesPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(MaterialHasPropertiesDO::getInfomationId, reqVO.getInfomationId()) + .eqIfPresent(MaterialHasPropertiesDO::getPropertiesId, reqVO.getPropertiesId()) + .eqIfPresent(MaterialHasPropertiesDO::getUnitId, reqVO.getUnitId()) + .eqIfPresent(MaterialHasPropertiesDO::getValue, reqVO.getValue()) + .eqIfPresent(MaterialHasPropertiesDO::getIsKey, reqVO.getIsKey()) + .eqIfPresent(MaterialHasPropertiesDO::getIsMetering, reqVO.getIsMetering()) + .eqIfPresent(MaterialHasPropertiesDO::getSort, reqVO.getSort()) + .betweenIfPresent(MaterialHasPropertiesDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(MaterialHasPropertiesDO::getId)); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/materialproperties/MaterialPropertiesMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/materialproperties/MaterialPropertiesMapper.java new file mode 100644 index 00000000..9bb43345 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/materialproperties/MaterialPropertiesMapper.java @@ -0,0 +1,32 @@ +package com.zt.plat.module.base.dal.dao.materialproperties; + +import java.util.*; + +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.base.dal.dataobject.materialproperties.MaterialPropertiesDO; +import org.apache.ibatis.annotations.Mapper; +import com.zt.plat.module.base.controller.admin.materialproperties.vo.*; + +/** + * 物料属性 Mapper + * + * @author 后台管理-1 + */ +@Mapper +public interface MaterialPropertiesMapper extends BaseMapperX { + + default PageResult selectPage(MaterialPropertiesPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(MaterialPropertiesDO::getCode, reqVO.getCode()) + .likeIfPresent(MaterialPropertiesDO::getName, reqVO.getName()) + .eqIfPresent(MaterialPropertiesDO::getUnitQuantityId, reqVO.getUnitQuantityId()) + .eqIfPresent(MaterialPropertiesDO::getDictionaryDataValue, reqVO.getDictionaryDataValue()) + .eqIfPresent(MaterialPropertiesDO::getDataType, reqVO.getDataType()) + .eqIfPresent(MaterialPropertiesDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(MaterialPropertiesDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(MaterialPropertiesDO::getId)); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/processinginfomation/ProcessingInfomationMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/processinginfomation/ProcessingInfomationMapper.java new file mode 100644 index 00000000..4468ec89 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/processinginfomation/ProcessingInfomationMapper.java @@ -0,0 +1,33 @@ +package com.zt.plat.module.base.dal.dao.processinginfomation; + +import java.util.*; + +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.base.dal.dataobject.processinginfomation.ProcessingInfomationDO; +import org.apache.ibatis.annotations.Mapper; +import com.zt.plat.module.base.controller.admin.processinginfomation.vo.*; + +/** + * 工艺信息 Mapper + * + * @author 后台管理-1 + */ +@Mapper +public interface ProcessingInfomationMapper extends BaseMapperX { + + default PageResult selectPage(ProcessingInfomationPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ProcessingInfomationDO::getParentId, reqVO.getParentId()) + .eqIfPresent(ProcessingInfomationDO::getCode, reqVO.getCode()) + .likeIfPresent(ProcessingInfomationDO::getName, reqVO.getName()) + .eqIfPresent(ProcessingInfomationDO::getTypeValue, reqVO.getTypeValue()) + .eqIfPresent(ProcessingInfomationDO::getStatusValue, reqVO.getStatusValue()) + .eqIfPresent(ProcessingInfomationDO::getDescription, reqVO.getDescription()) + .betweenIfPresent(ProcessingInfomationDO::getEffectiveDate, reqVO.getEffectiveDate()) + .betweenIfPresent(ProcessingInfomationDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(ProcessingInfomationDO::getId)); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/processinginfomationoperation/ProcessingInfomationOperationMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/processinginfomationoperation/ProcessingInfomationOperationMapper.java new file mode 100644 index 00000000..e8748cc2 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/processinginfomationoperation/ProcessingInfomationOperationMapper.java @@ -0,0 +1,42 @@ +package com.zt.plat.module.base.dal.dao.processinginfomationoperation; + +import java.util.*; + +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.base.dal.dataobject.processinginfomationoperation.ProcessingInfomationOperationDO; +import org.apache.ibatis.annotations.Mapper; +import com.zt.plat.module.base.controller.admin.processinginfomationoperation.vo.*; + +/** + * 工艺工序 Mapper + * + * @author 后台管理-1 + */ +@Mapper +public interface ProcessingInfomationOperationMapper extends BaseMapperX { + + default PageResult selectPage(ProcessingInfomationOperationPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ProcessingInfomationOperationDO::getPreviousOperationId, reqVO.getPreviousOperationId()) + .eqIfPresent(ProcessingInfomationOperationDO::getNextOperationId, reqVO.getNextOperationId()) + .eqIfPresent(ProcessingInfomationOperationDO::getProcessingId, reqVO.getProcessingId()) + .eqIfPresent(ProcessingInfomationOperationDO::getIsKey, reqVO.getIsKey()) + .eqIfPresent(ProcessingInfomationOperationDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(ProcessingInfomationOperationDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(ProcessingInfomationOperationDO::getId)); + } + + default List selectList(ProcessingInfomationOperationPageReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(ProcessingInfomationOperationDO::getPreviousOperationId, reqVO.getPreviousOperationId()) + .eqIfPresent(ProcessingInfomationOperationDO::getNextOperationId, reqVO.getNextOperationId()) + .eqIfPresent(ProcessingInfomationOperationDO::getProcessingId, reqVO.getProcessingId()) + .eqIfPresent(ProcessingInfomationOperationDO::getIsKey, reqVO.getIsKey()) + .eqIfPresent(ProcessingInfomationOperationDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(ProcessingInfomationOperationDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(ProcessingInfomationOperationDO::getId)); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/processingoperation/ProcessingOperationMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/processingoperation/ProcessingOperationMapper.java new file mode 100644 index 00000000..b611f7a0 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/processingoperation/ProcessingOperationMapper.java @@ -0,0 +1,31 @@ +package com.zt.plat.module.base.dal.dao.processingoperation; + +import java.util.*; + +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.base.dal.dataobject.processingoperation.ProcessingOperationDO; +import org.apache.ibatis.annotations.Mapper; +import com.zt.plat.module.base.controller.admin.processingoperation.vo.*; + +/** + * 工序 Mapper + * + * @author 后台管理-1 + */ +@Mapper +public interface ProcessingOperationMapper extends BaseMapperX { + + default PageResult selectPage(ProcessingOperationPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ProcessingOperationDO::getCode, reqVO.getCode()) + .likeIfPresent(ProcessingOperationDO::getName, reqVO.getName()) + .eqIfPresent(ProcessingOperationDO::getSort, reqVO.getSort()) + .eqIfPresent(ProcessingOperationDO::getTypeValue, reqVO.getTypeValue()) + .eqIfPresent(ProcessingOperationDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(ProcessingOperationDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(ProcessingOperationDO::getId)); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/processingoperationmaterial/ProcessingOperationMaterialMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/processingoperationmaterial/ProcessingOperationMaterialMapper.java new file mode 100644 index 00000000..81a4b50f --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/processingoperationmaterial/ProcessingOperationMaterialMapper.java @@ -0,0 +1,29 @@ +package com.zt.plat.module.base.dal.dao.processingoperationmaterial; + +import java.util.*; + +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.base.dal.dataobject.processingoperationmaterial.ProcessingOperationMaterialDO; +import org.apache.ibatis.annotations.Mapper; +import com.zt.plat.module.base.controller.admin.processingoperationmaterial.vo.*; + +/** + * 工艺工序物料 Mapper + * + * @author 后台管理-1 + */ +@Mapper +public interface ProcessingOperationMaterialMapper extends BaseMapperX { + + default PageResult selectPage(ProcessingOperationMaterialPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ProcessingOperationMaterialDO::getTypeValue, reqVO.getTypeValue()) + .eqIfPresent(ProcessingOperationMaterialDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(ProcessingOperationMaterialDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(ProcessingOperationMaterialDO::getDepartmentIds, reqVO.getDepartmentIds()) + .orderByDesc(ProcessingOperationMaterialDO::getId)); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/MaterialInfomationDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/MaterialInfomationDO.java index 1515714e..8b5f73ec 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/MaterialInfomationDO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/MaterialInfomationDO.java @@ -39,6 +39,11 @@ public class MaterialInfomationDO extends BaseDO { @TableField("NAME") private String name; /** + * 分类ID(中间表关联) + */ + @TableField(exist = false) + private Long classesId; + /** * 备注 */ @TableField("RMK") diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/departmentmaterial/DepartmentMaterialDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/departmentmaterial/DepartmentMaterialDO.java new file mode 100644 index 00000000..a759e7bb --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/departmentmaterial/DepartmentMaterialDO.java @@ -0,0 +1,60 @@ +package com.zt.plat.module.base.dal.dataobject.departmentmaterial; + +import lombok.*; +import java.util.*; + import java.time.LocalDateTime; + import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; +/** +* 组织架构物料 DO +* +* @author 后台管理-1 +*/ +@TableName("bse_dept_mtrl") +@KeySequence("bse_dept_mtrl_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class DepartmentMaterialDO extends BaseDO { + + + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 部门ID + */ + @TableField("DEPT_ID") + private Long deptId; + /** + * 物料信息ID + */ + @TableField("INF_ID") + private Long infomationId; + /** + * 物料分类ID + */ + @TableField("CLS_ID") + private Long classesId; + /** + * 字典数据值-物料类型 + */ + @TableField("DIC_DAT_VAL") + private String dictionaryDataValue; + /** + * 备注 + */ + @TableField("RMK") + private String remark; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/materialclasses/MaterialClassesDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/materialclasses/MaterialClassesDO.java new file mode 100644 index 00000000..fbf13b75 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/materialclasses/MaterialClassesDO.java @@ -0,0 +1,60 @@ +package com.zt.plat.module.base.dal.dataobject.materialclasses; + +import lombok.*; +import java.util.*; + import java.time.LocalDateTime; + import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; +/** +* 物料分类 DO +* +* @author 后台管理-1 +*/ +@TableName("bse_mtrl_cls") +@KeySequence("bse_mtrl_cls_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class MaterialClassesDO extends BaseDO { + + + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 父级ID + */ + @TableField("PRN_ID") + private Long parentId; + /** + * 分类编码 + */ + @TableField("CD") + private String code; + /** + * 分类名称 + */ + @TableField("NAME") + private String name; + /** + * 分类级别-用于类别层级(大/中/小类) + */ + @TableField("LVL") + private Long level; + /** + * 备注 + */ + @TableField("RMK") + private String remark; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/materialhasclasses/MaterialHasClassesDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/materialhasclasses/MaterialHasClassesDO.java new file mode 100644 index 00000000..8bd7ceed --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/materialhasclasses/MaterialHasClassesDO.java @@ -0,0 +1,45 @@ +package com.zt.plat.module.base.dal.dataobject.materialhasclasses; + +import lombok.*; +import java.util.*; + import java.time.LocalDateTime; + import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; +/** +* 物料持有分类 DO +* +* @author 后台管理-1 +*/ +@TableName("bse_mtrl_hs_cls") +@KeySequence("bse_mtrl_hs_cls_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class MaterialHasClassesDO extends BaseDO { + + + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 物料信息ID + */ + @TableField("INF_ID") + private Long infomationId; + /** + * 分类ID + */ + @TableField("CLS_ID") + private Long classesId; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/materialhasproperties/MaterialHasPropertiesDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/materialhasproperties/MaterialHasPropertiesDO.java new file mode 100644 index 00000000..8eccb9a1 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/materialhasproperties/MaterialHasPropertiesDO.java @@ -0,0 +1,70 @@ +package com.zt.plat.module.base.dal.dataobject.materialhasproperties; + +import lombok.*; +import java.util.*; + import java.time.LocalDateTime; + import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; +/** +* 物料持有属性 DO +* +* @author 后台管理-1 +*/ +@TableName("bse_mtrl_hs_prps") +@KeySequence("bse_mtrl_hs_prps_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class MaterialHasPropertiesDO extends BaseDO { + + + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 物料信息ID + */ + @TableField("INF_ID") + private Long infomationId; + /** + * 属性ID + */ + @TableField("PRPS_ID") + private Long propertiesId; + /** + * 计量单位ID-默认计量单位 + */ + @TableField("UNT_ID") + private Long unitId; + /** + * 属性值 + */ + @TableField("VAL") + private String value; + /** + * 是否关键属性-关键属性表示物料唯一性 + */ + @TableField("IS_KY") + private Integer isKey; + /** + * 是否计量定价 + */ + @TableField("IS_MTNG") + private Integer isMetering; + /** + * 排序号 + */ + @TableField("SRT") + private Long sort; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/materialproperties/MaterialPropertiesDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/materialproperties/MaterialPropertiesDO.java new file mode 100644 index 00000000..a075eeb1 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/materialproperties/MaterialPropertiesDO.java @@ -0,0 +1,65 @@ +package com.zt.plat.module.base.dal.dataobject.materialproperties; + +import lombok.*; +import java.util.*; + import java.time.LocalDateTime; + import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; +/** +* 物料属性 DO +* +* @author 后台管理-1 +*/ +@TableName("bse_mtrl_prps") +@KeySequence("bse_mtrl_prps_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class MaterialPropertiesDO extends BaseDO { + + + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 属性编码 + */ + @TableField("CD") + private String code; + /** + * 属性名称 + */ + @TableField("NAME") + private String name; + /** + * 计量单位量ID + */ + @TableField("UNT_QTY_ID") + private Long unitQuantityId; + /** + * 业务字典数据值 + */ + @TableField("DIC_DAT_VAL") + private String dictionaryDataValue; + /** + * 数据类型 + */ + @TableField("DAT_TP") + private String dataType; + /** + * 备注 + */ + @TableField("RMK") + private String remark; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processinginfomation/ProcessingInfomationDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processinginfomation/ProcessingInfomationDO.java new file mode 100644 index 00000000..45c196a8 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processinginfomation/ProcessingInfomationDO.java @@ -0,0 +1,76 @@ +package com.zt.plat.module.base.dal.dataobject.processinginfomation; + +import lombok.*; +import java.util.*; + import java.time.LocalDateTime; + import java.time.LocalDateTime; + import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; +/** +* 工艺信息 DO +* +* @author 后台管理-1 +*/ +@TableName("bse_proc_inf") +@KeySequence("bse_proc_inf_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class ProcessingInfomationDO extends BaseDO { + + + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 父级ID + */ + @TableField("PRN_ID") + private Long parentId; + /** + * 工艺编码-唯一业务键 + */ + @TableField("CD") + private String code; + /** + * 工艺名称 + */ + @TableField("NAME") + private String name; + /** + * 工艺类型值 + */ + @TableField("TP_VAL") + private Long typeValue; + /** + * 状态值-工艺状态 + */ + @TableField("STS_VAL") + private String statusValue; + /** + * 工艺描述 + */ + @TableField("DSP") + private String description; + /** + * 部门ID + */ + @TableField("DEPT_ID") + private Long deptId; + /** + * 生效日期 + */ + @TableField("EFCT_DT") + private LocalDateTime effectiveDate; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processinginfomationoperation/ProcessingInfomationOperationDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processinginfomationoperation/ProcessingInfomationOperationDO.java new file mode 100644 index 00000000..1710df1a --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processinginfomationoperation/ProcessingInfomationOperationDO.java @@ -0,0 +1,60 @@ +package com.zt.plat.module.base.dal.dataobject.processinginfomationoperation; + +import lombok.*; +import java.util.*; + import java.time.LocalDateTime; + import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; +/** +* 工艺工序 DO +* +* @author 后台管理-1 +*/ +@TableName("bse_proc_inf_optn") +@KeySequence("bse_proc_inf_optn_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class ProcessingInfomationOperationDO extends BaseDO { + + + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 前序工序ID + */ + @TableField("PRE_OPTN_ID") + private Long previousOperationId; + /** + * 后续工序ID + */ + @TableField("NXT_OPTN_ID") + private Long nextOperationId; + /** + * 工艺ID + */ + @TableField("PROC_ID") + private Long processingId; + /** + * 是否关键工序 + */ + @TableField("IS_KY") + private Integer isKey; + /** + * 备注 + */ + @TableField("RMK") + private String remark; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processingoperation/ProcessingOperationDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processingoperation/ProcessingOperationDO.java new file mode 100644 index 00000000..be78b179 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processingoperation/ProcessingOperationDO.java @@ -0,0 +1,60 @@ +package com.zt.plat.module.base.dal.dataobject.processingoperation; + +import lombok.*; +import java.util.*; + import java.time.LocalDateTime; + import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; +/** +* 工序 DO +* +* @author 后台管理-1 +*/ +@TableName("bse_proc_optn") +@KeySequence("bse_proc_optn_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class ProcessingOperationDO extends BaseDO { + + + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 工序编码 + */ + @TableField("CD") + private String code; + /** + * 工序名称 + */ + @TableField("NAME") + private String name; + /** + * 排序号 + */ + @TableField("SRT") + private Long sort; + /** + * 类型值-工序类型 + */ + @TableField("TP_VAL") + private String typeValue; + /** + * 备注 + */ + @TableField("RMK") + private String remark; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processingoperationmaterial/ProcessingOperationMaterialDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processingoperationmaterial/ProcessingOperationMaterialDO.java new file mode 100644 index 00000000..e1447cda --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processingoperationmaterial/ProcessingOperationMaterialDO.java @@ -0,0 +1,58 @@ +package com.zt.plat.module.base.dal.dataobject.processingoperationmaterial; + +import lombok.*; +import java.util.*; + import java.time.LocalDateTime; + import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; +/** +* 工艺工序物料 DO +* +* @author 后台管理-1 +*/ +@TableName("bse_proc_optn_mtrl") +@KeySequence("bse_proc_optn_mtrl_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class ProcessingOperationMaterialDO extends BaseDO { + + + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 工艺工序ID + */ + private Long processingOperationId; + /** + * 物料ID + */ + private Long materialId; + /** + * 类型值-物料类型(产出/投入) + */ + @TableField("TP_VAL") + private String typeValue; + /** + * 备注 + */ + @TableField("RMK") + private String remark; + /** + * 组织机构 + */ + @TableField("DEPT_IDS") + private String departmentIds; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/MaterialInfomationMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/MaterialInfomationMapper.java index 2e353cb0..e0c41fd1 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/MaterialInfomationMapper.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/MaterialInfomationMapper.java @@ -7,6 +7,8 @@ import com.zt.plat.module.base.controller.admin.base.vo.MaterialInfomationPageRe import com.zt.plat.module.base.dal.dataobject.base.MaterialInfomationDO; import org.apache.ibatis.annotations.Mapper; +import java.util.Collection; + /** * 物料信息 Mapper * @@ -16,11 +18,16 @@ import org.apache.ibatis.annotations.Mapper; public interface MaterialInfomationMapper extends BaseMapperX { default PageResult selectPage(MaterialInfomationPageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() + return selectPage(reqVO, (Collection) null); + } + + default PageResult selectPage(MaterialInfomationPageReqVO reqVO, Collection infomationIds) { + return BaseMapperX.super.selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(MaterialInfomationDO::getCode, reqVO.getCode()) .likeIfPresent(MaterialInfomationDO::getName, reqVO.getName()) .eqIfPresent(MaterialInfomationDO::getRemark, reqVO.getRemark()) .betweenIfPresent(MaterialInfomationDO::getCreateTime, reqVO.getCreateTime()) + .inIfPresent(MaterialInfomationDO::getId, infomationIds) .orderByDesc(MaterialInfomationDO::getId)); } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialInfomationServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialInfomationServiceImpl.java index eec1accc..2333fc24 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialInfomationServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialInfomationServiceImpl.java @@ -1,21 +1,29 @@ package com.zt.plat.module.base.service.base; import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.module.base.controller.admin.base.vo.MaterialInfomationPageReqVO; import com.zt.plat.module.base.controller.admin.base.vo.MaterialInfomationRespVO; import com.zt.plat.module.base.controller.admin.base.vo.MaterialInfomationSaveReqVO; +import com.zt.plat.module.base.dal.dao.materialhasclasses.MaterialHasClassesMapper; import com.zt.plat.module.base.dal.dataobject.base.MaterialInfomationDO; +import com.zt.plat.module.base.dal.dataobject.materialhasclasses.MaterialHasClassesDO; import com.zt.plat.module.base.dal.mysql.base.MaterialInfomationMapper; import com.zt.plat.module.erp.api.ErpExternalApi; import com.zt.plat.module.erp.api.dto.ErpProductiveVersionReqDTO; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; +import java.util.Collections; import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.module.base.enums.ErrorCodeConstants.MATERIAL_INFOMATION_NOT_EXISTS; @@ -35,23 +43,46 @@ public class MaterialInfomationServiceImpl implements MaterialInfomationService @Resource private ErpExternalApi erpExternalApi; + @Resource + private MaterialHasClassesMapper materialHasClassesMapper; @Override + @Transactional(rollbackFor = Exception.class) public MaterialInfomationRespVO createMaterialInfomation(MaterialInfomationSaveReqVO createReqVO) { // 插入 MaterialInfomationDO materialInfomation = BeanUtils.toBean(createReqVO, MaterialInfomationDO.class); materialInfomationMapper.insert(materialInfomation); + // 维护分类关联 + if (createReqVO.getClassesId() != null) { + MaterialHasClassesDO relation = MaterialHasClassesDO.builder() + .classesId(createReqVO.getClassesId()) + .infomationId(materialInfomation.getId()) + .build(); + materialHasClassesMapper.insert(relation); + materialInfomation.setClassesId(createReqVO.getClassesId()); + } // 返回 return BeanUtils.toBean(materialInfomation, MaterialInfomationRespVO.class); } @Override + @Transactional(rollbackFor = Exception.class) public void updateMaterialInfomation(MaterialInfomationSaveReqVO updateReqVO) { // 校验存在 validateMaterialInfomationExists(updateReqVO.getId()); // 更新 MaterialInfomationDO updateObj = BeanUtils.toBean(updateReqVO, MaterialInfomationDO.class); materialInfomationMapper.updateById(updateObj); + // 更新分类关联 + materialHasClassesMapper.delete(new LambdaUpdateWrapper() + .eq(MaterialHasClassesDO::getInfomationId, updateReqVO.getId())); + if (updateReqVO.getClassesId() != null) { + MaterialHasClassesDO relation = MaterialHasClassesDO.builder() + .classesId(updateReqVO.getClassesId()) + .infomationId(updateReqVO.getId()) + .build(); + materialHasClassesMapper.insert(relation); + } } @Override @@ -60,6 +91,8 @@ public class MaterialInfomationServiceImpl implements MaterialInfomationService validateMaterialInfomationExists(id); // 删除 materialInfomationMapper.deleteById(id); + materialHasClassesMapper.delete(new LambdaUpdateWrapper() + .eq(MaterialHasClassesDO::getInfomationId, id)); } @Override @@ -85,12 +118,52 @@ public class MaterialInfomationServiceImpl implements MaterialInfomationService @Override public MaterialInfomationDO getMaterialInfomation(Long id) { - return materialInfomationMapper.selectById(id); + MaterialInfomationDO info = materialInfomationMapper.selectById(id); + if (info == null) { + return null; + } + MaterialHasClassesDO relation = materialHasClassesMapper.selectFirstOne(MaterialHasClassesDO::getInfomationId, id); + if (relation != null) { + info.setClassesId(relation.getClassesId()); + } + return info; } @Override public PageResult getMaterialInfomationPage(MaterialInfomationPageReqVO pageReqVO) { - return materialInfomationMapper.selectPage(pageReqVO); + List infomationIds = null; + List relationList = Collections.emptyList(); + if (pageReqVO.getClassesId() != null) { + relationList = materialHasClassesMapper.selectList(MaterialHasClassesDO::getClassesId, pageReqVO.getClassesId()); + if (CollUtil.isEmpty(relationList)) { + return PageResult.empty(); + } + infomationIds = relationList.stream() + .map(MaterialHasClassesDO::getInfomationId) + .filter(Objects::nonNull) + .distinct() + .collect(Collectors.toList()); + } + + PageResult pageResult = materialInfomationMapper.selectPage(pageReqVO, infomationIds); + if (CollUtil.isEmpty(pageResult.getList())) { + return pageResult; + } + + List currentInfoIds = pageResult.getList().stream() + .map(MaterialInfomationDO::getId) + .collect(Collectors.toList()); + + if (pageReqVO.getClassesId() == null) { + relationList = materialHasClassesMapper.selectList(MaterialHasClassesDO::getInfomationId, currentInfoIds); + } + + Map infoClassMap = relationList.stream() + .filter(item -> item.getInfomationId() != null) + .collect(Collectors.toMap(MaterialHasClassesDO::getInfomationId, MaterialHasClassesDO::getClassesId, (existing, replacement) -> existing)); + + pageResult.getList().forEach(item -> item.setClassesId(infoClassMap.get(item.getId()))); + return pageResult; } @Override diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/departmentmaterial/DepartmentMaterialService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/departmentmaterial/DepartmentMaterialService.java new file mode 100644 index 00000000..06419589 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/departmentmaterial/DepartmentMaterialService.java @@ -0,0 +1,62 @@ +package com.zt.plat.module.base.service.departmentmaterial; + +import java.util.*; +import jakarta.validation.*; +import com.zt.plat.module.base.controller.admin.departmentmaterial.vo.*; +import com.zt.plat.module.base.dal.dataobject.departmentmaterial.DepartmentMaterialDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; + +/** + * 组织架构物料 Service 接口 + * + * @author 后台管理-1 + */ +public interface DepartmentMaterialService { + + /** + * 创建组织架构物料 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + DepartmentMaterialRespVO createDepartmentMaterial(@Valid DepartmentMaterialSaveReqVO createReqVO); + + /** + * 更新组织架构物料 + * + * @param updateReqVO 更新信息 + */ + void updateDepartmentMaterial(@Valid DepartmentMaterialSaveReqVO updateReqVO); + + /** + * 删除组织架构物料 + * + * @param id 编号 + */ + void deleteDepartmentMaterial(Long id); + + /** + * 批量删除组织架构物料 + * + * @param ids 编号 + */ + void deleteDepartmentMaterialListByIds(List ids); + + /** + * 获得组织架构物料 + * + * @param id 编号 + * @return 组织架构物料 + */ + DepartmentMaterialDO getDepartmentMaterial(Long id); + + /** + * 获得组织架构物料分页 + * + * @param pageReqVO 分页查询 + * @return 组织架构物料分页 + */ + PageResult getDepartmentMaterialPage(DepartmentMaterialPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/departmentmaterial/DepartmentMaterialServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/departmentmaterial/DepartmentMaterialServiceImpl.java new file mode 100644 index 00000000..72c3f05f --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/departmentmaterial/DepartmentMaterialServiceImpl.java @@ -0,0 +1,246 @@ +package com.zt.plat.module.base.service.departmentmaterial; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.util.collection.CollectionUtils; +import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.module.base.controller.admin.departmentmaterial.vo.*; +import com.zt.plat.module.base.dal.dao.departmentmaterial.DepartmentMaterialMapper; +import com.zt.plat.module.base.dal.dao.materialclasses.MaterialClassesMapper; +import com.zt.plat.module.base.dal.dataobject.base.MaterialInfomationDO; +import com.zt.plat.module.base.dal.dataobject.departmentmaterial.DepartmentMaterialDO; +import com.zt.plat.module.base.dal.dataobject.materialclasses.MaterialClassesDO; +import com.zt.plat.module.base.dal.mysql.base.MaterialInfomationMapper; +import com.zt.plat.module.system.api.dept.DeptApi; +import com.zt.plat.module.system.api.dept.dto.DeptRespDTO; + +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.module.base.enums.ErrorCodeConstants.*; + +/** + * 组织架构物料 Service 实现类 + * + * @author 后台管理-1 + */ +@Service +@Validated +public class DepartmentMaterialServiceImpl implements DepartmentMaterialService { + + @Resource + private DepartmentMaterialMapper departmentMaterialMapper; + + @Resource + private MaterialInfomationMapper materialInfomationMapper; + + @Resource + private MaterialClassesMapper materialClassesMapper; + + @Resource + private DeptApi deptApi; + + @Override + public DepartmentMaterialRespVO createDepartmentMaterial(DepartmentMaterialSaveReqVO createReqVO) { + // 插入 + DepartmentMaterialDO departmentMaterial = BeanUtils.toBean(createReqVO, DepartmentMaterialDO.class); + departmentMaterialMapper.insert(departmentMaterial); + // 返回 + return BeanUtils.toBean(departmentMaterial, DepartmentMaterialRespVO.class); + } + + @Override + public void updateDepartmentMaterial(DepartmentMaterialSaveReqVO updateReqVO) { + // 校验存在 + validateDepartmentMaterialExists(updateReqVO.getId()); + // 更新 + DepartmentMaterialDO updateObj = BeanUtils.toBean(updateReqVO, DepartmentMaterialDO.class); + departmentMaterialMapper.updateById(updateObj); + } + + @Override + public void deleteDepartmentMaterial(Long id) { + // 校验存在 + validateDepartmentMaterialExists(id); + // 删除 + departmentMaterialMapper.deleteById(id); + } + + @Override + public void deleteDepartmentMaterialListByIds(List ids) { + // 校验存在 + validateDepartmentMaterialExists(ids); + // 删除 + departmentMaterialMapper.deleteByIds(ids); + } + + private void validateDepartmentMaterialExists(List ids) { + List list = departmentMaterialMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(DEPARTMENT_MATERIAL_NOT_EXISTS); + } + } + + private void validateDepartmentMaterialExists(Long id) { + if (departmentMaterialMapper.selectById(id) == null) { + throw exception(DEPARTMENT_MATERIAL_NOT_EXISTS); + } + } + + @Override + public DepartmentMaterialDO getDepartmentMaterial(Long id) { + return departmentMaterialMapper.selectById(id); + } + + @Override + public PageResult getDepartmentMaterialPage(DepartmentMaterialPageReqVO pageReqVO) { + // 预处理物料名称/编码查询条件 + List matchedInfoIds = null; + if (StrUtil.isNotBlank(pageReqVO.getMaterialName()) || StrUtil.isNotBlank(pageReqVO.getMaterialNumber())) { + LambdaQueryWrapperX infoWrapper = new LambdaQueryWrapperX<>(); + infoWrapper.likeIfPresent(MaterialInfomationDO::getName, pageReqVO.getMaterialName()) + .likeIfPresent(MaterialInfomationDO::getCode, pageReqVO.getMaterialNumber()); + List infoCandidates = materialInfomationMapper.selectList(infoWrapper); + if (CollUtil.isEmpty(infoCandidates)) { + return PageResult.empty(); + } + matchedInfoIds = infoCandidates.stream().map(MaterialInfomationDO::getId).toList(); + pageReqVO.setInfomationIds(matchedInfoIds); + } + + PageResult pageResult = departmentMaterialMapper.selectPage(pageReqVO); + // 重置,避免后续使用该入参出现意外的 in 条件 + pageReqVO.setInfomationIds(null); + + if (CollUtil.isEmpty(pageResult.getList())) { + return PageResult.empty(pageResult.getTotal()); + } + + // 关联数据准备 + Set infoIds = pageResult.getList().stream() + .map(DepartmentMaterialDO::getInfomationId) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + Map infoMap = infoIds.isEmpty() + ? Collections.emptyMap() + : materialInfomationMapper.selectBatchIds(infoIds).stream() + .filter(Objects::nonNull) + .collect(Collectors.toMap(MaterialInfomationDO::getId, Function.identity())); + + Set classIds = new HashSet<>(); + pageResult.getList().forEach(item -> { + if (item.getClassesId() != null) { + classIds.add(item.getClassesId()); + } + MaterialInfomationDO info = infoMap.get(item.getInfomationId()); + if (info != null && info.getClassesId() != null) { + classIds.add(info.getClassesId()); + } + }); + + Map classCache = loadClassHierarchy(classIds); + + Set deptIds = pageResult.getList().stream() + .map(DepartmentMaterialDO::getDeptId) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + + Map deptMap = Collections.emptyMap(); + if (!deptIds.isEmpty()) { + try { + deptMap = CollectionUtils.convertMap(deptApi.getDeptList(deptIds).getCheckedData(), DeptRespDTO::getId); + } catch (Exception ignore) { + deptMap = Collections.emptyMap(); + } + } + + List respList = new ArrayList<>(pageResult.getList().size()); + for (DepartmentMaterialDO item : pageResult.getList()) { + DepartmentMaterialRespVO respVO = BeanUtils.toBean(item, DepartmentMaterialRespVO.class); + + MaterialInfomationDO info = infoMap.get(item.getInfomationId()); + if (info != null) { + respVO.setMaterialNumber(info.getCode()); + respVO.setMaterialName(info.getName()); + } + + Long targetClassId = item.getClassesId(); + if (targetClassId == null && info != null) { + targetClassId = info.getClassesId(); + } + if (targetClassId != null) { + List classPath = buildClassPath(targetClassId, classCache); + if (!classPath.isEmpty()) { + respVO.setCategoryLargeName(classPath.get(0)); + if (classPath.size() > 1) { + respVO.setCategoryMediumName(classPath.get(1)); + } + if (classPath.size() > 2) { + respVO.setCategorySmallName(classPath.get(classPath.size() - 1)); + } + respVO.setCategoryPath(String.join("/", classPath)); + } + } + + DeptRespDTO deptRespDTO = deptMap.get(item.getDeptId()); + if (deptRespDTO != null) { + respVO.setDeptName(deptRespDTO.getName()); + } + + respVO.setStatusLabel(StrUtil.isNotBlank(respVO.getStatusLabel()) ? respVO.getStatusLabel() : "未配置"); + + respVO.setDictionaryDataLabel(respVO.getDictionaryDataValue()); + respList.add(respVO); + } + + return new PageResult<>(respList, pageResult.getTotal()); + } + + private Map loadClassHierarchy(Set initialIds) { + if (CollUtil.isEmpty(initialIds)) { + return Collections.emptyMap(); + } + Map cache = new HashMap<>(); + Set pending = new HashSet<>(initialIds); + while (!pending.isEmpty()) { + List fetched = materialClassesMapper.selectBatchIds(pending); + pending = new HashSet<>(); + for (MaterialClassesDO cls : fetched) { + if (cls == null || cache.containsKey(cls.getId())) { + continue; + } + cache.put(cls.getId(), cls); + Long parentId = cls.getParentId(); + if (parentId != null && parentId > 0 && !cache.containsKey(parentId)) { + pending.add(parentId); + } + } + } + return cache; + } + + private List buildClassPath(Long classId, Map cache) { + List path = new ArrayList<>(); + MaterialClassesDO current = cache.get(classId); + int guard = 0; + while (current != null && guard++ < 10) { + path.add(current.getName()); + Long parentId = current.getParentId(); + if (parentId == null || parentId == 0) { + break; + } + current = cache.get(parentId); + } + Collections.reverse(path); + return path; + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialclasses/MaterialClassesService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialclasses/MaterialClassesService.java new file mode 100644 index 00000000..d24a3dec --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialclasses/MaterialClassesService.java @@ -0,0 +1,69 @@ +package com.zt.plat.module.base.service.materialclasses; + +import java.util.*; +import jakarta.validation.*; +import com.zt.plat.module.base.controller.admin.materialclasses.vo.*; +import com.zt.plat.module.base.dal.dataobject.materialclasses.MaterialClassesDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; + +/** + * 物料分类 Service 接口 + * + * @author 后台管理-1 + */ +public interface MaterialClassesService { + + /** + * 创建物料分类 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + MaterialClassesRespVO createMaterialClasses(@Valid MaterialClassesSaveReqVO createReqVO); + + /** + * 更新物料分类 + * + * @param updateReqVO 更新信息 + */ + void updateMaterialClasses(@Valid MaterialClassesSaveReqVO updateReqVO); + + /** + * 删除物料分类 + * + * @param id 编号 + */ + void deleteMaterialClasses(Long id); + + /** + * 批量删除物料分类 + * + * @param ids 编号 + */ + void deleteMaterialClassesListByIds(List ids); + + /** + * 获得物料分类 + * + * @param id 编号 + * @return 物料分类 + */ + MaterialClassesDO getMaterialClasses(Long id); + + /** + * 获得物料分类分页 + * + * @param pageReqVO 分页查询 + * @return 物料分类分页 + */ + PageResult getMaterialClassesPage(MaterialClassesPageReqVO pageReqVO); + + /** + * 获得全部物料分类 + * + * @return 分类列表 + */ + List getMaterialClassesList(); + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialclasses/MaterialClassesServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialclasses/MaterialClassesServiceImpl.java new file mode 100644 index 00000000..e7b216d7 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialclasses/MaterialClassesServiceImpl.java @@ -0,0 +1,97 @@ +package com.zt.plat.module.base.service.materialclasses; + +import cn.hutool.core.collection.CollUtil; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import com.zt.plat.module.base.controller.admin.materialclasses.vo.*; +import com.zt.plat.module.base.dal.dataobject.materialclasses.MaterialClassesDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.util.object.BeanUtils; + +import com.zt.plat.module.base.dal.dao.materialclasses.MaterialClassesMapper; + +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.framework.common.util.collection.CollectionUtils.diffList; +import static com.zt.plat.module.base.enums.ErrorCodeConstants.*; + +/** + * 物料分类 Service 实现类 + * + * @author 后台管理-1 + */ +@Service +@Validated +public class MaterialClassesServiceImpl implements MaterialClassesService { + + @Resource + private MaterialClassesMapper materialClassesMapper; + + @Override + public MaterialClassesRespVO createMaterialClasses(MaterialClassesSaveReqVO createReqVO) { + // 插入 + MaterialClassesDO materialClasses = BeanUtils.toBean(createReqVO, MaterialClassesDO.class); + materialClassesMapper.insert(materialClasses); + // 返回 + return BeanUtils.toBean(materialClasses, MaterialClassesRespVO.class); + } + + @Override + public void updateMaterialClasses(MaterialClassesSaveReqVO updateReqVO) { + // 校验存在 + validateMaterialClassesExists(updateReqVO.getId()); + // 更新 + MaterialClassesDO updateObj = BeanUtils.toBean(updateReqVO, MaterialClassesDO.class); + materialClassesMapper.updateById(updateObj); + } + + @Override + public void deleteMaterialClasses(Long id) { + // 校验存在 + validateMaterialClassesExists(id); + // 删除 + materialClassesMapper.deleteById(id); + } + + @Override + public void deleteMaterialClassesListByIds(List ids) { + // 校验存在 + validateMaterialClassesExists(ids); + // 删除 + materialClassesMapper.deleteByIds(ids); + } + + private void validateMaterialClassesExists(List ids) { + List list = materialClassesMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(MATERIAL_CLASSES_NOT_EXISTS); + } + } + + private void validateMaterialClassesExists(Long id) { + if (materialClassesMapper.selectById(id) == null) { + throw exception(MATERIAL_CLASSES_NOT_EXISTS); + } + } + + @Override + public MaterialClassesDO getMaterialClasses(Long id) { + return materialClassesMapper.selectById(id); + } + + @Override + public PageResult getMaterialClassesPage(MaterialClassesPageReqVO pageReqVO) { + return materialClassesMapper.selectPage(pageReqVO); + } + + @Override + public List getMaterialClassesList() { + return materialClassesMapper.selectList(); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialhasclasses/MaterialHasClassesService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialhasclasses/MaterialHasClassesService.java new file mode 100644 index 00000000..596ed2bb --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialhasclasses/MaterialHasClassesService.java @@ -0,0 +1,62 @@ +package com.zt.plat.module.base.service.materialhasclasses; + +import java.util.*; +import jakarta.validation.*; +import com.zt.plat.module.base.controller.admin.materialhasclasses.vo.*; +import com.zt.plat.module.base.dal.dataobject.materialhasclasses.MaterialHasClassesDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; + +/** + * 物料持有分类 Service 接口 + * + * @author 后台管理-1 + */ +public interface MaterialHasClassesService { + + /** + * 创建物料持有分类 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + MaterialHasClassesRespVO createMaterialHasClasses(@Valid MaterialHasClassesSaveReqVO createReqVO); + + /** + * 更新物料持有分类 + * + * @param updateReqVO 更新信息 + */ + void updateMaterialHasClasses(@Valid MaterialHasClassesSaveReqVO updateReqVO); + + /** + * 删除物料持有分类 + * + * @param id 编号 + */ + void deleteMaterialHasClasses(Long id); + + /** + * 批量删除物料持有分类 + * + * @param ids 编号 + */ + void deleteMaterialHasClassesListByIds(List ids); + + /** + * 获得物料持有分类 + * + * @param id 编号 + * @return 物料持有分类 + */ + MaterialHasClassesDO getMaterialHasClasses(Long id); + + /** + * 获得物料持有分类分页 + * + * @param pageReqVO 分页查询 + * @return 物料持有分类分页 + */ + PageResult getMaterialHasClassesPage(MaterialHasClassesPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialhasclasses/MaterialHasClassesServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialhasclasses/MaterialHasClassesServiceImpl.java new file mode 100644 index 00000000..58314961 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialhasclasses/MaterialHasClassesServiceImpl.java @@ -0,0 +1,92 @@ +package com.zt.plat.module.base.service.materialhasclasses; + +import cn.hutool.core.collection.CollUtil; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import com.zt.plat.module.base.controller.admin.materialhasclasses.vo.*; +import com.zt.plat.module.base.dal.dataobject.materialhasclasses.MaterialHasClassesDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.util.object.BeanUtils; + +import com.zt.plat.module.base.dal.dao.materialhasclasses.MaterialHasClassesMapper; + +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.framework.common.util.collection.CollectionUtils.diffList; +import static com.zt.plat.module.base.enums.ErrorCodeConstants.*; + +/** + * 物料持有分类 Service 实现类 + * + * @author 后台管理-1 + */ +@Service +@Validated +public class MaterialHasClassesServiceImpl implements MaterialHasClassesService { + + @Resource + private MaterialHasClassesMapper materialHasClassesMapper; + + @Override + public MaterialHasClassesRespVO createMaterialHasClasses(MaterialHasClassesSaveReqVO createReqVO) { + // 插入 + MaterialHasClassesDO materialHasClasses = BeanUtils.toBean(createReqVO, MaterialHasClassesDO.class); + materialHasClassesMapper.insert(materialHasClasses); + // 返回 + return BeanUtils.toBean(materialHasClasses, MaterialHasClassesRespVO.class); + } + + @Override + public void updateMaterialHasClasses(MaterialHasClassesSaveReqVO updateReqVO) { + // 校验存在 + validateMaterialHasClassesExists(updateReqVO.getId()); + // 更新 + MaterialHasClassesDO updateObj = BeanUtils.toBean(updateReqVO, MaterialHasClassesDO.class); + materialHasClassesMapper.updateById(updateObj); + } + + @Override + public void deleteMaterialHasClasses(Long id) { + // 校验存在 + validateMaterialHasClassesExists(id); + // 删除 + materialHasClassesMapper.deleteById(id); + } + + @Override + public void deleteMaterialHasClassesListByIds(List ids) { + // 校验存在 + validateMaterialHasClassesExists(ids); + // 删除 + materialHasClassesMapper.deleteByIds(ids); + } + + private void validateMaterialHasClassesExists(List ids) { + List list = materialHasClassesMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(MATERIAL_HAS_CLASSES_NOT_EXISTS); + } + } + + private void validateMaterialHasClassesExists(Long id) { + if (materialHasClassesMapper.selectById(id) == null) { + throw exception(MATERIAL_HAS_CLASSES_NOT_EXISTS); + } + } + + @Override + public MaterialHasClassesDO getMaterialHasClasses(Long id) { + return materialHasClassesMapper.selectById(id); + } + + @Override + public PageResult getMaterialHasClassesPage(MaterialHasClassesPageReqVO pageReqVO) { + return materialHasClassesMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialhasproperties/MaterialHasPropertiesService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialhasproperties/MaterialHasPropertiesService.java new file mode 100644 index 00000000..3e3d8485 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialhasproperties/MaterialHasPropertiesService.java @@ -0,0 +1,62 @@ +package com.zt.plat.module.base.service.materialhasproperties; + +import java.util.*; +import jakarta.validation.*; +import com.zt.plat.module.base.controller.admin.materialhasproperties.vo.*; +import com.zt.plat.module.base.dal.dataobject.materialhasproperties.MaterialHasPropertiesDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; + +/** + * 物料持有属性 Service 接口 + * + * @author 后台管理-1 + */ +public interface MaterialHasPropertiesService { + + /** + * 创建物料持有属性 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + MaterialHasPropertiesRespVO createMaterialHasProperties(@Valid MaterialHasPropertiesSaveReqVO createReqVO); + + /** + * 更新物料持有属性 + * + * @param updateReqVO 更新信息 + */ + void updateMaterialHasProperties(@Valid MaterialHasPropertiesSaveReqVO updateReqVO); + + /** + * 删除物料持有属性 + * + * @param id 编号 + */ + void deleteMaterialHasProperties(Long id); + + /** + * 批量删除物料持有属性 + * + * @param ids 编号 + */ + void deleteMaterialHasPropertiesListByIds(List ids); + + /** + * 获得物料持有属性 + * + * @param id 编号 + * @return 物料持有属性 + */ + MaterialHasPropertiesDO getMaterialHasProperties(Long id); + + /** + * 获得物料持有属性分页 + * + * @param pageReqVO 分页查询 + * @return 物料持有属性分页 + */ + PageResult getMaterialHasPropertiesPage(MaterialHasPropertiesPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialhasproperties/MaterialHasPropertiesServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialhasproperties/MaterialHasPropertiesServiceImpl.java new file mode 100644 index 00000000..2559c263 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialhasproperties/MaterialHasPropertiesServiceImpl.java @@ -0,0 +1,92 @@ +package com.zt.plat.module.base.service.materialhasproperties; + +import cn.hutool.core.collection.CollUtil; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import com.zt.plat.module.base.controller.admin.materialhasproperties.vo.*; +import com.zt.plat.module.base.dal.dataobject.materialhasproperties.MaterialHasPropertiesDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.util.object.BeanUtils; + +import com.zt.plat.module.base.dal.dao.materialhasproperties.MaterialHasPropertiesMapper; + +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.framework.common.util.collection.CollectionUtils.diffList; +import static com.zt.plat.module.base.enums.ErrorCodeConstants.*; + +/** + * 物料持有属性 Service 实现类 + * + * @author 后台管理-1 + */ +@Service +@Validated +public class MaterialHasPropertiesServiceImpl implements MaterialHasPropertiesService { + + @Resource + private MaterialHasPropertiesMapper materialHasPropertiesMapper; + + @Override + public MaterialHasPropertiesRespVO createMaterialHasProperties(MaterialHasPropertiesSaveReqVO createReqVO) { + // 插入 + MaterialHasPropertiesDO materialHasProperties = BeanUtils.toBean(createReqVO, MaterialHasPropertiesDO.class); + materialHasPropertiesMapper.insert(materialHasProperties); + // 返回 + return BeanUtils.toBean(materialHasProperties, MaterialHasPropertiesRespVO.class); + } + + @Override + public void updateMaterialHasProperties(MaterialHasPropertiesSaveReqVO updateReqVO) { + // 校验存在 + validateMaterialHasPropertiesExists(updateReqVO.getId()); + // 更新 + MaterialHasPropertiesDO updateObj = BeanUtils.toBean(updateReqVO, MaterialHasPropertiesDO.class); + materialHasPropertiesMapper.updateById(updateObj); + } + + @Override + public void deleteMaterialHasProperties(Long id) { + // 校验存在 + validateMaterialHasPropertiesExists(id); + // 删除 + materialHasPropertiesMapper.deleteById(id); + } + + @Override + public void deleteMaterialHasPropertiesListByIds(List ids) { + // 校验存在 + validateMaterialHasPropertiesExists(ids); + // 删除 + materialHasPropertiesMapper.deleteByIds(ids); + } + + private void validateMaterialHasPropertiesExists(List ids) { + List list = materialHasPropertiesMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(MATERIAL_HAS_PROPERTIES_NOT_EXISTS); + } + } + + private void validateMaterialHasPropertiesExists(Long id) { + if (materialHasPropertiesMapper.selectById(id) == null) { + throw exception(MATERIAL_HAS_PROPERTIES_NOT_EXISTS); + } + } + + @Override + public MaterialHasPropertiesDO getMaterialHasProperties(Long id) { + return materialHasPropertiesMapper.selectById(id); + } + + @Override + public PageResult getMaterialHasPropertiesPage(MaterialHasPropertiesPageReqVO pageReqVO) { + return materialHasPropertiesMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialproperties/MaterialPropertiesService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialproperties/MaterialPropertiesService.java new file mode 100644 index 00000000..a7acd933 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialproperties/MaterialPropertiesService.java @@ -0,0 +1,62 @@ +package com.zt.plat.module.base.service.materialproperties; + +import java.util.*; +import jakarta.validation.*; +import com.zt.plat.module.base.controller.admin.materialproperties.vo.*; +import com.zt.plat.module.base.dal.dataobject.materialproperties.MaterialPropertiesDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; + +/** + * 物料属性 Service 接口 + * + * @author 后台管理-1 + */ +public interface MaterialPropertiesService { + + /** + * 创建物料属性 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + MaterialPropertiesRespVO createMaterialProperties(@Valid MaterialPropertiesSaveReqVO createReqVO); + + /** + * 更新物料属性 + * + * @param updateReqVO 更新信息 + */ + void updateMaterialProperties(@Valid MaterialPropertiesSaveReqVO updateReqVO); + + /** + * 删除物料属性 + * + * @param id 编号 + */ + void deleteMaterialProperties(Long id); + + /** + * 批量删除物料属性 + * + * @param ids 编号 + */ + void deleteMaterialPropertiesListByIds(List ids); + + /** + * 获得物料属性 + * + * @param id 编号 + * @return 物料属性 + */ + MaterialPropertiesDO getMaterialProperties(Long id); + + /** + * 获得物料属性分页 + * + * @param pageReqVO 分页查询 + * @return 物料属性分页 + */ + PageResult getMaterialPropertiesPage(MaterialPropertiesPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialproperties/MaterialPropertiesServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialproperties/MaterialPropertiesServiceImpl.java new file mode 100644 index 00000000..e1cde705 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/materialproperties/MaterialPropertiesServiceImpl.java @@ -0,0 +1,92 @@ +package com.zt.plat.module.base.service.materialproperties; + +import cn.hutool.core.collection.CollUtil; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import com.zt.plat.module.base.controller.admin.materialproperties.vo.*; +import com.zt.plat.module.base.dal.dataobject.materialproperties.MaterialPropertiesDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.util.object.BeanUtils; + +import com.zt.plat.module.base.dal.dao.materialproperties.MaterialPropertiesMapper; + +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.framework.common.util.collection.CollectionUtils.diffList; +import static com.zt.plat.module.base.enums.ErrorCodeConstants.*; + +/** + * 物料属性 Service 实现类 + * + * @author 后台管理-1 + */ +@Service +@Validated +public class MaterialPropertiesServiceImpl implements MaterialPropertiesService { + + @Resource + private MaterialPropertiesMapper materialPropertiesMapper; + + @Override + public MaterialPropertiesRespVO createMaterialProperties(MaterialPropertiesSaveReqVO createReqVO) { + // 插入 + MaterialPropertiesDO materialProperties = BeanUtils.toBean(createReqVO, MaterialPropertiesDO.class); + materialPropertiesMapper.insert(materialProperties); + // 返回 + return BeanUtils.toBean(materialProperties, MaterialPropertiesRespVO.class); + } + + @Override + public void updateMaterialProperties(MaterialPropertiesSaveReqVO updateReqVO) { + // 校验存在 + validateMaterialPropertiesExists(updateReqVO.getId()); + // 更新 + MaterialPropertiesDO updateObj = BeanUtils.toBean(updateReqVO, MaterialPropertiesDO.class); + materialPropertiesMapper.updateById(updateObj); + } + + @Override + public void deleteMaterialProperties(Long id) { + // 校验存在 + validateMaterialPropertiesExists(id); + // 删除 + materialPropertiesMapper.deleteById(id); + } + + @Override + public void deleteMaterialPropertiesListByIds(List ids) { + // 校验存在 + validateMaterialPropertiesExists(ids); + // 删除 + materialPropertiesMapper.deleteByIds(ids); + } + + private void validateMaterialPropertiesExists(List ids) { + List list = materialPropertiesMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(MATERIAL_PROPERTIES_NOT_EXISTS); + } + } + + private void validateMaterialPropertiesExists(Long id) { + if (materialPropertiesMapper.selectById(id) == null) { + throw exception(MATERIAL_PROPERTIES_NOT_EXISTS); + } + } + + @Override + public MaterialPropertiesDO getMaterialProperties(Long id) { + return materialPropertiesMapper.selectById(id); + } + + @Override + public PageResult getMaterialPropertiesPage(MaterialPropertiesPageReqVO pageReqVO) { + return materialPropertiesMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomation/ProcessingInfomationService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomation/ProcessingInfomationService.java new file mode 100644 index 00000000..c55db41e --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomation/ProcessingInfomationService.java @@ -0,0 +1,69 @@ +package com.zt.plat.module.base.service.processinginfomation; + +import java.util.*; +import jakarta.validation.*; +import com.zt.plat.module.base.controller.admin.processinginfomation.vo.*; +import com.zt.plat.module.base.dal.dataobject.processinginfomation.ProcessingInfomationDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; + +/** + * 工艺信息 Service 接口 + * + * @author 后台管理-1 + */ +public interface ProcessingInfomationService { + + /** + * 创建工艺信息 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + ProcessingInfomationRespVO createProcessingInfomation(@Valid ProcessingInfomationSaveReqVO createReqVO); + + /** + * 更新工艺信息 + * + * @param updateReqVO 更新信息 + */ + void updateProcessingInfomation(@Valid ProcessingInfomationSaveReqVO updateReqVO); + + /** + * 删除工艺信息 + * + * @param id 编号 + */ + void deleteProcessingInfomation(Long id); + + /** + * 批量删除工艺信息 + * + * @param ids 编号 + */ + void deleteProcessingInfomationListByIds(List ids); + + /** + * 获得工艺信息 + * + * @param id 编号 + * @return 工艺信息 + */ + ProcessingInfomationDO getProcessingInfomation(Long id); + + /** + * 获得工艺信息分页 + * + * @param pageReqVO 分页查询 + * @return 工艺信息分页 + */ + PageResult getProcessingInfomationPage(ProcessingInfomationPageReqVO pageReqVO); + + /** + * 获得全部工艺信息 + * + * @return 工艺信息列表 + */ + List getProcessingInfomationList(); + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomation/ProcessingInfomationServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomation/ProcessingInfomationServiceImpl.java new file mode 100644 index 00000000..68d45758 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomation/ProcessingInfomationServiceImpl.java @@ -0,0 +1,97 @@ +package com.zt.plat.module.base.service.processinginfomation; + +import cn.hutool.core.collection.CollUtil; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import com.zt.plat.module.base.controller.admin.processinginfomation.vo.*; +import com.zt.plat.module.base.dal.dataobject.processinginfomation.ProcessingInfomationDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.util.object.BeanUtils; + +import com.zt.plat.module.base.dal.dao.processinginfomation.ProcessingInfomationMapper; + +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.framework.common.util.collection.CollectionUtils.diffList; +import static com.zt.plat.module.base.enums.ErrorCodeConstants.*; + +/** + * 工艺信息 Service 实现类 + * + * @author 后台管理-1 + */ +@Service +@Validated +public class ProcessingInfomationServiceImpl implements ProcessingInfomationService { + + @Resource + private ProcessingInfomationMapper processingInfomationMapper; + + @Override + public ProcessingInfomationRespVO createProcessingInfomation(ProcessingInfomationSaveReqVO createReqVO) { + // 插入 + ProcessingInfomationDO processingInfomation = BeanUtils.toBean(createReqVO, ProcessingInfomationDO.class); + processingInfomationMapper.insert(processingInfomation); + // 返回 + return BeanUtils.toBean(processingInfomation, ProcessingInfomationRespVO.class); + } + + @Override + public void updateProcessingInfomation(ProcessingInfomationSaveReqVO updateReqVO) { + // 校验存在 + validateProcessingInfomationExists(updateReqVO.getId()); + // 更新 + ProcessingInfomationDO updateObj = BeanUtils.toBean(updateReqVO, ProcessingInfomationDO.class); + processingInfomationMapper.updateById(updateObj); + } + + @Override + public void deleteProcessingInfomation(Long id) { + // 校验存在 + validateProcessingInfomationExists(id); + // 删除 + processingInfomationMapper.deleteById(id); + } + + @Override + public void deleteProcessingInfomationListByIds(List ids) { + // 校验存在 + validateProcessingInfomationExists(ids); + // 删除 + processingInfomationMapper.deleteByIds(ids); + } + + private void validateProcessingInfomationExists(List ids) { + List list = processingInfomationMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(PROCESSING_INFOMATION_NOT_EXISTS); + } + } + + private void validateProcessingInfomationExists(Long id) { + if (processingInfomationMapper.selectById(id) == null) { + throw exception(PROCESSING_INFOMATION_NOT_EXISTS); + } + } + + @Override + public ProcessingInfomationDO getProcessingInfomation(Long id) { + return processingInfomationMapper.selectById(id); + } + + @Override + public PageResult getProcessingInfomationPage(ProcessingInfomationPageReqVO pageReqVO) { + return processingInfomationMapper.selectPage(pageReqVO); + } + + @Override + public List getProcessingInfomationList() { + return processingInfomationMapper.selectList(); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomationoperation/ProcessingInfomationOperationService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomationoperation/ProcessingInfomationOperationService.java new file mode 100644 index 00000000..75fa2a7c --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomationoperation/ProcessingInfomationOperationService.java @@ -0,0 +1,78 @@ +package com.zt.plat.module.base.service.processinginfomationoperation; + +import java.util.*; +import jakarta.validation.*; +import com.zt.plat.module.base.controller.admin.processinginfomationoperation.vo.*; +import com.zt.plat.module.base.dal.dataobject.processinginfomationoperation.ProcessingInfomationOperationDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; + +/** + * 工艺工序 Service 接口 + * + * @author 后台管理-1 + */ +public interface ProcessingInfomationOperationService { + + /** + * 创建工艺工序 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + ProcessingInfomationOperationRespVO createProcessingInfomationOperation(@Valid ProcessingInfomationOperationSaveReqVO createReqVO); + + /** + * 更新工艺工序 + * + * @param updateReqVO 更新信息 + */ + void updateProcessingInfomationOperation(@Valid ProcessingInfomationOperationSaveReqVO updateReqVO); + + /** + * 删除工艺工序 + * + * @param id 编号 + */ + void deleteProcessingInfomationOperation(Long id); + + /** + * 批量删除工艺工序 + * + * @param ids 编号 + */ + void deleteProcessingInfomationOperationListByIds(List ids); + + /** + * 获得工艺工序 + * + * @param id 编号 + * @return 工艺工序 + */ + ProcessingInfomationOperationDO getProcessingInfomationOperation(Long id); + + /** + * 获得工艺工序分页 + * + * @param pageReqVO 分页查询 + * @return 工艺工序分页 + */ + PageResult getProcessingInfomationOperationPage(ProcessingInfomationOperationPageReqVO pageReqVO); + + /** + * 获得工艺工序明细分页 + * + * @param pageReqVO 分页查询 + * @return 工艺工序分页数据(携带工序信息) + */ + PageResult getProcessingInfomationOperationDetailPage(ProcessingInfomationOperationPageReqVO pageReqVO); + + /** + * 获得工艺工序明细列表 + * + * @param pageReqVO 查询条件 + * @return 工艺工序列表(携带工序信息) + */ + List getProcessingInfomationOperationDetailList(ProcessingInfomationOperationPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomationoperation/ProcessingInfomationOperationServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomationoperation/ProcessingInfomationOperationServiceImpl.java new file mode 100644 index 00000000..1beddb64 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomationoperation/ProcessingInfomationOperationServiceImpl.java @@ -0,0 +1,182 @@ +package com.zt.plat.module.base.service.processinginfomationoperation; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import com.zt.plat.module.base.controller.admin.processinginfomationoperation.vo.*; +import com.zt.plat.module.base.dal.dataobject.processinginfomationoperation.ProcessingInfomationOperationDO; +import com.zt.plat.module.base.dal.dao.processingoperation.ProcessingOperationMapper; +import com.zt.plat.module.base.dal.dataobject.processingoperation.ProcessingOperationDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.util.object.BeanUtils; + +import com.zt.plat.module.base.dal.dao.processinginfomationoperation.ProcessingInfomationOperationMapper; + +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.framework.common.util.collection.CollectionUtils.diffList; +import static com.zt.plat.module.base.enums.ErrorCodeConstants.*; + +/** + * 工艺工序 Service 实现类 + * + * @author 后台管理-1 + */ +@Service +@Validated +public class ProcessingInfomationOperationServiceImpl implements ProcessingInfomationOperationService { + + @Resource + private ProcessingInfomationOperationMapper processingInfomationOperationMapper; + @Resource + private ProcessingOperationMapper processingOperationMapper; + + @Override + public ProcessingInfomationOperationRespVO createProcessingInfomationOperation(ProcessingInfomationOperationSaveReqVO createReqVO) { + // 插入 + ProcessingInfomationOperationDO processingInfomationOperation = BeanUtils.toBean(createReqVO, ProcessingInfomationOperationDO.class); + processingInfomationOperationMapper.insert(processingInfomationOperation); + // 返回 + return BeanUtils.toBean(processingInfomationOperation, ProcessingInfomationOperationRespVO.class); + } + + @Override + public void updateProcessingInfomationOperation(ProcessingInfomationOperationSaveReqVO updateReqVO) { + // 校验存在 + validateProcessingInfomationOperationExists(updateReqVO.getId()); + // 更新 + ProcessingInfomationOperationDO updateObj = BeanUtils.toBean(updateReqVO, ProcessingInfomationOperationDO.class); + processingInfomationOperationMapper.updateById(updateObj); + } + + @Override + public void deleteProcessingInfomationOperation(Long id) { + // 校验存在 + validateProcessingInfomationOperationExists(id); + // 删除 + processingInfomationOperationMapper.deleteById(id); + } + + @Override + public void deleteProcessingInfomationOperationListByIds(List ids) { + // 校验存在 + validateProcessingInfomationOperationExists(ids); + // 删除 + processingInfomationOperationMapper.deleteByIds(ids); + } + + private void validateProcessingInfomationOperationExists(List ids) { + List list = processingInfomationOperationMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(PROCESSING_INFOMATION_OPERATION_NOT_EXISTS); + } + } + + private void validateProcessingInfomationOperationExists(Long id) { + if (processingInfomationOperationMapper.selectById(id) == null) { + throw exception(PROCESSING_INFOMATION_OPERATION_NOT_EXISTS); + } + } + + @Override + public ProcessingInfomationOperationDO getProcessingInfomationOperation(Long id) { + return processingInfomationOperationMapper.selectById(id); + } + + @Override + public PageResult getProcessingInfomationOperationPage(ProcessingInfomationOperationPageReqVO pageReqVO) { + return processingInfomationOperationMapper.selectPage(pageReqVO); + } + + @Override + public PageResult getProcessingInfomationOperationDetailPage(ProcessingInfomationOperationPageReqVO pageReqVO) { + List detailList = buildDetailList(pageReqVO); + int total = detailList.size(); + if (total == 0) { + return new PageResult<>(Collections.emptyList(), 0L); + } + Integer pageSize = pageReqVO.getPageSize(); + if (pageSize != null && pageSize <= 0) { + return new PageResult<>(detailList, (long) total); + } + int pageNo = pageReqVO.getPageNo() == null ? 1 : pageReqVO.getPageNo(); + int size = (pageSize == null || pageSize <= 0) ? total : pageSize; + int fromIndex = Math.max((pageNo - 1) * size, 0); + if (fromIndex >= total) { + return new PageResult<>(Collections.emptyList(), (long) total); + } + int toIndex = Math.min(fromIndex + size, total); + return new PageResult<>(detailList.subList(fromIndex, toIndex), (long) total); + } + + @Override + public List getProcessingInfomationOperationDetailList(ProcessingInfomationOperationPageReqVO pageReqVO) { + return buildDetailList(pageReqVO); + } + + private List buildDetailList(ProcessingInfomationOperationPageReqVO pageReqVO) { + List relations = processingInfomationOperationMapper.selectList(pageReqVO); + if (CollUtil.isEmpty(relations)) { + return Collections.emptyList(); + } + Set operationIds = relations.stream() + .flatMap(item -> Stream.of(item.getPreviousOperationId(), item.getNextOperationId())) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + Map operationMap; + if (operationIds.isEmpty()) { + operationMap = Collections.emptyMap(); + } else { + List operations = processingOperationMapper.selectBatchIds(operationIds); + if (CollUtil.isEmpty(operations)) { + operationMap = Collections.emptyMap(); + } else { + operationMap = operations.stream() + .filter(Objects::nonNull) + .collect(Collectors.toMap(ProcessingOperationDO::getId, Function.identity(), (v1, v2) -> v1)); + } + } + List detailList = relations.stream() + .map(item -> convertToResp(item, operationMap)) + .collect(Collectors.toList()); + String nextCode = pageReqVO.getNextOperationCode(); + if (StrUtil.isNotBlank(nextCode)) { + detailList = detailList.stream() + .filter(item -> StrUtil.containsIgnoreCase(item.getNextOperationCode(), nextCode)) + .collect(Collectors.toList()); + } + String nextName = pageReqVO.getNextOperationName(); + if (StrUtil.isNotBlank(nextName)) { + detailList = detailList.stream() + .filter(item -> StrUtil.containsIgnoreCase(item.getNextOperationName(), nextName)) + .collect(Collectors.toList()); + } + return detailList; + } + + private ProcessingInfomationOperationRespVO convertToResp(ProcessingInfomationOperationDO relation, + Map operationMap) { + ProcessingInfomationOperationRespVO resp = BeanUtils.toBean(relation, ProcessingInfomationOperationRespVO.class); + ProcessingOperationDO previous = operationMap.get(relation.getPreviousOperationId()); + if (previous != null) { + resp.setPreviousOperationCode(previous.getCode()); + resp.setPreviousOperationName(previous.getName()); + } + ProcessingOperationDO next = operationMap.get(relation.getNextOperationId()); + if (next != null) { + resp.setNextOperationCode(next.getCode()); + resp.setNextOperationName(next.getName()); + } + return resp; + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processingoperation/ProcessingOperationService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processingoperation/ProcessingOperationService.java new file mode 100644 index 00000000..401bc357 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processingoperation/ProcessingOperationService.java @@ -0,0 +1,69 @@ +package com.zt.plat.module.base.service.processingoperation; + +import java.util.*; +import jakarta.validation.*; +import com.zt.plat.module.base.controller.admin.processingoperation.vo.*; +import com.zt.plat.module.base.dal.dataobject.processingoperation.ProcessingOperationDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; + +/** + * 工序 Service 接口 + * + * @author 后台管理-1 + */ +public interface ProcessingOperationService { + + /** + * 创建工序 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + ProcessingOperationRespVO createProcessingOperation(@Valid ProcessingOperationSaveReqVO createReqVO); + + /** + * 更新工序 + * + * @param updateReqVO 更新信息 + */ + void updateProcessingOperation(@Valid ProcessingOperationSaveReqVO updateReqVO); + + /** + * 删除工序 + * + * @param id 编号 + */ + void deleteProcessingOperation(Long id); + + /** + * 批量删除工序 + * + * @param ids 编号 + */ + void deleteProcessingOperationListByIds(List ids); + + /** + * 获得工序 + * + * @param id 编号 + * @return 工序 + */ + ProcessingOperationDO getProcessingOperation(Long id); + + /** + * 获得工序分页 + * + * @param pageReqVO 分页查询 + * @return 工序分页 + */ + PageResult getProcessingOperationPage(ProcessingOperationPageReqVO pageReqVO); + + /** + * 获得全部工序 + * + * @return 工序列表 + */ + List getProcessingOperationList(); + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processingoperation/ProcessingOperationServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processingoperation/ProcessingOperationServiceImpl.java new file mode 100644 index 00000000..536da7b3 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processingoperation/ProcessingOperationServiceImpl.java @@ -0,0 +1,97 @@ +package com.zt.plat.module.base.service.processingoperation; + +import cn.hutool.core.collection.CollUtil; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import com.zt.plat.module.base.controller.admin.processingoperation.vo.*; +import com.zt.plat.module.base.dal.dataobject.processingoperation.ProcessingOperationDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.util.object.BeanUtils; + +import com.zt.plat.module.base.dal.dao.processingoperation.ProcessingOperationMapper; + +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.framework.common.util.collection.CollectionUtils.diffList; +import static com.zt.plat.module.base.enums.ErrorCodeConstants.*; + +/** + * 工序 Service 实现类 + * + * @author 后台管理-1 + */ +@Service +@Validated +public class ProcessingOperationServiceImpl implements ProcessingOperationService { + + @Resource + private ProcessingOperationMapper processingOperationMapper; + + @Override + public ProcessingOperationRespVO createProcessingOperation(ProcessingOperationSaveReqVO createReqVO) { + // 插入 + ProcessingOperationDO processingOperation = BeanUtils.toBean(createReqVO, ProcessingOperationDO.class); + processingOperationMapper.insert(processingOperation); + // 返回 + return BeanUtils.toBean(processingOperation, ProcessingOperationRespVO.class); + } + + @Override + public void updateProcessingOperation(ProcessingOperationSaveReqVO updateReqVO) { + // 校验存在 + validateProcessingOperationExists(updateReqVO.getId()); + // 更新 + ProcessingOperationDO updateObj = BeanUtils.toBean(updateReqVO, ProcessingOperationDO.class); + processingOperationMapper.updateById(updateObj); + } + + @Override + public void deleteProcessingOperation(Long id) { + // 校验存在 + validateProcessingOperationExists(id); + // 删除 + processingOperationMapper.deleteById(id); + } + + @Override + public void deleteProcessingOperationListByIds(List ids) { + // 校验存在 + validateProcessingOperationExists(ids); + // 删除 + processingOperationMapper.deleteByIds(ids); + } + + private void validateProcessingOperationExists(List ids) { + List list = processingOperationMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(PROCESSING_OPERATION_NOT_EXISTS); + } + } + + private void validateProcessingOperationExists(Long id) { + if (processingOperationMapper.selectById(id) == null) { + throw exception(PROCESSING_OPERATION_NOT_EXISTS); + } + } + + @Override + public ProcessingOperationDO getProcessingOperation(Long id) { + return processingOperationMapper.selectById(id); + } + + @Override + public PageResult getProcessingOperationPage(ProcessingOperationPageReqVO pageReqVO) { + return processingOperationMapper.selectPage(pageReqVO); + } + + @Override + public List getProcessingOperationList() { + return processingOperationMapper.selectList(); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processingoperationmaterial/ProcessingOperationMaterialService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processingoperationmaterial/ProcessingOperationMaterialService.java new file mode 100644 index 00000000..6f7aae4e --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processingoperationmaterial/ProcessingOperationMaterialService.java @@ -0,0 +1,62 @@ +package com.zt.plat.module.base.service.processingoperationmaterial; + +import java.util.*; +import jakarta.validation.*; +import com.zt.plat.module.base.controller.admin.processingoperationmaterial.vo.*; +import com.zt.plat.module.base.dal.dataobject.processingoperationmaterial.ProcessingOperationMaterialDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; + +/** + * 工艺工序物料 Service 接口 + * + * @author 后台管理-1 + */ +public interface ProcessingOperationMaterialService { + + /** + * 创建工艺工序物料 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + ProcessingOperationMaterialRespVO createProcessingOperationMaterial(@Valid ProcessingOperationMaterialSaveReqVO createReqVO); + + /** + * 更新工艺工序物料 + * + * @param updateReqVO 更新信息 + */ + void updateProcessingOperationMaterial(@Valid ProcessingOperationMaterialSaveReqVO updateReqVO); + + /** + * 删除工艺工序物料 + * + * @param id 编号 + */ + void deleteProcessingOperationMaterial(Long id); + + /** + * 批量删除工艺工序物料 + * + * @param ids 编号 + */ + void deleteProcessingOperationMaterialListByIds(List ids); + + /** + * 获得工艺工序物料 + * + * @param id 编号 + * @return 工艺工序物料 + */ + ProcessingOperationMaterialDO getProcessingOperationMaterial(Long id); + + /** + * 获得工艺工序物料分页 + * + * @param pageReqVO 分页查询 + * @return 工艺工序物料分页 + */ + PageResult getProcessingOperationMaterialPage(ProcessingOperationMaterialPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processingoperationmaterial/ProcessingOperationMaterialServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processingoperationmaterial/ProcessingOperationMaterialServiceImpl.java new file mode 100644 index 00000000..17960eaf --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processingoperationmaterial/ProcessingOperationMaterialServiceImpl.java @@ -0,0 +1,92 @@ +package com.zt.plat.module.base.service.processingoperationmaterial; + +import cn.hutool.core.collection.CollUtil; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import com.zt.plat.module.base.controller.admin.processingoperationmaterial.vo.*; +import com.zt.plat.module.base.dal.dataobject.processingoperationmaterial.ProcessingOperationMaterialDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.util.object.BeanUtils; + +import com.zt.plat.module.base.dal.dao.processingoperationmaterial.ProcessingOperationMaterialMapper; + +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.framework.common.util.collection.CollectionUtils.diffList; +import static com.zt.plat.module.base.enums.ErrorCodeConstants.*; + +/** + * 工艺工序物料 Service 实现类 + * + * @author 后台管理-1 + */ +@Service +@Validated +public class ProcessingOperationMaterialServiceImpl implements ProcessingOperationMaterialService { + + @Resource + private ProcessingOperationMaterialMapper processingOperationMaterialMapper; + + @Override + public ProcessingOperationMaterialRespVO createProcessingOperationMaterial(ProcessingOperationMaterialSaveReqVO createReqVO) { + // 插入 + ProcessingOperationMaterialDO processingOperationMaterial = BeanUtils.toBean(createReqVO, ProcessingOperationMaterialDO.class); + processingOperationMaterialMapper.insert(processingOperationMaterial); + // 返回 + return BeanUtils.toBean(processingOperationMaterial, ProcessingOperationMaterialRespVO.class); + } + + @Override + public void updateProcessingOperationMaterial(ProcessingOperationMaterialSaveReqVO updateReqVO) { + // 校验存在 + validateProcessingOperationMaterialExists(updateReqVO.getId()); + // 更新 + ProcessingOperationMaterialDO updateObj = BeanUtils.toBean(updateReqVO, ProcessingOperationMaterialDO.class); + processingOperationMaterialMapper.updateById(updateObj); + } + + @Override + public void deleteProcessingOperationMaterial(Long id) { + // 校验存在 + validateProcessingOperationMaterialExists(id); + // 删除 + processingOperationMaterialMapper.deleteById(id); + } + + @Override + public void deleteProcessingOperationMaterialListByIds(List ids) { + // 校验存在 + validateProcessingOperationMaterialExists(ids); + // 删除 + processingOperationMaterialMapper.deleteByIds(ids); + } + + private void validateProcessingOperationMaterialExists(List ids) { + List list = processingOperationMaterialMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(PROCESSING_OPERATION_MATERIAL_NOT_EXISTS); + } + } + + private void validateProcessingOperationMaterialExists(Long id) { + if (processingOperationMaterialMapper.selectById(id) == null) { + throw exception(PROCESSING_OPERATION_MATERIAL_NOT_EXISTS); + } + } + + @Override + public ProcessingOperationMaterialDO getProcessingOperationMaterial(Long id) { + return processingOperationMaterialMapper.selectById(id); + } + + @Override + public PageResult getProcessingOperationMaterialPage(ProcessingOperationMaterialPageReqVO pageReqVO) { + return processingOperationMaterialMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/departmentmaterial/DepartmentMaterialMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/departmentmaterial/DepartmentMaterialMapper.xml new file mode 100644 index 00000000..cd7e17fc --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/departmentmaterial/DepartmentMaterialMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/materialclasses/MaterialClassesMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/materialclasses/MaterialClassesMapper.xml new file mode 100644 index 00000000..1567f9ab --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/materialclasses/MaterialClassesMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/materialhasclasses/MaterialHasClassesMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/materialhasclasses/MaterialHasClassesMapper.xml new file mode 100644 index 00000000..dc7f4665 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/materialhasclasses/MaterialHasClassesMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/materialhasproperties/MaterialHasPropertiesMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/materialhasproperties/MaterialHasPropertiesMapper.xml new file mode 100644 index 00000000..34df4f13 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/materialhasproperties/MaterialHasPropertiesMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/materialproperties/MaterialPropertiesMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/materialproperties/MaterialPropertiesMapper.xml new file mode 100644 index 00000000..0c323f57 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/materialproperties/MaterialPropertiesMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/processinginfomation/ProcessingInfomationMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/processinginfomation/ProcessingInfomationMapper.xml new file mode 100644 index 00000000..bc6a4f1e --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/processinginfomation/ProcessingInfomationMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/processinginfomationoperation/ProcessingInfomationOperationMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/processinginfomationoperation/ProcessingInfomationOperationMapper.xml new file mode 100644 index 00000000..be450c06 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/processinginfomationoperation/ProcessingInfomationOperationMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/processingoperation/ProcessingOperationMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/processingoperation/ProcessingOperationMapper.xml new file mode 100644 index 00000000..9b54843e --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/processingoperation/ProcessingOperationMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/processingoperationmaterial/ProcessingOperationMaterialMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/processingoperationmaterial/ProcessingOperationMaterialMapper.xml new file mode 100644 index 00000000..d3650479 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/processingoperationmaterial/ProcessingOperationMaterialMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file