Browse Source

2025-04-09 修改

修改:
1. 出入境费用明细 - 国际旅费合计 获取机票费用变更为list
2. 部分小bug修改
zhaiy 3 months ago
parent
commit
1f5bd7a163

+ 1 - 1
.idea/deploymentTargetSelector.xml

@@ -4,7 +4,7 @@
     <selectionStates>
       <SelectionState runConfigName="app">
         <option name="selectionMode" value="DROPDOWN" />
-        <DropdownSelection timestamp="2025-03-27T01:49:41.538665900Z">
+        <DropdownSelection timestamp="2025-04-02T07:00:08.622623400Z">
           <Target type="DEFAULT_BOOT">
             <handle>
               <DeviceId pluginId="PhysicalDevice" identifier="serial=3bb3c424" />

+ 0 - 0
.kotlin/sessions/kotlin-compiler-10844570384923298226.salive


+ 0 - 0
.kotlin/sessions/kotlin-compiler-7325589157164886659.salive


+ 4 - 4
app/src/main/java/com/pan_american/android/OASystem.kt

@@ -209,7 +209,7 @@ class OASystem : Application() {
         const val EDIT = 3
 
         //下载权限
-        const val DOWNLOAD = 4
+//        const val DOWNLOAD = 4
 
         // 添加权限
         const val ADD = 11
@@ -272,7 +272,7 @@ class OASystem : Application() {
         const val GROUP_CLIENT_LIST = 104
 
         //团组经理主管, 倒推表
-        const val REVERSE_TABLE = 106
+//        const val REVERSE_TABLE = 106
 
         // 车辆公司信息
         const val CAR_RESOURCE = 111
@@ -284,7 +284,7 @@ class OASystem : Application() {
         const val THREE_CODE_RESOURCE = 120
 
         //OP行程单
-        const val OP_TRAVEL_ITINERARY = 122
+//        const val OP_TRAVEL_ITINERARY = 122
 
         //机票费用录入
         const val AIRPLANE_PAYMENT_INSERT = 161
@@ -336,7 +336,7 @@ class OASystem : Application() {
         const val C_TABLE_PAYMENT_REFUND = 98
 
         //文档下载
-        const val C_TABLE_DOCUMENT_DOWNLOAD = 1081
+//        const val C_TABLE_DOCUMENT_DOWNLOAD = 1081
 
         //支付方式-保险 ID
         const val PAYMENT_WAY_INSURANCE_ID = 1057

+ 2 - 3
app/src/main/java/com/pan_american/android/data/model/group_management/entry_and_exit_fee_detail/network/InternationalTravelTipsResponse.kt

@@ -2,7 +2,6 @@ package com.pan_american.android.data.model.group_management.entry_and_exit_fee_
 
 import com.pan_american.android.base.BaseResponse
 
-data class InternationalTravelTipsResponse(val data: Data): BaseResponse() {
+data class InternationalTravelTipsResponse(val data: ArrayList<InternationalTravelFeeItem>): BaseResponse()
 
-    inner class Data (val jjcCurrentRate: Double, val gwcCurrentRate: Double, val remark: String)
-}
+class InternationalTravelFeeItem(val jjcCurrentRate: Double, val gwcCurrentRate: Double, val remark: String)

+ 3 - 3
app/src/main/java/com/pan_american/android/ui/group_management/entry_and_exit_fee_detail/EntryAndExitFeeGroupListActivity.kt

@@ -88,7 +88,7 @@ class EntryAndExitFeeGroupListActivity : BaseActivity<ActivityEntryAndExitGroupL
 
                 if (listResponse != null) {
                     if (listResponse.code == 200) {
-                        if (listResponse.data.size == 0) {
+                        if (listResponse.data.isEmpty()) {
                             showMessage(resources.getString(R.string.no_data))
                         } else {
 
@@ -141,7 +141,7 @@ class EntryAndExitFeeGroupListActivity : BaseActivity<ActivityEntryAndExitGroupL
     }
 
     private fun initList() {
-        if (groupNameList.size == 0) {
+        if (groupNameList.isEmpty()) {
             return
         }
 
@@ -169,7 +169,7 @@ class EntryAndExitFeeGroupListActivity : BaseActivity<ActivityEntryAndExitGroupL
 
         adapter.onRecyclerViewItemClick = object : ListAdapter.OnRecyclerViewItemClick<Selector> {
             override fun onItemClick(position: Int) {
-                if (groupNameList[position].isView) {
+                if (groupNameList[position].isView || groupNameList[position].isNull) {
                     val intent = Intent(OASystem.context, EntryAndExitDetailActivity::class.java).apply {
                         putExtra("groupId", groupNameList[position].id)
                     }

+ 28 - 12
app/src/main/java/com/pan_american/android/ui/group_management/entry_and_exit_fee_detail/InternationalTravelFeeFragment.kt

@@ -4,11 +4,14 @@ import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.widget.TextView
 import com.pan_american.android.OASystem
 import com.pan_american.android.R
 import com.pan_american.android.base.BaseFragment
+import com.pan_american.android.base.ListAdapter
 import com.pan_american.android.data.model.group_management.entry_and_exit_fee_detail.network.EntryAndExitPaymentTypeRequest
 import com.pan_american.android.data.model.group_management.entry_and_exit_fee_detail.network.EntryAndExitTipsRequest
+import com.pan_american.android.data.model.group_management.entry_and_exit_fee_detail.network.InternationalTravelFeeItem
 import com.pan_american.android.data.model.group_management.entry_and_exit_fee_detail.network.InternationalTravelPaymentDetailResponse
 import com.pan_american.android.data.model.group_management.entry_and_exit_fee_detail.network.InternationalTravelTipsResponse
 import com.pan_american.android.data.model.group_management.entry_and_exit_fee_detail.network.UpdateInternationalTravelRequest
@@ -26,9 +29,7 @@ class InternationalTravelFeeFragment : BaseFragment<FragmentInternationalTravelF
 
     private var paymentId = 0
 
-    private var economyClassTip = 0.0
-
-    private var businessClassTip = 0.0
+    private val internationalPaymentList = ArrayList<InternationalTravelFeeItem>()
 
     override fun getViewBinding(
         inflater: LayoutInflater,
@@ -131,12 +132,8 @@ class InternationalTravelFeeFragment : BaseFragment<FragmentInternationalTravelF
                 if (tipsResponse != null) {
                     if (tipsResponse.code == 200) {
 
-                        tipsResponse.data.apply {
-                            binding.hint.text = remark
-
-                            economyClassTip = jjcCurrentRate
-                            businessClassTip = gwcCurrentRate
-
+                        tipsResponse.data.forEach {
+                            internationalPaymentList.add(it)
                         }
 
                     } else {
@@ -153,10 +150,29 @@ class InternationalTravelFeeFragment : BaseFragment<FragmentInternationalTravelF
 
     override fun initEvents() {
 
-        binding.putIn.setOnClickListener {
-            binding.economyClassPrice.setText("$economyClassTip")
+        binding.selectInternationalPayment.setOnClickListener {
+            showSelector {
+                val adapter = ListAdapter.Builder<InternationalTravelFeeItem>().apply {
+                    setData(internationalPaymentList)
+                    setLayoutId(R.layout.item_selector)
+                    addBindView { itemView, data ->
+                        itemView.findViewById<TextView>(R.id.selector_item_name).text = data.remark
+                    }
+                }.create()
+
+                selector.adapter = adapter
 
-            binding.businessClassPrice.setText("$businessClassTip")
+                adapter.onRecyclerViewItemClick = object : ListAdapter.OnRecyclerViewItemClick<InternationalTravelFeeItem>{
+                    override fun onItemClick(position: Int) {
+                        internationalPaymentList[position].apply {
+                            binding.economyClassPrice.setText("$jjcCurrentRate")
+                            binding.businessClassPrice.setText("$gwcCurrentRate")
+                        }
+
+                        popupWindow.dismiss()
+                    }
+                }
+            }
         }
 
         binding.commit.setOnClickListener {

+ 1 - 0
app/src/main/java/com/pan_american/android/ui/group_management/group_info/GroupInfoBaseFragment.kt

@@ -312,6 +312,7 @@ class GroupInfoBaseFragment : BaseFragment<FragmentGroupInfoBaseBinding>() {
         binding.city.setOnClickListener {
             getGroupCountryListRequest.apply {
                 pageIndex = 1
+                pageSize = 10
                 search = ""
             }
 

+ 11 - 1
app/src/main/java/com/pan_american/android/ui/personnel_module/materials_operate/MaterialHistoryListFragment.kt

@@ -184,20 +184,30 @@ class MaterialHistoryListFragment : BaseFragment<FragmentMaterialHistoryListBind
                     val materialType = detailPopView.findViewById<TextView>(R.id.material_type)
                     val associationGroup = detailPopView.findViewById<TextView>(R.id.association_group)
                     val materialCount = detailPopView.findViewById<TextView>(R.id.material_application_count)
+                    val applier = detailPopView.findViewById<TextView>(R.id.applier)
                     val applicationReason = detailPopView.findViewById<ScrollEditText>(R.id.application_reason)
                     val notes = detailPopView.findViewById<ScrollEditText>(R.id.remark)
+                    val verifyName = detailPopView.findViewById<TextView>(R.id.verify_name)
+                    val verifyDate = detailPopView.findViewById<TextView>(R.id.verify_date)
+                    val verifyStatus = detailPopView.findViewById<TextView>(R.id.verify_status)
                     val commit = detailPopView.findViewById<CommitButton>(R.id.commit)
 
                     materialHistoryList[position].apply {
                         materialName.text = goodsName
                         materialType.text = goodsType
-                        associationGroup.text = groupName
+                        associationGroup.text = groupName.ifBlank { resources.getString(R.string.no_info) }
                         materialCount.text = "$quantity"
+                        applier.text = createUserName
                         applicationReason.setText(reason)
                         notes.setText(remark)
 
                         applicationReason.isEnabled(false)
                         notes.isEnabled(false)
+
+                        verifyName.text = auditUserName.ifBlank { resources.getString(R.string.no_info) }
+                        verifyDate.text = auditTime.substring(0, 10).ifBlank { resources.getString(R.string.no_info) }
+                        verifyStatus.text = auditStatusText
+
                     }
 
                     commit.setText(resources.getString(R.string.confirm))

+ 4 - 4
app/src/main/java/com/pan_american/android/ui/personnel_module/materials_operate/MaterialHistorySearchFragment.kt

@@ -35,7 +35,7 @@ import retrofit2.Response
 
 class MaterialHistorySearchFragment : BaseFragment<FragmentMaterialHistorySearchBinding>() {
 
-    private var materialSearchBaseData = OASystem.materialBaseData
+    private var materialSearchBaseData = OASystem.materialBaseData[0].subTypeItems
 
     private var materialUser = OASystem.materialPerson
 
@@ -62,7 +62,7 @@ class MaterialHistorySearchFragment : BaseFragment<FragmentMaterialHistorySearch
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         super.onViewCreated(view, savedInstanceState)
 
-        materialSearchBaseData.add(0, MaterialTypeData().apply {
+        materialSearchBaseData.add(0, MaterialTypeData.SubTypeItem().apply {
             id = 0
             name = resources.getString(R.string.all)
         })
@@ -88,7 +88,7 @@ class MaterialHistorySearchFragment : BaseFragment<FragmentMaterialHistorySearch
     override fun initEvents() {
         binding.materialType.setOnClickListener {
             showSelector {
-                val adapter = ListAdapter.Builder<MaterialTypeData>().apply {
+                val adapter = ListAdapter.Builder<MaterialTypeData.SubTypeItem>().apply {
                     setData(materialSearchBaseData)
                     setLayoutId(R.layout.item_selector)
                     addBindView { itemView, data ->
@@ -118,7 +118,7 @@ class MaterialHistorySearchFragment : BaseFragment<FragmentMaterialHistorySearch
 
                 selector.adapter = adapter
 
-                adapter.onRecyclerViewItemClick = object : ListAdapter.OnRecyclerViewItemClick<MaterialTypeData> {
+                adapter.onRecyclerViewItemClick = object : ListAdapter.OnRecyclerViewItemClick<MaterialTypeData.SubTypeItem> {
                     override fun onItemClick(position: Int) {
 
                         materialSearchBaseData[position].apply {

+ 3 - 12
app/src/main/res/layout/fragment_international_travel_fee.xml

@@ -253,27 +253,18 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_margin="@dimen/common_padding"
+                android:gravity="end"
                 android:orientation="horizontal">
 
                 <TextView
-                    android:id="@+id/hint"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_gravity="center"
-                    android:layout_marginEnd="@dimen/common_padding"
-                    android:layout_weight="1"
-                    android:textColor="@color/color_caution"
-                    android:textSize="@dimen/text_size_small" />
-
-                <TextView
-                    android:id="@+id/put_in"
+                    android:id="@+id/select_international_payment"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_gravity="center"
                     android:layout_marginEnd="@dimen/common_padding"
                     android:background="@drawable/shape_corner_solid_blue"
                     android:padding="@dimen/common_padding"
-                    android:text="@string/put_in"
+                    android:text="@string/select_international_payment"
                     android:textColor="@color/white"
                     android:textSize="@dimen/text_size_small" />
 

+ 3 - 1
app/src/main/res/values/strings.xml

@@ -1346,7 +1346,7 @@
     <string name="export_collection_bill_beijing">收款账单 (北京)</string>
     <string name="remittance_bill">汇款账单</string>
 
-    <!-- 三公费用 -->
+    <!-- 出入境费用明细 -->
     <string name="entry_and_exit_fee_detail">出入境费用明细</string>
     <string name="domestic_expenses">一. 境内费用 (其他费用)</string>
     <string name="total_international_travel_expenses">二. 国际旅费合计</string>
@@ -1376,6 +1376,8 @@
     <string name="get_newest_visa_payment">获取最新签证费用</string>
     <string name="price_per_person_format">元 / 人</string>
 
+    <string name="select_international_payment">选择机票费用</string>
+
     <string name="show_currency">查看汇率</string>
     <string name="city_traffic_payment">城市区间交通费</string>
     <string name="payment_principle">费用标准</string>