Bladeren bron

登录功能完成;订单下单完成

Huanyi 2 weken geleden
bovenliggende
commit
cef3d23b91
66 gewijzigde bestanden met toevoegingen van 2131 en 148 verwijderingen
  1. 0 1
      pom.xml
  2. 4 4
      ruoyi-admin/src/main/resources/application-dev.yml
  3. 3 3
      ruoyi-admin/src/main/resources/application-prod.yml
  4. 3 3
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysCustomerController.java
  5. 0 4
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysRoleController.java
  6. 3 2
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysCustomer.java
  7. 3 3
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysCustomerBo.java
  8. 0 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysRoleBo.java
  9. 16 7
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysCustomerVo.java
  10. 21 12
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysCustomerServiceImpl.java
  11. 8 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java
  12. 1 1
      ruoyi-modules/yingpaipay-erp/pom.xml
  13. 12 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/config/ErpDataSourceConfig.java
  14. 13 8
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/controller/ErpClientController.java
  15. 35 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/controller/ErpColorKindController.java
  16. 46 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/controller/ErpModelController.java
  17. 64 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/controller/ErpOrderController.java
  18. 66 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/controller/ErpOrderDetailController.java
  19. 35 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/controller/ErpPackController.java
  20. 29 28
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpClient.java
  21. 75 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpColorKind.java
  22. 124 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpModel.java
  23. 80 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpOrder.java
  24. 130 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpOrderDetail.java
  25. 63 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpPack.java
  26. 53 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/bo/ErpOrderBo.java
  27. 51 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/bo/ErpOrderDetailBo.java
  28. 12 10
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/query/ErpClientQuery.java
  29. 23 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/query/ErpColorKindQuery.java
  30. 23 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/query/ErpModelQuery.java
  31. 18 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/query/ErpOrderDetailQuery.java
  32. 27 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/query/ErpOrderQuery.java
  33. 23 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/query/ErpPackQuery.java
  34. 21 16
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpClientVo.java
  35. 39 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpColorKindVo.java
  36. 63 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpModelVo.java
  37. 60 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpOrderDetailVo.java
  38. 64 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpOrderVo.java
  39. 35 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpPackVo.java
  40. 21 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/enums/ErpOrderStatus.java
  41. 7 5
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/mapper/ErpClientMapper.java
  42. 15 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/mapper/ErpColorKindMapper.java
  43. 15 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/mapper/ErpModelMapper.java
  44. 15 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/mapper/ErpOrderDetailMapper.java
  45. 14 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/mapper/ErpOrderMapper.java
  46. 15 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/mapper/ErpPackMapper.java
  47. 7 5
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/IErpClientService.java
  48. 19 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/IErpColorKindService.java
  49. 27 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/IErpModelService.java
  50. 41 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/IErpOrderDetailService.java
  51. 38 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/IErpOrderService.java
  52. 19 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/IErpPackService.java
  53. 22 14
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpClientServiceImpl.java
  54. 31 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpColorKindServiceImpl.java
  55. 55 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpModelServiceImpl.java
  56. 94 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpOrderDetailServiceImpl.java
  57. 138 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpOrderServiceImpl.java
  58. 31 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpPackServiceImpl.java
  59. 0 15
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/yingpaipay/config/YingpaipayDataSourceConfig.java
  60. 2 2
      script/sql/sqlserver/v1/HS_ERP_Order-create.sql
  61. 0 0
      script/sql/sqlserver/v1/HS_ERP_Order-update.sql
  62. 105 0
      script/sql/sqlserver/v1/HTSail_CS-create.sql
  63. 1 0
      yingpaipay-api/pom.xml
  64. 7 0
      yingpaipay-api/yingpaipay-api-erp/pom.xml
  65. 6 4
      yingpaipay-api/yingpaipay-api-erp/src/main/java/org/dromara/yingpaipay/api/erp/CommonErpClientService.java
  66. 40 0
      yingpaipay-api/yingpaipay-api-erp/src/main/java/org/dromara/yingpaipay/api/erp/domain/vo/CommonErpClientVo.java

+ 0 - 1
pom.xml

@@ -374,7 +374,6 @@
     </dependencyManagement>
 
     <modules>
-        <module>yingpaipay-api/yingpaipay-api-bom</module>
         <module>yingpaipay-api</module>
         <module>ruoyi-admin</module>
         <module>ruoyi-common</module>

+ 4 - 4
ruoyi-admin/src/main/resources/application-dev.yml

@@ -57,14 +57,14 @@ spring:
           type: ${spring.datasource.type}
           driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
           # jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
-          url: jdbc:sqlserver://10.0.0.5:1433;DatabaseName=HS_ERP_Order;SelectMethod=cursor;encrypt=false
+          url: jdbc:sqlserver://10.0.0.6:1433;DatabaseName=HS_ERP_Order;SelectMethod=cursor;encrypt=false
           username: sa
           password: abc,123
-        # HTSail_Alu 数据源 (yingpaipay-erp 模块专用)
-        htsail_alu:
+        # HTSail_CS 数据源 (yingpaipay-erp 模块专用)
+        htsail_cs:
           type: ${spring.datasource.type}
           driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
-          url: jdbc:sqlserver://10.0.0.5:1433;DatabaseName=HTSail_Alu;SelectMethod=cursor;encrypt=false
+          url: jdbc:sqlserver://10.0.0.6:1433;DatabaseName=HTSail_CS;SelectMethod=cursor;encrypt=false
           username: sa
           password: abc,123
 #        # 从库数据源

+ 3 - 3
ruoyi-admin/src/main/resources/application-prod.yml

@@ -63,11 +63,11 @@ spring:
           url: jdbc:sqlserver://192.168.1.250:1433;DatabaseName=HS_ERP_Order;SelectMethod=cursor;encrypt=false
           username: sa
           password: abc,123
-        # HTSail_Alu 数据源 (yingpaipay-erp 模块专用)
-        htsail_alu:
+        # HTSail_CS 数据源 (yingpaipay-erp 模块专用)
+        htsail_cs:
           type: ${spring.datasource.type}
           driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
-          url: jdbc:sqlserver://192.168.1.250:1433;DatabaseName=HTSail_Alu;SelectMethod=cursor;encrypt=false
+          url: jdbc:sqlserver://192.168.1.250:1433;DatabaseName=HTSail_CS;SelectMethod=cursor;encrypt=false
           username: sa
           password: abc,123
 #        # 从库数据源

+ 3 - 3
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysCustomerController.java

