diff --git a/pom.xml b/pom.xml
index 40fc228..d1619b3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,7 +19,7 @@
https://github.com/YunaiV/ruoyi-vue-pro
- 3.0.35
+ 3.0.37
17
${java.version}
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 6e05339..98e530d 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
@@ -12,6 +12,14 @@ import com.zt.plat.framework.common.exception.ErrorCode;
public interface ErrorCodeConstants {
// ========== 示例模块 1-001-000-000 ==========
- ErrorCode EXAMPLE_NOT_EXISTS = new ErrorCode(1_001_000_001, "示例不存在");
+ ErrorCode MATERIAL_OTHER_NOT_EXISTS = new ErrorCode(1_001_000_001, "示例不存在");
+ ErrorCode ELEMENT_NOT_EXISTS = new ErrorCode(1_001_000_001, "示例不存在");
+ ErrorCode CONTACT_NOT_EXISTS = new ErrorCode(1_001_000_001, "示例不存在");
+ ErrorCode ACCOUNT_NOT_EXISTS = new ErrorCode(1_001_000_001, "示例不存在");
+ ErrorCode MATERIAL_DESTROY_NOT_EXISTS = new ErrorCode(1_001_000_001, "示例不存在");
+ ErrorCode MATERIAL_INFOMATION_NOT_EXISTS = new ErrorCode(1_001_000_001, "示例不存在");
+ ErrorCode COMPANY_RELATIVITY_NOT_EXISTS = new ErrorCode(1_001_000_001, "示例不存在");
+ ErrorCode WAREHOUSE_NOT_EXISTS = new ErrorCode(1_001_000_001, "示例不存在");
+ ErrorCode FACTORY_NOT_EXISTS = new ErrorCode(1_001_000_001, "示例不存在");
}
diff --git a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/DeleteStatusEnum.java b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/DeleteStatusEnum.java
new file mode 100644
index 0000000..9ad986a
--- /dev/null
+++ b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/DeleteStatusEnum.java
@@ -0,0 +1,39 @@
+package com.zt.plat.module.tmpltp.enums;
+
+import java.util.HashSet;
+import java.util.Set;
+
+public enum DeleteStatusEnum {
+
+ STATUS_DRF(TmplStsEnum.DRAFT.getCode(), new HashSet<>() {{add(TmplStsEnum.DRAFT.getCode());}}),
+ STATUS_PUB(TmplStsEnum.PUBLISHED.getCode(), new HashSet<>()),
+ STATUS_STOP(TmplStsEnum.STOPPED.getCode(), new HashSet<>());
+
+
+ private final String code;
+ private final Set allowedTransitions;
+
+ DeleteStatusEnum(String code, Set allowedTransitions) {
+ this.code = code;
+ this.allowedTransitions = allowedTransitions;
+ }
+
+ /**
+ * 根据状态码获取对应的枚举实例
+ */
+ public static DeleteStatusEnum fromCode(String code) {
+ for (DeleteStatusEnum status : values()) {
+ if (status.code.equals(code)) {
+ return status;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 校验状态转换是否合法
+ */
+ public boolean isTransitionAllowed(String targetStatus) {
+ return allowedTransitions.contains(targetStatus);
+ }
+}
diff --git a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/ErrorCodeConstants.java b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/ErrorCodeConstants.java
index cbfaec7..6b9efff 100644
--- a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/ErrorCodeConstants.java
+++ b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/ErrorCodeConstants.java
@@ -14,14 +14,15 @@ public interface ErrorCodeConstants {
ErrorCode TMPL_TP_DEl_ERROR = new ErrorCode(1_027_000_507, "模版分类删除失败");
ErrorCode TEMPLATE_INSTANCE_DATA_NOT_EXISTS = new ErrorCode(1_027_000_508, "实例字段值不存在");
ErrorCode TEMPLATE_INSTANCE_ITEM_NOT_EXISTS = new ErrorCode(1_027_000_509, "实例条款值不存在");
+ ErrorCode TEMPLATE_INSTANCE_CREATE_FAIL = new ErrorCode(1_027_000_510, "实例创建失败");
ErrorCode PARAMS_IS_NULL_OR_ERR = new ErrorCode(1_027_000_510, "参数为空或参数错误");
- ErrorCode DEPARTMENT_INSTANCE_RELATIVITY_NOT_EXISTS = new ErrorCode(1_027_000_511, "部门与实例关联不存在");
- ErrorCode ILLEGAL_OPERATION_TYPE = new ErrorCode(1_027_000_511, "非法操作类型");
- ErrorCode OPERATION_FAIL= new ErrorCode(1_027_000_512, "操作失败");
- ErrorCode STATUS_OPERATION_FAIL= new ErrorCode(1_027_000_513, "当前状态不支持此操作");
- ErrorCode NOT_FOUND_CLASS= new ErrorCode(1_027_000_514, "找不到对应的类");
- ErrorCode UTIL_NOT_INIT= new ErrorCode(1_027_000_515, "工具类为未初始化");
- ErrorCode TMPL_INS_FLD_CODE_EXISTS = new ErrorCode(1_027_000_516, "字段已存在");
+ ErrorCode DEPARTMENT_INSTANCE_RELATIVITY_NOT_EXISTS = new ErrorCode(1_027_000_512, "部门与实例关联不存在");
+ ErrorCode ILLEGAL_OPERATION_TYPE = new ErrorCode(1_027_000_513, "非法操作类型");
+ ErrorCode OPERATION_FAIL= new ErrorCode(1_027_000_514, "操作失败");
+ ErrorCode STATUS_OPERATION_FAIL= new ErrorCode(1_027_000_515, "当前状态不支持此操作");
+ ErrorCode NOT_FOUND_CLASS= new ErrorCode(1_027_000_516, "找不到对应的类");
+ ErrorCode UTIL_NOT_INIT= new ErrorCode(1_027_000_517, "工具类为未初始化");
+ ErrorCode TMPL_INS_FLD_CODE_EXISTS = new ErrorCode(1_027_000_518, "字段已存在");
//Illegal operation type
}
diff --git a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/StatusEnum.java b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/PublishStatusEnum.java
similarity index 56%
rename from zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/StatusEnum.java
rename to zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/PublishStatusEnum.java
index 2871837..42532de 100644
--- a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/StatusEnum.java
+++ b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/PublishStatusEnum.java
@@ -6,25 +6,17 @@ import java.util.Set;
/**
* 状态枚举类,定义所有可能的状态及合法的状态转换
*/
-public enum StatusEnum {
- // 定义所有状态及对应的合法转换目标状态
- STATUS_1("1", new HashSet() {{
- add("2");
- add("4");
- }}),
- STATUS_2("2", new HashSet() {{
- add("3");
- }}),
- STATUS_3("3", new HashSet() {{
- add("4");
- add("2");
- }}),
- STATUS_4("4", new HashSet<>()); // 没有合法的转换目标
+public enum PublishStatusEnum {
+
+ STATUS_DRF(TmplStsEnum.DRAFT.getCode(), new HashSet<>() {{add(TmplStsEnum.DRAFT.getCode());}}),
+ STATUS_PUB(TmplStsEnum.PUBLISHED.getCode(), new HashSet<>()),
+ STATUS_STOP(TmplStsEnum.STOPPED.getCode(), new HashSet<>() );
+
private final String code;
private final Set allowedTransitions;
- StatusEnum(String code, Set allowedTransitions) {
+ PublishStatusEnum(String code, Set allowedTransitions) {
this.code = code;
this.allowedTransitions = allowedTransitions;
}
@@ -32,8 +24,8 @@ public enum StatusEnum {
/**
* 根据状态码获取对应的枚举实例
*/
- public static StatusEnum fromCode(String code) {
- for (StatusEnum status : values()) {
+ public static PublishStatusEnum fromCode(String code) {
+ for (PublishStatusEnum status : values()) {
if (status.code.equals(code)) {
return status;
}
diff --git a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/TmplStsEnum.java b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/TmplStsEnum.java
new file mode 100644
index 0000000..04d6407
--- /dev/null
+++ b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/TmplStsEnum.java
@@ -0,0 +1,34 @@
+package com.zt.plat.module.tmpltp.enums;
+
+import lombok.Getter;
+
+@Getter
+public enum TmplStsEnum {
+ // 草稿状态
+ DRAFT("DRF", "草稿"),
+ // 已发布状态
+ PUBLISHED("PUB", "已发布"),
+ // 已停用状态
+ STOPPED("STOP", "已停用");
+
+ // 获取状态编码
+ private final String code;
+ // 获取状态描述
+ private final String description;
+
+ // 构造方法
+ TmplStsEnum(String code, String description) {
+ this.code = code;
+ this.description = description;
+ }
+
+ // 根据编码获取枚举实例
+ public static TmplStsEnum getByCode(String code) {
+ for (TmplStsEnum status : TmplStsEnum.values()) {
+ if (status.getCode().equals(code)) {
+ return status;
+ }
+ }
+ return null;
+ }
+}
diff --git a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/UpdateStatusEnum.java b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/UpdateStatusEnum.java
new file mode 100644
index 0000000..2e34ef0
--- /dev/null
+++ b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/UpdateStatusEnum.java
@@ -0,0 +1,45 @@
+package com.zt.plat.module.tmpltp.enums;
+
+import java.util.HashSet;
+import java.util.Set;
+
+public enum UpdateStatusEnum {
+
+ STATUS_DRF(TmplStsEnum.DRAFT.getCode(), new HashSet<>() {{
+ add(TmplStsEnum.DRAFT.getCode());
+ add(TmplStsEnum.STOPPED.getCode());
+ }}),
+ STATUS_PUB(TmplStsEnum.PUBLISHED.getCode(), new HashSet<>()),
+ STATUS_STOP(TmplStsEnum.STOPPED.getCode(), new HashSet<>(){{
+ add(TmplStsEnum.DRAFT.getCode());
+ add(TmplStsEnum.STOPPED.getCode());
+ }});
+
+
+ private final String code;
+ private final Set allowedTransitions;
+
+ UpdateStatusEnum(String code, Set allowedTransitions) {
+ this.code = code;
+ this.allowedTransitions = allowedTransitions;
+ }
+
+ /**
+ * 根据状态码获取对应的枚举实例
+ */
+ public static UpdateStatusEnum fromCode(String code) {
+ for (UpdateStatusEnum status : values()) {
+ if (status.code.equals(code)) {
+ return status;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 校验状态转换是否合法
+ */
+ public boolean isTransitionAllowed(String targetStatus) {
+ return allowedTransitions.contains(targetStatus);
+ }
+}
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/AccountController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/AccountController.java
new file mode 100644
index 0000000..84d1783
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/AccountController.java
@@ -0,0 +1,104 @@
+package com.zt.plat.module.base.controller.admin.base;
+
+import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
+import com.zt.plat.framework.common.pojo.CommonResult;
+import com.zt.plat.framework.common.pojo.PageParam;
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
+import com.zt.plat.framework.common.util.object.BeanUtils;
+import com.zt.plat.framework.excel.core.util.ExcelUtils;
+import com.zt.plat.module.base.controller.admin.base.vo.AccountPageReqVO;
+import com.zt.plat.module.base.controller.admin.base.vo.AccountRespVO;
+import com.zt.plat.module.base.controller.admin.base.vo.AccountSaveReqVO;
+import com.zt.plat.module.base.dal.dataobject.base.AccountDO;
+import com.zt.plat.module.base.service.base.AccountService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.Valid;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.IOException;
+import java.util.List;
+
+import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
+import static com.zt.plat.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "管理后台 - 账户条款")
+@RestController
+@RequestMapping("/base/account")
+@Validated
+public class AccountController {
+
+
+ @Resource
+ private AccountService accountService;
+
+ @PostMapping("/create")
+ @Operation(summary = "创建账户条款")
+ @PreAuthorize("@ss.hasPermission('base:account:create')")
+ public CommonResult createAccount(@Valid @RequestBody AccountSaveReqVO createReqVO) {
+ return success(accountService.createAccount(createReqVO));
+ }
+
+ @PutMapping("/update")
+ @Operation(summary = "更新账户条款")
+ @PreAuthorize("@ss.hasPermission('base:account:update')")
+ public CommonResult updateAccount(@Valid @RequestBody AccountSaveReqVO updateReqVO) {
+ accountService.updateAccount(updateReqVO);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete")
+ @Operation(summary = "删除账户条款")
+ @Parameter(name = "id", description = "编号", required = true)
+ @PreAuthorize("@ss.hasPermission('base:account:delete')")
+ public CommonResult deleteAccount(@RequestParam("id") Long id) {
+ accountService.deleteAccount(id);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete-list")
+ @Parameter(name = "ids", description = "编号", required = true)
+ @Operation(summary = "批量删除账户条款")
+ @PreAuthorize("@ss.hasPermission('base:account:delete')")
+ public CommonResult deleteAccountList(@RequestBody BatchDeleteReqVO req) {
+ accountService.deleteAccountListByIds(req.getIds());
+ return success(true);
+ }
+
+ @GetMapping("/get")
+ @Operation(summary = "获得账户条款")
+ @Parameter(name = "id", description = "编号", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('base:account:query')")
+ public CommonResult getAccount(@RequestParam("id") Long id) {
+ AccountDO account = accountService.getAccount(id);
+ return success(BeanUtils.toBean(account, AccountRespVO.class));
+ }
+
+ @GetMapping("/page")
+ @Operation(summary = "获得账户条款分页")
+ @PreAuthorize("@ss.hasPermission('base:account:query')")
+ public CommonResult> getAccountPage(@Valid AccountPageReqVO pageReqVO) {
+ PageResult pageResult = accountService.getAccountPage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, AccountRespVO.class));
+ }
+
+ @GetMapping("/export-excel")
+ @Operation(summary = "导出账户条款 Excel")
+ @PreAuthorize("@ss.hasPermission('base:account:export')")
+ @ApiAccessLog(operateType = EXPORT)
+ public void exportAccountExcel(@Valid AccountPageReqVO pageReqVO,
+ HttpServletResponse response) throws IOException {
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+ List list = accountService.getAccountPage(pageReqVO).getList();
+ // 导出 Excel
+ ExcelUtils.write(response, "账户条款.xls", "数据", AccountRespVO.class,
+ BeanUtils.toBean(list, AccountRespVO.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/base/BaseTestController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/BaseTestController.java
index 8e787af..b20566b 100644
--- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/BaseTestController.java
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/BaseTestController.java
@@ -1,13 +1,12 @@
package com.zt.plat.module.base.controller.admin.base;
+import com.zt.plat.framework.common.pojo.CommonResult;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import com.zt.plat.framework.common.pojo.CommonResult;
-
import static com.zt.plat.framework.common.pojo.CommonResult.success;
/**
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/CompanyRelativityController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/CompanyRelativityController.java
new file mode 100644
index 0000000..07787d2
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/CompanyRelativityController.java
@@ -0,0 +1,107 @@
+package com.zt.plat.module.base.controller.admin.base;
+
+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.base.vo.*;
+import com.zt.plat.module.base.dal.dataobject.base.CompanyRelativityDO;
+import com.zt.plat.module.base.service.base.CompanyRelativityService;
+
+@Tag(name = "管理后台 - 公司关系")
+@RestController
+@RequestMapping("/base/company-relativity")
+@Validated
+public class CompanyRelativityController {
+
+
+ @Resource
+ private CompanyRelativityService companyRelativityService;
+
+ @PostMapping("/create")
+ @Operation(summary = "创建公司关系")
+ @PreAuthorize("@ss.hasPermission('base:company-relativity:create')")
+ public CommonResult createCompanyRelativity(@Valid @RequestBody CompanyRelativitySaveReqVO createReqVO) {
+ return success(companyRelativityService.createCompanyRelativity(createReqVO));
+ }
+
+ @PutMapping("/update")
+ @Operation(summary = "更新公司关系")
+ @PreAuthorize("@ss.hasPermission('base:company-relativity:update')")
+ public CommonResult updateCompanyRelativity(@Valid @RequestBody CompanyRelativitySaveReqVO updateReqVO) {
+ companyRelativityService.updateCompanyRelativity(updateReqVO);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete")
+ @Operation(summary = "删除公司关系")
+ @Parameter(name = "id", description = "编号", required = true)
+ @PreAuthorize("@ss.hasPermission('base:company-relativity:delete')")
+ public CommonResult deleteCompanyRelativity(@RequestParam("id") Long id) {
+ companyRelativityService.deleteCompanyRelativity(id);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete-list")
+ @Parameter(name = "ids", description = "编号", required = true)
+ @Operation(summary = "批量删除公司关系")
+ @PreAuthorize("@ss.hasPermission('base:company-relativity:delete')")
+ public CommonResult deleteCompanyRelativityList(@RequestBody BatchDeleteReqVO req) {
+ companyRelativityService.deleteCompanyRelativityListByIds(req.getIds());
+ return success(true);
+ }
+
+ @GetMapping("/get")
+ @Operation(summary = "获得公司关系")
+ @Parameter(name = "id", description = "编号", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('base:company-relativity:query')")
+ public CommonResult getCompanyRelativity(@RequestParam("id") Long id) {
+ CompanyRelativityDO companyRelativity = companyRelativityService.getCompanyRelativity(id);
+ return success(BeanUtils.toBean(companyRelativity, CompanyRelativityRespVO.class));
+ }
+
+ @GetMapping("/page")
+ @Operation(summary = "获得公司关系分页")
+ @PreAuthorize("@ss.hasPermission('base:company-relativity:query')")
+ public CommonResult> getCompanyRelativityPage(@Valid CompanyRelativityPageReqVO pageReqVO) {
+ PageResult pageResult = companyRelativityService.getCompanyRelativityPage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, CompanyRelativityRespVO.class));
+ }
+
+ @GetMapping("/export-excel")
+ @Operation(summary = "导出公司关系 Excel")
+ @PreAuthorize("@ss.hasPermission('base:company-relativity:export')")
+ @ApiAccessLog(operateType = EXPORT)
+ public void exportCompanyRelativityExcel(@Valid CompanyRelativityPageReqVO pageReqVO,
+ HttpServletResponse response) throws IOException {
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+ List list = companyRelativityService.getCompanyRelativityPage(pageReqVO).getList();
+ // 导出 Excel
+ ExcelUtils.write(response, "公司关系.xls", "数据", CompanyRelativityRespVO.class,
+ BeanUtils.toBean(list, CompanyRelativityRespVO.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/base/ContactController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/ContactController.java
new file mode 100644
index 0000000..193a161
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/ContactController.java
@@ -0,0 +1,104 @@
+package com.zt.plat.module.base.controller.admin.base;
+
+import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
+import com.zt.plat.framework.common.pojo.CommonResult;
+import com.zt.plat.framework.common.pojo.PageParam;
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
+import com.zt.plat.framework.common.util.object.BeanUtils;
+import com.zt.plat.framework.excel.core.util.ExcelUtils;
+import com.zt.plat.module.base.controller.admin.base.vo.ContactPageReqVO;
+import com.zt.plat.module.base.controller.admin.base.vo.ContactRespVO;
+import com.zt.plat.module.base.controller.admin.base.vo.ContactSaveReqVO;
+import com.zt.plat.module.base.dal.dataobject.base.ContactDO;
+import com.zt.plat.module.base.service.base.ContactService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.Valid;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.IOException;
+import java.util.List;
+
+import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
+import static com.zt.plat.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "管理后台 - 联系人信息")
+@RestController
+@RequestMapping("/base/contact")
+@Validated
+public class ContactController {
+
+
+ @Resource
+ private ContactService contactService;
+
+ @PostMapping("/create")
+ @Operation(summary = "创建联系人信息")
+ @PreAuthorize("@ss.hasPermission('base:contact:create')")
+ public CommonResult createContact(@Valid @RequestBody ContactSaveReqVO createReqVO) {
+ return success(contactService.createContact(createReqVO));
+ }
+
+ @PutMapping("/update")
+ @Operation(summary = "更新联系人信息")
+ @PreAuthorize("@ss.hasPermission('base:contact:update')")
+ public CommonResult updateContact(@Valid @RequestBody ContactSaveReqVO updateReqVO) {
+ contactService.updateContact(updateReqVO);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete")
+ @Operation(summary = "删除联系人信息")
+ @Parameter(name = "id", description = "编号", required = true)
+ @PreAuthorize("@ss.hasPermission('base:contact:delete')")
+ public CommonResult deleteContact(@RequestParam("id") Long id) {
+ contactService.deleteContact(id);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete-list")
+ @Parameter(name = "ids", description = "编号", required = true)
+ @Operation(summary = "批量删除联系人信息")
+ @PreAuthorize("@ss.hasPermission('base:contact:delete')")
+ public CommonResult deleteContactList(@RequestBody BatchDeleteReqVO req) {
+ contactService.deleteContactListByIds(req.getIds());
+ return success(true);
+ }
+
+ @GetMapping("/get")
+ @Operation(summary = "获得联系人信息")
+ @Parameter(name = "id", description = "编号", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('base:contact:query')")
+ public CommonResult getContact(@RequestParam("id") Long id) {
+ ContactDO contact = contactService.getContact(id);
+ return success(BeanUtils.toBean(contact, ContactRespVO.class));
+ }
+
+ @GetMapping("/page")
+ @Operation(summary = "获得联系人信息分页")
+ @PreAuthorize("@ss.hasPermission('base:contact:query')")
+ public CommonResult> getContactPage(@Valid ContactPageReqVO pageReqVO) {
+ PageResult pageResult = contactService.getContactPage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, ContactRespVO.class));
+ }
+
+ @GetMapping("/export-excel")
+ @Operation(summary = "导出联系人信息 Excel")
+ @PreAuthorize("@ss.hasPermission('base:contact:export')")
+ @ApiAccessLog(operateType = EXPORT)
+ public void exportContactExcel(@Valid ContactPageReqVO pageReqVO,
+ HttpServletResponse response) throws IOException {
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+ List list = contactService.getContactPage(pageReqVO).getList();
+ // 导出 Excel
+ ExcelUtils.write(response, "联系人信息.xls", "数据", ContactRespVO.class,
+ BeanUtils.toBean(list, ContactRespVO.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/base/ElementController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/ElementController.java
new file mode 100644
index 0000000..f8c5417
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/ElementController.java
@@ -0,0 +1,104 @@
+package com.zt.plat.module.base.controller.admin.base;
+
+import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
+import com.zt.plat.framework.common.pojo.CommonResult;
+import com.zt.plat.framework.common.pojo.PageParam;
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
+import com.zt.plat.framework.common.util.object.BeanUtils;
+import com.zt.plat.framework.excel.core.util.ExcelUtils;
+import com.zt.plat.module.base.controller.admin.base.vo.ElementPageReqVO;
+import com.zt.plat.module.base.controller.admin.base.vo.ElementRespVO;
+import com.zt.plat.module.base.controller.admin.base.vo.ElementSaveReqVO;
+import com.zt.plat.module.base.dal.dataobject.base.ElementDO;
+import com.zt.plat.module.base.service.base.ElementService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.Valid;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.IOException;
+import java.util.List;
+
+import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
+import static com.zt.plat.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "管理后台 - 金属元素")
+@RestController
+@RequestMapping("/base/element")
+@Validated
+public class ElementController {
+
+
+ @Resource
+ private ElementService elementService;
+
+ @PostMapping("/create")
+ @Operation(summary = "创建金属元素")
+ @PreAuthorize("@ss.hasPermission('base:element:create')")
+ public CommonResult createElement(@Valid @RequestBody ElementSaveReqVO createReqVO) {
+ return success(elementService.createElement(createReqVO));
+ }
+
+ @PutMapping("/update")
+ @Operation(summary = "更新金属元素")
+ @PreAuthorize("@ss.hasPermission('base:element:update')")
+ public CommonResult updateElement(@Valid @RequestBody ElementSaveReqVO updateReqVO) {
+ elementService.updateElement(updateReqVO);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete")
+ @Operation(summary = "删除金属元素")
+ @Parameter(name = "id", description = "编号", required = true)
+ @PreAuthorize("@ss.hasPermission('base:element:delete')")
+ public CommonResult deleteElement(@RequestParam("id") Long id) {
+ elementService.deleteElement(id);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete-list")
+ @Parameter(name = "ids", description = "编号", required = true)
+ @Operation(summary = "批量删除金属元素")
+ @PreAuthorize("@ss.hasPermission('base:element:delete')")
+ public CommonResult deleteElementList(@RequestBody BatchDeleteReqVO req) {
+ elementService.deleteElementListByIds(req.getIds());
+ return success(true);
+ }
+
+ @GetMapping("/get")
+ @Operation(summary = "获得金属元素")
+ @Parameter(name = "id", description = "编号", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('base:element:query')")
+ public CommonResult getElement(@RequestParam("id") Long id) {
+ ElementDO element = elementService.getElement(id);
+ return success(BeanUtils.toBean(element, ElementRespVO.class));
+ }
+
+ @GetMapping("/page")
+ @Operation(summary = "获得金属元素分页")
+ @PreAuthorize("@ss.hasPermission('base:element:query')")
+ public CommonResult> getElementPage(@Valid ElementPageReqVO pageReqVO) {
+ PageResult pageResult = elementService.getElementPage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, ElementRespVO.class));
+ }
+
+ @GetMapping("/export-excel")
+ @Operation(summary = "导出金属元素 Excel")
+ @PreAuthorize("@ss.hasPermission('base:element:export')")
+ @ApiAccessLog(operateType = EXPORT)
+ public void exportElementExcel(@Valid ElementPageReqVO pageReqVO,
+ HttpServletResponse response) throws IOException {
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+ List list = elementService.getElementPage(pageReqVO).getList();
+ // 导出 Excel
+ ExcelUtils.write(response, "金属元素.xls", "数据", ElementRespVO.class,
+ BeanUtils.toBean(list, ElementRespVO.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/base/FactoryController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/FactoryController.java
new file mode 100644
index 0000000..57ada9c
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/FactoryController.java
@@ -0,0 +1,104 @@
+package com.zt.plat.module.base.controller.admin.base;
+
+import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
+import com.zt.plat.framework.common.pojo.CommonResult;
+import com.zt.plat.framework.common.pojo.PageParam;
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
+import com.zt.plat.framework.common.util.object.BeanUtils;
+import com.zt.plat.framework.excel.core.util.ExcelUtils;
+import com.zt.plat.module.base.controller.admin.base.vo.FactoryPageReqVO;
+import com.zt.plat.module.base.controller.admin.base.vo.FactoryRespVO;
+import com.zt.plat.module.base.controller.admin.base.vo.FactorySaveReqVO;
+import com.zt.plat.module.base.dal.dataobject.base.FactoryDO;
+import com.zt.plat.module.base.service.base.FactoryService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.Valid;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.IOException;
+import java.util.List;
+
+import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
+import static com.zt.plat.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "管理后台 - 工厂")
+@RestController
+@RequestMapping("/base/factory")
+@Validated
+public class FactoryController {
+
+
+ @Resource
+ private FactoryService factoryService;
+
+ @PostMapping("/create")
+ @Operation(summary = "创建工厂")
+ @PreAuthorize("@ss.hasPermission('base:factory:create')")
+ public CommonResult createFactory(@Valid @RequestBody FactorySaveReqVO createReqVO) {
+ return success(factoryService.createFactory(createReqVO));
+ }
+
+ @PutMapping("/update")
+ @Operation(summary = "更新工厂")
+ @PreAuthorize("@ss.hasPermission('base:factory:update')")
+ public CommonResult updateFactory(@Valid @RequestBody FactorySaveReqVO updateReqVO) {
+ factoryService.updateFactory(updateReqVO);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete")
+ @Operation(summary = "删除工厂")
+ @Parameter(name = "id", description = "编号", required = true)
+ @PreAuthorize("@ss.hasPermission('base:factory:delete')")
+ public CommonResult deleteFactory(@RequestParam("id") Long id) {
+ factoryService.deleteFactory(id);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete-list")
+ @Parameter(name = "ids", description = "编号", required = true)
+ @Operation(summary = "批量删除工厂")
+ @PreAuthorize("@ss.hasPermission('base:factory:delete')")
+ public CommonResult deleteFactoryList(@RequestBody BatchDeleteReqVO req) {
+ factoryService.deleteFactoryListByIds(req.getIds());
+ return success(true);
+ }
+
+ @GetMapping("/get")
+ @Operation(summary = "获得工厂")
+ @Parameter(name = "id", description = "编号", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('base:factory:query')")
+ public CommonResult getFactory(@RequestParam("id") Long id) {
+ FactoryDO factory = factoryService.getFactory(id);
+ return success(BeanUtils.toBean(factory, FactoryRespVO.class));
+ }
+
+ @GetMapping("/page")
+ @Operation(summary = "获得工厂分页")
+ @PreAuthorize("@ss.hasPermission('base:factory:query')")
+ public CommonResult> getFactoryPage(@Valid FactoryPageReqVO pageReqVO) {
+ PageResult pageResult = factoryService.getFactoryPage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, FactoryRespVO.class));
+ }
+
+ @GetMapping("/export-excel")
+ @Operation(summary = "导出工厂 Excel")
+ @PreAuthorize("@ss.hasPermission('base:factory:export')")
+ @ApiAccessLog(operateType = EXPORT)
+ public void exportFactoryExcel(@Valid FactoryPageReqVO pageReqVO,
+ HttpServletResponse response) throws IOException {
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+ List list = factoryService.getFactoryPage(pageReqVO).getList();
+ // 导出 Excel
+ ExcelUtils.write(response, "工厂.xls", "数据", FactoryRespVO.class,
+ BeanUtils.toBean(list, FactoryRespVO.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/base/MaterialDestroyController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/MaterialDestroyController.java
new file mode 100644
index 0000000..0c79789
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/MaterialDestroyController.java
@@ -0,0 +1,107 @@
+package com.zt.plat.module.base.controller.admin.base;
+
+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.base.vo.*;
+import com.zt.plat.module.base.dal.dataobject.base.MaterialDestroyDO;
+import com.zt.plat.module.base.service.base.MaterialDestroyService;
+
+@Tag(name = "管理后台 - 物料回收率")
+@RestController
+@RequestMapping("/base/material-destroy")
+@Validated
+public class MaterialDestroyController {
+
+
+ @Resource
+ private MaterialDestroyService materialDestroyService;
+
+ @PostMapping("/create")
+ @Operation(summary = "创建物料回收率")
+ @PreAuthorize("@ss.hasPermission('base:material-destroy:create')")
+ public CommonResult createMaterialDestroy(@Valid @RequestBody MaterialDestroySaveReqVO createReqVO) {
+ return success(materialDestroyService.createMaterialDestroy(createReqVO));
+ }
+
+ @PutMapping("/update")
+ @Operation(summary = "更新物料回收率")
+ @PreAuthorize("@ss.hasPermission('base:material-destroy:update')")
+ public CommonResult updateMaterialDestroy(@Valid @RequestBody MaterialDestroySaveReqVO updateReqVO) {
+ materialDestroyService.updateMaterialDestroy(updateReqVO);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete")
+ @Operation(summary = "删除物料回收率")
+ @Parameter(name = "id", description = "编号", required = true)
+ @PreAuthorize("@ss.hasPermission('base:material-destroy:delete')")
+ public CommonResult deleteMaterialDestroy(@RequestParam("id") Long id) {
+ materialDestroyService.deleteMaterialDestroy(id);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete-list")
+ @Parameter(name = "ids", description = "编号", required = true)
+ @Operation(summary = "批量删除物料回收率")
+ @PreAuthorize("@ss.hasPermission('base:material-destroy:delete')")
+ public CommonResult deleteMaterialDestroyList(@RequestBody BatchDeleteReqVO req) {
+ materialDestroyService.deleteMaterialDestroyListByIds(req.getIds());
+ return success(true);
+ }
+
+ @GetMapping("/get")
+ @Operation(summary = "获得物料回收率")
+ @Parameter(name = "id", description = "编号", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('base:material-destroy:query')")
+ public CommonResult getMaterialDestroy(@RequestParam("id") Long id) {
+ MaterialDestroyDO materialDestroy = materialDestroyService.getMaterialDestroy(id);
+ return success(BeanUtils.toBean(materialDestroy, MaterialDestroyRespVO.class));
+ }
+
+ @GetMapping("/page")
+ @Operation(summary = "获得物料回收率分页")
+ @PreAuthorize("@ss.hasPermission('base:material-destroy:query')")
+ public CommonResult> getMaterialDestroyPage(@Valid MaterialDestroyPageReqVO pageReqVO) {
+ PageResult pageResult = materialDestroyService.getMaterialDestroyPage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, MaterialDestroyRespVO.class));
+ }
+
+ @GetMapping("/export-excel")
+ @Operation(summary = "导出物料回收率 Excel")
+ @PreAuthorize("@ss.hasPermission('base:material-destroy:export')")
+ @ApiAccessLog(operateType = EXPORT)
+ public void exportMaterialDestroyExcel(@Valid MaterialDestroyPageReqVO pageReqVO,
+ HttpServletResponse response) throws IOException {
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+ List list = materialDestroyService.getMaterialDestroyPage(pageReqVO).getList();
+ // 导出 Excel
+ ExcelUtils.write(response, "物料回收率.xls", "数据", MaterialDestroyRespVO.class,
+ BeanUtils.toBean(list, MaterialDestroyRespVO.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/base/MaterialInfomationController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/MaterialInfomationController.java
new file mode 100644
index 0000000..06fd42a
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/MaterialInfomationController.java
@@ -0,0 +1,107 @@
+package com.zt.plat.module.base.controller.admin.base;
+
+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.base.vo.*;
+import com.zt.plat.module.base.dal.dataobject.base.MaterialInfomationDO;
+import com.zt.plat.module.base.service.base.MaterialInfomationService;
+
+@Tag(name = "管理后台 - 物料信息")
+@RestController
+@RequestMapping("/base/material-infomation")
+@Validated
+public class MaterialInfomationController {
+
+
+ @Resource
+ private MaterialInfomationService materialInfomationService;
+
+ @PostMapping("/create")
+ @Operation(summary = "创建物料信息")
+ @PreAuthorize("@ss.hasPermission('base:material-infomation:create')")
+ public CommonResult createMaterialInfomation(@Valid @RequestBody MaterialInfomationSaveReqVO createReqVO) {
+ return success(materialInfomationService.createMaterialInfomation(createReqVO));
+ }
+
+ @PutMapping("/update")
+ @Operation(summary = "更新物料信息")
+ @PreAuthorize("@ss.hasPermission('base:material-infomation:update')")
+ public CommonResult updateMaterialInfomation(@Valid @RequestBody MaterialInfomationSaveReqVO updateReqVO) {
+ materialInfomationService.updateMaterialInfomation(updateReqVO);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete")
+ @Operation(summary = "删除物料信息")
+ @Parameter(name = "id", description = "编号", required = true)
+ @PreAuthorize("@ss.hasPermission('base:material-infomation:delete')")
+ public CommonResult deleteMaterialInfomation(@RequestParam("id") Long id) {
+ materialInfomationService.deleteMaterialInfomation(id);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete-list")
+ @Parameter(name = "ids", description = "编号", required = true)
+ @Operation(summary = "批量删除物料信息")
+ @PreAuthorize("@ss.hasPermission('base:material-infomation:delete')")
+ public CommonResult deleteMaterialInfomationList(@RequestBody BatchDeleteReqVO req) {
+ materialInfomationService.deleteMaterialInfomationListByIds(req.getIds());
+ return success(true);
+ }
+
+ @GetMapping("/get")
+ @Operation(summary = "获得物料信息")
+ @Parameter(name = "id", description = "编号", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('base:material-infomation:query')")
+ public CommonResult getMaterialInfomation(@RequestParam("id") Long id) {
+ MaterialInfomationDO materialInfomation = materialInfomationService.getMaterialInfomation(id);
+ return success(BeanUtils.toBean(materialInfomation, MaterialInfomationRespVO.class));
+ }
+
+ @GetMapping("/page")
+ @Operation(summary = "获得物料信息分页")
+ @PreAuthorize("@ss.hasPermission('base:material-infomation:query')")
+ public CommonResult> getMaterialInfomationPage(@Valid MaterialInfomationPageReqVO pageReqVO) {
+ PageResult pageResult = materialInfomationService.getMaterialInfomationPage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, MaterialInfomationRespVO.class));
+ }
+
+ @GetMapping("/export-excel")
+ @Operation(summary = "导出物料信息 Excel")
+ @PreAuthorize("@ss.hasPermission('base:material-infomation:export')")
+ @ApiAccessLog(operateType = EXPORT)
+ public void exportMaterialInfomationExcel(@Valid MaterialInfomationPageReqVO pageReqVO,
+ HttpServletResponse response) throws IOException {
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+ List list = materialInfomationService.getMaterialInfomationPage(pageReqVO).getList();
+ // 导出 Excel
+ ExcelUtils.write(response, "物料信息.xls", "数据", MaterialInfomationRespVO.class,
+ BeanUtils.toBean(list, MaterialInfomationRespVO.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/base/MaterialOtherController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/MaterialOtherController.java
new file mode 100644
index 0000000..bc37e3b
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/MaterialOtherController.java
@@ -0,0 +1,107 @@
+package com.zt.plat.module.base.controller.admin.base;
+
+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.base.vo.*;
+import com.zt.plat.module.base.dal.dataobject.base.MaterialOtherDO;
+import com.zt.plat.module.base.service.base.MaterialOtherService;
+
+@Tag(name = "管理后台 - 物料拓展数据")
+@RestController
+@RequestMapping("/base/material-other")
+@Validated
+public class MaterialOtherController {
+
+
+ @Resource
+ private MaterialOtherService materialOtherService;
+
+ @PostMapping("/create")
+ @Operation(summary = "创建物料拓展数据")
+ @PreAuthorize("@ss.hasPermission('base:material-other:create')")
+ public CommonResult createMaterialOther(@Valid @RequestBody MaterialOtherSaveReqVO createReqVO) {
+ return success(materialOtherService.createMaterialOther(createReqVO));
+ }
+
+ @PutMapping("/update")
+ @Operation(summary = "更新物料拓展数据")
+ @PreAuthorize("@ss.hasPermission('base:material-other:update')")
+ public CommonResult updateMaterialOther(@Valid @RequestBody MaterialOtherSaveReqVO updateReqVO) {
+ materialOtherService.updateMaterialOther(updateReqVO);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete")
+ @Operation(summary = "删除物料拓展数据")
+ @Parameter(name = "id", description = "编号", required = true)
+ @PreAuthorize("@ss.hasPermission('base:material-other:delete')")
+ public CommonResult deleteMaterialOther(@RequestParam("id") Long id) {
+ materialOtherService.deleteMaterialOther(id);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete-list")
+ @Parameter(name = "ids", description = "编号", required = true)
+ @Operation(summary = "批量删除物料拓展数据")
+ @PreAuthorize("@ss.hasPermission('base:material-other:delete')")
+ public CommonResult deleteMaterialOtherList(@RequestBody BatchDeleteReqVO req) {
+ materialOtherService.deleteMaterialOtherListByIds(req.getIds());
+ return success(true);
+ }
+
+ @GetMapping("/get")
+ @Operation(summary = "获得物料拓展数据")
+ @Parameter(name = "id", description = "编号", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('base:material-other:query')")
+ public CommonResult getMaterialOther(@RequestParam("id") Long id) {
+ MaterialOtherDO materialOther = materialOtherService.getMaterialOther(id);
+ return success(BeanUtils.toBean(materialOther, MaterialOtherRespVO.class));
+ }
+
+ @GetMapping("/page")
+ @Operation(summary = "获得物料拓展数据分页")
+ @PreAuthorize("@ss.hasPermission('base:material-other:query')")
+ public CommonResult> getMaterialOtherPage(@Valid MaterialOtherPageReqVO pageReqVO) {
+ PageResult pageResult = materialOtherService.getMaterialOtherPage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, MaterialOtherRespVO.class));
+ }
+
+ @GetMapping("/export-excel")
+ @Operation(summary = "导出物料拓展数据 Excel")
+ @PreAuthorize("@ss.hasPermission('base:material-other:export')")
+ @ApiAccessLog(operateType = EXPORT)
+ public void exportMaterialOtherExcel(@Valid MaterialOtherPageReqVO pageReqVO,
+ HttpServletResponse response) throws IOException {
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+ List list = materialOtherService.getMaterialOtherPage(pageReqVO).getList();
+ // 导出 Excel
+ ExcelUtils.write(response, "物料拓展数据.xls", "数据", MaterialOtherRespVO.class,
+ BeanUtils.toBean(list, MaterialOtherRespVO.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/base/WarehouseController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/WarehouseController.java
new file mode 100644
index 0000000..aa658b2
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/WarehouseController.java
@@ -0,0 +1,107 @@
+package com.zt.plat.module.base.controller.admin.base;
+
+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.base.vo.*;
+import com.zt.plat.module.base.dal.dataobject.base.WarehouseDO;
+import com.zt.plat.module.base.service.base.WarehouseService;
+
+@Tag(name = "管理后台 - 仓库")
+@RestController
+@RequestMapping("/base/warehouse")
+@Validated
+public class WarehouseController {
+
+
+ @Resource
+ private WarehouseService warehouseService;
+
+ @PostMapping("/create")
+ @Operation(summary = "创建仓库")
+ @PreAuthorize("@ss.hasPermission('base:warehouse:create')")
+ public CommonResult createWarehouse(@Valid @RequestBody WarehouseSaveReqVO createReqVO) {
+ return success(warehouseService.createWarehouse(createReqVO));
+ }
+
+ @PutMapping("/update")
+ @Operation(summary = "更新仓库")
+ @PreAuthorize("@ss.hasPermission('base:warehouse:update')")
+ public CommonResult updateWarehouse(@Valid @RequestBody WarehouseSaveReqVO updateReqVO) {
+ warehouseService.updateWarehouse(updateReqVO);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete")
+ @Operation(summary = "删除仓库")
+ @Parameter(name = "id", description = "编号", required = true)
+ @PreAuthorize("@ss.hasPermission('base:warehouse:delete')")
+ public CommonResult deleteWarehouse(@RequestParam("id") Long id) {
+ warehouseService.deleteWarehouse(id);
+ return success(true);
+ }
+
+ @DeleteMapping("/delete-list")
+ @Parameter(name = "ids", description = "编号", required = true)
+ @Operation(summary = "批量删除仓库")
+ @PreAuthorize("@ss.hasPermission('base:warehouse:delete')")
+ public CommonResult deleteWarehouseList(@RequestBody BatchDeleteReqVO req) {
+ warehouseService.deleteWarehouseListByIds(req.getIds());
+ return success(true);
+ }
+
+ @GetMapping("/get")
+ @Operation(summary = "获得仓库")
+ @Parameter(name = "id", description = "编号", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('base:warehouse:query')")
+ public CommonResult getWarehouse(@RequestParam("id") Long id) {
+ WarehouseDO warehouse = warehouseService.getWarehouse(id);
+ return success(BeanUtils.toBean(warehouse, WarehouseRespVO.class));
+ }
+
+ @GetMapping("/page")
+ @Operation(summary = "获得仓库分页")
+ @PreAuthorize("@ss.hasPermission('base:warehouse:query')")
+ public CommonResult> getWarehousePage(@Valid WarehousePageReqVO pageReqVO) {
+ PageResult pageResult = warehouseService.getWarehousePage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, WarehouseRespVO.class));
+ }
+
+ @GetMapping("/export-excel")
+ @Operation(summary = "导出仓库 Excel")
+ @PreAuthorize("@ss.hasPermission('base:warehouse:export')")
+ @ApiAccessLog(operateType = EXPORT)
+ public void exportWarehouseExcel(@Valid WarehousePageReqVO pageReqVO,
+ HttpServletResponse response) throws IOException {
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+ List list = warehouseService.getWarehousePage(pageReqVO).getList();
+ // 导出 Excel
+ ExcelUtils.write(response, "仓库.xls", "数据", WarehouseRespVO.class,
+ BeanUtils.toBean(list, WarehouseRespVO.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/base/vo/AccountPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/AccountPageReqVO.java
new file mode 100644
index 0000000..4b3e86f
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/AccountPageReqVO.java
@@ -0,0 +1,35 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import com.zt.plat.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+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 AccountPageReqVO extends PageParam {
+
+ @Schema(description = "类型", example = "2")
+ private String type;
+
+ @Schema(description = "户名", example = "赵六")
+ private String accountName;
+
+ @Schema(description = "开户行", example = "2834")
+ private String bankAccount;
+
+ @Schema(description = "户号")
+ private String accountNumber;
+
+ @Schema(description = "税号/社会信用代码")
+ private String taxNumber;
+
+ @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/base/vo/AccountRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/AccountRespVO.java
new file mode 100644
index 0000000..0304659
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/AccountRespVO.java
@@ -0,0 +1,43 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 账户条款 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class AccountRespVO {
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "15166")
+ @ExcelProperty("主键")
+ private Long id;
+
+ @Schema(description = "类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+ @ExcelProperty("类型")
+ private String type;
+
+ @Schema(description = "户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
+ @ExcelProperty("户名")
+ private String accountName;
+
+ @Schema(description = "开户行", requiredMode = Schema.RequiredMode.REQUIRED, example = "2834")
+ @ExcelProperty("开户行")
+ private String bankAccount;
+
+ @Schema(description = "户号", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("户号")
+ private String accountNumber;
+
+ @Schema(description = "税号/社会信用代码", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("税号/社会信用代码")
+ private String taxNumber;
+
+ @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/base/vo/AccountSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/AccountSaveReqVO.java
new file mode 100644
index 0000000..a580f27
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/AccountSaveReqVO.java
@@ -0,0 +1,34 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotEmpty;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 账户条款新增/修改 Request VO")
+@Data
+public class AccountSaveReqVO {
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "15166")
+ private Long id;
+
+ @Schema(description = "类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+ @NotEmpty(message = "类型不能为空")
+ private String type;
+
+ @Schema(description = "户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
+ @NotEmpty(message = "户名不能为空")
+ private String accountName;
+
+ @Schema(description = "开户行", requiredMode = Schema.RequiredMode.REQUIRED, example = "2834")
+ @NotEmpty(message = "开户行不能为空")
+ private String bankAccount;
+
+ @Schema(description = "户号", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "户号不能为空")
+ private String accountNumber;
+
+ @Schema(description = "税号/社会信用代码", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "税号/社会信用代码不能为空")
+ private String taxNumber;
+
+}
\ 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/base/vo/CompanyRelativityPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/CompanyRelativityPageReqVO.java
new file mode 100644
index 0000000..89e23cc
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/CompanyRelativityPageReqVO.java
@@ -0,0 +1,32 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import com.zt.plat.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+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 CompanyRelativityPageReqVO extends PageParam {
+
+ @Schema(description = "ERP公司编码;一个供应链公司,可以关联多个ERP公司")
+ private String erpNumber;
+
+ @Schema(description = "供应链公司编码")
+ private String number;
+
+ @Schema(description = "创建时间")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime[] createTime;
+
+ @Schema(description = "负责人")
+ private String manager;
+
+ @Schema(description = "部门来源")
+ private String departmentSource;
+
+}
\ 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/base/vo/CompanyRelativityRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/CompanyRelativityRespVO.java
new file mode 100644
index 0000000..ceb2dee
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/CompanyRelativityRespVO.java
@@ -0,0 +1,31 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 公司关系 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class CompanyRelativityRespVO {
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "12011")
+ @ExcelProperty("主键")
+ private Long id;
+
+ @Schema(description = "ERP公司编码;一个供应链公司,可以关联多个ERP公司", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("ERP公司编码;一个供应链公司,可以关联多个ERP公司")
+ private String erpNumber;
+
+ @Schema(description = "供应链公司编码", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("供应链公司编码")
+ private String number;
+
+ @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/base/vo/CompanyRelativitySaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/CompanyRelativitySaveReqVO.java
new file mode 100644
index 0000000..b5993da
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/CompanyRelativitySaveReqVO.java
@@ -0,0 +1,40 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotEmpty;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 公司关系新增/修改 Request VO")
+@Data
+public class CompanyRelativitySaveReqVO {
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "12011")
+ private Long id;
+
+ @Schema(description = "ERP公司编码;一个供应链公司,可以关联多个ERP公司", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "ERP公司编码;一个供应链公司,可以关联多个ERP公司不能为空")
+ private String erpNumber;
+
+ @Schema(description = "供应链公司编码", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "供应链公司编码不能为空")
+ private String number;
+
+ @Schema(description = "供应链公司编号", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "供应链公司编号不能为空")
+ private Long companyId;
+
+ @Schema(description = "供应链公司名称", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "供应链公司名称不能为空")
+ private String companyName;
+
+ @Schema(description = "供应链部门编号", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "供应链部门名称不能为空")
+ private Long deptId;
+
+ @Schema(description = "供应链部门名称", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "供应链部门名称不能为空")
+ private String deptName;
+
+
+}
\ 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/base/vo/ContactPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/ContactPageReqVO.java
new file mode 100644
index 0000000..1871043
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/ContactPageReqVO.java
@@ -0,0 +1,38 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import com.zt.plat.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+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 ContactPageReqVO extends PageParam {
+
+ @Schema(description = "类型甲方/乙方", example = "2")
+ private String type;
+
+ @Schema(description = "联系人")
+ private String contact;
+
+ @Schema(description = "电话")
+ private String tel;
+
+ @Schema(description = "邮箱")
+ private String email;
+
+ @Schema(description = "传真")
+ private String fax;
+
+ @Schema(description = "联系地址")
+ private String address;
+
+ @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/base/vo/ContactRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/ContactRespVO.java
new file mode 100644
index 0000000..190a241
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/ContactRespVO.java
@@ -0,0 +1,47 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 联系人信息 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class ContactRespVO {
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "27121")
+ @ExcelProperty("主键")
+ private Long id;
+
+ @Schema(description = "类型甲方/乙方", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+ @ExcelProperty("类型甲方/乙方")
+ private String type;
+
+ @Schema(description = "联系人", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("联系人")
+ private String contact;
+
+ @Schema(description = "电话", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("电话")
+ private String tel;
+
+ @Schema(description = "邮箱")
+ @ExcelProperty("邮箱")
+ private String email;
+
+ @Schema(description = "传真")
+ @ExcelProperty("传真")
+ private String fax;
+
+ @Schema(description = "联系地址", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("联系地址")
+ private String address;
+
+ @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/base/vo/ContactSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/ContactSaveReqVO.java
new file mode 100644
index 0000000..7dc6fa8
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/ContactSaveReqVO.java
@@ -0,0 +1,36 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotEmpty;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 联系人信息新增/修改 Request VO")
+@Data
+public class ContactSaveReqVO {
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "27121")
+ private Long id;
+
+ @Schema(description = "类型甲方/乙方", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+ @NotEmpty(message = "类型甲方/乙方不能为空")
+ private String type;
+
+ @Schema(description = "联系人", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "联系人不能为空")
+ private String contact;
+
+ @Schema(description = "电话", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "电话不能为空")
+ private String tel;
+
+ @Schema(description = "邮箱")
+ private String email;
+
+ @Schema(description = "传真")
+ private String fax;
+
+ @Schema(description = "联系地址", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "联系地址不能为空")
+ private String address;
+
+}
\ 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/base/vo/ElementPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/ElementPageReqVO.java
new file mode 100644
index 0000000..a93ea20
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/ElementPageReqVO.java
@@ -0,0 +1,32 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import com.zt.plat.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+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 ElementPageReqVO extends PageParam {
+
+ @Schema(description = "金属元素缩写")
+ private String abbreviation;
+
+ @Schema(description = "金属元素名称", example = "芋艿")
+ private String name;
+
+ @Schema(description = "金属元素编码")
+ private String coding;
+
+ @Schema(description = "品位单位")
+ private String gradeUnit;
+
+ @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/base/vo/ElementRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/ElementRespVO.java
new file mode 100644
index 0000000..9f7c0fe
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/ElementRespVO.java
@@ -0,0 +1,39 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 金属元素 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class ElementRespVO {
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "21884")
+ @ExcelProperty("主键")
+ private Long id;
+
+ @Schema(description = "金属元素缩写", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("金属元素缩写")
+ private String abbreviation;
+
+ @Schema(description = "金属元素名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
+ @ExcelProperty("金属元素名称")
+ private String name;
+
+ @Schema(description = "金属元素编码", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("金属元素编码")
+ private String coding;
+
+ @Schema(description = "品位单位", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("品位单位")
+ private String gradeUnit;
+
+ @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/base/vo/ElementSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/ElementSaveReqVO.java
new file mode 100644
index 0000000..eafee0c
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/ElementSaveReqVO.java
@@ -0,0 +1,30 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotEmpty;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 金属元素新增/修改 Request VO")
+@Data
+public class ElementSaveReqVO {
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "21884")
+ private Long id;
+
+ @Schema(description = "金属元素缩写", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "金属元素缩写不能为空")
+ private String abbreviation;
+
+ @Schema(description = "金属元素名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
+ @NotEmpty(message = "金属元素名称不能为空")
+ private String name;
+
+ @Schema(description = "金属元素编码", requiredMode = Schema.RequiredMode.REQUIRED)
+// @NotEmpty(message = "金属元素编码不能为空")
+ private String coding;
+
+ @Schema(description = "品位单位", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "品位单位不能为空")
+ private String gradeUnit;
+
+}
\ 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/base/vo/FactoryPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/FactoryPageReqVO.java
new file mode 100644
index 0000000..b1ec876
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/FactoryPageReqVO.java
@@ -0,0 +1,38 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import com.zt.plat.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+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 FactoryPageReqVO extends PageParam {
+
+ @Schema(description = "公司编码")
+ private String companyNumber;
+
+ @Schema(description = "工厂名称", example = "赵六")
+ private String name;
+
+ @Schema(description = "工厂编码")
+ private String number;
+
+ @Schema(description = "创建时间")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime[] createTime;
+
+ @Schema(description = "是否启用")
+ private String isEnable;
+
+ @Schema(description = "ERP工厂名称", example = "张三")
+ private String erpName;
+
+ @Schema(description = "ERP工厂编码")
+ private String erpNumber;
+
+}
\ 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/base/vo/FactoryRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/FactoryRespVO.java
new file mode 100644
index 0000000..4777ca6
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/FactoryRespVO.java
@@ -0,0 +1,47 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 工厂 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class FactoryRespVO {
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "10325")
+ @ExcelProperty("主键")
+ private Long id;
+
+ @Schema(description = "公司编码")
+ @ExcelProperty("公司编码")
+ private String companyNumber;
+
+ @Schema(description = "工厂名称", example = "赵六")
+ @ExcelProperty("工厂名称")
+ private String name;
+
+ @Schema(description = "工厂编码")
+ @ExcelProperty("工厂编码")
+ private String number;
+
+ @Schema(description = "创建时间")
+ @ExcelProperty("创建时间")
+ private LocalDateTime createTime;
+
+ @Schema(description = "是否启用")
+ @ExcelProperty("是否启用")
+ private String isEnable;
+
+ @Schema(description = "ERP工厂名称", example = "张三")
+ @ExcelProperty("ERP工厂名称")
+ private String erpName;
+
+ @Schema(description = "ERP工厂编码")
+ @ExcelProperty("ERP工厂编码")
+ private String erpNumber;
+
+}
\ 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/base/vo/FactorySaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/FactorySaveReqVO.java
new file mode 100644
index 0000000..df8598f
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/FactorySaveReqVO.java
@@ -0,0 +1,31 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 工厂新增/修改 Request VO")
+@Data
+public class FactorySaveReqVO {
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "10325")
+ private Long id;
+
+ @Schema(description = "公司编码")
+ private String companyNumber;
+
+ @Schema(description = "工厂名称", example = "赵六")
+ private String name;
+
+ @Schema(description = "工厂编码")
+ private String number;
+
+ @Schema(description = "是否启用")
+ private String isEnable;
+
+ @Schema(description = "ERP工厂名称", example = "张三")
+ private String erpName;
+
+ @Schema(description = "ERP工厂编码")
+ private String erpNumber;
+
+}
\ 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/base/vo/MaterialDestroyPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialDestroyPageReqVO.java
new file mode 100644
index 0000000..795c029
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialDestroyPageReqVO.java
@@ -0,0 +1,42 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import com.zt.plat.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+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 MaterialDestroyPageReqVO extends PageParam {
+
+ @Schema(description = "原料物料编码")
+ private String upNumber;
+
+ @Schema(description = "返产品物料编码")
+ private String downNumber;
+
+ @Schema(description = "回收率")
+ private BigDecimal ratio;
+
+ @Schema(description = "是否使用该物料核销")
+ private String operation;
+
+ @Schema(description = "创建时间")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime[] createTime;
+
+ @Schema(description = "供应商编码")
+ private String supplierNumber;
+
+ @Schema(description = "供应商名称", example = "王五")
+ private String supplierName;
+
+ @Schema(description = "是否启用")
+ private String isEnable;
+
+}
\ 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/base/vo/MaterialDestroyRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialDestroyRespVO.java
new file mode 100644
index 0000000..cee3798
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialDestroyRespVO.java
@@ -0,0 +1,52 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 物料回收率 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class MaterialDestroyRespVO {
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "23885")
+ @ExcelProperty("主键")
+ private Long id;
+
+ @Schema(description = "原料物料编码", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("原料物料编码")
+ private String upNumber;
+
+ @Schema(description = "返产品物料编码", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("返产品物料编码")
+ private String downNumber;
+
+ @Schema(description = "回收率", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("回收率")
+ private BigDecimal ratio;
+
+ @Schema(description = "是否使用该物料核销")
+ @ExcelProperty("是否使用该物料核销")
+ private String operation;
+
+ @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("创建时间")
+ private LocalDateTime createTime;
+
+ @Schema(description = "供应商编码", requiredMode = Schema.RequiredMode.REQUIRED)
+ @ExcelProperty("供应商编码")
+ private String supplierNumber;
+
+ @Schema(description = "供应商名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
+ @ExcelProperty("供应商名称")
+ private String supplierName;
+
+ @Schema(description = "是否启用")
+ @ExcelProperty("是否启用")
+ private String isEnable;
+
+}
\ 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/base/vo/MaterialDestroySaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialDestroySaveReqVO.java
new file mode 100644
index 0000000..85faf99
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialDestroySaveReqVO.java
@@ -0,0 +1,43 @@
+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;
+
+import java.math.BigDecimal;
+
+@Schema(description = "管理后台 - 物料回收率新增/修改 Request VO")
+@Data
+public class MaterialDestroySaveReqVO {
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "23885")
+ private Long id;
+
+ @Schema(description = "原料物料编码", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "原料物料编码不能为空")
+ private String upNumber;
+
+ @Schema(description = "返产品物料编码", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "返产品物料编码不能为空")
+ private String downNumber;
+
+ @Schema(description = "回收率", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotNull(message = "回收率不能为空")
+ private BigDecimal ratio;
+
+ @Schema(description = "是否使用该物料核销")
+ private String operation;
+
+ @Schema(description = "供应商编码", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "供应商编码不能为空")
+ private String supplierNumber;
+
+ @Schema(description = "供应商名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
+ @NotEmpty(message = "供应商名称不能为空")
+ private String supplierName;
+
+ @Schema(description = "是否启用")
+ private String isEnable;
+
+}
\ 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/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
new file mode 100644
index 0000000..5e1fe2b
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialInfomationPageReqVO.java
@@ -0,0 +1,29 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import com.zt.plat.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+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 MaterialInfomationPageReqVO extends PageParam {
+
+ @Schema(description = "物料编码")
+ private String code;
+
+ @Schema(description = "物料名称", example = "张三")
+ private String name;
+
+ @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/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
new file mode 100644
index 0000000..47237be
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialInfomationRespVO.java
@@ -0,0 +1,35 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 物料信息 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class MaterialInfomationRespVO {
+
+ @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "3326")
+ @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 = "备注", 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/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
new file mode 100644
index 0000000..80d5cbe
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialInfomationSaveReqVO.java
@@ -0,0 +1,26 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotEmpty;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 物料信息新增/修改 Request VO")
+@Data
+public class MaterialInfomationSaveReqVO {
+
+ @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "3326")
+ 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 = "备注", 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/base/vo/MaterialOtherPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialOtherPageReqVO.java
new file mode 100644
index 0000000..73e49a5
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialOtherPageReqVO.java
@@ -0,0 +1,53 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import com.zt.plat.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+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 MaterialOtherPageReqVO extends PageParam {
+
+ @Schema(description = "物料编码")
+ private String materialNumber;
+
+ @Schema(description = "物料名称", example = "王五")
+ private String materialName;
+
+ @Schema(description = "ERP物料编码")
+ private String erpMaterialNumber;
+
+ @Schema(description = "ERP物料名称", example = "李四")
+ private String erpMaterialName;
+
+ @Schema(description = "ERP物料计量单位")
+ private String unit;
+
+ @Schema(description = "金属元素缩写")
+ private String abbreviation;
+
+ @Schema(description = "金属元素名称", example = "赵六")
+ private String name;
+
+ @Schema(description = "金属元素编码")
+ private String coding;
+
+ @Schema(description = "品位单位")
+ private String gradeUnit;
+
+ @Schema(description = "创建时间")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime[] createTime;
+
+ @Schema(description = "小数位数")
+ private Long decimal;
+
+ @Schema(description = "是否启用")
+ private String isEnable;
+
+}
\ 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/base/vo/MaterialOtherRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialOtherRespVO.java
new file mode 100644
index 0000000..ec43586
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialOtherRespVO.java
@@ -0,0 +1,67 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 物料拓展数据 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class MaterialOtherRespVO {
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "27804")
+ @ExcelProperty("主键")
+ private Long id;
+
+ @Schema(description = "物料编码")
+ @ExcelProperty("物料编码")
+ private String materialNumber;
+
+ @Schema(description = "物料名称", example = "王五")
+ @ExcelProperty("物料名称")
+ private String materialName;
+
+ @Schema(description = "ERP物料编码")
+ @ExcelProperty("ERP物料编码")
+ private String erpMaterialNumber;
+
+ @Schema(description = "ERP物料名称", example = "李四")
+ @ExcelProperty("ERP物料名称")
+ private String erpMaterialName;
+
+ @Schema(description = "ERP物料计量单位")
+ @ExcelProperty("ERP物料计量单位")
+ private String unit;
+
+ @Schema(description = "金属元素缩写")
+ @ExcelProperty("金属元素缩写")
+ private String abbreviation;
+
+ @Schema(description = "金属元素名称", example = "赵六")
+ @ExcelProperty("金属元素名称")
+ private String name;
+
+ @Schema(description = "金属元素编码")
+ @ExcelProperty("金属元素编码")
+ private String coding;
+
+ @Schema(description = "品位单位")
+ @ExcelProperty("品位单位")
+ private String gradeUnit;
+
+ @Schema(description = "创建时间")
+ @ExcelProperty("创建时间")
+ private LocalDateTime createTime;
+
+ @Schema(description = "小数位数")
+ @ExcelProperty("小数位数")
+ private Long decimal;
+
+ @Schema(description = "是否启用")
+ @ExcelProperty("是否启用")
+ private String isEnable;
+
+}
\ 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/base/vo/MaterialOtherSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialOtherSaveReqVO.java
new file mode 100644
index 0000000..3c86e30
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/MaterialOtherSaveReqVO.java
@@ -0,0 +1,46 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 物料拓展数据新增/修改 Request VO")
+@Data
+public class MaterialOtherSaveReqVO {
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "27804")
+ private Long id;
+
+ @Schema(description = "物料编码")
+ private String materialNumber;
+
+ @Schema(description = "物料名称", example = "王五")
+ private String materialName;
+
+ @Schema(description = "ERP物料编码")
+ private String erpMaterialNumber;
+
+ @Schema(description = "ERP物料名称", example = "李四")
+ private String erpMaterialName;
+
+ @Schema(description = "ERP物料计量单位")
+ private String unit;
+
+ @Schema(description = "金属元素缩写")
+ private String abbreviation;
+
+ @Schema(description = "金属元素名称", example = "赵六")
+ private String name;
+
+ @Schema(description = "金属元素编码")
+ private String coding;
+
+ @Schema(description = "品位单位")
+ private String gradeUnit;
+
+ @Schema(description = "小数位数")
+ private Long decimal;
+
+ @Schema(description = "是否启用")
+ private String isEnable;
+
+}
\ 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/base/vo/WarehousePageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/WarehousePageReqVO.java
new file mode 100644
index 0000000..2d3d802
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/WarehousePageReqVO.java
@@ -0,0 +1,44 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import com.zt.plat.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+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 WarehousePageReqVO extends PageParam {
+
+ @Schema(description = "工厂编码")
+ private String factoryNumber;
+
+ @Schema(description = "仓库名称", example = "李四")
+ private String name;
+
+ @Schema(description = "仓库编码")
+ private String coding;
+
+ @Schema(description = "创建时间")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime[] createTime;
+
+ @Schema(description = "工厂名称", example = "李四")
+ private String factoryName;
+
+ @Schema(description = "是否启用")
+ private String isEnable;
+
+ @Schema(description = "公司编码")
+ private String companyNumber;
+
+ @Schema(description = "ERP库位编码")
+ private String erpCoding;
+
+ @Schema(description = "ERP库位名称", example = "赵六")
+ private String erpName;
+
+}
\ 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/base/vo/WarehouseRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/WarehouseRespVO.java
new file mode 100644
index 0000000..bf2852b
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/WarehouseRespVO.java
@@ -0,0 +1,55 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 仓库 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class WarehouseRespVO {
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "18014")
+ @ExcelProperty("主键")
+ private Long id;
+
+ @Schema(description = "工厂编码")
+ @ExcelProperty("工厂编码")
+ private String factoryNumber;
+
+ @Schema(description = "仓库名称", example = "李四")
+ @ExcelProperty("仓库名称")
+ private String name;
+
+ @Schema(description = "仓库编码")
+ @ExcelProperty("仓库编码")
+ private String coding;
+
+ @Schema(description = "创建时间")
+ @ExcelProperty("创建时间")
+ private LocalDateTime createTime;
+
+ @Schema(description = "工厂名称", example = "李四")
+ @ExcelProperty("工厂名称")
+ private String factoryName;
+
+ @Schema(description = "是否启用")
+ @ExcelProperty("是否启用")
+ private String isEnable;
+
+ @Schema(description = "公司编码")
+ @ExcelProperty("公司编码")
+ private String companyNumber;
+
+ @Schema(description = "ERP库位编码")
+ @ExcelProperty("ERP库位编码")
+ private String erpCoding;
+
+ @Schema(description = "ERP库位名称", example = "赵六")
+ @ExcelProperty("ERP库位名称")
+ private String erpName;
+
+}
\ 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/base/vo/WarehouseSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/WarehouseSaveReqVO.java
new file mode 100644
index 0000000..482b0b9
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/WarehouseSaveReqVO.java
@@ -0,0 +1,37 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 仓库新增/修改 Request VO")
+@Data
+public class WarehouseSaveReqVO {
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "18014")
+ private Long id;
+
+ @Schema(description = "工厂编码")
+ private String factoryNumber;
+
+ @Schema(description = "仓库名称", example = "李四")
+ private String name;
+
+ @Schema(description = "仓库编码")
+ private String coding;
+
+ @Schema(description = "工厂名称", example = "李四")
+ private String factoryName;
+
+ @Schema(description = "是否启用")
+ private String isEnable;
+
+ @Schema(description = "公司编码")
+ private String companyNumber;
+
+ @Schema(description = "ERP库位编码")
+ private String erpCoding;
+
+ @Schema(description = "ERP库位名称", example = "赵六")
+ private String erpName;
+
+}
\ 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/templtp/TemplateInstanceController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TemplateInstanceController.java
index fdd827e..f0c765d 100644
--- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TemplateInstanceController.java
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TemplateInstanceController.java
@@ -1,12 +1,11 @@
package com.zt.plat.module.base.controller.admin.templtp;
-import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstancePageReqVO;
-import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceRespVO;
-import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceSaveReqVO;
+import com.zt.plat.module.base.controller.admin.templtp.vo.*;
import com.zt.plat.module.base.dal.dataobject.tmpltp.TemplateInstanceDO;
import com.zt.plat.module.base.service.tmpltp.TemplateInstanceService;
import com.zt.plat.module.infra.api.file.FileApi;
+import jakarta.validation.constraints.NotEmpty;
import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@@ -21,6 +20,7 @@ import io.swagger.v3.oas.annotations.Operation;
import jakarta.validation.*;
import jakarta.servlet.http.*;
+
import java.util.*;
import java.io.IOException;
@@ -29,6 +29,7 @@ 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;
@@ -39,7 +40,6 @@ import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
-
@Tag(name = "管理后台 - 模板实例")
@RestController
@RequestMapping("/base/template-instance")
@@ -50,28 +50,14 @@ public class TemplateInstanceController extends AbstractFileUploadController {
static {
FileUploadController annotation = TemplateInstanceController.class.getAnnotation(FileUploadController.class);
if (annotation != null) {
- setFileUploadInfo(annotation);
+ setFileUploadInfo(annotation);
}
}
@Resource
private TemplateInstanceService templateInstanceService;
- @Resource
- private FileApi fileApi;
-// @PostMapping("/upload-file")
-// @Operation(summary = "上传模板实例文件")
-// public CommonResult