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-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..76fb9d5
--- /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,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.AccountDO;
+import com.zt.plat.module.base.service.base.AccountService;
+
+@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/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..1dbad74
--- /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,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.ContactDO;
+import com.zt.plat.module.base.service.base.ContactService;
+
+@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..4c10393
--- /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,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.ElementDO;
+import com.zt.plat.module.base.service.base.ElementService;
+
+@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..50b2574
--- /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,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.FactoryDO;
+import com.zt.plat.module.base.service.base.FactoryService;
+
+@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..15199d2
--- /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 lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import com.zt.plat.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 账户条款分页 Request VO")
+@Data
+public class 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..66cb756
--- /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 io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 账户条款 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class 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..0476816
--- /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,35 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import jakarta.validation.constraints.*;
+
+@Schema(description = "管理后台 - 账户条款新增/修改 Request VO")
+@Data
+public class 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..5e4fb09
--- /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,26 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import com.zt.plat.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 公司关系分页 Request VO")
+@Data
+public class 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;
+
+}
\ 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..f39717f
--- /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 io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 公司关系 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class 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..b16ef8b
--- /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,23 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import jakarta.validation.constraints.*;
+
+@Schema(description = "管理后台 - 公司关系新增/修改 Request VO")
+@Data
+public class 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;
+
+}
\ 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..2e25628
--- /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 lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import com.zt.plat.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 联系人信息分页 Request VO")
+@Data
+public class 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..524aa34
--- /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 io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 联系人信息 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class 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..bc528ae
--- /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,37 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import jakarta.validation.constraints.*;
+
+@Schema(description = "管理后台 - 联系人信息新增/修改 Request VO")
+@Data
+public class 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..ab3a385
--- /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 lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import com.zt.plat.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 金属元素分页 Request VO")
+@Data
+public class 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..9077646
--- /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 io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 金属元素 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class 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..8e77de4
--- /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,31 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import jakarta.validation.constraints.*;
+
+@Schema(description = "管理后台 - 金属元素新增/修改 Request VO")
+@Data
+public class 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..b43576e
--- /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 lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import com.zt.plat.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 工厂分页 Request VO")
+@Data
+public class 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..ada9f85
--- /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 io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 工厂 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class 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..9db5ea5
--- /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,33 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import jakarta.validation.constraints.*;
+
+@Schema(description = "管理后台 - 工厂新增/修改 Request VO")
+@Data
+public class 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..7de00e5
--- /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 lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import com.zt.plat.framework.common.pojo.PageParam;
+import java.math.BigDecimal;
+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 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..db48411
--- /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 io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import java.math.BigDecimal;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@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..7681a25
--- /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,42 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import jakarta.validation.constraints.*;
+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..96c7a2b
--- /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 lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import com.zt.plat.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 物料信息分页 Request VO")
+@Data
+public class 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..459c0f3
--- /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 io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 物料信息 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class 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..fb9652b
--- /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,27 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import jakarta.validation.constraints.*;
+
+@Schema(description = "管理后台 - 物料信息新增/修改 Request VO")
+@Data
+public class 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..3c184ee
--- /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 lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import com.zt.plat.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 物料拓展数据分页 Request VO")
+@Data
+public class 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..9013b87
--- /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 io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 物料拓展数据 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class 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..da9a748
--- /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,48 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import jakarta.validation.constraints.*;
+
+@Schema(description = "管理后台 - 物料拓展数据新增/修改 Request VO")
+@Data
+public class 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..66b0135
--- /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 lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import com.zt.plat.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 仓库分页 Request VO")
+@Data
+public class 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..a28b845
--- /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 io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 仓库 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class 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..66c8450
--- /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,39 @@
+package com.zt.plat.module.base.controller.admin.base.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import jakarta.validation.constraints.*;
+
+@Schema(description = "管理后台 - 仓库新增/修改 Request VO")
+@Data
+public class 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/dal/dataobject/base/AccountDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/AccountDO.java
new file mode 100644
index 0000000..c0d91f2
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/AccountDO.java
@@ -0,0 +1,95 @@
+package com.zt.plat.module.base.dal.dataobject.base;
+
+import lombok.*;
+import java.util.*;
+ import java.time.LocalDateTime;
+ import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
+/**
+* 账户条款 DO
+*
+* @author 后台管理
+*/
+@TableName("sply_acct")
+@KeySequence("sply_acct_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+/**
+* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO
+*/
+public class AccountDO extends BaseDO {
+
+
+
+ /**
+ * 主键
+ */
+ @TableId(type = IdType.ASSIGN_ID)
+ private Long id;
+ /**
+ * 类型
+ */
+ @TableField("TP")
+ private String type;
+ /**
+ * 户名
+ */
+ @TableField("ACCT_NAME")
+ private String accountName;
+ /**
+ * 开户行
+ */
+ @TableField("BNK_ACCT")
+ private String bankAccount;
+ /**
+ * 户号
+ */
+ @TableField("ACCT_NUM")
+ private String accountNumber;
+ /**
+ * 税号/社会信用代码
+ */
+ @TableField("TAX_NUM")
+ private String taxNumber;
+ /**
+ * 公司编号
+ */
+ @TableField("COMPANY_ID")
+ private Long companyId;
+ /**
+ * 公司名称
+ */
+ @TableField("COMPANY_NAME")
+ private String companyName;
+ /**
+ * 部门编号
+ */
+ @TableField("DEPT_ID")
+ private Long deptId;
+ /**
+ * 部门名称
+ */
+ @TableField("DEPT_NAME")
+ private String deptName;
+ /**
+ * 岗位编号
+ */
+ @TableField("POST_ID")
+ private Long postId;
+ /**
+ * 创建人名称
+ */
+ @TableField("CREATOR_NAME")
+ private String creatorName;
+ /**
+ * 更新人名称
+ */
+ @TableField("UPDATER_NAME")
+ private String updaterName;
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/CompanyRelativityDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/CompanyRelativityDO.java
new file mode 100644
index 0000000..a6005a4
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/CompanyRelativityDO.java
@@ -0,0 +1,80 @@
+package com.zt.plat.module.base.dal.dataobject.base;
+
+import lombok.*;
+import java.util.*;
+ import java.time.LocalDateTime;
+ import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
+/**
+* 公司关系 DO
+*
+* @author 后台管理
+*/
+@TableName("sply_cpn_rel")
+@KeySequence("sply_cpn_rel_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+/**
+* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO
+*/
+public class CompanyRelativityDO extends BaseDO {
+
+
+
+ /**
+ * 主键
+ */
+ @TableId(type = IdType.ASSIGN_ID)
+ private Long id;
+ /**
+ * ERP公司编码;一个供应链公司,可以关联多个ERP公司
+ */
+ @TableField("ERP_NUM")
+ private String erpNumber;
+ /**
+ * 供应链公司编码
+ */
+ @TableField("NUM")
+ private String number;
+ /**
+ * 公司编号
+ */
+ @TableField("COMPANY_ID")
+ private Long companyId;
+ /**
+ * 公司名称
+ */
+ @TableField("COMPANY_NAME")
+ private String companyName;
+ /**
+ * 部门编号
+ */
+ @TableField("DEPT_ID")
+ private Long deptId;
+ /**
+ * 部门名称
+ */
+ @TableField("DEPT_NAME")
+ private String deptName;
+ /**
+ * 岗位编号
+ */
+ @TableField("POST_ID")
+ private Long postId;
+ /**
+ * 创建人名称
+ */
+ @TableField("CREATOR_NAME")
+ private String creatorName;
+ /**
+ * 更新人名称
+ */
+ @TableField("UPDATER_NAME")
+ private String updaterName;
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/ContactDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/ContactDO.java
new file mode 100644
index 0000000..06f33c1
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/ContactDO.java
@@ -0,0 +1,100 @@
+package com.zt.plat.module.base.dal.dataobject.base;
+
+import lombok.*;
+import java.util.*;
+ import java.time.LocalDateTime;
+ import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
+/**
+* 联系人信息 DO
+*
+* @author 后台管理
+*/
+@TableName("sply_ctct")
+@KeySequence("sply_ctct_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+/**
+* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO
+*/
+public class ContactDO extends BaseDO {
+
+
+
+ /**
+ * 主键
+ */
+ @TableId(type = IdType.ASSIGN_ID)
+ private Long id;
+ /**
+ * 类型甲方/乙方
+ */
+ @TableField("TP")
+ private String type;
+ /**
+ * 联系人
+ */
+ @TableField("CTCT")
+ private String contact;
+ /**
+ * 电话
+ */
+ @TableField("TEL")
+ private String tel;
+ /**
+ * 邮箱
+ */
+ @TableField("EM")
+ private String email;
+ /**
+ * 传真
+ */
+ @TableField("FAX")
+ private String fax;
+ /**
+ * 联系地址
+ */
+ @TableField("ADR")
+ private String address;
+ /**
+ * 公司编号
+ */
+ @TableField("COMPANY_ID")
+ private Long companyId;
+ /**
+ * 公司名称
+ */
+ @TableField("COMPANY_NAME")
+ private String companyName;
+ /**
+ * 部门编号
+ */
+ @TableField("DEPT_ID")
+ private Long deptId;
+ /**
+ * 部门名称
+ */
+ @TableField("DEPT_NAME")
+ private String deptName;
+ /**
+ * 岗位编号
+ */
+ @TableField("POST_ID")
+ private Long postId;
+ /**
+ * 创建人名称
+ */
+ @TableField("CREATOR_NAME")
+ private String creatorName;
+ /**
+ * 更新人名称
+ */
+ @TableField("UPDATER_NAME")
+ private String updaterName;
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/ElementDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/ElementDO.java
new file mode 100644
index 0000000..2fd3d2e
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/ElementDO.java
@@ -0,0 +1,90 @@
+package com.zt.plat.module.base.dal.dataobject.base;
+
+import lombok.*;
+import java.util.*;
+ import java.time.LocalDateTime;
+ import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
+/**
+* 金属元素 DO
+*
+* @author 后台管理
+*/
+@TableName("sply_elem")
+@KeySequence("sply_elem_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+/**
+* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO
+*/
+public class ElementDO extends BaseDO {
+
+
+
+ /**
+ * 主键
+ */
+ @TableId(type = IdType.ASSIGN_ID)
+ private Long id;
+ /**
+ * 金属元素缩写
+ */
+ @TableField("ABBR")
+ private String abbreviation;
+ /**
+ * 金属元素名称
+ */
+ @TableField("NAME")
+ private String name;
+ /**
+ * 金属元素编码
+ */
+ @TableField("CDG")
+ private String coding;
+ /**
+ * 品位单位
+ */
+ @TableField("GRD_UNT")
+ private String gradeUnit;
+ /**
+ * 公司编号
+ */
+ @TableField("COMPANY_ID")
+ private Long companyId;
+ /**
+ * 公司名称
+ */
+ @TableField("COMPANY_NAME")
+ private String companyName;
+ /**
+ * 部门编号
+ */
+ @TableField("DEPT_ID")
+ private Long deptId;
+ /**
+ * 部门名称
+ */
+ @TableField("DEPT_NAME")
+ private String deptName;
+ /**
+ * 岗位编号
+ */
+ @TableField("POST_ID")
+ private Long postId;
+ /**
+ * 创建人名称
+ */
+ @TableField("CREATOR_NAME")
+ private String creatorName;
+ /**
+ * 更新人名称
+ */
+ @TableField("UPDATER_NAME")
+ private String updaterName;
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/FactoryDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/FactoryDO.java
new file mode 100644
index 0000000..ec2b647
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/FactoryDO.java
@@ -0,0 +1,100 @@
+package com.zt.plat.module.base.dal.dataobject.base;
+
+import lombok.*;
+import java.util.*;
+ import java.time.LocalDateTime;
+ import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
+/**
+* 工厂 DO
+*
+* @author 后台管理
+*/
+@TableName("sply_fact")
+@KeySequence("sply_fact_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+/**
+* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO
+*/
+public class FactoryDO extends BaseDO {
+
+
+
+ /**
+ * 主键
+ */
+ @TableId(type = IdType.ASSIGN_ID)
+ private Long id;
+ /**
+ * 公司编码
+ */
+ @TableField("CPN_NUM")
+ private String companyNumber;
+ /**
+ * 工厂名称
+ */
+ @TableField("NAME")
+ private String name;
+ /**
+ * 工厂编码
+ */
+ @TableField("NUM")
+ private String number;
+ /**
+ * 公司编号
+ */
+ @TableField("COMPANY_ID")
+ private Long companyId;
+ /**
+ * 公司名称
+ */
+ @TableField("COMPANY_NAME")
+ private String companyName;
+ /**
+ * 部门编号
+ */
+ @TableField("DEPT_ID")
+ private Long deptId;
+ /**
+ * 部门名称
+ */
+ @TableField("DEPT_NAME")
+ private String deptName;
+ /**
+ * 岗位编号
+ */
+ @TableField("POST_ID")
+ private Long postId;
+ /**
+ * 创建人名称
+ */
+ @TableField("CREATOR_NAME")
+ private String creatorName;
+ /**
+ * 更新人名称
+ */
+ @TableField("UPDATER_NAME")
+ private String updaterName;
+ /**
+ * 是否启用
+ */
+ @TableField("IS_ENB")
+ private String isEnable;
+ /**
+ * ERP工厂名称
+ */
+ @TableField("ERP_NAME")
+ private String erpName;
+ /**
+ * ERP工厂编码
+ */
+ @TableField("ERP_NUM")
+ 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/dal/dataobject/base/MaterialDestroyDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/MaterialDestroyDO.java
new file mode 100644
index 0000000..d3ec78d
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/MaterialDestroyDO.java
@@ -0,0 +1,106 @@
+package com.zt.plat.module.base.dal.dataobject.base;
+
+import lombok.*;
+import java.util.*;
+ import java.math.BigDecimal;
+ import java.time.LocalDateTime;
+ import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
+/**
+* 物料回收率 DO
+*
+* @author 后台管理
+*/
+@TableName("sply_mtrl_dstr")
+@KeySequence("sply_mtrl_dstr_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+/**
+* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO
+*/
+public class MaterialDestroyDO extends BaseDO {
+
+
+
+ /**
+ * 主键
+ */
+ @TableId(type = IdType.ASSIGN_ID)
+ private Long id;
+ /**
+ * 原料物料编码
+ */
+ @TableField("UP_NUM")
+ private String upNumber;
+ /**
+ * 返产品物料编码
+ */
+ @TableField("DOWN_NUM")
+ private String downNumber;
+ /**
+ * 回收率
+ */
+ @TableField("RTIO")
+ private BigDecimal ratio;
+ /**
+ * 是否使用该物料核销
+ */
+ @TableField("OPTN")
+ private String operation;
+ /**
+ * 公司编号
+ */
+ @TableField("COMPANY_ID")
+ private Long companyId;
+ /**
+ * 公司名称
+ */
+ @TableField("COMPANY_NAME")
+ private String companyName;
+ /**
+ * 部门编号
+ */
+ @TableField("DEPT_ID")
+ private Long deptId;
+ /**
+ * 部门名称
+ */
+ @TableField("DEPT_NAME")
+ private String deptName;
+ /**
+ * 岗位编号
+ */
+ @TableField("POST_ID")
+ private Long postId;
+ /**
+ * 创建人名称
+ */
+ @TableField("CREATOR_NAME")
+ private String creatorName;
+ /**
+ * 更新人名称
+ */
+ @TableField("UPDATER_NAME")
+ private String updaterName;
+ /**
+ * 供应商编码
+ */
+ @TableField("SPLR_NUM")
+ private String supplierNumber;
+ /**
+ * 供应商名称
+ */
+ @TableField("SPLR_NAME")
+ private String supplierName;
+ /**
+ * 是否启用
+ */
+ @TableField("IS_ENB")
+ 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/dal/dataobject/base/MaterialInfomationDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/MaterialInfomationDO.java
new file mode 100644
index 0000000..c5020b0
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/MaterialInfomationDO.java
@@ -0,0 +1,50 @@
+package com.zt.plat.module.base.dal.dataobject.base;
+
+import lombok.*;
+import java.util.*;
+ import java.time.LocalDateTime;
+ import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
+/**
+* 物料信息 DO
+*
+* @author 后台管理
+*/
+@TableName("bse_mtrl_inf")
+@KeySequence("bse_mtrl_inf_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+/**
+* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO
+*/
+public class MaterialInfomationDO extends BaseDO {
+
+
+
+ /**
+ * 主键ID
+ */
+ @TableId(type = IdType.ASSIGN_ID)
+ private Long id;
+ /**
+ * 物料编码
+ */
+ @TableField("CD")
+ private String code;
+ /**
+ * 物料名称
+ */
+ @TableField("NAME")
+ private String name;
+ /**
+ * 备注
+ */
+ @TableField("RMK")
+ private String remark;
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/MaterialOtherDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/MaterialOtherDO.java
new file mode 100644
index 0000000..8e989d8
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/MaterialOtherDO.java
@@ -0,0 +1,125 @@
+package com.zt.plat.module.base.dal.dataobject.base;
+
+import lombok.*;
+import java.util.*;
+ import java.time.LocalDateTime;
+ import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
+/**
+* 物料拓展数据 DO
+*
+* @author 后台管理
+*/
+@TableName("sply_mtrl_oth")
+@KeySequence("sply_mtrl_oth_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+/**
+* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO
+*/
+public class MaterialOtherDO extends BaseDO {
+
+
+
+ /**
+ * 主键
+ */
+ @TableId(type = IdType.ASSIGN_ID)
+ private Long id;
+ /**
+ * 物料编码
+ */
+ @TableField("MTRL_NUM")
+ private String materialNumber;
+ /**
+ * 物料名称
+ */
+ @TableField("MTRL_NAME")
+ private String materialName;
+ /**
+ * ERP物料编码
+ */
+ @TableField("ERP_MTRL_NUM")
+ private String erpMaterialNumber;
+ /**
+ * ERP物料名称
+ */
+ @TableField("ERP_MTRL_NAME")
+ private String erpMaterialName;
+ /**
+ * ERP物料计量单位
+ */
+ @TableField("UNT")
+ private String unit;
+ /**
+ * 金属元素缩写
+ */
+ @TableField("ABBR")
+ private String abbreviation;
+ /**
+ * 金属元素名称
+ */
+ @TableField("NAME")
+ private String name;
+ /**
+ * 金属元素编码
+ */
+ @TableField("CDG")
+ private String coding;
+ /**
+ * 品位单位
+ */
+ @TableField("GRD_UNT")
+ private String gradeUnit;
+ /**
+ * 公司编号
+ */
+ @TableField("COMPANY_ID")
+ private Long companyId;
+ /**
+ * 公司名称
+ */
+ @TableField("COMPANY_NAME")
+ private String companyName;
+ /**
+ * 部门编号
+ */
+ @TableField("DEPT_ID")
+ private Long deptId;
+ /**
+ * 部门名称
+ */
+ @TableField("DEPT_NAME")
+ private String deptName;
+ /**
+ * 岗位编号
+ */
+ @TableField("POST_ID")
+ private Long postId;
+ /**
+ * 小数位数
+ */
+ @TableField("DEC")
+ private Long decimal;
+ /**
+ * 创建人名称
+ */
+ @TableField("CREATOR_NAME")
+ private String creatorName;
+ /**
+ * 更新人名称
+ */
+ @TableField("UPDATER_NAME")
+ private String updaterName;
+ /**
+ * 是否启用
+ */
+ @TableField("IS_ENB")
+ 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/dal/dataobject/base/WarehouseDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/WarehouseDO.java
new file mode 100644
index 0000000..3a2d06d
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/WarehouseDO.java
@@ -0,0 +1,110 @@
+package com.zt.plat.module.base.dal.dataobject.base;
+
+import lombok.*;
+import java.util.*;
+ import java.time.LocalDateTime;
+ import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
+/**
+* 仓库 DO
+*
+* @author 后台管理
+*/
+@TableName("sply_wrh")
+@KeySequence("sply_wrh_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+/**
+* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO
+*/
+public class WarehouseDO extends BaseDO {
+
+
+
+ /**
+ * 主键
+ */
+ @TableId(type = IdType.ASSIGN_ID)
+ private Long id;
+ /**
+ * 工厂编码
+ */
+ @TableField("FACT_NUM")
+ private String factoryNumber;
+ /**
+ * 仓库名称
+ */
+ @TableField("NAME")
+ private String name;
+ /**
+ * 仓库编码
+ */
+ @TableField("CDG")
+ private String coding;
+ /**
+ * 公司编号
+ */
+ @TableField("COMPANY_ID")
+ private Long companyId;
+ /**
+ * 公司名称
+ */
+ @TableField("COMPANY_NAME")
+ private String companyName;
+ /**
+ * 部门编号
+ */
+ @TableField("DEPT_ID")
+ private Long deptId;
+ /**
+ * 部门名称
+ */
+ @TableField("DEPT_NAME")
+ private String deptName;
+ /**
+ * 岗位编号
+ */
+ @TableField("POST_ID")
+ private Long postId;
+ /**
+ * 创建人名称
+ */
+ @TableField("CREATOR_NAME")
+ private String creatorName;
+ /**
+ * 更新人名称
+ */
+ @TableField("UPDATER_NAME")
+ private String updaterName;
+ /**
+ * 工厂名称
+ */
+ @TableField("FACT_NAME")
+ private String factoryName;
+ /**
+ * 是否启用
+ */
+ @TableField("IS_ENB")
+ private String isEnable;
+ /**
+ * 公司编码
+ */
+ @TableField("CPN_NUM")
+ private String companyNumber;
+ /**
+ * ERP库位编码
+ */
+ @TableField("ERP_CDG")
+ private String erpCoding;
+ /**
+ * ERP库位名称
+ */
+ @TableField("ERP_NAME")
+ 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/dal/mysql/base/AccountMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/AccountMapper.java
new file mode 100644
index 0000000..50db2ed
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/AccountMapper.java
@@ -0,0 +1,30 @@
+package com.zt.plat.module.base.dal.mysql.base;
+
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
+import com.zt.plat.module.base.controller.admin.base.vo.AccountPageReqVO;
+import com.zt.plat.module.base.dal.dataobject.base.AccountDO;
+import org.apache.ibatis.annotations.Mapper;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+
+/**
+ * 账户条款 Mapper
+ *
+ * @author 后台管理
+ */
+@Mapper
+public interface AccountMapper extends BaseMapperX {
+
+ default PageResult selectPage(AccountPageReqVO reqVO) {
+ return selectPage(reqVO, new LambdaQueryWrapperX()
+ .eqIfPresent(AccountDO::getType, reqVO.getType())
+ .likeIfPresent(AccountDO::getAccountName, reqVO.getAccountName())
+ .eqIfPresent(AccountDO::getBankAccount, reqVO.getBankAccount())
+ .eqIfPresent(AccountDO::getAccountNumber, reqVO.getAccountNumber())
+ .eqIfPresent(AccountDO::getTaxNumber, reqVO.getTaxNumber())
+ .betweenIfPresent(AccountDO::getCreateTime, reqVO.getCreateTime())
+ .orderByDesc(AccountDO::getId));
+ }
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/CompanyRelativityMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/CompanyRelativityMapper.java
new file mode 100644
index 0000000..6fa79ca
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/CompanyRelativityMapper.java
@@ -0,0 +1,28 @@
+package com.zt.plat.module.base.dal.mysql.base;
+
+import java.util.*;
+
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
+import com.zt.plat.module.base.dal.dataobject.base.CompanyRelativityDO;
+import org.apache.ibatis.annotations.Mapper;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+
+/**
+ * 公司关系 Mapper
+ *
+ * @author 后台管理
+ */
+@Mapper
+public interface CompanyRelativityMapper extends BaseMapperX {
+
+ default PageResult selectPage(CompanyRelativityPageReqVO reqVO) {
+ return selectPage(reqVO, new LambdaQueryWrapperX()
+ .eqIfPresent(CompanyRelativityDO::getErpNumber, reqVO.getErpNumber())
+ .eqIfPresent(CompanyRelativityDO::getNumber, reqVO.getNumber())
+ .betweenIfPresent(CompanyRelativityDO::getCreateTime, reqVO.getCreateTime())
+ .orderByDesc(CompanyRelativityDO::getId));
+ }
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/ContactMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/ContactMapper.java
new file mode 100644
index 0000000..c066c68
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/ContactMapper.java
@@ -0,0 +1,32 @@
+package com.zt.plat.module.base.dal.mysql.base;
+
+import java.util.*;
+
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
+import com.zt.plat.module.base.dal.dataobject.base.ContactDO;
+import org.apache.ibatis.annotations.Mapper;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+
+/**
+ * 联系人信息 Mapper
+ *
+ * @author 后台管理
+ */
+@Mapper
+public interface ContactMapper extends BaseMapperX {
+
+ default PageResult selectPage(ContactPageReqVO reqVO) {
+ return selectPage(reqVO, new LambdaQueryWrapperX()
+ .eqIfPresent(ContactDO::getType, reqVO.getType())
+ .eqIfPresent(ContactDO::getContact, reqVO.getContact())
+ .eqIfPresent(ContactDO::getTel, reqVO.getTel())
+ .eqIfPresent(ContactDO::getEmail, reqVO.getEmail())
+ .eqIfPresent(ContactDO::getFax, reqVO.getFax())
+ .eqIfPresent(ContactDO::getAddress, reqVO.getAddress())
+ .betweenIfPresent(ContactDO::getCreateTime, reqVO.getCreateTime())
+ .orderByDesc(ContactDO::getId));
+ }
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/ElementMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/ElementMapper.java
new file mode 100644
index 0000000..6bc3c84
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/ElementMapper.java
@@ -0,0 +1,30 @@
+package com.zt.plat.module.base.dal.mysql.base;
+
+import java.util.*;
+
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
+import com.zt.plat.module.base.dal.dataobject.base.ElementDO;
+import org.apache.ibatis.annotations.Mapper;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+
+/**
+ * 金属元素 Mapper
+ *
+ * @author 后台管理
+ */
+@Mapper
+public interface ElementMapper extends BaseMapperX {
+
+ default PageResult selectPage(ElementPageReqVO reqVO) {
+ return selectPage(reqVO, new LambdaQueryWrapperX()
+ .eqIfPresent(ElementDO::getAbbreviation, reqVO.getAbbreviation())
+ .likeIfPresent(ElementDO::getName, reqVO.getName())
+ .eqIfPresent(ElementDO::getCoding, reqVO.getCoding())
+ .eqIfPresent(ElementDO::getGradeUnit, reqVO.getGradeUnit())
+ .betweenIfPresent(ElementDO::getCreateTime, reqVO.getCreateTime())
+ .orderByDesc(ElementDO::getId));
+ }
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/FactoryMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/FactoryMapper.java
new file mode 100644
index 0000000..df20a22
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/FactoryMapper.java
@@ -0,0 +1,32 @@
+package com.zt.plat.module.base.dal.mysql.base;
+
+import java.util.*;
+
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
+import com.zt.plat.module.base.dal.dataobject.base.FactoryDO;
+import org.apache.ibatis.annotations.Mapper;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+
+/**
+ * 工厂 Mapper
+ *
+ * @author 后台管理
+ */
+@Mapper
+public interface FactoryMapper extends BaseMapperX {
+
+ default PageResult selectPage(FactoryPageReqVO reqVO) {
+ return selectPage(reqVO, new LambdaQueryWrapperX()
+ .eqIfPresent(FactoryDO::getCompanyNumber, reqVO.getCompanyNumber())
+ .likeIfPresent(FactoryDO::getName, reqVO.getName())
+ .eqIfPresent(FactoryDO::getNumber, reqVO.getNumber())
+ .betweenIfPresent(FactoryDO::getCreateTime, reqVO.getCreateTime())
+ .eqIfPresent(FactoryDO::getIsEnable, reqVO.getIsEnable())
+ .likeIfPresent(FactoryDO::getErpName, reqVO.getErpName())
+ .eqIfPresent(FactoryDO::getErpNumber, reqVO.getErpNumber())
+ .orderByDesc(FactoryDO::getId));
+ }
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/MaterialDestroyMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/MaterialDestroyMapper.java
new file mode 100644
index 0000000..32cbde8
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/MaterialDestroyMapper.java
@@ -0,0 +1,33 @@
+package com.zt.plat.module.base.dal.mysql.base;
+
+import java.util.*;
+
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
+import com.zt.plat.module.base.dal.dataobject.base.MaterialDestroyDO;
+import org.apache.ibatis.annotations.Mapper;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+
+/**
+ * 物料回收率 Mapper
+ *
+ * @author 后台管理
+ */
+@Mapper
+public interface MaterialDestroyMapper extends BaseMapperX {
+
+ default PageResult selectPage(MaterialDestroyPageReqVO reqVO) {
+ return selectPage(reqVO, new LambdaQueryWrapperX()
+ .eqIfPresent(MaterialDestroyDO::getUpNumber, reqVO.getUpNumber())
+ .eqIfPresent(MaterialDestroyDO::getDownNumber, reqVO.getDownNumber())
+ .eqIfPresent(MaterialDestroyDO::getRatio, reqVO.getRatio())
+ .eqIfPresent(MaterialDestroyDO::getOperation, reqVO.getOperation())
+ .betweenIfPresent(MaterialDestroyDO::getCreateTime, reqVO.getCreateTime())
+ .eqIfPresent(MaterialDestroyDO::getSupplierNumber, reqVO.getSupplierNumber())
+ .likeIfPresent(MaterialDestroyDO::getSupplierName, reqVO.getSupplierName())
+ .eqIfPresent(MaterialDestroyDO::getIsEnable, reqVO.getIsEnable())
+ .orderByDesc(MaterialDestroyDO::getId));
+ }
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/MaterialInfomationMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/MaterialInfomationMapper.java
new file mode 100644
index 0000000..ad304cd
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/MaterialInfomationMapper.java
@@ -0,0 +1,29 @@
+package com.zt.plat.module.base.dal.mysql.base;
+
+import java.util.*;
+
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
+import com.zt.plat.module.base.dal.dataobject.base.MaterialInfomationDO;
+import org.apache.ibatis.annotations.Mapper;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+
+/**
+ * 物料信息 Mapper
+ *
+ * @author 后台管理
+ */
+@Mapper
+public interface MaterialInfomationMapper extends BaseMapperX {
+
+ default PageResult selectPage(MaterialInfomationPageReqVO reqVO) {
+ return selectPage(reqVO, new LambdaQueryWrapperX()
+ .eqIfPresent(MaterialInfomationDO::getCode, reqVO.getCode())
+ .likeIfPresent(MaterialInfomationDO::getName, reqVO.getName())
+ .eqIfPresent(MaterialInfomationDO::getRemark, reqVO.getRemark())
+ .betweenIfPresent(MaterialInfomationDO::getCreateTime, reqVO.getCreateTime())
+ .orderByDesc(MaterialInfomationDO::getId));
+ }
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/MaterialOtherMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/MaterialOtherMapper.java
new file mode 100644
index 0000000..ee264bf
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/MaterialOtherMapper.java
@@ -0,0 +1,37 @@
+package com.zt.plat.module.base.dal.mysql.base;
+
+import java.util.*;
+
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
+import com.zt.plat.module.base.dal.dataobject.base.MaterialOtherDO;
+import org.apache.ibatis.annotations.Mapper;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+
+/**
+ * 物料拓展数据 Mapper
+ *
+ * @author 后台管理
+ */
+@Mapper
+public interface MaterialOtherMapper extends BaseMapperX {
+
+ default PageResult selectPage(MaterialOtherPageReqVO reqVO) {
+ return selectPage(reqVO, new LambdaQueryWrapperX()
+ .eqIfPresent(MaterialOtherDO::getMaterialNumber, reqVO.getMaterialNumber())
+ .likeIfPresent(MaterialOtherDO::getMaterialName, reqVO.getMaterialName())
+ .eqIfPresent(MaterialOtherDO::getErpMaterialNumber, reqVO.getErpMaterialNumber())
+ .likeIfPresent(MaterialOtherDO::getErpMaterialName, reqVO.getErpMaterialName())
+ .eqIfPresent(MaterialOtherDO::getUnit, reqVO.getUnit())
+ .eqIfPresent(MaterialOtherDO::getAbbreviation, reqVO.getAbbreviation())
+ .likeIfPresent(MaterialOtherDO::getName, reqVO.getName())
+ .eqIfPresent(MaterialOtherDO::getCoding, reqVO.getCoding())
+ .eqIfPresent(MaterialOtherDO::getGradeUnit, reqVO.getGradeUnit())
+ .betweenIfPresent(MaterialOtherDO::getCreateTime, reqVO.getCreateTime())
+ .eqIfPresent(MaterialOtherDO::getDecimal, reqVO.getDecimal())
+ .eqIfPresent(MaterialOtherDO::getIsEnable, reqVO.getIsEnable())
+ .orderByDesc(MaterialOtherDO::getId));
+ }
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/WarehouseMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/WarehouseMapper.java
new file mode 100644
index 0000000..3ffa4a5
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/WarehouseMapper.java
@@ -0,0 +1,34 @@
+package com.zt.plat.module.base.dal.mysql.base;
+
+import java.util.*;
+
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
+import com.zt.plat.module.base.dal.dataobject.base.WarehouseDO;
+import org.apache.ibatis.annotations.Mapper;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+
+/**
+ * 仓库 Mapper
+ *
+ * @author 后台管理
+ */
+@Mapper
+public interface WarehouseMapper extends BaseMapperX {
+
+ default PageResult selectPage(WarehousePageReqVO reqVO) {
+ return selectPage(reqVO, new LambdaQueryWrapperX()
+ .eqIfPresent(WarehouseDO::getFactoryNumber, reqVO.getFactoryNumber())
+ .likeIfPresent(WarehouseDO::getName, reqVO.getName())
+ .eqIfPresent(WarehouseDO::getCoding, reqVO.getCoding())
+ .betweenIfPresent(WarehouseDO::getCreateTime, reqVO.getCreateTime())
+ .likeIfPresent(WarehouseDO::getFactoryName, reqVO.getFactoryName())
+ .eqIfPresent(WarehouseDO::getIsEnable, reqVO.getIsEnable())
+ .eqIfPresent(WarehouseDO::getCompanyNumber, reqVO.getCompanyNumber())
+ .eqIfPresent(WarehouseDO::getErpCoding, reqVO.getErpCoding())
+ .likeIfPresent(WarehouseDO::getErpName, reqVO.getErpName())
+ .orderByDesc(WarehouseDO::getId));
+ }
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/AccountService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/AccountService.java
new file mode 100644
index 0000000..6512a07
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/AccountService.java
@@ -0,0 +1,62 @@
+package com.zt.plat.module.base.service.base;
+
+import java.util.*;
+import jakarta.validation.*;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+import com.zt.plat.module.base.dal.dataobject.base.AccountDO;
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.common.pojo.PageParam;
+
+/**
+ * 账户条款 Service 接口
+ *
+ * @author 后台管理
+ */
+public interface AccountService {
+
+ /**
+ * 创建账户条款
+ *
+ * @param createReqVO 创建信息
+ * @return 编号
+ */
+ AccountRespVO createAccount(@Valid AccountSaveReqVO createReqVO);
+
+ /**
+ * 更新账户条款
+ *
+ * @param updateReqVO 更新信息
+ */
+ void updateAccount(@Valid AccountSaveReqVO updateReqVO);
+
+ /**
+ * 删除账户条款
+ *
+ * @param id 编号
+ */
+ void deleteAccount(Long id);
+
+ /**
+ * 批量删除账户条款
+ *
+ * @param ids 编号
+ */
+ void deleteAccountListByIds(List ids);
+
+ /**
+ * 获得账户条款
+ *
+ * @param id 编号
+ * @return 账户条款
+ */
+ AccountDO getAccount(Long id);
+
+ /**
+ * 获得账户条款分页
+ *
+ * @param pageReqVO 分页查询
+ * @return 账户条款分页
+ */
+ PageResult getAccountPage(AccountPageReqVO pageReqVO);
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/AccountServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/AccountServiceImpl.java
new file mode 100644
index 0000000..07aa42e
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/AccountServiceImpl.java
@@ -0,0 +1,92 @@
+package com.zt.plat.module.base.service.base;
+
+import cn.hutool.core.collection.CollUtil;
+import org.springframework.stereotype.Service;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+import com.zt.plat.module.base.dal.dataobject.base.AccountDO;
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.common.pojo.PageParam;
+import com.zt.plat.framework.common.util.object.BeanUtils;
+
+import com.zt.plat.module.base.dal.mysql.base.AccountMapper;
+
+import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList;
+import static com.zt.plat.framework.common.util.collection.CollectionUtils.diffList;
+import static com.zt.plat.module.base.enums.ErrorCodeConstants.*;
+
+/**
+ * 账户条款 Service 实现类
+ *
+ * @author 后台管理
+ */
+@Service
+@Validated
+public class AccountServiceImpl implements AccountService {
+
+ @Resource
+ private AccountMapper accountMapper;
+
+ @Override
+ public AccountRespVO createAccount(AccountSaveReqVO createReqVO) {
+ // 插入
+ AccountDO account = BeanUtils.toBean(createReqVO, AccountDO.class);
+ accountMapper.insert(account);
+ // 返回
+ return BeanUtils.toBean(account, AccountRespVO.class);
+ }
+
+ @Override
+ public void updateAccount(AccountSaveReqVO updateReqVO) {
+ // 校验存在
+ validateAccountExists(updateReqVO.getId());
+ // 更新
+ AccountDO updateObj = BeanUtils.toBean(updateReqVO, AccountDO.class);
+ accountMapper.updateById(updateObj);
+ }
+
+ @Override
+ public void deleteAccount(Long id) {
+ // 校验存在
+ validateAccountExists(id);
+ // 删除
+ accountMapper.deleteById(id);
+ }
+
+ @Override
+ public void deleteAccountListByIds(List ids) {
+ // 校验存在
+ validateAccountExists(ids);
+ // 删除
+ accountMapper.deleteByIds(ids);
+ }
+
+ private void validateAccountExists(List ids) {
+ List list = accountMapper.selectByIds(ids);
+ if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
+ throw exception(ACCOUNT_NOT_EXISTS);
+ }
+ }
+
+ private void validateAccountExists(Long id) {
+ if (accountMapper.selectById(id) == null) {
+ throw exception(ACCOUNT_NOT_EXISTS);
+ }
+ }
+
+ @Override
+ public AccountDO getAccount(Long id) {
+ return accountMapper.selectById(id);
+ }
+
+ @Override
+ public PageResult getAccountPage(AccountPageReqVO pageReqVO) {
+ return accountMapper.selectPage(pageReqVO);
+ }
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/CompanyRelativityService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/CompanyRelativityService.java
new file mode 100644
index 0000000..715e9bb
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/CompanyRelativityService.java
@@ -0,0 +1,62 @@
+package com.zt.plat.module.base.service.base;
+
+import java.util.*;
+import jakarta.validation.*;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+import com.zt.plat.module.base.dal.dataobject.base.CompanyRelativityDO;
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.common.pojo.PageParam;
+
+/**
+ * 公司关系 Service 接口
+ *
+ * @author 后台管理
+ */
+public interface CompanyRelativityService {
+
+ /**
+ * 创建公司关系
+ *
+ * @param createReqVO 创建信息
+ * @return 编号
+ */
+ CompanyRelativityRespVO createCompanyRelativity(@Valid CompanyRelativitySaveReqVO createReqVO);
+
+ /**
+ * 更新公司关系
+ *
+ * @param updateReqVO 更新信息
+ */
+ void updateCompanyRelativity(@Valid CompanyRelativitySaveReqVO updateReqVO);
+
+ /**
+ * 删除公司关系
+ *
+ * @param id 编号
+ */
+ void deleteCompanyRelativity(Long id);
+
+ /**
+ * 批量删除公司关系
+ *
+ * @param ids 编号
+ */
+ void deleteCompanyRelativityListByIds(List ids);
+
+ /**
+ * 获得公司关系
+ *
+ * @param id 编号
+ * @return 公司关系
+ */
+ CompanyRelativityDO getCompanyRelativity(Long id);
+
+ /**
+ * 获得公司关系分页
+ *
+ * @param pageReqVO 分页查询
+ * @return 公司关系分页
+ */
+ PageResult getCompanyRelativityPage(CompanyRelativityPageReqVO pageReqVO);
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/CompanyRelativityServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/CompanyRelativityServiceImpl.java
new file mode 100644
index 0000000..0c9e187
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/CompanyRelativityServiceImpl.java
@@ -0,0 +1,92 @@
+package com.zt.plat.module.base.service.base;
+
+import cn.hutool.core.collection.CollUtil;
+import org.springframework.stereotype.Service;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+import com.zt.plat.module.base.dal.dataobject.base.CompanyRelativityDO;
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.common.pojo.PageParam;
+import com.zt.plat.framework.common.util.object.BeanUtils;
+
+import com.zt.plat.module.base.dal.mysql.base.CompanyRelativityMapper;
+
+import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList;
+import static com.zt.plat.framework.common.util.collection.CollectionUtils.diffList;
+import static com.zt.plat.module.base.enums.ErrorCodeConstants.*;
+
+/**
+ * 公司关系 Service 实现类
+ *
+ * @author 后台管理
+ */
+@Service
+@Validated
+public class CompanyRelativityServiceImpl implements CompanyRelativityService {
+
+ @Resource
+ private CompanyRelativityMapper companyRelativityMapper;
+
+ @Override
+ public CompanyRelativityRespVO createCompanyRelativity(CompanyRelativitySaveReqVO createReqVO) {
+ // 插入
+ CompanyRelativityDO companyRelativity = BeanUtils.toBean(createReqVO, CompanyRelativityDO.class);
+ companyRelativityMapper.insert(companyRelativity);
+ // 返回
+ return BeanUtils.toBean(companyRelativity, CompanyRelativityRespVO.class);
+ }
+
+ @Override
+ public void updateCompanyRelativity(CompanyRelativitySaveReqVO updateReqVO) {
+ // 校验存在
+ validateCompanyRelativityExists(updateReqVO.getId());
+ // 更新
+ CompanyRelativityDO updateObj = BeanUtils.toBean(updateReqVO, CompanyRelativityDO.class);
+ companyRelativityMapper.updateById(updateObj);
+ }
+
+ @Override
+ public void deleteCompanyRelativity(Long id) {
+ // 校验存在
+ validateCompanyRelativityExists(id);
+ // 删除
+ companyRelativityMapper.deleteById(id);
+ }
+
+ @Override
+ public void deleteCompanyRelativityListByIds(List ids) {
+ // 校验存在
+ validateCompanyRelativityExists(ids);
+ // 删除
+ companyRelativityMapper.deleteByIds(ids);
+ }
+
+ private void validateCompanyRelativityExists(List ids) {
+ List list = companyRelativityMapper.selectByIds(ids);
+ if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
+ throw exception(COMPANY_RELATIVITY_NOT_EXISTS);
+ }
+ }
+
+ private void validateCompanyRelativityExists(Long id) {
+ if (companyRelativityMapper.selectById(id) == null) {
+ throw exception(COMPANY_RELATIVITY_NOT_EXISTS);
+ }
+ }
+
+ @Override
+ public CompanyRelativityDO getCompanyRelativity(Long id) {
+ return companyRelativityMapper.selectById(id);
+ }
+
+ @Override
+ public PageResult getCompanyRelativityPage(CompanyRelativityPageReqVO pageReqVO) {
+ return companyRelativityMapper.selectPage(pageReqVO);
+ }
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/ContactService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/ContactService.java
new file mode 100644
index 0000000..2882916
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/ContactService.java
@@ -0,0 +1,62 @@
+package com.zt.plat.module.base.service.base;
+
+import java.util.*;
+import jakarta.validation.*;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+import com.zt.plat.module.base.dal.dataobject.base.ContactDO;
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.common.pojo.PageParam;
+
+/**
+ * 联系人信息 Service 接口
+ *
+ * @author 后台管理
+ */
+public interface ContactService {
+
+ /**
+ * 创建联系人信息
+ *
+ * @param createReqVO 创建信息
+ * @return 编号
+ */
+ ContactRespVO createContact(@Valid ContactSaveReqVO createReqVO);
+
+ /**
+ * 更新联系人信息
+ *
+ * @param updateReqVO 更新信息
+ */
+ void updateContact(@Valid ContactSaveReqVO updateReqVO);
+
+ /**
+ * 删除联系人信息
+ *
+ * @param id 编号
+ */
+ void deleteContact(Long id);
+
+ /**
+ * 批量删除联系人信息
+ *
+ * @param ids 编号
+ */
+ void deleteContactListByIds(List ids);
+
+ /**
+ * 获得联系人信息
+ *
+ * @param id 编号
+ * @return 联系人信息
+ */
+ ContactDO getContact(Long id);
+
+ /**
+ * 获得联系人信息分页
+ *
+ * @param pageReqVO 分页查询
+ * @return 联系人信息分页
+ */
+ PageResult getContactPage(ContactPageReqVO pageReqVO);
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/ContactServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/ContactServiceImpl.java
new file mode 100644
index 0000000..3da14d1
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/ContactServiceImpl.java
@@ -0,0 +1,92 @@
+package com.zt.plat.module.base.service.base;
+
+import cn.hutool.core.collection.CollUtil;
+import org.springframework.stereotype.Service;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+import com.zt.plat.module.base.dal.dataobject.base.ContactDO;
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.common.pojo.PageParam;
+import com.zt.plat.framework.common.util.object.BeanUtils;
+
+import com.zt.plat.module.base.dal.mysql.base.ContactMapper;
+
+import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList;
+import static com.zt.plat.framework.common.util.collection.CollectionUtils.diffList;
+import static com.zt.plat.module.base.enums.ErrorCodeConstants.*;
+
+/**
+ * 联系人信息 Service 实现类
+ *
+ * @author 后台管理
+ */
+@Service
+@Validated
+public class ContactServiceImpl implements ContactService {
+
+ @Resource
+ private ContactMapper contactMapper;
+
+ @Override
+ public ContactRespVO createContact(ContactSaveReqVO createReqVO) {
+ // 插入
+ ContactDO contact = BeanUtils.toBean(createReqVO, ContactDO.class);
+ contactMapper.insert(contact);
+ // 返回
+ return BeanUtils.toBean(contact, ContactRespVO.class);
+ }
+
+ @Override
+ public void updateContact(ContactSaveReqVO updateReqVO) {
+ // 校验存在
+ validateContactExists(updateReqVO.getId());
+ // 更新
+ ContactDO updateObj = BeanUtils.toBean(updateReqVO, ContactDO.class);
+ contactMapper.updateById(updateObj);
+ }
+
+ @Override
+ public void deleteContact(Long id) {
+ // 校验存在
+ validateContactExists(id);
+ // 删除
+ contactMapper.deleteById(id);
+ }
+
+ @Override
+ public void deleteContactListByIds(List ids) {
+ // 校验存在
+ validateContactExists(ids);
+ // 删除
+ contactMapper.deleteByIds(ids);
+ }
+
+ private void validateContactExists(List ids) {
+ List list = contactMapper.selectByIds(ids);
+ if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
+ throw exception(CONTACT_NOT_EXISTS);
+ }
+ }
+
+ private void validateContactExists(Long id) {
+ if (contactMapper.selectById(id) == null) {
+ throw exception(CONTACT_NOT_EXISTS);
+ }
+ }
+
+ @Override
+ public ContactDO getContact(Long id) {
+ return contactMapper.selectById(id);
+ }
+
+ @Override
+ public PageResult getContactPage(ContactPageReqVO pageReqVO) {
+ return contactMapper.selectPage(pageReqVO);
+ }
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/ElementService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/ElementService.java
new file mode 100644
index 0000000..d28806e
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/ElementService.java
@@ -0,0 +1,62 @@
+package com.zt.plat.module.base.service.base;
+
+import java.util.*;
+import jakarta.validation.*;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+import com.zt.plat.module.base.dal.dataobject.base.ElementDO;
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.common.pojo.PageParam;
+
+/**
+ * 金属元素 Service 接口
+ *
+ * @author 后台管理
+ */
+public interface ElementService {
+
+ /**
+ * 创建金属元素
+ *
+ * @param createReqVO 创建信息
+ * @return 编号
+ */
+ ElementRespVO createElement(@Valid ElementSaveReqVO createReqVO);
+
+ /**
+ * 更新金属元素
+ *
+ * @param updateReqVO 更新信息
+ */
+ void updateElement(@Valid ElementSaveReqVO updateReqVO);
+
+ /**
+ * 删除金属元素
+ *
+ * @param id 编号
+ */
+ void deleteElement(Long id);
+
+ /**
+ * 批量删除金属元素
+ *
+ * @param ids 编号
+ */
+ void deleteElementListByIds(List ids);
+
+ /**
+ * 获得金属元素
+ *
+ * @param id 编号
+ * @return 金属元素
+ */
+ ElementDO getElement(Long id);
+
+ /**
+ * 获得金属元素分页
+ *
+ * @param pageReqVO 分页查询
+ * @return 金属元素分页
+ */
+ PageResult getElementPage(ElementPageReqVO pageReqVO);
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/ElementServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/ElementServiceImpl.java
new file mode 100644
index 0000000..4f53d2d
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/ElementServiceImpl.java
@@ -0,0 +1,92 @@
+package com.zt.plat.module.base.service.base;
+
+import cn.hutool.core.collection.CollUtil;
+import org.springframework.stereotype.Service;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+import com.zt.plat.module.base.dal.dataobject.base.ElementDO;
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.common.pojo.PageParam;
+import com.zt.plat.framework.common.util.object.BeanUtils;
+
+import com.zt.plat.module.base.dal.mysql.base.ElementMapper;
+
+import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList;
+import static com.zt.plat.framework.common.util.collection.CollectionUtils.diffList;
+import static com.zt.plat.module.base.enums.ErrorCodeConstants.*;
+
+/**
+ * 金属元素 Service 实现类
+ *
+ * @author 后台管理
+ */
+@Service
+@Validated
+public class ElementServiceImpl implements ElementService {
+
+ @Resource
+ private ElementMapper elementMapper;
+
+ @Override
+ public ElementRespVO createElement(ElementSaveReqVO createReqVO) {
+ // 插入
+ ElementDO element = BeanUtils.toBean(createReqVO, ElementDO.class);
+ elementMapper.insert(element);
+ // 返回
+ return BeanUtils.toBean(element, ElementRespVO.class);
+ }
+
+ @Override
+ public void updateElement(ElementSaveReqVO updateReqVO) {
+ // 校验存在
+ validateElementExists(updateReqVO.getId());
+ // 更新
+ ElementDO updateObj = BeanUtils.toBean(updateReqVO, ElementDO.class);
+ elementMapper.updateById(updateObj);
+ }
+
+ @Override
+ public void deleteElement(Long id) {
+ // 校验存在
+ validateElementExists(id);
+ // 删除
+ elementMapper.deleteById(id);
+ }
+
+ @Override
+ public void deleteElementListByIds(List ids) {
+ // 校验存在
+ validateElementExists(ids);
+ // 删除
+ elementMapper.deleteByIds(ids);
+ }
+
+ private void validateElementExists(List ids) {
+ List list = elementMapper.selectByIds(ids);
+ if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
+ throw exception(ELEMENT_NOT_EXISTS);
+ }
+ }
+
+ private void validateElementExists(Long id) {
+ if (elementMapper.selectById(id) == null) {
+ throw exception(ELEMENT_NOT_EXISTS);
+ }
+ }
+
+ @Override
+ public ElementDO getElement(Long id) {
+ return elementMapper.selectById(id);
+ }
+
+ @Override
+ public PageResult getElementPage(ElementPageReqVO pageReqVO) {
+ return elementMapper.selectPage(pageReqVO);
+ }
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/FactoryService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/FactoryService.java
new file mode 100644
index 0000000..823cd69
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/FactoryService.java
@@ -0,0 +1,62 @@
+package com.zt.plat.module.base.service.base;
+
+import java.util.*;
+import jakarta.validation.*;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+import com.zt.plat.module.base.dal.dataobject.base.FactoryDO;
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.common.pojo.PageParam;
+
+/**
+ * 工厂 Service 接口
+ *
+ * @author 后台管理
+ */
+public interface FactoryService {
+
+ /**
+ * 创建工厂
+ *
+ * @param createReqVO 创建信息
+ * @return 编号
+ */
+ FactoryRespVO createFactory(@Valid FactorySaveReqVO createReqVO);
+
+ /**
+ * 更新工厂
+ *
+ * @param updateReqVO 更新信息
+ */
+ void updateFactory(@Valid FactorySaveReqVO updateReqVO);
+
+ /**
+ * 删除工厂
+ *
+ * @param id 编号
+ */
+ void deleteFactory(Long id);
+
+ /**
+ * 批量删除工厂
+ *
+ * @param ids 编号
+ */
+ void deleteFactoryListByIds(List ids);
+
+ /**
+ * 获得工厂
+ *
+ * @param id 编号
+ * @return 工厂
+ */
+ FactoryDO getFactory(Long id);
+
+ /**
+ * 获得工厂分页
+ *
+ * @param pageReqVO 分页查询
+ * @return 工厂分页
+ */
+ PageResult getFactoryPage(FactoryPageReqVO pageReqVO);
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/FactoryServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/FactoryServiceImpl.java
new file mode 100644
index 0000000..35c8241
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/FactoryServiceImpl.java
@@ -0,0 +1,92 @@
+package com.zt.plat.module.base.service.base;
+
+import cn.hutool.core.collection.CollUtil;
+import org.springframework.stereotype.Service;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+import com.zt.plat.module.base.dal.dataobject.base.FactoryDO;
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.common.pojo.PageParam;
+import com.zt.plat.framework.common.util.object.BeanUtils;
+
+import com.zt.plat.module.base.dal.mysql.base.FactoryMapper;
+
+import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList;
+import static com.zt.plat.framework.common.util.collection.CollectionUtils.diffList;
+import static com.zt.plat.module.base.enums.ErrorCodeConstants.*;
+
+/**
+ * 工厂 Service 实现类
+ *
+ * @author 后台管理
+ */
+@Service
+@Validated
+public class FactoryServiceImpl implements FactoryService {
+
+ @Resource
+ private FactoryMapper factoryMapper;
+
+ @Override
+ public FactoryRespVO createFactory(FactorySaveReqVO createReqVO) {
+ // 插入
+ FactoryDO factory = BeanUtils.toBean(createReqVO, FactoryDO.class);
+ factoryMapper.insert(factory);
+ // 返回
+ return BeanUtils.toBean(factory, FactoryRespVO.class);
+ }
+
+ @Override
+ public void updateFactory(FactorySaveReqVO updateReqVO) {
+ // 校验存在
+ validateFactoryExists(updateReqVO.getId());
+ // 更新
+ FactoryDO updateObj = BeanUtils.toBean(updateReqVO, FactoryDO.class);
+ factoryMapper.updateById(updateObj);
+ }
+
+ @Override
+ public void deleteFactory(Long id) {
+ // 校验存在
+ validateFactoryExists(id);
+ // 删除
+ factoryMapper.deleteById(id);
+ }
+
+ @Override
+ public void deleteFactoryListByIds(List ids) {
+ // 校验存在
+ validateFactoryExists(ids);
+ // 删除
+ factoryMapper.deleteByIds(ids);
+ }
+
+ private void validateFactoryExists(List ids) {
+ List list = factoryMapper.selectByIds(ids);
+ if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
+ throw exception(FACTORY_NOT_EXISTS);
+ }
+ }
+
+ private void validateFactoryExists(Long id) {
+ if (factoryMapper.selectById(id) == null) {
+ throw exception(FACTORY_NOT_EXISTS);
+ }
+ }
+
+ @Override
+ public FactoryDO getFactory(Long id) {
+ return factoryMapper.selectById(id);
+ }
+
+ @Override
+ public PageResult getFactoryPage(FactoryPageReqVO pageReqVO) {
+ return factoryMapper.selectPage(pageReqVO);
+ }
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialDestroyService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialDestroyService.java
new file mode 100644
index 0000000..dbdeffb
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialDestroyService.java
@@ -0,0 +1,62 @@
+package com.zt.plat.module.base.service.base;
+
+import java.util.*;
+import jakarta.validation.*;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+import com.zt.plat.module.base.dal.dataobject.base.MaterialDestroyDO;
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.common.pojo.PageParam;
+
+/**
+ * 物料回收率 Service 接口
+ *
+ * @author 后台管理
+ */
+public interface MaterialDestroyService {
+
+ /**
+ * 创建物料回收率
+ *
+ * @param createReqVO 创建信息
+ * @return 编号
+ */
+ MaterialDestroyRespVO createMaterialDestroy(@Valid MaterialDestroySaveReqVO createReqVO);
+
+ /**
+ * 更新物料回收率
+ *
+ * @param updateReqVO 更新信息
+ */
+ void updateMaterialDestroy(@Valid MaterialDestroySaveReqVO updateReqVO);
+
+ /**
+ * 删除物料回收率
+ *
+ * @param id 编号
+ */
+ void deleteMaterialDestroy(Long id);
+
+ /**
+ * 批量删除物料回收率
+ *
+ * @param ids 编号
+ */
+ void deleteMaterialDestroyListByIds(List ids);
+
+ /**
+ * 获得物料回收率
+ *
+ * @param id 编号
+ * @return 物料回收率
+ */
+ MaterialDestroyDO getMaterialDestroy(Long id);
+
+ /**
+ * 获得物料回收率分页
+ *
+ * @param pageReqVO 分页查询
+ * @return 物料回收率分页
+ */
+ PageResult getMaterialDestroyPage(MaterialDestroyPageReqVO pageReqVO);
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialDestroyServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialDestroyServiceImpl.java
new file mode 100644
index 0000000..95872a2
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialDestroyServiceImpl.java
@@ -0,0 +1,92 @@
+package com.zt.plat.module.base.service.base;
+
+import cn.hutool.core.collection.CollUtil;
+import org.springframework.stereotype.Service;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+import com.zt.plat.module.base.dal.dataobject.base.MaterialDestroyDO;
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.common.pojo.PageParam;
+import com.zt.plat.framework.common.util.object.BeanUtils;
+
+import com.zt.plat.module.base.dal.mysql.base.MaterialDestroyMapper;
+
+import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList;
+import static com.zt.plat.framework.common.util.collection.CollectionUtils.diffList;
+import static com.zt.plat.module.base.enums.ErrorCodeConstants.*;
+
+/**
+ * 物料回收率 Service 实现类
+ *
+ * @author 后台管理
+ */
+@Service
+@Validated
+public class MaterialDestroyServiceImpl implements MaterialDestroyService {
+
+ @Resource
+ private MaterialDestroyMapper materialDestroyMapper;
+
+ @Override
+ public MaterialDestroyRespVO createMaterialDestroy(MaterialDestroySaveReqVO createReqVO) {
+ // 插入
+ MaterialDestroyDO materialDestroy = BeanUtils.toBean(createReqVO, MaterialDestroyDO.class);
+ materialDestroyMapper.insert(materialDestroy);
+ // 返回
+ return BeanUtils.toBean(materialDestroy, MaterialDestroyRespVO.class);
+ }
+
+ @Override
+ public void updateMaterialDestroy(MaterialDestroySaveReqVO updateReqVO) {
+ // 校验存在
+ validateMaterialDestroyExists(updateReqVO.getId());
+ // 更新
+ MaterialDestroyDO updateObj = BeanUtils.toBean(updateReqVO, MaterialDestroyDO.class);
+ materialDestroyMapper.updateById(updateObj);
+ }
+
+ @Override
+ public void deleteMaterialDestroy(Long id) {
+ // 校验存在
+ validateMaterialDestroyExists(id);
+ // 删除
+ materialDestroyMapper.deleteById(id);
+ }
+
+ @Override
+ public void deleteMaterialDestroyListByIds(List ids) {
+ // 校验存在
+ validateMaterialDestroyExists(ids);
+ // 删除
+ materialDestroyMapper.deleteByIds(ids);
+ }
+
+ private void validateMaterialDestroyExists(List ids) {
+ List list = materialDestroyMapper.selectByIds(ids);
+ if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
+ throw exception(MATERIAL_DESTROY_NOT_EXISTS);
+ }
+ }
+
+ private void validateMaterialDestroyExists(Long id) {
+ if (materialDestroyMapper.selectById(id) == null) {
+ throw exception(MATERIAL_DESTROY_NOT_EXISTS);
+ }
+ }
+
+ @Override
+ public MaterialDestroyDO getMaterialDestroy(Long id) {
+ return materialDestroyMapper.selectById(id);
+ }
+
+ @Override
+ public PageResult getMaterialDestroyPage(MaterialDestroyPageReqVO pageReqVO) {
+ return materialDestroyMapper.selectPage(pageReqVO);
+ }
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialInfomationService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialInfomationService.java
new file mode 100644
index 0000000..82a0c41
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialInfomationService.java
@@ -0,0 +1,62 @@
+package com.zt.plat.module.base.service.base;
+
+import java.util.*;
+import jakarta.validation.*;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+import com.zt.plat.module.base.dal.dataobject.base.MaterialInfomationDO;
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.common.pojo.PageParam;
+
+/**
+ * 物料信息 Service 接口
+ *
+ * @author 后台管理
+ */
+public interface MaterialInfomationService {
+
+ /**
+ * 创建物料信息
+ *
+ * @param createReqVO 创建信息
+ * @return 编号
+ */
+ MaterialInfomationRespVO createMaterialInfomation(@Valid MaterialInfomationSaveReqVO createReqVO);
+
+ /**
+ * 更新物料信息
+ *
+ * @param updateReqVO 更新信息
+ */
+ void updateMaterialInfomation(@Valid MaterialInfomationSaveReqVO updateReqVO);
+
+ /**
+ * 删除物料信息
+ *
+ * @param id 编号
+ */
+ void deleteMaterialInfomation(Long id);
+
+ /**
+ * 批量删除物料信息
+ *
+ * @param ids 编号
+ */
+ void deleteMaterialInfomationListByIds(List ids);
+
+ /**
+ * 获得物料信息
+ *
+ * @param id 编号
+ * @return 物料信息
+ */
+ MaterialInfomationDO getMaterialInfomation(Long id);
+
+ /**
+ * 获得物料信息分页
+ *
+ * @param pageReqVO 分页查询
+ * @return 物料信息分页
+ */
+ PageResult getMaterialInfomationPage(MaterialInfomationPageReqVO pageReqVO);
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialInfomationServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialInfomationServiceImpl.java
new file mode 100644
index 0000000..6128f08
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialInfomationServiceImpl.java
@@ -0,0 +1,92 @@
+package com.zt.plat.module.base.service.base;
+
+import cn.hutool.core.collection.CollUtil;
+import org.springframework.stereotype.Service;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+import com.zt.plat.module.base.dal.dataobject.base.MaterialInfomationDO;
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.common.pojo.PageParam;
+import com.zt.plat.framework.common.util.object.BeanUtils;
+
+import com.zt.plat.module.base.dal.mysql.base.MaterialInfomationMapper;
+
+import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList;
+import static com.zt.plat.framework.common.util.collection.CollectionUtils.diffList;
+import static com.zt.plat.module.base.enums.ErrorCodeConstants.*;
+
+/**
+ * 物料信息 Service 实现类
+ *
+ * @author 后台管理
+ */
+@Service
+@Validated
+public class MaterialInfomationServiceImpl implements MaterialInfomationService {
+
+ @Resource
+ private MaterialInfomationMapper materialInfomationMapper;
+
+ @Override
+ public MaterialInfomationRespVO createMaterialInfomation(MaterialInfomationSaveReqVO createReqVO) {
+ // 插入
+ MaterialInfomationDO materialInfomation = BeanUtils.toBean(createReqVO, MaterialInfomationDO.class);
+ materialInfomationMapper.insert(materialInfomation);
+ // 返回
+ return BeanUtils.toBean(materialInfomation, MaterialInfomationRespVO.class);
+ }
+
+ @Override
+ public void updateMaterialInfomation(MaterialInfomationSaveReqVO updateReqVO) {
+ // 校验存在
+ validateMaterialInfomationExists(updateReqVO.getId());
+ // 更新
+ MaterialInfomationDO updateObj = BeanUtils.toBean(updateReqVO, MaterialInfomationDO.class);
+ materialInfomationMapper.updateById(updateObj);
+ }
+
+ @Override
+ public void deleteMaterialInfomation(Long id) {
+ // 校验存在
+ validateMaterialInfomationExists(id);
+ // 删除
+ materialInfomationMapper.deleteById(id);
+ }
+
+ @Override
+ public void deleteMaterialInfomationListByIds(List ids) {
+ // 校验存在
+ validateMaterialInfomationExists(ids);
+ // 删除
+ materialInfomationMapper.deleteByIds(ids);
+ }
+
+ private void validateMaterialInfomationExists(List ids) {
+ List list = materialInfomationMapper.selectByIds(ids);
+ if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
+ throw exception(MATERIAL_INFOMATION_NOT_EXISTS);
+ }
+ }
+
+ private void validateMaterialInfomationExists(Long id) {
+ if (materialInfomationMapper.selectById(id) == null) {
+ throw exception(MATERIAL_INFOMATION_NOT_EXISTS);
+ }
+ }
+
+ @Override
+ public MaterialInfomationDO getMaterialInfomation(Long id) {
+ return materialInfomationMapper.selectById(id);
+ }
+
+ @Override
+ public PageResult getMaterialInfomationPage(MaterialInfomationPageReqVO pageReqVO) {
+ return materialInfomationMapper.selectPage(pageReqVO);
+ }
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialOtherService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialOtherService.java
new file mode 100644
index 0000000..ddac9e4
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialOtherService.java
@@ -0,0 +1,62 @@
+package com.zt.plat.module.base.service.base;
+
+import java.util.*;
+import jakarta.validation.*;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+import com.zt.plat.module.base.dal.dataobject.base.MaterialOtherDO;
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.common.pojo.PageParam;
+
+/**
+ * 物料拓展数据 Service 接口
+ *
+ * @author 后台管理
+ */
+public interface MaterialOtherService {
+
+ /**
+ * 创建物料拓展数据
+ *
+ * @param createReqVO 创建信息
+ * @return 编号
+ */
+ MaterialOtherRespVO createMaterialOther(@Valid MaterialOtherSaveReqVO createReqVO);
+
+ /**
+ * 更新物料拓展数据
+ *
+ * @param updateReqVO 更新信息
+ */
+ void updateMaterialOther(@Valid MaterialOtherSaveReqVO updateReqVO);
+
+ /**
+ * 删除物料拓展数据
+ *
+ * @param id 编号
+ */
+ void deleteMaterialOther(Long id);
+
+ /**
+ * 批量删除物料拓展数据
+ *
+ * @param ids 编号
+ */
+ void deleteMaterialOtherListByIds(List ids);
+
+ /**
+ * 获得物料拓展数据
+ *
+ * @param id 编号
+ * @return 物料拓展数据
+ */
+ MaterialOtherDO getMaterialOther(Long id);
+
+ /**
+ * 获得物料拓展数据分页
+ *
+ * @param pageReqVO 分页查询
+ * @return 物料拓展数据分页
+ */
+ PageResult getMaterialOtherPage(MaterialOtherPageReqVO pageReqVO);
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialOtherServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialOtherServiceImpl.java
new file mode 100644
index 0000000..ea1ab09
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/MaterialOtherServiceImpl.java
@@ -0,0 +1,92 @@
+package com.zt.plat.module.base.service.base;
+
+import cn.hutool.core.collection.CollUtil;
+import org.springframework.stereotype.Service;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+import com.zt.plat.module.base.dal.dataobject.base.MaterialOtherDO;
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.common.pojo.PageParam;
+import com.zt.plat.framework.common.util.object.BeanUtils;
+
+import com.zt.plat.module.base.dal.mysql.base.MaterialOtherMapper;
+
+import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList;
+import static com.zt.plat.framework.common.util.collection.CollectionUtils.diffList;
+import static com.zt.plat.module.base.enums.ErrorCodeConstants.*;
+
+/**
+ * 物料拓展数据 Service 实现类
+ *
+ * @author 后台管理
+ */
+@Service
+@Validated
+public class MaterialOtherServiceImpl implements MaterialOtherService {
+
+ @Resource
+ private MaterialOtherMapper materialOtherMapper;
+
+ @Override
+ public MaterialOtherRespVO createMaterialOther(MaterialOtherSaveReqVO createReqVO) {
+ // 插入
+ MaterialOtherDO materialOther = BeanUtils.toBean(createReqVO, MaterialOtherDO.class);
+ materialOtherMapper.insert(materialOther);
+ // 返回
+ return BeanUtils.toBean(materialOther, MaterialOtherRespVO.class);
+ }
+
+ @Override
+ public void updateMaterialOther(MaterialOtherSaveReqVO updateReqVO) {
+ // 校验存在
+ validateMaterialOtherExists(updateReqVO.getId());
+ // 更新
+ MaterialOtherDO updateObj = BeanUtils.toBean(updateReqVO, MaterialOtherDO.class);
+ materialOtherMapper.updateById(updateObj);
+ }
+
+ @Override
+ public void deleteMaterialOther(Long id) {
+ // 校验存在
+ validateMaterialOtherExists(id);
+ // 删除
+ materialOtherMapper.deleteById(id);
+ }
+
+ @Override
+ public void deleteMaterialOtherListByIds(List ids) {
+ // 校验存在
+ validateMaterialOtherExists(ids);
+ // 删除
+ materialOtherMapper.deleteByIds(ids);
+ }
+
+ private void validateMaterialOtherExists(List ids) {
+ List list = materialOtherMapper.selectByIds(ids);
+ if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
+ throw exception(MATERIAL_OTHER_NOT_EXISTS);
+ }
+ }
+
+ private void validateMaterialOtherExists(Long id) {
+ if (materialOtherMapper.selectById(id) == null) {
+ throw exception(MATERIAL_OTHER_NOT_EXISTS);
+ }
+ }
+
+ @Override
+ public MaterialOtherDO getMaterialOther(Long id) {
+ return materialOtherMapper.selectById(id);
+ }
+
+ @Override
+ public PageResult getMaterialOtherPage(MaterialOtherPageReqVO pageReqVO) {
+ return materialOtherMapper.selectPage(pageReqVO);
+ }
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/WarehouseService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/WarehouseService.java
new file mode 100644
index 0000000..aad9262
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/WarehouseService.java
@@ -0,0 +1,62 @@
+package com.zt.plat.module.base.service.base;
+
+import java.util.*;
+import jakarta.validation.*;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+import com.zt.plat.module.base.dal.dataobject.base.WarehouseDO;
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.common.pojo.PageParam;
+
+/**
+ * 仓库 Service 接口
+ *
+ * @author 后台管理
+ */
+public interface WarehouseService {
+
+ /**
+ * 创建仓库
+ *
+ * @param createReqVO 创建信息
+ * @return 编号
+ */
+ WarehouseRespVO createWarehouse(@Valid WarehouseSaveReqVO createReqVO);
+
+ /**
+ * 更新仓库
+ *
+ * @param updateReqVO 更新信息
+ */
+ void updateWarehouse(@Valid WarehouseSaveReqVO updateReqVO);
+
+ /**
+ * 删除仓库
+ *
+ * @param id 编号
+ */
+ void deleteWarehouse(Long id);
+
+ /**
+ * 批量删除仓库
+ *
+ * @param ids 编号
+ */
+ void deleteWarehouseListByIds(List ids);
+
+ /**
+ * 获得仓库
+ *
+ * @param id 编号
+ * @return 仓库
+ */
+ WarehouseDO getWarehouse(Long id);
+
+ /**
+ * 获得仓库分页
+ *
+ * @param pageReqVO 分页查询
+ * @return 仓库分页
+ */
+ PageResult getWarehousePage(WarehousePageReqVO pageReqVO);
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/WarehouseServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/WarehouseServiceImpl.java
new file mode 100644
index 0000000..21931f7
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/WarehouseServiceImpl.java
@@ -0,0 +1,92 @@
+package com.zt.plat.module.base.service.base;
+
+import cn.hutool.core.collection.CollUtil;
+import org.springframework.stereotype.Service;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import com.zt.plat.module.base.controller.admin.base.vo.*;
+import com.zt.plat.module.base.dal.dataobject.base.WarehouseDO;
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.common.pojo.PageParam;
+import com.zt.plat.framework.common.util.object.BeanUtils;
+
+import com.zt.plat.module.base.dal.mysql.base.WarehouseMapper;
+
+import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList;
+import static com.zt.plat.framework.common.util.collection.CollectionUtils.diffList;
+import static com.zt.plat.module.base.enums.ErrorCodeConstants.*;
+
+/**
+ * 仓库 Service 实现类
+ *
+ * @author 后台管理
+ */
+@Service
+@Validated
+public class WarehouseServiceImpl implements WarehouseService {
+
+ @Resource
+ private WarehouseMapper warehouseMapper;
+
+ @Override
+ public WarehouseRespVO createWarehouse(WarehouseSaveReqVO createReqVO) {
+ // 插入
+ WarehouseDO warehouse = BeanUtils.toBean(createReqVO, WarehouseDO.class);
+ warehouseMapper.insert(warehouse);
+ // 返回
+ return BeanUtils.toBean(warehouse, WarehouseRespVO.class);
+ }
+
+ @Override
+ public void updateWarehouse(WarehouseSaveReqVO updateReqVO) {
+ // 校验存在
+ validateWarehouseExists(updateReqVO.getId());
+ // 更新
+ WarehouseDO updateObj = BeanUtils.toBean(updateReqVO, WarehouseDO.class);
+ warehouseMapper.updateById(updateObj);
+ }
+
+ @Override
+ public void deleteWarehouse(Long id) {
+ // 校验存在
+ validateWarehouseExists(id);
+ // 删除
+ warehouseMapper.deleteById(id);
+ }
+
+ @Override
+ public void deleteWarehouseListByIds(List ids) {
+ // 校验存在
+ validateWarehouseExists(ids);
+ // 删除
+ warehouseMapper.deleteByIds(ids);
+ }
+
+ private void validateWarehouseExists(List ids) {
+ List list = warehouseMapper.selectByIds(ids);
+ if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
+ throw exception(WAREHOUSE_NOT_EXISTS);
+ }
+ }
+
+ private void validateWarehouseExists(Long id) {
+ if (warehouseMapper.selectById(id) == null) {
+ throw exception(WAREHOUSE_NOT_EXISTS);
+ }
+ }
+
+ @Override
+ public WarehouseDO getWarehouse(Long id) {
+ return warehouseMapper.selectById(id);
+ }
+
+ @Override
+ public PageResult getWarehousePage(WarehousePageReqVO pageReqVO) {
+ return warehouseMapper.selectPage(pageReqVO);
+ }
+
+}
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/AccountMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/AccountMapper.xml
new file mode 100644
index 0000000..e29bb41
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/AccountMapper.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/CompanyRelativityMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/CompanyRelativityMapper.xml
new file mode 100644
index 0000000..5c3093e
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/CompanyRelativityMapper.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/ContactMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/ContactMapper.xml
new file mode 100644
index 0000000..d769dc1
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/ContactMapper.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/ElementMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/ElementMapper.xml
new file mode 100644
index 0000000..49e0c8f
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/ElementMapper.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/FactoryMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/FactoryMapper.xml
new file mode 100644
index 0000000..131c560
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/FactoryMapper.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/MaterialDestroyMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/MaterialDestroyMapper.xml
new file mode 100644
index 0000000..5fc120c
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/MaterialDestroyMapper.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/MaterialInfomationMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/MaterialInfomationMapper.xml
new file mode 100644
index 0000000..54c82c3
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/MaterialInfomationMapper.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/MaterialOtherMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/MaterialOtherMapper.xml
new file mode 100644
index 0000000..52e529f
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/MaterialOtherMapper.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/WarehouseMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/WarehouseMapper.xml
new file mode 100644
index 0000000..30f7d26
--- /dev/null
+++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/WarehouseMapper.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ErrorCodeConstants.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ErrorCodeConstants.java
index 38a1f94..f70d548 100644
--- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ErrorCodeConstants.java
+++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ErrorCodeConstants.java
@@ -15,4 +15,5 @@ public interface ErrorCodeConstants {
ErrorCode CONTRACT_NUM_TRANSFINITE = new ErrorCode(1_027_000_000, "系统合同编号超限,最大合同编号:999999");
ErrorCode CONTRACT_NAME_EXISTS = new ErrorCode(1_027_000_001, "合同名已存在");
ErrorCode CONTRACT_PAPER_NUMBER_EXISTS = new ErrorCode(1_027_000_002, "合同编号已存在");
+ ErrorCode CONTRACT_NOT_EXISTS = new ErrorCode(1_027_000_003, "合同不存在");
}
diff --git a/zt-module-contract-order/zt-module-contract-order-server/pom.xml b/zt-module-contract-order/zt-module-contract-order-server/pom.xml
index 198b8be..2179c7b 100644
--- a/zt-module-contract-order/zt-module-contract-order-server/pom.xml
+++ b/zt-module-contract-order/zt-module-contract-order-server/pom.xml
@@ -129,7 +129,7 @@
com.zt.plat
zt-module-base-server
- 3.0.35
+ 3.0.37
compile
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/ContractController.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/ContractController.java
index f4989ed..4af08ea 100644
--- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/ContractController.java
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/ContractController.java
@@ -4,12 +4,14 @@ import com.zt.plat.framework.business.interceptor.BusinessControllerMarker;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.util.object.BeanUtils;
-import com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton.ContractPageReqVO;
-import com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton.ContractRespVO;
-import com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton.ContractSaveReqVO;
+import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.ContractPageReqVO;
+import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.ContractRespVO;
+import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.ContractSaveReqVO;
+import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.ContractViewRespVO;
import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractMainDO;
import com.zt.plat.module.contractorder.service.contract.ContractService;
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.validation.Valid;
@@ -32,17 +34,92 @@ public class ContractController implements BusinessControllerMarker {
@GetMapping("/page")
@Operation(summary = "获得合同分页列表")
- @PreAuthorize("@ss.hasPermission('base:contract-main:query')")
- public CommonResult> getContractPage(@Valid ContractPageReqVO pageReqVO) {
+ @PreAuthorize("@ss.hasPermission('base:contract:query')")
+ public CommonResult> getPage(@Valid ContractPageReqVO pageReqVO) {
PageResult pageResult = contractService.getContractPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, ContractRespVO.class));
}
@PostMapping("/create")
@Operation(summary = "新增合同")
- @PreAuthorize("@ss.hasPermission('system:contract-main:create')")
- public CommonResult createContract(@Valid @RequestBody ContractSaveReqVO reqVO) {
+ @PreAuthorize("@ss.hasPermission('system:contract:create')")
+ public CommonResult create(@Valid @RequestBody ContractSaveReqVO reqVO) {
Long id = contractService.createContract(reqVO);
return success(id);
}
+
+ @GetMapping("/get")
+ @Operation(summary = "获得合同详情")
+ @Parameter(name = "id", description = "合同ID", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('system:contract:get')")
+ public CommonResult get(@RequestParam("id") Long id) {
+ ContractViewRespVO contractViewRespVO = contractService.get(id);
+ return success(contractViewRespVO);
+ }
+
+ // TODO
+ @PutMapping("update")
+ @Operation(summary = "修改合同")
+ @PreAuthorize("@ss.hasPermission('system:contract:update')")
+ public CommonResult update(@Valid @RequestBody ContractSaveReqVO reqVO) {
+ return success(true);
+ }
+
+ // TODO
+ @DeleteMapping("/delete")
+ @Operation(summary = "删除合同")
+ @Parameter(name = "ids", description = "合同ID集合", required = true, example = "1024")
+ @PreAuthorize("@ss.hasPermission('system:contract:delete')")
+ public CommonResult delete(@RequestParam("ids") Long[] ids) {
+ return success(true);
+ }
+
+ // TODO
+ @PostMapping("/download")
+ @Operation(summary = "下载文件")
+ @PreAuthorize("@ss.hasPermission('system:contract:download')")
+ public void download() {
+ }
+
+ // TODO
+ @PostMapping("/preview")
+ @Operation(summary = "预览文件")
+ @PreAuthorize("@ss.hasPermission('system:contract:preview')")
+ public void preview() {
+ }
+
+ // TODO
+ @PostMapping("/complete")
+ @Operation(summary = "完结")
+ @PreAuthorize("@ss.hasPermission('system:contract:complete')")
+ public void complete() {
+ }
+
+ // TODO
+ @PostMapping("/archive")
+ @Operation(summary = "归档")
+ @PreAuthorize("@ss.hasPermission('system:contract:archive')")
+ public void archive() {
+ }
+
+ // TODO
+ @PostMapping("/submit/approval")
+ @Operation(summary = "提交审批")
+ @PreAuthorize("@ss.hasPermission('system:contract:approval')")
+ public void submitApproval() {
+ }
+
+ // TODO
+ @PostMapping("/view/approval")
+ @Operation(summary = "查看审批")
+ @PreAuthorize("@ss.hasPermission('system:contract:approval')")
+ public void viewApproval() {
+ }
+
+ // TODO
+ @PostMapping("/submit/ERP")
+ @Operation(summary = "提交ERP")
+ @PreAuthorize("@ss.hasPermission('system:contract:erp')")
+ public void submitERP() {
+ }
}
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractCoefficientSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractCoefficientSaveReqVO.java
similarity index 98%
rename from zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractCoefficientSaveReqVO.java
rename to zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractCoefficientSaveReqVO.java
index 994701e..77402c0 100644
--- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractCoefficientSaveReqVO.java
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractCoefficientSaveReqVO.java
@@ -1,4 +1,4 @@
-package com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton;
+package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractDeductSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractDeductSaveReqVO.java
similarity index 98%
rename from zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractDeductSaveReqVO.java
rename to zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractDeductSaveReqVO.java
index 3f957e4..1714714 100644
--- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractDeductSaveReqVO.java
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractDeductSaveReqVO.java
@@ -1,4 +1,4 @@
-package com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton;
+package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractDetailSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractDetailSaveReqVO.java
similarity index 98%
rename from zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractDetailSaveReqVO.java
rename to zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractDetailSaveReqVO.java
index 3369881..6055b01 100644
--- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractDetailSaveReqVO.java
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractDetailSaveReqVO.java
@@ -1,4 +1,4 @@
-package com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton;
+package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractFormulaSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractFormulaSaveReqVO.java
similarity index 97%
rename from zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractFormulaSaveReqVO.java
rename to zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractFormulaSaveReqVO.java
index 054453e..0f60fc3 100644
--- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractFormulaSaveReqVO.java
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractFormulaSaveReqVO.java
@@ -1,4 +1,4 @@
-package com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton;
+package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
@@ -33,7 +33,7 @@ public class ContractFormulaSaveReqVO {
private String materialNumber;
@Schema(description = "计算小数位")
- private Long decimal;
+ private Long decimalBit;
@Schema(description = "金属元素编码")
private String elementNumber;
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractGradeSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractGradeSaveReqVO.java
similarity index 99%
rename from zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractGradeSaveReqVO.java
rename to zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractGradeSaveReqVO.java
index ef2daa3..83d23da 100644
--- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractGradeSaveReqVO.java
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractGradeSaveReqVO.java
@@ -1,4 +1,4 @@
-package com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton;
+package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractNotSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractNotSaveReqVO.java
similarity index 98%
rename from zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractNotSaveReqVO.java
rename to zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractNotSaveReqVO.java
index 024bea7..2f8a793 100644
--- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractNotSaveReqVO.java
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractNotSaveReqVO.java
@@ -1,4 +1,4 @@
-package com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton;
+package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractPageReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractPageReqVO.java
similarity index 98%
rename from zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractPageReqVO.java
rename to zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractPageReqVO.java
index 475d753..c451e11 100644
--- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractPageReqVO.java
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractPageReqVO.java
@@ -1,4 +1,4 @@
-package com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton;
+package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract;
import com.zt.plat.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractPlanSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractPlanSaveReqVO.java
similarity index 97%
rename from zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractPlanSaveReqVO.java
rename to zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractPlanSaveReqVO.java
index 15f214c..5d39bc0 100644
--- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractPlanSaveReqVO.java
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractPlanSaveReqVO.java
@@ -1,4 +1,4 @@
-package com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton;
+package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractPriceSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractPriceSaveReqVO.java
similarity index 96%
rename from zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractPriceSaveReqVO.java
rename to zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractPriceSaveReqVO.java
index 3d30958..8c6faa0 100644
--- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractPriceSaveReqVO.java
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractPriceSaveReqVO.java
@@ -1,4 +1,4 @@
-package com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton;
+package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@@ -49,5 +49,5 @@ public class ContractPriceSaveReqVO {
private String averageType;
@Schema(description = "网价小数位")
- private BigDecimal decimal;
+ private BigDecimal decimalBit;
}
\ No newline at end of file
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractRespVO.java
similarity index 99%
rename from zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractRespVO.java
rename to zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractRespVO.java
index 6a88340..f6bdac4 100644
--- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractRespVO.java
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractRespVO.java
@@ -1,4 +1,4 @@
-package com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton;
+package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractSaveReqVO.java
similarity index 99%
rename from zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractSaveReqVO.java
rename to zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractSaveReqVO.java
index 5c94cd9..355faea 100644
--- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/preparaton/ContractSaveReqVO.java
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractSaveReqVO.java
@@ -1,4 +1,4 @@
-package com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton;
+package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract;
import com.alibaba.excel.annotation.ExcelProperty;
import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceDataSaveReqVO;
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewCoefficientRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewCoefficientRespVO.java
new file mode 100644
index 0000000..65938f4
--- /dev/null
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewCoefficientRespVO.java
@@ -0,0 +1,51 @@
+package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotEmpty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Schema(description = "管理后台 - 基础系数配置 Response VO")
+@Data
+public class ContractViewCoefficientRespVO {
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "31657")
+ private Long id;
+
+ @Schema(description = "配置主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "6534")
+ private Long parameterId;
+
+ @Schema(description = "条款主键", example = "29652")
+ private Long formulaId;
+
+ @Schema(description = "金属元素编码")
+ private String elementNumber;
+
+ @Schema(description = "金属元素缩写")
+ private String elementAbbreviation;
+
+ @Schema(description = "金属元素名称", example = "芋艿")
+ private String elementName;
+
+ @Schema(description = "系数值")
+ private String settlementCoefficient;
+
+ @Schema(description = "系数上限")
+ private BigDecimal coefficientUp;
+
+ @Schema(description = "系数下限")
+ private BigDecimal coefficientDown;
+
+ @Schema(description = "是否包含上限")
+ private String isInUp;
+
+ @Schema(description = "是否包含下限")
+ private String isInDown;
+
+ @Schema(description = "是否省内", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "是否省内不能为空")
+ private String inState;
+
+ @Schema(description = "类型", example = "1")
+ private String type;
+}
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewDeductRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewDeductRespVO.java
new file mode 100644
index 0000000..4594537
--- /dev/null
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewDeductRespVO.java
@@ -0,0 +1,54 @@
+package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract;
+
+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 = "管理后台 - 调整价配置 Response VO")
+@Data
+public class ContractViewDeductRespVO {
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "25312")
+ private Long id;
+
+ @Schema(description = "配置主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "21114")
+ @NotNull(message = "配置主键不能为空")
+ private Long parameterId;
+
+ @Schema(description = "条款主键", example = "29909")
+ private Long formulaId;
+
+ @Schema(description = "物料编码;推送ERP")
+ private String materialNumber;
+
+ @Schema(description = "物料名称", example = "张三")
+ private String materialName;
+
+ @Schema(description = "上限", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotNull(message = "上限不能为空")
+ private BigDecimal gradeUp;
+
+ @Schema(description = "下限")
+ private BigDecimal gradeDown;
+
+ @Schema(description = "是否包含上限")
+ private String isInUp;
+
+ @Schema(description = "是否包含下限")
+ private String isInDown;
+
+ @Schema(description = "方式")
+ private String way;
+
+ @Schema(description = "类型", example = "1")
+ private String type;
+
+ @Schema(description = "是否省内", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "是否省内不能为空")
+ private String inState;
+
+ @Schema(description = "调整价")
+ private BigDecimal gradeAmount;
+}
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewDetailRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewDetailRespVO.java
new file mode 100644
index 0000000..9385e22
--- /dev/null
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewDetailRespVO.java
@@ -0,0 +1,44 @@
+package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Schema(description = "管理后台 - 合同明细 Response VO")
+@Data
+public class ContractViewDetailRespVO {
+ @Schema(description = "主键")
+ private Long id;
+
+ @Schema(description = "物料名称", example = "物料名称")
+ private String materialName;
+
+ @Schema(description = "物料编码", example = "物料编码")
+ private String materialNumber;
+
+ @Schema(description = "数量")
+ private BigDecimal quantity;
+
+ @Schema(description = "计量单位", example = "吨")
+ private String unit;
+
+ @Schema(description = "含税单价", example = "28579")
+ private BigDecimal inTaxUnitPrice;
+
+ @Schema(description = "金属元素缩写", example = "金属元素缩写")
+ private String elementAbbreviation;
+
+ @Schema(description = "金属元素名称", example = "金属元素名称")
+ private String elementName;
+
+ @Schema(description = "金属元素编码", example = "金属元素编码")
+ private String elementNumber;
+
+ // 交货计划
+ private List plans;
+
+ // 价款结算条款
+ private List formulas;
+}
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewFormulaRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewFormulaRespVO.java
new file mode 100644
index 0000000..e0f2c8a
--- /dev/null
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewFormulaRespVO.java
@@ -0,0 +1,54 @@
+package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+@Schema(description = "管理后台 - 价款结算条款 Response VO")
+@Data
+public class ContractViewFormulaRespVO {
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "28539")
+ private Long id;
+
+ @Schema(description = "合同明细主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "8181")
+ private Long contractDetailId;
+
+ @Schema(description = "公式类型;单价/总价/水扣款/加工费", example = "UNIT_PRICE")
+ private String formulaType;
+
+ @Schema(description = "公式")
+ private String formulaCalculate;
+
+ @Schema(description = "编码公式")
+ private String numberFormula;
+
+ @Schema(description = "物料名称", example = "物料名称")
+ private String materialName;
+
+ @Schema(description = "物料编码")
+ private String materialNumber;
+
+ @Schema(description = "计算小数位")
+ private Long decimalBit;
+
+ @Schema(description = "金属元素编码")
+ private String elementNumber;
+
+ @Schema(description = "金属元素缩写")
+ private String elementAbbreviation;
+
+ @Schema(description = "金属元素名称", example = "金属元素名称")
+ private String elementName;
+
+ // 基础系数配置
+ private List coefficients;
+ // 品位等级价配置
+ private List grades;
+ // 调整价配置
+ private List deducts;
+ // 市场价配置
+ private List prices;
+ // 品位不计价配置
+ private List nots;
+}
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewGradeRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewGradeRespVO.java
new file mode 100644
index 0000000..ccc3813
--- /dev/null
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewGradeRespVO.java
@@ -0,0 +1,63 @@
+package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotEmpty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Schema(description = "管理后台 - 品位等级价配置 Response VO")
+@Data
+public class ContractViewGradeRespVO {
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "15414")
+ private Long id;
+
+ @Schema(description = "配置主键", example = "16734")
+ private Long parameterId;
+
+ @Schema(description = "条款主键", example = "15344")
+ private Long formulaId;
+
+ @Schema(description = "金属元素编码")
+ private String elementNumber;
+
+ @Schema(description = "金属元素缩写")
+ private String elementAbbreviation;
+
+ @Schema(description = "金属元素名称", example = "芋艿")
+ private String elementName;
+
+ @Schema(description = "品位单位")
+ private String gradeUnit;
+
+ @Schema(description = "品位上限")
+ private BigDecimal gradeUp;
+
+ @Schema(description = "品位下限")
+ private BigDecimal gradeDown;
+
+ @Schema(description = "是否包含上限;包含则是大于等于,不包含则是大于")
+ private String isInUp;
+
+ @Schema(description = "是否包含下限;包含则是小于等于,不包含则是小于")
+ private String isInDown;
+
+ @Schema(description = "默认计价品位;计价方式为加时,默认为为下限,计价方式为减时,默认为为上限,可手动填写")
+ private BigDecimal gradeDefault;
+
+ @Schema(description = "系数;计价类型为阶梯价使用,标识没上升多少系数进行加款还是减款")
+ private BigDecimal settlementCoefficient;
+
+ @Schema(description = "不足系数值按比例计算")
+ private String useCoefficient;
+
+ @Schema(description = "计价类型", example = "2")
+ private String priceType;
+
+ @Schema(description = "是否省内", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "是否省内不能为空")
+ private String inState;
+
+ @Schema(description = "等级单价", example = "26237")
+ private BigDecimal unitPrice;
+}
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewNotRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewNotRespVO.java
new file mode 100644
index 0000000..5899f95
--- /dev/null
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewNotRespVO.java
@@ -0,0 +1,48 @@
+package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract;
+
+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 = "管理后台 - 品位不计价配置 Response VO")
+@Data
+public class ContractViewNotRespVO {
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "21132")
+ private Long id;
+
+ @Schema(description = "配置主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "3781")
+ @NotNull(message = "配置主键不能为空")
+ private Long parameterId;
+
+ @Schema(description = "条款主键", example = "5722")
+ private Long formulaId;
+
+ @Schema(description = "金属元素编码")
+ private String elementNumber;
+
+ @Schema(description = "金属元素缩写")
+ private String elementAbbreviation;
+
+ @Schema(description = "金属元素名称", example = "张三")
+ private String elementName;
+
+ @Schema(description = "上限", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotNull(message = "上限不能为空")
+ private BigDecimal gradeUp;
+
+ @Schema(description = "下限")
+ private BigDecimal gradeDown;
+
+ @Schema(description = "是否包含上限")
+ private String isInUp;
+
+ @Schema(description = "是否包含下限")
+ private String isInDown;
+
+ @Schema(description = "是否省内", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotEmpty(message = "是否省内不能为空")
+ private String inState;
+}
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewPlanRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewPlanRespVO.java
new file mode 100644
index 0000000..27bd099
--- /dev/null
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewPlanRespVO.java
@@ -0,0 +1,28 @@
+package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Schema(description = "管理后台 - 交货计划 Response VO")
+@Data
+public class ContractViewPlanRespVO {
+ @Schema(description = "主键")
+ private Long id;
+
+ @Schema(description = "交货年份", example = "2025")
+ private Long contractDeliveryYear;
+
+ @Schema(description = "交货月份", example = "9")
+ private Long contractPlanDeliveryMonth;
+
+ @Schema(description = "计划交货数量")
+ private BigDecimal contractPlanDeliveryQuantity;
+
+ @Schema(description = "交货开始日期")
+ private String contractDeliveryStartDate;
+
+ @Schema(description = "交货结束日期")
+ private String contractDeliveryEndDate;
+}
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewPriceRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewPriceRespVO.java
new file mode 100644
index 0000000..1789b44
--- /dev/null
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewPriceRespVO.java
@@ -0,0 +1,53 @@
+package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 市场价配置新 Response VO")
+@Data
+public class ContractViewPriceRespVO {
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "13654")
+ private Long id;
+
+ @Schema(description = "配置主键", example = "1590")
+ private Long parameterId;
+
+ @Schema(description = "条款主键", example = "24677")
+ private Long formulaId;
+
+ @Schema(description = "市场价")
+ private BigDecimal value;
+
+ @Schema(description = "计算方式;均价/高位价/地位价")
+ private String calculateWay;
+
+ @Schema(description = "数据来源网价代码;数据字典")
+ private String dataOrigin;
+
+ @Schema(description = "计价开始日期")
+ private LocalDateTime calculateStartDate;
+
+ @Schema(description = "计价截止日期")
+ private LocalDateTime calculateEndDate;
+
+ @Schema(description = "包含开始日期")
+ private String inStartDate;
+
+ @Schema(description = "包含结束日期")
+ private String inEndDate;
+
+ @Schema(description = "价格品种元素的明细分类")
+ private String priceGrade;
+
+ @Schema(description = "品种分类", example = "1")
+ private String gradeType;
+
+ @Schema(description = "取价方式;区间价/固定价", example = "2")
+ private String averageType;
+
+ @Schema(description = "网价小数位")
+ private BigDecimal decimalBit;
+}
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewRespVO.java
new file mode 100644
index 0000000..9a6cb80
--- /dev/null
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractViewRespVO.java
@@ -0,0 +1,227 @@
+package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceDataRespVO;
+import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceItemRespVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Schema(description = "管理后台 - 合同详情 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class ContractViewRespVO {
+
+ @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "2090")
+ @ExcelProperty("主键")
+ private Long id;
+
+ @Schema(description = "模板实例主键", example = "10196")
+ @ExcelProperty("模板实例主键")
+ private Long instanceId;
+
+ @Schema(description = "系统合同编号;自动生成,校验唯一")
+ @ExcelProperty("系统合同编号;自动生成,校验唯一")
+ private String systemContractNumber;
+
+ @Schema(description = "状态", example = "1")
+ @ExcelProperty("状态")
+ private String status;
+
+ @Schema(description = "合同名称;与ERP(HTMC)对应,校验唯一", example = "芋艿")
+ @ExcelProperty("合同名称;与ERP(HTMC)对应,校验唯一")
+ private String contractName;
+
+ @Schema(description = "合同编号;与ERP(HTBH)对应,校验唯一")
+ @ExcelProperty("合同编号;与ERP(HTBH)对应,校验唯一")
+ private String contractPaperNumber;
+
+ @Schema(description = "是否虚拟合同;与ERP(SFXNHT)对应")
+ @ExcelProperty("是否虚拟合同;与ERP(SFXNHT)对应")
+ private String contractVirtual;
+
+ @Schema(description = "是否先款后货")
+ @ExcelProperty("是否先款后货")
+ private String hasPayable;
+
+ @Schema(description = "收支性质;与ERP(SZXZ)对应")
+ @ExcelProperty("收支性质;与ERP(SZXZ)对应")
+ private String direction;
+
+ @Schema(description = "合同类型", example = "1")
+ @ExcelProperty("合同类型")
+ private String contractType;
+
+ @Schema(description = "签署日期;与ERP(HTQDRQ)对应")
+ @ExcelProperty("签署日期;与ERP(HTQDRQ)对应")
+ private LocalDateTime signDate;
+
+ @Schema(description = "开始日期;与ERP(HTQSRQ)对应")
+ @ExcelProperty("开始日期;与ERP(HTQSRQ)对应")
+ private LocalDateTime startDate;
+
+ @Schema(description = "结束日期;与ERP(HTZZRQ)对应")
+ @ExcelProperty("结束日期;与ERP(HTZZRQ)对应")
+ private LocalDateTime endDate;
+
+ @Schema(description = "签署地")
+ @ExcelProperty("签署地")
+ private String signPlace;
+
+ @Schema(description = "甲方公司编号;如果是采购合同,查询组织机构自动带出,且与ERP(HTQDZTBH)对应,如果是销售合同,手动选择,且与ERP(WLDWBH)对应。")
+ @ExcelProperty("甲方公司编号;如果是采购合同,查询组织机构自动带出,且与ERP(HTQDZTBH)对应,如果是销售合同,手动选择,且与ERP(WLDWBH)对应。")
+ private String purchaseCompanyNumber;
+
+ @Schema(description = "甲方公司名称", example = "王五")
+ @ExcelProperty("甲方公司名称")
+ private String purchaseCompanyName;
+
+ @Schema(description = "甲方地址")
+ @ExcelProperty("甲方地址")
+ private String purchaseAddress;
+
+ @Schema(description = "甲方法定代表人")
+ @ExcelProperty("甲方法定代表人")
+ private String purchaseLeader;
+
+ @Schema(description = "乙方公司编号;如果是销售合同,查询组织机构自动带出,且与ERP(HTQDZTBH)对应,如果是采购合同,手动选择,且与ERP(WLDWBH)对应。")
+ @ExcelProperty("乙方公司编号;如果是销售合同,查询组织机构自动带出,且与ERP(HTQDZTBH)对应,如果是采购合同,手动选择,且与ERP(WLDWBH)对应。")
+ private String salesCompanyNumber;
+
+ @Schema(description = "乙方公司名称", example = "王五")
+ @ExcelProperty("乙方公司名称")
+ private String salesCompanyName;
+
+ @Schema(description = "乙方地址")
+ @ExcelProperty("乙方地址")
+ private String salesAddress;
+
+ @Schema(description = "乙方企业负责人")
+ @ExcelProperty("乙方企业负责人")
+ private String salesPurchaseLeader;
+
+ @Schema(description = "币种;与ERP(BZBH)对应")
+ @ExcelProperty("币种;与ERP(BZBH)对应")
+ private String currency;
+
+ @Schema(description = "原币金额;与ERP(HTYBZJE)对应,币种不是人民币时,显示并手动填写,如果是人民币,隐藏且等于本币金额")
+ @ExcelProperty("原币金额;与ERP(HTYBZJE)对应,币种不是人民币时,显示并手动填写,如果是人民币,隐藏且等于本币金额")
+ private BigDecimal cooAmount;
+
+ @Schema(description = "本币金额;与ERP(HTBWBZJE)对应")
+ @ExcelProperty("本币金额;与ERP(HTBWBZJE)对应")
+ private BigDecimal basicAmount;
+
+ @Schema(description = "是否有履约保证金;为是,则保证金必填。")
+ @ExcelProperty("是否有履约保证金;为是,则保证金必填。")
+ private String hasDeposit;
+
+ @Schema(description = "原币履约保证金;与ERP(LYBZJBGQYB)对应,币种不是人民币时,显示并手动填写,如果是人民币,隐藏且等于本币金额")
+ @ExcelProperty("原币履约保证金;与ERP(LYBZJBGQYB)对应,币种不是人民币时,显示并手动填写,如果是人民币,隐藏且等于本币金额")
+ private BigDecimal cooAmountDeposit;
+
+ @Schema(description = "本币履约保证金;与ERP(LYBZJBGQBWB)对应")
+ @ExcelProperty("本币履约保证金;与ERP(LYBZJBGQBWB)对应")
+ private BigDecimal basicAmountDeposit;
+
+ @Schema(description = "是否有预付款;与ERP(SFYYFK)对应")
+ @ExcelProperty("是否有预付款;与ERP(SFYYFK)对应")
+ private String hasPrepayment;
+
+ @Schema(description = "预付款比例;与ERP(YFKBL)对应")
+ @ExcelProperty("预付款比例;与ERP(YFKBL)对应")
+ private BigDecimal prepaymentRatio;
+
+ @Schema(description = "预付款金额;与ERP(YFKJE)对应")
+ @ExcelProperty("预付款金额;与ERP(YFKJE)对应")
+ private BigDecimal prepaymentAmount;
+
+ @Schema(description = "是否有质保金;与ERP(SFHZBJ)对应")
+ @ExcelProperty("是否有质保金;与ERP(SFHZBJ)对应")
+ private String hasQualityAmount;
+
+ @Schema(description = "质保金比例;与ERP(ZBJBL)对应")
+ @ExcelProperty("质保金比例;与ERP(ZBJBL)对应")
+ private BigDecimal qualityRatio;
+
+ @Schema(description = "质保金金额;与ERP(BZJJE)对应")
+ @ExcelProperty("质保金金额;与ERP(BZJJE)对应")
+ private BigDecimal qualityAmount;
+
+ @Schema(description = "补充协议类型;变更协议/增加条款", example = "1")
+ @ExcelProperty("补充协议类型;变更协议/增加条款")
+ private String replenishAgreementType;
+
+ @Schema(description = "备注;与ERP(BZXX)对应")
+ @ExcelProperty("备注;与ERP(BZXX)对应")
+ private String remark;
+
+ @Schema(description = "施工类型编号;与ERP(HTLXBH)对应,拓展信息")
+ @ExcelProperty("施工类型编号;与ERP(HTLXBH)对应,拓展信息")
+ private String constructionTypeNumber;
+
+ @Schema(description = "施工类型名称;与ERP(HTLXMC)对应,拓展信息", example = "张三")
+ @ExcelProperty("施工类型名称;与ERP(HTLXMC)对应,拓展信息")
+ private String constructionTypeName;
+
+ @Schema(description = "代理方;与ERP(ZLIFNR)对应,拓展信息")
+ @ExcelProperty("代理方;与ERP(ZLIFNR)对应,拓展信息")
+ private String agent;
+
+ @Schema(description = "类别;与ERP(HTLB)对应,拓展信息")
+ @ExcelProperty("类别;与ERP(HTLB)对应,拓展信息")
+ private String category;
+
+ @Schema(description = "原币金额-变更后;与ERP(BGHHTYBZJE)对应,拓展信息")
+ @ExcelProperty("原币金额-变更后;与ERP(BGHHTYBZJE)对应,拓展信息")
+ private BigDecimal changeCooAmount;
+
+ @Schema(description = "本币金额-变更后;与ERP(BGHHTBWBZJE)对应,拓展信息")
+ @ExcelProperty("本币金额-变更后;与ERP(BGHHTBWBZJE)对应,拓展信息")
+ private BigDecimal changeBasicAmount;
+
+ @Schema(description = "原币履约保证金-变更后;与ERP(LYBZJBGHYB)对应,拓展信息")
+ @ExcelProperty("原币履约保证金-变更后;与ERP(LYBZJBGHYB)对应,拓展信息")
+ private BigDecimal changeCooAmountDeposit;
+
+ @Schema(description = "本币履约保证金-变更后;与ERP(LYBZJBGHBWB)对应,拓展信息")
+ @ExcelProperty("本币履约保证金-变更后;与ERP(LYBZJBGHBWB)对应,拓展信息")
+ private BigDecimal changeBasicAmountDeposit;
+
+ @Schema(description = "是否框架合同;与ERP(SFKJHT)对应,拓展信息")
+ @ExcelProperty("是否框架合同;与ERP(SFKJHT)对应,拓展信息")
+ private String isFramework;
+
+ @Schema(description = "境内/境外;与ERP(JNJW)对应,拓展信息")
+ @ExcelProperty("境内/境外;与ERP(JNJW)对应,拓展信息")
+ private String isDomestic;
+
+ @Schema(description = "建筑服务发生地;与ERP(JZFWFSD)对应,拓展信息,销售合同,且类型为SAP02COSR必填")
+ @ExcelProperty("建筑服务发生地;与ERP(JZFWFSD)对应,拓展信息,销售合同,且类型为SAP02COSR必填")
+ private String architectureServicePlace;
+
+ @Schema(description = "达到收款条件金额;与ERP(DDSKJE)对应,拓展信息,销售合同,且类型为SAP02COSR必填")
+ @ExcelProperty("达到收款条件金额;与ERP(DDSKJE)对应,拓展信息,销售合同,且类型为SAP02COSR必填")
+ private BigDecimal payeeConditionAmount;
+
+ @Schema(description = "创建时间")
+ @ExcelProperty("创建时间")
+ private LocalDateTime createTime;
+
+ @Schema(description = "步骤")
+ @ExcelProperty("步骤")
+ private Integer step;
+
+ // 物料信息
+ private List detail;
+
+ // 合同动态表单
+ private List dynamicsFields;
+
+ // 合同动态条款
+ private List dynamicsItems;
+}
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractFormulaDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractFormulaDO.java
index 539a56a..4dda223 100644
--- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractFormulaDO.java
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractFormulaDO.java
@@ -61,7 +61,7 @@ public class ContractFormulaDO extends BusinessBaseDO {
* 计算小数位
*/
@TableField("DEC")
- private Long decimal;
+ private Long decimalBit;
/**
* 金属元素编码
*/
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractPriceDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractPriceDO.java
index 3eb77a1..80b8013 100644
--- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractPriceDO.java
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractPriceDO.java
@@ -94,5 +94,5 @@ public class ContractPriceDO extends BusinessBaseDO {
* 网价小数位
*/
@TableField("DEC")
- private BigDecimal decimal;
+ private BigDecimal decimalBit;
}
\ No newline at end of file
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractMainMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractMainMapper.java
index cbe8d27..9f7ab87 100644
--- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractMainMapper.java
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractMainMapper.java
@@ -3,7 +3,7 @@ package com.zt.plat.module.contractorder.dal.mysql.contract;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
-import com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton.ContractPageReqVO;
+import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.ContractPageReqVO;
import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractMainDO;
import org.apache.ibatis.annotations.Mapper;
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java
index cdac6ba..e9aed34 100644
--- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java
@@ -1,8 +1,9 @@
package com.zt.plat.module.contractorder.service.contract;
import com.zt.plat.framework.common.pojo.PageResult;
-import com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton.ContractPageReqVO;
-import com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton.ContractSaveReqVO;
+import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.ContractPageReqVO;
+import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.ContractSaveReqVO;
+import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.ContractViewRespVO;
import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractMainDO;
import jakarta.validation.Valid;
@@ -28,4 +29,12 @@ public interface ContractService {
* @return 合同ID
*/
Long createContract(@Valid ContractSaveReqVO reqVO);
+
+ /**
+ * 获得合同详情
+ *
+ * @param id 合同ID
+ * @return 合同信息
+ */
+ ContractViewRespVO get(Long id);
}
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java
index 59167e0..e85de9d 100644
--- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java
@@ -4,10 +4,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.framework.tenant.core.context.CompanyContextHolder;
+import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceDataRespVO;
+import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceItemRespVO;
import com.zt.plat.module.base.dal.dataobject.tmpltp.TemplateInstanceDataDO;
+import com.zt.plat.module.base.dal.dataobject.tmpltp.TemplateInstanceItemDO;
+import com.zt.plat.module.base.dal.mysql.tmpltp.TemplateInstanceDataMapper;
+import com.zt.plat.module.base.dal.mysql.tmpltp.TemplateInstanceItemMapper;
import com.zt.plat.module.base.service.tmpltp.TemplateInstanceDataService;
-import com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton.ContractPageReqVO;
-import com.zt.plat.module.contractorder.controller.admin.contract.vo.preparaton.ContractSaveReqVO;
+import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.*;
import com.zt.plat.module.contractorder.dal.dataobject.contract.*;
import com.zt.plat.module.contractorder.dal.mysql.contract.*;
import com.zt.plat.module.contractorder.enums.contract.ContractStatusEnum;
@@ -44,6 +48,10 @@ public class ContractServiceImpl implements ContractService {
@Resource
private TemplateInstanceDataService templateInstanceDataService;
@Resource
+ private TemplateInstanceDataMapper templateInstanceDataMapper;
+ @Resource
+ private TemplateInstanceItemMapper templateInstanceItemMapper;
+ @Resource
private ContractFormulaMapper contractFormulaMapper;
@Resource
private ContractCoefficientMapper contractCoefficientMapper;
@@ -92,99 +100,201 @@ public class ContractServiceImpl implements ContractService {
// 合同主信息ID
Long contractId = contractMainDO.getId();
// 合同明细
- reqVO.getDetail().forEach(detail -> {
- // 合同明细DO
- ContractDetailDO detailDO = BeanUtils.toBean(detail, ContractDetailDO.class);
- // 设置合同主信息ID
- detailDO.setContractMainId(contractId);
- // 保存合同明细
- contractDetailMapper.insert(detailDO);
+ if (reqVO.getDetail() != null && !reqVO.getDetail().isEmpty()) {
+ reqVO.getDetail().forEach(detail -> {
+ // 合同明细DO
+ ContractDetailDO detailDO = BeanUtils.toBean(detail, ContractDetailDO.class);
+ // 设置合同主信息ID
+ detailDO.setContractMainId(contractId);
+ // 保存合同明细
+ contractDetailMapper.insert(detailDO);
- // 合同明细ID
- Long detailDOId = detailDO.getId();
- // 交货计划
- detail.getPlans().forEach(plan -> {
- // 交货计划DO
- ContractPlanDO planDO = BeanUtils.toBean(plan, ContractPlanDO.class);
- // 合同明细主键
- planDO.setContractDetailId(detailDOId);
- // 保存交货计划
- contractPlanMapper.insert(planDO);
+ // 合同明细ID
+ Long detailDOId = detailDO.getId();
+ // 交货计划
+ if (detail.getPlans() != null && !detail.getPlans().isEmpty()) {
+ detail.getPlans().forEach(plan -> {
+ // 交货计划DO
+ ContractPlanDO planDO = BeanUtils.toBean(plan, ContractPlanDO.class);
+ // 合同明细主键
+ planDO.setContractDetailId(detailDOId);
+ // 保存交货计划
+ contractPlanMapper.insert(planDO);
+ });
+ }
+
+ // 价款结算条款
+ if (detail.getFormulas() != null && !detail.getFormulas().isEmpty()) {
+ detail.getFormulas().forEach(formula -> {
+ // 价款结算条款DO
+ ContractFormulaDO formulaDO = BeanUtils.toBean(formula, ContractFormulaDO.class);
+ // 合同明细主键
+ formulaDO.setContractDetailId(detailDOId);
+ // 保存价款结算条款
+ contractFormulaMapper.insert(formulaDO);
+
+ // 价款结算条款ID
+ Long formulaDOId = formulaDO.getId();
+ // 基础系数配置
+ if (formula.getCoefficients() != null && !formula.getCoefficients().isEmpty()) {
+ formula.getCoefficients().forEach(coefficient -> {
+ // 基础系数配置DO
+ ContractCoefficientDO coefficientDO = BeanUtils.toBean(coefficient, ContractCoefficientDO.class);
+ // 条款主键
+ coefficientDO.setFormulaId(formulaDOId);
+ // 保存基础系数配置
+ contractCoefficientMapper.insert(coefficientDO);
+ });
+ }
+ // 品位等级价配置
+ if (formula.getGrades() != null && !formula.getGrades().isEmpty()) {
+ formula.getGrades().forEach(grade -> {
+ // 品位等级价配置DO
+ ContractGradeDO gradeDO = BeanUtils.toBean(grade, ContractGradeDO.class);
+ // 条款主键
+ gradeDO.setFormulaId(formulaDOId);
+ // 保存品位等级价配置
+ contractGradeMapper.insert(gradeDO);
+ });
+ }
+ // 调整价配置
+ if (formula.getDeducts() != null && !formula.getDeducts().isEmpty()) {
+ formula.getDeducts().forEach(deduct -> {
+ // 调整价配置DO
+ ContractDeductDO deductDO = BeanUtils.toBean(deduct, ContractDeductDO.class);
+ // 条款主键
+ deductDO.setFormulaId(formulaDOId);
+ // 保存品位等级价配置
+ contractDeductMapper.insert(deductDO);
+ });
+ }
+ // 市场价配置
+ if (formula.getPrices()!= null && !formula.getPrices().isEmpty()) {
+ formula.getPrices().forEach(price -> {
+ // 市场价配置DO
+ ContractPriceDO priceDO = BeanUtils.toBean(price, ContractPriceDO.class);
+ // 条款主键
+ priceDO.setFormulaId(formulaDOId);
+ // 保存市场价配置
+ contractPriceMapper.insert(priceDO);
+ });
+ }
+ // 品位不计价配置
+ if (formula.getNots() != null && !formula.getNots().isEmpty()) {
+ formula.getNots().forEach(not -> {
+ // 品位不计价配置DO
+ ContractNotDO notDO = BeanUtils.toBean(not, ContractNotDO.class);
+ // 条款主键
+ notDO.setFormulaId(formulaDOId);
+ // 保存品位不计价配置
+ contractNotMapper.insert(notDO);
+ });
+ }
+ });
+ }
});
-
- // 价款结算条款
- detail.getFormulas().forEach(formula -> {
- // 价款结算条款DO
- ContractFormulaDO formulaDO = BeanUtils.toBean(formula, ContractFormulaDO.class);
- // 合同明细主键
- formulaDO.setContractDetailId(detailDOId);
- // 保存价款结算条款
- contractFormulaMapper.insert(formulaDO);
-
- // 价款结算条款ID
- Long formulaDOId = formulaDO.getId();
- // 基础系数配置
- formula.getCoefficients().forEach(coefficient -> {
- // 基础系数配置DO
- ContractCoefficientDO coefficientDO = BeanUtils.toBean(coefficient, ContractCoefficientDO.class);
- // 条款主键
- coefficientDO.setFormulaId(formulaDOId);
- // 保存基础系数配置
- contractCoefficientMapper.insert(coefficientDO);
- });
- // 品位等级价配置
- formula.getGrades().forEach(grade -> {
- // 品位等级价配置DO
- ContractGradeDO gradeDO = BeanUtils.toBean(grade, ContractGradeDO.class);
- // 条款主键
- gradeDO.setFormulaId(formulaDOId);
- // 保存品位等级价配置
- contractGradeMapper.insert(gradeDO);
- });
- // 调整价配置
- formula.getDeducts().forEach(deduct -> {
- // 调整价配置DO
- ContractDeductDO deductDO = BeanUtils.toBean(deduct, ContractDeductDO.class);
- // 条款主键
- deductDO.setFormulaId(formulaDOId);
- // 保存品位等级价配置
- contractDeductMapper.insert(deductDO);
- });
- // 市场价配置
- formula.getPrices().forEach(price -> {
- // 市场价配置DO
- ContractPriceDO priceDO = BeanUtils.toBean(price, ContractPriceDO.class);
- // 条款主键
- priceDO.setFormulaId(formulaDOId);
- // 保存市场价配置
- contractPriceMapper.insert(priceDO);
- });
- // 品位不计价配置
- formula.getNots().forEach(not -> {
- // 品位不计价配置DO
- ContractNotDO notDO = BeanUtils.toBean(not, ContractNotDO.class);
- // 条款主键
- notDO.setFormulaId(formulaDOId);
- // 保存品位不计价配置
- contractNotMapper.insert(notDO);
- });
- });
- });
+ }
// 合同动态表单
List templateInstanceDataDOS = new ArrayList<>();
- reqVO.getDynamicsFields().forEach(dynamicsField -> {
- TemplateInstanceDataDO templateInstanceDataDO = new TemplateInstanceDataDO();
- BeanUtils.copyProperties(dynamicsField, templateInstanceDataDO);
- templateInstanceDataDO.setInscId(reqVO.getInstanceId().toString());
- templateInstanceDataDOS.add(templateInstanceDataDO);
- });
+ if (reqVO.getDynamicsFields() != null && !reqVO.getDynamicsFields().isEmpty()) {
+ reqVO.getDynamicsFields().forEach(dynamicsField -> {
+ TemplateInstanceDataDO templateInstanceDataDO = new TemplateInstanceDataDO();
+ BeanUtils.copyProperties(dynamicsField, templateInstanceDataDO);
+ templateInstanceDataDO.setInscId(reqVO.getInstanceId().toString());
+ templateInstanceDataDOS.add(templateInstanceDataDO);
+ });
+ }
// 更新合同动态表单值
- templateInstanceDataService.setTemplateInstanceData(templateInstanceDataDOS);
+ if (!templateInstanceDataDOS.isEmpty()) {
+ templateInstanceDataService.setTemplateInstanceData(templateInstanceDataDOS);
+ }
return contractMainDO.getId();
}
+ @Override
+ public ContractViewRespVO get(Long id) {
+
+ // 返回结果
+ ContractViewRespVO respVO = new ContractViewRespVO();
+
+ // 查询并设置合同主信息
+ ContractMainDO contractMainDO = contractMainMapper.selectById(id);
+ if (contractMainDO == null) {
+ throw exception(CONTRACT_NOT_EXISTS);
+ }
+ BeanUtils.copyProperties(contractMainDO, respVO);
+
+ // 查询并设置物料信息
+ List detailDOS = contractDetailMapper
+ .selectList("CTRT_MAIN_ID", contractMainDO.getId());
+ if (detailDOS != null && !detailDOS.isEmpty()) {
+ respVO.setDetail(BeanUtils.toBean(detailDOS, ContractViewDetailRespVO.class));
+ respVO.getDetail().forEach(detail -> {
+
+ // 查询并设置交货计划
+ List planDOS = contractPlanMapper.selectList("CTRT_DTL_ID", detail.getId());
+ if (planDOS != null && !planDOS.isEmpty()) {
+ detail.setPlans(BeanUtils.toBean(planDOS, ContractViewPlanRespVO.class));
+ }
+
+ // 查询并设置价款结算条款
+ List formulaDOS = contractFormulaMapper
+ .selectList("CTRT_DTL_ID", detail.getId());
+ if (formulaDOS != null && !formulaDOS.isEmpty()) {
+ detail.setFormulas(BeanUtils.toBean(formulaDOS, ContractViewFormulaRespVO.class));
+
+ detail.getFormulas().forEach(formula -> {
+
+ // 查询并设置基础系数配置
+ List coefficientDOS = contractCoefficientMapper
+ .selectList("FMU_ID", formula.getId());
+ if (coefficientDOS != null && !coefficientDOS.isEmpty()) {
+ formula.setCoefficients(BeanUtils.toBean(coefficientDOS, ContractViewCoefficientRespVO.class));
+ }
+ // 查询并设置品位等级价配置
+ List gradeDOS = contractGradeMapper.selectList("FMU_ID", formula.getId());
+ if (gradeDOS != null && !gradeDOS.isEmpty()) {
+ formula.setGrades(BeanUtils.toBean(gradeDOS, ContractViewGradeRespVO.class));
+ }
+ // 查询并设置调整价配置
+ List deductDOS = contractDeductMapper.selectList("FMU_ID", formula.getId());
+ if (deductDOS != null && !deductDOS.isEmpty()) {
+ formula.setDeducts(BeanUtils.toBean(deductDOS, ContractViewDeductRespVO.class));
+ }
+ // 查询并设置市场价配置
+ List priceDOS = contractPriceMapper.selectList("FMU_ID", formula.getId());
+ if (priceDOS != null && !priceDOS.isEmpty()) {
+ formula.setPrices(BeanUtils.toBean(priceDOS, ContractViewPriceRespVO.class));
+ }
+ // 查询并设置品位不计价配置
+ List notDOS = contractNotMapper.selectList("FMU_ID", formula.getId());
+ if (notDOS != null && !notDOS.isEmpty()) {
+ formula.setNots(BeanUtils.toBean(notDOS, ContractViewNotRespVO.class));
+ }
+ });
+ }
+ });
+ }
+
+ // 查询并设置合同动态表单
+ List templateInstanceDataDOS = templateInstanceDataMapper
+ .selectList("INSC_ID", contractMainDO.getInstanceId());
+ if (templateInstanceDataDOS != null && !templateInstanceDataDOS.isEmpty()) {
+ respVO.setDynamicsFields(BeanUtils.toBean(templateInstanceDataDOS, TemplateInstanceDataRespVO.class));
+ }
+
+ // 查询并设置合同动态条款
+ List templateInstanceItemDOS = templateInstanceItemMapper
+ .selectList("INSC_ID", contractMainDO.getInstanceId());
+ if (templateInstanceItemDOS != null && !templateInstanceItemDOS.isEmpty()) {
+ respVO.setDynamicsItems(BeanUtils.toBean(templateInstanceItemDOS, TemplateInstanceItemRespVO.class));
+ }
+
+ return respVO;
+ }
+
/**
* 生成系统合同编号
*
diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpProductiveOrderServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpProductiveOrderServiceImpl.java
index 14bf5bc..e04c1f5 100644
--- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpProductiveOrderServiceImpl.java
+++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpProductiveOrderServiceImpl.java
@@ -8,6 +8,7 @@ import com.zt.plat.module.erp.common.enums.OftenEnum;
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpProductiveOrderPageReqVO;
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpProductiveOrderRespVO;
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpProductiveOrderSaveReqVO;
+import com.zt.plat.module.erp.dal.dataobject.erp.ErpContractDO;
import com.zt.plat.module.erp.dal.dataobject.erp.ErpProductiveOrderDO;
import com.zt.plat.module.erp.dal.dataobject.erp.ErpProductiveOrderDO;
import com.zt.plat.module.erp.dal.mysql.erp.ErpProductiveOrderMapper;
@@ -20,6 +21,8 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -71,12 +74,12 @@ public class ErpProductiveOrderServiceImpl implements ErpProductiveOrderService
}
@Override
- public void deleteErpProductiveOrderListByIds(List ids) {
+ public void deleteErpProductiveOrderListByIds(List ids) {
// 校验存在
validateErpProductiveOrderExists(ids);
// 删除
erpProductiveOrderMapper.deleteByIds(ids);
- }
+ }
private void validateErpProductiveOrderExists(List ids) {
List list = erpProductiveOrderMapper.selectByIds(ids);
@@ -98,7 +101,80 @@ public class ErpProductiveOrderServiceImpl implements ErpProductiveOrderService
@Override
public PageResult getErpProductiveOrderPage(ErpProductiveOrderPageReqVO pageReqVO) {
- return erpProductiveOrderMapper.selectPage(pageReqVO);
+ OftenEnum.FuncnrEnum funcnrEnum = OftenEnum.FuncnrEnum.生产订单;
+ String funcnr = funcnrEnum.getFuncnr();
+ Map req = new HashMap<>();
+
+ // 构建查询参数
+ req.put("BUKRS", pageReqVO.getCompanyNumber());
+ req.put("WERKS", pageReqVO.getFactoryNumber());
+
+ // 处理日期参数
+ if (pageReqVO.getStartDate() != null) {
+ req.put("BEGDA", pageReqVO.getStartDate()[0].format(DateTimeFormatter.ofPattern("yyyyMMdd")));
+ }
+ if (pageReqVO.getEndDate() != null) {
+ req.put("ENDDA", pageReqVO.getEndDate()[0].format(DateTimeFormatter.ofPattern("yyyyMMdd")));
+ }
+
+ // 调用ERP接口获取数据
+ JSONArray dataArray = erpConfig.fetchDataFromERP(funcnr, req);
+ if (dataArray == null || dataArray.isEmpty()) {
+ // 返回空结果而不是抛出异常
+ return new PageResult<>(new ArrayList<>(), 0L);
+ }
+
+ List list = new ArrayList<>();
+ for (int i = 0; i < dataArray.size(); i++) {
+ JSONObject dataJson = dataArray.getJSONObject(i);
+ if (dataJson != null) {
+ ErpProductiveOrderDO orderDO = new ErpProductiveOrderDO();
+
+ // 基本信息
+ orderDO.setCompanyNumber(dataJson.getString("BUKRS"));
+ orderDO.setFactoryNumber(dataJson.getString("WERKS").trim());
+ orderDO.setFactoryName(dataJson.getString("NAME1"));
+ orderDO.setOrderNumber(dataJson.getString("AUFNR"));
+
+ // 日期处理
+ String plannedStartDate = dataJson.getString("GLTRP");
+ String actualStartDate = dataJson.getString("GSTRP");
+
+ if (plannedStartDate != null && !plannedStartDate.equals("0000-00-00")) {
+ try {
+ orderDO.setStartDate(LocalDateTime.parse(plannedStartDate));
+ } catch (Exception e) {
+ // 忽略日期解析错误
+ }
+ }
+
+ if (actualStartDate != null && !actualStartDate.equals("0000-00-00")) {
+ try {
+ orderDO.setEndDate(LocalDateTime.parse(actualStartDate));
+ } catch (Exception e) {
+ // 忽略日期解析错误
+ }
+ }
+
+ // 物料和工艺信息
+ orderDO.setMainMaterialNumber(dataJson.getString("STLBEZ"));
+ orderDO.setUnit(dataJson.getString("GMEIN"));
+ orderDO.setMaterialDescription(dataJson.getString("MAKTX"));
+ orderDO.setProcessingList(dataJson.getString("L_AFVC"));
+ orderDO.setProcessingNumber(dataJson.getString("VORNR"));
+ orderDO.setProcessingDescription(dataJson.getString("LTXA1"));
+ orderDO.setObjectNumber(dataJson.getString("OBJID"));
+ orderDO.setWorkCenterNumber(dataJson.getString("ARBPL"));
+ orderDO.setWorkCenterDescription(dataJson.getString("KTEXT"));
+ orderDO.setCostcenterNumber(dataJson.getString("KOSTL"));
+ orderDO.setCostcenterName(dataJson.getString("TEXT_C"));
+
+ list.add(orderDO);
+ }
+ }
+
+ // 返回分页结果
+ return new PageResult<>(list, (long) list.size());
}
@Override
@@ -106,7 +182,7 @@ public class ErpProductiveOrderServiceImpl implements ErpProductiveOrderService
@XxlJob("getErpProductiveOrderTask")
public void callErpRfcInterface() {
try {
- OftenEnum.FuncnrEnum funcnrEnum =OftenEnum.FuncnrEnum.生产订单;
+ OftenEnum.FuncnrEnum funcnrEnum = OftenEnum.FuncnrEnum.生产订单;
String funcnr = funcnrEnum.getFuncnr();
Map req = new HashMap<>();
@@ -135,7 +211,7 @@ public class ErpProductiveOrderServiceImpl implements ErpProductiveOrderService
}
// 2. 处理公司数据,区分新增和更新
- ProcessingResult result = processData(dataArrayALL,funcnrEnum);
+ ProcessingResult result = processData(dataArrayALL, funcnrEnum);
// 3. 批量保存数据
saveData(result);
@@ -151,7 +227,7 @@ public class ErpProductiveOrderServiceImpl implements ErpProductiveOrderService
*/
private ProcessingResult processData(JSONArray dataArray, OftenEnum.FuncnrEnum funcnr) {
String key = "erp" + funcnr.getFuncnr();
- Map> numbers = erpConfig.numbers(dataArray, key,funcnr.getDatakey());
+ Map> numbers = erpConfig.numbers(dataArray, key, funcnr.getDatakey());
List allnumbers = numbers.get("all");
List comnumbers = numbers.get("com");
List toUpdate = new ArrayList<>();
@@ -177,7 +253,7 @@ public class ErpProductiveOrderServiceImpl implements ErpProductiveOrderService
}
}
- return new ProcessingResult(toUpdate, toInsert,key,allnumbers);
+ return new ProcessingResult(toUpdate, toInsert, key, allnumbers);
}
/**
@@ -191,7 +267,7 @@ public class ErpProductiveOrderServiceImpl implements ErpProductiveOrderService
if (!result.toUpdate.isEmpty()) {
erpProductiveOrderMapper.updateBatch(result.toUpdate);
}
- erpConfig.updateRedisCache(result.key,result.allnumbers);
+ erpConfig.updateRedisCache(result.key, result.allnumbers);
}
/**
@@ -203,7 +279,7 @@ public class ErpProductiveOrderServiceImpl implements ErpProductiveOrderService
private final String key;
private final List allnumbers;
- public ProcessingResult(List toUpdate, List toInsert,String key,List allnumbers) {
+ public ProcessingResult(List toUpdate, List toInsert, String key, List allnumbers) {
this.toUpdate = toUpdate;
this.toInsert = toInsert;
this.key = key;