71 Commits 8013e6e910 ... 1dee2d37ef

Author SHA1 Message Date
  miajio 1dee2d37ef [update] 自动生成区间货损统计未接收仓库id问题修复 3 days ago
  miajio 113d8bdd30 [update] 空指针异常问题修复 3 days ago
  miajio 34ed190e9b [update] 整件单取消数计算错误问题修复 3 days ago
  miajio fd620bbd96 [update] 同步更新供应链api服务版本号 4 days ago
  miajio d5e208900d [update] 区间货损统计司机盈亏导出对象未转换问题修复 4 days ago
  miajio 2ce36fcb5c [update] 未补货补货单列表导出加入补货单类型 4 days ago
  miajio 60ac648053 [update] 查询上次盘点时间逻辑修改 4 days ago
  miajio 8b0fa21580 [update] 查询区间统计逻辑整改 4 days ago
  miajio 0fc22a1547 [update] 上次在途数据未获取到问题修复 4 days ago
  miajio 9f2c197c6f [update] 司机在途核算记录排序方式变更 4 days ago
  miajio 38dbe22c51 [update] 区间货损统计中在途核算数据获取方式变更为该时间区间中的在途核算记录 4 days ago
  miajio f08b0e856a [update] 补货单详情内容返回对象内容无效问题修复 5 days ago
  miajio 4409694afc [insert] 新增区间货损司机盈亏明细查询及导出 5 days ago
  miajio 9ed374e414 [update] 司机货损统计逻辑整改 5 days ago
  miajio aa30b33bb2 [update] 生成司机区间货损记录逻辑整改及统计方式整改,加入统计盈亏明细,司机未补货补货单单号 1 week ago
  miajio 9175475aea [update] 服务接口地址修改 1 week ago
  miajio 29d86c07b5 [update] 日货损统计优化 1 week ago
  miajio f6cc717529 [update] 查询上次判断结束时间接口变更为查询上次仓库定期盘点的时间 1 week ago
  miajio a21f193096 [update] 日货损统计异常问题修复 1 week ago
  miajio a956c8bae5 [update] 生成区间统计异常问题修复 1 week ago
  miajio cfeb7ccca9 [update] 区间统计逻辑整改, 基于区间开始时间及区间结束时间计算, 不获取司机日货损统计 1 week ago
  miajio c3339c3106 [update] 日货损返回司机id, 日货损统计中补货数司机未同步到指定司机身上问题修复 1 week ago
  miajio e95592d18b [update] 区间统计使用核算数后未修改核实状态 1 week ago
  miajio 2a05eb40d1 [update] 逻辑与或判断错误问题修复 1 week ago
  miajio 72ed186d5a [update] 日货损统计导出加入区间查询逻辑 1 week ago
  miajio e63f0e3bf1 [update] 日货损统计中加入区间查询逻辑 1 week ago
  miajio 9e4d54915d [update] 区间设备盈亏数未计算问题修复 2 weeks ago
  miajio b6d583c1a7 [update] 区间统计分页查询结果排序 2 weeks ago
  miajio ebbb214a03 [update] 区间统计生成异常问题修复 2 weeks ago
  miajio 47cd1c0276 [update] 日统计司机补货数错误问题修复 2 weeks ago
  miajio ac7aa45561 [update] 日统计司机设备回仓中设备撤机回仓接口不进行统计 2 weeks ago
  miajio 97e6b9c264 [update] 日统计司机设备回仓错误问题修复 2 weeks ago
  miajio ad7e180d09 [update] 日统计设备库存异常问题修复 2 weeks ago
  miajio c49ea97a99 [update] 日统计设备库存错误问题修复, 修复司机日货损统计中昨日库存为空问题 2 weeks ago
  miajio 936827026a [update] 司机在途明细加入商品code和商品名称查询 2 weeks ago
  miajio 22861b977b [update] 请求方式由GET变更为POST 2 weeks ago
  miajio 4f48723e9e [update] 代码回退回过头了问题修复 2 weeks ago
  miajio 2922051612 [update] 统计逻辑修复, 查询补货数基于实际补货员查询, 司机在途核算记录明细查询逻辑加入区间id及司机id查询 2 weeks ago
  miajio 226f19379d [update] 统计司机日货损逻辑加入参数逻辑, 允许选择指定日期 2 weeks ago
  miajio e95b4276c4 [update] 基础数据查询拣货单、整件单开单数基于完成时间计算 2 weeks ago
  miajio e229e97b2b [update] 权限逻辑整改删除原基础bo, 司机在途库存编辑异常问题修复 2 weeks ago
  miajio cda38b17d5 [update] sql别名设值 2 weeks ago
  miajio f06d73be47 [update] 在途明细异常问题捕获 2 weeks ago
  miajio 19db9a47f3 [update] 在途明细新增基于司机id及统计日期直接导出 2 weeks ago
  miajio a6446c8118 [update] 在途明细新增基于司机id及统计日期直接查询 2 weeks ago
  miajio 039b93914b [update] 区间统计列表返回运营商id,运营商id链. 日统计列表返回统计日期 2 weeks ago
  miajio 02cef36113 [update] 加入司机区域线路字段返回 2 weeks ago
  miajio d65e35186a [update] 加入司机区域线路字段返回 2 weeks ago
  miajio 24082617bd [update] 提取区域员工名称搜索参数方法注释修改 2 weeks ago
  miajio 936e09f7dd [update] 司机查询逻辑修复, 未查询到司机将直接返回空数据而不是不关联司机的全部数据 2 weeks ago
  miajio 114d650b05 [update] 司机日货损统计响应加入运营商id 2 weeks ago
  miajio 35dfa19673 [update] 拣货单开单数和取消数中将拣货单中整件单商品重复计算问题修复 3 weeks ago
  miajio 1d18cd70f9 [update] dubbo地址修改用于测试环境发布 3 weeks ago
  miajio 81e3dcca73 [update] 统计货损异常问题修复 3 weeks ago
  miajio b3eb141042 [update] 货损统计运营商名称链返回优化 3 weeks ago
  miajio 958f33d10b [update] 新增货损盘点接口实现 3 weeks ago
  miajio 0b638ebf0b [update] 优化今日司机在途逻辑链 3 weeks ago
  miajio 1cf94dbcf9 [update] dubbo接口测试还原 3 weeks ago
  miajio 35f419102e [update] 每日统计司机库存bug修复 3 weeks ago
  miajio bb985f9aac [update] 删除superOperator 3 weeks ago
  miajio 7b92fed9cd [update] 删除todo 3 weeks ago
  miajio e474a77711 [update] 错误的引用了javax.annotation.Resource 3 weeks ago
  miajio 55e2b7ff37 [update] 生成统计结果逻辑开发 3 weeks ago
  miajio 679d53f7c8 [update] 接口引用错误问题修复 4 weeks ago
  miajio f9d46ca3c9 [insert] 司机货损查询接口完善 4 weeks ago
  miajio ca57d950cf [insert] 日统计逻辑开发 1 month ago
  miajio dd821bc9f2 [insert] 日统计逻辑开发 1 month ago
  miajio 00b8040194 [insert] 项目初始化 1 month ago
  miajio 908ea6443c [insert] 项目初始化 1 month ago
  miajio 4d5f7a2e94 [insert] 项目初始化 1 month ago
  miajio 33d0a2f53c [insert] 项目初始化 1 month ago
100 changed files with 5796 additions and 48 deletions
  1. 22 15
      pom.xml
  2. 30 0
      warehouse-admin-api/pom.xml
  3. 18 0
      warehouse-admin-api/src/main/java/com/yr/warehouse/api/driver/DriverCargoDamageApi.java
  4. 47 0
      warehouse-admin-api/src/main/java/com/yr/warehouse/api/driver/request/DriverCargoDamageInventoryRequest.java
  5. 39 2
      warehouse-admin-component/pom.xml
  6. 0 14
      warehouse-admin-component/src/main/java/com/yr/warehouse/admin/component/Test.java
  7. 21 0
      warehouse-admin-component/src/main/java/com/yr/warehouse/admin/component/apollo/ApolloConfigEvent.java
  8. 88 0
      warehouse-admin-component/src/main/java/com/yr/warehouse/admin/component/areastaff/AreaStaffComponent.java
  9. 72 0
      warehouse-admin-component/src/main/java/com/yr/warehouse/admin/component/auth/OperatorComponent.java
  10. 29 0
      warehouse-admin-component/src/main/java/com/yr/warehouse/admin/component/auth/mapstruct/OperatorMapstruct.java
  11. 40 0
      warehouse-admin-component/src/main/java/com/yr/warehouse/admin/component/auth/vo/OrgOperatorMerchantVo.java
  12. 110 0
      warehouse-admin-component/src/main/java/com/yr/warehouse/admin/component/auth/vo/OrgOperatorVo.java
  13. 17 0
      warehouse-admin-component/src/main/java/com/yr/warehouse/admin/component/common/DubboUrl.java
  14. 16 0
      warehouse-admin-component/src/main/java/com/yr/warehouse/admin/component/device/DeviceCargoWayComponent.java
  15. 41 0
      warehouse-admin-component/src/main/java/com/yr/warehouse/admin/component/driver/DriverDeviceSalesComponent.java
  16. 41 0
      warehouse-admin-component/src/main/java/com/yr/warehouse/admin/component/goods/ProductComponent.java
  17. 9 3
      warehouse-admin-data/pom.xml
  18. 15 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/areastaff/fase/AreaStaffIdFace.java
  19. 27 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/areastaff/mapper/DriverWarehouseMapper.java
  20. 129 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/areastaff/vo/AreaStaffVo.java
  21. 25 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/common/bo/BaseIdBo.java
  22. 46 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/common/menu/BoolEnum.java
  23. 30 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/common/menu/DeleteEnum.java
  24. 29 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/common/vo/OperatorChainNameAware.java
  25. 20 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/common/vo/OperatorNameByChain.java
  26. 26 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/config/MybatisPlusConfig.java
  27. 0 14
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/data/Test.java
  28. 58 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverDailyCargoDamageExportBo.java
  29. 63 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverDailyCargoDamagePageBo.java
  30. 37 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverIntervalCargoDamageDetailExportBo.java
  31. 37 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverIntervalCargoDamageDetailPageBo.java
  32. 63 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverIntervalCargoDamageGeneratorBo.java
  33. 49 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverIntervalCargoDamageGoodsLossStatProfitPageBo.java
  34. 47 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverIntervalCargoDamagePageBo.java
  35. 30 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverIntervalCargoDamageUnReplenishOrderPageBo.java
  36. 62 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverIntervalRouteAccountRecordCreateBo.java
  37. 27 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverIntervalRouteAccountRecordDetailCreateBo.java
  38. 32 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverIntervalRouteAccountRecordEditorBo.java
  39. 63 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverRouteAccountRecordPageBo.java
  40. 26 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverRouteDetailPageBo.java
  41. 44 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/RouteAccountRecordDetailBo.java
  42. 63 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/data/DriverDeviceStockSnapshot.java
  43. 100 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/data/DriverEquipmentLossRecord.java
  44. 123 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/data/DriverGoodsLossIntervalDetail.java
  45. 177 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/data/DriverGoodsLossIntervalMain.java
  46. 124 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/data/DriverGoodsLossRecord.java
  47. 80 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/data/DriverGoodsLossStatProfitLossDetail.java
  48. 62 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/data/DriverGoodsLossStatUnReplenishSnapshot.java
  49. 87 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/data/DriverOnRouteAccountRecordDetail.java
  50. 124 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/data/DriverOnRouteAccountRecordMain.java
  51. 124 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/data/DriverOnRouteDetailLog.java
  52. 87 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/data/EquipmentLossIntervalDetail.java
  53. 18 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/face/AreaStaffNameSearchFace.java
  54. 15 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/face/DriverIntervalCargoDamageDetailSearchFace.java
  55. 34 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/mapper/DriverDeviceStockSnapshotMapper.java
  56. 47 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/mapper/DriverEquipmentLossRecordMapper.java
  57. 46 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/mapper/DriverGoodsLossIntervalDetailMapper.java
  58. 47 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/mapper/DriverGoodsLossIntervalMainMapper.java
  59. 64 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/mapper/DriverGoodsLossRecordMapper.java
  60. 38 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/mapper/DriverGoodsLossStatProfitLossDetailMapper.java
  61. 48 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/mapper/DriverGoodsLossStatUnReplenishSnapshotMapper.java
  62. 55 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/mapper/DriverOnRouteAccountRecordDetailMapper.java
  63. 73 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/mapper/DriverOnRouteAccountRecordMainMapper.java
  64. 51 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/mapper/DriverOnRouteDetailLogMapper.java
  65. 32 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/mapper/EquipmentLossIntervalDetailMapper.java
  66. 20 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/menu/DriverGoodsLossIntervalStockTakingType.java
  67. 37 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/menu/DriverOnRouteAccountRecordStatusEnum.java
  68. 41 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/vo/DriverGoodsLossIntervalVo.java
  69. 140 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/vo/DriverGoodsLossRecordVo.java
  70. 128 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/vo/DriverIntervalCargoDamageDetailVo.java
  71. 77 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/vo/DriverIntervalCargoDamageGoodsLossStatProfitPageVo.java
  72. 95 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/vo/DriverIntervalCargoDamageUnReplenishOrderPageVo.java
  73. 122 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/vo/DriverIntervalCargoDamageVo.java
  74. 46 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/vo/DriverRouteAccountRecordDetailVo.java
  75. 75 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/vo/DriverRouteAccountRecordMainVo.java
  76. 87 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/vo/DriverRouteDetailVo.java
  77. 16 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/operator/face/OperatorNameFace.java
  78. 129 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/data/AggregationPickDetail.java
  79. 124 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/data/AggregationPickInfo.java
  80. 51 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/data/AggregationPickLink.java
  81. 147 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/data/PickingOrderDetail.java
  82. 147 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/data/PickingOrderInfo.java
  83. 135 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/data/ReplenishOrderDetail.java
  84. 153 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/data/ReplenishOrderInfo.java
  85. 16 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/mapper/AggregationPickDetailMapper.java
  86. 16 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/mapper/AggregationPickInfoMapper.java
  87. 16 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/mapper/AggregationPickLinkMapper.java
  88. 16 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/mapper/PickingOrderDetailMapper.java
  89. 16 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/mapper/PickingOrderInfoMapper.java
  90. 25 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/mapper/ReplenishOrderDetailMapper.java
  91. 21 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/mapper/ReplenishOrderInfoMapper.java
  92. 28 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/menu/ReplenishOrderTypeEnum.java
  93. 32 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/vo/DriverGoodsOrderNumVo.java
  94. 78 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/statistics/mapper/BillingQuantityStatisticsMapper.java
  95. 71 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/statistics/vo/DriverStatisticsVo.java
  96. 67 0
      warehouse-admin-data/src/main/resources/mapper/areaStaff/DriverWarehouseMapper.xml
  97. 33 0
      warehouse-admin-data/src/main/resources/mapper/driver/DriverDeviceStockSnapshotMapper.xml
  98. 59 0
      warehouse-admin-data/src/main/resources/mapper/driver/DriverEquipmentLossRecordMapper.xml
  99. 91 0
      warehouse-admin-data/src/main/resources/mapper/driver/DriverGoodsLossIntervalDetailMapper.xml
  100. 97 0
      warehouse-admin-data/src/main/resources/mapper/driver/DriverGoodsLossIntervalMainMapper.xml

+ 22 - 15
pom.xml

@@ -21,6 +21,7 @@
         <module>warehouse-admin-server</module>
         <module>warehouse-admin-web</module>
         <module>warehouse-admin-event</module>
+        <module>warehouse-admin-api</module>
     </modules>
 
     <properties>
@@ -28,10 +29,11 @@
         <java.version>17</java.version>
         <springboot.version>3.1.5</springboot.version>
         <mapstruct.version>1.4.2.Final</mapstruct.version>
-        <bluecat.common.version>1.1.0-SNAPSHOT</bluecat.common.version>
+        <bluecat.common.version>1.1.2-SNAPSHOT</bluecat.common.version>
         <prism-auth-core.version>1.9.0-SNAPSHOT</prism-auth-core.version>
         <prism-auth-support.version>1.9.0-SNAPSHOT</prism-auth-support.version>
-        <yr-supply-chain-api.version>1.1.8-SNAPSHOT</yr-supply-chain-api.version>
+        <yr-supply-chain-api.version>1.2.2-SNAPSHOT</yr-supply-chain-api.version>
+        <yr-shopping-admin.version>1.0.3-SNAPSHOT</yr-shopping-admin.version>
         <dubbo.version>3.2.9</dubbo.version>
         <nacos.version>2.2.4</nacos.version>
     </properties>
@@ -71,19 +73,16 @@
                 <artifactId>apollo-client</artifactId>
                 <version>2.2.0</version>
             </dependency>
-
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-spring-boot-starter</artifactId>
-                <version>3.2.9</version>
+                <artifactId>dubbo-registry-nacos</artifactId>
+                <version>${dubbo.version}</version>
             </dependency>
-
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-registry-nacos</artifactId>
-                <version>3.2.9</version>
+                <artifactId>dubbo-spring-boot-starter</artifactId>
+                <version>${dubbo.version}</version>
             </dependency>
-
             <dependency>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-starter-test</artifactId>
@@ -141,6 +140,11 @@
                 <version>${prism-auth-support.version}</version>
             </dependency>
             <dependency>
+                <groupId>com.yr.shopping.admin</groupId>
+                <artifactId>shopping-admin-support</artifactId>
+                <version>${yr-shopping-admin.version}</version>
+            </dependency>
+            <dependency>
                 <groupId>com.supplychain.support</groupId>
                 <artifactId>yr-supply-chain-api</artifactId>
                 <version>${yr-supply-chain-api.version}</version>
@@ -206,10 +210,11 @@
             <properties>
                 <!-- 开发环境固定1.0.2 -->
                 <revision>1.0.0-SNAPSHOT</revision>
-                <bluecat.common.version>1.1.0-SNAPSHOT</bluecat.common.version>
+                <bluecat.common.version>1.1.2-SNAPSHOT</bluecat.common.version>
                 <prism-auth-support.version>1.9.0-SNAPSHOT</prism-auth-support.version>
                 <prism-auth-core.version>1.9.0-SNAPSHOT</prism-auth-core.version>
-                <yr-supply-chain-api.version>1.1.8-SNAPSHOT</yr-supply-chain-api.version>
+                <yr-supply-chain-api.version>1.2.2-SNAPSHOT</yr-supply-chain-api.version>
+                <yr-shopping-admin.version>1.0.3-SNAPSHOT</yr-shopping-admin.version>
             </properties>
             <distributionManagement>
                 <snapshotRepository>
@@ -224,10 +229,11 @@
             <id>test</id>
             <properties>
                 <revision>1.0.0-SNAPSHOT</revision>
-                <bluecat.common.version>1.1.0-SNAPSHOT</bluecat.common.version>
+                <bluecat.common.version>1.1.2-SNAPSHOT</bluecat.common.version>
                 <prism-auth-support.version>1.9.0-SNAPSHOT</prism-auth-support.version>
                 <prism-auth-core.version>1.9.0-SNAPSHOT</prism-auth-core.version>
-                <yr-supply-chain-api.version>1.1.8-SNAPSHOT</yr-supply-chain-api.version>
+                <yr-supply-chain-api.version>1.2.2-SNAPSHOT</yr-supply-chain-api.version>
+                <yr-shopping-admin.version>1.0.3-SNAPSHOT</yr-shopping-admin.version>
             </properties>
             <distributionManagement>
                 <snapshotRepository>
@@ -241,10 +247,11 @@
             <id>prod</id>
             <properties>
                 <revision>1.0.0-RELEASE</revision>
-                <bluecat.common.version>1.1.0-RELEASE</bluecat.common.version>
+                <bluecat.common.version>1.1.2-RELEASE</bluecat.common.version>
                 <prism-auth-support.version>1.9.0-RELEASE</prism-auth-support.version>
                 <prism-auth-core.version>1.9.0-RELEASE</prism-auth-core.version>
-                <yr-supply-chain-api.version>1.1.8-RELEASE</yr-supply-chain-api.version>
+                <yr-supply-chain-api.version>1.2.2-RELEASE</yr-supply-chain-api.version>
+                <yr-shopping-admin.version>1.0.3-RELEASE</yr-shopping-admin.version>
             </properties>
             <distributionManagement>
                 <repository>

