2324 Commits
Author SHA1 Message Date
王奎兴 3081460143 Merge branch 'dev' into dev_sfjk_0827 2026-09-05 10:23:32 +08:00
王奎兴 6b3912aae9 发30 2026-09-04 13:59:37 +08:00
王奎兴 12e43080b8 发31 2026-09-04 13:55:07 +08:00
王奎兴 77e0c77fbf 发31 2026-09-04 12:21:17 +08:00
王奎兴 03978d23d7 发30 2026-09-04 12:17:28 +08:00
王奎兴 ee7dbfcfb9 发30 2026-09-04 11:55:45 +08:00
王奎兴 94d05cca9c 发31 2026-09-04 11:52:53 +08:00
王奎兴 9fd3d34610 逻辑删除查询条件; 2026-09-04 11:51:10 +08:00
王奎兴 edb7a5343d 逻辑删除查询条件; 2026-09-04 11:37:06 +08:00
rcx 762c49cd0f 发 测试 2026-09-04 11:10:20 +08:00
rcx 1b8511c092 feat(oms): 出库/入库业务单导入支持多页签——每个工作表独立生成一张单据
一、行为变更(ReservationStockInOrderImpl)
- 出库导入(parseExcelFile)/入库导入(parseStockInExcel):不再固定读单一页签,枚举Excel全部工作表,每个页签独立解析为一张单据(5个页签=5张单5个单号)
- 全部回滚策略:任一页签校验失败整体不落库,报错按页签聚合列出(页签[x]:原因;页签[y]:原因)
- 空页签(无货品/客户明细)自动跳过;单页签文件行为与原先完全一致
- 出库单号改到落库阶段逐张生成:多页签下校验阶段统一生成会因全部未入库而取到相同单号
- 入库模板OrderNO增加本文件内跨页签查重:各页签都未入库时库查重互相不可见,防两页签同OrderNO重复落库
- 页签解析异常message为空时兜底用异常类名,避免报错显示null
- 方法级@Transactional(rollbackFor=Exception.class):顺带修复旧入库导入因this自调用导致事务代理失效的问题

二、接口与返回结构(IReservationStockInOrderService / ReservationStockInOrderApi)
- 两个导入方法返回类型改为List<SheetImportResultDTO>(每页签一条:页签名/单号/物料行数/数量合计/解析数据)
- /parseExcel与/parse-excel返回:result=第一个页签解析数据(兼容老前端)、results=全部页签结果、msg=成功导入N张单:单号1、单号2…
- 入库接口不传sheetName为多页签模式,显式传页签名保持单页签老行为
2026-09-04 10:55:18 +08:00
rcx ce3bb036fa 发 测试 2026-09-04 10:50:48 +08:00
rcx 71515e74f5 Merge branch 'refs/heads/dev' into dev-ty1.2 2026-09-04 10:48:46 +08:00
rcx 7d3c229b9a feat(oms): 新增出仓委托单,支持新增/编辑/审核/下发WMS/完成入库
- 订单状态五态:1待审核(新增默认,驳回单编辑后自动回此态) 2已审核(下发后保持,用下发状态区分) 3已驳回 4进行中(预留) 5已入库
- 下发走WMS出库通知单链路(stockOutOrInInsert),返回强校验防吞错;完成入库限已审核+已下发
- 订单类型未传默认普通出库;明细新增单价unitPrice;列表支持invoiceNo/settlementCurrency查询,时间参数只传年月日
- 必填:客户/业务员/仓库/商品名称/申报数量;编辑删除限待审核/已驳回且未下发
- 附达梦建表脚本oms_out_entrust_order(主表+明细表,最终版)
2026-09-04 10:47:29 +08:00
rcx a549ac1507 发 31 2026-09-03 18:32:25 +08:00
rcx bf3f0a2bfe 发 30 2026-09-03 18:25:37 +08:00
rcx 35b026c8bd Merge branch 'refs/heads/dev-ty1.2' into dev 2026-09-03 18:23:32 +08:00
rcx 0eb47793a8 fix(库存): OMS/WMS库存查询入库时间/更新时间只保留年月日,去掉时分秒
- 入库时间(createTime)/更新时间(updateTime)继承自全系统基类 BaseVOEntity,默认序列化带时分秒;库存查询导出复用 /list 接口,前端取 JSON 值直接进 Excel,导出后无法在 Excel 里修改格式
- 两个库存 PO 覆盖 getCreateTime/getUpdateTime 并收窄 @JsonFormat 为 yyyy-MM-dd,仅影响 OMS/WMS 库存查询的显示与导出,不改动 BaseVOEntity 全局行为
- 页面列表/详情回显同步变为纯年月日;排序仍按原始时间值,逻辑不变
2026-09-03 18:00:52 +08:00
rcx fee891dad0 fix(oms): 下发出库单增加幂等拦截,已存在有效执行单时禁止重复下发
问题:单据下发过并取消后重新下发(或重复点下发),issueOrder 会再生成新执行单并原样复制业务明细uniqueId插入,撞执行明细表唯一约束(如CONS134279709)导致下发失败。
修复:issueOrder 生成执行单前先查同业务单号下是否已存在有效执行单(del_flag=1),存在则提示「已下发,请勿重复下发;如需重新下发请先取消下发」。
配套DB变更(单独由DBA执行):执行明细表唯一键CONS134279709改为函数唯一索引,仅对DEL_FLAG=1的行约束UNIQUE_ID唯一,软删行不再占用唯一键。
2026-09-03 17:44:16 +08:00
rcx 34496de969 发测试 2026-09-03 16:04:04 +08:00
rcx 7a3021f82a feat(wms,oms):出库排名统计改造为聚合排名——商品按物料合并/线路按线路+物料合并,按出库数量降序
- 商品tab:一行=一个货品(跨出库单汇总),返回 货号/货名/件数/毛重(吨)/体积(CBM)/退保总额(占位null),忽略线路筛选参数

- 线路tab:一行=线路×货品(按线路+物料编码合并),额外返回 线路编码/线路,仅统计带线路的单(排除line_code为空的历史单);商品/线路筛选参数均生效

- 单据级字段(种类/仓单编号/入库单号/客户编号/收货人/出仓日期)合并后无单值可对应,不再返回

- 件数=SUM(CHECK_QUANTITY)复核确认的实际出库量(与入库排名实际上架量SHELVES_QUANTITY对称),按件数降序,编码次之

- 合计行:件数/毛重吨/体积 全量合计;商品tab含totalOrderCount(去重出库单数),线路tab含totalOrderCount+totalLineCount(去重线路数)

- 数据源不变:WMS查本库出库表,OMS跨库查NGWL_TEST_WMS同名表,两边数字一致;接口路径/传参不变
2026-09-03 16:01:17 +08:00
rcx c9c3062789 feat(wms,oms):入库排名统计改为按物料编码合并(一行=一个物料在区间内全部已入库仓单的合计):返回列裁剪为物料编码/货名/规格型号/单位/件数(实际上架量)/毛重(吨)/投保总额(货品档案保额取MAX不跨仓单累加)/体积;仓单编号/客户编号/存货人/入仓日期为单据级字段单值失真,移出返回列仅保留为查询条件;HAVING过滤0件行;合计行投保总额=各物料保额之和(每物料计一次),totalOrderCount=涉及仓单数;OMS/WMS两端口径数字一致;查询参数与返回结构外层不变 2026-09-03 15:57:44 +08:00
rcx 4ad31a870a fix(oms): 物料解析防张冠李戴+导入三类校验合并报错,客户编码只认USER_MEMBER_CODE
一、出库业务单导入(ReservationStockInOrderImpl)
- 物料不存在/客户不存在/批次库存不足三类校验全部收集完成后统一报错,不再分阶段中断
- materialCache 取用统一 trim,防 Excel 编号带空格导致校验被跳过

二、物料三级解析防张冠李戴(MaterialBaseInfoResolveService)
- baseId 按主键查到的档案与明细编码不一致时不再信任 baseId,转库存ID反查/编码+组织兜底,两级落空才退回按ID档案,命中打WARN日志
- 背景:前端把库存ID传进 materialBaseInfoId,撞上编码=名称的脏档案主键后整行物料被覆盖成错误物料

三、客户编码口径(reservationStockOutOrder/ReservationStockOutOrderMapper.xml)
- queryCustomerByCode 只认 USER.USER_MEMBER_CODE,不再放行 USER_SHIPPER.CUSTOMER_NC_CODE

四、明细查询补字段(reserveStockOutOrder/ReserveStockOutOrderMapper.xml)
- resultMap 补 status/issue_status 映射,detailsList 查询补查 a.status, a.issue_status
2026-09-03 15:52:18 +08:00
秦鸿展 9447604c96 31 2026-09-03 12:37:33 +08:00
秦鸿展 1577eddc7b 30 2026-09-03 11:49:38 +08:00
秦鸿展 f5300fdd5d BI查询YMS月台管理列表查询开发接口 2026-09-03 11:39:13 +08:00
秦鸿展 3880755df0 BI查询YMS月台管理列表查询开发接口 2026-09-03 11:35:33 +08:00
秦鸿展 28bf58e8d1 BI查询YMS月台管理列表查询开发接口 2026-09-03 11:28:22 +08:00
秦鸿展 3a5af634dd 30 2026-09-03 00:29:18 +08:00
秦鸿展 4f45a73505 已登录账号APP菜单问题 2026-09-03 00:26:45 +08:00
秦鸿展 b5f710cd33 31 2026-09-02 20:49:09 +08:00
秦鸿展 bfffc6bbf1 App游客时正常展示消息页面 2026-09-02 20:46:31 +08:00
秦鸿展 a8815ade02 App游客时正常展示页面 2026-09-02 20:28:59 +08:00
rcx 57312753ed 发 30 2026-09-02 19:52:47 +08:00
rcx 03ce38ed9b 发 30 2026-09-02 19:46:44 +08:00
rcx b09b07978f fix(oms): 出库导入批次分配优化:批次号优先排序、移除归属校验、库存不足统一报错
c1f483f0 出库导入指定仓库功能的迭代调整:

1. 移除物料仓库归属前置校验(countInventoryByWarehouse):物料档案全仓共享、
   不属于任何仓库,仓库约束收敛到批次分配环节——分不到当前仓批次即报库存不足
2. getkcId 增加分配排序:同物料同仓多条可用库存时,有批次号的优先、空批次
   沉底、同组按库存ID(入库先后);此前无排序随机取第一条,会分到无批次号的
   历史脏数据记录
3. 明细仓库编码/名称兜底:部分历史库存记录只存仓库ID未存编码/名称,按ID
   反查仓库表补齐,修复明细仓库只显示ID不显示名称
4. 库存校验改收集式:全部物料批次比较完成后统一报出不足物料清单,原为逐行
   分配时立即抛错,首个不足即中断、后续物料不参与比较
2026-09-02 19:43:48 +08:00
rcx 87dae51a15 fix(bms): 发票列表兼容pageNum/pageNo参数名,修复翻页始终返回第一页;排序补id兜底防翻页重复 2026-09-02 19:31:01 +08:00
rcx 49ab26a8e9 fix(bms): 发票列表条数显示为0,注册MyBatis-Plus分页拦截器使Page生效 2026-09-02 18:33:50 +08:00
rcx c1f483f0a0 feat(oms): 出库导入支持指定仓库,校验物料库存归属并按仓过滤批次库存
背景:物料档案全仓共享,此前导入不区分仓库,批次库存"查到哪条算哪条",单据可能取到其他仓库的库存且主表仓库为空。

1. /parseExcel 新增可选参数 warehouseId(前端随文件提交当前页面仓库;不传保持原有行为)
2. 新增 countInventoryByWarehouse 归属校验:物料在指定仓库无库存记录时统一报错"物料[xx]在当前仓库[名]没有库存记录,无法从该仓库出库"
3. getkcId 批次库存查询增加仓库过滤,明细批次/仓库/入库单号均取当前仓库
4. 导入单主表回填当前仓库 warehouseId/Code/Name(此前导入单仓库为空)
5. 出库导入两个入口(reservationStockInOrderApi/executionStockInOrderApi 的 parseExcel)同步支持
6. 库存不足报错补充物料编码,便于定位
2026-09-02 18:32:12 +08:00
rcx 6d7e42bcde 发 31 2026-09-02 16:55:19 +08:00
rcx 61572c536a 发 30 2026-09-02 16:48:35 +08:00
rcx 572b25ee88 feat(oms): 运输业务单列表新增预计起运时间范围查询条件(layDateStart/layDateEnd) 2026-09-02 16:16:46 +08:00
rcx 3576d734af fix(oms): 出库业务单导入发票编号不落库,补齐繁简归一化「發/額」映射
模板列头「發票編號/金額/發票張數」归一化时映射表缺「發→发」「額→额」,發票編號列识别失败(invoiceNoCol=-1),客户配送明细落库时发票编号为空、查看不回显,金额列与发票张数同样受影响。补齐映射并在关键列缺失时输出告警日志;历史已导入单据需重新导入。
2026-09-02 15:43:07 +08:00
rcx 028af3dd2f fix(wms,oms):出库排名件数改为复核确认的实际出库量(CHECK_QUANTITY),排序同步调整
- 件数取数由明细 PIECE_COUNT(计划/申报件数)改为 SUM(CHECK_QUANTITY) 复核确认的实际出库量,与入库排名的实际上架量 SHELVES_QUANTITY 取数逻辑对称(已验证现有已出库数据 222/222 全覆盖)

- 排序第一键由出库数量(outbound_quantity,下发时的计划复制值)改为件数(实际出库量)降序,出仓日期/单号次之

- 接口路径/传参/返回字段结构均不变,前端无感;其余为注释同步
2026-09-02 15:41:51 +08:00
rcx 3af78d5d7b feat(wms,oms):出库排名统计改造为仓单×货品明细列表,按出库数量降序排名
- 字段:种类/仓单编号/入库单号/客户编号/收货人/货名/线路/件数/毛重(吨)/体积(CBM)/退保总额(占位null,数据来源待确认)/出仓日期