@@ -83,7 +83,7 @@ public class SysCustomerController extends BaseController {
      * 授权客户
      *
      * @param id             客户ID
-     * @param authCustomerId 授权客户ID
+     * @param authClientFRowID 授权客户 RowID
      * @Author: Antigravity
      */
     @SaCheckPermission("customer:customer:auth")
@@ -91,10 +91,10 @@ public class SysCustomerController extends BaseController {
     @RepeatSubmit()
     @PutMapping("/auth")
     public R<Void> auth(@NotNull(message = "客户ID不能为空") Long id,
-                        @NotEmpty(message = "授权客户ERP编码不能为空") String authClientFNum) {
+                        @NotEmpty(message = "授权客户 RowID 不能为空") String authClientFRowID) {
         SysCustomerBo bo = new SysCustomerBo();
         bo.setId(id);
-        bo.setAuthClientFNum(authClientFNum);
+        bo.setAuthClientFRowID(authClientFRowID);
         return toAjax(sysCustomerService.updateByBo(bo));
     }
 }

+ 0 - 4
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysRoleController.java

@@ -84,8 +84,6 @@ public class SysRoleController extends BaseController {
         roleService.checkRoleAllowed(role);
         if (!roleService.checkRoleNameUnique(role)) {
             return R.fail("新增角色'" + role.getRoleName() + "'失败,角色名称已存在");
-        } else if (!roleService.checkRoleKeyUnique(role)) {
-            return R.fail("新增角色'" + role.getRoleName() + "'失败,角色权限已存在");
         }
         return toAjax(roleService.insertRole(role));
 
@@ -103,8 +101,6 @@ public class SysRoleController extends BaseController {
         roleService.checkRoleDataScope(role.getRoleId());
         if (!roleService.checkRoleNameUnique(role)) {
             return R.fail("修改角色'" + role.getRoleName() + "'失败,角色名称已存在");
-        } else if (!roleService.checkRoleKeyUnique(role)) {
-            return R.fail("修改角色'" + role.getRoleName() + "'失败,角色权限已存在");
         }
 
         if (roleService.updateRole(role) > 0) {

+ 3 - 2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysCustomer.java

@@ -51,9 +51,10 @@ public class SysCustomer extends TenantEntity {
     private String wechatUnionid;
 
     /**
-     * 授权客户ERP编码
+     * 授权客户ERP RowID
      */
-    private String authClientFNum;
+    @TableField("auth_client_frowid")
+    private String authClientFRowID;
 
     /**
      * 头像OSS ID

+ 3 - 3
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysCustomerBo.java

@@ -50,10 +50,10 @@ public class SysCustomerBo extends BaseEntity {
     private String wechatUnionid;
 
     /**
-     * 授权客户ERP编码
+     * 授权客户ERP RowID
      */
-    @Size(min = 0, max = 100, message = "授权客户ERP编码长度不能超过{max}个字符")
-    private String authClientFNum;
+    @Size(min = 0, max = 100, message = "授权客户ERP RowID长度不能超过{max}个字符")
+    private String authClientFRowID;
 
     /**
      * 头像OSS ID

+ 0 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysRoleBo.java

@@ -38,7 +38,6 @@ public class SysRoleBo extends BaseEntity {
     /**
      * 角色权限字符串
      */
-    @NotBlank(message = "角色权限字符串不能为空")
     @Size(min = 0, max = 100, message = "权限字符长度不能超过{max}个字符")
     private String roleKey;
 

+ 16 - 7
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysCustomerVo.java

@@ -46,20 +46,29 @@ public class SysCustomerVo implements Serializable {
     /**
      * 微信OpenID
      */
-    @ExcelProperty(value = "微信OpenID")
     private String wechatOpenid;
 
     /**
      * 微信UnionID
      */
-    @ExcelProperty(value = "微信UnionID")
     private String wechatUnionid;
 
     /**
-     * 授权客户ERP编码
+     * 授权客户类型
      */
-    @ExcelProperty(value = "授权客户ERP编码")
-    private String authClientFNum;
+    @ExcelProperty(value = "授权客户类型")
+    private String authClientClass;
+
+    /**
+     * 授权加入时间
+     */
+    @ExcelProperty(value = "授权加入时间")
+    private Date authClientEnterDate;
+
+    /**
+     * 授权客户ERP RowID
+     */
+    private String authClientFRowID;
 
     /**
      * 授权客户名称
@@ -80,9 +89,9 @@ public class SysCustomerVo implements Serializable {
     private String avatarUrl;
 
     /**
-     * 创建时间
+     * 注册时间
      */
-    @ExcelProperty(value = "创建时间")
+    @ExcelProperty(value = "注册时间")
     private Date createTime;
 
 }

+ 21 - 12
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysCustomerServiceImpl.java

@@ -17,6 +17,7 @@ import org.dromara.system.domain.vo.SysCustomerVo;
 import org.dromara.system.mapper.SysCustomerMapper;
 import org.dromara.system.service.ISysCustomerService;
 import org.springframework.cache.annotation.Cacheable;
+import org.dromara.yingpaipay.api.erp.domain.vo.CommonErpClientVo;
 import org.springframework.stereotype.Service;
 
 import org.dromara.yingpaipay.api.erp.CommonErpClientService;
@@ -59,37 +60,45 @@ public class SysCustomerServiceImpl implements ISysCustomerService, CustomerServ
     }
 
     /**
-     * 批量填充授权客户名称
+     * 批量填充授权客户信息
      */
     private void fillAuthClientName(List<SysCustomerVo> list) {
-        if (StringUtils.isEmpty(list)) {
+        if (list == null || list.isEmpty()) {
             return;
         }
-        List<String> authClientFNums = list.stream()
-            .map(SysCustomerVo::getAuthClientFNum)
+        List<String> authClientFRowIDs = list.stream()
+            .map(SysCustomerVo::getAuthClientFRowID)
             .filter(StringUtils::isNotBlank)
             .distinct()
             .toList();
-        if (StringUtils.isEmpty(authClientFNums)) {
+        if (authClientFRowIDs.isEmpty()) {
             return;
         }
-        Map<String, String> nameMap = commonErpClientService.selectNameByFNums(authClientFNums);
+        Map<String, CommonErpClientVo> infoMap = commonErpClientService.selectInfoByFRowIDs(authClientFRowIDs);
         list.forEach(vo -> {
-            if (StringUtils.isNotBlank(vo.getAuthClientFNum())) {
-                vo.setAuthClientName(nameMap.get(vo.getAuthClientFNum()));
+            CommonErpClientVo erpVo = infoMap.get(vo.getAuthClientFRowID());
+            if (erpVo != null) {
+                vo.setAuthClientName(erpVo.getFName());
+                vo.setAuthClientClass(erpVo.getFClass());
+                vo.setAuthClientEnterDate(erpVo.getEnterDate());
             }
         });
     }
 
     /**
-     * 单个填充授权客户名称
+     * 单个填充授权客户信息
      */
     private void fillAuthClientName(SysCustomerVo vo) {
-        if (vo == null || StringUtils.isBlank(vo.getAuthClientFNum())) {
+        if (vo == null || StringUtils.isBlank(vo.getAuthClientFRowID())) {
             return;
         }
-        Map<String, String> nameMap = commonErpClientService.selectNameByFNums(List.of(vo.getAuthClientFNum()));
-        vo.setAuthClientName(nameMap.get(vo.getAuthClientFNum()));
+        Map<String, CommonErpClientVo> infoMap = commonErpClientService.selectInfoByFRowIDs(List.of(vo.getAuthClientFRowID()));
+        CommonErpClientVo erpVo = infoMap.get(vo.getAuthClientFRowID());
+        if (erpVo != null) {
+            vo.setAuthClientName(erpVo.getFName());
+            vo.setAuthClientClass(erpVo.getFClass());
+            vo.setAuthClientEnterDate(erpVo.getEnterDate());
+        }
     }
 
     private LambdaQueryWrapper<SysCustomer> buildQueryWrapper(SysCustomerBo bo) {

+ 8 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java

@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
+import cn.hutool.core.util.IdUtil;
 import org.dromara.common.core.constant.CacheNames;
 import org.dromara.common.core.constant.SystemConstants;
 import org.dromara.common.core.constant.TenantConstants;
@@ -293,6 +294,13 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
     @Override
     @Transactional(rollbackFor = Exception.class)
     public int insertRole(SysRoleBo bo) {
+        // 自动生成权限字符并保证唯一
+        String roleKey = IdUtil.fastSimpleUUID();
+        bo.setRoleKey(roleKey);
+        while (!checkRoleKeyUnique(bo)) {
+            roleKey = IdUtil.fastSimpleUUID();
+            bo.setRoleKey(roleKey);
+        }
         SysRole role = MapstructUtils.convert(bo, SysRole.class);
         // 新增角色信息
         baseMapper.insert(role);

+ 1 - 1
ruoyi-modules/yingpaipay-erp/pom.xml

@@ -12,7 +12,7 @@
     <artifactId>yingpaipay-erp</artifactId>
 
     <description>
-        原ERP系统数据对接模块 - 使用 HTSail_Alu 数据库
+        原ERP系统数据对接模块 - 使用 HTSail_CS 数据库
     </description>
 
     <dependencies>

+ 12 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/config/ErpDataSourceConfig.java

@@ -0,0 +1,12 @@
+package org.dromara.erp.config;
+
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * ERP 数据源配置 (占位或扩展用)
+ *
+ * @Author: Antigravity
+ */
+@Configuration
+public class ErpDataSourceConfig {
+}

+ 13 - 8
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/yingpaipay/controller/ErpClientController.java → ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/controller/ErpClientController.java

@@ -1,17 +1,22 @@
-package org.dromara.yingpaipay.controller;
+package org.dromara.erp.controller;
 
 import lombok.RequiredArgsConstructor;
 import org.dromara.common.core.domain.R;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.yingpaipay.domain.query.ErpClientQuery;
-import org.dromara.yingpaipay.domain.vo.ErpClientVo;
-import org.dromara.yingpaipay.service.IErpClientService;
+import org.dromara.erp.domain.query.ErpClientQuery;
+import org.dromara.erp.domain.vo.ErpClientVo;
+import org.dromara.erp.service.IErpClientService;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
- * HTSail_Alu 客户档案查询接口
+ * ERP 客户档案控制器
+ *
+ * @Author: Antigravity
  */
 @Validated
 @RequiredArgsConstructor
@@ -30,10 +35,10 @@ public class ErpClientController {
     }
 
     /**
-     * 查询客户详情
+     * 获取客户详情
      */
     @GetMapping("/{fRowId}")
-    public R<ErpClientVo> getInfo(@PathVariable String fRowId) {
+    public R<ErpClientVo> getInfo(@PathVariable("fRowId") String fRowId) {
         return R.ok(erpClientService.queryById(fRowId));
     }
 

+ 35 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/controller/ErpColorKindController.java

@@ -0,0 +1,35 @@
+package org.dromara.erp.controller;
+
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+import org.dromara.erp.domain.vo.ErpColorKindVo;
+import org.dromara.erp.service.IErpColorKindService;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * ERP 颜色种类控制器
+ *
+ * @Author: Antigravity
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/erp/colorKind")
+public class ErpColorKindController {
+
+    private final IErpColorKindService erpColorKindService;
+
+    /**
+     * 查询所有颜色种类列表
+     */
+    @GetMapping("/all")
+    public R<List<ErpColorKindVo>> all() {
+        return R.ok(erpColorKindService.queryList());
+    }
+
+}

+ 46 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/controller/ErpModelController.java

@@ -0,0 +1,46 @@
+package org.dromara.erp.controller;
+
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.erp.domain.query.ErpModelQuery;
+import org.dromara.erp.domain.vo.ErpModelVo;
+import org.dromara.erp.service.IErpModelService;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * ERP 型材档案控制器
+ *
+ * @Author: Antigravity
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/erp/model")
+public class ErpModelController {
+
+    private final IErpModelService erpModelService;
+
+    /**
+     * 分页查询型材列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo<ErpModelVo> list(ErpModelQuery query, PageQuery pageQuery) {
+        return erpModelService.queryPageList(query, pageQuery);
+    }
+
+    /**
+     * 查询型号列表 (全量或前N条)
+     */
+    @GetMapping("/all")
+    public R<List<ErpModelVo>> all(ErpModelQuery query) {
+        return R.ok(erpModelService.queryList(query));
+    }
+
+}

+ 64 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/controller/ErpOrderController.java

@@ -0,0 +1,64 @@
+package org.dromara.erp.controller;
+
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+import org.dromara.erp.domain.query.ErpOrderQuery;
+import org.dromara.erp.domain.vo.ErpOrderVo;
+import org.dromara.erp.service.IErpOrderService;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 订单控制器
+ * @Author: Antigravity
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/erp/order")
+public class ErpOrderController {
+
+    private final IErpOrderService erpOrderService;
+
+    /**
+     * 查询订单列表
+     */
+    @GetMapping("/list")
+    public R<List<ErpOrderVo>> list(ErpOrderQuery query) {
+        return R.ok(erpOrderService.queryList(query));
+    }
+
+    /**
+     * 获取订单详情
+     */
+    @GetMapping("/{fRowId}")
+    public R<ErpOrderVo> getInfo(@PathVariable("fRowId") String fRowId) {
+        return R.ok(erpOrderService.queryById(fRowId));
+    }
+
+    /**
+     * 新增订单
+     */
+    @PostMapping("/add")
+    public R<Void> add(@RequestBody org.dromara.erp.domain.bo.ErpOrderBo bo) {
+        return erpOrderService.insert(bo) ? R.ok() : R.fail();
+    }
+
+    /**
+     * 修改订单
+     */
+    @PutMapping("/edit")
+    public R<Void> edit(@RequestBody org.dromara.erp.domain.bo.ErpOrderBo bo) {
+        return erpOrderService.update(bo) ? R.ok() : R.fail();
+    }
+
+    /**
+     * 删除订单
+     */
+    @DeleteMapping("/{fRowId}")
+    public R<Void> remove(@PathVariable("fRowId") String fRowId) {
+        return erpOrderService.deleteById(fRowId) ? R.ok() : R.fail();
+    }
+}

+ 66 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/controller/ErpOrderDetailController.java

@@ -0,0 +1,66 @@
+package org.dromara.erp.controller;
+
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+import org.dromara.erp.domain.query.ErpOrderDetailQuery;
+import org.dromara.erp.domain.vo.ErpOrderDetailVo;
+import org.dromara.erp.service.IErpOrderDetailService;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 订单明细控制器
+ *
+ * @Author: Antigravity
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/erp/orderDetail")
+public class ErpOrderDetailController {
+
+    private final IErpOrderDetailService erpOrderDetailService;
+
+    /**
+     * 根据订单ID查询明细列表
+     */
+    @GetMapping("/list")
+    public R<List<ErpOrderDetailVo>> list(ErpOrderDetailQuery query) {
+        return R.ok(erpOrderDetailService.queryList(query));
+    }
+
+    /**
+     * 获取订单明细详情
+     */
+    @GetMapping("/{fRowId}")
+    public R<ErpOrderDetailVo> getInfo(@PathVariable("fRowId") String fRowId) {
+        return R.ok(erpOrderDetailService.queryById(fRowId));
+    }
+
+    /**
+     * 新增订单明细
+     */
+    @PostMapping("/add")
+    public R<Void> add(@RequestBody org.dromara.erp.domain.bo.ErpOrderDetailBo bo) {
+        return erpOrderDetailService.insert(bo) ? R.ok() : R.fail();
+    }
+
+    /**
+     * 修改订单明细
+     */
+    @PutMapping("/edit")
+    public R<Void> edit(@RequestBody org.dromara.erp.domain.bo.ErpOrderDetailBo bo) {
+        return erpOrderDetailService.update(bo) ? R.ok() : R.fail();
+    }
+
+    /**
+     * 删除订单明细
+     */
+    @DeleteMapping("/{fRowId}")
+    public R<Void> remove(@PathVariable("fRowId") String fRowId) {
+        return erpOrderDetailService.deleteById(fRowId) ? R.ok() : R.fail();
+    }
+
+}

+ 35 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/controller/ErpPackController.java

@@ -0,0 +1,35 @@
+package org.dromara.erp.controller;
+
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+import org.dromara.erp.domain.vo.ErpPackVo;
+import org.dromara.erp.service.IErpPackService;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * ERP 包装档案控制器
+ *
+ * @Author: Antigravity
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/erp/pack")
+public class ErpPackController {
+
+    private final IErpPackService erpPackService;
+
+    /**
+     * 查询所有包装档案列表
+     */
+    @GetMapping("/all")
+    public R<List<ErpPackVo>> all() {
+        return R.ok(erpPackService.queryList());
+    }
+
+}

+ 29 - 28
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/yingpaipay/domain/ErpClient.java → ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpClient.java

@@ -1,18 +1,11 @@
-package org.dromara.yingpaipay.domain;
+package org.dromara.erp.domain;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.util.Date;
-
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
-import org.dromara.yingpaipay.domain.vo.ErpClientVo;
+import org.dromara.erp.domain.vo.ErpClientVo;
 
 import java.io.Serial;
 import java.io.Serializable;
@@ -20,7 +13,9 @@ import java.math.BigDecimal;
 import java.util.Date;
 
 /**
- * HTSail_Alu 客户档案 t_Bdi_Client
+ * HTSail_CS 客户档案 t_Bdi_Client
+ *
+ * @Author: Antigravity
  */
 @Data
 @AutoMapper(target = ErpClientVo.class)
@@ -192,6 +187,30 @@ public class ErpClient implements Serializable {
     @TableField("StopUse")
     private Integer stopUse;
 
+    /**
+     * 修改状态
+     */
+    @TableField("IsModifyFlag")
+    private Integer isModifyFlag;
+
+    /**
+     * 打印次数
+     */
+    @TableField("LastPrintNum")
+    private Integer lastPrintNum;
+
+    /**
+     * 打印功能号
+     */
+    @TableField("LastPrintFormID")
+    private String lastPrintFormId;
+
+    /**
+     * 打印状态
+     */
+    @TableField("LastPrintDocStatus")
+    private Integer lastPrintDocStatus;
+
     /**
      * 编辑人
      */
@@ -264,28 +283,10 @@ public class ErpClient implements Serializable {
     @TableField("PYCode")
     private String pyCode;
 
-    /**
-     * 销售部门ID
-     */
-    @TableField("DeptID")
-    private String deptId;
-
     /**
      * 首单日期
      */
     @TableField("FirstDate")
     private Date firstDate;
 
-    /**
-     * 铝材客户
-     */
-    @TableField("IsAlu")
-    private Integer isAlu;
-
-    /**
-     * 铝模客户
-     */
-    @TableField("IsAluPlate")
-    private Integer isAluPlate;
-
 }

+ 75 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpColorKind.java

@@ -0,0 +1,75 @@
+package org.dromara.erp.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.erp.domain.vo.ErpColorKindVo;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * ERP 颜色种类 t_Bdi_ColorKind
+ *
+ * @Author: Antigravity
+ */
+@Data
+@AutoMapper(target = ErpColorKindVo.class)
+@TableName("t_Bdi_ColorKind")
+public class ErpColorKind implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 序号(主键)
+     */
+    @TableId("FRowID")
+    private String fRowId;
+
+    /**
+     * 代码
+     */
+    @TableField("FNum")
+    private String fNum;
+
+    /**
+     * 名称
+     */
+    @TableField("FName")
+    private String fName;
+
+    /**
+     * 停用 (0-否, 1-是)
+     */
+    @TableField("StopUse")
+    private Integer stopUse;
+
+    /**
+     * 电泳面积
+     */
+    @TableField("ElectricQty")
+    private BigDecimal electricQty;
+
+    /**
+     * 工艺名称
+     */
+    @TableField("CraftName")
+    private String craftName;
+
+    /**
+     * 单价
+     */
+    @TableField("UnitPrice")
+    private BigDecimal unitPrice;
+
+    /**
+     * 加工类别
+     */
+    @TableField("ProcessType")
+    private String processType;
+
+}

+ 124 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpModel.java

@@ -0,0 +1,124 @@
+package org.dromara.erp.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.erp.domain.vo.ErpModelVo;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * ERP 型材档案 t_Bdi_Model
+ *
+ * @Author: Antigravity
+ */
+@Data
+@AutoMapper(target = ErpModelVo.class)
+@TableName("t_Bdi_Model")
+public class ErpModel implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 记录号(主键)
+     */
+    @TableId("FRowID")
+    private String fRowId;
+
+    /**
+     * 代码 (型号)
+     */
+    @TableField("FNum")
+    private String fNum;
+
+    /**
+     * 名称
+     */
+    @TableField("FName")
+    private String fName;
+
+    /**
+     * 公司ID
+     */
+    @TableField("CompanyID")
+    private Integer companyId;
+
+    /**
+     * 基准壁厚
+     */
+    @TableField("Thick")
+    private BigDecimal thick;
+
+    /**
+     * 理论米重
+     */
+    @TableField("MeterWT")
+    private BigDecimal meterWt;
+
+    /**
+     * 6米重
+     */
+    @TableField("SixMeterWT")
+    private BigDecimal sixMeterWt;
+
+    /**
+     * 材质ID
+     */
+    @TableField("AlloyID")
+    private String alloyId;
+
+    /**
+     * 料别
+     */
+    @TableField("ModelSort")
+    private String modelSort;
+
+    /**
+     * 型号类别
+     */
+    @TableField("ModelKind")
+    private String modelKind;
+
+    /**
+     * 停用 (0-否, 1-是)
+     */
+    @TableField("StopUse")
+    private Integer stopUse;
+
+    /**
+     * 备注
+     */
+    @TableField("FNote")
+    private String fNote;
+
+    /**
+     * 创建人
+     */
+    @TableField("EnterName")
+    private String enterName;
+
+    /**
+     * 创建时间
+     */
+    @TableField("EnterDate")
+    private Date enterDate;
+
+    /**
+     * 编辑人
+     */
+    @TableField("ModifyName")
+    private String modifyName;
+
+    /**
+     * 编辑时间
+     */
+    @TableField("ModifyDate")
+    private Date modifyDate;
+
+}

+ 80 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpOrder.java

@@ -0,0 +1,80 @@
+package org.dromara.erp.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.erp.domain.vo.ErpOrderVo;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 订单实体 t_Applet_Order
+ * @Author: Antigravity
+ */
+@Data
+@AutoMapper(target = ErpOrderVo.class)
+@TableName("t_Applet_Order")
+public class ErpOrder implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 订单主键
+     */
+    @TableId("FRowID")
+    private String fRowId;
+
+    /**
+     * 订单单号
+     */
+    @TableField("FCode")
+    private String fCode;
+
+    /**
+     * 下单人
+     */
+    @TableField("FPlacer")
+    private Long fPlacer;
+
+    /**
+     * 下单时间
+     */
+    @TableField("FPlaceTime")
+    private Date fPlaceTime;
+
+    /**
+     * 订单状态 (0-待审核)
+     */
+    @TableField("FStatus")
+    private Integer fStatus;
+
+    /**
+     * 创建者
+     */
+    @TableField("CreateBy")
+    private Long createBy;
+
+    /**
+     * 创建时间
+     */
+    @TableField("CreateTime")
+    private Date createTime;
+
+    /**
+     * 更新者
+     */
+    @TableField("UpdateBy")
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    @TableField("UpdateTime")
+    private Date updateTime;
+
+}

+ 130 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpOrderDetail.java

@@ -0,0 +1,130 @@
+package org.dromara.erp.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.erp.domain.vo.ErpOrderDetailVo;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 订单明细实体 t_Applet_Order_Details
+ *
+ * @Author: Antigravity
+ */
+@Data
+@AutoMapper(target = ErpOrderDetailVo.class)
+@TableName("t_Applet_Order_Details")
+public class ErpOrderDetail implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 记录主键
+     */
+    @TableId("FRowID")
+    private String fRowId;
+
+    /**
+     * 主订单ID
+     */
+    @TableField("FOrderID")
+    private String fOrderId;
+
+    /**
+     * 型材ID
+     */
+    @TableField("ModelID")
+    private String modelId;
+
+    /**
+     * 型材编号
+     */
+    @TableField("ModelNum")
+    private String modelNum;
+
+    /**
+     * 型材名称
+     */
+    @TableField("ModelName")
+    private String modelName;
+
+    /**
+     * 型材材质
+     */
+    @TableField("Material")
+    private String material;
+
+    /**
+     * 表面处理ID
+     */
+    @TableField("SurfaceID")
+    private String surfaceId;
+
+    /**
+     * 表面处理名称
+     */
+    @TableField("SurfaceName")
+    private String surfaceName;
+
+    /**
+     * 包装方式ID
+     */
+    @TableField("PackID")
+    private String packId;
+
+    /**
+     * 包装方式名称
+     */
+    @TableField("PackName")
+    private String packName;
+
+    /**
+     * 长度(mm)
+     */
+    @TableField("Length")
+    private BigDecimal length;
+
+    /**
+     * 壁厚(mm)
+     */
+    @TableField("WallThickness")
+    private BigDecimal wallThickness;
+
+    /**
+     * 支数
+     */
+    @TableField("Count")
+    private Integer count;
+
+    /**
+     * 创建者
+     */
+    @TableField("CreateBy")
+    private Long createBy;
+
+    /**
+     * 创建时间
+     */
+    @TableField("CreateTime")
+    private Date createTime;
+
+    /**
+     * 更新者
+     */
+    @TableField("UpdateBy")
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    @TableField("UpdateTime")
+    private Date updateTime;
+
+}

+ 63 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpPack.java

@@ -0,0 +1,63 @@
+package org.dromara.erp.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.erp.domain.vo.ErpPackVo;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * ERP 包装档案 t_Bdi_Pack
+ *
+ * @Author: Antigravity
+ */
+@Data
+@AutoMapper(target = ErpPackVo.class)
+@TableName("t_Bdi_Pack")
+public class ErpPack implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 序号(主键)
+     */
+    @TableId("FRowID")
+    private String fRowId;
+
+    /**
+     * 代码
+     */
+    @TableField("FNum")
+    private String fNum;
+
+    /**
+     * 名称
+     */
+    @TableField("FName")
+    private String fName;
+
+    /**
+     * 停用 (0-否, 1-是)
+     */
+    @TableField("StopUse")
+    private Integer stopUse;
+
+    /**
+     * 包装重量
+     */
+    @TableField("StdWT")
+    private BigDecimal packWt;
+
+    /**
+     * 包装规格
+     */
+    @TableField("PackRequire")
+    private String packSpec;
+
+}

+ 53 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/bo/ErpOrderBo.java

@@ -0,0 +1,53 @@
+package org.dromara.erp.domain.bo;
+
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.erp.domain.ErpOrder;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 订单业务对象
+ * @Author: Antigravity
+ */
+@Data
+@AutoMapper(target = ErpOrder.class, reverseConvertGenerate = false)
+public class ErpOrderBo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 订单主键
+     */
+    private String fRowId;
+
+    /**
+     * 订单单号
+     */
+    private String fCode;
+
+    /**
+     * 下单人
+     */
+    private Long fPlacer;
+
+    /**
+     * 下单时间
+     */
+    private Date fPlaceTime;
+
+    /**
+     * 订单状态
+     */
+    private Integer fStatus;
+
+    /**
+     * 绑定的订单明细 ID 列表
+     */
+    private List<String> detailIds;
+
+}

+ 51 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/bo/ErpOrderDetailBo.java

@@ -0,0 +1,51 @@
+package org.dromara.erp.domain.bo;
+
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.erp.domain.ErpOrderDetail;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 订单明细业务对象
+ * @Author: Antigravity
+ */
+@Data
+@AutoMapper(target = ErpOrderDetail.class, reverseConvertGenerate = false)
+public class ErpOrderDetailBo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    private String fRowId;
+
+    private String fOrderId;
+
+    private String modelId;
+
+    private String modelNum;
+
+    private String modelName;
+
+    private String material;
+
+    private String surfaceId;
+
+    private String surfaceName;
+
+    private String packId;
+
+    private String packName;
+
+    private BigDecimal length;
+
+    private BigDecimal wallThickness;
+
+    private Integer count;
+
+    private Date createTime;
+
+}

+ 12 - 10
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/yingpaipay/domain/query/ErpClientQuery.java → ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/query/ErpClientQuery.java

@@ -1,41 +1,43 @@
-package org.dromara.yingpaipay.domain.query;
+package org.dromara.erp.domain.query;
 
 import lombok.Data;
 
 /**
- * HTSail_Alu 客户档案查询条件
+ * HTSail_CS 客户档案查询对象
+ *
+ * @Author: Antigravity
  */
 @Data
 public class ErpClientQuery {
 
     /**
-     * 客户名称(模糊)
+     * 名称
      */
     private String fName;
 
     /**
-     * 客户代码(模糊)
+     * 代码
      */
     private String fNum;
 
     /**
-     * 客户简称(模糊)
+     * 客户简称
      */
     private String shortName;
 
     /**
-     * 拼音码(模糊)
+     * 拼音码
      */
     private String pyCode;
 
     /**
-     * 暂停使用(0正常 1停用,不传则查全部)
+     * 分类(国内,国外)
      */
-    private Integer stopUse;
+    private String fClass;
 
     /**
-     * 分类(国内/国外
+     * 暂停使用(0正常 1停用
      */
-    private String fClass;
+    private Integer stopUse;
 
 }

+ 23 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/query/ErpColorKindQuery.java

@@ -0,0 +1,23 @@
+package org.dromara.erp.domain.query;
+
+import lombok.Data;
+
+/**
+ * ERP 颜色种类查询对象
+ *
+ * @Author: Antigravity
+ */
+@Data
+public class ErpColorKindQuery {
+
+    /**
+     * 代码
+     */
+    private String fNum;
+
+    /**
+     * 名称
+     */
+    private String fName;
+
+}

+ 23 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/query/ErpModelQuery.java

@@ -0,0 +1,23 @@
+package org.dromara.erp.domain.query;
+
+import lombok.Data;
+
+/**
+ * ERP 型材档案查询对象
+ *
+ * @Author: Antigravity
+ */
+@Data
+public class ErpModelQuery {
+
+    /**
+     * 代码 (型号)
+     */
+    private String fNum;
+
+    /**
+     * 名称
+     */
+    private String fName;
+
+}

+ 18 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/query/ErpOrderDetailQuery.java

@@ -0,0 +1,18 @@
+package org.dromara.erp.domain.query;
+
+import lombok.Data;
+
+/**
+ * 订单明细查询对象
+ *
+ * @Author: Antigravity
+ */
+@Data
+public class ErpOrderDetailQuery {
+
+    /**
+     * 订单ID
+     */
+    private String fOrderId;
+
+}

+ 27 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/query/ErpOrderQuery.java

@@ -0,0 +1,27 @@
+package org.dromara.erp.domain.query;
+
+import lombok.Data;
+
+/**
+ * 订单查询对象
+ * @Author: Antigravity
+ */
+@Data
+public class ErpOrderQuery {
+
+    /**
+     * 订单单号
+     */
+    private String fCode;
+
+    /**
+     * 下单人
+     */
+    private Long fPlacer;
+
+    /**
+     * 订单状态
+     */
+    private Integer fStatus;
+
+}

+ 23 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/query/ErpPackQuery.java

@@ -0,0 +1,23 @@
+package org.dromara.erp.domain.query;
+
+import lombok.Data;
+
+/**
+ * ERP 包装档案查询对象
+ *
+ * @Author: Antigravity
+ */
+@Data
+public class ErpPackQuery {
+
+    /**
+     * 代码
+     */
+    private String fNum;
+
+    /**
+     * 名称
+     */
+    private String fName;
+
+}

+ 21 - 16
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/yingpaipay/domain/vo/ErpClientVo.java → ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpClientVo.java

@@ -1,15 +1,8 @@
-package org.dromara.yingpaipay.domain.vo;
-
-import lombok.Data;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.util.Date;
+package org.dromara.erp.domain.vo;
 
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
-import org.dromara.yingpaipay.domain.ErpClient;
+import org.dromara.erp.domain.ErpClient;
 
 import java.io.Serial;
 import java.io.Serializable;
@@ -17,7 +10,9 @@ import java.math.BigDecimal;
 import java.util.Date;
 
 /**
- * HTSail_Alu 客户档案 VO
+ * HTSail_CS 客户档案 VO
+ *
+ * @Author: Antigravity
  */
 @Data
 @AutoMapper(target = ErpClient.class)
@@ -117,19 +112,29 @@ public class ErpClientVo implements Serializable {
     private Integer stopUse;
 
     /**
-     * 是否经销商
+     * 修改状态
      */
-    private Integer isDealer;
+    private Integer isModifyFlag;
 
     /**
-     * 铝材客户
+     * 打印次数
      */
-    private Integer isAlu;
+    private Integer lastPrintNum;
 
     /**
-     * 铝模客户
+     * 打印功能号
      */
-    private Integer isAluPlate;
+    private String lastPrintFormId;
+
+    /**
+     * 打印状态
+     */
+    private Integer lastPrintDocStatus;
+
+    /**
+     * 是否经销商
+     */
+    private Integer isDealer;
 
     /**
      * 首单日期

+ 39 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpColorKindVo.java

@@ -0,0 +1,39 @@
+package org.dromara.erp.domain.vo;
+
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.erp.domain.ErpColorKind;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * ERP 颜色种类 VO
+ *
+ * @Author: Antigravity
+ */
+@Data
+@AutoMapper(target = ErpColorKind.class)
+public class ErpColorKindVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    private String fRowId;
+
+    private String fNum;
+
+    private String fName;
+
+    private Integer stopUse;
+
+    private BigDecimal electricQty;
+
+    private String craftName;
+
+    private BigDecimal unitPrice;
+
+    private String processType;
+
+}

+ 63 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpModelVo.java

@@ -0,0 +1,63 @@
+package org.dromara.erp.domain.vo;
+
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.erp.domain.ErpModel;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * ERP 型材档案 VO
+ *
+ * @Author: Antigravity
+ */
+@Data
+@AutoMapper(target = ErpModel.class)
+public class ErpModelVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 记录号(主键)
+     */
+    private String fRowId;
+
+    /**
+     * 代码 (型号)
+     */
+    private String fNum;
+
+    /**
+     * 名称
+     */
+    private String fName;
+
+    /**
+     * 基准壁厚
+     */
+    private BigDecimal thick;
+
+    /**
+     * 材质ID
+     */
+    private String alloyId;
+
+    /**
+     * 料别
+     */
+    private String modelSort;
+
+    /**
+     * 型号类别
+     */
+    private String modelKind;
+
+    /**
+     * 停用 (0-否, 1-是)
+     */
+    private Integer stopUse;
+
+}

+ 60 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpOrderDetailVo.java

@@ -0,0 +1,60 @@
+package org.dromara.erp.domain.vo;
+
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.erp.domain.ErpOrderDetail;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 订单明细 VO
+ *
+ * @Author: Antigravity
+ */
+@Data
+@AutoMapper(target = ErpOrderDetail.class)
+public class ErpOrderDetailVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    private String fRowId;
+
+    private String fOrderId;
+
+    private String modelId;
+
+    private String modelNum;
+
+    private String modelName;
+
+    private String material;
+
+    private String surfaceId;
+
+    private String surfaceName;
+
+    private String packId;
+
+    private String packName;
+
+    private java.math.BigDecimal length;
+
+    private java.math.BigDecimal wallThickness;
+
+    public java.math.BigDecimal getLength() {
+        return length == null ? null : length.setScale(4, java.math.RoundingMode.HALF_UP);
+    }
+
+    public java.math.BigDecimal getWallThickness() {
+        return wallThickness == null ? null : wallThickness.setScale(4, java.math.RoundingMode.HALF_UP);
+    }
+
+    private Integer count;
+
+    private Date createTime;
+
+}

+ 64 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpOrderVo.java

@@ -0,0 +1,64 @@
+package org.dromara.erp.domain.vo;
+
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.erp.domain.ErpOrder;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 订单显示对象
+ * @Author: Antigravity
+ */
+@Data
+@AutoMapper(target = ErpOrder.class)
+public class ErpOrderVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 订单主键
+     */
+    private String fRowId;
+
+    /**
+     * 订单单号
+     */
+    private String fCode;
+
+    /**
+     * 下单人
+     */
+    private Long fPlacer;
+
+    /**
+     * 下单时间
+     */
+    private Date fPlaceTime;
+
+    /**
+     * 订单状态
+     */
+    private Integer fStatus;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 订单明细列表
+     */
+    @com.baomidou.mybatisplus.annotation.TableField(exist = false)
+    private java.util.List<org.dromara.erp.domain.vo.ErpOrderDetailVo> details;
+
+    /**
+     * 订单总支数
+     */
+    @com.baomidou.mybatisplus.annotation.TableField(exist = false)
+    private Integer totalCount;
+
+}

+ 35 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpPackVo.java

@@ -0,0 +1,35 @@
+package org.dromara.erp.domain.vo;
+
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.erp.domain.ErpPack;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * ERP 包装档案 VO
+ *
+ * @Author: Antigravity
+ */
+@Data
+@AutoMapper(target = ErpPack.class)
+public class ErpPackVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    private String fRowId;
+
+    private String fNum;
+
+    private String fName;
+
+    private Integer stopUse;
+
+    private BigDecimal packWt;
+
+    private String packSpec;
+
+}

+ 21 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/enums/ErpOrderStatus.java

@@ -0,0 +1,21 @@
+package org.dromara.erp.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * ERP 订单状态枚举
+ * @Author: Antigravity
+ */
+@Getter
+@AllArgsConstructor
+public enum ErpOrderStatus {
+
+    WAIT_AUDIT(0, "待审核"),
+    AUDITED(1, "已审核"),
+    REJECTED(2, "已驳回");
+
+    private final Integer code;
+    private final String info;
+
+}

+ 7 - 5
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/yingpaipay/mapper/ErpClientMapper.java → ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/mapper/ErpClientMapper.java

@@ -1,13 +1,15 @@
-package org.dromara.yingpaipay.mapper;
+package org.dromara.erp.mapper;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
-import org.dromara.yingpaipay.domain.ErpClient;
-import org.dromara.yingpaipay.domain.vo.ErpClientVo;
+import org.dromara.erp.domain.ErpClient;
+import org.dromara.erp.domain.vo.ErpClientVo;
 
 /**
- * HTSail_Alu 客户档案 Mapper
+ * HTSail_CS 客户档案 Mapper
+ *
+ * @Author: Antigravity
  */
-@DS("htsail_alu")
+@DS("htsail_cs")
 public interface ErpClientMapper extends BaseMapperPlus<ErpClient, ErpClientVo> {
 }

+ 15 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/mapper/ErpColorKindMapper.java

@@ -0,0 +1,15 @@
+package org.dromara.erp.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.erp.domain.ErpColorKind;
+import org.dromara.erp.domain.vo.ErpColorKindVo;
+
+/**
+ * ERP 颜色种类 Mapper
+ *
+ * @Author: Antigravity
+ */
+@DS("htsail_cs")
+public interface ErpColorKindMapper extends BaseMapperPlus<ErpColorKind, ErpColorKindVo> {
+}

+ 15 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/mapper/ErpModelMapper.java

@@ -0,0 +1,15 @@
+package org.dromara.erp.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.erp.domain.ErpModel;
+import org.dromara.erp.domain.vo.ErpModelVo;
+
+/**
+ * ERP 型材档案 Mapper
+ *
+ * @Author: Antigravity
+ */
+@DS("htsail_cs")
+public interface ErpModelMapper extends BaseMapperPlus<ErpModel, ErpModelVo> {
+}

+ 15 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/mapper/ErpOrderDetailMapper.java

@@ -0,0 +1,15 @@
+package org.dromara.erp.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.erp.domain.ErpOrderDetail;
+import org.dromara.erp.domain.vo.ErpOrderDetailVo;
+
+/**
+ * 订单明细 Mapper 接口
+ *
+ * @Author: Antigravity
+ */
+@DS("htsail_cs")
+public interface ErpOrderDetailMapper extends BaseMapperPlus<ErpOrderDetail, ErpOrderDetailVo> {
+}

+ 14 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/mapper/ErpOrderMapper.java

@@ -0,0 +1,14 @@
+package org.dromara.erp.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.erp.domain.ErpOrder;
+import org.dromara.erp.domain.vo.ErpOrderVo;
+
+/**
+ * 订单 Mapper 接口
+ * @Author: Antigravity
+ */
+@DS("htsail_cs")
+public interface ErpOrderMapper extends BaseMapperPlus<ErpOrder, ErpOrderVo> {
+}

+ 15 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/mapper/ErpPackMapper.java

@@ -0,0 +1,15 @@
+package org.dromara.erp.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.erp.domain.ErpPack;
+import org.dromara.erp.domain.vo.ErpPackVo;
+
+/**
+ * ERP 包装档案 Mapper
+ *
+ * @Author: Antigravity
+ */
+@DS("htsail_cs")
+public interface ErpPackMapper extends BaseMapperPlus<ErpPack, ErpPackVo> {
+}

+ 7 - 5
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/yingpaipay/service/IErpClientService.java → ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/IErpClientService.java

@@ -1,12 +1,14 @@
-package org.dromara.yingpaipay.service;
+package org.dromara.erp.service;
 
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.yingpaipay.domain.query.ErpClientQuery;
-import org.dromara.yingpaipay.domain.vo.ErpClientVo;
+import org.dromara.erp.domain.query.ErpClientQuery;
+import org.dromara.erp.domain.vo.ErpClientVo;
 
 /**
- * HTSail_Alu 客户档案 Service
+ * HTSail_CS 客户档案 Service 接口
+ *
+ * @Author: Antigravity
  */
 public interface IErpClientService {
 
@@ -16,7 +18,7 @@ public interface IErpClientService {
     TableDataInfo<ErpClientVo> queryPageList(ErpClientQuery query, PageQuery pageQuery);
 
     /**
-     * 根据主键查询客户详情
+     * 根据ID查询客户详情
      */
     ErpClientVo queryById(String fRowId);
 

+ 19 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/IErpColorKindService.java

@@ -0,0 +1,19 @@
+package org.dromara.erp.service;
+
+import org.dromara.erp.domain.vo.ErpColorKindVo;
+
+import java.util.List;
+
+/**
+ * ERP 颜色种类 Service 接口
+ *
+ * @Author: Antigravity
+ */
+public interface IErpColorKindService {
+
+    /**
+     * 查询所有颜色种类
+     */
+    List<ErpColorKindVo> queryList();
+
+}

+ 27 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/IErpModelService.java

@@ -0,0 +1,27 @@
+package org.dromara.erp.service;
+
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.erp.domain.query.ErpModelQuery;
+import org.dromara.erp.domain.vo.ErpModelVo;
+
+import java.util.List;
+
+/**
+ * ERP 型材档案 Service 接口
+ *
+ * @Author: Antigravity
+ */
+public interface IErpModelService {
+
+    /**
+     * 分页查询型材列表
+     */
+    TableDataInfo<ErpModelVo> queryPageList(ErpModelQuery query, PageQuery pageQuery);
+
+    /**
+     * 查询所有型材(不分页,建议限流或加条件)
+     */
+    List<ErpModelVo> queryList(ErpModelQuery query);
+
+}

+ 41 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/IErpOrderDetailService.java

@@ -0,0 +1,41 @@
+package org.dromara.erp.service;
+
+import org.dromara.erp.domain.vo.ErpOrderDetailVo;
+import org.dromara.erp.domain.query.ErpOrderDetailQuery;
+import org.dromara.erp.domain.bo.ErpOrderDetailBo;
+
+import java.util.List;
+
+/**
+ * 订单明细 Service 接口
+ *
+ * @Author: Antigravity
+ */
+public interface IErpOrderDetailService {
+
+    /**
+     * 查询订单明细列表
+     */
+    List<ErpOrderDetailVo> queryList(ErpOrderDetailQuery query);
+
+    /**
+     * 根据ID查询订单明细
+     */
+    ErpOrderDetailVo queryById(String fRowId);
+
+    /**
+     * 新增订单明细
+     */
+    Boolean insert(ErpOrderDetailBo bo);
+
+    /**
+     * 修改订单明细
+     */
+    Boolean update(ErpOrderDetailBo bo);
+
+    /**
+     * 删除订单明细
+     */
+    Boolean deleteById(String fRowId);
+
+}

+ 38 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/IErpOrderService.java

@@ -0,0 +1,38 @@
+package org.dromara.erp.service;
+
+import org.dromara.erp.domain.query.ErpOrderQuery;
+import org.dromara.erp.domain.vo.ErpOrderVo;
+
+import java.util.List;
+
+/**
+ * 订单 Service 接口
+ * @Author: Antigravity
+ */
+public interface IErpOrderService {
+
+    /**
+     * 查询订单列表
+     */
+    List<ErpOrderVo> queryList(ErpOrderQuery query);
+
+    /**
+     * 根据ID查询订单
+     */
+    ErpOrderVo queryById(String fRowId);
+
+    /**
+     * 新增订单
+     */
+    Boolean insert(org.dromara.erp.domain.bo.ErpOrderBo bo);
+
+    /**
+     * 修改订单
+     */
+    Boolean update(org.dromara.erp.domain.bo.ErpOrderBo bo);
+
+    /**
+     * 删除订单
+     */
+    Boolean deleteById(String fRowId);
+}

+ 19 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/IErpPackService.java

@@ -0,0 +1,19 @@
+package org.dromara.erp.service;
+
+import org.dromara.erp.domain.vo.ErpPackVo;
+
+import java.util.List;
+
+/**
+ * ERP 包装档案 Service 接口
+ *
+ * @Author: Antigravity
+ */
+public interface IErpPackService {
+
+    /**
+     * 查询所有包装档案
+     */
+    List<ErpPackVo> queryList();
+
+}

+ 22 - 14
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/yingpaipay/service/impl/ErpClientServiceImpl.java → ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpClientServiceImpl.java

@@ -1,4 +1,4 @@
-package org.dromara.yingpaipay.service.impl;
+package org.dromara.erp.service.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -8,12 +8,13 @@ import lombok.RequiredArgsConstructor;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.yingpaipay.domain.ErpClient;
-import org.dromara.yingpaipay.domain.query.ErpClientQuery;
-import org.dromara.yingpaipay.domain.vo.ErpClientVo;
-import org.dromara.yingpaipay.mapper.ErpClientMapper;
+import org.dromara.erp.domain.ErpClient;
+import org.dromara.erp.domain.query.ErpClientQuery;
+import org.dromara.erp.domain.vo.ErpClientVo;
+import org.dromara.erp.mapper.ErpClientMapper;
+import org.dromara.erp.service.IErpClientService;
+import org.dromara.yingpaipay.api.erp.domain.vo.CommonErpClientVo;
 import org.dromara.yingpaipay.api.erp.CommonErpClientService;
-import org.dromara.yingpaipay.service.IErpClientService;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -21,26 +22,33 @@ import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
- * HTSail_Alu 客户档案 Service实现
+ * HTSail_CS 客户档案 Service实现
  *
  * @Author: Antigravity
  */
-@DS("htsail_alu")
+@DS("htsail_cs")
 @RequiredArgsConstructor
-@Service
+@Service("erpClientService")
 public class ErpClientServiceImpl implements IErpClientService, CommonErpClientService {
 
     private final ErpClientMapper baseMapper;
 
     @Override
-    public Map<String, String> selectNameByFNums(List<String> authClientFNums) {
-        if (authClientFNums == null || authClientFNums.isEmpty()) {
+    public Map<String, CommonErpClientVo> selectInfoByFRowIDs(List<String> authClientFRowIDs) {
+        if (authClientFRowIDs == null || authClientFRowIDs.isEmpty()) {
             return Map.of();
         }
         List<ErpClient> clients = baseMapper.selectList(Wrappers.lambdaQuery(ErpClient.class)
-            .select(ErpClient::getFNum, ErpClient::getFName)
-            .in(ErpClient::getFNum, authClientFNums));
-        return clients.stream().collect(Collectors.toMap(ErpClient::getFNum, ErpClient::getFName, (v1, v2) -> v1));
+            .select(ErpClient::getFRowId, ErpClient::getFName, ErpClient::getFClass, ErpClient::getEnterDate)
+            .in(ErpClient::getFRowId, authClientFRowIDs));
+        return clients.stream().collect(Collectors.toMap(ErpClient::getFRowId, client -> {
+            CommonErpClientVo vo = new CommonErpClientVo();
+            vo.setFRowId(client.getFRowId());
+            vo.setFName(client.getFName());
+            vo.setFClass(client.getFClass());
+            vo.setEnterDate(client.getEnterDate());
+            return vo;
+        }, (v1, v2) -> v1));
     }
 
     @Override

+ 31 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpColorKindServiceImpl.java

@@ -0,0 +1,31 @@
+package org.dromara.erp.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.dromara.erp.domain.ErpColorKind;
+import org.dromara.erp.domain.vo.ErpColorKindVo;
+import org.dromara.erp.mapper.ErpColorKindMapper;
+import org.dromara.erp.service.IErpColorKindService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * ERP 颜色种类 Service 业务层处理
+ *
+ * @Author: Antigravity
+ */
+@RequiredArgsConstructor
+@Service
+public class ErpColorKindServiceImpl implements IErpColorKindService {
+
+    private final ErpColorKindMapper baseMapper;
+
+    @Override
+    public List<ErpColorKindVo> queryList() {
+        return baseMapper.selectVoList(Wrappers.lambdaQuery(ErpColorKind.class)
+            .eq(ErpColorKind::getStopUse, 0)
+            .orderByAsc(ErpColorKind::getFNum));
+    }
+
+}

+ 55 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpModelServiceImpl.java

@@ -0,0 +1,55 @@
+package org.dromara.erp.service.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.erp.domain.ErpModel;
+import org.dromara.erp.domain.query.ErpModelQuery;
+import org.dromara.erp.domain.vo.ErpModelVo;
+import org.dromara.erp.mapper.ErpModelMapper;
+import org.dromara.erp.service.IErpModelService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * ERP 型材档案 Service 业务层处理
+ *
+ * @Author: Antigravity
+ */
+@RequiredArgsConstructor
+@Service
+public class ErpModelServiceImpl implements IErpModelService {
+
+    private final ErpModelMapper baseMapper;
+
+    @Override
+    public TableDataInfo<ErpModelVo> queryPageList(ErpModelQuery query, PageQuery pageQuery) {
+        LambdaQueryWrapper<ErpModel> lqw = buildQueryWrapper(query);
+        Page<ErpModelVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    @Override
+    public List<ErpModelVo> queryList(ErpModelQuery query) {
+        LambdaQueryWrapper<ErpModel> lqw = buildQueryWrapper(query);
+        if (ObjectUtil.isEmpty(query.getFNum()) && ObjectUtil.isEmpty(query.getFName())) {
+            lqw.last("OFFSET 0 ROWS FETCH NEXT 100 ROWS ONLY");
+        }
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<ErpModel> buildQueryWrapper(ErpModelQuery query) {
+        LambdaQueryWrapper<ErpModel> lqw = Wrappers.lambdaQuery();
+        lqw.like(ObjectUtil.isNotEmpty(query.getFNum()), ErpModel::getFNum, query.getFNum());
+        lqw.like(ObjectUtil.isNotEmpty(query.getFName()), ErpModel::getFName, query.getFName());
+        lqw.eq(ErpModel::getStopUse, 0);
+        lqw.orderByAsc(ErpModel::getFNum);
+        return lqw;
+    }
+
+}

+ 94 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpOrderDetailServiceImpl.java

@@ -0,0 +1,94 @@
+package org.dromara.erp.service.impl;
+
+import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.erp.domain.ErpOrderDetail;
+import org.dromara.erp.domain.query.ErpOrderDetailQuery;
+import org.dromara.erp.domain.vo.ErpOrderDetailVo;
+import org.dromara.erp.mapper.ErpOrderDetailMapper;
+import org.dromara.erp.service.IErpOrderDetailService;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 订单明细 Service 业务层处理
+ *
+ * @Author: Antigravity
+ */
+@RequiredArgsConstructor
+@Service
+public class ErpOrderDetailServiceImpl implements IErpOrderDetailService {
+
+    private final ErpOrderDetailMapper baseMapper;
+
+    @Override
+    public List<ErpOrderDetailVo> queryList(ErpOrderDetailQuery query) {
+        LambdaQueryWrapper<ErpOrderDetail> lqw = Wrappers.lambdaQuery();
+        if (ObjectUtil.isNotEmpty(query.getFOrderId())) {
+            lqw.eq(ErpOrderDetail::getFOrderId, query.getFOrderId());
+        } else {
+            // 如果没传订单ID,默认查询未下单的草稿(即 FOrderID 为 NULL)
+            lqw.isNull(ErpOrderDetail::getFOrderId);
+        }
+        lqw.orderByDesc(ErpOrderDetail::getCreateTime);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    @Override
+    public ErpOrderDetailVo queryById(String fRowId) {
+        return baseMapper.selectVoById(fRowId);
+    }
+
+    @Override
+    public Boolean insert(org.dromara.erp.domain.bo.ErpOrderDetailBo bo) {
+        ErpOrderDetail entity = MapstructUtils.convert(bo, ErpOrderDetail.class);
+        if (ObjectUtil.isEmpty(entity.getFRowId())) {
+            entity.setFRowId(IdUtil.fastUUID());
+        }
+        // 处理其他可能为空字符串的 RowID 字段,防止 SQL Server 报错
+        if (ObjectUtil.isEmpty(entity.getFOrderId())) entity.setFOrderId(null);
+        if (ObjectUtil.isEmpty(entity.getModelId())) entity.setModelId(null);
+        if (ObjectUtil.isEmpty(entity.getSurfaceId())) entity.setSurfaceId(null);
+        if (ObjectUtil.isEmpty(entity.getPackId())) entity.setPackId(null);
+
+        // 审计字段回填
+        Long userId = null;
+        try {
+            userId = org.dromara.common.satoken.utils.LoginHelper.getUserId();
+        } catch (Exception e) {}
+        Date now = new Date();
+        entity.setCreateBy(userId);
+        entity.setCreateTime(now);
+        entity.setUpdateBy(userId);
+        entity.setUpdateTime(now);
+
+        return baseMapper.insert(entity) > 0;
+    }
+
+    @Override
+    public Boolean update(org.dromara.erp.domain.bo.ErpOrderDetailBo bo) {
+        ErpOrderDetail entity = MapstructUtils.convert(bo, ErpOrderDetail.class);
+
+        // 审计字段回填
+        Long userId = null;
+        try {
+            userId = org.dromara.common.satoken.utils.LoginHelper.getUserId();
+        } catch (Exception e) {}
+        entity.setUpdateBy(userId);
+        entity.setUpdateTime(new Date());
+
+        return baseMapper.updateById(entity) > 0;
+    }
+
+    @Override
+    public Boolean deleteById(String fRowId) {
+        return baseMapper.deleteById(fRowId) > 0;
+    }
+
+}

+ 138 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpOrderServiceImpl.java

@@ -0,0 +1,138 @@
+package org.dromara.erp.service.impl;
+
+import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.erp.domain.ErpOrder;
+import org.dromara.erp.domain.query.ErpOrderQuery;
+import org.dromara.erp.domain.vo.ErpOrderVo;
+import org.dromara.erp.enums.ErpOrderStatus;
+import org.dromara.erp.mapper.ErpOrderMapper;
+import org.dromara.erp.service.IErpOrderService;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 订单 Service 业务层处理
+ * @Author: Antigravity
+ */
+@RequiredArgsConstructor
+@Service
+public class ErpOrderServiceImpl implements IErpOrderService {
+
+    private final ErpOrderMapper baseMapper;
+    private final org.dromara.erp.mapper.ErpOrderDetailMapper erpOrderDetailMapper;
+
+    @Override
+    public List<ErpOrderVo> queryList(ErpOrderQuery query) {
+        LambdaQueryWrapper<ErpOrder> lqw = Wrappers.lambdaQuery();
+        lqw.eq(ObjectUtil.isNotEmpty(query.getFCode()), ErpOrder::getFCode, query.getFCode());
+        lqw.eq(ObjectUtil.isNotEmpty(query.getFPlacer()), ErpOrder::getFPlacer, query.getFPlacer());
+        lqw.eq(ObjectUtil.isNotEmpty(query.getFStatus()), ErpOrder::getFStatus, query.getFStatus());
+        lqw.orderByDesc(ErpOrder::getCreateTime);
+        List<ErpOrderVo> list = baseMapper.selectVoList(lqw);
+        
+        if (ObjectUtil.isNotEmpty(list)) {
+            List<String> orderIds = list.stream().map(ErpOrderVo::getFRowId).toList();
+            LambdaQueryWrapper<org.dromara.erp.domain.ErpOrderDetail> detailLqw = Wrappers.lambdaQuery();
+            detailLqw.in(org.dromara.erp.domain.ErpOrderDetail::getFOrderId, orderIds);
+            List<org.dromara.erp.domain.vo.ErpOrderDetailVo> allDetails = erpOrderDetailMapper.selectVoList(detailLqw);
+            
+            for (ErpOrderVo vo : list) {
+                List<org.dromara.erp.domain.vo.ErpOrderDetailVo> details = allDetails.stream()
+                        .filter(d -> vo.getFRowId().equals(d.getFOrderId()))
+                        .toList();
+                vo.setDetails(details);
+                vo.setTotalCount(details.stream().mapToInt(d -> d.getCount() == null ? 0 : d.getCount()).sum());
+            }
+        }
+        return list;
+    }
+
+    @Override
+    public ErpOrderVo queryById(String fRowId) {
+        ErpOrderVo vo = baseMapper.selectVoById(fRowId);
+        if (vo != null) {
+            LambdaQueryWrapper<org.dromara.erp.domain.ErpOrderDetail> detailLqw = Wrappers.lambdaQuery();
+            detailLqw.eq(org.dromara.erp.domain.ErpOrderDetail::getFOrderId, fRowId);
+            List<org.dromara.erp.domain.vo.ErpOrderDetailVo> details = erpOrderDetailMapper.selectVoList(detailLqw);
+            vo.setDetails(details);
+            vo.setTotalCount(details.stream().mapToInt(d -> d.getCount() == null ? 0 : d.getCount()).sum());
+        }
+        return vo;
+    }
+
+    @Override
+    @com.baomidou.dynamic.datasource.annotation.DSTransactional
+    public Boolean insert(org.dromara.erp.domain.bo.ErpOrderBo bo) {
+        ErpOrder entity = MapstructUtils.convert(bo, ErpOrder.class);
+        if (ObjectUtil.isEmpty(entity.getFRowId())) {
+            entity.setFRowId(IdUtil.fastUUID());
+        }
+        if (ObjectUtil.isEmpty(entity.getFCode())) {
+            entity.setFCode(IdUtil.fastSimpleUUID());
+        }
+        if (entity.getFPlacer() == null) {
+            try {
+                entity.setFPlacer(org.dromara.common.satoken.utils.LoginHelper.getUserId());
+            } catch (Exception e) {
+                // Ignore if not in web context
+            }
+        }
+        if (entity.getFPlaceTime() == null) {
+            entity.setFPlaceTime(new Date());
+        }
+        if (entity.getFStatus() == null) {
+            entity.setFStatus(ErpOrderStatus.WAIT_AUDIT.getCode());
+        }
+
+        // 审计字段回填
+        Long userId = null;
+        try {
+            userId = org.dromara.common.satoken.utils.LoginHelper.getUserId();
+        } catch (Exception e) {
+            // Ignore
+        }
+        Date now = new Date();
+        entity.setCreateBy(userId);
+        entity.setCreateTime(now);
+        entity.setUpdateBy(userId);
+        entity.setUpdateTime(now);
+
+        boolean result = baseMapper.insert(entity) > 0;
+        
+        if (result && ObjectUtil.isNotEmpty(bo.getDetailIds())) {
+            // 根据前端传递的明细 ID 列表,精确更新这批明细关联的订单 ID
+            com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper<org.dromara.erp.domain.ErpOrderDetail> luw = Wrappers.lambdaUpdate();
+            luw.set(org.dromara.erp.domain.ErpOrderDetail::getFOrderId, entity.getFRowId())
+               .in(org.dromara.erp.domain.ErpOrderDetail::getFRowId, bo.getDetailIds());
+            erpOrderDetailMapper.update(null, luw);
+        }
+        return result;
+    }
+
+    @Override
+    public Boolean update(org.dromara.erp.domain.bo.ErpOrderBo bo) {
+        ErpOrder entity = MapstructUtils.convert(bo, ErpOrder.class);
+        
+        // 审计字段回填
+        Long userId = null;
+        try {
+            userId = org.dromara.common.satoken.utils.LoginHelper.getUserId();
+        } catch (Exception e) {}
+        entity.setUpdateBy(userId);
+        entity.setUpdateTime(new Date());
+        
+        return baseMapper.updateById(entity) > 0;
+    }
+
+    @Override
+    public Boolean deleteById(String fRowId) {
+        return baseMapper.deleteById(fRowId) > 0;
+    }
+}

+ 31 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpPackServiceImpl.java

@@ -0,0 +1,31 @@
+package org.dromara.erp.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.dromara.erp.domain.ErpPack;
+import org.dromara.erp.domain.vo.ErpPackVo;
+import org.dromara.erp.mapper.ErpPackMapper;
+import org.dromara.erp.service.IErpPackService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * ERP 包装档案 Service 业务层处理
+ *
+ * @Author: Antigravity
+ */
+@RequiredArgsConstructor
+@Service
+public class ErpPackServiceImpl implements IErpPackService {
+
+    private final ErpPackMapper baseMapper;
+
+    @Override
+    public List<ErpPackVo> queryList() {
+        return baseMapper.selectVoList(Wrappers.lambdaQuery(ErpPack.class)
+            .eq(ErpPack::getStopUse, 0)
+            .orderByAsc(ErpPack::getFNum));
+    }
+
+}

+ 0 - 15
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/yingpaipay/config/YingpaipayDataSourceConfig.java

@@ -1,15 +0,0 @@
-package org.dromara.yingpaipay.config;
-
-import com.baomidou.dynamic.datasource.annotation.DS;
-import org.mybatis.spring.annotation.MapperScan;
-import org.springframework.context.annotation.Configuration;
-
-/**
- * 盈派支付ERP数据源配置
- * 该模块所有 Mapper 均使用 htsail_alu 数据源 (HTSail_Alu 数据库)
- */
-@DS("htsail_alu")
-@Configuration
-@MapperScan("org.dromara.yingpaipay.mapper")
-public class YingpaipayDataSourceConfig {
-}

+ 2 - 2
script/sql/sqlserver/v1/create.sql → script/sql/sqlserver/v1/HS_ERP_Order-create.sql

@@ -35,7 +35,7 @@ create table sys_customer
     phone              nvarchar(11)      DEFAULT ('') NULL,
     wechat_openid      nvarchar(255)     DEFAULT ('') NULL,
     wechat_unionid     nvarchar(255)     DEFAULT ('') NULL,
-    auth_client_fnum   nvarchar(100)     DEFAULT ('') NULL,
+    auth_client_frowid   nvarchar(100)     DEFAULT ('') NULL,
     avatar             bigint            DEFAULT (NULL) NULL,
     tenant_id          nvarchar(20)      DEFAULT ('000000') NULL,
     create_dept        bigint,
@@ -85,7 +85,7 @@ EXEC sys.sp_addextendedproperty
     'MS_Description', N'授权客户ID' ,
     'SCHEMA', N'dbo',
     'TABLE', N'sys_customer',
-    'COLUMN', N'auth_client_fnum'
+    'COLUMN', N'auth_client_frowid'
 GO
 EXEC sys.sp_addextendedproperty
     'MS_Description', N'头像OSS ID' ,

+ 0 - 0
script/sql/sqlserver/v1/update.sql → script/sql/sqlserver/v1/HS_ERP_Order-update.sql


+ 105 - 0
script/sql/sqlserver/v1/HTSail_CS-create.sql

@@ -0,0 +1,105 @@
+-- ----------------------------
+-- Table structure for t_Applet_Order
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[t_Applet_Order]') AND type IN ('U'))
+	DROP TABLE [dbo].[t_Applet_Order]
+GO
+
+CREATE TABLE [dbo].[t_Applet_Order] (
+  [FRowID] [dbo].[RowID] NOT NULL,
+  [FCode] varchar(50) NULL,
+  [FPlacer] bigint NULL,
+  [FPlaceTime] datetime DEFAULT GETDATE() NULL,
+  [FStatus] int DEFAULT 0 NULL,
+  
+  -- 常规审计字段
+  [CreateBy] bigint NULL,
+  [CreateTime] datetime DEFAULT GETDATE() NULL,
+  [UpdateBy] bigint NULL,
+  [UpdateTime] datetime NULL
+)
+GO
+
+ALTER TABLE [dbo].[t_Applet_Order] ADD CONSTRAINT [PK_t_Applet_Order] PRIMARY KEY CLUSTERED ([FRowID])
+GO
+
+-- 字段注释
+EXEC sp_addextendedproperty 'MS_Description', N'订单主键', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order', 'COLUMN', N'FRowID'
+GO
+EXEC sp_addextendedproperty 'MS_Description', N'订单单号', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order', 'COLUMN', N'FCode'
+GO
+EXEC sp_addextendedproperty 'MS_Description', N'下单人', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order', 'COLUMN', N'FPlacer'
+GO
+EXEC sp_addextendedproperty 'MS_Description', N'下单时间', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order', 'COLUMN', N'FPlaceTime'
+GO
+EXEC sp_addextendedproperty 'MS_Description', N'订单状态 (0-待审核)', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order', 'COLUMN', N'FStatus'
+GO
+
+-- ----------------------------
+-- Table structure for t_Applet_Order_Details
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[t_Applet_Order_Details]') AND type IN ('U'))
+	DROP TABLE [dbo].[t_Applet_Order_Details]
+GO
+
+CREATE TABLE [dbo].[t_Applet_Order_Details] (
+  [FRowID] [dbo].[RowID] NOT NULL,
+  [FOrderID] [dbo].[RowID] NULL,
+  
+  -- 型材信息
+  [ModelID] [dbo].[RowID] NULL,
+  [ModelNum] [dbo].[FNum] NULL,
+  [ModelName] [dbo].[FNum] NULL,
+  [Material] [dbo].[FNum] NULL,
+  
+  -- 表面处理
+  [SurfaceID] [dbo].[RowID] NULL,
+  [SurfaceName] [dbo].[FNum] NULL,
+  
+  -- 包装方式
+  [PackID] [dbo].[RowID] NULL,
+  [PackName] [dbo].[FNum] NULL,
+  
+  -- 规格与数量
+  [Length] [dbo].[CustomFloat] NULL,
+  [WallThickness] [dbo].[CustomFloat] NULL,
+  [Count] int NULL,
+  
+  -- 审计字段
+  [CreateBy] bigint NULL,
+  [CreateTime] datetime DEFAULT GETDATE() NULL,
+  [UpdateBy] bigint NULL,
+  [UpdateTime] datetime NULL
+)
+GO
+
+ALTER TABLE [dbo].[t_Applet_Order_Details] ADD CONSTRAINT [PK_t_Applet_Order_Details] PRIMARY KEY CLUSTERED ([FRowID])
+GO
+
+-- 字段注释
+EXEC sp_addextendedproperty 'MS_Description', N'记录主键', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order_Details', 'COLUMN', N'FRowID'
+GO
+EXEC sp_addextendedproperty 'MS_Description', N'主订单ID', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order_Details', 'COLUMN', N'FOrderID'
+GO
+EXEC sp_addextendedproperty 'MS_Description', N'型材ID', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order_Details', 'COLUMN', N'ModelID'
+GO
+EXEC sp_addextendedproperty 'MS_Description', N'型材编号', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order_Details', 'COLUMN', N'ModelNum'
+GO
+EXEC sp_addextendedproperty 'MS_Description', N'型材名称', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order_Details', 'COLUMN', N'ModelName'
+GO
+EXEC sp_addextendedproperty 'MS_Description', N'型材材质', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order_Details', 'COLUMN', N'Material'
+GO
+EXEC sp_addextendedproperty 'MS_Description', N'表面处理ID', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order_Details', 'COLUMN', N'SurfaceID'
+GO
+EXEC sp_addextendedproperty 'MS_Description', N'表面处理名称', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order_Details', 'COLUMN', N'SurfaceName'
+GO
+EXEC sp_addextendedproperty 'MS_Description', N'包装方式ID', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order_Details', 'COLUMN', N'PackID'
+GO
+EXEC sp_addextendedproperty 'MS_Description', N'包装方式名称', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order_Details', 'COLUMN', N'PackName'
+GO
+EXEC sp_addextendedproperty 'MS_Description', N'长度(mm)', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order_Details', 'COLUMN', N'Length'
+GO
+EXEC sp_addextendedproperty 'MS_Description', N'壁厚(mm)', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order_Details', 'COLUMN', N'WallThickness'
+GO
+EXEC sp_addextendedproperty 'MS_Description', N'支数', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order_Details', 'COLUMN', N'Count'
+GO

+ 1 - 0
yingpaipay-api/pom.xml

@@ -10,6 +10,7 @@
     <modelVersion>4.0.0</modelVersion>
 
     <modules>
+        <module>yingpaipay-api-bom</module>
         <module>yingpaipay-api-erp</module>
     </modules>
 

+ 7 - 0
yingpaipay-api/yingpaipay-api-erp/pom.xml

@@ -15,4 +15,11 @@
         盈派支付 - ERP 模块跨模块接口定义
     </description>
 
+    <dependencies>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+    </dependencies>
+
 </project>

+ 6 - 4
yingpaipay-api/yingpaipay-api-erp/src/main/java/org/dromara/yingpaipay/api/erp/CommonErpClientService.java

@@ -1,5 +1,7 @@
 package org.dromara.yingpaipay.api.erp;
 
+import org.dromara.yingpaipay.api.erp.domain.vo.CommonErpClientVo;
+
 import java.util.List;
 import java.util.Map;
 
@@ -11,10 +13,10 @@ import java.util.Map;
 public interface CommonErpClientService {
 
     /**
-     * 根据授权客户编码列表查询客户名称映射
+     * 根据授权客户 RowID 列表查询客户信息映射
      *
-     * @param authClientFNums 授权客户编码列表 (FNum)
-     * @return Map<编码, 名称>
+     * @param authClientFRowIDs 授权客户 RowID 列表 (FRowID)
+     * @return Map<RowID, 客户信息>
      */
-    Map<String, String> selectNameByFNums(List<String> authClientFNums);
+    Map<String, CommonErpClientVo> selectInfoByFRowIDs(List<String> authClientFRowIDs);
 }

+ 40 - 0
yingpaipay-api/yingpaipay-api-erp/src/main/java/org/dromara/yingpaipay/api/erp/domain/vo/CommonErpClientVo.java

@@ -0,0 +1,40 @@
+package org.dromara.yingpaipay.api.erp.domain.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * ERP 客户公共传输对象
+ *
+ * @Author: Antigravity
+ */
+@Data
+public class CommonErpClientVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * RowID
+     */
+    private String fRowId;
+
+    /**
+     * 名称
+     */
+    private String fName;
+
+    /**
+     * 客户类型
+     */
+    private String fClass;
+
+    /**
+     * 加入时间
+     */
+    private Date enterDate;
+
+}