Răsfoiți Sursa

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteComCompanyService.java
#	ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteComCustomerLevelService.java
#	ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/vo/RemoteComCompanyVo.java
#	ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/interceptor/PlatformDataScopeInterceptor.java
#	ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/CustomerInfoController.java
#	ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/CustomerInfo.java
#	ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/bo/CustomerContactBo.java
#	ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/vo/CustomerContactVo.java
#	ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/vo/CustomerInfoVo.java
#	ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/ICustomerInfoService.java
#	ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/CustomerContactServiceImpl.java
#	ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/CustomerInfoServiceImpl.java
#	ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteComCompanyServiceImpl.java
#	ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteComCustomerLevelServiceImpl.java
#	ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/IComCustomerLevelService.java
#	ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/ComStaffServiceImpl.java
沐梦. 11 ore în urmă
părinte
comite
cb30bbbb02
100 a modificat fișierele cu 3795 adăugiri și 66 ștergeri
  1. 12 0
      .run/ruoyi-auth.run.xml
  2. 12 0
      .run/ruoyi-bill.run.xml
  3. 12 0
      .run/ruoyi-customer.run.xml
  4. 12 0
      .run/ruoyi-external.run.xml
  5. 12 0
      .run/ruoyi-gateway.run.xml
  6. 12 0
      .run/ruoyi-mall.run.xml
  7. 12 0
      .run/ruoyi-nacos.run.xml
  8. 12 0
      .run/ruoyi-order.run.xml
  9. 12 0
      .run/ruoyi-product.run.xml
  10. 12 0
      .run/ruoyi-resource.run.xml
  11. 12 0
      .run/ruoyi-system.run.xml
  12. 3 0
      .vscode/settings.json
  13. 8 0
      ruoyi-api/ruoyi-api-customer/src/main/java/org/dromara/customer/api/RemoteCustomerContactService.java
  14. 8 0
      ruoyi-api/ruoyi-api-customer/src/main/java/org/dromara/customer/api/RemotePartnerPreparedService.java
  15. 77 0
      ruoyi-api/ruoyi-api-customer/src/main/java/org/dromara/customer/api/domain/vo/RemoteCustomerContactVo.java
  16. 32 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/domain/ExternalItemDto.java
  17. 101 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/domain/ExternalProductDto.java
  18. 14 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/service/RemoteExternalItemService.java
  19. 16 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/service/RemoteExternalProductService.java
  20. 96 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyAfterOrderAddBo.java
  21. 23 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyAfterOrderBo.java
  22. 93 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyAfterOrderListBo.java
  23. 57 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyApplyReconBo.java
  24. 33 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyAuthBo.java
  25. 28 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyConfirmOrderBo.java
  26. 28 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyOrderBo.java
  27. 82 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyOrderInvoiceBo.java
  28. 88 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyOrderListBo.java
  29. 23 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyOrderStatusBo.java
  30. 41 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyProductBo.java
  31. 28 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyProductBrandBo.java
  32. 23 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyProductDetailBo.java
  33. 38 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyProductStockBo.java
  34. 28 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyProductUnitBo.java
  35. 38 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyReconListBo.java
  36. 23 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyReconStateBo.java
  37. 28 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyRootOrderBo.java
  38. 28 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartySetAfterStateBo.java
  39. 28 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartySetOrderPayStateBo.java
  40. 28 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyTrackingBo.java
  41. 23 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyTrackingStatusBo.java
  42. 81 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyAfterOrderDto.java
  43. 28 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyAfterOrderStatusDto.java
  44. 78 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyAreaDto.java
  45. 23 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyAuthDto.java
  46. 175 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyOrderDto.java
  47. 126 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyOrderInvoiceDto.java
  48. 28 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyOrderPayStateDto.java
  49. 28 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyOrderStatusDto.java
  50. 28 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyProductBrandDto.java
  51. 38 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyProductCateDto.java
  52. 60 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyProductDetailDto.java
  53. 125 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyProductDto.java
  54. 54 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyProductPriceDto.java
  55. 38 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyProductStatusDto.java
  56. 43 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyProductStockDto.java
  57. 28 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyProductUnitDto.java
  58. 34 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyReconDto.java
  59. 23 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyReconStateDto.java
  60. 29 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyRootOrderDto.java
  61. 85 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyTrackingDto.java
  62. 33 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyTrackingStatusDto.java
  63. 1 0
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/zhongche/domain/ZCR.java
  64. 14 14
      ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/zhongzhi/domain/ZZResult.java
  65. 14 1
      ruoyi-api/ruoyi-api-product/src/main/java/org/dromara/product/api/RemoteProductService.java
  66. 1 1
      ruoyi-api/ruoyi-api-product/src/main/java/org/dromara/product/api/domain/ProductCategoryRemoteVo.java
  67. 87 34
      ruoyi-api/ruoyi-api-product/src/main/java/org/dromara/product/api/domain/ProductVo.java
  68. 10 0
      ruoyi-api/ruoyi-api-product/src/main/java/org/dromara/product/api/domain/zhongche/dto/ProductAggregateDto.java
  69. 9 0
      ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteComCurrencyService.java
  70. 8 0
      ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteComCustomerTypeService.java
  71. 4 1
      ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteComStaffService.java
  72. 4 0
      ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteCreditLevelService.java
  73. 19 0
      ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteErpDeptService.java
  74. 16 0
      ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteErpStaffService.java
  75. 9 0
      ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteProductTaxrateService.java
  76. 8 0
      ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteSupplierLevelService.java
  77. 3 0
      ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteSupplierTypeService.java
  78. 2 2
      ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/bo/RemoteUserBo.java
  79. 34 0
      ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/vo/RemoteComCurrencyVo.java
  80. 31 0
      ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/vo/RemoteComCustomerLevelVo.java
  81. 26 0
      ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/vo/RemoteComCustomerTypeVo.java
  82. 31 0
      ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/vo/RemoteCreditLevelVo.java
  83. 46 0
      ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/vo/RemoteErpDeptVo.java
  84. 64 0
      ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/vo/RemoteErpStaffVo.java
  85. 28 0
      ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/vo/RemoteProductTaxrateVo.java
  86. 28 0
      ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/vo/RemoteSupplierLevelVo.java
  87. 5 0
      ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/vo/RemoteSupplierTypeVo.java
  88. 6 0
      ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/model/LoginUser.java
  89. 24 13
      ruoyi-auth/src/main/java/org/dromara/auth/controller/Auth2Controller.java
  90. 10 0
      ruoyi-auth/src/main/java/org/dromara/auth/controller/TokenController.java
  91. 6 0
      ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/R.java
  92. 30 0
      ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/model/ThirdpartyCertificationBody.java
  93. 43 0
      ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/InvoiceApplicationStatus.java
  94. 9 0
      ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/core/page/TableDataInfo.java
  95. 123 0
      ruoyi-modules/ruoyi-bill/src/main/java/org/dromara/bill/controller/InvoiceApplicationController.java
  96. 106 0
      ruoyi-modules/ruoyi-bill/src/main/java/org/dromara/bill/controller/ReconApplicationController.java
  97. 165 0
      ruoyi-modules/ruoyi-bill/src/main/java/org/dromara/bill/domain/InvoiceApplication.java
  98. 70 0
      ruoyi-modules/ruoyi-bill/src/main/java/org/dromara/bill/domain/ReconApplication.java
  99. 158 0
      ruoyi-modules/ruoyi-bill/src/main/java/org/dromara/bill/domain/bo/InvoiceApplicationBo.java
  100. 62 0
      ruoyi-modules/ruoyi-bill/src/main/java/org/dromara/bill/domain/bo/ReconApplicationBo.java

+ 12 - 0
.run/ruoyi-auth.run.xml

@@ -0,0 +1,12 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="ruoyi-auth" type="docker-deploy" factoryName="dockerfile" server-name="119.97.180.88">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="ruoyi/ruoyi-auth:2.4.1" />
+        <option name="containerName" value="" />
+        <option name="sourceFilePath" value="ruoyi-auth/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
+</component>

+ 12 - 0
.run/ruoyi-bill.run.xml

@@ -0,0 +1,12 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="ruoyi-bill" type="docker-deploy" factoryName="dockerfile" server-name="119.97.180.88">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="ruoyi/ruoyi-ruoyi-bill:2.4.1" />
+        <option name="containerName" value="" />
+        <option name="sourceFilePath" value="ruoyi-modules/ruoyi-bill/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
+</component>

+ 12 - 0
.run/ruoyi-customer.run.xml

@@ -0,0 +1,12 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="ruoyi-customer" type="docker-deploy" factoryName="dockerfile" server-name="119.97.180.88">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="ruoyi/ruoyi-customer:2.4.1" />
+        <option name="containerName" value="" />
+        <option name="sourceFilePath" value="ruoyi-modules/ruoyi-customer/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
+</component>

+ 12 - 0
.run/ruoyi-external.run.xml

@@ -0,0 +1,12 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="ruoyi-external" type="docker-deploy" factoryName="dockerfile" server-name="119.97.180.88">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="ruoyi/ruoyi-external:2.4.1" />
+        <option name="containerName" value="" />
+        <option name="sourceFilePath" value="ruoyi-modules/ruoyi-external/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
+</component>

+ 12 - 0
.run/ruoyi-gateway.run.xml

@@ -0,0 +1,12 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="ruoyi-gateway" type="docker-deploy" factoryName="dockerfile" server-name="119.97.180.88">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="ruoyi/ruoyi-gateway:2.4.1" />
+        <option name="containerName" value="" />
+        <option name="sourceFilePath" value="ruoyi-gateway/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
+</component>

+ 12 - 0
.run/ruoyi-mall.run.xml

@@ -0,0 +1,12 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="ruoyi-mall" type="docker-deploy" factoryName="dockerfile" server-name="119.97.180.88">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="ruoyi/ruoyi-ruoyi-mall:2.4.1" />
+        <option name="containerName" value="" />
+        <option name="sourceFilePath" value="ruoyi-modules/ruoyi-mall/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
+</component>

+ 12 - 0
.run/ruoyi-nacos.run.xml

@@ -0,0 +1,12 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="ruoyi-nacos" type="docker-deploy" factoryName="dockerfile" server-name="119.97.180.88">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="ruoyi/ruoyi-ruoyi-nacos:2.4.1" />
+        <option name="containerName" value="" />
+        <option name="sourceFilePath" value="ruoyi-visual/ruoyi-nacos/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
+</component>

+ 12 - 0
.run/ruoyi-order.run.xml

@@ -0,0 +1,12 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="ruoyi-order" type="docker-deploy" factoryName="dockerfile" server-name="119.97.180.88">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="ruoyi/ruoyi-order:2.4.1" />
+        <option name="containerName" value="" />
+        <option name="sourceFilePath" value="ruoyi-modules/ruoyi-order/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
+</component>

+ 12 - 0
.run/ruoyi-product.run.xml

@@ -0,0 +1,12 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="ruoyi-product" type="docker-deploy" factoryName="dockerfile" server-name="119.97.180.88">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="ruoyi/ruoyi-product:2.4.1" />
+        <option name="containerName" value="" />
+        <option name="sourceFilePath" value="ruoyi-modules/ruoyi-product/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
+</component>

+ 12 - 0
.run/ruoyi-resource.run.xml

@@ -0,0 +1,12 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="ruoyi-resource" type="docker-deploy" factoryName="dockerfile" server-name="119.97.180.88">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="ruoyi/ruoyi-resource:2.4.1" />
+        <option name="containerName" value="" />
+        <option name="sourceFilePath" value="ruoyi-modules/ruoyi-resource/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
+</component>