- 商品/线路各一套接口,路径名不变;商品接口忽略线路筛选参数,线路接口忽略商品筛选参数;含合计行(件数/毛重吨/体积/仓单数)与Excel导出

- 统计口径不变:出库单创建时间区间+已出库状态(9,12,13)+明细level=1主行;排序按出库数量(销售量)降序,件数/出仓日期/单号次之

- 数据源:WMS查本库出库表;OMS跨库查NGWL_TEST_WMS同名表(OMS库出库单状态不流转,跨库与WMS端数字一致)

- 删除原按商品/线路聚合的排名接口(销售量/交易数/金额字段)
2026-09-02 15:25:51 +08:00
rcx e821619a96 fix(库存): 修复OMS/WMS库存查询过期日期不回显
根因:业务只在OMS填写饮用日期,且下发DTO无过期日期字段,饮用日期→过期日期的转换仅存在于收货单生成瞬间,后续环节全部丢失。

- InMaterialDetail(DTO) 补充 expiryDate 字段,打通OMS→WMS传递
- 预约单/执行单下发前:过期日期为空时用饮用日期补齐(治本)
- WMS收货批次属性回写:恢复饮用日期回写并兜底转换为过期日期(加固)
- WMS上架确认:过期日期为空时从收货明细兜底补齐(加固)
2026-09-02 15:05:29 +08:00
rcx 434348f972 fix(oms,wms): 出库单下发WMS失败被静默吞掉,修复WMS出库拣货不显示OMS单据
- OMS建单/下发前校验明细数量>0且已关联库存
- OMS检查WMS自动分配/生成拣货单返回值,失败即报错回滚
- WMS自动分配各类失败场景抛带单号的明确异常,替代NPE
- WMS接单幂等保护,失败重试不产生重复数据
2026-09-02 14:32:13 +08:00
rcx 72cb1d8c07 feat(wms): 库存列表接口新增隐藏可用数量为0的参数
/materialInventoryApi/list 新增可选参数 excludeZeroAllocationQuantity,为 true 时排除可用数量=0 的库存行;与已有 excludeZeroInventoryQuantity 组成两个独立开关,不传时保持原有行为。配合盘点-库存选择页隐藏数量为0物料及出库选库存隐藏0库存需求。
2026-09-02 14:04:15 +08:00
rcx f5a7c8c1f3 发 31 2026-09-02 00:12:59 +08:00
rcx 3989d75f05 发 30 2026-09-01 23:50:34 +08:00
rcx 471b515a45 Merge branch 'refs/heads/dev-ty1.2' 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/OmsServiceFeign.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-api/mhd-api-system/src/main/java/com/mhd/system/api/YmsServiceFeign.java
#	mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/feign/ThirdPartyServiceFeign.java
#	mhd_oms/src/main/java/com/mhd/oms/infrastructure/feign/ThirdPartyServiceFeign.java
#	mhd_oms/src/main/resources/bootstrap.yml
2026-09-01 23:49:08 +08:00
rcx 19e897cae0 发 30 2026-09-01 23:02:30 +08:00
rcx 91bdb99ec2 发 31 2026-09-01 22:50:50 +08:00
rcx 004580e252 发 30 2026-09-01 22:36:10 +08:00
rcx da3c58a366 fix(wms,oms):入库排名统计口径修复:件数改为实际上架量SUM(SHELVES_QUANTITY)(原PIECE_COUNT为建档申报值不随收货上架变化);OMS端数据源跨库改查WMS入库表NGWL_TEST_WMS.stock_in_order/in_material_detail(OMS执行单状态不回传且上架量回填代码未启用,与出库排名1300a4e1跨库修法一致),状态恢复为已入库(5);入仓日期为空兜底建档时间;OMS与WMS两端数字一致;接口路径/参数/返回结构不变 2026-09-01 21:36:33 +08:00
赵辉 1cec762930 user30 2026-09-01 17:35:21 +08:00
赵辉 4deaeaa89d user30 2026-09-01 17:22:26 +08:00
赵辉 1208e02fe7 yms租户同步 2026-09-01 17:14:23 +08:00
秦鸿展 77fb71dab4 30 2026-09-01 16:32:33 +08:00
秦鸿展 cd41c616bb 31 2026-09-01 16:30:23 +08:00
rcx a4f27ab643 feat(oms,wms):库存查询导出新增isExport标识与融合排序 /list 新增可选参数 isExport 标识导出请求(导出显示商品饮用有效期/物料分类/进货日期由查询结果直接返回);isExport=true 时所有查询维度(OMS 6条/WMS 8条)统一启用导出融合排序:到期日倒序空值最后(保留原 orderByExpiryDate 第一优先级,融合不取代)→同到期日内按物料编码升序→0库存靠后→更新时间倒序→MAX(库存ID)兜底保证分页稳定;各语句挂载公共片段 exportOrderByMaterialCode,不传 isExport 保持原有排序;OMS Controller 在 isExport=true 时跳过 Java 按更新时间重排避免覆盖 SQL 导出排序 2026-09-01 16:29:41 +08:00
秦鸿展 c174ea8742 单号编辑变化问题,以及组织查询问题 2026-09-01 15:15:53 +08:00
秦鸿展 2bbd6784c4 31 2026-09-01 14:14:51 +08:00
秦鸿展 923afda21c 大屏月台接口查询修改 2026-09-01 14:09:23 +08:00
rcx bb3ca932d2 feat(oms):出入库导入存在性校验改为收集后统一提示(物料+客户不存在的编号一条消息带全)
调整2d1e4b59引入的校验流程(入库parseStockInExcel/出库parseExcelFile统一):
1. 第一步:物料编号存在性校验——逐编号查库,全部不存在的收集到missingMaterials,不立即报错
2. 第二步:客户编号存在性校验——逐编号查库,全部不存在的收集到missingCustomers,不立即报错
3. 第三步:两步全部完成后统一抛出提示,避免修完物料问题重导一次才暴露客户问题:
   只缺物料:"物料[A、B]不存在,请先维护物料信息,维护完成后重新导入"
   只缺客户:"客户[C]不存在,请先维护客户信息,维护完成后重新导入"
   都缺:"物料[A、B]不存在,请先维护物料信息;客户[C、D]不存在,请先维护客户信息,维护完成后重新导入"
4. 存在性全部通过后才继续多货主/多客户编号/客户与货主一致性等校验及建单;
   入库"多个客户编号"校验相应移到存在性之后,多个编号中缺哪个报哪个
5. 入库客户查询结果存入customerCache复用,一致性校验不再二次查库

漏填编号(空白行)仍即时报错,不属于存在性问题,行为不变
2026-09-01 09:53:51 +08:00
rcx a588264849 fix(wms,oms):入库排名统计查询恒为空修复:OMS执行入库单状态不回传(全停status=1)无法按已入库过滤,改为仅排除已取消(6)/已关闭(7)(与入库明细查询页口径一致);入仓日期为空的历史单筛选与展示均兜底建档时间create_time(与出库明细统计口径一致);WMS仍保持仅已入库(5) 2026-09-01 09:24:20 +08:00
rcx 1300a4e1f8 fix(oms):出库排名OMS端数据源改为跨库查WMS出库表,修复查询结果恒为空
OMS库出库单状态从不流转(预约/执行单全部status=1,无"已出库"数据),原SQL按执行出库单status=9过滤导致查不出任何数据;改为跨库取WMS出库表NGWL_TEST_WMS.stock_out_order/out_material_detail(与OMS库存查询跨库join material_base_info同一模式),口径与WMS端/outboundRankApi完全一致:已出库及之后状态(9,12,13)+明细level=1主行+按出库单创建时间筛选,两边页面数字一致;接口路径/参数/返回结构均不变,其余文件仅更新注释中的数据源说明
2026-09-01 09:10:59 +08:00
rcx bf96f5f005 feat(wms,oms):库存管理新增入库排名统计(按仓单+货品汇总,件数降序,与出库排名tab配对);还原出库排名第一版源码
入库排名统计(新增):WMS /inboundRankApi、OMS /executionInboundRankApi 的 queryMaterialRankList 分页+合计、exportMaterialRank 导出;口径:仅已入库(status=5),明细仅level=1主行,日期区间按入仓日期warehouse_date筛选(必填);一行=仓单内某货品合计(GROUP BY 仓单+货品 ORDER BY 件数DESC);字段:入仓日期/仓单编号/客户编号/存货人/货名/件数/毛重(吨=KG/1000)/投保总额(货品档案保额,组内MAX防重复累加)/体积(CBM)+货号/规格/单位;合计行:totalPieceCount/totalGrossWeightTon/totalInsureAmount/totalVolume/totalOrderCount;登录上下文:日期必填校验+topOrganizationId租户隔离,WMS另注入关联仓库warehouseId。出库排名统计(还原第一版):/outboundRankApi、/executionOutboundRankApi,按货品/线路汇总排名
2026-08-31 17:47:09 +08:00
rcx a983ae639e fix(wms,oms):物料/过期日期查询补查入库日期(create_time)与更新时间,分组页签入库日期显示为空 2026-08-31 15:59:54 +08:00
rcx a74afd837c feat(oms):入库业务单新增页面新增按物料编号查询库存批次最近5条过期日期接口 /reservationMaterialInventoryApi/queryRecentExpiryDates/{materialCode},按物料编号关联 NGWL_TEST_WMS.material_base_info 查 reservation_material_inventory 库存批次,返回过期日期+批次号(date_format 按天去重、到期日倒序、limit 5),供前端下拉回显(也可点日期图标手动选择);非平台租户按登录用户一级组织 top_organization_id 过滤(与 /list 一致);沿用 Api→ApplicationService→DomainService→Facade→Impl→Mapper 分层,新增响应对象 MaterialInventoryExpiryBatchPO(expiryDate/batchNumber) 2026-08-31 15:22:59 +08:00
rcx bc3afbacb1 feat(wms,oms):物料分类:库存列表返回增加 materialClassifyCode/Name 显式映射
(ListTypeHandler,数据关联 material_base_info 带出)
2026-08-31 13:58:02 +08:00
rcx 5ba6a3b73d 发测试 2026-08-31 13:43:11 +08:00
rcx da84b7bb69 feat(wms,oms):库存管理-库存查询新增进货日期、入库日期查询条件,新增进货日期字段贯通收货-上架-库存全链路
需求:OMS/WMS 库存管理-库存查询页增加查询条件:物料分类(后端已支持,无需改动)、
进货日期(新增字段)、入库日期。

一、DDL(sql/20260831_wms_oms_add_purchase_date.sql)
    WMS 收货明细、上架明细、物料库存及 OMS 预留库存共 4 张表新增 PURCHASE_DATE DATE 列,
    附批次明细配置模板、执行前检查与回滚语句;须先执行 DDL 再发布服务。

二、进货日期录入与落库链路(收货→上架→WMS库存→OMS库存)
    1、录入入口为收货批次属性「进货日期」标签(批次规则配置,标签须一字不差),
       ReceiptMaterialDetailImpl 两处标签解析新增分支;
    2、收货明细→上架明细:StockReceiptOrderDomainService 6 处日期拷贝点补 setPurchaseDate(含子项);
    3、上架落库:stockIn/sj 赋值写入 material_inventory;
    4、同步 OMS:MaterialInventoryOmsParamDO 新增字段经 Feign omsEdit 传递,
       写入 reservation_material_inventory;
    5、库存行合并键:批次规则勾选后进货日期参与分行(getParam 映射 + selectListByWhere 全等匹配),
       OMS omsEdit 行匹配同步按进货日期区分,避免不同进货日期误合并到同一行。

三、查询条件(两模块 /list 接口)
    1、进货日期:purchaseDate(单日精确)+ purchaseDateStart/purchaseDateEnd(区间,End 含当天);
    2、入库日期:WMS 新增 createTimeStart/createTimeEnd(按库存行创建时间过滤,与 OMS 现有口径一致);
    3、列表/导出返回新增 purchaseDate 字段,分组查询取 MAX(purchase_date)。

说明:历史库存进货日期为空,按进货日期查询查不到存量数据(无来源可回填),区间查询会排除空值行。
2026-08-31 13:41:19 +08:00
rcx 2d1e4b5912 feat(oms):出入库导入按编号自动匹配名称并校验客户/物料存在性,模板列位改为动态识别
需求:①入库业务单导入模板只填物料编号+客户编号,物料名称/客户名称按编号自动匹配库中数据
②③出库导入校验客户/物料是否已存在,不存在提示"进行维护" ④库中查询结果为空(确无数据)时报错

一、入库导入(ReservationStockInOrderImpl.parseStockInExcel):
1. 物料逐编号查库,缺失料号收集后一次性报错"物料[xx]不存在,请先维护物料信息后再导入"
2. 明细新增客户编号:去重后查库,为空报错"客户[编号]不存在,请先维护客户信息后再导入";
   查到则以该客户为单据货主并自动匹配名称;与物料归属货主不一致时拦截并提示两者编号
3. 明细回填库中物料名称;未填客户编号时维持原"货主取自物料"逻辑,兼容老模板

二、出库导入(parseExcelFile):
1. 物料/客户校验前移到落库前(原为先落库后查客户,报错会留半截数据)
2. 物料查不到收集后报错维护提示;客户查不到报错维护提示,客户ID/名称改取库中匹配值
  (替换仅返回id且查不到时静默存null的queryShipperId)
3. 產品編號/客户編号漏填的行直接报错提示补全

三、模板解析改为按列头文字动态定位列(繁简体归一化),列/行顺序调整不影响解析,
   识别不到时回落老模板固定列位,老模板行为不变:
1. StockInExcelListener(入库):以產品編號为锚点识别列头行,新增客戶編號列支持
2. DynamicDeliveryExcelListener(出库):左右分栏各自锚点识别;送货日期/线号/车次/
   发票张数/小计/纪录合共改按标签文字定位,行号列号不再写死

四、Mapper:ReservationStockOutOrderMapper新增queryCustomerByCode(按组织查询,
   USER_MEMBER_CODE或USER_SHIPPER.CUSTOMER_NC_CODE任一命中),删除queryShipperId