+ 30 - 0
warehouse-admin-api/pom.xml

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.yr.warehouse.admin</groupId>
+        <artifactId>yr-warehouse-admin</artifactId>
+        <version>${revision}</version>
+    </parent>
+
+    <artifactId>warehouse-admin-api</artifactId>
+    <packaging>jar</packaging>
+    <version>${revision}</version>
+    <name>warehouse-admin-api</name>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.yr.bluecat.common</groupId>
+            <artifactId>bluecat-common-entity</artifactId>
+        </dependency>
+    </dependencies>
+
+</project>

+ 18 - 0
warehouse-admin-api/src/main/java/com/yr/warehouse/api/driver/DriverCargoDamageApi.java

@@ -0,0 +1,18 @@
+package com.yr.warehouse.api.driver;
+
+import com.yr.bluecat.common.entity.request.AdminUserRequest;
+import com.yr.bluecat.common.entity.response.Result;
+import com.yr.warehouse.api.driver.request.DriverCargoDamageInventoryRequest;
+
+/**
+ * 司机货损统计Api
+ */
+public interface DriverCargoDamageApi {
+
+    /**
+     * 司机货损统计盘点同步
+     * @return 结果
+     */
+    Result<Void> inventorySync(DriverCargoDamageInventoryRequest request, AdminUserRequest adminUserRequest);
+
+}

+ 47 - 0
warehouse-admin-api/src/main/java/com/yr/warehouse/api/driver/request/DriverCargoDamageInventoryRequest.java

@@ -0,0 +1,47 @@
+package com.yr.warehouse.api.driver.request;
+
+import com.yr.bluecat.common.entity.request.AbstractRequest;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 货损盘点请求参数
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class DriverCargoDamageInventoryRequest  extends AbstractRequest implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 运营商id
+     */
+    @NotNull(message = "请选择运营商")
+    private Long operatorId;
+
+    /**
+     * 仓库id
+     */
+    @NotNull(message = "请选择仓库")
+    private Long warehouseId;
+
+    /**
+     * 区间开始时间
+     */
+    @NotNull(message = "请选择区间开始时间")
+    private LocalDateTime intervalStartTime;
+
+    /**
+     * 区间结束时间
+     */
+    @NotNull(message = "请选择区间结束时间")
+    private LocalDateTime intervalEndTime;
+
+
+}

+ 39 - 2
warehouse-admin-component/pom.xml

@@ -14,12 +14,43 @@
 	<packaging>jar</packaging>
 
 	<dependencies>
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-context</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.dubbo</groupId>
+			<artifactId>dubbo-common</artifactId>
+			<version>3.2.9</version>
+			<scope>compile</scope>
+		</dependency>
+		<!-- springboot -->
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter</artifactId>
+		</dependency>
+		<!-- springboot end-->
+		<!-- 外部引用 -->
+		<!-- 外部dubbo接口 -->
+		<dependency>
+			<groupId>com.yr.prism</groupId>
+			<artifactId>prism-auth-support</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>com.supplychain.support</groupId>
+			<artifactId>yr-supply-chain-api</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>com.yr.shopping.admin</groupId>
+			<artifactId>shopping-admin-support</artifactId>
+		</dependency>
+		<!-- 外部dubbo接口 end-->
 		<!-- apollo -->
 		<dependency>
 			<groupId>com.ctrip.framework.apollo</groupId>
 			<artifactId>apollo-client</artifactId>
 		</dependency>
-
 		<!-- 实体类对象赋值copy -->
 		<dependency>
 			<groupId>org.projectlombok</groupId>
@@ -33,13 +64,18 @@
 			<groupId>org.mapstruct</groupId>
 			<artifactId>mapstruct-processor</artifactId>
 		</dependency>
-
 		<!-- 工具类 -->
 		<dependency>
 			<groupId>commons-codec</groupId>
 			<artifactId>commons-codec</artifactId>
 			<version>1.10</version>
 		</dependency>
+
+		<dependency>
+			<groupId>com.yr.bluecat.common</groupId>
+			<artifactId>bluecat-common-utils</artifactId>
+		</dependency>
+
 		<dependency>
 			<groupId>org.apache.httpcomponents</groupId>
 			<artifactId>httpclient</artifactId>
@@ -57,5 +93,6 @@
 			<version>2.13.0</version>
 			<scope>compile</scope>
 		</dependency>
+
 	</dependencies>
 </project>

+ 0 - 14
warehouse-admin-component/src/main/java/com/yr/warehouse/admin/component/Test.java

@@ -1,14 +0,0 @@
-/**
- * 湖南有人网络有限公司
- **/
-package com.yr.warehouse.admin.component;
-
-/**
- * @ClassName Test
- * @Description: 类描述
- * @Author: pete
- * @CreateDate: 2025/9/12 15:56	
- * @Version: 1.0
- */
-public class Test {
-}

+ 21 - 0
warehouse-admin-component/src/main/java/com/yr/warehouse/admin/component/apollo/ApolloConfigEvent.java

@@ -0,0 +1,21 @@
+package com.yr.warehouse.admin.component.apollo;
+
+
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @ClassName ApolloConfigEvnt
+ * @Description: 类描述
+ * @Author: pete
+ * @CreateDate: 2024/6/7 11:58
+ * @Version: 1.0
+ */
+@Data
+@Configuration
+public class ApolloConfigEvent {
+
+    @Value("${app.id}")
+    private String appId;
+}

+ 88 - 0
warehouse-admin-component/src/main/java/com/yr/warehouse/admin/component/areastaff/AreaStaffComponent.java

@@ -0,0 +1,88 @@
+package com.yr.warehouse.admin.component.areastaff;
+
+import com.supplychain.api.request.areastaff.AreaStaffSearchRequest;
+import com.supplychain.api.response.areastaff.AreaStaffResponse;
+import com.supplychain.api.server.areastaff.AreaStaffApi;
+import com.yr.warehouse.admin.component.apollo.ApolloConfigEvent;
+import com.yr.warehouse.admin.component.common.DubboUrl;
+import jakarta.annotation.Resource;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.stereotype.Component;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 区域员工组件
+ */
+@Component
+public class AreaStaffComponent {
+    @DubboReference(timeout = 5000, retries = 0, url= DubboUrl.SUPPLY_CHAIN_URL)
+    private AreaStaffApi areaStaffApi;
+    @Resource
+    private ApolloConfigEvent apolloConfigEvent;
+
+    /**
+     * 根据员工id查询区域员工信息
+     *
+     * @param staffIds 员工id
+     * @return 区域员工信息
+     */
+    public List<AreaStaffResponse> searchByStaffIds(List<Long> staffIds) {
+        AreaStaffSearchRequest request = new AreaStaffSearchRequest();
+        request.setAppId(apolloConfigEvent.getAppId());
+        if (staffIds != null && !staffIds.isEmpty()) {
+            request.setAreaStaffIds(staffIds.stream().distinct().collect(Collectors.toList()));
+        }
+        return areaStaffApi.searchByStaffIds(request).getData();
+    }
+
+    /**
+     * 根据员工id查询区域员工信息
+     *
+     * @param staffId 员工id
+     * @return 区域员工信息
+     */
+    public AreaStaffResponse searchByStaffId(Long staffId) {
+        AreaStaffSearchRequest request = new AreaStaffSearchRequest();
+        request.setAppId(apolloConfigEvent.getAppId());
+        request.setAreaStaffIds(Collections.singletonList(staffId));
+        List<AreaStaffResponse> responses = areaStaffApi.searchByStaffIds(request).getData();
+        if (responses == null || responses.isEmpty()) {
+            return null;
+        }
+        return responses.get(0);
+    }
+
+    /**
+     * 根据运营商id和区域员工名称查询区域员工信息
+     *
+     * @param operatorId 运营商id
+     * @param areaStaffName 区域员工名称
+     * @return 区域员工信息
+     */
+    public List<AreaStaffResponse> searchByOperatorIdAndAreaStaffName(Long operatorId, String areaStaffName) {
+        AreaStaffSearchRequest request = new AreaStaffSearchRequest();
+        request.setAppId(apolloConfigEvent.getAppId());
+        if (null != operatorId && operatorId > 0L) {
+            request.setOperatorId(operatorId);
+        }
+        request.setEmployeeName(areaStaffName);
+        return areaStaffApi.searchByStaffIds(request).getData();
+    }
+
+    /**
+     * 根据运营商id查询区域员工信息
+     *
+     * @param operatorId 运营商id
+     * @return 区域员工信息
+     */
+    public List<AreaStaffResponse> searchByOperatorId(Long operatorId) {
+        AreaStaffSearchRequest request = new AreaStaffSearchRequest();
+        request.setAppId(apolloConfigEvent.getAppId());
+        request.setOperatorId(operatorId);
+        return areaStaffApi.searchByStaffIds(request).getData();
+    }
+
+}

+ 72 - 0
warehouse-admin-component/src/main/java/com/yr/warehouse/admin/component/auth/OperatorComponent.java

@@ -0,0 +1,72 @@
+package com.yr.warehouse.admin.component.auth;
+
+import com.google.common.collect.Lists;
+import com.yr.bluecat.common.entity.response.Result;
+import com.yr.prism.auth.support.OperatorsQueryApi;
+import com.yr.prism.auth.support.request.OrgOperatorQueryRequest;
+import com.yr.prism.auth.support.response.OrgOperatorResponse;
+import com.yr.warehouse.admin.component.apollo.ApolloConfigEvent;
+import com.yr.warehouse.admin.component.auth.mapstruct.OperatorMapstruct;
+import com.yr.warehouse.admin.component.auth.vo.OrgOperatorVo;
+import jakarta.annotation.Resource;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 运营商信息组件
+ */
+@Component
+public class OperatorComponent {
+    @Resource
+    private ApolloConfigEvent apolloConfigEvent;
+
+    @DubboReference(timeout = 5000, retries = 0)
+    private OperatorsQueryApi operatorsQueryApi;
+
+    public List<OrgOperatorVo> searchAll() {
+        Result<List<OrgOperatorResponse>> res = operatorsQueryApi.searchAll();
+        return OperatorMapstruct.MAPSTRUCT.toOrgOperatorResponse(res.getData());
+    }
+
+    /**
+     * 通过id查询运营商信息
+     */
+    public OrgOperatorVo queryOperatorById(Long id) {
+        OrgOperatorQueryRequest request = new OrgOperatorQueryRequest();
+        request.setAppId(apolloConfigEvent.getAppId());
+        request.setIds(Lists.newArrayList(id));
+        Result<List<OrgOperatorResponse>> result = operatorsQueryApi.queryOperator(request);
+        List<OrgOperatorVo> orgOperatorResponse = OperatorMapstruct.MAPSTRUCT.toOrgOperatorResponse(result.getData());
+        return orgOperatorResponse.get(0);
+    }
+
+    /**
+     * 通过id查询运营商信息
+     */
+    public Map<Long, OrgOperatorVo> queryOperatorMapByIdList(List<Long> ids) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return new HashMap<>();
+        }
+        List<OrgOperatorVo> orgOperatorResponse = queryOperatorByIds(ids);
+        return orgOperatorResponse.stream().collect(Collectors.toMap(OrgOperatorVo::getId, vo -> vo, (v1, v2) -> v1));
+    }
+
+    public List<OrgOperatorVo> queryOperatorByIds(List<Long> ids) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return new ArrayList<>();
+        }
+        OrgOperatorQueryRequest request = new OrgOperatorQueryRequest();
+        request.setAppId(apolloConfigEvent.getAppId());
+        request.setIds(ids.stream().distinct().toList());
+        Result<List<OrgOperatorResponse>> result = operatorsQueryApi.queryOperator(request);
+        return OperatorMapstruct.MAPSTRUCT.toOrgOperatorResponse(result.getData());
+    }
+
+}

+ 29 - 0
warehouse-admin-component/src/main/java/com/yr/warehouse/admin/component/auth/mapstruct/OperatorMapstruct.java

@@ -0,0 +1,29 @@
+/**
+ * 湖南有人网络有限公司
+ **/
+package com.yr.warehouse.admin.component.auth.mapstruct;
+
+import com.yr.prism.auth.support.response.OrgOperatorMerchantResponse;
+import com.yr.prism.auth.support.response.OrgOperatorResponse;
+import com.yr.warehouse.admin.component.auth.vo.OrgOperatorMerchantVo;
+import com.yr.warehouse.admin.component.auth.vo.OrgOperatorVo;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+ * @ClassName AdminUserInfoMapstruct
+ * @Description: 类描述
+ * @Author: pete
+ * @CreateDate: 2024/4/25 11:03
+ * @Version: 1.0
+ */
+@Mapper
+public interface OperatorMapstruct {
+    OperatorMapstruct MAPSTRUCT = Mappers.getMapper(OperatorMapstruct.class);
+
+    OrgOperatorMerchantVo toOrgOperatorMerchantVo(OrgOperatorMerchantResponse data);
+
+    List<OrgOperatorVo> toOrgOperatorResponse(List<OrgOperatorResponse> data);
+}

+ 40 - 0
warehouse-admin-component/src/main/java/com/yr/warehouse/admin/component/auth/vo/OrgOperatorMerchantVo.java

@@ -0,0 +1,40 @@
+/**
+ * 湖南有人网络有限公司
+ **/
+package com.yr.warehouse.admin.component.auth.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName OrgOperatorMerchantResponse
+ * @Description: 类描述
+ * @Author: pete
+ * @CreateDate: 2024/8/5 9:32
+ * @Version: 1.0
+ */
+@Data
+public class OrgOperatorMerchantVo implements Serializable {
+
+    /**
+     * 运营商id
+     */
+    private Long deviceId;
+
+    /**
+     * 商户名称
+     */
+    private String merchantName;
+
+    /**
+     * 商户号
+     */
+    private String merchantNo;
+
+    /**
+     * 终端号
+     */
+    private String termNo;
+
+}

+ 110 - 0
warehouse-admin-component/src/main/java/com/yr/warehouse/admin/component/auth/vo/OrgOperatorVo.java

@@ -0,0 +1,110 @@
+/**
+ * 湖南有人网络有限公司
+ **/
+package com.yr.warehouse.admin.component.auth.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @ClassName OrgOperatorAddRequest
+ * @Description: 类描述
+ * @Author: pete
+ * @CreateDate: 2024/4/22 17:03
+ * @Version: 1.0
+ */
+@Data
+public class OrgOperatorVo {
+    /**
+     * 运营商id
+     */
+    private Long id;
+    /**
+     * 运营商名称
+     */
+    private String operatorName;
+
+    /**
+     * 运营商编号
+     */
+    private String operatorNumber;
+
+    /**
+     * 运营商父级id
+     */
+    private Long operatorParentId;
+
+    /**
+     * 运营商Id链
+     */
+    private String operatorChain;
+
+    /**
+     * 运营商名称链
+     */
+    private String operatorChainName;
+
+    /**
+     * 负责人名称
+     */
+    private String personInCharge;
+
+    /**
+     * 负责人联系电话
+     */
+    private String mobile;
+
+    /**
+     * 联系邮箱
+     */
+    private String email;
+
+    /**
+     * 详细地址
+     */
+    private String detailedAddress;
+
+    /**
+     * logo图片地址
+     */
+    private String logo;
+
+    /**
+     * 状态:NORMAL:正常|DISABLE:禁用
+     */
+    private String status;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime createTime;
+
+    /**
+     * 创建人uid
+     */
+    private Long createUid;
+
+    /**
+     * 创建人名称
+     */
+    private String createName;
+
+    /**
+     * 修改时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime modifyTime;
+
+    /**
+     * 修改人uid
+     */
+    private Long modifyUid;
+
+    /**
+     * 修改人名称
+     */
+    private String modifyName;
+}

+ 17 - 0
warehouse-admin-component/src/main/java/com/yr/warehouse/admin/component/common/DubboUrl.java

@@ -0,0 +1,17 @@
+package com.yr.warehouse.admin.component.common;
+
+// DubboUrl
+public class DubboUrl {
+
+    /**
+     * 供应链DUBBO服务地址
+     */
+    // public static final String SUPPLY_CHAIN_URL = "dubbo://127.0.0.1:22888";
+    public static final String SUPPLY_CHAIN_URL = "";
+
+    /**
+     * SHOPPING DUBBO服务地址
+     */
+    // public static final String SHOPPING_ADMIN_URL = "dubbo://127.0.0.1:21888";
+    public static final String SHOPPING_ADMIN_URL = "";
+}

+ 16 - 0
warehouse-admin-component/src/main/java/com/yr/warehouse/admin/component/device/DeviceCargoWayComponent.java

@@ -0,0 +1,16 @@
+package com.yr.warehouse.admin.component.device;
+
+import com.supplychain.api.server.device.DeviceCargoWayApi;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.stereotype.Component;
+
+/**
+ * 设备货道组件
+ */
+@Component
+public class DeviceCargoWayComponent {
+
+    @DubboReference(timeout = 5000, retries = 0 /*, url="dubbo://127.0.0.1:22888"*/ )
+    private DeviceCargoWayApi deviceCargoWayApi;
+
+}

+ 41 - 0
warehouse-admin-component/src/main/java/com/yr/warehouse/admin/component/driver/DriverDeviceSalesComponent.java

@@ -0,0 +1,41 @@
+package com.yr.warehouse.admin.component.driver;
+
+import com.yr.bluecat.common.entity.response.Result;
+import com.yr.shopping.admin.support.DriverDeviceSalesApi;
+import com.yr.shopping.admin.support.request.DriverDeviceSalesRequest;
+import com.yr.shopping.admin.support.response.DriverDeviceSalesResponse;
+import com.yr.warehouse.admin.component.apollo.ApolloConfigEvent;
+import com.yr.warehouse.admin.component.common.DubboUrl;
+import jakarta.annotation.Resource;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 司机设备销售数据
+ */
+@Component
+public class DriverDeviceSalesComponent {
+    @DubboReference(timeout = 5000, retries = 0, url=DubboUrl.SHOPPING_ADMIN_URL)
+    private DriverDeviceSalesApi driverDeviceSalesApi;
+    @Resource
+    private ApolloConfigEvent apolloConfigEvent;
+    /**
+     * 列表
+     * @param startTime 开始时间
+     * @param endTime 结束时间
+     * @return
+     */
+    public List<DriverDeviceSalesResponse> list(List<Long> areaStaffIds, LocalDateTime startTime, LocalDateTime endTime) {
+        DriverDeviceSalesRequest request = new DriverDeviceSalesRequest();
+        request.setAppId(apolloConfigEvent.getAppId());
+        request.setStartTime(startTime);
+        request.setEndTime(endTime);
+        request.setAreaStaffIds(areaStaffIds);
+        Result<List<DriverDeviceSalesResponse>> result = driverDeviceSalesApi.list(request);
+        return result.getData();
+    }
+
+}

+ 41 - 0
warehouse-admin-component/src/main/java/com/yr/warehouse/admin/component/goods/ProductComponent.java

@@ -0,0 +1,41 @@
+package com.yr.warehouse.admin.component.goods;
+
+import com.supplychain.api.response.basegoods.ProductSkuResponse;
+import com.supplychain.api.server.basegoods.ProductApi;
+import com.yr.bluecat.common.entity.response.Result;
+import com.yr.warehouse.admin.component.common.DubboUrl;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * 商品组件
+ */
+@Component
+public class ProductComponent {
+    @DubboReference(timeout = 5000, retries = 0, url= DubboUrl.SUPPLY_CHAIN_URL)
+    private ProductApi productApi;
+
+    /**
+     * 根据商品规格ID查询商品信息
+     * @param specIds 商品规格ID
+     * @return 商品信息
+     */
+    public List<ProductSkuResponse> searchProductBySpecIds(List<Integer> specIds) {
+        Result<List<ProductSkuResponse>> result = productApi.searchProductBySpecIds(specIds);
+        return result.getData();
+    }
+
+    /**
+     * 根据商品名称查询商品信息
+     * @param name 商品名称
+     * @return 商品信息
+     */
+    public List<ProductSkuResponse> searchProductByName(String name) {
+        Result<List<ProductSkuResponse>> result = productApi.searchProductByName(name);
+        return result.getData();
+    }
+
+
+}

+ 9 - 3
warehouse-admin-data/pom.xml

@@ -15,6 +15,12 @@
 
 
     <dependencies>
+
+        <dependency>
+            <groupId>com.yr.bluecat.common</groupId>
+            <artifactId>bluecat-common-entity</artifactId>
+        </dependency>
+
         <!-- mybatisplus -->
         <dependency>
             <groupId>com.baomidou</groupId>
@@ -36,9 +42,9 @@
         </dependency>
 
         <dependency>