+ 12 - 0
.run/ruoyi-system.run.xml

@@ -0,0 +1,12 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="ruoyi-system" type="docker-deploy" factoryName="dockerfile" server-name="119.97.180.88">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="ruoyi/ruoyi-system:2.4.1" />
+        <option name="containerName" value="" />
+        <option name="sourceFilePath" value="ruoyi-modules/ruoyi-system/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
+</component>

+ 3 - 0
.vscode/settings.json

@@ -0,0 +1,3 @@
+{
+    "java.compile.nullAnalysis.mode": "automatic"
+}

+ 8 - 0
ruoyi-api/ruoyi-api-customer/src/main/java/org/dromara/customer/api/RemoteCustomerContactService.java

@@ -0,0 +1,8 @@
+package org.dromara.customer.api;
+
+import org.dromara.customer.api.domain.vo.RemoteCustomerContactVo;
+
+public interface RemoteCustomerContactService {
+
+    RemoteCustomerContactVo selectCustomerContactByCustomerIdAndUserId(Long customerId, Long userId);
+}

+ 8 - 0
ruoyi-api/ruoyi-api-customer/src/main/java/org/dromara/customer/api/RemotePartnerPreparedService.java

@@ -3,6 +3,9 @@ package org.dromara.customer.api;
 import org.dromara.common.core.domain.zhongche.vo.PrepareOrderDetailRespVo;
 import org.dromara.customer.api.domain.dto.PartnerPreparedDTO;
 
+import java.util.Map;
+import java.util.Set;
+
 /**
  * author
  * 时间:2026/2/3,17:49
@@ -14,4 +17,9 @@ public interface RemotePartnerPreparedService {
     PartnerPreparedDTO cancelPartnerPreparedById(String prepareOrderNo, String cancelReason);
 
     PartnerPreparedDTO createPartnerPrepared(PrepareOrderDetailRespVo prepareOrderDetailRespVo);
+
+    /**
+     * 根据ids查询报备订单号
+     */
+    Map<Long, String> selectPreparedOrderNoByIds(Set<Long> ids);
 }

+ 77 - 0
ruoyi-api/ruoyi-api-customer/src/main/java/org/dromara/customer/api/domain/vo/RemoteCustomerContactVo.java

@@ -0,0 +1,77 @@
+package org.dromara.customer.api.domain.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+public class RemoteCustomerContactVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 联系人ID
+     */
+    private Long id;
+
+    /*联系人编号*/
+    private String contactNo;
+
+    /*系统用户id*/
+    private Long userId;
+
+    /**
+     * 所属客户ID
+     */
+    private Long customerId;
+
+
+    /**
+     * 联系人姓名
+     */
+    private String contactName;
+
+    private String wechat;
+
+    /*自定义登录名*/
+    private String customLoginName;
+
+    /**
+     * 手机号码
+     */
+    private String phone;
+
+    /**
+     * 办公电话
+     */
+    private String officePhone;
+
+    /**
+     * 办公电话2
+     */
+    private String officePhoneTwo;
+
+    /**
+     * 性别
+     */
+    private String gender;
+
+    /**
+     * 采购角色(如:采购经理、财务)
+     */
+    private Long roleId;
+
+    private String roleName;
+
+    private Long deptId;
+
+    private String deptName;
+
+    /**
+     * 是否主联系人:0=是,1=否
+     */
+    private String isPrimary;
+
+}

+ 32 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/domain/ExternalItemDto.java

@@ -0,0 +1,32 @@
+package org.dromara.external.api.domain;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author
+ * @date 2026/3/27 上午12:30
+ */
+@Data
+public class ExternalItemDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 项目id
+     */
+    private Long id;
+    /**
+     * 项目负责人id
+     * */
+    private Long purchaseId;
+
+    /**
+     * 项目logo
+     */
+    private String logo;
+    /**
+     * 项目名
+     */
+    private String itemName;
+}

+ 101 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/domain/ExternalProductDto.java

@@ -0,0 +1,101 @@
+package org.dromara.external.api.domain;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+@Data
+public class ExternalProductDto implements Serializable {
+
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     *
+     */
+    private Long id;
+
+    /**
+     * 商品id
+     */
+    private Long productId;
+
+    /**
+     * 商品名称
+     */
+    private String itemName;
+
+    /**
+     * 商品编号
+     */
+    private String productNo;
+
+    /**
+     * 项目id
+     */
+    private Long itemId;
+
+    /**
+     * 分类id
+     */
+    private Long categoryId;
+
+    /**
+     * 外部分类id
+     */
+    private Long externalCategoryId;
+
+    /**
+     * 推送状态 0未推送,1已推送
+     */
+    private Long pushStatus;
+
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     *  第三方价格
+     * */
+    private BigDecimal externalPrice;
+
+    /**
+     * 商品状态:1=已上架,0=下架
+     * */
+    private Integer productStatus;
+
+
+    /**
+     * 第三方商品审核状态:0=待提交,1=待审核,2=审核通过,3=审核驳回
+     */
+    private Integer auditStatus;
+
+    /**
+     * 审核意见
+     */
+    private String auditReason;
+
+    /**
+     * 对接状态 0未对接,1已对接
+     */
+    private Integer connectStatus;
+
+    /**
+    * 申请类型 0更新,1移出
+    * */
+    private Integer type;
+
+    /**
+    * 计价规则(0 一品一价,1 按类目折扣率报价)
+    * */
+    private String pricingRule;
+
+    /**
+    * 起订量
+    * */
+    private Long minOrderQuantity;
+
+}

+ 14 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/service/RemoteExternalItemService.java

@@ -0,0 +1,14 @@
+package org.dromara.external.api.service;
+
+import org.dromara.external.api.domain.ExternalItemDto;
+
+/**
+ * @author
+ * @date 2026/3/27 上午12:30
+ */
+public interface RemoteExternalItemService {
+    /**
+    * 获取项目信息
+    * */
+    ExternalItemDto getItemInfo(Long itemId);
+}

+ 16 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/service/RemoteExternalProductService.java

@@ -1,5 +1,9 @@
 package org.dromara.external.api.service;
 
+import org.dromara.external.api.domain.ExternalProductDto;
+
+import java.util.List;
+
 /**
  * @author
  * @date 2026/1/14 下午4:58
@@ -10,4 +14,16 @@ public interface RemoteExternalProductService {
     * 获取商品的对接状态
     * */
     Boolean getProductDockingStatus(Long productId,String itemKey);
+
+    /**
+    * 获取项目中的商品
+    * */
+    List<ExternalProductDto> getExternalProductList(Long itemId);
+
+    /**
+    * 更新产品
+    * */
+    void syncExternalProduct(List<ExternalProductDto> productIds);
+
+
 }

+ 96 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyAfterOrderAddBo.java

@@ -0,0 +1,96 @@
+package org.dromara.external.api.thirdparty.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 售后订单新增请求参数
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyAfterOrderAddBo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 售后单号
+     */
+    private String orderID;
+
+    /**
+     * 售后金额
+     */
+    private BigDecimal amount;
+
+    /**
+     * 售后时间
+     */
+    private Date date;
+
+    /**
+     * 售后状态
+     */
+    private Integer state;
+
+    /**
+     * 售后原因
+     */
+    private String reason;
+
+    /**
+     * 售后描述
+     */
+    private String desc;
+
+    /**
+     * 商品信息
+     */
+    private List<AfterOrderProduct> productIds;
+
+    @Data
+    public static class AfterOrderProduct implements Serializable {
+        @Serial
+        private static final long serialVersionUID = 1L;
+
+        private Integer id;
+        private String created;
+        private String modify;
+
+        /**
+         * 订单号
+         */
+        private String orderID;
+
+        /**
+         * 商品单号
+         */
+        private String productNo;
+
+        /**
+         * 商品名称
+         */
+        private String name;
+
+        /**
+         * 商品数量
+         */
+        private Integer num;
+
+        /**
+         * 商品单价
+         */
+        private BigDecimal price;
+
+        /**
+         * 商品总金额
+         */
+        private BigDecimal amount;
+    }
+}

+ 23 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyAfterOrderBo.java

@@ -0,0 +1,23 @@
+package org.dromara.external.api.thirdparty.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 售后订单查询请求参数
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyAfterOrderBo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 售后订单号
+     */
+    private String orderID;
+}

+ 93 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyAfterOrderListBo.java

@@ -0,0 +1,93 @@
+package org.dromara.external.api.thirdparty.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 售后订单列表查询请求参数
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyAfterOrderListBo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 当前页
+     */
+    private Integer pageIndex;
+
+    /**
+     * 每页显示数量
+     */
+    private Integer pageSize;
+
+    /**
+     * 数据总行数(非分页)
+     */
+    private Integer dataCount;
+
+    /**
+     * 售后单号
+     */
+    private String orderID;
+
+    /**
+     * 订单状态
+     */
+    private Integer status;
+
+    /**
+     * 支付状态
+     */
+    private Integer paystatus;
+
+    /**
+     * 下单时间
+     */
+    private String ordertime;
+
+    /**
+     * 下单截止时间
+     */
+    private String end_ordertime;
+
+    /**
+     * 发货时间
+     */
+    private String deliverytime;
+
+    /**
+     * 发货截止时间
+     */
+    private String end_deliverytime;
+
+    /**
+     * 签收时间
+     */
+    private String signingtime;
+
+    /**
+     * 签收截止时间
+     */
+    private String end_signingtime;
+
+    /**
+     * 条件
+     */
+    private Integer condition;
+
+    /**
+     * 物流状态
+     */
+    private Integer logisticstatus;
+
+    /**
+     * 发货状态
+     */
+    private Integer deliverystatus;
+}

+ 57 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyApplyReconBo.java

@@ -0,0 +1,57 @@
+package org.dromara.external.api.thirdparty.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 对账申请请求参数
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyApplyReconBo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 总金额
+     */
+    private BigDecimal totalAmount;
+
+    /**
+     * 申请时间
+     */
+    private Date datetime;
+
+    /**
+     * 申请状态 0未开,1已开
+     */
+    private Integer state;
+
+    /**
+     * 多订单号
+     */
+    private List<OrderIdItem> orderIds;
+
+    @Data
+    public static class OrderIdItem implements Serializable {
+        @Serial
+        private static final long serialVersionUID = 1L;
+
+        /**
+         * 订单id
+         */
+        private String orderID;
+
+        /**
+         * 对账金额
+         */
+        private BigDecimal amount;
+    }
+}

+ 33 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyAuthBo.java

@@ -0,0 +1,33 @@
+package org.dromara.external.api.thirdparty.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 获取令牌请求参数
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyAuthBo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 平台代码
+     */
+    private String patformID;
+
+    /**
+     * 账户
+     */
+    private String account;
+
+    /**
+     * 秘钥
+     */
+    private String secret;
+}

+ 28 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyConfirmOrderBo.java

@@ -0,0 +1,28 @@
+package org.dromara.external.api.thirdparty.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 撤销订单请求参数
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyConfirmOrderBo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 订单编号
+     */
+    private String orderID;
+
+    /**
+     * 订单状态  0-待确认 1-已确认、3-已取消、4-已完成、5-已对账、6-已开票、7-售后中、8-售后完成、9-拒绝售后
+     */
+    private Integer orderstatus;
+}

+ 28 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyOrderBo.java

@@ -0,0 +1,28 @@
+package org.dromara.external.api.thirdparty.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 订单查询请求参数
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyOrderBo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主订单号
+     */
+    private String parentOrderNo;
+
+    /**
+     * 订单编号
+     */
+    private String orderID;
+}