2026-08-31 11:15:41 +08:00
rcx 2781f0d8d9 feat(oms):库存查询导出新增库存为0是否导出参数 /reservationMaterialInventoryApi/list 新增可选参数 excludeZeroInventoryQuantity,前端"库存为0是否导出"选"是"时传 true,SQL 以 HAVING IFNULL(SUM(inventory_quantity),0)>0 排除汇总库存为0的数据;所有查询维度(all/hz/wl/kw/wlkw/wlExpiry)共6条查询在 GROUP BY 后统一挂载公共片段 excludeZeroInventoryHaving,与 sort_order 对0库存的定义保持一致;不传参数时 SQL 不拼接条件,行为与原来完全一致 2026-08-31 10:17:53 +08:00
王奎兴 8a9bbb3cef 本地配置 2026-08-31 09:33:58 +08:00
rcx 155f1866b4 feat(system):库区管理新增库区面积合计查询接口
新增 GET /storageSectionApi/sumStorageRegion,与库区列表 /list 相同筛选条件及组织数据权限,
SQL 端 IFNULL(SUM(storage_region),0) 返回面积合计(平方米),无数据返回0;
抽取 queryList 数据权限为 applyQueryDataPermission 供列表与合计共用,/list 行为不变。
2026-08-28 18:01:44 +08:00
王奎兴 d4446e8482 发30 2026-08-28 17:35:43 +08:00
秦鸿展 254a804a17 30 2026-08-28 17:10:05 +08:00
秦鸿展 4c4b8f4e29 大屏月台接口只查询预约日期是当天的 2026-08-28 17:06:28 +08:00
zhaoqing 06cf5ce861 fix(oms):明细表修改 2026-08-28 16:22:28 +08:00
rcx 7a01315ca8 feat(sys):导出字段优化与前端显示保持一致 2026-08-28 16:17:48 +08:00
rcx d0773a40d2 feat(transport):基础数据-运营数据-车辆管理增加导出功能
新增 /vehicle/export 导出接口(GET/POST,兼容前端 download 工具),
复用列表查询条件与数据权限,不分页导出全量数据为 xlsx;
新增 VehicleExportVO 导出对象(40列,状态字段转中文)。
2026-08-28 16:12:56 +08:00
rcx 6349181cc3 feat(sys):费用科目导出增加新vo对象
新增 ExpenseAccountExportVO 导出对象(27列业务字段)
2026-08-28 09:20:11 +08:00
rcx e95feb5c24 Merge branch 'refs/heads/dev' into dev-ty1.2 2026-08-28 09:15:39 +08:00
rcx afa502eeaf feat(system):仓库管理-库位管理新增复制功能
需求:库位管理列表增加复制功能,快速复用已有库位配置新建库位。
实现(仿照bms复制账单copyBill的回显式复制):
一、新增接口 POST /storageLocationApi/copyStorageLocation(StorageLocationApi):
    id判空+try-catch兜底,异常返回"复制库单失败:xxx"
二、StorageLocationApplicationService新增copyStorageLocation:
    取原库位PO后清空唯一性字段(storageLocationId不清空会误走修改分支覆盖原库位、
    storageLocationCode同组织同仓库唯一须用户重填、locationBarCode物理唯一)、
    清空审计字段(提交时Assembler按登录人重写)、状态重置初始值
    (status=1空/openingUp=1启用/nullify=1未作废);其余业务字段保留回显
三、前端拿PO回显到新增页,用户改编码后走现有edit接口(id为空即新增)提交,
    天然复用编码唯一性校验、仓库/库区/库位组回填、库位组计数+1,Domain层零改动
2026-08-28 09:14:03 +08:00
rcx 627376da07 feat(sys):费用科目增加复制、导出功能
1、新增 POST /expenseAccountApi/copy 复制接口(回显式,清空主键及科目编码)
2、新增 GET/POST /expenseAccountApi/export 导出接口(按列表查询条件+数据权限全量导出)
3、新增 ExpenseAccountExportVO 导出对象(27列业务字段)
2026-08-28 09:13:10 +08:00
rcx 5127123236 发31 2026-08-27 16:38:33 +08:00
rcx 7b0d08a132 发30 2026-08-27 16:33:43 +08:00
zhaoqing ccdbbda165 Merge remote-tracking branch 'origin/dev' into dev-ty1.2 2026-08-27 14:27:16 +08:00
zhaoqing e3058d8eb1 fix(oms):明细表修改 2026-08-27 14:24:58 +08:00
rcx 5e3a0d86d0 发测试 2026-08-27 14:21:23 +08:00
rcx 76d95c1b2d feat(oms):入库业务单导入模板OrderNO改为只作业务单号,去掉格式校验并按业务单号查重
需求:导入模板表格OrderNO值回显到字段"业务单号";"入库业务单号"仍由系统
原本逻辑生成;业务单号重复不允许导入并提示"业务单号已存在";模板未填单号
保持现有系统逻辑;业务单号去掉规则校验。
一、导入流程(ReservationStockInOrderImpl.parseStockInExcel):
   1. 模板OrderNO只写入业务单号(business_order_no),不再同时作为入库业务单号
   2. 删除validateTemplateOrderNo格式规则校验(R+年月日+3位序号),模板单号不再限格式
   3. 查重由按in_order_number跨两表改为按business_order_no查入库业务单表,
      Mapper新增existsByBusinessOrderNo;重复时报"业务单号已存在:xxx,请修改
      模板中的OrderNO后重新导入"
   4. 入库业务单号(in_order_number)统一由insertDomain按原逻辑生成
      (R+年月日+当日累加,跨reservation/reserve两表取号防撞)
二、insertDomain业务单号赋值改为仅在为空时默认=入库单号,导入带模板单号时不覆盖;
   模板未填单号保持现有逻辑。页面手工新增(DomainService.insert)与客户预约下发
   (ReserveStockInOrderDomainService)为独立链路,不受影响。