-            <groupId>mysql</groupId>
-            <artifactId>mysql-connector-java</artifactId>
-            <version>8.0.18</version>
+            <groupId>com.mysql</groupId>
+            <artifactId>mysql-connector-j</artifactId>
+            <version>8.2.0</version>
         </dependency>
         <dependency>
             <groupId>org.projectlombok</groupId>

+ 15 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/areastaff/fase/AreaStaffIdFace.java

@@ -0,0 +1,15 @@
+package com.yr.warehouse.admin.areastaff.fase;
+
+/**
+ * 区域员工名称
+ * @author dengbp
+ */
+public interface AreaStaffIdFace {
+
+    Long getAreaStaffId();
+
+    void setAreaStaffName(String areaStaffName);
+
+    void setAreaChainName(String areaChain);
+
+}

+ 27 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/areastaff/mapper/DriverWarehouseMapper.java

@@ -0,0 +1,27 @@
+package com.yr.warehouse.admin.areastaff.mapper;
+
+import com.yr.warehouse.admin.areastaff.vo.AreaStaffVo;
+import com.yr.warehouse.admin.common.bo.BaseIdBo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 仓库司机关系映射器
+ */
+@Mapper
+public interface DriverWarehouseMapper {
+    /**
+     * 根据仓库id查询仓库司机关系
+     * @param warehouseId 仓库id
+     * @return 仓库司机关系
+     */
+    List<AreaStaffVo> searchByWarehouseId(@Param("warehouseId") Long warehouseId);
+
+    /**
+     * 查询所有仓库司机
+     * @return 所有仓库司机
+     */
+    List<AreaStaffVo> all();
+}

+ 129 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/areastaff/vo/AreaStaffVo.java

@@ -0,0 +1,129 @@
+package com.yr.warehouse.admin.areastaff.vo;
+
+import com.yr.warehouse.admin.areastaff.fase.AreaStaffIdFace;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 区域员工信息
+ */
+@Data
+public class AreaStaffVo implements AreaStaffIdFace, Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 区域员工id
+     */
+    private Long areaStaffId;
+
+    /**
+     * 区域员工名称
+     */
+    private String areaStaffName;
+
+    /**
+     * 区域链名称
+     */
+    private String areaChainName;
+
+    /**
+     * 区域员工id
+     */
+    private Long id;
+
+    /**
+     * 运营商id
+     */
+    private Long operatorId;
+
+    /**
+     * 运营商id链
+     */
+    private String operatorChain;
+
+    /**
+     * 区域id
+     */
+    private Long areaId;
+
+    /**
+     * 区域链
+     */
+    private String areaChain;
+
+    /**
+     * 员工id
+     */
+    private Long employeeId;
+
+    /**
+     * 员工名称
+     */
+    private String employeeName;
+
+    /**
+     * 账号id
+     */
+    private Long accountId;
+
+    /**
+     * 汽车装框数
+     */
+    private Integer carBoxNum;
+
+    /**
+     * 最大整件单修改拣货数比例
+     */
+    private BigDecimal maxAggregationPickingRatio;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 创建人uid
+     */
+    private Long createUid;
+
+    /**
+     * 创建人名称
+     */
+    private String createName;
+
+    /**
+     * 修改时间
+     */
+    private LocalDateTime modifyTime;
+
+    /**
+     * 修改人uid
+     */
+    private Long modifyUid;
+
+    /**
+     * 修改人名称
+     */
+    private String modifyName;
+
+    /**
+     * 删除状态:NORMAL:正常|DELETE:删除
+     */
+    private String isDelete;
+
+    /**
+     * 员工负责人账户id
+     */
+    private Long managerAccountId;
+
+    /**
+     * 员工负责人账户名称
+     */
+    private String managerAccountName;
+}

+ 25 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/common/bo/BaseIdBo.java

@@ -0,0 +1,25 @@
+package com.yr.warehouse.admin.common.bo;
+
+import com.yr.bluecat.common.entity.bo.BaseBo;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * id bo
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class BaseIdBo extends BaseBo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    private Long id;
+
+}

+ 46 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/common/menu/BoolEnum.java

@@ -0,0 +1,46 @@
+package com.yr.warehouse.admin.common.menu;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@AllArgsConstructor
+@Getter
+public enum BoolEnum {
+
+    YES(true, 1, "是"),
+    NO(false, 0, "否");
+
+    private final boolean value;
+
+    private final Integer code;
+
+    private final String desc;
+
+    public static boolean getBoolByName(String name) {
+        for (BoolEnum item : BoolEnum.values()) {
+            if (item.name().equals(name)) {
+                return item.value;
+            }
+        }
+        return false;
+    }
+
+    public static boolean isYes(String name) {
+        return YES.name().equals(name);
+    }
+
+    public static boolean isNo(String name) {
+        return NO.name().equals(name);
+    }
+
+    public static BoolEnum getByCode(Integer code) {
+        for (BoolEnum item : BoolEnum.values()) {
+            if (item.getCode().equals(code)) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+
+}

+ 30 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/common/menu/DeleteEnum.java

@@ -0,0 +1,30 @@
+package com.yr.warehouse.admin.common.menu;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 删除枚举
+ */
+@Getter
+@AllArgsConstructor
+public enum DeleteEnum {
+
+    NORMAL("正常"),
+    DELETE("删除");
+
+    private final String desc;
+
+    public static DeleteEnum getByCode(String code) {
+        for (DeleteEnum value : DeleteEnum.values()) {
+            if (value.name().equals(code)) {
+                return value;
+            }
+        }
+        return null;
+    }
+
+    public static boolean isDelete(String status) {
+        return DELETE.name().equals(status);
+    }
+}

+ 29 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/common/vo/OperatorChainNameAware.java

@@ -0,0 +1,29 @@
+/**
+ * 湖南有人网络有限公司
+ **/
+package com.yr.warehouse.admin.common.vo;
+
+/**
+ * @ClassName Aware
+ * @Description: 类描述
+ * @Author: pete
+ * @CreateDate: 2024/4/25 17:33
+ * @Version: 1.0
+ */
+public interface OperatorChainNameAware {
+
+    /**
+     * 获取运营商链
+     *
+     * @return
+     */
+    String getOperatorChain();
+
+    /**
+     * 设置运营商链名称
+     *
+     * @param operatorChainName
+     */
+    void setOperatorChainName(String operatorChainName);
+
+}

+ 20 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/common/vo/OperatorNameByChain.java

@@ -0,0 +1,20 @@
+package com.yr.warehouse.admin.common.vo;
+
+import java.util.Objects;
+
+public class OperatorNameByChain {
+
+    /**
+     * 基于运营商名称链获取运营商名称
+     */
+    public static String getOperatorNameByChain(String operatorName, String operatorChainName) {
+        if (Objects.nonNull(operatorName)) {
+            return operatorName;
+        } else if (Objects.nonNull(operatorChainName)){
+            String  [] chainNames = operatorChainName.split(">>");
+            return chainNames.length > 0 ? chainNames[chainNames.length - 1] : null;
+        }
+        return null;
+    }
+
+}

+ 26 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/config/MybatisPlusConfig.java

@@ -0,0 +1,26 @@
+package com.yr.warehouse.admin.config;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.mybatis.spring.annotation.MapperScan;
+import org.mybatis.spring.annotation.MapperScans;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@MapperScans({
+        @MapperScan("com.yr.warehouse.admin.**.mapper")
+})
+public class MybatisPlusConfig {
+
+    /**
+     * 添加分页插件
+     */
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));//如果配置多个插件,切记分页最后添加
+        return interceptor;
+    }
+}

+ 0 - 14
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/data/Test.java

@@ -1,14 +0,0 @@
-/**
- * 湖南有人网络有限公司
- **/
-package com.yr.warehouse.admin.data;
-
-/**
- * @ClassName Test
- * @Description: 类描述
- * @Author: pete
- * @CreateDate: 2025/9/12 15:54	
- * @Version: 1.0
- */
-public class Test {
-}

+ 58 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverDailyCargoDamageExportBo.java

@@ -0,0 +1,58 @@
+package com.yr.warehouse.admin.driver.bo;
+
+import com.yr.bluecat.common.entity.bo.BaseBo;
+import com.yr.warehouse.admin.driver.face.AreaStaffNameSearchFace;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * 司机货损统计(日统计)请求参数
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class DriverDailyCargoDamageExportBo extends BaseBo implements AreaStaffNameSearchFace, Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 运营商id
+     */
+    private Long operatorId;
+
+    /**
+     * 区域员工关系id
+     */
+    private List<Long> areaStaffIds;
+
+    /**
+     * 区域员工名称
+     */
+    private String areaStaffName;
+
+    /**
+     * 区域员工id
+     */
+    private Long areaStaffId;
+
+    /**
+     * 统计日期
+     */
+    private LocalDate statDate;
+
+    /**
+     * 开始统计日期
+     */
+    private LocalDate beginStatDate;
+
+    /**
+     * 结束统计日期
+     */
+    private LocalDate endStatDate;
+
+}

+ 63 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverDailyCargoDamagePageBo.java

@@ -0,0 +1,63 @@
+package com.yr.warehouse.admin.driver.bo;
+
+import com.yr.bluecat.common.entity.bo.BasePageBo;
+import com.yr.warehouse.admin.driver.face.AreaStaffNameSearchFace;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * 司机货损统计(日统计)请求参数
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class DriverDailyCargoDamagePageBo extends BasePageBo implements AreaStaffNameSearchFace, Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 运营商id
+     */
+    private Long operatorId;
+
+    /**
+     * 运营商id链
+     */
+    private String operatorChain;
+
+    /**
+     * 区域员工名称
+     */
+    private String areaStaffName;
+
+    /**
+     * 区域员工关系id
+     */
+    private List<Long> areaStaffIds;
+
+    /**
+     * 区域员工id
+     */
+    private Long areaStaffId;
+
+    /**
+     * 统计日期
+     */
+    private LocalDate statDate;
+
+    /**
+     * 开始统计日期
+     */
+    private LocalDate beginStatDate;
+
+    /**
+     * 结束统计日期
+     */
+    private LocalDate endStatDate;
+
+}

+ 37 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverIntervalCargoDamageDetailExportBo.java

@@ -0,0 +1,37 @@
+package com.yr.warehouse.admin.driver.bo;
+
+import com.yr.bluecat.common.entity.bo.BaseBo;
+import com.yr.warehouse.admin.driver.face.DriverIntervalCargoDamageDetailSearchFace;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 区间货损详情分页请求参数
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class DriverIntervalCargoDamageDetailExportBo extends BaseBo implements DriverIntervalCargoDamageDetailSearchFace, Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 货损统计id
+     */
+    private Long goodsLossMonthlyMainId;
+
+    /**
+     * 区域员工ids
+     */
+    private List<Long> areaStaffIds;
+
+    /**
+     * 区域员工名称
+     */
+    private String areaStaffName;
+
+}

+ 37 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverIntervalCargoDamageDetailPageBo.java

@@ -0,0 +1,37 @@
+package com.yr.warehouse.admin.driver.bo;
+
+import com.yr.bluecat.common.entity.bo.BasePageBo;
+import com.yr.warehouse.admin.driver.face.DriverIntervalCargoDamageDetailSearchFace;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 区间货损详情分页请求参数
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class DriverIntervalCargoDamageDetailPageBo extends BasePageBo implements DriverIntervalCargoDamageDetailSearchFace, Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 货损统计id
+     */
+    private Long goodsLossMonthlyMainId;
+
+    /**
+     * 区域员工ids
+     */
+    private List<Long> areaStaffIds;
+
+    /**
+     * 区域员工名称
+     */
+    private String areaStaffName;
+
+}

+ 63 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverIntervalCargoDamageGeneratorBo.java

@@ -0,0 +1,63 @@
+package com.yr.warehouse.admin.driver.bo;
+
+import com.yr.bluecat.common.entity.bo.BaseBo;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 区域员工货损统计(区间统计)
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class DriverIntervalCargoDamageGeneratorBo extends BaseBo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 运营商id
+     */
+    private Long operatorId;
+
+    /**
+     * 仓库id
+     */
+    private Long warehouseId;
+
+    /**
+     * 统计类型 SPOT_CHECK 抽查(指定补货员) REGULAR 定期(全部补货员)
+     */
+    private String stockTakingType;
+
+    /**
+     * 区间统计开始时间
+     */
+    private LocalDate beginStatDate;
+
+    /**
+     * 区间统计结束时间
+     */
+    private LocalDate endStatDate;
+
+    /**
+     * 区间开始时间
+     */
+    private LocalDateTime intervalStartTime;
+
+    /**
+     * 区间结束时间
+     */
+    private LocalDateTime intervalEndTime;
+
+    /**
+     * 区域员工id列表
+     */
+    private List<Long> areaStaffIds;
+
+}

+ 49 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverIntervalCargoDamageGoodsLossStatProfitPageBo.java

@@ -0,0 +1,49 @@
+package com.yr.warehouse.admin.driver.bo;
+
+import com.yr.bluecat.common.entity.bo.BasePageBo;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 司机区间货损盈亏记录分页查询参数
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class DriverIntervalCargoDamageGoodsLossStatProfitPageBo extends BasePageBo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 货损区间统计主表id(关联司机货损区间统计主表id)
+     */
+    private Long goodsLossMonthlyMainId;
+
+    /**
+     * 区域员工关系id
+     */
+    private Long areaStaffId;
+
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+
+    /**
+     * 商品编码
+     */
+    private String goodsCode;
+
+    /**
+     * 品牌名称
+     */
+    private String brandName;
+
+    /**
+     * 分类名称
+     */
+    private String classifyName;
+}

+ 47 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverIntervalCargoDamagePageBo.java

@@ -0,0 +1,47 @@
+package com.yr.warehouse.admin.driver.bo;
+
+import com.yr.bluecat.common.entity.bo.BasePageBo;
+import com.yr.warehouse.admin.driver.face.AreaStaffNameSearchFace;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 分页查询货损统计(区间统计)请求参数
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class DriverIntervalCargoDamagePageBo extends BasePageBo implements AreaStaffNameSearchFace, Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 运营商id
+     */
+    private Long operatorId;
+
+    /**
+     * 区域员工关系id
+     */
+    private List<Long> areaStaffIds;
+
+    /**
+     * 区域员工名称
+     */
+    private String areaStaffName;
+
+    /**
+     * 创建时间-开始
+     */
+    private LocalDateTime createBeginTime;
+
+    /**
+     * 创建时间-结束
+     */
+    private LocalDateTime createEndTime;
+}

+ 30 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverIntervalCargoDamageUnReplenishOrderPageBo.java

@@ -0,0 +1,30 @@
+package com.yr.warehouse.admin.driver.bo;
+
+import com.yr.bluecat.common.entity.bo.BasePageBo;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 司机在途区间货损记录未补货的补货单分页Bo
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class DriverIntervalCargoDamageUnReplenishOrderPageBo extends BasePageBo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 货损记录主表id
+     */
+    private Long goodsLossMonthlyMainId;
+
+    /**
+     * 区域员工id
+     */
+    private Long areaStaffId;
+
+}

+ 62 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverIntervalRouteAccountRecordCreateBo.java

@@ -0,0 +1,62 @@
+package com.yr.warehouse.admin.driver.bo;
+
+import com.yr.bluecat.common.entity.bo.BaseBo;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * 添加司机在途核算记录bo
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class DriverIntervalRouteAccountRecordCreateBo extends BaseBo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 创建成功后写入的id
+     */
+    private Long id;
+
+    /**
+     * 运营商id
+     */
+    private Long operatorId;
+
+    /**
+     * 运营商id链
+     */
+    private String operatorChain;
+
+    /**
+     * 区域员工id
+     */
+    private Long areaStaffId;
+
+    /**
+     * 仓库id
+     */
+    private Long warehouseId;
+
+    /**
+     * 统计日期
+     */
+    private LocalDate statDate;
+
+    /**
+     * 统计总数量
+     */
+    private Long statTotalNum;
+
+    /**
+     * 商品列表
+     */
+    private List<DriverIntervalRouteAccountRecordDetailCreateBo> details;
+
+}

+ 27 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverIntervalRouteAccountRecordDetailCreateBo.java

@@ -0,0 +1,27 @@
+package com.yr.warehouse.admin.driver.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 司机在途核算记录详情创建参数
+ */
+@Data
+public class DriverIntervalRouteAccountRecordDetailCreateBo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 商品id
+     */
+    private Integer goodsId;
+
+    /**
+     * 库存数
+     */
+    private Long stockNum;
+
+}

+ 32 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverIntervalRouteAccountRecordEditorBo.java

@@ -0,0 +1,32 @@
+package com.yr.warehouse.admin.driver.bo;
+
+import com.yr.bluecat.common.entity.bo.BaseBo;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 司机在途核算记录编辑请求Bo
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class DriverIntervalRouteAccountRecordEditorBo extends BaseBo implements Serializable {
+
+    /**
+     * 司机在途核算记录id
+     */
+    private Long id;
+
+    /**
+     * 统计总数量
+     */
+    private Long statTotalNum;
+
+    /**
+     * 货损记录
+     */
+    private List<DriverIntervalRouteAccountRecordDetailCreateBo> details;
+
+}

+ 63 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverRouteAccountRecordPageBo.java

@@ -0,0 +1,63 @@
+package com.yr.warehouse.admin.driver.bo;
+
+import com.yr.bluecat.common.entity.bo.BasePageBo;
+import com.yr.warehouse.admin.driver.face.AreaStaffNameSearchFace;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * 司机在途核算记录分页查询Bo
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class DriverRouteAccountRecordPageBo extends BasePageBo implements AreaStaffNameSearchFace, Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 运营商id
+     */
+    private Long operatorId;
+
+    /**
+     * 区域员工名称
+     */
+    private String areaStaffName;
+
+    /**
+     * 区域员工Ids
+     */
+    private List<Long> areaStaffIds;
+
+    /**
+     * 只查询当前司机在途
+     */
+    private Boolean onlySearchCurrentDriver;
+
+    /**
+     * 统计开始时间
+     */
+    private LocalDate beginStatDate;
+
+    /**
+     * 统计结束时间
+     */
+    private LocalDate endStatDate;
+
+    /**
+     * 创建开始时间
+     */
+    private LocalDate beginCreateDate;
+
+    /**
+     * 创建结束时间
+     */
+    private LocalDate endCreateDate;
+
+}

+ 26 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverRouteDetailPageBo.java

@@ -0,0 +1,26 @@
+package com.yr.warehouse.admin.driver.bo;
+
+import com.yr.bluecat.common.entity.bo.BasePageBo;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * 司机线路详情分页Bo
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class DriverRouteDetailPageBo extends BasePageBo implements Serializable {
+
+    /**
+     * 货损记录id
+     */
+    private Long goodsLossRecordId;
+
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+
+}

+ 44 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/RouteAccountRecordDetailBo.java

@@ -0,0 +1,44 @@
+package com.yr.warehouse.admin.driver.bo;
+
+import com.yr.bluecat.common.entity.bo.BaseBo;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+/**
+ * 查询司机在途核算记录明细查询bo
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class RouteAccountRecordDetailBo extends BaseBo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 司机在途核算记录 - id
+
+     */
+    private Long routeAccountRecordMainId;
+
+    /**
+     * 区域员工 - id
+     */
+    private Long areaStaffId;
+
+    /**
+     * 货损区间统计记录 - id
+     */
+    private Long goodsLossMonthlyMainId;
+
+    /**
+     * 商品编号
+     */
+    private String goodsCode;
+
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+}

+ 63 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/data/DriverDeviceStockSnapshot.java

@@ -0,0 +1,63 @@
+package com.yr.warehouse.admin.driver.data;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 司机设备库存快照
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-04 15:21:10
+ */
+@Getter
+@Setter
+@TableName("yr_driver_device_stock_snapshot")
+public class DriverDeviceStockSnapshot implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 统计开始日期(YYYY-MM-dd HH:mm:ss)
+     */
+    @TableField("statBeginDateTime")
+    private LocalDateTime statBeginDateTime;
+
+    /**
+     * 统计结束日期(YYYY-MM-dd HH:mm:ss)
+     */
+    @TableField("statEndDateTime")
+    private LocalDateTime statEndDateTime;
+
+    /**
+     * 区域员工关系id
+     */
+    @TableField("areaStaffId")
+    private Long areaStaffId;
+
+    /**
+     * 统计总数
+     */
+    @TableField("totalNum")
+    private Long totalNum;
+
+    /**
+     * 创建时间
+     */
+    @TableField("createTime")
+    private LocalDateTime createTime;
+}

+ 100 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/data/DriverEquipmentLossRecord.java

