From d9dc927525988ba19a5af7c384674e452f0dc696 Mon Sep 17 00:00:00 2001 From: YANG JIANKUAN Date: Tue, 13 Oct 2026 02:29:33 -0700 Subject: [PATCH] =?UTF-8?q?fix(gjj):=20=E5=9B=BD=E9=99=85=E4=BA=8B?= =?UTF-8?q?=E6=95=85=E7=AD=BE=E8=AF=81=E3=80=8C=E5=8F=91=E7=8E=B0=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E3=80=8D=E6=94=B9=E4=B8=BA=E4=B8=8B=E6=8B=89=E9=80=89?= =?UTF-8?q?=E6=8B=A9=EF=BC=8C=E6=95=B0=E6=8D=AE=E6=BA=90=20POST=20typeCode?= =?UTF-8?q?/searchDateType?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Api 新增 getSearchDateTypeList(POST 无参,返回 code 1~8 + 中英文 name), 与同路径的 GET 通用字典 getDictList 区分 - 编辑页 DATE → SPINNER,与 Web 端一致提交字典 name - 历史数据(日期值、带尾随换行的 name)不在字典内时补进下拉列表, 避免编辑/详情回显为空、保存时被清掉 - phone-adapt api-doc 记录该接口 GET/POST 语义 Co-Authored-By: Claude Opus 5.5 --- .../skills/phone-adapt/references/api-doc.md | 3 +++ .../lukouguoji/module_base/http/net/Api.kt | 6 +++++ .../IntImpAccidentVisaEditViewModel.kt | 23 +++++++++++++++++++ .../activity_int_imp_accident_visa_edit.xml | 3 ++- 4 files changed, 34 insertions(+), 1 deletion(-) diff --git a/.claude/skills/phone-adapt/references/api-doc.md b/.claude/skills/phone-adapt/references/api-doc.md index 187b94c..b7edc6d 100644 --- a/.claude/skills/phone-adapt/references/api-doc.md +++ b/.claude/skills/phone-adapt/references/api-doc.md @@ -65,6 +65,9 @@ curl -s -X POST "$URL" -H "$AUTH" -H "Content-Type: application/json" \ - `IntExpMove`:出参无航班字段(缺口 #1)、无操作人姓名(缺口 #2);`opId`/`opdate`/`businessType` 文档有定义但实测恒 null(缺口 #3);`pageQueryTotal` 正常(与 pageQuery 口径一致,`moveState` 过滤生效) - `typeCode/getSpecialCodeByParam`:`flag=1` 国际,`ieFlag` 必须传空串(传 `"E"` 返回空数组) +- `typeCode/searchDateType`:**同一路径两个接口**——`GET ?code=xxx` 是通用字典(`Api.getDictList`), + `POST` 无参是「发现时间类型」(`Api.getSearchDateTypeList`,出参 `code` 1~8 + `name` 中英文时机); + 国际事故签证 `seachDate` 与 Web 端一致存 **name**(历史数据另有 `2026-09-24` 日期值与带 `\r\n` 的 name) - `eqm/uld`(ULD信息,6 个端点):查询入参仅 `uld`/`status`/`uldSuffix`(uldSuffix 名义是 "uld后两位",实际就是**按所属航司筛选**,配 `DictUtils.getIntCarrierList`);`status` 仅两态 0 正常/1 故障(三态需求=缺口 #7);无「来源」字段(#8)、无 `checkInDate`/`ifNo` 筛选入参(#9)、 diff --git a/module_base/src/main/java/com/lukouguoji/module_base/http/net/Api.kt b/module_base/src/main/java/com/lukouguoji/module_base/http/net/Api.kt index 7b3f5a1..ecd66ab 100644 --- a/module_base/src/main/java/com/lukouguoji/module_base/http/net/Api.kt +++ b/module_base/src/main/java/com/lukouguoji/module_base/http/net/Api.kt @@ -2168,6 +2168,12 @@ interface Api { @POST("typeCode/unusualType") suspend fun getUnusualTypeList(): DictListBean + /** + * 字典-发现时间类型(接收时 / 分拣理货时 / 提货时 …) + */ + @POST("typeCode/searchDateType") + suspend fun getSearchDateTypeList(): DictListBean + /////////////////////////////////////////////////////////////////////////// // ULD管理 /////////////////////////////////////////////////////////////////////////// diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpAccidentVisaEditViewModel.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpAccidentVisaEditViewModel.kt index cb5be01..5f049d5 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpAccidentVisaEditViewModel.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpAccidentVisaEditViewModel.kt @@ -60,6 +60,8 @@ class IntImpAccidentVisaEditViewModel : BaseViewModel(), IOnItemClickListener { val damageTypeList = MutableLiveData>(emptyList()) val contentTypeList = MutableLiveData>(emptyList()) val unusualTypeList = MutableLiveData>(emptyList()) + val searchDateTypeList = MutableLiveData>(emptyList()) + private var searchDateTypeDict = emptyList() val photoList = MutableLiveData( listOf(KeyValue("是", "是"), KeyValue("否", "否")) ) @@ -137,12 +139,33 @@ class IntImpAccidentVisaEditViewModel : BaseViewModel(), IOnItemClickListener { } ?: emptyList() } } + // 发现时间:与 Web 端一致提交字典 name(如"接收时 Cargo Acceptation") + launchCollect({ NetApply.api.getSearchDateTypeList() }) { + onSuccess = { result -> + searchDateTypeDict = result.data?.mapNotNull { bean -> + bean.name?.let { name -> KeyValue(name, name) } + } ?: emptyList() + refreshSearchDateTypeList() + } + } + } + + /** + * 历史数据的发现时间不一定在字典内(早期按日期录入如"2026-09-24",Web 端存值可能带尾随换行), + * 编辑/详情时把原值补进下拉列表,避免回显为空、保存时被下拉清掉 + */ + private fun refreshSearchDateTypeList() { + val current = dataBean.value?.seachDate.orEmpty() + searchDateTypeList.value = + if (current.isEmpty() || searchDateTypeDict.any { it.value == current }) searchDateTypeDict + else searchDateTypeDict + KeyValue(current.trim(), current) } private fun loadDetail() { launchLoadingCollect({ NetApply.api.getGjAccidentVisaDetail(id) }) { onSuccess = { dataBean.value = it.data ?: GjAccidentVisaEditBean() + refreshSearchDateTypeList() // 渲染图片:path 取原图 URL 确保预览清晰,url 取缩略图用于提交 val bean = dataBean.value!! diff --git a/module_gjj/src/main/res/layout/activity_int_imp_accident_visa_edit.xml b/module_gjj/src/main/res/layout/activity_int_imp_accident_visa_edit.xml index 68806f0..9d52ec8 100644 --- a/module_gjj/src/main/res/layout/activity_int_imp_accident_visa_edit.xml +++ b/module_gjj/src/main/res/layout/activity_int_imp_accident_visa_edit.xml @@ -285,9 +285,10 @@ android:layout_weight="1" enable="@{!viewModel.isDetailMode}" hint='@{"请选择发现时间"}' + list="@{viewModel.searchDateTypeList}" title='@{"发现时间"}' titleLength="@{6}" - type="@{DataLayoutType.DATE}" + type="@{DataLayoutType.SPINNER}" value='@={viewModel.dataBean.seachDate}' />