diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f08a52f..458709b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -160,6 +160,13 @@ android:configChanges="keyboardHidden|orientation|locale" android:screenOrientation="portrait" android:windowSoftInputMode="adjustPan|stateHidden" /> + + + + () { +class MessageAdapter: BaseQuickAdapter() { - override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: WayBillBean?) { + override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: WaybillBean?) { } diff --git a/app/src/main/java/com/dhsd/glowner/adapter/PackingTypeAdapter.kt b/app/src/main/java/com/dhsd/glowner/adapter/PackingTypeAdapter.kt index 721063f..e9836e8 100644 --- a/app/src/main/java/com/dhsd/glowner/adapter/PackingTypeAdapter.kt +++ b/app/src/main/java/com/dhsd/glowner/adapter/PackingTypeAdapter.kt @@ -7,10 +7,8 @@ import android.widget.TextView import com.chad.library.adapter4.BaseQuickAdapter import com.chad.library.adapter4.QuickAdapterHelper import com.chad.library.adapter4.viewholder.QuickViewHolder -import com.dahe.glex.bean.WayBillBean import com.dhsd.glowner.R import com.dhsd.glowner.bean.DictBean -import com.dhsd.glowner.bean.PackTypeBean /** * @ClassName PackingTypeAdapter diff --git a/app/src/main/java/com/dhsd/glowner/adapter/PackingTypeAdapter2.kt b/app/src/main/java/com/dhsd/glowner/adapter/PackingTypeAdapter2.kt index 311daac..2f1f506 100644 --- a/app/src/main/java/com/dhsd/glowner/adapter/PackingTypeAdapter2.kt +++ b/app/src/main/java/com/dhsd/glowner/adapter/PackingTypeAdapter2.kt @@ -7,10 +7,9 @@ import android.widget.TextView import com.chad.library.adapter4.BaseQuickAdapter import com.chad.library.adapter4.QuickAdapterHelper import com.chad.library.adapter4.viewholder.QuickViewHolder -import com.dahe.glex.bean.WayBillBean import com.dhsd.glowner.R import com.dhsd.glowner.bean.DictBean -import com.dhsd.glowner.bean.PackTypeBean + /** * @ClassName PackingTypeAdapter diff --git a/app/src/main/java/com/dhsd/glowner/adapter/SendGoodsAdapter.kt b/app/src/main/java/com/dhsd/glowner/adapter/SendGoodsAdapter.kt index b366a2f..09211b2 100644 --- a/app/src/main/java/com/dhsd/glowner/adapter/SendGoodsAdapter.kt +++ b/app/src/main/java/com/dhsd/glowner/adapter/SendGoodsAdapter.kt @@ -3,9 +3,7 @@ package com.dhsd.glowner.adapter import android.content.Context import android.view.ViewGroup import com.chad.library.adapter4.BaseQuickAdapter -import com.chad.library.adapter4.QuickAdapterHelper import com.chad.library.adapter4.viewholder.QuickViewHolder -import com.dahe.glex.bean.WayBillBean import com.dhsd.glowner.R import com.dhsd.glowner.bean.AddressBean diff --git a/app/src/main/java/com/dhsd/glowner/adapter/WaybillAdapter.kt b/app/src/main/java/com/dhsd/glowner/adapter/WaybillAdapter.kt index af52e51..9b0379f 100644 --- a/app/src/main/java/com/dhsd/glowner/adapter/WaybillAdapter.kt +++ b/app/src/main/java/com/dhsd/glowner/adapter/WaybillAdapter.kt @@ -5,7 +5,6 @@ import android.view.ViewGroup import com.chad.library.adapter4.BaseQuickAdapter import com.chad.library.adapter4.viewholder.QuickViewHolder import com.dahe.glex.bean.OrderBean -import com.dahe.glex.bean.WayBillBean import com.dhsd.glowner.R import com.dhsd.glowner.utils.OrderUtils @@ -34,6 +33,8 @@ class WaybillAdapter : }""" ) + setText(R.id.tvProduct,"") + setText(R.id.tvModel, """${if (item.orderType == "0") "一装一卸" else "一装多卸"}""") setText(R.id.tvMoney, driverFreight) setText(R.id.tvDate, loadingDeadline) diff --git a/app/src/main/java/com/dhsd/glowner/adapter/WaybillListAdapter.kt b/app/src/main/java/com/dhsd/glowner/adapter/WaybillListAdapter.kt index 8afa60f..b463460 100644 --- a/app/src/main/java/com/dhsd/glowner/adapter/WaybillListAdapter.kt +++ b/app/src/main/java/com/dhsd/glowner/adapter/WaybillListAdapter.kt @@ -2,10 +2,13 @@ package com.dhsd.glowner.adapter import android.content.Context import android.view.ViewGroup +import android.widget.ImageView import com.chad.library.adapter4.BaseQuickAdapter import com.chad.library.adapter4.viewholder.QuickViewHolder -import com.dahe.glex.bean.WayBillBean +import com.dahe.glex.bean.WaybillBean +import com.dahe.mylibrary.utils.ImageLoader import com.dhsd.glowner.R +import com.dhsd.glowner.utils.OrderUtils /** * @ClassName WaybillAdapter @@ -14,8 +17,53 @@ import com.dhsd.glowner.R * @Description TODO */ class WaybillListAdapter() : - BaseQuickAdapter() { - override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: WayBillBean?) { + BaseQuickAdapter() { + override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: WaybillBean?) { + item?.let { + holder.run { + setText(R.id.tvWaybillId,it.orderNum) + setText(R.id.tvStatu, OrderUtils.getInstance().getOrderStatu(it.waybillStatus)) +// setText(R.id.tvType, """${if (it.orderType == "0") "一装一卸" else "一装多卸"}""") + setText(R.id.tvTime, """${it.loadingDeadline}装货""") +// setText(R.id.tvDis, """${it.distance}km""") + setText(R.id.tvCarNum, it.vehicleNum) +// setText(R.id.tvRate, """交易${item.driverTransactionVolume} 好评率${item.driverPositiveReviewRate.toIntOrNull() +// ?.times(100)}%""") + +// setText(R.id.tvGood, """${it.goodItemGrossWeight}吨/${it.goodName}""") + setText(R.id.tvMoney, it.driverFreight) + setText(R.id.tvComName, """${it.driverName} ${it.driverPhone}""") + ImageLoader.getInstance().loadRoundImage(context,it.avatar,6,getView(R.id.ivHead),R.drawable.head_defaut) + + setText( + R.id.tvStart, + """${ + if (it.loadingCity.length > 1) it.loadingCity.substring( + 0, + 2 + ) else it.loadingCity + } ${ + if (it.loadingArea.length > 1) it.loadingArea.substring( + 0, + 2 + ) else it.loadingArea + }""" + ) + setText( + R.id.tvEnd, """${ + if (it.receiverCity.length > 1) it.receiverCity.substring( + 0, + 2 + ) else it.receiverCity + } ${ + if (it.receiverArea.length > 1) it.receiverArea.substring( + 0, + 2 + ) else it.receiverArea + }""" + ) + } + } } override fun onCreateViewHolder( @@ -24,7 +72,7 @@ class WaybillListAdapter() : viewType: Int ): QuickViewHolder { // 返回一个 ViewHolder - return QuickViewHolder(R.layout.item_waybill, parent) + return QuickViewHolder(R.layout.item_waybill2, parent) } } \ No newline at end of file diff --git a/app/src/main/java/com/dhsd/glowner/base/App.kt b/app/src/main/java/com/dhsd/glowner/base/App.kt index 62152ab..78c2f1b 100644 --- a/app/src/main/java/com/dhsd/glowner/base/App.kt +++ b/app/src/main/java/com/dhsd/glowner/base/App.kt @@ -3,6 +3,7 @@ package com.dhsd.glowner.base import android.app.Application import android.content.Context import com.dahe.mylibrary.CommonBaseLibrary +import com.dhsd.glowner.oss.OssServiceUtil import java.lang.Exception import java.security.SecureRandom import java.security.cert.X509Certificate @@ -25,7 +26,7 @@ class App : Application() { // SophixManager.getInstance().queryAndLoadNewPatch(); -// OssServiceUtil.getInstance().init(); + OssServiceUtil.getInstance().init(); // PendingIntent pendingIntent = // PendingIntent.getActivity(this, 0, new Intent(this, HomeActivity.class), PendingIntent.FLAG_UPDATE_CURRENT); diff --git a/app/src/main/java/com/dhsd/glowner/base/AppConfig.kt b/app/src/main/java/com/dhsd/glowner/base/AppConfig.kt index c2478b3..5367747 100644 --- a/app/src/main/java/com/dhsd/glowner/base/AppConfig.kt +++ b/app/src/main/java/com/dhsd/glowner/base/AppConfig.kt @@ -14,6 +14,7 @@ object AppConfig { const val DATAS = "DA_HE_DATAS" const val CX = "DA_HE_CX" const val CC = "DA_HE_CC" + const val GO_BACK = "DA_HE_GO_BACK" const val IS_ADD = "DA_HE_IS_ADD" const val IS_MUL = "DA_HE_IS_MUL" const val CAPTAIN_ID = "CAPTAIN_ID" diff --git a/app/src/main/java/com/dhsd/glowner/bean/OrderBean.kt b/app/src/main/java/com/dhsd/glowner/bean/OrderBean.kt index b75a3cb..0cca08b 100644 --- a/app/src/main/java/com/dhsd/glowner/bean/OrderBean.kt +++ b/app/src/main/java/com/dhsd/glowner/bean/OrderBean.kt @@ -11,10 +11,25 @@ import com.dhsd.glowner.bean.GoodBean */ data class OrderListBean( - var total : String, + var total: String, var rows: List ) +/** + * 货源详情 + * @property order OrderBean + * @property childList MutableList + * @property goodsList MutableList + * @constructor + */ +data class OrderSourceBean( + var order: OrderBean, + var childList: MutableList, + var goodsList: MutableList, + var captainInfo: CaptainInfo, + var photoList : MutableList +) + data class TextOrder(var orderId: String) data class OrderBean( var acceptTime: String, @@ -112,7 +127,8 @@ data class OrderBean( var updateBy: String, var updateTime: String, var vehicleLength: String, - var vehicleType: String + var vehicleType: String, + var shipperDispatchInfo: ShipperDispatchInfo ) data class DispatchBean( @@ -199,60 +215,37 @@ data class PostOrderBean( var vehicleLength: String, var requirement: String, var remark: String, - var childList:MutableList = mutableListOf(), - var goodsList:MutableList = mutableListOf(), - var order : OrderBean? = null -){ - constructor():this("","10","","","", - "","","","","","", - "1002996","","","","","","", - "","","","","","","", - "","","","","","", - "","","","","","", - "","","","","","", - "","","","","","", - "","","","","","", - "","","","","", - "","","","","","","","","", - "","", "","","","") + var childList: MutableList = mutableListOf(), + var goodsList: MutableList = mutableListOf(), + var order: OrderBean? = null +) { + constructor() : this( + "", "10", "", "", "", + "", "", "", "", "", "", + "1002996", "", "", "", "", "", "", + "", "", "", "", "", "", "", + "", "", "", "", "", "", + "", "", "", "", "", "", + "", "", "", "", "", "", + "", "", "", "", "", "", + "", "", "", "", "", "", + "", "", "", "", "", + "", "", "", "", "", "", "", "", "", + "", "", "", "", "", "" + ) } -data class Child( - var address: String, - var area: String, - var areaCode: String, - var businessCode: String, - var businessName: String, - var city: String, - var cityCode: String, - var cost: String, - var createBy: String, - var createTime: String, - var deadline: String, - var displayOrder: String, - var isPassingPoStrings: String, - var isSaveToCommonAddress: String, - var latitude: String, - var longitude: String, - var name: String, - var orderChildreId: String, - var orderId: String, - var phone: String, - var province: String, - var provinceAreaCode: List, - var provinceCityArea: String, - var provinceCode: String, - var remark: String, - var sortvarue: String, +data class CaptainInfo( + var captainId: String, + var avatar: String, + var contactName: String, + var contactPhone: String, + var captainType: String, var status: String, - var totalAmount: String, - var type: String, - var updateBy: String, - var updateTime: String + var captainName: String ) - data class ShipperDispatchInfo( var carHeight: String, var carLong: String, @@ -260,9 +253,28 @@ data class ShipperDispatchInfo( var contactPhone: String, var idcardName: String, var isRealName: String, + var avatar: String, + var driverPositiveReviewRate: String, + var driverTransactionVolume: String, var shipperCarId: String, var shipperDriverId: String, var vehicleNum: String, var vehicleType: String, var vehicleTypeCode: String ) + + +data class PicsBean( + val orderId: String, + val phone: String, + val province: String, + val location: String, + val photoUrl: String, + val provinceCityArea: String, + val provinceCode: String, + val sortValue: String, + val status: String, + val totalAmount: String, + val receiptType: String, + val type: String +) diff --git a/app/src/main/java/com/dhsd/glowner/bean/WayBillBean.kt b/app/src/main/java/com/dhsd/glowner/bean/WayBillBean.kt index 37426f4..19f2043 100644 --- a/app/src/main/java/com/dhsd/glowner/bean/WayBillBean.kt +++ b/app/src/main/java/com/dhsd/glowner/bean/WayBillBean.kt @@ -6,4 +6,69 @@ package com.dahe.glex.bean * @Date 2023/9/21 17:34 * @Description TODO */ -data class WayBillBean(var waybillId :String="") +data class WaybillBean( + val captainId: String, + val captainName: String, + val carId: String, + val createBy: String, + val createTime: String, + val direction: String, + val driverFreight: String, + val driverId: String, + val driverName: String, + val driverPhone: String, + val driverReceivedAmount: String, + val driverTax: String, + val driverTaxFreight: String, + val estimatedProfit: String, + val inputFreight: String, + val isBargaining: String, + val isSettlementApproval: String, + val loadingAddress: String, + val loadingArea: String, + val loadingAreaCode: String, + val loadingBusinessCode: String, + val loadingBusinessName: String, + val loadingCity: String, + val loadingCityCode: String, + val loadingDeadline: String, + val loadingName: String, + val loadingPhone: String, + val loadingProvince: String, + val loadingProvinceCityArea: String, + val loadingProvinceCode: String, + val motorcadeRatio: String, + val motorcadeTotalFreight: String, + val orderId: String, + val orderNum: String, + val platformRatio: String, + val platformTotalFreight: String, + val receiverAddress: String, + val receiverArea: String, + val receiverAreaCode: String, + val receiverBusinessCode: String, + val receiverBusinessName: String, + val receiverCity: String, + val receiverCityCode: String, + val receiverDeadline: String, + val receiverIdcard: String, + val receiverName: String, + val receiverPhone: String, + val receiverProvince: String, + val receiverProvinceCityArea: String, + val receiverProvinceCode: String, + val receivingOrderTime: String, + val remark: String, + val requirement: String, + val shipperId: String, + val shipperName: String, + val totalFreight: String, + val updateBy: String, + val updateTime: String, + val vehicleNum: String, + val waybillId: String, + val avatar: String, + var driverPositiveReviewRate: String, + var driverTransactionVolume: String, + val waybillStatus: String +) diff --git a/app/src/main/java/com/dhsd/glowner/net/Api.kt b/app/src/main/java/com/dhsd/glowner/net/Api.kt index ff45865..29f9a57 100644 --- a/app/src/main/java/com/dhsd/glowner/net/Api.kt +++ b/app/src/main/java/com/dhsd/glowner/net/Api.kt @@ -38,7 +38,7 @@ interface Api { //获取正在执行的运单/运单详情 @POST(BASE_URL + "app/driver/waybill/getExecuteWaybill") - fun getExecuteWaybill(@Body bean: WayBillBean?): Observable> + fun getExecuteWaybill(@Body bean: WaybillBean?): Observable> companion object { const val BASE_URL = BuildConfig.BASE_URL @@ -69,7 +69,7 @@ interface Api { fun cancelSourceOfOrder(@Body bean: TextOrder): Observable> - @GET(BASE_URL+"devApi/system/user/getInfo") + @GET(BASE_URL + "devApi/system/user/getInfo") fun getUserInfo(): Observable> @@ -132,6 +132,45 @@ interface Api { fun getAddressDetail(@Path("addressId") addressId: String): Observable> + /** + * 获取货源详情 + * @param orderId String + * @return Observable> + */ + @GET(BASE_URL + "devApi/business/shipper/order/{orderId}") + fun getOrderDetail(@Path("orderId") orderId: String): Observable> + + + /** + * 取消货源 + * @param bean TextOrder + * @return Observable> + */ + @PUT(BASE_URL + "devApi/business/shipper/order/cancelSourceOfOrder") + fun cancelOrder(@Body bean: TextOrder): Observable> + + + /** + * 运单列表 + * @param orderNum String + * @param waybillStatus String + * @return Observable>> + */ + @GET(BASE_URL + "devApi/business/shipper/waybill/list") + fun getWaybillList( + @Query("orderNum") orderNum: String, + @Query("waybillStatus") waybillStatus: String + ): Observable>> + + /** + * 获取运单详情 + * @param orderId String + * @return Observable> + */ + @GET(BASE_URL + "devApi/business/shipper/waybill/{orderId}") + fun getWayBillDetail(@Path("orderId") orderId: String): Observable> + + /** * 修改货主常用地址 * @param bean PostAddressBean @@ -158,6 +197,14 @@ interface Api { fun getGoodsList(): Observable>> + /** + * 获取货主常用车辆列表 + * @return Observable>> + */ + @GET(BASE_URL + "devApi/business/shipper/shipperCar/list") + fun getKnowCarsList(): Observable>> + + /** * 获取地址列表 * @return Observable>> @@ -170,7 +217,7 @@ interface Api { * @param dictType String * @return Observable>> */ - @GET(BASE_URL + "devApi//system/dict/data/type/{dictType}") + @GET(BASE_URL + "devApi/system/dict/data/type/{dictType}") fun getDictData(@Path("dictType") dictType: String): Observable>> @@ -182,20 +229,19 @@ interface Api { fun getGoodsCategor(): Observable>> - /** * 常见问题详情 * @param problemId String * @return Observable>> */ - @GET(BASE_URL + "driver/app/info/commonProblemDetail") + @GET(BASE_URL + "devApi/driver/app/info/commonProblemDetail") fun commonProblemDetail(@Query("problemId") problemId: String): Observable> /** * 常见问题列表 * @return Observable>> */ - @GET(BASE_URL + "driver/app/info/commonProblemList") + @GET(BASE_URL + "devApi/driver/app/info/commonProblemList") fun commonProblemList(): Observable>> /** @@ -203,7 +249,7 @@ interface Api { * @param upPart UpPart * @return Observable> */ - @GET(BASE_URL + "driver/driver/getCpcAuthenticationInfo") + @GET(BASE_URL + "devApi/driver/driver/getCpcAuthenticationInfo") fun getCpcAuthenticationInfo(): Observable> /** @@ -211,14 +257,14 @@ interface Api { * @param upPart UpPart * @return Observable> */ - @POST(BASE_URL + "driver/driver/submitToCpcAuthentication") + @POST(BASE_URL + "devApi/driver/driver/submitToCpcAuthentication") fun submitToCpcAuthentication(@Body upPart: UpPart): Observable> /** * 获取APP最新版本信息 * @return Observable> */ - @GET(BASE_URL + "driver/app/info/getLastAppVersion") + @GET(BASE_URL + "devApi/driver/app/info/getLastAppVersion") fun getLastAppVersion(): Observable> @@ -226,7 +272,7 @@ interface Api { * 安全课堂列表 * @return Observable> */ - @GET(BASE_URL + "driver/app/info/safeClassroomList") + @GET(BASE_URL + "devApi/driver/app/info/safeClassroomList") fun safeClassroomList(): Observable>> /** @@ -234,7 +280,7 @@ interface Api { * @param problemId String * @return Observable> */ - @GET(BASE_URL + "driver/app/info/safeClassroomDetail") + @GET(BASE_URL + "devApi/driver/app/info/safeClassroomDetail") fun safeClassroomDetail(@Query("classroomId") problemId: String): Observable> @@ -243,13 +289,13 @@ interface Api { * opinionsType 评价类型(0=司机评价,1=货主评价) * @return Observable> */ - @GET(BASE_URL + "driver/opinions/list") + @GET(BASE_URL + "devApi/driver/opinions/list") fun waybillRate(@Query("opinionsType") opinionsType: String): Observable>> /** * 查询司机总评价信息 * @return Observable> */ - @GET(BASE_URL + "driver/opinions/getDriverOpinionsStatInfo") + @GET(BASE_URL + "devApi/driver/opinions/getDriverOpinionsStatInfo") fun driverRate(): Observable> } \ No newline at end of file diff --git a/app/src/main/java/com/dhsd/glowner/ui/address/AddressEditOrAddActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/address/AddressEditOrAddActivity.kt index c3c782f..cf73401 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/address/AddressEditOrAddActivity.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/address/AddressEditOrAddActivity.kt @@ -13,24 +13,14 @@ import android.widget.LinearLayout import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.app.AppCompatActivity import androidx.core.widget.addTextChangedListener -import androidx.recyclerview.widget.LinearLayoutManager -import androidx.recyclerview.widget.RecyclerView + import com.dahe.gldriver.base.AppConfig -import com.dahe.glex.bean.WayBillBean import com.dahe.mylibrary.base.BaseActivity import com.dahe.mylibrary.net.CommonResponseBean -import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider -import com.dahe.mylibrary.utils.ActivityUtils -import com.dahe.mylibrary.utils.ConvertUtils import com.dahe.mylibrary.utils.PickerUtils -import com.dahe.mylibrary.utils.ToastUtils -import com.dahe.mylibrary.weight.SwitchView import com.dhsd.glowner.R -import com.dhsd.glowner.adapter.SendGoodsAdapter -import com.dhsd.glowner.bean.AddressBean import com.dhsd.glowner.bean.PostAddressBean import com.dhsd.glowner.databinding.ActivityAddressEditBinding -import com.dhsd.glowner.ui.mine.activity.ChoiceCarActivity import com.dhsd.glowner.utils.OnLimitClickHelper import com.dhsd.glowner.utils.OnLimitClickListener import com.google.gson.Gson diff --git a/app/src/main/java/com/dhsd/glowner/ui/address/AddressOnlyEditActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/address/AddressOnlyEditActivity.kt index 52c9727..5e3870c 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/address/AddressOnlyEditActivity.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/address/AddressOnlyEditActivity.kt @@ -16,26 +16,15 @@ import androidx.core.widget.addTextChangedListener import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.dahe.gldriver.base.AppConfig -import com.dahe.glex.bean.WayBillBean import com.dahe.mylibrary.base.BaseActivity -import com.dahe.mylibrary.net.CommonResponseBean -import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider -import com.dahe.mylibrary.utils.ActivityUtils -import com.dahe.mylibrary.utils.ConvertUtils import com.dahe.mylibrary.utils.PickerUtils -import com.dahe.mylibrary.utils.ToastUtils -import com.dahe.mylibrary.weight.SwitchView import com.dhsd.glowner.R -import com.dhsd.glowner.adapter.SendGoodsAdapter import com.dhsd.glowner.bean.AddressBean import com.dhsd.glowner.bean.PostAddressBean import com.dhsd.glowner.databinding.ActivityAddressEditBinding -import com.dhsd.glowner.ui.mine.activity.ChoiceCarActivity import com.dhsd.glowner.utils.OnLimitClickHelper import com.dhsd.glowner.utils.OnLimitClickListener import com.google.gson.Gson -import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers -import io.reactivex.rxjava3.schedulers.Schedulers /** * @ClassName AddresEditActivity diff --git a/app/src/main/java/com/dhsd/glowner/ui/home/HomeFragment.kt b/app/src/main/java/com/dhsd/glowner/ui/home/HomeFragment.kt index 981bb9a..e901af5 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/home/HomeFragment.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/home/HomeFragment.kt @@ -29,6 +29,7 @@ import com.dhsd.glowner.databinding.FragmentHomeBinding import com.dhsd.glowner.ui.home.activtiy.SendGoodsActivity import com.dhsd.glowner.ui.mine.activity.ChoiceCarActivity import com.dhsd.glowner.ui.mine.activity.ChoiceFleetActivity +import com.dhsd.glowner.ui.waybill.activity.SourceDetailActivity import com.dhsd.glowner.utils.CommonPopUtils import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.schedulers.Schedulers @@ -108,8 +109,10 @@ class HomeFragment : BaseFragment(), RefreshCallBack { adapter = WaybillAdapter() adapter as WaybillAdapter }.apply { - setOnItemClickListener { _, _, position -> - ToastUtils.showToast(mContext, position.toString()) + setOnItemClickListener { adapter, _, position -> + ActivityUtils.startActivity(mContext, SourceDetailActivity::class.java,Bundle().apply { + putString(AppConfig.ID, adapter.getItem(position)?.orderId) + }) } addOnItemChildClickListener(R.id.btnOk) { adapter, _, position -> // ActivityUtils.startActivity(mContext, WaybillDetailActivity::class.java) diff --git a/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/SendGoodsActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/SendGoodsActivity.kt index 252b2ec..034a45b 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/SendGoodsActivity.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/SendGoodsActivity.kt @@ -194,7 +194,6 @@ class SendGoodsActivity : BaseActivity() { remark = binding.etRemark.text.toString().trim() } - DataManager.getInstance().addOrder(postOrderBean) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) diff --git a/app/src/main/java/com/dhsd/glowner/ui/message/MessageFragment.kt b/app/src/main/java/com/dhsd/glowner/ui/message/MessageFragment.kt index aead596..6162569 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/message/MessageFragment.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/message/MessageFragment.kt @@ -5,7 +5,7 @@ import android.graphics.Color import android.widget.LinearLayout import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.dahe.glex.bean.WayBillBean +import com.dahe.glex.bean.WaybillBean import com.dahe.mylibrary.base.BaseFragment import com.dahe.mylibrary.callback.RefreshCallBack import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider @@ -40,16 +40,6 @@ class MessageFragment : BaseFragment(), RefreshCallBack } private fun initRecy() { - var datas = mutableListOf( - WayBillBean(), - WayBillBean(), - WayBillBean(), - WayBillBean(), - WayBillBean(), - WayBillBean(), - WayBillBean(), - WayBillBean() - ) var adapter = binding.recyclerView.run { layoutManager = LinearLayoutManager(mContext,RecyclerView.VERTICAL,false) @@ -65,7 +55,7 @@ class MessageFragment : BaseFragment(), RefreshCallBack adapter as MessageAdapter } - adapter.submitList(datas) +// adapter.submitList(datas) } } \ No newline at end of file diff --git a/app/src/main/java/com/dhsd/glowner/ui/mine/MineFragment.kt b/app/src/main/java/com/dhsd/glowner/ui/mine/MineFragment.kt index f6bc0fb..20a28a7 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/mine/MineFragment.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/mine/MineFragment.kt @@ -22,8 +22,10 @@ import com.dhsd.glowner.R import com.dhsd.glowner.adapter.GridItemAdapter import com.dhsd.glowner.databinding.FragmentMineBinding import com.dhsd.glowner.ui.WebActivity +import com.dhsd.glowner.ui.address.AddressListActivity import com.dhsd.glowner.ui.mine.activity.AuthPartyActivity import com.dhsd.glowner.ui.mine.activity.ComProActivity +import com.dhsd.glowner.ui.mine.activity.KnowCarsActivity import com.dhsd.glowner.ui.mine.activity.QuesActivity import com.dhsd.glowner.ui.mine.activity.RateManActivity import com.dhsd.glowner.ui.mine.activity.RulesActivity @@ -67,7 +69,7 @@ class MineFragment : BaseFragment(), View.OnClickListener, getUserInfo() binding.run { - setRefresh(smartRefresh,this@MineFragment) + setRefresh(smartRefresh, this@MineFragment) smartRefresh.finishLoadMore() //初始化常用工具 gvTools.run { @@ -113,11 +115,11 @@ class MineFragment : BaseFragment(), View.OnClickListener, private fun goTools(pos: Int) { when (pos) { 0 -> { -// ActivityUtils.startActivity(mContext, RulesActivity::class.java) + ActivityUtils.startActivity(mContext, AddressListActivity::class.java) } 1 -> { -// ActivityUtils.startActivity(mContext, CarsManActivity::class.java) + ActivityUtils.startActivity(mContext, KnowCarsActivity::class.java) } 2 -> { @@ -185,7 +187,7 @@ class MineFragment : BaseFragment(), View.OnClickListener, } override fun getRefreshDate(stat: Int, page: Int, count: Int) { - if (stat==2){ + if (stat == 2) { binding.smartRefresh.finishLoadMoreWithNoMoreData() return } @@ -196,21 +198,23 @@ class MineFragment : BaseFragment(), View.OnClickListener, DataManager.getInstance().getUserInfo() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(BaseObserver(mContext,object : RxHttpCallBack(binding.smartRefresh){ - override fun onSuccess(t: CommonResponseBean) { - super.onSuccess(t) - initUserByData(t.data.user) - } - })) + .subscribe(BaseObserver(mContext, + object : RxHttpCallBack(binding.smartRefresh) { + override fun onSuccess(t: CommonResponseBean) { + super.onSuccess(t) + initUserByData(t.data.user) + } + })) } - private fun initUserByData(userBean: UserBean){ - UserUtils.instance.updateUser(mContext,userBean) + private fun initUserByData(userBean: UserBean) { + UserUtils.instance.updateUser(mContext, userBean) binding?.run { tvName.text = userBean.userName tvPhone.text = userBean.phonenumber - ImageLoader.getInstance().loadCircleImage(mContext,userBean.avatar,ivHead,R.drawable.head_defaut) + ImageLoader.getInstance() + .loadCircleImage(mContext, userBean.avatar, ivHead, R.drawable.head_defaut) } } diff --git a/app/src/main/java/com/dhsd/glowner/ui/mine/activity/ChoiceCarActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/mine/activity/ChoiceCarActivity.kt index be014ab..3886167 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/mine/activity/ChoiceCarActivity.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/mine/activity/ChoiceCarActivity.kt @@ -41,6 +41,8 @@ class ChoiceCarActivity : BaseActivity(), OnLimitClick lateinit var adapter: DriverCarsAdapter private var searchValue: String = "" private var orderId: String = "" + + private var isGoBack:Boolean = false private var selectCar: CarBean? = null override fun initView(savedInstanceState: Bundle?) { setStatusBarColor(R.color.white) @@ -49,6 +51,7 @@ class ChoiceCarActivity : BaseActivity(), OnLimitClick } orderId = intent.extras?.getString(AppConfig.ID).toString() + isGoBack = intent.extras?.getBoolean(AppConfig.GO_BACK,false) == true binding.recycler.run { this@ChoiceCarActivity.adapter = run { @@ -156,7 +159,7 @@ class ChoiceCarActivity : BaseActivity(), OnLimitClick showToast(t.msg) // 设置返回结果 setResult(AppCompatActivity.RESULT_OK, Intent()) - ActivityUtils.finishToActivity(HomeActivity::class.java,false) + if (isGoBack) finish() else ActivityUtils.finishToActivity(HomeActivity::class.java,false) // finish() } })) diff --git a/app/src/main/java/com/dhsd/glowner/ui/mine/activity/ChoiceFleetActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/mine/activity/ChoiceFleetActivity.kt index f8352ee..c8bf849 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/mine/activity/ChoiceFleetActivity.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/mine/activity/ChoiceFleetActivity.kt @@ -23,6 +23,7 @@ import com.dhsd.glowner.R import com.dhsd.glowner.adapter.popadapter.DriverFleetAdapter import com.dhsd.glowner.bean.CaptainBean import com.dhsd.glowner.databinding.ActivityChoiceFleetCarBinding +import com.dhsd.glowner.ui.HomeActivity import com.dhsd.glowner.utils.OnLimitClickHelper import com.dhsd.glowner.utils.OnLimitClickListener import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers @@ -37,12 +38,14 @@ import io.reactivex.rxjava3.schedulers.Schedulers class ChoiceFleetActivity : BaseActivity(), OnLimitClickListener { lateinit var adapter: DriverFleetAdapter private var orderId: String = "" + private var isGoBack:Boolean = false override fun initView(savedInstanceState: Bundle?) { setStatusBarColor(R.color.white) setTitleBar("选择车队/车辆", View.OnClickListener { finish() }, true, "我的熟车") { ToastUtils.showToast(mContext, "我的熟车") } orderId = intent.extras?.getString(AppConfig.ID).toString() + isGoBack = intent.extras?.getBoolean(AppConfig.GO_BACK,false) == true binding.run { adapter = recycler.run { layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false) @@ -146,7 +149,7 @@ class ChoiceFleetActivity : BaseActivity(), OnLim showToast(t.msg) // 设置返回结果 setResult(AppCompatActivity.RESULT_OK, Intent()) - finish() + if (isGoBack) finish() else ActivityUtils.finishToActivity(HomeActivity::class.java,false) } })) } diff --git a/app/src/main/java/com/dhsd/glowner/ui/mine/activity/KnowCarsActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/mine/activity/KnowCarsActivity.kt new file mode 100644 index 0000000..5a16fec --- /dev/null +++ b/app/src/main/java/com/dhsd/glowner/ui/mine/activity/KnowCarsActivity.kt @@ -0,0 +1,80 @@ +package com.dhsd.glowner.ui.mine.activity + +import BaseObserver +import DataManager +import RxHttpCallBack +import android.graphics.Color +import android.os.Bundle +import android.widget.LinearLayout +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.dahe.glex.bean.OrderListBean +import com.dahe.mylibrary.base.BaseActivity +import com.dahe.mylibrary.net.CommonResponseBean +import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider +import com.dahe.mylibrary.utils.ConvertUtils +import com.dhsd.glowner.R +import com.dhsd.glowner.adapter.DriverCarsAdapter +import com.dhsd.glowner.bean.CarBean +import com.dhsd.glowner.databinding.ActivityKnowCarsBinding +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +import io.reactivex.rxjava3.schedulers.Schedulers + +/** + * @ClassName KnowCarsActivity + * @Author john + * @Date 2024/11/11 14:47 + * @Description 我的熟车 + */ +class KnowCarsActivity : BaseActivity() { + + lateinit var adapter: DriverCarsAdapter + override fun initView(savedInstanceState: Bundle?) { + setStatusBarColor(R.color.white) + setTitleBar("我的熟车", true) + + binding.run { + recycler.run { + layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false) + addItemDecoration( + RecycleViewDivider( + LinearLayout.VERTICAL, + ConvertUtils.dp2px(10.0f), + Color.TRANSPARENT + ) + ) + adapter = DriverCarsAdapter() + adapter as DriverCarsAdapter + }.apply { + isStateViewEnable = true + } + } + + } + + override fun initDate() { + + DataManager.getInstance().getKnowCarsList() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(BaseObserver(mContext,object :RxHttpCallBack>(){ + override fun onSuccess(t: CommonResponseBean>) { + super.onSuccess(t) + initList(t.data.rows) + } + })) + } + + private fun initList(rows: List) { + if (rows.isEmpty()) { + adapter.submitList(null) + adapter.setStateViewLayout(mContext, R.layout.empty_view) + } else { + if (mRefreshPage === 1) { + adapter?.submitList(rows) + } else { + adapter?.addAll(rows) + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/dhsd/glowner/ui/waybill/WaybillFragment.kt b/app/src/main/java/com/dhsd/glowner/ui/waybill/WaybillFragment.kt index 054018d..d21c934 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/waybill/WaybillFragment.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/waybill/WaybillFragment.kt @@ -2,12 +2,17 @@ package com.dhsd.glowner.ui.waybill import android.content.Context import android.graphics.Color +import android.view.View import androidx.fragment.app.Fragment import com.dahe.mylibrary.base.BaseFragment import com.dahe.mylibrary.callback.RefreshCallBack import com.dhsd.glowner.R import com.dhsd.glowner.databinding.FragmentWaybillBinding import com.dhsd.glowner.ui.waybill.fragment.AllWaybillFragment +import com.dhsd.glowner.ui.waybill.fragment.WaitLoadFragment +import com.dhsd.glowner.ui.waybill.fragment.WaitRateFragment +import com.dhsd.glowner.ui.waybill.fragment.WaitSignFragment +import com.dhsd.glowner.ui.waybill.fragment.WaitUnLoadFragment import net.lucode.hackware.magicindicator.FragmentContainerHelper import net.lucode.hackware.magicindicator.buildins.UIUtil import net.lucode.hackware.magicindicator.buildins.commonnavigator.CommonNavigator @@ -26,14 +31,16 @@ import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.ColorT */ class WaybillFragment : BaseFragment(), RefreshCallBack { + private var currIndex = 0 + private val mFragmentContainerHelper = FragmentContainerHelper() - var mFragments = listOf(AllWaybillFragment(),AllWaybillFragment(),AllWaybillFragment(),AllWaybillFragment(),AllWaybillFragment()) + var mFragments = listOf(AllWaybillFragment(),WaitLoadFragment(),WaitUnLoadFragment(),WaitSignFragment(),WaitRateFragment()) val titles = mutableListOf( "全部", "待装货", "待卸货", - "待评价", - "取消" + "待签收", + "待结算" ) override fun onFragmentVisibleChange(isVisible: Boolean) { @@ -45,10 +52,31 @@ class WaybillFragment : BaseFragment(), RefreshCallBack override fun onFragmentFirstVisible() { initRecy() + binding.run { +// etSearch.addTextChangedListener { +// ivCancel.visibility = if (it.toString().isNullOrBlank()) View.GONE else View.VISIBLE +// } - mFragmentContainerHelper.handlePageSelected(0,true) - switchPages(0) + btnSearch.setOnClickListener { + val search = etSearch.text.trim().toString() + when (currIndex) { + 0 -> (mFragments[currIndex] as AllWaybillFragment).onSearchClick(search) + 1 -> (mFragments[currIndex] as AllWaybillFragment).onSearchClick(search) + 2 -> (mFragments[currIndex] as AllWaybillFragment).onSearchClick(search) + 3 -> (mFragments[currIndex] as AllWaybillFragment).onSearchClick(search) + 4 -> (mFragments[currIndex] as AllWaybillFragment).onSearchClick(search) + 5 -> (mFragments[currIndex] as AllWaybillFragment).onSearchClick(search) + } + + + } + } + + + + mFragmentContainerHelper.handlePageSelected(currIndex,true) + switchPages(currIndex) var commonNavigator = CommonNavigator(mContext) commonNavigator.run { @@ -100,6 +128,7 @@ class WaybillFragment : BaseFragment(), RefreshCallBack } private fun switchPages(index: Int) { + currIndex = index val fragmentManager = requireActivity().supportFragmentManager val fragmentTransaction = fragmentManager.beginTransaction() var fragment: Fragment diff --git a/app/src/main/java/com/dhsd/glowner/ui/waybill/activity/SourceDetailActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/waybill/activity/SourceDetailActivity.kt index c094812..dcbc580 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/waybill/activity/SourceDetailActivity.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/waybill/activity/SourceDetailActivity.kt @@ -1,8 +1,42 @@ package com.dhsd.glowner.ui.waybill.activity +import BaseObserver +import DataManager +import RxHttpCallBack +import android.content.Intent +import android.graphics.Color import android.os.Bundle +import android.text.TextUtils +import android.view.View +import android.widget.LinearLayout +import androidx.activity.result.contract.ActivityResultContracts +import androidx.appcompat.app.AppCompatActivity +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.dahe.gldriver.base.AppConfig +import com.dahe.glex.bean.OrderSourceBean +import com.dahe.glex.bean.PostOrderBean +import com.dahe.glex.bean.TextOrder import com.dahe.mylibrary.base.BaseActivity +import com.dahe.mylibrary.net.CommonResponseBean +import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider +import com.dahe.mylibrary.utils.ConvertUtils +import com.dahe.mylibrary.utils.ImageLoader +import com.dahe.mylibrary.utils.LoadingUtils +import com.dahe.mylibrary.utils.PickerUtils +import com.dhsd.glowner.R +import com.dhsd.glowner.adapter.SendGoodsAdapter +import com.dhsd.glowner.adapter.SourceAddressAdapter +import com.dhsd.glowner.bean.HomeEvent import com.dhsd.glowner.databinding.ActivitySourceDetailBinding +import com.dhsd.glowner.ui.mine.activity.ChoiceCarActivity +import com.dhsd.glowner.ui.mine.activity.ChoiceFleetActivity +import com.dhsd.glowner.utils.CommonPopUtils +import com.dhsd.glowner.utils.OnLimitClickHelper +import com.dhsd.glowner.utils.OnLimitClickListener +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +import io.reactivex.rxjava3.schedulers.Schedulers +import org.greenrobot.eventbus.EventBus /** * @ClassName WaybillDetailActivity @@ -10,14 +44,146 @@ import com.dhsd.glowner.databinding.ActivitySourceDetailBinding * @Date 2024/2/5 14:50 * @Description 货源详情 */ -class SourceDetailActivity :BaseActivity(){ - override fun initView(savedInstanceState: Bundle?) { - binding.btnReceiving.setOnClickListener { -// ActivityUtils.startActivity(mContext,WaybillSuccActivity::class.java,Bundle().apply { putInt(AppConfig.SUCCESS_TYPE,0) }) +class SourceDetailActivity : BaseActivity(), OnLimitClickListener { + private lateinit var adapter: SourceAddressAdapter + private var orderId: String = "" + + private val launcher = + registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> + if (result.resultCode == AppCompatActivity.RESULT_OK) { + initDate() + } } + + override fun initView(savedInstanceState: Bundle?) { + setStatusBarColor(R.color.white) + setTitleBar("货源详情", true) + binding?.run { + adapter = recycler.run { + layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false) + addItemDecoration( + RecycleViewDivider( + LinearLayout.VERTICAL, + ConvertUtils.dp2px(12.0f), + Color.TRANSPARENT + ) + ) + adapter = SourceAddressAdapter() + adapter as SourceAddressAdapter + } + btnLeft.setOnClickListener(OnLimitClickHelper(this@SourceDetailActivity)) + btnRight.setOnClickListener(OnLimitClickHelper(this@SourceDetailActivity)) + } + intent.extras?.getString(AppConfig.ID)?.let { + orderId = it + } + } override fun initDate() { -// SelectPicUtils().getInstance(mContext) + DataManager.getInstance().getOrderDetail(orderId) + .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) + .subscribe(BaseObserver(mContext, object : RxHttpCallBack() { + override fun onSuccess(t: CommonResponseBean) { + super.onSuccess(t) + initViewByData(t.data) + } + })) + } + + override fun onClick(view: View?) { + super.onClick(view) + when (view?.id) { + R.id.btnLeft -> { + CommonPopUtils.getInstance() + .showCommCenterPop(mContext, "提示", "您确定取消该运单么?") { + DataManager.getInstance().cancelOrder(TextOrder(orderId)) + .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) + .subscribe(BaseObserver(mContext, object : RxHttpCallBack() { + override fun onSuccess(t: CommonResponseBean) { + super.onSuccess(t) + EventBus.getDefault().post(HomeEvent(true)) + finish() + } + })) + } + } + + R.id.btnRight -> { + if (TextUtils.isEmpty(orderId)) + return + CommonPopUtils.getInstance().showCarList( + mContext + ) { _, position -> + when (position) { + 0 -> { + launcher.launch(Intent(mContext, ChoiceCarActivity::class.java).apply { + putExtras(Bundle().apply { + putString(AppConfig.ID, orderId) + putBoolean(AppConfig.GO_BACK, true) + }) + }) + } + + 1 -> { + launcher.launch( + Intent( + mContext, + ChoiceFleetActivity::class.java + ).apply { + putExtras(Bundle().apply { + putString(AppConfig.ID, orderId) + putBoolean(AppConfig.GO_BACK, true) + }) + }) + } + } + } + } + } + } + + private fun initViewByData(data: OrderSourceBean) { + data.run { + binding.run { + tvTime.text = """${data.order.loadingDeadline} 装货""" + tvType.text = if (data.order.orderType == "0") "一装一卸" else "一装多卸" + tvLoadDis.text = data.order.distance.toString() + "Km" + tvFreight.text = data.order.driverFreight + "元" + + tvGoods.text = data.goodsList.joinToString(separator = "\n") { innerIt -> + """${innerIt.goodName},${innerIt.packName},${ + if (!TextUtils.isEmpty(innerIt.goodItemGrossWeight)) innerIt.goodItemGrossWeight + "吨" else innerIt.goodCube + "m³" + }""" + } + tvRemark.text = data.order.requirement + tvCarType.text = """${data.order.vehicleType} ${data.order.vehicleLength} """ + + //派单信息 + if (!TextUtils.isEmpty(data.order.shipperDriverId) && "0" != data.order.shipperDriverId) { + cdDriver.visibility = View.VISIBLE + tvCar.text = + """${data.order.shipperDispatchInfo.vehicleNum},${data.order.shipperDispatchInfo.carLong}mm""" + tvDriverName.text = data.order.shipperDispatchInfo.idcardName + tvRate.text = + """交易 ${data.order.shipperDispatchInfo.driverTransactionVolume} 好评率${ + data.order.shipperDispatchInfo.driverPositiveReviewRate.toDoubleOrNull() + ?.times(100) + }%""" + ImageLoader.getInstance().loadImage( + mContext, + data.order.shipperDispatchInfo.avatar, + ivHead, + R.drawable.head_defaut + ) + } else { + cdDriver.visibility = View.GONE + } + + + adapter.submitList(data.childList) + + } + } } } \ No newline at end of file diff --git a/app/src/main/java/com/dhsd/glowner/ui/waybill/activity/WaybillLDetailActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/waybill/activity/WaybillLDetailActivity.kt index 37a329d..c4accbb 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/waybill/activity/WaybillLDetailActivity.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/waybill/activity/WaybillLDetailActivity.kt @@ -1,12 +1,37 @@ package com.dhsd.glowner.ui.waybill.activity +import BaseObserver +import DataManager +import RxHttpCallBack +import android.graphics.Color import android.os.Bundle +import android.text.TextUtils import android.view.View +import android.widget.LinearLayout +import androidx.appcompat.app.AppCompatActivity +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView import com.amap.api.maps.AMap +import com.bumptech.glide.Glide +import com.dahe.gldriver.base.AppConfig +import com.dahe.glex.bean.OrderSourceBean +import com.dahe.glex.bean.PicsBean import com.dahe.mylibrary.base.BaseActivity +import com.dahe.mylibrary.net.CommonResponseBean +import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider +import com.dahe.mylibrary.utils.ActivityUtils +import com.dahe.mylibrary.utils.BaseUtils +import com.dahe.mylibrary.utils.ConvertUtils +import com.dahe.mylibrary.utils.ImageLoader import com.dahe.mylibrary.utils.ToastUtils +import com.dhsd.glowner.R +import com.dhsd.glowner.adapter.SourceAddressAdapter import com.dhsd.glowner.databinding.ActivityWaybillDetailBinding +import com.dhsd.glowner.utils.OrderUtils +import com.google.gson.Gson +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +import io.reactivex.rxjava3.schedulers.Schedulers /** @@ -16,19 +41,51 @@ import com.dhsd.glowner.databinding.ActivityWaybillDetailBinding * @Description 运单详情 */ class WaybillLDetailActivity : BaseActivity() { + private lateinit var adapter: SourceAddressAdapter + private var orderId: String = "" + lateinit var pics : MutableList var aMap: AMap? = null override fun initView(savedInstanceState: Bundle?) { + setStatusBarColor(R.color.white) + setTitleBar("运单详情", { finish() }, true, "查看单据") { + if (!::pics.isInitialized || pics.size==0){ + showToast("司机暂未上传照片") + return@setTitleBar + } - setTitleBar("运单详情", View.OnClickListener { finish() }, true, "查看单据") { - ToastUtils.showToast(mContext, "查看单据") + ActivityUtils.startActivity(mContext, SeeDocActivity::class.java,Bundle().apply { + putString(AppConfig.DATAS,Gson().toJson(pics)) + }) + + } + + intent.extras?.let { + orderId = it.getString(AppConfig.ID).toString() } binding.run { mapView.onCreate(savedInstanceState) if (aMap == null) mapView.map - btnRight.setOnClickListener { + adapter = recycler.run { + layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false) + addItemDecoration( + RecycleViewDivider( + LinearLayout.VERTICAL, + ConvertUtils.dp2px(12.0f), + Color.TRANSPARENT + ) + ) + adapter = SourceAddressAdapter() + adapter as SourceAddressAdapter + } + + + + + + btnLeft.setOnClickListener { // ActivityUtils.startActivity( // mContext, // WaybillUpPicActivity::class.java, @@ -38,6 +95,14 @@ class WaybillLDetailActivity : BaseActivity() { } override fun initDate() { + DataManager.getInstance().getWayBillDetail(orderId) + .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) + .subscribe(BaseObserver(mContext, object : RxHttpCallBack() { + override fun onSuccess(t: CommonResponseBean) { + super.onSuccess(t) + initViewByData(t.data) + } + })) } override fun onResume() { @@ -59,6 +124,70 @@ class WaybillLDetailActivity : BaseActivity() { if (binding.mapView != null) binding.mapView.onDestroy(); super.onDestroy() + } + private fun initViewByData(data: OrderSourceBean) { + pics = data.photoList + binding.run { + tvWaybillNum.text = """运单号: ${data.order.orderNum}""" + tvStatus.text = OrderUtils.getInstance().getOrderStatu(data.order.orderStatus) + tvCarNum.text = data.order.shipperDispatchInfo.vehicleNum + tvCarLength.text = data.order.shipperDispatchInfo.carLong + tvCarType.text = data.order.shipperDispatchInfo.vehicleType + tvDriverName.text = + """${data.order.shipperDispatchInfo.idcardName} ${data.order.shipperDispatchInfo.contactPhone}""" + tvDriverRate.text = + """交易${data.order.shipperDispatchInfo.driverTransactionVolume} 好评率${ + data.order.shipperDispatchInfo.driverPositiveReviewRate.toIntOrNull() + ?.times(100) + }%""" + + ImageLoader.getInstance().loadCircleImage( + mContext, + data.order.shipperDispatchInfo.avatar, + ivHead, + R.drawable.head_defaut + ) + btnCallDriver.setOnClickListener { + BaseUtils.callPhone(this@WaybillLDetailActivity, data.order.shipperDispatchInfo.contactPhone) + } + + + tvTime.text = """${data.order.loadingDeadline}装货,""" + tvWaybillType.text = + """${if (data.order.orderType == "0") "一装一卸" else "一装多卸"}""" + tvLoadDis.text = data.order.distance.toString() + "Km" + + tvCarTypes.text = """${data.order.vehicleType} ${data.order.vehicleLength} """ + tvGoods.text = data.goodsList.joinToString(separator = "\n") { innerIt -> + """${innerIt.goodName},${innerIt.packName},${ + if (!TextUtils.isEmpty(innerIt.goodItemGrossWeight)) innerIt.goodItemGrossWeight + "吨" else innerIt.goodCube + "m³" + }""" + } + if (!TextUtils.isEmpty(data.order.remark)) + tvRemark.text = data.order.remark + + tvJdDate.text = data.order.effectiveTimeStart + + if (data.captainInfo!=null&&!TextUtils.isEmpty(data.captainInfo.captainId)){ + cdCd.visibility = View.VISIBLE + ImageLoader.getInstance().loadCircleImage(mContext,data.captainInfo.avatar,ivCdHead,R.drawable.head_defaut) + tvCdName.text = data.captainInfo.contactName + tvCdPhone.text = data.captainInfo.contactPhone + btnCallDriver.setOnClickListener { + BaseUtils.callPhone(this@WaybillLDetailActivity, data.captainInfo.contactPhone) + } + }else{ + cdCd.visibility = View.GONE + } + + + tvFreight.text = data.order.driverFreight + btnLeft.setOnClickListener { + BaseUtils.callPhone(this@WaybillLDetailActivity, data.order.loadingPhone) + } + + adapter.submitList(data.childList) + } } } \ No newline at end of file diff --git a/app/src/main/java/com/dhsd/glowner/ui/waybill/fragment/AllWaybillFragment.kt b/app/src/main/java/com/dhsd/glowner/ui/waybill/fragment/AllWaybillFragment.kt index e97d49b..72dc3dd 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/waybill/fragment/AllWaybillFragment.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/waybill/fragment/AllWaybillFragment.kt @@ -1,11 +1,29 @@ package com.dhsd.glowner.ui.waybill.fragment +import BaseObserver +import DataManager +import RxHttpCallBack +import android.graphics.Color +import android.os.Bundle +import android.widget.LinearLayout import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.dahe.glex.bean.WayBillBean +import com.dahe.gldriver.base.AppConfig +import com.dahe.glex.bean.OrderListBean +import com.dahe.glex.bean.WaybillBean import com.dahe.mylibrary.base.BaseFragment +import com.dahe.mylibrary.callback.RefreshCallBack +import com.dahe.mylibrary.net.CommonResponseBean +import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider +import com.dahe.mylibrary.utils.ActivityUtils +import com.dahe.mylibrary.utils.ConvertUtils +import com.dhsd.glowner.R import com.dhsd.glowner.adapter.WaybillListAdapter +import com.dhsd.glowner.callback.OnSearchListener import com.dhsd.glowner.databinding.FragmentWaybillListBinding +import com.dhsd.glowner.ui.waybill.activity.WaybillLDetailActivity +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +import io.reactivex.rxjava3.schedulers.Schedulers /** * @ClassName AllWaybillFragment @@ -13,30 +31,75 @@ import com.dhsd.glowner.databinding.FragmentWaybillListBinding * @Date 2024/1/24 14:06 * @Description TODO */ -class AllWaybillFragment : BaseFragment() { - +class AllWaybillFragment : BaseFragment(), + OnSearchListener, RefreshCallBack { + lateinit var adapter: WaybillListAdapter override fun onFragmentVisibleChange(isVisible: Boolean) { } override fun onFragmentFirstVisible() { - var datas = mutableListOf( - WayBillBean(), - WayBillBean(), - WayBillBean(), - WayBillBean(), - WayBillBean(), - WayBillBean(), - WayBillBean(), - WayBillBean() - ) - var adapter = binding.recyclerView.run { - layoutManager = LinearLayoutManager(mContext,RecyclerView.VERTICAL,false) - setHasFixedSize(true) - adapter = WaybillListAdapter() - adapter as WaybillListAdapter + initData("") + + binding.run { + setRefresh(refresh, this@AllWaybillFragment) + adapter = recyclerView.run { + layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false) + addItemDecoration( + RecycleViewDivider( + LinearLayout.VERTICAL, + ConvertUtils.dp2px(10.0f), + Color.TRANSPARENT + ) + ) + adapter = WaybillListAdapter() + adapter as WaybillListAdapter + }.apply { + isStateViewEnable = true + setOnItemClickListener{adapter,_,position-> + val item = adapter.getItem(position) as WaybillBean + ActivityUtils.startActivity(mContext, WaybillLDetailActivity::class.java, + Bundle().apply { putString(AppConfig.ID,item.orderId) } + ) + } + } } - adapter.submitList(datas) + } + + override fun onSearchClick(search: String) { + initData(search) + } + + private fun initData(search: String = "") { + DataManager.getInstance().getWaybillList(search, "") + .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) + .subscribe(BaseObserver(mContext,object : RxHttpCallBack>(binding.refresh){ + override fun onSuccess(t: CommonResponseBean>) { + super.onSuccess(t) + initList(t.data.rows) + } + })) + } + + private fun initList(rows: List) { + if (rows.isEmpty()) { + adapter.submitList(null) + adapter.setStateViewLayout(mContext, R.layout.empty_view) + } else { + if (mRefreshPage === 1) { + adapter?.submitList(rows) + } else { + adapter?.addAll(rows) + } + } + } + + override fun getRefreshDate(stat: Int, page: Int, count: Int) { + if (stat ==2){ + binding.refresh.finishLoadMoreWithNoMoreData() + return + } + initData("") } } \ No newline at end of file diff --git a/app/src/main/java/com/dhsd/glowner/utils/CommonPopUtils.kt b/app/src/main/java/com/dhsd/glowner/utils/CommonPopUtils.kt index 523a58a..9a08a9b 100644 --- a/app/src/main/java/com/dhsd/glowner/utils/CommonPopUtils.kt +++ b/app/src/main/java/com/dhsd/glowner/utils/CommonPopUtils.kt @@ -9,6 +9,8 @@ import com.dahe.glex.bean.AppVersion import com.dahe.mylibrary.base.SingletonNoPHolder import com.dahe.mylibrary.callback.OnPicResultListener import com.dahe.mylibrary.pop.PopNorBottomPic +import com.dahe.mylibrary.utils.ConvertUtils +import com.dhsd.glowner.R import com.dhsd.glowner.bean.PopBean import com.dhsd.glowner.cuspop.OnCarSelectListener import com.dhsd.glowner.cuspop.PopBottomCar @@ -100,4 +102,32 @@ class CommonPopUtils private constructor() { .show() } + + /** + * 展示图片 + * @param context Context + * @param position Int + * @param recyclerView RecyclerView + * @param mutableList MutableList + */ + fun showPics( + context: Context, + imageView: ImageView? = null, + position: Int, + recyclerView: RecyclerView, + mutableList: List + ) { + XPopup.Builder(context) //.animationDuration(1000) + .isTouchThrough(true) + .asImageViewer( + imageView, position, mutableList, + false, true, -1, -1, ConvertUtils.dp2px(10F), false, + Color.rgb(32, 36, 46), + { popupView, position -> +// popupView.updateSrcView(recyclerView.getChildAt(position) as ImageView) + }, SmartGlideImageLoader(true, R.mipmap.ic_launcher), null + ) + .show() + } + } \ No newline at end of file diff --git a/app/src/main/java/com/dhsd/glowner/utils/OnLimitClickHelper.kt b/app/src/main/java/com/dhsd/glowner/utils/OnLimitClickHelper.kt index 8436ebe..3bd5ec7 100644 --- a/app/src/main/java/com/dhsd/glowner/utils/OnLimitClickHelper.kt +++ b/app/src/main/java/com/dhsd/glowner/utils/OnLimitClickHelper.kt @@ -29,6 +29,6 @@ class OnLimitClickHelper(onLimitClickListener: OnLimitClickListener?) : View.OnC } companion object { - const val LIMIT_TIME = 2000 + const val LIMIT_TIME = 1500 } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_know_cars.xml b/app/src/main/res/layout/activity_know_cars.xml new file mode 100644 index 0000000..9ba59ed --- /dev/null +++ b/app/src/main/res/layout/activity_know_cars.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_source_detail.xml b/app/src/main/res/layout/activity_source_detail.xml index bb783ab..e546d9e 100644 --- a/app/src/main/res/layout/activity_source_detail.xml +++ b/app/src/main/res/layout/activity_source_detail.xml @@ -4,39 +4,15 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/white" android:orientation="vertical"> - - - - - - + @@ -69,6 +45,7 @@ android:textSize="@dimen/sp_15" /> - - - - - - - - - - - - - + + + @@ -159,15 +82,15 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" - android:gravity="center" - android:padding="@dimen/dp_15"> + android:gravity="left" + android:padding="@dimen/dp_10"> @@ -178,48 +101,28 @@ android:layout_below="@+id/tvLoadDis" android:layout_marginTop="@dimen/dp_5" android:gravity="center" - android:text="距装货地约" + android:text="总里程" android:textColor="@color/color_9" android:textSize="@dimen/sp_12" android:textStyle="bold" /> - - - - - - + android:padding="@dimen/dp_10"> - - - - - - - - - - - - - - - - - - - @@ -365,6 +210,7 @@ android:textSize="@dimen/sp_15" /> + + + + + + +