@@ -0,0 +1,100 @@
+package com.yr.warehouse.admin.driver.data;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 司机设备货损记录表
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-03 15:26:37
+ */
+@Getter
+@Setter
+@TableName("yr_driver_equipment_loss_record")
+public class DriverEquipmentLossRecord implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 运营商id
+     */
+    @TableField("operatorId")
+    private Long operatorId;
+
+    /**
+     * 运营商id链
+     */
+    @TableField("operatorChain")
+    private String operatorChain;
+
+    /**
+     * 区域员工关系id
+     */
+    @TableField("areaStaffId")
+    private Long areaStaffId;
+
+    /**
+     * 统计日期(YYYY-MM-dd)
+     */
+    @TableField("statDate")
+    private LocalDate statDate;
+
+    /**
+     * 设备库存数
+     */
+    @TableField("equipmentStockNum")
+    private Long equipmentStockNum;
+
+    /**
+     * 设备补货数
+     */
+    @TableField("equipmentReplenishNum")
+    private Long equipmentReplenishNum;
+
+    /**
+     * 设备销量
+     */
+    @TableField("equipmentSalesNum")
+    private Long equipmentSalesNum;
+
+    /**
+     * 理论设备库存数
+     */
+    @TableField("theoreticalEquipmentStockNum")
+    private Long theoreticalEquipmentStockNum;
+
+    /**
+     * 实际设备库存数
+     */
+    @TableField("actualEquipmentStockNum")
+    private Long actualEquipmentStockNum;
+
+    /**
+     * 盈亏数
+     */
+    @TableField("profitLossNum")
+    private Long profitLossNum;
+
+    /**
+     * 创建时间
+     */
+    @TableField("createTime")
+    private LocalDateTime createTime;
+}

+ 123 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/data/DriverGoodsLossIntervalDetail.java

@@ -0,0 +1,123 @@
+package com.yr.warehouse.admin.driver.data;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 司机货损区间统计明细表
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-03 15:26:37
+ */
+@Getter
+@Setter
+@TableName("yr_driver_goods_loss_interval_detail")
+public class DriverGoodsLossIntervalDetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 货损区间统计主表id(关联司机货损区间统计主表id)
+     */
+    @TableField("goodsLossMonthlyMainId")
+    private Long goodsLossMonthlyMainId;
+
+    /**
+     * 区域员工关系id
+     */
+    @TableField("areaStaffId")
+    private Long areaStaffId;
+
+    /**
+     * 上次剩余在途库存数
+     */
+    @TableField("lastRemainingOnRouteStock")
+    private Long lastRemainingOnRouteStock;
+
+    /**
+     * 拣货单开单数
+     */
+    @TableField("pickingOrderCreateNum")
+    private Long pickingOrderCreateNum;
+
+    /**
+     * 整件单开单数
+     */
+    @TableField("wholeOrderCreateNum")
+    private Long wholeOrderCreateNum;
+
+    /**
+     * 未出库取消数
+     */
+    @TableField("unshippedCancelNum")
+    private Long unshippedCancelNum;
+
+    /**
+     * 已出库取消数
+     */
+    @TableField("shippedCancelNum")
+    private Long shippedCancelNum;
+
+    /**
+     * 补货数
+     */
+    @TableField("replenishNum")
+    private Long replenishNum;
+
+    /**
+     * 回仓数
+     */
+    @TableField("returnWarehouseNum")
+    private Long returnWarehouseNum;
+
+    /**
+     * 剩余未补货数 - 实际流水值
+     */
+    @TableField("remainingUnReplenishedNum")
+    private Long remainingUnReplenishedNum;
+
+    /**
+     * 在途库存数 - 理论计算值
+     */
+    @TableField("onRouteStock")
+    private Long onRouteStock;
+
+    /**
+     * 是否使用整件核实数 NO 未使用 YES 使用
+     */
+    @TableField("useVerifyNum")
+    private String useVerifyNum;
+
+    /**
+     * 整件核实数
+     */
+    @TableField("wholeVerifyNum")
+    private Long wholeVerifyNum;
+
+    /**
+     * 盈亏数
+     */
+    @TableField("profitLossNum")
+    private Long profitLossNum;
+
+    /**
+     * 创建时间
+     */
+    @TableField("createTime")
+    private LocalDateTime createTime;
+}

+ 177 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/data/DriverGoodsLossIntervalMain.java

@@ -0,0 +1,177 @@
+package com.yr.warehouse.admin.driver.data;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 司机货损区间统计主表
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-03 15:26:37
+ */
+@Getter
+@Setter
+@TableName("yr_driver_goods_loss_interval_main")
+public class DriverGoodsLossIntervalMain implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 区间开始时间(精确到时分秒)
+     */
+    @TableField("intervalStartTime")
+    private LocalDateTime intervalStartTime;
+
+    /**
+     * 区间结束时间(精确到时分秒)
+     */
+    @TableField("intervalEndTime")
+    private LocalDateTime intervalEndTime;
+
+    /**
+     * 运营商id
+     */
+    @TableField("operatorId")
+    private Long operatorId;
+
+    /**
+     * 运营商id链
+     */
+    @TableField("operatorChain")
+    private String operatorChain;
+
+    /**
+     * 仓库id
+     */
+    @TableField("warehouseId")
+    private Long warehouseId;
+
+    /**
+     * 统计类型 SPOT_CHECK 抽查(指定补货员) REGULAR 定期(全部补货员)
+     */
+    @TableField("stockTakingType")
+    private String stockTakingType;
+
+    /**
+     * 拣货单开单数
+     */
+    @TableField("pickingOrderCreateNum")
+    private Long pickingOrderCreateNum;
+
+    /**
+     * 整件单开单数
+     */
+    @TableField("wholeOrderCreateNum")
+    private Long wholeOrderCreateNum;
+
+    /**
+     * 补货数
+     */
+    @TableField("replenishNum")
+    private Long replenishNum;
+
+    /**
+     * 回仓数
+     */
+    @TableField("returnWarehouseNum")
+    private Long returnWarehouseNum;
+
+    /**
+     * 在途库存数
+     */
+    @TableField("onRouteInventoryNum")
+    private Long onRouteInventoryNum;
+
+    /**
+     * 未出库取消数
+     */
+    @TableField("unshippedCancelNum")
+    private Long unshippedCancelNum;
+
+    /**
+     * 已出库取消数
+     */
+    @TableField("shippedCancelNum")
+    private Long shippedCancelNum;
+
+    /**
+     * 未补货数
+     */
+    @TableField("unReplenishedNum")
+    private Long unReplenishedNum;
+
+    /**
+     * 司机盈亏数
+     */
+    @TableField("driverProfitLossNum")
+    private Long driverProfitLossNum;
+
+    /**
+     * 设备盈亏数
+     */
+    @TableField("equipmentProfitLossNum")
+    private Long equipmentProfitLossNum;
+
+    /**
+     * 总盈亏数(建议业务层确保 = 司机盈亏数 + 设备盈亏数)
+     */
+    @TableField("totalProfitLossNum")
+    private Long totalProfitLossNum;
+
+    /**
+     * 创建时间
+     */
+    @TableField("createTime")
+    private LocalDateTime createTime;
+
+    /**
+     * 创建人uid
+     */
+    @TableField("createUid")
+    private Long createUid;
+
+    /**
+     * 创建人名称
+     */
+    @TableField("createName")
+    private String createName;
+
+    /**
+     * 修改时间
+     */
+    @TableField("modifyTime")
+    private LocalDateTime modifyTime;
+
+    /**
+     * 修改人uid
+     */
+    @TableField("modifyUid")
+    private Long modifyUid;
+
+    /**
+     * 修改人名称
+     */
+    @TableField("modifyName")
+    private String modifyName;
+
+    /**
+     * 删除状态:NORMAL:正常|DELETE:删除
+     */
+    @TableField("isDelete")
+    private String isDelete;
+}

+ 124 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/data/DriverGoodsLossRecord.java

@@ -0,0 +1,124 @@
+package com.yr.warehouse.admin.driver.data;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 司机货损记录表
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-03 15:26:37
+ */
+@Getter
+@Setter
+@TableName("yr_driver_goods_loss_record")
+public class DriverGoodsLossRecord implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 运营商id
+     */
+    @TableField("operatorId")
+    private Long operatorId;
+
+    /**
+     * 运营商id链
+     */
+    @TableField("operatorChain")
+    private String operatorChain;
+
+    /**
+     * 区域员工关系id
+     */
+    @TableField("areaStaffId")
+    private Long areaStaffId;
+
+    /**
+     * 统计日期(YYYY-MM-dd)
+     */
+    @TableField("statDate")
+    private LocalDate statDate;
+
+    /**
+     * 昨日在途数
+     */
+    @TableField("yesterdayOnRouteNum")
+    private Long yesterdayOnRouteNum;
+
+    /**
+     * 拣货单开单数
+     */
+    @TableField("pickingOrderCreateNum")
+    private Long pickingOrderCreateNum;
+
+    /**
+     * 整件单开单数
+     */
+    @TableField("wholeOrderCreateNum")
+    private Long wholeOrderCreateNum;
+
+    /**
+     * 未出库取消数
+     */
+    @TableField("unshippedCancelNum")
+    private Long unshippedCancelNum;
+
+    /**
+     * 已出库取消数
+     */
+    @TableField("shippedCancelNum")
+    private Long shippedCancelNum;
+
+    /**
+     * 补货数
+     */
+    @TableField("replenishNum")
+    private Long replenishNum;
+
+    /**
+     * 回仓数
+     */
+    @TableField("returnWarehouseNum")
+    private Long returnWarehouseNum;
+
+    /**
+     * 当日在途数
+     */
+    @TableField("currentOnRouteNum")
+    private Long currentOnRouteNum;
+
+    /**
+     * 核算数
+     */
+    @TableField("verifiedNum")
+    private Long verifiedNum;
+
+    /**
+     * 是否核算 NO 未核算 YES 已核算
+     */
+    @TableField("useVerified")
+    private String useVerified;
+
+    /**
+     * 创建时间
+     */
+    @TableField("createTime")
+    private LocalDateTime createTime;
+}

+ 80 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/data/DriverGoodsLossStatProfitLossDetail.java

@@ -0,0 +1,80 @@
+package com.yr.warehouse.admin.driver.data;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 司机区域货损记录盈亏记录详情
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-31 11:29:29
+ */
+@Getter
+@Setter
+@TableName("yr_driver_goods_loss_stat_profit_loss_detail")
+public class DriverGoodsLossStatProfitLossDetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 货损区间统计主表id(关联司机货损区间统计主表id)
+     */
+    @TableField("goodsLossMonthlyMainId")
+    private Long goodsLossMonthlyMainId;
+
+    /**
+     * 区域员工关系id
+     */
+    @TableField("areaStaffId")
+    private Long areaStaffId;
+
+    /**
+     * 商品id
+     */
+    @TableField("goodsId")
+    private Integer goodsId;
+
+    /**
+     * 在途库存数
+     */
+    @TableField("onRouteInventoryNum")
+    private Long onRouteInventoryNum;
+
+    /**
+     * 未补货数
+     */
+    @TableField("unReplenishedNum")
+    private Long unReplenishedNum;
+
+    /**
+     * 核算数
+     */
+    @TableField("verifiedNum")
+    private Long verifiedNum;
+
+    /**
+     * 盈亏数
+     */
+    @TableField("profitLossNum")
+    private Long profitLossNum;
+
+    /**
+     * 创建时间
+     */
+    @TableField("createTime")
+    private LocalDateTime createTime;
+}

+ 62 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/data/DriverGoodsLossStatUnReplenishSnapshot.java

@@ -0,0 +1,62 @@
+package com.yr.warehouse.admin.driver.data;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 司机区域货损统计未补货补货单快照
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-31 11:29:29
+ */
+@Getter
+@Setter
+@TableName("yr_driver_goods_loss_stat_un_replenish_snapshot")
+public class DriverGoodsLossStatUnReplenishSnapshot implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 货损区间统计主表id(关联司机货损区间统计主表id)
+     */
+    @TableField("goodsLossMonthlyMainId")
+    private Long goodsLossMonthlyMainId;
+
+    /**
+     * 区域员工关系id
+     */
+    @TableField("areaStaffId")
+    private Long areaStaffId;
+
+    /**
+     * 未补货的补货单单号
+     */
+    @TableField("unReplenishOrderNumber")
+    private String unReplenishOrderNumber;
+
+    /**
+     * 未补货数
+     */
+    @TableField("unReplenishedNum")
+    private Long unReplenishedNum;
+
+    /**
+     * 创建时间
+     */
+    @TableField("createTime")
+    private LocalDateTime createTime;
+}

+ 87 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/data/DriverOnRouteAccountRecordDetail.java

@@ -0,0 +1,87 @@
+package com.yr.warehouse.admin.driver.data;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 司机在途核算记录子表
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-03 15:26:37
+ */
+@Getter
+@Setter
+@TableName("yr_driver_on_route_account_record_detail")
+public class DriverOnRouteAccountRecordDetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 司机在途核算记录主表id(关联司机在途核算记录主表id)
+     */
+    @TableField("routeAccountRecordMainId")
+    private Long routeAccountRecordMainId;
+
+    /**
+     * 商品ID
+     */
+    @TableField("goodsId")
+    private Integer goodsId;
+
+    /**
+     * 库存数
+     */
+    @TableField("inventory")
+    private Long inventory;
+
+    /**
+     * 创建时间
+     */
+    @TableField("createTime")
+    private LocalDateTime createTime;
+
+    /**
+     * 创建人uid
+     */
+    @TableField("createUid")
+    private Long createUid;
+
+    /**
+     * 创建人名称
+     */
+    @TableField("createName")
+    private String createName;
+
+    /**
+     * 修改时间
+     */
+    @TableField("modifyTime")
+    private LocalDateTime modifyTime;
+
+    /**
+     * 修改人uid
+     */
+    @TableField("modifyUid")
+    private Long modifyUid;
+
+    /**
+     * 修改人名称
+     */
+    @TableField("modifyName")
+    private String modifyName;
+}

+ 124 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/data/DriverOnRouteAccountRecordMain.java

@@ -0,0 +1,124 @@
+package com.yr.warehouse.admin.driver.data;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 司机在途核算记录主表
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-03 15:26:37
+ */
+@Getter
+@Setter
+@TableName("yr_driver_on_route_account_record_main")
+public class DriverOnRouteAccountRecordMain implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 运营商id
+     */
+    @TableField("operatorId")
+    private Long operatorId;
+
+    /**
+     * 运营商id链
+     */
+    @TableField("operatorChain")
+    private String operatorChain;
+
+    /**
+     * 区域员工关系id
+     */
+    @TableField("areaStaffId")
+    private Long areaStaffId;
+
+    /**
+     * 仓库ID
+     */
+    @TableField("warehouseId")
+    private Long warehouseId;
+
+    /**
+     * 统计日期(YYYY-MM-dd)
+     */
+    @TableField("statDate")
+    private LocalDate statDate;
+
+    /**
+     * 货损区间统计主表id(关联司机货损区间统计主表id - 核算后绑定)
+     */
+    @TableField("goodsLossMonthlyMainId")
+    private Long goodsLossMonthlyMainId;
+
+    /**
+     * 统计总数
+     */
+    @TableField("statTotalNum")
+    private Long statTotalNum;
+
+    /**
+     * 状态 UN_VERIFIED 未核算 VERIFIED 已核算 CANCEL 已取消
+     */
+    @TableField("status")
+    private String status;
+
+    /**
+     * 创建时间
+     */
+    @TableField("createTime")
+    private LocalDateTime createTime;
+
+    /**
+     * 创建人uid
+     */
+    @TableField("createUid")
+    private Long createUid;
+
+    /**
+     * 创建人名称
+     */
+    @TableField("createName")
+    private String createName;
+
+    /**
+     * 修改时间
+     */
+    @TableField("modifyTime")
+    private LocalDateTime modifyTime;
+
+    /**
+     * 修改人uid
+     */
+    @TableField("modifyUid")
+    private Long modifyUid;
+
+    /**
+     * 修改人名称
+     */
+    @TableField("modifyName")
+    private String modifyName;
+
+    /**
+     * 删除状态:NORMAL:正常|DELETE:删除
+     */
+    @TableField("isDelete")
+    private String isDelete;
+}

+ 124 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/data/DriverOnRouteDetailLog.java

@@ -0,0 +1,124 @@
+package com.yr.warehouse.admin.driver.data;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 司机在途明细日志表
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-03 15:26:38
+ */
+@Getter
+@Setter
+@TableName("yr_driver_on_route_detail_log")
+public class DriverOnRouteDetailLog implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 运营商id
+     */
+    @TableField("operatorId")
+    private Long operatorId;
+
+    /**
+     * 运营商id链
+     */
+    @TableField("operatorChain")
+    private String operatorChain;
+
+    /**
+     * 区域员工关系id
+     */
+    @TableField("areaStaffId")
+    private Long areaStaffId;
+
+    /**
+     * 统计日期(YYYY-MM-dd)
+     */
+    @TableField("statDate")
+    private LocalDate statDate;
+
+    /**
+     * 货损记录id(关联货损记录表id)
+     */
+    @TableField("goodsLossRecordId")
+    private Long goodsLossRecordId;
+
+    /**
+     * 商品ID
+     */
+    @TableField("goodsId")
+    private Integer goodsId;
+
+    /**
+     * 开单数
+     */
+    @TableField("createNum")
+    private Long createNum;
+
+    /**
+     * 未出库取消数
+     */
+    @TableField("unshippedCancelNum")
+    private Long unshippedCancelNum;
+
+    /**
+     * 已出库取消数
+     */
+    @TableField("shippedCancelNum")
+    private Long shippedCancelNum;
+
+    /**
+     * 补货数
+     */
+    @TableField("replenishNum")
+    private Long replenishNum;
+
+    /**
+     * 回仓数
+     */
+    @TableField("returnWarehouseNum")
+    private Long returnWarehouseNum;
+
+    /**
+     * 昨日库存数
+     */
+    @TableField("yesterdayStockNum")
+    private Long yesterdayStockNum;
+
+    /**
+     * 今日库存数
+     */
+    @TableField("todayStockNum")
+    private Long todayStockNum;
+
+    /**
+     * 盈亏数
+     */
+    @TableField("profitLossNum")
+    private Long profitLossNum;
+
+    /**
+     * 创建时间
+     */
+    @TableField("createTime")
+    private LocalDateTime createTime;
+}

+ 87 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/data/EquipmentLossIntervalDetail.java

@@ -0,0 +1,87 @@
+package com.yr.warehouse.admin.driver.data;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 设备货损区间统计明细表
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-03 15:26:38
+ */
+@Getter
+@Setter
+@TableName("yr_equipment_loss_interval_detail")
+public class EquipmentLossIntervalDetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 货损区间统计主表id(关联司机货损区间统计主表id)
+     */
+    @TableField("goodsLossMonthlyMainId")
+    private Long goodsLossMonthlyMainId;
+
+    /**
+     * 区域员工关系id
+     */
+    @TableField("areaStaffId")
+    private Long areaStaffId;
+
+    /**
+     * 上次剩余设备库存
+     */
+    @TableField("lastRemainingEquipmentStock")
+    private Long lastRemainingEquipmentStock;
+
+    /**
+     * 总补货数
+     */
+    @TableField("totalReplenishNum")
+    private Long totalReplenishNum;
+
+    /**
+     * 设备销量
+     */
+    @TableField("equipmentSalesNum")
+    private Long equipmentSalesNum;
+
+    /**
+     * 理论库存数
+     */
+    @TableField("theoreticalStockNum")
+    private Long theoreticalStockNum;
+
+    /**
+     * 实际库存数
+     */
+    @TableField("actualStockNum")
+    private Long actualStockNum;
+
+    /**
+     * 盈亏数
+     */
+    @TableField("profitLossNum")
+    private Long profitLossNum;
+
+    /**
+     * 创建时间
+     */
+    @TableField("createTime")
+    private LocalDateTime createTime;
+}

+ 18 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/face/AreaStaffNameSearchFace.java

@@ -0,0 +1,18 @@
+package com.yr.warehouse.admin.driver.face;
+
+import java.util.List;
+
+/**
+ * 区域员工名称查询Face
+ */
+public interface AreaStaffNameSearchFace {
+
+    Long getAdminOperatorId();
+
+    Long getOperatorId();
+
+    String getAreaStaffName();
+
+    void setAreaStaffIds(List<Long> areaStaffIds);
+
+}

+ 15 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/face/DriverIntervalCargoDamageDetailSearchFace.java