+ 82 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyOrderInvoiceBo.java

@@ -0,0 +1,82 @@
+package org.dromara.external.api.thirdparty.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 申请开票请求参数
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyOrderInvoiceBo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 开票流水号
+     */
+    private String invoicenum;
+
+    /**
+     * 开票金额
+     */
+    private BigDecimal amount;
+
+    /**
+     * 发票抬头
+     */
+    private String rise;
+
+    /**
+     * 发票类型0增值税专用,1增值税普通
+     */
+    private Integer type;
+
+    /**
+     * 申请时间
+     */
+    private Date applyDate;
+
+    /**
+     * 开票时间
+     */
+    private Date billingDate;
+
+    /**
+     * 发票状态0未开,1已开
+     */
+    private Integer state;
+
+    /**
+     * 审核状态0未审,1已审
+     */
+    private Integer examine;
+
+    /**
+     * 订单数组
+     */
+    private List<OrderInvoiceItem> orderIds;
+
+    @Data
+    public static class OrderInvoiceItem implements Serializable {
+        @Serial
+        private static final long serialVersionUID = 1L;
+
+        /**
+         * 订单号
+         */
+        private String orderID;
+
+        /**
+         * 开票金额
+         */
+        private BigDecimal billingAmount;
+    }
+}

+ 88 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyOrderListBo.java

@@ -0,0 +1,88 @@
+package org.dromara.external.api.thirdparty.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 订单列表查询请求参数
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyOrderListBo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 当前页
+     */
+    private Integer pageIndex;
+
+    /**
+     * 每页显示数量
+     */
+    private Integer pageSize;
+
+    /**
+     * 数据总行数(非分页)
+     */
+    private Integer dataCount;
+
+    /**
+     * 订单编号
+     */
+    private String orderID;
+
+    /**
+     * 订单状态
+     */
+    private Integer orderstatus;
+
+    /**
+     * 支付状态
+     */
+    private Integer paystatus;
+
+    /**
+     * 下单时间
+     */
+    private String ordertime;
+
+    /**
+     * 下单截止时间
+     */
+    private String end_ordertime;
+
+    /**
+     * 发货时间
+     */
+    private String deliverytime;
+
+    /**
+     * 发货截止时间
+     */
+    private String end_deliverytime;
+
+    /**
+     * 签收时间
+     */
+    private String signingtime;
+
+    /**
+     * 签收截止时间
+     */
+    private String end_signingtime;
+
+    /**
+     * 物流状态
+     */
+    private Integer logisticstatus;
+
+    /**
+     * 发货状态
+     */
+    private Integer deliverystatus;
+}

+ 23 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyOrderStatusBo.java

@@ -0,0 +1,23 @@
+package org.dromara.external.api.thirdparty.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 订单状态查询请求参数
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyOrderStatusBo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 订单编号
+     */
+    private String orderID;
+}

+ 41 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyProductBo.java

@@ -0,0 +1,41 @@
+package org.dromara.external.api.thirdparty.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author
+ * @date 2026/4/9 下午1:46
+ */
+@Data
+public class ThirdpartyProductBo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 产品编号
+     */
+    private String productNo;
+
+    /**
+     * 产品名称
+     */
+    private String itemName;
+
+
+    /**
+     * 三级分类ID
+     */
+    private Long categoryId;
+
+
+    /**
+     * 商品品牌
+     */
+    private Long brandId;
+
+}
+

+ 28 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyProductBrandBo.java

@@ -0,0 +1,28 @@
+package org.dromara.external.api.thirdparty.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 产品品牌查询请求参数
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyProductBrandBo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 品牌id
+     */
+    private String brandId;
+
+    /**
+     * 品牌名称
+     */
+    private String name;
+}

+ 23 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyProductDetailBo.java

@@ -0,0 +1,23 @@
+package org.dromara.external.api.thirdparty.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 产品详情查询请求参数
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyProductDetailBo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 产品编号
+     */
+    private String productNo;
+}

+ 38 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyProductStockBo.java

@@ -0,0 +1,38 @@
+package org.dromara.external.api.thirdparty.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 商品库存查询请求参数
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyProductStockBo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 商品编码
+     */
+    private String productNo;
+
+    /**
+     * 省
+     */
+    private Integer provinceId;
+
+    /**
+     * 市
+     */
+    private Integer cityId;
+
+    /**
+     * 县/区
+     */
+    private Integer countyId;
+}

+ 28 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyProductUnitBo.java

@@ -0,0 +1,28 @@
+package org.dromara.external.api.thirdparty.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 产品单位查询请求参数
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyProductUnitBo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 单位id
+     */
+    private String unitId;
+
+    /**
+     * 单位名称
+     */
+    private String name;
+}

+ 38 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyReconListBo.java

@@ -0,0 +1,38 @@
+package org.dromara.external.api.thirdparty.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 对账列表查询请求参数
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyReconListBo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 当前页
+     */
+    private Integer pageIndex;
+
+    /**
+     * 每页显示数量
+     */
+    private Integer pageSize;
+
+    /**
+     * 订单编号
+     */
+    private String orderID;
+
+    /**
+     * 对账状态 0未开,1已开
+     */
+    private Integer state;
+}

+ 23 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyReconStateBo.java

@@ -0,0 +1,23 @@
+package org.dromara.external.api.thirdparty.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 对账状态查询请求参数
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyReconStateBo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 对账单号
+     */
+    private String reconNo;
+}

+ 28 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyRootOrderBo.java

@@ -0,0 +1,28 @@
+package org.dromara.external.api.thirdparty.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 主订单查询请求参数
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyRootOrderBo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主订单单号
+     */
+    private String parentOrderNo;
+
+    /**
+     * 子订单号
+     */
+    private String orderID;
+}

+ 28 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartySetAfterStateBo.java

@@ -0,0 +1,28 @@
+package org.dromara.external.api.thirdparty.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 售后订单状态修改请求参数
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartySetAfterStateBo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 售后订单号
+     */
+    private String orderID;
+
+    /**
+     * 订单状态0-申请 1-已确认、2-已取消、3-售后中、4-售后完成、5-拒绝售后
+     */
+    private Integer state;
+}

+ 28 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartySetOrderPayStateBo.java

@@ -0,0 +1,28 @@
+package org.dromara.external.api.thirdparty.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 订单支付状态写入请求参数
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartySetOrderPayStateBo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 订单编号
+     */
+    private String orderID;
+
+    /**
+     * 支付状态  0-待支付 1-已支付
+     */
+    private Integer paystatus;
+}

+ 28 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyTrackingBo.java

@@ -0,0 +1,28 @@
+package org.dromara.external.api.thirdparty.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 物流查询请求参数
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyTrackingBo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 包裹Id
+     */
+    private String packageId;
+
+    /**
+     * 订单编号
+     */
+    private String orderID;
+}

+ 23 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyTrackingStatusBo.java

@@ -0,0 +1,23 @@
+package org.dromara.external.api.thirdparty.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 物流状态查询请求参数
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyTrackingStatusBo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 物流单号
+     */
+    private String logisticsNo;
+}

+ 81 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyAfterOrderDto.java

@@ -0,0 +1,81 @@
+package org.dromara.external.api.thirdparty.domain.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 售后订单响应数据
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyAfterOrderDto implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 订单编号
+     */
+    private String orderID;
+
+    /**
+     * 订单状态0-申请 1-已确认、2-已取消、3-售后中、4-售后完成、5-拒绝售后
+     */
+    private String state;
+
+    /**
+     * 售后原因
+     */
+    private String reason;
+
+    /**
+     * 下单时间yyyymmddhh24miss
+     */
+    private String ordertime;
+
+    /**
+     * 商品信息
+     */
+    private List<AfterOrderProduct> productIds;
+
+    @Data
+    public static class AfterOrderProduct implements Serializable {
+        @Serial
+        private static final long serialVersionUID = 1L;
+
+        private Integer id;
+        private String created;
+        private String modify;
+        private String orderID;
+
+        /**
+         * 商品单号
+         */
+        private String productNo;
+
+        /**
+         * 商品名称
+         */
+        private String name;
+
+        /**
+         * 商品数量
+         */
+        private Integer num;
+
+        /**
+         * 商品单价
+         */
+        private BigDecimal price;
+
+        /**
+         * 订单总金额,含运费,单位分
+         */
+        private String amount;
+    }
+}

+ 28 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyAfterOrderStatusDto.java

@@ -0,0 +1,28 @@
+package org.dromara.external.api.thirdparty.domain.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 售后订单状态响应数据
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyAfterOrderStatusDto implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 售后订单号
+     */
+    private String orderID;
+
+    /**
+     * 状态
+     */
+    private Integer state;
+}

+ 78 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyAreaDto.java

@@ -0,0 +1,78 @@
+package org.dromara.external.api.thirdparty.domain.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 区域地址响应数据
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyAreaDto implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * keyId
+     */
+    private Integer keyId;
+
+    /**
+     * 区域代码
+     */
+    private String areaCode;
+
+    /**
+     * 区域名称
+     */
+    private String areaName;
+
+    /**
+     * 父级代码
+     */
+    private Integer parentCode;
+
+    /**
+     * 简称
+     */
+    private String simpleName;
+
+    /**
+     * 层级
+     */
+    private Integer level;
+
+    /**
+     * 城市代码
+     */
+    private String cityCode;
+
+    /**
+     * 邮政编码
+     */
+    private String zipCode;
+
+    /**
+     * 完整名称
+     */
+    private String merName;
+
+    /**
+     * 经度
+     */
+    private Double lng;
+
+    /**
+     * 纬度
+     */
+    private Double lat;
+
+    /**
+     * 拼音
+     */
+    private String pinYin;
+}

+ 23 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyAuthDto.java

@@ -0,0 +1,23 @@
+package org.dromara.external.api.thirdparty.domain.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 获取令牌响应数据
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyAuthDto implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * token令牌
+     */
+    private String token;
+}

+ 175 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyOrderDto.java

@@ -0,0 +1,175 @@
+package org.dromara.external.api.thirdparty.domain.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 订单响应数据
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyOrderDto implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 订单编号
+     */
+    private String orderID;
+
+    /**
+     * 下单客户名称(三方平台下客户)
+     */
+    private String ordercustname;
+
+    /**
+     * 收货人
+     */
+    private String receiver;
+
+    /**
+     * 省份id
+     */
+    private String province;
+
+    /**
+     * 城市id
+     */
+    private String city;
+
+    /**
+     * 区域id
+     */
+    private String county;
+
+    /**
+     * 乡镇id
+     */
+    private String town;
+
+    /**
+     * 收货地址-详细地址
+     */
+    private String address;
+
+    /**
+     * 邮编
+     */
+    private String zipcode;
+
+    /**
+     * 联系人手机
+     */
+    private String mobilecall;
+
+    /**
+     * 联系人座机
+     */
+    private String phoneno;
+
+    /**
+     * 支付方式0-货到付款、1-账期
+     */
+    private Integer paymode;
+
+    /**
+     * 订单总金额,含运费,单位分
+     */
+    private BigDecimal feetotal;
+
+    /**
+     * 支付状态0-待支付 1-已支付
+     */
+    private Integer paystatus;
+
+    /**
+     * 订单状态0-待确认 1-已确认、3-已取消、4-已完成、5-已对账、6-已开票、7-售后中、8-售后完成、9-拒绝售后
+     */
+    private Integer orderstatus;
+
+    /**
+     * 物流状态:0-待发货、1-发货中、2-已签收、3-拒签
+     */
+    private Integer LogisticsStatus;
+
+    /**
+     * 订单备注
+     */
+    private String ordermemo;
+
+    /**
+     * 期望收货时间yyyymmdd
+     */
+    private String orderexpectdt;
+
+    /**
+     * 下单时间yyyymmddhh24miss
+     */
+    private String ordercreatetm;
+
+    /**
+     * 同步状态1-已上传0-未上传
+     */
+    private Integer ordersyncsign;
+
+    /**
+     * 商品总金额单位分
+     */
+    private BigDecimal productprice;
+
+    /**
+     * 运费单位分
+     */
+    private BigDecimal freight;
+
+    /**
+     * SKU信息
+     */
+    private List<OrderSkuInfo> skuinfo;
+
+    @Data
+    public static class OrderSkuInfo implements Serializable {
+        @Serial
+        private static final long serialVersionUID = 1L;
+
+        private Integer id;
+        private String created;
+        private String modify;
+
+        /**
+         * 订单编号
+         */
+        private String orderID;
+
+        /**
+         * 商品编号
+         */
+        private String productNo;
+
+        /**
+         * 商品名称
+         */
+        private String itemName;
+
+        /**
+         * 销售价
+         */
+        private BigDecimal salePrice;
+
+        /**
+         * 供应价
+         */
+        private BigDecimal supplyPrice;
+
+        /**
+         * 数量
+         */
+        private Integer shopNum;
+    }
+}

