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 |
|
rcx
|
8fedb6d6ed
|
feat(oms):库存查询/导出按商品到期日分组排序
|
2026-08-20 17:54:23 +08:00 |
|
rcx
|
33d085f9b9
|
fix(oms):入库链路计划数量翻倍修复
明细batchUpdate软删条件缺陷(入/出库共6个明细实现类):软删旧明细要求本次提交
至少一行走更新分支,"删光旧物料全部换新物料"时提交列表全为新增行,旧行漏软删
(del_flag仍=1),下发后执行单计划数量=旧+新叠加。改为库内有明细即对账软删
|
2026-08-20 14:45:13 +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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
rcx
|
bca8b5fbed
|
fix(oms):入库执行单业务单号不随下发复制,执行并下发入口补充有效运输业务单回填
|
2026-08-18 11:36:21 +08:00 |
|
rcx
|
e489015e3e
|
fix(oms):下发过滤已删除明细,执行单不再残留已取消运输业务单号
|
2026-08-18 10:19:40 +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 |
|
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 |
|