@@ -0,0 +1,15 @@
+package com.yr.warehouse.admin.driver.face;
+
+import java.util.List;
+
+/**
+ * 区间货损详情查询Face
+ */
+public interface DriverIntervalCargoDamageDetailSearchFace {
+
+    Long getGoodsLossMonthlyMainId();
+
+    String getAreaStaffName();
+
+    void setAreaStaffIds(List<Long> areaStaffIds);
+}

+ 34 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/mapper/DriverDeviceStockSnapshotMapper.java

@@ -0,0 +1,34 @@
+package com.yr.warehouse.admin.driver.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yr.warehouse.admin.driver.data.DriverDeviceStockSnapshot;
+import com.yr.warehouse.admin.replenish.vo.DriverGoodsOrderNumVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ * 司机设备库存快照 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-04 15:21:10
+ */
+public interface DriverDeviceStockSnapshotMapper extends BaseMapper<DriverDeviceStockSnapshot> {
+
+    /**
+     * 获取司机设备库存数
+     * @return 司机设备库存数
+     */
+    List<DriverDeviceStockSnapshot> queryDriverDeviceInventoryNum(@Param("beginTime") LocalDateTime beginTime, @Param("endTime") LocalDateTime endTime);
+
+    /**
+     * 批量插入司机设备库存数
+     * @param beginTime 开始时间
+     * @param endTime 结束时间
+     * @param deviceInventoryNumVos 司机设备库存数
+     */
+    void insertBatch(@Param("beginTime") LocalDateTime beginTime, @Param("endTime") LocalDateTime endTime, @Param("deviceInventoryNumVos") List<DriverGoodsOrderNumVo> deviceInventoryNumVos);
+}

+ 47 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/mapper/DriverEquipmentLossRecordMapper.java

@@ -0,0 +1,47 @@
+package com.yr.warehouse.admin.driver.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yr.warehouse.admin.driver.bo.DriverIntervalCargoDamageGeneratorBo;
+import com.yr.warehouse.admin.driver.data.DriverEquipmentLossRecord;
+import org.apache.ibatis.annotations.Param;
+
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * <p>
+ * 司机设备货损记录表 Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2025-12-03 15:26:37
+ */
+public interface DriverEquipmentLossRecordMapper extends BaseMapper<DriverEquipmentLossRecord> {
+
+    /**
+     * 批量插入
+     * @param driverEquipmentLossRecords
+     */
+    void insertBatch(@Param("driverEquipmentLossRecords") List<DriverEquipmentLossRecord> driverEquipmentLossRecords);
+
+    /**
+     * 按统计日期查询
+     * @param statDate 统计日期
+     * @return
+     */
+    List<DriverEquipmentLossRecord> searchByStatDate(@Param("statDate") LocalDate statDate);
+
+    /**
+     * 按参数查询
+     * @param bo 查询参数
+     * @return 查询结果
+     */
+    List<DriverEquipmentLossRecord> searchGeneratorParam(@Param("bo") DriverIntervalCargoDamageGeneratorBo bo);
+
+    /**
+     * 删除旧数据
+     * @param operatorId 运营商id
+     * @param statDate 统计日期
+     */
+    void deleteOld(@Param("operatorId") Long operatorId, @Param("statDate") LocalDate statDate);
+}

+ 46 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/mapper/DriverGoodsLossIntervalDetailMapper.java

@@ -0,0 +1,46 @@
+package com.yr.warehouse.admin.driver.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yr.warehouse.admin.driver.bo.DriverIntervalCargoDamageDetailPageBo;
+import com.yr.warehouse.admin.driver.data.DriverGoodsLossIntervalDetail;
+import com.yr.warehouse.admin.driver.vo.DriverIntervalCargoDamageDetailVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 司机货损区间统计明细表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-03 15:26:37
+ */
+public interface DriverGoodsLossIntervalDetailMapper extends BaseMapper<DriverGoodsLossIntervalDetail> {
+
+    /**
+     * 区间生成统计记录详情分页查询
+     *
+     * @param page 分页参数
+     * @param bo 查询参数
+     * @return 列表
+     */
+    Page<DriverIntervalCargoDamageDetailVo> searchForPage(@Param("page") Page<DriverIntervalCargoDamageDetailVo> page, @Param("bo") DriverIntervalCargoDamageDetailPageBo bo);
+
+    /**
+     * 批量写入区间统计记录
+     * @param driverGoodsLossIntervalDetails 区间统计记录
+     */
+    void insertBatch(@Param("goodsLossMonthlyMainId") Long goodsLossMonthlyMainId, @Param("driverGoodsLossIntervalDetails") List<DriverGoodsLossIntervalDetail> driverGoodsLossIntervalDetails);
+
+    /**
+     * 根据区间统计记录主键查询区间统计记录
+     * @param goodsLossMonthlyMainId 区间统计记录主键
+     * @param areaStaffIds 区域员工ids
+     * @return 区间统计记录
+     */
+    List<DriverGoodsLossIntervalDetail> selectByMainIdAndAreaStaffId(@Param("goodsLossMonthlyMainId") Long goodsLossMonthlyMainId, @Param("areaStaffIds") List<Long> areaStaffIds);
+
+
+}

+ 47 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/mapper/DriverGoodsLossIntervalMainMapper.java

@@ -0,0 +1,47 @@
+package com.yr.warehouse.admin.driver.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yr.warehouse.admin.driver.bo.DriverIntervalCargoDamagePageBo;
+import com.yr.warehouse.admin.driver.data.DriverGoodsLossIntervalMain;
+import com.yr.warehouse.admin.driver.vo.DriverIntervalCargoDamageVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 司机货损区间统计主表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-03 15:26:37
+ */
+public interface DriverGoodsLossIntervalMainMapper extends BaseMapper<DriverGoodsLossIntervalMain> {
+
+    /**
+     * 查询运营商对应的区间货损最后统计时间
+     * @param warehouseId 仓库id
+     * @return
+     */
+    LocalDateTime searchLastTotalTime(@Param("warehouseId") Long warehouseId);
+
+    /**
+     * 分页查询区间生成统计记录
+     * @param page
+     * @param bo
+     * @return
+     */
+    Page<DriverIntervalCargoDamageVo> searchForPage(@Param("page") Page<DriverIntervalCargoDamageVo> page, @Param("bo") DriverIntervalCargoDamagePageBo bo);
+
+    /**
+     * 查询指定运营商最后生成统计记录
+     * @param operatorId 运营商id
+     * @param warehouseId 仓库id
+     * @param intervalStartDate 区间开始时间
+     * @return 司机货损统计记录
+     */
+    DriverGoodsLossIntervalMain queryLastByOperatorId(@Param("operatorId") Long operatorId, @Param("warehouseId") Long warehouseId, @Param("intervalStartDate") LocalDate intervalStartDate);
+
+}

+ 64 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/mapper/DriverGoodsLossRecordMapper.java

@@ -0,0 +1,64 @@
+package com.yr.warehouse.admin.driver.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yr.warehouse.admin.driver.bo.DriverDailyCargoDamagePageBo;
+import com.yr.warehouse.admin.driver.bo.DriverIntervalCargoDamageGeneratorBo;
+import com.yr.warehouse.admin.driver.data.DriverGoodsLossRecord;
+import com.yr.warehouse.admin.driver.vo.DriverGoodsLossRecordVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * <p>
+ * 司机货损记录表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-03 15:26:37
+ */
+public interface DriverGoodsLossRecordMapper extends BaseMapper<DriverGoodsLossRecord> {
+
+    /**
+     * 批量插入
+     * @param driverGoodsLossRecords
+     */
+    void insertBatch(@Param("driverGoodsLossRecords") List<DriverGoodsLossRecord> driverGoodsLossRecords);
+
+    /**
+     * 查询司机货损记录
+     * @param statDate 统计日期
+     * @return 司机货损记录
+     */
+    List<DriverGoodsLossRecord> searchByStatDate(@Param("statDate") LocalDate statDate);
+
+    /**
+     * 分页查询司机货损记录
+     * @param page 分页参数
+     * @param bo 查询参数
+     * @return 司机货损记录
+     */
+    Page<DriverGoodsLossRecordVo> searchForPage(@Param("page") Page<DriverGoodsLossRecordVo> page, @Param("bo") DriverDailyCargoDamagePageBo bo);
+
+    /**
+     * 查询司机货损统计参数
+     * @param bo 查询参数
+     */
+    List<DriverGoodsLossRecord> searchGeneratorParam(@Param("bo") DriverIntervalCargoDamageGeneratorBo bo);
+
+    /**
+     * 删除旧数据
+     * @param statDate 统计日期
+     */
+    void deleteOld(@Param("operatorId") Long operatorId, @Param("statDate") LocalDate statDate);
+
+    /**
+     * 根据区域员工id和统计日期查询
+     * @param areaStaffId 区域员工id
+     * @param statDate 统计日期
+     * @return 司机货损记录
+     */
+    DriverGoodsLossRecord selectByAreaStaffIdAdStatDate(@Param("areaStaffId") Long areaStaffId, @Param("statDate") LocalDate statDate);
+}

+ 38 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/mapper/DriverGoodsLossStatProfitLossDetailMapper.java

@@ -0,0 +1,38 @@
+package com.yr.warehouse.admin.driver.mapper;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yr.warehouse.admin.driver.bo.DriverIntervalCargoDamageGoodsLossStatProfitPageBo;
+import com.yr.warehouse.admin.driver.data.DriverGoodsLossStatProfitLossDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yr.warehouse.admin.driver.vo.DriverIntervalCargoDamageGoodsLossStatProfitPageVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 司机区域货损记录盈亏记录详情 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-31 10:42:36
+ */
+public interface DriverGoodsLossStatProfitLossDetailMapper extends BaseMapper<DriverGoodsLossStatProfitLossDetail> {
+
+    /**
+     * 批量插入
+     *
+     * @param goodsLossMonthlyMainId 货损区间统计主表id(关联司机货损区间统计主表id)
+     * @param driverGoodsLossStatProfitLossDetails 批量插入数据
+     */
+    void insertBatch(@Param("goodsLossMonthlyMainId") Long goodsLossMonthlyMainId, @Param("driverGoodsLossStatProfitLossDetails") List<DriverGoodsLossStatProfitLossDetail> driverGoodsLossStatProfitLossDetails);
+
+    /**
+     * 货损区间统计详情分页查询
+     *
+     * @param page 分页参数
+     * @param bo   查询参数
+     * @return 货损区间统计详情分页数据
+     */
+    Page<DriverIntervalCargoDamageGoodsLossStatProfitPageVo> searchPage(@Param("page") Page<DriverGoodsLossStatProfitLossDetail> page, @Param("bo") DriverIntervalCargoDamageGoodsLossStatProfitPageBo bo);
+}

+ 48 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/mapper/DriverGoodsLossStatUnReplenishSnapshotMapper.java

@@ -0,0 +1,48 @@
+package com.yr.warehouse.admin.driver.mapper;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yr.warehouse.admin.driver.bo.DriverIntervalCargoDamageUnReplenishOrderPageBo;
+import com.yr.warehouse.admin.driver.data.DriverGoodsLossStatUnReplenishSnapshot;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yr.warehouse.admin.driver.vo.DriverIntervalCargoDamageUnReplenishOrderPageVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ * 司机区域货损统计未补货补货单快照 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-31 10:42:36
+ */
+public interface DriverGoodsLossStatUnReplenishSnapshotMapper extends BaseMapper<DriverGoodsLossStatUnReplenishSnapshot> {
+
+    /**
+     * 批量插入
+     * @param goodsLossMonthlyMainId 货损区间统计主表id(关联司机货损区间统计主表id)
+     * @param driverGoodsLossStatUnReplenishSnapshots 司机区域货损统计未补货补货单快照
+     */
+    void insertBatch(@Param("goodsLossMonthlyMainId") Long goodsLossMonthlyMainId, @Param("driverGoodsLossStatUnReplenishSnapshots") List<DriverGoodsLossStatUnReplenishSnapshot> driverGoodsLossStatUnReplenishSnapshots);
+
+    /**
+     * 查询未补货的补货单
+     *
+     * @param areaStaffIds 区域员工id
+     * @param intervalStartTime 开始时间
+     * @param intervalEndTime 结束时间
+     * @return 未补货的补货单
+     */
+    List<DriverGoodsLossStatUnReplenishSnapshot> searchDriverGoodsLossStatUnReplenishSnapshot(@Param("areaStaffIds") List<Long> areaStaffIds, @Param("intervalStartTime") LocalDateTime intervalStartTime, @Param("intervalEndTime") LocalDateTime intervalEndTime);
+
+    /**
+     * 查询司机货损区间统计未补货的补货单快照
+     *
+     * @param page 分页参数
+     * @param bo 查询参数
+     * @return 司机货损区间统计未补货的补货单
+     */
+    Page<DriverIntervalCargoDamageUnReplenishOrderPageVo> searchPage(@Param("page") Page<DriverIntervalCargoDamageUnReplenishOrderPageVo> page, @Param("bo") DriverIntervalCargoDamageUnReplenishOrderPageBo bo);
+}

+ 55 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/mapper/DriverOnRouteAccountRecordDetailMapper.java

@@ -0,0 +1,55 @@
+package com.yr.warehouse.admin.driver.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yr.warehouse.admin.common.bo.BaseIdBo;
+import com.yr.warehouse.admin.driver.bo.DriverIntervalRouteAccountRecordCreateBo;
+import com.yr.warehouse.admin.driver.bo.DriverIntervalRouteAccountRecordEditorBo;
+import com.yr.warehouse.admin.driver.bo.RouteAccountRecordDetailBo;
+import com.yr.warehouse.admin.driver.data.DriverOnRouteAccountRecordDetail;
+import com.yr.warehouse.admin.driver.vo.DriverRouteAccountRecordDetailVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 司机在途核算记录子表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-03 15:26:37
+ */
+public interface DriverOnRouteAccountRecordDetailMapper extends BaseMapper<DriverOnRouteAccountRecordDetail> {
+
+    /**
+     * 添加司机在途核算记录子表
+     * @param bo 添加司机在途核算记录子表参数
+     */
+    void create(@Param("bo") DriverIntervalRouteAccountRecordCreateBo bo);
+
+    /**
+     * 根据司机在途核算记录主表ID查询司机在途核算记录子表
+     * @param bo 查询司机在途核算记录子表参数
+     * @return 司机在途核算记录子表列表
+     */
+    List<DriverRouteAccountRecordDetailVo> searchByParam(@Param("bo") RouteAccountRecordDetailBo bo);
+
+    /**
+     * 根据司机在途核算记录主表ID删除司机在途核算记录子表
+     * @param routeAccountRecordMainId 司机在途核算记录主表ID
+     */
+    void deleteByRouteAccountRecordMainId(@Param("routeAccountRecordMainId") Long routeAccountRecordMainId);
+
+    /**
+     * 编辑司机在途核算记录子表
+     * @param bo 编辑司机在途核算记录子表参数
+     */
+    void editorCreate(@Param("bo") DriverIntervalRouteAccountRecordEditorBo bo);
+
+    /**
+     * 根据司机在途核算记录主表ID查询司机在途核算记录子表
+     * @param routeAccountRecordMainIds 司机在途核算记录主表ID列表
+     * @return 司机在途核算记录子表列表
+     */
+    List<DriverOnRouteAccountRecordDetail> selectByRouteAccountRecordMainId(@Param("routeAccountRecordMainIds") List<Long> routeAccountRecordMainIds);
+}

+ 73 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/mapper/DriverOnRouteAccountRecordMainMapper.java

@@ -0,0 +1,73 @@
+package com.yr.warehouse.admin.driver.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yr.bluecat.common.entity.bo.BaseBo;
+import com.yr.warehouse.admin.common.bo.BaseIdBo;
+import com.yr.warehouse.admin.driver.bo.DriverIntervalRouteAccountRecordCreateBo;
+import com.yr.warehouse.admin.driver.bo.DriverIntervalRouteAccountRecordEditorBo;
+import com.yr.warehouse.admin.driver.bo.DriverRouteAccountRecordPageBo;
+import com.yr.warehouse.admin.driver.data.DriverOnRouteAccountRecordMain;
+import com.yr.warehouse.admin.driver.vo.DriverRouteAccountRecordMainVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * <p>
+ * 司机在途核算记录主表 Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2025-12-03 15:26:37
+ */
+public interface DriverOnRouteAccountRecordMainMapper extends BaseMapper<DriverOnRouteAccountRecordMain> {
+
+    /**
+     * 添加司机在途核算记录
+     *
+     * @param bo 创建参数
+     */
+    void create(@Param("bo") DriverIntervalRouteAccountRecordCreateBo bo);
+
+    /**
+     * 取消司机在途核算记录
+     *
+     * @param bo 取消参数
+     */
+    int cancel(@Param("bo") BaseIdBo bo);
+
+    /**
+     * 搜索司机在途核算记录
+     *
+     * @param page 分页参数
+     * @param bo   搜索参数
+     * @return 结果
+     */
+    Page<DriverRouteAccountRecordMainVo> searchForPage(@Param("page") Page<DriverRouteAccountRecordMainVo> page, @Param("bo") DriverRouteAccountRecordPageBo bo);
+
+    /**
+     * 编辑司机在途核算记录
+     *
+     * @param bo 编辑参数
+     */
+    void edit(@Param("bo") DriverIntervalRouteAccountRecordEditorBo bo);
+
+    /**
+     * 查询未核算的司机在途核算记录
+     *
+     * @param areaStaffIds 区域员工id
+     * @return 结果
+     */
+    List<DriverOnRouteAccountRecordMain> selectUnVerified(@Param("areaStaffIds") List<Long> areaStaffIds, @Param("beginStatDate") LocalDate beginStatDate, @Param("endStatDate") LocalDate endStatDate);
+
+    /**
+     * 批量绑定司机在途核算记录
+     *
+     * @param bo 用户参数
+     * @param ids 使用的司机在途核算记录id
+     * @param goodsLossMonthlyMainId 货损区间统计主表id
+     */
+    void batchBind(@Param("bo") BaseBo bo, @Param("ids") List<Long> ids, @Param("goodsLossMonthlyMainId") Long goodsLossMonthlyMainId);
+}

+ 51 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/mapper/DriverOnRouteDetailLogMapper.java

@@ -0,0 +1,51 @@
+package com.yr.warehouse.admin.driver.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yr.warehouse.admin.driver.bo.DriverRouteDetailPageBo;
+import com.yr.warehouse.admin.driver.data.DriverOnRouteDetailLog;
+import com.yr.warehouse.admin.driver.vo.DriverRouteDetailVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * <p>
+ * 司机在途明细日志表 Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2025-12-03 15:26:38
+ */
+public interface DriverOnRouteDetailLogMapper extends BaseMapper<DriverOnRouteDetailLog> {
+
+    /**
+     * 批量插入
+     * @param driverOnRouteDetailLogs 批量插入数据
+     */
+    void insertBatch(@Param("driverOnRouteDetailLogs") List<DriverOnRouteDetailLog> driverOnRouteDetailLogs);
+
+    /**
+     * 按统计日期查询
+     * @param areaStaffIds 补货司机ids
+     * @param statDate 统计日期
+     * @return
+     */
+    List<DriverOnRouteDetailLog> searchByStatDate(@Param("areaStaffIds") List<Long> areaStaffIds, @Param("statDate") LocalDate statDate);
+
+    /**
+     * 分页查询
+     * @param page 分页参数
+     * @param bo 查询参数
+     * @return 列表
+     */
+    Page<DriverRouteDetailVo> searchForPage(@Param("page") Page<DriverRouteDetailVo> page, @Param("bo") DriverRouteDetailPageBo bo);
+
+    /**
+     * 删除旧数据
+     * @param operatorId 运营商id
+     * @param statDate 统计日期
+     */
+    void deleteOld(@Param("operatorId") Long operatorId, @Param("statDate") LocalDate statDate);
+}

+ 32 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/mapper/EquipmentLossIntervalDetailMapper.java

@@ -0,0 +1,32 @@
+package com.yr.warehouse.admin.driver.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yr.warehouse.admin.driver.data.EquipmentLossIntervalDetail;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 设备货损区间统计明细表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-03 15:26:38
+ */
+public interface EquipmentLossIntervalDetailMapper extends BaseMapper<EquipmentLossIntervalDetail> {
+
+    /**
+     * 批量插入
+     * @param equipmentLossIntervalDetails 设备货损区间统计明细
+     */
+    void insertBatch(@Param("goodsLossMonthlyMainId") Long goodsLossMonthlyMainId, @Param("equipmentLossIntervalDetails") List<EquipmentLossIntervalDetail> equipmentLossIntervalDetails);
+
+    /**
+     * 根据设备货损区间统计主表id查询
+     * @param goodsLossMonthlyMainId 设备货损区间统计主表id
+     * @param areaStaffIds 区域员工id
+     * @return 设备货损区间统计明细
+     */
+    List<EquipmentLossIntervalDetail> selectByMainIdAndAreaStaffId(@Param("goodsLossMonthlyMainId") Long goodsLossMonthlyMainId, @Param("areaStaffIds") List<Long> areaStaffIds);
+}