+ 126 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyOrderInvoiceDto.java

@@ -0,0 +1,126 @@
+package org.dromara.external.api.thirdparty.domain.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 开票信息响应数据
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyOrderInvoiceDto implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 开票流水号
+     */
+    private String invoicenum;
+
+    /**
+     * 平台id
+     */
+    private String PatformID;
+
+    /**
+     * 开票金额
+     */
+    private BigDecimal amount;
+
+    /**
+     * 开票抬头
+     */
+    private String rise;
+
+    /**
+     * 发票类型0增值税专用,1增值税普通
+     */
+    private Integer type;
+
+    /**
+     * 订单数组
+     */
+    private List<OrderInvoiceItem> orderIds;
+
+    /**
+     * 申请时间
+     */
+    private String applyDate;
+
+    /**
+     * 开票时间
+     */
+    private String billingDate;
+
+    /**
+     * 发票状态0未开,1已开
+     */
+    private Integer state;
+
+    /**
+     * 审核状态0未审,1已审
+     */
+    private Integer examine;
+
+    /**
+     * 物流信息
+     */
+    private List<LogisticsInfo> logistics;
+
+    @Data
+    public static class OrderInvoiceItem implements Serializable {
+        @Serial
+        private static final long serialVersionUID = 1L;
+
+        /**
+         * 订单号
+         */
+        private String orderID;
+
+        /**
+         * 开票金额
+         */
+        private BigDecimal billingAmount;
+    }
+
+    @Data
+    public static class LogisticsInfo implements Serializable {
+        @Serial
+        private static final long serialVersionUID = 1L;
+
+        private Integer id;
+        private String created;
+        private String modify;
+
+        /**
+         * 发票流水号
+         */
+        private String invoicenum;
+
+        /**
+         * 物流id
+         */
+        private String logisticsID;
+
+        /**
+         * 物流名称
+         */
+        private String name;
+
+        /**
+         * 物流编号
+         */
+        private String no;
+
+        /**
+         * 物流状态
+         */
+        private Integer state;
+    }
+}

+ 28 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyOrderPayStateDto.java

@@ -0,0 +1,28 @@
+package org.dromara.external.api.thirdparty.domain.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 订单支付状态响应数据
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyOrderPayStateDto implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 订单编号
+     */
+    private String orderID;
+
+    /**
+     * 支付状态  0-待支付 1-已支付
+     */
+    private Integer paystate;
+}

+ 28 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyOrderStatusDto.java

@@ -0,0 +1,28 @@
+package org.dromara.external.api.thirdparty.domain.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 订单状态响应数据
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyOrderStatusDto implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 订单编号
+     */
+    private String orderID;
+
+    /**
+     * 订单状态  0-待确认 1-已确认、3-已取消、4-已完成、5-已对账、6-已开票、7-售后中、8-售后完成、9-拒绝售后
+     */
+    private Integer status;
+}

+ 28 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyProductBrandDto.java

@@ -0,0 +1,28 @@
+package org.dromara.external.api.thirdparty.domain.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 产品品牌响应数据
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyProductBrandDto implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 品牌id
+     */
+    private String brandId;
+
+    /**
+     * 品牌名称
+     */
+    private String name;
+}

+ 38 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyProductCateDto.java

@@ -0,0 +1,38 @@
+package org.dromara.external.api.thirdparty.domain.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 产品分类响应数据
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyProductCateDto implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 分类id
+     */
+    private String id;
+
+    /**
+     * 父级id
+     */
+    private String parentId;
+
+    /**
+     * 分类层级
+     */
+    private Integer catLevel;
+
+    /**
+     * 分类名称
+     */
+    private String name;
+}

+ 60 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyProductDetailDto.java

@@ -0,0 +1,60 @@
+package org.dromara.external.api.thirdparty.domain.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 产品详情响应数据
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyProductDetailDto implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 商品id
+     */
+    private String productId;
+
+    /**
+     * 商品编码
+     */
+    private String productNo;
+
+    /**
+     * 商品名称
+     */
+    private String itemName;
+
+    /**
+     * 商品图片
+     */
+    private String photo;
+
+    /**
+     * 商品多图
+     */
+    private List<ProductImage> productImages;
+
+    /**
+     * 产品详情
+     */
+    private String content;
+
+    @Data
+    public static class ProductImage implements Serializable {
+        @Serial
+        private static final long serialVersionUID = 1L;
+
+        /**
+         * 图片URL
+         */
+        private String imageUrl;
+    }
+}

+ 125 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyProductDto.java

@@ -0,0 +1,125 @@
+package org.dromara.external.api.thirdparty.domain.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 商品数据
+ *
+ * @author
+ * @date 2026/4/9 上午11:45
+ */
+@Data
+public class ThirdpartyProductDto implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 产品编号
+     */
+    private String productNo;
+
+    /**
+     * 商品主图
+     */
+    private String photo;
+
+    /**
+     * 商品多图
+     */
+    private String productImages;
+
+    /**
+     * 商品详情
+     */
+    private String content;
+
+    /**
+     * 产品名称
+     */
+    private String itemName;
+
+    /**
+     * 一级分类ID
+     */
+    private String cateLable;
+
+    /**
+     * 二级分类ID
+     */
+    private String cateLevel;
+
+    /**
+     * 三级分类ID
+     */
+    private String cateProduct;
+
+    /**
+     * 单位名称(如:件、箱、千克等)
+     */
+    private String pdunit;
+
+    /**
+     * 市场价
+     */
+    private BigDecimal pdpricemarket;
+
+    /**
+     * 平台价格
+     */
+    private BigDecimal pdpricemall;
+
+    /**
+     * 供应价格
+     */
+    private BigDecimal pdpricesale;
+
+    /**
+     * 折扣率
+     */
+    private String pddiscount;
+
+    /**
+     * 上下架状态:3=上架,4=下架
+     */
+    private Integer pdStatus;
+
+    /**
+     * 商品卖点
+     */
+    private String pdhotpoint;
+
+    /**
+     * 起订量
+     */
+    private Integer pdsaleunit;
+
+    /**
+     * 品牌名称
+     */
+    private String brandName;
+
+    /**
+     * 售后信息
+     */
+    private String pdsaleinfo;
+
+    /**
+     * 商品属性
+     */
+    private String attributes;
+
+    /**
+     * 可用库存数量
+     */
+    private Integer availableStockNum;
+
+    /**
+     * 占用库存数量
+     */
+    private Integer occupyStockNum;
+
+}

+ 54 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyProductPriceDto.java

@@ -0,0 +1,54 @@
+package org.dromara.external.api.thirdparty.domain.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 产品价格响应数据
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyProductPriceDto implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 商品id
+     */
+    private String id;
+
+    /**
+     * 商品编码
+     */
+    private String productNo;
+
+    /**
+     * 商品名称
+     */
+    private String itemName;
+
+    /**
+     * 市场价格
+     */
+    private BigDecimal pdpricemarket;
+
+    /**
+     * 平台价格
+     */
+    private BigDecimal pdpricemall;
+
+    /**
+     * 供应价格
+     */
+    private BigDecimal pdpricesale;
+
+    /**
+     * 折扣率
+     */
+    private String pddiscount;
+}

+ 38 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyProductStatusDto.java

@@ -0,0 +1,38 @@
+package org.dromara.external.api.thirdparty.domain.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 产品状态响应数据
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyProductStatusDto implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 商品id
+     */
+    private Integer id;
+
+    /**
+     * 商品编码
+     */
+    private String productNo;
+
+    /**
+     * 商品名称
+     */
+    private String itemName;
+
+    /**
+     * 产品状态3-上架4-下架
+     */
+    private Integer pdstatus;
+}

+ 43 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyProductStockDto.java

@@ -0,0 +1,43 @@
+package org.dromara.external.api.thirdparty.domain.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 商品库存响应数据
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyProductStockDto implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 商品编码
+     */
+    private String productNo;
+
+    /**
+     * 省
+     */
+    private String provinceId;
+
+    /**
+     * 市
+     */
+    private String cityId;
+
+    /**
+     * 县/区
+     */
+    private String countyId;
+
+    /**
+     * 库存数量
+     */
+    private Integer num;
+}

+ 28 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyProductUnitDto.java

@@ -0,0 +1,28 @@
+package org.dromara.external.api.thirdparty.domain.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 产品单位响应数据
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyProductUnitDto implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 单位id
+     */
+    private String unitId;
+
+    /**
+     * 单位名称
+     */
+    private String name;
+}

+ 34 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyReconDto.java

@@ -0,0 +1,34 @@
+package org.dromara.external.api.thirdparty.domain.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 对账响应数据
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyReconDto implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 订单编号
+     */
+    private String orderID;
+
+    /**
+     * 对账状态信息
+     */
+    private Integer state;
+
+    /**
+     * 对账金额
+     */
+    private BigDecimal amount;
+}

+ 23 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyReconStateDto.java

@@ -0,0 +1,23 @@
+package org.dromara.external.api.thirdparty.domain.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 对账状态响应数据
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyReconStateDto implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 状态
+     */
+    private String state;
+}

+ 29 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyRootOrderDto.java

@@ -0,0 +1,29 @@
+package org.dromara.external.api.thirdparty.domain.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 主订单响应数据
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyRootOrderDto implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主订单单号
+     */
+    private String parentOrderNo;
+
+    /**
+     * 子订单列表
+     */
+    private List<String> childOrders;
+}

+ 85 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyTrackingDto.java

@@ -0,0 +1,85 @@
+package org.dromara.external.api.thirdparty.domain.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 物流响应数据
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyTrackingDto implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 包裹id
+     */
+    private String packageId;
+
+    /**
+     * 订单编号
+     */
+    private String orderID;
+
+    /**
+     * 物流名称
+     */
+    private String distrName;
+
+    /**
+     * 物流单号
+     */
+    private String logisticsNo;
+
+    /**
+     * 发货时间系统时间
+     */
+    private String msgTime;
+
+    /**
+     * 0自有物流,1第三方物流
+     */
+    private Integer type;
+
+    /**
+     * 物流状态0-待发货、1-发货中、2-已签收、3-拒签(只有当 type =0时此字段才有效)
+     */
+    private Integer logisticsStates;
+
+    /**
+     * 订单商品信息
+     */
+    private List<OrderItem> orderItelist;
+
+    /**
+     * 物流信息
+     */
+    private String logisticsInfo;
+
+    @Data
+    public static class OrderItem implements Serializable {
+        @Serial
+        private static final long serialVersionUID = 1L;
+
+        /**
+         * 商品id
+         */
+        private String productNo;
+
+        /**
+         * 商品数量
+         */
+        private Integer num;
+
+        /**
+         * 商品名称
+         */
+        private String itemName;
+    }
+}

