2128 Commits
Author SHA1 Message Date
王奎兴 624b7d7d6e 发测试; 2026-08-20 09:05:10 +08:00
王奎兴 0b61b813a5 Merge branch 'dev' into dev_820 2026-08-20 09:03:05 +08:00
zhaoqing 6252866f7c fix(oms):明细表保额货物类型 2026-08-19 15:29:09 +08:00
zhaoqing 15c8a2b6e6 fix(wms):明细表入库时间 2026-08-19 09:14:44 +08:00
王奎兴 4b434a2cd2 Merge branch 'refs/heads/dev' into dev_820 2026-08-18 16:36:28 +08:00
王奎兴 0376f8328c 无货主流程; 2026-08-18 16:35:33 +08:00
王奎兴 58e3882ef4 添加修改物料去除货主校验; 2026-08-18 10:20:26 +08:00
王奎兴 1d96322370 添加修改物料去除货主校验; 2026-08-18 09:53:30 +08:00
zhaoqing 19857686aa fix(system):货主租赁明细定时任务开启 发30 2026-08-14 20:28:25 +08:00
王奎兴 d079e35374 发30 2026-08-14 19:25:03 +08:00
王奎兴 466a9fa31f 发31 2026-08-14 18:54:02 +08:00
zhaoqing d74a28bceb fix(oms):运输执行单排序查询报错 2026-08-14 18:21:18 +08:00
zhaoqing 1cc123917b fix(oms):运输执行单排序 2026-08-14 17:38:34 +08:00
rcx 39ebcb70ed wip(wms): 出库报关流程暂时搁置,注释相关代码恢复原出库交接流程 2026-08-14 16:53:22 +08:00
rcx e7e64252e7 feat(wms): 出库报关流程增加通宇组织限制,仅通宇(2830)启用报关判断 2026-08-14 16:38:48 +08:00
zhaoqing a400a34b0c fix(wms):出入库复制新增时清空数量相关数据 2026-08-14 16:35:29 +08:00
zhaoqing ac349ea8a8 fix(wms):出入库复制新增时清空数量相关数据 2026-08-14 15:55:28 +08:00
rcx 7356208228 发测试 2026-08-14 15:30:04 +08:00
rcx 5963f6ed3a fix(oms) : 运输管理 - 运输业务单 - 反审核订单 : 优化异常提示信息 2026-08-14 14:49:13 +08:00
王奎兴 6f28cfdda0 Merge branch 'dev' into dev-ty1.2 2026-08-14 14:40:20 +08:00
王奎兴 5c472ad04e 分配逻辑; 2026-08-14 14:39:20 +08:00
王奎兴 070cdcd5de 仓码820 2026-08-14 14:36:46 +08:00
zhaoqing 061c5bc600 fix(wms):出入库复制新增时清空数量相关数据 2026-08-14 14:08:41 +08:00
zhaoqing e5fea50466 fix(wms):修改导出 2026-08-14 11:36:08 +08:00
rcx 6a87c5a75a fix(oms): 预约入库单列表接口补充申报数量字段
reservationStockInOrderApi/list 返回缺少申报数量,原因为查询只查主表、
未关联明细表汇总,且返回对象无对应字段

- ReservationStockInOrderPO 新增 declaredQuantity 字段
- StockInOrderResult resultMap 增加 declaredQuantity 映射
- selectStockInOrderPo 片段增加 reservation_in_material_detail
  的 DECLARED_QUANTITY 汇总子查询(按 level=1 过滤主明细行)
2026-08-14 11:02:18 +08:00
zhaoqing 63dcfaf028 fix(wms):复制新增修复 2026-08-14 09:39:41 +08:00
zhaoqing c80e4b3ca3 fix(wms):尺寸赋值修改 2026-08-13 18:08:49 +08:00
rcx 3240e57c3e fix(lease): 修复仓库出租率导出总面积、日租率计算错误
导出时总面积被算成全系统所有仓库库区面积之和(6168),日租率因此也错误(0.16)。
根因:导出方法调用 warehouseOccupancyRate(),该方法在不传 warehouseId 时
totalArea 会累加所有仓库面积。

- 导出方法不再调用 warehouseOccupancyRate(),改为自行按(业务日期+仓库)维度计算
- 总面积按仓库单独累加库区面积(通宇关务测试仓库 100,不再 6168)
- 整租/散租面积按(日期+仓库)聚合
- 日租率 = (整租+散租)/该仓库总面积×100,直接输出百分比(10.00)
- 增加总面积为0的除零保护
- 查询接口 warehouseOccupancyRate() 不受影响
2026-08-13 17:43:44 +08:00
rcx e35fa7d48e Merge remote-tracking branch 'origin/dev-ty1.2' into dev-ty1.2 2026-08-13 17:21:21 +08:00
rcx d5bdb5b419 feat(oms): 运输业务单新增反审核功能
审核通过后支持反审核,恢复订单到待审核状态以便修改
- 新增 /businessDocumentOrderApi/cancelAudit 接口
- 仅"审核通过(reviewStatus=1)"且未生成执行单的订单允许反审核
- 拆单主单反审核时级联清理生成的子单、子单地址及配送明细回填
2026-08-13 17:20:41 +08:00
王奎兴 fd1436da9c Merge branch 'dev' into dev-ty1.2
# Conflicts:
#	mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java
#	mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/todo/StockInOrderDO.java
#	mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/StockOutOrderDO.java
#	mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockInOrder/StockInOrderDTO.java
#	mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutOrder/StockOutOrderDTO.java
2026-08-13 16:46:09 +08:00
rcx 802a2994cc Merge remote-tracking branch 'origin/dev-ty1.2' into dev-ty1.2 2026-08-13 15:07:03 +08:00
rcx 3d3036cebf feat(wms): 出库报关流程改造
1. 交接环节增加 needDeclareFlag 判断:需报关单置为「已交接(13)」不扣库存,
   不需报关单维持原逻辑直接「已出库(9)」扣库存。
2. 新增定时任务每小时调 sendDec 查报关结果,dec_status=P(海关已放行) 时
   状态 13→9 并扣库存+推OMS。
3. 新增 /stockOutOrderApi/customsConfirmOut 接口支持人工触发报关确认出库。
4. 出库单状态枚举新增 13-已交接。
5. WMS 启动类新增 @EnableScheduling 开启定时任务支持。
2026-08-13 15:06:08 +08:00
zhaoqing 123a5af241 fix(oms):运输业务单排序 2026-08-13 14:15:03 +08:00
zhaoqing da31a81415 fix(oms):复制新增报错 2026-08-13 13:54:20 +08:00
zhaoqing 84d4df0809 fix(system):修改单位返回值逻辑 2026-08-13 10:31:49 +08:00
zhaoqing d17146dc4b fix(oms):运输业务单排序 2026-08-13 10:03:39 +08:00
zhaoqing 44e9eb47bc fix(system):单位返回值修改 2026-08-12 18:34:35 +08:00
rcx bc9a4f7204 Merge remote-tracking branch 'origin/dev-ty1.2' into dev-ty1.2 2026-08-12 18:18:09 +08:00
rcx b37edf7c63 feat(oms): 业务单号改为yyMMdd+每日序号(每日重置,对齐TMS长度)
对应需求#072703,单号规则:年月日001,后面001每天重置
2026-08-12 18:17:29 +08:00
zhaoqing f6125e68bf fix(bms):sql 2026-08-12 18:04:51 +08:00
zhaoqing d6037d5846 fix(bms):单位 数量 单价 2026-08-12 18:01:34 +08:00
zhaoqing df51abe33f fix(wms):total_volume,total_area字段可为空 2026-08-12 17:53:31 +08:00
zhaoqing 5cf46604fa feat(system):查询信息根据编码和组织ID 2026-08-12 16:44:47 +08:00
王奎兴 208024a6cc Merge remote-tracking branch 'origin/dev' into dev 2026-08-12 15:20:46 +08:00
王奎兴 1d01431354 货主账号查询入库业务单报错处理; 2026-08-12 15:20:36 +08:00
高正杨 cbaab0ffee 收货上架单号规则; 2026-08-12 15:09:13 +08:00
王奎兴 a310c9dfa6 Merge remote-tracking branch 'origin/dev' into dev 2026-08-12 14:02:09 +08:00
王奎兴 3866bfee05 生成单号规则处理;+ 2026-08-12 14:01:56 +08:00
zhaoqing 5032cf2413 fix(bms):收款时间查询 2026-08-12 11:40:13 +08:00
zhaoqing a10cfb0f55 fix(bms):收款设置收款时间 2026-08-12 10:19:57 +08:00
秦鸿展 59ede5ceb7 31 2026-08-12 00:04:33 +08:00
秦鸿展 de4d4fa70d 30 2026-08-12 00:00:43 +08:00
秦鸿展 7e496834ae 30 2026-08-11 23:16:20 +08:00
秦鸿展 300b5ac239 角色信息分配错误 2026-08-11 23:11:25 +08:00
秦鸿展 9519d8610b 31 2026-08-11 18:20:37 +08:00
秦鸿展 064a87e751 委托方导入修改 2026-08-11 18:15:58 +08:00
rcx 9e2dc508a8 feat(lease): 新增仓库出租率及客户租赁明细导出功能
- 新增 WarehouseLeaseExportVO(10列:仓库/业务日期/整租面积/散租面积/总面积/日租率/组织/货主/租赁方式/租赁面积)
- LeaseApplicationService 新增 exportOccupancyRate 方法,复用出租率与明细查询,按日期+仓库映射拼接汇总列
- ShipperLeaseDetailsApi 新增 GET /export 接口,入参与查询接口一致,使用项目通用 ExcelUtil 导出
- 业务日期按降序排序,日期格式 yyyy-MM-dd
对应需求:仓库出租率 - 增加导出功能(出租率+客户租赁明细)
2026-08-11 18:05:00 +08:00
rcx 6a84abf6dd feat(system模块lease): 租赁管理增加停用功能,停用后不参与出租率计算
- LEASE 表新增 status 字段(1=启用,0=停用)
- Lease/LeasePO/LeaseDO/LeaseDTO 新增 status 字段
- LeaseMapper.xml 增加 status 查询字段与过滤条件
- 新增 LeaseApi.updateStatus 接口(PUT /updateStatus/{leaseIds}/{status})
- 出租率计算(shipperLeaseDetails)过滤 status=1,停用租赁不再生成出租率数据
一个SQL文件,增加了一个字段,在测试和生产环境都需要执行
对应需求:仓库出租率 - 租赁管理增加停用功能
2026-08-11 18:03:09 +08:00
zhaoqing 8b4e785de3 fix(wms):出入库查询和导出修改 2026-08-11 17:46:49 +08:00
赵辉 c95fdfc067 委托方查询修改 2026-08-11 11:50:40 +08:00
zhaoqing 40a906a9fb fix(system):修改库区库位查询 添加nullify条件 2026-08-11 11:07:40 +08:00
rcx d91aadca0b feat(oms): 入仓委托单「下发到WMS」功能开发
实现 issueOrder 下发逻辑,推送主单与明细至 WMS;增加已审核校验、防重复下发、仓库必填校验
2026-08-11 09:16:28 +08:00
王奎兴 898cc32452 发测30 2026-08-11 02:03:10 +08:00
王奎兴 6cf2a8bc74 发测31 2026-08-11 02:01:20 +08:00
王奎兴 bce9969589 发测30 2026-08-11 01:58:44 +08:00
王奎兴 b73eb84b87 发测30 2026-08-10 22:32:58 +08:00
王奎兴 7d0d24ea77 发测31 2026-08-10 22:26:36 +08:00
秦鸿展 dd5280ab78 30 2026-08-10 21:51:08 +08:00
秦鸿展 bc6b2ba777 BI月台动态真实数据 2026-08-10 21:20:35 +08:00
秦鸿展 f58691615b BI月台动态真实数据 2026-08-10 21:01:04 +08:00
王奎兴 15fdace0bc 发测试 2026-08-10 20:59:25 +08:00
王奎兴 0904b78846 调整备注无效修改; 2026-08-10 20:56:12 +08:00
秦鸿展 734b51bfec BI月台动态真实数据 2026-08-10 20:10:54 +08:00
王奎兴 784d04ebec Merge remote-tracking branch 'origin/dev' into dev 2026-08-10 20:04:08 +08:00
王奎兴 b29632cebc 发30 2026-08-10 20:03:59 +08:00
秦鸿展 3211cfe892 Merge remote-tracking branch 'origin/dev' into dev 2026-08-10 20:00:38 +08:00
秦鸿展 32e8be5363 BI月台动态真实数据 2026-08-10 20:00:20 +08:00
王奎兴 207734c75e 发31 2026-08-10 20:00:10 +08:00
秦鸿展 8eb280f2b9 BI月台动态真实数据 2026-08-10 19:58:05 +08:00
王奎兴 14a5aedf15 Merge branch 'dev' into feature/dev-0729 2026-08-10 18:14:55 +08:00
秦鸿展 d4f660bc7e BI月台动态真实数据 2026-08-10 17:59:59 +08:00
秦鸿展 64bb96c97c BI月台动态真实数据 2026-08-10 17:36:04 +08:00
王奎兴 9df65779ad 保存电子签名id重复; 2026-08-10 17:26:48 +08:00
王奎兴 176a0aa879 已审核入库单电子签名也显示; 2026-08-10 10:03:35 +08:00
王奎兴 1241256787 电子签名签名方式修改; 2026-08-10 09:57:51 +08:00
王奎兴 5e65d63a4f 出入库单按规则生成; 2026-08-08 18:36:36 +08:00
王奎兴 296176c85e 出入库单按规则生成; 2026-08-08 18:02:30 +08:00
王奎兴 993746ee41 出库单按规则生成; 2026-08-08 17:47:59 +08:00
王奎兴 6a0818350a 出库单按规则生成;执行单回显通知单备注; 2026-08-08 16:41:22 +08:00
王奎兴 1b8a75aea5 入库单按规则生成; 2026-08-08 16:04:46 +08:00
zhaoqing 76a290dc58 Merge branch 'dev-ty1.2' into dev 2026-08-08 15:12:27 +08:00
rcx 969d90fff5 fix(wms 库存模块): 修复库存查询各页签分组维度不符合需求的问题
1. queryListByWl(物料查询):原按单物料分组会把同一物料跨仓库库存合并成一行,丢失仓库维度。子查询 partition by 增加 warehouse_id、join 增加 warehouse_id 关联、外层 GROUP BY 增加 warehouse_id,改为按"物料+仓库"汇总。
2. queryListByWlKw(物料/库位查询):GROUP BY 增加 shipper_id,改为按"货主+库位+物料"汇总,避免不同货主在同库位同物料的库存被错误合并。
3. queryListByHz(按货主查询):GROUP BY 增加 warehouse_id,改为按"货主+仓库"汇总;hzwl 分支改走 queryListByHz,符合"按货主查询:货主+仓库"需求。
2026-08-08 15:08:01 +08:00
王奎兴 23b5f96a0c Merge branch 'dev-ty1.2' into dev 2026-08-08 14:26:11 +08:00
zhaoqing 02de8706e2 fix(wms): 复核状态逻辑修改 2026-08-08 11:46:55 +08:00
王奎兴 e6aa8d59e2 发测试 2026-08-08 11:41:13 +08:00
王奎兴 4b29406701 Merge branch 'dev' into feature/dev-0729
# Conflicts:
#	mhd_bms/src/main/resources/bootstrap.yml
2026-08-08 11:39:21 +08:00
王奎兴 1c29c7e5e4 入库调整备注; 2026-08-08 11:36:58 +08:00
王奎兴 add7ef60db 签名方式修改; 2026-08-08 10:27:35 +08:00
王奎兴 d14cea759a 签名方式修改; 2026-08-08 10:25:59 +08:00
rcx 4fde6e1a9c Merge remote-tracking branch 'origin/dev-ty1.2' into dev-ty1.2 2026-08-08 10:08:22 +08:00
rcx 0f88ad75b9 fix(wms 库存模块): 修复库存汇总分组拆分bug并补充库存调整仓库空值校验
1. queryListByHzWlUnit、queryListByWlExpiry 的 GROUP BY 移除
   shipper_code/material_code 等描述列,只保留ID列;对应SELECT
   描述列改用MAX()聚合,避免同ID明细因描述列NULL/值不一致被错误拆分。
2. 库存调整接口新增 ObjectUtil.isNotNull(warehousePO) 空值校验。
2026-08-08 10:07:39 +08:00
王奎兴 067fe1c2c9 签名方式修改; 2026-08-08 10:04:06 +08:00
zhaoqing 6b2adce82f fix(system): 复核状态逻辑修改 2026-08-08 10:01:54 +08:00
王奎兴 bee31cf944 签名方式修改; 2026-08-08 09:59:00 +08:00
王奎兴 552a685bb1 pda签名; 2026-08-08 09:41:29 +08:00
高正杨 1c46de4fb7 pda签名; 2026-08-07 20:46:54 +08:00
王奎兴 a66177e21b pda签名; 2026-08-07 20:25:05 +08:00
王奎兴 fedeece533 扫二维码签名;入库单号规则; 2026-08-07 20:01:01 +08:00
zhaoqing ae138915ae fix(system): 库位库区排序修改 2026-08-07 18:51:04 +08:00
王奎兴 57b8dcfb02 feign查询仓库信息添加字段; 2026-08-07 18:13:24 +08:00
王奎兴 b45af55cdd 生成入库单同步生成电子签名; 2026-08-07 17:54:32 +08:00
zhaoqing 3991496617 发测试bms wms system 2026-08-07 17:32:11 +08:00
王奎兴 261bb07fb0 Merge branch 'dev-ty1.2' into dev 2026-08-07 17:23:38 +08:00
王奎兴 b18fa5938a 样品出库不修改库存; 2026-08-07 17:13:05 +08:00
zhaoqing ba3a90471a feat(bms):计费规格 查询条件 添加费用科目 2026-08-07 15:56:47 +08:00
rcx c5a39d23f2 feat: wms - 库存管理 - 库存查询 -库存调整推送逻辑优化
- 推送 OMS 逻辑增加仓库启用状态判定,未启用 OMS 则不推送
2026-08-07 15:13:19 +08:00
rcx cb136a19b4 feat: 「库存管理」-「库存查询」增加按货主/物料查询
- 实现按(货主 + 物料 + 仓库 + 包装单位)组合聚合逻辑,更新日期取组内最新时间
2026-08-07 15:08:05 +08:00
zhaoqing 0f26cd3d0d feat(bms):新增账单费用支持修改(包含税费相关修改) 2026-08-07 09:40:32 +08:00
rcx 57649dbdfa fix(库存模块): 修复库存调整无法生效 bug
库存调整:修复所有商品调整点击确认之后未生效 bug
2026-08-06 18:07:38 +08:00
王奎兴 b55c890f7e 仓库管理添加单号生成规则字段; 2026-08-06 17:12:40 +08:00
rcx 315d96063a fix(库存模块): 修复库存调整逻辑并优化即时库存接口
库存调整:修复部分商品在点击“完成库存调整”后数据未更新的问题。

即时库存:移除 JSON 返回列表中每个对象冗余的库存数量合计字段,改为在最外层统一返回,优化并缩短接口整体响应时间。
2026-08-06 17:08:54 +08:00
秦鸿展 897e5f195f 测试 2026-08-06 16:57:20 +08:00
秦鸿展 b5b7143d7c 30 2026-08-06 16:41:13 +08:00
王奎兴 f06c210ae9 仓库管理添加单号生成规则字段; 2026-08-06 16:40:56 +08:00
秦鸿展 4f38ac7cd6 ID重复问题 2026-08-06 16:39:36 +08:00
王奎兴 488fdfc50e 业务单添加执行单号; 2026-08-06 15:42:22 +08:00
秦鸿展 1cdc1878a0 31 2026-08-06 15:40:20 +08:00
秦鸿展 2c91368278 ID错误问题 2026-08-06 15:37:42 +08:00
秦鸿展 c0f70715c7 测试 2026-08-06 15:30:04 +08:00
王奎兴 c93445ca4c 业务单添加执行单号回显; 2026-08-06 15:18:15 +08:00
秦鸿展 cb9d09c899 30 2026-08-06 14:22:16 +08:00
王奎兴 f3aec5d42f 系统超时; 2026-08-06 14:14:22 +08:00
王奎兴 bcd7991725 推送nc结算币种; 2026-08-06 13:43:50 +08:00
王奎兴 db5e0e1a66 推送nc结算币种; 2026-08-06 13:39:12 +08:00
王奎兴 ba8dbdd859 推送nc结算币种; 2026-08-06 13:35:24 +08:00
王奎兴 f1967dd40f 发31 2026-08-06 09:15:16 +08:00
王奎兴 505f0aff5e 发31 2026-08-05 20:44:46 +08:00
王奎兴 b9dd2999f1 发30 2026-08-05 20:40:57 +08:00
王奎兴 091c971f30 发30 2026-08-05 20:40:12 +08:00
王奎兴 2de4efbe65 发测试 2026-08-05 20:18:40 +08:00
zhaoqing e5ef8740de 发测试system 2026-08-05 20:02:19 +08:00
王奎兴 661e57ce62 发30 2026-08-05 19:23:05 +08:00
王奎兴 49233cf19b 发31 2026-08-05 19:20:52 +08:00
王奎兴 b96db591f2 发31 2026-08-05 19:19:00 +08:00
王奎兴 236b047f5e 发30 2026-08-05 19:05:43 +08:00
王奎兴 feba6ff672 发31 2026-08-05 19:01:46 +08:00
王奎兴 8caf83b823 回显应收应付; 2026-08-05 18:38:30 +08:00
rcx 789c9ac29c Merge remote-tracking branch 'origin/dev' into dev 2026-08-05 18:33:44 +08:00
rcx 925eeba899 Merge branch 'dev-ty1.2' into dev 2026-08-05 18:32:42 +08:00
王奎兴 568ce3f96d Merge branch 'dev' into dev-bms-0723
# Conflicts:
#	mhd_bms/src/main/resources/bootstrap.yml
#	mhd_bms/src/main/resources/mapper/SettlementCustomersMapper.xml
2026-08-05 18:19:19 +08:00
rcx 56b39702b5 feat:WMS 模块 「库存查询」-「即时库存」
1. 完成即时库存列表接口改造:JSON 返回每个对象中补充规格型号与库存数量合计字段。
     2. 支持前端基于规格型号进行即时库存的组合条件查询
2026-08-05 18:18:08 +08:00
王奎兴 0ee27d796f 回显应收应付; 2026-08-05 18:16:25 +08:00
王奎兴 7842ceaf71 回显应收应付; 2026-08-05 18:13:30 +08:00
王奎兴 987a7c564d 发31 2026-08-05 17:54:11 +08:00
王奎兴 18c8c4d18d 发31 2026-08-05 17:32:17 +08:00
王奎兴 0f4da97358 新增应收账单推送nc 2026-08-05 17:30:17 +08:00
秦鸿展 2787f7651e 30 2026-08-05 17:14:03 +08:00
王奎兴 b9fe4bc4d2 新增应收账单推送nc 2026-08-05 17:01:52 +08:00
王奎兴 7a6c570a88 查货主卡死; 2026-08-05 15:17:00 +08:00
王奎兴 f1567eb81e 查货主卡死; 2026-08-05 14:48:09 +08:00
王奎兴 885d38565c 业务单详情添加执行单信息; 2026-08-05 14:45:32 +08:00
王奎兴 8414fa1509 业务单详情添加执行单信息; 2026-08-05 14:00:11 +08:00
hjx 4b382e4d8f Merge remote-tracking branch 'origin/dev-ty1.2' into dev-ty1.2 2026-08-05 09:55:47 +08:00
hjx b80668145a feat:参照 WMS 入库单规则,通宇「入仓委托单」需新增「入库仓库」字段,并设置为必填项,设置「入库仓库」校验具体
fix:修复【入库管理-收货管理】中批量设置货物参数(数量/面积/体积/尺寸)时,部分字段留空导致已有数据被重置丢失的问题。
2026-08-05 09:49:19 +08:00
王奎兴 476d7c8b0e 发测试 2026-08-04 17:18:22 +08:00
秦鸿展 93dd653ca9 31 2026-08-04 16:35:35 +08:00
秦鸿展 f84c7b0843 BI月台字段修改 2026-08-04 16:34:41 +08:00
秦鸿展 3feb3851e4 30 2026-08-04 14:27:17 +08:00
秦鸿展 38a04d6d30 BI月台新增字段 2026-08-04 14:12:00 +08:00
王奎兴 81841b7ad0 发测试 2026-08-04 14:00:34 +08:00
王奎兴 e366f78081 发测试 2026-08-04 13:58:31 +08:00
王奎兴 a12ac94dd3 bms结算对象同步; 2026-08-04 11:46:59 +08:00
zhaoqing d1ce20abae feat(sys):合同导出 2026-08-04 10:29:48 +08:00
王奎兴 df6b11a8bb 本地 测试文件上传下载; 2026-08-04 09:30:13 +08:00
秦鸿展 c58112a719 正式31 2026-08-03 20:43:22 +08:00
秦鸿展 a4a29c7c8e 正式30 2026-08-03 20:33:23 +08:00
秦鸿展 9283cc9df8 BI报表增加字段 2026-08-03 18:23:21 +08:00
王奎兴 076c915a4c 发31 2026-08-03 16:23:38 +08:00
王奎兴 55c958bde5 发30 2026-08-03 16:13:10 +08:00
秦鸿展 ef53355b87 发测试 2026-08-03 11:47:29 +08:00
zhaoqing c5babe103e feat(sys):合同新增报错 2026-07-31 23:57:48 +08:00
王奎兴 287ae8f22b Merge branch 'dev' into dev-ty1.2 2026-07-31 22:39:30 +08:00
王奎兴 04545a8219 Merge branch 'dev' into feature/dev-0729 2026-07-31 18:05:59 +08:00
王奎兴 1779bc2b23 发30 2026-07-31 18:02:30 +08:00
王奎兴 2a56ce433f 发31 2026-07-31 17:57:50 +08:00
王奎兴 2dd8e7f0a2 发30 2026-07-31 17:51:26 +08:00
王奎兴 b8605c6b43 预约单老系统数据导入; 2026-07-31 17:12:24 +08:00
秦鸿展 5fec54ac63 发测试 2026-07-31 16:41:19 +08:00
秦鸿展 564b8ff8aa 发测试 2026-07-31 16:07:17 +08:00
王奎兴 76a5c987b2 预约单老系统数据导入; 2026-07-31 15:53:35 +08:00
王奎兴 f6ee1a3eee 预约单老系统数据导入; 2026-07-31 15:47:20 +08:00
zhaoqing 1297f920be fix(bms):单据计费查询条件添加 2026-07-31 14:59:20 +08:00
王奎兴 d4ba4f0c0b Merge remote-tracking branch 'origin/dev' into dev 2026-07-30 17:22:11 +08:00
王奎兴 0ed45fee69 仓库出租率计算定时任务重复执行问题;发30; 2026-07-30 17:21:59 +08:00
秦鸿展 69412f7293 发测试 2026-07-30 11:43:06 +08:00
秦鸿展 2bd4d5bb63 发测试 2026-07-30 10:08:24 +08:00
秦鸿展 8b9b29dbf1 发测试 2026-07-30 10:04:03 +08:00
zhaoqing 5890660fe4 feat(bms):导出应收账单 2026-07-29 18:39:05 +08:00
zhaoqing fa6ccad965 feat(bms):导出应收账单 2026-07-29 18:29:54 +08:00
王奎兴 95d232623b Merge branch 'dev' into feature/dev-0729 2026-07-29 18:09:54 +08:00
秦鸿展 e12beb1e0c 发30 2026-07-29 17:23:52 +08:00
秦鸿展 8c722deac6 发测试 2026-07-29 16:34:59 +08:00
秦鸿展 a1494846db 编辑库区 2026-07-29 16:33:40 +08:00
秦鸿展 0d70450997 费用修改 2026-07-29 15:51:11 +08:00
zhaoqing 6c6649368c sql(bms) 2026-07-29 15:24:41 +08:00
zhaoqing 92d53ad90d fix(bms):新增合同(费用类别) 2026-07-29 15:21:36 +08:00
秦鸿展 8b9cd8c749 复制订单 2026-07-29 14:57:31 +08:00
秦鸿展 498574763b OMS批量签名 2026-07-29 14:34:54 +08:00
王奎兴 c200645a15 发30 2026-07-29 14:32:11 +08:00
秦鸿展 c852ef1b8b OMS批量签名 2026-07-29 14:29:56 +08:00
王奎兴 674f56b2c2 库存数量和单位名称 2026-07-29 14:25:12 +08:00
王奎兴 44e7581b2c 发31 2026-07-29 11:02:00 +08:00
王奎兴 01b2723e1f 维他奶导入添加库存信息; 2026-07-29 10:54:22 +08:00
秦鸿展 489515f865 30 2026-07-28 21:18:04 +08:00
秦鸿展 d8aa1e9490 31 2026-07-28 21:10:15 +08:00
秦鸿展 07d9dacded 31 2026-07-28 16:10:37 +08:00
秦鸿展 538a3b42bd 登录校验手机号格式注释 2026-07-28 16:07:00 +08:00
秦鸿展 f660c66027 修复启动报错 2026-07-28 15:50:17 +08:00
秦鸿展 c1e062082a OMS的签名表以及详情,WMS的批量签名 2026-07-28 15:43:38 +08:00
赵辉 55dfb6f4a1 30 2026-07-28 14:47:06 +08:00
赵辉 1f84ad71d8 单点登录修改 2026-07-28 14:43:31 +08:00
赵辉 4d0eb901c9 单点登录修改 2026-07-28 14:43:24 +08:00
秦鸿展 23984e69d6 上架库存货主显示异常,出库复核数量显示BUG 2026-07-28 11:06:07 +08:00
秦鸿展 a1f4953fb5 30 2026-07-25 22:08:20 +08:00
秦鸿展 25ed516000 31 2026-07-25 21:55:16 +08:00
秦鸿展 9f2e8f1855 测试 2026-07-25 21:02:13 +08:00
秦鸿展 1488405397 31 2026-07-25 19:51:53 +08:00
秦鸿展 ad55d49d6b 测试 2026-07-25 19:49:47 +08:00
秦鸿展 7aa7576799 测试 2026-07-25 19:37:11 +08:00
秦鸿展 96c95dabc6 测试 2026-07-25 19:31:11 +08:00
秦鸿展 f3fc2b3093 31 2026-07-25 17:54:17 +08:00
秦鸿展 a112aa1163 30 2026-07-25 17:21:22 +08:00
秦鸿展 e77937fb89 批量电子签名 2026-07-25 17:15:04 +08:00
秦鸿展 6b78248531 出库签名列表查询以及详情 2026-07-25 13:32:26 +08:00
秦鸿展 57cce338b1 导入物料BUG修改 2026-07-25 13:13:32 +08:00
秦鸿展 33a6e875ce 导入物料BUG修改 2026-07-25 10:16:17 +08:00
秦鸿展 cdc098fdd3 导入物料BUG修改 2026-07-25 10:09:26 +08:00
秦鸿展 e544b76db6 导入物料BUG修改 2026-07-25 10:05:12 +08:00
秦鸿展 4f727fadc1 导入物料BUG修改 2026-07-24 20:01:18 +08:00
秦鸿展 5b98ae9435 导入物料BUG修改 2026-07-24 19:42:40 +08:00
秦鸿展 82909efe6b 导入物料BUG修改 2026-07-24 18:49:14 +08:00
秦鸿展 21db85ef2b 入库查询签名列表以及详情 2026-07-24 16:46:42 +08:00
zhaoqing f32f43ab18 feat(oms):出入库明细查询 2026-07-24 15:46:30 +08:00
zhaoqing eb3ada8335 feat(oms):出入库明细查询 2026-07-24 14:19:04 +08:00
zhaoqing 49f6832d3f feat(oms):出库明细查询 2026-07-24 11:24:10 +08:00
zhaoqing 60bc140195 feat(oms):入库明细查询 2026-07-24 10:10:57 +08:00
zhaoqing d268718f9b fix(oms):入库/出库 预约/业务单号生成 2026-07-23 17:53:32 +08:00
王奎兴 895c8d6a4b 发测试; 2026-07-23 17:48:19 +08:00
王奎兴 914a751d96 bms2.0应收单和收款单推送nc修改; 2026-07-23 17:46:32 +08:00
王奎兴 fc16c1edf2 发30 2026-07-23 14:54:15 +08:00
王奎兴 4bd655e4da nc推送改造(进行中); 2026-07-23 14:51:14 +08:00
王奎兴 a96b03a060 nc推送改造(进行中); 2026-07-23 14:49:19 +08:00
zhaoqing 8681042a32 发测试 2026-07-23 11:47:53 +08:00
高正杨 44c9953875 oms启动报错 2026-07-23 11:00:06 +08:00
zhaoqing c48b8aa39a fix(oms):预约确认后,物料明细查询问题 2026-07-23 10:50:57 +08:00
王奎兴 36b31e5d52 Merge branch 'dev' into dev_crkbh_260721
# Conflicts:
#	mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/repository/persistence/ReservationStockInOrderImpl.java
#	mhd_oms/src/main/resources/bootstrap.yml
2026-07-23 10:44:31 +08:00
秦鸿展 f5c096fe39 发30 2026-07-23 00:39:52 +08:00
秦鸿展 75e77c0476 发31 2026-07-23 00:18:41 +08:00
王奎兴 709b151e3f 参数类型 2026-07-22 22:45:08 +08:00
王奎兴 fa731e1fa5 发30 2026-07-22 22:44:26 +08:00
王奎兴 d1448b2746 发30 2026-07-22 22:42:39 +08:00
王奎兴 32d38b7721 发30 2026-07-22 22:08:21 +08:00
王奎兴 ebc7bee5be 发31 2026-07-22 22:06:05 +08:00
王奎兴 19ca4bbe6c 物料根据组织查询; 2026-07-22 21:53:09 +08:00
王奎兴 2f6988abac 修改预约单更新预约数量 2026-07-22 21:46:28 +08:00
王奎兴 e322e28d05 修改预约单更新预约数量 2026-07-22 21:44:22 +08:00
zhaoqing 9f70b236a0 fix(oms):修改导入的单号 2026-07-22 21:35:29 +08:00
秦鸿展 7dcedab498 委托方导入修改 2026-07-22 21:03:07 +08:00
zhaoqing e2f5896be2 fix(oms):修改预约确认的单号生成 2026-07-22 20:14:19 +08:00
秦鸿展 effa681709 导入修改 2026-07-22 19:01:18 +08:00
秦鸿展 8ea6a82acd 发测试 2026-07-22 16:26:45 +08:00
秦鸿展 e7f2a79dee 委托方导入修改 2026-07-22 14:31:15 +08:00
秦鸿展 8a78122fcb 委托方导入修改以及OMS库存查询调整 2026-07-22 14:10:29 +08:00
zhaoqing 49b3722328 发测试 2026-07-22 13:43:29 +08:00
zhaoqing cb96a3700d 区分预约单和业务单 2026-07-22 11:45:06 +08:00
秦鸿展 9250d03ab1 委托方导入 2026-07-22 11:26:19 +08:00
秦鸿展 494f49ee1b 库存查询按照过期日期来过滤查询 2026-07-22 10:39:34 +08:00
zhaoqing be597775d9 fix(oms):修改预约单 2026-07-21 22:10:27 +08:00
zhaoqing 9eff15e483 fix(oms):修改orderNo 2026-07-21 21:51:33 +08:00
zhaoqing 496548558b fix(oms):出入库预约单单号 2026-07-21 21:20:56 +08:00
zhaoqing 7bd2e0b87c fix(oms):出入库执行单修改 2026-07-21 20:29:38 +08:00
zhaoqing 266d416912 fix(oms):出入库预约确认 2026-07-21 20:00:06 +08:00
zhaoqing f2216adb06 fix(oms):出库执行修改 2026-07-21 19:08:43 +08:00
zhaoqing b825f1a789 fix(oms):入库执行修改 2026-07-21 18:51:53 +08:00
zhaoqing 6177b70b34 feat(oms):出库预约单号 2026-07-21 17:57:35 +08:00
zhaoqing 30dd4abe43 feat(oms):入库预约单号 2026-07-21 17:34:24 +08:00
王奎兴 5dd23e9f42 Merge branch 'dev_jinji' into dev 2026-07-21 16:53:01 +08:00
秦鸿展 f91a2248af 调整账单时间为保存修改 2026-07-21 16:49:53 +08:00
王奎兴 b4db0a8cdb 修改预约单更新预约数量 2026-07-21 15:42:52 +08:00
秦鸿展 65fd1e6a19 31 2026-07-20 16:18:19 +08:00
秦鸿展 bab7f048eb 31 2026-07-20 16:18:12 +08:00
秦鸿展 f543c4a00f 新增费用科目BUG修改 2026-07-20 16:16:33 +08:00
秦鸿展 98004ba989 30 2026-07-20 15:40:18 +08:00
秦鸿展 76c8b1f5aa 备注字段修改 2026-07-20 15:38:34 +08:00
秦鸿展 8542a25238 31 2026-07-20 14:43:33 +08:00
秦鸿展 22590abbb8 调整账单报错 2026-07-20 14:40:11 +08:00
秦鸿展 bb68e118fa 30 2026-07-20 12:51:19 +08:00
秦鸿展 1d28170d46 新增账单金额不一致报错 2026-07-20 12:47:00 +08:00
秦鸿展 1b85098063 发31 2026-07-17 22:18:59 +08:00
秦鸿展 d6d9ee1d5e 发30 2026-07-17 22:14:14 +08:00
秦鸿展 2d9a4eaad2 发30 2026-07-17 21:44:52 +08:00
秦鸿展 1423d5d140 发30 2026-07-17 21:39:53 +08:00
秦鸿展 80e1639b83 发测试 2026-07-17 20:37:17 +08:00
秦鸿展 07862301e6 应收账单新增报错 2026-07-17 20:31:35 +08:00
秦鸿展 d6fae412cd 应收账单新增报错 2026-07-17 20:17:04 +08:00
秦鸿展 7ee70dd06c 应收账单新增报错 2026-07-17 20:11:34 +08:00
秦鸿展 6f33fc3b64 应收账单添加明细报错 2026-07-17 19:40:49 +08:00
王奎兴 a9e3d6cb6b Merge branch 'dev' into dev_jinji 2026-07-17 18:06:41 +08:00
王奎兴 5fe5ce7e82 复核添加货主id查询; 2026-07-17 18:04:56 +08:00
秦鸿展 5cc987c2c4 应收账单明细修改 2026-07-17 16:14:21 +08:00
秦鸿展 9ed1797b59 紧急任务修改 2026-07-17 15:32:11 +08:00
秦鸿展 2373be59e6 紧急任务修改 2026-07-17 15:27:17 +08:00
王奎兴 587550025d 发30 2026-07-17 14:29:43 +08:00
王奎兴 9dfcf4ef5a 发31 2026-07-17 14:22:38 +08:00
秦鸿展 914957e683 新增账单 2026-07-17 11:41:39 +08:00
王奎兴 a852c0844e 发测试 2026-07-17 01:55:08 +08:00
王奎兴 50b10ad19f 发30 2026-07-17 01:51:20 +08:00
王奎兴 aff19e1536 发30 2026-07-17 01:48:15 +08:00
王奎兴 4c58838842 发30 2026-07-17 00:48:43 +08:00
王奎兴 d27cca0217 发31 2026-07-17 00:44:34 +08:00
王奎兴 6f5fa138d9 添加批次号; 2026-07-17 00:11:53 +08:00
王奎兴 cf0a42ec8a 添加批次号; 2026-07-16 23:13:30 +08:00
王奎兴 5c591d3b57 添加批次号; 2026-07-16 22:53:45 +08:00
王奎兴 165927bc3d 执行单下发分发组织; 2026-07-16 20:55:11 +08:00
王奎兴 2d03084f0c 分批上架多余数据处理; 2026-07-16 19:00:49 +08:00
王奎兴 1f0703bc64 分批上架多余数据处理; 2026-07-16 18:35:32 +08:00
王奎兴 9bb5a7c2cf 库位条码; 2026-07-16 18:19:15 +08:00
王奎兴 a7eed8590f 库位条码; 2026-07-16 14:11:33 +08:00
王奎兴 4fad415cb7 库位条码; 2026-07-16 13:51:59 +08:00
王奎兴 a23a4acef3 发测试 2026-07-16 12:21:57 +08:00
王奎兴 0cd0a9535d Merge branch 'dev' into cangmapda_260710 2026-07-16 12:18:51 +08:00
王奎兴 71765b339f 明细上架单号为空问题; 2026-07-16 10:10:51 +08:00
王奎兴 521e4ca5bd 生成任务; 2026-07-16 09:50:09 +08:00
王奎兴 47688bfe34 生成任务; 2026-07-16 09:44:13 +08:00
王奎兴 b0999402cd 生成任务; 2026-07-16 08:58:00 +08:00
高正杨 dde4698fc6 更新1 2026-07-15 22:34:27 +08:00
秦鸿展 5513b0af08 31 2026-07-15 21:19:25 +08:00
秦鸿展 357fb0bd65 30 2026-07-15 21:17:42 +08:00
秦鸿展 16627950e2 港澳服务专区增加字段 2026-07-15 19:06:35 +08:00
王奎兴 81dc017b68 生成任务; 2026-07-15 18:17:46 +08:00
王奎兴 80b96b0f17 复核逻辑修改; 2026-07-15 16:34:03 +08:00
王奎兴 d683774b88 复核逻辑修改; 2026-07-15 16:19:46 +08:00
王奎兴 20f60d490f 复核逻辑修改; 2026-07-15 16:07:16 +08:00
王奎兴 73f7bbd803 复核逻辑修改; 2026-07-15 15:14:45 +08:00
王奎兴 5029ae8d42 复核逻辑修改; 2026-07-15 15:10:51 +08:00
王奎兴 87eea6a8cd 复核逻辑修改; 2026-07-15 14:56:58 +08:00
王奎兴 72b2a153a0 复核逻辑修改; 2026-07-15 14:41:21 +08:00
王奎兴 7326407d13 复核逻辑修改; 2026-07-15 14:36:19 +08:00
王奎兴 4091f20e7a pda任务下发; 2026-07-14 18:09:53 +08:00
王奎兴 7bcf11baaf pda任务下发; 2026-07-14 18:08:28 +08:00
王奎兴 11ad2ea20f 回显出库重量等; 2026-07-14 17:54:17 +08:00
王奎兴 b303c78b39 回显出库重量等; 2026-07-14 17:53:09 +08:00
王奎兴 2fb7d117c0 回显出库重量等; 2026-07-14 17:30:35 +08:00
王奎兴 cdb21fe961 回显出库重量等; 2026-07-14 17:18:57 +08:00
王奎兴 2151555f31 发测试; 2026-07-14 15:10:17 +08:00
王奎兴 ce4f56962f 拣货数量 2026-07-14 15:07:37 +08:00
王奎兴 c3b4923ce9 类型转换异常 2026-07-14 13:52:36 +08:00
王奎兴 c536d2c5c6 类型转换异常 2026-07-14 09:33:45 +08:00
王奎兴 fad5eb66fa 类型转换异常 2026-07-14 09:29:02 +08:00
王奎兴 52172dc3d7 简易模式收货及上架; 2026-07-13 18:04:43 +08:00
王奎兴 34a146514f 简易模式收货及上架; 2026-07-13 17:45:22 +08:00
秦鸿展 8377d9f2a5 同步过滤逻辑修改3 2026-07-13 17:42:04 +08:00
王奎兴 0f2e2e769b 简易模式收货及上架; 2026-07-13 17:34:44 +08:00
王奎兴 73b1a76cb6 简易模式收货及上架; 2026-07-13 16:47:05 +08:00
王奎兴 81c30d752d 简易模式收货及上架; 2026-07-13 16:42:18 +08:00
秦鸿展 38b2de852b 同步过滤逻辑修改2 2026-07-13 16:18:53 +08:00
王奎兴 35122c0fca 简易模式收货及上架; 2026-07-13 15:17:16 +08:00
秦鸿展 f1c7dd453b 同步过滤逻辑修改1 2026-07-13 14:47:10 +08:00
秦鸿展 f1aa799809 同步过滤逻辑修改 2026-07-13 11:36:06 +08:00
秦鸿展 d5dfa96859 查询三方主数据接口修复1 2026-07-13 11:27:51 +08:00
秦鸿展 23fe5eca9c 查询三方主数据接口修复 2026-07-13 11:15:08 +08:00
赵辉 69d5276bd9 30财务 2026-07-11 20:09:21 +08:00
王奎兴 876430874c 发31 2026-07-11 19:32:17 +08:00
王奎兴 24c234bcb7 发30 2026-07-11 19:30:34 +08:00
王奎兴 c52b9f092e 发31 2026-07-11 19:21:11 +08:00
赵辉 61b68804f0 测试 2026-07-11 18:11:58 +08:00
赵辉 23bffb32b3 测试 2026-07-11 18:01:42 +08:00
秦鸿展 9f9b0867ac 客商BUG修复 2026-07-11 16:49:21 +08:00
赵辉 1a309cb042 客商修改 2026-07-11 13:58:37 +08:00
赵辉 226360ef3a 客商修改 2026-07-11 11:48:35 +08:00
王奎兴 444b6add0a 移除任务人员空指针处理; 2026-07-11 10:51:14 +08:00
王奎兴 46757ed2f1 移除任务人员空指针处理; 2026-07-11 10:39:32 +08:00
王奎兴 1548a28c9e 移除任务人员空指针处理; 2026-07-11 10:32:33 +08:00
王奎兴 2755ed1a33 出入库移交任务及移除任务项; 2026-07-10 17:08:24 +08:00
王奎兴 5030ca2a8a 出入库移交任务及移除任务项; 2026-07-10 17:06:29 +08:00
王奎兴 4852b4496a pda任务接收 2026-07-10 16:30:49 +08:00
王奎兴 e2bfb032a7 作业人员名称 2026-07-10 16:20:53 +08:00
王奎兴 762c9d4bf4 配送明细客户id值; 2026-07-10 15:57:01 +08:00
王奎兴 f4f2573af7 仓码pda改造; 2026-07-10 15:26:06 +08:00
王奎兴 1381bcee72 入库单pda查询; 2026-07-10 14:17:46 +08:00
王奎兴 bbe8ce3523 入库单pda查询; 2026-07-10 14:15:34 +08:00
王奎兴 7ae6ed2aac 出入库添加物料数量; 2026-07-10 10:42:38 +08:00
王奎兴 d45206a644 按客户预约库存分配库存; 2026-07-09 18:11:02 +08:00
王奎兴 f7faed5e44 Merge remote-tracking branch 'origin/dev' into dev 2026-07-09 16:00:24 +08:00
王奎兴 fa5f8d68cc 按客户预约库存分配库存; 2026-07-09 16:00:11 +08:00
赵辉 b0a28a101e 30 2026-07-09 15:18:12 +08:00
赵辉 b24d02f4a6 正式环境单点登录地址修改 2026-07-09 15:05:57 +08:00
赵辉 a9aba71e0c 31 2026-07-09 11:12:58 +08:00
赵辉 687404b47f 测试 2026-07-08 19:03:51 +08:00
赵辉 d4e3b36974 30 2026-07-08 18:55:34 +08:00
赵辉 162f35b752 31 2026-07-08 18:47:32 +08:00
赵辉 9cb99c915d oss单点登录 2026-07-08 18:42:53 +08:00
王奎兴 9a58a7b41c 发31 2026-07-07 14:04:44 +08:00
王奎兴 3c594d4a91 库存查询报错; 2026-07-07 13:58:17 +08:00
王奎兴 dc9d491d61 pda查询报错; 2026-07-07 10:00:09 +08:00
王奎兴 d0cde81dcd 发30 2026-07-07 09:39:17 +08:00
王奎兴 81cd4b3317 发31 2026-07-07 09:34:59 +08:00
王奎兴 442ca4977c 发31 2026-07-07 09:14:30 +08:00
王奎兴 2abdb6e8d1 发31 2026-07-07 09:09:37 +08:00
王奎兴 53e9f977a1 库存查询报错; 2026-07-07 09:08:18 +08:00
王奎兴 1dcd38aaa2 30 2026-07-06 22:50:42 +08:00
王奎兴 50b7be1e4f 回显客户预约物料名; 2026-07-06 22:42:52 +08:00
王奎兴 4ce7b3afec 回显客户预约物料名; 2026-07-06 22:00:46 +08:00
王奎兴 aeff793901 发30 2026-07-06 21:40:13 +08:00
王奎兴 187bddc820 发31 o 2026-07-06 21:35:50 +08:00
王奎兴 360cb8d95c 发30 2026-07-06 21:22:09 +08:00
王奎兴 a589cfd3af 预约单组织修改; 2026-07-06 21:19:30 +08:00
秦鸿展 f80b0bbddb 关务推送增加字段 2026-07-06 20:59:55 +08:00
王奎兴 76596ac927 预约单组织修改; 2026-07-06 20:55:09 +08:00
秦鸿展 2a33823ef2 关务推送增加字段 2026-07-06 20:45:27 +08:00
秦鸿展 930894b37e 关务推送增加字段,发测试 2026-07-06 19:56:54 +08:00
王奎兴 02acda9e23 预约单组织修改; 2026-07-06 19:01:30 +08:00
赵辉 41fa3991d9 31 2026-07-06 18:50:08 +08:00
赵辉 a221c05ec9 31 2026-07-06 18:44:02 +08:00
王奎兴 57fb245715 发测试; 2026-07-06 17:45:50 +08:00
王奎兴 79cda62fb4 发测试; 2026-07-06 17:32:48 +08:00
王奎兴 0fba417b77 Merge remote-tracking branch 'origin/dev' into dev 2026-07-06 17:23:41 +08:00
王奎兴 ed8d3fafd9 bug; 2026-07-06 17:23:23 +08:00
秦鸿展 fea9ac6277 30 2026-07-06 13:02:23 +08:00
秦鸿展 8e1cd9b185 31 2026-07-06 12:48:46 +08:00
秦鸿展 bc2fc833a2 财务结算结算币种按照组织管理来查询 2026-07-06 11:41:18 +08:00
王奎兴 196410331b 测试o 2026-07-04 01:07:56 +08:00
赵辉 9351bd8816 30 2026-07-04 00:24:31 +08:00
赵辉 429c279b78 Merge remote-tracking branch 'origin/dev' into dev 2026-07-04 00:08:36 +08:00
赵辉 4a6421c9cf 31 2026-07-04 00:08:18 +08:00
王奎兴 9e71401716 Merge remote-tracking branch 'origin/dev' into dev 2026-07-04 00:01:34 +08:00
王奎兴 fceaf38db9 测试o 2026-07-04 00:01:21 +08:00
赵辉 4a90bbd9ad user30 2026-07-03 23:50:22 +08:00
赵辉 4ced5f9b65 user30 2026-07-03 23:01:46 +08:00
赵辉 07d43b393d w30 2026-07-03 22:44:22 +08:00
王奎兴 ab0c0fdc17 测试o 2026-07-03 22:40:22 +08:00
王奎兴 0425b41cf4 Merge remote-tracking branch 'origin/dev' into dev 2026-07-03 22:37:40 +08:00
王奎兴 9e3cedb596 账单调整计算税额; 2026-07-03 22:37:29 +08:00
赵辉 5678399a34 w31 2026-07-03 22:36:59 +08:00
赵辉 dc0416510b w31 2026-07-03 22:10:48 +08:00
王奎兴 cf85ffa37f Merge remote-tracking branch 'origin/dev' into dev 2026-07-03 22:08:48 +08:00
王奎兴 7d26d7915c 账单调整计算税额; 2026-07-03 22:08:34 +08:00
赵辉 185b68bde9 w30 2026-07-03 22:07:24 +08:00
赵辉 553e0eebee bug修改 2026-07-03 22:05:37 +08:00
王奎兴 fb4c508873 新增预约单查不到; 2026-07-03 21:57:17 +08:00
王奎兴 ebfd3c3f2e 收款单同步失败 2026-07-03 21:37:50 +08:00
王奎兴 62ecfddb95 账单修改; 2026-07-03 21:04:19 +08:00
王奎兴 19696cbb6a bug修改; 2026-07-03 19:15:14 +08:00
王奎兴 40c16f17cc bug修改; 2026-07-03 19:10:27 +08:00
王奎兴 bd2170e0be Merge remote-tracking branch 'origin/dev' into dev 2026-07-03 17:49:55 +08:00
王奎兴 e4a3835ee0 bug修改; 2026-07-03 17:49:31 +08:00
赵辉 98e94682eb 30 2026-07-03 16:51:52 +08:00
赵辉 eb07b799f6 nc修改 2026-07-03 16:49:27 +08:00
赵辉 615e0d34e4 nc修改 2026-07-03 15:11:41 +08:00
王奎兴 8b66aea296 Merge remote-tracking branch 'origin/dev' into dev 2026-07-03 11:29:38 +08:00
王奎兴 eec6752b9a 物料查询历史数据; 2026-07-03 11:29:24 +08:00
秦鸿展 2907a55c96 O新增订单增加字段 2026-07-03 11:01:18 +08:00
王奎兴 08762490dd 测试 2026-07-03 09:53:37 +08:00
王奎兴 9e2d84fc5c 测试 2026-07-02 19:51:45 +08:00
王奎兴 1c2bb30c44 Merge branch 'dev' into dev_v3.0.5 2026-07-02 19:39:40 +08:00
王奎兴 268c00074f 多仓 2026-07-02 19:38:43 +08:00
赵辉 7f38da20e1 bms修改 2026-07-02 19:29:23 +08:00
王奎兴 176bdbc633 Merge branch 'dev' into dev_user0622
# Conflicts:
#	mhd_wms/src/main/resources/mapper/pickingOrder/PickingOrderMapper.xml
2026-07-02 19:09:31 +08:00
王奎兴 c2a4b981e6 Merge branch 'dev' into dev_v3.0.5 2026-07-02 19:07:55 +08:00
王奎兴 ecd5e89172 3.0.5 2026-07-02 18:32:23 +08:00
王奎兴 22ff97e045 3.0.5 2026-07-02 17:44:36 +08:00
王奎兴 afc26a798f 3.0.5 2026-07-02 17:25:09 +08:00
王奎兴 b5914940df 3.0.5 2026-07-02 16:22:49 +08:00
王奎兴 01ec70e3c2 3.0.5 2026-07-02 15:59:58 +08:00
王奎兴 b178e79c8f 3.0.5 2026-07-02 15:04:20 +08:00
王奎兴 0d70cc8b4c 入库业务单编辑报错; 2026-07-02 09:09:43 +08:00
王奎兴 55f089a7d6 入库业务单编辑报错; 2026-07-02 09:03:15 +08:00
王奎兴 b432ab0ac3 入库业务单编辑报错; 2026-07-02 08:56:55 +08:00
王奎兴 08b930e6d4 Merge branch 'dev_v3.0.4' into dev_user0622 2026-07-02 08:35:43 +08:00
赵辉 1ed10bf71b Merge remote-tracking branch 'origin/dev_user0622' into dev_user0622 2026-07-01 21:04:25 +08:00
赵辉 4772395daf 发31 2026-07-01 21:04:08 +08:00
秦鸿展 11fa915e0e 发31 2026-07-01 20:57:18 +08:00
秦鸿展 8c9ef2f083 默认用户是本组织的 2026-07-01 19:34:28 +08:00
王奎兴 193db96e63 v3.0.5 2026-07-01 18:19:03 +08:00
秦鸿展 ec43b3be8a 发30 2026-07-01 18:16:19 +08:00
秦鸿展 9511a38946 一般贸易推送添加字段 2026-07-01 15:28:30 +08:00
秦鸿展 bc962c3131 复核数量检验 2026-07-01 14:20:57 +08:00
王奎兴 4f24096a0c Merge branch 'dev' into dev_user0622 2026-07-01 13:45:20 +08:00
王奎兴 20a7978729 上架报错; 2026-07-01 11:43:32 +08:00
王奎兴 7c18ccf3bb 上架报错; 2026-07-01 11:36:59 +08:00
王奎兴 78c9ab191a 出库拣货单打印 2026-07-01 11:35:22 +08:00
王奎兴 8bec065f69 物料编辑货主查询匹配多组织信息; 2026-07-01 10:14:19 +08:00
王奎兴 d82abe15bf 业务单到执行单不分发组织; 2026-07-01 09:47:23 +08:00
王奎兴 4017c0a60d v3.0.4 2026-06-30 18:06:42 +08:00
秦鸿展 da0dae5f40 发测试包 2026-06-30 14:55:08 +08:00
王奎兴 12999e6ffd 发测试 2026-06-30 09:42:18 +08:00
秦鸿展 8b186907e1 发测试包 2026-06-29 20:05:58 +08:00
王奎兴 183c84cb5b Merge remote-tracking branch 'refs/remotes/origin/dev' into dev_user0622
# Conflicts:
#	mhd-user-center/src/main/resources/bootstrap.yml
2026-06-29 18:24:48 +08:00
王奎兴 9ca77a7d57 出库单执行生成拣货单及取消执行删除拣货单; 2026-06-29 18:04:51 +08:00
王奎兴 40ff9808b8 出库单执行生成拣货单及取消执行删除拣货单; 2026-06-29 18:02:40 +08:00
秦鸿展 4afe929020 APP菜单权限 2026-06-29 17:21:09 +08:00
秦鸿展 d982cc41c3 小程序登录同步YMS用户BUG修改1 2026-06-29 15:47:24 +08:00
秦鸿展 0497d8e96e 小程序登录同步YMS用户BUG修改 2026-06-29 15:32:48 +08:00
秦鸿展 b51bc17838 小程序登录同步YMS用户BUG修改 2026-06-29 15:27:11 +08:00
秦鸿展 2516d86226 小程序新增默认角色信息BUG修改 2026-06-29 15:04:15 +08:00
秦鸿展 287575c622 小程序新增默认角色BUG修改1 2026-06-29 14:55:33 +08:00
秦鸿展 374b26d023 小程序新增默认角色BUG修改 2026-06-29 14:34:38 +08:00
王奎兴 a5489ceb5a 新增修改库存添加组织信息; 2026-06-29 11:07:57 +08:00
王奎兴 de1ef5dec7 预约改造;pda报错; 2026-06-29 10:56:57 +08:00
赵辉 eed47e1f34 正式 2026-06-27 20:24:38 +08:00
王奎兴 3cd16ddfac 31 2026-06-27 20:20:35 +08:00
王奎兴 bf3e5c3e29 预约单改造; 2026-06-27 19:53:15 +08:00
王奎兴 8f779f5e29 预约单改造; 2026-06-27 19:44:52 +08:00
王奎兴 8ff0561a1f 预约单改造; 2026-06-27 19:07:54 +08:00
秦鸿展 8be0813e21 新增角色BUG修改 2026-06-27 19:00:43 +08:00
王奎兴 f995d9e7c6 Merge remote-tracking branch 'origin/dev' into dev 2026-06-27 18:26:40 +08:00
王奎兴 5c8c6251d6 预约单改造; 2026-06-27 18:26:30 +08:00
秦鸿展 dc589fdf3f 新增角色 2026-06-27 18:17:43 +08:00
赵辉 1cf6d4492d 測試 2026-06-27 18:16:35 +08:00
王奎兴 8f0e71fe2a 预约单改造; 2026-06-27 18:06:31 +08:00
秦鸿展 c6366ef728 司机APP注册是默认用户角色 2026-06-27 17:22:27 +08:00
赵辉 b26d79bab0 測試 2026-06-27 14:51:12 +08:00
秦鸿展 2d424847c3 对接微信小程序接口 2026-06-27 14:06:34 +08:00
赵辉 392e54d636 測試 2026-06-27 14:04:17 +08:00
赵辉 11c7fdc7de 单据修改 2026-06-27 14:00:37 +08:00
王奎兴 8893eda62d 执行及取消执行;nc推送客户nc编码查询逻辑修改; 2026-06-26 18:27:24 +08:00
王奎兴 293fedda12 执行及取消执行; 2026-06-26 14:15:33 +08:00
王奎兴 ed4d6111a5 执行及取消执行; 2026-06-26 10:52:57 +08:00
王奎兴 92acdb4f20 货主更新角色变管理员处理; 2026-06-25 14:37:03 +08:00
王奎兴 f933aa9234 货主更新角色变管理员处理; 2026-06-25 14:35:55 +08:00
王奎兴 f704038362 根据组织ids查询仓库; 2026-06-25 11:04:58 +08:00
王奎兴 3e90a8c5c4 货主查询组织; 2026-06-25 10:36:34 +08:00
王奎兴 db198dd2a2 货主查询组织; 2026-06-25 10:28:29 +08:00
王奎兴 a6e727e04a 仓储执行单; 2026-06-24 17:45:44 +08:00
赵辉 badb1b62da 正式 2026-06-24 17:04:20 +08:00
赵辉 141686d743 oms业务单发单添加客户nc编码 2026-06-24 16:46:13 +08:00
赵辉 ce8e340116 同步委托方修改 2026-06-24 16:07:56 +08:00
王奎兴 42e9f79b10 Merge branch 'dev' into dev_user0622 2026-06-24 13:58:38 +08:00
王奎兴 1520cd7aba 发30 2026-06-24 10:59:38 +08:00
王奎兴 c103884826 发30 2026-06-24 10:42:42 +08:00
王奎兴 66d77910f3 发31 2026-06-24 10:37:07 +08:00
王奎兴 e966726a0c 加货主是否支持多仓;物料组织模糊查询; 2026-06-24 09:57:20 +08:00
王奎兴 89c3f398b8 加货主是否支持多仓; 2026-06-24 09:48:08 +08:00
王奎兴 84174a6639 Merge remote-tracking branch 'origin/dev' into dev_user0622 2026-06-24 09:39:56 +08:00
王奎兴 92a5544891 发30 2026-06-23 21:24:50 +08:00
王奎兴 81c7c9e9f7 发31 2026-06-23 21:15:54 +08:00
zhaoqing bc9adf3f19 修改字段净重和规格 2026-06-23 21:10:43 +08:00
王奎兴 81157cc451 发30 2026-06-23 21:07:41 +08:00
王奎兴 da4da4e61e 发31 2026-06-23 20:55:29 +08:00
王奎兴 3248aef4a9 发31 2026-06-23 20:54:09 +08:00
王奎兴 242f56ae1a 查询报错 2026-06-23 20:47:11 +08:00
王奎兴 cf22323cfe 查询报错 2026-06-23 20:39:58 +08:00
zhaoqing fe2dcc027b 修改删改单推送数据 2026-06-23 20:09:22 +08:00
王奎兴 6072ac272f 查询报错 2026-06-23 20:05:54 +08:00
王奎兴 6c71bff1ad Merge remote-tracking branch 'origin/dev' into dev 2026-06-23 19:57:54 +08:00
王奎兴 2c16152c0b 修改上架明细报错 2026-06-23 19:57:40 +08:00
zhaoqing 0b3df4bf32 查询添加判断条件删改单申请状态 2026-06-23 19:54:59 +08:00
王奎兴 1b5914a7d1 修改上架明细报错 2026-06-23 19:10:14 +08:00
zhaoqing feb614e3e4 单证时间修改 2026-06-23 19:04:04 +08:00
zhaoqing 7650bd2eb9 单证时间修改 2026-06-23 18:50:06 +08:00
王奎兴 7d13b42144 关务推送动态url地址; 2026-06-23 18:48:20 +08:00
王奎兴 432fa3398d Merge remote-tracking branch 'origin/dev' into dev 2026-06-23 18:11:27 +08:00
王奎兴 e84adc2d6f 关务推送动态url地址; 2026-06-23 18:11:16 +08:00
zhaoqing 0ad41cd768 修改删改单申请推送 2026-06-23 18:08:18 +08:00
王奎兴 caac89e3db 更新上架明细报错; 2026-06-23 17:51:44 +08:00
zhaoqing 95c128b506 sql 2026-06-23 17:32:14 +08:00
zhaoqing 186d76f9fc 修改一般贸易的详情数据查询 2026-06-23 17:12:19 +08:00
zhaoqing bc3bdd669e 一般贸易推送,保存详情数据 2026-06-23 16:52:40 +08:00
王奎兴 6aeabc7be7 拣货单查询; 2026-06-23 16:45:16 +08:00
王奎兴 80b604a637 保存关务推送内容; 2026-06-23 16:05:00 +08:00
zhaoqing 55c780caa1 sql 2026-06-23 15:32:20 +08:00
zhaoqing af0f3e81b9 修改一般贸易的详情查询数据来源 2026-06-23 15:23:54 +08:00
赵辉 0ae37ac795 信用修改 2026-06-23 14:39:05 +08:00
zhaoqing 129cd393aa 修改一般贸易的详情查询数据来源 2026-06-23 14:34:03 +08:00
zhaoqing b4f685a25d 修改一般贸易的详情查询数据来源 2026-06-23 14:01:41 +08:00
赵辉 a14c7776e8 信用修改 2026-06-23 14:00:32 +08:00
王奎兴 3360e500dc 发测试 2026-06-23 11:48:47 +08:00
赵辉 41fc2d1805 修改字段 2026-06-23 11:30:30 +08:00
赵辉 7ccb06ad79 测试环境 2026-06-23 11:11:11 +08:00
王奎兴 7a7038e794 发测试 2026-06-23 10:52:02 +08:00
王奎兴 d04df87e19 报关回写; 2026-06-23 10:50:23 +08:00
赵辉 21aab4f17e 三方信用修改 2026-06-23 10:27:57 +08:00
王奎兴 ab10adb0d2 Merge remote-tracking branch 'origin/dev' into dev 2026-06-23 10:15:59 +08:00
王奎兴 f32f5b48bc 回显成品物料; 2026-06-23 10:15:52 +08:00
赵辉 3224e87814 三方信用修改 2026-06-23 10:14:06 +08:00
zhaoqing afa6ed0685 修改查询时间失效的问题 2026-06-23 10:03:32 +08:00
王奎兴 32efb1dfe5 推送人回显po username 2026-06-23 09:58:48 +08:00
王奎兴 0cf697a03b 关务保税仓页面查询; 2026-06-23 09:46:07 +08:00
王奎兴 7babb53e90 关务推送bug; 2026-06-23 09:29:31 +08:00
赵辉 31247d7faa 委托方增加组织代码,与查询修改 2026-06-23 08:57:06 +08:00
王奎兴 4a07d1a0c4 发测试 2026-06-22 18:35:40 +08:00
zhaoqing e562dcf627 恢复查询 2026-06-18 20:12:38 +08:00
zhaoqing aa7315e239 修改查询汇率时 查询到多条导致的报错 2026-06-18 19:24:33 +08:00
zhaoqing 01b75ac87e 发ceshi 2026-06-18 16:34:09 +08:00
王奎兴 4fbe36f949 Merge branch 'dev_WMS20260401' into dev
# Conflicts:
#	mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java
#	mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java
#	mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java
#	mhd_oms/src/main/resources/bootstrap.yml
2026-06-18 16:05:17 +08:00
zhaoqing 229540a720 发ceshi 2026-06-18 15:45:01 +08:00
zhaoqing 0c9290c238 修改推送人名称 2026-06-18 14:11:49 +08:00
zhaoqing 448d2ddc1a 推送人 2026-06-18 14:03:25 +08:00
zhaoqing ff340a2819 修改推送人名称 2026-06-18 13:50:48 +08:00
zhaoqing 4f2effe52b 报文查看修改 2026-06-18 13:40:32 +08:00
zhaoqing 4d6dbc8f24 一般贸易查询报错 2026-06-18 11:44:01 +08:00
zhaoqing 809876f4f0 修改企业币值-各组织独立问题 2026-06-18 11:33:56 +08:00
王奎兴 eea6898404 发31 2026-06-18 11:06:56 +08:00
王奎兴 ece8b6a2e1 发30 2026-06-18 10:57:18 +08:00
王奎兴 8e6649a853 发30 2026-06-18 10:56:24 +08:00
zhaoqing ece29d5f46 修改企业币值-各组织独立问题 2026-06-18 10:25:53 +08:00
王奎兴 1642c50e0a 发30 2026-06-17 23:29:50 +08:00
王奎兴 0ec951ba7a 发31 2026-06-17 23:20:18 +08:00
王奎兴 b1a97b9eff 发31 2026-06-17 23:09:38 +08:00
王奎兴 b667abea83 发31 2026-06-17 23:06:33 +08:00
王奎兴 ad3a128bad 发cs 2026-06-17 23:02:19 +08:00
王奎兴 bd588a6709 发cs 2026-06-17 22:51:26 +08:00
王奎兴 e3c49b39d8 发31 2026-06-17 22:37:51 +08:00
王奎兴 e328eeb5c8 发31 2026-06-17 21:50:05 +08:00
王奎兴 e0b52b4434 登录查询货主nc编码; 2026-06-17 18:40:22 +08:00
王奎兴 74c6e7f440 登录查询货主nc编码; 2026-06-17 18:36:21 +08:00
秦鸿展 f8a28c04f6 字典查询BUG 2026-06-17 18:06:45 +08:00
秦鸿展 eea0208236 客商同步BUG修改 2026-06-17 17:18:20 +08:00
秦鸿展 03444ed29d 字典查询修改当前组织没数据查询上级组织1 2026-06-17 17:04:10 +08:00
王奎兴 3fe9a444ae 入库预约单导入状态为未确认; 2026-06-17 17:03:33 +08:00
秦鸿展 1667a86a19 字典查询修改当前组织没数据查询上级组织 2026-06-17 16:33:43 +08:00
王奎兴 ff523fc54a 入库预约单详情报错; 2026-06-17 16:07:46 +08:00
王奎兴 85068215e5 取消出入库订单业务流程推送; 2026-06-17 16:02:59 +08:00
王奎兴 7cfb30e90c ot业务单委托方只查询当前登录人组织数据; 2026-06-17 15:58:04 +08:00
王奎兴 82d08f76c2 ot业务单校验信用额度; 2026-06-17 15:49:29 +08:00
王奎兴 84c1e210d8 ot业务单校验信用额度; 2026-06-17 15:49:06 +08:00
王奎兴 93a6f7228c 检验信用; 2026-06-17 15:38:19 +08:00
高正杨 23dc97f1d0 去除字典按组织查询; 2026-06-17 15:32:05 +08:00
秦鸿展 afa51fa5f2 客商主数据同步LASTMODIFYRECORDTIME增量修改1 2026-06-17 14:19:55 +08:00
王奎兴 0e5c9b97d2 委托方添加时候检验信用; 2026-06-17 13:53:18 +08:00
王奎兴 81a7e2ae20 委托方添加时候检验信用; 2026-06-17 13:43:56 +08:00
王奎兴 d1d02b7bc4 Merge remote-tracking branch 'origin/dev' into dev 2026-06-17 11:39:39 +08:00
王奎兴 37a70bc624 委托方添加时候检验信用; 2026-06-17 11:39:28 +08:00
秦鸿展 ebec834284 客商主数据同步LASTMODIFYRECORDTIME增量修改 2026-06-17 11:34:55 +08:00
王奎兴 3e9a08ef91 回显保费; 2026-06-17 11:11:01 +08:00
王奎兴 7ab7850d81 物料加字段; 2026-06-17 10:55:56 +08:00
赵辉 2491fdbdd1 委托方增加bug,oms线路修复,o-t报关修改 2026-06-16 21:34:08 +08:00
赵辉 280e465856 信用明细查询 2026-06-16 20:31:57 +08:00
赵辉 6bb28ce60f 信用明细查询 2026-06-16 20:00:55 +08:00
王奎兴 0000cfc82c 发测试 2026-06-16 19:11:24 +08:00
赵辉 0110f83797 信用明细查询 2026-06-16 19:00:10 +08:00
赵辉 4884347b4a 信用明细查询 2026-06-16 18:59:12 +08:00
赵辉 27ebf1f440 信用明细查询 2026-06-16 18:49:03 +08:00
赵辉 883724ab8e 信用明细查询 2026-06-16 18:46:22 +08:00
王奎兴 16496f3c3f 发测试 2026-06-16 18:44:22 +08:00
王奎兴 4e00c8d5d5 ow bug修改; 2026-06-16 18:41:23 +08:00
赵辉 7f72ba410b 测试环境 2026-06-16 17:38:38 +08:00
赵辉 544dc74b9e 测试环境 2026-06-16 16:26:08 +08:00
赵辉 c6e4e76d82 三方额度查询 2026-06-16 16:23:34 +08:00
王奎兴 ff5bc742aa 计价规则字段查询; 2026-06-16 15:29:38 +08:00
王奎兴 861f2f845d 计价规则字段查询; 2026-06-16 15:14:25 +08:00
王奎兴 c22fbc53c3 计价规则字段添加; 2026-06-16 15:06:53 +08:00
王奎兴 af15229ce5 启动报错; 2026-06-16 11:19:18 +08:00
王奎兴 dd4fc13adc Merge branch 'dev' into dev_WMS20260401
# Conflicts:
#	mhd-user-center/src/main/resources/bootstrap.yml
#	mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/executeOrder/ExecuteOrderDTO.java
#	mhd_oms/src/main/resources/bootstrap.yml
#	mhd_wms/src/main/resources/mapper/deliveTask/DeliveTaskMapper.xml
2026-06-16 11:11:48 +08:00
王奎兴 9922fee6cc 物料添加字段; 2026-06-16 10:54:32 +08:00
王奎兴 255be125d1 物料添加字段; 2026-06-16 09:54:20 +08:00
王奎兴 7ff8a2f108 物料添加字段; 2026-06-16 09:25:32 +08:00
王奎兴 b05baac0e5 关务推送及预约单bug修改; 2026-06-15 17:38:58 +08:00
赵辉 230f17803d 测试环境修改 2026-06-15 17:27:00 +08:00
王奎兴 aaf56ceafb 进口仓单推送企业币制取物料基础信息; 2026-06-15 15:33:45 +08:00
王奎兴 0a90591987 预约单去除非必填项校验; 2026-06-15 14:17:18 +08:00
王奎兴 25a9f6de4b Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-06-15 09:47:47 +08:00
王奎兴 b487af3d4e 关务查询; 2026-06-15 09:47:33 +08:00
秦鸿展 a3420936db 客商主数据同步修改BUG 2026-06-13 17:27:45 +08:00
赵辉 1cfed43f59 添加车队长修改 2026-06-13 16:47:21 +08:00
秦鸿展 72e54bb219 客商主数据同步修改 2026-06-13 15:39:29 +08:00
秦鸿展 192a406682 客商主数据查询BUG修改1 2026-06-13 15:06:37 +08:00
秦鸿展 578e3b34d4 客商主数据查询BUG修改1 2026-06-13 14:28:07 +08:00
秦鸿展 c83596a5e0 客商主数据查询BUG修改 2026-06-13 13:30:49 +08:00
秦鸿展 50bb444d83 客商主数据查询BUG修改 2026-06-13 13:29:31 +08:00
王奎兴 a5af83ff33 发30 2026-06-12 21:45:10 +08:00
王奎兴 d602b11802 发31 2026-06-12 21:30:28 +08:00
王奎兴 ac469dd99b 发测试 2026-06-12 21:27:20 +08:00
王奎兴 fe41f18d4f 推送逻辑修改; 2026-06-12 21:25:48 +08:00
王奎兴 453b6b6263 推送逻辑修改; 2026-06-12 18:01:45 +08:00
赵辉 494c2e3361 退货修改执行单上传发票时间与状态,业务单退货图片添加,执行单查询发票编号 2026-06-12 17:50:51 +08:00
王奎兴 2441f4eb1c 推送逻辑修改; 2026-06-12 17:16:09 +08:00
王奎兴 2d241848dc Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-06-12 17:08:40 +08:00
王奎兴 e80d62e104 推送逻辑修改; 2026-06-12 17:08:28 +08:00
秦鸿展 8e0b728206 客商主数据同步修改BUG 2026-06-12 16:56:11 +08:00
王奎兴 ece27b786f 推送逻辑修改; 2026-06-12 16:46:51 +08:00
王奎兴 fa9682ae63 feign报错; 2026-06-12 16:38:22 +08:00
王奎兴 115f427ce7 feign报错; 2026-06-12 16:13:06 +08:00
王奎兴 bf616b3ee6 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-06-12 16:09:31 +08:00
王奎兴 36cd52a701 流程中推送关务; 2026-06-12 16:09:19 +08:00
秦鸿展 35c2bb6899 校验仓库下库区编码,名称重复问题 2026-06-12 15:52:02 +08:00
王奎兴 e410a095f0 退货提交报错; 2026-06-12 14:07:03 +08:00
王奎兴 c0d3372e0c Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-06-12 11:39:10 +08:00
王奎兴 6752441e72 推送时间格式及是否报关查询; 2026-06-12 11:38:48 +08:00
秦鸿展 2608ba8da7 客商数据同步问题修改1 2026-06-12 10:00:22 +08:00
zhaoqing bba5c3ebe1 修改商业合作伙伴推送-各组织独立问题 2026-06-11 21:20:24 +08:00
zhaoqing e63ef0996f 修改商业合作伙伴推送-各组织独立问题 2026-06-11 21:10:48 +08:00
zhaoqing 9d9a85dae0 修改商业合作伙伴推送-各组织独立问题 2026-06-11 20:55:36 +08:00
zhaoqing 04d24f1c11 修改商业合作伙伴推送-各组织独立问题 2026-06-11 20:40:50 +08:00
王奎兴 fb5da8eda1 推送报错; 2026-06-11 20:01:43 +08:00
王奎兴 3ea3063732 推送报错; 2026-06-11 20:01:17 +08:00
zhaoqing 721710252e 修改商业合作伙伴推送-各组织独立问题 2026-06-11 19:31:29 +08:00
王奎兴 4eb986ba67 推送报错; 2026-06-11 18:51:25 +08:00
秦鸿展 f79084ed58 合同类型添加其他 2026-06-11 18:34:18 +08:00
王奎兴 22be593a83 非通宇 保税仓出口订单推送; 2026-06-11 18:20:00 +08:00
王奎兴 42e70be592 非通宇 保税仓出口订单推送; 2026-06-11 17:57:11 +08:00
王奎兴 e9a56f5a31 非通宇 保税仓出口订单推送; 2026-06-11 17:27:06 +08:00
赵辉 daf4faf890 测试环境 2026-06-11 16:39:01 +08:00
秦鸿展 801bfdff5f 数据同步问题修改 2026-06-11 16:25:27 +08:00
王奎兴 889f5f34bc 非通宇 保税仓入口订单推送; 2026-06-11 16:02:11 +08:00
王奎兴 92e0f43ffc 非通宇 保税仓入口订单推送; 2026-06-11 15:58:07 +08:00
zhaoqing e81a1fda06 修改商业合作伙伴推送-各组织独立问题 2026-06-11 15:29:52 +08:00
王奎兴 4f2855a2c5 非通宇 保税仓入口订单推送; 2026-06-11 15:14:05 +08:00
秦鸿展 2912d10bbe 数据字典查询修改1 2026-06-11 15:08:06 +08:00
秦鸿展 473bcc02cd 数据字典查询修改 2026-06-11 15:05:54 +08:00
赵辉 79f2ff3b54 测试环境 2026-06-11 14:26:50 +08:00
zhaoqing 8a463f52fc 修改商业合作伙伴推送-各组织独立问题 2026-06-11 14:22:12 +08:00
zhaoqing e6fcccc6f1 修改商业合作伙伴推送-各组织独立问题 2026-06-11 12:27:54 +08:00
秦鸿展 df558e0103 启动报错 2026-06-11 11:39:38 +08:00
赵辉 47edc63b27 测试环境 2026-06-11 11:30:57 +08:00
赵辉 c21ebcdc1b 承运人添加车辆bug 2026-06-11 11:30:24 +08:00
zhaoqing 0c69a6ef36 修改商业合作伙伴推送-各组织独立问题 2026-06-11 11:22:43 +08:00
秦鸿展 cc37974239 同步客商数据BUG修改 2026-06-11 11:12:05 +08:00
秦鸿展 b5f5f27b84 同步客商数据BUG修改 2026-06-11 10:46:33 +08:00
王奎兴 10a18545f8 通宇保税仓出入口订单关务推送; 2026-06-11 10:26:28 +08:00
王奎兴 141f238b28 W出口订单行号逻辑修改; 2026-06-10 19:59:28 +08:00
王奎兴 7d5d25c632 W出口订单行号逻辑修改; 2026-06-10 19:51:30 +08:00
王奎兴 ca97de7a65 W出口订单行号逻辑修改; 2026-06-10 19:51:01 +08:00
王奎兴 2e1117728a Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-06-10 19:48:02 +08:00
王奎兴 f4e47fa0c9 W出口订单行号逻辑修改; 2026-06-10 19:47:44 +08:00
zhaoqing d63191829e 推送数据添加 2026-06-10 19:31:07 +08:00
zhaoqing 73348d8469 推送签名修改 2026-06-10 19:27:28 +08:00
王奎兴 7ec8be59ff W出口订单行号逻辑修改; 2026-06-10 17:54:38 +08:00
王奎兴 fdd0693072 W出口仓单推送关务开发; 2026-06-10 17:49:58 +08:00
王奎兴 ae2f671a9c Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-06-10 17:22:59 +08:00
王奎兴 97720dd3eb W进口仓单推送关务开发; 2026-06-10 17:22:48 +08:00
zhaoqing 3017cb3106 推送数据 2026-06-10 09:52:16 +08:00
zhaoqing 42c08ca6f9 修改推送签名 2026-06-09 17:44:03 +08:00
zhaoqing b3e2b3fc8c 进出口单证推送数据修改 2026-06-09 15:43:34 +08:00
zhaoqing abb2c444ca 进出口单证推送数据修改 2026-06-09 14:38:01 +08:00
zhaoqing 5dfe90aa33 推送修改 2026-06-09 11:40:05 +08:00
zhaoqing 02978d8969 进出口单证推送数据修改 2026-06-09 10:51:43 +08:00
赵辉 9d7cb80285 车次添加 2026-06-09 10:26:49 +08:00
zhaoqing 59acf6ec4c 进出口单证推送数据修改 2026-06-08 17:35:05 +08:00
zhaoqing 289c64be2f 进出口单证推送数据修改 2026-06-08 16:18:09 +08:00
秦鸿展 536077ec3a 客商委托方数据同步修改 2026-06-08 16:16:05 +08:00
秦鸿展 c59fa363ee 客商委托方数据同步 2026-06-08 15:05:34 +08:00
zhaoqing 734be2b825 推送签名修改 2026-06-08 14:11:00 +08:00
王奎兴 e561af010f 发布测试; 2026-06-08 11:18:21 +08:00
zhaoqing a960f8a6b9 推送签名 2026-06-08 11:12:17 +08:00
zhaoqing 67ee2bd6a2 推送签名 2026-06-05 17:59:49 +08:00
秦鸿展 f2950d5bb8 Merge remote-tracking branch 'origin/dev' into dev
# Conflicts:
#	mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java
#	mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteUserFeignFallbackFactory.java
2026-06-05 16:44:23 +08:00
王奎兴 7d56f8008e oms仓储预约单按创建时间查询修改; 2026-06-05 16:23:40 +08:00
秦鸿展 be00edc7b2 按照角色进行菜单过滤 2026-06-05 13:41:17 +08:00
zhaoqing 1f05235c90 出口仓单推送数据修改 2026-06-05 11:05:22 +08:00
王奎兴 67a53147da w出库业务单配置保存配送明细配置; 2026-06-05 11:00:58 +08:00
王奎兴 de109a7551 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-06-05 10:54:53 +08:00
王奎兴 2d91e755bd w出库业务单配置保存配送明细配置; 2026-06-05 10:54:37 +08:00
zhaoqing 408f093952 出口订单推送数据修改 2026-06-05 10:48:56 +08:00
王奎兴 232f33338e 发30 2026-06-04 20:16:17 +08:00
王奎兴 adf526bcc8 发31 2026-06-04 20:04:10 +08:00
赵辉 925b962790 执行单添加发牌状态与日期 2026-06-04 19:56:30 +08:00
zhaoqing c6d4b9c4b5 出口仓单型号规格 2026-06-04 19:04:49 +08:00
王奎兴 21b8114e83 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-06-04 19:01:52 +08:00
王奎兴 3076c27699 是否下发查询; 2026-06-04 19:01:39 +08:00
zhaoqing b46784db9e 出口仓单型号规格 2026-06-04 18:50:30 +08:00
王奎兴 0a9f5877cd Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-06-04 18:40:51 +08:00
王奎兴 1e23e60973 是否下发查询; 2026-06-04 18:40:32 +08:00
zhaoqing 8a5841d13b 出口仓单型号规格 2026-06-04 18:38:32 +08:00
王奎兴 661a17a44e Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-06-04 18:36:31 +08:00
王奎兴 3c481bc569 是否下发查询; 2026-06-04 18:36:20 +08:00
zhaoqing f4b0149605 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-06-04 18:34:05 +08:00
zhaoqing 9358be1a88 出口仓单型号规格 2026-06-04 18:33:29 +08:00
王奎兴 b4e087745c 是否下发查询; 2026-06-04 18:32:21 +08:00
王奎兴 a96cffb30b 是否下发查询; 2026-06-04 18:19:42 +08:00
王奎兴 bbf292a428 出入库业务单添加金额逻辑; 2026-06-04 17:54:00 +08:00
王奎兴 135f6af447 出入库业务单添加金额逻辑; 2026-06-04 17:49:04 +08:00
王奎兴 71b1faffb7 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-06-04 17:45:52 +08:00
王奎兴 af83950e1a 出入库业务单添加金额逻辑; 2026-06-04 17:45:41 +08:00
高正杨 083eb04026 金额计算; 2026-06-04 17:43:42 +08:00
王奎兴 e3021854a1 出入库业务单添加金额逻辑; 2026-06-04 17:38:08 +08:00
王奎兴 c1fe11a982 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-06-04 17:25:23 +08:00
王奎兴 c0506659bc 出入库业务单添加金额逻辑; 2026-06-04 17:25:12 +08:00
zhaoqing bb27fd4034 sql 2026-06-04 17:22:20 +08:00
zhaoqing 87e3a83743 报关明细表添加 2026-06-04 17:20:38 +08:00
秦鸿展 1c72ce2ba5 PDA任务修改 B2字段添加 2026-06-04 16:59:16 +08:00
王奎兴 299a9fb91e 出库单添加车次; 2026-06-04 16:48:14 +08:00
王奎兴 b18c8566e8 入库单查询运输业务单号; 2026-06-04 16:30:41 +08:00
赵辉 3a004607b2 执行单添加发牌状态与日期,入库单添加运输业务单号 2026-06-04 16:28:08 +08:00
zhaoqing c7e4ced035 sql 2026-06-04 16:03:31 +08:00
zhaoqing 4b64a184ab sql 2026-06-04 16:01:52 +08:00
zhaoqing 3626af0c05 sql 2026-06-04 16:00:50 +08:00
zhaoqing 1b1a026adc 推送时报关回写到报关明细表 推送时使用该数据 2026-06-04 15:48:09 +08:00
王奎兴 88e6993dd6 库存查询报错; 2026-06-04 14:57:29 +08:00
王奎兴 5a0906f189 业务单据类型查询; 2026-06-04 14:35:45 +08:00
zhaoqing a299bacda9 详情添加单价 2026-06-04 14:23:51 +08:00
王奎兴 0d7d52ef60 业务单据类型查询; 2026-06-04 14:17:04 +08:00
王奎兴 d7b2c73a57 业务单据类型查询; 2026-06-04 14:14:02 +08:00
王奎兴 fb4da52069 添加别名 2026-06-04 11:37:34 +08:00
王奎兴 3aebb27258 添加别名 2026-06-04 11:30:53 +08:00
王奎兴 95cdf38ab0 入库业务单添加查询条件; 2026-06-04 11:26:57 +08:00
王奎兴 ffddd7d89c Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-06-04 11:17:13 +08:00
王奎兴 8964f5c087 入库业务单添加查询条件; 2026-06-04 11:17:02 +08:00
zhaoqing 03ca6a4212 详情添加单价 2026-06-04 11:16:05 +08:00
王奎兴 28b1e0d497 入库业务单添加查询条件; 2026-06-04 10:59:57 +08:00
zhaoqing 08bd6ca59c 详情添加单价 2026-06-04 10:50:34 +08:00
zhaoqing eceb008912 修改签名 2026-06-04 10:33:04 +08:00
王奎兴 bf075c57e7 入库业务单添加查询条件; 2026-06-04 10:23:27 +08:00
王奎兴 4ab7c8b8b7 出库业务单添加查询条件; 2026-06-04 10:17:07 +08:00
王奎兴 3e9da71550 Merge branch 'dev' into dev_WMS20260401 2026-06-04 09:41:00 +08:00
王奎兴 aa5c19a16d 库存添加更新时间查询条件; 2026-06-04 09:40:07 +08:00
zhaoqing 711c177041 货物类型查询修改 查询币值添加 2026-06-03 18:43:45 +08:00
zhaoqing c467931fd6 货物类型查询修改 查询币值添加 2026-06-03 18:42:55 +08:00
王奎兴 ebcae62b5f 发30 2026-06-03 18:18:03 +08:00
王奎兴 10e149cf9d 添加编号; 2026-06-03 18:10:03 +08:00
王奎兴 fd4aebd8b1 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-06-03 17:50:43 +08:00
王奎兴 1109320018 添加编号; 2026-06-03 17:50:31 +08:00
zhaoqing 5fee80e827 货物类型查询修改 2026-06-03 17:48:56 +08:00
王奎兴 78c7fab57e 添加编号; 2026-06-03 17:37:09 +08:00
王奎兴 b2c118af1e 添加编号; 2026-06-03 17:04:34 +08:00
王奎兴 ed7a725ebb 修改表名; 2026-06-03 16:00:08 +08:00
zhaoqing 5d48d26d47 查询条件 2026-06-03 15:44:49 +08:00
王奎兴 94b3c8b2fc 去除无效字段; 2026-06-03 15:36:22 +08:00
王奎兴 5d9796cd55 去除无效字段; 2026-06-03 15:32:00 +08:00
王奎兴 0bfee37f11 去除无效字段; 2026-06-03 15:31:05 +08:00
王奎兴 dc14e04d9d 出库单添加车次; 2026-06-03 15:30:19 +08:00
王奎兴 0dd6615af7 录入配送单; 2026-06-03 15:09:48 +08:00
王奎兴 ec600036e1 录入配送单; 2026-06-03 15:09:14 +08:00
zhaoqing 47afe0e0f7 推送数据查询修改 2026-06-03 14:14:26 +08:00
zhaoqing 1730e68275 修改推送header 2026-06-03 11:38:00 +08:00
zhaoqing e0f2e78d6d 修改查询nc客户代码字段 2026-06-03 11:14:07 +08:00
zhaoqing edbc2c089d 推送数据修改 2026-06-03 11:08:22 +08:00
王奎兴 9912352faa Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-06-03 10:47:29 +08:00
王奎兴 d9fe7d96bc 退货修改w配送明细退货单号; 2026-06-03 10:47:18 +08:00
zhaoqing 1bec4678da 推送数据修改 2026-06-03 10:41:20 +08:00
王奎兴 db9eaeef15 恢复 2026-06-03 10:33:32 +08:00
王奎兴 1c56b7bc49 w查询出库单配送明细; 2026-06-03 10:25:41 +08:00
王奎兴 2c287e1bd1 发30 2026-06-03 10:05:09 +08:00
王奎兴 9ec31a6727 发布生产 2026-06-03 09:49:23 +08:00
王奎兴 68406e31e8 按日期查询报错; 2026-06-03 09:47:32 +08:00
王奎兴 08ac9b2eba 按日期查询报错; 2026-06-03 09:42:27 +08:00
王奎兴 32dde06899 按日期查询报错; 2026-06-03 09:36:56 +08:00
王奎兴 1382897b22 按日期查询报错; 2026-06-03 09:18:52 +08:00
zhaoqing c724654e36 完成时间字段查询 推送字段查询 2026-06-02 17:59:04 +08:00
zhaoqing f1f3e8f5de nc客户编码 2026-06-02 16:22:29 +08:00
zhaoqing f3715a9f99 出口订单查询 2026-06-02 13:45:23 +08:00
zhaoqing 047335ccbb 查询客户nc编码 2026-06-02 11:42:35 +08:00
zhaoqing 3c25329187 查询添加报关 2026-06-02 09:20:43 +08:00
王奎兴 8aea8c51b4 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-06-02 00:51:05 +08:00
王奎兴 d8b10a53a8 恢复; 2026-06-02 00:50:45 +08:00
zhaoqing 7d4b3852ea 查询添加报关 2026-06-01 19:11:24 +08:00
秦鸿展 6254b61739 PDA拣货作业单号修改 2026-06-01 18:50:31 +08:00
zhaoqing 9db78617fe 查询添加报关 2026-06-01 18:36:56 +08:00
王奎兴 1301e35ffa 发31 2026-06-01 17:52:53 +08:00
王奎兴 c87ca57efd 发布生产; 2026-06-01 17:46:43 +08:00
王奎兴 488289f4d0 根据code查物料; 2026-06-01 17:17:17 +08:00
王奎兴 b6fd5fb08d 根据code查物料; 2026-06-01 17:15:40 +08:00
王奎兴 07b1863680 配送明细同步wms 2026-06-01 17:04:43 +08:00
王奎兴 c79fd1ea39 配送明细同步wms 2026-06-01 16:56:59 +08:00
王奎兴 a372daee17 配送明细同步wms 2026-06-01 16:56:16 +08:00
王奎兴 9bbe1c2b41 配送明细同步wms 2026-06-01 16:54:41 +08:00
王奎兴 0c7a87ad10 配送明细同步wms 2026-06-01 16:44:17 +08:00
王奎兴 12452e2eb0 配送明细同步wms 2026-06-01 16:42:34 +08:00
王奎兴 c72df01037 配送明细同步wms 2026-06-01 16:38:24 +08:00
zhaoqing c298f1feb1 修改推送签名 2026-06-01 16:26:18 +08:00
王奎兴 dc3eaa63b3 发30 2026-06-01 16:06:29 +08:00
王奎兴 e151c3cad0 发31 2026-06-01 15:42:58 +08:00
王奎兴 c2171dd8cd oms库存查询库存为0; 2026-06-01 15:29:05 +08:00
王奎兴 051b6750c2 退货加图片; 2026-06-01 14:43:20 +08:00
王奎兴 1366f9c461 盘点oms库存同步; 2026-06-01 14:24:25 +08:00
王奎兴 394f392c67 添加退货图片;出库单编辑报错; 2026-06-01 13:47:00 +08:00
秦鸿展 894c6f2f87 正式环境配置修改 2026-05-30 22:13:45 +08:00
秦鸿展 40862795b7 PDA库存查询报错 2026-05-30 21:56:54 +08:00
王奎兴 3971da36e6 发30 2026-05-30 18:34:41 +08:00
王奎兴 ca848be0c8 发30 2026-05-30 18:26:38 +08:00
秦鸿展 dce11ef539 正式环境配置修改 2026-05-30 18:24:44 +08:00
赵辉 4c43f2b6dc 修改业务单bug 2026-05-30 18:22:11 +08:00
秦鸿展 1a69457539 正式环境配置修改 2026-05-30 18:07:31 +08:00
秦鸿展 2e3e6a14ea 正式环境配置修改 2026-05-30 17:55:41 +08:00
秦鸿展 adbcb4ef18 正式环境环境feign修改 2026-05-30 17:55:17 +08:00
zhaoqing 217cba876e 修复新增物料查询oms字段报错问题 2026-05-30 16:53:45 +08:00
王奎兴 919799ffc8 发30 2026-05-30 16:26:08 +08:00
王奎兴 1bb9401546 发31 2026-05-30 16:17:53 +08:00
zhaoqing 4a531b536d 查询添加字段 2026-05-30 15:43:39 +08:00
王奎兴 d199f91e94 发31 2026-05-30 11:22:05 +08:00
王奎兴 8a67f25673 发30 2026-05-30 11:11:11 +08:00
王奎兴 51576d5eba 库存调整记录查询报错; 2026-05-30 11:08:04 +08:00
王奎兴 b56cf5bc24 w发30 2026-05-30 01:50:43 +08:00
王奎兴 c2bcbc9961 w发31 2026-05-30 01:44:22 +08:00
王奎兴 cd1c3cbf82 w发31 2026-05-30 01:42:03 +08:00
王奎兴 298da1dbeb o发31 2026-05-30 01:16:58 +08:00
王奎兴 855a964336 o发30 2026-05-30 01:04:49 +08:00
王奎兴 712cf4ad05 o发31 2026-05-30 00:57:43 +08:00
赵辉 8e1746f6ea 修改业务单bug 2026-05-30 00:47:49 +08:00
秦鸿展 d6b1fa49a2 测试环境feign修改 2026-05-30 00:46:01 +08:00
王奎兴 fc7e05af5e Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-05-30 00:37:50 +08:00
王奎兴 ea15246ced 运单子弹已关闭; 2026-05-30 00:37:40 +08:00
秦鸿展 cc77f0b5f8 字典类型唯一校验去掉 2026-05-30 00:33:32 +08:00
王奎兴 44e4078753 30正式环境; 2026-05-30 00:27:35 +08:00
王奎兴 bb5b0e1746 31正式环境; 2026-05-30 00:22:11 +08:00
王奎兴 aef39a9555 退货修改运到和订单; 2026-05-29 23:40:25 +08:00
王奎兴 df1d16a7ab feignurl 2026-05-29 23:02:34 +08:00
赵辉 3e31c560d6 修改业务单bug 2026-05-29 22:58:47 +08:00
秦鸿展 a5444869bc 测试环境配置修改 2026-05-29 22:19:26 +08:00
秦鸿展 08165d5018 字典添加组织查询,收货批次号逻辑修改 2026-05-29 22:03:20 +08:00
王奎兴 19497d0681 收获批次号从1开始; 2026-05-29 21:29:51 +08:00
王奎兴 84f6285903 库存调整记录查询条件添加; 2026-05-29 21:02:58 +08:00
王奎兴 13e770013a 库存调整记录查询条件添加; 2026-05-29 20:57:38 +08:00
王奎兴 3ad3707c59 扣除oms库存问题修改; 2026-05-29 20:11:25 +08:00
秦鸿展 4768914b12 测试环境配置修改 2026-05-29 19:56:50 +08:00
王奎兴 e8b5cb4084 扣除oms库存问题修改; 2026-05-29 19:55:06 +08:00
王奎兴 bf612be0b2 扣除oms库存问题修改; 2026-05-29 19:47:06 +08:00
zhaoqing 9639238cfb Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-05-29 19:38:01 +08:00
zhaoqing 2c73a0d727 删改单推送修复 2026-05-29 19:37:27 +08:00
王奎兴 eaf113043d Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-05-29 19:37:21 +08:00
王奎兴 2fe6a53dc4 扣除oms库存问题修改; 2026-05-29 19:37:10 +08:00
秦鸿展 b03e00cb3f 测试环境feign修改 2026-05-29 19:36:32 +08:00
王奎兴 19e352b302 扣除oms库存问题修改; 2026-05-29 19:32:02 +08:00
王奎兴 1635acf337 扣除oms库存问题修改; 2026-05-29 19:24:06 +08:00
zhaoqing 2edbc12731 推送修改,修复推送返回值不为code不为200时 会显示推送成功的问题 2026-05-29 19:09:57 +08:00
秦鸿展 a8691776a3 正式环境.30feign修改 2026-05-29 18:13:24 +08:00
王奎兴 d262858379 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-05-29 18:02:42 +08:00
王奎兴 6a7641e45b 扣除oms库存问题修改; 2026-05-29 18:02:31 +08:00
秦鸿展 4523b3064e 正式环境.31feign修改 2026-05-29 18:01:39 +08:00
秦鸿展 d2483d9d0b 正式环境.30feign修改 2026-05-29 17:55:18 +08:00
zhaoqing bea7e0413b 推送修改,修复推送返回值不为code不为200时 会显示推送成功的问题 2026-05-29 17:47:25 +08:00
王奎兴 1851e0a64e 取消重复同步oms库存; 2026-05-29 17:29:33 +08:00
王奎兴 f575c5db85 退货无效修改; 2026-05-29 17:11:25 +08:00
王奎兴 5d64986757 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-05-29 16:59:13 +08:00
王奎兴 6141950a23 退货无效修改; 2026-05-29 16:59:00 +08:00
秦鸿展 f8fb5ee4ce 正式环境.30配置修改 2026-05-29 16:53:47 +08:00
秦鸿展 67a3c3b3d2 正式环境.31配置修改 2026-05-29 16:40:38 +08:00
王奎兴 b5cdd42381 出库不减o库存问题修改; 2026-05-29 16:39:02 +08:00
秦鸿展 8daa7f3ff3 作业单号赋值 2026-05-29 14:44:05 +08:00
zhaoqing 982717e459 推送修改 2026-05-29 14:29:01 +08:00
王奎兴 ba6b38d8c6 出库不减o库存问题修改; 2026-05-29 14:20:03 +08:00
zhaoqing 7c000fda35 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-05-29 10:56:42 +08:00
zhaoqing 6315615cac 保税仓推送修改 2026-05-29 10:55:39 +08:00
秦鸿展 fa612e9d7b 物料导入繁体解析1 2026-05-29 10:38:42 +08:00
秦鸿展 b9a9ee8108 物料导入繁体解析 2026-05-29 10:05:56 +08:00
秦鸿展 6b58811f4c 物料导入繁体解析 2026-05-29 10:02:26 +08:00
赵辉 a7f9c5f3a9 修改业务单bug 2026-05-28 22:26:43 +08:00
王奎兴 b5e6c62f02 出库不减o库存问题修改; 2026-05-28 22:22:07 +08:00
秦鸿展 a4c6dc7d18 拣货单号查询修改 2026-05-28 22:04:29 +08:00
秦鸿展 f905b77316 报错修改 2026-05-28 21:40:04 +08:00
王奎兴 cb9d573169 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-05-28 21:28:31 +08:00
王奎兴 1a9e03bbba 导入入库业务单默认普通入库; 2026-05-28 21:27:53 +08:00
秦鸿展 3b13d4222d Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-05-28 21:24:45 +08:00
王奎兴 c7cb8614ef 日期时区问题修改; 2026-05-28 21:21:51 +08:00
秦鸿展 b7c17be566 导入修改,PDA批次字段回显 2026-05-28 21:21:48 +08:00
王奎兴 39503f9f3c 日期时区问题修改; 2026-05-28 21:20:07 +08:00
王奎兴 ed90334752 入库批次号赋值 2026-05-28 21:09:16 +08:00
王奎兴 955f2dd770 入库批次号赋值 2026-05-28 20:57:25 +08:00
王奎兴 e8dc8cf0cc 入库批次号赋值 2026-05-28 20:33:41 +08:00
王奎兴 11f8f5b440 出库导入报错; 2026-05-28 20:16:07 +08:00
王奎兴 c3c2d0e569 出库导入报错; 2026-05-28 20:14:31 +08:00
zhaoqing 1e61760d45 出口订单推送-数据推送修改 出口仓单推送 2026-05-28 18:29:11 +08:00
王奎兴 01c7e3f9b5 入库单明细查询饮用时间 2026-05-28 18:06:15 +08:00
王奎兴 90a03ab8ec 出库配送明细增删改; 2026-05-28 17:55:09 +08:00
王奎兴 fa8e3ba49b Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-05-28 17:51:36 +08:00
王奎兴 fc7fb04fd9 出库配送明细增删改; 2026-05-28 17:51:27 +08:00
赵辉 f8149b7493 司机新增报错 2026-05-28 17:48:54 +08:00
王奎兴 2dd375bf72 出库配送明细增删改; 2026-05-28 17:48:02 +08:00
王奎兴 6586b1cd73 出库配送明细增删改; 2026-05-28 17:42:23 +08:00
王奎兴 c5adb68fc9 出库配送明细增删改; 2026-05-28 17:36:47 +08:00
王奎兴 5a263ed4d9 出库业务单导入日期不准; 2026-05-28 17:23:45 +08:00
王奎兴 162b4f386c 出库业务单导入日期不准; 2026-05-28 17:18:57 +08:00
王奎兴 7fffad4db5 异步调用oms修改库存; 2026-05-28 17:13:30 +08:00
王奎兴 00afdddd44 异步调用oms修改库存; 2026-05-28 17:05:45 +08:00
王奎兴 e0e932d05c 异步调用oms修改库存; 2026-05-28 16:48:51 +08:00
王奎兴 3478218e71 异步调用oms修改库存; 2026-05-28 16:48:20 +08:00
王奎兴 56b9743192 异步调用oms修改库存; 2026-05-28 16:46:44 +08:00
王奎兴 1143878466 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-05-28 16:46:08 +08:00
王奎兴 c2102c2de1 异步调用oms修改库存; 2026-05-28 16:45:59 +08:00
赵辉 a97d265503 谷丰维他奶oms流程修改 2026-05-28 16:40:20 +08:00
王奎兴 27d6b7ab65 饮用日期格式修改; 2026-05-28 16:32:02 +08:00
秦鸿展 fbc225d1e0 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-05-28 15:50:03 +08:00
秦鸿展 88832114fa 添加字段 userAreaName 2026-05-28 15:49:33 +08:00
zhaoqing b98dcee352 进口仓单推送-Log修改 2026-05-28 15:43:00 +08:00
zhaoqing 54d943ea10 进口仓单推送 2026-05-28 13:57:56 +08:00
王奎兴 39e9ab66c3 收货查询批次号; 2026-05-28 10:10:30 +08:00
王奎兴 b63ded7d67 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-05-28 08:47:31 +08:00
王奎兴 731c3e9ea6 feign修改测试; 2026-05-28 08:47:21 +08:00
秦鸿展 5ba32daf3c PDA出库交接修改 2026-05-27 21:19:34 +08:00
王奎兴 2a2037b2fb Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-05-27 20:30:49 +08:00
王奎兴 b5d0f91d95 收货生成批次号; 2026-05-27 20:30:39 +08:00
赵辉 346a7783fd 谷丰维他奶oms流程修改 2026-05-27 20:16:43 +08:00
王奎兴 d91d8e9801 维他奶配送明细修改; 2026-05-27 20:07:07 +08:00
王奎兴 e2d312a79c 维他奶w库存; 2026-05-27 19:50:33 +08:00
秦鸿展 7a2174d626 PDA任务大厅修改 2026-05-27 17:11:10 +08:00
秦鸿展 1280bdd67d PDA自动下发任务领取 2026-05-27 16:06:16 +08:00
王奎兴 784ad7929d 维他奶退货功能; 2026-05-27 15:08:12 +08:00
zhaoqing 55c62ef7e5 保税仓推送订单修改 2026-05-27 14:41:30 +08:00
秦鸿展 1679403f56 客户修改和删除BUG修改 2026-05-27 14:08:36 +08:00
王奎兴 1cca869a30 维他奶出入库业务单修改; 2026-05-27 14:05:07 +08:00
赵辉 591763f99f 谷丰维他奶oms流程添加 2026-05-27 13:48:52 +08:00
zhaoqing 531901f0ff 推送进口订单修改 2026-05-26 17:55:14 +08:00
秦鸿展 fc87d5cefb 拣货自动下发 2026-05-26 17:18:55 +08:00
秦鸿展 77c57dcfc6 OMS下发自动审核通过 2026-05-26 16:10:15 +08:00
秦鸿展 d46c8e7439 路线管理删除 2026-05-26 14:48:24 +08:00
王奎兴 9a6e544d56 Merge branch 'dev_20260429' into dev_WMS20260401
# Conflicts:
#	mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java
#	mhd-user-center/src/main/java/com/mhd/user/application/service/UserApplicationService.java
2026-05-26 08:38:02 +08:00
秦鸿展 4b22e56b54 31环境配置修改 2026-05-25 20:57:25 +08:00
秦鸿展 5f6cc41e6b .31环境配置修改 2026-05-25 20:22:56 +08:00
王奎兴 b7335b33fb 测试环境库存查询报错; 2026-05-25 20:04:29 +08:00
王奎兴 4d563c1394 去除a.gw_push_status; 2026-05-22 15:00:26 +08:00
赵辉 735f7f9113 Merge remote-tracking branch 'origin/dev_20260429' into dev_20260429 2026-05-22 14:22:30 +08:00
赵辉 dc65b1ae12 新增委托方修改 2026-05-22 14:22:12 +08:00
王奎兴 6d4d3c8359 发布31; 2026-05-22 11:15:36 +08:00
赵辉 540b805546 新增委托方修改 2026-05-22 11:06:25 +08:00
赵辉 dbb1cace5b 新增委托方修改 2026-05-22 11:02:18 +08:00
赵辉 591cfa57d1 新增承运人修改 2026-05-22 09:43:18 +08:00
王奎兴 447e26999b 发布31; 2026-05-21 17:45:05 +08:00
秦鸿展 3ec47385be 测试环境配置修改 2026-05-21 17:03:45 +08:00
赵辉 e76976622f 配置修改 2026-05-21 16:31:50 +08:00
王奎兴 8a4d72e4fb 发布测试; 2026-05-21 16:22:32 +08:00
王奎兴 dc26614e68 Merge branch 'dev_20260429' into dev_WMS20260401
# Conflicts:
#	mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserDO.java
#	mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserDTO.java
2026-05-21 16:14:56 +08:00
王奎兴 57d5043ac2 配置修改; 2026-05-21 16:09:50 +08:00
赵辉 8fcf0ece6f 添加ymsfeign 2026-05-21 15:38:32 +08:00
赵辉 4f03f56126 组织排队开关,新增用户司机同步yms,oms预约单修改 2026-05-21 15:15:49 +08:00
秦鸿展 e782cd05d1 仓码入仓单打印 2026-05-21 15:00:32 +08:00
王奎兴 a29ac3050e 配置修改; 2026-05-21 10:06:10 +08:00
王奎兴 ff5f078a78 配置修改; 2026-05-21 10:05:02 +08:00
王奎兴 7bd3834e2b Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-05-20 16:56:55 +08:00
王奎兴 23e57976f3 关务相关修改;omsbug修改; 2026-05-20 16:56:40 +08:00
秦鸿展 65f8e6119b BI正式环境修改 2026-05-19 20:27:45 +08:00
秦鸿展 c8f527c9a6 BI大屏总体运营态势经纬度修改 2026-05-19 19:07:13 +08:00
秦鸿展 b01e66c4a4 BI大屏总体运营态势查询调整 2026-05-19 18:58:37 +08:00
秦鸿展 cd42d6be05 BI大屏总体运营态势查询修改1 2026-05-19 17:06:58 +08:00
秦鸿展 1f08d86746 BI大屏总体运营态势查询修改 2026-05-19 17:02:51 +08:00
zhaoqing 5d81c89de7 删改单申请推送 2026-05-19 16:01:40 +08:00
zhaoqing cc8051b579 贸易单证详情-件数 2026-05-19 15:45:41 +08:00
秦鸿展 3b12c6fe0a BI大屏运输运营专区查询修改 2026-05-19 15:13:09 +08:00
秦鸿展 bab277f244 BI二级页面查询 2026-05-19 14:18:20 +08:00
zhaoqing fea6b30c16 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-05-19 10:22:51 +08:00
zhaoqing 95af50fe12 删改单申请推送 2026-05-19 10:22:42 +08:00
王奎兴 e784dd289c 新正式环境配置; 2026-05-19 10:10:16 +08:00
秦鸿展 6b8fe67b72 BI港澳服务专区接口查询 2026-05-19 09:39:45 +08:00
王奎兴 ccebac5577 新正式环境配置; 2026-05-19 09:01:56 +08:00
秦鸿展 986808af9a BI运输运营专区接口查询 2026-05-18 16:13:04 +08:00
王奎兴 9fcacbf9af 关务系统添加关务推送状态字段; 2026-05-18 11:49:08 +08:00
王奎兴 187710f578 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-05-18 10:26:49 +08:00
王奎兴 bb66a76762 oms页面查询条件; 2026-05-18 10:26:32 +08:00
zhaoqing 10a3cd1740 新建时添加组织名称 2026-05-16 18:07:17 +08:00
zhaoqing abff686b32 进出口单证推送数据修改 2026-05-16 17:21:33 +08:00
秦鸿展 99ceec0b77 Merge branch 'dev_20260429' into dev_WMS20260401 2026-05-16 16:14:57 +08:00
zhaoqing 658481e691 删改单申请/ 货物数量查询 2026-05-16 16:01:25 +08:00
王奎兴 c539b86535 入库预约单按是否报关查询; 2026-05-16 14:23:31 +08:00
zhaoqing 5aba02d478 sql-增删改 2026-05-16 10:50:01 +08:00
zhaoqing 20d67dfad1 删改单申请添加/查询添加删改单 2026-05-16 10:49:25 +08:00
秦鸿展 3b5674b10c 计费策略修改封装 2026-05-16 10:43:09 +08:00
zhaoqing de9962a4de 物料添加推送人姓名查询 2026-05-16 10:17:31 +08:00
秦鸿展 6d0211d686 计费策略修改 2026-05-16 09:59:11 +08:00
zhaoqing 9addf7c407 推送修复 2026-05-15 20:17:41 +08:00
zhaoqing b883d5ba8f 商业合作伙伴查询 2026-05-15 19:30:53 +08:00
zhaoqing f4e1a1b316 企业国别查询修复 2026-05-15 19:29:14 +08:00
zhaoqing 64f68657e6 推送修复 2026-05-15 19:27:47 +08:00
zhaoqing aa7130ddfe 物料查询 2026-05-15 19:26:56 +08:00
zhaoqing 96c138a2a6 推送数据类型错误 2026-05-15 16:32:22 +08:00
zhaoqing 8948ffac58 修复条件查询报错 2026-05-15 15:48:07 +08:00
zhaoqing 5e3a7d364a 修复条件查询报错 2026-05-15 15:27:30 +08:00
秦鸿展 e85cff8a54 Feign调用地址修改 2026-05-15 15:22:37 +08:00
zhaoqing 151aa4f8b4 修复条件查询报错 2026-05-15 15:20:04 +08:00
秦鸿展 16fd402975 入库费用登记查询 2026-05-15 14:10:43 +08:00
王奎兴 206c85aaf7 Merge branch 'dev_20260429' into dev_WMS20260401
# Conflicts:
#	mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java
#	mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java
#	mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteOmsFeignFallbackFactory.java
#	mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteUserFeignFallbackFactory.java
#	mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/batchDetail/BatchDetailApplicationService.java
#	mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/batchDetail/service/BatchDetailDomainService.java
#	mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/sysTableConfig/SysTableConfigApi.java
2026-05-15 13:55:42 +08:00
zhaoqing 20e47e8cc4 sql 2026-05-15 13:49:25 +08:00
王奎兴 226ded3ee9 入库预约单按是否报关查询; 2026-05-15 13:49:00 +08:00
zhaoqing 3c9b3c5e68 进出口查询条件添加 2026-05-15 11:40:55 +08:00
zhaoqing 6e78c30676 进出口查询条件添加 2026-05-15 11:34:50 +08:00
王奎兴 177be49131 入库数量同步oms入库预约单; 2026-05-15 11:09:48 +08:00
zhaoqing dba352b2f2 修改报文查询bug 修改进出口查询接口 2026-05-15 10:56:58 +08:00
王奎兴 e5a375f67c oms小程序出入库明细查询; 2026-05-15 10:54:41 +08:00
秦鸿展 d0836cb5c6 BI大屏新加仓储运营专区接口查询 2026-05-15 10:31:06 +08:00
zhaoqing 6714278e3f 推送修改 合作伙伴查询添加推送人名称 2026-05-14 20:19:54 +08:00
zhaoqing d11bd2226c sql推送人名称 2026-05-14 19:34:05 +08:00
zhaoqing 98a1eb49c6 物料推送 推送人 2026-05-14 19:33:17 +08:00
zhaoqing 563601c2b9 进出口单证详情 物料详情查询 2026-05-14 19:20:25 +08:00
zhaoqing a8fbcf58fc 进出口单证查询商品类型 2026-05-14 19:00:49 +08:00
zhaoqing d91f3b646d 进出口单证查询 2026-05-14 18:45:13 +08:00
王奎兴 3a6cefa0f6 oms出入库预约单导入接口开发; 2026-05-14 17:55:14 +08:00
zhaoqing 9d483e3cc1 sql 2026-05-14 17:19:33 +08:00
zhaoqing 32029b3f06 业务运输单添加商品类型 2026-05-14 17:18:52 +08:00
zhaoqing 13caa83189 物料查询解决total问题 以及其他页面是推送人名称问题 2026-05-14 16:36:22 +08:00
zhaoqing 0ee57f9858 业务运输单物料 添加物料id(修改) 2026-05-14 16:10:34 +08:00
zhaoqing 7e2d1d14a4 sql修复 2026-05-14 16:04:53 +08:00
zhaoqing 73c1cb999f sql 2026-05-14 15:56:33 +08:00
zhaoqing 3c2447e917 业务运输单物料 添加物料id 2026-05-14 15:55:57 +08:00
秦鸿展 06abee70e3 字典类型加上组织字段修改 2026-05-14 15:23:48 +08:00
秦鸿展 f8c6be9db8 字典类型加上组织字段 2026-05-14 14:18:51 +08:00
zhaoqing c7c536782f 企业币值推送人姓名添加赋值 2026-05-14 13:55:23 +08:00
zhaoqing 94fd0ddbb7 sql 2026-05-14 11:32:04 +08:00
zhaoqing e8dfcd723f 商业合作伙伴推送人姓名字段添加 2026-05-14 11:31:26 +08:00
zhaoqing 43c64779ce 修改businessId字段 查看报文 2026-05-14 11:11:03 +08:00
秦鸿展 89a1eb13cc BI测试环境配置提交 2026-05-14 10:04:08 +08:00
秦鸿展 3867226d3f 出入库费用查询过滤 2026-05-14 09:52:06 +08:00
zhaoqing 642cfc5c8c gwlog日志 2026-05-14 09:51:17 +08:00
秦鸿展 2f3de800a4 BI总体运营态势查询 2026-05-14 09:23:41 +08:00
zhaoqing 17bc4b1416 商业合作伙伴 total显示问题 2026-05-14 08:44:26 +08:00
zhaoqing b15fd4f105 sql 2026-05-13 19:49:25 +08:00
zhaoqing 16d9b601da 进出口原始单证 查询/批量推送 删改单申请(部分) 2026-05-13 19:46:29 +08:00
zhaoqing d97c837d91 企业国别 企业单位返回值total问题 2026-05-13 19:11:36 +08:00
zhaoqing 237e743280 企业国别添加组织查询条件 2026-05-13 18:24:18 +08:00
秦鸿展 b24fa2cd3e 单价列表重复修改 2026-05-13 16:24:05 +08:00
秦鸿展 80d93f2d7b 单价列表重复修改 2026-05-13 16:21:09 +08:00
秦鸿展 0514d223bb 单价列表重复修改 2026-05-13 16:03:41 +08:00
秦鸿展 bc2a040b80 单价列表重复 2026-05-13 15:47:24 +08:00
秦鸿展 c60dca7fe0 入库、出库 费用登记费用科目列表查询修改 2026-05-13 15:31:19 +08:00
王奎兴 495bed1b71 oms修改库存修改; 2026-05-13 13:57:14 +08:00
王奎兴 2e652ca8bc feign地址修改; 2026-05-13 13:45:52 +08:00
王奎兴 a447e59096 oms预约单同步业务单修改; 2026-05-13 11:41:52 +08:00
王奎兴 7cc77eff09 oms预约单新增报错修改; 2026-05-13 11:17:16 +08:00
王奎兴 29f0f55c73 oms预约单新增报错修改; 2026-05-13 11:12:24 +08:00
王奎兴 6a3ebbeec4 OMS库存调整记录查询报错修改; 2026-05-13 10:03:00 +08:00
zhaoqing 032acfd468 oms-修改物料不显示total的问题 2026-05-12 17:50:12 +08:00
王奎兴 6d26806d8b 出入库预约单下发添加仓库信息; 2026-05-12 17:48:34 +08:00
zhaoqing 3883e2bff5 oms-原始单证查询-物料 2026-05-12 16:25:55 +08:00
秦鸿展 ff95284448 出库单编辑计划数量不变问题,库存查询显示问题 2026-05-12 15:36:04 +08:00
王奎兴 a2ebe5af25 出入库预约单下发添加仓库信息; 2026-05-12 15:27:59 +08:00
王奎兴 00745d00b1 入库预约单查询修改; 2026-05-12 14:50:46 +08:00
zhaoqing 97b4e5028e oms-原始单证查询(部分)物料 2026-05-12 14:17:01 +08:00
王奎兴 3998efb77b oms入库预约单新增修改取消仓库校验; 2026-05-12 14:13:18 +08:00
zhaoqing 4b609f32ec oms-企业单位实体类 2026-05-12 11:27:20 +08:00
zhaoqing 5958db4fc2 oms-合作伙伴查询参数添加 2026-05-12 09:46:43 +08:00
王奎兴 515ba88f80 oms库存修改; 2026-05-12 09:39:48 +08:00
zhaoqing 2fb2f6e905 oms-进出口原始单证查询列表(部分) 2026-05-11 18:09:34 +08:00
王奎兴 acbc8bfe02 计费单据 计费流水 费用科目添加计费单位等信息; 2026-05-11 17:41:35 +08:00
秦鸿展 62da999f94 库存分配跟库存查询区分 2026-05-11 16:02:51 +08:00
zhaoqing e7202f100d 物料管理-新增/编辑-添加毛重,修改汇率管理问题 2026-05-11 15:55:43 +08:00
赵辉 594cd7a269 oms预约单修改 2026-05-11 15:43:57 +08:00
秦鸿展 2b281bba90 总体运营态势接口查询 2026-05-11 15:01:31 +08:00
zhaoqing 7198b01a23 oms-运输业务单-新增添加进出口方式字段 2026-05-11 13:50:24 +08:00
王奎兴 0e0bc88ecf 出入库费用登记按钮问题修改; 2026-05-11 09:28:25 +08:00
秦鸿展 836e058249 配置修改 2026-05-11 09:06:04 +08:00
秦鸿展 11a0b15d19 仓库绑定更改 2026-05-11 09:00:48 +08:00
zhaoqing 424621143d 物料管理 查询添加条件 oms-gw推送-物料管理 推送更新状态 2026-05-09 19:33:36 +08:00
zhaoqing 18f4f96359 oms-gw推送-物料管理 修改企业国别字段类型 2026-05-09 17:23:24 +08:00
王奎兴 56193f6d23 Merge remote-tracking branch 'origin/dev_20260429' into dev_20260429 2026-05-09 16:18:20 +08:00
王奎兴 27af017450 计费单据查询单价; 2026-05-09 16:17:55 +08:00
zhaoqing 93d0f258c3 基础信息-物料管理-新增 添加货物类型 2026-05-09 14:54:27 +08:00
王奎兴 0ca5bed1f9 计费单据查询单价; 2026-05-09 11:13:28 +08:00
zhaoqing f5b4b6acd1 基础信息-物料管理-新增页面 添加新下拉框数据 2026-05-09 10:50:25 +08:00
秦鸿展 b456fb45f7 及时库存排序查询,复核添加尺寸字段,物料导入提示错误 2026-05-09 10:21:49 +08:00
秦鸿展 1afddbe531 BI定时任务修改 2026-05-08 23:09:56 +08:00
赵辉 815ffc2a26 生产;环境feign修改 2026-05-08 20:22:59 +08:00
zhaoqing 4d71a2e6e1 基础信息-物料管理-新增页面 添加下拉框数据 2026-05-08 19:11:19 +08:00
王奎兴 7f131c8790 上架逻辑修改; 2026-05-08 18:04:42 +08:00
zhaoqing f3e7317132 OMS-GW-物料信息 2026-05-08 17:06:48 +08:00
王奎兴 999bd1de3e sql查询报错; 2026-05-08 15:00:18 +08:00
王奎兴 8bc716dabf 配置表查询修改; 2026-05-08 14:56:53 +08:00
王奎兴 18f6d2eb6c feign正式环境修改; 2026-05-08 14:13:46 +08:00
王奎兴 e059b80071 wms上架新库存冻结数量有值问题修改; 2026-05-08 14:11:02 +08:00
秦鸿展 2c92b9e641 BIToken认证修改 2026-05-08 11:38:38 +08:00
zhaoqing 5235076d2d OMS-GW-log 2026-05-08 11:06:49 +08:00
赵辉 506f9ef569 测试环境feign修改 2026-05-08 10:18:16 +08:00
王奎兴 f9f2441b52 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-05-08 10:11:44 +08:00
王奎兴 e8b4201a1c oms配置表添加shipperid; 2026-05-08 10:11:34 +08:00
秦鸿展 4b54c68ecb Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-05-08 10:00:27 +08:00
秦鸿展 5539a7c39b BI查询修改 2026-05-08 10:00:11 +08:00
王奎兴 c62ccf943e oms配置表添加shipperid; 2026-05-08 09:57:31 +08:00
王奎兴 e467193f03 oms配置表添加shipperid; 2026-05-08 09:52:36 +08:00
王奎兴 ab7534e134 oms配置表添加shipperid; 2026-05-08 09:27:43 +08:00
秦鸿展 32d56a9a1d 出库修改 2026-05-08 09:03:48 +08:00
王奎兴 326bd9089b feign改为正式url; 2026-05-08 08:45:32 +08:00
秦鸿展 ea2f070bfc hs码修改 2026-05-07 21:14:55 +08:00
zhaoqing 84fdb36465 OMS-GW-企业单位 2026-05-07 18:57:43 +08:00
zhaoqing 8c3d44d7da OMS-GW-企业国别 2026-05-07 18:49:37 +08:00
zhaoqing 9b67df1e88 OMS-GW-企业国别 2026-05-07 18:29:40 +08:00
zhaoqing 9139485e6d Merge remote-tracking branch 'origin/dev_20260429' into dev_20260429 2026-05-07 17:44:14 +08:00
zhaoqing 0c2dff7faf OMS-GW-企业国别 2026-05-07 17:44:07 +08:00
秦鸿展 b754aaf949 详情查询修改 2026-05-07 17:43:54 +08:00
zhaoqing afdea9dbf1 OMS-GW-企业国别 2026-05-07 17:20:28 +08:00
秦鸿展 51df232625 出库制单人打印修改 2026-05-07 16:06:01 +08:00
zhaoqing da20e2a616 OMS-GW-企业单位 2026-05-07 15:25:23 +08:00
zhaoqing 71defc2e0b OMS-GW-企业单位 2026-05-07 14:03:20 +08:00
zhaoqing 03a9c47db5 OMS-GW-企业单位 2026-05-07 11:38:22 +08:00
王奎兴 4c32d4032e app仓储订单列表; 2026-05-07 09:43:11 +08:00
王奎兴 02da883a6b app仓储订单列表; 2026-05-07 09:15:20 +08:00
王奎兴 2109a1b5b3 根据userid获取仓库; 2026-05-07 08:54:58 +08:00
zhaoqing c5a2d458df OMS-GW推送-企业币值 2026-05-06 19:42:10 +08:00
王奎兴 ee11318540 仓储订单列表; 2026-05-06 18:01:40 +08:00
王奎兴 99d90a231d Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-05-06 17:56:19 +08:00
王奎兴 223da56807 仓储订单列表; 2026-05-06 17:56:07 +08:00
秦鸿展 13112db89c BI大屏单表查询修改 2026-05-06 17:48:56 +08:00
zhaoqing 9d1b13d4d3 OMS-GW推送-企业币值 2026-05-06 17:43:47 +08:00
zhaoqing e5b836012b OMS-GW推送-商业合作伙伴 2026-05-06 16:05:38 +08:00
zhaoqing d32e7e97f6 OMS-GW推送-商业合作伙伴 2026-05-06 14:16:14 +08:00
王奎兴 d86639ba4b 去除出库单id; 2026-05-06 14:07:10 +08:00
王奎兴 b843b27937 oms出库预约单确认修改状态; 2026-05-06 13:57:44 +08:00
zhaoqing 4d732b1bf8 OMS-GW推送-商业合作伙伴 2026-05-06 13:51:57 +08:00
zhaoqing b62fc345b0 OMS-GW推送-商业合作伙伴 2026-05-06 11:20:41 +08:00
秦鸿展 0ec7e9b703 提货单打印修改 2026-05-06 11:06:12 +08:00
赵辉 9b1bae354c Merge remote-tracking branch 'origin/dev_20260429' into dev_20260429 2026-04-30 16:56:07 +08:00
赵辉 b2a01f1738 货主区分账号与电话 2026-04-30 16:55:39 +08:00
zhaoqing 2973c0c4b1 OMS-GW推送-商业合作伙伴-user_center 2026-04-30 16:38:29 +08:00
王奎兴 a9c27b9d4c mhd-bi发布测试; 2026-04-30 16:05:01 +08:00
王奎兴 0dc9dba78e feign修改; 2026-04-30 15:19:05 +08:00
王奎兴 6faccde5e6 feign修改; 2026-04-30 15:05:24 +08:00
王奎兴 0b141796a1 mnd-bi; 2026-04-30 14:57:13 +08:00
赵辉 b934fe9628 列表报错修改 2026-04-30 10:56:37 +08:00
王奎兴 7e00ca52c9 出库单明细加字段; 2026-04-29 16:41:49 +08:00
王奎兴 8a796aa432 出库单明细加字段; 2026-04-29 16:08:53 +08:00
王奎兴 d4748995b9 出库单明细加字段; 2026-04-29 15:19:37 +08:00
王奎兴 170e4e5d8d 保质期格式修改; 2026-04-29 14:33:42 +08:00
王奎兴 32ce218671 查询预约信息; 2026-04-29 14:26:26 +08:00
高正杨 da120b5a64 冲突修改; 2026-04-29 14:18:18 +08:00
王奎兴 20c4973df3 查询预约信息; 2026-04-29 14:03:15 +08:00
王奎兴 8f7d44d725 配置修改; 2026-04-29 13:26:53 +08:00
王奎兴 11244cf89f 新增计费单据查询报错修改; 2026-04-29 13:24:25 +08:00
赵辉 feafc19e17 配置修改 2026-04-29 11:54:25 +08:00
赵辉 7d1254d237 配置修改 2026-04-29 11:42:10 +08:00
赵辉 aa82c42190 Merge branch 'refs/heads/dev_WMS20260401' into dev
# Conflicts:
#	mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java
#	mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteUserFeignFallbackFactory.java
2026-04-29 11:16:40 +08:00
赵辉 18a3e79c8a 列表配置修改 2026-04-29 11:13:02 +08:00
王奎兴 3759a54b49 新增计费单据查询报错修改; 2026-04-29 09:40:44 +08:00
zhaoqing 8f5bf53620 OMS-商业合作伙伴页面查询 2026-04-28 16:59:41 +08:00
王奎兴 7a11d68b8f 发布测试环境修改配置; 2026-04-28 15:11:57 +08:00
王奎兴 cfbef4bc30 发布测试环境修改配置; 2026-04-28 14:50:25 +08:00
王奎兴 a8f9d21805 推送nc添加费用科目信息; 2026-04-28 14:42:31 +08:00
赵辉 269fef04b2 Merge branch 'dev' into dev_WMS20260401
# Conflicts:
#	mhd_wms/src/main/java/com/mhd/wms/domain/shelfMaterialDetail/repository/persistence/ShelfMaterialDetailImpl.java
2026-04-28 13:41:57 +08:00
zhou-hongcheng 5f56c21b84 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-28 11:33:53 +08:00
王奎兴 745bb12dba oms预约入库单驳回及确认; 2026-04-28 11:32:11 +08:00
zhou-hongcheng 95cb22d2ca 补全创建人和搜索 2026-04-28 11:30:40 +08:00
王奎兴 99f086fdfa 上架库存修改; 2026-04-28 10:52:03 +08:00
zhou-hongcheng 4260ac5fce 增加注册地址字段 2026-04-28 10:46:04 +08:00
赵辉 359c612c65 执行单添加业务单元 2026-04-28 09:44:05 +08:00
秦鸿展 749cb50282 PDA下发任务栏领取任务修改 2026-04-28 08:46:44 +08:00
王奎兴 71e4188622 上架库存修改; 2026-04-27 18:58:40 +08:00
zhaoqing 1ea3f13a99 基础数据-委托方管理-联系方式/登录账号相关修改 2026-04-27 18:04:29 +08:00
zhou-hongcheng 6d61e14a5e Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-27 17:36:40 +08:00
zhou-hongcheng 484741e12b 路线波次生成客户管理页面查询路线信息 2026-04-27 17:36:24 +08:00
王奎兴 4416e2ecf5 入库单添加客户信息; 2026-04-27 17:00:28 +08:00
王奎兴 ac2d2b9007 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-27 16:27:59 +08:00
王奎兴 52d50506c8 预约单查询报错; 2026-04-27 16:27:49 +08:00
zhaoqing 6df0c40d0b tms-新增/编辑车队 2026-04-27 15:27:56 +08:00
zhou-hongcheng 1aeb57c91b Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-27 15:04:49 +08:00
zhou-hongcheng f708fadb9a 客户管理页面查询 2026-04-27 15:04:37 +08:00
王奎兴 3ae19e5a55 oms入库预约单添加字段; 2026-04-27 14:31:43 +08:00
zhaoqing eb3d7ad0c8 tms-新增/编辑司机 2026-04-27 14:29:13 +08:00
zhou-hongcheng 907e0128e6 路线管理列表查询 2026-04-27 14:24:01 +08:00
zhou-hongcheng 467e3aed48 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-27 13:40:43 +08:00
zhou-hongcheng 3a7d3c0532 路线管理列表 2026-04-27 13:40:30 +08:00
秦鸿展 3cefbecd69 批次规则查询修改 2026-04-27 13:39:17 +08:00
秦鸿展 3a02c2a1f2 批次规则查询修改 2026-04-27 13:30:01 +08:00
王奎兴 293e6ee342 oms启动报错; 2026-04-27 13:13:02 +08:00
秦鸿展 271a10be61 合并冲突 2026-04-27 11:45:51 +08:00
王奎兴 90652840bb oms出入库预约单; 2026-04-27 10:45:29 +08:00
秦鸿展 a76e9c4367 入库出库作业单调整 2026-04-27 09:47:32 +08:00
zhou-hongcheng 4767cf986b Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-27 09:33:32 +08:00
zhou-hongcheng 28996dd549 wms收货详情增加是否是抄码 2026-04-27 09:33:18 +08:00
王奎兴 4be0a804a4 Merge branch 'dev' into dev_WMS20260401
# Conflicts:
#	mhd_wms/src/main/resources/mapper/reviewOrder/ReviewOrderMapper.xml
2026-04-27 09:30:55 +08:00
秦鸿展 0a116730ef 入库出库作业单调整 2026-04-24 15:41:54 +08:00
zhou-hongcheng 14f981b7d1 oms新增库存调整记录 2026-04-24 09:23:26 +08:00
zhou-hongcheng b3c4fb521b oms出库修改库存 2026-04-23 16:11:36 +08:00
zhou-hongcheng 5db994432f oms上架修改库存 2026-04-23 15:29:11 +08:00
zhou-hongcheng 6bdbaa0fda oms入库存入库存 2026-04-23 14:22:48 +08:00
zhou-hongcheng b5bc44a619 拣货增加货主 2026-04-23 09:37:27 +08:00
秦鸿展 7434307880 序列号管理的序列号不能为空注释 2026-04-23 02:24:57 +08:00
秦鸿展 9484bc5e8d PDA复核数量更改 2026-04-23 01:50:11 +08:00
秦鸿展 40d63d6fd8 仓库控制信息 2026-04-23 01:11:54 +08:00
秦鸿展 4ff74f3664 物料导入分类问题解决 2026-04-22 23:00:59 +08:00
秦鸿展 60874e7322 物料导入分类问题解决 2026-04-22 22:44:39 +08:00
秦鸿展 87f64f0efa Merge branch 'dev_WMS20260401' into dev 2026-04-22 21:46:05 +08:00
秦鸿展 5f891c6226 入库作业单详情 2026-04-22 21:45:17 +08:00
王奎兴 4559bbc121 入库单查询报错; 2026-04-22 20:55:27 +08:00
王奎兴 a468ba33e7 feign调用地址修改; 2026-04-22 20:12:41 +08:00
王奎兴 315c107fbb feign调用地址修改; 2026-04-22 19:45:57 +08:00
王奎兴 77477898d8 feign调用地址修改; 2026-04-22 19:14:52 +08:00
王奎兴 7dd5508006 feign调用地址修改; 2026-04-22 19:03:04 +08:00
王奎兴 724ae6c774 Merge branch 'dev_WMS20260401' into dev 2026-04-22 18:42:51 +08:00
王奎兴 798e95521a 散租添加出账日; 2026-04-22 18:35:42 +08:00
赵辉 23e9af4e11 配置修改 2026-04-22 18:34:19 +08:00
王奎兴 3aa62897f4 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-22 18:30:59 +08:00
王奎兴 336a33f6e7 omsfeign熔断; 2026-04-22 18:30:39 +08:00
秦鸿展 3c8aea5093 移位的库存调整记录修改,以及新库存没有更新时间 2026-04-22 18:29:34 +08:00
王奎兴 48f53b2d35 推送oms报错问题修改; 2026-04-22 18:23:43 +08:00
王奎兴 e94fd329a1 推送oms报错问题修改; 2026-04-22 18:22:07 +08:00
王奎兴 676c95233e 推送oms报错问题修改; 2026-04-22 18:19:10 +08:00
王奎兴 3ca94bc4cf 推送oms报错问题修改; 2026-04-22 18:15:24 +08:00
王奎兴 5b792ccae5 oms出库单查询查询业务单号; 2026-04-22 17:46:09 +08:00
秦鸿展 5ced64b81b PDA提交不显示重量相关 2026-04-22 17:38:28 +08:00
赵辉 927e6a332a Merge remote-tracking branch 'origin/dev' into dev 2026-04-22 17:22:18 +08:00
赵辉 bf33392aed oms修改 2026-04-22 17:22:06 +08:00
王奎兴 b7d14706d7 Merge branch 'dev' into dev_WMS20260401 2026-04-22 17:13:44 +08:00
王奎兴 7b4d4cb9a9 申请发票报错; 2026-04-22 16:58:36 +08:00
王奎兴 38fb1c8ce5 oms推送wms加结算币种业务员信息; 2026-04-22 16:52:40 +08:00
zhou-hongcheng cf5b1af88a Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-22 16:35:30 +08:00
zhou-hongcheng c8a741eb14 复核写入入库单号 2026-04-22 16:35:16 +08:00
王奎兴 62b4f69058 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-22 16:21:26 +08:00
王奎兴 abd1545c15 bms申请发票报错; 2026-04-22 16:21:16 +08:00
zhou-hongcheng f0bb9bcba1 拣货单生成写入入库单号 2026-04-22 16:15:49 +08:00
zhou-hongcheng cdc627dd06 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-22 16:04:37 +08:00
zhou-hongcheng f40ed734ac 出库管理 入库单号写入 2026-04-22 16:04:26 +08:00
王奎兴 2864812f11 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-22 15:48:30 +08:00
王奎兴 1f8b7ef0e8 oms入库单入库数量; 2026-04-22 15:48:21 +08:00
zhou-hongcheng 7dd8e53927 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-22 15:45:52 +08:00
zhou-hongcheng 6cbbf1305c 出库分配库存存入入库单号 2026-04-22 15:45:40 +08:00
zhaoqing a47e5aafca wms-抄码添加查询条件 2026-04-22 15:40:50 +08:00
秦鸿展 882aa8740e bug更改 2026-04-22 15:21:36 +08:00
zhou-hongcheng 1cb6b79a52 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-22 15:17:32 +08:00
zhou-hongcheng 39f1a6d891 批量复合 2026-04-22 15:17:20 +08:00
王奎兴 f11c7aad9a sql报错修改; 2026-04-22 15:16:59 +08:00
zhou-hongcheng 88d8666d3b Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-22 14:52:39 +08:00
zhou-hongcheng 68d6f845a1 拣货页面补全缺少东西 2026-04-22 14:52:23 +08:00
王奎兴 d2a09baf31 Merge branch 'dev' into dev_WMS20260401 2026-04-22 14:42:44 +08:00
王奎兴 775dfecf9f 部门id改为字符串;修改库存推送oms; 2026-04-22 14:41:20 +08:00
秦鸿展 51ec8e7fe0 库存分配和出库生成调整记录没有lot编码解决 2026-04-22 13:55:50 +08:00
zhou-hongcheng 93dfd9c97e 上架业务单号 2026-04-22 13:16:28 +08:00
zhou-hongcheng 64990d01ed 入库到收货增加业务单号 2026-04-22 11:24:06 +08:00
zhou-hongcheng 33482d4ff2 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-22 11:02:32 +08:00
zhou-hongcheng 7067476505 入库到收货增加业务单号 2026-04-22 11:02:19 +08:00
zhaoqing 0238cf4489 wms-抄码添加查询条件 2026-04-22 10:58:56 +08:00
秦鸿展 4c1831ec6b 出入库异常未按照仓库过滤 2026-04-22 09:18:18 +08:00
王奎兴 3062adeca9 部门id改为字符串; 2026-04-21 19:27:45 +08:00
zhou-hongcheng 6899e642c7 库存等于0也显示 2026-04-21 18:01:07 +08:00
王奎兴 3d5be9dd27 查询业务单号; 2026-04-21 17:56:27 +08:00
zhou-hongcheng 5508cd7ea1 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-21 17:49:10 +08:00
zhou-hongcheng 404c1e1225 出库交接根据出库单号单号和业务id,上架增加根据lot编号同步oms 2026-04-21 17:44:27 +08:00
秦鸿展 afe1cd5011 出入库异常未按照仓库过滤 2026-04-21 17:41:53 +08:00
王奎兴 405bd43f34 发布正式修改配置; 2026-04-21 16:57:44 +08:00
王奎兴 f5451a51f0 Merge branch 'dev_WMS20260401' into dev 2026-04-21 16:56:36 +08:00
王奎兴 838a7d6acd 发布正式修改配置; 2026-04-21 16:56:19 +08:00
秦鸿展 4b79294168 PDA抄码拣货修改 2026-04-21 16:52:12 +08:00
赵辉 e667f22564 oms修改 2026-04-21 16:25:52 +08:00
王奎兴 9a39d329e6 添加日志; 2026-04-21 16:15:35 +08:00
zhou-hongcheng f394f03dd9 上架oms添加入库件数 2026-04-21 15:53:35 +08:00
zhou-hongcheng 1f5aef417b 收货到上家详情 2026-04-21 15:06:37 +08:00
王奎兴 69dc0581c2 bms测试环境配置; 2026-04-21 14:43:55 +08:00
zhou-hongcheng 54ca167884 wms上入库存入收货oms入库单id 2026-04-21 13:49:07 +08:00
zhou-hongcheng c703c339fc oms入库单同步到wms增加oms主键id信息 2026-04-21 13:21:41 +08:00
zhaoqing d0a091e6a8 wms-查询条件id 2026-04-21 10:58:45 +08:00
王奎兴 31f2bbcc8a 仓库添加是否启用; 2026-04-21 09:22:54 +08:00
秦鸿展 2c3ed1149a 1 2026-04-21 00:06:53 +08:00
秦鸿展 70936024a8 新建的仓库需要默认绑定当前登录账号
3.仓库绑定用户时只查询非默认用户IS_DEFAULT=1
2026-04-20 23:47:19 +08:00
赵辉 9da405b7f2 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-20 21:48:31 +08:00
赵辉 9a5e63e6f0 oms修改 2026-04-20 21:48:21 +08:00
秦鸿展 fa400d2bc0 库存调整记录修改 2026-04-20 21:47:25 +08:00
赵辉 209d87409e oms修改 2026-04-20 20:51:52 +08:00
王奎兴 7e5cb10e39 库存调整记录批次号; 2026-04-20 20:40:26 +08:00
王奎兴 850202cb3a 库存调整记录批次号; 2026-04-20 20:37:23 +08:00
王奎兴 7c57a10321 出入库时间同步oms; 2026-04-20 20:13:38 +08:00
王奎兴 34ebb4d992 出库单订单来源; 2026-04-20 20:05:21 +08:00
王奎兴 1664781f51 入库调整记录修改; 2026-04-20 18:49:28 +08:00
王奎兴 f68a509d88 入库调整记录修改; 2026-04-20 18:21:44 +08:00
王奎兴 55c79e11d1 Merge branch 'dev' into dev_WMS20260401 2026-04-20 18:14:54 +08:00
王奎兴 c22b28c484 入库调整记录修改; 2026-04-20 18:13:40 +08:00
秦鸿展 8f28564265 PDABug修改 2026-04-20 17:44:24 +08:00
秦鸿展 3414785be3 PDABug修改 2026-04-20 17:04:49 +08:00
zhou-hongcheng 2fa09050cc 定时任务仓库出租率散租调用wms服务出错bug 2026-04-20 16:46:11 +08:00
zhou-hongcheng 1f0f30923c 上架回传后OMS入库单更新入库时间和入库数量 2026-04-20 15:50:08 +08:00
zhou-hongcheng 1b9521e5e5 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-20 14:40:28 +08:00
zhou-hongcheng 984f4628c5 优化物料导入 2026-04-20 14:40:14 +08:00
王奎兴 2b28b2793a docker配置修改; 2026-04-20 13:49:47 +08:00
王奎兴 ad5efe0087 docker配置修改; 2026-04-20 13:44:56 +08:00
王奎兴 07b4c3cbcc 发布测试配置修改; 2026-04-20 13:39:32 +08:00
王奎兴 951d2d98f5 发布测试配置修改; 2026-04-20 13:30:09 +08:00
王奎兴 76f2e87eae 出入库添加仓库负责人信息回显; 2026-04-20 13:26:44 +08:00
王奎兴 a4129199ee Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-20 11:46:26 +08:00
王奎兴 fffebc5003 出入库添加仓库负责人信息; 2026-04-20 11:46:14 +08:00
秦鸿展 c501c83cd5 拣货数量为0的不生成复核明细 2026-04-20 11:21:05 +08:00
zhou-hongcheng 5bd042ea8e 上架存入库存表更新时间 2026-04-20 09:57:21 +08:00
zhou-hongcheng 842e5d79e5 收货去掉批次号重复校验 2026-04-20 09:28:26 +08:00
王奎兴 1b4ce7db91 出库库存调整记录修改; 2026-04-18 20:31:51 +08:00
王奎兴 1b1312e7b4 出库交接库存调整记录添加lotno等; 2026-04-18 19:00:19 +08:00
王奎兴 c0f41e9db4 出库交接库存调整记录添加lotno等; 2026-04-18 18:42:27 +08:00
zhaoqing 22c0090b0c Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-18 18:38:13 +08:00
zhaoqing 19eb93377c wms-入仓通知单打印查询 2026-04-18 18:37:55 +08:00
王奎兴 80cf12c777 上架查询物料规则报错; 2026-04-18 18:29:24 +08:00
王奎兴 38d497392b Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-18 17:17:06 +08:00
王奎兴 e5441eb415 新增的库存添加更新时间; 2026-04-18 17:16:56 +08:00
秦鸿展 ffcb32f9a3 移位lot编号入库号修改 2026-04-18 17:09:33 +08:00
王奎兴 7501bde717 库存调整记录添加重量体积等调整信息; 2026-04-18 16:58:16 +08:00
王奎兴 6f4d2ca742 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-18 16:51:35 +08:00
王奎兴 70d86d490b 库存调整记录倒序排序; 2026-04-18 16:51:24 +08:00
zhaoqing c8fa72878b oms-出库单提货单打印 2026-04-18 16:44:21 +08:00
王奎兴 565eb609d1 oms入库单添加数量信息;库存调整添加库存调整记录; 2026-04-18 16:40:49 +08:00
秦鸿展 5917caacd3 收货修改 2026-04-18 16:11:38 +08:00
王奎兴 1d78832604 oms入库单添加数量信息; 2026-04-18 16:11:14 +08:00
王奎兴 584ff7ba21 lot编号传递; 2026-04-18 15:57:55 +08:00
zhaoqing 8898a4e798 oms-入仓通知单打印 2026-04-18 15:30:17 +08:00
王奎兴 041d71b425 差异过账结果推送oms; 2026-04-18 15:11:49 +08:00
王奎兴 92bd85405c 差异过账结果推送oms; 2026-04-18 14:56:14 +08:00
王奎兴 a92b21403b Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-18 14:49:21 +08:00
王奎兴 89d6d76423 入库单查询报错; 2026-04-18 14:49:11 +08:00
赵辉 a47b1b8e65 oms修改 2026-04-18 14:45:40 +08:00
王奎兴 b1cf9c118b oms入库单订单来源; 2026-04-18 14:44:29 +08:00
秦鸿展 dde4573682 拣货生成复核单明细中字段缺失 2026-04-18 14:37:16 +08:00
王奎兴 3241b0fce2 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401
# Conflicts:
#	mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/repository/po/ReservationStockInOrderPO.java
#	mhd_oms/src/main/resources/mapper/reservationStockInOrder/ReservationStockInOrderMapper.xml
2026-04-18 14:27:49 +08:00
王奎兴 83ff6c46ca oms入库单订单来源; 2026-04-18 14:27:06 +08:00
赵辉 aa441e0518 oms修改 2026-04-18 14:26:26 +08:00
赵辉 d6ee9fb2ec oms修改 2026-04-18 14:19:12 +08:00
秦鸿展 7f701ca701 物料管理(包装货主检验注释 2026-04-18 13:47:08 +08:00
秦鸿展 bae0092ec0 拣货报错 2026-04-18 13:42:24 +08:00
秦鸿展 f749c1e9ca WMS出库查询问题修改 2026-04-18 12:24:52 +08:00
秦鸿展 e0b3ddff04 WMS出库查询问题修改 2026-04-18 11:43:33 +08:00
秦鸿展 bd2a5915ba OMS新增计划数量为0问题 2026-04-18 11:07:07 +08:00
赵辉 3acca20d16 oms与wms修改 2026-04-18 09:49:18 +08:00
王奎兴 90aa6a0aeb 制单人; 2026-04-17 21:55:38 +08:00
王奎兴 c987ee31d6 库存调整记录添加入库单号 lotno; 2026-04-17 21:42:43 +08:00
王奎兴 05a999e2e1 上架添加库存修改; 2026-04-17 21:17:48 +08:00
王奎兴 9a895b8fba 库存调整记录修改; 2026-04-17 20:38:43 +08:00
王奎兴 5a2070bec9 上架报错; 2026-04-17 20:13:30 +08:00
王奎兴 b0fbbf7343 盘点结果推送oms; 2026-04-17 19:58:56 +08:00
王奎兴 a334c99180 入库结果回传oms; 2026-04-17 19:52:48 +08:00
王奎兴 90ede30b14 盘点推送结果oms; 2026-04-17 19:39:26 +08:00
王奎兴 d7cb562a9f Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-17 19:34:48 +08:00
王奎兴 19a1d192d5 盘点推送结果oms; 2026-04-17 19:34:33 +08:00
秦鸿展 3d235e48f6 仓库修改 2026-04-17 19:31:04 +08:00
秦鸿展 c0fd835365 新增客户修改 2026-04-17 19:14:07 +08:00
王奎兴 5ed590bfd2 查询出入库单审核状态;盘点推送结果oms; 2026-04-17 19:09:21 +08:00
秦鸿展 dfb360e123 PDA抄码修改 2026-04-17 18:06:16 +08:00
zhou-hongcheng 5d78a94f29 抄码新增字段 2026-04-17 16:45:24 +08:00
王奎兴 89d78e3275 出入库前端生成单号; 2026-04-17 16:21:20 +08:00
王奎兴 4e62c80763 库存冻结体积面积信息; 2026-04-17 14:25:29 +08:00
王奎兴 5733e839ad Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-17 14:20:00 +08:00
王奎兴 f7ad272b8c oms出入库; 2026-04-17 14:19:43 +08:00
zhaoqing e658dfb56d wms-提货单sql 2026-04-17 14:12:54 +08:00
zhou-hongcheng ff32e5d32c 抄码出库交接 2026-04-17 14:04:56 +08:00
zhou-hongcheng 7cc2081ad3 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-17 11:05:23 +08:00
zhou-hongcheng b86374786f 抄码复合优化拣货 2026-04-17 11:05:06 +08:00
秦鸿展 290b87933e PDA上架详情字段添加 2026-04-17 10:08:43 +08:00
赵辉 514cd7df61 Merge branch 'dev' into dev_WMS20260401 2026-04-17 10:02:34 +08:00
赵辉 3d4907f49c oms与bms修改 2026-04-17 09:29:27 +08:00
zhaoqing 5b54f99b72 wms-sql 2026-04-17 09:22:50 +08:00
秦鸿展 6916fbb9d2 抄码查询修改 2026-04-17 08:59:55 +08:00
王奎兴 f7434a592b Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-17 08:59:25 +08:00
王奎兴 ddc1f5d2ea oms出入库; 2026-04-17 08:59:16 +08:00
zhaoqing 2dbc309e35 wms 出库单提货单打印 修改查询字段 2026-04-17 08:52:00 +08:00
zhaoqing 84b467ef04 wms 出库单提货单打印FG 提货单打印添加字段 2026-04-16 18:05:14 +08:00
zhou-hongcheng ce6d42ce61 抄码拣货 2026-04-16 16:47:12 +08:00
zhou-hongcheng 94900ea8e4 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-16 16:38:42 +08:00
zhou-hongcheng 9531d52ef0 出库和拣货详情增加是否抄码标识 2026-04-16 16:38:29 +08:00
秦鸿展 c3b8779c85 PDA抄码修改 2026-04-16 15:40:55 +08:00
zhou-hongcheng 62f09f74f6 上架详情收货详情增加是否抄码标识 2026-04-16 15:34:15 +08:00
zhou-hongcheng 6fb7d6b991 抄码取消分配 2026-04-16 15:02:38 +08:00
zhou-hongcheng feeb10307c Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-16 14:53:50 +08:00
zhou-hongcheng 67a37c1458 优化 2026-04-16 14:53:36 +08:00
zhaoqing e999675584 wms 出库单提货单打印 2026-04-16 14:10:20 +08:00
秦鸿展 83dd741bbf Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-16 13:58:46 +08:00
秦鸿展 636a96b0ed 物料查询抄码显示修改 2026-04-16 13:58:25 +08:00
zhou-hongcheng 5446c3bece Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-16 13:58:15 +08:00
zhou-hongcheng 97c0fc386c 抄码商品取消分配 2026-04-16 13:58:03 +08:00
秦鸿展 2c35c39e52 物料查询抄码显示修改 2026-04-16 13:35:03 +08:00
zhou-hongcheng ea4ee08353 抄码商品拣货存入id 2026-04-16 13:31:23 +08:00
zhou-hongcheng 5943463064 抄码商品分配库存存入id 2026-04-16 11:45:48 +08:00
zhou-hongcheng 67413368de Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-16 11:31:26 +08:00
zhou-hongcheng 99e7c314a0 抄码商品生成拣货单存入抄码重量 2026-04-16 11:31:13 +08:00
赵辉 4ca0f10e61 oms修改 2026-04-16 11:22:32 +08:00
王奎兴 5ee5dc28a5 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-16 11:21:41 +08:00
王奎兴 b561342bed 查询菜单报错; 2026-04-16 11:21:27 +08:00
zhou-hongcheng 913dc6a885 Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-16 11:13:08 +08:00
zhou-hongcheng 4d9fe3dc40 抄码商品分配库存 2026-04-16 11:12:54 +08:00
王奎兴 eec90b054b 查询菜单报错; 2026-04-16 11:02:00 +08:00
秦鸿展 96d81526d9 物料查询修改 2026-04-16 09:57:40 +08:00
zhaoqing 2b1170bde5 wms 抄码Api 2026-04-16 08:51:54 +08:00
zhaoqing a8b039e52f wms 入仓单打印 2026-04-15 19:41:38 +08:00
王奎兴 e731394066 合并代码冲突; 2026-04-15 19:31:47 +08:00
王奎兴 e17216eb7c 合并代码冲突; 2026-04-15 19:30:05 +08:00
王奎兴 22aef1d84d Merge branch 'dev' into dev_WMS20260401
# Conflicts:
#	mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/entity/MaterialBaseInfo.java
#	mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java
#	mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java
#	mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java
#	mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java
#	mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java
#	mhd_wms/src/main/java/com/mhd/wms/application/service/stockReceiptOrder/StockReceiptOrderApplicationService.java
#	mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java
#	mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/PickingOrderDomainService.java
#	mhd_wms/src/main/java/com/mhd/wms/domain/receiptMaterialDetail/repository/facade/IReceiptMaterialDetailService.java
#	mhd_wms/src/main/java/com/mhd/wms/domain/receiptMaterialDetail/repository/persistence/ReceiptMaterialDetailImpl.java
#	mhd_wms/src/main/java/com/mhd/wms/domain/shelfMaterialDetail/repository/todo/ShelfMaterialDetailDO.java
#	mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/po/StockInOrderPO.java
#	mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/entity/StockOutOrder.java
#	mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/po/StockOutOrderPO.java
#	mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/todo/StockOutOrderDO.java
#	mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/repository/po/StockReceiptOrderPO.java
#	mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockOutOrder/StockOutOrderDTO.java
#	mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockInOrder/StockInOrderApi.java
#	mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockReceiptOrder/StockReceiptOrderApi.java
#	mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApp/stockReceiptOrder/StockReceiptOrderAppApi.java
#	mhd_wms/src/main/resources/mapper/stockInOrder/StockInOrderMapper.xml
#	mhd_wms/src/main/resources/mapper/stockReceiptOrder/StockReceiptOrderMapper.xml
2026-04-15 18:48:55 +08:00
王奎兴 ad310f2fc2 oms修改; 2026-04-15 18:29:06 +08:00
秦鸿展 551c618820 出库导入修改 2026-04-15 17:47:48 +08:00
秦鸿展 2a4c4b835a 配置修改 2026-04-15 17:11:33 +08:00
秦鸿展 be323e975a 导入修改 2026-04-15 17:10:44 +08:00
zhou-hongcheng 0fac5143a7 抄码存入详情 2026-04-15 16:08:55 +08:00
王奎兴 662123cdb6 上架库存调整记录注释; 2026-04-15 15:35:38 +08:00
zhaoqing 9e6357d6e6 wms 收货详情-条码打印 2026-04-15 15:24:39 +08:00
zhaoqing ffa741d7ed wms 入库管理-打印入库单 2026-04-15 13:51:05 +08:00
zhou-hongcheng 10549fd4ec Merge remote-tracking branch 'origin/dev_WMS20260401' into dev_WMS20260401 2026-04-15 12:28:52 +08:00
zhou-hongcheng e5681bc510 抄码存入详情 2026-04-15 12:27:38 +08:00
王奎兴 ac51afdb7e 发布正式配置修改; 2026-04-15 11:27:40 +08:00
王奎兴 7bc6843729 wms回传oms出入库结果; 2026-04-15 11:25:54 +08:00
秦鸿展 925b4ade1d W配置修改 2026-04-15 11:19:22 +08:00
秦鸿展 1fbdaaaf51 上架数量显示异常1 2026-04-15 10:56:04 +08:00
秦鸿展 fdb70db6f6 上架数量显示异常 2026-04-15 10:06:46 +08:00
zhaoqing f89c948da4 wms 抄码实体类字段 2026-04-15 09:43:11 +08:00
zhaoqing 54113c88be wms sql字段 2026-04-15 09:14:21 +08:00
zhaoqing f56db21de4 wms 添加抄码实体类 2026-04-15 08:47:06 +08:00
zhaoqing 6aee88748b 修改 wms 库存管理 页面查询和打印 2026-04-14 22:21:15 +08:00
秦鸿展 f63917ed03 PDA收货上架修改内容 2026-04-14 21:36:50 +08:00
zhaoqing 76e82f635a wms 库存管理-抄码商品对照表-打印页面查询 2026-04-14 20:52:03 +08:00
王奎兴 281bf9b965 出入库单oms; 2026-04-14 19:03:01 +08:00
zhaoqing 1fa6d88545 w 库存管理-抄码商品对照表 2026-04-14 17:22:52 +08:00
zhaoqing d10d899a1c wms-基础数据-物料管理 添加是否抄码 2026-04-14 15:51:43 +08:00
zhaoqing f6a58fefe6 恢复 2026-04-14 15:27:55 +08:00
秦鸿展 aa0be69556 PDA收货修改内容 2026-04-14 15:06:50 +08:00
zhaoqing 230edc73e4 wms 基础数据-物料管理 添加是否抄码 2026-04-14 10:30:41 +08:00
王奎兴 47245a7dee nc推送修改; 2026-04-14 08:52:18 +08:00
王奎兴 0ee4ba6428 配置; 2026-04-13 17:54:21 +08:00
王奎兴 77879c31ff nc 2026-04-13 17:47:46 +08:00
王奎兴 0f8e927cd2 发布测试配置修改; 2026-04-13 16:26:01 +08:00
王奎兴 bce84d0b4c 发布测试配置修改; 2026-04-13 16:21:10 +08:00
王奎兴 972c5042cf Merge remote-tracking branch 'origin/dev' into dev 2026-04-13 15:15:01 +08:00
王奎兴 5849be8e8f wms费用科目bug修改;nc推送修改; 2026-04-13 15:14:48 +08:00
赵辉 4053935dec Merge remote-tracking branch 'origin/dev' into dev 2026-04-13 09:24:11 +08:00
赵辉 287dd2242c oms修改 2026-04-13 09:23:58 +08:00
王奎兴 0a9e127d64 wms费用科目bug修改; 2026-04-11 17:19:37 +08:00
王奎兴 e9d4f699ee wms费用科目修改; 2026-04-11 15:35:16 +08:00
秦鸿展 9bf7a9c0c8 复核异常生成异常单 2026-04-11 15:35:07 +08:00
秦鸿展 b2720fa655 作业单页面调整修改BUG 2026-04-11 10:15:36 +08:00
赵辉 51dc67957c oms修改 2026-04-11 09:43:19 +08:00
秦鸿展 6d3eb75f5c 入库异常,入库作业单,出库异常详情查询 2026-04-10 16:20:01 +08:00
秦鸿展 69543777da PDA复核内容修改 2026-04-10 14:46:28 +08:00
秦鸿展 bfb3c92678 20260409修改内容 2026-04-10 09:29:26 +08:00
秦鸿展 fd5e81e5ff 收货批次号修改Sheet Ref NO's 2026-04-09 10:29:14 +08:00
王奎兴 42ec0ec4ad 入库oms; 2026-04-09 10:27:20 +08:00
秦鸿展 f66b11622d 收货lot编码 2026-04-09 09:53:23 +08:00
高正杨 25d77bdb66 Merge branch 'dev' into dev_WMS20260401 2026-04-09 09:39:09 +08:00
秦鸿展 37644a72f3 复核详情修改,复核确认,批量复核、取消BUG修改 2026-04-08 17:39:42 +08:00
王奎兴 2d3b1dfd0e 查询物料库存数量; 2026-04-08 16:12:15 +08:00
王奎兴 e68138a990 查询物料库存数量; 2026-04-08 16:08:54 +08:00
王奎兴 0a66cb4ba1 查询物料库存数量; 2026-04-08 16:06:20 +08:00
王奎兴 d9e3b7cf2a 查询物料库存数量; 2026-04-08 15:57:47 +08:00
王奎兴 bf9b441fbc 出库单新增字段查询; 2026-04-08 15:12:57 +08:00
王奎兴 7ca0de7d76 承运商字段; 2026-04-08 14:09:33 +08:00
王奎兴 6b28715eaf 出库单及明细加字段;sql; 2026-04-08 14:06:04 +08:00
赵辉 0cfbe8db20 Merge remote-tracking branch 'origin/dev' into dev 2026-04-08 10:55:31 +08:00
赵辉 6a52f1e1e2 oms执行单修改 2026-04-08 10:55:22 +08:00
秦鸿展 add0621be0 复核查询详情修改 2026-04-08 10:05:28 +08:00
王奎兴 dc2d33c1d7 查询入库单明细新字段; 2026-04-07 16:55:25 +08:00
王奎兴 c21a336c12 查询入库单明细新字段; 2026-04-07 16:45:06 +08:00
王奎兴 9a6cd617fb 查询入库单明细新字段; 2026-04-07 16:43:53 +08:00
王奎兴 300d6c3d8a 查询入库单明细新字段; 2026-04-07 16:35:20 +08:00
秦鸿展 a7e33200b4 入库单计划入库数量修改 2026-04-07 16:14:29 +08:00
秦鸿展 cf5f955868 复核页面修改调整 2026-04-07 15:59:40 +08:00
秦鸿展 cdb5d52b4d 收货确认时覆盖原来的收货数量,费用以当前页面提交的数据计算 2026-04-07 14:21:24 +08:00
秦鸿展 f5e364093e 入库单修改提示物料仓库控制信息不存在,去掉校验 2026-04-07 13:39:52 +08:00
秦鸿展 d3870556af 复核页面修整 2026-04-07 11:44:14 +08:00
赵辉 4705d8f2dc Merge remote-tracking branch 'origin/dev' into dev 2026-04-07 11:44:01 +08:00
赵辉 d8c956f9f4 oms业务单修改 2026-04-07 11:43:43 +08:00
秦鸿展 74cb6b1dd8 Merge branch 'refs/heads/dev' into dev_WMS20260401
# Conflicts:
#	mhd_wms/src/main/java/com/mhd/wms/domain/stockShelfOrder/service/StockShelfOrderDomainService.java
2026-04-07 10:56:59 +08:00
秦鸿展 65ae591f86 复核页面调整修改 2026-04-07 10:53:26 +08:00
王奎兴 f49753b630 推送增加税率; 2026-04-03 17:30:29 +08:00
王奎兴 9e6ae389c2 配置文件修改; 2026-04-03 17:10:46 +08:00
王奎兴 d7b6394674 配置文件修改; 2026-04-03 16:29:08 +08:00
王奎兴 c8aade107b sql整理; 2026-04-03 16:27:08 +08:00
王奎兴 4a155cc95a 推送bms重复问题; 2026-04-03 15:54:42 +08:00
王奎兴 01984812ed 收货列表查询金额; 2026-04-03 15:36:01 +08:00
王奎兴 b535ad9bc6 获取金额参数; 2026-04-03 15:28:37 +08:00
高正杨 0afadd336c 启动报错修改; 2026-04-03 15:18:34 +08:00
王奎兴 91368e7468 推送bms; 2026-04-03 15:03:47 +08:00
王奎兴 1dab99f7c1 推送bms; 2026-04-03 15:03:27 +08:00
王奎兴 843e69ee84 推送bms; 2026-04-03 15:02:41 +08:00
王奎兴 b1f304bc54 费用计算; 2026-04-03 13:50:51 +08:00
王奎兴 fb0de024f8 费用计算; 2026-04-03 09:56:49 +08:00
王奎兴 9210f49500 费用计算; 2026-04-03 09:50:17 +08:00
王奎兴 b34bb5ce36 费用计算; 2026-04-03 09:37:03 +08:00
王奎兴 e5fa261eda 费用计算; 2026-04-03 09:32:58 +08:00
王奎兴 11bca1f681 费用计算; 2026-04-03 09:26:26 +08:00
王奎兴 4fe5febdb0 费用计算; 2026-04-03 09:11:16 +08:00
秦鸿展 571c41f6fe 拣货尺寸修改修改 2026-04-02 18:21:56 +08:00
秦鸿展 4977991974 创建人类型 2026-04-02 17:59:55 +08:00
秦鸿展 7c314a796f 上架增加库存默认修改时间 2026-04-02 17:57:02 +08:00
王奎兴 92d252cbe0 费用科目按是否出入库显示查询及费用表; 2026-04-02 17:29:18 +08:00
秦鸿展 4541ce287b 基础数据物料管理批次为空可以新增 2026-04-02 16:42:35 +08:00
王奎兴 ebb3d7c019 查询显示科目单价; 2026-04-02 16:20:22 +08:00
秦鸿展 39541c7005 入库单,出库单,按照用户角色为库管来过滤状态为已创建的 2026-04-02 16:15:00 +08:00
王奎兴 21ae63e78d 查询显示科目单价; 2026-04-02 16:03:22 +08:00
王奎兴 ba5137899f 修改是否显示字段; 2026-04-02 14:22:10 +08:00
王奎兴 35974b48c7 费用科目增加字段; 2026-04-02 14:07:46 +08:00
王奎兴 7f32271adc 调整库存和记录方法集合; 2026-04-02 13:59:50 +08:00
秦鸿展 286072b190 PDA拣货尺寸添加 2026-04-02 09:41:43 +08:00
王奎兴 9f02532892 出库冻结添加调整记录; 2026-04-02 09:37:27 +08:00
秦鸿展 e0e418f74c PC上架异常修改 2026-04-01 16:54:24 +08:00
王奎兴 9378e2cd5b 调整库存方法整合; 2026-04-01 15:42:50 +08:00
秦鸿展 f83b9c8756 PC上架数量修改 2026-04-01 15:05:19 +08:00
王奎兴 04875e1715 Merge remote-tracking branch 'origin/dev' into dev 2026-04-01 13:53:58 +08:00
王奎兴 6b49339c23 sql整理; 2026-04-01 13:53:48 +08:00
秦鸿展 2fe868bc51 PC收货修改 2026-04-01 13:46:05 +08:00
王奎兴 11196e7cf5 入库单加字段; 2026-04-01 13:37:36 +08:00
王奎兴 56b18885af 修改库存统一方法;查询动态表单配置返回修改; 2026-03-31 17:07:06 +08:00
秦鸿展 6e134ad086 PC物料导入单位修改 2026-03-31 16:40:37 +08:00
秦鸿展 9b08712b31 PC物料导入添加 2026-03-31 16:35:41 +08:00
秦鸿展 88a179c8c5 PC拣货尺寸字段查询修改 2026-03-31 13:39:50 +08:00
王奎兴 a1cce28da5 拣货装卸费/贴标费; 2026-03-31 13:10:11 +08:00
秦鸿展 a9d5dcd89d PC上架尺寸字段查询修改 2026-03-31 11:44:50 +08:00
秦鸿展 66bb3fbee6 PC收货管理尺寸字段查询修改 2026-03-31 11:23:43 +08:00
秦鸿展 4f8445b4a4 PC收货管理尺寸字段添加 2026-03-31 11:20:11 +08:00
秦鸿展 c48ff1babd PC出库单商品名称编码查询修改 2026-03-31 10:40:59 +08:00
王奎兴 8dda7c17b6 仓储动态表单; 2026-03-31 10:22:37 +08:00
秦鸿展 d2415f2917 PC入库单商品名称编码查询修改 2026-03-31 10:06:04 +08:00
zhou-hongcheng 84223ef76b 库存查询更新时间倒序 2026-03-31 09:53:52 +08:00
秦鸿展 307add2f3e PC即时库存查询批次号查询修改 2026-03-31 09:36:33 +08:00
王奎兴 580b103b85 Merge remote-tracking branch 'origin/dev' into dev 2026-03-31 09:31:37 +08:00
王奎兴 2af85ee22e 仓储动态表单; 2026-03-31 09:31:22 +08:00
秦鸿展 71f86798e5 PDA上架调整修改 2026-03-31 09:03:12 +08:00
zhou-hongcheng 888a646c3e 即时库存 2026-03-30 16:44:37 +08:00
zhou-hongcheng a8a2f15855 库存调整记录物料明细物料库存查询入库编号和lot编号 2026-03-30 15:56:51 +08:00
zhou-hongcheng a21d3dbbe5 调整记录添加入库编号和lot编号 2026-03-30 15:38:51 +08:00
zhou-hongcheng dfc0b0137a 移位增加入库单和lot编号校验库存是否合并 2026-03-30 15:23:15 +08:00
zhou-hongcheng e604670bcf 库存查询增加入库编号和LOT编号(前置条件为物料明细表shelf_material_detail需存入LOT编号) 2026-03-30 15:04:15 +08:00
秦鸿展 cc27711593 PDA收货调整修改 2026-03-30 11:03:34 +08:00
王奎兴 49d7c303a5 配置修改; 2026-03-28 17:12:59 +08:00
王奎兴 37b3301ddd 动态按钮修改; 2026-03-28 16:54:47 +08:00
王奎兴 5d9cf9f216 sql; 2026-03-28 16:12:58 +08:00
王奎兴 99285fa122 按钮权限配置文件修改; 2026-03-28 14:35:34 +08:00
王奎兴 7790034fd0 bms1.0推送nc动态组织; 2026-03-28 10:42:09 +08:00
王奎兴 02d2603087 推送nc状态更新修改;新字段sql整理; 2026-03-28 10:20:10 +08:00
秦鸿展 97e41ffe1c PDA收货详情查询修改 2026-03-27 17:32:33 +08:00
王奎兴 c6e3cb22f6 测试配置文件; 2026-03-27 17:06:37 +08:00
王奎兴 4bf9a5aa38 测试配置文件; 2026-03-27 17:04:46 +08:00
王奎兴 97424bcc33 角色配置按钮权限根据菜单查询按钮修改; 2026-03-27 16:49:16 +08:00
王奎兴 1c9fbf6622 角色配置按钮权限根据菜单查询按钮修改; 2026-03-27 16:49:04 +08:00
王奎兴 e7768babec Merge remote-tracking branch 'origin/dev' into dev 2026-03-27 14:38:25 +08:00
王奎兴 b10fd44cc4 组织nc编码回显; 2026-03-27 14:38:11 +08:00
高正杨 6fd337268a nc启动报错; 2026-03-27 14:29:58 +08:00
王奎兴 260e853b12 nc推送添加推送时间;nc动态获取组织; 2026-03-27 14:01:22 +08:00
王奎兴 708d80bcd3 nc推送添加推送时间;nc动态获取组织; 2026-03-27 13:45:07 +08:00
hjx 62a84e8a19 配置文件改为正式 2026-03-26 15:51:53 +08:00
hjx 4bd55c8a4d nc添加南光 2026-03-26 14:48:18 +08:00
zhou-hongcheng 56a2749f7d 配置文件生产 2026-03-26 12:17:42 +08:00
赵辉 273200ad83 配置修改 2026-03-26 09:48:37 +08:00
zhou-hongcheng 1ac81881bc 配置文件 2026-03-26 09:20:00 +08:00
zhou-hongcheng ac2f45ba89 配置文件 2026-03-26 09:18:51 +08:00
zhou-hongcheng e32ca3715e wms正式环境 2026-03-26 08:59:27 +08:00
王奎兴 2ebfd8eab9 推送单据修改;菜单查询优化; 2026-03-25 16:23:15 +08:00
王奎兴 80d9167760 查询菜单类型; 2026-03-25 15:27:04 +08:00
王奎兴 2dd77b2d32 查询菜单类型; 2026-03-25 15:19:52 +08:00
王奎兴 97d45c725d 查询菜单类型; 2026-03-25 15:16:55 +08:00
王奎兴 8c97eed56c 设置权限查询按钮类型; 2026-03-25 14:27:50 +08:00
王奎兴 19c87ed20e 设置权限查询按钮类型; 2026-03-25 14:21:37 +08:00
王奎兴 cece439e0f bms应收账单调整保存费用类型和科目; 2026-03-25 13:13:58 +08:00
王奎兴 f9d2e0ee33 bms应收账单调整保存费用类型和科目; 2026-03-25 13:09:05 +08:00
王奎兴 ffd05d3081 bms应收账单调整保存费用类型和科目; 2026-03-25 11:26:54 +08:00
王奎兴 580088b53c 新增委托方和员工修改; 2026-03-25 09:23:43 +08:00
王奎兴 642a7d28ba 新增委托方和员工修改; 2026-03-25 09:23:01 +08:00
王奎兴 cfb8af87c8 Revert "新增委托方和员工修改;"
This reverts commit c5cfe8d2e3.
2026-03-25 09:18:30 +08:00
王奎兴 c5cfe8d2e3 新增委托方和员工修改; 2026-03-25 09:08:00 +08:00
王奎兴 623fdbbca0 配置文件修改; 2026-03-24 17:32:22 +08:00
赵辉 59aa30411c tms3.24修改 2026-03-24 16:23:01 +08:00
王奎兴 8f41e0f3ea 配置文件修改; 2026-03-24 16:08:14 +08:00
王奎兴 1bfb049ebd 组织添加账号报错; 2026-03-24 16:02:12 +08:00
王奎兴 8195dcd449 发票页面添加实际开票用户; 2026-03-24 13:29:50 +08:00
王奎兴 2977cdddb1 发票页面添加实际开票用户; 2026-03-24 13:22:35 +08:00
王奎兴 eb1344ec96 发票页面添加实际开票用户; 2026-03-24 11:24:21 +08:00
王奎兴 b13791c922 发票页面添加实际开票用户; 2026-03-24 11:19:25 +08:00
王奎兴 17abc106ca 定时推送账单添加执行日志; 2026-03-24 10:42:39 +08:00
王奎兴 a98bf7327f 定时推送账单添加执行日志; 2026-03-24 10:35:37 +08:00
王奎兴 9825b64016 定时推送账单添加执行日志; 2026-03-24 10:10:44 +08:00
王奎兴 98023ce981 调整账单流水保存账单id 2026-03-24 09:35:45 +08:00
王奎兴 3ceb01c07e 推送流水定时任务去除状态查询; 2026-03-23 17:08:38 +08:00
王奎兴 15b72ae970 同步结算对象修改用户名 2026-03-23 16:58:23 +08:00
王奎兴 6ec09d156d 同步结算对象修改用户名 2026-03-23 16:46:22 +08:00
王奎兴 959bc18fe1 收款收款卡号查询修改; 2026-03-23 11:38:49 +08:00
王奎兴 babad90aed 收款收款卡号查询修改; 2026-03-23 10:43:56 +08:00
秦鸿展 9bc9314041 PC出库单导入检验物料 2026-03-23 10:28:17 +08:00
王奎兴 e2aec5a566 结算对象同步已存在用户修改;支付钱包修改校验去除; 2026-03-23 09:48:45 +08:00
王奎兴 5fdd55f2de 委托方添加查不到问题修改; 2026-03-20 14:52:10 +08:00
zhou-hongcheng d6e6e2dc7c 库位管理修改避免空指针 2026-03-19 14:12:12 +08:00
zhou-hongcheng c2d4ce9610 wms租赁推送到bms计费凭证 2026-03-19 14:02:42 +08:00
zhou-hongcheng 04c1150c06 添加批次号 2026-03-19 10:37:38 +08:00
zhou-hongcheng 757da12c1c Merge remote-tracking branch 'origin/dev' into dev 2026-03-19 09:56:15 +08:00
zhou-hongcheng 7d06b7c3d2 委托方货主名 2026-03-19 09:55:58 +08:00
秦鸿展 be914d6c22 PC拣货高级筛选货主查询 2026-03-19 04:12:40 +08:00
秦鸿展 1398cdc550 PDA上架修改 2026-03-19 02:14:21 +08:00
王奎兴 4f879e3d5a bms2相关修改; 2026-03-18 23:27:24 +08:00
zhou-hongcheng b7115fe3fe Merge remote-tracking branch 'origin/dev' into dev 2026-03-18 22:12:22 +08:00
zhou-hongcheng 830f0c38ee 取消分配状态吧第一条全部取消第二条还有值状态应该为部分分配 2026-03-18 22:12:08 +08:00
秦鸿展 bc52d57a7f 库存BUG 2026-03-18 22:01:06 +08:00
秦鸿展 eb01e42af6 PDA容器移位查询修改 2026-03-18 21:52:22 +08:00
秦鸿展 399ca51d64 PDA容器移位修改 2026-03-18 21:45:02 +08:00
王奎兴 1cf989fe2b bms2相关修改; 2026-03-18 21:22:03 +08:00
zhou-hongcheng 4afbd44f67 Merge remote-tracking branch 'origin/dev' into dev 2026-03-18 21:21:37 +08:00
zhou-hongcheng 491a08470d 取消分配增加库存调整记录重量信息 2026-03-18 21:21:25 +08:00
王奎兴 caf5adfc3e bms2相关修改; 2026-03-18 21:11:49 +08:00
zhou-hongcheng f7ad001154 改为前端传入 2026-03-18 20:54:40 +08:00
zhou-hongcheng dee7ffa3d6 新增移位库存选择冻结数量大于0 2026-03-18 20:51:04 +08:00
zhou-hongcheng b7fcd42496 出库分配数量数值更新 2026-03-18 20:38:26 +08:00
王奎兴 d2f309af6b bms2相关修改; 2026-03-18 19:46:52 +08:00
王奎兴 e42b8d0ba9 bms2相关修改; 2026-03-18 19:34:00 +08:00
秦鸿展 8b36f8fb5c PDA盘点修改 2026-03-18 19:32:12 +08:00
zhou-hongcheng 2061483171 Merge remote-tracking branch 'origin/dev' into dev 2026-03-18 19:09:28 +08:00
zhou-hongcheng 1fb02bfd08 移位重量信息bug修改 2026-03-18 19:09:15 +08:00
王奎兴 8fea8fe98e bms2相关修改; 2026-03-18 19:07:42 +08:00
zhou-hongcheng 1b9d92ea76 备注信息 2026-03-18 17:55:37 +08:00
zhou-hongcheng 95ad044e38 托运人编辑同步货主 2026-03-18 17:48:19 +08:00
zhou-hongcheng d5bd99a242 Merge remote-tracking branch 'origin/dev' into dev 2026-03-18 17:44:33 +08:00
zhou-hongcheng e5cea4e4c1 托运人编辑同步货主 2026-03-18 17:44:22 +08:00
王奎兴 bbf26efb15 Merge remote-tracking branch 'origin/dev' into dev 2026-03-18 17:41:20 +08:00
王奎兴 347c3dc4c7 bms2相关修改; 2026-03-18 17:41:08 +08:00
zhou-hongcheng 775ed74712 托运人编辑同步货主 2026-03-18 17:40:45 +08:00
zhou-hongcheng b0c85db265 查询差异的时候状态变为了已过账 2026-03-18 17:30:59 +08:00
zhou-hongcheng d8c7bd811f 查询差异的时候状态变为了已过账 2026-03-18 17:20:36 +08:00
zhou-hongcheng 5f9504a4ce Merge remote-tracking branch 'origin/dev' into dev 2026-03-18 17:16:04 +08:00
zhou-hongcheng 099ede2693 维护条码信息 2026-03-18 17:15:27 +08:00
秦鸿展 1977f441c3 PC拣货任务集货位下发 2026-03-18 16:40:58 +08:00
zhou-hongcheng f79407107c 上架单的上架数量更新 2026-03-18 16:24:59 +08:00
zhou-hongcheng b094f57266 移位库存调整记录 调整后可用数量=库存-移位 2026-03-18 15:46:06 +08:00
zhou-hongcheng b2d65c734c 租赁时间 2026-03-18 15:33:55 +08:00
zhou-hongcheng 38c4d486f6 移位同一个物料多个批次移位会合并bug 2026-03-18 15:15:55 +08:00
zhou-hongcheng 9ea39acbbb Merge remote-tracking branch 'origin/dev' into dev 2026-03-18 14:29:57 +08:00
zhou-hongcheng 2b29339cbb 新增委托方用户字段赋值 2026-03-18 14:29:45 +08:00
秦鸿展 87cacef4f9 PDA复核修改 2026-03-18 14:25:30 +08:00
zhou-hongcheng d9d485b26c 部分上架 第二次上架 这次上架数量覆盖掉已上架数量 2026-03-18 11:36:59 +08:00
zhou-hongcheng 0246957b27 Merge remote-tracking branch 'origin/dev' into dev 2026-03-18 10:46:24 +08:00
zhou-hongcheng f4cb9a5848 租赁增加字段 2026-03-18 10:45:54 +08:00
秦鸿展 2b7a8d4173 barcodeSQL文件 2026-03-17 22:12:16 +08:00
zhou-hongcheng e9df9c3841 上架没批次也可以 2026-03-17 21:57:59 +08:00
zhou-hongcheng 9121eec116 Merge remote-tracking branch 'origin/dev' into dev 2026-03-17 21:41:27 +08:00
zhou-hongcheng 3ad35af34b 计费单据获取通用合同 2026-03-17 21:41:15 +08:00
秦鸿展 e3a8e36cf8 barcode值修改 2026-03-17 21:03:57 +08:00
zhou-hongcheng 3f69f0c315 Merge remote-tracking branch 'origin/dev' into dev 2026-03-17 20:55:28 +08:00
zhou-hongcheng 3e467e3b59 移位管理根据物料批次信息新增或合并物料 2026-03-17 20:55:12 +08:00
秦鸿展 6eeb618634 上架查询修改 2026-03-17 20:45:12 +08:00
zhou-hongcheng ef5a1be76c 同位置的不让移位 2026-03-17 19:00:02 +08:00
zhou-hongcheng 742ef6ac1f 委托方查询sql 2026-03-17 17:53:13 +08:00
zhou-hongcheng cacb9ac39a 委托方查询sql 2026-03-17 17:43:41 +08:00
zhou-hongcheng 91843478de Merge remote-tracking branch 'origin/dev' into dev 2026-03-17 17:43:22 +08:00
zhou-hongcheng cfc55a4ee5 租赁推送到bms租赁单据类型code 2026-03-17 17:43:05 +08:00
秦鸿展 28a20a7ff9 出库交接详情查询 2026-03-17 17:36:18 +08:00
王奎兴 93125d3c36 bms2相关修改; 2026-03-17 17:28:31 +08:00
秦鸿展 9dbd591bb6 拣货单净重毛重体积面积修改 2026-03-17 17:08:26 +08:00
高正杨 9ab680216d 调用处理 2026-03-17 16:59:28 +08:00
zhou-hongcheng 9b5075a6a9 租赁推送到bms合同查询查不到就查通用 2026-03-17 16:53:34 +08:00
zhou-hongcheng 86a2151330 托运方管理新增字段 2026-03-17 15:48:09 +08:00
zhou-hongcheng e76b2b18df 符合出库数量调整 2026-03-17 15:20:37 +08:00
zhou-hongcheng 725f0538de 托运方管理新增字段 2026-03-17 14:49:34 +08:00
秦鸿展 b00a8ddbac 拣货单已下发提示修改 2026-03-17 13:42:54 +08:00
秦鸿展 6e1d62c71f handover_task_order表sql 2026-03-17 13:32:57 +08:00
秦鸿展 7899379c22 PDA盘点修改进度不显示问题,状态显示问题 2026-03-17 13:17:47 +08:00
zhou-hongcheng cf869030f0 Merge remote-tracking branch 'origin/dev' into dev 2026-03-17 11:08:49 +08:00
zhou-hongcheng f637ec6f93 托运方管理新增字段 2026-03-17 11:08:28 +08:00
秦鸿展 8b95275e72 PDA工作台出库交接查询 2026-03-17 11:01:56 +08:00
秦鸿展 b27f45fadb PC复核数量更改 2026-03-17 10:14:44 +08:00
zhou-hongcheng c0669f122d 即时库存复核数量查询 2026-03-17 10:13:02 +08:00
zhou-hongcheng 7dd32e8676 Merge remote-tracking branch 'origin/dev' into dev 2026-03-17 09:17:03 +08:00
zhou-hongcheng 3d53cf8c13 库存调整记录出库调整 2026-03-17 09:16:48 +08:00
秦鸿展 9ae80406e2 PDA出库交接修改 2026-03-16 19:19:41 +08:00
王奎兴 b738a6719c Merge remote-tracking branch 'origin/dev' into dev 2026-03-16 18:29:46 +08:00
王奎兴 9dafdfc051 生成账单费用合并; 2026-03-16 18:29:33 +08:00
zhou-hongcheng f9670d580b 即时库存收货数量查询 2026-03-16 17:34:12 +08:00
zhou-hongcheng 1c582c0895 改为保留四位 2026-03-16 16:48:28 +08:00
秦鸿展 0e080ed32e 隐藏标头修改 2026-03-16 16:31:03 +08:00
秦鸿展 aaf44fe929 PDA按单移位修改 2026-03-16 16:16:28 +08:00
秦鸿展 17103690aa PDA收货查询修改1111 2026-03-16 15:24:50 +08:00
zhou-hongcheng 5aaef4db70 复核页面获取物料条形码 2026-03-16 14:59:06 +08:00
秦鸿展 7f6933b05a PDA收货查询修改1111 2026-03-16 12:44:38 +08:00
秦鸿展 5e79ee6735 PDA收货查询修改111 2026-03-16 12:44:03 +08:00
秦鸿展 3a8028df99 PDA收货查询修改1 2026-03-16 12:42:16 +08:00
秦鸿展 3c69971c6c PDA上架查询修改1 2026-03-16 12:24:45 +08:00
秦鸿展 474a8b2ad0 PDA上架查询修改11 2026-03-16 12:19:06 +08:00
秦鸿展 5017c6a836 PDA上架查询修改111 2026-03-16 11:47:09 +08:00
秦鸿展 f01bf43c8b PDA上架查询修改 2026-03-16 11:36:09 +08:00
zhou-hongcheng 90c14938bf 库存调整记录获取物料条码 2026-03-16 11:28:34 +08:00
zhou-hongcheng 2d026b543c 3.16需求查询时提示该物料在库存中不存在,如果查不到数据页面直接返回空值,不要报错; 2026-03-16 11:12:51 +08:00
zhou-hongcheng 67e56ba722 库存调整记录查询条件添加 2026-03-16 10:07:26 +08:00
zhou-hongcheng a7674084e4 处理日期 2026-03-16 10:02:51 +08:00
zhou-hongcheng 5998f1b056 定时任务仓库出租率租赁散租面积处理调用wms时没有token接口放开鉴权 2026-03-16 09:33:14 +08:00
zhou-hongcheng 388d763296 Merge remote-tracking branch 'origin/dev' into dev 2026-03-15 17:39:38 +08:00
zhou-hongcheng 5eebfb4dd5 移位单没有显示物料条码 2026-03-15 17:39:25 +08:00
秦鸿展 8aa0c66cf4 PDA修改 2026-03-15 17:02:02 +08:00
秦鸿展 02bd2275a8 收货修改 2026-03-15 16:46:35 +08:00
秦鸿展 187a716175 PDA复核查询修改 2026-03-15 15:55:34 +08:00
秦鸿展 1d3924d3ce PDA拣货查询修改 2026-03-15 15:41:50 +08:00
zhou-hongcheng 1a9bd1bcbf 入库单导入以数据库中物料名为准 2026-03-15 15:19:56 +08:00
秦鸿展 02d4eca559 PDA端容器移位库存调整记录修改 2026-03-15 15:08:37 +08:00
zhou-hongcheng 984270cb53 Merge remote-tracking branch 'origin/dev' into dev 2026-03-15 14:15:12 +08:00
zhou-hongcheng 099667fd5d 差异库存查询处理可用数量 2026-03-15 14:14:58 +08:00
秦鸿展 3a8740d57f PDA端出库交接查询 2026-03-15 14:06:48 +08:00
zhou-hongcheng bcb28e40e1 盘点库存更新 2026-03-15 13:58:57 +08:00
秦鸿展 4ff70dc152 出库交接详情,物料明细根据复核单生成1; 2026-03-15 13:31:58 +08:00
秦鸿展 fdff381b09 出库交接详情,物料明细根据复核单生成; 2026-03-15 12:43:56 +08:00
zhou-hongcheng bd1449f177 Merge remote-tracking branch 'origin/dev' into dev 2026-03-15 11:52:22 +08:00
zhou-hongcheng 9c651d042d 更改复核异常的单号前缀 2026-03-15 11:52:09 +08:00
秦鸿展 93b24f02d8 PDA拣货复核修改 2026-03-15 11:51:58 +08:00
zhou-hongcheng 665c02b18a 复核生成出库异常记录数值bug 2026-03-15 11:25:33 +08:00
秦鸿展 89e2ec3f3f PDA复核页面查询修改 2026-03-14 21:11:29 +08:00
秦鸿展 8b09d1b2e0 PDA复核页面查询修改 2026-03-14 21:06:06 +08:00
秦鸿展 86700813ae PDA复核页面查询 2026-03-14 20:38:33 +08:00
秦鸿展 1250e24e71 PC复核下发 2026-03-14 20:18:26 +08:00
秦鸿展 c2a29490a8 PDA拣货状态修改 2026-03-14 20:07:30 +08:00
秦鸿展 f280127214 PDA复核详情查询1 2026-03-14 19:57:56 +08:00
秦鸿展 4ddde5f07d PDA复核详情查询 2026-03-14 19:48:48 +08:00
秦鸿展 ed1566f1ad PC出库单库存分配问题 2026-03-14 19:37:00 +08:00
秦鸿展 998f58c586 PDA内容修改 2026-03-14 19:24:43 +08:00
王奎兴 0d61ae880b 生成账单费用合并; 2026-03-14 18:57:06 +08:00
秦鸿展 e029cbcb1f PDA容器移位物料包装规格显示 2026-03-14 18:49:55 +08:00
秦鸿展 dab24d7b58 PC出库交接详情使用复核的物料明细 2026-03-14 18:46:43 +08:00
秦鸿展 1ee50cdfed PDA容器移位生成调整记录 2026-03-14 18:41:02 +08:00
秦鸿展 78dc49df94 PDA按单移位数量修改 2026-03-14 18:30:12 +08:00
秦鸿展 0393c2ee1f PDA复核查询修改 2026-03-14 18:22:42 +08:00
秦鸿展 a83ef892b0 PDA复核查询 2026-03-14 18:02:19 +08:00
王奎兴 2dbec965bc 即时库存修改; 2026-03-14 17:42:23 +08:00
zhou-hongcheng ee33775265 Merge remote-tracking branch 'origin/dev' into dev 2026-03-14 17:38:12 +08:00
zhou-hongcheng b06ae1c7cd 入库管理详情上架数量值有问题 2026-03-14 17:38:00 +08:00
秦鸿展 4649e53b78 Merge remote-tracking branch 'origin/dev' into dev 2026-03-14 17:33:51 +08:00
秦鸿展 85c0ef48ae PDA历史记录查询修改 2026-03-14 17:33:36 +08:00
王奎兴 f83ff9ceef 获取ncurl修改; 2026-03-14 17:25:15 +08:00
zhou-hongcheng f3455d34eb WMS推送时费用类别和费用科目取租赁管理维护的值 2026-03-14 16:09:20 +08:00
王奎兴 e0d519d94a 测试配置修改; 2026-03-14 16:01:13 +08:00
秦鸿展 977cbd683b PDA任务大厅查询修改 2026-03-14 15:44:49 +08:00
秦鸿展 360ffdc0d3 PDA移位修改 2026-03-14 15:37:56 +08:00
zhou-hongcheng 7dac63da34 Merge remote-tracking branch 'origin/dev' into dev 2026-03-14 15:36:04 +08:00
zhou-hongcheng 22efdd5ac8 租赁去掉查询字典改为直接存值 2026-03-14 15:35:52 +08:00
王奎兴 91c74eed8b bms2.0出账及发票修改; 2026-03-14 15:34:01 +08:00
zhou-hongcheng 24486e416f Merge remote-tracking branch 'origin/dev' into dev 2026-03-14 15:24:08 +08:00
zhou-hongcheng 809a190ccf 仓库出租率租赁散租面积处理 2026-03-14 15:23:56 +08:00
秦鸿展 e938b3fedc PDA出库交接修改 2026-03-14 14:49:23 +08:00
王奎兴 2870e6729f bms2.0出账及发票修改; 2026-03-14 14:29:38 +08:00
zhou-hongcheng 23ec38d4a3 Merge remote-tracking branch 'origin/dev' into dev 2026-03-14 14:20:44 +08:00
zhou-hongcheng c7a7afb5ce 库存调整记录状态编码 2026-03-14 14:20:30 +08:00
秦鸿展 f060b981f6 PDA出库[拣货,复核,出库交接]修改 2026-03-14 14:12:26 +08:00
zhou-hongcheng 5eaa77e6eb 库存调整记录用户名字修改 2026-03-14 14:04:25 +08:00
zhou-hongcheng 7fac8be315 租赁增加费用科目、类别,天数 查询的时候从字典获取值 2026-03-14 13:51:53 +08:00
zhou-hongcheng fb2b24aa94 入库库存调整记录 2026-03-14 13:13:02 +08:00
zhou-hongcheng 4cd297acbc 合并条件增加批次号 2026-03-14 11:46:58 +08:00
zhou-hongcheng 540a47e3a8 合并条件增加批次号 2026-03-14 11:43:16 +08:00
zhou-hongcheng cf5ad7ca3f Merge remote-tracking branch 'origin/dev' into dev 2026-03-14 11:08:57 +08:00
zhou-hongcheng 1ece948a38 user服务配置 2026-03-14 11:08:45 +08:00
秦鸿展 4aa41a0366 PDA入库[收货,上架修改] 2026-03-14 10:09:23 +08:00
zhou-hongcheng 51a7501da6 Merge remote-tracking branch 'origin/dev' into dev 2026-03-14 09:02:52 +08:00
zhou-hongcheng ea7f4bca56 影响到其它地方了修改物料改为前端过滤 2026-03-14 09:02:39 +08:00
秦鸿展 d6d428777b PC移位新增库存查询修改 2026-03-13 22:20:45 +08:00
秦鸿展 2f0c9db111 PDA库存查询修改1 2026-03-13 21:12:28 +08:00
秦鸿展 5bf7533353 PDA库存查询修改 2026-03-13 20:57:59 +08:00
秦鸿展 6db8a47b4c PDA容器移位修改bug 2026-03-13 19:46:06 +08:00
秦鸿展 d7dd8a4567 PDA移位管理批次属性查询修改,库存查询修改 2026-03-13 16:57:48 +08:00
zhou-hongcheng f7fea55e23 即时库存收货数量筛选问题 2026-03-13 14:54:08 +08:00
秦鸿展 f9497f7c15 PDA上架,复核拣货查询修改 2026-03-13 13:37:00 +08:00
zhou-hongcheng 3029e9fee1 Merge remote-tracking branch 'origin/dev' into dev 2026-03-13 13:31:57 +08:00
zhou-hongcheng 89db83dd05 调整后可用数量 盘亏 减差异数量 盘盈 加差异数量,调整后库存数量 用盘点数量 2026-03-13 13:31:45 +08:00
秦鸿展 63b3e26d5f PDA任务转接只显示仓库绑定的用户,盘点详情显示物料批次属性 2026-03-13 11:35:34 +08:00
zhou-hongcheng 1d1adc61e8 Merge remote-tracking branch 'origin/dev' into dev 2026-03-13 11:10:24 +08:00
zhou-hongcheng b568bccf02 移位库存调整记录调整数量修改 2026-03-13 11:10:12 +08:00
秦鸿展 8e6a88bd7f PDA仓库显示修改 2026-03-13 10:56:34 +08:00
zhou-hongcheng b90b27fd2c Merge remote-tracking branch 'origin/dev' into dev 2026-03-13 10:29:59 +08:00
zhou-hongcheng 4bd8005e1e 修改移位后生成的库存批次属性维护的值没保存上 2026-03-13 10:29:48 +08:00
秦鸿展 ab9a8ced81 PC出库单详情展示图片 2026-03-13 10:19:20 +08:00
zhou-hongcheng a4aeb1489a Merge remote-tracking branch 'origin/dev' into dev 2026-03-13 09:18:07 +08:00
zhou-hongcheng e3bc0b14fc 去掉联电话的校验 2026-03-13 09:17:55 +08:00
秦鸿展 3dd1bf138c PC上架批次属性传值问题 2026-03-13 08:53:43 +08:00
秦鸿展 6b1097bcb8 PC收货生成上架的批次属性更新 2026-03-12 19:36:17 +08:00
秦鸿展 03a5c1fac8 PDA收货批次属性显示问题 2026-03-12 18:18:37 +08:00
王奎兴 876260d8c7 Merge remote-tracking branch 'origin/dev' into dev 2026-03-12 17:30:40 +08:00
王奎兴 da08d15151 发票相关改造; 2026-03-12 17:30:28 +08:00
秦鸿展 5e413e36bd PDA收货数量问题 2026-03-12 16:58:31 +08:00
秦鸿展 482f642652 WMSFeign调用 2026-03-12 13:56:07 +08:00
zhou-hongcheng 4ef1a02933 参数代理对象feign调用问题 2026-03-12 12:10:04 +08:00
zhou-hongcheng d0d5c4a15b 参数代理对象feign调用问题 2026-03-12 11:12:44 +08:00
zhou-hongcheng 18bdc2f931 Merge remote-tracking branch 'origin/dev' into dev 2026-03-12 10:15:30 +08:00
zhou-hongcheng ea29156a35 system配置文件改为测试地址 2026-03-12 10:15:16 +08:00
秦鸿展 4433f83ea1 PC复核下发修改 2026-03-12 10:08:21 +08:00
zhou-hongcheng 2c2a837ea8 新增物料远程调用对象转换问题 2026-03-12 10:01:43 +08:00
zhou-hongcheng c14f3f766b 新增物料远程调用问题 2026-03-12 09:02:17 +08:00
zhou-hongcheng b24e26c138 倒序 2026-03-11 17:14:00 +08:00
zhou-hongcheng 17e9f43494 差异管理盘点轮次 2026-03-11 17:06:45 +08:00
王奎兴 b9c1821409 正式环境配置修改; 2026-03-11 16:37:55 +08:00
秦鸿展 e408266f75 PDABUG修改一轮 2026-03-11 16:06:39 +08:00
王奎兴 90136fc654 推送税率id; 2026-03-11 15:55:52 +08:00
zhou-hongcheng 56dd366ec5 出库管理-自动分配物料当前库存容量不够时剩余分配计划分配到其它库位 2026-03-11 15:10:57 +08:00
zhou-hongcheng 5517951010 出库管理-自动分配物料当前库存容量不够时剩余分配计划分配到其它库位 2026-03-11 15:10:34 +08:00
秦鸿展 6f6fa74908 PDA上架修改 2026-03-11 14:02:12 +08:00
王奎兴 9912271a7a 南起nc推送; 2026-03-11 11:05:20 +08:00
秦鸿展 2631d298ac WMSPC端收货后生成上架任务任务下发默认值为否 2026-03-11 11:01:50 +08:00
秦鸿展 7b8d3250b9 WMSPC端收货后生成上架任务任务下发默认值为2 2026-03-11 10:56:20 +08:00
秦鸿展 0242a5416d PDA收货修改批次属性 2026-03-11 10:52:51 +08:00
王奎兴 51fe38dfde 南起nc推送; 2026-03-10 23:43:47 +08:00
赵辉 cc17d1d0e2 Merge remote-tracking branch 'origin/dev' into dev 2026-03-10 23:16:29 +08:00
赵辉 eabbec3cc1 tms3.10修改 2026-03-10 23:08:27 +08:00
王奎兴 5be1ea50c2 查询条件; 2026-03-10 21:59:33 +08:00
王奎兴 9e3b087c9c nc推送billid加后缀; 2026-03-10 18:42:14 +08:00
王奎兴 2c806bc45a 按创建时间查询报错修改; 2026-03-10 18:24:49 +08:00
zhou-hongcheng 5205b1aca2 差异过账调整前后净重... 2026-03-10 17:57:50 +08:00
zhou-hongcheng 92e1a09b50 Merge remote-tracking branch 'origin/dev' into dev 2026-03-10 17:44:56 +08:00
zhou-hongcheng 5fdf55ec6e 移位管理调整前后净重...重置id 2026-03-10 17:44:44 +08:00
王奎兴 ed22a48de7 nc推送税额赋值修改; 2026-03-10 17:43:40 +08:00
zhou-hongcheng 5c4d962792 Merge remote-tracking branch 'origin/dev' into dev 2026-03-10 17:26:43 +08:00
zhou-hongcheng af7f980735 移位管理调整前后净重... 2026-03-10 17:26:28 +08:00
王奎兴 8c32d347c6 打包报错修改; 2026-03-10 16:53:15 +08:00
zhou-hongcheng 7067220f7f Merge remote-tracking branch 'origin/dev' into dev 2026-03-10 16:32:29 +08:00
zhou-hongcheng feb13e3ece 出库调整前后净重... 2026-03-10 16:32:18 +08:00
王奎兴 6ad6a1a5a0 打包报错修改; 2026-03-10 16:21:19 +08:00
王奎兴 62672a60f7 发包修改配置; 2026-03-10 16:17:25 +08:00
zhou-hongcheng e3e73a307c 费用科目编辑显示排序 2026-03-10 15:29:41 +08:00
王奎兴 df320e9bc4 nc推送结算币种取值修改; 2026-03-10 15:03:30 +08:00
zhou-hongcheng 106fbe9a90 Merge remote-tracking branch 'origin/dev' into dev 2026-03-10 14:29:33 +08:00
zhou-hongcheng 80353a9699 出库单增加计划出库分配拣货复合数量 2026-03-10 14:29:20 +08:00
秦鸿展 27fdb5cd3b WMS出库导入单位处理修改 2026-03-10 13:51:18 +08:00
zhou-hongcheng 906c65c164 上架管理全部上架生成库存调整记录修改 2026-03-10 10:35:40 +08:00
zhou-hongcheng 0924e1466b 新增无聊条码保存不上bug修改 2026-03-10 09:58:51 +08:00
秦鸿展 f6e294d5ca WMS3.9号修改 2026-03-10 08:43:59 +08:00
王奎兴 6f2e748284 Merge remote-tracking branch 'origin/dev' into dev 2026-03-09 23:35:24 +08:00
王奎兴 eb01373383 配置文件修改; 2026-03-09 23:35:06 +08:00
赵辉 285816055e 应收账单审核 2026-03-09 23:28:59 +08:00
王奎兴 8483bc3d5e 批量出账; 2026-03-09 23:13:56 +08:00
王奎兴 5e28c10342 通宇推送nc; 2026-03-09 20:58:27 +08:00
zhou-hongcheng 6e52d85cbf 出库交接增加净重... 2026-03-09 16:32:02 +08:00
zhou-hongcheng c85adcf878 出库管理手动自动分配增加净重... 2026-03-09 15:31:48 +08:00
zhou-hongcheng a0c250cce8 上架管理全部上架生成库存调整记录 2026-03-09 15:05:16 +08:00
zhou-hongcheng d7ebb21f3b 库存调整记录查询 2026-03-09 14:30:59 +08:00
zhou-hongcheng b210c08863 库存调整记录增加字段 2026-03-09 11:28:03 +08:00
zhou-hongcheng d991861d03 差异过账生成库存调整记录增加参数净重... 2026-03-09 10:52:40 +08:00
zhou-hongcheng d87de81d82 Merge remote-tracking branch 'origin/dev' into dev 2026-03-09 09:33:51 +08:00
zhou-hongcheng 6d17c91500 过滤包装规格 name等于空的值 2026-03-09 09:33:17 +08:00
赵辉 38b2868c35 应收账单审核 2026-03-06 21:26:25 +08:00
王奎兴 1f8085709b 应收账单添加 税额 无税费用; 2026-03-06 20:59:18 +08:00
秦鸿展 c91aedb344 WMS出库交接任务下发修改 2026-03-06 19:53:04 +08:00
王奎兴 6a25f97ddb 发布测试修改配置; 2026-03-06 16:52:38 +08:00
王奎兴 78578046ae 发布测试修改配置; 2026-03-06 16:36:41 +08:00
赵辉 81adc97084 Merge remote-tracking branch 'origin/dev' into dev 2026-03-06 16:34:08 +08:00
赵辉 33a62a6a68 应收账单审核 2026-03-06 16:33:52 +08:00
王奎兴 41f7898d17 nc推送地址动态从三方接口获取; 2026-03-06 16:13:06 +08:00
王奎兴 006b1a43a2 nc推送地址动态从三方接口获取; 2026-03-06 16:09:06 +08:00
王奎兴 0b2340b135 nc推送地址动态从三方接口获取; 2026-03-06 15:48:04 +08:00
王奎兴 ffcb1ef792 生成应收账单数据库默认值不生效修改; 2026-03-06 15:20:57 +08:00
王奎兴 624b081cc4 生成应收账单数据库默认值不生效修改; 2026-03-06 15:13:13 +08:00
王奎兴 48cf3b9345 pda上架报错; 2026-03-06 10:21:08 +08:00
王奎兴 a36bf7dd06 pda上架报错; 2026-03-06 10:20:07 +08:00
王奎兴 cd38a52ca0 pda上架报错; 2026-03-06 10:13:40 +08:00
王奎兴 b6e8598596 pda上架报错; 2026-03-06 10:10:31 +08:00
王奎兴 c02261a74f pda上架报错; 2026-03-06 09:51:37 +08:00
王奎兴 2f31cc736a pda上架报错; 2026-03-06 09:39:22 +08:00
zhou-hongcheng 4371be3999 sql纠错 2026-03-06 09:06:11 +08:00
zhou-hongcheng 6dfb747120 Merge remote-tracking branch 'origin/dev' into dev 2026-03-05 17:24:11 +08:00
zhou-hongcheng 750fdbe96f 差异管理添加状态待过账、重盘、已过账; 2026-03-05 16:48:24 +08:00
zhou-hongcheng 5ae7149ea5 差异过账生成库存调整记录 2026-03-05 16:19:34 +08:00
王奎兴 e75e3cd08d pda收货判断收货数修改; 2026-03-05 15:25:15 +08:00
王奎兴 401b1f7097 合同管理出账日保存不上问题; 2026-03-05 14:50:20 +08:00
秦鸿展 f6b20441bc WMS物料管理高级筛选查询 2026-03-05 14:41:44 +08:00
zhou-hongcheng e7e5fb0101 计费单据以为定时任务修改了TopOrganizationId不从当前登录人获取 现在新增的时候有改成传值 2026-03-05 10:38:43 +08:00
秦鸿展 0c70264d2b WMS收货管理更多属性字段显示 2026-03-04 16:38:44 +08:00
zhou-hongcheng df04d5d36d 同步增加客户类型编码 2026-03-04 15:11:16 +08:00
秦鸿展 fee62b0b35 WMS盘点管理创建人修改 2026-03-03 17:11:56 +08:00
秦鸿展 ca4af50c0b WMS移位管理完成移位修改 2026-03-03 16:55:15 +08:00
秦鸿展 aa17effc4b Merge remote-tracking branch 'origin/dev' into dev 2026-03-03 16:31:04 +08:00
秦鸿展 50a32c176d WMS移位管理、盘点管理、差异管理的创建人姓名,审核人姓名修改存账号的姓名 2026-03-03 16:30:38 +08:00
zhou-hongcheng 44982e97c6 Merge remote-tracking branch 'origin/dev' into dev 2026-03-03 16:30:32 +08:00
zhou-hongcheng 02c8e16242 净重、毛重、体积、面积,原库位未减移出数量,目标库位按照移入数量保存 2026-03-03 16:30:19 +08:00
秦鸿展 849b8da2dc WMS出库管理、拣货管理、出库交接、出库异常、拣货作业单的创建人姓名,审核人姓名修改存账号的姓名 2026-03-03 16:06:40 +08:00
王奎兴 7e3228807b 库存调整记录调整人改为存名字; 2026-03-03 15:55:33 +08:00
秦鸿展 e720d006ce WMS收货管理、上架管理、入库异常的创建人姓名,审核人姓名修改存账号的姓名 2026-03-03 15:10:24 +08:00
秦鸿展 5c84eb2095 WMS入库管理的创建人姓名,审核人姓名修改存账号的姓名 2026-03-03 14:42:35 +08:00
高正杨 485db7adcc pda收货报错; 2026-03-03 14:26:42 +08:00
zhou-hongcheng 7929d25e10 Merge remote-tracking branch 'origin/dev' into dev 2026-03-03 13:59:41 +08:00
zhou-hongcheng 2a7091a63e 补全缺少的批次和货主编码 2026-03-03 13:59:31 +08:00
王奎兴 2248325be0 库存调整记录调整人改为存名字; 2026-03-03 13:37:54 +08:00
秦鸿展 d90d905ca3 WMS导入入库单问题,收货商品明细缺失字段 2026-03-03 13:22:46 +08:00
zhou-hongcheng 28932f1756 Merge remote-tracking branch 'origin/dev' into dev 2026-03-03 11:20:44 +08:00
zhou-hongcheng a44bc6e40d 增加查询条件 2026-03-03 11:20:32 +08:00
王奎兴 af708880e3 库存调整记录调整人改为存名字; 2026-03-03 10:36:39 +08:00
王奎兴 ebe7db159f 库存调整记录添加调整动作/关联单号; 2026-03-03 10:18:49 +08:00
王奎兴 808134ce86 出库复核及交接状态修改逻辑修改; 2026-03-03 10:03:32 +08:00
秦鸿展 2b4b7cb0e1 BMS计费单据审核计费流水周期开始时间修改 2026-03-02 15:18:59 +08:00
秦鸿展 8e51377db1 BMS计费单据审核计费流水周期开始时间和结束时间的生成 2026-03-02 13:42:36 +08:00
zhou-hongcheng 744385db91 Merge remote-tracking branch 'origin/dev' into dev 2026-03-02 11:02:26 +08:00
zhou-hongcheng a9d8e2528f 合同管理sql条件判断空字符 2026-03-02 11:02:14 +08:00
王奎兴 878d9ab1cf nc推送动态获取url; 2026-03-02 10:42:23 +08:00
zhou-hongcheng 2ad2f9d0ab 处理空指针异常 2026-03-02 09:58:54 +08:00
zhou-hongcheng e1dfb71da4 Merge remote-tracking branch 'origin/dev' into dev 2026-03-02 09:10:37 +08:00
zhou-hongcheng 6b3c73f25a 同一货主可以在多个仓库进行租赁 2026-03-02 09:10:20 +08:00
王奎兴 cf0e49ebb0 复核报错; 2026-02-28 18:40:25 +08:00
王奎兴 1abe3346f1 复核报错; 2026-02-28 18:37:20 +08:00
王奎兴 f32c2a69d5 复核报错; 2026-02-28 18:05:57 +08:00
王奎兴 bf79be6d81 复核报错; 2026-02-28 18:01:36 +08:00
王奎兴 962839b8ae 复核报错; 2026-02-28 17:49:23 +08:00
秦鸿展 07d53c1274 BMS合同管理出账时间查询修改 2026-02-28 17:45:49 +08:00
高正杨 0227379e07 Merge remote-tracking branch 'origin/dev' into dev 2026-02-28 17:17:22 +08:00
高正杨 e0f8bdffd5 分配修改; 2026-02-28 17:17:11 +08:00
zhou-hongcheng b5285d9ebb 创建时间创建人优化 2026-02-28 17:16:59 +08:00
zhou-hongcheng 5377016c18 Merge remote-tracking branch 'origin/dev' into dev 2026-02-28 17:12:50 +08:00
zhou-hongcheng c6484779ea 散租推送优化 2026-02-28 17:08:48 +08:00
王奎兴 fc7cfca8e6 分配问题修改; 2026-02-28 17:06:01 +08:00
王奎兴 a663831911 分配问题修改; 2026-02-28 16:59:22 +08:00
王奎兴 27797ddb73 分配问题修改; 2026-02-28 16:55:32 +08:00
王奎兴 3c42db9a14 分配问题修改; 2026-02-28 16:49:29 +08:00
王奎兴 ddb7936211 分配问题修改; 2026-02-28 16:31:05 +08:00
王奎兴 6175209aad Merge remote-tracking branch 'origin/dev' into dev 2026-02-28 16:25:39 +08:00
王奎兴 6bde657310 分配问题修改; 2026-02-28 16:25:29 +08:00
秦鸿展 c92e3e0ec6 BMS结算对象按照创建时间倒序排序新创建的在前面 2026-02-28 16:20:16 +08:00
王奎兴 3875a92299 分配问题修改; 2026-02-28 16:05:26 +08:00
秦鸿展 9bf5187d42 BMS合同管理新增结算主体客户类型编码查询 2026-02-28 15:57:32 +08:00
王奎兴 136da13999 分配问题修改; 2026-02-28 15:55:21 +08:00
王奎兴 5cdc8ccc3b 分配问题修改; 2026-02-28 15:42:16 +08:00
王奎兴 48ca441674 分配问题修改; 2026-02-28 15:22:39 +08:00
王奎兴 b8f9156200 分配问题修改; 2026-02-28 15:06:15 +08:00
王奎兴 5b4c10b98e 分配问题修改; 2026-02-28 14:45:25 +08:00
王奎兴 0c91ea98c7 分配问题修改; 2026-02-28 14:37:50 +08:00
王奎兴 b25474a9ff 分配问题修改; 2026-02-28 13:58:16 +08:00
王奎兴 89204321d4 分配问题修改; 2026-02-28 13:42:39 +08:00
王奎兴 a146565949 分配问题修改; 2026-02-28 13:30:49 +08:00
王奎兴 6ddea54bf8 分配问题修改; 2026-02-28 11:29:46 +08:00
王奎兴 8bcb3aab37 分配问题修改; 2026-02-28 11:24:42 +08:00
王奎兴 32fcc9e858 Merge remote-tracking branch 'origin/dev' into dev 2026-02-28 11:16:37 +08:00
王奎兴 036cd27794 分配问题修改; 2026-02-28 11:16:20 +08:00
秦鸿展 ff3affb764 BMS合同管理合同状态调整 2026-02-28 11:05:22 +08:00
王奎兴 2eddba62e4 待复核数量应等于拣货数量; 2026-02-28 10:14:41 +08:00
秦鸿展 d748f5a467 BMS应收账单收款人查询员工 2026-02-28 09:45:27 +08:00
王奎兴 5d108b0702 分配时保存库存数量; 2026-02-27 18:37:43 +08:00
王奎兴 4e6b6e01c8 分配时保存库存数量; 2026-02-27 18:32:36 +08:00
王奎兴 826c1c2513 分配时保存库存数量; 2026-02-27 18:30:25 +08:00
王奎兴 6dc56bec21 Merge remote-tracking branch 'origin/dev' into dev 2026-02-27 18:15:10 +08:00
王奎兴 13f257c19e 取消分配bug; 2026-02-27 18:15:00 +08:00
高正杨 046fa29116 修改查询报错; 2026-02-27 18:08:42 +08:00
秦鸿展 b809538934 WMS交接作业单查询详情修改调整 2026-02-27 17:59:16 +08:00
王奎兴 d1864f45a4 发票添加 实际开票客户 开票项目; 2026-02-27 17:06:09 +08:00
王奎兴 5c9650fb50 发票添加 实际开票客户 开票项目; 2026-02-27 17:02:17 +08:00
王奎兴 9088c0946b Merge remote-tracking branch 'origin/dev' into dev 2026-02-27 16:57:08 +08:00
王奎兴 c4e5ed9e65 发票添加 实际开票客户 开票项目; 2026-02-27 16:56:55 +08:00
秦鸿展 1f2c6bc46e WMS交接作业单查询详情修改 2026-02-27 16:50:33 +08:00
王奎兴 74c37ad0d4 应收账单增加发票状态查询条件; 2026-02-27 16:34:30 +08:00
王奎兴 3790cb6c54 查询社会统一信用编码; 2026-02-27 16:27:06 +08:00
王奎兴 e1f77fee3a 分配增加本次分配数量; 2026-02-27 16:02:37 +08:00
zhou-hongcheng 5ed4ded0bd 角色改为客户 2026-02-27 16:01:26 +08:00
zhou-hongcheng 43e9f68ac1 Merge remote-tracking branch 'origin/dev' into dev 2026-02-27 15:57:29 +08:00
zhou-hongcheng 1176add6ad 新增货主业务类型改为托运业务 2026-02-27 15:55:20 +08:00
王奎兴 7d9f215d4e 分配增加本次分配数量; 2026-02-27 15:21:29 +08:00
秦鸿展 1e8b71fbea BMS合同管理生效状态修改 2026-02-27 14:50:13 +08:00
王奎兴 16b0eaf50a 查询报错; 2026-02-27 14:27:02 +08:00
王奎兴 1738f12bdd jeecg判空判断去除; 2026-02-27 14:23:59 +08:00
王奎兴 cfc7894ab5 Merge remote-tracking branch 'origin/dev' into dev 2026-02-27 14:09:38 +08:00
王奎兴 17d6209239 开发票给对账单赋值发票id及编号; 2026-02-27 14:08:40 +08:00
zhou-hongcheng aa5fb467f8 Merge remote-tracking branch 'origin/dev' into dev 2026-02-27 14:04:56 +08:00
zhou-hongcheng f9fb210047 移位完成后库存上的货主、净重、毛重、体积、面积都没有了bug修改 2026-02-27 13:59:25 +08:00
王奎兴 af4c93fd42 bms推送nc接口; 2026-02-27 13:57:49 +08:00
王奎兴 17c1751474 开票修改对账单状态; 2026-02-27 13:41:18 +08:00
王奎兴 012ff4de91 nc及发票修改; 2026-02-27 11:55:43 +08:00
王奎兴 e966796927 nc及发票修改; 2026-02-27 11:53:33 +08:00
王奎兴 4048305d31 Merge remote-tracking branch 'origin/dev' into dev 2026-02-27 11:46:57 +08:00
王奎兴 3091d44031 nc及发票修改; 2026-02-27 11:46:47 +08:00
秦鸿展 03181717f9 BMS项目管理显示BUG 2026-02-27 11:42:44 +08:00
王奎兴 51c460696b nc及发票修改; 2026-02-27 11:40:22 +08:00
秦鸿展 54fc047bf2 BMS项目管理数据权限 2026-02-27 11:29:09 +08:00
秦鸿展 56cb0f76bc BMS计费流水统计BUG修改 2026-02-27 10:36:54 +08:00
zhou-hongcheng bb6ecf4651 新增移位保存净重(KG)、毛重(KG)、体积(CBM)、面积(SQM) 2026-02-27 10:18:47 +08:00
zhou-hongcheng d266742b28 Merge remote-tracking branch 'origin/dev' into dev 2026-02-27 09:40:15 +08:00
zhou-hongcheng 54cd738bd6 新增移位保存净重(KG)、毛重(KG)、体积(CBM)、面积(SQM) 2026-02-27 09:40:02 +08:00
秦鸿展 ca5044aa04 WMS拣货单管理明细字段查询显示问题 2026-02-27 09:16:27 +08:00
秦鸿展 24b1f52110 WMS出库管理复合下发错误提示修改 2026-02-27 09:04:14 +08:00
秦鸿展 1fc23af95b WMS出库管理复合下发修改 2026-02-27 08:59:27 +08:00
zhou-hongcheng 961d8a462d 新增物料时使用传入的组织表ID 2026-02-26 17:38:59 +08:00
秦鸿展 8b57e2178c WMS出库管理复合下发 2026-02-26 16:37:14 +08:00
王奎兴 8b35c96716 id类型修改; 2026-02-26 16:24:05 +08:00
秦鸿展 aa33331616 WMS拣货单管理拣货修改 2026-02-26 16:03:25 +08:00
王奎兴 7fb245b8c2 bms2发票相关; 2026-02-26 15:59:39 +08:00
zhou-hongcheng 442f95cbc6 流水汇总达梦sql不支持别名 2026-02-26 15:54:15 +08:00
zhou-hongcheng cc56ae5f2f Merge remote-tracking branch 'origin/dev' into dev 2026-02-26 15:18:45 +08:00
zhou-hongcheng a074205643 物料分类回显 2026-02-26 15:18:30 +08:00
秦鸿展 33575a102c WMS拣货单管理拣货修改 2026-02-26 14:39:59 +08:00
王奎兴 83470dbf64 pda收货报错修改; 2026-02-26 13:44:41 +08:00
王奎兴 fbecd9d970 bms应收账单发票及nc相关修改; 2026-02-26 11:44:08 +08:00
秦鸿展 ec4e20fbe7 BMS列表“创建人、修改人”保存用户姓名,不保存账号 2026-02-26 11:29:00 +08:00
王奎兴 333b21935d pda查询收货修改; 2026-02-26 10:16:59 +08:00
秦鸿展 2250f8f5f3 BMS页面数据按照创建时间倒序排序 2026-02-26 10:02:43 +08:00
zhou-hongcheng 90b701c1f3 Merge remote-tracking branch 'origin/dev' into dev 2026-02-26 09:37:03 +08:00
zhou-hongcheng 9621deccf1 wms租赁定时任务推送到bms(把获取当前登录人的一级id改为参数传入) 2026-02-26 09:36:53 +08:00
秦鸿展 71353cd299 BMS费用科目查询显示 2026-02-26 08:37:22 +08:00
zhou-hongcheng 2a570fbefc wms租赁定时任务推送到bms(未完成 定时任务没有当前登录人 需要改造后面方法) 2026-02-25 19:56:10 +08:00
王奎兴 d4a30d8b40 盘点和位移发下任务修改; 2026-02-25 16:50:21 +08:00
秦鸿展 fb39852c1f BMS结算主体字段查询显示 2026-02-25 16:37:15 +08:00
王奎兴 50e7568736 拣货下发任务; 2026-02-25 16:23:59 +08:00
王奎兴 d3f169bd51 Merge remote-tracking branch 'origin/dev' into dev 2026-02-25 16:16:31 +08:00
王奎兴 7a65bd072c 拣货下发任务; 2026-02-25 16:16:21 +08:00
赵辉 b928376a7f Merge remote-tracking branch 'origin/dev' into dev 2026-02-25 16:15:09 +08:00
赵辉 4a75dfd313 0225财务应收账单应付账单修改 2026-02-25 16:14:52 +08:00
秦鸿展 2706bb3225 BMS计费引擎模块数据权限隔离修改调整 2026-02-25 15:34:15 +08:00
王奎兴 e30aef6305 出库异常查询修改; 2026-02-25 14:37:29 +08:00
王奎兴 280ceaaa7c Merge remote-tracking branch 'origin/dev' into dev 2026-02-25 14:33:59 +08:00
王奎兴 69d6952315 出库异常查询修改; 2026-02-25 14:33:48 +08:00
秦鸿展 8443d739d1 数据权限隔离修改调整 2026-02-25 14:25:59 +08:00
秦鸿展 3ce2c06105 Merge remote-tracking branch 'origin/dev' into dev 2026-02-25 14:00:39 +08:00
秦鸿展 416ac1367a BMS应付管理列表查询数据隔离 2026-02-25 14:00:00 +08:00
王奎兴 81b8bb86bd 自动分配添加仓库查询; 2026-02-25 13:59:36 +08:00
秦鸿展 ce0ccc49ee BMS应收管理列表查询数据隔离 2026-02-25 13:49:02 +08:00
王奎兴 b8732e7139 自动分配添加仓库查询; 2026-02-25 13:48:16 +08:00
王奎兴 a42c2fde3f 重复分配修改; 2026-02-25 13:40:21 +08:00
秦鸿展 bcc777539a BMS计费管理列表查询数据隔离 2026-02-25 11:45:09 +08:00
王奎兴 1426aa9d11 收货下发; 2026-02-25 11:28:02 +08:00
王奎兴 635500135f 收货下发; 2026-02-25 11:10:36 +08:00
zhou-hongcheng d4cbbd17cc Merge remote-tracking branch 'origin/dev' into dev 2026-02-25 11:01:23 +08:00
zhou-hongcheng a6aa766f3c 合同管理增加客户类型字段 2026-02-25 11:01:12 +08:00
王奎兴 1dc73121d5 自动分配修改库存; 2026-02-25 10:51:17 +08:00
秦鸿展 afac3b8c15 报表管理仓库出租率列表查询数据隔离 2026-02-25 10:35:42 +08:00
秦鸿展 875a5fadd1 报表管理即时库存列表查询数据隔离 2026-02-25 10:23:24 +08:00
王奎兴 397a49a146 自动分配修改; 2026-02-25 10:17:18 +08:00
王奎兴 785bf76383 自动分配修改; 2026-02-25 10:12:08 +08:00
秦鸿展 4110be97bb 库存管理模块数据权限隔离 2026-02-25 10:08:12 +08:00
秦鸿展 d3875cf0d2 库内管理模块数据权限隔离 2026-02-25 09:51:57 +08:00
zhou-hongcheng 6ec0e5b3f5 Merge remote-tracking branch 'origin/dev' into dev 2026-02-25 09:50:40 +08:00
zhou-hongcheng 219db303d0 费用类别查询的时候过滤已经删除的内容 2026-02-25 09:50:29 +08:00
王奎兴 c13edc0f2f 自动分配; 2026-02-25 09:48:52 +08:00
秦鸿展 6a26160f4a Merge branch 'wms_dev' into dev 2026-02-25 09:38:13 +08:00
秦鸿展 e6ab5c51df 出库管理模块数据权限隔离 2026-02-25 09:16:14 +08:00
秦鸿展 27cc5986e1 入库管理模块数据权限隔离 2026-02-24 17:16:19 +08:00
秦鸿展 b7b81d07e6 基础数据模块数据权限隔离 2026-02-24 17:07:08 +08:00
王奎兴 e848336562 复核只查询逻辑修改; 2026-02-24 16:55:20 +08:00
王奎兴 e7dba4d672 复核只查询逻辑修改; 2026-02-24 16:45:32 +08:00
王奎兴 6ef3f487a9 Merge remote-tracking branch 'origin/dev' into dev 2026-02-24 16:30:17 +08:00
王奎兴 ea9689d2a7 复核只查询逻辑修改; 2026-02-24 16:29:22 +08:00
zhou-hongcheng d6cd44b076 Merge remote-tracking branch 'origin/dev' into dev 2026-02-24 16:25:24 +08:00
zhou-hongcheng cd959bba91 收款记录sql拼接函数问题 2026-02-24 16:24:25 +08:00
王奎兴 7967b54a1b Merge remote-tracking branch 'origin/dev' into dev 2026-02-24 16:22:53 +08:00
王奎兴 08046eeee2 复核只查询拣过货的明细; 2026-02-24 16:22:39 +08:00
zhou-hongcheng 4fce6f7c4f Merge remote-tracking branch 'origin/dev' into dev 2026-02-24 16:20:05 +08:00
zhou-hongcheng cf561f2269 结算对象页面增加查询条件 2026-02-24 16:19:54 +08:00
秦鸿展 601ae6e3cf 基础数据物料管理模块数据权限隔离 2026-02-24 16:15:13 +08:00
王奎兴 7f5f1615ae 复核查询体积等信息逻辑修改; 2026-02-24 16:03:23 +08:00
王奎兴 f20bab8de3 复核中状态复核可查询; 2026-02-24 15:55:44 +08:00
王奎兴 fda82412df 复核查询增加面积体积等信息; 2026-02-24 15:46:11 +08:00
王奎兴 e5288c92a9 判空; 2026-02-24 15:40:18 +08:00
王奎兴 90a4537571 复核查询增加面积体积等信息; 2026-02-24 15:28:24 +08:00
王奎兴 aa76e07cdc 复核查询增加面积体积等信息; 2026-02-24 15:21:32 +08:00
zhou-hongcheng 4b85f3420e Merge remote-tracking branch 'origin/dev' into dev 2026-02-24 14:59:26 +08:00
zhou-hongcheng 8ad6883ec0 修改结算对象bug再次同步数据时,已存在的数据不再重复新增 2026-02-24 14:59:13 +08:00
王奎兴 79914169d3 拣货保存面积体积等属性; 2026-02-24 13:59:05 +08:00
zhou-hongcheng 38b4595d9d 修改流水总汇达梦数据库不支持GROUP_CONCAT函数sql报错问题 2026-02-24 13:43:56 +08:00
秦鸿展 3a577b5ed7 上架管理物料条码显示 2026-02-24 13:29:51 +08:00
秦鸿展 a3a1ec190b 库内管理模块数据权限隔离 2026-02-24 09:50:34 +08:00
秦鸿展 1fb2a21e97 出库模块数据权限隔离 2026-02-24 09:30:19 +08:00
秦鸿展 135bd5d380 入库模块数据权限隔离 2026-02-24 08:52:28 +08:00
秦鸿展 c110ab5dcc 代码格式化样式 2026-02-23 14:23:18 +08:00
秦鸿展 b274923993 基础数据仓库管理模块数据权限隔离 2026-02-23 14:18:15 +08:00
秦鸿展 766a401d9a 新增入库单的计划入库数量显示 2026-02-23 14:09:45 +08:00
赵辉 9793c0fd71 0213oms 2026-02-13 16:54:16 +08:00
秦鸿展 86db4db68e 手动分配子项修改 2026-02-13 09:27:12 +08:00
王奎兴 cb773d1cc8 复核添加库存更多属性; 2026-02-12 17:20:38 +08:00
王奎兴 fc6a36a6d9 及时库存查询收货数逻辑修改; 2026-02-12 11:00:28 +08:00
高正杨 9c75a8dd03 Merge branch 'wms_dev' into dev 2026-02-12 10:57:47 +08:00
秦鸿展 53f8ed1014 入库单明细hang上架数量,上架修改 2026-02-12 10:25:22 +08:00
王奎兴 240e18d81e Merge branch 'wms_dev' into dev 2026-02-12 10:10:49 +08:00
王奎兴 3c3c21f02e 不根据登录人获取仓库id 用前端传的; 2026-02-12 10:10:09 +08:00
赵辉 d970a01169 预约单列表与确认 2026-02-12 08:35:41 +08:00
秦鸿展 02a95d6095 入库单明细上架数量,上架修改 2026-02-11 17:07:01 +08:00
王奎兴 3d35fef0e8 已分配过的明细不再二次操作库存;拣货数量从累加改为覆盖; 2026-02-11 15:57:53 +08:00
秦鸿展 801c9fec3d 入库单明细收货数量 2026-02-11 10:55:42 +08:00
秦鸿展 d8400d3a9d 【入库管理】列表添加字段
添加计划入库数量、收货数量、上架数量
2026-02-10 17:29:58 +08:00
秦鸿展 49ba1cc8fd 仓库过滤查询 2026-02-10 15:12:36 +08:00
秦鸿展 507cbf0f1e 物料编码模糊查询 2026-02-10 14:43:33 +08:00
秦鸿展 543fca9d38 出库交接创建时间倒序排序 2026-02-10 11:41:29 +08:00
秦鸿展 c2af92f1a3 上架物料明细行EA单位回显 2026-02-10 11:34:28 +08:00
秦鸿展 fcb997d4ca 日常BUG任务修改调整 2026-02-10 11:20:59 +08:00
秦鸿展 f260b73b80 库存分配时如果没有库存抛异常
导入模版没有物料抛异常
2026-02-10 10:12:13 +08:00
王奎兴 8c21c6bfa8 库存操作判空处理; 2026-02-09 18:14:29 +08:00
王奎兴 ee4cd312ab 拣货完成无论拣货多少都为拣货完成; 2026-02-09 18:11:44 +08:00
王奎兴 51e5b871e7 拣货完成无论拣货多少都为拣货完成; 2026-02-09 18:00:15 +08:00
秦鸿展 1e8a823887 库存分配时显示了其他货主的库存 2026-02-09 17:31:41 +08:00
秦鸿展 308f79b804 任务BUG修改 2026-02-09 16:53:46 +08:00
1511 changed files with 168679 additions and 6099 deletions
BIN
View File
Binary file not shown.
@@ -18,7 +18,7 @@ import java.util.Set;
/** /**
* bms财务结算系统feign调用接口 * bms财务结算系统feign调用接口
*/ */
@FeignClient(contextId = "BmsService", value = ServiceNameConstants.BMS_SERVICE, fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class) @FeignClient(contextId = "BmsService", value = ServiceNameConstants.BMS_SERVICE, url = "http://10.33.0.109:8019",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class)
public interface BmsServiceFeign { public interface BmsServiceFeign {
@@ -35,6 +35,13 @@ public interface BmsServiceFeign {
@GetMapping("/settlementCustomersApi/getInfoByCode") @GetMapping("/settlementCustomersApi/getInfoByCode")
public AjaxResult getCustomersInfoByCode(@RequestParam("settlementCustomersCode")String settlementCustomersCode); public AjaxResult getCustomersInfoByCode(@RequestParam("settlementCustomersCode")String settlementCustomersCode);
/**
* 按结算主体ID(如货主ID,对应 settlement_customers.settlement_entity_id)查询结算对象
*/
@GetMapping("/settlementCustomersApi/getInfoBySettlementEntityId")
AjaxResult getCustomersInfoBySettlementEntityId(@RequestParam("settlementEntityId") Long settlementEntityId,
@RequestParam(value = "topOrganizationId", required = false) Long topOrganizationId);
/** /**
* 推送同步业务单据 * 推送同步业务单据
@@ -49,4 +56,16 @@ public interface BmsServiceFeign {
*/ */
@GetMapping("/documentTypeApi/getDocumentInfoByCodeSet") @GetMapping("/documentTypeApi/getDocumentInfoByCodeSet")
AjaxResult getDocumentInfoByCodeSet(@RequestParam("documentTypeCodeSet") Set<String> documentTypeCodeSet); AjaxResult getDocumentInfoByCodeSet(@RequestParam("documentTypeCodeSet") Set<String> documentTypeCodeSet);
/**
* 定时任务整租推送到bms
*/
@PostMapping("/businessDocumentApi/wholeRentSynchronization")
public AjaxResult businessDocumentApiSave(@RequestBody BusinessDataPushDTO businessDataPushDTO);
/**
* 定时任务整租推送到bms
*/
@PostMapping("/businessDocumentApi/wholeRentSynchronizationZXF")
public AjaxResult wholeRentSynchronizationZXF(@RequestBody BusinessDataPushDTO businessDataPushDTO);
} }
@@ -0,0 +1,73 @@
package com.mhd.system.api;
import com.mhd.common.core.constant.ServiceNameConstants;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.system.api.domain.*;
import com.mhd.system.api.factory.RemoteBmsFeignFallbackFactory;
import com.mhd.system.api.factory.RemoteOmsFeignFallbackFactory;
import com.mhd.system.api.feign.FeignAutoConfiguration;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.scheduling.annotation.Async;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.concurrent.CompletableFuture;
@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE, url = "http://10.33.0.99:8017",fallbackFactory = RemoteOmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class)
public interface OmsServiceFeign {
@ApiOperation("wms推送入库单")
@PostMapping(value = "/reservationStockInOrderApi/pushInOrder")
public AjaxResult pushInOrder(@RequestBody StockInOrderTZPD stockInOrder);
@ApiOperation("wms推送入库单明细")
@PostMapping(value = "/reservationStockInOrderApi/pushInOrderDetail")
public AjaxResult pushInOrderDetail(@RequestBody InMaterialDetailTZPD inMaterialDetail);
@ApiOperation("wms推送入库单")
@PostMapping(value = "/reservationStockOutOrderApi/pushOutOrder")
public AjaxResult pushOutOrder(@RequestBody StockOutOrderTZPD stockOutOrder);
@ApiOperation("wms推送入库单明细")
@PostMapping(value = "/reservationStockOutOrderApi/pushOutOrderDetail")
public AjaxResult pushOutOrderDetail(@RequestBody OutMaterialDetailTZPD outMaterialDetail);
@ApiOperation("编辑物料库存")
@PostMapping("/reservationMaterialInventoryApi/omsEdit")
@Async
public CompletableFuture<Void> omsEdit(@RequestBody MaterialInventoryOmsParamDO materialInventoryOmsParamDO);
@ApiOperation("查询企业单位列表-新增物料时显示下拉框数据")
@GetMapping("/erpEnterpriseUnitApi/unitList")
public AjaxResult getUnitList(ErpEnterpriseUnitDTO erpEnterpriseUnitDTO);
//查询企业国别列表-新增物料时显示下拉框数据
@ApiOperation("查询企业国别列表-新增物料时显示下拉框数据")
@GetMapping("/erpCountryApi/countryList")
public AjaxResult getCountryList(ErpCountryDTO erpCountryDTO);
@ApiOperation("保存gwlog")
@PostMapping("/gwLogApi/saveGwLog")
AjaxResult insertGwLog(@RequestBody GwLogDTO gwLogDTO);
@ApiOperation("修改gwlog")
@PostMapping("/gwLogApi/updateGwLog")
AjaxResult updateGwLog(@RequestBody GwLogDTO gwLogDTO);
@ApiOperation("批量推送")
@PostMapping("/reservationStockOutOrderApi/batchPush")
public AjaxResult batchPush(@RequestBody List<Long> idList);
@ApiOperation("批量推送")
@PostMapping("/reservationStockOutOrderApi/batchPushByNumber")
public AjaxResult batchPushByNumber(@RequestBody List<String> numberList);
@ApiOperation("保存电子签名记录")
@PostMapping("/electronicSignatureApi/saveSignature")
public AjaxResult saveSignature(@RequestBody ElectronicSignatureSyncDTO saveDTO);
}
@@ -201,6 +201,13 @@ public interface SystemServiceFeign {
@GetMapping("/batchApi/getInfo/{batchId}") @GetMapping("/batchApi/getInfo/{batchId}")
public AjaxResult getBatchInfoByBatchId(@PathVariable("batchId") Long batchId); public AjaxResult getBatchInfoByBatchId(@PathVariable("batchId") Long batchId);
/**
* 根据批次名称查询批次列表(导入用)
*/
@GetMapping("/batchApi/list")
public Object getBatchListByName(@RequestParam("batchName") String batchName,
@RequestParam("organizationId") Long organizationId);
/** /**
* 根据batchId获取对应批次详情信息 * 根据batchId获取对应批次详情信息
*/ */
@@ -218,6 +225,12 @@ public interface SystemServiceFeign {
@GetMapping("/associationWarehouseApi/getWarehouseInfo/{correlationId}") @GetMapping("/associationWarehouseApi/getWarehouseInfo/{correlationId}")
public AjaxResult getWarehouseInfo(@PathVariable("correlationId") Long correlationId); public AjaxResult getWarehouseInfo(@PathVariable("correlationId") Long correlationId);
/**
* 直接从数据库获取指定用户设置的仓库(不使用缓存)
*/
@GetMapping("/associationWarehouseApi/getWarehouseInfoFromDb/{correlationId}")
public AjaxResult getWarehouseInfoFromDb(@PathVariable("correlationId") Long correlationId);
/** /**
* 根据warehouseId获取对仓库信息 * 根据warehouseId获取对仓库信息
*/ */
@@ -245,6 +258,14 @@ public interface SystemServiceFeign {
@GetMapping("/packApi/getInfoByPackIdAndUnitCode/{packId}/{unitCode}") @GetMapping("/packApi/getInfoByPackIdAndUnitCode/{packId}/{unitCode}")
public AjaxResult getInfoByPackIdAndUnitCode(@PathVariable("packId") Long packId, @PathVariable("unitCode") String unitCode); public AjaxResult getInfoByPackIdAndUnitCode(@PathVariable("packId") Long packId, @PathVariable("unitCode") String unitCode);
/**
* 根据包装编码/名称查询包装(导入用)
*/
@GetMapping("/packApi/list")
public Object getPackList(@RequestParam(value = "packCode", required = false) String packCode,
@RequestParam(value = "packName", required = false) String packName,
@RequestParam(value = "organizationId", required = false) Long organizationId);
/** /**
* 根据platformId获取对应月台信息 * 根据platformId获取对应月台信息
*/ */
@@ -288,6 +309,12 @@ public interface SystemServiceFeign {
@GetMapping("/expenseAccountApi/getInfoByCode") @GetMapping("/expenseAccountApi/getInfoByCode")
public AjaxResult getSubInfoByCode(@RequestParam("subjectCode") String subjectCode); public AjaxResult getSubInfoByCode(@RequestParam("subjectCode") String subjectCode);
/**
* 根据code编码查询费用科目
*/
@GetMapping("/expenseAccountApi/getInfoByCode2")
public AjaxResult getSubInfoByCode2(@RequestParam("subjectCode") String subjectCode,@RequestParam("topOrganizationId") Long topOrganizationId);
/** /**
* 根据code编码查询项目信息 * 根据code编码查询项目信息
@@ -319,13 +346,42 @@ public interface SystemServiceFeign {
@GetMapping("/contractManageApi/getInfoByCode") @GetMapping("/contractManageApi/getInfoByCode")
public AjaxResult getInfoByCode(@RequestParam("contractNumber") String contractNumber); public AjaxResult getInfoByCode(@RequestParam("contractNumber") String contractNumber);
/**
* 获取通用合同
*/
@GetMapping("/contractManageApi/getGeneralContract")
public AjaxResult getGeneralContract();
/** /**
* 根据结算主体获取合同信息 * 根据结算主体获取合同信息
*/ */
@GetMapping("/contractManageApi/getInfoByCustomer") @GetMapping("/contractManageApi/getInfoByCustomer")
public AjaxResult getInfoByCustomer(@RequestParam("settlementCustomersCode") String settlementCustomersCode,@RequestParam("contractType") Integer contractType); public AjaxResult getInfoByCustomer(@RequestParam("settlementCustomersCode") String settlementCustomersCode,@RequestParam("contractType") Integer contractType);
@ApiOperation("根据结算主体和费用科目获取合同信息")
@GetMapping(value = "/contractManageApi/getInfoByCustomerAndSecondSubjectCode")
public AjaxResult getInfoByCustomerAndSecondSubjectCode(@RequestParam("settlementCustomersCode") String settlementCustomersCode,@RequestParam("contractType") Integer contractType,@RequestParam("firstSubjectCode") String firstSubjectCode,@RequestParam("topOrganizationId") Long topOrganizationId,@RequestParam("organizationId") Long organizationId);
/**
* 根据结算主体获取合同信息
*/
@GetMapping("/contractManageApi/getInfoByCustomer2")
public AjaxResult getInfoByCustomer2(@RequestParam("settlementCustomersCode") String settlementCustomersCode,@RequestParam("contractType") Integer contractType,@RequestParam("topOrganizationId") Long topOrganizationId);
@GetMapping("/contractManageApi/getInfoByCustomerAndOrganizationId")
public AjaxResult getInfoByCustomerAndOrganizationId(@RequestParam("settlementCustomersCode") String settlementCustomersCode,@RequestParam("contractType") Integer contractType,@RequestParam("topOrganizationId") Long topOrganizationId,@RequestParam("organizationId") Long organizationId);
@GetMapping("/contractManageApi/queryList") @GetMapping("/contractManageApi/queryList")
public AjaxResult queryList(); public AjaxResult queryList();
@GetMapping("/LeaseApi/wholeRentSynchronization")
public AjaxResult wholeRentSynchronization();
/**
* 物料主数据导入:按组织与关键词匹配物料分类,返回体含物料分类的 code 字段,供写入 material_base_info.material_classify_code。
* 使用 basicApi 前缀,与 WMS 其他 Feign 调 system 的惯例一致(避免仅重启 WMS 时 system 上无 materialClassifyApi 新路由导致 404)。
*/
@GetMapping("/basicApi/matchMaterialClassifyForImport")
public AjaxResult matchForMaterialImport(@RequestParam("keyword") String keyword,
@RequestParam("organizationId") Long organizationId);
} }
@@ -9,15 +9,20 @@ import com.mhd.common.core.domain.dto.UserDriverDTO;
import com.mhd.common.core.domain.entity.R; import com.mhd.common.core.domain.entity.R;
import com.mhd.common.core.domain.todo.StatisticalMattersDo; import com.mhd.common.core.domain.todo.StatisticalMattersDo;
import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
import com.mhd.system.api.domain.UserDTO; import com.mhd.system.api.domain.UserDTO;
import com.mhd.system.api.domain.UserShipperFeignDTO;
import com.mhd.system.api.domain.UserShipperQueryDTO;
import com.mhd.system.api.domain.UserUpdateDTO; import com.mhd.system.api.domain.UserUpdateDTO;
import com.mhd.system.api.factory.RemoteUserFeignFallbackFactory; import com.mhd.system.api.factory.RemoteUserFeignFallbackFactory;
import com.mhd.system.api.feign.FeignAutoConfiguration; import com.mhd.system.api.feign.FeignAutoConfiguration;
import com.mhd.system.api.model.LoginUser; import com.mhd.system.api.model.LoginUser;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -160,6 +165,10 @@ public interface UserServiceFeign {
@GetMapping("/userShipperApi/userShipperListAll") @GetMapping("/userShipperApi/userShipperListAll")
public AjaxResult<?> userShipperListAll(); public AjaxResult<?> userShipperListAll();
@ApiOperation("查询租户下全部托运人")
@GetMapping("/userShipperApi/userShipperListAllByOrg")
public AjaxResult<?> userShipperListAllByOrg(@RequestParam("orgCode") Long orgCode);
@ApiOperation("查询租户下全部承运人") @ApiOperation("查询租户下全部承运人")
@GetMapping("/userDriverApi/userDriverListAll") @GetMapping("/userDriverApi/userDriverListAll")
public AjaxResult<?> userDriverListAll(); public AjaxResult<?> userDriverListAll();
@@ -191,4 +200,34 @@ public interface UserServiceFeign {
@ApiOperation("根据用户ID查询货主信息") @ApiOperation("根据用户ID查询货主信息")
@GetMapping("/userShipperApi/getShipperByUserId/{userId}") @GetMapping("/userShipperApi/getShipperByUserId/{userId}")
public AjaxResult<?> getShipperByUserId(@PathVariable("userId") Long userId); public AjaxResult<?> getShipperByUserId(@PathVariable("userId") Long userId);
@ApiOperation("设置路线")
@PostMapping("/userApi/updateLineManagement")
public AjaxResult updateLineManagement(@RequestBody UserDTO userDTO);
@ApiOperation("商业合作伙伴-分页查询托运人列表")
@GetMapping("/userShipperApi/userShipperList")
public TableDataInfo userShipperList(@SpringQueryMap UserShipperQueryDTO userShipperQueryDTO);
@PostMapping("/userShipperApi/updatePushStatus")
public AjaxResult<?> updatePushStatus(@RequestParam(value = "shipperId") Long shipperId,
@RequestParam(value = "pushStatus", required = false) Integer pushStatus,
@RequestParam(value = "pushTime", required = false) String pushTime,
@RequestParam(value = "pushBy", required = false) Long pushBy,
@RequestParam(value = "pushByName", required = false) String pushByName,
@RequestParam(value = "organizationId") Long organizationId);
@PostMapping("/userShipperApi/getCustomerNcCodeBatch")
AjaxResult getCustomerNcCodeBatch(@RequestBody List<Long> shipperIdList);
@ApiOperation("查询赊销额度")
@PostMapping("/userShipperApi/querySaleCreditLimitFeign")
public AjaxResult querySaleCreditLimitFeign(@RequestBody UserShipperFeignDTO userShipperDTO);
@GetMapping("/userApi/getUserByUserAccount")
R<LoginUser> getUserByUserAccount(@RequestParam("userAccount") String account);
} }
@@ -17,6 +17,7 @@ import com.mhd.common.core.domain.po.UserPo;
import com.mhd.common.core.utils.sms.Result; import com.mhd.common.core.utils.sms.Result;
import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.system.api.domain.*; import com.mhd.system.api.domain.*;
import com.mhd.system.api.domain.TmsOrderAddDTO;
import com.mhd.system.api.feign.FeignAutoConfiguration; import com.mhd.system.api.feign.FeignAutoConfiguration;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
@@ -25,7 +26,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,configuration = FeignAutoConfiguration.class) @FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.33.0.129:8014",configuration = FeignAutoConfiguration.class)
public interface WlhyServiceFeign { public interface WlhyServiceFeign {
/** /**
@@ -516,6 +517,14 @@ public interface WlhyServiceFeign {
@PostMapping(value = "/feign/outBoundSummary/getOrderListByReconciliation") @PostMapping(value = "/feign/outBoundSummary/getOrderListByReconciliation")
public R<List<TmsOrder>> getOrderListByReconciliation(@RequestBody ReconciliationDTO reconciliationDTO); public R<List<TmsOrder>> getOrderListByReconciliation(@RequestBody ReconciliationDTO reconciliationDTO);
@ApiOperation(value = "查询对账单对应的发票明细", notes = "查询对账单对应的发票明细")
@PostMapping(value = "/feign/outBoundSummary/selectMakeOutInvoiceListByReconciliation")
public R<List<TmsMakeOutInvoice>> selectMakeOutInvoiceListByReconciliation(@RequestBody ReconciliationDTO reconciliationDTO);
@ApiOperation(value = "查询对账单对应的发票明细子项", notes = "查询对账单对应的发票明细子项")
@PostMapping(value = "/feign/outBoundSummary/selectMakeOutInvoiceItemList")
public R<List<TmsMakeOutInvoiceItem>> selectMakeOutInvoiceItemList(@RequestBody TmsMakeOutInvoice tmsMakeOutInvoice);
@GetMapping(value = "/ntocc/tmsSettlementExchangeRate/queryById") @GetMapping(value = "/ntocc/tmsSettlementExchangeRate/queryById")
public Result<?> queryById(@RequestParam(name="id",required=true) String id); public Result<?> queryById(@RequestParam(name="id",required=true) String id);
@@ -529,4 +538,20 @@ public interface WlhyServiceFeign {
@GetMapping("/feign/order/cancelIssueDocuments") @GetMapping("/feign/order/cancelIssueDocuments")
public AjaxResult cancelIssueDocuments(@RequestParam(name="executeOrderId") String executeOrderId); public AjaxResult cancelIssueDocuments(@RequestParam(name="executeOrderId") String executeOrderId);
@GetMapping(value = "/ntocc/tmsSettlementExchangeRate/queryList")
public AjaxResult<?> queryList(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
@RequestParam(name="pushStatus", required = false) String pushStatus,
@RequestParam(name="organizationId", required = false) String organizationId);
@ApiOperation("汇率-更新推送状态")
@PostMapping("/ntocc/tmsSettlementExchangeRate/updatePushStatus")
void updateExchangeRatePushStatus(@RequestParam("id") String id,
@RequestParam("pushStatus") Integer pushStatus,
@RequestParam(name="pushTime",required = false) String pushTime,
@RequestParam(name="pushBy",required = false) Long pushBy,
@RequestParam(name="pushByName",required = false) String pushByName,
@RequestParam("organizationId") String organizationId);
} }
@@ -1,15 +1,18 @@
package com.mhd.system.api; package com.mhd.system.api;
import cn.hutool.json.JSONUtil;
import com.mhd.common.core.constant.ServiceNameConstants; import com.mhd.common.core.constant.ServiceNameConstants;
import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.system.api.domain.MaterialBaseInfoFeign; import com.mhd.common.core.web.page.TableDataInfo;
import com.mhd.system.api.domain.MaterialInventoryDTO; import com.mhd.system.api.domain.*;
import com.mhd.system.api.domain.NoticeOrderDTO; import com.mhd.system.api.factory.RemoteWmsFallbackFactory;
import com.mhd.system.api.factory.RemoteTicketFeignFallbackFactory;
import com.mhd.system.api.feign.FeignAutoConfiguration; import com.mhd.system.api.feign.FeignAutoConfiguration;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@@ -18,7 +21,7 @@ import java.util.Map;
* @description: TODO * @description: TODO
* @date 2024/5/10 8:58 * @date 2024/5/10 8:58
**/ **/
@FeignClient(contextId = "remoteWmsServiceFeign", value = ServiceNameConstants.WMS_SERVICE, fallbackFactory = RemoteTicketFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class) @FeignClient(contextId = "remoteWmsServiceFeign",value = ServiceNameConstants.WMS_SERVICE, url = "http://10.33.0.109:8016",fallbackFactory = RemoteWmsFallbackFactory.class, configuration = FeignAutoConfiguration.class)
public interface WmsServiceFeign { public interface WmsServiceFeign {
/** /**
@@ -64,5 +67,88 @@ public interface WmsServiceFeign {
* 查询物料库存列表不分页 * 查询物料库存列表不分页
*/ */
@GetMapping("/materialInventoryApi/listAll") @GetMapping("/materialInventoryApi/listAll")
public AjaxResult materialInventoryApiListAll(MaterialInventoryDTO materialInventoryDTO); public AjaxResult materialInventoryApiListAll(@SpringQueryMap MaterialInventoryDTO materialInventoryDTO);
/**
* oms下发单保存
*/
@ApiOperation("oms下发单保存")
@PostMapping(value = "/stockOutOrderApi/omsOutOrderAdd")
public void omsOutOrderAdd(@RequestBody StockOutOrder stockOutOrder);
/**
* oms下发单明细保存
*/
@ApiOperation("oms下发单明细保存")
@PostMapping(value = "/stockOutOrderApi/omsOutOrderAddDetail")
public void omsOutOrderAddDetail(@RequestBody List<OutMaterialDetail> outMaterialDetails);
/**
* oms下发单明细保存
*/
@ApiOperation("oms下发单明细保存")
@PostMapping(value = "/stockOutOrderApi/omsOutOrderAddDeliveryDetailsLink")
public void omsOutOrderAddDeliveryDetailsLink(@RequestBody List<DeliveryDetailsLink> deliveryDetailsLinks);
/**
* oms下发单保存
*/
@ApiOperation("oms下发单保存")
@PostMapping(value = "/stockInOrderApi/omsInOrderAdd")
public void omsInOrderAdd(@RequestBody StockInOrder stockInOrder);
@ApiOperation("oms取消下发单保存")
@PostMapping(value = "/stockOutOrderApi/cancelExecutionOrder")
public void omsCancelExecutionOrder(@RequestBody StockOutOrder stockOutOrder);
@ApiOperation("oms取消下发单自动分配")
@PostMapping(value = "/stockOutOrderApi/omsAutoAssign")
public void omsAutoAssign(@RequestBody StockOutOrderDTO stockOutOrderDTO);
@ApiOperation("oms出库执行")
@PostMapping(value = "/stockOutOrderApi/execution")
public AjaxResult execution(@RequestBody com.mhd.system.api.domain.StockOutOrderDTO stockOutOrderDTO);
/**
* oms下发单明细保存
*/
@ApiOperation("oms下发单明细保存")
@PostMapping(value = "/stockInOrderApi/omsInOrderAddDetail")
public void omsInOrderAddDetail(@RequestBody List<InMaterialDetail> inMaterialDetails);
@ApiOperation("oms查询物料列表")
@GetMapping("/materialBaseInfoApi/queryList")
public TableDataInfo getMaterialBaseInfoList(MaterialInfoDTO materialInfoDTO);
@ApiOperation("oms物料列表推送-更新推送信息")
@PostMapping("/materialBaseInfoApi/updatePushStatus")
public AjaxResult<?> updateMaterialPushStatus(@RequestParam("materialBaseInfoId") Long materialBaseInfoId,
@RequestParam("pushStatus") Integer pushStatus,
@RequestParam(value = "pushTime",required = false) String pushTime,
@RequestParam(value = "pushBy",required = false) Long pushBy,
@RequestParam(value = "pushByName",required = false) String pushByName);
/**
* 根据物料ID列表批量查询物料信息
*/
@GetMapping("/materialBaseInfoApi/getBatchByIds")
public TableDataInfo getBatchByIds(@RequestParam("materialBaseInfoIds") List<Long> materialBaseInfoIds);
/**
* 生成拣货单
*/
@ApiOperation("生成拣货单")
@PostMapping("/stockOutOrderApi/genPickingOrderByOms")
public AjaxResult genPickingOrderByOms(@RequestBody com.mhd.system.api.domain.StockOutOrderDTO stockOutOrderDTO);
/**
* OMS批量签名:更新WMS入/出库单签名字段
*
* <p>OMS端勾选记录批量签名后,通过此Feign调用WMS的 /stockSignatureApi/batchSign 接口,
* 同步更新WMS stock_in_order / stock_out_order 表的签名状态、签名时间、签名图片、签名备注。</p>
*/
@ApiOperation("OMS批量签名-同步WMS入/出库单签名字段")
@PostMapping("/stockSignatureApi/batchSign")
public AjaxResult batchSignWms(@RequestBody SignatureBatchFeignDTO dto);
} }
@@ -0,0 +1,55 @@
package com.mhd.system.api;
import com.mhd.common.core.constant.ServiceNameConstants;
import com.mhd.common.core.domain.entity.R;
import com.mhd.common.core.domain.dto.YmsSysUserDTO;
import com.mhd.system.api.domain.YmsLoginUser;
import com.mhd.system.api.factory.RemoteBmsFeignFallbackFactory;
import com.mhd.system.api.feign.FeignAutoConfiguration;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
@FeignClient(contextId = "YmsService", value = ServiceNameConstants.YMS_SERVICE,url = "http://10.33.0.99:8018",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class)
public interface YmsServiceFeign {
/**
* 获取YMS用户基本信息
* @param szwlUserId 数字物流用户ID
* @return YMS登录用户基本信息
*/
@GetMapping("/system/user/inner/getYmsUserInfo/{szwlUserId}")
R<YmsLoginUser> getYmsUserInfo(@PathVariable("szwlUserId") Long szwlUserId);
/**
* 获取用户详细信息
* @param userId 用户ID
* @return 用户信息
*/
@GetMapping("/system/user/inner/info/{userId}")
R<Long> innerGetInfo(@PathVariable("userId") Long userId);
/**
* 新增用户
* @param ymsSysUserDTO 用户信息
* @return 新增结果
*/
@PostMapping("/system/user/inner/add")
R<Object> innerAdd(@RequestBody YmsSysUserDTO ymsSysUserDTO);
/**
* 修改用户
* @param ymsSysUserDTO 用户信息
* @return 修改结果
*/
@PutMapping("/system/user/inner/edit")
R<Object> innerEdit(@RequestBody YmsSysUserDTO ymsSysUserDTO);
/**
* 删除用户
* @param userIds 用户ID数组
* @return 删除结果
*/
@DeleteMapping("/system/user/inner/remove/{userIds}")
R<Object> innerRemove(@PathVariable("userIds") Long[] userIds);
}
@@ -0,0 +1,50 @@
package com.mhd.system.api.domain;
//package com.mhd.wms.domain.deliveryDetailsLink.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class DeliveryDetailsLink extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("编号")
@TableId(type = IdType.AUTO)
private Long id;
@ApiModelProperty("oms编号")
private Long omsId;
@ApiModelProperty(value = "业务单id")
private Long orderId;
@ApiModelProperty(value = "业务单号")
private String orderNumber;
@ApiModelProperty(value = "退货入库单号")
private String returnOrderNumber;
@ApiModelProperty(value = "类别")
private String category;
@ApiModelProperty(value = "发票编号")
private String invoiceNumber;
@ApiModelProperty(value = "客户编号")
private String customerNumber;
@ApiModelProperty(value = "配送名称")
private String deliveryName;
@ApiModelProperty(value = "")
private Integer box;
@ApiModelProperty(value = "")
private Integer bag;
@ApiModelProperty(value = "金额")
private BigDecimal amount;
}
@@ -0,0 +1,108 @@
package com.mhd.system.api.domain;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* 电子签名同步DTOWMS端通过Feign调用OMS
*/
@Data
public class ElectronicSignatureSyncDTO {
@ApiModelProperty("订单ID")
private Long orderId;
@ApiModelProperty("订单号")
private String orderNumber;
@ApiModelProperty("订单类型:IN-入库 OUT-出库")
private String orderType;
@ApiModelProperty("组织ID")
private Long organizationId;
@ApiModelProperty("组织名称")
private String organizationName;
@ApiModelProperty("一级组织ID")
private Long topOrganizationId;
@ApiModelProperty("仓库ID")
private Long warehouseId;
@ApiModelProperty("仓库编码")
private String warehouseCode;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("创建人")
private Long createBy;
@ApiModelProperty("创建人姓名")
private String createByName;
@ApiModelProperty("物料明细列表")
private List<MaterialDetailItem> materialDetailList;
@Data
public static class MaterialDetailItem {
@ApiModelProperty("物料基础信息ID")
private Long materialBaseInfoId;
@ApiModelProperty("物料编码")
private String materialCode;
@ApiModelProperty("物料名称")
private String materialName;
@ApiModelProperty("数量")
private BigDecimal quantity;
@ApiModelProperty("单位代码")
private String unitCode;
@ApiModelProperty("单位名称")
private String unitName;
@ApiModelProperty("批次号")
private String batchNumber;
@ApiModelProperty("LOT编号")
private String lotNumber;
@ApiModelProperty("仓库ID")
private Long warehouseId;
@ApiModelProperty("仓库编码")
private String warehouseCode;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("库区ID")
private Long storageSectionId;
@ApiModelProperty("库区编码")
private String storageSectionCode;
@ApiModelProperty("库区名称")
private String storageSectionName;
@ApiModelProperty("库位ID")
private Long storageLocationId;
@ApiModelProperty("库位编码")
private String storageLocationCode;
@ApiModelProperty("库位名称")
private String storageLocationName;
@ApiModelProperty("业务唯一ID")
private Long uniqueId;
}
}
@@ -0,0 +1,24 @@
package com.mhd.system.api.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(description = "企业国别DTO")
public class ErpCountryDTO {
@ApiModelProperty("主键id")
private Long id;
@ApiModelProperty("ERP国别编码")
private String erpCountryCode;
@ApiModelProperty("ERP国别名称")
private String erpCountryName;
@ApiModelProperty("所属组织ID")
private Long organizationId;
}
@@ -0,0 +1,22 @@
package com.mhd.system.api.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(description = "企业单位DTO")
public class ErpEnterpriseUnitDTO {
@ApiModelProperty("企业单位id")
private Long id;
@ApiModelProperty("企业单位名称")
private String erpName;
@ApiModelProperty("企业单位编码")
private String erpCode;
@ApiModelProperty("组织ID")
private Long organizationId;
}
@@ -0,0 +1,54 @@
package com.mhd.system.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
public class GwLogDTO {
@ApiModelProperty("日志id")
private Long logId;
@ApiModelProperty("类型")
private String type;
@ApiModelProperty("业务ID")
private Long businessId;
@ApiModelProperty("请求报文")
private String requestBody;
@ApiModelProperty("响应报文")
private String responseBody;
@ApiModelProperty("状态(1-初始,2-成功,3-失败)")
private Integer status;
@ApiModelProperty("错误信息")
private String errorMsg;
@ApiModelProperty("推送时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date sendTime;
@ApiModelProperty("组织ID")
private Long organizationId;
@ApiModelProperty("一级组织ID")
private Long topOrganizationId;
@ApiModelProperty("组织名称")
private String organizationName;
@ApiModelProperty("创建人")
private Long createBy;
@ApiModelProperty("创建时间")
private Date createTime;
}
@@ -0,0 +1,64 @@
package com.mhd.system.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@Data
public class GwLogW implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("日志id")
private Long logId;
@ApiModelProperty("类型")
private String type;
@ApiModelProperty("业务ID")
private Long businessId;
@ApiModelProperty("请求报文")
private String requestBody;
@ApiModelProperty("响应报文")
private String responseBody;
@ApiModelProperty("状态(1-初始,2-成功,3-失败)")
private Integer status;
@ApiModelProperty("错误信息")
private String errorMsg;
@ApiModelProperty("推送时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date sendTime;
@ApiModelProperty("组织ID")
private Long organizationId;
@ApiModelProperty("一级组织ID")
private Long topOrganizationId;
@ApiModelProperty("组织名称")
private String organizationName;
@ApiModelProperty("创建人")
private Long createBy;
@ApiModelProperty("创建时间")
private Date createTime;
@ApiModelProperty("删除标记:1-正常,0-删除")
private Integer delFlag;
// @ApiModelProperty("推送人姓名")
// private String pushByName;
}
@@ -0,0 +1,397 @@
package com.mhd.system.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
/**
* 物料明细对象 material_detail
*
* @author gen
* @date 2024-05-21
*/
@Data
public class InMaterialDetail extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("订单物料明细id")
@TableId(type = IdType.AUTO)
private Long materialDetailId;
@ApiModelProperty("业务唯一id")
@JsonSerialize(using = ToStringSerializer.class)
private Long uniqueId;
@ApiModelProperty("组织表ID")
@Excel(name = "组织表ID")
private Long organizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty("一级组织表ID")
@Excel(name = "一级组织表ID")
private Long topOrganizationId;
@ApiModelProperty("入库单号")
@Excel(name = "入库单号")
private String inOrderNumber;
@ApiModelProperty("物料基础信息id")
@Excel(name = "物料基础信息id")
private Long materialBaseInfoId;
@ApiModelProperty("物料编码")
@Excel(name = "物料编码")
private String materialCode;
@ApiModelProperty("物料名称")
@Excel(name = "物料名称")
private String materialName;
@ApiModelProperty("物料条形码")
@Excel(name = "物料条形码")
private String barCode;
@ApiModelProperty("计划数量")
@Excel(name = "计划数量")
private BigDecimal quantity;
@ApiModelProperty("收货数量")
@Excel(name = "收货数量")
private BigDecimal receiptQuantity;
@ApiModelProperty("上架数量")
@Excel(name = "上架数量")
private BigDecimal shelvesQuantity;
@ApiModelProperty("作业数量(例如:收货数量 上架数量)")
@Excel(name = "作业数量(例如:收货数量 上架数量)")
private BigDecimal actualQuantity;
@ApiModelProperty("收货状态: 1-待收货 2-收货中 3-已收货 4-已收货(少收) 5-已收货(超收)")
@Excel(name = "收货状态: 1-待收货 2-收货中 3-已收货 4-已收货(少收) 5-已收货(超收)")
private Integer receiptStatus;
@ApiModelProperty("上架状态: 1-待上架 2-上架中 3-已上架 4-已上架(少上) 5-已上架(超上)")
@Excel(name = "上架状态: 1-待上架 2-上架中 3-已上架 4-已上架(少上) 5-已上架(超上)")
private Integer shelvesStatus;
@ApiModelProperty("包装规格id")
@Excel(name = "包装规格id")
private Long packId;
@ApiModelProperty("包装规格编码")
@Excel(name = "包装规格编码")
private String packCode;
@ApiModelProperty("包装规格名称")
@Excel(name = "包装规格名称")
private String packName;
@ApiModelProperty("包装详情id")
@Excel(name = "包装详情id")
private Long packDetailId;
@ApiModelProperty("单位代码:EA IP CS PL OT")
@Excel(name = "单位代码:EA IP CS PL OT")
private String unitCode;
@ApiModelProperty("单位名称")
@Excel(name = "单位名称")
private String unitName;
@ApiModelProperty("单位数量")
@Excel(name = "单位数量")
private BigDecimal unitNumber;
@ApiModelProperty("物料仓库控制信息id")
@Excel(name = "物料仓库控制信息id")
private Long materialWarehouseControlId;
@ApiModelProperty("是否序列号管理: 1-是 2-否")
@Excel(name = "是否序列号管理: 1-是 2-否")
private Integer serialNumberManage;
@ApiModelProperty("是否质检管理: 1-是 2-否")
@Excel(name = "是否质检管理: 1-是 2-否")
private Integer qualityInspectionManage;
@ApiModelProperty("质检阶段: 1-收货前 2-收货后上架前")
@Excel(name = "质检阶段: 1-收货前 2-收货后上架前")
private Integer qualityInspectionStage;
@ApiModelProperty("质检规则: 1-全检 2-抽检 ")
@Excel(name = "质检规则: 1-全检 2-抽检 ")
private Integer qualityInspectionRule;
@ApiModelProperty("抽检比例")
@Excel(name = "抽检比例")
private BigDecimal qualityInspectionRatio;
@ApiModelProperty("质检项: 1-包装 2-纯度")
@Excel(name = "质检项: 1-包装 2-纯度")
private Integer qualityInspectionTerm;
@ApiModelProperty("质检结果: 1-正常 2-异常")
@Excel(name = "质检结果: 1-正常 2-异常")
private Integer qualityInspectionResults;
@ApiModelProperty("是否允许超收: 1-是 2-否")
@Excel(name = "是否允许超收: 1-是 2-否")
private Integer allowOvercharge;
@ApiModelProperty("超收比例")
@Excel(name = "超收比例")
private BigDecimal overchargeRatio;
@ApiModelProperty("批次号")
@Excel(name = "批次号")
private String batchNumber;
@ApiModelProperty("物料状态编码")
@Excel(name = "物料状态编码")
private String materialStatusCode;
@ApiModelProperty("物料状态名称")
@Excel(name = "物料状态名称")
private String materialStatusName;
@ApiModelProperty("分配规则id")
@Excel(name = "分配规则id")
private Long distributeRuleId;
@ApiModelProperty("分配规则编码")
@Excel(name = "分配规则编码")
private String distributeRuleCode;
@ApiModelProperty("分配规则名称")
@Excel(name = "分配规则名称")
private String distributeRuleName;
@ApiModelProperty("容器id")
@Excel(name = "容器id")
private Long containerId;
@ApiModelProperty("容器编码")
@Excel(name = "容器编码")
private String containerCode;
@ApiModelProperty("容器类型 数据字典")
@Excel(name = "容器类型 数据字典")
private String containerType;
@ApiModelProperty("容器类型名称 数据字典")
@Excel(name = "容器类型名称 数据字典")
private String containerTypeName;
@ApiModelProperty("上架仓库id")
private Long warehouseId;
@ApiModelProperty("上架仓库编码")
@Excel(name = "上架仓库编码")
private String warehouseCode;
@ApiModelProperty("仓库名称")
@Excel(name = "仓库名称")
private String warehouseName;
@ApiModelProperty("上架库区id")
@Excel(name = "上架库区id")
private Long storageSectionId;
@ApiModelProperty("上架库区编码")
@Excel(name = "上架库区编码")
private String storageCode;
@ApiModelProperty("上架库区名称")
@Excel(name = "上架库区名称")
private String storageName;
@ApiModelProperty("上架库位id")
@Excel(name = "上架库位id")
private Long storageLocationId;
@ApiModelProperty("上架库位编码")
@Excel(name = "上架库位编码")
private String storageLocationCode;
@ApiModelProperty("上架库位名称")
@Excel(name = "上架库位名称")
private String storageLocationName;
@ApiModelProperty("层级深度,从一级开始递增")
private Integer level;
@ApiModelProperty("父级唯一Id")
private Long parentUniqueId;
@ApiModelProperty("越库单id")
private Long overStockId;
@ApiModelProperty("越库单状态 0:无状态 1:处理中 2:越库完成")
@Excel(name = "越库单状态 0:无状态 1:处理中 2:越库完成")
private Integer overStockStatus;
@ApiModelProperty("越库类型:1-直接越库 2-分拨越库")
@Excel(name = "越库类型:1-直接越库 2-分拨越库")
private Long overStockType;
// ========== 报关相关明细字段 ==========
@ApiModelProperty("规格型号")
@Excel(name = "规格型号/ITEM")
private String specificationModel;
@ApiModelProperty("SKU码")
@Excel(name = "SKU码")
private String skuCode;
@ApiModelProperty("Invoice No.")
@Excel(name = "Invoice No.")
private String invoiceNo;
@ApiModelProperty("")
@Excel(name = "")
private BigDecimal liter;
@ApiModelProperty("尺寸")
@Excel(name = "尺寸")
private String dimensions;
@ApiModelProperty("申报单位")
@Excel(name = "申报单位")
private String declarationUnit;
@ApiModelProperty("Batch Ref NO's")
@Excel(name = "Batch Ref NO's")
private String batchRefNo;
@ApiModelProperty("Sheet Ref NO's")
@Excel(name = "Sheet Ref NO's")
private String sheetRefNo;
@ApiModelProperty("原产国")
@Excel(name = "原产国")
private String originCountry;
@ApiModelProperty("箱号/卡板号")
@Excel(name = "箱号/卡板号")
private String boxPalletNo;
@ApiModelProperty("币制")
@Excel(name = "币制")
private String currency;
@ApiModelProperty("单位")
@Excel(name = "单位")
private String unit;
@ApiModelProperty("申报数量")
@Excel(name = "申报数量")
private BigDecimal declaredQuantity;
@ApiModelProperty("箱数")
@Excel(name = "箱数")
private BigDecimal boxCount;
@ApiModelProperty("件数")
@Excel(name = "件数")
private BigDecimal pieceCount;
@ApiModelProperty("入库数量(输入大于等于0的数字,可以为小数)")
@Excel(name = "入库数量")
private BigDecimal inboundQuantity;
@ApiModelProperty("总净重(KG)")
@Excel(name = "总净重(KG)")
private BigDecimal totalNetWeight;
@ApiModelProperty("总毛重(KG)")
@Excel(name = "总毛重(KG)")
private BigDecimal totalGrossWeight;
@ApiModelProperty("总体积(CBM)")
@Excel(name = "总体积(CBM)")
private BigDecimal totalVolume;
@ApiModelProperty("总面积(SQM)")
@Excel(name = "总面积(SQM)")
private BigDecimal totalArea;
@ApiModelProperty("总价")
@Excel(name = "总价")
private BigDecimal totalPrice;
@ApiModelProperty("合同收费")
@Excel(name = "合同收费")
private BigDecimal contractFee;
@ApiModelProperty("每月仓租")
@Excel(name = "每月仓租")
private BigDecimal monthlyWarehouseFee;
@ApiModelProperty("半月仓租")
@Excel(name = "半月仓租")
private BigDecimal halfMonthWhFee;
@ApiModelProperty("折扣(%)")
@Excel(name = "折扣(%)")
private BigDecimal discountRate;
@ApiModelProperty("单体积(CBM)")
@Excel(name = "单体积(CBM)")
private BigDecimal singleVolume;
@ApiModelProperty("单毛重(KG)")
@Excel(name = "单毛重(KG)")
private BigDecimal singleGrossWeight;
@ApiModelProperty("lot编号")
@Excel(name = "lot编号")
private String lotNo;
@ApiModelProperty("oms入库单详情id")
@Excel(name = "oms入库单详情id")
private String omsInMaterialDetail;
@ApiModelProperty(value = "饮用时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date drinkDate;
@ApiModelProperty("来货验收是否合格;1 合格,0 不合格")
@Excel(name = "来货验收是否合格;1 合格,0 不合格")
private String arrivalAcceptQualified;
@ApiModelProperty("包装是否破损;1 破损,0 完好")
@Excel(name = "包装是否破损;1 破损,0 完好")
private String packageDamaged;
@ApiModelProperty("是否解冻 / 水渍;1 是,0 否")
@Excel(name = "是否解冻 / 水渍;1 是,0 否")
private String isThawWaterstain;
@ApiModelProperty("问题货是否已通知客户;1 已通知,0 未通知")
@Excel(name = "问题货是否已通知客户;1 已通知,0 未通知")
private String notifyCustomerAbnormal;
@ApiModelProperty("备注")
@Excel(name = "备注")
private String remark;
}
@@ -0,0 +1,371 @@
package com.mhd.system.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* 物料明细对象 material_detail
*
* @author gen
* @date 2024-05-21
*/
@Data
public class InMaterialDetailTZPD extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("订单物料明细id")
@TableId(type = IdType.AUTO)
private Long materialDetailId;
@ApiModelProperty("业务唯一id")
@JsonSerialize(using = ToStringSerializer.class)
private Long uniqueId;
@ApiModelProperty("组织表ID")
@Excel(name = "组织表ID")
private Long organizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty("一级组织表ID")
@Excel(name = "一级组织表ID")
private Long topOrganizationId;
@ApiModelProperty("入库单号")
@Excel(name = "入库单号")
private String inOrderNumber;
@ApiModelProperty("物料基础信息id")
@Excel(name = "物料基础信息id")
private Long materialBaseInfoId;
@ApiModelProperty("物料编码")
@Excel(name = "物料编码")
private String materialCode;
@ApiModelProperty("物料名称")
@Excel(name = "物料名称")
private String materialName;
@ApiModelProperty("物料条形码")
@Excel(name = "物料条形码")
private String barCode;
@ApiModelProperty("计划数量")
@Excel(name = "计划数量")
private BigDecimal quantity;
@ApiModelProperty("收货数量")
@Excel(name = "收货数量")
private BigDecimal receiptQuantity;
@ApiModelProperty("上架数量")
@Excel(name = "上架数量")
private BigDecimal shelvesQuantity;
@ApiModelProperty("作业数量(例如:收货数量 上架数量)")
@Excel(name = "作业数量(例如:收货数量 上架数量)")
private BigDecimal actualQuantity;
@ApiModelProperty("收货状态: 1-待收货 2-收货中 3-已收货 4-已收货(少收) 5-已收货(超收)")
@Excel(name = "收货状态: 1-待收货 2-收货中 3-已收货 4-已收货(少收) 5-已收货(超收)")
private Integer receiptStatus;
@ApiModelProperty("上架状态: 1-待上架 2-上架中 3-已上架 4-已上架(少上) 5-已上架(超上)")
@Excel(name = "上架状态: 1-待上架 2-上架中 3-已上架 4-已上架(少上) 5-已上架(超上)")
private Integer shelvesStatus;
@ApiModelProperty("包装规格id")
@Excel(name = "包装规格id")
private Long packId;
@ApiModelProperty("包装规格编码")
@Excel(name = "包装规格编码")
private String packCode;
@ApiModelProperty("包装规格名称")
@Excel(name = "包装规格名称")
private String packName;
@ApiModelProperty("包装详情id")
@Excel(name = "包装详情id")
private Long packDetailId;
@ApiModelProperty("单位代码:EA IP CS PL OT")
@Excel(name = "单位代码:EA IP CS PL OT")
private String unitCode;
@ApiModelProperty("单位名称")
@Excel(name = "单位名称")
private String unitName;
@ApiModelProperty("单位数量")
@Excel(name = "单位数量")
private BigDecimal unitNumber;
@ApiModelProperty("物料仓库控制信息id")
@Excel(name = "物料仓库控制信息id")
private Long materialWarehouseControlId;
@ApiModelProperty("是否序列号管理: 1-是 2-否")
@Excel(name = "是否序列号管理: 1-是 2-否")
private Integer serialNumberManage;
@ApiModelProperty("是否质检管理: 1-是 2-否")
@Excel(name = "是否质检管理: 1-是 2-否")
private Integer qualityInspectionManage;
@ApiModelProperty("质检阶段: 1-收货前 2-收货后上架前")
@Excel(name = "质检阶段: 1-收货前 2-收货后上架前")
private Integer qualityInspectionStage;
@ApiModelProperty("质检规则: 1-全检 2-抽检 ")
@Excel(name = "质检规则: 1-全检 2-抽检 ")
private Integer qualityInspectionRule;
@ApiModelProperty("抽检比例")
@Excel(name = "抽检比例")
private BigDecimal qualityInspectionRatio;
@ApiModelProperty("质检项: 1-包装 2-纯度")
@Excel(name = "质检项: 1-包装 2-纯度")
private Integer qualityInspectionTerm;
@ApiModelProperty("质检结果: 1-正常 2-异常")
@Excel(name = "质检结果: 1-正常 2-异常")
private Integer qualityInspectionResults;
@ApiModelProperty("是否允许超收: 1-是 2-否")
@Excel(name = "是否允许超收: 1-是 2-否")
private Integer allowOvercharge;
@ApiModelProperty("超收比例")
@Excel(name = "超收比例")
private BigDecimal overchargeRatio;
@ApiModelProperty("批次号")
@Excel(name = "批次号")
private String batchNumber;
@ApiModelProperty("物料状态编码")
@Excel(name = "物料状态编码")
private String materialStatusCode;
@ApiModelProperty("物料状态名称")
@Excel(name = "物料状态名称")
private String materialStatusName;
@ApiModelProperty("分配规则id")
@Excel(name = "分配规则id")
private Long distributeRuleId;
@ApiModelProperty("分配规则编码")
@Excel(name = "分配规则编码")
private String distributeRuleCode;
@ApiModelProperty("分配规则名称")
@Excel(name = "分配规则名称")
private String distributeRuleName;
@ApiModelProperty("容器id")
@Excel(name = "容器id")
private Long containerId;
@ApiModelProperty("容器编码")
@Excel(name = "容器编码")
private String containerCode;
@ApiModelProperty("容器类型 数据字典")
@Excel(name = "容器类型 数据字典")
private String containerType;
@ApiModelProperty("容器类型名称 数据字典")
@Excel(name = "容器类型名称 数据字典")
private String containerTypeName;
@ApiModelProperty("上架仓库id")
private Long warehouseId;
@ApiModelProperty("上架仓库编码")
@Excel(name = "上架仓库编码")
private String warehouseCode;
@ApiModelProperty("仓库名称")
@Excel(name = "仓库名称")
private String warehouseName;
@ApiModelProperty("上架库区id")
@Excel(name = "上架库区id")
private Long storageSectionId;
@ApiModelProperty("上架库区编码")
@Excel(name = "上架库区编码")
private String storageCode;
@ApiModelProperty("上架库区名称")
@Excel(name = "上架库区名称")
private String storageName;
@ApiModelProperty("上架库位id")
@Excel(name = "上架库位id")
private Long storageLocationId;
@ApiModelProperty("上架库位编码")
@Excel(name = "上架库位编码")
private String storageLocationCode;
@ApiModelProperty("上架库位名称")
@Excel(name = "上架库位名称")
private String storageLocationName;
@ApiModelProperty("层级深度,从一级开始递增")
private Integer level;
@ApiModelProperty("父级唯一Id")
private Long parentUniqueId;
@ApiModelProperty("备注")
@Excel(name = "备注")
private String remark;
@ApiModelProperty("越库单id")
private Long overStockId;
@ApiModelProperty("越库单状态 0:无状态 1:处理中 2:越库完成")
@Excel(name = "越库单状态 0:无状态 1:处理中 2:越库完成")
private Integer overStockStatus;
@ApiModelProperty("越库类型:1-直接越库 2-分拨越库")
@Excel(name = "越库类型:1-直接越库 2-分拨越库")
private Long overStockType;
// ========== 报关相关明细字段 ==========
@ApiModelProperty("规格型号")
@Excel(name = "规格型号/ITEM")
private String specificationModel;
@ApiModelProperty("SKU码")
@Excel(name = "SKU码")
private String skuCode;
@ApiModelProperty("Invoice No.")
@Excel(name = "Invoice No.")
private String invoiceNo;
@ApiModelProperty("")
@Excel(name = "")
private BigDecimal liter;
@ApiModelProperty("尺寸")
@Excel(name = "尺寸")
private String dimensions;
@ApiModelProperty("申报单位")
@Excel(name = "申报单位")
private String declarationUnit;
@ApiModelProperty("Batch Ref NO's")
@Excel(name = "Batch Ref NO's")
private String batchRefNo;
@ApiModelProperty("Sheet Ref NO's")
@Excel(name = "Sheet Ref NO's")
private String sheetRefNo;
@ApiModelProperty("原产国")
@Excel(name = "原产国")
private String originCountry;
@ApiModelProperty("箱号/卡板号")
@Excel(name = "箱号/卡板号")
private String boxPalletNo;
@ApiModelProperty("币制")
@Excel(name = "币制")
private String currency;
@ApiModelProperty("单位")
@Excel(name = "单位")
private String unit;
@ApiModelProperty("申报数量")
@Excel(name = "申报数量")
private BigDecimal declaredQuantity;
@ApiModelProperty("箱数")
@Excel(name = "箱数")
private BigDecimal boxCount;
@ApiModelProperty("件数")
@Excel(name = "件数")
private BigDecimal pieceCount;
@ApiModelProperty("入库数量(输入大于等于0的数字,可以为小数)")
@Excel(name = "入库数量")
private BigDecimal inboundQuantity;
@ApiModelProperty("总净重(KG)")
@Excel(name = "总净重(KG)")
private BigDecimal totalNetWeight;
@ApiModelProperty("总毛重(KG)")
@Excel(name = "总毛重(KG)")
private BigDecimal totalGrossWeight;
@ApiModelProperty("总体积(CBM)")
@Excel(name = "总体积(CBM)")
private BigDecimal totalVolume;
@ApiModelProperty("总面积(SQM)")
@Excel(name = "总面积(SQM)")
private BigDecimal totalArea;
@ApiModelProperty("总价")
@Excel(name = "总价")
private BigDecimal totalPrice;
@ApiModelProperty("合同收费")
@Excel(name = "合同收费")
private BigDecimal contractFee;
@ApiModelProperty("每月仓租")
@Excel(name = "每月仓租")
private BigDecimal monthlyWarehouseFee;
@ApiModelProperty("半月仓租")
@Excel(name = "半月仓租")
private BigDecimal halfMonthWhFee;
@ApiModelProperty("折扣(%)")
@Excel(name = "折扣(%)")
private BigDecimal discountRate;
@ApiModelProperty("单体积(CBM)")
@Excel(name = "单体积(CBM)")
private BigDecimal singleVolume;
@ApiModelProperty("单毛重(KG)")
@Excel(name = "单毛重(KG)")
private BigDecimal singleGrossWeight;
@ApiModelProperty("lot编号")
@Excel(name = "lot编号")
private String lotNo;
@ApiModelProperty("oms入库单详情id")
@Excel(name = "oms入库单详情id")
private String omsInMaterialDetail;
}
@@ -0,0 +1,202 @@
package com.mhd.system.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* 库存调整记录对象 inventory_adjustment_record
*
* @author gen
* @date 2024-07-17
*/
@Data
public class InventoryAdjustmentRecord extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("库存调整记录id")
@TableId(type = IdType.AUTO)
private Long inventoryAdjustmentId;
@ApiModelProperty("组织表ID")
@Excel(name = "组织表ID")
private Long organizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty("一级组织表ID")
@Excel(name = "一级组织表ID")
private Long topOrganizationId;
@ApiModelProperty("物料库存id")
private Long materialInventoryId;
@ApiModelProperty("物料基础信息id")
@Excel(name = "物料基础信息id")
private Long materialBaseInfoId;
@ApiModelProperty("物料编码")
@Excel(name = "物料编码")
private String materialCode;
@ApiModelProperty("物料名称")
@Excel(name = "物料名称")
private String materialName;
@ApiModelProperty("物料条形码")
@Excel(name = "物料条形码")
private String barCode;
@ApiModelProperty("货主id")
@Excel(name = "货主id")
private Long shipperId;
@ApiModelProperty("货主名称")
@Excel(name = "货主名称")
private String shipperName;
@ApiModelProperty("仓库id")
@Excel(name = "仓库id")
private Long warehouseId;
@ApiModelProperty("仓库编码")
@Excel(name = "仓库编码")
private String warehouseCode;
@ApiModelProperty("仓库名称")
@Excel(name = "仓库名称")
private String warehouseName;
@ApiModelProperty("库区id")
@Excel(name = "库区id")
private Long storageSectionId;
@ApiModelProperty("库区编码")
@Excel(name = "库区编码")
private String storageCode;
@ApiModelProperty("库区名称")
@Excel(name = "库区名称")
private String storageName;
@ApiModelProperty("库位id")
@Excel(name = "库位id")
private Long storageLocationId;
@ApiModelProperty("库位编码")
@Excel(name = "库位编码")
private String storageLocationCode;
@ApiModelProperty("库位名称")
@Excel(name = "库位名称")
private String storageLocationName;
@ApiModelProperty("调整类型:0:无状态 1:数量调整 :2:状态调整 3:库存冻结")
@Excel(name = "调整类型:0:无状态 1:数量调整 :2:状态调整 3:库存冻结")
private Long adjustType;
@ApiModelProperty("调整方向:0:无状态 1:增库存 2:减库存")
@Excel(name = "调整方向:0:无状态 1:增库存 2:减库存")
private Long adjustDirection;
@ApiModelProperty("调整前状态编码")
@Excel(name = "调整前状态编码")
private String adjustBeforeStatusCode;
@ApiModelProperty("调整前状态名称")
@Excel(name = "调整前状态名称")
private String adjustBeforeStatusName;
@ApiModelProperty("调整后状态编码")
@Excel(name = "调整后状态编码")
private String adjustAfterStatusCode;
@ApiModelProperty("调整后状态名称")
@Excel(name = "调整后状态名称")
private String adjustAfterStatusName;
@ApiModelProperty("调整前库存数量")
@Excel(name = "调整前库存数量")
private BigDecimal inventoryBeforeQuantity;
@ApiModelProperty("调整前可用数量")
@Excel(name = "调整前可用数量")
private BigDecimal allocationBeforeQuantity;
@ApiModelProperty("调整前冻结数量")
@Excel(name = "调整前冻结数量")
private BigDecimal freezeBeforeQuantity;
@ApiModelProperty("调整后库存数量")
@Excel(name = "调整后库存数量")
private BigDecimal inventoryAfterQuantity;
@ApiModelProperty("调整后可用数量")
@Excel(name = "调整后可用数量")
private BigDecimal allocationAfterQuantity;
@ApiModelProperty("调整后冻结数量")
@Excel(name = "调整后冻结数量")
private BigDecimal freezeAfterQuantity;
@ApiModelProperty("调整动作")
@Excel(name = "调整动作")
private String adjustAction;
@ApiModelProperty("关联单号")
@Excel(name = "关联单号")
private String relateNo;
@ApiModelProperty("调整前净重(KG)")
@Excel(name = "调整前净重(KG)")
private BigDecimal netWeight;
@ApiModelProperty("调整前毛重(KG)")
@Excel(name = "调整前毛重(KG)")
private BigDecimal grossWeight;
@ApiModelProperty("调整前体积")
@Excel(name = "调整前体积")
private BigDecimal volume;
@ApiModelProperty("调整前面积")
@Excel(name = "调整前面积")
private BigDecimal area;
@ApiModelProperty("调整后净重(KG)")
@Excel(name = "调整后净重(KG)")
private BigDecimal adjustedNetWeight;
@ApiModelProperty("调整后毛重(KG)")
@Excel(name = "调整后毛重(KG)")
private BigDecimal adjustedGrossWeight;
@ApiModelProperty("调整后体积")
@Excel(name = "调整后体积")
private BigDecimal adjustedVolume;
@ApiModelProperty("调整后面积")
@Excel(name = "调整后面积")
private BigDecimal adjustedArea;
@ApiModelProperty("入库单号")
@Excel(name = "入库单号")
private String inOrderNumber;
@ApiModelProperty("LOT编号")
@Excel(name = "LOT编号")
private String lotNumber;
@ApiModelProperty("批次号")
@Excel(name = "批次号")
private String batchNumber;
}
@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
/** /**
@@ -66,6 +67,10 @@ public class MaterialBarCodeFeign extends BaseVOEntity{
@Excel(name = "名称") @Excel(name = "名称")
private String name; private String name;
@ApiModelProperty("数量")
@Excel(name = "数量")
private BigDecimal number;
@ApiModelProperty("备注") @ApiModelProperty("备注")
@Excel(name = "备注") @Excel(name = "备注")
private String remark; private String remark;
@@ -202,6 +202,19 @@ public class MaterialBaseInfoFeign extends BaseVOEntity{
@ApiModelProperty("法定第二单位") @ApiModelProperty("法定第二单位")
private String statutorySecondUnit; private String statutorySecondUnit;
@ApiModelProperty("是否抄码: 1-是 2-否")
@Excel(name = "是否抄码: 1-是 2-否")
private Integer copyCode;
@ApiModelProperty("货物类型:0-物料 1-半成品 2-成品")
@Excel(name = "货物类型:0-物料 1-半成品 2-成品")
private Integer goodsType;
@ApiModelProperty("毛重(kg")
@Excel(name = "毛重(kg")
private BigDecimal grossWeight;
/** /**
* 规格型号 * 规格型号
*/ */
@@ -211,5 +224,30 @@ public class MaterialBaseInfoFeign extends BaseVOEntity{
@ApiModelProperty("币制") @ApiModelProperty("币制")
private String currency; private String currency;
}
@ApiModelProperty("货主编码")
@Excel(name = "货主编码")
private String shipperCode;
@ApiModelProperty("复合条件查询 物料名称 物料编码 物料条码")
private String compoundOrQuery;
@ApiModelProperty("批次ID")
private Long batchId;
@ApiModelProperty("保额")
@Excel(name = "保额")
private BigDecimal insureAmount;
@ApiModelProperty(name = "收费标准")
private BigDecimal chargeStandard;
@ApiModelProperty(name = "单位")
private String unit;
@ApiModelProperty(name = "组织(多个用,分开)")
private String orgId;
@ApiModelProperty(name = "是否正常物料: 0-是 1-否")
private Integer isNormalMaterial;
}
@@ -0,0 +1,65 @@
package com.mhd.system.api.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.handler.ListTypeHandler;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* @author ZhouGY
* @title MaterialBaseDO
* @description: TODO
* @date 2024/7/5 10:59
**/
@EqualsAndHashCode(callSuper = true)
@Data
public class MaterialBasePO extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("货主id")
@Excel(name = "货主id")
private Long shipperId;
@ApiModelProperty("货主编码")
@Excel(name = "货主编码")
private String shipperCode;
@ApiModelProperty("货主名称")
@Excel(name = "货主名称")
private String shipperName;
@ApiModelProperty("物料编码")
@Excel(name = "物料编码")
private String materialCode;
@ApiModelProperty("物料名称")
@Excel(name = "物料名称")
private String materialName;
@ApiModelProperty("物料条形码")
@Excel(name = "物料条形码")
private String barCode;
@ApiModelProperty("物料分类编码")
@Excel(name = "物料分类编码")
@TableField(typeHandler = ListTypeHandler.class)
private List<String> materialClassifyCode;
@ApiModelProperty("物料分类名称")
@Excel(name = "物料分类名称")
@TableField(typeHandler = ListTypeHandler.class)
private List<String> materialClassifyName;
@ApiModelProperty("物料种类编码 数据字典")
@Excel(name = "物料种类编码 数据字典")
private String materialType;
@ApiModelProperty("物料种类名称 数据字典")
@Excel(name = "物料种类名称 数据字典")
private String materialTypeName;
}
@@ -82,12 +82,12 @@ public class MaterialCommonFeign extends BaseVOEntity{
private String dangerLevelName; private String dangerLevelName;
@ApiModelProperty("生产日期") @ApiModelProperty("生产日期")
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date productionTime; private Date productionTime;
@ApiModelProperty("失效日期") @ApiModelProperty("失效日期")
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@Excel(name = "失效日期", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "失效日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date expirationTime; private Date expirationTime;
@@ -0,0 +1,57 @@
package com.mhd.system.api.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(description = "物料信息查询DTO")
public class MaterialInfoDTO {
@ApiModelProperty("物料id")
private Long materialBaseInfoId;
@ApiModelProperty("物料id")
private String materialCode;
@ApiModelProperty("物料名称")
private String materialName;
@ApiModelProperty("货物类型 0-料件 1-半成品 2-成品")
private Integer goodsType;
@ApiModelProperty("组织ID")
private Long organizationId;
@ApiModelProperty("创建时间起")
private String createTimeStart;
@ApiModelProperty("创建时间止")
private String createTimeEnd;
@ApiModelProperty("更新时间起")
private String updateTimeStart;
@ApiModelProperty("更新时间止")
private String updateTimeEnd;
@ApiModelProperty("推送状态")
private Integer pushStatus;
@ApiModelProperty("推送时间起")
private String pushTimeStart;
@ApiModelProperty("推送时间止")
private String pushTimeEnd;
@ApiModelProperty(value = "页码")
private Integer pageNum = 1;
@ApiModelProperty(value = "每页数量")
private Integer pageSize = 10;
}
@@ -0,0 +1,89 @@
package com.mhd.system.api.domain;
import com.mhd.common.core.web.domain.BaseVOEntity;
import com.mhd.system.api.model.LoginUser;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* 物料库存对象 material_inventory
*
* @author gen
* @date 2024-05-29
*/
@Data
public class MaterialInventoryOmsParamDO extends BaseVOEntity {
private static final long serialVersionUID = 1L;
//库存id
private Long materialInventoryId;
//物料基础信息id
private Long materialBaseInfoId;
//物料明细ID
private Long materialDetailId;
//仓库信息参数
private Long organizationId;
private String organizationName;
private Long topOrganizationId;
//仓库ID
private Long warehouseId;
//仓库编码
private String warehouseCode;
//仓库名称
private String warehouseName;
//存储区ID
private Long storageSectionId;
//存储区编码
private String storageCode;
//存储区名称
private String storageName;
//存储位置ID
private Long storageLocationId;
//存储位置编码
private String storageLocationCode;
//存储位置名称
private String storageLocationName;
//调整数量
private BigDecimal quantity;
//净重
private BigDecimal netWeight;
//毛重
private BigDecimal grossWeight;
//体积
private BigDecimal volume;
//面积
private BigDecimal area;
//类型(1:上架2:分配3:取消分配4:出库交接5:移位6:库存调整7:库存冻结)
private String type;
private String barCode;
private String inOrderNumber;
private String lotNumber;
private String batchNumber;
private String isNew;
/** 业务关联单号(出库单号、交接单对应单号等),用于库存调整记录 relate_no;可与入库单号区分 */
private String relateNo;
private String kctzType;
private LoginUser loginUser;
private String batchNo;
//生产日期
private Date productionDate;
//过期日期
private Date expiryDate;
private String executioOrderNumber;
}
@@ -0,0 +1,217 @@
package com.mhd.system.api.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 物料库存对象 material_inventory
*
* @author gen
* @date 2024-05-29
*/
@Data
@ApiModel(value = "物料库存对象", description = "物料库存响应对象")
public class MaterialInventoryPO extends MaterialBasePO {
private static final long serialVersionUID = 1L;
@ApiModelProperty("物料库存id")
private Long materialInventoryId;
@ApiModelProperty("组织表ID")
@Excel(name = "组织表ID")
private Long organizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty("一级组织表ID")
@Excel(name = "一级组织表ID")
private Long topOrganizationId;
@ApiModelProperty("物料基础信息id")
@Excel(name = "物料基础信息id")
private Long materialBaseInfoId;
@ApiModelProperty("上架单物料明细id")
@Excel(name = "上架单物料明细id")
private Long materialDetailId;
@ApiModelProperty("仓库id")
@Excel(name = "仓库id")
private Long warehouseId;
@ApiModelProperty("仓库编码")
@Excel(name = "仓库编码")
private String warehouseCode;
@ApiModelProperty("仓库名称")
@Excel(name = "仓库名称")
private String warehouseName;
@ApiModelProperty("库区id")
@Excel(name = "库区id")
private Long storageSectionId;
@ApiModelProperty("库区编码")
@Excel(name = "库区编码")
private String storageCode;
@ApiModelProperty("库区名称")
@Excel(name = "库区名称")
private String storageName;
@ApiModelProperty("库位id")
@Excel(name = "库位id")
private Long storageLocationId;
@ApiModelProperty("库位编码")
@Excel(name = "库位编码")
private String storageLocationCode;
@ApiModelProperty("库位名称")
@Excel(name = "库位名称")
private String storageLocationName;
@ApiModelProperty("批次号")
@Excel(name = "批次号")
private String batchNumber;
@ApiModelProperty("物料状态编码")
@Excel(name = "物料状态编码")
private String materialStatusCode;
@ApiModelProperty("物料状态名称")
@Excel(name = "物料状态名称")
private String materialStatusName;
@ApiModelProperty("容器id")
@Excel(name = "容器id")
private Long containerId;
@ApiModelProperty("容器编码")
@Excel(name = "容器编码")
private String containerCode;
@ApiModelProperty("容器类型 数据字典")
@Excel(name = "容器类型 数据字典")
private String containerType;
@ApiModelProperty("容器类型名称 数据字典")
@Excel(name = "容器类型名称 数据字典")
private String containerTypeName;
@ApiModelProperty("库存数量")
@Excel(name = "库存数量")
private BigDecimal inventoryQuantity;
@ApiModelProperty("可用数量")
@Excel(name = "可用数量")
private BigDecimal allocationQuantity;
@ApiModelProperty("冻结数量")
@Excel(name = "冻结数量")
private BigDecimal freezeQuantity;
@ApiModelProperty("备注")
@Excel(name = "备注")
private String remark;
@ApiModelProperty("盘点是否可用:0-禁用 1-可用")
@Excel(name = "盘点是否可用:0-禁用 1-可用")
private Integer isAble;
@ApiModelProperty("单位")
@Excel(name = "单位")
private String unit;
@ApiModelProperty("净重(KG)")
@Excel(name = "净重(KG)")
private BigDecimal netWeight;
@ApiModelProperty("毛重(KG)")
@Excel(name = "毛重(KG)")
private BigDecimal grossWeight;
@ApiModelProperty("体积")
@Excel(name = "体积")
private BigDecimal volume;
@ApiModelProperty("面积")
@Excel(name = "面积")
private BigDecimal area;
@ApiModelProperty("Batch Ref NO's")
@Excel(name = "Batch Ref NO's")
private String batchRefNo;
@ApiModelProperty("Sheet Ref NO's")
@Excel(name = "Sheet Ref NO's")
private String sheetRefNo;
@ApiModelProperty("箱号/卡板号")
@Excel(name = "箱号/卡板号")
private String boxPalletNo;
@ApiModelProperty("扩展字段1")
@Excel(name = "扩展字段1")
private String extAttr1;
@ApiModelProperty("扩展字段2")
@Excel(name = "扩展字段2")
private String extAttr2;
@ApiModelProperty("生产日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date productionDate;
@ApiModelProperty("过期日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "过期日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date expiryDate;
@ApiModelProperty("存货日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "存货日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date inventoryDate;
@ApiModelProperty("ExtAttr3")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "ExtAttr3", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date extAttr3;
@ApiModelProperty("ExtAttr4")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "ExtAttr4", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date extAttr4;
@ApiModelProperty("物料更多属性列表(批次属性)")
private List<MaterialMoreDetailPO> materialMoreDetailList;
@ApiModelProperty("包装名")
@Excel(name = "包装名")
private String packName;
@ApiModelProperty("单位名")
@Excel(name = "单位名")
private String unitName;
}
@@ -0,0 +1,79 @@
package com.mhd.system.api.domain;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 物料更多属性明细对象 material_more_detail
*
* @author gen
* @date 2024-05-21
*/
@Data
@ApiModel(value = "物料更多属性明细对象", description = "物料更多属性明细响应对象")
public class MaterialMoreDetailPO extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("物料更多属性明细id")
private Long materialMoreDetailId;
@ApiModelProperty("组织表ID")
@Excel(name = "组织表ID")
private Long organizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty("一级组织表ID")
@Excel(name = "一级组织表ID")
private Long topOrganizationId;
@ApiModelProperty("来源单号")
@Excel(name = "来源单号")
private String orderNumber;
@ApiModelProperty("订单物料明细业务唯一id")
@Excel(name = "订单物料明细业务唯一id")
private Long materialDetailUniqueId;
@ApiModelProperty("批次id")
@Excel(name = "批次id")
private Long batchId;
@ApiModelProperty("批次详情id")
@Excel(name = "批次详情id")
private Long batchDetailId;
@ApiModelProperty("批次标签")
@Excel(name = "批次标签")
private String batchLabels;
@ApiModelProperty("输入控制: 1-必填 2-可选")
@Excel(name = "输入控制: 1-必填 2-可选")
private String inputControl;
@ApiModelProperty("属性格式:1-下拉框 2-日期 3-日期时间 4-数字 5-文本")
@Excel(name = "属性格式:1-下拉框 2-日期 3-日期时间 4-数字 5-文本")
private String attributeFormat;
@ApiModelProperty("属性选项")
@Excel(name = "属性选项")
private String attributeOption;
@ApiModelProperty("属性值")
@Excel(name = "属性值")
private String attributeValue;
@ApiModelProperty("备注")
@Excel(name = "备注")
private String remark;
}
@@ -0,0 +1,496 @@
package com.mhd.system.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* 物料明细对象 material_detail
*
* @author gen
* @date 2024-05-21
*/
@Data
public class OutMaterialDetail extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("订单物料明细id")
@TableId(type = IdType.AUTO)
private Long materialDetailId;
@ApiModelProperty("业务唯一id")
@JsonSerialize(using = ToStringSerializer.class)
private Long uniqueId;
@ApiModelProperty("组织表ID")
@Excel(name = "组织表ID")
private Long organizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty("一级组织表ID")
@Excel(name = "一级组织表ID")
private Long topOrganizationId;
@ApiModelProperty("出库单号")
@Excel(name = "出库单号")
private String outOrderNumber;
@ApiModelProperty("物料基础信息id")
@Excel(name = "物料基础信息id")
private Long materialBaseInfoId;
@ApiModelProperty("物料编码")
@Excel(name = "物料编码")
private String materialCode;
@ApiModelProperty("物料名称")
@Excel(name = "物料名称")
private String materialName;
@ApiModelProperty("物料条形码")
@Excel(name = "物料条形码")
private String barCode;
@ApiModelProperty("计划数量")
@Excel(name = "计划数量")
private BigDecimal quantity;
@ApiModelProperty("已分配数量")
@Excel(name = "已分配数量")
private BigDecimal alreadyAllocationQuantity;
@ApiModelProperty("本次分配数量")
@Excel(name = "本次分配数量")
@TableField(exist = false)
private BigDecimal nowAllocationQuantity;
@ApiModelProperty("分配数量")
@Excel(name = "分配数量")
private BigDecimal allocationQuantity;
@ApiModelProperty("拣货数量")
@Excel(name = "拣货数量")
private BigDecimal pickingQuantity;
@ApiModelProperty("复核数量")
@Excel(name = "复核数量")
private BigDecimal checkQuantity;
@ApiModelProperty("净重 单位:千克")
@Excel(name = "净重 单位:千克")
private BigDecimal weightLimit;
@ApiModelProperty("体积 单位:立方米")
@Excel(name = "体积 单位:立方米")
private BigDecimal volumeLimit;
@ApiModelProperty("包装规格id")
@Excel(name = "包装规格id")
private Long packId;
@ApiModelProperty("包装规格编码")
@Excel(name = "包装规格编码")
private String packCode;
@ApiModelProperty("包装规格名称")
@Excel(name = "包装规格名称")
private String packName;
@ApiModelProperty("包装详情id")
@Excel(name = "包装详情id")
private Long packDetailId;
@ApiModelProperty("单位代码:EA IP CS PL OT")
@Excel(name = "单位代码:EA IP CS PL OT")
private String unitCode;
@ApiModelProperty("单位名称")
@Excel(name = "单位名称")
private String unitName;
@ApiModelProperty("单位数量")
@Excel(name = "单位数量")
private BigDecimal unitNumber;
@ApiModelProperty("物料仓库控制信息id")
@Excel(name = "物料仓库控制信息id")
private Long materialWarehouseControlId;
@ApiModelProperty("是否序列号管理: 1-是 2-否")
@Excel(name = "是否序列号管理: 1-是 2-否")
private Integer serialNumberManage;
@ApiModelProperty("物料库存id")
@Excel(name = "物料库存id")
private Long materialInventoryId;
@ApiModelProperty("批次号")
@Excel(name = "批次号")
private String batchNumber;
@ApiModelProperty("物料状态编码")
@Excel(name = "物料状态编码")
private String materialStatusCode;
@ApiModelProperty("物料状态名称")
@Excel(name = "物料状态名称")
private String materialStatusName;
@ApiModelProperty("容器id")
@Excel(name = "容器id")
private Long containerId;
@ApiModelProperty("容器编码")
@Excel(name = "容器编码")
private String containerCode;
@ApiModelProperty("容器类型 数据字典")
@Excel(name = "容器类型 数据字典")
private String containerType;
@ApiModelProperty("容器类型名称 数据字典")
@Excel(name = "容器类型名称 数据字典")
private String containerTypeName;
@ApiModelProperty("分配仓库id")
private Long warehouseId;
@ApiModelProperty("分配仓库编码")
@Excel(name = "分配仓库编码")
private String warehouseCode;
@ApiModelProperty("仓库名称")
@Excel(name = "仓库名称")
private String warehouseName;
@ApiModelProperty("分配库区id")
@Excel(name = "分配库区id")
private Long storageSectionId;
@ApiModelProperty("分配库区编码")
@Excel(name = "分配库区编码")
private String storageCode;
@ApiModelProperty("分配库区名称")
@Excel(name = "分配库区名称")
private String storageName;
@ApiModelProperty("分配库位id")
@Excel(name = "分配库位id")
private Long storageLocationId;
@ApiModelProperty("分配库位编码")
@Excel(name = "分配库位编码")
private String storageLocationCode;
@ApiModelProperty("分配库位名称")
@Excel(name = "分配库位名称")
private String storageLocationName;
@ApiModelProperty("层级深度,从一级开始递增")
private Integer level;
@ApiModelProperty("父级唯一Id")
private Long parentUniqueId;
@ApiModelProperty("是否允许修改: 1-是 2-否 分配后 不再支持修改")
@Excel(name = "是否允许修改: 1-是 2-否")
private Integer allowModify;
@ApiModelProperty("是否生成拣货单: 1-是 2-否")
@Excel(name = "是否生成拣货单: 1-是 2-否")
private Integer genPickingOrder;
@ApiModelProperty("备注")
@Excel(name = "备注")
private String remark;
@ApiModelProperty("越库单id")
private Long overStockId;
@ApiModelProperty("越库单状态 0:无状态 1:处理中 2:越库完成")
@Excel(name = "越库单状态 0:无状态 1:处理中 2:越库完成")
private Integer overStockStatus;
@ApiModelProperty("越库类型:1-直接越库 2-分拨越库")
@Excel(name = "越库类型:1-直接越库 2-分拨越库")
private Long overStockType;
/**
* 商品名称
*/
@ApiModelProperty("商品名称")
@Excel(name = "商品名称")
private String commodityName;
/**
* 商品编码
*/
@ApiModelProperty("商品编码")
@Excel(name = "商品编码")
private String commodityNo;
/**
* 料号
*/
@ApiModelProperty("料号")
@Excel(name = "料号")
private String materialNo;
/**
* 规格型号
*/
@ApiModelProperty("规格型号")
@Excel(name = "规格型号")
private String specificationModel;
/**
* 商品SKU码
*/
@ApiModelProperty("商品SKU码")
@Excel(name = "商品SKU码")
private String skucode;
/**
* Invoice No
*/
@ApiModelProperty("Invoice No")
@Excel(name = "Invoice No")
private String invoiceNo;
/**
* 升
*/
@ApiModelProperty("")
@Excel(name = "")
private String liter;
/**
* 尺寸
*/
@ApiModelProperty("尺寸")
@Excel(name = "尺寸")
private String size;
/**
* 申报单位
*/
@ApiModelProperty("申报单位")
@Excel(name = "申报单位")
private String declareUnit;
/**
* Batch Ref NOs
*/
@ApiModelProperty("Batch Ref NOs")
@Excel(name = "Batch Ref NOs")
private String batchRefNo;
/**
* Sheet Ref NOs
*/
@ApiModelProperty("Sheet Ref NOs")
@Excel(name = "Sheet Ref NOs")
private String sheetRefNo;
/**
* 原产国
*/
@ApiModelProperty("原产国")
@Excel(name = "原产国")
private String countryOfOrigin;
/**
* 箱号/卡板号
*/
@ApiModelProperty("箱号/卡板号")
@Excel(name = "箱号/卡板号")
private String boxPalletNo;
/**
* 币制
*/
@ApiModelProperty("币制")
@Excel(name = "币制")
private String currency;
/**
* 申报数量
*/
@ApiModelProperty("申报数量")
@Excel(name = "申报数量")
private BigDecimal declareQuantity;
/**
* 箱数
*/
@ApiModelProperty("箱数")
@Excel(name = "箱数")
private BigDecimal caseCount;
/**
* 件数
*/
@ApiModelProperty("件数")
@Excel(name = "件数")
private BigDecimal pieceCount;
/**
* 出库数量
*/
@ApiModelProperty("出库数量")
@Excel(name = "出库数量")
private BigDecimal outboundQuantity;
/**
* 总净重(KG)
*/
@ApiModelProperty("总净重(KG)")
@Excel(name = "总净重(KG)")
private BigDecimal totalNetWeight;
/**
* 总毛重(KG)
*/
@ApiModelProperty("总毛重(KG)")
@Excel(name = "总毛重(KG)")
private BigDecimal totalGrossWeight;
/**
* 总体积(CBM)
*/
@ApiModelProperty("总体积(CBM)")
@Excel(name = "总体积(CBM)")
private BigDecimal totalVolume;
/**
* 总面积(SQM)
*/
@ApiModelProperty("总面积(SQM)")
@Excel(name = "总面积(SQM)")
private BigDecimal totalArea;
/**
* 总价
*/
@ApiModelProperty("总价")
@Excel(name = "总价")
private BigDecimal totalAmount;
/**
* 单位
*/
@ApiModelProperty("单位")
@Excel(name = "单位")
private String unit;
@ApiModelProperty("扩展属性1")
@Excel(name = "扩展属性1")
@TableField("ext_attr_1")
private String extAttr1;
@ApiModelProperty("扩展属性2")
@Excel(name = "扩展属性2")
@TableField("ext_attr_2")
private String extAttr2;
@ApiModelProperty("生产日期")
@Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date productionDate;
@ApiModelProperty("过期日期")
@Excel(name = "过期日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date expiryDate;
@ApiModelProperty("存货日期")
@Excel(name = "存货日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date inventoryDate;
@ApiModelProperty("扩展属性3")
@Excel(name = "扩展属性3", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
@TableField("ext_attr_3")
private Date extAttr3;
@ApiModelProperty("扩展属性4")
@Excel(name = "扩展属性4", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
@TableField("ext_attr_4")
private Date extAttr4;
/**
* 库存数量(仅用于前端展示,从material_inventory表中带出)
*/
@ApiModelProperty("分配时库存数量")
private BigDecimal inventoryQuantity;
@TableField(exist = false)
private BigDecimal actualQuantity;
@ApiModelProperty("复核总净重(KG)")
@Excel(name = "复核总净重(KG)")
private BigDecimal checkNetWeight;
@ApiModelProperty("复核总毛重(KG)")
@Excel(name = "复核总毛重(KG)")
private BigDecimal checkGrossWeight;
@ApiModelProperty("复核总体积(CBM)")
@Excel(name = "复核总体积(CBM)")
private BigDecimal checkVolume;
@ApiModelProperty("复核总面积(SQM)")
@Excel(name = "复核总面积(SQM)")
private BigDecimal checkArea;
@ApiModelProperty("是否已分配")
@Excel(name = "是否已分配")
private String isAllocated;
@ApiModelProperty("合同收费")
@Excel(name = "合同收费")
private BigDecimal contractFee;
@ApiModelProperty("每月仓租")
@Excel(name = "每月仓租")
private BigDecimal monthlyWarehouseFee;
@ApiModelProperty("半月仓租")
@Excel(name = "半月仓租")
private BigDecimal halfMonthWhFee;
@ApiModelProperty("折扣(%)")
@Excel(name = "折扣(%)")
private BigDecimal discountRate;
@ApiModelProperty("单体积(CBM)")
@Excel(name = "单体积(CBM)")
private BigDecimal singleVolume;
@ApiModelProperty("单毛重(KG)")
@Excel(name = "单毛重(KG)")
private BigDecimal singleGrossWeight;
@ApiModelProperty("lot编号")
@Excel(name = "lot编号")
private String lotNo;
@ApiModelProperty("入库单号")
@Excel(name = "入库单号")
private String inOrderNumber;
@ApiModelProperty("库存单位")
@Excel(name = "库存单位")
private String stockUnit;
@ApiModelProperty("库存数量")
@Excel(name = "库存数量")
private BigDecimal stockQuantity;
}
@@ -0,0 +1,496 @@
package com.mhd.system.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* 物料明细对象 material_detail
*
* @author gen
* @date 2024-05-21
*/
@Data
public class OutMaterialDetailTZPD extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("订单物料明细id")
@TableId(type = IdType.AUTO)
private Long materialDetailId;
@ApiModelProperty("业务唯一id")
@JsonSerialize(using = ToStringSerializer.class)
private Long uniqueId;
@ApiModelProperty("组织表ID")
@Excel(name = "组织表ID")
private Long organizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty("一级组织表ID")
@Excel(name = "一级组织表ID")
private Long topOrganizationId;
@ApiModelProperty("出库单号")
@Excel(name = "出库单号")
private String outOrderNumber;
@ApiModelProperty("物料基础信息id")
@Excel(name = "物料基础信息id")
private Long materialBaseInfoId;
@ApiModelProperty("物料编码")
@Excel(name = "物料编码")
private String materialCode;
@ApiModelProperty("物料名称")
@Excel(name = "物料名称")
private String materialName;
@ApiModelProperty("物料条形码")
@Excel(name = "物料条形码")
private String barCode;
@ApiModelProperty("计划数量")
@Excel(name = "计划数量")
private BigDecimal quantity;
@ApiModelProperty("已分配数量")
@Excel(name = "已分配数量")
private BigDecimal alreadyAllocationQuantity;
@ApiModelProperty("本次分配数量")
@Excel(name = "本次分配数量")
@TableField(exist = false)
private BigDecimal nowAllocationQuantity;
@ApiModelProperty("分配数量")
@Excel(name = "分配数量")
private BigDecimal allocationQuantity;
@ApiModelProperty("拣货数量")
@Excel(name = "拣货数量")
private BigDecimal pickingQuantity;
@ApiModelProperty("复核数量")
@Excel(name = "复核数量")
private BigDecimal checkQuantity;
@ApiModelProperty("净重 单位:千克")
@Excel(name = "净重 单位:千克")
private BigDecimal weightLimit;
@ApiModelProperty("体积 单位:立方米")
@Excel(name = "体积 单位:立方米")
private BigDecimal volumeLimit;
@ApiModelProperty("包装规格id")
@Excel(name = "包装规格id")
private Long packId;
@ApiModelProperty("包装规格编码")
@Excel(name = "包装规格编码")
private String packCode;
@ApiModelProperty("包装规格名称")
@Excel(name = "包装规格名称")
private String packName;
@ApiModelProperty("包装详情id")
@Excel(name = "包装详情id")
private Long packDetailId;
@ApiModelProperty("单位代码:EA IP CS PL OT")
@Excel(name = "单位代码:EA IP CS PL OT")
private String unitCode;
@ApiModelProperty("单位名称")
@Excel(name = "单位名称")
private String unitName;
@ApiModelProperty("单位数量")
@Excel(name = "单位数量")
private BigDecimal unitNumber;
@ApiModelProperty("物料仓库控制信息id")
@Excel(name = "物料仓库控制信息id")
private Long materialWarehouseControlId;
@ApiModelProperty("是否序列号管理: 1-是 2-否")
@Excel(name = "是否序列号管理: 1-是 2-否")
private Integer serialNumberManage;
@ApiModelProperty("物料库存id")
@Excel(name = "物料库存id")
private Long materialInventoryId;
@ApiModelProperty("批次号")
@Excel(name = "批次号")
private String batchNumber;
@ApiModelProperty("物料状态编码")
@Excel(name = "物料状态编码")
private String materialStatusCode;
@ApiModelProperty("物料状态名称")
@Excel(name = "物料状态名称")
private String materialStatusName;
@ApiModelProperty("容器id")
@Excel(name = "容器id")
private Long containerId;
@ApiModelProperty("容器编码")
@Excel(name = "容器编码")
private String containerCode;
@ApiModelProperty("容器类型 数据字典")
@Excel(name = "容器类型 数据字典")
private String containerType;
@ApiModelProperty("容器类型名称 数据字典")
@Excel(name = "容器类型名称 数据字典")
private String containerTypeName;
@ApiModelProperty("分配仓库id")
private Long warehouseId;
@ApiModelProperty("分配仓库编码")
@Excel(name = "分配仓库编码")
private String warehouseCode;
@ApiModelProperty("仓库名称")
@Excel(name = "仓库名称")
private String warehouseName;
@ApiModelProperty("分配库区id")
@Excel(name = "分配库区id")
private Long storageSectionId;
@ApiModelProperty("分配库区编码")
@Excel(name = "分配库区编码")
private String storageCode;
@ApiModelProperty("分配库区名称")
@Excel(name = "分配库区名称")
private String storageName;
@ApiModelProperty("分配库位id")
@Excel(name = "分配库位id")
private Long storageLocationId;
@ApiModelProperty("分配库位编码")
@Excel(name = "分配库位编码")
private String storageLocationCode;
@ApiModelProperty("分配库位名称")
@Excel(name = "分配库位名称")
private String storageLocationName;
@ApiModelProperty("层级深度,从一级开始递增")
private Integer level;
@ApiModelProperty("父级唯一Id")
private Long parentUniqueId;
@ApiModelProperty("是否允许修改: 1-是 2-否 分配后 不再支持修改")
@Excel(name = "是否允许修改: 1-是 2-否")
private Integer allowModify;
@ApiModelProperty("是否生成拣货单: 1-是 2-否")
@Excel(name = "是否生成拣货单: 1-是 2-否")
private Integer genPickingOrder;
@ApiModelProperty("备注")
@Excel(name = "备注")
private String remark;
@ApiModelProperty("越库单id")
private Long overStockId;
@ApiModelProperty("越库单状态 0:无状态 1:处理中 2:越库完成")
@Excel(name = "越库单状态 0:无状态 1:处理中 2:越库完成")
private Integer overStockStatus;
@ApiModelProperty("越库类型:1-直接越库 2-分拨越库")
@Excel(name = "越库类型:1-直接越库 2-分拨越库")
private Long overStockType;
/**
* 商品名称
*/
@ApiModelProperty("商品名称")
@Excel(name = "商品名称")
private String commodityName;
/**
* 商品编码
*/
@ApiModelProperty("商品编码")
@Excel(name = "商品编码")
private String commodityNo;
/**
* 料号
*/
@ApiModelProperty("料号")
@Excel(name = "料号")
private String materialNo;
/**
* 规格型号
*/
@ApiModelProperty("规格型号")
@Excel(name = "规格型号")
private String specificationModel;
/**
* 商品SKU码
*/
@ApiModelProperty("商品SKU码")
@Excel(name = "商品SKU码")
private String skucode;
/**
* Invoice No
*/
@ApiModelProperty("Invoice No")
@Excel(name = "Invoice No")
private String invoiceNo;
/**
* 升
*/
@ApiModelProperty("")
@Excel(name = "")
private String liter;
/**
* 尺寸
*/
@ApiModelProperty("尺寸")
@Excel(name = "尺寸")
private String size;
/**
* 申报单位
*/
@ApiModelProperty("申报单位")
@Excel(name = "申报单位")
private String declareUnit;
/**
* Batch Ref NOs
*/
@ApiModelProperty("Batch Ref NOs")
@Excel(name = "Batch Ref NOs")
private String batchRefNo;
/**
* Sheet Ref NOs
*/
@ApiModelProperty("Sheet Ref NOs")
@Excel(name = "Sheet Ref NOs")
private String sheetRefNo;
/**
* 原产国
*/
@ApiModelProperty("原产国")
@Excel(name = "原产国")
private String countryOfOrigin;
/**
* 箱号/卡板号
*/
@ApiModelProperty("箱号/卡板号")
@Excel(name = "箱号/卡板号")
private String boxPalletNo;
/**
* 币制
*/
@ApiModelProperty("币制")
@Excel(name = "币制")
private String currency;
/**
* 申报数量
*/
@ApiModelProperty("申报数量")
@Excel(name = "申报数量")
private BigDecimal declareQuantity;
/**
* 箱数
*/
@ApiModelProperty("箱数")
@Excel(name = "箱数")
private BigDecimal caseCount;
/**
* 件数
*/
@ApiModelProperty("件数")
@Excel(name = "件数")
private BigDecimal pieceCount;
/**
* 出库数量
*/
@ApiModelProperty("出库数量")
@Excel(name = "出库数量")
private BigDecimal outboundQuantity;
/**
* 总净重(KG)
*/
@ApiModelProperty("总净重(KG)")
@Excel(name = "总净重(KG)")
private BigDecimal totalNetWeight;
/**
* 总毛重(KG)
*/
@ApiModelProperty("总毛重(KG)")
@Excel(name = "总毛重(KG)")
private BigDecimal totalGrossWeight;
/**
* 总体积(CBM)
*/
@ApiModelProperty("总体积(CBM)")
@Excel(name = "总体积(CBM)")
private BigDecimal totalVolume;
/**
* 总面积(SQM)
*/
@ApiModelProperty("总面积(SQM)")
@Excel(name = "总面积(SQM)")
private BigDecimal totalArea;
/**
* 总价
*/
@ApiModelProperty("总价")
@Excel(name = "总价")
private BigDecimal totalAmount;
/**
* 单位
*/
@ApiModelProperty("单位")
@Excel(name = "单位")
private String unit;
@ApiModelProperty("扩展属性1")
@Excel(name = "扩展属性1")
@TableField("ext_attr_1")
private String extAttr1;
@ApiModelProperty("扩展属性2")
@Excel(name = "扩展属性2")
@TableField("ext_attr_2")
private String extAttr2;
@ApiModelProperty("生产日期")
@Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date productionDate;
@ApiModelProperty("过期日期")
@Excel(name = "过期日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date expiryDate;
@ApiModelProperty("存货日期")
@Excel(name = "存货日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date inventoryDate;
@ApiModelProperty("扩展属性3")
@Excel(name = "扩展属性3", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
@TableField("ext_attr_3")
private Date extAttr3;
@ApiModelProperty("扩展属性4")
@Excel(name = "扩展属性4", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
@TableField("ext_attr_4")
private Date extAttr4;
/**
* 库存数量(仅用于前端展示,从material_inventory表中带出)
*/
@ApiModelProperty("分配时库存数量")
private BigDecimal inventoryQuantity;
@TableField(exist = false)
private BigDecimal actualQuantity;
@ApiModelProperty("复核总净重(KG)")
@Excel(name = "复核总净重(KG)")
private BigDecimal checkNetWeight;
@ApiModelProperty("复核总毛重(KG)")
@Excel(name = "复核总毛重(KG)")
private BigDecimal checkGrossWeight;
@ApiModelProperty("复核总体积(CBM)")
@Excel(name = "复核总体积(CBM)")
private BigDecimal checkVolume;
@ApiModelProperty("复核总面积(SQM)")
@Excel(name = "复核总面积(SQM)")
private BigDecimal checkArea;
@ApiModelProperty("是否已分配")
@Excel(name = "是否已分配")
private String isAllocated;
@ApiModelProperty("合同收费")
@Excel(name = "合同收费")
private BigDecimal contractFee;
@ApiModelProperty("每月仓租")
@Excel(name = "每月仓租")
private BigDecimal monthlyWarehouseFee;
@ApiModelProperty("半月仓租")
@Excel(name = "半月仓租")
private BigDecimal halfMonthWhFee;
@ApiModelProperty("折扣(%)")
@Excel(name = "折扣(%)")
private BigDecimal discountRate;
@ApiModelProperty("单体积(CBM)")
@Excel(name = "单体积(CBM)")
private BigDecimal singleVolume;
@ApiModelProperty("单毛重(KG)")
@Excel(name = "单毛重(KG)")
private BigDecimal singleGrossWeight;
@ApiModelProperty("lot编号")
@Excel(name = "lot编号")
private String lotNo;
@ApiModelProperty("入库单号")
@Excel(name = "入库单号")
private String inOrderNumber;
@ApiModelProperty("库存单位")
@Excel(name = "库存单位")
private String stockUnit;
@ApiModelProperty("库存数量")
@Excel(name = "库存数量")
private BigDecimal stockQuantity;
}
@@ -0,0 +1,42 @@
package com.mhd.system.api.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
* OMS→WMS 批量签名 Feign DTO
*
* <p>OMS端批量签名时,通过此DTO调用WMS的批量签名接口,
* 更新WMS stock_in_order / stock_out_order 表的签名字段。</p>
*/
@Data
public class SignatureBatchFeignDTO {
@ApiModelProperty("入库单ID列表")
private List<Long> inOrderIds;
@ApiModelProperty("出库单ID列表")
private List<Long> outOrderIds;
@ApiModelProperty("签名状态:2-已签名")
private Integer signatureStatus;
@ApiModelProperty("签名时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date signatureTime;
@ApiModelProperty("手写签名图片(base64或URL,单张)")
private String signaturePic;
@ApiModelProperty("拍照取证图片(逗号分隔多张URL")
private String evidencePics;
@ApiModelProperty("签名备注")
private String signatureRemark;
}
@@ -0,0 +1,367 @@
package com.mhd.system.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
/**
* 入库单对象 stock_in_order
*
* @author gen
* @date 2024-05-21
*/
@Data
public class StockInOrder extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("入库单id")
@TableId(type = IdType.AUTO)
private Long inOrderId;
@ApiModelProperty("组织表ID")
@Excel(name = "组织表ID")
private Long organizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty("一级组织表ID")
@Excel(name = "一级组织表ID")
private Long topOrganizationId;
@ApiModelProperty("仓库id")
@Excel(name = "仓库id")
private Long warehouseId;
@ApiModelProperty("仓库编码")
@Excel(name = "仓库编码")
private String warehouseCode;
@ApiModelProperty("仓库名称")
@Excel(name = "仓库名称")
private String warehouseName;
@ApiModelProperty("通知单号")
@Excel(name = "通知单号")
private String noticeNumber;
@ApiModelProperty("入库单号")
@Excel(name = "入库单号")
private String inOrderNumber;
@ApiModelProperty("入库状态: 1-已创建 2-已审核 3-收货中 4-上架中 5-已入库 6-已取消 7-已关闭")
@Excel(name = "入库状态: 1-已创建 2-已审核 3-收货中 4-上架中 5-已入库 6-已取消 7-已关闭")
private Integer status;
@ApiModelProperty("入库单审核状态: 1-未审核 2-审核不通过 3-审核通过")
@Excel(name = "入库单审核状态: 1-未审核 2-审核不通过 3-审核通过")
private Integer auditStatus;
@ApiModelProperty("入库单审核备注")
@Excel(name = "入库单审核备注")
private String auditRemark;
@ApiModelProperty("入库单审核人")
@Excel(name = "入库单审核人")
private Long auditBy;
@ApiModelProperty("入库单审核人姓名")
@Excel(name = "入库单审核人姓名")
private String auditByName;
@ApiModelProperty("入库单审核时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "入库单审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date auditTime;
@ApiModelProperty("货主id")
@Excel(name = "货主id")
private Long shipperId;
@ApiModelProperty("货主编码")
@Excel(name = "货主编码")
private String shipperCode;
@ApiModelProperty("货主名称")
@Excel(name = "货主名称")
private String shipperName;
@ApiModelProperty("入库单类型编码")
@Excel(name = "入库单类型编码")
private String orderTypeCode;
@ApiModelProperty("入库单类型名称")
@Excel(name = "入库单类型名称")
private String orderTypeName;
@ApiModelProperty("供应商id")
@Excel(name = "供应商id")
private Long supplierId;
@ApiModelProperty("供应商编码")
@Excel(name = "供应商编码")
private String supplierCode;
@ApiModelProperty("供应商名称")
@Excel(name = "供应商名称")
private String supplierName;
@ApiModelProperty("预计到货时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "预计到货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date expectTime;
@ApiModelProperty("供应链订单号")
@Excel(name = "供应链订单号")
private String supplyChainNumber;
@ApiModelProperty("优先级别编码")
@Excel(name = "优先级别编码")
private String priorityLevelCode;
@ApiModelProperty("优先级别名称")
@Excel(name = "优先级别名称")
private String priorityLevelName;
@ApiModelProperty("是否直接入库: 1-是 2-否")
@Excel(name = "是否直接入库: 1-是 2-否")
private Integer directWarehouse;
@ApiModelProperty("附件url")
@Excel(name = "附件url")
private String annexUrl;
@ApiModelProperty("物料种数")
@Excel(name = "物料种数")
private Integer materialQuantity;
@ApiModelProperty("计划数量")
@Excel(name = "计划数量")
private BigDecimal quantity;
@ApiModelProperty("净重 单位:千克")
@Excel(name = "净重 单位:千克")
private BigDecimal weightLimit;
@ApiModelProperty("体积 单位:立方米")
@Excel(name = "体积 单位:立方米")
private BigDecimal volumeLimit;
@ApiModelProperty("是否取消订单: 1-是 2-否")
@Excel(name = "是否取消订单: 1-是 2-否")
private Integer cancelOrder;
@ApiModelProperty("取消订单备注")
@Excel(name = "取消订单备注")
private String cancelRemark;
@ApiModelProperty("取消订单人")
@Excel(name = "取消订单人")
private Long cancelBy;
@ApiModelProperty("取消订单人姓名")
@Excel(name = "取消订单人姓名")
private String cancelByName;
@ApiModelProperty("取消订单时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "取消订单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date cancelTime;
@ApiModelProperty("是否关闭订单: 1-是 2-否")
@Excel(name = "是否关闭订单: 1-是 2-否")
private Integer closeOrder;
@ApiModelProperty("关闭订单备注")
@Excel(name = "关闭订单备注")
private String closeRemark;
@ApiModelProperty("关闭订单人")
@Excel(name = "关闭订单人")
private Long closeBy;
@ApiModelProperty("关闭订单人姓名")
@Excel(name = "关闭订单人姓名")
private String closeByName;
@ApiModelProperty("关闭订单时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "关闭订单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date closeTime;
@ApiModelProperty("入库单来源: 1-正常录入 2-通知单生成 3-无单收货")
@Excel(name = "入库单来源: 1-正常录入 2-通知单生成 3-无单收货")
private Integer orderSource;
@ApiModelProperty("备注")
@Excel(name = "备注")
private String remark;
@ApiModelProperty("调度单号")
private String mobilizeCode;
@ApiModelProperty("越库单id")
private Long overStockId;
@ApiModelProperty("越库单状态 0:无状态 1:处理中 2:越库完成")
@Excel(name = "越库单状态 0:无状态 1:处理中 2:越库完成")
private Integer overStockStatus;
@ApiModelProperty("越库类型:1-直接越库 2-分拨越库")
@Excel(name = "越库类型:1-直接越库 2-分拨越库")
private Long overStockType;
// ========== 报关相关字段 ==========
@ApiModelProperty("To")
@Excel(name = "To")
@TableField(value = "\"TO\"")
private String to;
@ApiModelProperty("联系人")
@Excel(name = "联系人")
private String contactPerson;
@ApiModelProperty("车型及车牌")
@Excel(name = "车型及车牌")
private String vehicleInfo;
@ApiModelProperty("委托编号NO")
@Excel(name = "委托编号NO")
private String consignmentNo;
@ApiModelProperty("Tel")
@Excel(name = "Tel")
private String tel;
@ApiModelProperty("司机签名")
@Excel(name = "司机签名")
private String driverSignature;
@ApiModelProperty("Fax")
@Excel(name = "Fax")
private String fax;
@ApiModelProperty("申报地关区")
@Excel(name = "申报地关区")
private String declarationArea;
@ApiModelProperty("生产商")
@Excel(name = "生产商")
private String manufacturer;
@ApiModelProperty("报关员姓名及联系方式")
@Excel(name = "报关员姓名及联系方式")
private String customsBrokerInfo;
@ApiModelProperty("送货地址")
@Excel(name = "送货地址")
private String deliveryAddress;
@ApiModelProperty("进出境关别")
@Excel(name = "进出境关别")
private String entryExitCustoms;
@ApiModelProperty("起运/运抵国(地区)")
@Excel(name = "起运/运抵国(地区)")
private String originDestinationCountry;
@ApiModelProperty("承运商")
@Excel(name = "承运商")
private String carrier;
@ApiModelProperty("柜号")
@Excel(name = "柜号")
private String containerNo;
@ApiModelProperty("运输方式")
@Excel(name = "运输方式")
private String transportMethod;
@ApiModelProperty("监管方式")
@Excel(name = "监管方式")
private String supervisionMethod;
@ApiModelProperty("海关是否查验货物")
@Excel(name = "海关是否查验货物")
private Integer customsInspection;
@ApiModelProperty("是否需要报关")
@Excel(name = "是否需要报关")
private Integer needCustomsDeclaration;
@ApiModelProperty("是否需要运输")
@Excel(name = "是否需要运输")
private Integer needTransport;
@ApiModelProperty("入仓日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "入仓日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date warehouseDate;
@ApiModelProperty("完成时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date completionTime;
@ApiModelProperty("下单日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "下单日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date orderDate;
@ApiModelProperty("业务单号")
@Excel(name = "业务单号")
private String businessOrderNo;
@ApiModelProperty("业务类型")
@Excel(name = "业务类型")
private String businessType;
@ApiModelProperty("制单人")
@Excel(name = "制单人")
private String documentCreator;
@ApiModelProperty("制单人名称")
@Excel(name = "制单人名称")
private String documentCreatorName;
@ApiModelProperty("制单日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "制单日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date documentDate;
@ApiModelProperty("订单状态")
@Excel(name = "订单状态")
private String orderStatus;
@ApiModelProperty("oms入库单id")
@Excel(name = "oms入库单id")
private String omsStockInOrderId;
@ApiModelProperty("结算币种")
private String settlementCurrency;
@ApiModelProperty("业务员ID")
private String salesmanId;
@ApiModelProperty("业务员名称")
private String salesmanName;
@Excel(name = "附件url")
private String pictureUrl;
}
@@ -0,0 +1,365 @@
package com.mhd.system.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
/**
* 入库单对象 stock_in_order
*
* @author gen
* @date 2024-05-21
*/
@Data
public class StockInOrderTZPD extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("入库单id")
@TableId(type = IdType.AUTO)
private Long inOrderId;
@ApiModelProperty("组织表ID")
@Excel(name = "组织表ID")
private Long organizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty("一级组织表ID")
@Excel(name = "一级组织表ID")
private Long topOrganizationId;
@ApiModelProperty("仓库id")
@Excel(name = "仓库id")
private Long warehouseId;
@ApiModelProperty("仓库编码")
@Excel(name = "仓库编码")
private String warehouseCode;
@ApiModelProperty("仓库名称")
@Excel(name = "仓库名称")
private String warehouseName;
@ApiModelProperty("通知单号")
@Excel(name = "通知单号")
private String noticeNumber;
@ApiModelProperty("入库单号")
@Excel(name = "入库单号")
private String inOrderNumber;
@ApiModelProperty("入库状态: 1-已创建 2-已审核 3-收货中 4-上架中 5-已入库 6-已取消 7-已关闭")
@Excel(name = "入库状态: 1-已创建 2-已审核 3-收货中 4-上架中 5-已入库 6-已取消 7-已关闭")
private Integer status;
@ApiModelProperty("入库单审核状态: 1-未审核 2-审核不通过 3-审核通过")
@Excel(name = "入库单审核状态: 1-未审核 2-审核不通过 3-审核通过")
private Integer auditStatus;
@ApiModelProperty("入库单审核备注")
@Excel(name = "入库单审核备注")
private String auditRemark;
@ApiModelProperty("入库单审核人")
@Excel(name = "入库单审核人")
private Long auditBy;
@ApiModelProperty("入库单审核人姓名")
@Excel(name = "入库单审核人姓名")
private String auditByName;
@ApiModelProperty("入库单审核时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "入库单审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date auditTime;
@ApiModelProperty("货主id")
@Excel(name = "货主id")
private Long shipperId;
@ApiModelProperty("货主编码")
@Excel(name = "货主编码")
private String shipperCode;
@ApiModelProperty("货主名称")
@Excel(name = "货主名称")
private String shipperName;
@ApiModelProperty("入库单类型编码")
@Excel(name = "入库单类型编码")
private String orderTypeCode;
@ApiModelProperty("入库单类型名称")
@Excel(name = "入库单类型名称")
private String orderTypeName;
@ApiModelProperty("供应商id")
@Excel(name = "供应商id")
private Long supplierId;
@ApiModelProperty("供应商编码")
@Excel(name = "供应商编码")
private String supplierCode;
@ApiModelProperty("供应商名称")
@Excel(name = "供应商名称")
private String supplierName;
@ApiModelProperty("预计到货时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "预计到货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date expectTime;
@ApiModelProperty("供应链订单号")
@Excel(name = "供应链订单号")
private String supplyChainNumber;
@ApiModelProperty("优先级别编码")
@Excel(name = "优先级别编码")
private String priorityLevelCode;
@ApiModelProperty("优先级别名称")
@Excel(name = "优先级别名称")
private String priorityLevelName;
@ApiModelProperty("是否直接入库: 1-是 2-否")
@Excel(name = "是否直接入库: 1-是 2-否")
private Integer directWarehouse;
@ApiModelProperty("附件url")
@Excel(name = "附件url")
private String annexUrl;
@ApiModelProperty("物料种数")
@Excel(name = "物料种数")
private Integer materialQuantity;
@ApiModelProperty("计划数量")
@Excel(name = "计划数量")
private BigDecimal quantity;
@ApiModelProperty("净重 单位:千克")
@Excel(name = "净重 单位:千克")
private BigDecimal weightLimit;
@ApiModelProperty("体积 单位:立方米")
@Excel(name = "体积 单位:立方米")
private BigDecimal volumeLimit;
@ApiModelProperty("是否取消订单: 1-是 2-否")
@Excel(name = "是否取消订单: 1-是 2-否")
private Integer cancelOrder;
@ApiModelProperty("取消订单备注")
@Excel(name = "取消订单备注")
private String cancelRemark;
@ApiModelProperty("取消订单人")
@Excel(name = "取消订单人")
private Long cancelBy;
@ApiModelProperty("取消订单人姓名")
@Excel(name = "取消订单人姓名")
private String cancelByName;
@ApiModelProperty("取消订单时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "取消订单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date cancelTime;
@ApiModelProperty("是否关闭订单: 1-是 2-否")
@Excel(name = "是否关闭订单: 1-是 2-否")
private Integer closeOrder;
@ApiModelProperty("关闭订单备注")
@Excel(name = "关闭订单备注")
private String closeRemark;
@ApiModelProperty("关闭订单人")
@Excel(name = "关闭订单人")
private Long closeBy;
@ApiModelProperty("关闭订单人姓名")
@Excel(name = "关闭订单人姓名")
private String closeByName;
@ApiModelProperty("关闭订单时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "关闭订单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date closeTime;
@ApiModelProperty("入库单来源: 1-正常录入 2-通知单生成 3-无单收货")
@Excel(name = "入库单来源: 1-正常录入 2-通知单生成 3-无单收货")
private Integer orderSource;
@ApiModelProperty("备注")
@Excel(name = "备注")
private String remark;
@ApiModelProperty("调度单号")
private String mobilizeCode;
@ApiModelProperty("越库单id")
private Long overStockId;
@ApiModelProperty("越库单状态 0:无状态 1:处理中 2:越库完成")
@Excel(name = "越库单状态 0:无状态 1:处理中 2:越库完成")
private Integer overStockStatus;
@ApiModelProperty("越库类型:1-直接越库 2-分拨越库")
@Excel(name = "越库类型:1-直接越库 2-分拨越库")
private Long overStockType;
// ========== 报关相关字段 ==========
@ApiModelProperty("To")
@Excel(name = "To")
@TableField(value = "\"TO\"")
private String to;
@ApiModelProperty("联系人")
@Excel(name = "联系人")
private String contactPerson;
@ApiModelProperty("车型及车牌")
@Excel(name = "车型及车牌")
private String vehicleInfo;
@ApiModelProperty("委托编号NO")
@Excel(name = "委托编号NO")
private String consignmentNo;
@ApiModelProperty("Tel")
@Excel(name = "Tel")
private String tel;
@ApiModelProperty("司机签名")
@Excel(name = "司机签名")
private String driverSignature;
@ApiModelProperty("Fax")
@Excel(name = "Fax")
private String fax;
@ApiModelProperty("申报地关区")
@Excel(name = "申报地关区")
private String declarationArea;
@ApiModelProperty("生产商")
@Excel(name = "生产商")
private String manufacturer;
@ApiModelProperty("报关员姓名及联系方式")
@Excel(name = "报关员姓名及联系方式")
private String customsBrokerInfo;
@ApiModelProperty("送货地址")
@Excel(name = "送货地址")
private String deliveryAddress;
@ApiModelProperty("进出境关别")
@Excel(name = "进出境关别")
private String entryExitCustoms;
@ApiModelProperty("起运/运抵国(地区)")
@Excel(name = "起运/运抵国(地区)")
private String originDestinationCountry;
@ApiModelProperty("承运商")
@Excel(name = "承运商")
private String carrier;
@ApiModelProperty("柜号")
@Excel(name = "柜号")
private String containerNo;
@ApiModelProperty("运输方式")
@Excel(name = "运输方式")
private String transportMethod;
@ApiModelProperty("监管方式")
@Excel(name = "监管方式")
private String supervisionMethod;
@ApiModelProperty("海关是否查验货物")
@Excel(name = "海关是否查验货物")
private Integer customsInspection;
@ApiModelProperty("是否需要报关")
@Excel(name = "是否需要报关")
private Integer needCustomsDeclaration;
@ApiModelProperty("是否需要运输")
@Excel(name = "是否需要运输")
private Integer needTransport;
@ApiModelProperty("入仓日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "入仓日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date warehouseDate;
@ApiModelProperty("完成时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date completionTime;
@ApiModelProperty("下单日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "下单日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date orderDate;
@ApiModelProperty("业务单号")
@Excel(name = "业务单号")
private String businessOrderNo;
@ApiModelProperty("业务类型")
@Excel(name = "业务类型")
private String businessType;
@ApiModelProperty("制单人")
@Excel(name = "制单人")
private String documentCreator;
@ApiModelProperty("制单人名称")
@Excel(name = "制单人名称")
private String documentCreatorName;
@ApiModelProperty("制单日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "制单日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date documentDate;
@ApiModelProperty("订单状态")
@Excel(name = "订单状态")
private String orderStatus;
@ApiModelProperty("oms入库单id")
@Excel(name = "oms入库单id")
private String omsStockInOrderId;
@ApiModelProperty("结算币种")
private String settlementCurrency;
@ApiModelProperty("业务员ID")
private String salesmanId;
@ApiModelProperty("业务员名称")
private String salesmanName;
}
@@ -0,0 +1,408 @@
package com.mhd.system.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
/**
* 出库单对象 stock_out_order
*
* @author gen
* @date 2024-05-28
*/
@Data
public class StockOutOrder extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("出库单id")
@TableId(type = IdType.AUTO)
private Long outOrderId;
@ApiModelProperty("组织表ID")
@Excel(name = "组织表ID")
private Long organizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty("一级组织表ID")
@Excel(name = "一级组织表ID")
private Long topOrganizationId;
@ApiModelProperty("通知单号")
@Excel(name = "通知单号")
private String noticeNumber;
@ApiModelProperty("出库单号")
@Excel(name = "出库单号")
private String outOrderNumber;
@ApiModelProperty("出库状态: 1-已创建 2-已审核 3-部分分配 4-已分配 5-波次中 6-拣货中 7-拣货完成 8-复核中 9-已出库 10-已取消 11-已关闭 12-已复核 13-已交接")
@Excel(name = "出库状态: 1-已创建 2-已审核 3-部分分配 4-已分配 5-波次中 6-拣货中 7-拣货完成 8-复核中 9-已出库 10-已取消 11-已关闭 12-已复核 13-已交接")
private Integer status;
@ApiModelProperty("出库单审核状态: 1-未审核 2-审核不通过 3-审核通过")
@Excel(name = "出库单审核状态: 1-未审核 2-审核不通过 3-审核通过")
private Integer auditStatus;
@ApiModelProperty("出库单审核备注")
@Excel(name = "出库单审核备注")
private String auditRemark;
@ApiModelProperty("出库单审核人")
@Excel(name = "出库单审核人")
private Long auditBy;
@ApiModelProperty("出库单审核人姓名")
@Excel(name = "出库单审核人姓名")
private String auditByName;
@ApiModelProperty("出库单审核时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@Excel(name = "出库单审核时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date auditTime;
@ApiModelProperty("仓库id")
@Excel(name = "仓库id")
private Long warehouseId;
@ApiModelProperty("仓库编码")
@Excel(name = "仓库编码")
private String warehouseCode;
@ApiModelProperty("仓库名称")
@Excel(name = "仓库名称")
private String warehouseName;
@ApiModelProperty("货主id")
@Excel(name = "货主id")
private Long shipperId;
@ApiModelProperty("货主编码")
@Excel(name = "货主编码")
private String shipperCode;
@ApiModelProperty("货主名称")
@Excel(name = "货主名称")
private String shipperName;
@ApiModelProperty("出库单类型编码")
@Excel(name = "出库单类型编码")
private String orderTypeCode;
@ApiModelProperty("出库单类型名称")
@Excel(name = "出库单类型名称")
private String orderTypeName;
@ApiModelProperty("客户id")
@Excel(name = "客户id")
private Long customerId;
@ApiModelProperty("客户编码")
@Excel(name = "客户编码")
private String customerCode;
@ApiModelProperty("客户名称")
@Excel(name = "客户名称")
private String customerName;
@ApiModelProperty("预计出货时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Excel(name = "预计出货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date expectTime;
@ApiModelProperty("供应链订单号")
@Excel(name = "供应链订单号")
private String supplyChainNumber;
@ApiModelProperty("优先级别编码")
@Excel(name = "优先级别编码")
private String priorityLevelCode;
@ApiModelProperty("优先级别名称")
@Excel(name = "优先级别名称")
private String priorityLevelName;
@ApiModelProperty("是否直接出库: 1-是 2-否")
@Excel(name = "是否直接出库: 1-是 2-否")
private Integer directWarehouse;
@ApiModelProperty("是否复核: 1-是 2-否")
@Excel(name = "是否复核: 1-是 2-否")
private Integer review;
@ApiModelProperty("附件url")
@Excel(name = "附件url")
private String annexUrl;
@ApiModelProperty("物料种数")
@Excel(name = "物料种数")
private Integer materialQuantity;
@ApiModelProperty("计划数量")
@Excel(name = "计划数量")
private BigDecimal quantity;
@ApiModelProperty("净重 单位:千克")
@Excel(name = "净重 单位:千克")
private BigDecimal weightLimit;
@ApiModelProperty("体积 单位:立方米")
@Excel(name = "体积 单位:立方米")
private BigDecimal volumeLimit;
@ApiModelProperty("分配数量")
@Excel(name = "分配数量")
private BigDecimal allocationQuantity;
@ApiModelProperty("已生成拣货单数量")
@Excel(name = "已生成拣货单分配数量")
private BigDecimal alreadyAllocationQuantity;
@ApiModelProperty("拣货数量")
@Excel(name = "拣货数量")
private BigDecimal pickingQuantity;
@ApiModelProperty("复核数量")
@Excel(name = "复核数量")
private BigDecimal checkQuantity;
@ApiModelProperty("是否取消订单: 1-是 2-否")
@Excel(name = "是否取消订单: 1-是 2-否")
private Integer cancelOrder;
@ApiModelProperty("取消订单备注")
@Excel(name = "取消订单备注")
private String cancelRemark;
@ApiModelProperty("取消订单人")
@Excel(name = "取消订单人")
private Long cancelBy;
@ApiModelProperty("取消订单人姓名")
@Excel(name = "取消订单人姓名")
private String cancelByName;
@ApiModelProperty("取消订单时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@Excel(name = "取消订单时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date cancelTime;
@ApiModelProperty("是否关闭订单: 1-是 2-否")
@Excel(name = "是否关闭订单: 1-是 2-否")
private Integer closeOrder;
@ApiModelProperty("关闭订单备注")
@Excel(name = "关闭订单备注")
private String closeRemark;
@ApiModelProperty("关闭订单人")
@Excel(name = "关闭订单人")
private Long closeBy;
@ApiModelProperty("关闭订单人姓名")
@Excel(name = "关闭订单人姓名")
private String closeByName;
@ApiModelProperty("关闭订单时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@Excel(name = "关闭订单时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date closeTime;
@ApiModelProperty("复核状态: 1-未复核 2-复核中 3-已复核")
@Excel(name = "复核状态: 1-未复核 2-复核中 3-已复核")
private Integer checkStatus;
@ApiModelProperty("复核任务是否下发: 1-是 2-否")
@Excel(name = "复核任务是否下发: 1-是 2-否")
private Integer checkTaskDistribution;
@ApiModelProperty("复核任务下发时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "复核任务下发时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date checkTaskDistributionTime;
@ApiModelProperty("复核作业人用户ID")
@Excel(name = "复核作业人用户ID")
private Long checkOperatorsBy;
@ApiModelProperty("复核作业人姓名")
@Excel(name = "复核作业人姓名")
private String checkOperatorsName;
@ApiModelProperty("调度单号")
@Excel(name = "调度单号")
private String mobilizeCode;
@ApiModelProperty("备注")
@Excel(name = "备注")
private String remark;
@ApiModelProperty("越库单id")
private Long overStockId;
@ApiModelProperty("越库单状态 0:无状态 1:处理中 2:越库完成")
@Excel(name = "越库单状态 0:无状态 1:处理中 2:越库完成")
private Integer overStockStatus;
@ApiModelProperty("越库类型:1-直接越库 2-分拨越库")
@Excel(name = "越库类型:1-直接越库 2-分拨越库")
private Long overStockType;
@ApiModelProperty("to")
@Excel(name = "to")
@TableField(value = "\"TO\"")
private String to;
@ApiModelProperty("联系人")
@Excel(name = "联系人")
private String contactPerson;
@ApiModelProperty("车型及车牌")
@Excel(name = "车型及车牌")
private String vehicleModelPlate;
@ApiModelProperty("委托编号")
@Excel(name = "委托编号")
private String entrustNo;
@ApiModelProperty("Tel")
@Excel(name = "Tel")
private String tel;
@ApiModelProperty("司机签名")
@Excel(name = "司机签名")
private String driverSign;
@ApiModelProperty("Fax")
@Excel(name = "Fax")
private String fax;
@ApiModelProperty("申报地关区")
@Excel(name = "申报地关区")
private String declareCustoms;
@ApiModelProperty("生产商")
@Excel(name = "生产商")
private String manufacturer;
@ApiModelProperty("报关员姓名及联系方式")
@Excel(name = "报关员姓名及联系方式")
private String customsDeclarerInfo;
@ApiModelProperty("送货地址")
@Excel(name = "送货地址")
private String deliveryAddr;
@ApiModelProperty("进出境关别")
@Excel(name = "进出境关别")
private String entryExitCustoms;
@ApiModelProperty("起运/运抵国(地区)")
@Excel(name = "起运/运抵国(地区)")
private String departureArrivalCountry;
@ApiModelProperty("承运商")
@Excel(name = "承运商")
private String carrier;
@ApiModelProperty("承运商名称")
@Excel(name = "承运商名称")
private String carrierName;
@ApiModelProperty("柜号")
@Excel(name = "柜号")
private String containerNo;
@ApiModelProperty("")
@Excel(name = "")
private String containerNoName;
@ApiModelProperty("出仓日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "出仓日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date outboundDate;
@ApiModelProperty("完成时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date completeTime;
@ApiModelProperty("orderDate")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "orderDate", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date orderDate;
@ApiModelProperty("运输方式")
@Excel(name = "运输方式")
private String transportModeCode;
@ApiModelProperty("运输方式")
@Excel(name = "运输方式")
private String transportModeName;
@ApiModelProperty("监管方式")
@Excel(name = "监管方式")
private String supervisionModeCode;
@ApiModelProperty("监管方式")
@Excel(name = "监管方式")
private String supervisionModeName;
@ApiModelProperty("海关是否查验货物")
@Excel(name = "海关是否查验货物")
private String customsInspectionFlag;
@ApiModelProperty("是否需要报关")
@Excel(name = "是否需要报关")
private String needDeclareFlag;
@ApiModelProperty("是否需要运输")
@Excel(name = "是否需要运输")
private String needTransportFlag;
@ApiModelProperty("app上传的图片")
private String pictureApp;
@ApiModelProperty("业务单号")
@Excel(name = "业务单号")
private String businessOrderNo;
@ApiModelProperty("业务类型")
@Excel(name = "业务类型")
private String businessType;
@ApiModelProperty("制单人")
@Excel(name = "制单人")
private String documentCreator;
@ApiModelProperty("制单人名称")
@Excel(name = "制单人名称")
private String documentCreatorName;
@ApiModelProperty("制单日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "制单日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date documentDate;
@ApiModelProperty("结算币种")
private String settlementCurrency;
@ApiModelProperty("业务员ID")
private String salesmanId;
@ApiModelProperty("业务员名称")
private String salesmanName;
@ApiModelProperty("车次")
@Excel(name = "车次")
private Integer trainNo;
}
@@ -0,0 +1,486 @@
package com.mhd.system.api.domain;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 出库单对象 stock_out_order
*
* @author gen
* @date 2024-05-28
*/
@Data
public class StockOutOrderDTO extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("出库单id")
private Long outOrderId;
@ApiModelProperty("组织表ID")
@Excel(name = "组织表ID")
private Long organizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty("一级组织表ID")
@Excel(name = "一级组织表ID")
private Long topOrganizationId;
@ApiModelProperty("通知单号")
@Excel(name = "通知单号")
private String noticeNumber;
@ApiModelProperty("出库单号")
@Excel(name = "出库单号")
private String outOrderNumber;
@ApiModelProperty("出库状态: 1-已创建 2-已审核 3-部分分配 4-已分配 5-波次中 6-拣货中 7-拣货完成 8-复核中 9-已出库 10-已取消 11-已关闭")
@Excel(name = "出库状态: 1-已创建 2-已审核 3-部分分配 4-已分配 5-波次中 6-拣货中 7-拣货完成 8-复核中 9-已出库 10-已取消 11-已关闭")
private Integer status;
@ApiModelProperty("出库单审核状态: 1-未审核 2-审核不通过 3-审核通过")
@Excel(name = "出库单审核状态: 1-未审核 2-审核不通过 3-审核通过")
private Integer auditStatus;
@ApiModelProperty("出库单审核备注")
@Excel(name = "出库单审核备注")
private String auditRemark;
@ApiModelProperty("出库单审核人")
@Excel(name = "出库单审核人")
private Long auditBy;
@ApiModelProperty("出库单审核人姓名")
@Excel(name = "出库单审核人姓名")
private String auditByName;
@ApiModelProperty("出库单审核时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@Excel(name = "出库单审核时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date auditTime;
@ApiModelProperty("仓库id")
@Excel(name = "仓库id")
private Long warehouseId;
@ApiModelProperty("仓库编码")
@Excel(name = "仓库编码")
private String warehouseCode;
@ApiModelProperty("仓库名称")
@Excel(name = "仓库名称")
private String warehouseName;
@ApiModelProperty("货主id")
@Excel(name = "货主id")
private Long shipperId;
@ApiModelProperty("货主编码")
@Excel(name = "货主编码")
private String shipperCode;
@ApiModelProperty("货主名称")
@Excel(name = "货主名称")
private String shipperName;
@ApiModelProperty("出库单类型编码")
@Excel(name = "出库单类型编码")
private String orderTypeCode;
@ApiModelProperty("出库单类型名称")
@Excel(name = "出库单类型名称")
private String orderTypeName;
@ApiModelProperty("客户id")
@Excel(name = "客户id")
private Long customerId;
@ApiModelProperty("客户编码")
@Excel(name = "客户编码")
private String customerCode;
@ApiModelProperty("客户名称")
@Excel(name = "客户名称")
private String customerName;
@ApiModelProperty("预计出货时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Excel(name = "预计出货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date expectTime;
@ApiModelProperty("供应链订单号")
@Excel(name = "供应链订单号")
private String supplyChainNumber;
@ApiModelProperty("优先级别编码")
@Excel(name = "优先级别编码")
private String priorityLevelCode;
@ApiModelProperty("优先级别名称")
@Excel(name = "优先级别名称")
private String priorityLevelName;
@ApiModelProperty("是否直接出库: 1-是 2-否")
@Excel(name = "是否直接出库: 1-是 2-否")
private Integer directWarehouse;
@ApiModelProperty("是否复核: 1-是 2-否")
@Excel(name = "是否复核: 1-是 2-否")
private Integer review;
@ApiModelProperty("附件url")
@Excel(name = "附件url")
private String annexUrl;
@ApiModelProperty("物料种数")
@Excel(name = "物料种数")
private Integer materialQuantity;
@ApiModelProperty("计划数量")
@Excel(name = "计划数量")
private BigDecimal quantity;
@ApiModelProperty("净重 单位:千克")
@Excel(name = "净重 单位:千克")
private BigDecimal weightLimit;
@ApiModelProperty("体积 单位:立方米")
@Excel(name = "体积 单位:立方米")
private BigDecimal volumeLimit;
@ApiModelProperty("分配数量")
@Excel(name = "分配数量")
private BigDecimal allocationQuantity;
@ApiModelProperty("已生成拣货单数量")
@Excel(name = "已生成拣货单分配数量")
private BigDecimal alreadyAllocationQuantity;
@ApiModelProperty("拣货数量")
@Excel(name = "拣货数量")
private BigDecimal pickingQuantity;
@ApiModelProperty("复核数量")
@Excel(name = "复核数量")
private BigDecimal checkQuantity;
@ApiModelProperty("是否取消订单: 1-是 2-否")
@Excel(name = "是否取消订单: 1-是 2-否")
private Integer cancelOrder;
@ApiModelProperty("取消订单备注")
@Excel(name = "取消订单备注")
private String cancelRemark;
@ApiModelProperty("取消订单人")
@Excel(name = "取消订单人")
private Long cancelBy;
@ApiModelProperty("取消订单人姓名")
@Excel(name = "取消订单人姓名")
private String cancelByName;
@ApiModelProperty("取消订单时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@Excel(name = "取消订单时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date cancelTime;
@ApiModelProperty("是否关闭订单: 1-是 2-否")
@Excel(name = "是否关闭订单: 1-是 2-否")
private Integer closeOrder;
@ApiModelProperty("关闭订单备注")
@Excel(name = "关闭订单备注")
private String closeRemark;
@ApiModelProperty("关闭订单人")
@Excel(name = "关闭订单人")
private Long closeBy;
@ApiModelProperty("关闭订单人姓名")
@Excel(name = "关闭订单人姓名")
private String closeByName;
@ApiModelProperty("关闭订单时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@Excel(name = "关闭订单时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date closeTime;
@ApiModelProperty("复核状态: 1-未复核 2-复核中 3-已复核")
@Excel(name = "复核状态: 1-未复核 2-复核中 3-已复核")
private Integer checkStatus;
@ApiModelProperty("复核任务是否下发: 1-是 2-否")
@Excel(name = "复核任务是否下发: 1-是 2-否")
private Integer checkTaskDistribution;
@ApiModelProperty("复核任务下发时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "复核任务下发时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date checkTaskDistributionTime;
@ApiModelProperty("复核作业人用户ID")
@Excel(name = "复核作业人用户ID")
@JsonAlias({"checkOperatorId", "operatorId"})
private Long checkOperatorsBy;
@ApiModelProperty("复核作业人姓名")
@Excel(name = "复核作业人姓名")
private String checkOperatorsName;
@ApiModelProperty("调度单号")
@Excel(name = "调度单号")
private String mobilizeCode;
@ApiModelProperty("备注")
@Excel(name = "备注")
private String remark;
@ApiModelProperty(name = "组织ID集合")
private List<Long> organizationIdList;
@ApiModelProperty(name = "权限菜单ID")
private Long permissionMenuId;
@ApiModelProperty("出库单id集合")
private List<Long> outOrderIds;
// @ApiModelProperty("物料明细")
// private List<OutMaterialDetailDTO> materialDetailList;
@ApiModelProperty("物料条形码")
@Excel(name = "物料条形码")
private String barCode;
@ApiModelProperty("物料审核数量")
@Excel(name = "物料审核数量")
private BigDecimal actualQuantity;
@ApiModelProperty("波次类型编码")
private String waveOrderTypeCode;
@ApiModelProperty("大于复核状态: 1-未复核 2-复核中 3-已复核")
private Integer gtCheckStatus;
@ApiModelProperty("小于复核状态: 1-未复核 2-复核中 3-已复核")
private Integer ltCheckStatus;
@ApiModelProperty("PDA复核查询tab: 1-列表(待复核) 2-历史记录(已复核)")
private Integer tabType;
@ApiModelProperty("to")
@Excel(name = "to")
private String to;
@ApiModelProperty("联系人")
@Excel(name = "联系人")
private String contactPerson;
@ApiModelProperty("车型及车牌")
@Excel(name = "车型及车牌")
private String vehicleModelPlate;
@ApiModelProperty("委托编号")
@Excel(name = "委托编号")
private String entrustNo;
@ApiModelProperty("Tel")
@Excel(name = "Tel")
private String tel;
@ApiModelProperty("司机签名")
@Excel(name = "司机签名")
private String driverSign;
@ApiModelProperty("Fax")
@Excel(name = "Fax")
private String fax;
@ApiModelProperty("申报地关区")
@Excel(name = "申报地关区")
private String declareCustoms;
@ApiModelProperty("生产商")
@Excel(name = "生产商")
private String manufacturer;
@ApiModelProperty("报关员姓名及联系方式")
@Excel(name = "报关员姓名及联系方式")
private String customsDeclarerInfo;
@ApiModelProperty("送货地址")
@Excel(name = "送货地址")
private String deliveryAddr;
@ApiModelProperty("进出境关别")
@Excel(name = "进出境关别")
private String entryExitCustoms;
@ApiModelProperty("起运/运抵国(地区)")
@Excel(name = "起运/运抵国(地区)")
private String departureArrivalCountry;
@ApiModelProperty("承运商")
@Excel(name = "承运商")
private String carrier;
@ApiModelProperty("柜号")
@Excel(name = "柜号")
private String containerNo;
@ApiModelProperty("")
@Excel(name = "")
private String containerNoName;
@ApiModelProperty("出仓日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "出仓日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date outboundDate;
@ApiModelProperty("完成时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date completeTime;
@ApiModelProperty("orderDate")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "orderDate", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date orderDate;
@ApiModelProperty("运输方式")
@Excel(name = "运输方式")
private String transportModeCode;
@ApiModelProperty("运输方式")
@Excel(name = "运输方式")
private String transportModeName;
@ApiModelProperty("监管方式")
@Excel(name = "监管方式")
private String supervisionModeCode;
@ApiModelProperty("监管方式")
@Excel(name = "监管方式")
private String supervisionModeName;
@ApiModelProperty("海关是否查验货物")
@Excel(name = "海关是否查验货物")
private String customsInspectionFlag;
@ApiModelProperty("是否需要报关")
@Excel(name = "是否需要报关")
private String needDeclareFlag;
@ApiModelProperty("是否需要运输")
@Excel(name = "是否需要运输")
private String needTransportFlag;
@ApiModelProperty(name = "创建时间查询条件开始日期")
private String createTimeStart;
@ApiModelProperty(name = "创建时间查询条件结束日期")
private String createTimeEnd;
@ApiModelProperty(name = "审核时间查询条件开始日期")
private String auditTimeStart;
@ApiModelProperty(name = "审核时间查询条件结束日期")
private String auditTimeEnd;
@ApiModelProperty("出库明细-物料名称(商品名称),模糊匹配,与前端参数 materialName 一致")
private String materialName;
@ApiModelProperty("出库明细-物料编码,模糊匹配,与前端参数 materialCode 一致")
private String materialCode;
@ApiModelProperty("出库交接图片,PDA出库交接时上传的照片,多张图片以逗号隔开")
private String pictureApp;
@ApiModelProperty("业务单号")
@Excel(name = "业务单号")
private String businessOrderNo;
@ApiModelProperty("业务类型")
@Excel(name = "业务类型")
private String businessType;
@ApiModelProperty("制单人")
@Excel(name = "制单人")
private String documentCreator;
@ApiModelProperty("制单人名称")
@Excel(name = "制单人名称")
private String documentCreatorName;
@ApiModelProperty("制单日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "制单日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date documentDate;
@ApiModelProperty("承运商名称")
@Excel(name = "承运商名称")
private String carrierName;
@ApiModelProperty("计费信息")
private String billingJson;
@ApiModelProperty("结算币种")
private String settlementCurrency;
@ApiModelProperty("业务员ID")
private String salesmanId;
@ApiModelProperty("业务员名称")
private String salesmanName;
// @ApiModelProperty("费用")
// List<ReceiptOrderAccount> receiptOrderAccountList;
@ApiModelProperty("退货数量")
@Excel(name = "退货数量")
private BigDecimal returnQuantity;
/**
* 提货单打印所选模版(与图5单选项文案一致即可)。可传副标题如「谷丰--营销部」,或整段「提货单--谷丰--营销部」;不传则标题为「提货单」
*/
@ApiModelProperty("提货单打印模版名/弹窗选项全文;后端生成 printTitle(-- 会规范为 ——)")
private String noticePrintTemplateName;
@ApiModelProperty("车次")
@Excel(name = "车次")
private Integer trainNo;
@ApiModelProperty("推送状态:1-未推送,2-推送中,3-推送成功,4-推送失败")
private Integer pushStatus;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("推送时间")
private Date pushTime;
@ApiModelProperty("推送人")
private Long pushBy;
@ApiModelProperty("推送人姓名")
private String pushByName;
@ApiModelProperty(value = "推送时间起")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date pushTimeFrom;
@ApiModelProperty(value = "推送时间止")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date pushTimeTo;
@ApiModelProperty(value = "推送时间起")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTimeFrom;
@ApiModelProperty(value = "推送时间止")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTimeTo;
}
@@ -0,0 +1,405 @@
package com.mhd.system.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
/**
* 出库单对象 stock_out_order
*
* @author gen
* @date 2024-05-28
*/
@Data
public class StockOutOrderTZPD extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("出库单id")
@TableId(type = IdType.AUTO)
private Long outOrderId;
@ApiModelProperty("组织表ID")
@Excel(name = "组织表ID")
private Long organizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty("一级组织表ID")
@Excel(name = "一级组织表ID")
private Long topOrganizationId;
@ApiModelProperty("通知单号")
@Excel(name = "通知单号")
private String noticeNumber;
@ApiModelProperty("出库单号")
@Excel(name = "出库单号")
private String outOrderNumber;
@ApiModelProperty("出库状态: 1-已创建 2-已审核 3-部分分配 4-已分配 5-波次中 6-拣货中 7-拣货完成 8-复核中 9-已出库 10-已取消 11-已关闭 12-已复核")
@Excel(name = "出库状态: 1-已创建 2-已审核 3-部分分配 4-已分配 5-波次中 6-拣货中 7-拣货完成 8-复核中 9-已出库 10-已取消 11-已关闭 12-已复核")
private Integer status;
@ApiModelProperty("出库单审核状态: 1-未审核 2-审核不通过 3-审核通过")
@Excel(name = "出库单审核状态: 1-未审核 2-审核不通过 3-审核通过")
private Integer auditStatus;
@ApiModelProperty("出库单审核备注")
@Excel(name = "出库单审核备注")
private String auditRemark;
@ApiModelProperty("出库单审核人")
@Excel(name = "出库单审核人")
private Long auditBy;
@ApiModelProperty("出库单审核人姓名")
@Excel(name = "出库单审核人姓名")
private String auditByName;
@ApiModelProperty("出库单审核时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@Excel(name = "出库单审核时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date auditTime;
@ApiModelProperty("仓库id")
@Excel(name = "仓库id")
private Long warehouseId;
@ApiModelProperty("仓库编码")
@Excel(name = "仓库编码")
private String warehouseCode;
@ApiModelProperty("仓库名称")
@Excel(name = "仓库名称")
private String warehouseName;
@ApiModelProperty("货主id")
@Excel(name = "货主id")
private Long shipperId;
@ApiModelProperty("货主编码")
@Excel(name = "货主编码")
private String shipperCode;
@ApiModelProperty("货主名称")
@Excel(name = "货主名称")
private String shipperName;
@ApiModelProperty("出库单类型编码")
@Excel(name = "出库单类型编码")
private String orderTypeCode;
@ApiModelProperty("出库单类型名称")
@Excel(name = "出库单类型名称")
private String orderTypeName;
@ApiModelProperty("客户id")
@Excel(name = "客户id")
private Long customerId;
@ApiModelProperty("客户编码")
@Excel(name = "客户编码")
private String customerCode;
@ApiModelProperty("客户名称")
@Excel(name = "客户名称")
private String customerName;
@ApiModelProperty("预计出货时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Excel(name = "预计出货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date expectTime;
@ApiModelProperty("供应链订单号")
@Excel(name = "供应链订单号")
private String supplyChainNumber;
@ApiModelProperty("优先级别编码")
@Excel(name = "优先级别编码")
private String priorityLevelCode;
@ApiModelProperty("优先级别名称")
@Excel(name = "优先级别名称")
private String priorityLevelName;
@ApiModelProperty("是否直接出库: 1-是 2-否")
@Excel(name = "是否直接出库: 1-是 2-否")
private Integer directWarehouse;
@ApiModelProperty("是否复核: 1-是 2-否")
@Excel(name = "是否复核: 1-是 2-否")
private Integer review;
@ApiModelProperty("附件url")
@Excel(name = "附件url")
private String annexUrl;
@ApiModelProperty("物料种数")
@Excel(name = "物料种数")
private Integer materialQuantity;
@ApiModelProperty("计划数量")
@Excel(name = "计划数量")
private BigDecimal quantity;
@ApiModelProperty("净重 单位:千克")
@Excel(name = "净重 单位:千克")
private BigDecimal weightLimit;
@ApiModelProperty("体积 单位:立方米")
@Excel(name = "体积 单位:立方米")
private BigDecimal volumeLimit;
@ApiModelProperty("分配数量")
@Excel(name = "分配数量")
private BigDecimal allocationQuantity;
@ApiModelProperty("已生成拣货单数量")
@Excel(name = "已生成拣货单分配数量")
private BigDecimal alreadyAllocationQuantity;
@ApiModelProperty("拣货数量")
@Excel(name = "拣货数量")
private BigDecimal pickingQuantity;
@ApiModelProperty("复核数量")
@Excel(name = "复核数量")
private BigDecimal checkQuantity;
@ApiModelProperty("是否取消订单: 1-是 2-否")
@Excel(name = "是否取消订单: 1-是 2-否")
private Integer cancelOrder;
@ApiModelProperty("取消订单备注")
@Excel(name = "取消订单备注")
private String cancelRemark;
@ApiModelProperty("取消订单人")
@Excel(name = "取消订单人")
private Long cancelBy;
@ApiModelProperty("取消订单人姓名")
@Excel(name = "取消订单人姓名")
private String cancelByName;
@ApiModelProperty("取消订单时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@Excel(name = "取消订单时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date cancelTime;
@ApiModelProperty("是否关闭订单: 1-是 2-否")
@Excel(name = "是否关闭订单: 1-是 2-否")
private Integer closeOrder;
@ApiModelProperty("关闭订单备注")
@Excel(name = "关闭订单备注")
private String closeRemark;
@ApiModelProperty("关闭订单人")
@Excel(name = "关闭订单人")
private Long closeBy;
@ApiModelProperty("关闭订单人姓名")
@Excel(name = "关闭订单人姓名")
private String closeByName;
@ApiModelProperty("关闭订单时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@Excel(name = "关闭订单时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date closeTime;
@ApiModelProperty("复核状态: 1-未复核 2-复核中 3-已复核")
@Excel(name = "复核状态: 1-未复核 2-复核中 3-已复核")
private Integer checkStatus;
@ApiModelProperty("复核任务是否下发: 1-是 2-否")
@Excel(name = "复核任务是否下发: 1-是 2-否")
private Integer checkTaskDistribution;
@ApiModelProperty("复核任务下发时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "复核任务下发时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date checkTaskDistributionTime;
@ApiModelProperty("复核作业人用户ID")
@Excel(name = "复核作业人用户ID")
private Long checkOperatorsBy;
@ApiModelProperty("复核作业人姓名")
@Excel(name = "复核作业人姓名")
private String checkOperatorsName;
@ApiModelProperty("调度单号")
@Excel(name = "调度单号")
private String mobilizeCode;
@ApiModelProperty("备注")
@Excel(name = "备注")
private String remark;
@ApiModelProperty("越库单id")
private Long overStockId;
@ApiModelProperty("越库单状态 0:无状态 1:处理中 2:越库完成")
@Excel(name = "越库单状态 0:无状态 1:处理中 2:越库完成")
private Integer overStockStatus;
@ApiModelProperty("越库类型:1-直接越库 2-分拨越库")
@Excel(name = "越库类型:1-直接越库 2-分拨越库")
private Long overStockType;
@ApiModelProperty("to")
@Excel(name = "to")
@TableField(value = "\"TO\"")
private String to;
@ApiModelProperty("联系人")
@Excel(name = "联系人")
private String contactPerson;
@ApiModelProperty("车型及车牌")
@Excel(name = "车型及车牌")
private String vehicleModelPlate;
@ApiModelProperty("委托编号")
@Excel(name = "委托编号")
private String entrustNo;
@ApiModelProperty("Tel")
@Excel(name = "Tel")
private String tel;
@ApiModelProperty("司机签名")
@Excel(name = "司机签名")
private String driverSign;
@ApiModelProperty("Fax")
@Excel(name = "Fax")
private String fax;
@ApiModelProperty("申报地关区")
@Excel(name = "申报地关区")
private String declareCustoms;
@ApiModelProperty("生产商")
@Excel(name = "生产商")
private String manufacturer;
@ApiModelProperty("报关员姓名及联系方式")
@Excel(name = "报关员姓名及联系方式")
private String customsDeclarerInfo;
@ApiModelProperty("送货地址")
@Excel(name = "送货地址")
private String deliveryAddr;
@ApiModelProperty("进出境关别")
@Excel(name = "进出境关别")
private String entryExitCustoms;
@ApiModelProperty("起运/运抵国(地区)")
@Excel(name = "起运/运抵国(地区)")
private String departureArrivalCountry;
@ApiModelProperty("承运商")
@Excel(name = "承运商")
private String carrier;
@ApiModelProperty("承运商名称")
@Excel(name = "承运商名称")
private String carrierName;
@ApiModelProperty("柜号")
@Excel(name = "柜号")
private String containerNo;
@ApiModelProperty("")
@Excel(name = "")
private String containerNoName;
@ApiModelProperty("出仓日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "出仓日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date outboundDate;
@ApiModelProperty("完成时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date completeTime;
@ApiModelProperty("orderDate")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "orderDate", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date orderDate;
@ApiModelProperty("运输方式")
@Excel(name = "运输方式")
private String transportModeCode;
@ApiModelProperty("运输方式")
@Excel(name = "运输方式")
private String transportModeName;
@ApiModelProperty("监管方式")
@Excel(name = "监管方式")
private String supervisionModeCode;
@ApiModelProperty("监管方式")
@Excel(name = "监管方式")
private String supervisionModeName;
@ApiModelProperty("海关是否查验货物")
@Excel(name = "海关是否查验货物")
private String customsInspectionFlag;
@ApiModelProperty("是否需要报关")
@Excel(name = "是否需要报关")
private String needDeclareFlag;
@ApiModelProperty("是否需要运输")
@Excel(name = "是否需要运输")
private String needTransportFlag;
@ApiModelProperty("app上传的图片")
private String pictureApp;
@ApiModelProperty("业务单号")
@Excel(name = "业务单号")
private String businessOrderNo;
@ApiModelProperty("业务类型")
@Excel(name = "业务类型")
private String businessType;
@ApiModelProperty("制单人")
@Excel(name = "制单人")
private String documentCreator;
@ApiModelProperty("制单人名称")
@Excel(name = "制单人名称")
private String documentCreatorName;
@ApiModelProperty("制单日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "制单日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date documentDate;
@ApiModelProperty("结算币种")
private String settlementCurrency;
@ApiModelProperty("业务员ID")
private String salesmanId;
@ApiModelProperty("业务员名称")
private String salesmanName;
}
@@ -34,6 +34,45 @@ public class SysDictType extends BaseEntity
@Excel(name = "状态", readConverterExp = "0=正常,1=停用") @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private String status; private String status;
/** 组织表ID */
private Long organizationId;
/** 组织名称 */
private String organizationName;
/** 一级组织表ID */
private Long topOrganizationId;
public Long getOrganizationId()
{
return organizationId;
}
public void setOrganizationId(Long organizationId)
{
this.organizationId = organizationId;
}
public String getOrganizationName()
{
return organizationName;
}
public void setOrganizationName(String organizationName)
{
this.organizationName = organizationName;
}
public Long getTopOrganizationId()
{
return topOrganizationId;
}
public void setTopOrganizationId(Long topOrganizationId)
{
this.topOrganizationId = topOrganizationId;
}
public Long getDictId() public Long getDictId()
{ {
return dictId; return dictId;
@@ -86,6 +125,9 @@ public class SysDictType extends BaseEntity
.append("dictName", getDictName()) .append("dictName", getDictName())
.append("dictType", getDictType()) .append("dictType", getDictType())
.append("status", getStatus()) .append("status", getStatus())
.append("organizationId", getOrganizationId())
.append("organizationName", getOrganizationName())
.append("topOrganizationId", getTopOrganizationId())
.append("createBy", getCreateBy()) .append("createBy", getCreateBy())
.append("createTime", getCreateTime()) .append("createTime", getCreateTime())
.append("updateBy", getUpdateBy()) .append("updateBy", getUpdateBy())
@@ -96,7 +96,7 @@ public class SysLogininfor {
/** /**
* 访问时间 * 访问时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Excel(name = "访问时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") @Excel(name = "访问时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date accessTime; private Date accessTime;
@@ -156,7 +156,7 @@ public class SysOperLog {
/** /**
* 操作时间 * 操作时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date operTime; private Date operTime;
@@ -127,4 +127,12 @@ public class TmsMakeOutInvoice implements Serializable {
private String actualInvoiceCustomerId; private String actualInvoiceCustomerId;
@ApiModelProperty(value = "实际开票客户名称") @ApiModelProperty(value = "实际开票客户名称")
private String actualInvoiceCustomerName; private String actualInvoiceCustomerName;
@ApiModelProperty(value = "无税费用")
private BigDecimal taxFreeFee;
@ApiModelProperty(value = "税额")
private BigDecimal taxAmount;
@ApiModelProperty(value = "税率")
private Double taxRate;
@ApiModelProperty(value = "费用类别")
private String feeType;
} }
@@ -0,0 +1,77 @@
package com.mhd.system.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Description: 销项发票表
* @Author: lfs
* @Date: 2020-02-19 08:50:47
* @Version: V1.0
*/
@Data
@TableName("tms_make_out_invoice_item")
public class TmsMakeOutInvoiceItem implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ID_WORKER_STR)
private String id;
/**makeId*/
@ApiModelProperty(value = "makeId")
private String makeId;
/**发票金额*/
@ApiModelProperty(value = "发票金额")
private BigDecimal invoiceValue;
/**发票备注*/
@ApiModelProperty(value = "发票备注")
@Excel(name = "发票备注", width = 15)
private String remark;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建日期*/
@ApiModelProperty(value = "创建日期")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新日期*/
@ApiModelProperty(value = "更新日期")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**是否删除(0-否,1-是)*/
@ApiModelProperty(value = "是否删除(0-否,1-是)")
private Integer isDelete;
@ApiModelProperty(value = "开票项目")
private String invoiceItem;
@ApiModelProperty(value = "开票项目名称")
private String invoiceItemName;
@ApiModelProperty(value = "实际开票客户id")
private String actualInvoiceCustomerId;
@ApiModelProperty(value = "实际开票客户名称")
private String actualInvoiceCustomerName;
@ApiModelProperty(value = "无税费用")
private BigDecimal taxFreeFee;
@ApiModelProperty(value = "税额")
private BigDecimal taxAmount;
@ApiModelProperty(value = "税率")
private Double taxRate;
@ApiModelProperty(value = "费用类别")
private String feeType;
}
@@ -0,0 +1,510 @@
package com.mhd.system.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.domain.dto.wlhy.TmsAddressMultiDTO;
import com.mhd.common.core.domain.dto.wlhy.TmsCargoInfoDTO;
import com.mhd.common.core.domain.dto.wlhy.TmsOrderAccount;
import com.mhd.system.api.model.LoginUser;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
* @Description: 货源表
* @Author: lfs
* @Date: 2020-02-14 09:49:27
* @Version: V1.0
*/
@Data
public class
TmsOrderAddDTO implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.ID_WORKER_STR)
private String id;
// @ApiModelProperty(value = "线路名称ID")
// private java.lang.String lineNameId="";
// @ApiModelProperty(value = "线路名称")
// private java.lang.String lineName="";
//
// @ApiModelProperty(value = "运距(千米)")
// private BigDecimal haulDistance;
@ApiModelProperty(value = "装货地县区编码",required = true)
private String loadingAreaId="";
@ApiModelProperty(value = "装货地详细地址")
private String loadingAddress="";
@ApiModelProperty(value = "发货人姓名")
private String freighterName="";
@ApiModelProperty(value = "装货电话")
private String loadingPhone="";
@ApiModelProperty(value = "装货时间日期(年月日)",required = true)
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private java.util.Date loadingDate;
// @ApiModelProperty(value = "装货时间(上午、下午、24小时)")
// private String loadingTime="";
@ApiModelProperty(value = "卸货地县区编码",required = true)
private String unloadAreaId="";
@ApiModelProperty(value = "卸货地详细地址")
private String unloadAddress="";
@ApiModelProperty(value = "收货人姓名")
private String dischargerName="";
@ApiModelProperty(value = "卸货电话")
private String unloadPhone="";
@ApiModelProperty(value = "卸货时间日期(年月日)",required = true)
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
private java.util.Date unloadingData;
// @ApiModelProperty(value = "装货时间id",required = true)
// private String loadingTimeId;
// @ApiModelProperty(value = "卸货时间id",required = true)
// private String unloadingTimeId;
// @ApiModelProperty(value = "卸货时间(上午、下午、24小时)")
// private java.lang.String unloadingTime;
@ApiModelProperty(value = "货物名称ID")
private String goodsNameId;
@ApiModelProperty(value = "货物名称")
private String goodsName;
@ApiModelProperty(value = "货物名称ID",required = true)
private String goodsTypeId;
@ApiModelProperty(value = "货物大类型")
private String goodsType="";
@ApiModelProperty(value = "重量小(吨)",required = true)
private BigDecimal weightMin;
@ApiModelProperty(value = "重量大(吨)",required = true)
private BigDecimal weightMax;
@ApiModelProperty(value = "货物数量单位(吨/方/件)id",required = true)
private String goodsUntisId;
@ApiModelProperty(value = "配载方式ID0-数量,1-车次)",required = true)
private Integer transportationModeId = 1;
@ApiModelProperty(value = "车型车长ID")
private String carType;
// @ApiModelProperty(value = "指定司机ID")
// private String appointDriverId;
// @ApiModelProperty(value = "司机姓名")
// private String appointDriver;
// @ApiModelProperty(value = "司机手机号")
// private String appointDriverPhone;
// @ApiModelProperty(value = "司机车牌号")
// private String appointDriverLicense;
@ApiModelProperty(value = "服务要求ID")
private String serviceRequireId;
@ApiModelProperty(value = "备注")
private String remarks;
@ApiModelProperty(value = "备注")
private String orderRemark;
// @ApiModelProperty(value = "运单类型(0-企业普货、1-企业批量货、2-撮合货(普通货源)、3-客服运单,4-线下运单)")
// private Integer waybillType ;
@ApiModelProperty(value = "运单类型:0-pc端发货,1-pc端导入,2-货主端app发货")
private Integer waybillFrom = 2 ;
// @ApiModelProperty(value = "期望运费")
// private java.math.BigDecimal freightHope;
// @ApiModelProperty(value = "占用车长")
// private String occupyConductor;
@ApiModelProperty(value = "运单模式(0-普通模式,1-竞价模式)")
private Integer waybillMode = 0;
@ApiModelProperty(value = "竞价截止时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private java.util.Date latestBiddingTime;
@ApiModelProperty(value = "发货运费")
private BigDecimal deliveryFreight;
@ApiModelProperty(value = "运费单价(元/吨)")
private BigDecimal transportationUnitPrice;
@ApiModelProperty(value = "结算方式,1-按趟结算,2-按数量结算")
private Integer radioValue;
@ApiModelProperty(value = "合同物流导入(0-默认,1-合同,2-普通导入)")
private Integer isContract = 0;
// @ApiModelProperty(value = "是否长期货源:0-否,1-是")
// private Integer isLongOrder=0;
// @ApiModelProperty(value = "卸货单位")
// private java.lang.String unloadUnit;
// @ApiModelProperty(value = "收货人身份证号")
// private String unloadIdentificationNumber;
// @ApiModelProperty(value = "代运营人员用户ID")
// private String orderAgentUserId;
@ApiModelProperty(value = "指定货主编号")
private String appointShipperId;
@ApiModelProperty(value = "指定货主")
private String appointShipper;
// @ApiModelProperty(value = "指定平台公司")
// private String appointCompanyId;
// @ApiModelProperty(value = "指定平台公司名称")
// private String appointCompanyName;
// @ApiModelProperty(value = "指定车辆ID")
// private String appointVehicleId;
// @ApiModelProperty(value = "指定车辆设备号")
// private String appointVehicleDevice;
/**是否开启路耗(0-否 1-是)*/
// @ApiModelProperty(value = "是否开启路耗(0-否 1-是)")
// @Excel(name = "是否开启路耗(0-否 1-是)", width = 15)
// private Integer isRoadLoss=0;
/**货物价值(元/吨)*/
// @ApiModelProperty(value = "货物价值(元/吨)")
// @Excel(name = "货物价值(元/吨)", width = 15)
// private BigDecimal goodsValue=BigDecimal.ZERO;
/**路耗模式( 0-按比例% 1-按数量(吨))*/
// @ApiModelProperty(value = "路耗模式( 0-按比例% 1-按数量(吨)")
// @Excel(name = "路耗模式( 0-按比例% 1-按数量(吨)", width = 15)
// private Integer roadLossMode;
// /**路耗结算方式( 1-取装货重量 2-取卸货重量 3-装卸货取大 4-装卸货取小)*/
// @ApiModelProperty(value = "路耗结算方式(0-无 1-取装货重量 2-取卸货重量 3-装卸货取大 4-装卸货取小)")
// @Excel(name = "路耗结算方式( 1-取装货重量 2-取卸货重量 3-装卸货取大 4-装卸货取小)", width = 15)
// private Integer roadLossSettlementMethod;
/**允许货物亏损*/
// @ApiModelProperty(value = "允许货物亏损(吨或%)")
// @Excel(name = "允许货物亏损(吨或%)", width = 15)
// private BigDecimal allowableLoss=BigDecimal.ZERO;
/**超出亏损扣除金额(元/吨)*/
// @ApiModelProperty(value = "超出亏损扣除金额(元/吨)")
// @Excel(name = "超出亏损扣除金额(元/吨)", width = 15)
// private BigDecimal lossDeductionAmount=BigDecimal.ZERO;
// @ApiModelProperty(value = "上游客户id")
// @Excel(name = "上游客户id", width = 15)
// private String upClientId;
// @ApiModelProperty(value = "运费抹零 0-不抹零 ,1-抹零小数位,2-抹零个位,3-抹零十位")
// private Integer isFreightNullification ;
@ApiModelProperty(value = "加油宝计算模式 0-按比例 1-按数值")
private Integer oilValue ;
// @ApiModelProperty(value = "是否允许接多单:0否 1是")
// private Integer isMultipleOrdersAllowed;
@ApiModelProperty(value = "发货备注")
private String shippingNote;
// @ApiModelProperty(value = "涨吨是否计算费用 0-否 1-是 ")
// private Integer isTonnageIncreaseCharge;
@ApiModelProperty(value = "装货地经度")
private String loadingLongitude;
@ApiModelProperty(value = "装货地纬度")
private String loadingLatitude;
@ApiModelProperty(value = "卸货地经度")
private String unloadLongitude;
@ApiModelProperty(value = "卸货地纬度")
private String unloadLatitude;
@ApiModelProperty(value = "预设竞标价")
@Excel(name = "预设竞标价", width = 15)
private BigDecimal highestPrice;
@ApiModelProperty(value = "预设竞标价")
private BigDecimal presetPrice;
@ApiModelProperty(value = "竞价单位(元/车,元/吨)")
private String biddingUnit;
@ApiModelProperty(value = "竞价最高可输入价格")
@Excel(name = "竞价最高可输入价格", width = 15)
private BigDecimal maximumBidPrice;
@ApiModelProperty(value = "评标类型(0-自动评标,1-手动评标)")
private Integer bidEvaluationType = 1;
@ApiModelProperty("应收结算类型:1-月结,2-现结")
private Integer receivableType;
@ApiModelProperty(value = "货物数量")
private String goodsQuantity;
@ApiModelProperty(value = "货物数量单位code")
private String goodsQuantityUnitId;
@ApiModelProperty(value = "货物数量单位")
private String goodsQuantityUnit;
@ApiModelProperty("收款账户")
private String accountName;
@ApiModelProperty("收款账户信息")
private String accountInformation;
// @ApiModelProperty("项目表ID")
// private Long projectManagementId;
// @ApiModelProperty(value = "服务费率")
// private BigDecimal serviceRate;
@ApiModelProperty("是否自动生成协议 0-否 1-是")
@Excel(name = "是否自动生成协议 0-否 1-是")
private Integer isAutoGenerateProtocol;
// @ApiModelProperty(value = "单车总费用")
// @Excel(name = "单车总费用", width = 15)
// private BigDecimal freightGross = BigDecimal.ZERO;
// @ApiModelProperty(value = "协议费用:回单付金额")
// @Excel(name = "协议费用:回单付金额", width = 15)
// private BigDecimal receiptPaymentAmount = BigDecimal.ZERO;
//
// @ApiModelProperty(value = "协议费用:预付现金金额")
// @Excel(name = "协议费用:预付现金金额", width = 15)
// private BigDecimal cashAdvance = BigDecimal.ZERO;
//
// @ApiModelProperty(value = "协议费用:到付运费金额")
// @Excel(name = "协议费用:到付运费金额", width = 15)
// private BigDecimal freightAmount = BigDecimal.ZERO;
//
// @ApiModelProperty(value = "协议费用:预付平台油卡金额")
// @Excel(name = "协议费用:预付平台油卡金额", width = 15)
// private BigDecimal oilCardOnline = BigDecimal.ZERO;
// @ApiModelProperty(value = "单车重量", required = true)
// private BigDecimal singleVehicleWeight;
//=================批量货派单相关=============================
// @ApiModelProperty(value = "需求车次")
// private Integer demandTrainNumber;
// @ApiModelProperty(value = "承运车次默认0")
// private Integer carriageNumber;
// @ApiModelProperty(value = "剩余需求车次")
// private Integer remainingDemandTrainNumber;
/**货物重量*/
// @ApiModelProperty(value = "货物重量")
// private BigDecimal goodsWeight;
// @ApiModelProperty(value = "货源剩余货物数量")
// private BigDecimal residueGoodsWeight;
// @ApiModelProperty(value = "承运货物数量")
// private BigDecimal transportGoodsWeight;
@ApiModelProperty(value = "货物信息表")
private List<TmsCargoInfoDTO> cargoInfoList;
@ApiModelProperty(value = "装货地址集合")
private List<TmsAddressMultiDTO> loadingAddressList;
@ApiModelProperty(value = "卸货地址集合")
private List<TmsAddressMultiDTO> unloadAddressList;
@ApiModelProperty("费用科目明细")
private List<TmsOrderAccount> tmsOrderAccountList;
// @ApiModelProperty(value = "来源系统")
// private String orderSource;
//========================================新增字段==========================================
@ApiModelProperty(value = "付款方类型(0-委托方,1-收货方)")
@Excel(name = "付款方类型(0-委托方,1-收货方)", width = 15)
private Integer payerType;
@ApiModelProperty(value = "收货方编码")
private String recipientId;
@ApiModelProperty(value = "收货方")
private String recipientName;
@ApiModelProperty(value = "整机编号")
private String machineNumber;
@ApiModelProperty(value = "是否库存(0-是,1-否)")
@Excel(name = "是否库存(0-是,1-否)", width = 15)
private Integer stockFlag;
@ApiModelProperty(value = "信息费")
private BigDecimal infoFee;
@ApiModelProperty(value = "订单类型(1-普货运输,2-危化运输,3-罐车运输,4-济南专线,5-江西专线)")
private Integer orderShippingType;
@ApiModelProperty(value = "单号")
private String thirdPartyOrderNumber;
@ApiModelProperty(value = "车辆类型Id")
private String vehicleTypeId;
@ApiModelProperty(value = "车辆类型名称")
private String vehicleTypeName;
@ApiModelProperty(value = "承运人Id(订单为济南专线使用)")
private String carrier;
@ApiModelProperty(value = "承运人姓名(订单为济南专线使用)")
private String carrierName;
@ApiModelProperty("运费单价")
private BigDecimal freightUnitPrice;
@ApiModelProperty("数字物流平台用户id")
private Long szwlUserId;
@ApiModelProperty(value = "信息费收款方")
private String infoFeePayee;
@ApiModelProperty(value = "信息费收款方方式(0-委托方,1-收货方,2-第三方)")
private Integer infoFeePayeeType;
@ApiModelProperty("业务员ID")
private String salesmanId;
@ApiModelProperty("业务员ID")
private String salesmanName;
@ApiModelProperty("是否报关(0:否,1:是)")
private Integer isDeclare;
@ApiModelProperty("线路")
private String route;
@ApiModelProperty("柜类型")
private String containerType;
@ApiModelProperty("柜类型名称")
private String containerTypeName;
@ApiModelProperty("卡类型")
private String cardType;
@ApiModelProperty("卡类型名称")
private String cardTypeName;
@ApiModelProperty("外来柜号")
private String externalContainerNo;
@ApiModelProperty("中转地")
private String transitPlace;
@ApiModelProperty("托运人ID")
private String shipper;
@ApiModelProperty("托运人ID")
private String customsShipper;
@ApiModelProperty("托运人电话")
private String customsShipperTel;
@ApiModelProperty("卸货单位")
private String unloadingCompany;
@ApiModelProperty("合同编号")
private String contractNo;
@ApiModelProperty("运费")
private BigDecimal freightFee;
@ApiModelProperty("卸货费")
private BigDecimal unloadingFee;
@ApiModelProperty("报关费")
private BigDecimal customsFee;
@ApiModelProperty("差货费")
private BigDecimal shortageFee;
@ApiModelProperty("杂费")
private BigDecimal miscellaneousFee;
@ApiModelProperty("其他费用")
private BigDecimal otherFee;
@ApiModelProperty("滞车费")
private BigDecimal detentionFee;
@ApiModelProperty("税率")
private BigDecimal taxRate;
@ApiModelProperty("结算币种")
private String settlementCurrency;
@ApiModelProperty("体积")
private BigDecimal volume;
@ApiModelProperty("内容详情")
private String detailContent;
@ApiModelProperty("报关线路")
private String customsRoute;
@ApiModelProperty("报关关口")
private String customsPort;
@ApiModelProperty("报关联系人")
private String customsContact;
@ApiModelProperty("报关联系人电话")
private String customsContactPhone;
@ApiModelProperty("报关备注")
private String customsRemark;
@ApiModelProperty(value = "组织ID")
private String orgId;
@ApiModelProperty(value = "所属组织")
@Excel(name = "所属组织", width = 15)
private String orgName;
@ApiModelProperty(value = "组织ID")
private Long organizationId;
@ApiModelProperty(value = "组织名称")
private String organizationName;
@ApiModelProperty(value = "上级组织ID")
private Long topOrganizationId;
@ApiModelProperty("客户编码nc")
private String customerCodeNc;
@ApiModelProperty("制单人编码nc")
private String makerCodeNc;
@ApiModelProperty("业务员编码nc")
private String salesmanCodeNc;
@ApiModelProperty(value = "单据日期")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private java.util.Date documentDate;
@ApiModelProperty("收款账户id")
private String paymentAccountId;
@ApiModelProperty("执行单id")
private String executeOrderId;
@ApiModelProperty("执行单号")
private String executeOrderNumber;
@ApiModelProperty("订单来源 0oms 1tms")
private String orderSource;
@ApiModelProperty("当前登录用户")
private LoginUser loginUser;
@ApiModelProperty("发票编号")
@Excel(name = "发票编号")
private String invoiceNumber;
@ApiModelProperty("订单号")
@Excel(name = "订单号")
private String goodsNumber;
@ApiModelProperty("业务主单")
@Excel(name = "业务主单")
private String businessMainOrder;
}
@@ -40,4 +40,17 @@ public class UserDTO extends BaseVOEntity {
@ApiModelProperty(name = "用户角色") @ApiModelProperty(name = "用户角色")
private String userRole; private String userRole;
@ApiModelProperty("路线id")
private String lineManagementId;
@ApiModelProperty("路线编码")
private String routeCode;
@ApiModelProperty("路线名称")
private String routeName;
@ApiModelProperty("配送顺序")
private String deliveryOrder;
} }
@@ -0,0 +1,293 @@
package com.mhd.system.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class UserShipperEntityFeign extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.AUTO)
@ApiModelProperty(name = "用户主表ID")
private Long shipperId;
@ApiModelProperty(name = "用户主表ID")
private Long userId;
@ApiModelProperty(name = "上级货主表ID")
private Long parentShipperId;
@ApiModelProperty(name = "货主类型:0-无状态,1-个人,2-企业,3-个体工商户,4-企业员工")
private Integer shipperType;
@ApiModelProperty(name = "货主类别:1-普通客户 2-月结客户")
private Integer shipperCategory;
@ApiModelProperty(name = "企业名称")
private String shipperEnterpriseName;
@ApiModelProperty(name = "企业统一社会信用代码")
private String shipperEnterpriseSocialCreditCode;
@ApiModelProperty(name = "企业注册电话")
private String shipperEnterprisePhone;
@ApiModelProperty(name = "企业注册地址")
private String shipperEnterpriseAddress;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "企业营业期限起")
private Date shipperEnterpriseLicenseDateFrom;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "企业营业期限止")
private Date shipperEnterpriseLicenseDateTo;
@ApiModelProperty(name = "纳税人资质")
private String shipperEnterpriseTaxpayer;
@ApiModelProperty(name = "企业营业执照是否长期:0-无状态,1-是,2-否")
private Integer shipperEnterpriseLicenseLong;
@ApiModelProperty(name = "营业执照照片")
private String shipperEnterpriseLicenseFrontUrl;
@ApiModelProperty(name = "是否法人:0-无状态,1-是,2-否")
private Integer shipperCorp;
/**
* 法人姓名
*/
@ApiModelProperty(name = "法人姓名")
private String shipperCorpName;
/** 企业法人姓名 */
@ApiModelProperty("企业法人姓名")
@Excel(name = "企业法人姓名")
private String shipperCorpLegalName;
@ApiModelProperty(name = "法人身份证号")
private String shipperCorpIdcardNumber;
@ApiModelProperty(name = "法人身份证号加密")
private String shipperCorpIdcardNumberDes;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "法人身份证有效期自")
private Date shipperCorpIdcardDateFrom;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "法人身份证有效期止")
private Date shipperCorpIdcardDateTo;
@ApiModelProperty(name = "法人身份证是否长期:0-无状态,1-是,2-否")
private Integer shipperCorpIdcardLong;
@ApiModelProperty(name = "法人身份证正面照片")
private String shipperCorpIdcardFrontUrl;
@ApiModelProperty(name = "法人身份证反面照片")
private String shipperCorpIdcardBackUrl;
@ApiModelProperty(name = "法人身份证手持照片")
private String shipperCorpIdcardInhandUrl;
@ApiModelProperty(name = "托运人个体货主认证状态:0-无状态,1-未认证,2-正在审核,3-认证通过,4-认证失败,5-认证失效")
private Integer shipperFill;
@ApiModelProperty(name = "托运人个人认证时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date shipperFillTime;
@ApiModelProperty(name = "托运人个体货主审核人员id")
private Long shipperFillAuthId;
@ApiModelProperty(name = "托运人个体货主审核人员")
private String shipperFillAuthName;
@ApiModelProperty(name = "托运人个体货主审核原因")
private String shipperFillRemark;
@ApiModelProperty(name = "托运人发货企业认证状态:0-无状态,1-未认证,2-正在审核,3-认证通过,4-认证失败,5-认证失效")
private Integer shipperEnterpriseFill;
@ApiModelProperty(name = "托运人发货企业认证时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date shipperEnterpriseFillTime;
@ApiModelProperty(name = "托运人发货企业审核人员id")
private Long shipperEnterpriselAuthId;
@ApiModelProperty(name = "托运人发货企业审核人员")
private String shipperEnterpriselAuthName;
@ApiModelProperty(name = "托运人发货企业审核原因")
private String shipperEnterpriseFillRemark;
@ApiModelProperty(name = "纳税人识别号")
private String taxpayerNumber;
@ApiModelProperty(name = "托运人发货企业审核原因")
private String taxpayerQualification;
@ApiModelProperty(name = "营业执照过期日期")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date businessLicenseDate;
@ApiModelProperty(value = "所在地区省市县名称")
private String area;
@ApiModelProperty(name = "所在地区县区编码")
private String areaId;
@ApiModelProperty(name = "详细地址")
private String detailAddress;
@ApiModelProperty(name = "行业")
private String trade;
@ApiModelProperty(name = "经营范围")
private String businessScope;
@ApiModelProperty(name = "营业期限")
private String businessTerm;
@ApiModelProperty(name = "注册地址")
private String regAddress;
@ApiModelProperty(name = "注册资本")
private String capital;
@ApiModelProperty(name = "成立日期")
private String establishDate;
@ApiModelProperty(name = "账号标识,创建后账号在e签宝平台中的唯一标识(认证授权ID-保留最新)")
private String companyAccountId ;
@ApiModelProperty(name = "用户电子签章(机构认证授权长连接)")
private String companyTemplateSeal;
@ApiModelProperty(name = "月结标识 1-是 2-否")
private Integer monthlySettlementFlag;
@ApiModelProperty(name = "货源单自动审核(1-是 2-否)")
private Integer isAutoAuditOrder;
@ApiModelProperty(name = "回单原件标记(1-需要,2-不需要)")
private Integer originalReceiptFlag;
@ApiModelProperty(name = "运费节点(0-无要求,1-确认回单,2-纸质回单)")
private Integer freightNode;
@ApiModelProperty(name = "e签宝授权认证状态(0-未授权,1-授权中,2-授权完成,3-授权失败)")
private Integer esignAuthStatus;
@ApiModelProperty(name = "e签宝跨企业授权状态(0-未授权,1-授权中,2-授权完成,3-授权失败)")
private Integer esignEnterpriseStatus;
@ApiModelProperty(name = "e签宝跨企业授权业务流程编号")
private String esignSealAuthId;
@ApiModelProperty(value = "授权额度")
private BigDecimal authorizedQuota;
@ApiModelProperty(value = "结算天数")
private Integer settlementDay;
@ApiModelProperty(value = "已使用额度")
private BigDecimal authorizedUsedAmount;
private String remark;
@ApiModelProperty(name = "数据来源:1-接口同步 2-人工新增")
private Integer dataSource;
@ApiModelProperty(name = "客户nc编码")
private String customerNcCode;
@ApiModelProperty("结算币种")
private String settlementCurrency;
@ApiModelProperty("职务/角色权限字符,控制器中定义的权限字符,如:@PreAuthorize(`@ss.hasRole('admin')`)")
private String roleCode;
@ApiModelProperty("货主/供应商/客户编码")
private String userMemberCode;
@ApiModelProperty("货主/供应商/客户名称")
private String userNameShipper;
@ApiModelProperty("联系人")
private String emergencyContactName;
@ApiModelProperty("联系电话")
private String emergencyContactPhone;
@ApiModelProperty("省市区编码,6位")
private Long userAreaCountyId;
@ApiModelProperty("省事区名称")
private String userAreaName;
@ApiModelProperty("详细地址")
private String userAreaAddress;
@ApiModelProperty("法人代表")
private String legalRepresentative;
@ApiModelProperty("统一编码")
private String unifiedCode;
@ApiModelProperty("注册电话")
private String registeredPhone;
@ApiModelProperty("注册地址")
private String registeredAddress;
@ApiModelProperty("传真")
private String fax;
@ApiModelProperty("付款银行")
private String paymentBank;
@ApiModelProperty("付款账户")
private String paymentAccount;
@ApiModelProperty("发票抬头")
private String invoiceTitle;
@ApiModelProperty("税号")
private String taxNumber;
@ApiModelProperty(name = "邮箱")
private String userEmail;
@ApiModelProperty(name = "备注")
private String userRemark;
@ApiModelProperty(name = "一级组织表ID")
private Long topOrganizationId;
@ApiModelProperty(name = "组织表ID")
private Long organizationId;
@ApiModelProperty(name = "组织名称")
private String organizationName;
@ApiModelProperty(name = "推送状态 1-未推送 2-推送中 3-推送成功 4-推送失败")
private Integer pushStatus;
@ApiModelProperty(name = "推送时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date pushTime;
@ApiModelProperty(name = "推送人")
private Long pushBy;
@ApiModelProperty(name = "推送人姓名")
private String pushByName;
@ApiModelProperty(name = "额度同步时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date limitTime;
@ApiModelProperty(name = "信用余额")
private BigDecimal creditAmount;
@ApiModelProperty("协议数量")
private Integer agreementCount;
@ApiModelProperty(name = "是否校验信用")
private String isCheckCredit;
}
@@ -0,0 +1,270 @@
package com.mhd.system.api.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.annotation.fieldsetvalue.NeedSetValue;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
public class UserShipperFeignDTO extends UserDTO {
private static final long serialVersionUID = 1L;
@ApiModelProperty(name = "角色表ID集合")
private List<Long> roleIds;
@ApiModelProperty(name = "货主表ID")
private Long shipperId;
@ApiModelProperty(name = "用户主表ID")
private Long userId;
@ApiModelProperty(name = "上级货主表ID")
private Long parentShipperId;
@ApiModelProperty(name = "货主类型:0-无状态,1-个人,2-企业")
private Integer shipperType;
@ApiModelProperty(name = "货主类别:1-普通客户 2-月结客户")
private Integer shipperCategory;
@ApiModelProperty(name = "企业名称")
private String shipperEnterpriseName;
@ApiModelProperty(name = "企业统一社会信用代码")
private String shipperEnterpriseSocialCreditCode;
@ApiModelProperty(name = "企业注册电话")
private String shipperEnterprisePhone;
@ApiModelProperty(name = "企业注册地址")
private String shipperEnterpriseAddress;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "企业营业期限起")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date shipperEnterpriseLicenseDateFrom;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "企业营业期限止")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date shipperEnterpriseLicenseDateTo;
@ApiModelProperty(name = "企业营业执照是否长期:0-无状态,1-是,2-否")
private Integer shipperEnterpriseLicenseLong;
@ApiModelProperty(name = "纳税人资质")
private String shipperEnterpriseTaxpayer;
@ApiModelProperty(name = "营业执照照片")
@NeedSetValue
private String shipperEnterpriseLicenseFrontUrl;
@ApiModelProperty(name = "是否法人:0-无状态,1-是,2-否")
private Integer shipperCorp;
/**
* 法人姓名
*/
@ApiModelProperty(name = "法人姓名")
private String shipperCorpName;
/** 企业法人姓名 */
@ApiModelProperty("企业法人姓名")
@Excel(name = "企业法人姓名")
private String shipperCorpLegalName;
@ApiModelProperty(name = "法人身份证号")
private String shipperCorpIdcardNumber;
@ApiModelProperty(name = "法人身份证号加密")
private String shipperCorpIdcardNumberDes;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "法人身份证有效期自")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date shipperCorpIdcardDateFrom;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "法人身份证有效期止")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date shipperCorpIdcardDateTo;
@ApiModelProperty(name = "法人身份证是否长期:0-无状态,1-是,2-否")
private Integer shipperCorpIdcardLong;
@ApiModelProperty(name = "法人身份证正面照片")
@NeedSetValue
private String shipperCorpIdcardFrontUrl;
@ApiModelProperty(name = "法人身份证反面照片")
@NeedSetValue
private String shipperCorpIdcardBackUrl;
@ApiModelProperty(name = "法人身份证手持照片")
@NeedSetValue
private String shipperCorpIdcardInhandUrl;
@ApiModelProperty(name = "货主审核状态:0-无状态,1-未认证,2-待审核,3-已通过,4-已驳回")
private Integer shipperAuthStatus;
@ApiModelProperty(name = "货主审核人用户姓名")
private String shipperAuthByUsername;
@ApiModelProperty(name = "货主审核时间")
private Date shipperAuthTime;
@ApiModelProperty(name = "货主审核原因")
private String shipperStatusRemark;
@ApiModelProperty(value = "创建时间")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTimeFrom;
@ApiModelProperty(value = "创建时间")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTimeTo;
@ApiModelProperty(name = "审核角色:1-个人托运人,2-企业托运人")
private Integer authType;
@ApiModelProperty(name = "新增托运人步骤(1-用户注册,2-提交认证资料,3-认证结果)")
private Integer stepFlag;
@ApiModelProperty(name = "纳税人识别号")
private String taxpayerNumber;
@ApiModelProperty(name = "托运人发货企业审核原因")
private String taxpayerQualification;
@ApiModelProperty(name = "营业执照过期日期")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date businessLicenseDate;
@ApiModelProperty(value = "所在地区省市县名称")
private String area;
@ApiModelProperty(name = "所在地区县区编码")
private String areaId;
@ApiModelProperty(name = "详细地址")
private String detailAddress;
@ApiModelProperty(name = "行业")
private String trade;
@ApiModelProperty(name = "经营范围")
private String businessScope;
@ApiModelProperty(name = "营业期限")
private String businessTerm;
@ApiModelProperty(name = "注册地址")
private String regAddress;
@ApiModelProperty(name = "注册资本")
private String capital;
@ApiModelProperty(name = "成立日期")
private String establishDate;
@ApiModelProperty(name = "账号标识,创建后账号在e签宝平台中的唯一标识")
private String companyAccountId ;
@ApiModelProperty(name = "用户电子签章")
private String companyTemplateSeal;
@ApiModelProperty(name = "月结标识 1-是 2-否")
private Integer monthlySettlementFlag;
@ApiModelProperty(name = "总授信额度")
private BigDecimal totalLimit;
@ApiModelProperty(name = "货源单自动审核(1-是 2-否)")
private Integer isAutoAuditOrder;
@ApiModelProperty(name = "托运人个体货主认证状态:0-无状态,1-未认证,2-正在审核,3-认证通过,4-认证失败,5-认证失效")
private Integer shipperFill;
@ApiModelProperty(name = "托运人发货企业认证状态:0-无状态,1-未认证,2-正在审核,3-认证通过,4-认证失败,5-认证失效")
private Integer shipperEnterpriseFill;
@ApiModelProperty(name = "回单原件标记(1-需要,2-不需要)")
private Integer originalReceiptFlag;
@ApiModelProperty(name = "运费节点(0-无要求,1-确认回单,2-纸质回单)")
private Integer freightNode;
@ApiModelProperty(name = "用户主表ID集合")
private List<Long> userIdList;
@ApiModelProperty(name = "备注信息")
private String remark;
@ApiModelProperty(name = "数据来源:1-接口同步 2-人工新增")
private Integer dataSource;
@ApiModelProperty("客户nc编码")
private String customerNcCode;
@ApiModelProperty("客户nc编码列表")
private List<UserShipperEntityFeign> customerNcCodeList;
@ApiModelProperty("组织ID")
private Long organizationId;
@ApiModelProperty("结算币种")
private String settlementCurrency;
@ApiModelProperty("货主/供应商/客户编码")
private String userMemberCode;
@ApiModelProperty("货主/供应商/客户名称")
private String userNameShipper;
@ApiModelProperty("法人代表")
private String legalRepresentative;
@ApiModelProperty("统一编码")
private String unifiedCode;
@ApiModelProperty("注册电话")
private String registeredPhone;
@ApiModelProperty("注册地址")
private String registeredAddress;
@ApiModelProperty(name = "邮箱")
private String userEmail;
@ApiModelProperty("传真")
private String fax;
@ApiModelProperty("付款银行")
private String paymentBank;
@ApiModelProperty("付款账户")
private String paymentAccount;
@ApiModelProperty("发票抬头")
private String invoiceTitle;
@ApiModelProperty("税号")
private String taxNumber;
@ApiModelProperty(value = "更新时间起")
private String updateTimeFrom;
@ApiModelProperty(value = "更新时间止")
private String updateTimeTo;
@ApiModelProperty(value = "推送时间起")
private String pushTimeFrom;
@ApiModelProperty(value = "推送时间止")
private String pushTimeTo;
@ApiModelProperty(value = "推送状态")
private Integer pushStatus;
@ApiModelProperty(name = "登录账号(2-20位)")
private String userAccount;
@ApiModelProperty(name = "登录密码(6-20位)")
private String userPassword;
@ApiModelProperty(name = "是否校验信用")
private String isCheckCredit;
}
@@ -0,0 +1,52 @@
package com.mhd.system.api.domain;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class UserShipperQueryDTO {
@ApiModelProperty(value = "页码")
private Integer pageNum = 1;
@ApiModelProperty(value = "每页数量")
private Integer pageSize = 10;
@ApiModelProperty(value = "登录账号")
private String userAccount;
@ApiModelProperty(value = "企业名称")
private String shipperEnterpriseName;
@ApiModelProperty(value = "组织ID")
private String organizationId;
@ApiModelProperty(value = "组织名称")
private String organizationName;
@ApiModelProperty(value = "创建时间起")
private String createTimeFrom;
@ApiModelProperty(value = "创建时间止")
private String createTimeTo;
@ApiModelProperty(value = "更新时间起")
private String updateTimeFrom;
@ApiModelProperty(value = "更新时间止")
private String updateTimeTo;
@ApiModelProperty(value = "货主类型")
private String shipperType;
@ApiModelProperty(value = "推送状态")
private Integer pushStatus;
@ApiModelProperty(value = "推送时间起")
private String pushTimeFrom;
@ApiModelProperty(value = "推送时间止")
private String pushTimeTo;
}
@@ -42,10 +42,10 @@ public class UserUpdateDTO extends BaseVOEntity {
private String userIdcardNumber; private String userIdcardNumber;
@ApiModelProperty(name = "身份证号加密") @ApiModelProperty(name = "身份证号加密")
private String userIdcardNumberDes; private String userIdcardNumberDes;
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "身份证有效期自") @ApiModelProperty(name = "身份证有效期自")
private Date userIdcardDateFrom; private Date userIdcardDateFrom;
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "身份证有效期至") @ApiModelProperty(name = "身份证有效期至")
private Date userIdcardDateTo; private Date userIdcardDateTo;
@ApiModelProperty(name = "身份证是否长期:0-无状态,1-是,2-否") @ApiModelProperty(name = "身份证是否长期:0-无状态,1-是,2-否")
@@ -76,7 +76,7 @@ public class UserUpdateDTO extends BaseVOEntity {
private String userWechatSessionKey; private String userWechatSessionKey;
@ApiModelProperty(name = "密码登录错误次数") @ApiModelProperty(name = "密码登录错误次数")
private Integer passwordWrongTimes; private Integer passwordWrongTimes;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(name = "最近一次登录时间") @ApiModelProperty(name = "最近一次登录时间")
private Date lastLoginTime; private Date lastLoginTime;
@ApiModelProperty(name = "最近一次登录IP") @ApiModelProperty(name = "最近一次登录IP")
@@ -89,15 +89,15 @@ public class UserUpdateDTO extends BaseVOEntity {
private int userAuthStatus; private int userAuthStatus;
@ApiModelProperty(name = "用户审核人用户姓名") @ApiModelProperty(name = "用户审核人用户姓名")
private String userAuthByUsername; private String userAuthByUsername;
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "用户审核时间") @ApiModelProperty(name = "用户审核时间")
private Date userAuthTime; private Date userAuthTime;
@ApiModelProperty(name = "加入黑名单备注(解除时需要清空)") @ApiModelProperty(name = "加入黑名单备注(解除时需要清空)")
private String userStatusRemark; private String userStatusRemark;
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "用户状态更新时间") @ApiModelProperty(name = "用户状态更新时间")
private Date userStatusTime; private Date userStatusTime;
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "用户生日") @ApiModelProperty(name = "用户生日")
private Date userBirthday; private Date userBirthday;
@ApiModelProperty(name = "用户住址信息") @ApiModelProperty(name = "用户住址信息")
@@ -116,6 +116,28 @@ public class WarehouseFeignPO extends BaseVOEntity{
@Excel(name = "是否作废: 1-否 2-是") @Excel(name = "是否作废: 1-否 2-是")
private Integer nullify; private Integer nullify;
@ApiModelProperty("任务模式")
@Excel(name = "任务模式")
private String taskMode;
@ApiModelProperty("作业模式")
@Excel(name = "作业模式")
private String workMode;
@ApiModelProperty("订单号生成规则(0-日期累加 1-历史累加)")
@Excel(name = "单号生成规则")
private String orderNoGenerateRule;
@ApiModelProperty("入库单号首字母前缀")
@Excel(name = "入库单号首字母前缀")
private String inOrderNoPrefix;
@ApiModelProperty("出库单号首字母前缀")
@Excel(name = "出库单号首字母前缀")
private String outOrderNoPrefix;
@ApiModelProperty("样品出库单号首字母前缀")
@Excel(name = "样品出库单号首字母前缀")
private String sampleOutOrderNoPrefix;
} }
@@ -0,0 +1,63 @@
package com.mhd.system.api.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* YMS登录用户信息
* @author AI
* @date 2026/05/13
*/
@Data
public class YmsLoginUser {
//登录人id
private Long id;
//登录人账号
private String username;
//登录人名字
private String nickName;
//登录人密码
private String password;
//当前登录部门code
private String orgCode;
//头像
private String avatar;
//性别(0男 1女 2未知)
private String sex;
//电子邮件
private String email;
//电话
private String phonenumber;
//状态(0正常 1停用)
private String status;
//删除标志(0代表存在 2代表删除)
private String delFlag;
//最后登录IP
private String loginIp;
//最后登录时间
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date loginDate;
//创建时间
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
//数字物流用户ID
private Long szwlUserId;
//一级组织表ID
private Long topOrganizationId;
//组织表ID
private Long organizationId;
//角色code集合
private String roleCodes;
//角色名称集合
private String roleNames;
//推广码
private String promoCode;
//账号类型 1.普通账号,2.组织账号,3.一级账号,4.平台员工,5.企业员工,6.合作商
private Integer userAccountType;
}
@@ -42,6 +42,11 @@ public class RemoteBmsFeignFallbackFactory implements FallbackFactory<BmsService
return AjaxResult.error(throwable.getMessage()); return AjaxResult.error(throwable.getMessage());
} }
@Override
public AjaxResult getCustomersInfoBySettlementEntityId(Long settlementEntityId, Long topOrganizationId) {
return AjaxResult.error(throwable.getMessage());
}
@Override @Override
public AjaxResult pushSyncData(BusinessDataPushDTO businessDataPushDTO) { public AjaxResult pushSyncData(BusinessDataPushDTO businessDataPushDTO) {
return AjaxResult.error(throwable.getMessage()); return AjaxResult.error(throwable.getMessage());
@@ -51,6 +56,16 @@ public class RemoteBmsFeignFallbackFactory implements FallbackFactory<BmsService
public AjaxResult getDocumentInfoByCodeSet(Set<String> documentTypeCodeSet) { public AjaxResult getDocumentInfoByCodeSet(Set<String> documentTypeCodeSet) {
return AjaxResult.error(throwable.getMessage()); return AjaxResult.error(throwable.getMessage());
} }
@Override
public AjaxResult businessDocumentApiSave(BusinessDataPushDTO businessDataPushDTO) {
return AjaxResult.error(throwable.getMessage());
}
@Override
public AjaxResult wholeRentSynchronizationZXF(BusinessDataPushDTO businessDataPushDTO) {
return null;
}
}; };
} }
} }
@@ -0,0 +1,100 @@
package com.mhd.system.api.factory;
import com.mhd.common.core.domain.dto.BusinessDataPushDTO;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.system.api.BmsServiceFeign;
import com.mhd.system.api.OmsServiceFeign;
import com.mhd.system.api.domain.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
/**
* @Description
* @Author zg
* @Version 1.0
* @Date 2023/11/3 14:37
*/
@Component
public class RemoteOmsFeignFallbackFactory implements FallbackFactory<OmsServiceFeign> {
private static final Logger log = LoggerFactory.getLogger(RemoteOmsFeignFallbackFactory.class);
@Override
public OmsServiceFeign create(Throwable throwable) {
log.error("系统服务调用失败:{}", throwable.getMessage());
return new OmsServiceFeign() {
@Override
public AjaxResult pushInOrder(StockInOrderTZPD stockInOrder) {
return null;
}
@Override
public AjaxResult pushInOrderDetail(InMaterialDetailTZPD inMaterialDetail) {
return null;
}
@Override
public AjaxResult pushOutOrder(StockOutOrderTZPD stockOutOrder) {
return null;
}
@Override
public AjaxResult pushOutOrderDetail(OutMaterialDetailTZPD outMaterialDetail) {
return null;
}
@Override
public CompletableFuture<Void> omsEdit(MaterialInventoryOmsParamDO materialInventoryOmsParamDO) {
return null;
}
// @Override
// public AjaxResult inventoryAdjustmentRecordInsert(InventoryAdjustmentRecord inventoryAdjustmentRecord) {
// return null;
// }
@Override
public AjaxResult getUnitList(ErpEnterpriseUnitDTO erpEnterpriseUnitDTO) {
return null;
}
@Override
public AjaxResult getCountryList(ErpCountryDTO erpCountryDTO) {
return null;
}
@Override
public AjaxResult insertGwLog(GwLogDTO gwLogDTO) {
return null;
}
@Override
public AjaxResult updateGwLog(GwLogDTO gwLogDTO) {
return null;
}
@Override
public AjaxResult batchPush(List<Long> idList) {
return null;
}
@Override
public AjaxResult batchPushByNumber(List<String> numberList) {
return null;
}
@Override
public AjaxResult saveSignature(ElectronicSignatureSyncDTO saveDTO) {
return null;
}
};
}
}
@@ -154,6 +154,11 @@ public class RemoteSystemFeignFallbackFactory implements FallbackFactory<SystemS
return AjaxResult.error("根据批次ID获取批次信息失败"); return AjaxResult.error("根据批次ID获取批次信息失败");
} }
@Override
public Object getBatchListByName(String batchName, Long organizationId) {
return AjaxResult.error("根据批次名称查询批次列表失败");
}
@Override @Override
public AjaxResult getBatchDetailListByBatchId(Long batchId) { public AjaxResult getBatchDetailListByBatchId(Long batchId) {
return AjaxResult.error("根据batchId获取对应批次详情信息失败"); return AjaxResult.error("根据batchId获取对应批次详情信息失败");
@@ -169,6 +174,11 @@ public class RemoteSystemFeignFallbackFactory implements FallbackFactory<SystemS
return AjaxResult.error("获取用户当前设置的仓库失败"); return AjaxResult.error("获取用户当前设置的仓库失败");
} }
@Override
public AjaxResult getWarehouseInfoFromDb(Long correlationId) {
return AjaxResult.error("从数据库获取用户当前设置的仓库失败");
}
@Override @Override
public AjaxResult getWarehouseInfoByWarehouseId(@PathVariable("warehouseId") Long warehouseId) { public AjaxResult getWarehouseInfoByWarehouseId(@PathVariable("warehouseId") Long warehouseId) {
return AjaxResult.error("根据仓库ID获取仓库信息失败"); return AjaxResult.error("根据仓库ID获取仓库信息失败");
@@ -194,6 +204,11 @@ public class RemoteSystemFeignFallbackFactory implements FallbackFactory<SystemS
return AjaxResult.error("根据包装ID和单位编码获取信息失败"); return AjaxResult.error("根据包装ID和单位编码获取信息失败");
} }
@Override
public Object getPackList(String packCode, String packName, Long organizationId) {
return AjaxResult.error("根据包装编码/名称查询包装列表失败");
}
@Override @Override
public AjaxResult getPlatformInfoByPlatformId(Long platformId) { public AjaxResult getPlatformInfoByPlatformId(Long platformId) {
return AjaxResult.error("根据platformId获取对应月台信息失败"); return AjaxResult.error("根据platformId获取对应月台信息失败");
@@ -229,6 +244,11 @@ public class RemoteSystemFeignFallbackFactory implements FallbackFactory<SystemS
return AjaxResult.error("获取科目信息失败" + throwable.getMessage()); return AjaxResult.error("获取科目信息失败" + throwable.getMessage());
} }
@Override
public AjaxResult getSubInfoByCode2(String subjectCode, Long topOrganizationId) {
return AjaxResult.error("获取科目信息失败" + throwable.getMessage());
}
@Override @Override
public AjaxResult getProjectByCode(String projectCode) { public AjaxResult getProjectByCode(String projectCode) {
return AjaxResult.error("获取项目信息失败" + throwable.getMessage()); return AjaxResult.error("获取项目信息失败" + throwable.getMessage());
@@ -254,15 +274,44 @@ public class RemoteSystemFeignFallbackFactory implements FallbackFactory<SystemS
return AjaxResult.error("查询失败"); return AjaxResult.error("查询失败");
} }
@Override
public AjaxResult getGeneralContract() {
return AjaxResult.error("查询失败");
}
@Override @Override
public AjaxResult getInfoByCustomer(String settlementCustomersCode, Integer contractType) { public AjaxResult getInfoByCustomer(String settlementCustomersCode, Integer contractType) {
return AjaxResult.error("查询失败"); return AjaxResult.error("查询失败");
} }
@Override
public AjaxResult getInfoByCustomerAndSecondSubjectCode(String settlementCustomersCode, Integer contractType, String firstSubjectCode, Long topOrganizationId, Long organizationId) {
return null;
}
@Override
public AjaxResult getInfoByCustomer2(String settlementCustomersCode, Integer contractType, Long topOrganizationId) {
return AjaxResult.error("查询失败");
}
@Override
public AjaxResult getInfoByCustomerAndOrganizationId(String settlementCustomersCode, Integer contractType, Long topOrganizationId, Long organizationId) {
return null;
}
@Override @Override
public AjaxResult queryList() { public AjaxResult queryList() {
return AjaxResult.error("查询失败"); return AjaxResult.error("查询失败");
} }
@Override
public AjaxResult wholeRentSynchronization() {
return AjaxResult.error("查询失败");
}
@Override
public AjaxResult matchForMaterialImport(String keyword, Long organizationId) {
return AjaxResult.error("物料分类匹配失败");
}
}; };
} }
} }
@@ -5,8 +5,11 @@ import com.mhd.common.core.domain.dto.StatisticalMattersDTO;
import com.mhd.common.core.domain.dto.UserDataPermissionQueryDTO; import com.mhd.common.core.domain.dto.UserDataPermissionQueryDTO;
import com.mhd.common.core.domain.dto.UserDriverDTO; import com.mhd.common.core.domain.dto.UserDriverDTO;
import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
import com.mhd.system.api.UserServiceFeign; import com.mhd.system.api.UserServiceFeign;
import com.mhd.system.api.domain.UserDTO; import com.mhd.system.api.domain.UserDTO;
import com.mhd.system.api.domain.UserShipperFeignDTO;
import com.mhd.system.api.domain.UserShipperQueryDTO;
import com.mhd.system.api.domain.UserUpdateDTO; import com.mhd.system.api.domain.UserUpdateDTO;
import com.mhd.system.api.model.LoginUser; import com.mhd.system.api.model.LoginUser;
import com.mhd.common.core.domain.entity.R; import com.mhd.common.core.domain.entity.R;
@@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -135,6 +140,11 @@ public class RemoteUserFeignFallbackFactory implements FallbackFactory<UserServi
return AjaxResult.error("获取租户托运人失败"); return AjaxResult.error("获取租户托运人失败");
} }
@Override
public AjaxResult<?> userShipperListAllByOrg(Long orgCode) {
return null;
}
@Override @Override
public AjaxResult<?> userDriverListAll() { public AjaxResult<?> userDriverListAll() {
return AjaxResult.error("获取租户承运人失败"); return AjaxResult.error("获取租户承运人失败");
@@ -165,6 +175,11 @@ public class RemoteUserFeignFallbackFactory implements FallbackFactory<UserServi
return R.fail("获取组织用户失败:" + throwable.getMessage()); return R.fail("获取组织用户失败:" + throwable.getMessage());
} }
@Override
public R<LoginUser> getUserByUserAccount(String userAccount) {
return R.fail("获取用户失败:" + throwable.getMessage());
}
@Override @Override
public R<LoginUser> getUserByTopOrganizationUserPhone(@RequestBody UserDTO userDTO, String source) { public R<LoginUser> getUserByTopOrganizationUserPhone(@RequestBody UserDTO userDTO, String source) {
return R.fail("获取组织用户失败:" + throwable.getMessage()); return R.fail("获取组织用户失败:" + throwable.getMessage());
@@ -181,6 +196,37 @@ public class RemoteUserFeignFallbackFactory implements FallbackFactory<UserServi
public AjaxResult<?> getShipperByUserId(Long userId) { public AjaxResult<?> getShipperByUserId(Long userId) {
return AjaxResult.error("查询失败" + throwable.getMessage()); return AjaxResult.error("查询失败" + throwable.getMessage());
} }
@Override
public AjaxResult updateLineManagement(UserDTO userDTO) {
return AjaxResult.error("失败" + throwable.getMessage());
}
@Override
public TableDataInfo userShipperList(UserShipperQueryDTO userShipperQueryDTO) {
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setData(new ArrayList<>());
tableDataInfo.setTotal(0);
tableDataInfo.setCode(500);
tableDataInfo.setMsg("查询失败:" + throwable.getMessage());
return tableDataInfo;
}
@Override
public AjaxResult<?> updatePushStatus(Long shipperId, Integer pushStatus, String pushTime, Long pushBy, String pushByName, Long organizationId) {
return AjaxResult.error("更新失败" + throwable.getMessage());
}
@Override
public AjaxResult getCustomerNcCodeBatch(List<Long> shipperIdList) {
return AjaxResult.error("更新失败" + throwable.getMessage());
}
@Override
public AjaxResult querySaleCreditLimitFeign(UserShipperFeignDTO userShipperDTO) {
return null;
}
}; };
} }
} }
@@ -16,6 +16,7 @@ import com.mhd.common.core.utils.sms.Result;
import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.system.api.WlhyServiceFeign; import com.mhd.system.api.WlhyServiceFeign;
import com.mhd.system.api.domain.*; import com.mhd.system.api.domain.*;
import com.mhd.system.api.domain.TmsOrderAddDTO;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.cloud.openfeign.FallbackFactory;
@@ -519,6 +520,22 @@ public class RemoteWlhyFallbackFactory implements FallbackFactory<WlhyServiceFei
return res; return res;
} }
@Override
public R<List<TmsMakeOutInvoice>> selectMakeOutInvoiceListByReconciliation(ReconciliationDTO reconciliationDTO) {
R<List<TmsMakeOutInvoice>> res = new R<>();
res.setMsg("查询失败"+cause.getMessage());
res.setCode(R.FAIL);
return res;
}
@Override
public R<List<TmsMakeOutInvoiceItem>> selectMakeOutInvoiceItemList(TmsMakeOutInvoice tmsMakeOutInvoice) {
R<List<TmsMakeOutInvoiceItem>> res = new R<>();
res.setMsg("查询失败"+cause.getMessage());
res.setCode(R.FAIL);
return res;
}
@Override @Override
public Result<?> queryById(String id) { public Result<?> queryById(String id) {
return null; return null;
@@ -533,6 +550,16 @@ public class RemoteWlhyFallbackFactory implements FallbackFactory<WlhyServiceFei
public AjaxResult cancelIssueDocuments(String executeOrderId) { public AjaxResult cancelIssueDocuments(String executeOrderId) {
return AjaxResult.error(cause.getMessage()); return AjaxResult.error(cause.getMessage());
} }
@Override
public AjaxResult<?> queryList(Integer pageNo, Integer pageSize, String pushStatus, String organizationId) {
return AjaxResult.error(cause.getMessage());
}
@Override
public void updateExchangeRatePushStatus(String id, Integer pushStatus, String pushTime, Long pushBy, String pushByName, String organization) {
}
}; };
} }
} }
@@ -2,17 +2,18 @@ package com.mhd.system.api.factory;
import com.mhd.common.core.domain.entity.R; import com.mhd.common.core.domain.entity.R;
import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
import com.mhd.system.api.WlhyServiceFeign; import com.mhd.system.api.WlhyServiceFeign;
import com.mhd.system.api.WmsServiceFeign; import com.mhd.system.api.WmsServiceFeign;
import com.mhd.system.api.domain.MaterialBaseInfoFeign; import com.mhd.system.api.domain.*;
import com.mhd.system.api.domain.MaterialInventoryDTO;
import com.mhd.system.api.domain.NoticeOrderDTO;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@@ -54,6 +55,76 @@ public class RemoteWmsFallbackFactory implements FallbackFactory<WmsServiceFeign
public AjaxResult materialInventoryApiListAll(MaterialInventoryDTO materialInventoryDTO) { public AjaxResult materialInventoryApiListAll(MaterialInventoryDTO materialInventoryDTO) {
return AjaxResult.error(cause.getMessage()); return AjaxResult.error(cause.getMessage());
} }
@Override
public void omsOutOrderAdd(StockOutOrder stockOutOrder) {
}
@Override
public void omsOutOrderAddDetail(List<OutMaterialDetail> outMaterialDetails) {
}
@Override
public void omsOutOrderAddDeliveryDetailsLink(List<DeliveryDetailsLink> deliveryDetailsLinks) {
}
@Override
public void omsInOrderAdd(StockInOrder stockInOrder) {
}
@Override
public void omsCancelExecutionOrder(StockOutOrder stockOutOrder) {
}
@Override
public void omsAutoAssign(StockOutOrderDTO stockOutOrderDTO) {
}
@Override
public AjaxResult execution(StockOutOrderDTO stockOutOrderDTO) {
return AjaxResult.error(cause.getMessage());
}
@Override
public void omsInOrderAddDetail(List<InMaterialDetail> inMaterialDetails) {
}
@Override
public TableDataInfo getMaterialBaseInfoList(MaterialInfoDTO materialInfoDTO) {
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setData(new ArrayList<>());
tableDataInfo.setTotal(0);
tableDataInfo.setCode(500);
return tableDataInfo;
}
@Override
public AjaxResult<?> updateMaterialPushStatus(Long materialBaseInfoId, Integer pushStatus, String pushTime, Long pushBy, String pushByName) {
return AjaxResult.error(cause.getMessage());
}
@Override
public TableDataInfo getBatchByIds(List<Long> materialBaseInfoIds) {
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setData(new ArrayList<>());
tableDataInfo.setTotal(0);
tableDataInfo.setCode(500);
return tableDataInfo;
}
@Override
public AjaxResult genPickingOrderByOms(StockOutOrderDTO stockOutOrderDTO) {
return null;
}
@Override
public AjaxResult batchSignWms(SignatureBatchFeignDTO dto) {
log.error("WMS批量签名调用失败");
return AjaxResult.error("WMS批量签名调用失败:" + cause.getMessage());
}
}; };
} }
} }
@@ -11,6 +11,7 @@ import com.mhd.system.api.domain.MallOAuthToken;
import com.mhd.system.api.domain.mall.BaseUser; import com.mhd.system.api.domain.mall.BaseUser;
import com.mhd.system.api.domain.SysUser; import com.mhd.system.api.domain.SysUser;
import com.mhd.system.api.domain.WlhyLoginUser; import com.mhd.system.api.domain.WlhyLoginUser;
import com.mhd.system.api.domain.YmsLoginUser;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@@ -87,6 +88,11 @@ public class LoginUser implements Serializable
*/ */
private WlhyLoginUser wlhyLoginUser; private WlhyLoginUser wlhyLoginUser;
/**
* YMS用户信息
*/
private YmsLoginUser ymsLoginUser;
/** /**
* websocket地址 * websocket地址
*/ */
@@ -162,4 +168,16 @@ public class LoginUser implements Serializable
@ApiModelProperty("仓库信息") @ApiModelProperty("仓库信息")
private WarehousePO warehousePO; private WarehousePO warehousePO;
@ApiModelProperty("路线id")
private String lineManagementId;
@ApiModelProperty("路线编码")
private String routeCode;
@ApiModelProperty("路线名称")
private String routeName;
@ApiModelProperty("配送顺序")
private String deliveryOrder;
} }
@@ -40,6 +40,7 @@ import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@@ -107,11 +108,14 @@ public class TokenLoginApplicationService {
//租户一级组织ID //租户一级组织ID
SysTenantsPo sysTenantsPo = JSON.parseObject(JSON.toJSONString(topOrganizationIdR.get("data")), SysTenantsPo.class); SysTenantsPo sysTenantsPo = JSON.parseObject(JSON.toJSONString(topOrganizationIdR.get("data")), SysTenantsPo.class);
Long topOrganizationId = sysTenantsPo.getOrganizationId(); Long topOrganizationId = sysTenantsPo.getOrganizationId();
// 获取用户选择的组织ID,未选则使用一级组织ID
Long selectedOrgId = loginDTO.getOrganizationId();
Long organizationId = (selectedOrgId != null) ? selectedOrgId : topOrganizationId;
//获取用户信息,组装dto //获取用户信息,组装dto
UserDTO userDTO = new UserDTO(); UserDTO userDTO = new UserDTO();
userDTO.setUserPhone(userPhone); userDTO.setUserPhone(userPhone);
userDTO.setTopOrganizationId(topOrganizationId); userDTO.setTopOrganizationId(topOrganizationId);
userDTO.setOrganizationId(topOrganizationId); userDTO.setOrganizationId(organizationId);
// 查询用户信息,查询组织下用户是否存在 // 查询用户信息,查询组织下用户是否存在
R<LoginUser> userResult = userServiceFeign.getUserByTopOrganizationUserPhone(userDTO, SecurityConstants.INNER); R<LoginUser> userResult = userServiceFeign.getUserByTopOrganizationUserPhone(userDTO, SecurityConstants.INNER);
if (R.FAIL == userResult.getCode()) { if (R.FAIL == userResult.getCode()) {
@@ -153,7 +157,8 @@ public class TokenLoginApplicationService {
}else { }else {
userDTO.setBusinessType(4); userDTO.setBusinessType(4);
} }
userDTO.setOrganizationName(sysTenantsPo.getOrganizationName()); userDTO.setOrganizationName(StringUtils.isNotBlank(loginDTO.getOrganizationName())
? loginDTO.getOrganizationName() : sysTenantsPo.getOrganizationName());
userResult = userServiceFeign.registerAddUser(userDTO, SecurityConstants.INNER); userResult = userServiceFeign.registerAddUser(userDTO, SecurityConstants.INNER);
userInfo = userResult.getData(); userInfo = userResult.getData();
} else { } else {
@@ -379,6 +384,10 @@ public class TokenLoginApplicationService {
throw new ServiceException("用户不存在/密码错误"); throw new ServiceException("用户不存在/密码错误");
} }
} }
// 验证码登录时 userInfo.getUserPo() 可能为null,加保护
if (userInfo == null || userInfo.getUserPo() == null || userInfo.getUserPo().getOrganizationId() == null) {
throw new ServiceException("登录用户组织信息不完整,请联系管理员");
}
R<OrganizationPo> organizationInfo = organizationServiceFeign.getInfoForIdList(userInfo.getUserPo().getOrganizationId()); R<OrganizationPo> organizationInfo = organizationServiceFeign.getInfoForIdList(userInfo.getUserPo().getOrganizationId());
if (ObjectUtil.isNull(organizationInfo) || ObjectUtil.isNull(organizationInfo.getData())) { if (ObjectUtil.isNull(organizationInfo) || ObjectUtil.isNull(organizationInfo.getData())) {
throw new ServiceException("登录用户组织不存在"); throw new ServiceException("登录用户组织不存在");
@@ -569,4 +578,29 @@ public class TokenLoginApplicationService {
sysPasswordService.validateByWms(userPo, verificationCode, 1); sysPasswordService.validateByWms(userPo, verificationCode, 1);
return userInfo; return userInfo;
} }
/**
* 根据域名获取组织信息(免Token,供司机APP注册时选择组织用)
*/
public AjaxResult getOrganizationByPath(String path) {
if (StringUtils.isBlank(path)) {
return AjaxResult.error("域名不能为空");
}
try {
AjaxResult result = organizationServiceFeign.getOrganizationByPath(path);
if (ObjectUtil.isNull(result) || ObjectUtil.isNull(result.get("data"))) {
return AjaxResult.error("未找到对应组织");
}
SysTenantsPo sysTenantsPo = JSON.parseObject(JSON.toJSONString(result.get("data")), SysTenantsPo.class);
Long topOrganizationId = sysTenantsPo.getOrganizationId();
// 返回一级组织ID和名称,前端可据此展示组织选择
Map<String, Object> data = new java.util.HashMap<>();
data.put("organizationId", topOrganizationId);
data.put("organizationName", sysTenantsPo.getOrganizationName());
return AjaxResult.success(data);
} catch (Exception e) {
log.error("获取组织信息失败, path={}", path, e);
return AjaxResult.error("获取组织信息失败:" + e.getMessage());
}
}
} }
@@ -34,4 +34,10 @@ public class LoginDTO {
@ApiModelProperty(name = "APP包名") @ApiModelProperty(name = "APP包名")
private String appMark; private String appMark;
@ApiModelProperty(name = "组织ID(司机选择组织,不传默认一级组织)")
private Long organizationId;
@ApiModelProperty(name = "组织名称(司机选择组织时传入)")
private String organizationName;
} }
@@ -9,11 +9,13 @@ import com.mhd.common.core.domain.po.UserPo;
import com.mhd.common.core.utils.JwtUtils; import com.mhd.common.core.utils.JwtUtils;
import com.mhd.common.core.utils.StringUtils; import com.mhd.common.core.utils.StringUtils;
import com.mhd.common.core.web.controller.BaseController; import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.security.annotation.RepeatSubmit; import com.mhd.common.security.annotation.RepeatSubmit;
import com.mhd.common.security.auth.AuthUtil; import com.mhd.common.security.auth.AuthUtil;
import com.mhd.common.security.utils.SecurityUtils; import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.model.LoginUser; import com.mhd.system.api.model.LoginUser;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@@ -75,6 +77,15 @@ public class AppTokenController extends BaseController {
return R.ok(); return R.ok();
} }
/**
* 根据域名获取组织信息免Token供司机APP注册时选择组织用
*/
@ApiOperation("根据域名获取组织信息")
@GetMapping("/getOrganizationByPath/{path}")
public AjaxResult getOrganizationByPath(@PathVariable("path") String path) {
return tokenLoginApplicationService.getOrganizationByPath(path);
}
/** /**
* @Description wms 新登录接口 * @Description wms 新登录接口
@@ -0,0 +1,90 @@
package com.mhd.auth.system.controller;
import com.mhd.auth.system.service.SsoAuthorizeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Map;
/**
* SSO单点登录控制器
* 子系统端实现接收中台传递的签名参数验签后自动登录并重定向
*
* @author mhd
*/
@Slf4j
@RestController
@RequestMapping("/auth")
@CrossOrigin
public class SsoAuthorizeController {
@Autowired
private SsoAuthorizeService ssoAuthorizeService;
/**
* SSO单点登录授权接口
* 中台点击子系统链接后将签名参数传递给此接口
* 验签通过后自动登录并重定向到前端页面携带token
*
* @param signature 签名信息Base64编码后再URL编码签名源数据格式appkey=xxx&account=xxx&timestamp=xxxxxx
* @param appkey 对方的应用key值固定为nanguang
* @param account 账号
* @param timestamp 当前时间戳毫秒用于防止签名被盗用超过24小时视为失效
*/
@GetMapping("/sso-authorize")
public void ssoAuthorize(@RequestParam("signature") String signature,
@RequestParam("appkey") String appkey,
@RequestParam("account") String account,
@RequestParam("timestamp") Long timestamp,
HttpServletResponse response) throws IOException {
log.info("SSO单点登录请求, appkey={}, account={}, timestamp={}", appkey, account, timestamp);
String redirectUrl = ssoAuthorizeService.getRedirectUrl();
try {
// 1. 校验时间戳是否超过24小时防止签名被盗用
long ONE_DAY_MILLIS = 24L * 60 * 60 * 1000;
long currentTime = System.currentTimeMillis();
if ((currentTime - timestamp) > ONE_DAY_MILLIS) {
log.warn("SSO签名已过期, appkey={}, account={}, timestamp={}, 距今{}小时",
appkey, account, timestamp, (currentTime - timestamp) / (60 * 60 * 1000));
response.sendRedirect(redirectUrl + "?msg=" + URLEncoder.encode("登录失败:签名已超过24小时,请重新发起", StandardCharsets.UTF_8.name()));
return;
}
// 2. 构造签名源数据包含timestamp
String sourceData = "appkey=" + appkey + "&account=" + account + "&timestamp=" + timestamp;
// 3. 验证签名
boolean verifyResult = ssoAuthorizeService.verifySignature(sourceData, signature);
if (!verifyResult) {
log.warn("SSO验签失败, appkey={}, account={}, timestamp={}", appkey, account, timestamp);
response.sendRedirect(redirectUrl + "?msg=" + URLEncoder.encode("登录失败:签名验证不通过", StandardCharsets.UTF_8.name()));
return;
}
// 4. 验签通过使用account进行登录获取token
Map<String, Object> loginResult = ssoAuthorizeService.ssoLogin(account);
String accessToken = (String) loginResult.get("access_token");
// 5. 重定向到前端页面token通过URL参数传递
// 前端页面需读取URL中的token参数并存入localStorage
log.info("SSO单点登录成功, account={}", account);
log.info("SSO单点登录成功, account={}, token={} , redirectUrl={}", account, accessToken, redirectUrl);
response.sendRedirect(redirectUrl + "?token=" + URLEncoder.encode(accessToken, StandardCharsets.UTF_8.name()));
} catch (Exception e) {
log.error("SSO单点登录异常, appkey={}, account={}, timestamp={}", appkey, account, timestamp, e);
response.sendRedirect(redirectUrl + "?msg=" + URLEncoder.encode("登录失败:" + e.getMessage(), StandardCharsets.UTF_8.name()));
}
}
}
@@ -0,0 +1,200 @@
package com.mhd.auth.system.service;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.mhd.common.core.constant.CacheConstants;
import com.mhd.common.core.constant.Constants;
import com.mhd.common.core.constant.SecurityConstants;
import com.mhd.common.core.domain.entity.R;
import com.mhd.common.core.domain.po.OrganizationPo;
import com.mhd.common.core.domain.po.RolePO;
import com.mhd.common.core.domain.po.UserPo;
import com.mhd.common.core.enums.UserStatus;
import com.mhd.common.core.exception.ServiceException;
import com.mhd.common.core.utils.ServletUtils;
import com.mhd.common.core.utils.ip.IpUtil;
import com.mhd.common.core.utils.ip.IpUtils;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.log.service.AsyncLogService;
import com.mhd.common.security.service.TokenService;
import com.mhd.system.api.SystemServiceFeign;
import com.mhd.system.api.UserServiceFeign;
import com.mhd.system.api.domain.UserDTO;
import com.mhd.system.api.domain.UserUpdateDTO;
import com.mhd.system.api.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.security.KeyFactory;
import java.security.PublicKey;
import java.security.Signature;
import java.util.Base64;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* SSO单点登录服务
*
* @author mhd
*/
@Slf4j
@Service
public class SsoAuthorizeService {
@Value("${sso.public-key}")
private String publicKeyStr;
@Value("${sso.redirect-url}")
private String redirectUrl;
@Resource
private UserServiceFeign userServiceFeign;
@Resource
private TokenService tokenService;
@Autowired
private AsyncLogService asyncLogService;
@Autowired
private SystemServiceFeign systemServiceFeign;
@Resource
private com.mhd.auth.app.infrastructure.feign.OrganizationServiceFeign organizationServiceFeign;
/**
* 验证RSA签名
*
* @param sourceData 签名源数据格式appkey=xxx&account=xxx&timestamp=xxxxxx
* @param signatureStr Base64编码的签名可能经过URL编码
* @return 验签结果
*/
public boolean verifySignature(String sourceData, String signatureStr) {
try {
// Spring @RequestParam 已自动完成 URL 解码此处直接 Base64 解码即可
byte[] signatureBytes = Base64.getDecoder().decode(signatureStr);
PublicKey publicKey = generatePublicKey(publicKeyStr);
Signature signature = Signature.getInstance("SHA256withRSA");
signature.initVerify(publicKey);
signature.update(sourceData.getBytes("UTF-8"));
return signature.verify(signatureBytes);
} catch (Exception e) {
log.error("SSO验签失败, sourceData={}, signature={}", sourceData, signatureStr, e);
return false;
}
}
/**
* 根据公钥字符串生成PublicKey对象
*/
private PublicKey generatePublicKey(String keyStr) throws Exception {
// 去除头尾标记和空白字符
String publicKeyContent = keyStr
.replace("-----BEGIN PUBLIC KEY-----", "")
.replace("-----END PUBLIC KEY-----", "")
.replaceAll("\\s+", "");
byte[] keyBytes = Base64.getDecoder().decode(publicKeyContent);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
java.security.spec.X509EncodedKeySpec keySpec = new java.security.spec.X509EncodedKeySpec(keyBytes);
return keyFactory.generatePublic(keySpec);
}
/**
* SSO登录根据account查找用户并创建token
*
* @param account 账号
* @return 包含token等信息的Map
*/
public Map<String, Object> ssoLogin(String account) {
// 根据账号查找用户SSO登录不区分组织仅通过userAccount查询
R<LoginUser> userResult = userServiceFeign.getUserByUserAccount(account);
if (R.FAIL == userResult.getCode()) {
throw new ServiceException(userResult.getMsg());
}
if (userResult.getData() == null) {
throw new ServiceException("SSO登录用户不存在:" + account);
}
LoginUser userInfo = userResult.getData();
UserPo userPo = userInfo.getUserPo();
// 校验用户状态
if (userPo == null) {
throw new ServiceException("SSO登录用户信息异常:" + account);
}
// 删除标记
if (UserStatus.DELETED.getCode().equals(String.valueOf(userPo.getDelFlag()))) {
throw new ServiceException("对不起,您的账号:" + account + " 已被删除");
}
// 用户状态
if (UserStatus.DELETED.getCode().equals(String.valueOf(userPo.getUserStatus()))) {
throw new ServiceException("对不起,您的账号:" + account + " 已停用");
}
// 获取组织信息
com.mhd.common.core.domain.entity.R<OrganizationPo> organizationInfo = organizationServiceFeign.getInfoForIdList(userPo.getOrganizationId());
if (ObjectUtil.isNull(organizationInfo) || ObjectUtil.isNull(organizationInfo.getData())) {
throw new ServiceException("登录用户组织不存在");
}
userInfo.setOrganizationPo(organizationInfo.getData());
// 查询用户角色
AjaxResult roleListAjaxResult = userServiceFeign.getRoleListByUserId(userPo.getUserId());
if ("200".equals(String.valueOf(roleListAjaxResult.get("code"))) && ObjectUtil.isNotNull(roleListAjaxResult.get("data"))) {
List<RolePO> rolePOS = JSONUtil.toList(JSONUtil.toJsonStr(roleListAjaxResult.get("data")), RolePO.class);
if (rolePOS != null && !rolePOS.isEmpty()) {
userInfo.setRoleList(rolePOS.stream().map(RolePO::getRoleName).collect(Collectors.toList()));
userInfo.setRoleIdList(rolePOS.stream().map(RolePO::getRoleId).collect(Collectors.toList()));
}
}
// 更新登录信息
UserUpdateDTO userUpdateDTO = new UserUpdateDTO();
userUpdateDTO.setLastLoginTime(new Date());
userUpdateDTO.setLastLoginIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
userUpdateDTO.setUserName(account);
userServiceFeign.updateWhenLogin(userUpdateDTO, SecurityConstants.INNER);
// 创建token
Map<String, Object> result = tokenService.createTokenApi(userInfo);
// 记录登录日志
recordLogininfor(userPo, Constants.LOGIN_SUCCESS, "SSO单点登录成功", 1);
return result;
}
/**
* 记录登录信息
*/
private void recordLogininfor(UserPo userPo, String status, String message, Integer behaviorType) {
com.mhd.system.api.domain.SysLogininforPo logininfor = new com.mhd.system.api.domain.SysLogininforPo();
logininfor.setUserAccount(userPo.getUserAccount());
logininfor.setUserName(userPo.getUserName());
logininfor.setIpaddr(IpUtils.getIpAddr(ServletUtils.getRequest()));
logininfor.setLocation(StrUtil.isNotEmpty(logininfor.getIpaddr()) ? IpUtil.getLocationSplicing(logininfor.getIpaddr()) : "");
logininfor.setBehaviorType(behaviorType);
logininfor.setMsg(message);
logininfor.setOrganizationId(userPo.getOrganizationId());
logininfor.setOrganizationName(userPo.getOrganizationName());
logininfor.setTopOrganizationId(userPo.getTopOrganizationId());
logininfor.setAccessTime(cn.hutool.core.date.DateUtil.date());
if (org.apache.commons.lang3.StringUtils.equalsAny(status, Constants.LOGIN_SUCCESS, Constants.LOGOUT, Constants.REGISTER)) {
logininfor.setStatus(Constants.LOGIN_SUCCESS_STATUS);
} else if (Constants.LOGIN_FAIL.equals(status)) {
logininfor.setStatus(Constants.LOGIN_FAIL_STATUS);
}
asyncLogService.saveLogininfor(logininfor);
}
public String getRedirectUrl() {
return redirectUrl;
}
}
@@ -26,6 +26,7 @@ import com.mhd.common.log.service.AsyncLogService;
import com.mhd.common.redis.service.RedisService; import com.mhd.common.redis.service.RedisService;
import com.mhd.system.api.*; import com.mhd.system.api.*;
import com.mhd.system.api.domain.*; import com.mhd.system.api.domain.*;
import com.mhd.system.api.domain.YmsLoginUser;
import com.mhd.system.api.domain.mall.SysTenant; import com.mhd.system.api.domain.mall.SysTenant;
import com.mhd.system.api.domain.mall.UserInfo; import com.mhd.system.api.domain.mall.UserInfo;
import com.mhd.system.api.domain.mall.UserInfoLoginDTO; import com.mhd.system.api.domain.mall.UserInfoLoginDTO;
@@ -70,6 +71,8 @@ public class SysLoginService {
private UserServiceFeign userServiceFeign; private UserServiceFeign userServiceFeign;
@Resource @Resource
private WlhyServiceFeign wlhyServiceFeign; private WlhyServiceFeign wlhyServiceFeign;
@Resource
private YmsServiceFeign ymsServiceFeign;
@Resource @Resource
private RedisService redisService; private RedisService redisService;
@@ -459,6 +462,17 @@ public class SysLoginService {
userInfo.setWlhyLoginUser(wlhyLoginUserR.getData()); userInfo.setWlhyLoginUser(wlhyLoginUserR.getData());
} }
} }
// 获取YMS登录用户基本信息
try {
R<YmsLoginUser> ymsLoginUserR = ymsServiceFeign.getYmsUserInfo(userInfo.getUserPo().getUserId());
if (ymsLoginUserR.getCode() == R.SUCCESS && ymsLoginUserR.getData() != null) {
userInfo.setYmsLoginUser(ymsLoginUserR.getData());
log.info("获取YMS用户信息成功,userId: {}", userInfo.getUserPo().getUserId());
}
} catch (Exception e) {
// 获取YMS用户信息失败时记录日志但不影响登录
log.warn("获取YMS用户信息失败,但不影响登录: {}", e.getMessage());
}
if(mallFlag == 1){ if(mallFlag == 1){
/*单点登录获取商城鉴权 /*单点登录获取商城鉴权
* 根据用户角色判断需要鉴权的服务 * 根据用户角色判断需要鉴权的服务
@@ -536,11 +550,11 @@ public class SysLoginService {
throw new ServiceException("请输入手机号和短信验证码"); throw new ServiceException("请输入手机号和短信验证码");
} }
//调用工具类校验校验手机号格式错误 // //调用工具类校验校验手机号格式错误
if (!RegexUtil.isPhoneLegal(userPhone)) { // if (!RegexUtil.isPhoneLegal(userPhone)) {
recordLogininfor(userPhone, Constants.LOGIN_FAIL, UserError.USER_PHONE_REG_ERROR.errmsg(), 1); // recordLogininfor(userPhone, Constants.LOGIN_FAIL, UserError.USER_PHONE_REG_ERROR.errmsg(), 1);
throw new DigitalLogisticsException(UserError.USER_PHONE_REG_ERROR); // throw new DigitalLogisticsException(UserError.USER_PHONE_REG_ERROR);
} // }
//根据域名获取一级组织ID //根据域名获取一级组织ID
AjaxResult topOrganizationIdR = organizationServiceFeign.getOrganizationByPath(path, SecurityConstants.INNER); AjaxResult topOrganizationIdR = organizationServiceFeign.getOrganizationByPath(path, SecurityConstants.INNER);
+23 -3
View File
@@ -12,9 +12,10 @@ spring:
cloud: cloud:
nacos: nacos:
discovery: discovery:
server-addr: 127.0.0.1:8848 # server-addr: 127.0.0.1:8848
# 线上测试环境配置 容器名+端口号 # 线上测试环境配置 容器名+端口号
# server-addr: 10.102.192.5:6848 # server-addr: 10.33.0.129:6010
server-addr: 10.102.192.31:6848
username: nacos username: nacos
password: manhuoda@2023 password: manhuoda@2023
#线上正式环境 #线上正式环境
@@ -22,7 +23,10 @@ spring:
# username: nacos # username: nacos
# password: manhuoda@2023 # password: manhuoda@2023
config: config:
server-addr: 127.0.0.1:8848 # server-addr: 127.0.0.1:8848
server-addr: 10.102.192.31:6848
# 测试环境配置 容器名+端口号
# server-addr: 10.33.0.129:6010
# 线上测试环境配置 容器名+端口号 # 线上测试环境配置 容器名+端口号
# server-addr: 10.102.192.5:6848 # server-addr: 10.102.192.5:6848
username: nacos username: nacos
@@ -33,3 +37,19 @@ spring:
# 共享配置 # 共享配置
shared-configs: shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
# SSO单点登录配置
sso:
# RSA公钥(由中台openssl私钥导出)
public-key: |
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA62dYkl2Nvy2wW9028dQ7
HdxFNhwEriFNzFMFq+m1jTvZWdU6e9a1iCGWTVV2fTo4PWSyhjWyzv2ZBEuanWBq
y/bfh/jOTjT/tlWvMeJZ1TV4suCbigHq5TGxDsY6ZC6if9ULhU3NWkgnPNn6HfO9
NVvBTfx9MgWtCtT33kq30KgxC6LqVdCe08+gD0KB3df0DK8OJorVFfxYVc7TjGEL
xqUuE7PcgZgDb8KvdgO66OxBqFIB0qfc73oALKGoq/8kvjrqE/amaIZPv3jE2Rc7
0rIhGHrFcoA3W01nNRGQKY/E/VKOGBn/uDNdi5iMXsFjKxiBbXB07bBxdhUH7698
AwIDAQAB
-----END PUBLIC KEY-----
# SSO登录成功后跳转的前端页面地址
redirect-url: "https://diglog.namkwong.com.mo/main_app/sso"
+17
View File
@@ -0,0 +1,17 @@
# 基础镜像
FROM arm64v8/openjdk:8
# author
MAINTAINER manhuoda
#指定东八区时区
ENV TZ Asia/Shanghai
#指定utf-8编码格
ENV JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8"
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
#将当前jar 复制到容器根目录下
ADD target/mhd-bi.jar mhd-bi.jar
#暴露容器端口 Docker镜像告知Docker宿主机应用监听了端口
EXPOSE 9200
# 运行jar包
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Xms1000m", "-Xmx1500m","-jar","/mhd-bi.jar"]
+180
View File
@@ -0,0 +1,180 @@
<?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">
<parent>
<artifactId>mhd</artifactId>
<groupId>com.mhd</groupId>
<version>3.6.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>mhd-bi</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<!--添加web依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--添加feign依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
<!--nacos 服务注册客户端依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- SpringCloud Alibaba Nacos Config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- Sentinel⽀持采⽤ Nacos 作为规则配置数据源,引⼊该适配依赖 -->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
</dependency>
<!--sentinel 核⼼环境 依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<!--链路追踪-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<!-- Jackson -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<!-- Alibaba Fastjson -->
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
</dependency>
<!--spring cloud stream 依赖(rabbit-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>
<!-- Mhd Common Core-->
<dependency>
<groupId>com.mhd</groupId>
<artifactId>mhd-common-core</artifactId>
</dependency>
<!-- Mhd Common Redis-->
<dependency>
<groupId>com.mhd</groupId>
<artifactId>mhd-common-redis</artifactId>
</dependency>
<dependency>
<groupId>com.dameng</groupId>
<artifactId>DmJdbcDriver18</artifactId>
<version>8.1.1.193</version>
</dependency>
<!--import mybatis plus 它会自动引入mybatis及mybatis spring切勿重复引用以免冲突-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
<!--添加druid连接池 依赖 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.11</version>
</dependency>
<!--链路追踪-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
<version>2.2.8.RELEASE</version>
</dependency>
<!-- Mhd Common Security-->
<dependency>
<groupId>com.mhd</groupId>
<artifactId>mhd-common-security</artifactId>
</dependency>
<dependency>
<groupId>com.mhd</groupId>
<artifactId>mhd-api-system</artifactId>
</dependency>
<dependency>
<groupId>com.mhd</groupId>
<artifactId>mhd-common-log</artifactId>
</dependency>
<!-- net.sf.json -->
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>com.mhd</groupId>
<artifactId>mhd-common-datasource</artifactId>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.1.1.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>mhd-bi</id>
<build>
<plugins>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
+44
View File
@@ -0,0 +1,44 @@
-- =============================================================================
-- 达梦 DM8:综合态势(单表,可重复执行)
-- 接口:GET /biReport/comprehensive
-- 执行顺序:删除历史多表/旧快照 → 建 BI_COMPREHENSIVE_SNAPSHOT → 示例 INSERT
-- PAYLOAD_JSON 与 ComprehensiveSituationVO 字段名一致;接口取 DEL_FLAG=1 且 CREATE_TIME 最新一条。
-- =============================================================================
-- 子表优先
DROP TABLE IF EXISTS
BI_COMPREHENSIVE_INCOME_TREND;
DROP TABLE IF EXISTS
BI_COMPREHENSIVE_METRIC;
DROP TABLE IF EXISTS
BI_COMPREHENSIVE_SNAPSHOT;
CREATE TABLE
BI_COMPREHENSIVE_SNAPSHOT (
ID BIGINT IDENTITY(1,1) NOT NULL,
PAYLOAD_JSON CLOB NOT NULL,
CREATE_TIME DATETIME DEFAULT NULL,
UPDATE_TIME DATETIME DEFAULT NULL,
REMARK VARCHAR(500) DEFAULT NULL,
DEL_FLAG NUMBER(1) DEFAULT 1 NOT NULL,
PRIMARY KEY (ID)
);
CREATE INDEX IDX_BI_COMP_SNAP_DEL_CR ON
BI_COMPREHENSIVE_SNAPSHOT(DEL_FLAG, CREATE_TIME);
CREATE INDEX IDX_BI_COMP_SNAP_UPD ON
BI_COMPREHENSIVE_SNAPSHOT(UPDATE_TIME);
COMMENT ON TABLE
BI_COMPREHENSIVE_SNAPSHOT IS '综合态势-整包 JSON 快照';
COMMENT ON COLUMN
BI_COMPREHENSIVE_SNAPSHOT.DEL_FLAG IS '0无状态 1正常 2已删除';
INSERT INTO
BI_COMPREHENSIVE_SNAPSHOT (PAYLOAD_JSON, CREATE_TIME, UPDATE_TIME, DEL_FLAG)
VALUES (
'{"valueAddedServiceIncome":5330000,"inventoryTurnover":25,"orderCount":42300,"vehicleUtilizationRate":97.4,"fuelConsumptionPerHundredKm":15,"incomeTrend":[280,210,260,310,470,390]}',
SYSDATE,
SYSDATE,
1
);
COMMIT;
@@ -0,0 +1,53 @@
-- =============================================================================
-- 达梦 DM8:月台监测(单表,可重复执行)
-- 接口:GET /biReport/platformSurveillance
-- 执行顺序:删除历史多表/旧快照 → 建 BI_PLATFORM_SURVEILLANCE_SNAPSHOT → 示例 INSERT
-- PAYLOAD_JSON 与 PlatformSurveillanceVO 一致;接口取 DEL_FLAG=1 且 CREATE_TIME 最新一条。
-- =============================================================================
DROP TABLE IF EXISTS
BI_PS_ALARM_DIST;
DROP TABLE IF EXISTS
BI_PS_TASK_TYPE;
DROP TABLE IF EXISTS
BI_PS_ALARM_TREND;
DROP TABLE IF EXISTS
BI_PS_TASK_LOAD;
DROP TABLE IF EXISTS
BI_PS_AVG_DURATION_TREND;
DROP TABLE IF EXISTS
BI_PS_VEHICLE;
DROP TABLE IF EXISTS
BI_PLATFORM_SURVEILLANCE_METRIC;
DROP TABLE IF EXISTS
BI_PLATFORM_SURVEILLANCE_SNAPSHOT;
CREATE TABLE
BI_PLATFORM_SURVEILLANCE_SNAPSHOT (
ID BIGINT IDENTITY(1,1) NOT NULL,
PAYLOAD_JSON CLOB NOT NULL,
CREATE_TIME DATETIME DEFAULT NULL,
UPDATE_TIME DATETIME DEFAULT NULL,
REMARK VARCHAR(500) DEFAULT NULL,
DEL_FLAG NUMBER(1) DEFAULT 1 NOT NULL,
PRIMARY KEY (ID)
);
CREATE INDEX IDX_BI_PS_SNAP_DEL_CR ON
BI_PLATFORM_SURVEILLANCE_SNAPSHOT(DEL_FLAG, CREATE_TIME);
CREATE INDEX IDX_BI_PS_SNAP_UPD ON
BI_PLATFORM_SURVEILLANCE_SNAPSHOT(UPDATE_TIME);
COMMENT ON TABLE
BI_PLATFORM_SURVEILLANCE_SNAPSHOT IS '月台监测-整包 JSON 快照';
COMMENT ON COLUMN
BI_PLATFORM_SURVEILLANCE_SNAPSHOT.DEL_FLAG IS '0无状态 1正常 2已删除';
INSERT INTO
BI_PLATFORM_SURVEILLANCE_SNAPSHOT (PAYLOAD_JSON, CREATE_TIME, UPDATE_TIME, DEL_FLAG)
VALUES (
'{"vehicles":[{"plateNumber":"粤CFR1958","status":"作业中","platformId":"#48","platformDuration":265},{"plateNumber":"粤CFR1958","status":"已离园","platformId":"#48","platformDuration":265},{"plateNumber":"粤CFR1958","status":"作业中","platformId":"#48","platformDuration":265},{"plateNumber":"粤CFR1958","status":"作业中","platformId":"#48","platformDuration":265},{"plateNumber":"粤CFR1958","status":"作业中","platformId":"#48","platformDuration":265},{"plateNumber":"粤CFR1958","status":"作业中","platformId":"#48","platformDuration":265}],"efficiencyStatistics":{"entryOvertimeRate":60,"overtimeCount":45,"platformOnTimeRate":92,"avgPlatformDuration":4.5,"yardOnTimeRate":88,"avgYardDuration":4.5},"platformOverview":{"totalPlatforms":43,"currentOccupancyRate":50,"operatingPlatforms":23,"todayTasks":324},"vehicleStatus":{"todayReservedVehicles":3000,"notCheckedIn":1500,"operatingVehicles":1000,"completedVehicles":1000},"avgOperationDurationTrend":[{"month":"11月","yardDuration":10,"platformDuration":23},{"month":"12月","yardDuration":14,"platformDuration":15},{"month":"1月","yardDuration":23.5,"platformDuration":20},{"month":"2月","yardDuration":22,"platformDuration":17},{"month":"3月","yardDuration":13,"platformDuration":14},{"month":"4月","yardDuration":17,"platformDuration":10}],"monthlyTaskStatistics":{"taskTotal":1455,"taskTotalYoY":5,"avgTaskDuration":4.5,"avgDurationYoY":-5,"taskCompletionRate":95,"completionRateYoY":5},"taskLoadStatistics":[{"time":"15时","taskCount":100},{"time":"16时","taskCount":110},{"time":"17时","taskCount":115},{"time":"18时","taskCount":80},{"time":"19时","taskCount":60},{"time":"20时","taskCount":40},{"time":"21时","taskCount":40},{"time":"22时","taskCount":40},{"time":"23时","taskCount":30},{"time":"0时","taskCount":10},{"time":"1时","taskCount":10},{"time":"2时","taskCount":10},{"time":"3时","taskCount":10},{"time":"4时","taskCount":10},{"time":"5时","taskCount":10},{"time":"6时","taskCount":20},{"time":"7时","taskCount":30},{"time":"8时","taskCount":70},{"time":"9时","taskCount":95},{"time":"10时","taskCount":110},{"time":"11时","taskCount":120},{"time":"12时","taskCount":130},{"time":"13时","taskCount":130}],"platformAlarmTrend":[{"date":"11日","alarmCount":10},{"date":"12日","alarmCount":14},{"date":"13日","alarmCount":23},{"date":"14日","alarmCount":22},{"date":"15日","alarmCount":13},{"date":"16日","alarmCount":17},{"date":"17日","alarmCount":8}],"taskTypeStatistics":{"totalTasks":4325,"taskTypes":[{"type":"类型1","count":2400},{"type":"类型2","count":2300},{"type":"类型3","count":2300},{"type":"类型4","count":2300}]},"platformAlarmStatistics":{"todayAlarmTotal":13,"handled":12,"unhandled":1},"platformAlarmDistribution":[{"type":"类型1","count":300},{"type":"类型2","count":245},{"type":"类型3","count":280},{"type":"类型4","count":340},{"type":"类型5","count":455},{"type":"类型6","count":400},{"type":"类型7","count":300}]}',
SYSDATE,
SYSDATE,
1
);
COMMIT;
@@ -0,0 +1,45 @@
-- =============================================================================
-- 达梦 DM8:仓储运输(单表,可重复执行)
-- 接口:GET /biReport/warehouseTransport
-- 执行顺序:删除历史多表/旧快照 → 建 BI_WAREHOUSE_TRANSPORT_SNAPSHOT → 示例 INSERT
-- PAYLOAD_JSON 与 WarehouseTransportSituationVO 字段名一致;接口取 DEL_FLAG=1 且 CREATE_TIME 最新一条。
-- =============================================================================
DROP TABLE IF EXISTS
BI_WTS_CUSTOMER_RANK;
DROP TABLE IF EXISTS
BI_WTS_TIME_SERIES;
DROP TABLE IF EXISTS
BI_WAREHOUSE_TRANSPORT_METRIC;
DROP TABLE IF EXISTS
BI_WAREHOUSE_TRANSPORT_SNAPSHOT;
CREATE TABLE
BI_WAREHOUSE_TRANSPORT_SNAPSHOT (
ID BIGINT IDENTITY(1,1) NOT NULL,
PAYLOAD_JSON CLOB NOT NULL,
CREATE_TIME DATETIME DEFAULT NULL,
UPDATE_TIME DATETIME DEFAULT NULL,
REMARK VARCHAR(500) DEFAULT NULL,
DEL_FLAG NUMBER(1) DEFAULT 1 NOT NULL,
PRIMARY KEY (ID)
);
CREATE INDEX IDX_BI_WTS_SNAP_DEL_CR ON
BI_WAREHOUSE_TRANSPORT_SNAPSHOT(DEL_FLAG, CREATE_TIME);
CREATE INDEX IDX_BI_WTS_SNAP_UPD ON
BI_WAREHOUSE_TRANSPORT_SNAPSHOT(UPDATE_TIME);
COMMENT ON TABLE
BI_WAREHOUSE_TRANSPORT_SNAPSHOT IS '仓储运输-整包 JSON 快照';
COMMENT ON COLUMN
BI_WAREHOUSE_TRANSPORT_SNAPSHOT.DEL_FLAG IS '0无状态 1正常 2已删除';
INSERT INTO
BI_WAREHOUSE_TRANSPORT_SNAPSHOT (PAYLOAD_JSON, CREATE_TIME, UPDATE_TIME, DEL_FLAG)
VALUES (
'{"warehouseDistributionOnTimeRate":99.2,"currentYearOrders":525440,"currentQuarterOrders":225120,"currentMonthOrders":23560,"warehouseOrderTrend":[100,93,85,70,98,88],"throughput":[10,14,23,10,13,19],"currentMonthTurnoverRate":3,"currentYearTurnoverRate":4,"inventoryTurnoverTrend":[10,14,23,22,13,17],"totalTransportIncome":5850,"orderCount":856,"transportTrips":533,"annualTransportVolume":15,"transportOrderTotal":4325,"crossBorderTransportOrder":2400,"domesticTransportOrder":2300,"transportTripsTrend":[100,140,230,100,130,192],"vehicleUtilizationRate":[600,460,350,470,450,620],"warehouseDockSyncRate":[100,98,87,78,97,86],"customerContributionRank":{"customerName":["客户A","客户B","客户C","客户D","客户E"],"customerAmount":[147,150,170,160,180]}}',
SYSDATE,
SYSDATE,
1
);
COMMIT;
+15
View File
@@ -0,0 +1,15 @@
ALTER TABLE BI_COMPREHENSIVE_SNAPSHOT
ADD (DEL_FLAG TINYINT DEFAULT 1);
COMMENT ON COLUMN BI_COMPREHENSIVE_SNAPSHOT.DEL_FLAG IS '删除标志:0-无状态, 1-正常, 2-已删除';
ALTER TABLE BI_PLATFORM_SURVEILLANCE_SNAPSHOT
ADD (DEL_FLAG TINYINT DEFAULT 1);
COMMENT ON COLUMN BI_PLATFORM_SURVEILLANCE_SNAPSHOT.DEL_FLAG IS '删除标志:0-无状态, 1-正常, 2-已删除';
ALTER TABLE BI_WAREHOUSE_TRANSPORT_SNAPSHOT
ADD (DEL_FLAG TINYINT DEFAULT 1);
COMMENT ON COLUMN BI_WAREHOUSE_TRANSPORT_SNAPSHOT.DEL_FLAG IS '删除标志:0-无状态, 1-正常, 2-已删除';
@@ -0,0 +1,236 @@
package com.mhd.bi;
import com.mhd.common.core.annotation.fieldsetvalue.CommonService;
import com.mhd.common.core.annotation.fieldsetvalue.SetFeildValueAspect;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Import;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication(scanBasePackages = {"com.mhd", "com.mhd.bi"})
@EnableDiscoveryClient
@EnableFeignClients(basePackages = {"com.mhd","com.mhd.bi.infrastructure.feign"})
@MapperScan("com.mhd.bi.domain.**.mapper")
@Import({SetFeildValueAspect.class, CommonService.class})
@EnableAsync
@EnableScheduling
public class BiApplication {
public static void main(String[] args) {
SpringApplication.run(BiApplication.class, args);
System.out.println("(♥◠‿◠)ノ゙ 可视化页面模块启动成功 ლ(´ڡ`ლ)゙ " +
"# _oo0oo_\n" +
"# o8888888o\n" +
"# 88\" . \"88\n" +
"# (| -_- |)\n" +
"# 0\\ = /0\n" +
"# ___/`---'\\___\n" +
"# .' \\\\| |// '.\n" +
"# / \\\\||| : |||// \\\n" +
"# / _||||| -:- |||||- \\\n" +
"# | | \\\\\\ - /// | |\n" +
"# | \\_| ''\\---/'' |_/ |\n" +
"# \\ .-\\__ '-' ___/-. /\n" +
"# ___'. .' /--.--\\ `. .'___\n" +
"# .\"\" '< `.___\\_<|>_/___.' >' \"\".\n" +
"# | | : `- \\`.;`\\ _ /`;.`/ - ` : | |\n" +
"# \\ \\ `_. \\_ __\\ /__ _/ .-` / /\n" +
"# =====`-.____`.___ \\_____/___.-`___.-'=====\n" +
"# `=---='\n" +
"#\n" +
"#\n" +
"# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" +
"#\n" +
"# 佛祖保佑 永无BUG\n" +
"#\n" +
"#    ┏┓   ┏┓\n" +
"#   ┏┛┻━━━┛┻┓\n" +
"#   ┃       \n" +
"#   ┃   ━   \n" +
"#   ┃ ┳┛ ┗┳ ┃\n" +
"#   ┃       \n" +
"#   ┃   ┻   \n" +
"#   ┃       \n" +
"#   ┗━┓   ┏━┛Codes are far away from bugs with the animal protecting\n" +
"#     ┃   ┃ 神兽保佑,代码无bug\n" +
"#     ┃   ┃\n" +
"#     ┃   ┗━━━┓\n" +
"#     ┃      ┣┓\n" +
"#     ┃     ┏┛\n" +
"#     ┗┓┓┏━┳┓┏┛\n" +
"#      ┃┫┫ ┃┫┫\n" +
"#      ┗┻┛ ┗┻┛\n" +
"#\n" +
"#    ┏┓   ┏┓\n" +
"#   ┏┛┻━━━┛┻┓\n" +
"#   ┃        \n" +
"#   ┃   ━   \n" +
"#   ┃    <┃\n" +
"#   ┃       \n" +
"#   ┃ . ⌒ ..┃\n" +
"#   ┃       \n" +
"#   ┗━┓   ┏━┛\n" +
"#     ┃   ┃ Codes are far away from bugs with the animal protecting       \n" +
"#     ┃   ┃ 神兽保佑,代码无bug\n" +
"#     ┃   ┃           \n" +
"#     ┃   ┃       \n" +
"#     ┃   ┃\n" +
"#     ┃   ┃           \n" +
"#     ┃   ┗━━━┓\n" +
"#     ┃       ┣┓\n" +
"#     ┃       ┏┛\n" +
"#     ┗┓┓┏━┳┓┏┛\n" +
"#      ┃┫┫ ┃┫┫\n" +
"#      ┗┻┛ ┗┻┛\n" +
"# ┏┓   ┏┓+ +\n" +
"#   ┏┛┻━━━┛┻┓ + +\n" +
"#   ┃       ┃  \n" +
"#   ┃   ━   ┃ ++ + + +\n" +
"#   ████━████ ┃+\n" +
"#   ┃       ┃ +\n" +
"#   ┃   ┻   ┃\n" +
"#   ┃       ┃ + +\n" +
"#   ┗━┓   ┏━┛\n" +
"#     ┃   ┃           \n" +
"#     ┃   ┃ + + + +\n" +
"#     ┃   ┃    Codes are far away from bugs with the animal protecting   \n" +
"#     ┃   ┃ +     神兽保佑,代码无bug  \n" +
"#     ┃   ┃\n" +
"#     ┃   ┃  +         \n" +
"#     ┃    ┗━━━┓ + +\n" +
"#     ┃        ┣┓\n" +
"#     ┃        ┏┛\n" +
"#     ┗┓┓┏━┳┓┏┛ + + + +\n" +
"#      ┃┫┫ ┃┫┫\n" +
"#      ┗┻┛ ┗┻┛+ + + +\n" +
"# d*##$.\n" +
"# zP\"\"\"\"\"$e. $\" $o\n" +
"#4$ '$ $\" $\n" +
"#'$ '$ J$ $F\n" +
"# 'b $k $> $\n" +
"# $k $r J$ d$\n" +
"# '$ $ $\" $~\n" +
"# '$ \"$ '$E $\n" +
"# $ $L $\" $F ...\n" +
"# $. 4B $ $$$*\"\"\"*b\n" +
"# '$ $. $$ $$ $F\n" +
"# \"$ R$ $F $\" $\n" +
"# $k ?$ u* dF .$\n" +
"# ^$. $$\" z$ u$$$$e\n" +
"# #$b $E.dW@e$\" ?$\n" +
"# #$ .o$$# d$$$$c ?F\n" +
"# $ .d$$#\" . zo$> #$r .uF\n" +
"# $L .u$*\" $&$$$k .$$d$$F\n" +
"# $$\" \"\"^\"$$$P\"$P9$\n" +
"# JP .o$$$$u:$P $$\n" +
"# $ ..ue$\" \"\" $\"\n" +
"# d$ $F $\n" +
"# $$ ....udE 4B\n" +
"# #$ \"\"\"\"` $r @$\n" +
"# ^$L '$ $F\n" +
"# RN 4N $\n" +
"# *$b d$\n" +
"# $$k $F\n" +
"# $$b $F\n" +
"# $\"\" $F\n" +
"# '$ $\n" +
"# $L $\n" +
"# '$ $\n" +
"# $ $\n" +
"#\n" +
"#\n" +
"# ┌─┐ ┌─┐\n" +
"# ┌──┘ ┴───────┘ ┴──┐\n" +
"# │ │\n" +
"# │ ─── │\n" +
"# │ ─┬┘ └┬─ │\n" +
"# │ │\n" +
"# │ ─┴─ │\n" +
"# │ │\n" +
"# └───┐ ┌───┘\n" +
"# │ │\n" +
"# │ │\n" +
"# │ │\n" +
"# │ └──────────────┐\n" +
"# │ │\n" +
"# │ ├─┐\n" +
"# │ ┌─┘\n" +
"# │ │\n" +
"# └─┐ ┐ ┌───────┬──┐ ┌──┘\n" +
"# │ ─┤ ─┤ │ ─┤ ─┤\n" +
"# └──┴──┘ └──┴──┘\n" +
"# 神兽保佑\n" +
"# 代码无BUG!\n" +
"#\n" +
"# ___====-_ _-====___\n" +
"# _--^^^#####// \\\\#####^^^--_\n" +
"# _-^##########// ( ) \\\\##########^-_\n" +
"# -############// |\\^^/| \\\\############-\n" +
"# _/############// (@::@) \\\\############\\_\n" +
"# /#############(( \\\\// ))#############\\\n" +
"# -###############\\\\ (oo) //###############-\n" +
"# -#################\\\\ / VV \\ //#################-\n" +
"# -###################\\\\/ \\//###################-\n" +
"# _#/|##########/\\######( /\\ )######/\\##########|\\#_\n" +
"# |/ |#/\\#/\\#/\\/ \\#/\\##\\ | | /##/\\#/ \\/\\#/\\#/\\#| \\|\n" +
"# ` |/ V V ` V \\#\\| | | |/#/ V ' V V \\| '\n" +
"# ` ` ` ` / | | | | \\ ' ' ' '\n" +
"# ( | | | | )\n" +
"# __\\ | | | | /__\n" +
"# (vvv(VVV)(VVV)vvv)\n" +
"# 神兽保佑\n" +
"# 代码无BUG!\n" +
"# __----~~~~~~~~~~~------___\n" +
"# . . ~~//====...... __--~ ~~\n" +
"# -. \\_|// |||\\\\ ~~~~~~::::... /~\n" +
"# ___-==_ _-~o~ \\/ ||| \\\\ _/~~-\n" +
"# __---~~~.==~||\\=_ -_--~/_-~|- |\\\\ \\\\ _/~\n" +
"# _-~~ .=~ | \\\\-_ '-~7 /- / || \\ /\n" +
"# .~ .~ | \\\\ -_ / /- / || \\ /\n" +
"# / ____ / | \\\\ ~-_/ /|- _/ .|| \\ /\n" +
"# |~~ ~~|--~~~~--_ \\ ~==-/ | \\~--===~~ .\\\n" +
"# ' ~-| /| |-~\\~~ __--~~\n" +
"# |-~~-_/ | | ~\\_ _-~ /\\\n" +
"# / \\ \\__ \\/~ \\__\n" +
"# _--~ _/ | .-~~____--~-/ ~~==.\n" +
"# ((->/~ '.|||' -_| ~~-/ , . _||\n" +
"# -_ ~\\ ~~---l__i__i__i--~~_/\n" +
"# _-~-__ ~) \\--______________--~~\n" +
"# //.-~~~-~_--~- |-------~~~~~~~~\n" +
"# //.-~~~--\\\n" +
"# 神兽保佑\n" +
"# 代码无BUG!\n" +
"# ,----------------, ,---------,\n" +
"# ,-----------------------, ,\" ,\"|\n" +
"# ,\" ,\"| ,\" ,\" |\n" +
"# +-----------------------+ | ,\" ,\" |\n" +
"# | .-----------------. | | +---------+ |\n" +
"# | | | | | | -==----'| |\n" +
"# | | I LOVE DOS! | | | | | |\n" +
"# | | Bad command or | | |/----|`---= | |\n" +
"# | | C:\\>_ | | | ,/|==== ooo | ;\n" +
"# | | | | | // |(((( [33]| ,\"\n" +
"# | `-----------------' |,\" .;'| |(((( | ,\"\n" +
"# +-----------------------+ ;; | | |,\"\n" +
"# /_)______________(_/ //' | +---------+\n" +
"# ___________________________/___ `,\n" +
"# / oooooooooooooooo .o. oooo /, \\,\"-----------\n" +
"# / ==ooooooooooooooo==.o. ooo= // ,`\\--{)B ,\"\n" +
"# /_==__==========__==_ooo__ooo=_/' /___________,\"\n" +
"#\n" +
"# .-~~~~~~~~~-._ _.-~~~~~~~~~-.\n" +
"# __.' ~. .~ `.__\n" +
"# .'// \\./ \\\\`.\n" +
"# .'// | \\\\`.\n" +
"# .'// .-~\"\"\"\"\"\"\"~~~~-._ | _,-~~~~\"\"\"\"\"\"\"~-. \\\\`.\n" +
"# .'//.-\" `-. | .-' \"-.\\\\`.\n" +
"# .'//______.============-.. \\ | / ..-============.______\\\\`.\n" +
"# .'______________________________\\|/______________________________`.");
}
}
@@ -0,0 +1,18 @@
package com.mhd.bi.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* BI 开放接口访问控制请求头 {@code X-BI-Access-Token}
* <p>配置了 {@code accessToken} 时必须与请求头完全一致未配置时仅校验请求头非空</p>
*/
@Data
@ConfigurationProperties(prefix = "mhd.bi")
public class BiAccessProperties {
/**
* X-BI-Access-Token 比对的密钥为空则只要请求头非空即可
*/
private String accessToken = "";
}
@@ -0,0 +1,25 @@
package com.mhd.bi.config;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.Ordered;
/**
* 注册 /biReport 路径的访问令牌校验
*/
@Configuration
@EnableConfigurationProperties(BiAccessProperties.class)
public class BiReportAccessConfiguration {
@Bean
public FilterRegistrationBean<BiReportAccessTokenFilter> biReportAccessTokenFilter(BiAccessProperties properties) {
FilterRegistrationBean<BiReportAccessTokenFilter> registration = new FilterRegistrationBean<>();
registration.setFilter(new BiReportAccessTokenFilter(properties));
registration.addUrlPatterns("/biReport/*");
registration.setOrder(Ordered.HIGHEST_PRECEDENCE + 100);
registration.setName("biReportAccessTokenFilter");
return registration;
}
}
@@ -0,0 +1,60 @@
package com.mhd.bi.config;
import org.springframework.lang.NonNull;
import org.springframework.util.StringUtils;
import org.springframework.web.filter.OncePerRequestFilter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
/**
* 限制 /biReport 下接口必须携带 {@code X-BI-Access-Token}否则 401
*/
public class BiReportAccessTokenFilter extends OncePerRequestFilter {
private static final String UNAUTHORIZED_MSG = "未认证,请提供有效的访问Token";
public static final String HEADER_X_BI_ACCESS_TOKEN = "X-BI-Access-Token";
private final BiAccessProperties accessProperties;
public BiReportAccessTokenFilter(BiAccessProperties accessProperties) {
this.accessProperties = accessProperties;
}
@Override
protected void doFilterInternal(@NonNull HttpServletRequest request,
@NonNull HttpServletResponse response,
@NonNull FilterChain filterChain) throws ServletException, IOException {
if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
filterChain.doFilter(request, response);
return;
}
String presented = request.getHeader(HEADER_X_BI_ACCESS_TOKEN);
if (!StringUtils.hasText(presented)) {
writeUnauthorized(response);
return;
}
String expected = accessProperties.getAccessToken();
if (StringUtils.hasText(expected) && !expected.equals(presented)) {
writeUnauthorized(response);
return;
}
filterChain.doFilter(request, response);
}
private static void writeUnauthorized(HttpServletResponse response) throws IOException {
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
response.setContentType("application/json;charset=UTF-8");
String body = "{\"code\":401,\"msg\":\"" + UNAUTHORIZED_MSG.replace("\"", "\\\"") + "\"}";
response.getOutputStream().write(body.getBytes(StandardCharsets.UTF_8));
}
}
@@ -0,0 +1,23 @@
package com.mhd.bi.domain.biComprehensive.repository.mapper;
import com.mhd.bi.domain.biReport.support.BiReportSnapshotMapperSupport;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.ComprehensiveSituationVO;
/**
* 综合态势SQL BiComprehensiveReportMapper.xml取数与组装均在 Mapper 层完成
*/
public interface BiComprehensiveReportMapper {
String selectLatestPayloadJson();
/**
* 最新快照 VO内部调用 {@link #selectLatestPayloadJson()}
*/
default ComprehensiveSituationVO loadLatestComprehensive() {
return BiReportSnapshotMapperSupport.parsePayload(
selectLatestPayloadJson(),
ComprehensiveSituationVO.class,
BiReportSnapshotMapperSupport::emptyComprehensiveSituation,
"综合态势");
}
}
@@ -0,0 +1,21 @@
package com.mhd.bi.domain.biComprehensive.service;
import com.mhd.bi.domain.biComprehensive.repository.mapper.BiComprehensiveReportMapper;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.ComprehensiveSituationVO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* 综合态势数据访问仅经 Mapper XML SQL Mapper 默认方法组装
*/
@Service
public class BiComprehensiveReportService {
@Resource
private BiComprehensiveReportMapper biComprehensiveReportMapper;
public ComprehensiveSituationVO loadLatestComprehensive() {
return biComprehensiveReportMapper.loadLatestComprehensive();
}
}
@@ -0,0 +1,20 @@
package com.mhd.bi.domain.biHkMacaoServiceZone.repository.mapper;
import com.mhd.bi.domain.biReport.support.BiReportSnapshotMapperSupport;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone.HkMacaoServiceZoneVO;
/**
* 港澳服务专区 NGWL_TEST_BI.BI_HK_MACAO_SERVICE_ZONE_SNAPSHOT 最新 PAYLOAD_JSON 并解析
*/
public interface BiHkMacaoServiceZoneReportMapper {
String selectLatestPayloadJson();
default HkMacaoServiceZoneVO loadLatestHkMacaoServiceZone() {
return BiReportSnapshotMapperSupport.parsePayload(
selectLatestPayloadJson(),
HkMacaoServiceZoneVO.class,
BiReportSnapshotMapperSupport::emptyHkMacaoServiceZone,
"港澳服务专区");
}
}
@@ -0,0 +1,21 @@
package com.mhd.bi.domain.biHkMacaoServiceZone.service;
import com.mhd.bi.domain.biHkMacaoServiceZone.repository.mapper.BiHkMacaoServiceZoneReportMapper;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone.HkMacaoServiceZoneVO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* 港澳服务专区
*/
@Service
public class BiHkMacaoServiceZoneReportService {
@Resource
private BiHkMacaoServiceZoneReportMapper biHkMacaoServiceZoneReportMapper;
public HkMacaoServiceZoneVO loadLatestHkMacaoServiceZone() {
return biHkMacaoServiceZoneReportMapper.loadLatestHkMacaoServiceZone();
}
}
@@ -0,0 +1,150 @@
package com.mhd.bi.domain.biHkMacaoServiceZone.support;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone.*;
import java.util.Arrays;
import java.util.List;
/**
* 港澳服务专区快照演示数据对齐大屏示例 JSON后续可改为真实聚合
*/
public final class HkMacaoServiceZoneDemoData {
private HkMacaoServiceZoneDemoData() {
}
public static HkMacaoServiceZoneVO build() {
HkOrderStatsVO orderStats = HkOrderStatsVO.builder()
.totalOrders(4361L)
.unit("")
.momGrowth("+12.5%")
.trend("up")
.build();
List<HkPercentageDetailVO> goodsDetails = Arrays.asList(
HkPercentageDetailVO.builder().name("广东").percentage("25%").build(),
HkPercentageDetailVO.builder().name("澳门").percentage("25%").build(),
HkPercentageDetailVO.builder().name("广西").percentage("50%").build()
);
List<HkPercentageDetailVO> crossBorderDetails = Arrays.asList(
HkPercentageDetailVO.builder().name("出口订单").percentage("25.8%").build(),
HkPercentageDetailVO.builder().name("进口订单").percentage("16.8%").build()
);
List<HkOrderTrendMonthVO> warehouseOrderTrend = Arrays.asList(
HkOrderTrendMonthVO.builder().month("1月").orderRatio(150).orderCount(400).build(),
HkOrderTrendMonthVO.builder().month("2月").orderRatio(200).orderCount(250).build(),
HkOrderTrendMonthVO.builder().month("3月").orderRatio(250).orderCount(300).build(),
HkOrderTrendMonthVO.builder().month("4月").orderRatio(200).orderCount(280).build(),
HkOrderTrendMonthVO.builder().month("5月").orderRatio(280).orderCount(320).build(),
HkOrderTrendMonthVO.builder().month("6月").orderRatio(220).orderCount(310).build(),
HkOrderTrendMonthVO.builder().month("7月").orderRatio(260).orderCount(330).build()
);
List<HkMonthRatePointVO> turnoverData = Arrays.asList(
HkMonthRatePointVO.builder().month("11月").rate(10).build(),
HkMonthRatePointVO.builder().month("12月").rate(15).build(),
HkMonthRatePointVO.builder().month("1月").rate(22).build(),
HkMonthRatePointVO.builder().month("2月").rate(20).build(),
HkMonthRatePointVO.builder().month("3月").rate(12).build(),
HkMonthRatePointVO.builder().month("4月").rate(16).build()
);
List<HkMonthValuePointVO> cargoVolumeTrend = Arrays.asList(
HkMonthValuePointVO.builder().month("1月").value(80).build(),
HkMonthValuePointVO.builder().month("2月").value(85).build(),
HkMonthValuePointVO.builder().month("3月").value(90).build(),
HkMonthValuePointVO.builder().month("4月").value(70).build(),
HkMonthValuePointVO.builder().month("5月").value(95).build(),
HkMonthValuePointVO.builder().month("6月").value(88).build()
);
List<HkOrderTrendMonthVO> transportOrderTrend = Arrays.asList(
HkOrderTrendMonthVO.builder().month("1月").orderRatio(150).orderCount(400).build(),
HkOrderTrendMonthVO.builder().month("2月").orderRatio(200).orderCount(250).build(),
HkOrderTrendMonthVO.builder().month("3月").orderRatio(250).orderCount(300).build(),
HkOrderTrendMonthVO.builder().month("4月").orderRatio(200).orderCount(280).build(),
HkOrderTrendMonthVO.builder().month("5月").orderRatio(280).orderCount(320).build(),
HkOrderTrendMonthVO.builder().month("6月").orderRatio(220).orderCount(310).build(),
HkOrderTrendMonthVO.builder().month("7月").orderRatio(260).orderCount(330).build()
);
List<HkMonthRatePointVO> onTimeDeliveryRate = Arrays.asList(
HkMonthRatePointVO.builder().month("1月").rate(90).build(),
HkMonthRatePointVO.builder().month("2月").rate(92).build(),
HkMonthRatePointVO.builder().month("3月").rate(88).build(),
HkMonthRatePointVO.builder().month("4月").rate(85).build(),
HkMonthRatePointVO.builder().month("5月").rate(95).build(),
HkMonthRatePointVO.builder().month("6月").rate(93).build()
);
List<HkMapPointVO> mapPoints = Arrays.asList(
HkMapPointVO.builder()
.id("wh_001")
.type("warehouse")
.name("通宇保税仓")
.status("normal")
.location(HkMapLocationVO.builder().lat(22.2800).lng(113.5600).build())
.metrics(HkWarehouseMetricsVO.builder()
.inboundOperations(1)
.outboundOperations(1)
.build())
.build(),
HkMapPointVO.builder()
.id("vehicle_88888")
.type("vehicle")
.name("粤A88888")
.status("in_transit")
.location(HkMapLocationVO.builder().lat(22.2500).lng(113.5500).build())
.details(HkVehicleDetailsVO.builder()
.warehouseName("通宇")
.licensePlate("粤A88888")
.loadingAddress("珠海")
.destinationAddress("澳门")
.currentLocation("珠海市")
.updateTime("2026年4月15日 17:52")
.build())
.build()
);
return HkMacaoServiceZoneVO.builder()
.warehouseOrderStats(orderStats)
.clientServiceStats(HkClientServiceStatsVO.builder()
.hkMacaoClients(26)
.clientRatio("10.5%")
.warehouseUsageArea("1688m2")
.areaRatio("1.5%")
.build())
.goodsSourceStats(HkRingChartStatsVO.builder()
.totalOrders(1000)
.details(goodsDetails)
.build())
.crossBorderOrderStats(HkRingChartStatsVO.builder()
.totalOrders(400)
.details(crossBorderDetails)
.build())
.warehouseOrderTrend(warehouseOrderTrend)
.inventoryTurnoverTrend(HkInventoryTurnoverTrendVO.builder()
.currentMonthRate("3次")
.annualRate("4次")
.unit("")
.data(turnoverData)
.build())
.transportOrderStats(orderStats)
.doorToDoorEfficiency(HkDoorToDoorEfficiencyVO.builder()
.averageTime("28.6分")
.fastestTime("13.2分")
.momGrowth("+30%")
.build())
.crossBorderTransportStats(HkRingChartStatsVO.builder()
.totalOrders(400)
.details(crossBorderDetails)
.build())
.cargoVolumeTrend(cargoVolumeTrend)
.transportOrderTrend(transportOrderTrend)
.onTimeDeliveryRate(onTimeDeliveryRate)
.mapData(HkMapDataVO.builder().points(mapPoints).build())
.build();
}
}
@@ -0,0 +1,23 @@
package com.mhd.bi.domain.biOverallOperation.repository.mapper;
import com.mhd.bi.domain.biOverallOperation.support.OverallOperationPayloadNormalizer;
import com.mhd.bi.domain.biReport.support.BiReportSnapshotMapperSupport;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.overall.OverallOperationSituationVO;
/**
* 总体运营态势SQL BiOverallOperationReportMapper.xml取数与组装均在 Mapper 层完成
*/
public interface BiOverallOperationReportMapper {
String selectLatestPayloadJson();
default OverallOperationSituationVO loadLatestOverallOperation() {
String json = OverallOperationPayloadNormalizer.normalizeJson(selectLatestPayloadJson());
OverallOperationSituationVO vo = BiReportSnapshotMapperSupport.parsePayload(
json,
OverallOperationSituationVO.class,
BiReportSnapshotMapperSupport::emptyOverallOperationSituation,
"总体运营态势");
return OverallOperationPayloadNormalizer.ensureDefaults(vo);
}
}
@@ -0,0 +1,21 @@
package com.mhd.bi.domain.biOverallOperation.service;
import com.mhd.bi.domain.biOverallOperation.repository.mapper.BiOverallOperationReportMapper;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.overall.OverallOperationSituationVO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* 南光物流业务经营分析 · 总体运营态势大图1
*/
@Service
public class BiOverallOperationReportService {
@Resource
private BiOverallOperationReportMapper biOverallOperationReportMapper;
public OverallOperationSituationVO loadLatestOverallOperation() {
return biOverallOperationReportMapper.loadLatestOverallOperation();
}
}
@@ -0,0 +1,95 @@
package com.mhd.bi.domain.biOverallOperation.support;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.mhd.bi.domain.biReport.support.BiInventoryTurnoverTrendSupport;
import com.mhd.bi.domain.biReport.support.BiOnTimeDeliveryRateChartSupport;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.overall.OverallOperationSituationVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.overall.OverallTransportOperationVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.overall.OverallWarehouseOperationVO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
/**
* 总体运营态势左侧 warehouse.turnover_rate_trend右下角 transport.on_time_rate
*/
@Slf4j
public final class OverallOperationPayloadNormalizer {
private static final ObjectMapper MAPPER = new ObjectMapper();
private OverallOperationPayloadNormalizer() {
}
public static String normalizeJson(String json) {
if (StringUtils.isBlank(json)) {
return json;
}
try {
JsonNode root = MAPPER.readTree(json.trim());
boolean changed = false;
ObjectNode rootObj = (ObjectNode) root;
JsonNode warehouse = root.path("warehouse");
if (warehouse.isObject()) {
ObjectNode warehouseObj = (ObjectNode) warehouse;
if (warehouseObj.has("map") && !rootObj.has("map")) {
rootObj.set("map", warehouseObj.remove("map"));
changed = true;
}
if (warehouseObj.has("transport") && !rootObj.has("transport")) {
rootObj.set("transport", warehouseObj.remove("transport"));
changed = true;
}
if (warehouseObj.has("capabilityRanking")) {
warehouseObj.remove("capabilityRanking");
changed = true;
}
if (warehouseObj.has("on_time_rate")) {
warehouseObj.remove("on_time_rate");
changed = true;
}
if (!warehouseObj.has("turnover_rate_trend")) {
warehouseObj.set("turnover_rate_trend",
MAPPER.valueToTree(BiInventoryTurnoverTrendSupport.defaultTrend()));
changed = true;
}
}
JsonNode transport = root.path("transport");
if (transport.isObject()) {
ObjectNode transportObj = (ObjectNode) transport;
if (transportObj.has("enterpriseRanking")) {
transportObj.remove("enterpriseRanking");
changed = true;
}
if (!transportObj.has("on_time_rate")) {
transportObj.set("on_time_rate",
MAPPER.valueToTree(BiOnTimeDeliveryRateChartSupport.defaultChart()));
changed = true;
}
}
return changed ? MAPPER.writeValueAsString(root) : json;
} catch (Exception e) {
log.warn("总体运营态势 PAYLOAD_JSON 规范化失败,按原 JSON 解析", e);
return json;
}
}
public static OverallOperationSituationVO ensureDefaults(OverallOperationSituationVO vo) {
if (vo == null) {
return null;
}
OverallWarehouseOperationVO warehouse = vo.getWarehouse();
if (warehouse != null && BiInventoryTurnoverTrendSupport.isEmpty(warehouse.getTurnoverRateTrend())) {
warehouse.setTurnoverRateTrend(BiInventoryTurnoverTrendSupport.defaultTrend());
}
OverallTransportOperationVO transport = vo.getTransport();
if (transport != null && BiOnTimeDeliveryRateChartSupport.isChartEmpty(transport.getOnTimeRate())) {
transport.setOnTimeRate(BiOnTimeDeliveryRateChartSupport.defaultChart());
}
return vo;
}
}
@@ -0,0 +1,34 @@
package com.mhd.bi.domain.biPlatformRealData.repository.mapper;
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformVehiclePO;
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformOverviewPO;
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealVehicleStatusPO;
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealTaskLoadPO;
import java.util.List;
/**
* 月台监测-真实数据 Mapper
* 数据来源TEST_NGWL_YMS 达梦跨库访问
* 列名按达梦默认大写规则若实际库中小写请反馈调整
*/
public interface BiPlatformRealDataMapper {
/** 作业车辆状态列表 */
List<RealPlatformVehiclePO> queryVehicles();
/** 月台实时概览(总数 / 当前作业中) */
RealPlatformOverviewPO queryPlatformOverview();
/** 今日作业任务数 */
Long countTodayTasks();
/** 车辆状态统计(今日) */
RealVehicleStatusPO queryVehicleStatusToday();
/** 本月任务量 */
Long countMonthTasks();
/** 任务负荷(今日 24 小时) */
List<RealTaskLoadPO> queryTaskLoadToday();
}
@@ -0,0 +1,18 @@
package com.mhd.bi.domain.biPlatformRealData.repository.po;
import lombok.Data;
import java.io.Serializable;
/**
* 月台实时概览真实数据来自 TEST_NGWL_YMS.QMS_WINDOW_INFO
*/
@Data
public class RealPlatformOverviewPO implements Serializable {
private static final long serialVersionUID = 1L;
/** 月台总数 */
private Long totalPlatforms;
/** 当前作业中(月台作业状态=占用) */
private Long operatingPlatforms;
}
@@ -0,0 +1,30 @@
package com.mhd.bi.domain.biPlatformRealData.repository.po;
import lombok.Data;
import java.io.Serializable;
/**
* 月台监测-作业车辆真实数据来自 TEST_NGWL_YMS.QMS_MAIN_BUSINESS
*/
@Data
public class RealPlatformVehiclePO implements Serializable {
private static final long serialVersionUID = 1L;
/** 车牌号(qms_main_business.CARNO */
private String plateNumber;
/** 流程状态(qms_main_business.FLOWSTATUS */
private String status;
/** 叫号月台(qms_queue_list.WINDOWNAME */
private String platformId;
/** 月台作业时长,分钟(EXITTIME - ENTRYTIME */
private Long platformDuration;
/** 预约申请时间(qms_main_business.CREATE_TIME */
private String appointmentTime;
/** 作业楼层(qms_window_info.PLATFORMFLOOR */
private String workFloor;
}
@@ -0,0 +1,18 @@
package com.mhd.bi.domain.biPlatformRealData.repository.po;
import lombok.Data;
import java.io.Serializable;
/**
* 任务负荷统计按小时来自 TEST_NGWL_YMS.QMS_MAIN_BUSINESS
*/
@Data
public class RealTaskLoadPO implements Serializable {
private static final long serialVersionUID = 1L;
/** 0-23 小时 */
private Integer hourOfDay;
/** 该小时段任务数 */
private Long taskCount;
}
@@ -0,0 +1,24 @@
package com.mhd.bi.domain.biPlatformRealData.repository.po;
import lombok.Data;
import java.io.Serializable;
/**
* 作业车辆状态统计真实数据来自 TEST_NGWL_YMS.QMS_MAIN_BUSINESS
*/
@Data
public class RealVehicleStatusPO implements Serializable {
private static final long serialVersionUID = 1L;
/** 今日预约车辆 */
private Long todayReservedVehicles;
/** 当前未签到 */
private Long notCheckedIn;
/** 当前作业中 */
private Long operatingVehicles;
/** 作业完成 */
private Long completedVehicles;
}
@@ -0,0 +1,214 @@
package com.mhd.bi.domain.biPlatformRealData.service;
import com.mhd.bi.domain.biPlatformRealData.repository.mapper.BiPlatformRealDataMapper;
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformVehiclePO;
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformOverviewPO;
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealVehicleStatusPO;
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealTaskLoadPO;
import com.mhd.bi.domain.biSnapshotSync.support.BiSnapshotWeeklyRandomDataBuilder;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.PlatformSurveillanceVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.PlatformVehicleItemVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.TaskLoadItemVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
/**
* 月台监测-真实数据业务层封装 YMS 跨库查询
* 列名大小写字段类型需以实际库为准 YMS 库无数据/无权限相关方法应返回空/0不影响写死字段写入快照
*/
@Slf4j
@Service
public class BiPlatformRealDataService {
@Resource
private BiPlatformRealDataMapper biPlatformRealDataMapper;
public List<RealPlatformVehiclePO> queryVehicles() {
try {
return biPlatformRealDataMapper.queryVehicles();
} catch (Exception e) {
log.error("【YMS】查询作业车辆列表失败: {}", e.getMessage(), e);
return java.util.Collections.emptyList();
}
}
public RealPlatformOverviewPO queryPlatformOverview() {
try {
RealPlatformOverviewPO po = biPlatformRealDataMapper.queryPlatformOverview();
if (po == null) {
po = new RealPlatformOverviewPO();
}
if (po.getTotalPlatforms() == null) po.setTotalPlatforms(0L);
if (po.getOperatingPlatforms() == null) po.setOperatingPlatforms(0L);
return po;
} catch (Exception e) {
log.error("【YMS】查询月台概览失败: {}", e.getMessage(), e);
RealPlatformOverviewPO po = new RealPlatformOverviewPO();
po.setTotalPlatforms(0L);
po.setOperatingPlatforms(0L);
return po;
}
}
public long countTodayTasks() {
try {
Long n = biPlatformRealDataMapper.countTodayTasks();
return n == null ? 0L : n;
} catch (Exception e) {
log.error("【YMS】统计今日作业任务失败: {}", e.getMessage(), e);
return 0L;
}
}
public RealVehicleStatusPO queryVehicleStatusToday() {
try {
RealVehicleStatusPO po = biPlatformRealDataMapper.queryVehicleStatusToday();
if (po == null) po = new RealVehicleStatusPO();
if (po.getTodayReservedVehicles() == null) po.setTodayReservedVehicles(0L);
if (po.getNotCheckedIn() == null) po.setNotCheckedIn(0L);
if (po.getOperatingVehicles() == null) po.setOperatingVehicles(0L);
if (po.getCompletedVehicles() == null) po.setCompletedVehicles(0L);
return po;
} catch (Exception e) {
log.error("【YMS】统计车辆状态失败: {}", e.getMessage(), e);
RealVehicleStatusPO po = new RealVehicleStatusPO();
po.setTodayReservedVehicles(0L);
po.setNotCheckedIn(0L);
po.setOperatingVehicles(0L);
po.setCompletedVehicles(0L);
return po;
}
}
public long countMonthTasks() {
try {
Long n = biPlatformRealDataMapper.countMonthTasks();
return n == null ? 0L : n;
} catch (Exception e) {
log.error("【YMS】统计本月任务量失败: {}", e.getMessage(), e);
return 0L;
}
}
public List<RealTaskLoadPO> queryTaskLoadToday() {
try {
return biPlatformRealDataMapper.queryTaskLoadToday();
} catch (Exception e) {
log.error("【YMS】统计任务负荷失败: {}", e.getMessage(), e);
return java.util.Collections.emptyList();
}
}
/**
* 实时组装月台监测数据真实字段查 YMS 写死字段保留静态值
* 每次调用实时查库不经过快照表
*/
public PlatformSurveillanceVO buildRealTimePlatformSurveillance() {
Random r = new Random();
PlatformSurveillanceVO template = BiSnapshotWeeklyRandomDataBuilder.platformSurveillance(r);
// 作业车辆列表
List<RealPlatformVehiclePO> realVehicles = queryVehicles();
List<PlatformVehicleItemVO> vehicleVos = new ArrayList<>();
for (RealPlatformVehiclePO rv : realVehicles) {
PlatformVehicleItemVO v = new PlatformVehicleItemVO();
v.setAppointmentTime(rv.getAppointmentTime());
v.setWorkFloor(rv.getWorkFloor());
v.setPlateNumber(rv.getPlateNumber());
v.setStatus(translateFlowStatus(rv.getStatus()));
v.setPlatformId(rv.getPlatformId());
v.setPlatformDuration(rv.getPlatformDuration() == null ? 0 : rv.getPlatformDuration().intValue());
vehicleVos.add(v);
}
if (!vehicleVos.isEmpty()) {
template.setVehicles(vehicleVos);
}
// 月台实时概览
RealPlatformOverviewPO ov = queryPlatformOverview();
if (template.getPlatformOverview() != null) {
template.getPlatformOverview().setTotalPlatforms(ov.getTotalPlatforms().intValue());
template.getPlatformOverview().setOperatingPlatforms(ov.getOperatingPlatforms().intValue());
int total = ov.getTotalPlatforms().intValue();
int occ = ov.getOperatingPlatforms().intValue();
double rate = total > 0 ? Math.round(((double) occ / total) * 100.0 * 100.0) / 100.0 : 0d;
template.getPlatformOverview().setCurrentOccupancyRate(rate);
}
long todayTasks = countTodayTasks();
if (template.getPlatformOverview() != null) {
template.getPlatformOverview().setTodayTasks((int) todayTasks);
}
// 作业车辆状态统计
RealVehicleStatusPO vs = queryVehicleStatusToday();
if (template.getVehicleStatus() != null) {
template.getVehicleStatus().setTodayReservedVehicles(vs.getTodayReservedVehicles().intValue());
template.getVehicleStatus().setNotCheckedIn(vs.getNotCheckedIn().intValue());
template.getVehicleStatus().setOperatingVehicles(vs.getOperatingVehicles().intValue());
template.getVehicleStatus().setCompletedVehicles(vs.getCompletedVehicles().intValue());
}
// 本月任务统计 taskTotal
long monthTasks = countMonthTasks();
if (template.getMonthlyTaskStatistics() != null) {
template.getMonthlyTaskStatistics().setTaskTotal((int) monthTasks);
}
// 任务负荷今日 24 小时
List<RealTaskLoadPO> loads = queryTaskLoadToday();
if (!loads.isEmpty() && template.getTaskLoadStatistics() != null) {
Map<Integer, Long> hourMap = new HashMap<>();
for (RealTaskLoadPO l : loads) {
hourMap.put(l.getHourOfDay(), l.getTaskCount());
}
for (TaskLoadItemVO item : template.getTaskLoadStatistics()) {
Integer hour = parseHourFromLabel(item.getTime());
if (hour != null) {
Long n = hourMap.get(hour);
if (n != null) item.setTaskCount(n.intValue());
}
}
}
return template;
}
private static Integer parseHourFromLabel(String label) {
if (label == null) return null;
try {
String s = label.replace("", "").trim();
return Integer.parseInt(s);
} catch (Exception e) {
return null;
}
}
/**
* FLOW_STATUS 数字转中文1已预约 2已签到 3已叫号 4已过号 5已进场 6已称重 7已装车 8二次称重 9已结算 10已还卡 11已出场 12已取消
*/
private static String translateFlowStatus(String flowStatus) {
if (flowStatus == null) return null;
switch (flowStatus.trim()) {
case "1": return "已预约";
case "2": return "已签到";
case "3": return "已叫号";
case "4": return "已过号";
case "5": return "已进场";
case "6": return "已称重";
case "7": return "已装车";
case "8": return "二次称重";
case "9": return "已结算";
case "10": return "已还卡";
case "11": return "已出场";
case "12": return "已取消";
default: return flowStatus;
}
}
}
@@ -0,0 +1,20 @@
package com.mhd.bi.domain.biPlatformSurveillance.repository.mapper;
import com.mhd.bi.domain.biReport.support.BiReportSnapshotMapperSupport;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.PlatformSurveillanceVO;
/**
* 月台监测SQL BiPlatformSurveillanceReportMapper.xml取数与组装均在 Mapper 层完成
*/
public interface BiPlatformSurveillanceReportMapper {
String selectLatestPayloadJson();
default PlatformSurveillanceVO loadLatestPlatformSurveillance() {
return BiReportSnapshotMapperSupport.parsePayload(
selectLatestPayloadJson(),
PlatformSurveillanceVO.class,
BiReportSnapshotMapperSupport::emptyPlatformSurveillance,
"月台监测");
}
}
@@ -0,0 +1,18 @@
package com.mhd.bi.domain.biPlatformSurveillance.service;
import com.mhd.bi.domain.biPlatformSurveillance.repository.mapper.BiPlatformSurveillanceReportMapper;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.PlatformSurveillanceVO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class BiPlatformSurveillanceReportService {
@Resource
private BiPlatformSurveillanceReportMapper biPlatformSurveillanceReportMapper;
public PlatformSurveillanceVO loadLatestPlatformSurveillance() {
return biPlatformSurveillanceReportMapper.loadLatestPlatformSurveillance();
}
}
@@ -0,0 +1,42 @@
package com.mhd.bi.domain.biReport.support;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.WhMonthRatePointVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.WhTurnoverRateTrendVO;
import java.util.Arrays;
/**
* 总体运营态势左侧库存周转率趋势默认数据与仓储运营专区 turnover_rate_trend 结构一致
*/
public final class BiInventoryTurnoverTrendSupport {
private BiInventoryTurnoverTrendSupport() {
}
public static WhTurnoverRateTrendVO defaultTrend() {
return WhTurnoverRateTrendVO.builder()
.currentMonth("3次")
.annual("4次")
.data(Arrays.asList(
WhMonthRatePointVO.builder().month("11月").rate(10).build(),
WhMonthRatePointVO.builder().month("12月").rate(15).build(),
WhMonthRatePointVO.builder().month("1月").rate(22).build(),
WhMonthRatePointVO.builder().month("2月").rate(20).build(),
WhMonthRatePointVO.builder().month("3月").rate(12).build(),
WhMonthRatePointVO.builder().month("4月").rate(16).build()
))
.build();
}
public static boolean isEmpty(WhTurnoverRateTrendVO trend) {
return trend == null || trend.getData() == null || trend.getData().isEmpty();
}
public static WhTurnoverRateTrendVO emptyShell() {
return WhTurnoverRateTrendVO.builder()
.currentMonth("")
.annual("")
.data(java.util.Collections.emptyList())
.build();
}
}
@@ -0,0 +1,50 @@
package com.mhd.bi.domain.biReport.support;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.TrMonthValuePointVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.TrTypedChartVO;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* 准时配送率折线图总体运营 transport.on_time_rate运输运营专区 on_time_rate 共用
*/
public final class BiOnTimeDeliveryRateChartSupport {
private BiOnTimeDeliveryRateChartSupport() {
}
public static TrTypedChartVO defaultChart() {
return TrTypedChartVO.builder()
.title("准时配送率")
.type("line")
.unit("%")
.data(defaultMonthPoints())
.build();
}
public static List<TrMonthValuePointVO> defaultMonthPoints() {
return Arrays.asList(
TrMonthValuePointVO.builder().month("1月").value(98).build(),
TrMonthValuePointVO.builder().month("2月").value(96).build(),
TrMonthValuePointVO.builder().month("3月").value(85).build(),
TrMonthValuePointVO.builder().month("4月").value(70).build(),
TrMonthValuePointVO.builder().month("5月").value(92).build(),
TrMonthValuePointVO.builder().month("6月").value(90).build()
);
}
public static boolean isChartEmpty(TrTypedChartVO chart) {
return chart == null || chart.getData() == null || chart.getData().isEmpty();
}
public static TrTypedChartVO emptyChartShell() {
return TrTypedChartVO.builder()
.title("")
.type("")
.unit("")
.data(Collections.emptyList())
.build();
}
}
@@ -0,0 +1,276 @@
package com.mhd.bi.domain.biReport.support;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.ComprehensiveSituationVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.CustomerContributionRankVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.WarehouseTransportSituationVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.overall.*;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.TrTypedChartVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.*;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone.*;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.*;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import java.util.Collections;
import java.util.function.Supplier;
/**
* Mapper 层使用的快照 JSON 解析与空态SQL 仅定义在对应 Mapper.xml查询条件见各 XMLDEL_FLAG=1 CREATE_TIME 取最新
*/
@Slf4j
public final class BiReportSnapshotMapperSupport {
private static final ObjectMapper MAPPER = new ObjectMapper();
private BiReportSnapshotMapperSupport() {
}
public static <T> T parsePayload(String json, Class<T> type, Supplier<T> empty, String logLabel) {
if (StringUtils.isBlank(json)) {
return empty.get();
}
try {
return MAPPER.readValue(json.trim(), type);
} catch (Exception e) {
log.warn("{} PAYLOAD_JSON 解析失败,返回空态", logLabel, e);
return empty.get();
}
}
public static ComprehensiveSituationVO emptyComprehensiveSituation() {
return ComprehensiveSituationVO.builder()
.valueAddedServiceIncome(0L)
.inventoryTurnover(0)
.orderCount(0)
.vehicleUtilizationRate(0d)
.fuelConsumptionPerHundredKm(0)
.incomeTrend(Collections.emptyList())
.build();
}
public static WarehouseTransportSituationVO emptyWarehouseTransportSituation() {
return WarehouseTransportSituationVO.builder()
.warehouseDistributionOnTimeRate(0d)
.currentYearOrders(0L)
.currentQuarterOrders(0)
.currentMonthOrders(0)
.warehouseOrderTrend(Collections.emptyList())
.throughput(Collections.emptyList())
.currentMonthTurnoverRate(0)
.currentYearTurnoverRate(0)
.inventoryTurnoverTrend(Collections.emptyList())
.totalTransportIncome(0)
.orderCount(0)
.transportTrips(0)
.annualTransportVolume(0)
.transportOrderTotal(0)
.crossBorderTransportOrder(0)
.domesticTransportOrder(0)
.transportTripsTrend(Collections.emptyList())
.vehicleUtilizationRate(Collections.emptyList())
.warehouseDockSyncRate(Collections.emptyList())
.customerContributionRank(CustomerContributionRankVO.builder()
.customerName(Collections.emptyList())
.customerAmount(Collections.emptyList())
.build())
.build();
}
public static PlatformSurveillanceVO emptyPlatformSurveillance() {
return PlatformSurveillanceVO.builder()
.vehicles(Collections.emptyList())
.efficiencyStatistics(EfficiencyStatisticsVO.builder()
.entryOvertimeRate(0).overtimeCount(0).platformOnTimeRate(0)
.avgPlatformDuration(0d).yardOnTimeRate(0).avgYardDuration(0d).build())
.platformOverview(PlatformOverviewVO.builder()
.totalPlatforms(0).currentOccupancyRate(0d).operatingPlatforms(0).todayTasks(0).build())
.vehicleStatus(VehicleStatusVO.builder()
.todayReservedVehicles(0).notCheckedIn(0).operatingVehicles(0).completedVehicles(0).build())
.avgOperationDurationTrend(Collections.emptyList())
.monthlyTaskStatistics(MonthlyTaskStatisticsVO.builder()
.taskTotal(0).taskTotalYoY(0).avgTaskDuration(0d).avgDurationYoY(0)
.taskCompletionRate(0).completionRateYoY(0).build())
.taskLoadStatistics(Collections.emptyList())
.platformAlarmTrend(Collections.emptyList())
.taskTypeStatistics(TaskTypeStatisticsVO.builder()
.totalTasks(0).taskTypes(Collections.emptyList()).build())
.platformAlarmStatistics(PlatformAlarmStatisticsVO.builder()
.todayAlarmTotal(0).handled(0).unhandled(0).build())
.platformAlarmDistribution(Collections.emptyList())
.build();
}
public static OverallOperationSituationVO emptyOverallOperationSituation() {
return OverallOperationSituationVO.builder()
.updateTime("")
.warehouse(OverallWarehouseOperationVO.builder()
.orderStatistics(OverallWarehouseOrderStatisticVO.builder()
.processedOrderCount(0L).changePercent(0d).build())
.coreCapability(OverallWarehouseCoreCapabilityVO.builder()
.totalWarehouses(0).selfOperatedCount(0).outsourcedCount(0)
.operatingArea(0).areaUnit("")
.build())
.orderTrendByMonth(Collections.emptyList())
.throughputTrendByMonth(Collections.emptyList())
.bizStatistics(OverallWarehouseBizStatisticVO.builder()
.customerCount(0L).coverageArea("")
.annualThroughput(0).throughputUnit("").throughputGrowth(0d)
.build())
.turnoverRateTrend(BiInventoryTurnoverTrendSupport.defaultTrend())
.build())
.map(OverallMapSectionVO.builder().nodes(Collections.emptyList()).build())
.transport(OverallTransportOperationVO.builder()
.orderSummary(OverallTransportOrderSummaryVO.builder()
.processedOrderCount(0L).changePercent(0d)
.annualFreight(0d).freightUnit("").freightGrowth(0d)
.build())
.capacityStatistics(OverallTransportCapacityVO.builder()
.totalVehicles(0).ownedVehicles(0).socialVehicles(0)
.totalDrivers(0).ownedDrivers(0).socialDrivers(0)
.build())
.orderTrendByMonth(Collections.emptyList())
.freightTrendByMonth(Collections.emptyList())
.orderDistribution(OverallTransportModeDistributionVO.builder()
.crossBorder(0L).domestic(0L).build())
.onTimeRate(BiOnTimeDeliveryRateChartSupport.emptyChartShell())
.build())
.build();
}
public static WarehouseOperationZoneVO emptyWarehouseOperationZone() {
WhColdStorageMetricVO emptyColdMetric = WhColdStorageMetricVO.builder().value("").trend("").build();
return WarehouseOperationZoneVO.builder()
.warehouseName("")
.updateTime("")
.orderSummary(WhOrderSummaryVO.builder()
.totalCount("")
.inboundOrders(WhOrderSummaryCountItemVO.builder().label("").value(0).build())
.outboundOrders(WhOrderSummaryCountItemVO.builder().label("").value(0).build())
.operationOrders(WhOrderSummaryCountItemVO.builder().label("").value(0).build())
.build())
.coldStorageStats(WhColdStorageStatsVO.builder()
.revenueShare(emptyColdMetric)
.utilizationRate(emptyColdMetric)
.damageRate(emptyColdMetric)
.build())
.temperatureExceptions(Collections.emptyList())
.storageOverview(WhStorageOverviewVO.builder()
.title("").value(0).unit("").subText("").build())
.operationStats(WhOperationStatsVO.builder()
.title("").value(0).unit("").growthRate("").trend("").build())
.businessPlanning(WhBusinessPlanningVO.builder()
.generalWarehouse(0).coldStorage(0).foodProcessing(0).automatedStorage(0).build())
.throughputTrend(Collections.emptyList())
.areaDistribution(WhAreaDistributionVO.builder()
.utilizationRate("").details(Collections.emptyList()).build())
.capacityUtilizationTrend(WhCapacityUtilizationTrendVO.builder()
.peakLabel("").data(Collections.emptyList()).build())
.orderStatistics(WhOrderStatisticsVO.builder()
.annualOrders(0L).quarterlyOrders(0L).monthlyOrders(0L).build())
.serviceStatistics(WhServiceStatisticsVO.builder()
.clients(0).coverage("").onTimeRate("").rateChange("").build())
.orderTrend(Collections.emptyList())
.turnoverRateTrend(WhTurnoverRateTrendVO.builder()
.currentMonth("").annual("").data(Collections.emptyList()).build())
.serviceCapacity(Collections.emptyList())
.realTimeAnalysis(WhRealTimeAnalysisVO.builder()
.utilizationRate(WhRealTimeGaugeVO.builder().value("").comparison("").trend("").build())
.rentalRate(WhRealTimeGaugeVO.builder().value("").comparison("").trend("").build())
.build())
.map(WhWarehouseMapVO.builder()
.legend("")
.nodes(Collections.emptyList())
.build())
.build();
}
public static TransportOperationZoneVO emptyTransportOperationZone() {
TrCapacityCountVO emptyCount = TrCapacityCountVO.builder()
.total(0).todayNew(0).yesterdayNew(0).build();
return TransportOperationZoneVO.builder()
.updateTime("")
.dashboardTitle("")
.activeTab("")
.orderStatistics(TrOrderStatisticsVO.builder().title("").total(0L).trend("").build())
.transportStats(TrTransportStatsVO.builder()
.title("").tripCount(0).volume(0d).volumeUnit("").build())
.orderTypeChart(TrOrderTypeChartVO.builder()
.title("").type("").data(Collections.emptyList()).build())
.tripCountTrend(TrTypedChartVO.builder()
.title("").type("").unit(null).data(Collections.emptyList()).build())
.orderTrend(TrTypedChartVO.builder()
.title("").type("").unit("").data(Collections.emptyList()).build())
.volumeTrend(TrTypedChartVO.builder()
.title("").type("").unit("").data(Collections.emptyList()).build())
.map(TrVehicleMapVO.builder()
.title("")
.legend(TrMapLegendVO.builder().idle(0).working(0).build())
.nodes(Collections.emptyList())
.build())
.enterpriseOperation(TrEnterpriseOperationVO.builder()
.title("").columns(Collections.emptyList()).list(Collections.emptyList()).build())
.capacityStatus(TrCapacityStatusVO.builder()
.title("").staff(emptyCount).vehicles(emptyCount).build())
.cargoCategory(TrCargoCategoryVO.builder()
.title("").totalOrders("").data(Collections.emptyList()).build())
.onTimeRate(TrTypedChartVO.builder()
.title("").type("").unit("").data(Collections.emptyList()).build())
.vehicleUtilization(TrBarChartVO.builder()
.title("").unit("").data(Collections.emptyList()).build())
.transportSummary(TrTransportSummaryVO.builder()
.title("").safeMileage("").avgDeliveryTime("").build())
.capacityStats(TrCapacityStatsVO.builder()
.vehicles(emptyCapacityStatItem())
.drivers(emptyCapacityStatItem())
.escorts(emptyCapacityStatItem())
.build())
.cargoTypeDistribution(TrCargoTypeDistributionVO.builder()
.title("").totalOrders(0).totalUnit("").details(Collections.emptyList()).build())
.freshOrderStats(emptyBrandOrderStats())
.vitasoyOrderStats(emptyBrandOrderStats())
.build();
}
private static TrBrandOrderStatsVO emptyBrandOrderStats() {
return TrBrandOrderStatsVO.builder()
.plannedDelivery(TrOrderStatMetricVO.builder().value(0).unit("").label("").build())
.orderQuantity(TrOrderStatMetricVO.builder().value(0).unit("").label("").build())
.vehiclesInTransit(TrOrderStatMetricVO.builder().value(0).unit("").label("").build())
.completedDelivery(TrOrderStatTextMetricVO.builder().value("").unit("").label("").build())
.overtimeDelivery(TrOrderStatMetricVO.builder().value(0).unit("").label("").build())
.onTimeRate(TrOrderStatRateMetricVO.builder().value("").trend("").label("").build())
.build();
}
private static TrCapacityStatItemVO emptyCapacityStatItem() {
return TrCapacityStatItemVO.builder().value(0).unit("").label("").build();
}
public static HkMacaoServiceZoneVO emptyHkMacaoServiceZone() {
HkOrderStatsVO emptyOrderStats = HkOrderStatsVO.builder()
.totalOrders(0L).unit("").momGrowth("").trend("").build();
return HkMacaoServiceZoneVO.builder()
.warehouseOrderStats(emptyOrderStats)
.clientServiceStats(HkClientServiceStatsVO.builder()
.hkMacaoClients(0).clientRatio("").warehouseUsageArea("").areaRatio("").build())
.goodsSourceStats(HkRingChartStatsVO.builder()
.totalOrders(0).details(Collections.emptyList()).build())
.crossBorderOrderStats(HkRingChartStatsVO.builder()
.totalOrders(0).details(Collections.emptyList()).build())
.warehouseOrderTrend(Collections.emptyList())
.inventoryTurnoverTrend(HkInventoryTurnoverTrendVO.builder()
.currentMonthRate("").annualRate("").unit("").data(Collections.emptyList()).build())
.transportOrderStats(emptyOrderStats)
.doorToDoorEfficiency(HkDoorToDoorEfficiencyVO.builder()
.averageTime("").fastestTime("").momGrowth("").build())
.crossBorderTransportStats(HkRingChartStatsVO.builder()
.totalOrders(0).details(Collections.emptyList()).build())
.cargoVolumeTrend(Collections.emptyList())
.transportOrderTrend(Collections.emptyList())
.onTimeDeliveryRate(Collections.emptyList())
.mapData(HkMapDataVO.builder().points(Collections.emptyList()).build())
.build();
}
}
@@ -0,0 +1,18 @@
package com.mhd.bi.domain.biReport.support;
/**
* BI 快照表 {@code DEL_FLAG} 取值三张 *\_SNAPSHOT 表一致
* <p>查询接口仅返回 {@link #NORMAL}</p>
*/
public final class BiSnapshotDelFlag {
/** 无状态 */
public static final int NONE = 0;
/** 正常(接口查询可见) */
public static final int NORMAL = 1;
/** 已删除(逻辑删除,接口不返回) */
public static final int DELETED = 2;
private BiSnapshotDelFlag() {
}
}
@@ -0,0 +1,23 @@
package com.mhd.bi.domain.biSnapshotSync.repository.mapper;
import org.apache.ibatis.annotations.Param;
/**
* BI 快照表写入定时同步任务使用
*/
public interface BiSnapshotWriteMapper {
int insertComprehensiveSnapshot(@Param("payloadJson") String payloadJson, @Param("remark") String remark);
int insertWarehouseTransportSnapshot(@Param("payloadJson") String payloadJson, @Param("remark") String remark);
int insertPlatformSurveillanceSnapshot(@Param("payloadJson") String payloadJson, @Param("remark") String remark);
int insertOverallOperationSnapshot(@Param("payloadJson") String payloadJson, @Param("remark") String remark);
int insertWarehouseOperationZoneSnapshot(@Param("payloadJson") String payloadJson, @Param("remark") String remark);
int insertTransportOperationZoneSnapshot(@Param("payloadJson") String payloadJson, @Param("remark") String remark);
int insertHkMacaoServiceZoneSnapshot(@Param("payloadJson") String payloadJson, @Param("remark") String remark);
}
@@ -0,0 +1,28 @@
package com.mhd.bi.domain.biSnapshotSync.scheduler;
import com.mhd.bi.domain.biSnapshotSync.service.BiReportSnapshotSyncService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
* 定时将业务快照写入 BI_COMPREHENSIVE_SNAPSHOT / BI_WAREHOUSE_TRANSPORT_SNAPSHOT / BI_PLATFORM_SURVEILLANCE_SNAPSHOT / BI_OVERALL_OPERATION_SNAPSHOT / BI_WAREHOUSE_OPERATION_ZONE_SNAPSHOT / BI_TRANSPORT_OPERATION_ZONE_SNAPSHOT
* <p>默认关闭需在配置中设置 {@code mhd.bi.snapshot-sync.enabled=true}</p>
*/
@Slf4j
@Component
@RequiredArgsConstructor
@ConditionalOnProperty(prefix = "mhd.bi.snapshot-sync", name = "enabled", havingValue = "true")
public class BiReportSnapshotSyncScheduler {
private final BiReportSnapshotSyncService biReportSnapshotSyncService;
@Scheduled(cron = "${mhd.bi.snapshot-sync.cron:0 0 2 * * ?}")
public void runSnapshotSync() {
log.info("BI 报表快照定时同步开始");
biReportSnapshotSyncService.syncAllSnapshots();
log.info("BI 报表快照定时同步结束");
}
}
@@ -0,0 +1,282 @@
package com.mhd.bi.domain.biSnapshotSync.service;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mhd.bi.domain.biSnapshotSync.repository.mapper.BiSnapshotWriteMapper;
import com.mhd.bi.domain.biSnapshotSync.support.BiSnapshotWeeklyRandomDataBuilder;
import com.mhd.bi.domain.biHkMacaoServiceZone.support.HkMacaoServiceZoneDemoData;
import com.mhd.bi.domain.biTransportOperationZone.support.TransportOperationZoneDemoData;
import com.mhd.bi.domain.biWarehouseOperationZone.support.WarehouseOperationZoneDemoData;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.ComprehensiveSituationVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.WarehouseTransportSituationVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.overall.OverallOperationSituationVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.PlatformSurveillanceVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone.HkMacaoServiceZoneVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.TransportOperationZoneVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.WarehouseOperationZoneVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.PlatformVehicleItemVO;
import com.mhd.bi.domain.biPlatformRealData.service.BiPlatformRealDataService;
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformVehiclePO;
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformOverviewPO;
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealVehicleStatusPO;
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealTaskLoadPO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
import java.util.Random;
/**
* BI 快照表定时同步综合态势 / 仓储运输 / 月台监测 / 总体运营态势 / 仓储运营专区 / 运输运营专区 / 港澳服务专区
* <p><b>当前临时</b>{@code build*} 使用 {@link BiSnapshotWeeklyRandomDataBuilder}每次执行使用新的 {@link Random}
* <b>同一天多次手动触发以及每次定时任务执行</b>生成的模拟数据均<b>不相同</b>仍在基准 ±20% </p>
* <p><b>后续改造</b>在各 {@code build*} 中改为查库/Feign 聚合真实业务并组装 VO</p>
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class BiReportSnapshotSyncService {
private static final String REMARK_SYNC = "scheduled snapshot-sync";
private final BiSnapshotWriteMapper biSnapshotWriteMapper;
private final ObjectMapper objectMapper;
private final BiPlatformRealDataService biPlatformRealDataService;
/**
* 依次同步各快照表单表失败不影响其它表只记日志
*/
public void syncAllSnapshots() {
syncComprehensiveSnapshot();
syncWarehouseTransportSnapshot();
syncPlatformSurveillanceSnapshot();
syncOverallOperationSnapshot();
syncWarehouseOperationZoneSnapshot();
syncTransportOperationZoneSnapshot();
syncHkMacaoServiceZoneSnapshot();
}
public void syncComprehensiveSnapshot() {
try {
ComprehensiveSituationVO vo = buildComprehensiveSnapshot();
String json = objectMapper.writeValueAsString(vo);
int rows = biSnapshotWriteMapper.insertComprehensiveSnapshot(json, REMARK_SYNC);
if (rows < 1) {
log.warn("BI 综合态势快照 INSERT 影响行数为 {},请确认 NGWL_TEST_BI.BI_COMPREHENSIVE_SNAPSHOT 权限及库是否一致", rows);
}
log.info("BI 综合态势快照已写入, affectedRows={}", rows);
} catch (Exception e) {
log.error("BI 综合态势快照同步失败", e);
}
}
public void syncWarehouseTransportSnapshot() {
try {
WarehouseTransportSituationVO vo = buildWarehouseTransportSnapshot();
String json = objectMapper.writeValueAsString(vo);
int rows = biSnapshotWriteMapper.insertWarehouseTransportSnapshot(json, REMARK_SYNC);
if (rows < 1) {
log.warn("BI 仓储运输快照 INSERT 影响行数为 {},请确认 NGWL_TEST_BI.BI_WAREHOUSE_TRANSPORT_SNAPSHOT", rows);
}
log.info("BI 仓储运输快照已写入, affectedRows={}", rows);
} catch (Exception e) {
log.error("BI 仓储运输快照同步失败", e);
}
}
public void syncPlatformSurveillanceSnapshot() {
try {
PlatformSurveillanceVO vo = buildPlatformSurveillanceSnapshot();
String json = objectMapper.writeValueAsString(vo);
int rows = biSnapshotWriteMapper.insertPlatformSurveillanceSnapshot(json, REMARK_SYNC);
if (rows < 1) {
log.warn("BI 月台监测快照 INSERT 影响行数为 {},请确认 NGWL_TEST_BI.BI_PLATFORM_SURVEILLANCE_SNAPSHOT", rows);
}
log.info("BI 月台监测快照已写入, affectedRows={}", rows);
} catch (Exception e) {
log.error("BI 月台监测快照同步失败", e);
}
}
public void syncOverallOperationSnapshot() {
try {
OverallOperationSituationVO vo = buildOverallOperationSnapshot();
String json = objectMapper.writeValueAsString(vo);
int rows = biSnapshotWriteMapper.insertOverallOperationSnapshot(json, REMARK_SYNC);
if (rows < 1) {
log.warn("BI 总体运营态势快照 INSERT 影响行数为 {},请确认 NGWL_TEST_BI.BI_OVERALL_OPERATION_SNAPSHOT", rows);
}
log.info("BI 总体运营态势快照已写入, affectedRows={}", rows);
} catch (Exception e) {
log.error("BI 总体运营态势快照同步失败", e);
}
}
public void syncWarehouseOperationZoneSnapshot() {
try {
WarehouseOperationZoneVO vo = buildWarehouseOperationZoneSnapshot();
String json = objectMapper.writeValueAsString(vo);
int rows = biSnapshotWriteMapper.insertWarehouseOperationZoneSnapshot(json, REMARK_SYNC);
if (rows < 1) {
log.warn("BI 仓储运营专区快照 INSERT 影响行数为 {},请确认 NGWL_TEST_BI.BI_WAREHOUSE_OPERATION_ZONE_SNAPSHOT", rows);
}
log.info("BI 仓储运营专区快照已写入, affectedRows={}", rows);
} catch (Exception e) {
log.error("BI 仓储运营专区快照同步失败", e);
}
}
/**
* TODO 业务落地改为查询真实数据组装 VO临时实现见 {@link BiSnapshotWeeklyRandomDataBuilder#overallOperation(Random)}
*/
protected OverallOperationSituationVO buildOverallOperationSnapshot() {
return BiSnapshotWeeklyRandomDataBuilder.overallOperation(new Random());
}
/**
* TODO 业务落地改为查询真实数据组装 VO临时实现见 {@link BiSnapshotWeeklyRandomDataBuilder#comprehensive(Random)}
*/
protected ComprehensiveSituationVO buildComprehensiveSnapshot() {
return BiSnapshotWeeklyRandomDataBuilder.comprehensive(new Random());
}
/** TODO 业务落地:改为查询真实数据。临时实现见 {@link BiSnapshotWeeklyRandomDataBuilder#warehouseTransport(Random)}。 */
protected WarehouseTransportSituationVO buildWarehouseTransportSnapshot() {
return BiSnapshotWeeklyRandomDataBuilder.warehouseTransport(new Random());
}
/** TODO 业务落地:部分字段改为真实数据,其余仍写死。 */
protected PlatformSurveillanceVO buildPlatformSurveillanceSnapshot() {
Random r = new Random();
// 写死数据复用原 builder
PlatformSurveillanceVO template = BiSnapshotWeeklyRandomDataBuilder.platformSurveillance(r);
// ====== 真实数据作业车辆列表 ======
List<RealPlatformVehiclePO> realVehicles = biPlatformRealDataService.queryVehicles();
List<PlatformVehicleItemVO> vehicleVos = new ArrayList<>();
for (RealPlatformVehiclePO rv : realVehicles) {
PlatformVehicleItemVO v = new PlatformVehicleItemVO();
v.setAppointmentTime(rv.getAppointmentTime());
v.setWorkFloor(rv.getWorkFloor());
v.setPlateNumber(rv.getPlateNumber());
v.setStatus(rv.getStatus());
v.setPlatformId(rv.getPlatformId());
v.setPlatformDuration(rv.getPlatformDuration() == null ? 0 : rv.getPlatformDuration().intValue());
vehicleVos.add(v);
}
if (!vehicleVos.isEmpty()) {
template.setVehicles(vehicleVos);
}
// ====== 真实数据月台实时概览 ======
RealPlatformOverviewPO ov = biPlatformRealDataService.queryPlatformOverview();
if (template.getPlatformOverview() != null) {
template.getPlatformOverview().setTotalPlatforms(ov.getTotalPlatforms().intValue());
template.getPlatformOverview().setOperatingPlatforms(ov.getOperatingPlatforms().intValue());
int total = ov.getTotalPlatforms().intValue();
int occ = ov.getOperatingPlatforms().intValue();
double rate = total > 0 ? Math.round(((double) occ / total) * 100.0 * 100.0) / 100.0 : 0d;
template.getPlatformOverview().setCurrentOccupancyRate(rate);
}
long todayTasks = biPlatformRealDataService.countTodayTasks();
if (template.getPlatformOverview() != null) {
template.getPlatformOverview().setTodayTasks((int) todayTasks);
}
// ====== 真实数据作业车辆状态统计 ======
RealVehicleStatusPO vs = biPlatformRealDataService.queryVehicleStatusToday();
if (template.getVehicleStatus() != null) {
template.getVehicleStatus().setTodayReservedVehicles(vs.getTodayReservedVehicles().intValue());
template.getVehicleStatus().setNotCheckedIn(vs.getNotCheckedIn().intValue());
template.getVehicleStatus().setOperatingVehicles(vs.getOperatingVehicles().intValue());
template.getVehicleStatus().setCompletedVehicles(vs.getCompletedVehicles().intValue());
}
// ====== 真实数据本月任务统计 taskTotal ======
long monthTasks = biPlatformRealDataService.countMonthTasks();
if (template.getMonthlyTaskStatistics() != null) {
template.getMonthlyTaskStatistics().setTaskTotal((int) monthTasks);
}
// ====== 真实数据任务负荷今日 24 小时 ======
List<RealTaskLoadPO> loads = biPlatformRealDataService.queryTaskLoadToday();
if (!loads.isEmpty() && template.getTaskLoadStatistics() != null) {
Map<Integer, Long> hourMap = new HashMap<>();
for (RealTaskLoadPO l : loads) {
hourMap.put(l.getHourOfDay(), l.getTaskCount());
}
for (com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.TaskLoadItemVO item : template.getTaskLoadStatistics()) {
Integer hour = parseHourFromLabel(item.getTime());
if (hour != null) {
Long n = hourMap.get(hour);
if (n != null) item.setTaskCount(n.intValue());
}
}
}
return template;
}
private static Integer parseHourFromLabel(String label) {
if (label == null) return null;
// "15时" -> 15
try {
String s = label.replace("", "").trim();
return Integer.parseInt(s);
} catch (Exception e) {
return null;
}
}
/**
* TODO 业务落地改为查询真实数据组装 VO当前为 {@link WarehouseOperationZoneDemoData} 静态示例
*/
protected WarehouseOperationZoneVO buildWarehouseOperationZoneSnapshot() {
return WarehouseOperationZoneDemoData.build();
}
public void syncTransportOperationZoneSnapshot() {
try {
TransportOperationZoneVO vo = buildTransportOperationZoneSnapshot();
String json = objectMapper.writeValueAsString(vo);
int rows = biSnapshotWriteMapper.insertTransportOperationZoneSnapshot(json, REMARK_SYNC);
if (rows < 1) {
log.warn("BI 运输运营专区快照 INSERT 影响行数为 {},请确认 NGWL_TEST_BI.BI_TRANSPORT_OPERATION_ZONE_SNAPSHOT", rows);
}
log.info("BI 运输运营专区快照已写入, affectedRows={}", rows);
} catch (Exception e) {
log.error("BI 运输运营专区快照同步失败", e);
}
}
/**
* TODO 业务落地改为查询真实数据组装 VO当前为 {@link TransportOperationZoneDemoData} 静态示例
*/
protected TransportOperationZoneVO buildTransportOperationZoneSnapshot() {
return TransportOperationZoneDemoData.build();
}
public void syncHkMacaoServiceZoneSnapshot() {
try {
HkMacaoServiceZoneVO vo = buildHkMacaoServiceZoneSnapshot();
String json = objectMapper.writeValueAsString(vo);
int rows = biSnapshotWriteMapper.insertHkMacaoServiceZoneSnapshot(json, REMARK_SYNC);
if (rows < 1) {
log.warn("BI 港澳服务专区快照 INSERT 影响行数为 {},请确认 NGWL_TEST_BI.BI_HK_MACAO_SERVICE_ZONE_SNAPSHOT", rows);
}
log.info("BI 港澳服务专区快照已写入, affectedRows={}", rows);
} catch (Exception e) {
log.error("BI 港澳服务专区快照同步失败", e);
}
}
/**
* TODO 业务落地改为查询真实数据组装 VO当前为 {@link HkMacaoServiceZoneDemoData} 静态示例
*/
protected HkMacaoServiceZoneVO buildHkMacaoServiceZoneSnapshot() {
return HkMacaoServiceZoneDemoData.build();
}
}
@@ -0,0 +1,441 @@
package com.mhd.bi.domain.biSnapshotSync.support;
import com.mhd.bi.domain.biReport.support.BiOnTimeDeliveryRateChartSupport;
import com.mhd.bi.domain.biReport.support.BiInventoryTurnoverTrendSupport;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.ComprehensiveSituationVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.CustomerContributionRankVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.WarehouseTransportSituationVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.overall.*;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.*;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;
/**
* <b>临时</b>在基准 ±20% 内生成模拟快照基准对齐 insert_bi_snapshots_alternate_row_dm
* 调用 {@link #comprehensive(Random)} 等时须传入 {@link Random}<b>每次 {@code new Random()} 则每次结果不同</b>
* 若需可重复如单测可传入 {@link #randomForDate(java.time.LocalDate, long)} 等有固定种子的实例
*/
public final class BiSnapshotWeeklyRandomDataBuilder {
private BiSnapshotWeeklyRandomDataBuilder() {
}
/**
* 固定种子如同日多次一致适用于单元测试等生产模拟同步请使用 {@code new Random()}
*/
public static Random randomForDate(LocalDate date, long salt) {
long epochDay = date.toEpochDay();
salt = salt % 1000000007L;
return new Random(epochDay * 1_000_003L + salt * 7919L);
}
/**
* @deprecated 请使用 {@link #randomForDate(LocalDate, long)}历史方法名保留兼容现已按自然日而非 ISO
*/
@Deprecated
public static Random randomForWeekOf(LocalDate date, long salt) {
return randomForDate(date, salt);
}
@Deprecated
public static Random randomForWeekOf(LocalDate date) {
return randomForDate(date, 0L);
}
private static double jitterFactor(Random r) {
return 0.8 + r.nextDouble() * 0.4;
}
static int jitterInt(int base, Random r) {
return (int) Math.round(base * jitterFactor(r));
}
static long jitterLong(long base, Random r) {
return Math.round(base * jitterFactor(r));
}
static double jitterDouble(double base, Random r) {
return Math.round(base * jitterFactor(r) * 10.0) / 10.0;
}
static int jitterPercentInt(int base, Random r) {
return Math.min(100, Math.max(0, jitterInt(base, r)));
}
private static double jitterPercentDouble(double base, Random r) {
double v = base * jitterFactor(r);
return Math.min(100.0, Math.max(0.0, Math.round(v * 10.0) / 10.0));
}
private static List<Integer> jitterIntArray(int[] arr, Random r) {
return Arrays.stream(arr).map(v -> jitterInt(v, r)).boxed().collect(Collectors.toList());
}
public static ComprehensiveSituationVO comprehensive(Random r) {
return ComprehensiveSituationVO.builder()
.valueAddedServiceIncome(jitterLong(Baseline.COMP_INCOME, r))
.inventoryTurnover(Math.max(1, jitterInt(Baseline.COMP_TURNOVER, r)))
.orderCount(Math.max(0, jitterInt(Baseline.COMP_ORDERS, r)))
.vehicleUtilizationRate(jitterPercentDouble(Baseline.COMP_VEHICLE_PCT, r))
.fuelConsumptionPerHundredKm(Math.max(1, jitterInt(Baseline.COMP_FUEL, r)))
.incomeTrend(jitterIntArray(Baseline.COMP_INCOME_TREND, r))
.build();
}
public static WarehouseTransportSituationVO warehouseTransport(Random r) {
List<Integer> dock = new ArrayList<>();
for (int v : Baseline.W_DOCK) {
dock.add(jitterPercentInt(v, r));
}
List<Integer> custAmt = new ArrayList<>();
for (int v : Baseline.W_CUST_AMT) {
custAmt.add(jitterInt(v, r));
}
return WarehouseTransportSituationVO.builder()
.warehouseDistributionOnTimeRate(jitterPercentDouble(Baseline.W_WH_RATE, r))
.currentYearOrders(jitterLong(Baseline.W_YEAR_ORD, r))
.currentQuarterOrders(Math.max(0, jitterInt(Baseline.W_Q_ORD, r)))
.currentMonthOrders(Math.max(0, jitterInt(Baseline.W_M_ORD, r)))
.warehouseOrderTrend(jitterIntArray(Baseline.W_WH_TREND, r))
.throughput(jitterIntArray(Baseline.W_THROUGH, r))
.currentMonthTurnoverRate(Math.max(1, jitterInt(Baseline.W_M_TOR, r)))
.currentYearTurnoverRate(Math.max(1, jitterInt(Baseline.W_Y_TOR, r)))
.inventoryTurnoverTrend(jitterIntArray(Baseline.W_INV_TR, r))
.totalTransportIncome(Math.max(0, jitterInt(Baseline.W_INCOME, r)))
.orderCount(Math.max(0, jitterInt(Baseline.W_ORD, r)))
.transportTrips(Math.max(0, jitterInt(Baseline.W_TRIPS, r)))
.annualTransportVolume(Math.max(0, jitterInt(Baseline.W_VOL, r)))
.transportOrderTotal(Math.max(0, jitterInt(Baseline.W_TOT, r)))
.crossBorderTransportOrder(Math.max(0, jitterInt(Baseline.W_CB, r)))
.domesticTransportOrder(Math.max(0, jitterInt(Baseline.W_DM, r)))
.transportTripsTrend(jitterIntArray(Baseline.W_TRIP_TR, r))
.vehicleUtilizationRate(jitterIntArray(Baseline.W_VEH_UT, r))
.warehouseDockSyncRate(dock)
.customerContributionRank(CustomerContributionRankVO.builder()
.customerName(Arrays.asList(Baseline.W_CUST_NAMES))
.customerAmount(custAmt)
.build())
.build();
}
public static PlatformSurveillanceVO platformSurveillance(Random r) {
List<PlatformVehicleItemVO> vehicles = new ArrayList<>();
for (String[] row : Baseline.P_PLATES) {
int dur = jitterInt(Integer.parseInt(row[3]), r);
vehicles.add(PlatformVehicleItemVO.builder()
.appointmentTime(Baseline.P_APPOINTMENT_TIME)
.workFloor(Baseline.P_WORK_FLOOR)
.plateNumber(row[0])
.status(row[1])
.platformId(row[2])
.platformDuration(Math.max(1, dur))
.build());
}
EfficiencyStatisticsVO eff = EfficiencyStatisticsVO.builder()
.entryOvertimeRate(jitterPercentInt(Baseline.P_ENT_OT, r))
.overtimeCount(Math.max(0, jitterInt(Baseline.P_OT_CNT, r)))
.platformOnTimeRate(jitterPercentInt(Baseline.P_PL_OT, r))
.avgPlatformDuration(Math.max(0.1, jitterDouble(Baseline.P_AVG_PL, r)))
.yardOnTimeRate(jitterPercentInt(Baseline.P_YD_OT, r))
.avgYardDuration(Math.max(0.1, jitterDouble(Baseline.P_AVG_YD, r)))
.build();
PlatformOverviewVO overview = PlatformOverviewVO.builder()
.totalPlatforms(Math.max(1, jitterInt(Baseline.P_TOT_PL, r)))
.currentOccupancyRate((double) jitterPercentInt(Baseline.P_OCC, r))
.operatingPlatforms(Math.max(0, jitterInt(Baseline.P_OP, r)))
.todayTasks(Math.max(0, jitterInt(Baseline.P_TASKS, r)))
.build();
VehicleStatusVO vs = VehicleStatusVO.builder()
.todayReservedVehicles(Math.max(0, jitterInt(Baseline.P_RESV, r)))
.notCheckedIn(Math.max(0, jitterInt(Baseline.P_NC, r)))
.operatingVehicles(Math.max(0, jitterInt(Baseline.P_OPV, r)))
.completedVehicles(Math.max(0, jitterInt(Baseline.P_DONE, r)))
.build();
List<AvgOperationDurationTrendItemVO> avgTrend = new ArrayList<>();
for (int i = 0; i < Baseline.P_MO_LABELS.length; i++) {
avgTrend.add(AvgOperationDurationTrendItemVO.builder()
.month(Baseline.P_MO_LABELS[i])
.yardDuration(Math.max(0.0, jitterDouble(Baseline.P_YD_D[i], r)))
.platformDuration(Math.max(0.0, jitterDouble(Baseline.P_PL_D[i], r)))
.build());
}
MonthlyTaskStatisticsVO monthly = MonthlyTaskStatisticsVO.builder()
.taskTotal(Math.max(0, jitterInt(Baseline.P_MT_TOT, r)))
.taskTotalYoY(jitterInt(Baseline.P_MT_YOY, r))
.avgTaskDuration(Math.max(0.1, jitterDouble(Baseline.P_MT_AVG, r)))
.avgDurationYoY(jitterInt(Baseline.P_MT_AVG_YOY, r))
.taskCompletionRate(jitterPercentInt(Baseline.P_MT_CR, r))
.completionRateYoY(jitterInt(Baseline.P_MT_CR_YOY, r))
.build();
List<TaskLoadItemVO> load = new ArrayList<>();
for (int i = 0; i < Baseline.P_LOAD_T.length; i++) {
load.add(TaskLoadItemVO.builder()
.time(Baseline.P_LOAD_T[i])
.taskCount(Math.max(0, jitterInt(Baseline.P_LOAD_C[i], r)))
.build());
}
List<PlatformAlarmTrendItemVO> alarmTrend = new ArrayList<>();
for (int i = 0; i < Baseline.P_AL_D.length; i++) {
alarmTrend.add(PlatformAlarmTrendItemVO.builder()
.date(Baseline.P_AL_D[i])
.alarmCount(Math.max(0, jitterInt(Baseline.P_AL_C[i], r)))
.build());
}
List<TaskTypeCountItemVO> typeCounts = new ArrayList<>();
for (int i = 0; i < Baseline.P_TT_TYPES.length; i++) {
typeCounts.add(TaskTypeCountItemVO.builder()
.type(Baseline.P_TT_TYPES[i])
.count(Math.max(0, jitterInt(Baseline.P_TT_CNT[i], r)))
.build());
}
int todayAl = Math.max(0, jitterInt(Baseline.P_AL_TOT, r));
int handled = Math.max(0, jitterInt(Baseline.P_AL_H, r));
handled = Math.min(handled, todayAl);
int unhandled = Math.max(0, todayAl - handled);
List<PlatformAlarmDistItemVO> dist = new ArrayList<>();
for (int i = 0; i < Baseline.P_DIST_T.length; i++) {
dist.add(PlatformAlarmDistItemVO.builder()
.type(Baseline.P_DIST_T[i])
.count(Math.max(0, jitterInt(Baseline.P_DIST_C[i], r)))
.build());
}
return PlatformSurveillanceVO.builder()
.vehicles(vehicles)
.efficiencyStatistics(eff)
.platformOverview(overview)
.vehicleStatus(vs)
.avgOperationDurationTrend(avgTrend)
.monthlyTaskStatistics(monthly)
.taskLoadStatistics(load)
.platformAlarmTrend(alarmTrend)
.taskTypeStatistics(TaskTypeStatisticsVO.builder()
.totalTasks(Math.max(0, jitterInt(Baseline.P_TT_TOT, r)))
.taskTypes(typeCounts)
.build())
.platformAlarmStatistics(PlatformAlarmStatisticsVO.builder()
.todayAlarmTotal(todayAl)
.handled(handled)
.unhandled(unhandled)
.build())
.platformAlarmDistribution(dist)
.build();
}
/**
* 总体运营态势 {@code create_bi_overall_operation_dm.sql} 内置 PAYLOAD_JSON 一致不随 Random 抖动
*/
public static OverallOperationSituationVO overallOperation(Random r) {
return overallReferenceDashboard();
}
/**
* 与产品约定返回值示例一致供快照同步与联调
* 左侧 {@code warehouse.turnover_rate_trend} 库存周转率趋势右下角 {@code transport.on_time_rate} 准时配送率
*/
public static OverallOperationSituationVO overallReferenceDashboard() {
return OverallOperationSituationVO.builder()
.updateTime("2026-05-11 10:55:00")
.warehouse(OverallWarehouseOperationVO.builder()
.orderStatistics(OverallWarehouseOrderStatisticVO.builder()
.processedOrderCount(6767L)
.changePercent(5.4)
.build())
.coreCapability(OverallWarehouseCoreCapabilityVO.builder()
.totalWarehouses(10)
.selfOperatedCount(4)
.outsourcedCount(6)
.operatingArea(28)
.areaUnit("万m²")
.build())
.orderTrendByMonth(Arrays.asList(
OverallWarehouseOrderTrendMonthVO.builder().monthLabel("1月").inboundOrders(700L).outboundOrders(450L).build(),
OverallWarehouseOrderTrendMonthVO.builder().monthLabel("2月").inboundOrders(900L).outboundOrders(550L).build(),
OverallWarehouseOrderTrendMonthVO.builder().monthLabel("3月").inboundOrders(800L).outboundOrders(480L).build(),
OverallWarehouseOrderTrendMonthVO.builder().monthLabel("4月").inboundOrders(550L).outboundOrders(300L).build(),
OverallWarehouseOrderTrendMonthVO.builder().monthLabel("5月").inboundOrders(750L).outboundOrders(350L).build(),
OverallWarehouseOrderTrendMonthVO.builder().monthLabel("6月").inboundOrders(580L).outboundOrders(320L).build(),
OverallWarehouseOrderTrendMonthVO.builder().monthLabel("7月").inboundOrders(780L).outboundOrders(400L).build()
))
.throughputTrendByMonth(Arrays.asList(
OverallThroughputTrendMonthVO.builder().monthLabel("11月").throughput(10).build(),
OverallThroughputTrendMonthVO.builder().monthLabel("12月").throughput(14).build(),
OverallThroughputTrendMonthVO.builder().monthLabel("1月").throughput(23).build(),
OverallThroughputTrendMonthVO.builder().monthLabel("2月").throughput(22).build(),
OverallThroughputTrendMonthVO.builder().monthLabel("3月").throughput(17).build(),
OverallThroughputTrendMonthVO.builder().monthLabel("4月").throughput(18).build(),
OverallThroughputTrendMonthVO.builder().monthLabel("5月").throughput(9).build()
))
.bizStatistics(OverallWarehouseBizStatisticVO.builder()
.customerCount(582L)
.coverageArea("覆盖港珠澳")
.annualThroughput(26)
.throughputUnit("万吨")
.throughputGrowth(8.5)
.build())
.turnoverRateTrend(BiInventoryTurnoverTrendSupport.defaultTrend())
.build())
.map(OverallMapSectionVO.builder()
.nodes(Arrays.asList(
OverallMapNodeVO.builder()
.type("headquarters")
.name("总部")
.location(Arrays.asList(113.55, 22.25, 0.0))
.build(),
OverallMapNodeVO.builder()
.type("businessUnit")
.name("业务单元")
.location(Arrays.asList(113.55, 22.20, 0.0))
.tooltip(OverallMapTooltipVO.builder()
.title("通宇业务情况分析")
.data(Arrays.asList(
OverallMapTooltipDataItemVO.builder().label("在途车辆").value(3).build(),
OverallMapTooltipDataItemVO.builder().label("在途订单").value(11).build()
))
.build())
.build(),
OverallMapNodeVO.builder()
.type("warehouse")
.name("通宇保税仓")
.location(Arrays.asList(114.16, 22.28, 0.0))
.tooltip(OverallMapTooltipVO.builder()
.title("通宇保税仓情况分析")
.data(Arrays.asList(
OverallMapTooltipDataItemVO.builder().label("入库作业").value(1).build(),
OverallMapTooltipDataItemVO.builder().label("出库作业").value(1).build()
))
.build())
.build()
))
.build())
.transport(OverallTransportOperationVO.builder()
.orderSummary(OverallTransportOrderSummaryVO.builder()
.processedOrderCount(5240L)
.changePercent(6.2)
.annualFreight(2.6)
.freightUnit("万吨")
.freightGrowth(8.5)
.build())
.capacityStatistics(OverallTransportCapacityVO.builder()
.totalVehicles(320)
.ownedVehicles(100)
.socialVehicles(220)
.totalDrivers(400)
.ownedDrivers(160)
.socialDrivers(240)
.build())
.orderTrendByMonth(Arrays.asList(
OverallTransportOrderTrendMonthVO.builder().monthLabel("1月").count(100L).build(),
OverallTransportOrderTrendMonthVO.builder().monthLabel("2月").count(120L).build(),
OverallTransportOrderTrendMonthVO.builder().monthLabel("3月").count(230L).build(),
OverallTransportOrderTrendMonthVO.builder().monthLabel("4月").count(110L).build(),
OverallTransportOrderTrendMonthVO.builder().monthLabel("5月").count(150L).build(),
OverallTransportOrderTrendMonthVO.builder().monthLabel("6月").count(200L).build()
))
.freightTrendByMonth(Arrays.asList(
OverallTransportFreightTrendMonthVO.builder().monthLabel("1月").freight(80).build(),
OverallTransportFreightTrendMonthVO.builder().monthLabel("2月").freight(110).build(),
OverallTransportFreightTrendMonthVO.builder().monthLabel("3月").freight(240).build(),
OverallTransportFreightTrendMonthVO.builder().monthLabel("4月").freight(100).build(),
OverallTransportFreightTrendMonthVO.builder().monthLabel("5月").freight(140).build(),
OverallTransportFreightTrendMonthVO.builder().monthLabel("6月").freight(190).build()
))
.orderDistribution(OverallTransportModeDistributionVO.builder()
.crossBorder(2400L)
.domestic(2300L)
.build())
.onTimeRate(BiOnTimeDeliveryRateChartSupport.defaultChart())
.build())
.build();
}
/**
* 基准与 SQL 脚本 alternate sample 一致
*/
private static final class Baseline {
static final long COMP_INCOME = 6_185_000L;
static final int COMP_TURNOVER = 18;
static final int COMP_ORDERS = 50_120;
static final double COMP_VEHICLE_PCT = 93.2;
static final int COMP_FUEL = 12;
static final int[] COMP_INCOME_TREND = {195, 248, 302, 415, 366, 488};
static final double W_WH_RATE = 96.8;
static final long W_YEAR_ORD = 612_800L;
static final int W_Q_ORD = 198_600;
static final int W_M_ORD = 28_440;
static final int[] W_WH_TREND = {82, 91, 77, 68, 103, 89};
static final int[] W_THROUGH = {18, 11, 26, 15, 9, 21};
static final int W_M_TOR = 4;
static final int W_Y_TOR = 5;
static final int[] W_INV_TR = {16, 19, 11, 24, 18, 14};
static final int W_INCOME = 7_230;
static final int W_ORD = 912;
static final int W_TRIPS = 601;
static final int W_VOL = 22;
static final int W_TOT = 5_100;
static final int W_CB = 2_680;
static final int W_DM = 2_420;
static final int[] W_TRIP_TR = {120, 95, 210, 155, 88, 175};
static final int[] W_VEH_UT = {520, 410, 380, 500, 590, 480};
static final int[] W_DOCK = {96, 91, 82, 75, 99, 88};
static final String[] W_CUST_NAMES = {"华东冷链", "华南汽配", "西南快消", "华北家电", "跨境达"};
static final int[] W_CUST_AMT = {198, 172, 205, 189, 221};
static final String P_APPOINTMENT_TIME = "2026-08-03 09:30:00";
static final String P_WORK_FLOOR = "一楼";
static final String[][] P_PLATES = {
{"粤A12345", "待入场", "#12", "88"},
{"闽D99887", "作业中", "#07", "142"},
{"粤B66220", "已离园", "#29", "201"}
};
static final int P_ENT_OT = 42;
static final int P_OT_CNT = 28;
static final int P_PL_OT = 88;
static final double P_AVG_PL = 3.8;
static final int P_YD_OT = 91;
static final double P_AVG_YD = 5.2;
static final int P_TOT_PL = 58;
static final int P_OCC = 62;
static final int P_OP = 31;
static final int P_TASKS = 418;
static final int P_RESV = 2_850;
static final int P_NC = 920;
static final int P_OPV = 1_180;
static final int P_DONE = 1_420;
static final String[] P_MO_LABELS = {"5月", "6月", "7月"};
static final double[] P_YD_D = {12, 16, 19};
static final double[] P_PL_D = {19, 21, 18};
static final int P_MT_TOT = 1_820;
static final int P_MT_YOY = 8;
static final double P_MT_AVG = 5.1;
static final int P_MT_AVG_YOY = -3;
static final int P_MT_CR = 97;
static final int P_MT_CR_YOY = 2;
static final String[] P_LOAD_T = {"8时", "10时", "14时"};
static final int[] P_LOAD_C = {45, 120, 156};
static final String[] P_AL_D = {"1日", "2日", "3日"};
static final int[] P_AL_C = {6, 9, 4};
static final int P_TT_TOT = 5_100;
static final String[] P_TT_TYPES = {"干线发车", "城配到仓", "跨境保税"};
static final int[] P_TT_CNT = {2_100, 1_800, 1_200};
static final int P_AL_TOT = 9;
static final int P_AL_H = 8;
static final String[] P_DIST_T = {"仓储-温湿度", "月台-停留超时", "园区-证件异常"};
static final int[] P_DIST_C = {120, 95, 77};
}
}
@@ -0,0 +1,21 @@
package com.mhd.bi.domain.biTransportOperationZone.repository.mapper;
import com.mhd.bi.domain.biReport.support.BiReportSnapshotMapperSupport;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.TransportOperationZoneVO;
import org.apache.ibatis.annotations.Param;
/**
* 运输运营专区 NGWL_TEST_BI.BI_TRANSPORT_OPERATION_ZONE_SNAPSHOT 最新 PAYLOAD_JSON 并解析
*/
public interface BiTransportOperationZoneReportMapper {
String selectLatestPayloadJson(@Param("organizationName") String organizationName);
default TransportOperationZoneVO loadTransportOperationZone(String organizationName) {
return BiReportSnapshotMapperSupport.parsePayload(
selectLatestPayloadJson(organizationName),
TransportOperationZoneVO.class,
BiReportSnapshotMapperSupport::emptyTransportOperationZone,
"运输运营专区");
}
}
@@ -0,0 +1,25 @@
package com.mhd.bi.domain.biTransportOperationZone.service;
import com.mhd.bi.domain.biTransportOperationZone.repository.mapper.BiTransportOperationZoneReportMapper;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.TransportOperationZoneVO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* 南光物流业务经营分析 · 运输运营专区
*/
@Service
public class BiTransportOperationZoneReportService {
@Resource
private BiTransportOperationZoneReportMapper biTransportOperationZoneReportMapper;
/**
* @param organizationName 企业运营/组织名称模糊匹配为空时取全表最新一条
*/
public TransportOperationZoneVO loadTransportOperationZone(String organizationName) {
return biTransportOperationZoneReportMapper.loadTransportOperationZone(StringUtils.trimToNull(organizationName));
}
}
@@ -0,0 +1,204 @@
package com.mhd.bi.domain.biTransportOperationZone.support;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.*;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* 运输运营专区快照演示数据对齐大屏示例 JSON后续可改为真实聚合
*/
public final class TransportOperationZoneDemoData {
private static final DateTimeFormatter UPDATE_TIME_FMT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
private TransportOperationZoneDemoData() {
}
public static TransportOperationZoneVO build() {
List<TrOrderTypeMonthItemVO> orderTypeData = Arrays.asList(
TrOrderTypeMonthItemVO.builder().month("1月").crossBorder(30).domestic(25).build(),
TrOrderTypeMonthItemVO.builder().month("2月").crossBorder(40).domestic(35).build(),
TrOrderTypeMonthItemVO.builder().month("3月").crossBorder(20).domestic(30).build(),
TrOrderTypeMonthItemVO.builder().month("4月").crossBorder(35).domestic(40).build(),
TrOrderTypeMonthItemVO.builder().month("5月").crossBorder(50).domestic(45).build(),
TrOrderTypeMonthItemVO.builder().month("6月").crossBorder(60).domestic(55).build(),
TrOrderTypeMonthItemVO.builder().month("7月").crossBorder(70).domestic(65).build()
);
List<TrMonthValuePointVO> tripTrend = Arrays.asList(
point("1月", 120), point("2月", 150), point("3月", 220),
point("4月", 100), point("5月", 140), point("6月", 180)
);
List<TrMonthValuePointVO> orderTrend = Arrays.asList(
point("1月", 100), point("2月", 140), point("3月", 230),
point("4月", 100), point("5月", 140), point("6月", 190)
);
List<TrMonthValuePointVO> volumeTrend = Arrays.asList(
point("1月", 95), point("2月", 90), point("3月", 80),
point("4月", 65), point("5月", 92), point("6月", 88)
);
List<TrMonthValuePointVO> onTimeRate = Arrays.asList(
point("1月", 98), point("2月", 96), point("3月", 85),
point("4月", 70), point("5月", 92), point("6月", 90)
);
List<TrMonthValuePointVO> vehicleUtil = Arrays.asList(
point("1月", 600), point("2月", 460), point("3月", 390),
point("4月", 470), point("5月", 450), point("6月", 620)
);
List<TrEnterpriseRowVO> enterpriseList = Arrays.asList(
row("NO.1", "通宇", "268.25万", "2400单", 95),
row("NO.2", "南岐", "258.15万", "1800单", 98),
row("NO.3", "谷丰", "242.32万", "1200单", 13),
row("NO.4", "仓码", "231.54万", "800单", 12),
row("NO.5", "横琴", "220.90万", "567单", 15)
);
List<TrCargoCategoryItemVO> cargoItems = Arrays.asList(
TrCargoCategoryItemVO.builder().name("危化").value(25).color("green").build(),
TrCargoCategoryItemVO.builder().name("普货").value(25).color("blue").build(),
TrCargoCategoryItemVO.builder().name("冻品").value(50).color("orange").build()
);
List<TrCargoTypeDetailVO> cargoTypeDetails = Arrays.asList(
TrCargoTypeDetailVO.builder().typeCode("2").name("第2类 气体").percentage("65%").color("#1890FF").build(),
TrCargoTypeDetailVO.builder().typeCode("3").name("第3类 易燃液体").percentage("25%").color("#52C41A").build(),
TrCargoTypeDetailVO.builder().typeCode("8").name("第8类 腐蚀性物质").percentage("15%").color("#FAAD14").build()
);
TrMapNodeVO mapNode = TrMapNodeVO.builder()
.id(1L)
.name("通宇作业车辆")
.location(Arrays.asList(113.55, 22.25))
.status("working")
.detail(TrMapNodeDetailVO.builder()
.title("作业详情")
.licensePlate("粤A88888")
.businessUnit("通宇")
.loadingPlace("珠海")
.destination("澳门")
.currentLocation("珠海市")
.updateTime("2026年4月15日 17:52")
.build())
.build();
return TransportOperationZoneVO.builder()
.updateTime(LocalDateTime.now().format(UPDATE_TIME_FMT))
.dashboardTitle("南光物流业务经营分析")
.activeTab("运输运营专区")
.orderStatistics(TrOrderStatisticsVO.builder()
.title("订单统计")
.total(4361L)
.trend("+12.5%")
.build())
.transportStats(TrTransportStatsVO.builder()
.title("运输统计")
.tripCount(240)
.volume(2.6)
.volumeUnit("万吨")
.build())
.orderTypeChart(TrOrderTypeChartVO.builder()
.title("订单类型")
.type("area")
.data(orderTypeData)
.build())
.tripCountTrend(chart("车次趋势", "line", null, tripTrend))
.orderTrend(chart("订单趋势", "area", "", orderTrend))
.volumeTrend(chart("货量趋势", "area", "%", volumeTrend))
.map(TrVehicleMapVO.builder()
.title("车辆实时监控")
.legend(TrMapLegendVO.builder().idle(80).working(200).build())
.nodes(Collections.singletonList(mapNode))
.build())
.enterpriseOperation(TrEnterpriseOperationVO.builder()
.title("企业运营")
.columns(Arrays.asList("序号", "企业名称", "货运量", "处理单量", "准时配送率"))
.list(enterpriseList)
.build())
.capacityStatus(TrCapacityStatusVO.builder()
.title("运力情况")
.staff(capacityCount(718, 0, 0))
.vehicles(capacityCount(507, 0, 0))
.build())
.cargoCategory(TrCargoCategoryVO.builder()
.title("货物品类")
.totalOrders("1000单")
.data(cargoItems)
.build())
.onTimeRate(chart("准时配送率", "line", "%", onTimeRate))
.vehicleUtilization(TrBarChartVO.builder()
.title("出车利用率")
.unit("车次/辆")
.data(vehicleUtil)
.build())
.transportSummary(TrTransportSummaryVO.builder()
.title("运输统计")
.safeMileage("240万公里")
.avgDeliveryTime("平均4小时送达")
.build())
.capacityStats(TrCapacityStatsVO.builder()
.vehicles(capacityStatItem(280, "", "车辆"))
.drivers(capacityStatItem(360, "", "驾驶员"))
.escorts(capacityStatItem(56, "", "押运员"))
.build())
.cargoTypeDistribution(TrCargoTypeDistributionVO.builder()
.title("货物类型分布")
.totalOrders(1000)
.totalUnit("")
.details(cargoTypeDetails)
.build())
.freshOrderStats(sampleBrandOrderStats())
.vitasoyOrderStats(sampleBrandOrderStats())
.build();
}
private static TrBrandOrderStatsVO sampleBrandOrderStats() {
return TrBrandOrderStatsVO.builder()
.plannedDelivery(orderStatMetric(2135, "", "计划配送"))
.orderQuantity(orderStatMetric(228, "万吨", "订单数量"))
.vehiclesInTransit(orderStatMetric(84, "", "在途车辆"))
.completedDelivery(TrOrderStatTextMetricVO.builder()
.value("22.8%").unit("").label("完成配送").build())
.overtimeDelivery(orderStatMetric(228, "", "超时配送"))
.onTimeRate(TrOrderStatRateMetricVO.builder()
.value("85%").trend("+30%").label("准时配送率").build())
.build();
}
private static TrOrderStatMetricVO orderStatMetric(int value, String unit, String label) {
return TrOrderStatMetricVO.builder().value(value).unit(unit).label(label).build();
}
private static TrCapacityStatItemVO capacityStatItem(int value, String unit, String label) {
return TrCapacityStatItemVO.builder().value(value).unit(unit).label(label).build();
}
private static TrMonthValuePointVO point(String month, int value) {
return TrMonthValuePointVO.builder().month(month).value(value).build();
}
private static TrTypedChartVO chart(String title, String type, String unit, List<TrMonthValuePointVO> data) {
return TrTypedChartVO.builder().title(title).type(type).unit(unit).data(data).build();
}
private static TrCapacityCountVO capacityCount(int total, int todayNew, int yesterdayNew) {
return TrCapacityCountVO.builder()
.total(total).todayNew(todayNew).yesterdayNew(yesterdayNew).build();
}
private static TrEnterpriseRowVO row(String rank, String name, String volume,
String processedOrders, int onTimeRate) {
return TrEnterpriseRowVO.builder()
.rank(rank).name(name).volume(volume)
.processedOrders(processedOrders).onTimeRate(onTimeRate)
.build();
}
}
@@ -0,0 +1,21 @@
package com.mhd.bi.domain.biWarehouseOperationZone.repository.mapper;
import com.mhd.bi.domain.biReport.support.BiReportSnapshotMapperSupport;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.WarehouseOperationZoneVO;
import org.apache.ibatis.annotations.Param;
/**
* 仓储运营专区 NGWL_TEST_BI.BI_WAREHOUSE_OPERATION_ZONE_SNAPSHOT 最新 PAYLOAD_JSON 并解析
*/
public interface BiWarehouseOperationZoneReportMapper {
String selectLatestPayloadJson(@Param("organizationName") String organizationName);
default WarehouseOperationZoneVO loadWarehouseOperationZone(String organizationName) {
return BiReportSnapshotMapperSupport.parsePayload(
selectLatestPayloadJson(organizationName),
WarehouseOperationZoneVO.class,
BiReportSnapshotMapperSupport::emptyWarehouseOperationZone,
"仓储运营专区");
}
}
@@ -0,0 +1,25 @@
package com.mhd.bi.domain.biWarehouseOperationZone.service;
import com.mhd.bi.domain.biWarehouseOperationZone.repository.mapper.BiWarehouseOperationZoneReportMapper;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.WarehouseOperationZoneVO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* 南光物流业务经营分析 · 仓储运营专区
*/
@Service
public class BiWarehouseOperationZoneReportService {
@Resource
private BiWarehouseOperationZoneReportMapper biWarehouseOperationZoneReportMapper;
/**
* @param organizationName 企业运营/组织名称模糊匹配为空时取全表最新一条
*/
public WarehouseOperationZoneVO loadWarehouseOperationZone(String organizationName) {
return biWarehouseOperationZoneReportMapper.loadWarehouseOperationZone(StringUtils.trimToNull(organizationName));
}
}
@@ -0,0 +1,210 @@
package com.mhd.bi.domain.biWarehouseOperationZone.support;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.*;
import java.util.Arrays;
import java.util.List;
/**
* 仓储运营专区快照演示数据对齐大屏示例 JSON后续可改为真实聚合
*/
public final class WarehouseOperationZoneDemoData {
private WarehouseOperationZoneDemoData() {
}
public static WarehouseOperationZoneVO build() {
List<WhThroughputMonthItemVO> throughputTrend = Arrays.asList(
WhThroughputMonthItemVO.builder().month("11月").value(10).build(),
WhThroughputMonthItemVO.builder().month("12月").value(14).build(),
WhThroughputMonthItemVO.builder().month("1月").value(22).build(),
WhThroughputMonthItemVO.builder().month("2月").value(21).build(),
WhThroughputMonthItemVO.builder().month("3月").value(13).build(),
WhThroughputMonthItemVO.builder().month("4月").value(16).build(),
WhThroughputMonthItemVO.builder().month("5月").value(8).build()
);
List<WhAreaDistributionDetailVO> areaDetails = Arrays.asList(
WhAreaDistributionDetailVO.builder().name("普通仓出租面积").value(9400).unit("").build(),
WhAreaDistributionDetailVO.builder().name("自动化立库出租面积").value(9400).unit("").build(),
WhAreaDistributionDetailVO.builder().name("闲置面积").value(9400).unit("").build(),
WhAreaDistributionDetailVO.builder().name("冷冻仓出租面积").value(9400).unit("").build()
);
List<WhMonthRatePointVO> capTrendData = Arrays.asList(
WhMonthRatePointVO.builder().month("1月").rate(20).build(),
WhMonthRatePointVO.builder().month("2月").rate(30).build(),
WhMonthRatePointVO.builder().month("3月").rate(55).build(),
WhMonthRatePointVO.builder().month("4月").rate(40).build(),
WhMonthRatePointVO.builder().month("5月").rate(45).build(),
WhMonthRatePointVO.builder().month("6月").rate(60).build(),
WhMonthRatePointVO.builder().month("7月").rate(50).build()
);
List<WhMonthRatePointVO> orderTrend = Arrays.asList(
WhMonthRatePointVO.builder().month("1月").rate(100).build(),
WhMonthRatePointVO.builder().month("2月").rate(90).build(),
WhMonthRatePointVO.builder().month("3月").rate(75).build(),
WhMonthRatePointVO.builder().month("4月").rate(70).build(),
WhMonthRatePointVO.builder().month("5月").rate(95).build(),
WhMonthRatePointVO.builder().month("6月").rate(85).build()
);
List<WhMonthRatePointVO> turnoverData = Arrays.asList(
WhMonthRatePointVO.builder().month("11月").rate(10).build(),
WhMonthRatePointVO.builder().month("12月").rate(15).build(),
WhMonthRatePointVO.builder().month("1月").rate(22).build(),
WhMonthRatePointVO.builder().month("2月").rate(20).build(),
WhMonthRatePointVO.builder().month("3月").rate(12).build(),
WhMonthRatePointVO.builder().month("4月").rate(16).build()
);
List<WhServiceCapacityRowVO> serviceCapacity = Arrays.asList(
WhServiceCapacityRowVO.builder().rank(1).name("君华仓").totalArea("1.2万m²").processed("2,400单").throughput("2.2万吨").build(),
WhServiceCapacityRowVO.builder().rank(2).name("通宇仓").totalArea("1.2万m²").processed("1,800单").throughput("1.1万吨").build(),
WhServiceCapacityRowVO.builder().rank(3).name("横琴仓").totalArea("1.2万m²").processed("1,200单").throughput("1.5万吨").build(),
WhServiceCapacityRowVO.builder().rank(4).name("新南仓").totalArea("1.2万m²").processed("800单").throughput("2.1万吨").build(),
WhServiceCapacityRowVO.builder().rank(5).name("谷丰仓").totalArea("1.2万m²").processed("567单").throughput("1.8万吨").build()
);
return WarehouseOperationZoneVO.builder()
.warehouseName("新南仓")
.updateTime("2026-04-16 18:41:00")
.orderSummary(WhOrderSummaryVO.builder()
.totalCount("03600")
.inboundOrders(orderSummaryItem("入库单", 2298))
.outboundOrders(orderSummaryItem("出库单", 1129))
.operationOrders(orderSummaryItem("作业单", 345))
.build())
.coldStorageStats(WhColdStorageStatsVO.builder()
.revenueShare(coldMetric("64.8%", "+30%"))
.utilizationRate(coldMetric("28.6%", "+30%"))
.damageRate(coldMetric("1.6%", "+30%"))
.build())
.temperatureExceptions(sampleTemperatureExceptions())
.storageOverview(WhStorageOverviewVO.builder()
.title("仓储面积")
.value(10)
.unit("万m²")
.subText("覆盖仓库数8个")
.build())
.operationStats(WhOperationStatsVO.builder()
.title("年吞吐量")
.value(26)
.unit("万吨")
.growthRate("8.5%")
.trend("up")
.build())
.businessPlanning(WhBusinessPlanningVO.builder()
.generalWarehouse(43000)
.coldStorage(15000)
.foodProcessing(11000)
.automatedStorage(5200)
.build())
.throughputTrend(throughputTrend)
.areaDistribution(WhAreaDistributionVO.builder()
.utilizationRate("85%")
.details(areaDetails)
.build())
.capacityUtilizationTrend(WhCapacityUtilizationTrendVO.builder()
.peakLabel("60%")
.data(capTrendData)
.build())
.orderStatistics(WhOrderStatisticsVO.builder()
.annualOrders(525440L)
.quarterlyOrders(225120L)
.monthlyOrders(23560L)
.build())
.serviceStatistics(WhServiceStatisticsVO.builder()
.clients(582)
.coverage("覆盖港珠澳")
.onTimeRate("98.2%")
.rateChange("0.4%")
.build())
.orderTrend(orderTrend)
.turnoverRateTrend(WhTurnoverRateTrendVO.builder()
.currentMonth("3次")
.annual("4次")
.data(turnoverData)
.build())
.serviceCapacity(serviceCapacity)
.realTimeAnalysis(WhRealTimeAnalysisVO.builder()
.utilizationRate(WhRealTimeGaugeVO.builder()
.value("50.8%")
.comparison("3.4%")
.trend("up")
.build())
.rentalRate(WhRealTimeGaugeVO.builder()
.value("70.8%")
.comparison("3.4%")
.trend("up")
.build())
.build())
.map(WhWarehouseMapVO.builder()
.legend("仓库")
.nodes(Arrays.asList(
mapNode(1L, "君华仓", 113.52, 22.30,
"君华保税仓", "12000m²", 520, 2400, "82%", "36.5%"),
mapNode(2L, "通宇仓", 113.55, 22.25,
"通宇保税仓", "2000m²", 668, 237, "85%", "37.1%"),
mapNode(3L, "横琴仓", 113.54, 22.12,
"横琴保税仓", "3500m²", 445, 1200, "78%", "42.0%"),
mapNode(4L, "新南仓", 113.58, 22.20,
"新南保税仓", "2800m²", 390, 800, "80%", "35.8%"),
mapNode(5L, "谷丰仓", 113.48, 22.22,
"谷丰保税仓", "4500m²", 512, 567, "76%", "33.2%")
))
.build())
.build();
}
private static WhOrderSummaryCountItemVO orderSummaryItem(String label, int value) {
return WhOrderSummaryCountItemVO.builder().label(label).value(value).build();
}
private static WhColdStorageMetricVO coldMetric(String value, String trend) {
return WhColdStorageMetricVO.builder().value(value).trend(trend).build();
}
private static List<WhTemperatureExceptionVO> sampleTemperatureExceptions() {
return Arrays.asList(
tempException(1, "I级"),
tempException(2, "II级"),
tempException(3, "II级"),
tempException(4, "II级"),
tempException(5, "IV级"),
tempException(6, "IV级"),
tempException(7, "IV级")
);
}
private static WhTemperatureExceptionVO tempException(int rank, String level) {
return WhTemperatureExceptionVO.builder()
.rank(rank)
.level(level)
.area("A1区")
.deviceId("01020304")
.temperature("-4°C")
.duration("持续0小时12分钟")
.occurTime("04-16 18:41")
.build();
}
private static WhMapNodeVO mapNode(long id, String name, double lng, double lat,
String warehouseName, String totalArea, int totalSku,
int todayOrders, String utilizationRate, String rentalRate) {
return WhMapNodeVO.builder()
.id(id)
.name(name)
.location(Arrays.asList(lng, lat))
.detail(WhMapPopupVO.builder()
.warehouseName(warehouseName)
.totalArea(totalArea)
.totalSku(totalSku)
.todayOrders(todayOrders)
.utilizationRate(utilizationRate)
.rentalRate(rentalRate)
.build())
.build();
}
}

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