+ 20 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/menu/DriverGoodsLossIntervalStockTakingType.java

@@ -0,0 +1,20 @@
+package com.yr.warehouse.admin.driver.menu;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 区间货损库存盘点类型
+ */
+@AllArgsConstructor
+@Getter
+public enum DriverGoodsLossIntervalStockTakingType {
+
+    SPOT_CHECK("抽查"),
+    REGULAR("定期");
+
+    private final String desc;
+
+
+
+}

+ 37 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/menu/DriverOnRouteAccountRecordStatusEnum.java

@@ -0,0 +1,37 @@
+package com.yr.warehouse.admin.driver.menu;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 司机在途核算记录状态枚举
+ */
+@AllArgsConstructor
+@Getter
+public enum DriverOnRouteAccountRecordStatusEnum {
+    UN_VERIFIED("未核算"),
+    VERIFIED("已核算"),
+    CANCEL("已取消");
+
+    private final String desc;
+
+    /**
+     * 是否可取消
+     * 仅处于未核算状态的记录可取消
+     *
+     * @param status 状态
+     * @return 是否可取消
+     */
+    public static boolean isCancelable(String status) {
+        return UN_VERIFIED.name().equals(status);
+    }
+
+    public static String getDesc(String status) {
+        for (DriverOnRouteAccountRecordStatusEnum value : values()) {
+            if (value.name().equals(status)) {
+                return value.getDesc();
+            }
+        }
+        return "";
+    }
+}

+ 41 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/vo/DriverGoodsLossIntervalVo.java

@@ -0,0 +1,41 @@
+package com.yr.warehouse.admin.driver.vo;
+
+import com.yr.warehouse.admin.driver.data.DriverGoodsLossIntervalDetail;
+import com.yr.warehouse.admin.driver.data.DriverGoodsLossStatProfitLossDetail;
+import com.yr.warehouse.admin.driver.data.EquipmentLossIntervalDetail;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 司机货损区间统计视图
+ */
+@Data
+public class DriverGoodsLossIntervalVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 司机货损区间统计数据
+     */
+    private DriverGoodsLossIntervalDetail driverGoodsLossIntervalDetail;
+
+    /**
+     * 设备货损区间统计数据
+     */
+    private EquipmentLossIntervalDetail equipmentLossIntervalDetail;
+
+    /**
+     * 司机货损盈亏明细数据
+     */
+    private List<DriverGoodsLossStatProfitLossDetail> driverGoodsLossStatProfitLossDetails;
+
+    /**
+     * 使用司机货损区间核算id
+     */
+    private Long useDriverOnRouteAccountRecordMainId;
+
+}

+ 140 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/vo/DriverGoodsLossRecordVo.java

@@ -0,0 +1,140 @@
+package com.yr.warehouse.admin.driver.vo;
+
+import com.yr.warehouse.admin.areastaff.fase.AreaStaffIdFace;
+import com.yr.warehouse.admin.operator.face.OperatorNameFace;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDate;
+
+/**
+ * 货损记录vo
+ */
+@Data
+public class DriverGoodsLossRecordVo implements OperatorNameFace, AreaStaffIdFace, Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 货损记录id
+     */
+    private Long id;
+
+    /**
+     * 运营商id
+     */
+    private Long operatorId;
+
+    /**
+     * 运营商id链
+     */
+    private String operatorChain;
+
+    /**
+     * 运营商名称
+     */
+    private String operatorName;
+
+    /**
+     * 运营商名称链
+     */
+    private String operatorChainName;
+
+    /**
+     * 统计日期
+     */
+    private LocalDate statDate;
+
+    /**
+     * 区域员工id
+     */
+    private Long areaStaffId;
+
+    /**
+     * 区域员工名称
+     */
+    private String areaStaffName;
+
+    /**
+     * 区域线路名称
+     */
+    private String areaChainName;
+
+    /**
+     * 昨日在途数量
+     */
+    private Long yesterdayOnRouteNum;
+
+    /**
+     * 今日拣货单开单数
+     */
+    private Long pickingOrderCreateNum;
+
+    /**
+     * 今日整件单开单数
+     */
+    private Long wholeOrderCreateNum;
+
+    /**
+     * 今日取消总数 (未出库) - 页面展示这个*
+     */
+    private Long unshippedCancelNum;
+
+    /**
+     * 今日取消总数 (已出库) - 页面不展示这个*
+     */
+    private Long shippedCancelNum;
+
+    /**
+     * 今日补货总量
+     */
+    private Long replenishNum;
+
+    /**
+     * 今日回仓总量
+     */
+    private Long returnWarehouseNum;
+
+    /**
+     * 今日在途库存数
+     */
+    private Long currentOnRouteNum;
+
+    /**
+     * 核算数
+     */
+    private Long verifiedNum;
+
+    /**
+     * 是否核算 YES 是 NO 否
+     */
+    private String useVerified;
+
+    /**
+     * 昨日设备库存
+     */
+    private Long equipmentStockNum;
+
+    /**
+     * 今日补货总数
+     */
+    private Long equipmentReplenishNum;
+
+    /**
+     * 今日销量
+     */
+    private Long equipmentSalesNum;
+
+    /**
+     * 今日设备库存数
+     */
+    private Long theoreticalEquipmentStockNum;
+
+    /**
+     * 今日设备实库存数
+     */
+    private Long actualEquipmentStockNum;
+
+}

+ 128 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/vo/DriverIntervalCargoDamageDetailVo.java

@@ -0,0 +1,128 @@
+package com.yr.warehouse.admin.driver.vo;
+
+import com.yr.warehouse.admin.areastaff.fase.AreaStaffIdFace;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 区间生成统计记录详情
+ */
+@Data
+public class DriverIntervalCargoDamageDetailVo implements AreaStaffIdFace, Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 司机id
+     */
+    private Long areaStaffId;
+
+    /**
+     * 司机名称
+     */
+    private String areaStaffName;
+
+    /**
+     * 区域线路名称
+     */
+    private String areaChainName;
+
+    /**
+     * 上次剩余在途库存数
+     */
+    private Long lastRemainingOnRouteStock;
+
+    /**
+     * 本次拣货开单数
+     */
+    private Long pickingOrderCreateNum;
+
+    /**
+     * 本次整件开单数
+     */
+    private Long wholeOrderCreateNum;
+
+    /**
+     * 本次已取消数(未出库) - 页面展示这个*
+     */
+    private Long unshippedCancelNum;
+
+    /**
+     * 本次已取消数(已出库) - 页面不展示这个*
+     */
+    private Long shippedCancelNum;
+
+    /**
+     * 本次补货总数
+     */
+    private Long replenishNum;
+
+    /**
+     * 本次回仓总数
+     */
+    private Long returnWarehouseNum;
+
+    /**
+     * 本次未补货数 - 理论计算值
+     */
+    private Long remainingUnReplenishedNum;
+
+    /**
+     * 本次在途库存数 - 实际流水值
+     */
+    private Long onRouteStock;
+
+    /**
+     * 是否使用整件核实数 NO 未使用 YES 使用
+     */
+    private String useVerifyNum;
+
+    /**
+     * 整件核实数
+     */
+    private Long wholeVerifyNum;
+
+    /**
+     * 司机盈亏数
+     */
+    private Long profitLossNum;
+
+    /**
+     * 设备-上次剩余设备库存
+     */
+    private Long lastRemainingEquipmentStock;
+
+    /**
+     * 设备-本次总补货数
+     */
+    private Long totalReplenishNum;
+
+    /**
+     * 设备-本次设备销售数
+     */
+    private Long equipmentSalesNum;
+
+    /**
+     * 设备-理论设备库存
+     */
+    private Long theoreticalStockNum;
+
+    /**
+     * 设备-实际设备库存
+     */
+    private Long actualStockNum;
+
+    /**
+     * 设备-设备盈亏数
+     */
+    private Long equipmentProfitLossNum;
+
+    /**
+     * 总盈亏数
+     */
+    private Long totalProfitLoss;
+
+}

+ 77 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/vo/DriverIntervalCargoDamageGoodsLossStatProfitPageVo.java

@@ -0,0 +1,77 @@
+package com.yr.warehouse.admin.driver.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 司机区间货损记录盈亏明细分页结果vo
+ */
+@Data
+public class DriverIntervalCargoDamageGoodsLossStatProfitPageVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 司机区域货损盈亏记录id
+     */
+    private Long id;
+
+    /**
+     * 商品id
+     */
+    private Integer goodsId;
+
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+
+    /**
+     * 商品编号
+     */
+    private String goodsCode;
+
+    /**
+     * 商品图片
+     */
+    private String goodsImg;
+
+    /**
+     * 商品分类-名称
+     */
+    private String classifyName;
+
+    /**
+     * 商品品牌-名称
+     */
+    private String brandName;
+
+    /**
+     * 商品规格
+     */
+    private String goodsSpec;
+
+    /**
+     * 在途库存数
+     */
+    private Long onRouteInventoryNum;
+
+    /**
+     * 未补货数
+     */
+    private Long unReplenishedNum;
+
+    /**
+     * 核算数
+     */
+    private Long verifiedNum;
+
+    /**
+     * 盈亏数
+     */
+    private Long profitLossNum;
+
+}

+ 95 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/vo/DriverIntervalCargoDamageUnReplenishOrderPageVo.java

@@ -0,0 +1,95 @@
+package com.yr.warehouse.admin.driver.vo;
+
+import com.yr.warehouse.admin.areastaff.fase.AreaStaffIdFace;
+import com.yr.warehouse.admin.operator.face.OperatorNameFace;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 司机在途区间货损记录未补货的补货单分页Vo
+ */
+@Data
+public class DriverIntervalCargoDamageUnReplenishOrderPageVo implements Serializable, OperatorNameFace, AreaStaffIdFace {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 司机区域货损统计未补货补货单快照 id
+     */
+    private Long id;
+
+    /**
+     * 补货单单号
+     */
+    private String orderNumber;
+
+    /**
+     * 运营商id
+     */
+    private Long operatorId;
+
+    /**
+     * 运营商名称
+     */
+    private String operatorName;
+
+    /**
+     * 运营商链
+     */
+    private String operatorChain;
+
+    /**
+     * 运营商名称链
+     */
+    private String operatorChainName;
+
+    /**
+     * 设备编号
+     */
+    private String deviceNumber;
+
+    /**
+     * 设备名称
+     */
+    private String deviceName;
+
+    /**
+     * 设备型号名称
+     */
+    private String deviceModelName;
+
+    /**
+     * 补货单类型
+     */
+    private Integer replenishType;
+
+    /**
+     * 区域员工id
+     */
+    private Long areaStaffId;
+
+    /**
+     * 补货员名称
+     */
+    private String areaStaffName;
+
+    /**
+     * 区域名称链
+     */
+    private String areaChainName;
+
+    /**
+     * 未补货数
+     */
+    private Integer unReplenishedNum;
+
+    /**
+     * 补货单创建时间
+     */
+    private LocalDateTime createTime;
+
+}

+ 122 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/vo/DriverIntervalCargoDamageVo.java

@@ -0,0 +1,122 @@
+package com.yr.warehouse.admin.driver.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 司机区间货损
+ */
+@Data
+public class DriverIntervalCargoDamageVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 货损区间统计id
+     */
+    private Long id;
+
+    /**
+     * 运营商id
+     */
+    private Long operatorId;
+
+    /**
+     * 运营商id链
+     */
+    private String operatorChain;
+
+    /**
+     * 运营商名称
+     */
+    private String operatorName;
+
+    /**
+     * 运营商名称链
+     */
+    private String operatorChainName;
+
+    /**
+     * 仓库id
+     */
+    private Long warehouseId;
+
+    /**
+     * 仓库名称
+     */
+    private String warehouseName;
+
+    /**
+     * 统计类型 SPOT_CHECK 抽查(指定补货员) REGULAR 定期(全部补货员)
+     */
+    private String stockTakingType;
+
+    /**
+     * 区间开始时间
+     */
+    private LocalDateTime intervalStartTime;
+
+    /**
+     * 区间结束时间
+     */
+    private LocalDateTime intervalEndTime;
+
+    /**
+     * 本次拣货开单总数
+     */
+    private Long pickingOrderCreateNum;
+
+    /**
+     * 本次整件开单总数
+     */
+    private Long wholeOrderCreateNum;
+
+    /**
+     * 本次补货总数
+     */
+    private Long replenishNum;
+
+    /**
+     * 本次回仓总数
+     */
+    private Long returnWarehouseNum;
+
+    /**
+     * 在途库存数
+     */
+    private Long onRouteInventoryNum;
+
+    /**
+     * 本次已取消数(未出库) - 页面展示这个*
+     */
+    private Long unshippedCancelNum;
+
+    /**
+     * 本次已取消数(已出库) - 页面不展示这个*
+     */
+    private Long shippedCancelNum;
+
+    /**
+     * 本次未补货数
+     */
+    private Long unReplenishedNum;
+
+    /**
+     * 司机盈亏数
+     */
+    private Long driverProfitLossNum;
+
+    /**
+     * 设备盈亏数
+     */
+    private Long equipmentProfitLossNum;
+
+    /**
+     * 总盈亏数
+     */
+    private Long totalProfitLossNum;
+}

+ 46 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/vo/DriverRouteAccountRecordDetailVo.java

@@ -0,0 +1,46 @@
+package com.yr.warehouse.admin.driver.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 司机在途核算记录详情响应Vo
+ */
+@Data
+public class DriverRouteAccountRecordDetailVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private Long id;
+
+    /**
+     * 商品id
+     */
+    private Integer goodsId;
+
+    /**
+     * 商品编码
+     */
+    private String goodsCode;
+
+    /**
+     * 商品图片
+     */
+    private String goodsImg;
+
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+
+    /**
+     * 库存数
+     */
+    private Long inventory;
+}

+ 75 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/vo/DriverRouteAccountRecordMainVo.java

@@ -0,0 +1,75 @@
+package com.yr.warehouse.admin.driver.vo;
+
+import com.yr.warehouse.admin.areastaff.fase.AreaStaffIdFace;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * 司机在途核算记录vo
+ */
+@Data
+public class DriverRouteAccountRecordMainVo implements AreaStaffIdFace, Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private Long id;
+
+    /**
+     * 区域员工id
+     */
+    private Long areaStaffId;
+
+    /**
+     * 区域员工名称
+     */
+    private String areaStaffName;
+
+    /**
+     * 区域线路名称
+     */
+    private String areaChainName;
+
+    /**
+     * 仓库id
+     */
+    private Long warehouseId;
+
+    /**
+     * 仓库名称
+     */
+    private String warehouseName;
+
+    /**
+     * 统计日期
+     */
+    private LocalDate statDate;
+
+    /**
+     * 统计总数
+     */
+    private Long statTotalNum;
+
+    /**
+     * 状态 UN_VERIFIED 未核算 VERIFIED 已核算 CANCEL 已取消
+     */
+    private String status;
+
+    /**
+     * 创建人
+     */
+    private String createName;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+}

+ 87 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/vo/DriverRouteDetailVo.java

@@ -0,0 +1,87 @@
+package com.yr.warehouse.admin.driver.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 司机在途明细响应vo
+ */
+@Data
+public class DriverRouteDetailVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private Long id;
+
+    /**
+     * 货损记录id
+     */
+    private Long goodsLossRecordId;
+
+    /**
+     * 商品id
+     */
+    private Integer goodsId;
+
+    /**
+     * 商品编码
+     */
+    private String goodsCode;
+
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+
+    /**
+     * 商品图片
+     */
+    private String goodsImg;
+
+    /**
+     * 开单数
+     */
+    private Long createNum;
+
+    /**
+     * 取消数(未出库) - 页面展示这个*
+     */
+    private Long unshippedCancelNum;
+
+    /**
+     * 取消数(已出库) - 页面不展示这个*
+     */
+    private Long shippedCancelNum;
+
+    /**
+     * 补货数
+     */
+    private Long replenishNum;
+
+    /**
+     * 回仓数
+     */
+    private Long returnWarehouseNum;
+
+    /**
+     * 上次库存数
+     */
+    private Long yesterdayStockNum;
+
+    /**
+     * 在途库存数
+     */
+    private Long todayStockNum;
+
+    /**
+     * 盈亏数
+     */
+    private Long profitLossNum;
+
+}

+ 16 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/operator/face/OperatorNameFace.java

@@ -0,0 +1,16 @@
+package com.yr.warehouse.admin.operator.face;
+
+/**
+ * 运营商名称Face
+ */
+public interface OperatorNameFace {
+
+    Long getOperatorId();
+
+    void setOperatorName(String operatorName);
+
+    String getOperatorChain();
+
+    void setOperatorChainName(String operatorChainName);
+
+}

+ 129 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/data/AggregationPickDetail.java

@@ -0,0 +1,129 @@
+package com.yr.warehouse.admin.replenish.data;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 拣货单汇总单子表
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-01 15:48:14
+ */
+@Getter
+@Setter
+@TableName("yr_aggregation_pick_detail")
+public class AggregationPickDetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增长 id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 订单编号
+     */
+    @TableField("order_number")
+    private String orderNumber;
+
+    /**
+     * 商品id
+     */
+    @TableField("goods_id")
+    private Integer goodsId;
+
+    /**
+     * 拣货数
+     */
+    @TableField("picking_number")
+    private Integer pickingNumber;
+
+    /**
+     * 拣货件数
+     */
+    @TableField("picking_pieces")
+    private Integer pickingPieces;
+
+    /**
+     * 实际拣货数
+     */
+    @TableField("real_picking_number")
+    private Integer realPickingNumber;
+
+    /**
+     * 实际拣货件数
+     */
+    @TableField("real_picking_pieces")
+    private Integer realPickingPieces;
+
+    /**
+     * 状态: UN_PICK 未拣货 PICK 拣货中 UN_REPLENISH 未补货 REPLENISH_ING 补货中 REPLENISH_END 补货完成
+     */
+    @TableField("status")
+    private String status;
+
+    /**
+     * 多给个数
+     */
+    @TableField("more_number")
+    private Integer moreNumber;
+
+    /**
+     * 原拣货拣货数(件数*规格+多给的实际原总拣货数)
+     */
+    @TableField("old_all_picking_number")
+    private Integer oldAllPickingNumber;
+
+    /**
+     * 每件个数
+     */
+    @TableField("pieces_number")
+    private Integer piecesNumber;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+    /**
+     * 创建人uid
+     */
+    @TableField("create_uid")
+    private Long createUid;
+
+    /**
+     * 创建人名称
+     */
+    @TableField("create_name")
+    private String createName;
+
+    /**
+     * 修改时间
+     */
+    @TableField("modify_time")
+    private LocalDateTime modifyTime;
+
+    /**
+     * 修改人uid
+     */
+    @TableField("modify_uid")
+    private Long modifyUid;
+
+    /**
+     * 修改人名称
+     */
+    @TableField("modify_name")
+    private String modifyName;
+}

+ 124 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/data/AggregationPickInfo.java

@@ -0,0 +1,124 @@
+package com.yr.warehouse.admin.replenish.data;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 拣货单汇总单主表
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-01 15:48:15
+ */
+@Getter
+@Setter
+@TableName("yr_aggregation_pick_info")
+public class AggregationPickInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增长id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 订单编号
+     */
+    @TableField("order_number")
+    private String orderNumber;
+
+    /**
+     * 仓库id
+     */
+    @TableField("warehouse_info_id")
+    private Long warehouseInfoId;
+
+    /**
+     * 区域员工关系id
+     */
+    @TableField("area_staff_id")
+    private Long areaStaffId;
+
+    /**
+     * 补货员账号id
+     */
+    @TableField("replenish_account_id")
+    private Long replenishAccountId;
+
+    /**
+     * 拣货员
+     */
+    @TableField("picking_user")
+    private String pickingUser;
+
+    /**
+     * 拣货完成时间
+     */
+    @TableField("picking_time")
+    private LocalDateTime pickingTime;
+
+    /**
+     * 汇总单类型: AUTO 自动 CUSTOM 手动 MERGE 合并
+     */
+    @TableField("aggregation_type")
+    private String aggregationType;
+
+    /**
+     * 状态: UN_PICK 未拣货 PICK 拣货中 UN_REPLENISH 未补货 REPLENISH_ING 补货中 REPLENISH_END 补货完成 CANCEL 正常已取消 OUT_CANCEL 已出库取消
+     */
+    @TableField("status")
+    private String status;
+
+    /**
+     * 运行时间,yyyy-MM-dd
+     */
+    @TableField("run_time")
+    private LocalDate runTime;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+    /**
+     * 创建人uid
+     */
+    @TableField("create_uid")
+    private Long createUid;
+
+    /**
+     * 创建人名称
+     */
+    @TableField("create_name")
+    private String createName;
+
+    /**
+     * 修改时间
+     */
+    @TableField("modify_time")
+    private LocalDateTime modifyTime;
+
+    /**
+     * 修改人uid
+     */
+    @TableField("modify_uid")
+    private Long modifyUid;
+
+    /**
+     * 修改人名称
+     */
+    @TableField("modify_name")
+    private String modifyName;
+}