2026-08-27 14:10:38 +08:00
秦鸿展 e4b29858a4 南岐GPS三方接口对接 2026-08-27 13:58:10 +08:00
rcx f1dec2298d 发 31 2026-08-26 18:04:44 +08:00
rcx 7b52764ae1 发 30 2026-08-26 17:52:23 +08:00
rcx 1006860698 Merge remote-tracking branch 'origin/dev' into dev-ty1.2 2026-08-26 17:32:40 +08:00
王奎兴 1e00681289 恢复
xxl-job
2026-08-26 17:28:50 +08:00
rcx 353300b643 feat(wms):出入库导入增加料号与规格型号/SKU码一致性校验
- 按料号查物料档案后逐项比对,任何一项不符直接报对应错误:规格型号/SKU码必须与档案完全一致(trim后比较)
- Excel留空而档案有值、或Excel填值而档案为空,均视为不一致报错(提示Excel:空/档案:空)
- SKU码以档案条码(bar_code)为比对基准;出库料号已填写但货主下查不到时直接报错,不再被SKU码/商品名称静默兜底(与入库对齐
2026-08-26 16:56:27 +08:00
rcx 9eb2f347f7 发测试 2026-08-26 15:55:03 +08:00
rcx 182438e1dc fix(system): 费用科目getInfoByOrgAndCode计费单位中英文均为null时过滤,避免返回null-null 2026-08-26 15:49:58 +08:00
rcx 0be73e9bfe fix(oms): 出入库联合列表(inAndOutList)查询条件修复与补全
1. 修复 ReflectionException:mapper XML <if> 引用 inOrOut/orderNumber 但 DO 无对应字段,
   DO/DTO 新增 inOrOut、orderNumber 查询字段(BeanUtils 同名自动拷贝,前端参数直达 mapper)
2. inOrOut 排除空串与 'all'(前端"全部"约定值),避免拼出 ="all" 查空
3. orderNumber 排除空串并改为 like 模糊匹配(与出库单列表单号搜索口径一致)
4. status 新增精确筛选(0 为有效条件值,按前端约定直传,"全部"时不传)
2026-08-26 15:49:38 +08:00
秦鸿展 5e369bdd99 31 2026-08-26 14:23:36 +08:00
王奎兴 a5a222a78e Merge branch 'dev' into dev-ty1.2
# Conflicts:
#	mhd-modules/mhd-system/src/main/resources/bootstrap.yml
2026-08-26 14:11:45 +08:00
王奎兴 b1840c8965 Merge remote-tracking branch 'origin/dev' into dev 2026-08-26 14:08:38 +08:00
王奎兴 02a0b7aab6 xxl-job 2026-08-26 14:08:24 +08:00
rcx 42ab5160ed 发30 2026-08-26 14:03:42 +08:00
秦鸿展 df66287455 31 2026-08-26 12:55:44 +08:00
秦鸿展 e2ce186aba 30 2026-08-26 12:49:16 +08:00
秦鸿展 9be0de0ae7 园区月台预约车辆显示修改 2026-08-26 12:48:06 +08:00
rcx 4410162f39 发测试 2026-08-26 10:03:46 +08:00
rcx 3060fcd6a4 feat(product):新增附件原始文件名字段SQL并去掉上传错的文件 2026-08-26 09:53:19 +08:00
rcx 7d8e1c3872 feat(wms):复核详情增加合计数;库存分配新增通宇专用可分配库存查询(物料+箱号/卡板+Sheet Ref匹配
1. 复核详情(getInfo/getInfoReviewOrderNumber)头表回填totalReviewedQty/totalPlanQty/materialKindCount,
   口径与列表queryList聚合一致(计划量=Σifnull(material_plan_qty,pending+reviewed))
2. 新增 GET /materialInventoryApi/assignableList,按通宇账号分流(TongyuOrgUtil:组织ID=2830或组织名含"通宇"):
   - 通宇:启用新匹配。双模式入参——传outOrderId+materialDetailId(须成对)则匹配值全部后端自取出库单/明细;
     不传则按平铺参数(materialBaseInfoId/materialCode+boxPalletNo+sheetRefNo,多值串自动拆token OR-LIKE)。
     固定条件:del_flag=1且可分配数量(allocation_quantity)>0,不分页全量返回,不套用用户组织数据权限
   - 非通宇:保持原/list行为,内部直调list();进原查询前清除materialDetailId(新接口专用参数,防泄入
     原查询的a.material_detail_id=上架单明细ID条件导致查空)
3. autoAssign自动分配同步分流:通宇走token匹配,非通宇保持原eq精确匹配不变
4. 新增util/BatchNoTokenUtil(批次属性多值拆分)、util/TongyuOrgUtil;库存批次属性回填抽为
   fillBatchAttributes供/list与可分配查询复用,原逻辑行为不变
2026-08-26 09:30:01 +08:00
秦鸿展 59249be9b0 31 2026-08-26 00:06:41 +08:00
秦鸿展 8fe5e079dd 新增月台预约楼层车辆查询 2026-08-26 00:01:40 +08:00
秦鸿展 d1d55ce52a 30 2026-08-25 23:00:55 +08:00
秦鸿展 b12517e5b5 30 2026-08-25 22:28:57 +08:00
秦鸿展 09d24217b5 统计业务类型 2026-08-25 22:25:12 +08:00
秦鸿展 3c2f252347 统计业务类型 2026-08-25 22:23:18 +08:00
秦鸿展 940e4c56b0 31 2026-08-25 20:24:10 +08:00
秦鸿展 09ab103d1d 30 2026-08-25 20:18:31 +08:00
秦鸿展 8dcb2334d5 BI月台数据改造 2026-08-25 20:11:52 +08:00
rcx 7a5e124f98 fix(oms): 入库模板导入优化异常提示信息 2026-08-25 17:51:54 +08:00
rcx c5a2508a36 发测试 2026-08-25 16:29:15 +08:00
rcx 7353021d92 feat(oms):入库模板导入支持模板自带业务单号,重复拦截并按R+年月日规则生成
1. 模板OrderNO解析兼容无标签新模板(E1直接为单号值)
2. 导入单号优先模板自带:先校验R+年月日+3位序号格式(含年月日有效性),
   再跨reservation/reserve两表查重,重复提示"入库业务单号已存在"
3. 模板无单号时按R+年月日+当日累加生成(insertDomain不再无条件覆盖已设置单号,清理无效的仓库规则生成死代码)
2026-08-25 16:11:19 +08:00
rcx 735cf9af9f feat(oms):入库导入模板饮用日期解析修复,入库单列表联查带出饮用有效日期
1. 入库/执行入库Excel解析监听器:扩充日期格式支持(yyyy年M月d日、d/M/yyyy、M/d/yyyy、dd.MM.yyyy等16种),
   改为严格解析防止宽松解析产生公元1~99年脏数据,新增Excel日期序列号兜底及年份合理性校验,
   解析失败抛出带行号的明确提示而非静默置空
2. parse-excel接口异常时返回具体错误信息(原为空body 500)
3. 入库单列表queryList联查明细表取最早饮用日期(MIN drink_date),PO及resultMap补drinkDate映射
2026-08-25 15:07:04 +08:00
秦鸿展 f2f3fb9c19 30 2026-08-25 11:09:23 +08:00
秦鸿展 a62ed7c60f 31 2026-08-25 11:05:06 +08:00
王奎兴 4168f921f6 查询nc日志排序修改; 2026-08-25 10:52:28 +08:00
王奎兴 1916152775 查询委托方去除组织条件; 2026-08-25 10:41:58 +08:00
rcx 83f4cce451 feat(oms):App端出入库明细跳详情补入库按单号查询,预约单修改限待提交状态
需求:入库/出库明细列表点击跳详情;待提交预约单可修改(暂存/提交均走/edit,与PC共用链路)
1.ReserveStockInOrderApi新增getInfoByInOrderNumber按单号查详情:
  入库明细行只带inOrderNumber(明细表无in_order_id列),对齐出库侧getInfoOutOrderNumber;
  del_flag=1过滤已删单+getOne不抛单号重复
2.ReserveStockInOrderMapper.xml MaterialDetailResult显式映射in_order_number,
  明细行单号不再依赖驼峰自动映射开关(出库侧:363本就有,入库侧补齐)
3.入库/出库DomainService.update加状态闸门:仅status=1(已创建)且issueStatus!=3(未确认)允许修改,
  防已确认下发/已流转单据被改写(仓码确认只置issueStatus=3不改status,原校验缺此维度必然漏防);
  明细为空改报'请添加货物明细'(原getMaterialDetailList().size()空指针500);出库update补@Transactional
2026-08-24 18:12:50 +08:00
王奎兴 f5f792d3f8 发31 2026-08-24 17:03:55 +08:00
王奎兴 dbd61c0519 发30 2026-08-24 16:58:26 +08:00
王奎兴 cb5d933e0a 渗透测试修改; 2026-08-24 16:53:20 +08:00
王奎兴 5298e9d4e3 发30 2026-08-22 19:35:56 +08:00
王奎兴 06f61d7957 发31 2026-08-22 19:32:52 +08:00
王奎兴 4567f00858 发测试 2026-08-22 18:46:36 +08:00
rcx e8328b0159 Merge remote-tracking branch 'origin/dev' into dev 2026-08-22 18:39:12 +08:00
rcx bb3dfaed4a fix(oms):出库业务单线路/车次同步运输业务单,补齐触发入口与拆单时序
出库业务单与运输业务单为两张独立表,仅靠发票号经配送明细关联,
此前无字段同步逻辑,出库单填写的线路/车次不会流到运输业务单。

1. ReservationStockOutOrderDomainService新增syncLineInfoToBusinessOrder:
   按关联链 出库单号->reservation_delivery_details_link.invoiceNumber
   ->business_delivery_details_link.invoiceNumber 定位关联业务单,
   以出库业务单为源头覆盖lineCode/lineName/shuttleNo。
2. 触发入口三个:审核通过(auditState)/下发(issueOrder)/执行并下发
   (executeAndIssue);取消下发不触发。下发与执行并下发不经过审核
   动作,只挂审核入口会漏同步。
3. 同步目标同时覆盖orderId(未拆单业务单/拆单后主单)与subOrderId
   (拆单子单):仅同步subOrderId时,出库先审核而运输单尚未拆单
   (subOrderId为空)会落空,且主单无值导致后续拆单子单拷贝不到。
4. 同步失败仅记error日志,不阻断审核/下发主流程
   (状态更新与同步非同一事务,关联数据异常不应导致接口报错)。

边界:运输业务单手工创建且未录配送明细时无关联链不同步,需页面自行
填写;关联依赖发票号两侧一致,与既有退货回写为同一关联假设。
2026-08-22 18:38:39 +08:00
王奎兴 0eb2f323c7 发31 2026-08-22 18:29:36 +08:00
王奎兴 a35030e2f5 登录报三方异常处理; 2026-08-22 18:27:56 +08:00
王奎兴 d1b1b27ab0 发30 2026-08-22 17:46:47 +08:00
王奎兴 4a6a2798e8 发31 2026-08-22 17:36:27 +08:00
rcx 9068fa0e40 feat(wms):WMS出库单增加线路车次字段,App出库单详情显示线路/车次
背景:App出库单详情调wmsApi/stockOutOrderApi/getInfo,数据在WMS
stock_out_order表,该表未加线路/车次字段导致不回显。

1. mhd-api StockOutOrder(OMS下发Feign DTO)加lineCode/lineName/shuttleNo,
   OMS执行单下发为copyProperties同名拷贝,自动透传,OMS代码零改动。
2. WMS stock_out_order表加三列(脚本追加);entity/PO加字段,
   Feign接收按JSON字段名对齐落库;Mapper XML resultMap与显式列清单补列,
   getInfo(getById自动)与列表均可返回。
3. 部署需重新打包mhd_oms与mhd_wms(OMS依赖的mhd-api jar变更)。
   存量已下发WMS的老单无值,OMS/WMS跨库无法批量刷数,新下发单自动带。
2026-08-22 17:23:48 +08:00
rcx 99cb355640 发测试 2026-08-22 16:50:12 +08:00
rcx c9520c65be feat(wms):上架默认库位填充限定谷丰组织(id=2842)生效 2026-08-22 16:38:18 +08:00
rcx 2a4e39f755 Merge remote-tracking branch 'origin/dev-ty1.2' into dev-ty1.2 2026-08-22 14:10:07 +08:00
rcx a08d8a7fd5 feat(oms):出库导入校验送貨線號/車次并回填线路名称
1. 出库导入(预约/执行两侧)增加validateLineAndShuttle校验:
   送貨線號/車次缺失直接报错;线路须在WMS线路管理存在(route_code精确匹配);
   车次须在该线路车次清单(shuttle_json)内;校验通过回填lineName,
   线路/车次一并落lineCode/lineName/shuttleNo。
2. WmsServiceFeign新增listLineManagement(复用WMS /lineManagementApi/listByApp)
   供OMS跨库查线路,附降级实现;顺带移除FeignClient写死的本机url,恢复Nacos服务发现。
3. 执行侧DynamicDeliveryExcelListener(关键字版)补送貨線號/車次独立成行的解析,
   原实现仅支持与送貨日期同行取值,该模板为分行布局导致解析不到。
2026-08-22 14:08:22 +08:00
rcx ab7219e600 feat(wms):上架管理PC上传页默认填充指定上架库位(维他奶仓→2层冷凍A區A01),仅回显不落库 2026-08-22 14:06:56 +08:00
王奎兴 1b3b1a6394 Merge branch 'dev' into dev-ty1.2
# Conflicts:
#	mhd_wms/src/main/resources/bootstrap.yml
2026-08-22 13:59:22 +08:00
王奎兴 072a4f7d1f 退货验证发票号是否重复;维他奶导入单号添加校验; 2026-08-22 11:17:42 +08:00
王奎兴 63a19fbbcd 退货入库单编辑后才显示数量; 2026-08-22 10:26:54 +08:00
rcx 5fc491f612 fix(oms,wms):执行单重复下发致WMS收货明细翻倍修复,executeAndIssue获取仓库信息失败修复
一、收货明细翻倍(executionStockInOrderApi/issueOrder下发后,WMS收货管理详情明细×2):
根因:执行单下发接口无防重 + WMS接收端无幂等。executeAndIssue已自动下发过的执行单
仍可被手动再次下发(issueTime已置但无校验),重复推送使WMS插入同号入库主单+第二份
in_material_detail,再生成第二张同号收货单(收货单号"RV-"+入库单号确定性生成),
收货管理详情按单号查明细即双倍。四层防御:
1. OMS执行单issueOrder补防重:issueTime非空拒绝下发(与executeAndIssue对齐),
   inOrderIds去重防同请求重复推送
2. WMS omsOrderAdd主单幂等:同单号有效单(del_flag=1)已存在则跳过插入
3. WMS omsOrderAddDetail明细幂等:按oms_in_material_detail判重,已存在行不再插入;
   未传ID的行保持原插入行为
4. WMS autoAuditOmsInOrder取单补orderByAsc(in_order_id)消除同号取单随机性;
   auditApprove生成收货单前按收货单号查重过滤,已生成过的单不再重复生成
二、executeAndIssue报"获取仓库信息失败":
1. 明细行warehouseId=0时兜底改用主表仓库(与下发issueOrder兜底逻辑对齐),
   不再拿无效仓库ID调system服务
2. executeAndIssue/issueOrder两处报错增强为带仓库ID与错误信息,便于定位
存量已翻倍数据(重复入库单/明细/收货单)需另行软删清理,本次仅防新增
2026-08-21 18:21:03 +08:00
rcx b209d8cb6d fix(oms):出库明细materialBaseInfoId自动纠正,杜绝脏物料ID落库
问题:客户端推单把materialInventoryId传进materialBaseInfoId字段(或漏传为0),
出库明细存脏ID,编辑/保存报"物料基础信息不存在"(如DCCK034存了库存ID477/444,
真实物料ID应为233/231)。预约端校验原先静默跳过,脏数据持续入库(7-15起200+行)。

一、新增MaterialBaseInfoResolveService三级解析:
    baseId直查 → 库存ID反查纠正 → 物料编码+组织兜底,全部失败返回null
二、三处setMaterialDetailInfo改为纠正+回填(预约/业务/执行出库单):
    查不到抛错带定位信息(baseId/库存ID/物料编码/单号);
    纠正后的ID随保存落库,旧脏单重新保存即自愈;
    预约端由静默跳过改为抛错
三、两处pushOutOrderDetail推送入口(预约/业务)加纠正,
    反查不到拒绝保存,脏数据不再入库

注:存量脏数据修复SQL另行手动执行;下发复制链(预约→业务→执行)不走校验,
2026-08-21 18:20:22 +08:00
rcx 06aae196c7 发测试 2026-08-21 16:59:56 +08:00
rcx e91c5801eb 发测试 2026-08-21 15:54:46 +08:00
rcx 8704df738c Merge remote-tracking branch 'origin/dev' into dev-ty1.2 2026-08-21 15:47:44 +08:00
rcx 000092952f feat(oms,wms):出库/运输单据增加线路车次字段,线路管理支持车次清单维护
1. OMS四张表(business_document_order/execute_order/
   reservation_stock_out_order/execution_stock_out_order)加
   LINE_CODE/LINE_NAME/SHUTTLE_NO三列,entity/DO/DTO/PO同步加字段,
   出库两链路Mapper XML补列与resultMap。
   线路编码/名称冗余存line_management的route_code/route_name
   (两库不互通无法join);SHUTTLE_NO为字符串(如4或31-4),
   前端拼"编码-车次"显示(31-4车次);不复用route(存tms_route.id)
   和train_no(入库链路占用)。
   下发链路(预约单->执行单,业务单->执行单)同名拷贝自动透传。
2. WMS line_management加SHUTTLE_JSON列(车次序号JSON数组),
   四层加字段+XML;DTO加反序列化器兼容前端传数组,
   PO加序列化器返回原样输出数组。
3. LineManagementImpl.update组织/仓库名称空串兜底,
   修复编辑线路后组织名称被刷成空串、列表查不到的问题。
4. 新增建表脚本sql/20260820_oms_outbound_transport_add_line_shuttle.sql(达梦语法)。
2026-08-21 15:28:50 +08:00
rcx 22f2b66ffa feat(oms,wms):库存导出按到期日分组排序并合并同物料同到期日库存(仅wlExpiry查询生效)
需求:库存查询导出按商品到期日分组归类、相同到期日相邻显示,相同物料相同
到期日合并库存。仅在 queryRule=wlExpiry(物料+到期日汇总查询)导出时生效,
列表显示不变;同时回退 8fedb6d6 对列表默认排序的改动。

一、列表默认查询还原(回退 8fedb6d6):OMS queryList 恢复 order by a.update_time desc,
    Api 恢复 update_time 内存重排(空值最后),两侧列表排序与改动前一致。
二、导出排序(OMS/WMS queryListByWlExpiry):/list 新增可选参数 orderByExpiryDate,
    仅 queryRule=wlExpiry 时生效:
    1. wlExpiry + orderByExpiryDate=true(导出):到期日倒序(日期近的在前)、空值最后、
       0库存靠后、同到期日按更新时间倒序;排序在SQL层,跨页/全量导出分组不被打散;
       OMS Api 传参时跳过 update_time 内存重排,避免覆盖SQL排序
    2. 仅 wlExpiry 不带参数:排序保持原样(sort_order+更新时间倒序)
    3. 其他查询方式:不受影响,参数被忽略
三、合并:wlExpiry 查询 GROUP BY 物料+到期日+货主(货主隔离),相同物料相同到期日
    合并一行,库存/可用/冻结数量及净重/毛重/体积/面积 SUM 汇总(复用现成查询,未改)
四、前端导出:/list + queryRule=wlExpiry + orderByExpiryDate=true + 当前查询条件(不分页)
2026-08-21 15:13:28 +08:00
rcx 3aec384ba0 fix(wms):出库委托单导入出仓日期丢失、升列与单价回填修复
- HeaderListener:parseDate升级为parseDateSmart,兼容Excel日期序列号(20000~60000≈1954~2064年,
  POI DateUtil.getJavaDate转换)及yyyy/M/d、yyyy.M.d、yyyy年M月d日等多格式文本;
  出仓日期/完成时间/下单日期三处调用点同步切换;解析失败记入dateParseErrors不再静默
- ExcelParseService:导入校验汇总dateParseErrors,日期单元格有值但格式不识别时阻断导入并
  明确提示(为空仍放行,与原行为一致);单价回填从料号分支移至料号/SKU/名称三分支统一回填块,
  补齐SKU、商品名称匹配场景
- ItemListener:升列新增normalizeNumeric归一化,去千分位逗号、空值统一存null、纯数字去尾零,
  落库值恒为"纯数字或null",前端合计不再产生NaN/拼接
2026-08-21 14:56:12 +08:00
rcx 27f3fceb6e feat(wms):出入库导入增加料号与规格型号/SKU码一致性校验
- 料号命中物料档案后:规格型号/SKU码必须与档案一致,Excel留空且档案有值同样报错(提示Excel:空);档案值为空则跳过该项
- SKU以档案条码(bar_code)为基准;错误行一次性汇总提示,拒绝导入
- 出库料号已填写但货主下查不到时直接报错,不再被SKU码/商品名称静默兜底(与入库行为对齐)
2026-08-21 14:42:25 +08:00
王奎兴 3e5ed28d69 发30 2026-08-20 18:14:37 +08:00
王奎兴 78d40d35be 发31 2026-08-20 18:13:30 +08:00
rcx 8fedb6d6ed feat(oms):库存查询/导出按商品到期日分组排序 2026-08-20 17:54:23 +08:00
王奎兴 b8de1c00eb 发31 2026-08-20 17:41:09 +08:00
王奎兴 bf080609fe 发30 2026-08-20 17:39:44 +08:00
王奎兴 b415ed6fa0 出库预约业务类型查询; 2026-08-20 17:34:43 +08:00
王奎兴 694ed699ec 单号生成规则包含已删除; 2026-08-20 17:26:56 +08:00
王奎兴 0b26692a34 发31 2026-08-20 15:35:31 +08:00
王奎兴 c2af421c7f 发30 2026-08-20 15:31:40 +08:00
王奎兴 57f87baf85 发30 2026-08-20 15:30:59 +08:00
王奎兴 e23edadde6 发30 2026-08-20 14:59:53 +08:00
王奎兴 530254e000 发31 2026-08-20 14:57:14 +08:00
rcx 33d085f9b9 fix(oms):入库链路计划数量翻倍修复
明细batchUpdate软删条件缺陷(入/出库共6个明细实现类):软删旧明细要求本次提交
   至少一行走更新分支,"删光旧物料全部换新物料"时提交列表全为新增行,旧行漏软删
   (del_flag仍=1),下发后执行单计划数量=旧+新叠加。改为库内有明细即对账软删
2026-08-20 14:45:13 +08:00
王奎兴 21fcc24e2e 发31 2026-08-20 14:20:07 +08:00
王奎兴 64350f565b 列表查询id不对; 2026-08-20 14:16:23 +08:00
rcx ff2b1965f7 fix(oms):入库业务单单号重复与入库链路计划数量翻倍修复
一、单号重复:业务单与客户预约两套取号计数器互不可见致撞号。
取号统一为跨两表MAX+1+存在性校验,保存前校验预取号占用,下发不再换号,Mapper新增existsByOrderNumber。
二、计划数量翻倍:编辑明细为软删(del_flag=2留存),下发查明细未过滤del_flag,
软删行被复制进下游单据并计入头表数量(执行单数量≈业务单×2+修改差值)。
1. 预约→业务单下发、执行单推WMS:明细查询补del_flag=1过滤
2. executeAndIssue(执行并下发):补防重复下发校验(issueTime非空拒绝)
3. pushInOrder/pushInOrderDetail:加幂等,防Feign重试插重复单
2026-08-20 14:06:50 +08:00
王奎兴 7a769071e4 发30 2026-08-20 10:48:34 +08:00
王奎兴 b05f994e74 发31 2026-08-20 10:35:34 +08:00
rcx ef13d890be fix(oms):入库执行单列表单号搜索查不到,businessNumber死条件改单号模糊互查;库存查询货主过滤移回主表并修正委托方误判
- 入库执行单列表:businessNumber条件原为BUSINESS_NUMBER精确等值,该列无写入恒空致全条件查询0条,改为业务单号/入库单号OR模糊互查

- 入库执行单列表:inOrderNumber精确等值改模糊like;删除重复的createByName条件;补businessInOrderNumber过滤(业务单号/入库单号互查)
- 库存查询:货主过滤(shipperId/Code/Name/shipperInfo)从物料表b移回库存主表a,避免LEFT JOIN退化INNER JOIN丢行
- 库存查询:委托方判定由组织层级改为UserPo.shipperEnterpriseName,避免二级组织运营人员(2841/2842)被误判强制按本人userId过滤
2026-08-20 10:17:16 +08:00
rcx cc943d164b fix(wms):入库单导入表头字段错位、备注丢失
- 取值向右查找时误把下一个标签/选项说明当值(承运方←Tel:、生产商←客户名称:、监管方式←送货地址:、送货地址←查验选项),现遇疑似标签即停止查找
- 备注:xxx同格书写为全角冒号,原仅按半角:拆分导致备注丢失,现全角/半角兼容
- 表头列遍历上界改用getLastCellNum,防空单元格漏扫尾部列"
2026-08-20 10:06:50 +08:00
王奎兴 624b7d7d6e 发测试; 2026-08-20 09:05:10 +08:00
王奎兴 0b61b813a5 Merge branch 'dev' into dev_820 2026-08-20 09:03:05 +08:00
rcx 77420e9617 feat(sys):合同附件增加原始文件名存储字段,配合上传v2回显原名称
需求背景:合同管理-上传的文件需显示原始文件名(原显示 LOCAL:D:\upload\{uuid}.pdf 之类存储键)。
附件此前仅存 fileKey,原始文件名在上传落盘时已被 UUID 重命名丢失,回显无原名可用。
改动内容:
1. contract_manage 表新增 4 个附件原始文件名字段(见 sql/20260818_contract_attachment_original_name.sql):
   contract_original_name    合同正本附件原始文件名
   integrity_agreement_name  廉政协议附件原始文件名
   security_protocol_name    安全协议附件原始文件名
   other_attachments_name    其他附件原始文件名(多文件与 other_attachments_url 同分隔符、同顺序)
2. ContractManage / ContractManagePO / ContractManageDO / ContractManageDTO
   四个对象同步新增对应 4 个 name 字段,保存、详情、列表全链路透传。
   Assembler 与 ContractManageImpl 为 BeanUtils 同名拷贝、Mapper XML 为 SELECT a.*,均无需改动。"
 "配套依赖:
- mhd-product 新增 /menu/upload/v2 返回 { fileKey, originalName }(另一提交)
- 前端上传后成对保存 fileKey 与 originalName,回显显示 name 字段
兼容说明:
- 存量合同 name 字段为空,前端回退显示 fileKey 末段(uuid 名),属预期兼容行为
- 纯新增字段,旧代码不读写,不影响既有接口
2026-08-19 18:08:59 +08:00
rcx fa51580985 feat(product):附件上传v2返回原始文件名,下载接口支持inline预览与中文文件名 2026-08-19 18:04:57 +08:00
rcx 362f1b5e2f fix(bms):科目编码重复致新增账单失败,税率查询按编码+名称取唯一;复制账单改生成新计费流水
- getTaxRate 增加 SUBJECT_NAME 匹配,费用科目编码重复(如1003同时有运输处理费/报关费3)时不再抛 TooManyResultsException,查不到税率兜底0
- addBill、开票/NC推送共4处调用点同步调整;计费流水号为空时只处理自身明细,防空指针
- copyBill 明细清空计费流水id并按原流水映射生成新JFLS流水号,防止复制提交后把原账单的流水改挂到新账单(原账单明细丢失)
- insertAndReturnId 币种空值兜底CNY(与addCost对齐)
2026-08-19 18:02:23 +08:00
rcx b859aa99d3 fix(oms):入库业务单导入件数未回显计划数量
- 导入模版去掉Qty(cases)列(5列布局),饮用日期列位前移
- 明细计划数量由Qty箱数改为"件数"取值,件数同步落库PIECE_COUNT用于列表回显
- 物料在当前登录组织下不存在时返回明确提示,替代货主列表取值越界导致的500
2026-08-19 17:59:19 +08:00
rcx 83f05dd11d feat(bms):新增费用统计分析报表,科目按模板类别归并、仓储拆散租/固定出租两行、行级占营收比,含34列导出与智能分析归因 2026-08-19 15:36:53 +08:00
zhaoqing 6252866f7c fix(oms):明细表保额货物类型 2026-08-19 15:29:09 +08:00
rcx dd0bf32c35 feat(gateway):登录验证码改为纯数字,字符源限定0-9
需要将网关yml文件中 math 改成 char
security:
  captcha:
    enabled: true
    type: char   # math=算术题,char=纯数字
2026-08-19 14:28:45 +08:00
rcx 7ed12c9405 feat(bms):应收账单添加费用币种空值兜底CNY、费用明细增加流水备注保存与显示 2026-08-19 11:02:52 +08:00
zhaoqing 15c8a2b6e6 fix(wms):明细表入库时间 2026-08-19 09:14:44 +08:00
rcx 72e445ea16 fix(oms):出库添加货物查询不到商品,库存查询改租户+货主维度并出库列表补货主旁路
1.ReservationMaterialInventoryApplicationService.queryList原对非南光组织用户强制organization_id=用户组织且top=2827,委托方(如仓码2841货主)库存被滤空;改为按一级组织(租户)过滤,委托方自动叠加登录货主shipperId查自己的货,库存数据已核实在库
2.ReserveStockOutOrderApplicationService.queryList/detailsList增加货主直查旁路(与入库queryList对齐),委托方按shipperId查询不被组织过滤拦截
2026-08-18 18:09:53 +08:00
rcx f50a3e690a fix(oms):出库预约落库回填仓库/组织/货主,状态默认已创建
与入库侧同款修复:insert按仓库档案回填组织/一级组织/仓库编码名称(兜底2841),委托方回填shipperId/customerId,status默认1已创建(配合App订单状态只读);补fastjson import
2026-08-18 18:09:41 +08:00
rcx 8692b38671 fix(oms):入库预约App提交后各端不显示,落库回填仓库/组织/货主并支持货主维度查询
根因:App提交的预约单organization_id/shipper_id落库为空、warehouse_code全空,列表按组织与仓码过滤必然查不到
1.ReserveStockInOrderDomainService.insert:
  -新增明细非空校验,App不传明细时返回'请添加货物明细'而非NPE
  -按warehouseId查仓库档案回填组织(仓码2841/谷丰2842按仓库归属)/一级组织(2827)/仓库编码名称,仓库缺失时兜底登录人一级组织+2841
  -委托方(有货主档案)未传shipper时回填登录人userId至shipperId/customerId
  -订单状态默认'新增'/status默认1(配合App端订单状态改只读)
2.ReserveStockInOrderApplicationService:
  -detailsList增加货主直查旁路(对齐queryList既有逻辑),委托方按shipperId查询不再被组织过滤拦截
  -inAndOutList原无任何数据权限,委托方登录强制注入本人shipperId,防止传错组织(如通宇2830)导致列表滤空并防越权
2026-08-18 18:09:34 +08:00
rcx f77d89fa7f fix(thirdParty):短信验证码发送失败误包成成功响应,失败原因取result并返回error
SmsApi.sms发送失败分支原返回AjaxResult.success(发送失败)且getMessage()取的是默认文案,现改为AjaxResult.error并携带乐信通返回的失败原因,App端可感知发送失败原因
注:收不到验证码的主因(网关白名单/租户域名映射)为Nacos与DB配置项,不在代码仓库
2026-08-18 18:09:25 +08:00
rcx 0ff327a071 fix(auth):App注册接口空实现,补全手机号+短信验证码注册链路
1.AppTokenController.register改为透传完整LoginDTO
2.TokenLoginApplicationService.register原为TODO空壳(仅格式校验直接返回成功),现补全:注册短信验证码校验(SMS_REGISTER redis)→域名解析一级组织→按手机号查重→复用registerAddUser创建用户(含默认角色/YMS同步)→注册成功清验证码并记录日志
3.配套网关白名单(/auth/app/register,/auth/app/getOrganizationByPath/**)需在Nacos发布,不入库
2026-08-18 18:09:18 +08:00
rcx 6661c016e8 fix(auth):密码登录账号/密码错误无提示,登录配置读取与全局异常兜底
1.SysPasswordService.validate登录重试配置(login/maxRetryCount,lockTime)读取增加try/catch与空值保护,三方服务异常或配置缺失时降级默认值(错5次锁30分钟)并warn日志,不再NPE/NumberFormatException导致msg为空
2.GlobalExceptionHandler的RuntimeException/Exception分支对e.getMessage()为空兜底为'系统繁忙,请稍后重试',保证App端始终能拿到可展示的错误信息
2026-08-18 18:08:49 +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
rcx bca8b5fbed fix(oms):入库执行单业务单号不随下发复制,执行并下发入口补充有效运输业务单回填 2026-08-18 11:36:21 +08:00
王奎兴 58e3882ef4 添加修改物料去除货主校验; 2026-08-18 10:20:26 +08:00
rcx e489015e3e fix(oms):下发过滤已删除明细,执行单不再残留已取消运输业务单号 2026-08-18 10:19:40 +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
1648 changed files with 182028 additions and 6292 deletions
BIN
View File
Binary file not shown.
@@ -18,7 +18,7 @@ import java.util.Set;
/**
* 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.102.192.3:8012",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class)
public interface BmsServiceFeign {
@@ -35,6 +35,13 @@ public interface BmsServiceFeign {
@GetMapping("/settlementCustomersApi/getInfoByCode")
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")
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.102.192.4: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}")
public AjaxResult getBatchInfoByBatchId(@PathVariable("batchId") Long batchId);
/**
* 根据批次名称查询批次列表(导入用)
*/
@GetMapping("/batchApi/list")
public Object getBatchListByName(@RequestParam("batchName") String batchName,
@RequestParam("organizationId") Long organizationId);
/**
* 根据batchId获取对应批次详情信息
*/
@@ -218,12 +225,24 @@ public interface SystemServiceFeign {
@GetMapping("/associationWarehouseApi/getWarehouseInfo/{correlationId}")
public AjaxResult getWarehouseInfo(@PathVariable("correlationId") Long correlationId);
/**
* 直接从数据库获取指定用户设置的仓库(不使用缓存)
*/
@GetMapping("/associationWarehouseApi/getWarehouseInfoFromDb/{correlationId}")
public AjaxResult getWarehouseInfoFromDb(@PathVariable("correlationId") Long correlationId);
/**
* 根据warehouseId获取对仓库信息
*/
@GetMapping("/warehouseApi/getInfo/{warehouseId}")
public AjaxResult getWarehouseInfoByWarehouseId(@PathVariable("warehouseId") Long warehouseId);
/**
* 根据warehouseId获取仓库及下库区及库位树(与前端 warehouseApi/getWarehouseChildren 一致,用于PC上架页默认库位回显)
*/
@GetMapping("/warehouseApi/getWarehouseChildren")
public AjaxResult getWarehouseChildren(@RequestParam("warehouseId") Long warehouseId);
/**
* 根据storageSectionId获取对应库区信息
*/
@@ -245,6 +264,14 @@ public interface SystemServiceFeign {
@GetMapping("/packApi/getInfoByPackIdAndUnitCode/{packId}/{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获取对应月台信息
*/
@@ -288,6 +315,12 @@ public interface SystemServiceFeign {
@GetMapping("/expenseAccountApi/getInfoByCode")
public AjaxResult getSubInfoByCode(@RequestParam("subjectCode") String subjectCode);
/**
* 根据code编码查询费用科目
*/
@GetMapping("/expenseAccountApi/getInfoByCode2")
public AjaxResult getSubInfoByCode2(@RequestParam("subjectCode") String subjectCode,@RequestParam("topOrganizationId") Long topOrganizationId);
/**
* 根据code编码查询项目信息
@@ -319,13 +352,42 @@ public interface SystemServiceFeign {
@GetMapping("/contractManageApi/getInfoByCode")
public AjaxResult getInfoByCode(@RequestParam("contractNumber") String contractNumber);
/**
* 获取通用合同
*/
@GetMapping("/contractManageApi/getGeneralContract")
public AjaxResult getGeneralContract();
/**
* 根据结算主体获取合同信息
*/
@GetMapping("/contractManageApi/getInfoByCustomer")
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")
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.todo.StatisticalMattersDo;
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.UserShipperFeignDTO;
import com.mhd.system.api.domain.UserShipperQueryDTO;
import com.mhd.system.api.domain.UserUpdateDTO;
import com.mhd.system.api.factory.RemoteUserFeignFallbackFactory;
import com.mhd.system.api.feign.FeignAutoConfiguration;
import com.mhd.system.api.model.LoginUser;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -160,6 +165,10 @@ public interface UserServiceFeign {
@GetMapping("/userShipperApi/userShipperListAll")
public AjaxResult<?> userShipperListAll();
@ApiOperation("查询租户下全部托运人")
@GetMapping("/userShipperApi/userShipperListAllByOrg")
public AjaxResult<?> userShipperListAllByOrg(@RequestParam("orgCode") Long orgCode);
@ApiOperation("查询租户下全部承运人")
@GetMapping("/userDriverApi/userDriverListAll")
public AjaxResult<?> userDriverListAll();
@@ -191,4 +200,34 @@ public interface UserServiceFeign {
@ApiOperation("根据用户ID查询货主信息")
@GetMapping("/userShipperApi/getShipperByUserId/{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.web.domain.AjaxResult;
import com.mhd.system.api.domain.*;
import com.mhd.system.api.domain.TmsOrderAddDTO;
import com.mhd.system.api.feign.FeignAutoConfiguration;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
@@ -25,7 +26,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,configuration = FeignAutoConfiguration.class)
@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.102.192.30:8014",configuration = FeignAutoConfiguration.class)
public interface WlhyServiceFeign {
/**
@@ -516,6 +517,14 @@ public interface WlhyServiceFeign {
@PostMapping(value = "/feign/outBoundSummary/getOrderListByReconciliation")
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")
public Result<?> queryById(@RequestParam(name="id",required=true) String id);
@@ -529,4 +538,20 @@ public interface WlhyServiceFeign {
@GetMapping("/feign/order/cancelIssueDocuments")
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;
import cn.hutool.json.JSONUtil;
import com.mhd.common.core.constant.ServiceNameConstants;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.system.api.domain.MaterialBaseInfoFeign;
import com.mhd.system.api.domain.MaterialInventoryDTO;
import com.mhd.system.api.domain.NoticeOrderDTO;
import com.mhd.system.api.factory.RemoteTicketFeignFallbackFactory;
import com.mhd.common.core.web.page.TableDataInfo;
import com.mhd.system.api.domain.*;
import com.mhd.system.api.factory.RemoteWmsFallbackFactory;
import com.mhd.system.api.feign.FeignAutoConfiguration;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
@@ -18,7 +21,7 @@ import java.util.Map;
* @description: TODO
* @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.102.192.3:8016",fallbackFactory = RemoteWmsFallbackFactory.class, configuration = FeignAutoConfiguration.class)
public interface WmsServiceFeign {
/**
@@ -64,5 +67,96 @@ public interface WmsServiceFeign {
* 查询物料库存列表不分页
*/
@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);
/**
* OMS查询WMS线路管理列表(按线路编码模糊查,OMS侧自行精确匹配),
* 出库导入时校验送貨線號/車次并回填线路名称
*/
@ApiOperation("OMS查询WMS线路管理列表")
@GetMapping("/lineManagementApi/listByApp")
public AjaxResult listLineManagement(@RequestParam("routeCode") String routeCode);
}
@@ -0,0 +1,23 @@
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.factory.RemoteXxlJobFeignFallbackFactory;
import com.mhd.system.api.feign.FeignAutoConfiguration;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
@FeignClient(contextId = "XxlJobService", value = ServiceNameConstants.XXL_JOB_SERVICE,url = "http://127.0.0.1:8020",fallbackFactory = RemoteXxlJobFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class)
public interface XxlJobServiceFeign {
@GetMapping("/user/openFeignTest")
public R<Map<String, Object>> openFeignTest(@RequestParam("param") String string);
}
@@ -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.102.192.4: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,402 @@
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("过期日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date expiryDate;
@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.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.List;
/**
@@ -66,6 +67,10 @@ public class MaterialBarCodeFeign extends BaseVOEntity{
@Excel(name = "名称")
private String name;
@ApiModelProperty("数量")
@Excel(name = "数量")
private BigDecimal number;
@ApiModelProperty("备注")
@Excel(name = "备注")
private String remark;
@@ -202,6 +202,19 @@ public class MaterialBaseInfoFeign extends BaseVOEntity{
@ApiModelProperty("法定第二单位")
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("币制")
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;
@ApiModelProperty("生产日期")
@JsonFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date productionTime;
@ApiModelProperty("失效日期")
@JsonFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@Excel(name = "失效日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date expirationTime;
@@ -101,4 +101,4 @@ public class MaterialCommonFeign extends BaseVOEntity{
@ApiModelProperty(name = "权限菜单ID")
private Long permissionMenuId;
}
}
@@ -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,91 @@
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 Date purchaseDate;
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,417 @@
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;
@ApiModelProperty("线路编码(取自WMS线路管理)")
private String lineCode;
@ApiModelProperty("线路名称(冗余存储)")
private String lineName;
@ApiModelProperty("车次序号(显示: 线路编码-车次, 如31-4)")
private String shuttleNo;
}
@@ -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=停用")
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()
{
return dictId;
@@ -86,6 +125,9 @@ public class SysDictType extends BaseEntity
.append("dictName", getDictName())
.append("dictType", getDictType())
.append("status", getStatus())
.append("organizationId", getOrganizationId())
.append("organizationName", getOrganizationName())
.append("topOrganizationId", getTopOrganizationId())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.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")
private Date accessTime;
@@ -109,4 +109,4 @@ public class SysLogininfor {
* 响应时间ms
*/
private String responseTime;
}
}
@@ -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")
private Date operTime;
@@ -176,4 +176,4 @@ public class SysOperLog {
* 端口
*/
private String port;
}
}
@@ -127,4 +127,12 @@ public class TmsMakeOutInvoice implements Serializable {
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,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 = "用户角色")
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;
@ApiModelProperty(name = "身份证号加密")
private String userIdcardNumberDes;
@JsonFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "身份证有效期自")
private Date userIdcardDateFrom;
@JsonFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "身份证有效期至")
private Date userIdcardDateTo;
@ApiModelProperty(name = "身份证是否长期:0-无状态,1-是,2-否")
@@ -76,7 +76,7 @@ public class UserUpdateDTO extends BaseVOEntity {
private String userWechatSessionKey;
@ApiModelProperty(name = "密码登录错误次数")
private Integer passwordWrongTimes;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(name = "最近一次登录时间")
private Date lastLoginTime;
@ApiModelProperty(name = "最近一次登录IP")
@@ -89,15 +89,15 @@ public class UserUpdateDTO extends BaseVOEntity {
private int userAuthStatus;
@ApiModelProperty(name = "用户审核人用户姓名")
private String userAuthByUsername;
@JsonFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "用户审核时间")
private Date userAuthTime;
@ApiModelProperty(name = "加入黑名单备注(解除时需要清空)")
private String userStatusRemark;
@JsonFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "用户状态更新时间")
private Date userStatusTime;
@JsonFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(name = "用户生日")
private Date userBirthday;
@ApiModelProperty(name = "用户住址信息")
@@ -122,4 +122,4 @@ public class UserUpdateDTO extends BaseVOEntity {
@ApiModelProperty(name = "请求域名")
private String tenantsDomainName;
}
}
@@ -116,6 +116,28 @@ public class WarehouseFeignPO extends BaseVOEntity{
@Excel(name = "是否作废: 1-否 2-是")
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,30 @@
package com.mhd.system.api.domain;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 仓库联动树节点Feign侧
* 镜像system端WarehouseLinkagePO/StorageSectionLinkagePO/StorageLocationLinkagePO三级结构仓库库区库位
*
* @author rcx
* @date 2026-08-22
*/
@Data
public class WarehouseLinkageFeignPO implements Serializable {
private static final long serialVersionUID = 1L;
/** 仓库id / 库区id(storageSectionId) / 库位id(storageLocationId) */
private Long id;
/** warehouseCode / storageCode / storageLocationCode */
private String code;
/** warehouseName / storageName / storageLocationName */
private String name;
/** 下级节点:仓库下为库区列表,库区下为库位列表,库位无children */
private List<WarehouseLinkageFeignPO> children;
}
@@ -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());
}
@Override
public AjaxResult getCustomersInfoBySettlementEntityId(Long settlementEntityId, Long topOrganizationId) {
return AjaxResult.error(throwable.getMessage());
}
@Override
public AjaxResult pushSyncData(BusinessDataPushDTO businessDataPushDTO) {
return AjaxResult.error(throwable.getMessage());
@@ -51,6 +56,16 @@ public class RemoteBmsFeignFallbackFactory implements FallbackFactory<BmsService
public AjaxResult getDocumentInfoByCodeSet(Set<String> documentTypeCodeSet) {
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;
}
};
}
}
@@ -20,6 +20,7 @@ import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@@ -154,6 +155,11 @@ public class RemoteSystemFeignFallbackFactory implements FallbackFactory<SystemS
return AjaxResult.error("根据批次ID获取批次信息失败");
}
@Override
public Object getBatchListByName(String batchName, Long organizationId) {
return AjaxResult.error("根据批次名称查询批次列表失败");
}
@Override
public AjaxResult getBatchDetailListByBatchId(Long batchId) {
return AjaxResult.error("根据batchId获取对应批次详情信息失败");
@@ -169,11 +175,21 @@ public class RemoteSystemFeignFallbackFactory implements FallbackFactory<SystemS
return AjaxResult.error("获取用户当前设置的仓库失败");
}
@Override
public AjaxResult getWarehouseInfoFromDb(Long correlationId) {
return AjaxResult.error("从数据库获取用户当前设置的仓库失败");
}
@Override
public AjaxResult getWarehouseInfoByWarehouseId(@PathVariable("warehouseId") Long warehouseId) {
return AjaxResult.error("根据仓库ID获取仓库信息失败");
}
@Override
public AjaxResult getWarehouseChildren(@RequestParam("warehouseId") Long warehouseId) {
return AjaxResult.error("根据仓库ID获取仓库及下库区及库位树失败");
}
@Override
public AjaxResult getStorageSectionInfoByStorageSectionId(@PathVariable("storageSectionId") Long storageSectionId) {
return AjaxResult.error("根据库区ID获取库区信息失败");
@@ -194,6 +210,11 @@ public class RemoteSystemFeignFallbackFactory implements FallbackFactory<SystemS
return AjaxResult.error("根据包装ID和单位编码获取信息失败");
}
@Override
public Object getPackList(String packCode, String packName, Long organizationId) {
return AjaxResult.error("根据包装编码/名称查询包装列表失败");
}
@Override
public AjaxResult getPlatformInfoByPlatformId(Long platformId) {
return AjaxResult.error("根据platformId获取对应月台信息失败");
@@ -229,6 +250,11 @@ public class RemoteSystemFeignFallbackFactory implements FallbackFactory<SystemS
return AjaxResult.error("获取科目信息失败" + throwable.getMessage());
}
@Override
public AjaxResult getSubInfoByCode2(String subjectCode, Long topOrganizationId) {
return AjaxResult.error("获取科目信息失败" + throwable.getMessage());
}
@Override
public AjaxResult getProjectByCode(String projectCode) {
return AjaxResult.error("获取项目信息失败" + throwable.getMessage());
@@ -254,15 +280,44 @@ public class RemoteSystemFeignFallbackFactory implements FallbackFactory<SystemS
return AjaxResult.error("查询失败");
}
@Override
public AjaxResult getGeneralContract() {
return AjaxResult.error("查询失败");
}
@Override
public AjaxResult getInfoByCustomer(String settlementCustomersCode, Integer contractType) {
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
public AjaxResult queryList() {
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.UserDriverDTO;
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.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.model.LoginUser;
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.RequestParam;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -135,6 +140,11 @@ public class RemoteUserFeignFallbackFactory implements FallbackFactory<UserServi
return AjaxResult.error("获取租户托运人失败");
}
@Override
public AjaxResult<?> userShipperListAllByOrg(Long orgCode) {
return null;
}
@Override
public AjaxResult<?> userDriverListAll() {
return AjaxResult.error("获取租户承运人失败");
@@ -165,6 +175,11 @@ public class RemoteUserFeignFallbackFactory implements FallbackFactory<UserServi
return R.fail("获取组织用户失败:" + throwable.getMessage());
}
@Override
public R<LoginUser> getUserByUserAccount(String userAccount) {
return R.fail("获取用户失败:" + throwable.getMessage());
}
@Override
public R<LoginUser> getUserByTopOrganizationUserPhone(@RequestBody UserDTO userDTO, String source) {
return R.fail("获取组织用户失败:" + throwable.getMessage());
@@ -181,6 +196,37 @@ public class RemoteUserFeignFallbackFactory implements FallbackFactory<UserServi
public AjaxResult<?> getShipperByUserId(Long userId) {
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.system.api.WlhyServiceFeign;
import com.mhd.system.api.domain.*;
import com.mhd.system.api.domain.TmsOrderAddDTO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory;
@@ -519,6 +520,22 @@ public class RemoteWlhyFallbackFactory implements FallbackFactory<WlhyServiceFei
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
public Result<?> queryById(String id) {
return null;
@@ -533,6 +550,16 @@ public class RemoteWlhyFallbackFactory implements FallbackFactory<WlhyServiceFei
public AjaxResult cancelIssueDocuments(String executeOrderId) {
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.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
import com.mhd.system.api.WlhyServiceFeign;
import com.mhd.system.api.WmsServiceFeign;
import com.mhd.system.api.domain.MaterialBaseInfoFeign;
import com.mhd.system.api.domain.MaterialInventoryDTO;
import com.mhd.system.api.domain.NoticeOrderDTO;
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 org.springframework.web.bind.annotation.PathVariable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
@@ -54,6 +55,82 @@ public class RemoteWmsFallbackFactory implements FallbackFactory<WmsServiceFeign
public AjaxResult materialInventoryApiListAll(MaterialInventoryDTO materialInventoryDTO) {
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());
}
@Override
public AjaxResult listLineManagement(String routeCode) {
log.error("OMS查询WMS线路管理失败, routeCode:{}", routeCode);
return AjaxResult.error("WMS线路管理查询失败:" + cause.getMessage());
}
};
}
}
}
@@ -0,0 +1,44 @@
package com.mhd.system.api.factory;
import com.mhd.common.core.domain.dto.BusinessDataPushDTO;
import com.mhd.common.core.domain.entity.R;
import com.mhd.common.core.domain.po.OrganizationPo;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.system.api.BmsServiceFeign;
import com.mhd.system.api.ProductServiceFeign;
import com.mhd.system.api.XxlJobServiceFeign;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* @Description
* @Author zg
* @Version 1.0
* @Date 2023/11/3 14:37
*/
@Component
public class RemoteXxlJobFeignFallbackFactory implements FallbackFactory<XxlJobServiceFeign> {
private static final Logger log = LoggerFactory.getLogger(RemoteXxlJobFeignFallbackFactory.class);
@Override
public XxlJobServiceFeign create(Throwable throwable) {
log.error("系统服务调用失败:{}", throwable.getMessage());
return new XxlJobServiceFeign() {
@Override
public R<Map<String, Object>> openFeignTest(String string) {
return null;
}
};
}
}
@@ -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.SysUser;
import com.mhd.system.api.domain.WlhyLoginUser;
import com.mhd.system.api.domain.YmsLoginUser;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -87,6 +88,11 @@ public class LoginUser implements Serializable
*/
private WlhyLoginUser wlhyLoginUser;
/**
* YMS用户信息
*/
private YmsLoginUser ymsLoginUser;
/**
* websocket地址
*/
@@ -162,4 +168,16 @@ public class LoginUser implements Serializable
@ApiModelProperty("仓库信息")
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 java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -107,11 +108,14 @@ public class TokenLoginApplicationService {
//租户一级组织ID
SysTenantsPo sysTenantsPo = JSON.parseObject(JSON.toJSONString(topOrganizationIdR.get("data")), SysTenantsPo.class);
Long topOrganizationId = sysTenantsPo.getOrganizationId();
// 获取用户选择的组织ID未选则使用一级组织ID
Long selectedOrgId = loginDTO.getOrganizationId();
Long organizationId = (selectedOrgId != null) ? selectedOrgId : topOrganizationId;
//获取用户信息组装dto
UserDTO userDTO = new UserDTO();
userDTO.setUserPhone(userPhone);
userDTO.setTopOrganizationId(topOrganizationId);
userDTO.setOrganizationId(topOrganizationId);
userDTO.setOrganizationId(organizationId);
// 查询用户信息查询组织下用户是否存在
R<LoginUser> userResult = userServiceFeign.getUserByTopOrganizationUserPhone(userDTO, SecurityConstants.INNER);
if (R.FAIL == userResult.getCode()) {
@@ -153,7 +157,8 @@ public class TokenLoginApplicationService {
}else {
userDTO.setBusinessType(4);
}
userDTO.setOrganizationName(sysTenantsPo.getOrganizationName());
userDTO.setOrganizationName(StringUtils.isNotBlank(loginDTO.getOrganizationName())
? loginDTO.getOrganizationName() : sysTenantsPo.getOrganizationName());
userResult = userServiceFeign.registerAddUser(userDTO, SecurityConstants.INNER);
userInfo = userResult.getData();
} else {
@@ -174,34 +179,67 @@ public class TokenLoginApplicationService {
}
/**
* 注册
* App注册手机号 + 注册短信验证码 + 密码
*/
public void register(String username, String password) {
// 用户名或密码为空 错误
if (StringUtils.isAnyBlank(username, password)) {
throw new ServiceException("用户/密码必须填写");
public void register(LoginDTO loginDTO) {
String userPhone = loginDTO.getUserPhone(); // LoginDTO.java:27-28
String verificationCode = loginDTO.getVerificationCode(); // LoginDTO.java:30-31
String password = loginDTO.getPassword();
// 1. 基础校验
if (StringUtils.isAnyBlank(userPhone, verificationCode, password)) {
throw new ServiceException("手机号、验证码、密码必须填写");
}
if (username.length() < UserConstants.USERNAME_MIN_LENGTH
|| username.length() > UserConstants.USERNAME_MAX_LENGTH) {
throw new ServiceException("账户长度必须在2到20个字符之间");
}
if (password.length() < UserConstants.PASSWORD_MIN_LENGTH
|| password.length() > UserConstants.PASSWORD_MAX_LENGTH) {
throw new ServiceException("密码长度必须在5到20个字符之间");
if (!RegexUtil.isPhoneLegal(userPhone)) {
throw new DigitalLogisticsException(UserError.USER_PHONE_REG_ERROR);
}
// 注册用户信息
SysUser sysUser = new SysUser();
sysUser.setUserName(username);
sysUser.setNickName(username);
sysUser.setPassword(SecurityUtils.encryptPassword(password));
//TODO app注册没写
/*R<?> registerResult = userServiceFeign.registerUserInfo(sysUser, SecurityConstants.INNER);
// 2. 校验注册短信验证码发送时写入 redis SmsApplicationService.java:112, :165
String key = CacheConstants.SMS_REGISTER + userPhone; // "sms_register:" CacheConstants.java:51
Object cache = redisService.getCacheObject(key);
if (cache == null || !ObjectUtil.equal(String.valueOf(cache), verificationCode)) {
recordLogininfor(userPhone, Constants.LOGIN_FAIL, "注册验证码错误", 1);
throw new ServiceException("验证码错误或已过期");
}
// 3. 域名 一级组织 loginByVerificationCode :103-110 一致
String path = loginDTO.getPath();
AjaxResult topOrganizationIdR = organizationServiceFeign.getOrganizationByPath(path);
if (ObjectUtil.isNull(topOrganizationIdR) || ObjectUtil.isNull(topOrganizationIdR.get("data"))) {
throw new ServiceException("组织不存在,请检查登录域名");
}
SysTenantsPo sysTenantsPo = JSON.parseObject(JSON.toJSONString(topOrganizationIdR.get("data")), SysTenantsPo.class);
Long topOrganizationId = sysTenantsPo.getOrganizationId();
Long selectedOrgId = loginDTO.getOrganizationId(); // LoginDTO.java:37-38App 选择组织时传
Long organizationId = (selectedOrgId != null) ? selectedOrgId : topOrganizationId;
// 4. 手机号已注册则直接提示UserMapper.xml:199 user_phone+top_organization_id
UserDTO query = new UserDTO();
query.setUserPhone(userPhone);
query.setTopOrganizationId(topOrganizationId);
R<LoginUser> exist = userServiceFeign.getUserByTopOrganizationUserPhone(query, SecurityConstants.INNER);
if (exist != null && exist.getData() != null && exist.getData().getUserPo() != null) {
throw new ServiceException("该手机号已注册,请直接登录");
}
// 5. 创建用户复用验证码登录自动注册的同一链路
// auth feign UserServiceFeign.java:47-48 user-center UserAPI.java:332-336
// UserApplicationService.registerAddUser:1820-1927内部已处理默认角色/YMS同步
UserDTO userDTO = new UserDTO();
userDTO.setUserPhone(userPhone);
userDTO.setUserPassword(SecurityUtils.encryptPassword(password));
userDTO.setTopOrganizationId(topOrganizationId);
userDTO.setOrganizationId(organizationId);
userDTO.setOrganizationName(StringUtils.isNotBlank(loginDTO.getOrganizationName())
? loginDTO.getOrganizationName() : sysTenantsPo.getOrganizationName());
R<LoginUser> registerResult = userServiceFeign.registerAddUser(userDTO, SecurityConstants.INNER);
if (R.FAIL == registerResult.getCode()) {
throw new ServiceException(registerResult.getMsg());
}*/
// recordLogininfor(username, Constants.REGISTER, "注册成功");
}
// 6. 注册成功后清掉验证码并记日志
redisService.deleteObject(key);
recordLogininfor(userPhone, Constants.REGISTER, "注册成功", 2);
}
/**
@@ -379,6 +417,10 @@ public class TokenLoginApplicationService {
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());
if (ObjectUtil.isNull(organizationInfo) || ObjectUtil.isNull(organizationInfo.getData())) {
throw new ServiceException("登录用户组织不存在");
@@ -569,4 +611,29 @@ public class TokenLoginApplicationService {
sysPasswordService.validateByWms(userPo, verificationCode, 1);
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包名")
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.StringUtils;
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.auth.AuthUtil;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.model.LoginUser;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
@@ -70,9 +72,18 @@ public class AppTokenController extends BaseController {
@PostMapping("register")
public R<?> register(@RequestBody LoginDTO loginDTO) {
// 用户注册
tokenLoginApplicationService.register(loginDTO.getUsername(), loginDTO.getPassword());
return R.ok();
// 用户注册手机号+短信验证码+密码
tokenLoginApplicationService.register(loginDTO);
return R.ok("注册成功");
}
/**
* 根据域名获取组织信息免Token供司机APP注册时选择组织用
*/
@ApiOperation("根据域名获取组织信息")
@GetMapping("/getOrganizationByPath/{path}")
public AjaxResult getOrganizationByPath(@PathVariable("path") String path) {
return tokenLoginApplicationService.getOrganizationByPath(path);
}
@@ -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.system.api.*;
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.UserInfo;
import com.mhd.system.api.domain.mall.UserInfoLoginDTO;
@@ -70,6 +71,8 @@ public class SysLoginService {
private UserServiceFeign userServiceFeign;
@Resource
private WlhyServiceFeign wlhyServiceFeign;
@Resource
private YmsServiceFeign ymsServiceFeign;
@Resource
private RedisService redisService;
@@ -459,6 +462,17 @@ public class SysLoginService {
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){
/*单点登录获取商城鉴权
* 根据用户角色判断需要鉴权的服务
@@ -536,11 +550,11 @@ public class SysLoginService {
throw new ServiceException("请输入手机号和短信验证码");
}
//调用工具类校验校验手机号格式错误
if (!RegexUtil.isPhoneLegal(userPhone)) {
recordLogininfor(userPhone, Constants.LOGIN_FAIL, UserError.USER_PHONE_REG_ERROR.errmsg(), 1);
throw new DigitalLogisticsException(UserError.USER_PHONE_REG_ERROR);
}
// //调用工具类校验校验手机号格式错误
// if (!RegexUtil.isPhoneLegal(userPhone)) {
// recordLogininfor(userPhone, Constants.LOGIN_FAIL, UserError.USER_PHONE_REG_ERROR.errmsg(), 1);
// throw new DigitalLogisticsException(UserError.USER_PHONE_REG_ERROR);
// }
//根据域名获取一级组织ID
AjaxResult topOrganizationIdR = organizationServiceFeign.getOrganizationByPath(path, SecurityConstants.INNER);
@@ -28,6 +28,7 @@ import com.mhd.common.redis.service.RedisService;
import com.mhd.common.security.utils.password.PasswordUtil;
import com.mhd.system.api.RemoteLogService;
import com.mhd.system.api.domain.SysLogininforPo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -39,6 +40,7 @@ import javax.annotation.Resource;
* @description: 登录密码方法
* @date 2023/12/26 15:33
**/
@Slf4j
@Component
public class SysPasswordService
{
@@ -76,29 +78,31 @@ public class SysPasswordService
if (retryCount == null) {
retryCount = 0;
}
//TODO 从三方配置表中取值
SysDepartInterfaceInfoDTO sysDepartInterfaceInfoDTO = new SysDepartInterfaceInfoDTO();
sysDepartInterfaceInfoDTO.setTopOrganizationId(userPo.getTopOrganizationId());
sysDepartInterfaceInfoDTO.setInterfaceType("login");
sysDepartInterfaceInfoDTO.setInterfaceTypeKey("maxRetryCount");
List<SysDepartInterfaceInfoPo> sysDepartInterfaceInfoPos = thirdPartyServiceFeign.queryListByFeign(sysDepartInterfaceInfoDTO);
if (sysDepartInterfaceInfoPos.isEmpty()){
String errMsg = "缺少登录信息配置,请联系管理员";
recordLogininfor(userPo, Constants.LOGIN_FAIL, errMsg, 1);
throw new ServiceException(errMsg);
//TODO 从三方配置表中取值失败时用默认值保证登录错误提示可用
int maxRetryCount = 5; // 默认密码错5次锁定
long lockTime = 30L; // 默认锁定30分钟
try {
SysDepartInterfaceInfoDTO dto = new SysDepartInterfaceInfoDTO();
dto.setTopOrganizationId(userPo.getTopOrganizationId());
dto.setInterfaceType("login");
dto.setInterfaceTypeKey("maxRetryCount");
List<SysDepartInterfaceInfoPo> pos = thirdPartyServiceFeign.queryListByFeign(dto);
if (pos != null && !pos.isEmpty()) {
maxRetryCount = Integer.parseInt(pos.get(0).getInterfaceTypeValue());
} else {
log.warn("组织[{}]缺少登录配置 login/maxRetryCount,使用默认值{}", userPo.getTopOrganizationId(), maxRetryCount);
}
dto.setInterfaceTypeKey("lockTime");
pos = thirdPartyServiceFeign.queryListByFeign(dto);
if (pos != null && !pos.isEmpty()) {
lockTime = Long.parseLong(pos.get(0).getInterfaceTypeValue());
} else {
log.warn("组织[{}]缺少登录配置 login/lockTime,使用默认值{}", userPo.getTopOrganizationId(), lockTime);
}
} catch (Exception e) {
log.warn("读取登录配置失败,使用默认重试策略", e);
}
SysDepartInterfaceInfoPo sysDepartInterfaceInfoPo = sysDepartInterfaceInfoPos.get(0);
Integer maxRetryCount = Integer.valueOf(sysDepartInterfaceInfoPo.getInterfaceTypeValue());
sysDepartInterfaceInfoDTO.setInterfaceTypeKey("lockTime");
sysDepartInterfaceInfoPos = thirdPartyServiceFeign.queryListByFeign(sysDepartInterfaceInfoDTO);
if (sysDepartInterfaceInfoPos.isEmpty()){
String errMsg = "缺少登录信息配置,请联系管理员";
recordLogininfor(userPo, Constants.LOGIN_FAIL, errMsg, 1);
throw new ServiceException(errMsg);
}
sysDepartInterfaceInfoPo = sysDepartInterfaceInfoPos.get(0);
Long lockTime = Long.valueOf(sysDepartInterfaceInfoPo.getInterfaceTypeValue());
if (retryCount >= maxRetryCount){
if (retryCount >= maxRetryCount) {
String errMsg = String.format("密码输入错误%s次,帐户锁定%s分钟", maxRetryCount, lockTime);
recordLogininfor(userPo, Constants.LOGIN_FAIL, errMsg, 1);
throw new ServiceException(errMsg);
+21 -1
View File
@@ -14,7 +14,8 @@ spring:
discovery:
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
password: manhuoda@2023
#线上正式环境
@@ -23,6 +24,9 @@ spring:
# password: manhuoda@2023
config:
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
username: nacos
@@ -33,3 +37,19 @@ spring:
# 共享配置
shared-configs:
- 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,46 @@
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 com.mhd.bi.domain.biPlatformRealData.repository.po.RealBusinessTypeStatPO;
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformFloorStatPO;
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformInfoPO;
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();
/** 今日预约-业务类型统计(按 businessName 分组统计今日预约数量) */
List<RealBusinessTypeStatPO> queryTodayBusinessTypeStats();
/** 月台监控-按楼层统计月台车辆(楼层、月台数量、今日预约车辆、当前作业车辆) */
List<RealPlatformFloorStatPO> queryPlatformFloorStats();
/** 月台管理列表(YMS qms_window_info,含机构/鹤位/状态/楼层/UUID 等完整信息) */
List<RealPlatformInfoPO> queryPlatformInfoList();
}
@@ -0,0 +1,20 @@
package com.mhd.bi.domain.biPlatformRealData.repository.po;
import lombok.Data;
import java.io.Serializable;
/**
* 今日预约-业务类型统计真实数据来自 TEST_NGWL_YMS.QMS_MAIN_BUSINESS
* 按业务类型分组统计今日预约数量
*/
@Data
public class RealBusinessTypeStatPO implements Serializable {
private static final long serialVersionUID = 1L;
/** 业务类型名称(qms_main_business.businessName */
private String businessName;
/** 今日预约数量 */
private Long count;
}
@@ -0,0 +1,26 @@
package com.mhd.bi.domain.biPlatformRealData.repository.po;
import lombok.Data;
import java.io.Serializable;
/**
* 月台监控-月台车辆统计按楼层分组
* 数据来源TEST_NGWL_YMS.QMS_WINDOW_INFO楼层+月台 QMS_MAIN_BUSINESS当日预约/作业
*/
@Data
public class RealPlatformFloorStatPO implements Serializable {
private static final long serialVersionUID = 1L;
/** 楼层(从叫号月台 WINDOW_NAME 解析,如 S1-01 -> F1 */
private String floorNo;
/** 该楼层的月台数量 */
private Long platformCount;
/** 今日预约车辆数(按 WINDOW_NAME 关联楼层) */
private Long todayReservedVehicles;
/** 当前作业车辆数(FLOW_STATUS IN 5,6,7,8,9,10 */
private Long operatingVehicles;
}
@@ -0,0 +1,59 @@
package com.mhd.bi.domain.biPlatformRealData.repository.po;
import lombok.Data;
import java.io.Serializable;
/**
* 月台管理列表真实数据来自 TEST_NGWL_YMS.QMS_WINDOW_INFO
* 对应 YMS qms_window_info 月台/鹤位窗口表
*/
@Data
public class RealPlatformInfoPO implements Serializable {
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 机构代码(org_no */
private String orgNo;
/** 机构名称(dept_name */
private String deptName;
/** 鹤位号/月台号(window_number */
private String windowNumber;
/** 鹤位名称/月台名称(window_name */
private String windowName;
/** 优先级别(priority_set */
private String prioritySet;
/** 鹤位状态/月台状态(running_status */
private String runningStatus;
/** uuid */
private String uuid;
/** 鹤位屏名字集合/绑定月台屏(berr_names */
private String berrNames;
/** 最新业务状态(new_flow_status */
private String newFlowStatus;
/** 月台图片(guide_images */
private String guideImages;
/** 月台楼层(platform_floor */
private String platformFloor;
/** 作业状态 0-空闲 1-占用(job_status */
private Integer jobStatus;
/** 创建人(create_by */
private String createBy;
/** 创建时间(create_time */
private String createTime;
}
@@ -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,350 @@
package com.mhd.bi.domain.biPlatformRealData.service;
import com.fasterxml.jackson.databind.ObjectMapper;
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.biPlatformRealData.repository.po.RealBusinessTypeStatPO;
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformFloorStatPO;
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformInfoPO;
import com.mhd.bi.domain.biPlatformSurveillance.repository.mapper.BiPlatformSurveillanceReportMapper;
import com.mhd.bi.domain.biSnapshotSync.repository.mapper.BiSnapshotWriteMapper;
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.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Random;
/**
* 月台监测-真实数据业务层封装 YMS 跨库查询
* 列名大小写字段类型需以实际库为准 YMS 库无数据/无权限相关方法应返回空/0不影响写死字段写入快照
*/
@Slf4j
@Service
public class BiPlatformRealDataService {
@Resource
private BiPlatformRealDataMapper biPlatformRealDataMapper;
@Resource
private BiSnapshotWriteMapper biSnapshotWriteMapper;
@Resource
private BiPlatformSurveillanceReportMapper biPlatformSurveillanceReportMapper;
@Resource
private ObjectMapper objectMapper;
private static final String REMARK_REALTIME = "realtime platform-surveillance";
/**
* 实时组装月台监测数据仅当真实业务数据YMS 库查出的字段发生变化时
* 才覆盖更新 BI_PLATFORM_SURVEILLANCE_SNAPSHOT 快照表最新一条后返回
* 写死字段变化不触发更新表中尚无记录时插入一条兜底
*/
public PlatformSurveillanceVO buildRealTimePlatformSurveillanceAndPersist() {
PlatformSurveillanceVO vo = buildRealTimePlatformSurveillance();
try {
String fullJson = objectMapper.writeValueAsString(vo);
String fingerprint = realDataFingerprint(vo);
String latestJson = biPlatformSurveillanceReportMapper.selectLatestPayloadJson();
if (StringUtils.isNotBlank(latestJson)) {
PlatformSurveillanceVO latestVo = objectMapper.readValue(latestJson.trim(), PlatformSurveillanceVO.class);
if (Objects.equals(fingerprint, realDataFingerprint(latestVo))) {
log.info("BI 月台监测真实业务数据未变化,跳过落库");
return vo;
}
}
int rows = biSnapshotWriteMapper.updateLatestPlatformSurveillanceSnapshot(fullJson, REMARK_REALTIME);
if (rows < 1) {
// 表中无最新记录可更新插入一条兜底
biSnapshotWriteMapper.insertPlatformSurveillanceSnapshot(fullJson, REMARK_REALTIME);
}
log.info("BI 月台监测实时数据已落库(覆盖最新, 数据变化), affectedRows={}", rows);
} catch (Exception e) {
log.error("BI 月台监测实时数据落库失败", e);
}
return vo;
}
/**
* 提取月台监测的真实业务数据指纹仅含 YMS 库查出的字段用于判断业务数据是否变化
* 写死/随机字段不纳入指纹故其变化不会触发更新
*/
private String realDataFingerprint(PlatformSurveillanceVO vo) throws Exception {
Map<String, Object> fp = new LinkedHashMap<>();
if (vo.getPlatformOverview() != null) {
fp.put("totalPlatforms", vo.getPlatformOverview().getTotalPlatforms());
fp.put("operatingPlatforms", vo.getPlatformOverview().getOperatingPlatforms());
fp.put("todayTasks", vo.getPlatformOverview().getTodayTasks());
}
if (vo.getVehicleStatus() != null) {
fp.put("todayReservedVehicles", vo.getVehicleStatus().getTodayReservedVehicles());
fp.put("notCheckedIn", vo.getVehicleStatus().getNotCheckedIn());
fp.put("operatingVehicles", vo.getVehicleStatus().getOperatingVehicles());
fp.put("completedVehicles", vo.getVehicleStatus().getCompletedVehicles());
}
if (vo.getMonthlyTaskStatistics() != null) {
fp.put("taskTotal", vo.getMonthlyTaskStatistics().getTaskTotal());
}
if (vo.getVehicles() != null) {
List<Map<String, Object>> vehicles = new ArrayList<>();
for (PlatformVehicleItemVO v : vo.getVehicles()) {
Map<String, Object> m = new LinkedHashMap<>();
m.put("appointmentTime", v.getAppointmentTime());
m.put("workFloor", v.getWorkFloor());
m.put("plateNumber", v.getPlateNumber());
m.put("status", v.getStatus());
m.put("platformId", v.getPlatformId());
m.put("platformDuration", v.getPlatformDuration());
vehicles.add(m);
}
fp.put("vehicles", vehicles);
}
if (vo.getTaskLoadStatistics() != null) {
List<Map<String, Object>> loads = new ArrayList<>();
for (TaskLoadItemVO item : vo.getTaskLoadStatistics()) {
Map<String, Object> m = new LinkedHashMap<>();
m.put("time", item.getTime());
m.put("taskCount", item.getTaskCount());
loads.add(m);
}
fp.put("taskLoadStatistics", loads);
}
return objectMapper.writeValueAsString(fp);
}
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();
}
}
/**
* 今日预约-业务类型统计按业务类型分组统计今日预约数量
* 今日预约航空打板 3 返回 {businessName:"航空打板", count:3}
*/
public List<RealBusinessTypeStatPO> queryTodayBusinessTypeStats() {
try {
return biPlatformRealDataMapper.queryTodayBusinessTypeStats();
} catch (Exception e) {
log.error("【YMS】统计今日业务类型失败: {}", e.getMessage(), e);
return java.util.Collections.emptyList();
}
}
/**
* 月台监控-按楼层统计月台车辆返回 {floorNo, platformCount, todayReservedVehicles, operatingVehicles}
* 实时查 YMS 不落库
*/
public List<RealPlatformFloorStatPO> queryPlatformFloorStats() {
try {
return biPlatformRealDataMapper.queryPlatformFloorStats();
} catch (Exception e) {
log.error("【YMS】月台监控按楼层统计失败: {}", e.getMessage(), e);
return java.util.Collections.emptyList();
}
}
/**
* 月台管理列表实时查 YMS qms_window_info返回月台/鹤位窗口完整信息不落库
*/
public List<RealPlatformInfoPO> queryPlatformInfoList() {
try {
return biPlatformRealDataMapper.queryPlatformInfoList();
} catch (Exception e) {
log.error("【YMS】查询月台管理列表失败: {}", e.getMessage(), e);
return java.util.Collections.emptyList();
}
}
/**
* 实时组装月台监测数据原则有真实数据源用真实无真实数据源用写死模拟
* 有真实数据源的字段vehicles / platformOverview / vehicleStatus / taskLoad / taskTotal
* 无条件用 YMS 真实查询覆盖真实为空即为空不用模板兜底
* 无真实数据源的字段效率统计趋势告警任务类型等保留模板写死值
* 每次调用实时查库不经过快照表
*/
public PlatformSurveillanceVO buildRealTimePlatformSurveillance() {
// 固定种子生成写死模板仅用于没有真实数据源的字段
Random r = new Random(20260825L);
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);
}
template.setVehicles(vehicleVos);
// 月台实时概览真实数据源无条件覆盖
if (template.getPlatformOverview() != null) {
RealPlatformOverviewPO ov = queryPlatformOverview();
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().setTotalPlatforms(total);
template.getPlatformOverview().setOperatingPlatforms(occ);
template.getPlatformOverview().setCurrentOccupancyRate(rate);
template.getPlatformOverview().setTodayTasks((int) countTodayTasks());
}
// 作业车辆状态统计真实数据源无条件覆盖
if (template.getVehicleStatus() != null) {
RealVehicleStatusPO vs = queryVehicleStatusToday();
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 有真实数据源无条件覆盖YoY 等无真实数据源保留模板写死值
if (template.getMonthlyTaskStatistics() != null) {
template.getMonthlyTaskStatistics().setTaskTotal((int) countMonthTasks());
}
// 任务负荷有真实数据源真实为空则清空不用模板模拟有数据则按真实小时覆盖
List<RealTaskLoadPO> loads = queryTaskLoadToday();
if (loads.isEmpty()) {
template.setTaskLoadStatistics(new ArrayList<>());
} else if (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 && hourMap.containsKey(hour)) {
item.setTaskCount(hourMap.get(hour).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,25 @@
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 updateLatestPlatformSurveillanceSnapshot(@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,283 @@
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(20260825L);
// 写死数据复用原 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();
}
}

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