+ 33 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/dto/ThirdpartyTrackingStatusDto.java

@@ -0,0 +1,33 @@
+package org.dromara.external.api.thirdparty.domain.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 物流状态响应数据
+ *
+ * @author
+ * @date 2026/4/9
+ */
+@Data
+public class ThirdpartyTrackingStatusDto implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 订单编号
+     */
+    private String orderID;
+
+    /**
+     * 包裹id
+     */
+    private String packageId;
+
+    /**
+     * 物流状态:0-待发货、1-发货中、2-已签收、3-拒签
+     */
+    private Integer LogisticsStatus;
+}

+ 1 - 0
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/zhongche/domain/ZCR.java

@@ -7,6 +7,7 @@ import java.io.Serial;
 import java.io.Serializable;
 
 /**
+ * 中车接口返回对象
  * author
  * 时间:2026/1/5,19:16
  */

+ 14 - 14
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/zhongzhi/domain/Result.java → ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/zhongzhi/domain/ZZResult.java

@@ -8,7 +8,7 @@ import java.io.Serializable;
 
 @Data
 @NoArgsConstructor
-public class Result<T> implements Serializable {
+public class ZZResult<T> implements Serializable {
     @Serial
     private static final long serialVersionUID = 1L;
 
@@ -30,33 +30,33 @@ public class Result<T> implements Serializable {
     private T result;
 
 
-    public static <T> Result<T> tokenOk(String accessToken,String expires_at) {
+    public static <T> ZZResult<T> tokenOk(String accessToken, String expires_at) {
         return restResult(SUCCESS, 200,accessToken,expires_at, "",null);
     }
 
 
-    public static <T> Result<T> ok(T result) {
+    public static <T> ZZResult<T> ok(T result) {
         return restResult(SUCCESS, 200, "", "", "",result);
     }
 
-    public static <T> Result<T> ok(String msg, T result) {
+    public static <T> ZZResult<T> ok(String msg, T result) {
         return restResult(SUCCESS, 200, "", "", msg,result);
     }
 
-    public static <T> Result<T> fail(int code,String msg) {
+    public static <T> ZZResult<T> fail(int code, String msg) {
         return restResult(FAIL, code, "","",msg,null);
     }
 
 
 
-    private static <T>Result<T> restResult(boolean success,int code, String accessToken, String expires_at,String desc,T result) {
-        Result Result = new Result();
-        Result.setResult( result);
-        Result.setSuccess(success);
-        Result.setCode(code);
-        Result.setAccess_token(accessToken);
-        Result.setExpires_at(expires_at);
-        Result.setDesc(desc);
-        return Result;
+    private static <T> ZZResult<T> restResult(boolean success, int code, String accessToken, String expires_at, String desc, T result) {
+        ZZResult ZZResult = new ZZResult();
+        ZZResult.setResult( result);
+        ZZResult.setSuccess(success);
+        ZZResult.setCode(code);
+        ZZResult.setAccess_token(accessToken);
+        ZZResult.setExpires_at(expires_at);
+        ZZResult.setDesc(desc);
+        return ZZResult;
     }
 }

+ 14 - 1
ruoyi-api/ruoyi-api-product/src/main/java/org/dromara/product/api/RemoteProductService.java

@@ -38,7 +38,13 @@ public interface RemoteProductService {
     /**
     * 获取多个商品详情
     * */
-    List<ProductVo> getProductDetails(String productIds);
+    List<ProductVo> getProductDetails(List<Long> productIds);
+
+    /**
+    * 获取多个商品详情
+    * */
+    List<ProductVo> getProductDetailsByNo(String productNos);
+
 
     /**
     * 获取商品变更记录
@@ -112,5 +118,12 @@ public interface RemoteProductService {
     boolean unlockShoppingCart(Long productId, String accountName);
 
 
+    /**
+     * 根据商品编号查询商品ID
+     * @param productNo
+     * @return
+     */
+    Long getProductIdProductNo(String productNo);
+
 
 }

+ 1 - 1
ruoyi-api/ruoyi-api-product/src/main/java/org/dromara/product/api/domain/ProductCategoryRemoteVo.java

@@ -141,7 +141,7 @@ public class ProductCategoryRemoteVo implements Serializable {
     private String purchaseManagerName;
 
     /**
-     * 所属平台(0=Web, 1=小程序)
+     * 所属平台 (0=平台,1=工业品,2=福利,3=企业购,4=大客户)
      */
     private Long platform;
 

+ 87 - 34
ruoyi-api/ruoyi-api-product/src/main/java/org/dromara/product/api/domain/ProductVo.java

@@ -5,6 +5,8 @@ import lombok.Data;
 import java.io.Serial;
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
 
 
 /**
@@ -60,18 +62,38 @@ public class ProductVo implements Serializable {
     private Long bottomCategoryId;
 
     /**
-    * 分类名称
-    * */
+     * 分类名称(底级分类)
+     */
     private String categoryName;
 
+    /**
+     * 顶级分类名称
+     */
+    private String topCategoryName;
+
+    /**
+     * 中级分类名称
+     */
+    private String mediumCategoryName;
+
+    /**
+     * 底级分类名称
+     */
+    private String bottomCategoryName;
+
+    /**
+     * 规格代码
+     */
+    private String specificationsCode;
+
     /**
      * 单位id
      */
     private String unitId;
 
     /**
-    * 单位名称
-    * */
+     * 单位名称(如:件、箱、千克等)
+     */
     private String unitName;
 
     /**
@@ -79,21 +101,26 @@ public class ProductVo implements Serializable {
      */
     private String productImage;
 
-    /**
-     * 产品图片URLUrl
-     */
-    private String productImageUrl;
     /**
      * 是否自营(1=是,0=否)
      */
     private Integer isSelf;
 
+    /**
+     * 商品类型 1=默认类型,2精选商品,3=停售商品
+     * */
+    private Integer productCategory;
+
     /**
      * 产品审核状态 0=待提交,1=待审核,2=审核通过,3=审核驳回
      */
-
     private Integer productReviewStatus;
 
+    /**
+     * 审核意见
+     * */
+    private String reviewComments;
+
     /**
      * 首页推荐:1=推荐,0=不推荐
      */
@@ -127,7 +154,7 @@ public class ProductVo implements Serializable {
     /**
      * 商品状态:1=已上架,0=下架 2 上架中等
      */
-    Integer productStatus;
+    private Integer productStatus;
 
     /**
      * 数据来源
@@ -135,8 +162,8 @@ public class ProductVo implements Serializable {
     private String dataSource;
 
     /**
-    * 市场价
-    * */
+     * 市场价
+     * */
     private BigDecimal marketPrice;
 
     /**
@@ -155,16 +182,10 @@ public class ProductVo implements Serializable {
     private BigDecimal purchasingPrice;
 
 
-
-    /**
-    * 暂估毛利率
-    * */
-    private BigDecimal tempGrossMargin;
-
     /**
-     * 总库存
+     * 暂估毛利率
      * */
-    private Long totalInventory;
+    private BigDecimal tempGrossMargin;
 
 
     /**
@@ -185,7 +206,7 @@ public class ProductVo implements Serializable {
     /**
      * UPC(S)条码
      */
-    private String upcBarcode;
+    private String barCoding;
 
     /**
      * 发票名称
@@ -195,7 +216,7 @@ public class ProductVo implements Serializable {
     /**
      * 发票规格
      */
-    private String invoiceSpec;
+    private String invoiceSpecs;
 
     /**
      * 包装规格
@@ -210,7 +231,7 @@ public class ProductVo implements Serializable {
     /**
      * 商品重量
      */
-    private String weight;
+    private String productWeight;
 
     /**
      * 重量单位
@@ -220,7 +241,7 @@ public class ProductVo implements Serializable {
     /**
      * 商品体积
      */
-    private String volume;
+    private String productVolume;
 
     /**
      * 体积单位
@@ -270,7 +291,6 @@ public class ProductVo implements Serializable {
     /**
      * 平档价
      */
-
     private BigDecimal standardPrice;
 
     /**
@@ -278,15 +298,11 @@ public class ProductVo implements Serializable {
      */
     private BigDecimal certificatePrice;
 
-    /**
-     * 采购价
-     */
-    private BigDecimal purchasePrice;
 
     /**
-     * 暂估采购价
+     * 最高采购价
      */
-    private BigDecimal estimatedPurchasePrice;
+    private BigDecimal maxPurchasePrice;
 
     /**
      * 产品经理
@@ -298,6 +314,11 @@ public class ProductVo implements Serializable {
      */
     private String purchasingPersonnel;
 
+    /**
+     * 商品多图
+     * */
+    private String imageUrl;
+
     /**
      * 商品详情 - 电脑端
      */
@@ -324,9 +345,24 @@ public class ProductVo implements Serializable {
     private Long minOrderQuantity;
 
     /**
-     * 是否可定制
-     */
-    private Boolean customizable;
+     * 是否可定制 0:不可定制 1:可定制
+     * */
+    private String isCustomize;
+
+    /**
+     * 总库存
+     * */
+    private Long totalInventory;
+    /**
+     * 当前可用库存
+     * */
+    private Long nowInventory;
+
+    /**
+     * 虚拟库存
+     * */
+    private Long virtualInventory;
+
 
     /**
      * 定制说明
@@ -363,4 +399,21 @@ public class ProductVo implements Serializable {
      */
     private String customizedCraft;
 
+
+    /**
+     * 上架审核评论
+     * */
+    private String shelfComments;
+
+    /**
+     * 协议价
+     * */
+    private BigDecimal agreementPrice;
+
+    /**
+    * 商品描述
+    * */
+    private String productDescription;
+
+
 }

+ 10 - 0
ruoyi-api/ruoyi-api-product/src/main/java/org/dromara/product/api/domain/zhongche/dto/ProductAggregateDto.java

@@ -49,4 +49,14 @@ public class ProductAggregateDto implements Serializable {
     private String categoryName;
 
     private String invoiceName;
+
+    private String goodsUrl;
+
+    private String thirdUrl;
+
+
+    /**
+     * 自定义属性
+     * */
+    private String diyAttributesList;
 }

+ 9 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteComCurrencyService.java

@@ -0,0 +1,9 @@
+package org.dromara.system.api;
+
+import org.dromara.system.api.domain.vo.RemoteComCompanyVo;
+import org.dromara.system.api.domain.vo.RemoteComCurrencyVo;
+
+public interface RemoteComCurrencyService {
+
+    RemoteComCurrencyVo selectByCurrencyName(String currencyName);
+}

+ 8 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteComCustomerTypeService.java

@@ -0,0 +1,8 @@
+package org.dromara.system.api;
+
+import org.dromara.system.api.domain.vo.RemoteComCustomerLevelVo;
+import org.dromara.system.api.domain.vo.RemoteComCustomerTypeVo;
+
+public interface RemoteComCustomerTypeService {
+    RemoteComCustomerTypeVo selectCustomerTypeByTypeName(String typeName);
+}

+ 4 - 1
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteComStaffService.java

@@ -10,13 +10,16 @@ public interface RemoteComStaffService {
 
     Map<Long, String> selectStaffNameByIds(Set<Long> ids);
 
-    Map<String,String> selectStaffNameAndCode();
+    Map<String, String> selectStaffNameAndCode();
 
     /**
      * 根据人员ID批量查询人员完整信息
+     *
      * @param ids 人员ID集合
      * @return 人员信息列表
      */
     List<RemoteComStaffVo> selectStaffByIds(Set<Long> ids);
 
+    RemoteComStaffVo selectStaffByStaffName(String staffName);
+
 }

+ 4 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteCreditLevelService.java

@@ -1,5 +1,7 @@
 package org.dromara.system.api;
 
+import org.dromara.system.api.domain.vo.RemoteCreditLevelVo;
+
 import java.util.Map;
 import java.util.Set;
 
@@ -15,4 +17,6 @@ public interface RemoteCreditLevelService {
      * @return Map<ID, 名称>
      */
     Map<Long, String> selectCreditLevelNameByIds(Set<Long> ids);
+
+    RemoteCreditLevelVo selectByCreditLevelName(String creditLevelName);
 }

+ 19 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteErpDeptService.java

@@ -0,0 +1,19 @@
+package org.dromara.system.api;
+
+import cn.hutool.core.lang.tree.Tree;
+import org.dromara.system.api.domain.vo.RemoteDeptVo;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * 部门服务
+ *
+ * @author Lion Li
+ */
+public interface RemoteErpDeptService {
+
+    Map<Long, String> selectDeptNameByIds(Set<Long> ids);
+
+}

+ 16 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteErpStaffService.java

@@ -0,0 +1,16 @@
+package org.dromara.system.api;
+
+import org.dromara.system.api.domain.vo.RemoteComStaffVo;
+import org.dromara.system.api.domain.vo.RemoteErpStaffVo;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+public interface RemoteErpStaffService {
+
+    Map<Long, String> selectStaffNameByIds(Set<Long> ids);
+
+    RemoteErpStaffVo selectStaffByStaffName(String staffName);
+
+}

+ 9 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteProductTaxrateService.java

@@ -0,0 +1,9 @@
+package org.dromara.system.api;
+
+
+import org.dromara.system.api.domain.vo.RemoteProductTaxrateVo;
+
+public interface RemoteProductTaxrateService {
+
+    RemoteProductTaxrateVo selectByTaxrateNo(String taxrateNo);
+}

+ 8 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteSupplierLevelService.java

@@ -0,0 +1,8 @@
+package org.dromara.system.api;
+
+import org.dromara.system.api.domain.vo.RemoteSupplierLevelVo;
+
+public interface RemoteSupplierLevelService {
+
+    RemoteSupplierLevelVo selectByLevelName(String levelName);
+}

+ 3 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteSupplierTypeService.java

@@ -11,4 +11,7 @@ import java.util.List;
 public interface RemoteSupplierTypeService {
 
     List<RemoteSupplierTypeVo> queryList();
+
+    RemoteSupplierTypeVo selectByTypeName(String typeName);
+
 }

+ 2 - 2
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/bo/RemoteUserBo.java

@@ -114,8 +114,8 @@ public class RemoteUserBo implements Serializable {
     private Long roleId;
 
     /**
-     * 用户子类型 用户子类型(0=平台用户,1=供应商,2=伙伴商,3=商城用户)
-     * */
+     * 用户子类型 用户子类型(0=平台用户,1=供应商,2=伙伴商,3=商城用户,4=小程序用户)
+     */
     private String userSonType;
 
     /**

+ 34 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/vo/RemoteComCurrencyVo.java

@@ -0,0 +1,34 @@
+package org.dromara.system.api.domain.vo;
+
+import cn.idev.excel.annotation.ExcelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+@NoArgsConstructor
+public class RemoteComCurrencyVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @ExcelProperty(value = "主键ID")
+    private Long id;
+
+    /**
+     * 货币编码
+     */
+    @ExcelProperty(value = "货币编码")
+    private String currencyCode;
+
+    /**
+     * 货币名称
+     */
+    @ExcelProperty(value = "货币名称")
+    private String currencyName;
+}

+ 31 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/vo/RemoteComCustomerLevelVo.java

@@ -0,0 +1,31 @@
+package org.dromara.system.api.domain.vo;
+
+import cn.idev.excel.annotation.ExcelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+@NoArgsConstructor
+public class RemoteComCustomerLevelVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    private Long id;
+
+    /**
+     * 客户等级编码
+     */
+    private String levelCode;
+
+    /**
+     * 客户等级名称
+     */
+    private String levelName;
+}

+ 26 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/vo/RemoteComCustomerTypeVo.java

@@ -0,0 +1,26 @@
+package org.dromara.system.api.domain.vo;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+@NoArgsConstructor
+public class RemoteComCustomerTypeVo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    private Long id;
+
+    /**
+     * 客户类型编码
+     */
+    private String typeCode;
+
+    /**
+     * 客户类型名称
+     */
+    private String typeName;
+}

+ 31 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/vo/RemoteCreditLevelVo.java

@@ -0,0 +1,31 @@
+package org.dromara.system.api.domain.vo;
+
+import cn.idev.excel.annotation.ExcelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+@NoArgsConstructor
+public class RemoteCreditLevelVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    private Long id;
+
+    /**
+     * 信用等级编码
+     */
+    private String creditLevelNo;
+
+    /**
+     * 信用等级名称
+     */
+    private String creditLevelName;
+}

+ 46 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/vo/RemoteErpDeptVo.java

@@ -0,0 +1,46 @@
+package org.dromara.system.api.domain.vo;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 部门
+ *
+ * @author AprilWind
+ */
+
+@Data
+@NoArgsConstructor
+public class RemoteErpDeptVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 部门ID
+     */
+    private Long deptId;
+
+    /**
+     * 父部门ID
+     */
+    private Long parentId;
+
+    /**
+     * 部门名称
+     */
+    private String deptName;
+
+    private String status;
+
+    private Integer orderNum;
+
+    private Long companyId;
+
+
+    private String platformCode;
+
+}

+ 64 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/vo/RemoteErpStaffVo.java

@@ -0,0 +1,64 @@
+package org.dromara.system.api.domain.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 远程调用 - 人员信息视图对象
+ *
+ * @author Claude
+ * @date 2026-04-02
+ */
+@Data
+public class RemoteErpStaffVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 人员ID
+     */
+    private Long staffId;
+
+    /**
+     * 人员编码
+     */
+    private String staffCode;
+
+    /**
+     * 姓名
+     */
+    private String staffName;
+
+    /**
+     * 所属部门ID
+     */
+    private Long deptId;
+
+    /**
+     * 所属部门名称
+     */
+    private String deptName;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 岗位ID
+     */
+    private Long postId;
+
+    /**
+     * 岗位名称
+     */
+    private String postName;
+
+    /**
+     * 状态(0正常 1停用)
+     */
+    private String status;
+}

+ 28 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/vo/RemoteProductTaxrateVo.java

@@ -0,0 +1,28 @@
+package org.dromara.system.api.domain.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+public class RemoteProductTaxrateVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键,自增ID
+     */
+    private Long id;
+
+    /**
+     * 税率编号
+     */
+    private String taxrateNo;
+
+    /**
+     * 税率名称
+     */
+    private String taxrateName;
+}

+ 28 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/vo/RemoteSupplierLevelVo.java

@@ -0,0 +1,28 @@
+package org.dromara.system.api.domain.vo;
+
+import cn.idev.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+public class RemoteSupplierLevelVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    private Long id;
+
+    /**
+     * 编号
+     */
+    @ExcelProperty(value = "编号")
+    private String supplierLevelNo;
+
+    /**
+     * 名称
+     */
+    @ExcelProperty(value = "名称")
+    private String supplierLevelName;
+}

+ 5 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/vo/RemoteSupplierTypeVo.java

@@ -2,6 +2,7 @@ package org.dromara.system.api.domain.vo;
 
 import lombok.Data;
 
+import java.io.Serial;
 import java.io.Serializable;
 
 /**
@@ -10,6 +11,10 @@ import java.io.Serializable;
  */
 @Data
 public class RemoteSupplierTypeVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
     private long id;
 
     private String typeId;

+ 6 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/model/LoginUser.java

@@ -151,6 +151,12 @@ public class LoginUser implements Serializable {
      * 伙伴商ID
      */
     private Long partnerId;
+
+    /**
+     * openid
+     */
+    private String openid;
+
     /**
      * 获取登录id
      */

+ 24 - 13
ruoyi-auth/src/main/java/org/dromara/auth/controller/Auth2Controller.java

@@ -19,7 +19,7 @@ import org.dromara.external.api.zhongche.domain.ZCR;
 import org.dromara.external.api.zhongche.domain.bo.UserLoginBo;
 import org.dromara.external.api.zhongche.domain.bo.ZCTokenBo;
 import org.dromara.external.api.zhongche.domain.vo.ZCLoginBusinessRespVo;
-import org.dromara.external.api.zhongzhi.domain.Result;
+import org.dromara.external.api.zhongzhi.domain.ZZResult;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -42,21 +42,25 @@ public class Auth2Controller {
 
     // ========== 读取yml中的真实公私钥(直接复制使用) ==========
 
+    //测试环境
     //电商私钥
-    private final static String DEVELOPER_PRIVATE_KEY = "MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgpQdXwMi21Mg1FhWad2AQLOwfNiDHgwhootau0YerQbagCgYIKoEcz1UBgi2hRANCAATVjJs6XRAMTZ72G6aWbgCAjfAnW0j5R9VFnHySTiF8+1mOisc3xOOr9w/Tu3hixzL5H2gVyLzHDRWkFtyeVqrX";
-
+//    private final static String DEVELOPER_PRIVATE_KEY = "MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgpQdXwMi21Mg1FhWad2AQLOwfNiDHgwhootau0YerQbagCgYIKoEcz1UBgi2hRANCAATVjJs6XRAMTZ72G6aWbgCAjfAnW0j5R9VFnHySTiF8+1mOisc3xOOr9w/Tu3hixzL5H2gVyLzHDRWkFtyeVqrX";
+//    //企采公钥
+//    private final static String DEVELOPER_PUBLIC_KEY = "MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEmUrB5ByAeb8jHayC7vbddqBFDIEsf1cpNO1qJttZ17xlDagVB/tBFasPr/x0+OWf2kimTKah2NGCYarymD1R5Q==";
+    //正式环境
+    //电商私钥
+    private final static String DEVELOPER_PRIVATE_KEY = "MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgQu0H97EPqkgz1YS5LkzZNmkG3mS5Er8rJ2LSoJtuOlGgCgYIKoEcz1UBgi2hRANCAARP6NYwTHpW2QTL8A2f2hpgunEpDVkJBhErBQPLqNS/Si5Q+9I9wUpCYdk1EvB5Hw6yzkE4bYk5IZM1j+/SnNFn";
     //企采公钥
-    private final static String DEVELOPER_PUBLIC_KEY = "MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEmUrB5ByAeb8jHayC7vbddqBFDIEsf1cpNO1qJttZ17xlDagVB/tBFasPr/x0+OWf2kimTKah2NGCYarymD1R5Q==";
-
+    private final static String DEVELOPER_PUBLIC_KEY = "MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAE9ITEKJdH9o1K9AeQYY7zNMo/q5/cdce+9jbawURTPEpBKAx4VkB+lRkb5e5YL+Be4pPM464rPvLyfqGNJvL6uQ==";
 
     /**
      * 获取 Access Token  ZHONGZHI
      * @param username 用户名
      * @param password 密码(明文,生产环境建议加密后再传)
-     * @return 包含 access_token 和 expires_at 的 Result,失败则 success=false
+     * @return 包含 access_token 和 expires_at 的 ZZResult,失败则 success=false
      */
     @PostMapping("/zhongzhi/access_token")
-    public Result getAccessTokenZhongZhi(String timestamp, String username, String password, String sign) {
+    public ZZResult getAccessTokenZhongZhi(String timestamp, String username, String password, String sign) {
         // 2. 生成 sign = MD5(username + password + timestamp + password).toLowerCase()
         String signStr = username + password + timestamp + password;
         String sign1 = SecureUtil.md5(signStr).toLowerCase();
@@ -64,21 +68,28 @@ public class Auth2Controller {
         if(Objects.equals(sign1,sign)){
             LoginVo loginVo = IAuthStrategy.getAccessToken(username, password);
             if(ObjectUtil.isEmpty(loginVo)){
-                return Result.fail(5002,"授权失败");
+                return ZZResult.fail(5002,"授权失败");
             }
             if(ObjectUtil.isNotEmpty(loginVo.getMsg())){
-                return Result.fail(loginVo.getCode(),loginVo.getMsg());
+                return ZZResult.fail(loginVo.getCode(),loginVo.getMsg());
             }
             DateTime date = DateUtil.offsetSecond(DateUtil.date(), (int) StpUtil.getTokenTimeout(loginVo.getAccessToken()));
             String format = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss");
-            return  Result.tokenOk(loginVo.getAccessToken(), format);
+            return  ZZResult.tokenOk(loginVo.getAccessToken(), format);
         } else  {
-            return Result.fail(5004,"签名错误,请检查后重试");
+            return ZZResult.fail(5004,"签名错误,请检查后重试");
         }
     }
     /**
      * 获取 Access Token  ZHONGChe
-     * @return 包含 access_token 和 expires_at 的 Result,失败则 success=false
+     * 注册地址:武汉市硚口区古田二路长丰村长丰乡15栋1号5室
+     * 供应商名称:优易达(武汉)有限公司
+     * 管理员手机号:18062697722
+     * 管理员名称:刘洋
+     * 电商系统域名(生产):apipre.yoe365.com
+     * 登录用户名:api_zczc_202403166035
+     * 登陆密码:brsa1odzd28xnqz4
+     * @return 包含 access_token 和 expires_at 的 ZZResult,失败则 success=false
      */
     @PostMapping("/zhongche/access_token")
     public ZCR getAccessTokenZhongChe(@RequestBody ZCTokenBo zcTokenBo) {
@@ -192,7 +203,7 @@ public class Auth2Controller {
         System.out.println("生成的签名: " + sign);
 
         // ===== 3️⃣ 验签 =====
-        boolean verifyResult = SignParamUtils.verifyRequestSign(bo,"MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAE1YybOl0QDE2e9humlm4AgI3wJ1tI+UfVRZx8kk4hfPtZjorHN8Tjq/cP07t4Yscy+R9oFci8xw0VpBbcnlaq1w==" );
+        boolean verifyResult = SignParamUtils.verifyRequestSign(bo,"MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAET+jWMEx6VtkEy/ANn9oaYLpxKQ1ZCQYRKwUDy6jUv0ouUPvSPcFKQmHZNRLweR8Oss5BOG2JOSGTNY/v0pzRZw==" );
 
         System.out.println("验签结果: " + verifyResult);
     }

+ 10 - 0
ruoyi-auth/src/main/java/org/dromara/auth/controller/TokenController.java

@@ -23,6 +23,7 @@ import org.dromara.auth.service.SysLoginService;
 import org.dromara.common.core.constant.SystemConstants;
 import org.dromara.common.core.domain.R;
 import org.dromara.common.core.domain.model.LoginBody;
+import org.dromara.common.core.domain.model.ThirdpartyCertificationBody;
 import org.dromara.common.core.utils.*;
 import org.dromara.common.encrypt.annotation.ApiEncrypt;
 import org.dromara.common.json.utils.JsonUtils;
@@ -254,4 +255,13 @@ public class TokenController {
         return R.ok(loginVo);
     }
 
+    /**
+    * 获取令牌
+    * */
+    @PostMapping("/requestToken")
+    public R<LoginVo> requestToken(@RequestBody ThirdpartyCertificationBody body) {
+
+        return R.ok();
+    }
+
 }

+ 6 - 0
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/R.java

@@ -34,6 +34,11 @@ public class R<T> implements Serializable {
      */
     private int code;
 
+    /**
+     * 是否成功
+     * */
+    private boolean success;
+
     /**
      * 消息内容
      */
@@ -105,6 +110,7 @@ public class R<T> implements Serializable {
         R<T> r = new R<>();
         r.setCode(code);
         r.setData(data);
+        r.setSuccess(HttpStatus.SUCCESS == code);
         r.setMsg(msg);
         return r;
     }

+ 30 - 0
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/model/ThirdpartyCertificationBody.java

@@ -0,0 +1,30 @@
+package org.dromara.common.core.domain.model;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 第三方认证登录参数
+ * @author
+ * @date 2026/4/9 下午2:45
+ */
+@Data
+@NoArgsConstructor
+public class ThirdpartyCertificationBody {
+
+    /**
+    * 平台id
+    * */
+    private String patformID;
+
+    /**
+    * 账户
+    * */
+    private String account;
+
+
+    /**
+    * 密钥
+    * */
+    private String secret;
+}

+ 43 - 0
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/InvoiceApplicationStatus.java

@@ -0,0 +1,43 @@
+package org.dromara.common.core.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum InvoiceApplicationStatus {
+
+    /**
+     * 待审核:用户已提交申请,等待财务审核
+     */
+    PENDING_AUDIT("0", "待审核"),
+
+    /**
+     * 审核通过:财务审核通过,准备开票或正在排期
+     */
+    AUDIT_PASSED("1", "审核通过"),
+
+    /**
+     * 已驳回:财务审核未通过,申请被拒绝
+     */
+    REJECTED("2", "已驳回"),
+
+    /**
+     * 开票中:正在调用税控接口或人工开具发票过程中
+     */
+    INVOICING("3", "开票中"),
+
+    /**
+     * 已完成:发票已成功开具,票号已回填,流程结束
+     */
+    COMPLETED("4", "已完成"),
+
+    /**
+     * 已取消:用户主动撤销申请,或系统超时自动取消
+     */
+    CANCELLED("5", "已取消");
+
+
+    private final String code;
+    private final String info;
+}

+ 9 - 0
ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/core/page/TableDataInfo.java

@@ -38,6 +38,11 @@ public class TableDataInfo<T> implements Serializable {
      */
     private int code;
 
+    /**
+     * 是否成功
+     * */
+    private boolean success;
+
     /**
      * 消息内容
      */
@@ -52,6 +57,7 @@ public class TableDataInfo<T> implements Serializable {
     public TableDataInfo(List<T> list, long total) {
         this.rows = list;
         this.total = total;
+        this.success = true;
     }
 
     /**
@@ -60,6 +66,7 @@ public class TableDataInfo<T> implements Serializable {
     public static <T> TableDataInfo<T> build(IPage<T> page) {
         TableDataInfo<T> rspData = new TableDataInfo<>();
         rspData.setCode(HttpStatus.HTTP_OK);
+        rspData.setSuccess(true);
         rspData.setMsg("查询成功");
         rspData.setRows(page.getRecords());
         rspData.setTotal(page.getTotal());
@@ -72,6 +79,7 @@ public class TableDataInfo<T> implements Serializable {
     public static <T> TableDataInfo<T> build(List<T> list) {
         TableDataInfo<T> rspData = new TableDataInfo<>();
         rspData.setCode(HttpStatus.HTTP_OK);
+        rspData.setSuccess(true);
         rspData.setMsg("查询成功");
         rspData.setRows(list);
         rspData.setTotal(list.size());
@@ -84,6 +92,7 @@ public class TableDataInfo<T> implements Serializable {
     public static <T> TableDataInfo<T> build() {
         TableDataInfo<T> rspData = new TableDataInfo<>();
         rspData.setCode(HttpStatus.HTTP_OK);
+        rspData.setSuccess(true);
         rspData.setMsg("查询成功");
         rspData.setRows(new ArrayList<>());
         return rspData;

+ 123 - 0
ruoyi-modules/ruoyi-bill/src/main/java/org/dromara/bill/controller/InvoiceApplicationController.java

@@ -0,0 +1,123 @@
+package org.dromara.bill.controller;
+
+import java.util.List;
+
+import lombok.RequiredArgsConstructor;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.*;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.common.satoken.utils.LoginHelper;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.excel.utils.ExcelUtil;
+import org.dromara.bill.domain.vo.InvoiceApplicationVo;
+import org.dromara.bill.domain.bo.InvoiceApplicationBo;
+import org.dromara.bill.service.IInvoiceApplicationService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 开票申请单
+ * 前端访问路由地址为:/bill/invoiceApplication
+ *
+ * @author LionLi
+ * @date 2026-03-26
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/invoiceApplication")
+public class InvoiceApplicationController extends BaseController {
+
+    private final IInvoiceApplicationService invoiceApplicationService;
+
+    /**
+     * 查询开票申请单列表
+     */
+    //@SaCheckPermission("bill:invoiceApplication:list")
+    @GetMapping("/list")
+    public TableDataInfo<InvoiceApplicationVo> list(InvoiceApplicationBo bo, PageQuery pageQuery) {
+        return invoiceApplicationService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 导出开票申请单列表
+     */
+    //@SaCheckPermission("bill:invoiceApplication:export")
+    @Log(title = "开票申请单", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(InvoiceApplicationBo bo, HttpServletResponse response) {
+        List<InvoiceApplicationVo> list = invoiceApplicationService.queryList(bo);
+        ExcelUtil.exportExcel(list, "开票申请单", InvoiceApplicationVo.class, response);
+    }
+
+    /**
+     * 获取开票申请单详细信息
+     *
+     * @param id 主键
+     */
+    //@SaCheckPermission("bill:invoiceApplication:query")
+    @GetMapping("/{id}")
+    public R<InvoiceApplicationVo> getInfo(@NotNull(message = "主键不能为空")
+                                           @PathVariable("id") Long id) {
+        return R.ok(invoiceApplicationService.queryById(id));
+    }
+
+    /**
+     * 新增开票申请单
+     */
+    //@SaCheckPermission("bill:invoiceApplication:add")
+    @Log(title = "开票申请单", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody InvoiceApplicationBo bo) {
+        Long customerId = LoginHelper.getLoginUser().getCustomerId();
+        bo.setCustomerId(customerId);
+        return toAjax(invoiceApplicationService.insertByBo(bo));
+    }
+
+    /**
+     * 修改开票申请单
+     */
+    //@SaCheckPermission("bill:invoiceApplication:edit")
+    @Log(title = "开票申请单", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody InvoiceApplicationBo bo) {
+        return toAjax(invoiceApplicationService.updateByBo(bo));
+    }
+
+    /**
+     * 删除开票申请单
+     *
+     * @param ids 主键串
+     */
+    //@SaCheckPermission("bill:invoiceApplication:remove")
+    @Log(title = "开票申请单", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public R<Void> remove(@NotEmpty(message = "主键不能为空")
+                          @PathVariable("ids") Long[] ids) {
+        return toAjax(invoiceApplicationService.deleteWithValidByIds(List.of(ids), true));
+    }
+
+    /**
+     * 状态修改
+     */
+    @Log(title = "订单主信息", businessType = BusinessType.UPDATE)
+    @PutMapping("/auditApplication")
+    public R<Void> auditApplication(@RequestBody InvoiceApplicationBo bo) {
+        try {
+            invoiceApplicationService.auditApplication(bo);
+            return R.ok("审核成功");
+        } catch (Exception e) {
+            return R.fail("审核失败: " + e.getMessage());
+        }
+    }
+}

+ 106 - 0
ruoyi-modules/ruoyi-bill/src/main/java/org/dromara/bill/controller/ReconApplicationController.java

@@ -0,0 +1,106 @@
+package org.dromara.bill.controller;
+
+import java.util.List;
+
+import lombok.RequiredArgsConstructor;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.*;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.excel.utils.ExcelUtil;
+import org.dromara.bill.domain.vo.ReconApplicationVo;
+import org.dromara.bill.domain.bo.ReconApplicationBo;
+import org.dromara.bill.service.IReconApplicationService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 对账申请
+ * 前端访问路由地址为:/bill/reconApplication
+ *
+ * @author LionLi
+ * @date 2026-03-26
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/reconApplication")
+public class ReconApplicationController extends BaseController {
+
+    private final IReconApplicationService reconApplicationService;
+
+    /**
+     * 查询对账申请列表
+     */
+    //@SaCheckPermission("bill:reconApplication:list")
+    @GetMapping("/list")
+    public TableDataInfo<ReconApplicationVo> list(ReconApplicationBo bo, PageQuery pageQuery) {
+        return reconApplicationService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 导出对账申请列表
+     */
+    //@SaCheckPermission("bill:reconApplication:export")
+    @Log(title = "对账申请", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(ReconApplicationBo bo, HttpServletResponse response) {
+        List<ReconApplicationVo> list = reconApplicationService.queryList(bo);
+        ExcelUtil.exportExcel(list, "对账申请", ReconApplicationVo.class, response);
+    }
+
+    /**
+     * 获取对账申请详细信息
+     *
+     * @param id 主键
+     */
+    //@SaCheckPermission("bill:reconApplication:query")
+    @GetMapping("/{id}")
+    public R<ReconApplicationVo> getInfo(@NotNull(message = "主键不能为空")
+                                     @PathVariable("id") Long id) {
+        return R.ok(reconApplicationService.queryById(id));
+    }
+
+    /**
+     * 新增对账申请
+     */
+    //@SaCheckPermission("bill:reconApplication:add")
+    @Log(title = "对账申请", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody ReconApplicationBo bo) {
+        return toAjax(reconApplicationService.insertByBo(bo));
+    }
+
+    /**
+     * 修改对账申请
+     */
+    //@SaCheckPermission("bill:reconApplication:edit")
+    @Log(title = "对账申请", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody ReconApplicationBo bo) {
+        return toAjax(reconApplicationService.updateByBo(bo));
+    }
+
+    /**
+     * 删除对账申请
+     *
+     * @param ids 主键串
+     */
+    //@SaCheckPermission("bill:reconApplication:remove")
+    @Log(title = "对账申请", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public R<Void> remove(@NotEmpty(message = "主键不能为空")
+                          @PathVariable("ids") Long[] ids) {
+        return toAjax(reconApplicationService.deleteWithValidByIds(List.of(ids), true));
+    }
+}

+ 165 - 0
ruoyi-modules/ruoyi-bill/src/main/java/org/dromara/bill/domain/InvoiceApplication.java

@@ -0,0 +1,165 @@
+package org.dromara.bill.domain;
+
+import org.dromara.common.tenant.core.TenantEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.io.Serial;
+
+/**
+ * 开票申请单对象 invoice_application
+ *
+ * @author LionLi
+ * @date 2026-03-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("invoice_application")
+public class InvoiceApplication extends TenantEntity {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id")
+    private Long id;
+
+    /**
+     * 开票申请单号
+     */
+    private String applicationNo;
+
+    /**
+     * 客户ID
+     */
+    private Long customerId;
+
+    /**
+     * 客户名称
+     */
+    private String customerName;
+
+    /**
+     * 发票类型
+     */
+    private String invoiceType;
+
+    /**
+     * 发票抬头
+     */
+    private String invoiceTitle;
+
+    /**
+     * 纳税人识别号/统一社会信用代码
+     */
+    private String taxNumber;
+
+    /**
+     * 注册地址
+     */
+    private String regAddress;
+
+    /**
+     * 注册电话
+     */
+    private String regPhone;
+
+    /**
+     * 开户银行
+     */
+    private String bankName;
+
+    /**
+     * 银行账号
+     */
+    private String bankAccount;
+
+    /**
+     * 接收发票邮箱 (用于电票)
+     */
+    private String receiverEmail;
+
+    /**
+     * 接收短信手机号
+     */
+    private String receiverPhone;
+
+    /**
+     * 申请开票金额 (不含税)
+     */
+    private BigDecimal applyAmount;
+
+    /**
+     * 申请税额
+     */
+    private BigDecimal applyTaxAmount;
+
+    /**
+     * 价税合计总金额
+     */
+    private BigDecimal totalAmount;
+
+    /**
+     * 关联的对账单ID集合
+     */
+    private String statementIds;
+
+    /**
+     * 申请备注/特殊要求
+     */
+    private String remark;
+
+    /**
+     * 申请状态: 0-待审核, 1-审核通过, 2-已驳回, 3-开票中, 4-已完成, 5-已取消
+     */
+    private String status;
+
+    /**
+     * 审核人ID
+     */
+    private Long auditUserId;
+
+    /**
+     * 审核时间
+     */
+    private Date auditTime;
+
+    /**
+     * 审核意见/驳回原因
+     */
+    private String auditRemark;
+
+    /**
+     * 审核通过后生成的正式发票单据ID (关联 statement_invoice.id)
+     */
+    private Long finalInvoiceId;
+
+    /**
+     * 正式发票代码 (开票后回填)
+     */
+    private String invoiceCode;
+
+    /**
+     * 正式发票号码 (开票后回填)
+     */
+    private String invoiceNumber;
+
+    /**
+     * 正式开票日期
+     */
+    private Date invoiceDate;
+
+    /**
+     * 删除标志(0代表存在 2代表删除)
+     */
+    @TableLogic
+    private String delFlag;
+
+
+}

+ 70 - 0
ruoyi-modules/ruoyi-bill/src/main/java/org/dromara/bill/domain/ReconApplication.java

@@ -0,0 +1,70 @@
+package org.dromara.bill.domain;
+
+import org.dromara.common.tenant.core.TenantEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.io.Serial;
+
+/**
+ * 对账申请对象 recon_application
+ *
+ * @author LionLi
+ * @date 2026-03-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("recon_application")
+public class ReconApplication extends TenantEntity {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id")
+    private Long id;
+
+    /**
+     * 对账单号
+     */
+    private String reconNo;
+
+    /**
+     * 总金额
+     */
+    private BigDecimal totalAmount;
+
+    /**
+     * 申请日期
+     */
+    private Date applyDate;
+
+    /**
+     * 申请对账订单id
+     */
+    private String orderIds;
+
+    /**
+     * 申请状态: 0-未开, 1-已开
+     */
+    private String status;
+
+    /**
+     * 删除标志(0代表存在 2代表删除)
+     */
+    @TableLogic
+    private String delFlag;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+}

+ 158 - 0
ruoyi-modules/ruoyi-bill/src/main/java/org/dromara/bill/domain/bo/InvoiceApplicationBo.java

@@ -0,0 +1,158 @@
+package org.dromara.bill.domain.bo;
+
+import org.dromara.bill.domain.InvoiceApplication;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+/**
+ * 开票申请单业务对象 invoice_application
+ *
+ * @author LionLi
+ * @date 2026-03-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = InvoiceApplication.class, reverseConvertGenerate = false)
+public class InvoiceApplicationBo extends BaseEntity {
+
+    /**
+     * 主键ID
+     */
+    private Long id;
+
+    /**
+     * 开票申请单号
+     */
+    private String applicationNo;
+
+    /**
+     * 客户ID
+     */
+    private Long customerId;
+
+    /**
+     * 客户名称
+     */
+    private String customerName;
+
+    /**
+     * 发票类型
+     */
+    //@NotBlank(message = "发票类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String invoiceType;
+
+    /**
+     * 发票抬头
+     */
+    private String invoiceTitle;
+
+    /**
+     * 纳税人识别号/统一社会信用代码
+     */
+    private String taxNumber;
+
+    /**
+     * 注册地址
+     */
+    private String regAddress;
+
+    /**
+     * 注册电话
+     */
+    private String regPhone;
+
+    /**
+     * 开户银行
+     */
+    private String bankName;
+
+    /**
+     * 银行账号
+     */
+    private String bankAccount;
+
+    /**
+     * 接收发票邮箱 (用于电票)
+     */
+    private String receiverEmail;
+
+    /**
+     * 接收短信手机号
+     */
+    private String receiverPhone;
+
+    /**
+     * 申请开票金额 (不含税)
+     */
+    private BigDecimal applyAmount;
+
+    /**
+     * 申请税额
+     */
+    private BigDecimal applyTaxAmount;
+
+    /**
+     * 价税合计总金额
+     */
+    private BigDecimal totalAmount;
+
+    /**
+     * 关联的对账单ID集合
+     */
+    private String statementIds;
+
+    /**
+     * 申请备注/特殊要求
+     */
+    private String remark;
+
+    /**
+     * 申请状态: 0-待审核, 1-审核通过, 2-已驳回, 3-开票中, 4-已完成, 5-已取消
+     */
+    private String status;
+
+    /**
+     * 审核人ID
+     */
+    private Long auditUserId;
+
+    /**
+     * 审核时间
+     */
+    private Date auditTime;
+
+    /**
+     * 审核意见/驳回原因
+     */
+    private String auditRemark;
+
+    /**
+     * 审核通过后生成的正式发票单据ID (关联 statement_invoice.id)
+     */
+    private Long finalInvoiceId;
+
+    /**
+     * 正式发票代码 (开票后回填)
+     */
+    private String invoiceCode;
+
+    /**
+     * 正式发票号码 (开票后回填)
+     */
+    private String invoiceNumber;
+
+    /**
+     * 正式开票日期
+     */
+    private Date invoiceDate;
+
+
+}

+ 62 - 0
ruoyi-modules/ruoyi-bill/src/main/java/org/dromara/bill/domain/bo/ReconApplicationBo.java

@@ -0,0 +1,62 @@
+package org.dromara.bill.domain.bo;
+
+import org.dromara.bill.domain.ReconApplication;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+/**
+ * 对账申请业务对象 recon_application
+ *
+ * @author LionLi
+ * @date 2026-03-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = ReconApplication.class, reverseConvertGenerate = false)
+public class ReconApplicationBo extends BaseEntity {
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 对账单号
+     */
+    private String reconNo;
+
+    /**
+     * 总金额
+     */
+    private BigDecimal totalAmount;
+
+    /**
+     * 申请日期
+     */
+    private Date applyDate;
+
+    /**
+     * 申请对账订单id
+     */
+    private String orderIds;
+
+    /**
+     * 申请状态: 0-未开, 1-已开
+     */
+    private String status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+}

Unele fișiere nu au fost afișate deoarece prea multe fișiere au fost modificate în acest diff