+ 51 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/data/AggregationPickLink.java

@@ -0,0 +1,51 @@
+package com.yr.warehouse.admin.replenish.data;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 汇总单拣货单关联表
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-01 15:48:15
+ */
+@Getter
+@Setter
+@TableName("yr_aggregation_pick_link")
+public class AggregationPickLink implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增长id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 汇总单单号
+     */
+    @TableField("aggregation_order_number")
+    private String aggregationOrderNumber;
+
+    /**
+     * 拣货单单号
+     */
+    @TableField("picking_order_number")
+    private String pickingOrderNumber;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private LocalDateTime createTime;
+}

+ 147 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/data/PickingOrderDetail.java

@@ -0,0 +1,147 @@
+package com.yr.warehouse.admin.replenish.data;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 拣货单详情表
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-01 15:48:15
+ */
+@Getter
+@Setter
+@TableName("yr_picking_order_detail")
+public class PickingOrderDetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增长id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 拣货单单号
+     */
+    @TableField("order_number")
+    private String orderNumber;
+
+    /**
+     * 拣货数
+     */
+    @TableField("picking_number")
+    private Integer pickingNumber;
+
+    /**
+     * 设备货道id
+     */
+    @TableField("cargo_way_id")
+    private Long cargoWayId;
+
+    /**
+     * 商品id
+     */
+    @TableField("goods_id")
+    private Integer goodsId;
+
+    /**
+     * 货道容量
+     */
+    @TableField("cargo_way_limit_number")
+    private Integer cargoWayLimitNumber;
+
+    /**
+     * 货道当时的库存
+     */
+    @TableField("cargo_way_stock_number")
+    private Integer cargoWayStockNumber;
+
+    /**
+     * 货道拣货状态 0: 未拣货 1:拣货中 2:拣货完成
+     */
+    @TableField("cargo_way_picking_status")
+    private Integer cargoWayPickingStatus;
+
+    /**
+     * 是否换货
+     */
+    @TableField("is_replace")
+    private Integer isReplace;
+
+    /**
+     * 换品方式:DOWN:原商品下架|HOLD:原商品保留
+     */
+    @TableField("way")
+    private String way;
+
+    /**
+     * 是否需要汇总: 0 不需要 1 需要
+     */
+    @TableField("is_aggregation")
+    private Integer isAggregation;
+
+    /**
+     * 是否有仓库库存
+     */
+    @TableField("has_warehouse_stock")
+    private Boolean hasWarehouseStock;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+    /**
+     * 创建用户名称
+     */
+    @TableField("create_name")
+    private String createName;
+
+    /**
+     * 创建用户id
+     */
+    @TableField("create_uid")
+    private Long createUid;
+
+    /**
+     * 修改时间
+     */
+    @TableField("modify_time")
+    private LocalDateTime modifyTime;
+
+    /**
+     * 修改人uid
+     */
+    @TableField("modify_uid")
+    private Long modifyUid;
+
+    /**
+     * 修改人名称
+     */
+    @TableField("modify_name")
+    private String modifyName;
+
+    /**
+     * 仓库当时的库存
+     */
+    @TableField("warehouse_inventory")
+    private Long warehouseInventory;
+
+    /**
+     * 库位名称
+     */
+    @TableField("location_numbers")
+    private String locationNumbers;
+}

+ 147 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/data/PickingOrderInfo.java

@@ -0,0 +1,147 @@
+package com.yr.warehouse.admin.replenish.data;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 拣货单主表
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-01 15:48:15
+ */
+@Getter
+@Setter
+@TableName("yr_picking_order_info")
+public class PickingOrderInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增长id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 运营商id
+     */
+    @TableField("operator_id")
+    private Long operatorId;
+
+    /**
+     * 运营商id链
+     */
+    @TableField("operator_chain")
+    private String operatorChain;
+
+    /**
+     * 拣货单单号
+     */
+    @TableField("order_number")
+    private String orderNumber;
+
+    /**
+     * 父拣货单单号
+     */
+    @TableField("parent_order_number")
+    private String parentOrderNumber;
+
+    /**
+     * 补货计划编号
+     */
+    @TableField("line_plan_number")
+    private String linePlanNumber;
+
+    /**
+     * 仓库id
+     */
+    @TableField("warehouse_info_id")
+    private Long warehouseInfoId;
+
+    /**
+     * 运营商设备id
+     */
+    @TableField("device_id")
+    private Long deviceId;
+
+    /**
+     * 区域员工关系id
+     */
+    @TableField("area_staff_id")
+    private Long areaStaffId;
+
+    /**
+     * 拣货员
+     */
+    @TableField("picking_user")
+    private String pickingUser;
+
+    /**
+     * 箱数
+     */
+    @TableField("box_num")
+    private Integer boxNum;
+
+    /**
+     * 拣货单类型 0: 常规 1: 增补(基于容量 - (常规拣货单拣货数 + 库存)) 2: 多补(重新计算拣货数据)
+     */
+    @TableField("picking_type")
+    private Integer pickingType;
+
+    /**
+     * 拣货单状态 0: 未拣货 1:拣货中 2:拣货完成 3:未出库删除 4:出库删除
+     */
+    @TableField("picking_status")
+    private Integer pickingStatus;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+    /**
+     * 创建用户名称
+     */
+    @TableField("create_name")
+    private String createName;
+
+    /**
+     * 创建用户id
+     */
+    @TableField("create_uid")
+    private Long createUid;
+
+    /**
+     * 修改时间
+     */
+    @TableField("modify_time")
+    private LocalDateTime modifyTime;
+
+    /**
+     * 修改人uid
+     */
+    @TableField("modify_uid")
+    private Long modifyUid;
+
+    /**
+     * 修改人名称
+     */
+    @TableField("modify_name")
+    private String modifyName;
+
+    /**
+     * 是否允许临期商品
+     */
+    @TableField("advent_sale")
+    private Boolean adventSale;
+}

+ 135 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/data/ReplenishOrderDetail.java

@@ -0,0 +1,135 @@
+package com.yr.warehouse.admin.replenish.data;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 补货单详情表
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-01 15:48:15
+ */
+@Getter
+@Setter
+@TableName("yr_replenish_order_detail")
+public class ReplenishOrderDetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增长id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 拣货单单号
+     */
+    @TableField("order_number")
+    private String orderNumber;
+
+    /**
+     * 拣货数
+     */
+    @TableField("picking_number")
+    private Integer pickingNumber;
+
+    /**
+     * 实际补货数
+     */
+    @TableField("real_picking_number")
+    private Integer realPickingNumber;
+
+    /**
+     * 设备货道id
+     */
+    @TableField("cargo_way_id")
+    private Long cargoWayId;
+
+    /**
+     * 商品id
+     */
+    @TableField("goods_id")
+    private Integer goodsId;
+
+    /**
+     * 货道容量
+     */
+    @TableField("cargo_way_limit_number")
+    private Integer cargoWayLimitNumber;
+
+    /**
+     * 货道当时的库存
+     */
+    @TableField("cargo_way_stock_number")
+    private Integer cargoWayStockNumber;
+
+    /**
+     * 是否换货 0:否 1:是
+     */
+    @TableField("is_replace")
+    private Integer isReplace;
+
+    /**
+     * 换品方式:DOWN:原商品下架|HOLD:原商品保留
+     */
+    @TableField("way")
+    private String way;
+
+    /**
+     * 是否聚合商品 0:否 1:是
+     */
+    @TableField("is_aggregation")
+    private Integer isAggregation;
+
+    /**
+     * 货道补货状态 0: 未补货 1:补货中 2:补货完成
+     */
+    @TableField("cargo_way_replenish_status")
+    private Integer cargoWayReplenishStatus;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+    /**
+     * 创建人uid
+     */
+    @TableField("create_uid")
+    private Long createUid;
+
+    /**
+     * 创建人名称
+     */
+    @TableField("create_name")
+    private String createName;
+
+    /**
+     * 修改时间
+     */
+    @TableField("modify_time")
+    private LocalDateTime modifyTime;
+
+    /**
+     * 修改人uid
+     */
+    @TableField("modify_uid")
+    private Long modifyUid;
+
+    /**
+     * 修改人名称
+     */
+    @TableField("modify_name")
+    private String modifyName;
+}

+ 153 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/data/ReplenishOrderInfo.java

@@ -0,0 +1,153 @@
+package com.yr.warehouse.admin.replenish.data;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 补货单主表
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-01 15:48:15
+ */
+@Getter
+@Setter
+@TableName("yr_replenish_order_info")
+public class ReplenishOrderInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增长id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 运营商id
+     */
+    @TableField("operator_id")
+    private Long operatorId;
+
+    /**
+     * 运营商id链
+     */
+    @TableField("operator_chain")
+    private String operatorChain;
+
+    /**
+     * 拣货单单号
+     */
+    @TableField("order_number")
+    private String orderNumber;
+
+    /**
+     * 父拣货单单号
+     */
+    @TableField("parent_order_number")
+    private String parentOrderNumber;
+
+    /**
+     * 仓库id
+     */
+    @TableField("warehouse_info_id")
+    private Long warehouseInfoId;
+
+    /**
+     * 运营商设备id
+     */
+    @TableField("device_id")
+    private Long deviceId;
+
+    /**
+     * 区域员工关系id
+     */
+    @TableField("area_staff_id")
+    private Long areaStaffId;
+
+    /**
+     * 补货员账号id
+     */
+    @TableField("replenish_account_id")
+    private Long replenishAccountId;
+
+    /**
+     * 补货员名称
+     */
+    @TableField("replenish_user_name")
+    private String replenishUserName;
+
+    /**
+     * 补货员id
+     */
+    @TableField("replenish_user_id")
+    private Long replenishUserId;
+
+    /**
+     * 补货时间
+     */
+    @TableField("replenish_time")
+    private LocalDateTime replenishTime;
+
+    /**
+     * 拣货单类型 0: 常规 1: 增补(基于容量 - (常规拣货单拣货数 + 库存)) 2: 多补(重新计算拣货数据) 3: 库存盘点
+     */
+    @TableField("replenish_type")
+    private Integer replenishType;
+
+    /**
+     * 补货单状态 0: 未补货 1:补货中 2:补货完成  3:未出库删除 4:出库删除
+     */
+    @TableField("replenish_status")
+    private Integer replenishStatus;
+
+    /**
+     * 补货图片
+     */
+    @TableField("file_urls")
+    private String fileUrls;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+    /**
+     * 创建人uid
+     */
+    @TableField("create_uid")
+    private Long createUid;
+
+    /**
+     * 创建人名称
+     */
+    @TableField("create_name")
+    private String createName;
+
+    /**
+     * 修改时间
+     */
+    @TableField("modify_time")
+    private LocalDateTime modifyTime;
+
+    /**
+     * 修改人uid
+     */
+    @TableField("modify_uid")
+    private Long modifyUid;
+
+    /**
+     * 修改人名称
+     */
+    @TableField("modify_name")
+    private String modifyName;
+}

+ 16 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/mapper/AggregationPickDetailMapper.java

@@ -0,0 +1,16 @@
+package com.yr.warehouse.admin.replenish.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yr.warehouse.admin.replenish.data.AggregationPickDetail;
+
+/**
+ * <p>
+ * 拣货单汇总单子表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-01 15:48:14
+ */
+public interface AggregationPickDetailMapper extends BaseMapper<AggregationPickDetail> {
+
+}

+ 16 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/mapper/AggregationPickInfoMapper.java

@@ -0,0 +1,16 @@
+package com.yr.warehouse.admin.replenish.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yr.warehouse.admin.replenish.data.AggregationPickInfo;
+
+/**
+ * <p>
+ * 拣货单汇总单主表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-01 15:48:15
+ */
+public interface AggregationPickInfoMapper extends BaseMapper<AggregationPickInfo> {
+
+}

+ 16 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/mapper/AggregationPickLinkMapper.java

@@ -0,0 +1,16 @@
+package com.yr.warehouse.admin.replenish.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yr.warehouse.admin.replenish.data.AggregationPickLink;
+
+/**
+ * <p>
+ * 汇总单拣货单关联表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-01 15:48:15
+ */
+public interface AggregationPickLinkMapper extends BaseMapper<AggregationPickLink> {
+
+}

+ 16 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/mapper/PickingOrderDetailMapper.java

@@ -0,0 +1,16 @@
+package com.yr.warehouse.admin.replenish.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yr.warehouse.admin.replenish.data.PickingOrderDetail;
+
+/**
+ * <p>
+ * 拣货单详情表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-01 15:48:15
+ */
+public interface PickingOrderDetailMapper extends BaseMapper<PickingOrderDetail> {
+
+}

+ 16 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/mapper/PickingOrderInfoMapper.java

@@ -0,0 +1,16 @@
+package com.yr.warehouse.admin.replenish.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yr.warehouse.admin.replenish.data.PickingOrderInfo;
+
+/**
+ * <p>
+ * 拣货单主表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-01 15:48:15
+ */
+public interface PickingOrderInfoMapper extends BaseMapper<PickingOrderInfo> {
+
+}

+ 25 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/mapper/ReplenishOrderDetailMapper.java

@@ -0,0 +1,25 @@
+package com.yr.warehouse.admin.replenish.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yr.warehouse.admin.replenish.data.ReplenishOrderDetail;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 补货单详情表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-01 15:48:15
+ */
+public interface ReplenishOrderDetailMapper extends BaseMapper<ReplenishOrderDetail> {
+
+    /**
+     * 根据补货单单号查询补货单明细列表
+     * @param orderNumbers 补货单号
+     * @return 补货单明细列表
+     */
+    List<ReplenishOrderDetail> searchByOrderNumbers(@Param("orderNumbers") List<String> orderNumbers);
+}

+ 21 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/mapper/ReplenishOrderInfoMapper.java

@@ -0,0 +1,21 @@
+package com.yr.warehouse.admin.replenish.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yr.warehouse.admin.driver.data.DriverGoodsLossStatUnReplenishSnapshot;
+import com.yr.warehouse.admin.replenish.data.ReplenishOrderInfo;
+import org.apache.ibatis.annotations.Param;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ * 补货单主表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-01 15:48:15
+ */
+public interface ReplenishOrderInfoMapper extends BaseMapper<ReplenishOrderInfo> {
+
+}

+ 28 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/menu/ReplenishOrderTypeEnum.java

@@ -0,0 +1,28 @@
+package com.yr.warehouse.admin.replenish.menu;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@AllArgsConstructor
+@Getter
+public enum ReplenishOrderTypeEnum {
+
+    REPLENISH(0, "补货单"),
+    INCREASE_REPLENISH(1, "增补单"),
+    MANY_REPLENISH(2, "多补单"),
+    REPLENISH_STOCKTAKING(3, "盘点单");
+
+    private final Integer code;
+
+    private final String desc;
+
+    public static String getDesc(Integer code) {
+        for (ReplenishOrderTypeEnum value : ReplenishOrderTypeEnum.values()) {
+            if (value.getCode().equals(code)) {
+                return value.getDesc();
+            }
+        }
+        return null;
+    }
+
+}

+ 32 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/replenish/vo/DriverGoodsOrderNumVo.java

@@ -0,0 +1,32 @@
+package com.yr.warehouse.admin.replenish.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 司机货单数量视图
+ */
+@Data
+public class DriverGoodsOrderNumVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 司机id
+     */
+    private Long areaStaffId;
+
+    /**
+     * 商品id
+     */
+    private Integer goodsId;
+
+    /**
+     * 货单数量
+     */
+    private Long totalNum;
+
+}

+ 78 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/statistics/mapper/BillingQuantityStatisticsMapper.java

@@ -0,0 +1,78 @@
+package com.yr.warehouse.admin.statistics.mapper;
+
+import com.yr.warehouse.admin.replenish.vo.DriverGoodsOrderNumVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+public interface BillingQuantityStatisticsMapper {
+
+    /**
+     * 查询拣货单开单数
+     * @param areaStaffIds 区域员工ids
+     * @param beginTime 开始时间
+     * @param endTime 结束时间
+     * @return 开单数
+     */
+    List<DriverGoodsOrderNumVo> queryPickingBillingQuantity(@Param("areaStaffIds") List<Long> areaStaffIds, @Param("beginTime") LocalDateTime beginTime, @Param("endTime") LocalDateTime endTime);
+
+    /**
+     * 获取整件单开单数
+     * @param areaStaffIds 区域员工ids
+     * @param beginTime 开始时间
+     * @param endTime 结束时间
+     * @return
+     */
+    List<DriverGoodsOrderNumVo> queryAggregationBillingQuantity(@Param("areaStaffIds") List<Long> areaStaffIds, @Param("beginTime") LocalDateTime beginTime, @Param("endTime") LocalDateTime endTime);
+
+    /**
+     * 查询未出库取消数
+     * @param areaStaffIds 区域员工ids
+     * @param beginTime 开始时间
+     * @param endTime 结束时间
+     * @return
+     */
+    List<DriverGoodsOrderNumVo> queryUnOutStockCancelNum(@Param("areaStaffIds") List<Long> areaStaffIds, @Param("beginTime") LocalDateTime beginTime, @Param("endTime") LocalDateTime endTime);
+
+    /**
+     * 查询已出库取消数
+     * @param areaStaffIds 区域员工ids
+     * @param beginTime 开始时间
+     * @param endTime 接受时间
+     * @return
+     */
+    List<DriverGoodsOrderNumVo> queryOutStockCancelNum(@Param("areaStaffIds") List<Long> areaStaffIds, @Param("beginTime") LocalDateTime beginTime, @Param("endTime") LocalDateTime endTime);
+
+    /**
+     * 查询司机补货数
+     * @param beginTime 开始时间
+     * @param endTime 结束时间
+     * @return
+     */
+    List<DriverGoodsOrderNumVo> queryDriverReplenishNum(@Param("areaStaffIds") List<Long> areaStaffIds, @Param("beginTime") LocalDateTime beginTime, @Param("endTime") LocalDateTime endTime);
+
+    /**
+     * 查询设备补货数
+     * @param areaStaffIds 区域员工ids
+     * @param beginTime 开始时间
+     * @param endTime 结束时间
+     * @return
+     */
+    List<DriverGoodsOrderNumVo> queryDeviceReplenishNum(@Param("areaStaffIds") List<Long> areaStaffIds, @Param("beginTime") LocalDateTime beginTime, @Param("endTime") LocalDateTime endTime);
+
+    /**
+     * 查询司机回仓数
+     * @param areaStaffIds 区域员工ids
+     * @param beginTime 开始时间
+     * @param endTime 结束时间
+     * @return
+     */
+    List<DriverGoodsOrderNumVo> queryDriverReturnNum(@Param("areaStaffIds") List<Long> areaStaffIds, @Param("beginTime") LocalDateTime beginTime, @Param("endTime") LocalDateTime endTime);
+
+    /**
+     * 获取设备库存数
+     * @return
+     */
+    List<DriverGoodsOrderNumVo> queryDriverDeviceInventoryNum();
+}

+ 71 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/statistics/vo/DriverStatisticsVo.java

@@ -0,0 +1,71 @@
+package com.yr.warehouse.admin.statistics.vo;
+
+import com.yr.warehouse.admin.driver.data.DriverEquipmentLossRecord;
+import com.yr.warehouse.admin.driver.data.DriverGoodsLossRecord;
+import com.yr.warehouse.admin.replenish.vo.DriverGoodsOrderNumVo;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 司机统计vo
+ */
+@Data
+public class DriverStatisticsVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 司机拣货单开单数 - 含商品id
+     */
+    private List<DriverGoodsOrderNumVo> pickingBillingQuantityNumVos;
+
+    /**
+     * 司机整件单开单数 - 含商品id
+     */
+    private List<DriverGoodsOrderNumVo> aggregationBillingQuantityNumVos;
+
+    /**
+     * 未出库取消数 - 含商品id
+     */
+    private List<DriverGoodsOrderNumVo> unOutStockCancelNumVos;
+
+    /**
+     * 已出库取消数 - 含商品id
+     */
+    private List<DriverGoodsOrderNumVo> outStockCancelNumVos;
+    /**
+     * 司机补货数 - 含商品id
+     */
+    private List<DriverGoodsOrderNumVo> driverReplenishNumVos;
+
+    /**
+     * 设备补货数 - 不含商品id
+     */
+    private List<DriverGoodsOrderNumVo> deviceReplenishNumVos;
+
+    /**
+     * 司机回仓数 - 含商品id
+     */
+    private List<DriverGoodsOrderNumVo> driverReturnNumVos;
+
+    /**
+     * 司机设备销量统计 - 不含商品id
+     */
+    private List<DriverGoodsOrderNumVo> driverDeviceSalesNumVos;
+
+
+    /**
+     * 司机日货损统计列表
+     */
+    private List<DriverGoodsLossRecord> driverGoodsLossRecords;
+
+    /**
+     * 司机日设备损统计列表
+     */
+    private List<DriverEquipmentLossRecord> driverEquipmentLossRecords;
+
+}

+ 67 - 0
warehouse-admin-data/src/main/resources/mapper/areaStaff/DriverWarehouseMapper.xml

@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yr.warehouse.admin.areastaff.mapper.DriverWarehouseMapper">
+
+    <select id="searchByWarehouseId" resultType="com.yr.warehouse.admin.areastaff.vo.AreaStaffVo"
+            parameterType="com.yr.warehouse.admin.common.bo.BaseIdBo">
+        with warehouse_area_staff as (select wd.warehouseInfoId,
+                                             ods.areaStaffId
+                                      from yr_warehouse_info as wi
+                                               left join yr_warehouse_device as wd on wd.warehouseInfoId = wi.id
+                                               left join yr_operators_device as od on wd.deviceId = od.id
+                                               left join yr_operators_device_site as ods on od.id = ods.deviceId
+                                      where od.putStatus = 'USED'
+                                        and od.isDelete = 'NORMAL'
+                                        and ods.isDelete = 'NORMAL'
+                                        and wi.status != 'DELETE'
+                                      group by wd.warehouseInfoId, ods.areaStaffId)
+        select oas.id                         as id,
+               oas.id                         as areaStaffId,
+               oas.operatorId                 as operatorId,
+               oas.operatorChain              as operatorChain,
+               oas.areaId                     as areaId,
+               oas.areaChain                  as areaChain,
+               oas.employeeId                 as employeeId,
+               oas.employeeName               as employeeName,
+               oas.accountId                  as accountId,
+               oas.carBoxNum                  as carBoxNum,
+               oas.maxAggregationPickingRatio as maxAggregationPickingRatio,
+               oas.createTime                 as createTime,
+               oas.createUid                  as createUid,
+               oas.createName                 as createName,
+               oas.modifyTime                 as modifyTime,
+               oas.modifyUid                  as modifyUid,
+               oas.modifyName                 as modifyName,
+               oas.isDelete                   as isDelete,
+               oas.managerAccountId           as managerAccountId,
+               oas.managerAccountName         as managerAccountName
+        from yr_operators_area_staff as oas
+                 left join warehouse_area_staff as was on oas.id = was.areaStaffId
+        where oas.isDelete = 'NORMAL'
+          and was.warehouseInfoId = #{warehouseId}
+    </select>
+    <select id="all" resultType="com.yr.warehouse.admin.areastaff.vo.AreaStaffVo">
+        select oas.id                         as id,
+               oas.id                         as areaStaffId,
+               oas.operatorId                 as operatorId,
+               oas.operatorChain              as operatorChain,
+               oas.areaId                     as areaId,
+               oas.areaChain                  as areaChain,
+               oas.employeeId                 as employeeId,
+               oas.employeeName               as employeeName,
+               oas.accountId                  as accountId,
+               oas.carBoxNum                  as carBoxNum,
+               oas.maxAggregationPickingRatio as maxAggregationPickingRatio,
+               oas.createTime                 as createTime,
+               oas.createUid                  as createUid,
+               oas.createName                 as createName,
+               oas.modifyTime                 as modifyTime,
+               oas.modifyUid                  as modifyUid,
+               oas.modifyName                 as modifyName,
+               oas.isDelete                   as isDelete,
+               oas.managerAccountId           as managerAccountId,
+               oas.managerAccountName         as managerAccountName
+        from yr_operators_area_staff as oas
+        where oas.isDelete = 'NORMAL'
+    </select>
+</mapper>

+ 33 - 0
warehouse-admin-data/src/main/resources/mapper/driver/DriverDeviceStockSnapshotMapper.xml

@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yr.warehouse.admin.driver.mapper.DriverDeviceStockSnapshotMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.yr.warehouse.admin.driver.data.DriverDeviceStockSnapshot">
+        <id column="id" property="id" />
+        <result column="statBeginDateTime" property="statBeginDateTime" />
+        <result column="statEndDateTime" property="statEndDateTime" />
+        <result column="areaStaffId" property="areaStaffId" />
+        <result column="totalNum" property="totalNum" />
+        <result column="createTime" property="createTime" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, statBeginDateTime, statEndDateTime, areaStaffId, totalNum, createTime
+    </sql>
+    <insert id="insertBatch">
+        insert into yr_driver_device_stock_snapshot
+        (statBeginDateTime, statEndDateTime, areaStaffId, totalNum)
+        values
+        <foreach collection="deviceInventoryNumVos" item="deviceInventoryNumVo" separator=",">
+            (#{beginTime}, #{endTime}, #{deviceInventoryNumVo.areaStaffId}, #{deviceInventoryNumVo.totalNum})
+        </foreach>
+    </insert>
+    <select id="queryDriverDeviceInventoryNum"
+            resultType="com.yr.warehouse.admin.driver.data.DriverDeviceStockSnapshot">
+        select <include refid="Base_Column_List" /> from yr_driver_device_stock_snapshot
+        where statBeginDateTime = #{beginTime} and statEndDateTime = #{endTime}
+    </select>
+
+</mapper>

+ 59 - 0
warehouse-admin-data/src/main/resources/mapper/driver/DriverEquipmentLossRecordMapper.xml

@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yr.warehouse.admin.driver.mapper.DriverEquipmentLossRecordMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.yr.warehouse.admin.driver.data.DriverEquipmentLossRecord">
+        <id column="id" property="id"/>
+        <result column="operatorId" property="operatorId"/>
+        <result column="operatorChain" property="operatorChain"/>
+        <result column="areaStaffId" property="areaStaffId"/>
+        <result column="statDate" property="statDate"/>
+        <result column="equipmentStockNum" property="equipmentStockNum"/>
+        <result column="equipmentReplenishNum" property="equipmentReplenishNum"/>
+        <result column="equipmentSalesNum" property="equipmentSalesNum"/>
+        <result column="theoreticalEquipmentStockNum" property="theoreticalEquipmentStockNum"/>
+        <result column="actualEquipmentStockNum" property="actualEquipmentStockNum"/>
+        <result column="profitLossNum" property="profitLossNum"/>
+        <result column="createTime" property="createTime"/>
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, operatorId, operatorChain, areaStaffId, statDate, equipmentStockNum, equipmentReplenishNum, equipmentSalesNum, theoreticalEquipmentStockNum, actualEquipmentStockNum, profitLossNum, createTime
+    </sql>
+    <insert id="insertBatch" parameterType="java.util.List" keyProperty="id" useGeneratedKeys="true">
+        insert into yr_driver_equipment_loss_record
+        (operatorId, operatorChain, areaStaffId, statDate, equipmentStockNum, equipmentReplenishNum, equipmentSalesNum,
+        theoreticalEquipmentStockNum, actualEquipmentStockNum, profitLossNum)
+        values
+        <foreach item="item" collection="driverEquipmentLossRecords" separator="," index="index">
+            (
+            #{item.operatorId}, #{item.operatorChain}, #{item.areaStaffId}, #{item.statDate}, #{item.equipmentStockNum},
+            #{item.equipmentReplenishNum}, #{item.equipmentSalesNum}, #{item.theoreticalEquipmentStockNum},
+            #{item.actualEquipmentStockNum}, #{item.profitLossNum}
+            )
+        </foreach>
+    </insert>
+    <delete id="deleteOld" >
+        delete from yr_driver_equipment_loss_record where operatorId = #{operatorId} and statDate = #{statDate}
+    </delete>
+    <select id="searchByStatDate" resultType="com.yr.warehouse.admin.driver.data.DriverEquipmentLossRecord"
+            parameterType="java.time.LocalDate">
+        select
+        <include refid="Base_Column_List"/>
+        from yr_driver_equipment_loss_record where statDate = #{statDate}
+    </select>
+    <select id="searchGeneratorParam" resultType="com.yr.warehouse.admin.driver.data.DriverEquipmentLossRecord"
+            parameterType="com.yr.warehouse.admin.driver.bo.DriverIntervalCargoDamageGeneratorBo">
+        select
+            <include refid="Base_Column_List" />
+        from yr_driver_equipment_loss_record
+        where operatorId = #{bo.operatorId} and statDate >= #{bo.beginStatDate} and #{bo.endStatDate} >= statDate
+        <foreach collection="bo.areaStaffIds" item="areaStaffId" open="and areaStaffId in (" separator="," close=")">
+            #{areaStaffId}
+        </foreach>
+        order by id desc
+    </select>
+
+</mapper>

+ 91 - 0
warehouse-admin-data/src/main/resources/mapper/driver/DriverGoodsLossIntervalDetailMapper.xml

@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yr.warehouse.admin.driver.mapper.DriverGoodsLossIntervalDetailMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.yr.warehouse.admin.driver.data.DriverGoodsLossIntervalDetail">
+        <id column="id" property="id" />
+        <result column="goodsLossMonthlyMainId" property="goodsLossMonthlyMainId" />
+        <result column="areaStaffId" property="areaStaffId" />
+        <result column="lastRemainingOnRouteStock" property="lastRemainingOnRouteStock" />
+        <result column="pickingOrderCreateNum" property="pickingOrderCreateNum" />
+        <result column="wholeOrderCreateNum" property="wholeOrderCreateNum" />
+        <result column="unshippedCancelNum" property="unshippedCancelNum" />
+        <result column="shippedCancelNum" property="shippedCancelNum" />
+        <result column="replenishNum" property="replenishNum" />
+        <result column="returnWarehouseNum" property="returnWarehouseNum" />
+        <result column="remainingUnReplenishedNum" property="remainingUnReplenishedNum" />
+        <result column="onRouteStock" property="onRouteStock" />
+        <result column="useVerifyNum" property="useVerifyNum" />
+        <result column="wholeVerifyNum" property="wholeVerifyNum" />
+        <result column="profitLossNum" property="profitLossNum" />
+        <result column="createTime" property="createTime" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, goodsLossMonthlyMainId, areaStaffId, lastRemainingOnRouteStock, pickingOrderCreateNum, wholeOrderCreateNum, unshippedCancelNum, shippedCancelNum, replenishNum, returnWarehouseNum, remainingUnReplenishedNum, onRouteStock, useVerifyNum, wholeVerifyNum, profitLossNum, createTime
+    </sql>
+    <insert id="insertBatch">
+        insert into yr_driver_goods_loss_interval_detail
+            (goodsLossMonthlyMainId, areaStaffId, lastRemainingOnRouteStock,
+             pickingOrderCreateNum, wholeOrderCreateNum, unshippedCancelNum,
+             shippedCancelNum, replenishNum, returnWarehouseNum,
+             remainingUnReplenishedNum, onRouteStock, useVerifyNum, wholeVerifyNum, profitLossNum)
+        values
+        <foreach item="item" collection="driverGoodsLossIntervalDetails" separator=",">
+            (#{goodsLossMonthlyMainId}, #{item.areaStaffId}, #{item.lastRemainingOnRouteStock},
+            #{item.pickingOrderCreateNum}, #{item.wholeOrderCreateNum}, #{item.unshippedCancelNum},
+            #{item.shippedCancelNum}, #{item.replenishNum}, #{item.returnWarehouseNum},
+            #{item.remainingUnReplenishedNum}, #{item.onRouteStock}, #{item.useVerifyNum}, #{item.wholeVerifyNum}, #{item.profitLossNum})
+        </foreach>
+    </insert>
+    <select id="searchForPage" resultType="com.yr.warehouse.admin.driver.vo.DriverIntervalCargoDamageDetailVo">
+        select
+        dglid.areaStaffId as areaStaffId,
+        dglid.lastRemainingOnRouteStock as lastRemainingOnRouteStock,
+        dglid.pickingOrderCreateNum as pickingOrderCreateNum,
+        dglid.wholeOrderCreateNum as wholeOrderCreateNum,
+        dglid.unshippedCancelNum as unshippedCancelNum,
+        dglid.shippedCancelNum as shippedCancelNum,
+        dglid.replenishNum as replenishNum,
+        dglid.returnWarehouseNum as returnWarehouseNum,
+        dglid.remainingUnReplenishedNum as remainingUnReplenishedNum,
+        dglid.onRouteStock as onRouteStock,
+        dglid.useVerifyNum as useVerifyNum,
+        dglid.wholeVerifyNum as wholeVerifyNum,
+        dglid.profitLossNum as profitLossNum,
+        elid.lastRemainingEquipmentStock as lastRemainingEquipmentStock,
+        elid.totalReplenishNum as totalReplenishNum,
+        elid.equipmentSalesNum as equipmentSalesNum,
+        elid.theoreticalStockNum as theoreticalStockNum,
+        elid.actualStockNum as actualStockNum,
+        elid.profitLossNum as equipmentProfitLossNum,
+        dglid.profitLossNum + elid.profitLossNum as totalProfitLoss
+        from yr_driver_goods_loss_interval_detail as dglid
+        left join yr_equipment_loss_interval_detail as elid
+        on dglid.goodsLossMonthlyMainId = elid.goodsLossMonthlyMainId and
+        dglid.areaStaffId = elid.areaStaffId
+        where dglid.goodsLossMonthlyMainId = #{bo.goodsLossMonthlyMainId}
+        <if test="bo.areaStaffIds != null and bo.areaStaffIds.size() > 0">
+            and dglid.areaStaffId in
+            <foreach item="item" collection="bo.areaStaffIds" separator="," open="(" close=")" index="">
+                #{item}
+            </foreach>
+        </if>
+        order by dglid.areaStaffId
+    </select>
+    <select id="selectByMainIdAndAreaStaffId" resultType="com.yr.warehouse.admin.driver.data.DriverGoodsLossIntervalDetail">
+        select
+        <include refid="Base_Column_List"/>
+        from yr_driver_goods_loss_interval_detail
+        where goodsLossMonthlyMainId = #{goodsLossMonthlyMainId}
+        <if test="areaStaffIds != null and areaStaffIds.size > 0">
+            and areaStaffId in
+            <foreach item="item" collection="areaStaffIds" separator="," open="(" close=")" index="">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
+</mapper>

+ 97 - 0
warehouse-admin-data/src/main/resources/mapper/driver/DriverGoodsLossIntervalMainMapper.xml

@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yr.warehouse.admin.driver.mapper.DriverGoodsLossIntervalMainMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.yr.warehouse.admin.driver.data.DriverGoodsLossIntervalMain">
+        <id column="id" property="id" />
+        <result column="intervalStartTime" property="intervalStartTime" />
+        <result column="intervalEndTime" property="intervalEndTime" />
+        <result column="operatorId" property="operatorId" />
+        <result column="operatorChain" property="operatorChain" />
+        <result column="warehouseId" property="warehouseId" />
+        <result column="stockTakingType" property="stockTakingType" />
+        <result column="pickingOrderCreateNum" property="pickingOrderCreateNum" />
+        <result column="wholeOrderCreateNum" property="wholeOrderCreateNum" />
+        <result column="replenishNum" property="replenishNum" />
+        <result column="returnWarehouseNum" property="returnWarehouseNum" />
+        <result column="onRouteInventoryNum" property="onRouteInventoryNum" />
+        <result column="unshippedCancelNum" property="unshippedCancelNum" />
+        <result column="shippedCancelNum" property="shippedCancelNum" />
+        <result column="unReplenishedNum" property="unReplenishedNum" />
+        <result column="driverProfitLossNum" property="driverProfitLossNum" />
+        <result column="equipmentProfitLossNum" property="equipmentProfitLossNum" />
+        <result column="totalProfitLossNum" property="totalProfitLossNum" />
+        <result column="createTime" property="createTime" />
+        <result column="createUid" property="createUid" />
+        <result column="createName" property="createName" />
+        <result column="modifyTime" property="modifyTime" />
+        <result column="modifyUid" property="modifyUid" />
+        <result column="modifyName" property="modifyName" />
+        <result column="isDelete" property="isDelete" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, intervalStartTime, intervalEndTime, operatorId, operatorChain, warehouseId, stockTakingType, pickingOrderCreateNum, wholeOrderCreateNum, replenishNum, returnWarehouseNum, onRouteInventoryNum, unshippedCancelNum, shippedCancelNum, unReplenishedNum, driverProfitLossNum, equipmentProfitLossNum, totalProfitLossNum, createTime, createUid, createName, modifyTime, modifyUid, modifyName, isDelete
+    </sql>
+    <select id="searchLastTotalTime" resultType="java.time.LocalDateTime">
+        select MAX(endTime) from yr_warehouse_stock_taking_info where warehouseId = #{warehouseId} and stockTakingType = 'REGULAR'
+    </select>
+    <select id="searchForPage" resultType="com.yr.warehouse.admin.driver.vo.DriverIntervalCargoDamageVo">
+        select
+        dglim.id as id,
+        dglim.operatorId as operatorId,
+        dglim.operatorChain as operatorChain,
+        dglim.warehouseId as warehouseId,
+        wi.name as warehouseName,
+        dglim.intervalStartTime as intervalStartTime,
+        dglim.intervalEndTime as intervalEndTime,
+        dglim.stockTakingType as stockTakingType,
+        dglim.pickingOrderCreateNum as pickingOrderCreateNum,
+        dglim.wholeOrderCreateNum as wholeOrderCreateNum,
+        dglim.replenishNum as replenishNum,
+        dglim.returnWarehouseNum as returnWarehouseNum,
+        dglim.onRouteInventoryNum as onRouteInventoryNum,
+        dglim.unshippedCancelNum as unshippedCancelNum,
+        dglim.shippedCancelNum as shippedCancelNum,
+        dglim.unReplenishedNum as unReplenishedNum,
+        dglim.driverProfitLossNum as driverProfitLossNum,
+        dglim.equipmentProfitLossNum as equipmentProfitLossNum,
+        dglim.totalProfitLossNum as totalProfitLossNum
+        from yr_driver_goods_loss_interval_main as dglim
+        left join yr_warehouse_info as wi on dglim.warehouseId = wi.id
+        <where>
+            <if test="bo.operatorId != null and bo.operatorId > 0">
+                and dglim.operatorId = #{bo.operatorId}
+            </if>
+            <if test="bo.areaStaffIds != null and bo.areaStaffIds.size > 0">
+                and dglim.id in (
+                select goodsLossMonthlyMainId from yr_driver_goods_loss_interval_detail as dglid where dglid.areaStaffId in
+                <foreach collection="bo.areaStaffIds" item="areaStaffId" open="(" separator="," close=")">
+                    #{areaStaffId}
+                </foreach>
+                group by dglid.goodsLossMonthlyMainId
+                )
+            </if>
+            <if test="bo.createBeginTime != null">
+                and dglim.createTime >= #{bo.intervalStartTime}
+            </if>
+            <if test="bo.createEndTime != null">
+                and #{bo.intervalEndTime} >= dglim.createTime
+            </if>
+        </where>
+        order by dglim.id desc
+    </select>
+    <select id="queryLastByOperatorId" resultType="com.yr.warehouse.admin.driver.data.DriverGoodsLossIntervalMain">
+        select
+            <include refid="Base_Column_List" />
+            from yr_driver_goods_loss_interval_main where
+                                                        operatorId = #{operatorId}
+                                                      and warehouseId = #{warehouseId}
+                                                      and stockTakingType = 'REGULAR'
+                                                    and concat(#{intervalStartDate}, ' 03:59:59') = intervalEndTime
+        order by id desc limit 1
+    </select>
+
+</mapper>

Some files were not shown because too many files changed in this diff