Compare commits

..
2 Commits
Author SHA1 Message Date
lijia e3b6ba4f1c 实名认证url为空优化 2024-12-25 10:54:28 +08:00
lijia 58a3f502da 76版 打开权限设置工具类 2024-12-20 08:32:00 +08:00
45 changed files with 361 additions and 3472 deletions
+20 -28
View File
@@ -2,7 +2,8 @@ plugins {
id 'com.android.application' id 'com.android.application'
id 'kotlin-android' id 'kotlin-android'
id 'kotlin-kapt' id 'kotlin-kapt'
// id 'kotlin-android-extensions' id 'com.huawei.agconnect'
id 'kotlin-android-extensions'
} }
android { android {
@@ -37,17 +38,17 @@ android {
applicationId "com.arpa.hndahesudintocctmsdriver" applicationId "com.arpa.hndahesudintocctmsdriver"
minSdkVersion 24 minSdkVersion 24
targetSdkVersion 30 targetSdkVersion 30
versionCode 75 versionCode 76
versionName "3.4.5" versionName "3.4.6"
flavorDimensions "CHANNEL_VALUE" flavorDimensions "CHANNEL_VALUE"
flavorDimensions "app_icon" flavorDimensions "app_icon"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
javaCompileOptions { javaCompileOptions {
// annotationProcessorOptions { annotationProcessorOptions {
// includeCompileClasspath = true includeCompileClasspath = true
// arguments = [moduleName: project.getName()] arguments = [moduleName: project.getName()]
// } }
} }
ndk { ndk {
@@ -82,17 +83,17 @@ android {
kotlinOptions { kotlinOptions {
jvmTarget = '1.8' jvmTarget = '1.8'
} }
// allprojects { allprojects {
// repositories { repositories {
// maven { url "https://jitpack.io" } maven { url "https://jitpack.io" }
// } }
// } }
// repositories { repositories {
// flatDir { flatDir {
// dirs 'libs' dirs 'libs'
// } }
// } }
productFlavors { productFlavors {
qa { qa {
@@ -156,9 +157,6 @@ android {
dependencies { dependencies {
// implementation(fileTree("libs"))
// implementation(name: 'mdp-release', ext: 'aar')
implementation 'com.google.android.material:material:1.2.1' implementation 'com.google.android.material:material:1.2.1'
implementation 'androidx.constraintlayout:constraintlayout:2.0.1' implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
implementation 'com.caverock:androidsvg-aar:1.3' implementation 'com.caverock:androidsvg-aar:1.3'
@@ -188,8 +186,7 @@ dependencies {
implementation 'com.alibaba:fastjson:1.2.61' implementation 'com.alibaba:fastjson:1.2.61'
implementation 'org.bouncycastle:bcprov-jdk15on:1.55' implementation 'org.bouncycastle:bcprov-jdk15on:1.55'
implementation 'org.apache.commons:commons-lang3:3.5' implementation 'org.apache.commons:commons-lang3:3.5'
// implementation(name: 'locationgd-androidx_2.1.0', ext: 'aar')//交通厅 implementation(name: 'locationgd-androidx_2.1.0', ext: 'aar')//交通厅
implementation files('libs/locationgd-androidx_2.1.0.aar')
//安联 //安联
// implementation 'com.google.code.gson:gson:2.8.6' // implementation 'com.google.code.gson:gson:2.8.6'
implementation 'com.loopj.android:android-async-http:1.4.9' implementation 'com.loopj.android:android-async-http:1.4.9'
@@ -216,10 +213,8 @@ dependencies {
//EventBus //EventBus
implementation 'org.greenrobot:eventbus:3.1.1' implementation 'org.greenrobot:eventbus:3.1.1'
//易签宝 //易签宝
// implementation(name: 'EsignSDK', ext: 'aar') implementation(name: 'EsignSDK', ext: 'aar')
implementation 'pub.devrel:easypermissions:1.3.0' implementation 'pub.devrel:easypermissions:1.3.0'
implementation files('libs/EsignSDK.aar')
implementation "com.squareup.retrofit2:retrofit:2.4.0" implementation "com.squareup.retrofit2:retrofit:2.4.0"
// implementation "com.squareup.retrofit2:converter-gson:2.4.0" // implementation "com.squareup.retrofit2:converter-gson:2.4.0"
@@ -234,9 +229,6 @@ dependencies {
// //
implementation 'com.github.getActivity:XToast:8.2' implementation 'com.github.getActivity:XToast:8.2'
implementation files('libs/mdp-release.aar')
// implementation(name: 'mdp-release', ext: 'aar')
implementation project(path: ':mylibrary') implementation project(path: ':mylibrary')
} }
Binary file not shown.
+9 -36
View File
@@ -100,9 +100,8 @@
android:name="com.arpa.hndahesudintocctmsdriver.ui.auth.VehicleAuthActivity" android:name="com.arpa.hndahesudintocctmsdriver.ui.auth.VehicleAuthActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.home.shangchuan.ShangChuangImgActivity" android:name="com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan.ShangChuangImgActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait">
android:exported="true">
<intent-filter> <intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED" /> <action android:name="android.nfc.action.TAG_DISCOVERED" />
@@ -115,24 +114,8 @@
</activity> </activity>
<activity <activity
android:name=".ui.home.shangchuan.ShangChuangImgNewActivity" android:name="com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan.ShangChuangImgActivityBC"
android:screenOrientation="portrait" android:screenOrientation="portrait">
android:exported="true">
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
</activity>
<activity
android:name=".ui.home.shangchuan.ShangChuangImgActivityBC"
android:screenOrientation="portrait"
android:exported="true">
<intent-filter> <intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED" /> <action android:name="android.nfc.action.TAG_DISCOVERED" />
@@ -146,9 +129,8 @@
<activity <activity
android:name=".ui.home.shangchuan.ShangChuangImgActivity2" android:name="com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan.ShangChuangImgActivity2"
android:screenOrientation="portrait" android:screenOrientation="portrait">
android:exported="true">
<intent-filter> <intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED" /> <action android:name="android.nfc.action.TAG_DISCOVERED" />
@@ -272,12 +254,6 @@
android:name="com.alct.mdp.MDPLocationService" android:name="com.alct.mdp.MDPLocationService"
android:exported="true" android:exported="true"
android:process=":mdpLocation_v1" /> android:process=":mdpLocation_v1" />
<service
android:name="com.express.mdp.GpsService"
android:foregroundServiceType="location"
android:label="GPS服务"
android:priority="1000" />
<service <service
android:name="com.baidu.location.f" android:name="com.baidu.location.f"
android:enabled="true" android:enabled="true"
@@ -384,8 +360,7 @@
</intent-filter> </intent-filter>
</activity> </activity>
<activity android:name=".ui.NFCActivity" <activity android:name=".ui.NFCActivity">
android:exported="true">
<intent-filter> <intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED" /> <action android:name="android.nfc.action.TAG_DISCOVERED" />
@@ -399,8 +374,7 @@
<activity <activity
android:name=".H5Activity" android:name=".H5Activity"
android:launchMode="singleTask" android:launchMode="singleTask"
android:screenOrientation="portrait" android:screenOrientation="portrait">
android:exported="true">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.VIEW" /> <action android:name="android.intent.action.VIEW" />
@@ -428,8 +402,7 @@
<activity <activity
android:name=".H5Activity2" android:name=".H5Activity2"
android:launchMode="singleTask" android:launchMode="singleTask"
android:screenOrientation="portrait" android:screenOrientation="portrait">
android:exported="true">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.VIEW" /> <action android:name="android.intent.action.VIEW" />
@@ -232,6 +232,10 @@ public class H5Activity extends AppCompatActivity {
} else { } else {
String url = intent.getStringExtra("url"); String url = intent.getStringExtra("url");
if (TextUtils.isEmpty(url)) {
ActivityUtils.finishToActivity(MainActivity.class, false);
return;
}
viewFile = intent.getBooleanExtra("view_file", false); viewFile = intent.getBooleanExtra("view_file", false);
if (url.startsWith("alipay")) { if (url.startsWith("alipay")) {
try { try {
@@ -1,53 +0,0 @@
package com.arpa.hndahesudintocctmsdriver.bean;
import com.google.gson.annotations.SerializedName;
/**
* @ClassName GDImage
* @Author john
* @Date 2024/11/27 14:04
* @Description TODO
*/
public class GDImage extends GDLocation{
private String fileName;
private String fileData;
private String fileExt;
private String imageTakenDate;
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getFileData() {
return fileData;
}
public void setFileData(String fileData) {
this.fileData = fileData;
}
public String getFileExt() {
return fileExt;
}
public void setFileExt(String fileExt) {
this.fileExt = fileExt;
}
public String getImageTakenDate() {
return imageTakenDate;
}
public void setImageTakenDate(String imageTakenDate) {
this.imageTakenDate = imageTakenDate;
}
}
@@ -1,87 +0,0 @@
package com.arpa.hndahesudintocctmsdriver.bean;
import com.google.gson.annotations.SerializedName;
import java.io.Serializable;
/**
* @ClassName GDLocation
* @Author john
* @Date 2024/11/27 13:59
* @Description TODO
*/
public class GDLocation implements Serializable {
private double baiduLongitude;
private double baiduLatitude;
private String location;
private String time;
private double altitude;
private float speed;
private float direction;
private int interval;
public double getBaiduLongitude() {
return baiduLongitude;
}
public void setBaiduLongitude(double baiduLongitude) {
this.baiduLongitude = baiduLongitude;
}
public double getBaiduLatitude() {
return baiduLatitude;
}
public void setBaiduLatitude(double baiduLatitude) {
this.baiduLatitude = baiduLatitude;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public double getAltitude() {
return altitude;
}
public void setAltitude(double altitude) {
this.altitude = altitude;
}
public float getSpeed() {
return speed;
}
public void setSpeed(float speed) {
this.speed = speed;
}
public float getDirection() {
return direction;
}
public void setDirection(float direction) {
this.direction = direction;
}
public int getInterval() {
return interval;
}
public void setInterval(int interval) {
this.interval = interval;
}
}
@@ -1,19 +0,0 @@
package com.arpa.hndahesudintocctmsdriver.constant;
import com.arpa.hndahesudintocctmsdriver.BuildConfig;
/**
* @author hlh
* @version 1.0.0
* @date 2022/1/10 11:34
* @description:交通厅参数
*/
public class NewLJConstant {
public final static String ENTER_PRISE_CODE ="E0019169";
public final static String ENTER_PRISE_IDENTITY = BuildConfig.isTest?"95033cc3492e420d83d7f09eea1400ac":"9179388b0e0847e1862d6400f9cbc778";
public final static String ENTER_PRISE_KEY =BuildConfig.isTest?"e9844a9b0bba417e89cb8623489abd2f":"156d724e9701420198fcbd52cb1ca529";
}
@@ -1,12 +1,20 @@
package com.arpa.hndahesudintocctmsdriver.cuspop package com.arpa.hndahesudintocctmsdriver.cuspop
import android.Manifest
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.net.Uri import android.net.Uri
import android.view.View import android.view.View
import android.widget.TextView import android.widget.Toast
import androidx.fragment.app.FragmentActivity
import com.arpa.hndahesudintocctmsdriver.R import com.arpa.hndahesudintocctmsdriver.R
import com.arpa.hndahesudintocctmsdriver.util.alert.ToastUtil
import com.dahe.mylibrary.utils.ToastUtils
import com.lxj.xpopup.core.CenterPopupView import com.lxj.xpopup.core.CenterPopupView
import com.lxj.xpopup.util.XPermission
import com.permissionx.guolindev.PermissionX
import kotlinx.android.synthetic.main.load.view.*
import kotlinx.android.synthetic.main.pop_message_center.view.*
/** /**
@@ -30,14 +38,9 @@ class MessagePop(context: Context) : CenterPopupView(context), View.OnClickListe
} }
override fun getImplLayoutId() = R.layout.pop_message_center override fun getImplLayoutId() = R.layout.pop_message_center
private lateinit var tvPhone : TextView
override fun onCreate() { override fun onCreate() {
super.onCreate() super.onCreate()
val tvCancel = findViewById<View>(R.id.tvCancel) as TextView
val tvOk = findViewById<View>(R.id.tvOk) as TextView
tvPhone = findViewById<View>(R.id.tvPhone) as TextView
val tvContent = findViewById<View>(R.id.tvContent) as TextView
val tvMessage2 = findViewById<View>(R.id.tvMessage2) as TextView
tvCancel.setOnClickListener(this) tvCancel.setOnClickListener(this)
tvOk.setOnClickListener(this) tvOk.setOnClickListener(this)
tvPhone.setOnClickListener(this) tvPhone.setOnClickListener(this)
@@ -52,15 +55,15 @@ class MessagePop(context: Context) : CenterPopupView(context), View.OnClickListe
} }
R.id.tvOk,R.id.tvPhone -> { R.id.tvOk,R.id.tvPhone -> {
dismiss() dismiss()
// if (XPermission.create(context).isGranted(Manifest.permission.CALL_PHONE)){ if (XPermission.create(context).isGranted(Manifest.permission.CALL_PHONE)){
val toString = tvPhone.text.toString() val toString = tvPhone.text.toString()
val intent = Intent(Intent.ACTION_DIAL) val intent = Intent(Intent.ACTION_DIAL)
val data = Uri.parse("tel:$toString") val data = Uri.parse("tel:$toString")
intent.data = data intent.data = data
context.startActivity(intent) context.startActivity(intent)
// }else{ }else{
// ToastUtils.showToast(context,"请开启电话权限") ToastUtils.showToast(context,"请开启电话权限")
// } }
// BaseUtils.callPhone(content as Activity, tvPhone.text.toString()) // BaseUtils.callPhone(content as Activity, tvPhone.text.toString())
} }
@@ -2,9 +2,11 @@ package com.arpa.hndahesudintocctmsdriver.cuspop
import android.content.Context import android.content.Context
import android.view.View import android.view.View
import android.widget.TextView
import com.arpa.hndahesudintocctmsdriver.R import com.arpa.hndahesudintocctmsdriver.R
import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity
import com.lxj.xpopup.core.CenterPopupView import com.lxj.xpopup.core.CenterPopupView
import kotlinx.android.synthetic.main.pop_sim_center.view.*
import org.bouncycastle.jcajce.provider.symmetric.Rijndael
/** /**
@@ -31,10 +33,6 @@ class SimCenterPop(context: Context) : CenterPopupView(context), View.OnClickLis
override fun onCreate() { override fun onCreate() {
super.onCreate() super.onCreate()
val tvCancel = findViewById<View>(R.id.tvCancel) as TextView
val tvOk = findViewById<View>(R.id.tvOk) as TextView
val tvContent = findViewById<View>(R.id.tvContent) as TextView
tvCancel.text = titleLeft tvCancel.text = titleLeft
tvOk.text = titleReft tvOk.text = titleReft
tvCancel.setOnClickListener(this) tvCancel.setOnClickListener(this)
@@ -1,11 +1,11 @@
package com.arpa.hndahesudintocctmsdriver.cuspop package com.arpa.hndahesudintocctmsdriver.cuspop
import android.content.Context import android.content.Context
import android.view.View
import android.widget.TextView
import com.arpa.hndahesudintocctmsdriver.R import com.arpa.hndahesudintocctmsdriver.R
import com.lxj.xpopup.core.PositionPopupView import com.lxj.xpopup.core.PositionPopupView
import com.lxj.xpopup.enums.DragOrientation import com.lxj.xpopup.enums.DragOrientation
import kotlinx.android.synthetic.main.popup_qq_msg.view.tvMessage
import kotlinx.android.synthetic.main.popup_qq_msg.view.tvTitle
/** /**
* Description: 自定义自由定位Position弹窗 * Description: 自定义自由定位Position弹窗
@@ -30,9 +30,6 @@ class TopMsgPopup(context: Context,title:String, message: String) : PositionPopu
override fun onCreate() { override fun onCreate() {
super.onCreate() super.onCreate()
val tvMessage = findViewById<View>(R.id.tvMessage) as TextView
val tvTitle = findViewById<View>(R.id.tvTitle) as TextView
tvMessage.text = message tvMessage.text = message
tvTitle.text = title tvTitle.text = title
} }
@@ -12,10 +12,7 @@ import com.arpa.hndahesudintocctmsdriver.App;
import com.arpa.hndahesudintocctmsdriver.BuildConfig; import com.arpa.hndahesudintocctmsdriver.BuildConfig;
import com.arpa.hndahesudintocctmsdriver.parts.AuthParts; import com.arpa.hndahesudintocctmsdriver.parts.AuthParts;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils; import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
import com.arpa.hndahesudintocctmsdriver.util.NewLJUtils;
import com.arpa.hndahesudintocctmsdriver.util.msg.MsgUtil; import com.arpa.hndahesudintocctmsdriver.util.msg.MsgUtil;
import com.dahe.mylibrary.callback.OnGDDownloadResultListener;
import com.dahe.mylibrary.callback.OnGDResultListener;
import com.dahe.mylibrary.utils.ToastUtils; import com.dahe.mylibrary.utils.ToastUtils;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.arpa.hndahesudintocctmsdriver.bean.DriverAuthDataBean; import com.arpa.hndahesudintocctmsdriver.bean.DriverAuthDataBean;
@@ -50,49 +47,27 @@ public class ALProcess {
return; return;
} }
// Identity idy=new Identity(); Identity idy=new Identity();
// //企业代码 //企业代码
// idy.setEnterpriseCode(BuildConfig.isTest?ENTERPRISE_CODE_TEXT:ENTERPRISE_CODE); idy.setEnterpriseCode(BuildConfig.isTest?ENTERPRISE_CODE_TEXT:ENTERPRISE_CODE);
// //企业app的身份码 //企业app的身份码
// idy.setAppIdentity(BuildConfig.isTest?APP_IDENTITY_TEXT:APP_IDENTITY); idy.setAppIdentity(BuildConfig.isTest?APP_IDENTITY_TEXT:APP_IDENTITY);
// //企业app验证码 //企业app验证码
// idy.setAppKey(BuildConfig.isTest?APP_KEY_TEXT:APP_KEY); idy.setAppKey(BuildConfig.isTest?APP_KEY_TEXT:APP_KEY);
// //司机身份证 //司机身份证
// idy.setDriverIdentity(auth.getData().getIdcard()); idy.setDriverIdentity(auth.getData().getIdcard());
// //idy.setDriverIdentity("410725198311042012"); //idy.setDriverIdentity("410725198311042012");
// MDPLocationCollectionManager.register(con, idy, new OnResultListener() { MDPLocationCollectionManager.register(con, idy, new OnResultListener() {
// @Override
// public void onSuccess() {
// Log.e("--success--","验证成功");
// getFq(con);
// }
//
// @Override
// public void onFailure(java.lang.String s, java.lang.String s1) {
// Log.e("--error--",s+s1+"");
// new MessageUtils().showCenMessage(con,s1);
// }
// });
NewLJUtils.getInstance().getToken(con, new OnGDResultListener() {
@Override @Override
public void onSuccess() { public void onSuccess() {
NewLJUtils.getInstance().confirmInvoice(con, new OnGDResultListener() { Log.e("--success--","验证成功");
@Override getFq(con);
public void onSuccess() {
}
@Override
public void onFailure(String var1, String var2) {
}
});
} }
@Override @Override
public void onFailure(String var1, String var2) { public void onFailure(java.lang.String s, java.lang.String s1) {
Log.e("--error--",s+s1+"");
new MessageUtils().showCenMessage(con,s1);
} }
}); });
} }
@@ -158,69 +133,31 @@ public class ALProcess {
public static void verification(Context con,Handler hd){ public static void verification(Context con,Handler hd){
DriverAuthDataBean auth= AuthParts.getAuth(con); DriverAuthDataBean auth= AuthParts.getAuth(con);
if (auth==null){ Identity idy=new Identity();
return; //企业代码
} idy.setEnterpriseCode(BuildConfig.isTest?ENTERPRISE_CODE_TEXT:ENTERPRISE_CODE);
// Identity idy=new Identity(); //企业app的身份码
// //企业代码 idy.setAppIdentity(BuildConfig.isTest?APP_IDENTITY_TEXT:APP_IDENTITY);
// idy.setEnterpriseCode(BuildConfig.isTest?ENTERPRISE_CODE_TEXT:ENTERPRISE_CODE); //企业app验证码
// //企业app的身份码 idy.setAppKey(BuildConfig.isTest?APP_KEY_TEXT:APP_KEY);
// idy.setAppIdentity(BuildConfig.isTest?APP_IDENTITY_TEXT:APP_IDENTITY); //司机身份证
// //企业app验证码 idy.setDriverIdentity(auth.getData().getIdcard());
// idy.setAppKey(BuildConfig.isTest?APP_KEY_TEXT:APP_KEY); //idy.setDriverIdentity("410725198311042012");
// //司机身份证 MDPLocationCollectionManager.register(con, idy, new OnResultListener() {
// idy.setDriverIdentity(auth.getData().getIdcard());
// //idy.setDriverIdentity("410725198311042012");
// MDPLocationCollectionManager.register(con, idy, new OnResultListener() {
// @Override
// public void onSuccess() {
// MsgUtil.addHdMsgWatBody(hd, 1111,"认证成功");
// Log.e("--success--","验证成功");
// getFq(con);
// }
//
// @Override
// public void onFailure(java.lang.String s, java.lang.String s1) {
// Log.e("--error--",s+s1+"");
// MsgUtil.addHdMsgWatBody(hd, 2222,s1);
//// new MessageUtils().showCenMessage(con,s1);
// }
// });
NewLJUtils.getInstance().searchDriver(con, auth.getData().getIdcard(), new OnGDDownloadResultListener(){
@Override @Override
public void onSuccess(String var1) { public void onSuccess() {
MsgUtil.addHdMsgWatBody(hd, 1111,"认证成功"); MsgUtil.addHdMsgWatBody(hd, 1111,"认证成功");
Log.e("--success--","验证成功");
getFq(con);
} }
@Override @Override
public void onFailure(String var1, String var2) { public void onFailure(java.lang.String s, java.lang.String s1) {
MsgUtil.addHdMsgWatBody(hd, 2222,var2); Log.e("--error--",s+s1+"");
MsgUtil.addHdMsgWatBody(hd, 2222,s1);
// new MessageUtils().showCenMessage(con,s1);
} }
}); });
// NewLJUtils.getInstance().getToken(con, new OnGDResultListener() {
// @Override
// public void onSuccess() {
// NewLJUtils.getInstance().confirmInvoice(con, new OnGDResultListener() {
// @Override
// public void onSuccess() {
//
// }
//
// @Override
// public void onFailure(String var1, String var2) {
//
// }
// });
// }
//
// @Override
// public void onFailure(String var1, String var2) {
//
// }
// });
} }
} }
@@ -119,6 +119,9 @@ public class JTTProcess {
//参数 ShippingNoteInfo 和 start 接口中的参数 ShippingNoteInfo 相 //参数 ShippingNoteInfo 和 start 接口中的参数 ShippingNoteInfo 相
//同,这里 shippingNoteInfo 信息只需传入运单号和分单号即可 //同,这里 shippingNoteInfo 信息只需传入运单号和分单号即可
public static void send(Context con,StartOrderBean sob,String remark){ public static void send(Context con,StartOrderBean sob,String remark){
if (sob.getData()==null){
return;
}
ShippingNoteInfo[] snis=new ShippingNoteInfo[1]; ShippingNoteInfo[] snis=new ShippingNoteInfo[1];
ShippingNoteInfo sni=new ShippingNoteInfo(); ShippingNoteInfo sni=new ShippingNoteInfo();
sni.setShippingNoteNumber(sob.getData().getShippingNoteNumber()); sni.setShippingNoteNumber(sob.getData().getShippingNoteNumber());
@@ -1,40 +0,0 @@
package com.arpa.hndahesudintocctmsdriver.request.bean.newlj;
import java.io.Serializable;
/**
* @ClassName InvoiceBean
* @Author john
* @Date 2024/11/25 17:06
* @Description TODO
*/
public class InvoiceBean implements Serializable {
private String driverIdentification;
private String driverInvoiceCode;
private String enterpriseCode;
public String getDriverIdentification() {
return driverIdentification;
}
public void setDriverIdentification(String driverIdentification) {
this.driverIdentification = driverIdentification;
}
public String getDriverInvoiceCode() {
return driverInvoiceCode;
}
public void setDriverInvoiceCode(String driverInvoiceCode) {
this.driverInvoiceCode = driverInvoiceCode;
}
public String getEnterpriseCode() {
return enterpriseCode;
}
public void setEnterpriseCode(String enterpriseCode) {
this.enterpriseCode = enterpriseCode;
}
}
@@ -1,135 +0,0 @@
package com.arpa.hndahesudintocctmsdriver.request.bean.newlj;
import java.io.Serializable;
import java.util.List;
/**
* @ClassName InvoicesBean
* @Author john
* @Date 2024/11/29 13:08
* @Description TODO
*/
public class InvoicesBean implements Serializable {
private String totalPage;
private String totalCount;
private String pageSize;
private String currentPage;
private String sortField;
private String sortDirection;
private List<DataDTO> driverInvoices;
public String getTotalPage() {
return totalPage;
}
public void setTotalPage(String totalPage) {
this.totalPage = totalPage;
}
public String getTotalCount() {
return totalCount;
}
public void setTotalCount(String totalCount) {
this.totalCount = totalCount;
}
public String getPageSize() {
return pageSize;
}
public void setPageSize(String pageSize) {
this.pageSize = pageSize;
}
public String getCurrentPage() {
return currentPage;
}
public void setCurrentPage(String currentPage) {
this.currentPage = currentPage;
}
public String getSortField() {
return sortField;
}
public void setSortField(String sortField) {
this.sortField = sortField;
}
public String getSortDirection() {
return sortDirection;
}
public void setSortDirection(String sortDirection) {
this.sortDirection = sortDirection;
}
public List<DataDTO> getDriverInvoices() {
return driverInvoices;
}
public void setDriverInvoices(List<DataDTO> driverInvoices) {
this.driverInvoices = driverInvoices;
}
public static class DataDTO{
private String taxAmount;
private String totalAmount;
private String invoiceReceiverName;
private String totalAmountIncludeTax;
private String driverInvoiceCode;
private String taxRate;
public String getTaxAmount() {
return taxAmount;
}
public void setTaxAmount(String taxAmount) {
this.taxAmount = taxAmount;
}
public String getTotalAmount() {
return totalAmount;
}
public void setTotalAmount(String totalAmount) {
this.totalAmount = totalAmount;
}
public String getInvoiceReceiverName() {
return invoiceReceiverName;
}
public void setInvoiceReceiverName(String invoiceReceiverName) {
this.invoiceReceiverName = invoiceReceiverName;
}
public String getTotalAmountIncludeTax() {
return totalAmountIncludeTax;
}
public void setTotalAmountIncludeTax(String totalAmountIncludeTax) {
this.totalAmountIncludeTax = totalAmountIncludeTax;
}
public String getDriverInvoiceCode() {
return driverInvoiceCode;
}
public void setDriverInvoiceCode(String driverInvoiceCode) {
this.driverInvoiceCode = driverInvoiceCode;
}
public String getTaxRate() {
return taxRate;
}
public void setTaxRate(String taxRate) {
this.taxRate = taxRate;
}
}
}
@@ -1,41 +0,0 @@
package com.arpa.hndahesudintocctmsdriver.request.bean.newlj;
import java.io.Serializable;
/**
* @ClassName LjTokenBean
* @Author john
* @Date 2024/11/25 10:05
* @Description TODO
*/
public class LjTokenBean implements Serializable {
private String enterpriseCode;
private String enterpriseIdentity;
private String enterpriseKey;
public String getEnterpriseCode() {
return enterpriseCode;
}
public void setEnterpriseCode(String enterpriseCode) {
this.enterpriseCode = enterpriseCode;
}
public String getEnterpriseIdentity() {
return enterpriseIdentity;
}
public void setEnterpriseIdentity(String enterpriseIdentity) {
this.enterpriseIdentity = enterpriseIdentity;
}
public String getEnterpriseKey() {
return enterpriseKey;
}
public void setEnterpriseKey(String enterpriseKey) {
this.enterpriseKey = enterpriseKey;
}
}
@@ -1,109 +0,0 @@
package com.arpa.hndahesudintocctmsdriver.request.bean.newlj;
import com.alct.mdp.model.Location;
import com.arpa.hndahesudintocctmsdriver.bean.GDLocation;
import java.io.Serializable;
/**
* @ClassName PickupBean
* @Author john
* @Date 2024/11/25 10:19
* @Description TODO
*/
public class PickupBean implements Serializable {
private String shipmentCode;
private String enterpriseCode;
private GDLocation location;
public String getShipmentCode() {
return shipmentCode;
}
public void setShipmentCode(String shipmentCode) {
this.shipmentCode = shipmentCode;
}
public String getEnterpriseCode() {
return enterpriseCode;
}
public void setEnterpriseCode(String enterpriseCode) {
this.enterpriseCode = enterpriseCode;
}
public GDLocation getLocation() {
return location;
}
public void setLocation(GDLocation location) {
this.location = location;
}
public static class LocationDTO {
private String time;
private double baiduLatitude;
private double baiduLongitude;
private double altitude;
private double speed;
private double bearing;
private String location;
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public double getBaiduLatitude() {
return baiduLatitude;
}
public void setBaiduLatitude(double baiduLatitude) {
this.baiduLatitude = baiduLatitude;
}
public double getBaiduLongitude() {
return baiduLongitude;
}
public void setBaiduLongitude(double baiduLongitude) {
this.baiduLongitude = baiduLongitude;
}
public double getAltitude() {
return altitude;
}
public void setAltitude(double altitude) {
this.altitude = altitude;
}
public double getSpeed() {
return speed;
}
public void setSpeed(double speed) {
this.speed = speed;
}
public double getBearing() {
return bearing;
}
public void setBearing(double bearing) {
this.bearing = bearing;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
}
}
@@ -1,31 +0,0 @@
package com.arpa.hndahesudintocctmsdriver.request.bean.newlj;
import java.io.Serializable;
/**
* @ClassName ShipmentStatusBean
* @Author john
* @Date 2024/11/25 17:16
* @Description TODO
*/
public class ShipmentStatusBean implements Serializable {
private String shipmentCode;
private String enterpriseCode;
public String getShipmentCode() {
return shipmentCode;
}
public void setShipmentCode(String shipmentCode) {
this.shipmentCode = shipmentCode;
}
public String getEnterpriseCode() {
return enterpriseCode;
}
public void setEnterpriseCode(String enterpriseCode) {
this.enterpriseCode = enterpriseCode;
}
}
@@ -1,118 +0,0 @@
package com.arpa.hndahesudintocctmsdriver.request.bean.newlj;
import com.alct.mdp.model.Image;
import com.arpa.hndahesudintocctmsdriver.bean.GDImage;
import java.io.Serializable;
/**
* @ClassName UpimgBean
* @Author john
* @Date 2024/11/25 14:36
* @Description TODO
*/
public class UpimgBean implements Serializable {
private String shipmentCode;
private String enterpriseCode;
private GDImage image;
public String getShipmentCode() {
return shipmentCode;
}
public void setShipmentCode(String shipmentCode) {
this.shipmentCode = shipmentCode;
}
public String getEnterpriseCode() {
return enterpriseCode;
}
public void setEnterpriseCode(String enterpriseCode) {
this.enterpriseCode = enterpriseCode;
}
public GDImage getImage() {
return image;
}
public void setImage(GDImage image) {
this.image = image;
}
public static class ImageDTO {
private String fileName;
private String fileExt;
private double baiduLongitude;
private double baiduLatitude;
private String location;
private String imageTakenDate;
private String time;
private String fileData;
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getFileExt() {
return fileExt;
}
public void setFileExt(String fileExt) {
this.fileExt = fileExt;
}
public double getBaiduLongitude() {
return baiduLongitude;
}
public void setBaiduLongitude(double baiduLongitude) {
this.baiduLongitude = baiduLongitude;
}
public double getBaiduLatitude() {
return baiduLatitude;
}
public void setBaiduLatitude(double baiduLatitude) {
this.baiduLatitude = baiduLatitude;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public String getImageTakenDate() {
return imageTakenDate;
}
public void setImageTakenDate(String imageTakenDate) {
this.imageTakenDate = imageTakenDate;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getFileData() {
return fileData;
}
public void setFileData(String fileData) {
this.fileData = fileData;
}
}
}
@@ -4,23 +4,11 @@ package com.arpa.hndahesudintocctmsdriver.request.net;
import com.arpa.hndahesudintocctmsdriver.BuildConfig; import com.arpa.hndahesudintocctmsdriver.BuildConfig;
import com.arpa.hndahesudintocctmsdriver.bean.UserBean; import com.arpa.hndahesudintocctmsdriver.bean.UserBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.LoginRegInputBean; import com.arpa.hndahesudintocctmsdriver.request.bean.LoginRegInputBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.InvoiceBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.InvoicesBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.LjTokenBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.PickupBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.ShipmentStatusBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.UpimgBean;
import com.dahe.mylibrary.net.CommonResponseBean; import com.dahe.mylibrary.net.CommonResponseBean;
import java.util.HashMap;
import io.reactivex.rxjava3.core.Observable; import io.reactivex.rxjava3.core.Observable;
import retrofit2.Call;
import retrofit2.http.Body; import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST; import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Path;
import retrofit2.http.Query; import retrofit2.http.Query;
/** /**
@@ -29,7 +17,7 @@ import retrofit2.http.Query;
public interface Api { public interface Api {
String BASE_URL = BuildConfig.isTest? "http://api.kehui56.cn/api/v1/":"https://api.kehui56.com/api/v1/"; String BASE_URL = BuildConfig.BASE_URL;
//获取版本 //获取版本
@@ -38,119 +26,5 @@ public interface Api {
// @POST(BASE_URL+"/common/register") // @POST(BASE_URL+"/common/register")
// Observable<CommonResponseBean> log(@Body LoginRegInputBean bean); // Observable<CommonResponseBean> log(@Body LoginRegInputBean bean);
@POST(BASE_URL+"openapi/enterprises/login")
Observable<CommonResponseBean> getToken(@Body LjTokenBean bean);
@POST(BASE_URL+"openapi/enterprises/login")
Call<HashMap<String, String>> getRefreshToken(@Body LjTokenBean bean);
/**
* 刷新token
* @return
*/
@POST(BASE_URL+"openapi/enterprises/refresh-token/{refreshToken}")
Observable<CommonResponseBean> refreshToken(@Path("refreshToken") String refreshToken);
/**
* 运单提货
* @param bean
* @return
*/
@POST(BASE_URL+"openapi/shipments/pickup")
Observable<CommonResponseBean> pickup(@Body PickupBean bean);
/**
* 运单卸货
* @param bean
* @return
*/
@POST(BASE_URL+"openapi/shipments/unload")
Observable<CommonResponseBean> unload(@Body PickupBean bean);
/**
* 运单签收
* @param bean
* @return
*/
@POST(BASE_URL+"openapi/shipments/sign")
Observable<CommonResponseBean> sign(@Body PickupBean bean);
/**
* 运单回单
* @param bean
* @return
*/
@POST(BASE_URL+"openapi/shipments/pod")
Observable<CommonResponseBean> pod(@Body PickupBean bean);
/**
* 运单提货照片上传
* @param bean
* @return
*/
@POST(BASE_URL+"openapi/shipments/uploadPickupImage")
Observable<CommonResponseBean> uploadPickupImage(@Body UpimgBean bean);
/**
* 运单卸货照片上传
* @param bean
* @return
*/
@POST(BASE_URL+"openapi/shipments/uploadUnloadImage")
Observable<CommonResponseBean> uploadUnloadImage(@Body UpimgBean bean);
/**
* 运单回单照片上传
* @param bean
* @return
*/
@POST(BASE_URL+"openapi/shipments/uploadPODImage")
Observable<CommonResponseBean> uploadPODImage(@Body UpimgBean bean);
/**
* 同意发票申请
* @param bean
* @return
*/
@PUT(BASE_URL+"openapi/confirmInvoice")
Observable<CommonResponseBean> confirmInvoice(@Body InvoiceBean bean);
/**
* 待同意发票列表获取
* @param enterpriseCodeParam
* @param driverIdentification
* @param currentPage
* @param pageSize
* @return
*/
@GET(BASE_URL+"openapi/getInvoices")
Observable<CommonResponseBean<InvoicesBean>> getInvoices(@Query("enterpriseCodeParam") String enterpriseCodeParam,
@Query("driverIdentification") String driverIdentification,
@Query("currentPage") int currentPage,
@Query("pageSize") int pageSize);
/**
* 获取运单状态
* @param bean
* @return
*/
@POST(BASE_URL+"/openapi/getShipmentStatus")
Observable<CommonResponseBean> getShipmentStatus(@Body ShipmentStatusBean bean);
@POST(BASE_URL+"/openapi/shipments/getPODImageNames")
Observable<CommonResponseBean> getPODImageNames(@Body ShipmentStatusBean bean);
@GET(BASE_URL+"/openapi/drivers")
Observable<CommonResponseBean> searchDriver(@Query("identityNo") String identityNo);
} }
@@ -1,114 +0,0 @@
package com.arpa.hndahesudintocctmsdriver.request.net
import okhttp3.Interceptor
import okhttp3.Request
import okio.IOException
import retrofit2.Response
import java.util.concurrent.atomic.AtomicBoolean
/**
* @ClassName ApiInterceptor
* @Author john
* @Date 2024/11/29 17:05
* @Description TODO
*/
class ApiInterceptor : Interceptor {
// 需要验证token的接口的路径集合
// private val checkTokenInterface = arrayListOf(
// "/example/user/info,
// "/example/user/info/edit"
// )
// 是否正在刷新token
// 使用AtomicBoolean,确保多线程中获取的值一致
// private var refreshingToken = AtomicBoolean(false)
//
// private val authHeaderKey = "token-key"
//
// // 当前token
// private var currentToken = "tokenValue"
// override fun intercept(chain: Interceptor.Chain): Response {
// 根据接口路径判断是否需要验证token
// val checkToken = checkTokenInterface.contains(chain.request().url.encodedPath)
// // 需要验证token则添加请求头,不需要则保持原样
// var request = if (checkToken) {
// chain.request().newBuilder()
// .addHeader(authHeaderKey, currentToken)
// .build()
// } else {
// chain.request()
// }
// // 获取响应
// var response = chain.proceed(request)
// if (checkToken) {
// // 需要验证token,处理响应,判断token是否过期
// response.body?.let { responseBody ->
// try {
// if (判断token过期的条件) {
// runBlocking {
// // 请求头中的token与currentToken仍然一样则需要刷新token
// // 确保多线程中不会重复刷新
// if (request.header(authHeaderKey) == currentToken){
// // 标记为正在刷新token
// if (refreshingToken.compareAndSet(false, true)) {
// refreshToken(chain).takeIf { it.isNotEmpty() && it.isNotBlank() }?.let { newToken ->
// // 保存newToken
// currentToken = newToken
// }
// // 标记为刷新token已结束
// refreshingToken.set(false)
// }
// }
// // async{}.await()会等待方法块内的代码执行完毕。
// // 等到refreshingToken为false时才会执行后续代码。
// if (async { stopRefreshingToken() }.await()) {
// // 携带newToken执行原请求获取响应
// response = chain.proceed(chain.request().newBuilder()
// .addHeader(authHeaderKey, currentToken)
// .build())
// }
// }
// }
// } catch (e: Exception) {
// e.printStackTrace()
// }
// }
// }
// // 返回最终的响应结果。
// // 刷新token也可能失败,此时返回原响应,可以让用户重新登录。
// return response
// }
//
// private fun refreshToken(chain: Interceptor.Chain): String {
// // 创建刷新token的请求
// val refreshTokenRequest = Request.Builder()
// .url("refresh token url")
// .addHeader(authHeaderKey, currentToken)
// .get()
// .build()
// return try {
// // 获取响应并解析获得新token
// val refreshTokenResponse = chain.proceed(refreshTokenRequest)
// refreshTokenResponse.token
// } catch (e: IOException) {
// // 失败时返回空字符串
// ""
// }
// }
//
// private suspend fun stopRefreshingToken(): Boolean {
// return if (refreshingToken.get()) {
// // 仍在刷新token中,延迟1秒后再次执行此方法
// delay(1000)
// stopRefreshingToken()
// } else {
// true
// }
// }
override fun intercept(chain: Interceptor.Chain): okhttp3.Response {
TODO("Not yet implemented")
}
}
@@ -37,7 +37,7 @@ public class BaseObserver<T> implements Observer<CommonResponseBean<T>> {
@Override @Override
public void onNext(CommonResponseBean<T> tCommonResponseBean) { public void onNext(CommonResponseBean<T> tCommonResponseBean) {
if ("0".equals(tCommonResponseBean.getCode())) { if (200==tCommonResponseBean.getCode()) {
mRxHttpCallBack.onSuccess(tCommonResponseBean); mRxHttpCallBack.onSuccess(tCommonResponseBean);
} else { } else {
mRxHttpCallBack.onCodeError(mContext, tCommonResponseBean); mRxHttpCallBack.onCodeError(mContext, tCommonResponseBean);
@@ -2,6 +2,7 @@ package com.arpa.hndahesudintocctmsdriver.request.net;
import com.dahe.mylibrary.CommonBaseLibrary; import com.dahe.mylibrary.CommonBaseLibrary;
import com.dahe.mylibrary.net.JsonInterceptor;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@@ -1,119 +0,0 @@
package com.arpa.hndahesudintocctmsdriver.request.net;
import static com.dahe.mylibrary.utils.BaseSPUtils.NEW_LJ_TOKEN;
import android.text.TextUtils;
import android.util.Log;
import com.arpa.hndahesudintocctmsdriver.App;
import com.arpa.hndahesudintocctmsdriver.constant.NewLJConstant;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.LjTokenBean;
import com.arpa.hndahesudintocctmsdriver.util.NewLJUtils;
import com.arpa.hndahesudintocctmsdriver.util.SPUtils;
import com.dahe.mylibrary.CommonBaseLibrary;
import com.dahe.mylibrary.net.CommonResponseBean;
import com.dahe.mylibrary.net.ResultException;
import org.json.JSONObject;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import io.reactivex.rxjava3.core.Observable;
import kotlin.jvm.Synchronized;
import okhttp3.Interceptor;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.ResponseBody;
import okio.Buffer;
import okio.BufferedSource;
/**
* json的Interceptor
*/
public class JsonInterceptor implements Interceptor {
private static final String TAG = "JsonInterceptor";
public JsonInterceptor() {
}
// 使用AtomicBoolean,确保多线程中获取的值一致
private AtomicBoolean refreshingToken = new AtomicBoolean(false);
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
Response response = chain.proceed(request);
ResponseBody responseBody = response.body();
//为了不消耗buffer,我们这里使用source先获得buffer对象,然后clone()后使用
BufferedSource source = responseBody.source();
source.request(Long.MAX_VALUE); // Buffer the entire body.
//获得返回的数据
Buffer buffer = source.buffer();
//使用前clone()下,避免直接消耗
String responseBodyStr = buffer.clone().readString(Charset.forName("UTF-8"));
Log.i(TAG, "result-body= " + responseBodyStr);
try {
JSONObject jsonObject = new JSONObject(responseBodyStr);
String str = jsonObject.optString("data");
int code = jsonObject.optInt("code");
if (401 == code) {
refreshToken();
// if (execute.body() != null) {
// String refreshToken = execute.body().get("token");
// SPUtils.put(App.getApp(), NEW_LJ_TOKEN, refreshToken);
// }
response.close();
try {
return chain.proceed(request);
} catch (IOException e) {
e.printStackTrace();
}
}
if (-1 == code) {
jsonObject.put("data", new JSONObject());
throw new ResultException();
} else {
if (TextUtils.isEmpty(str)) {
jsonObject.put("data", new JSONObject());
}
}
String data = jsonObject.toString();
responseBody = ResponseBody.create(MediaType.parse("application/json; charset=utf-8"), data);
} catch (Exception e) {
e.printStackTrace();
}
response = response.newBuilder().body(responseBody).build();
return response;
}
@Synchronized
private void refreshToken() throws IOException {
Api api = CommonBaseLibrary.getRetrofit().newBuilder()
.client(new OkHttpClient.Builder()
.connectTimeout(30, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.writeTimeout(30, TimeUnit.SECONDS)
.build())
// .addNetworkInterceptor(new TokenInterceptor())
.build().create(Api.class);
LjTokenBean ljTokenBean = new LjTokenBean();
ljTokenBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
ljTokenBean.setEnterpriseIdentity(NewLJConstant.ENTER_PRISE_IDENTITY);
ljTokenBean.setEnterpriseKey(NewLJConstant.ENTER_PRISE_KEY);
retrofit2.Response<HashMap<String, String>> execute = api.getRefreshToken(ljTokenBean).execute();
if (execute.body() != null) {
String refreshToken = execute.body().get("token");
SPUtils.put(App.getApp(), NEW_LJ_TOKEN, refreshToken);
}
}
}
@@ -1,7 +1,5 @@
package com.arpa.hndahesudintocctmsdriver.request.net; package com.arpa.hndahesudintocctmsdriver.request.net;
import static com.dahe.mylibrary.utils.BaseSPUtils.NEW_LJ_TOKEN;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
@@ -29,10 +27,9 @@ public class RequestHeadInterceptor implements Interceptor {
@Override @Override
public Response intercept(Chain chain) throws IOException { public Response intercept(Chain chain) throws IOException {
Request.Builder builder = chain.request().newBuilder(); Request.Builder builder = chain.request().newBuilder();
String token = SPUtils.get(App.getApp(), NEW_LJ_TOKEN, "").toString(); if (!TextUtils.isEmpty(SPUtil.getSP(App.getApp(), LoginActivity.USER,LoginActivity.USER_TOKEN))) {
if (!TextUtils.isEmpty(token)) {
// builder.addHeader("Authorization", SPUtils.getUserInfo(App.getApp()).getToken()); // builder.addHeader("Authorization", SPUtils.getUserInfo(App.getApp()).getToken());
builder.addHeader("token", token); builder.addHeader("Authorization", SPUtil.getSP(App.getApp(), LoginActivity.USER,LoginActivity.USER_TOKEN));
} }
Request request = builder Request request = builder
.addHeader("versionCode", AppUtils.getAppVersionCode() + "") .addHeader("versionCode", AppUtils.getAppVersionCode() + "")
@@ -11,7 +11,6 @@ import android.view.Window;
import com.arpa.hndahesudintocctmsdriver.ui.MainActivity; import com.arpa.hndahesudintocctmsdriver.ui.MainActivity;
import com.arpa.hndahesudintocctmsdriver.ui.UiAuxiliary; import com.arpa.hndahesudintocctmsdriver.ui.UiAuxiliary;
import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity; import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity;
import com.arpa.hndahesudintocctmsdriver.util.NewLJUtils;
import com.dahe.mylibrary.net.CommonResponseBean; import com.dahe.mylibrary.net.CommonResponseBean;
import com.dahe.mylibrary.net.ResultException; import com.dahe.mylibrary.net.ResultException;
import com.dahe.mylibrary.utils.ToastUtils; import com.dahe.mylibrary.utils.ToastUtils;
@@ -87,15 +86,14 @@ public abstract class RxHttpCallBack<T> {
dialog.dismiss(); dialog.dismiss();
} }
if ("401".equals(t.getCode())) { if (t.getCode() == 401) {
// NewLJUtils.getInstance().refreshToken(mContext); UiAuxiliary.delLogin(mContext);
// UiAuxiliary.delLogin(mContext); Intent intent = new Intent(mContext, MainActivity.class);
// Intent intent = new Intent(mContext, MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
// intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); mContext.startActivity(intent);
// mContext.startActivity(intent); ToastUtils.showToast(mContext,"您的账号再异地登录,请重新登录");
// ToastUtils.showToast(mContext,"您的账号再异地登录,请重新登录");
}else{ }else{
// ToastUtils.showToast(mContext,t.getMessage()); ToastUtils.showToast(mContext,t.getMsg());
} }
// if (t.getMessage().getMsg_code() == 100 && SPUtils.hasUserInfo(mContext)) { // if (t.getMessage().getMsg_code() == 100 && SPUtils.hasUserInfo(mContext)) {
@@ -1,89 +0,0 @@
package com.arpa.hndahesudintocctmsdriver.service;
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.IBinder;
import androidx.annotation.Nullable;
import androidx.core.app.NotificationCompat;
import com.arpa.hndahesudintocctmsdriver.R;
import com.express.mdp.gps.a;
/**
* @ClassName TrackForeService
* @Author john
* @Date 2024/12/2 13:12
* @Description TODO
*/
public class TrackForeService extends Service {
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
// String var3 = "channelId" + System.currentTimeMillis();
// NotificationCompat.Builder var4;
// NotificationCompat.Builder var10001 = var4 = new NotificationCompat.Builder;
// var4.<init>(this, var3);
// var4.setContentText("运单轨迹服务");
// var4.setContentTitle("");
// var10001.setSmallIcon(var1);
// var10001.setAutoCancel(false);
// var10001.setShowWhen(true);
// var10001.setWhen(System.currentTimeMillis());
// var10001.setPriority(2);
// var10001.setOngoing(true);
// var10001.setDefaults(-1);
// NotificationManager var7 = (NotificationManager)this.getSystemService("notification");
// if (Build.VERSION.SDK_INT >= 26) {
// NotificationChannel var5;
// var5 = new NotificationChannel.<init>(var3, var2, 4);
// var7.createNotificationChannel(var5);
// var4.setChannelId(var3);
// }
//
// a var10000 = this;
// Notification var6 = var4.build();
// var4.setContentIntent((PendingIntent)null);
// var7.notify(6, var6);
// var10000.startForeground(6, var6);
// 判断是否为8.0版本以上
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
// 获取系统服务管理器
NotificationManager manage = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
String id = "channelId" + System.currentTimeMillis();
String name = "通知分类名称";
// 建立通知通道
NotificationChannel notificationChannel = new NotificationChannel(id, name, NotificationManager.IMPORTANCE_DEFAULT);
manage.createNotificationChannel(notificationChannel);
Notification build = new NotificationCompat.Builder(this, id)
.setContentTitle("前台服务")
.setContentText("运单轨迹服务")
.setWhen(System.currentTimeMillis()) // 当前时间
.setSmallIcon(R.drawable.ic_launcher_background) // 图标
.setProgress(100, 10, false) // 进度
.build();
// 第一个参数唯一就好
startForeground(1, build);
manage.notify(1, build);
}
}}
@@ -1,7 +1,5 @@
package com.arpa.hndahesudintocctmsdriver.ui; package com.arpa.hndahesudintocctmsdriver.ui;
import static com.dahe.mylibrary.utils.BaseSPUtils.NEW_LJ_TOKEN;
import android.content.Context; import android.content.Context;
import com.arpa.hndahesudintocctmsdriver.event.HomeEvent; import com.arpa.hndahesudintocctmsdriver.event.HomeEvent;
@@ -43,7 +41,6 @@ public class UiAuxiliary {
public static void delLogin(Context con){ public static void delLogin(Context con){
// JPushInterface.deleteAlias(con,0); // JPushInterface.deleteAlias(con,0);
SPUtils.remove(con,"curWaybillId"); SPUtils.remove(con,"curWaybillId");
SPUtils.remove(con,NEW_LJ_TOKEN);
SPUtil.insSP(con,LoginActivity.USER,LoginActivity.USER_TOKEN,""); SPUtil.insSP(con,LoginActivity.USER,LoginActivity.USER_TOKEN,"");
SPUtil.insSP(con,LoginActivity.USER,LoginActivity.USER_UNAME,""); SPUtil.insSP(con,LoginActivity.USER,LoginActivity.USER_UNAME,"");
SPUtil.insSP(con,LoginActivity.USER,LoginActivity.USER_RNAME,""); SPUtil.insSP(con,LoginActivity.USER,LoginActivity.USER_RNAME,"");
@@ -460,7 +460,6 @@ public class HomeFragment extends BaseFragment {
}); });
btn_update.setOnClickListener(v -> { btn_update.setOnClickListener(v -> {
getRequest(); getRequest();
refreshWaybills();
}); });
home_top.setOnClickListener(v -> { home_top.setOnClickListener(v -> {
if (!UiAuxiliary.isLogin(con)) { if (!UiAuxiliary.isLogin(con)) {
@@ -521,7 +520,6 @@ public class HomeFragment extends BaseFragment {
Log.e("下拉刷新", "pps"); Log.e("下拉刷新", "pps");
keys = true; keys = true;
getRequest(); getRequest();
refreshWaybills();
}); });
} }
@@ -786,7 +784,6 @@ public class HomeFragment extends BaseFragment {
*/ */
public void initMap() { public void initMap() {
getRequest(); getRequest();
refreshWaybills();
} }
private CustomDialog customDialog; private CustomDialog customDialog;
@@ -799,18 +796,18 @@ public class HomeFragment extends BaseFragment {
// customDialog=new CustomDialog(con,"加载中..."); // customDialog=new CustomDialog(con,"加载中...");
// customDialog.show(); // customDialog.show();
ur.upApp(); ur.upApp();
// hyr.getHuoYuan(1, 100); hyr.getHuoYuan(1, 100);
ur.getImage(1); ur.getImage(1);
WalletRequest qr = new WalletRequest(con, hd); WalletRequest qr = new WalletRequest(con, hd);
if (UiAuxiliary.isLogin(con)) { if (UiAuxiliary.isLogin(con)) {
// int curWaybillId = (int) SPUtils.get(con, "curWaybillId", -1); int curWaybillId = (int) SPUtils.get(con, "curWaybillId", -1);
ur.User(); ur.User();
// if (!OneDayShowUtils.getInstance().todayIsShow(con)) { // if (!OneDayShowUtils.getInstance().todayIsShow(con)) {
// qr.getBankCardList(); // qr.getBankCardList();
// } // }
ur.getDriverExpire(); ur.getDriverExpire();
// hyr.startOrder(curWaybillId == -1 ? 0 : curWaybillId); hyr.startOrder(curWaybillId == -1 ? 0 : curWaybillId);
// hyr.startOrder(0); // hyr.startOrder(0);
//获取权限 应用市场审核不通过 //获取权限 应用市场审核不通过
ur.driverAuthData(); ur.driverAuthData();
@@ -1180,7 +1177,6 @@ public class HomeFragment extends BaseFragment {
.permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE, .permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_BACKGROUND_LOCATION,
Manifest.permission.CAMERA, Manifest.permission.CAMERA,
Manifest.permission.ACCESS_COARSE_LOCATION) Manifest.permission.ACCESS_COARSE_LOCATION)
.request((allGranted, grantedList, deniedList) -> { .request((allGranted, grantedList, deniedList) -> {
@@ -1304,29 +1300,26 @@ public class HomeFragment extends BaseFragment {
@Override @Override
public void onStart() { public void onStart() {
super.onStart(); super.onStart();
// ToastUtils.showToast(con,"onstart");
// refreshLayout.autoRefresh();
refreshWaybills(); refreshWaybills();
} }
private void refreshWaybills() { private void refreshWaybills() {
hyr.getHuoYuan(1, 100); // if (UiAuxiliary.isLogin(con)) {
if (UiAuxiliary.isLogin(con)) { // int curWaybillId = (int) SPUtils.get(con, "curWaybillId", -1);
int curWaybillId = (int) SPUtils.get(con, "curWaybillId", -1); // hyr.startOrder(curWaybillId == -1 ? 0 : curWaybillId);
hyr.startOrder(curWaybillId == -1 ? 0 : curWaybillId); // }
}
} }
@Subscribe @Subscribe
public void processResult(HomeWaybillEvent home) { public void processResult(HomeWaybillEvent home) {
// if (home.getMessage() == 1) { if (home.getMessage() == 1) {
// int curWaybillId = (int) SPUtils.get(con, "curWaybillId", -1); int curWaybillId = (int) SPUtils.get(con, "curWaybillId", -1);
// hyr.startOrder(curWaybillId == -1 ? 0 : curWaybillId); hyr.startOrder(curWaybillId == -1 ? 0 : curWaybillId);
// hyr.getHuoYuan(1, 100); hyr.getHuoYuan(1, 100);
// } else { } else {
// int curWaybillId = (int) SPUtils.get(con, "curWaybillId", -1); int curWaybillId = (int) SPUtils.get(con, "curWaybillId", -1);
// hyr.startOrder(curWaybillId == -1 ? 0 : curWaybillId); hyr.startOrder(curWaybillId == -1 ? 0 : curWaybillId);
// } }
} }
@@ -27,8 +27,6 @@ import com.alct.mdp.model.Location;
import com.alct.mdp.model.ShipmentStatusEnum; import com.alct.mdp.model.ShipmentStatusEnum;
import com.arpa.hndahesudintocctmsdriver.BuildConfig; import com.arpa.hndahesudintocctmsdriver.BuildConfig;
import com.arpa.hndahesudintocctmsdriver.bean.CarInfoBean; import com.arpa.hndahesudintocctmsdriver.bean.CarInfoBean;
import com.arpa.hndahesudintocctmsdriver.bean.GDImage;
import com.arpa.hndahesudintocctmsdriver.bean.GDLocation;
import com.arpa.hndahesudintocctmsdriver.bean.WaybillStatusBean; import com.arpa.hndahesudintocctmsdriver.bean.WaybillStatusBean;
import com.arpa.hndahesudintocctmsdriver.event.HomeWaybillEvent; import com.arpa.hndahesudintocctmsdriver.event.HomeWaybillEvent;
import com.arpa.hndahesudintocctmsdriver.report.JTTProcess; import com.arpa.hndahesudintocctmsdriver.report.JTTProcess;
@@ -37,7 +35,6 @@ import com.arpa.hndahesudintocctmsdriver.request.bean.TrackInputBean;
import com.arpa.hndahesudintocctmsdriver.ui.MainActivity; import com.arpa.hndahesudintocctmsdriver.ui.MainActivity;
import com.arpa.hndahesudintocctmsdriver.util.BitmapUtil; import com.arpa.hndahesudintocctmsdriver.util.BitmapUtil;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils; import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
import com.arpa.hndahesudintocctmsdriver.util.NewLJUtils;
import com.arpa.hndahesudintocctmsdriver.util.NfcUtils; import com.arpa.hndahesudintocctmsdriver.util.NfcUtils;
import com.arpa.hndahesudintocctmsdriver.util.SPUtils; import com.arpa.hndahesudintocctmsdriver.util.SPUtils;
import com.arpa.hndahesudintocctmsdriver.util.alert.ToastUtil; import com.arpa.hndahesudintocctmsdriver.util.alert.ToastUtil;
@@ -46,8 +43,6 @@ import com.arpa.hndahesudintocctmsdriver.util.location.LocationUtil;
import com.baidu.mapapi.model.LatLng; import com.baidu.mapapi.model.LatLng;
import com.baidu.mapapi.utils.CoordinateConverter; import com.baidu.mapapi.utils.CoordinateConverter;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.dahe.mylibrary.callback.OnGDDownloadResultListener;
import com.dahe.mylibrary.callback.OnGDResultListener;
import com.dahe.mylibrary.utils.ActivityUtils; import com.dahe.mylibrary.utils.ActivityUtils;
import com.dahe.mylibrary.utils.ImageLoader; import com.dahe.mylibrary.utils.ImageLoader;
import com.dahe.mylibrary.utils.ToastUtils; import com.dahe.mylibrary.utils.ToastUtils;
@@ -139,7 +134,6 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
} }
CacheGroup.cacheList.remove("upload"); CacheGroup.cacheList.remove("upload");
} }
if (CacheGroup.cacheList.get("genzong") != null) { if (CacheGroup.cacheList.get("genzong") != null) {
BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("genzong"), BaseBean.class); BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("genzong"), BaseBean.class);
if (bb.getCode() == 200) { if (bb.getCode() == 200) {
@@ -149,7 +143,6 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
} }
CacheGroup.cacheList.remove("genzong"); CacheGroup.cacheList.remove("genzong");
} }
if (CacheGroup.cacheList.get("waybillStatus") != null) { if (CacheGroup.cacheList.get("waybillStatus") != null) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) { if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss(); customDialog.dismiss();
@@ -481,54 +474,30 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
Log.e("--装货信息", gson.toJson(lub)); Log.e("--装货信息", gson.toJson(lub));
if (locationKey) {//高德定位 if (locationKey) {//高德定位
if (keys) { if (keys) {
MDPLocationCollectionManager.getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnDownloadResultListener() {
NewLJUtils.getInstance().getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnGDDownloadResultListener() {
@Override @Override
public void onSuccess(String var1) { public void onSuccess(Object o) {
String string = var1;
if (string.equals("30")) {//安联装货,单平台未装货 String string = o.toString();
if (string.equals("PICKUPED")) {//安联装货,单平台未装货
isFinish = true; isFinish = true;
//平台确认装货 //平台确认装货
hyr.loading(lub); hyr.loading(lub);
} else { } else {
// nfc(); nfc();
loadInfo(); loadInfo();
} }
upLocation(lgdu.getLatitude() + "", lgdu.getLongitude() + "",sob.getData().getShippingNoteNumber()); upLocation(lgdu.getLatitude()+"",lgdu.getLongitude()+"",sob.getData().getShippingNoteNumber());
// NewLJUtils.getInstance().startLocationService(ShangChuangImgActivity.this);
} }
@Override @Override
public void onFailure(String var1, String var2) { public void onFailure(String s, String s1) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) { if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss(); customDialog.dismiss();
} }
ToastUtils.showToast(con, var2); ToastUtils.showToast(con, s1);
} }
}); });
// MDPLocationCollectionManager.getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnDownloadResultListener() {
// @Override
// public void onSuccess(Object o) {
//
// String string = o.toString();
// if (string.equals("PICKUPED")) {//安联装货,单平台未装货
// isFinish = true;
// //平台确认装货
// hyr.loading(lub);
// } else {
// nfc();
// loadInfo();
// }
// }
//
// @Override
// public void onFailure(String s, String s1) {
// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
// customDialog.dismiss();
// }
// ToastUtils.showToast(con, s1);
// }
// });
// nfc(); // nfc();
@@ -561,11 +530,10 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
Log.e("--卸货信息", gson.toJson(lub)); Log.e("--卸货信息", gson.toJson(lub));
if (locationKey) { if (locationKey) {
if (keys) { if (keys) {
MDPLocationCollectionManager.getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnDownloadResultListener() {
NewLJUtils.getInstance().getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnGDDownloadResultListener() {
@Override @Override
public void onSuccess(String var1) { public void onSuccess(Object o) {
if (var1.equals("40")) {//安联装货,单平台未装货 if (o.toString().equals("UNLOADED")) {//安联装货,单平台未装货
//卸货状态-平台 //卸货状态-平台
isFinish = true; isFinish = true;
hyr.dischargeCargo(lub); hyr.dischargeCargo(lub);
@@ -573,41 +541,18 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
nfc(); nfc();
uploadInfo(); uploadInfo();
} }
upLocation(lgdu.getLatitude() + "", lgdu.getLongitude() + "",sob.getData().getShippingNoteNumber()); upLocation(lgdu.getLatitude()+"",lgdu.getLongitude()+"",sob.getData().getShippingNoteNumber());
// NewLJUtils.getInstance().stopLocationService();
} }
@Override @Override
public void onFailure(String var1, String var2) { public void onFailure(String s, String s1) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) { if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss(); customDialog.dismiss();
} }
ToastUtils.showToast(con, var2); ToastUtils.showToast(con, s1);
} }
}); });
// MDPLocationCollectionManager.getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnDownloadResultListener() {
// @Override
// public void onSuccess(Object o) {
// if (o.toString().equals("UNLOADED")) {//安联装货,单平台未装货
// //卸货状态-平台
// isFinish = true;
// hyr.dischargeCargo(lub);
// } else {
// nfc();
// uploadInfo();
// }
// }
//
// @Override
// public void onFailure(String s, String s1) {
// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
// customDialog.dismiss();
// }
// ToastUtils.showToast(con, s1);
// }
// });
// nfc(); // nfc();
// uploadInfo(); // uploadInfo();
@@ -644,8 +589,8 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
if (locationKey) { if (locationKey) {
if (index == 2 && keys) { if (index == 2 && keys) {
up_trafficSign(); up_trafficSign();
// up_trafficReceipt(); up_trafficReceipt();
// receipt_image(); receipt_image();
} }
hyr.receipt(urib); hyr.receipt(urib);
} else { } else {
@@ -692,7 +637,7 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
//上传安联-签收 //上传安联-签收
public void up_trafficSign() { public void up_trafficSign() {
//安联 //安联
GDLocation l = new GDLocation(); Location l = new Location();
l.setBaiduLongitude(latLng.longitude); l.setBaiduLongitude(latLng.longitude);
l.setBaiduLatitude(latLng.latitude); l.setBaiduLatitude(latLng.latitude);
l.setLocation(lgdu.getAddress()); l.setLocation(lgdu.getAddress());
@@ -716,86 +661,56 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
} }
} }
} }
MDPLocationCollectionManager.sign(con, sob.getData().getShippingNoteNumber(), l, gs, new com.alct.mdp.callback.OnResultListener() {
NewLJUtils.getInstance().sign(con, sob.getData().getShippingNoteNumber(), l, new OnGDResultListener() {
@Override @Override
public void onSuccess() { public void onSuccess() {
NewLJUtils.getInstance().stopLocationService();
up_trafficReceipt();
receipt_image();
Log.e("上报安联", "签收成功"); Log.e("上报安联", "签收成功");
} }
@Override @Override
public void onFailure(String var1, String var2) { public void onFailure(String s, String s1) {
Log.e("上报安联失败(签收):", var1 + var2); Log.e("上报安联失败(签收):", s + s1);
} }
}); });
// MDPLocationCollectionManager.sign(con, sob.getData().getShippingNoteNumber(), l, gs, new com.alct.mdp.callback.OnResultListener() {
// @Override
// public void onSuccess() {
// Log.e("上报安联", "签收成功");
// }
//
// @Override
// public void onFailure(String s, String s1) {
// Log.e("上报安联失败(签收):", s + s1);
// }
// });
} }
//上传安联-回单 //上传安联-回单
public void up_trafficReceipt() { public void up_trafficReceipt() {
//安联 //安联
GDLocation l = new GDLocation(); Location l = new Location();
l.setBaiduLongitude(latLng.longitude); l.setBaiduLongitude(latLng.longitude);
l.setBaiduLatitude(latLng.latitude); l.setBaiduLatitude(latLng.latitude);
l.setLocation(lgdu.getAddress()); l.setLocation(lgdu.getAddress());
l.setTime(Timer.getTimerT()); l.setTime(Timer.getTimerT());
MDPLocationCollectionManager.pod(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() {
NewLJUtils.getInstance().pod(con, sob.getData().getShippingNoteNumber(), l, new OnGDResultListener() {
@Override @Override
public void onSuccess() { public void onSuccess() {
Log.e("上报安联", "回单上传成功"); Log.e("上报安联", "回单上传成功");
} }
@Override @Override
public void onFailure(String var1, String var2) { public void onFailure(String s, String s1) {
Log.e("上报安联失败(回单):", var1 + var2); Log.e("上报安联失败(回单):", s + s1);
} }
}); });
// MDPLocationCollectionManager.pod(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() {
//
// @Override
// public void onSuccess() {
// Log.e("上报安联", "回单上传成功");
// }
//
// @Override
// public void onFailure(String s, String s1) {
// Log.e("上报安联失败(回单):", s + s1);
// }
//
// });
} }
public void up_image_z() { public void up_image_z() {
///storage/emulated/0/Android/data/com.oneclouds.wangluohuoyun/files/Pictures/163124593063154.jpg ///storage/emulated/0/Android/data/com.oneclouds.wangluohuoyun/files/Pictures/163124593063154.jpg
File file = new File(path); File file = new File(path);
GDImage image = new GDImage(); Image image = new Image();
String base = BitmapUtil.imageToBase64(path); String base = BitmapUtil.imageToBase64(path);
image.setFileData("data:image/" + FileUtil.lastName(file) + ";base64," + base); image.setFileData("data:image/" + FileUtil.lastName(file) + ";base64," + base);
image.setFileExt(FileUtil.lastName(file)); image.setFileExt(FileUtil.lastName(file));
image.setFileName(FileUtil.fileName(file)); image.setFileName(FileUtil.fileName(file));
image.setImageTakenDate(Timer.getTimerT()); image.setImageTakenDate(Timer.getTimerT());
image.setTime(Timer.getTimerT());
image.setBaiduLongitude(latLng.longitude); image.setBaiduLongitude(latLng.longitude);
image.setBaiduLatitude(latLng.latitude); image.setBaiduLatitude(latLng.latitude);
image.setLocation(lgdu.getAddress()); image.setLocation(lgdu.getAddress());
MDPLocationCollectionManager.uploadPickupImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() {
String json = new Gson().toJson(image);
NewLJUtils.getInstance().uploadPickupImage(con, sob.getData().getShippingNoteNumber(), image, new OnGDResultListener() {
@Override @Override
public void onSuccess() { public void onSuccess() {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) { if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
@@ -808,50 +723,30 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
} }
@Override @Override
public void onFailure(String var1, String var2) { public void onFailure(String s, String s1) {
Log.e("上报安联失败(装货照片):", var1 + var2); Log.e("上报安联失败(装货照片):", s + s1);
// SPUtil.insSP(con,"make","装货",sob.getData().getShippingNoteNumber());
// SPUtil.insSP(con,"make","装货-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
// Intent serviceIn=new Intent(con, MakeUpAlService.class);
// startService(serviceIn);
} }
});
// MDPLocationCollectionManager.uploadPickupImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() { });
//
// @Override
// public void onSuccess() {
// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
// customDialog.dismiss();
// }
// EventBus.getDefault().post(new HomeWaybillEvent());
// Log.e("上报安联", "装货照片上传成功");
// Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
// finish();
// }
//
// @Override
// public void onFailure(String s, String s1) {
// Log.e("上报安联失败(装货照片):", s + s1);
//// SPUtil.insSP(con,"make","装货",sob.getData().getShippingNoteNumber());
//// SPUtil.insSP(con,"make","装货-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
//// Intent serviceIn=new Intent(con, MakeUpAlService.class);
//// startService(serviceIn);
// }
//
// });
} }
public void up_image() { public void up_image() {
File file = new File(path); File file = new File(path);
GDImage image = new GDImage(); Image image = new Image();
String base = BitmapUtil.imageToBase64(path); String base = BitmapUtil.imageToBase64(path);
image.setFileData("data:image/" + FileUtil.lastName(file) + ";base64," + base); image.setFileData("data:image/" + FileUtil.lastName(file) + ";base64," + base);
image.setFileExt(FileUtil.lastName(file)); image.setFileExt(FileUtil.lastName(file));
image.setFileName(FileUtil.fileName(file)); image.setFileName(FileUtil.fileName(file));
image.setImageTakenDate(Timer.getTimerT()); image.setImageTakenDate(Timer.getTimerT());
image.setTime(Timer.getTimerT());
image.setBaiduLongitude(latLng.longitude); image.setBaiduLongitude(latLng.longitude);
image.setBaiduLatitude(latLng.latitude); image.setBaiduLatitude(latLng.latitude);
image.setLocation(lgdu.getAddress()); image.setLocation(lgdu.getAddress());
MDPLocationCollectionManager.uploadUnloadImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() {
NewLJUtils.getInstance().uploadUnloadImage(con, sob.getData().getShippingNoteNumber(), image, new OnGDResultListener() {
@Override @Override
public void onSuccess() { public void onSuccess() {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) { if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
@@ -864,56 +759,34 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
} }
@Override @Override
public void onFailure(String var1, String var2) { public void onFailure(String s, String s1) {
Log.e("上报安联失败(卸货照片):", var1 + var2); Log.e("上报安联失败(卸货照片):", s + s1);
if (!isFinishing() && customDialog != null && customDialog.isShowing()) { if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss(); customDialog.dismiss();
} }
// SPUtil.insSP(con,"make","卸货",sob.getData().getShippingNoteNumber());
// SPUtil.insSP(con,"make","卸货-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
// Intent serviceIn=new Intent(con, MakeUpAlService.class);
// startService(serviceIn);
} }
}); });
// MDPLocationCollectionManager.uploadUnloadImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() {
//
// @Override
// public void onSuccess() {
// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
// customDialog.dismiss();
// }
// EventBus.getDefault().post(new HomeWaybillEvent());
// Log.e("上报安联", "卸货照片上传成功");
// Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
// finish();
// }
//
// @Override
// public void onFailure(String s, String s1) {
// Log.e("上报安联失败(卸货照片):", s + s1);
// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
// customDialog.dismiss();
// }
//// SPUtil.insSP(con,"make","卸货",sob.getData().getShippingNoteNumber());
//// SPUtil.insSP(con,"make","卸货-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
//// Intent serviceIn=new Intent(con, MakeUpAlService.class);
//// startService(serviceIn);
// }
//
// });
} }
public void receipt_image() { public void receipt_image() {
///storage/emulated/0/Android/data/com.oneclouds.wangluohuoyun/files/Pictures/163124593063154.jpg ///storage/emulated/0/Android/data/com.oneclouds.wangluohuoyun/files/Pictures/163124593063154.jpg
File file = new File(path); File file = new File(path);
GDImage image = new GDImage(); Image image = new Image();
String base = BitmapUtil.imageToBase64(path); String base = BitmapUtil.imageToBase64(path);
image.setFileData("data:image/" + FileUtil.lastName(file) + ";base64," + base); image.setFileData("data:image/" + FileUtil.lastName(file) + ";base64," + base);
image.setFileExt(FileUtil.lastName(file)); image.setFileExt(FileUtil.lastName(file));
image.setFileName(FileUtil.fileName(file)); image.setFileName(FileUtil.fileName(file));
image.setImageTakenDate(Timer.getTimerT()); image.setImageTakenDate(Timer.getTimerT());
image.setTime(Timer.getTimerT());
image.setBaiduLongitude(latLng.longitude); image.setBaiduLongitude(latLng.longitude);
image.setBaiduLatitude(latLng.latitude); image.setBaiduLatitude(latLng.latitude);
image.setLocation(lgdu.getAddress()); image.setLocation(lgdu.getAddress());
MDPLocationCollectionManager.uploadPODImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() {
NewLJUtils.getInstance().uploadPODImage(con, sob.getData().getShippingNoteNumber(), image, new OnGDResultListener() {
@Override @Override
public void onSuccess() { public void onSuccess() {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) { if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
@@ -927,34 +800,15 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
} }
@Override @Override
public void onFailure(String var1, String var2) { public void onFailure(String s, String s1) {
Log.e("上报安联失败(回单照片):", var1 + var2); Log.e("上报安联失败(回单照片):", s + s1);
// SPUtil.insSP(con,"make","回单",sob.getData().getShippingNoteNumber());
//// SPUtil.insSP(con,"make","回单-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
//// Intent serviceIn=new Intent(con, MakeUpAlService.class);
//// startService(serviceIn);
} }
}); });
// MDPLocationCollectionManager.uploadPODImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() {
//
// @Override
// public void onSuccess() {
// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
// customDialog.dismiss();
// }
// SPUtils.remove(con, "curWaybillId");
// EventBus.getDefault().post(new HomeWaybillEvent());
// Log.e("上报安联", "回单照片上传成功");
// Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
// finish();
// }
//
// @Override
// public void onFailure(String s, String s1) {
// Log.e("上报安联失败(回单照片):", s + s1);
//// SPUtil.insSP(con,"make","回单",sob.getData().getShippingNoteNumber());
////// SPUtil.insSP(con,"make","回单-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
////// Intent serviceIn=new Intent(con, MakeUpAlService.class);
////// startService(serviceIn);
// }
//
// });
} }
@Override @Override
@@ -993,13 +847,12 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
private void loadInfo() { private void loadInfo() {
//安联 //安联
if (sob.getData().getReportAlct() == 1) { if (sob.getData().getReportAlct() == 1) {
GDLocation l = new GDLocation(); Location l = new Location();
l.setBaiduLongitude(latLng.longitude); l.setBaiduLongitude(latLng.longitude);
l.setBaiduLatitude(latLng.latitude); l.setBaiduLatitude(latLng.latitude);
l.setLocation(lgdu.getAddress()); l.setLocation(lgdu.getAddress());
l.setTime(Timer.getTimerT()); l.setTime(Timer.getTimerT());
MDPLocationCollectionManager.pickup(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() {
NewLJUtils.getInstance().pickUp(con, sob.getData().getShippingNoteNumber(), l, new OnGDResultListener() {
@Override @Override
public void onSuccess() { public void onSuccess() {
Log.e("上报安联", "装货上传成功"); Log.e("上报安联", "装货上传成功");
@@ -1007,7 +860,6 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
if (sob.getData().getReport() == 1) { if (sob.getData().getReport() == 1) {
JTTProcess.start(con, sob, ""); JTTProcess.start(con, sob, "");
} }
NewLJUtils.getInstance().startLocationService(ShangChuangImgActivity.this);
//装货状态 //装货状态
hyr.loading(lub); hyr.loading(lub);
//装货照片 //装货照片
@@ -1015,39 +867,14 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
} }
@Override @Override
public void onFailure(String var1, String var2) { public void onFailure(String s, String s1) {
Log.e("上报安联失败(装货):", var1 + var2); Log.e("上报安联失败(装货):", s + s1);
if (!isFinishing() && customDialog != null && customDialog.isShowing()) { if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss(); customDialog.dismiss();
} }
new MessageUtils().showCenMessage(con, var2); new MessageUtils().showCenMessage(con, s1);
} }
}); });
// MDPLocationCollectionManager.pickup(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() {
// @Override
// public void onSuccess() {
// Log.e("上报安联", "装货上传成功");
// //交通厅
// if (sob.getData().getReport() == 1) {
// JTTProcess.start(con, sob, "");
// }
// //装货状态
// hyr.loading(lub);
// //装货照片
// up_image_z();
// }
//
// @Override
// public void onFailure(String s, String s1) {
// Log.e("上报安联失败(装货):", s + s1);
// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
// customDialog.dismiss();
// }
// new MessageUtils().showCenMessage(con, s1);
// }
// });
} }
} }
@@ -1059,14 +886,13 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
//安联 //安联
if (sob.getData().getReportAlct() == 1) { if (sob.getData().getReportAlct() == 1) {
GDLocation l = new GDLocation(); Location l = new Location();
l.setBaiduLongitude(latLng.longitude); l.setBaiduLongitude(latLng.longitude);
l.setBaiduLatitude(latLng.latitude); l.setBaiduLatitude(latLng.latitude);
l.setLocation(lgdu.getAddress()); l.setLocation(lgdu.getAddress());
l.setTime(Timer.getTimerT()); l.setTime(Timer.getTimerT());
Log.e("-安联卸货信息-", gson.toJson(l)); Log.e("-安联卸货信息-", gson.toJson(l));
MDPLocationCollectionManager.unload(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() {
NewLJUtils.getInstance().unload(con, sob.getData().getShippingNoteNumber(), l, new OnGDResultListener() {
@Override @Override
public void onSuccess() { public void onSuccess() {
Log.e("上报安联", "卸货上传成功"); Log.e("上报安联", "卸货上传成功");
@@ -1074,7 +900,6 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
if (sob.getData().getReport() == 1) { if (sob.getData().getReport() == 1) {
JTTProcess.stop(con, sob, ""); JTTProcess.stop(con, sob, "");
} }
//卸货状态-平台 //卸货状态-平台
hyr.dischargeCargo(lub); hyr.dischargeCargo(lub);
//卸货照片-安联 //卸货照片-安联
@@ -1082,37 +907,14 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
} }
@Override @Override
public void onFailure(String var1, String var2) { public void onFailure(String s, String s1) {
Log.e("上报安联失败(卸货):", var1 + var2); Log.e("上报安联失败(卸货):", s + s1);
if (!isFinishing() && customDialog != null && customDialog.isShowing()) { if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss(); customDialog.dismiss();
} }
new MessageUtils().showCenMessage(con, var2); new MessageUtils().showCenMessage(con, s1);
} }
}); });
// MDPLocationCollectionManager.unload(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() {
// @Override
// public void onSuccess() {
// Log.e("上报安联", "卸货上传成功");
// //交通厅
// if (sob.getData().getReport() == 1) {
// JTTProcess.stop(con, sob, "");
// }
// //卸货状态-平台
// hyr.dischargeCargo(lub);
// //卸货照片-安联
// up_image();
// }
//
// @Override
// public void onFailure(String s, String s1) {
// Log.e("上报安联失败(卸货):", s + s1);
// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
// customDialog.dismiss();
// }
// new MessageUtils().showCenMessage(con, s1);
// }
// });
} }
@@ -1,900 +0,0 @@
package com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Message;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.Nullable;
import com.alct.mdp.MDPLocationCollectionManager;
import com.alct.mdp.callback.OnDownloadResultListener;
import com.alct.mdp.callback.OnResultListener;
import com.alct.mdp.model.Goods;
import com.alct.mdp.model.Image;
import com.alct.mdp.model.Location;
import com.arpa.hndahesudintocctmsdriver.BuildConfig;
import com.arpa.hndahesudintocctmsdriver.R;
import com.arpa.hndahesudintocctmsdriver.bean.BaseBean;
import com.arpa.hndahesudintocctmsdriver.bean.CarInfoBean;
import com.arpa.hndahesudintocctmsdriver.bean.StartOrderBean;
import com.arpa.hndahesudintocctmsdriver.bean.UploadBean;
import com.arpa.hndahesudintocctmsdriver.bean.WaybillStatusBean;
import com.arpa.hndahesudintocctmsdriver.event.HomeWaybillEvent;
import com.arpa.hndahesudintocctmsdriver.report.JTTProcess;
import com.arpa.hndahesudintocctmsdriver.request.HuoYuanRequset;
import com.arpa.hndahesudintocctmsdriver.request.OCRRequest;
import com.arpa.hndahesudintocctmsdriver.request.bean.LUInputBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.UploadReceiptInputBean;
import com.arpa.hndahesudintocctmsdriver.ui.MainActivity;
import com.arpa.hndahesudintocctmsdriver.util.BitmapUtil;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
import com.arpa.hndahesudintocctmsdriver.util.NfcUtils;
import com.arpa.hndahesudintocctmsdriver.util.SPUtils;
import com.arpa.hndahesudintocctmsdriver.util.alert.CustomDialog;
import com.arpa.hndahesudintocctmsdriver.util.alert.ToastUtil;
import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup;
import com.arpa.hndahesudintocctmsdriver.util.file.FileUtil;
import com.arpa.hndahesudintocctmsdriver.util.file.ImageFileCompressUtil;
import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants;
import com.arpa.hndahesudintocctmsdriver.util.img.GetCarImageAlert;
import com.arpa.hndahesudintocctmsdriver.util.location.LocationGDUtil;
import com.arpa.hndahesudintocctmsdriver.util.location.LocationUtil;
import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil;
import com.arpa.hndahesudintocctmsdriver.util.time.Timer;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity;
import com.baidu.mapapi.model.LatLng;
import com.baidu.mapapi.utils.CoordinateConverter;
import com.bumptech.glide.Glide;
import com.dahe.mylibrary.utils.ActivityUtils;
import com.dahe.mylibrary.utils.ToastUtils;
import com.google.gson.Gson;
import com.luck.picture.lib.PictureSelector;
import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.entity.LocalMedia;
import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.util.SmartGlideImageLoader;
import org.greenrobot.eventbus.EventBus;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
public class ShangChuangImgNewActivity extends BaseAppCompatActivity {
private TextView submit, name_top, name_body, address, tips, tips_x;
private RelativeLayout getImg;
private ImageView res_img, img_icon, img_delete;
private String[] names = {"装货", "卸货", "回单"};
public static String[] TYPE_NAME = {"zhuanghuo", "xiehuo", "huidan"};
private int index = 0;
//
private Gson gson = new Gson();
//
private LUInputBean lub = new LUInputBean();
private UploadReceiptInputBean urib = new UploadReceiptInputBean();
private LocationGDUtil lgdu;
public LocationUtil lu;
private List<Integer> imgIds = new ArrayList<>();
private UploadBean ub;
private HuoYuanRequset hyr;
//
private GetCarImageAlert gia = new GetCarImageAlert();
private CustomDialog customDialog;
private int id = 0;
private boolean key = true;
private boolean keys = false;
private boolean locationKey = false;
private TextView tv_loaction;
private boolean isFinish = false;
@Override
public void msgMethod(Message m) {
super.msgMethod(m);
switch (m.what) {
case RequsetCodeConstants.SUCCESS:
if (CacheGroup.cacheList.get("upload") != null) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Log.e("upload", CacheGroup.cacheList.get("upload"));
ub = gson.fromJson(CacheGroup.cacheList.remove("upload"), UploadBean.class);
if (ub.getCode() == 200) {
imgIds.add(ub.getData().getId());
// Glide.with(con).load(ub.getData().getUrl()).into(res_img);
Glide.with(con).load(path).into(res_img);
res_img.setVisibility(View.VISIBLE);
img_delete.setVisibility(View.VISIBLE);
img_icon.setVisibility(View.GONE);
key = false;
} else {
Toast.makeText(con, ub.getMsg(), Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove("upload");
}
if (CacheGroup.cacheList.get("waybillStatus") != null) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Log.e("waybillStatus", CacheGroup.cacheList.get("waybillStatus"));
WaybillStatusBean status = gson.fromJson(CacheGroup.cacheList.get("waybillStatus"), WaybillStatusBean.class);
if (status.getCode() == 200) {
if (status.getData() != null) {
//执行运单下一步操作
typeRequest();
} else {//订单已取消
new MessageUtils().showSimCenPop(con, "运单异常将无法进行下步操作,请返回首页", "取消", "确定", () -> {
SPUtils.remove(con, "curWaybillId");
EventBus.getDefault().post(new HomeWaybillEvent());
ActivityUtils.finishToActivity(MainActivity.class, false);
});
}
} else {
Toast.makeText(con, status.getMsg(), Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove("waybillStatus");
}
for (int i = 0; i < TYPE_NAME.length; i++) {
if (CacheGroup.cacheList.get(TYPE_NAME[i]) != null) {
BaseBean bb = gson.fromJson(CacheGroup.cacheList.get(TYPE_NAME[i]), BaseBean.class);
if (bb.getCode() == 200) {
if (index == 2) {
if (!keys) {//装货回单
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
EventBus.getDefault().post(new HomeWaybillEvent());
Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
finish();
}
} else if ((0 == index || 1 == index) && isFinish) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
EventBus.getDefault().post(new HomeWaybillEvent());
Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
finish();
}
} else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Toast.makeText(con, bb.getMsg(), Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove(TYPE_NAME[i]);
break;
}
}
if (CacheGroup.cacheList.get("carName") != null) {
BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("carName"), BaseBean.class);
if (bb.getCode() == 200) {
}
CacheGroup.cacheList.remove("carName");
}
if (CacheGroup.cacheList.get("carNum") != null) {
Log.e("upload", CacheGroup.cacheList.get("carNum"));
CarInfoBean ub = gson.fromJson(CacheGroup.cacheList.remove("carNum"), CarInfoBean.class);
if (ub.getCode() == 200 && ub.getData().getData().getPrism_keyValueInfo().size() > 0) {
String value = ub.getData().getData().getPrism_keyValueInfo().get(0).getValue();
String forceMatching = ub.getData().getForceMatching();
if ("1".equals(forceMatching)) {//是否强校验车牌号 1:强校验
if (sob.getData().getCarNumber().equals(value)) {
hyr.uploadFile(new File(path));
} else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
new MessageUtils().showCenMessage(ShangChuangImgNewActivity.this, "车牌号不匹配!", "请重新拍照或联系管理员");
}
} else {
hyr.uploadFile(new File(path));
}
} else {//识别失败后返回code500
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
if (index == 0) {//装卸货车辆需要识别车牌号){
Toast.makeText(con, "装货照片包含车牌号、三分之二车身或者装卸货场景。", Toast.LENGTH_SHORT).show();
} else if (index == 1) {
Toast.makeText(con, "卸货照片包含车牌号、三分之二车身或者装卸货场景。", Toast.LENGTH_SHORT).show();
}
}
CacheGroup.cacheList.remove("carNum");
}
break;
case 14://定位成功
locationKey = true;
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
tv_loaction.setText("定位成功");
tv_loaction.setTextColor(getResources().getColor(R.color.theme_color, null));
latLng = convertGPSToBaidu(new LatLng(lgdu.getLatitude(), lgdu.getLongitude()));
initLocation();
break;
case 16://定位失败
locationKey = false;
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
tv_loaction.setText("定位失败,点击重试");
tv_loaction.setTextColor(getResources().getColor(R.color.loaction_no_color, null));
new MessageUtils().showSimCenPop(con, "缺少定位权限,去开启精确定位权限!", "取消", "确认", () -> {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", getPackageName(), null);
intent.setData(uri);
startActivity(intent);
});
// Toast.makeText(con, "定位失败,请确认开启定位后重试!", Toast.LENGTH_LONG).show();
//定位结果接收
//finish();
break;
case 15:
break;
case ImageFileCompressUtil.COMPRESS_SUCCESS:
path = (String) m.obj;
Log.e("res:", "选定图片结果");
Log.e("res:", path);
//选定图片结果
// if(index==1 || index==2){
// new OCRRequest().OCRPlateLicense(con,hd,new File(path));
// }
if ((index == 0 || index == 1) && !BuildConfig.isTest) {//装卸货车辆需要识别车牌号,测试环境不校验车牌号
new OCRRequest().OCRCarPlateLicense(con, hd, new File(path));
} else {
hyr.uploadFile(new File(path));
}
break;
default:
break;
}
}
private LatLng latLng;
public LatLng convertGPSToBaidu(LatLng srLatLng) {
CoordinateConverter converter = new CoordinateConverter();
converter.from(CoordinateConverter.CoordType.COMMON);
converter.coord(srLatLng);
return converter.convert();
}
private String wid;
private int h_type;
String sobStr = "";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StateStyleUtil.stateTextColor(this);
setContentView(R.layout.activity_shangchuan);
con = this;
submit = findViewById(R.id.submit);
name_top = findViewById(R.id.name_top);
name_body = findViewById(R.id.name_body);
address = findViewById(R.id.address);
getImg = findViewById(R.id.getImg);
res_img = findViewById(R.id.res_img);
img_icon = findViewById(R.id.img_icon);
img_delete = findViewById(R.id.img_delete);
tv_loaction = findViewById(R.id.tv_loaction);
tips = findViewById(R.id.tips);
tips_x = findViewById(R.id.tips_x);
Bundle ins = getIntent().getExtras();
index = ins.getInt("type");
wid = ins.getString("wid");
h_type = ins.getInt("h_type");
keys = ins.getBoolean("keys");
sobStr = getIntent().getExtras().getString("sob");
//Log.e("---sdwStr--",sdwStr);
sob = new Gson().fromJson(sobStr, StartOrderBean.class);
initView(null);
customDialog = new CustomDialog(con, "正在定位当前位置...");
customDialog.show();
lgdu = new LocationGDUtil(con, hd);
//启动定位
lgdu.onCreate();
// lu = new LocationUtil(con, hd);
// lu.onCreate();
// if (keys) {
// lu = new LocationUtil(con, hd);
// lu.onCreate();
// }
tv_loaction.setOnClickListener(v -> {
if (!locationKey) {
customDialog.show();
lgdu.onCreate();
// lu = new LocationUtil(con, hd);
// lu.onCreate();
}
});
hyr = new HuoYuanRequset(con, hd);
// if (!NfcUtils.hasNfc(con)) {
// Toast.makeText(con,"请先开启nfc",Toast.LENGTH_LONG).show();
// }else{
// initData();
// }
}
public void initData() {
//nfc初始化设置
NfcUtils nfcUtils = new NfcUtils(this);
}
@Override
public void initView(Object obj) {
super.initView(obj);
name_top.setText("上传" + names[index] + "照片");
name_body.setText(names[index] + "照片");
if (index == 1) {
tips.setVisibility(View.VISIBLE);
tips_x.setVisibility(View.VISIBLE);
}
submit.setOnClickListener(v -> {
if (imgIds.size() != 0) {
//判断运单是否已取消
hyr.getWaybillStatus(sob.getData().getWaybillId());
// typeRequest();
} else {
Toast.makeText(con, "请先上传一张图片", Toast.LENGTH_SHORT).show();
}
});
getImg.setOnClickListener(v -> {
if (key) {
Log.e("--imgIds.size()--", imgIds.size() + "");
gia.showPopueWindow(this, index == 2);
} else {
new XPopup.Builder(con)
.asImageViewer(res_img, ub.getData().getUrl(), new SmartGlideImageLoader(R.mipmap.ic_launcher))
.show();
// new XPopup.Builder(con)
// .asImageViewer(res_img, ub.getData().getUrl(), true, -1, -1, 50, false,new CertificatesActivity.ImageLoader())
// .show();
Toast.makeText(con, "查看了照片", Toast.LENGTH_SHORT).show();
}
});
img_delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
imgIds = new ArrayList<>();
ub = new UploadBean();
res_img.setVisibility(View.GONE);
img_delete.setVisibility(View.GONE);
img_icon.setVisibility(View.VISIBLE);
key = true;
}
});
}
String path;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 12 && resultCode == RESULT_OK) {
if (null == gia.getFile()) {
new ToastUtil(con, Gravity.CENTER, "图片选择失败").show(Toast.LENGTH_SHORT);
return;
}
path = gia.getFile().getPath();
Log.e("图片地址:", path);
gia.dis();
if (customDialog != null && !customDialog.isShowing()) {
customDialog = new CustomDialog(con, "网络请求中...");
customDialog.show();
}
ImageFileCompressUtil.imageFileCompress(con, new File(path), hd);
} else if (requestCode == PictureConfig.CHOOSE_REQUEST && resultCode == RESULT_OK) {
List<LocalMedia> imgs = PictureSelector.obtainMultipleResult(data);
if (imgs != null && imgs.size() > 0) {
LocalMedia image = imgs.get(0);
String paths = image.getAndroidQToPath();
if (TextUtils.isEmpty(paths)) {
paths = image.getPath();
}
path = paths;
Log.e("图片地址:", path);
gia.dis();
if (customDialog != null && !customDialog.isShowing()) {
customDialog = new CustomDialog(con, "网络请求中...");
customDialog.show();
}
ImageFileCompressUtil.imageFileCompress(con, new File(path), hd);
}
}
}
public void initLocation() {
address.setText(lgdu.getAddress());
}
public void typeRequest() {
// for(int i=0;i<imgIds.size();i++){
// Log.e("--imgIds--",imgIds.get(i)+"");
// }
if (customDialog != null && !customDialog.isShowing()) {
customDialog = new CustomDialog(con, "网络请求中...");
customDialog.show();
}
switch (index) {
case 0:
//装货
if (imgIds != null && imgIds.size() > 0) {
lub.setLatitude(lgdu.getLatitude() + "");
lub.setLongitude(lgdu.getLongitude() + "");
lub.setLocationAddress(lgdu.getAddress());
lub.setImageId(imgIds);
lub.setWaybillId(wid);
Log.e("--装货信息", gson.toJson(lub));
if (locationKey) {//高德定位
if (keys) {
MDPLocationCollectionManager.getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnDownloadResultListener() {
@Override
public void onSuccess(Object o) {
String string = o.toString();
if (string.equals("PICKUPED")) {//安联装货,单平台未装货
isFinish = true;
//平台确认装货
hyr.loading(lub);
} else {
nfc();
loadInfo();
}
}
@Override
public void onFailure(String s, String s1) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
ToastUtils.showToast(con, s1);
}
});
// nfc();
// loadInfo();
// up_traffic_start();
// up_image_z();
}
} else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Toast.makeText(con, "定位异常,请重新定位", Toast.LENGTH_SHORT).show();
}
} else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Toast.makeText(con, "图片上传异常,请重新上传", Toast.LENGTH_SHORT).show();
}
break;
case 1:
if (imgIds != null && imgIds.size() > 0) {
//卸货
lub.setLatitude(lgdu.getLatitude() + "");
lub.setLongitude(lgdu.getLongitude() + "");
lub.setLocationAddress(lgdu.getAddress());
lub.setImageId(imgIds);
lub.setWaybillId(wid);
Log.e("--卸货信息", gson.toJson(lub));
if (locationKey) {
if (keys) {
MDPLocationCollectionManager.getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnDownloadResultListener() {
@Override
public void onSuccess(Object o) {
if (o.toString().equals("UNLOADED")) {//安联装货,单平台未装货
//卸货状态-平台
isFinish = true;
hyr.dischargeCargo(lub);
} else {
nfc();
uploadInfo();
}
}
@Override
public void onFailure(String s, String s1) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
ToastUtils.showToast(con, s1);
}
});
// nfc();
// uploadInfo();
}
} else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Toast.makeText(con, "定位异常,请重新定位", Toast.LENGTH_SHORT).show();
}
} else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Toast.makeText(con, "图片上传异常,请重新上传", Toast.LENGTH_SHORT).show();
}
break;
case 2:
if (imgIds != null && imgIds.size() > 0) {//卸货回单
//上传回单
urib.setLatitude(lgdu.getLatitude() + "");
urib.setLongitude(lgdu.getLongitude() + "");
urib.setLocationAddress(lgdu.getAddress());
//装卸货类型
urib.setType(h_type + 1);
//回单id 数组
urib.setReceiptId(imgIds);
//子运运单ID
urib.setWaybillId(wid);
Log.e("--回单信息", gson.toJson(urib));
if (locationKey) {
if (index == 2 && keys) {
up_trafficSign();
up_trafficReceipt();
receipt_image();
}
hyr.receipt(urib);
} else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Toast.makeText(con, "定位异常,请重新定位", Toast.LENGTH_SHORT).show();
}
} else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Toast.makeText(con, "图片上传异常,请重新上传", Toast.LENGTH_SHORT).show();
}
break;
default:
break;
}
}
private StartOrderBean sob;
public void nfc() {
// if(sob.getData().getNfcId().equals(nfcStr)){
// Toast.makeText(con,"nfcId匹配失败",Toast.LENGTH_LONG).show();
// }
if ("".equals(sob.getData().getNfcId()) || sob.getData().getNfcId() == null) {
return;
}
MDPLocationCollectionManager.checkNfc(con, sob.getData().getShippingNoteNumber(),
sob.getData().getNfcId(), new OnResultListener() {
@Override
public void onSuccess() {
Toast.makeText(con, "nfcId匹配成功", Toast.LENGTH_LONG).show();
}
@Override
public void onFailure(String s, String s1) {
Log.e("不匹配", "" + s + s1);
}
});
}
//上传安联-签收
public void up_trafficSign() {
//安联
Location l = new Location();
l.setBaiduLongitude(latLng.longitude);
l.setBaiduLatitude(latLng.latitude);
l.setLocation(lgdu.getAddress());
l.setTime(Timer.getTimerT());
List<Goods> gs = new ArrayList<>();
for (StartOrderBean.DataDTO.WayChildrenDTO wayChild : sob.getData().getWayChildren()) {
if (wid.equals(wayChild.getId() + "")) {
for (StartOrderBean.DataDTO.WayChildrenDTO.GoodsDTO good : wayChild.getGoods()) {
Goods g = new Goods();
g.setGoodsName(good.getGoodName());
g.setUnit(good.getGoodUnit());
g.setItemNo(good.getId());
//实收
g.setQuantity(1);
//应收
g.setReceivedQuantity(1);
//破损
g.setDamageQuantity(1);
//丢失
g.setQuantity(1);
}
}
}
MDPLocationCollectionManager.sign(con, sob.getData().getShippingNoteNumber(), l, gs, new OnResultListener() {
@Override
public void onSuccess() {
Log.e("上报安联", "签收成功");
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(签收):", s + s1);
}
});
}
//上传安联-回单
public void up_trafficReceipt() {
//安联
Location l = new Location();
l.setBaiduLongitude(latLng.longitude);
l.setBaiduLatitude(latLng.latitude);
l.setLocation(lgdu.getAddress());
l.setTime(Timer.getTimerT());
MDPLocationCollectionManager.pod(con, sob.getData().getShippingNoteNumber(), l, new OnResultListener() {
@Override
public void onSuccess() {
Log.e("上报安联", "回单上传成功");
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(回单):", s + s1);
}
});
}
public void up_image_z() {
///storage/emulated/0/Android/data/com.oneclouds.wangluohuoyun/files/Pictures/163124593063154.jpg
File file = new File(path);
Image image = new Image();
String base = BitmapUtil.imageToBase64(path);
image.setFileData("data:image/" + FileUtil.lastName(file) + ";base64," + base);
image.setFileExt(FileUtil.lastName(file));
image.setFileName(FileUtil.fileName(file));
image.setImageTakenDate(Timer.getTimerT());
image.setBaiduLongitude(latLng.longitude);
image.setBaiduLatitude(latLng.latitude);
image.setLocation(lgdu.getAddress());
MDPLocationCollectionManager.uploadPickupImage(con, sob.getData().getShippingNoteNumber(), image, new OnResultListener() {
@Override
public void onSuccess() {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
EventBus.getDefault().post(new HomeWaybillEvent());
Log.e("上报安联", "装货照片上传成功");
Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
finish();
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(装货照片):", s + s1);
// SPUtil.insSP(con,"make","装货",sob.getData().getShippingNoteNumber());
// SPUtil.insSP(con,"make","装货-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
// Intent serviceIn=new Intent(con, MakeUpAlService.class);
// startService(serviceIn);
}
});
}
public void up_image() {
File file = new File(path);
Image image = new Image();
String base = BitmapUtil.imageToBase64(path);
image.setFileData("data:image/" + FileUtil.lastName(file) + ";base64," + base);
image.setFileExt(FileUtil.lastName(file));
image.setFileName(FileUtil.fileName(file));
image.setImageTakenDate(Timer.getTimerT());
image.setBaiduLongitude(latLng.longitude);
image.setBaiduLatitude(latLng.latitude);
image.setLocation(lgdu.getAddress());
MDPLocationCollectionManager.uploadUnloadImage(con, sob.getData().getShippingNoteNumber(), image, new OnResultListener() {
@Override
public void onSuccess() {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
EventBus.getDefault().post(new HomeWaybillEvent());
Log.e("上报安联", "卸货照片上传成功");
Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
finish();
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(卸货照片):", s + s1);
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
// SPUtil.insSP(con,"make","卸货",sob.getData().getShippingNoteNumber());
// SPUtil.insSP(con,"make","卸货-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
// Intent serviceIn=new Intent(con, MakeUpAlService.class);
// startService(serviceIn);
}
});
}
public void receipt_image() {
///storage/emulated/0/Android/data/com.oneclouds.wangluohuoyun/files/Pictures/163124593063154.jpg
File file = new File(path);
Image image = new Image();
String base = BitmapUtil.imageToBase64(path);
image.setFileData("data:image/" + FileUtil.lastName(file) + ";base64," + base);
image.setFileExt(FileUtil.lastName(file));
image.setFileName(FileUtil.fileName(file));
image.setImageTakenDate(Timer.getTimerT());
image.setBaiduLongitude(latLng.longitude);
image.setBaiduLatitude(latLng.latitude);
image.setLocation(lgdu.getAddress());
MDPLocationCollectionManager.uploadPODImage(con, sob.getData().getShippingNoteNumber(), image, new OnResultListener() {
@Override
public void onSuccess() {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
SPUtils.remove(con, "curWaybillId");
EventBus.getDefault().post(new HomeWaybillEvent());
Log.e("上报安联", "回单照片上传成功");
Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
finish();
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(回单照片):", s + s1);
// SPUtil.insSP(con,"make","回单",sob.getData().getShippingNoteNumber());
//// SPUtil.insSP(con,"make","回单-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
//// Intent serviceIn=new Intent(con, MakeUpAlService.class);
//// startService(serviceIn);
}
});
}
@Override
protected void onResume() {
super.onResume();
//开启前台调度系统
//NfcUtils.mNfcAdapter.enableForegroundDispatch(this, NfcUtils.mPendingIntent, NfcUtils.mIntentFilter, NfcUtils.mTechList);
}
@Override
protected void onPause() {
super.onPause();
//关闭前台调度系统
//NfcUtils.mNfcAdapter.disableForegroundDispatch(this);
}
String nfcStr = "";
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
//当该Activity接收到NFC标签时,运行该方法
//调用工具方法,读取NFC数据
try {
nfcStr = NfcUtils.readNFCId(intent);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
Log.e("nfc", nfcStr);
}
/**
* 上传安联和交通厅,平台-装货
*/
private void loadInfo() {
//安联
if (sob.getData().getReportAlct() == 1) {
Location l = new Location();
l.setBaiduLongitude(latLng.longitude);
l.setBaiduLatitude(latLng.latitude);
l.setLocation(lgdu.getAddress());
l.setTime(Timer.getTimerT());
MDPLocationCollectionManager.pickup(con, sob.getData().getShippingNoteNumber(), l, new OnResultListener() {
@Override
public void onSuccess() {
Log.e("上报安联", "装货上传成功");
//交通厅
if (sob.getData().getReport() == 1) {
JTTProcess.start(con, sob, "");
}
//装货状态
hyr.loading(lub);
//装货照片
up_image_z();
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(装货):", s + s1);
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
new MessageUtils().showCenMessage(con, s1);
}
});
}
}
/**
* 上传安联和交通厅,平台-卸货
*/
private void uploadInfo() {
//安联
if (sob.getData().getReportAlct() == 1) {
Location l = new Location();
l.setBaiduLongitude(latLng.longitude);
l.setBaiduLatitude(latLng.latitude);
l.setLocation(lgdu.getAddress());
l.setTime(Timer.getTimerT());
Log.e("-安联卸货信息-", gson.toJson(l));
MDPLocationCollectionManager.unload(con, sob.getData().getShippingNoteNumber(), l, new OnResultListener() {
@Override
public void onSuccess() {
Log.e("上报安联", "卸货上传成功");
//交通厅
if (sob.getData().getReport() == 1) {
JTTProcess.stop(con, sob, "");
}
//卸货状态-平台
hyr.dischargeCargo(lub);
//卸货照片-安联
up_image();
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(卸货):", s + s1);
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
new MessageUtils().showCenMessage(con, s1);
}
});
}
}
}
@@ -32,7 +32,6 @@ import com.arpa.hndahesudintocctmsdriver.request.net.BaseObserver;
import com.arpa.hndahesudintocctmsdriver.request.net.DataManager; import com.arpa.hndahesudintocctmsdriver.request.net.DataManager;
import com.arpa.hndahesudintocctmsdriver.request.net.RxHttpCallBack; import com.arpa.hndahesudintocctmsdriver.request.net.RxHttpCallBack;
import com.arpa.hndahesudintocctmsdriver.ui.web.WebOnlyOneActivity; import com.arpa.hndahesudintocctmsdriver.ui.web.WebOnlyOneActivity;
import com.arpa.hndahesudintocctmsdriver.util.NewLJUtils;
import com.arpa.hndahesudintocctmsdriver.util.alert.CustomDialog; import com.arpa.hndahesudintocctmsdriver.util.alert.CustomDialog;
import com.arpa.hndahesudintocctmsdriver.weight.OnLimitClickHelper; import com.arpa.hndahesudintocctmsdriver.weight.OnLimitClickHelper;
import com.dahe.mylibrary.net.CommonResponseBean; import com.dahe.mylibrary.net.CommonResponseBean;
@@ -109,8 +108,6 @@ public class LoginActivity extends BaseActivity {
Log.e("--登录信息--", new Gson().toJson(loginBean)); Log.e("--登录信息--", new Gson().toJson(loginBean));
AppInfoBean appInfoBean = new AppInfoBean(); AppInfoBean appInfoBean = new AppInfoBean();
if (loginBean.getCode() == 200) { if (loginBean.getCode() == 200) {
//获取新路交token
NewLJUtils.getInstance().getToken(con);
SPUtil.insSP(con, USER, USER_TOKEN, loginBean.getData().getToken()); SPUtil.insSP(con, USER, USER_TOKEN, loginBean.getData().getToken());
SPUtil.insSP(con, USER, USER_UNAME, loginBean.getData().getUname()); SPUtil.insSP(con, USER, USER_UNAME, loginBean.getData().getUname());
SPUtil.insSP(con, USER, USER_RNAME, loginBean.getData().getRname()); SPUtil.insSP(con, USER, USER_RNAME, loginBean.getData().getRname());
@@ -16,7 +16,6 @@ import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.arpa.hndahesudintocctmsdriver.bean.UpAppBean; import com.arpa.hndahesudintocctmsdriver.bean.UpAppBean;
import com.arpa.hndahesudintocctmsdriver.event.PersonEvent; import com.arpa.hndahesudintocctmsdriver.event.PersonEvent;
@@ -27,7 +26,6 @@ import com.arpa.hndahesudintocctmsdriver.parts.StartOrderParts;
import com.arpa.hndahesudintocctmsdriver.parts.UserParts; import com.arpa.hndahesudintocctmsdriver.parts.UserParts;
import com.arpa.hndahesudintocctmsdriver.ui.alert.UpAppAlert; import com.arpa.hndahesudintocctmsdriver.ui.alert.UpAppAlert;
import com.arpa.hndahesudintocctmsdriver.ui.business.BusinessActivity; import com.arpa.hndahesudintocctmsdriver.ui.business.BusinessActivity;
import com.arpa.hndahesudintocctmsdriver.util.NewLJUtils;
import com.arpa.hndahesudintocctmsdriver.util.PicturlUtil; import com.arpa.hndahesudintocctmsdriver.util.PicturlUtil;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.dahe.mylibrary.utils.ImageLoader; import com.dahe.mylibrary.utils.ImageLoader;
@@ -1,759 +0,0 @@
package com.arpa.hndahesudintocctmsdriver.util;
import static com.dahe.mylibrary.utils.BaseSPUtils.NEW_LJ_TOKEN;
import android.content.Context;
import android.os.Handler;
import android.text.TextUtils;
import android.util.Log;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.arpa.hndahesudintocctmsdriver.App;
import com.arpa.hndahesudintocctmsdriver.bean.DriverAuthDataBean;
import com.arpa.hndahesudintocctmsdriver.bean.GDImage;
import com.arpa.hndahesudintocctmsdriver.bean.GDLocation;
import com.arpa.hndahesudintocctmsdriver.bean.IsAuthCardBean;
import com.arpa.hndahesudintocctmsdriver.constant.NewLJConstant;
import com.arpa.hndahesudintocctmsdriver.parts.AuthParts;
import com.arpa.hndahesudintocctmsdriver.request.AuthRequest;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.InvoiceBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.InvoicesBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.LjTokenBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.PickupBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.ShipmentStatusBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.UpimgBean;
import com.arpa.hndahesudintocctmsdriver.request.net.BaseObserver;
import com.arpa.hndahesudintocctmsdriver.request.net.DataManager;
import com.arpa.hndahesudintocctmsdriver.request.net.RxHttpCallBack;
import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity;
import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup;
import com.arpa.hndahesudintocctmsdriver.util.http.RequestUtil;
import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants;
import com.dahe.mylibrary.bean.DriverBean;
import com.dahe.mylibrary.callback.OnGDDownloadResultListener;
import com.dahe.mylibrary.callback.OnGDResultListener;
import com.dahe.mylibrary.net.CommonResponseBean;
import com.dahe.mylibrary.utils.ToastUtils;
import com.express.mdp.Api;
import com.express.mdp.Callback;
import com.google.gson.Gson;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.schedulers.Schedulers;
/**
* @ClassName NewLJUtils
* @Author john
* @Date 2024/11/25 09:53
* @Description TODO
*/
public class NewLJUtils {
private static class SingletonHolder {
private static final NewLJUtils INSTANCE = new NewLJUtils();
}
private NewLJUtils() {
}
public static final NewLJUtils getInstance() {
return SingletonHolder.INSTANCE;
}
public void getToken(Context ctx) {
LjTokenBean ljTokenBean = new LjTokenBean();
ljTokenBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
ljTokenBean.setEnterpriseIdentity(NewLJConstant.ENTER_PRISE_IDENTITY);
ljTokenBean.setEnterpriseKey(NewLJConstant.ENTER_PRISE_KEY);
DataManager.getInstance().getToken(ljTokenBean)
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean t) {
super.onSuccess(t);
SPUtils.put(ctx, NEW_LJ_TOKEN, t.getToken());
}
}));
}
/**
* 刷新token
* @param ctx
*/
public void refreshToken(Context ctx){
String token = SPUtils.get(ctx, NEW_LJ_TOKEN, "").toString();
DataManager.getInstance().refreshToken(token)
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean<CommonResponseBean> t) {
super.onSuccess(t);
SPUtils.put(ctx, NEW_LJ_TOKEN, t.getToken());
}
}));
}
public void getToken(Context ctx, OnGDResultListener listener) {
LjTokenBean ljTokenBean = new LjTokenBean();
ljTokenBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
ljTokenBean.setEnterpriseIdentity(NewLJConstant.ENTER_PRISE_IDENTITY);
ljTokenBean.setEnterpriseKey(NewLJConstant.ENTER_PRISE_KEY);
DataManager.getInstance().getToken(ljTokenBean)
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean t) {
super.onSuccess(t);
SPUtils.put(ctx, NEW_LJ_TOKEN, t.getToken());
if (listener != null)
listener.onSuccess();
}
}));
}
/**
* 运单提货
*
* @param ctx
* @param shipmentCode
* @param location
*/
public void pickUp(Context ctx, String shipmentCode, GDLocation location, OnGDResultListener listener) {
if (TextUtils.isEmpty(shipmentCode)) {
ToastUtils.showToast(ctx, "运单号不能为空");
return;
}
if (Double.isNaN(location.getBaiduLatitude()) || Double.isNaN(location.getBaiduLongitude())) {
ToastUtils.showToast(ctx, "经纬度不能为空");
return;
}
PickupBean pickupBean = new PickupBean();
pickupBean.setShipmentCode(shipmentCode);
pickupBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
pickupBean.setLocation(location);
DataManager.getInstance().pickup(pickupBean)
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean t) {
super.onSuccess(t);
if (listener != null) {
listener.onSuccess();
}
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
super.onCodeError(mContext, t);
if (listener != null) {
listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage())?"运单操作异常":t.getMessage());
}
}
}));
}
/**
* 运单卸货
*
* @param ctx
* @param shipmentCode
* @param location
*/
public void unload(Context ctx, String shipmentCode, GDLocation location, OnGDResultListener listener) {
if (TextUtils.isEmpty(shipmentCode)) {
ToastUtils.showToast(ctx, "运单号不能为空");
return;
}
if (Double.isNaN(location.getBaiduLatitude()) || Double.isNaN(location.getBaiduLongitude())) {
ToastUtils.showToast(ctx, "经纬度不能为空");
return;
}
PickupBean pickupBean = new PickupBean();
pickupBean.setShipmentCode(shipmentCode);
pickupBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
pickupBean.setLocation(location);
DataManager.getInstance().unload(pickupBean)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean t) {
super.onSuccess(t);
if (listener != null) {
listener.onSuccess();
}
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
super.onCodeError(mContext, t);
if (listener != null) {
listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage())?"运单操作异常":t.getMessage());
}
}
}));
}
/**
* 运单签收
*
* @param ctx
* @param shipmentCode
* @param location
*/
public void sign(Context ctx, String shipmentCode, GDLocation location, OnGDResultListener listener) {
if (TextUtils.isEmpty(shipmentCode)) {
ToastUtils.showToast(ctx, "运单号不能为空");
return;
}
if (Double.isNaN(location.getBaiduLatitude()) || Double.isNaN(location.getBaiduLongitude())) {
ToastUtils.showToast(ctx, "经纬度不能为空");
return;
}
PickupBean pickupBean = new PickupBean();
pickupBean.setShipmentCode(shipmentCode);
pickupBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
pickupBean.setLocation(location);
DataManager.getInstance().sign(pickupBean)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean t) {
super.onSuccess(t);
if (listener != null) {
listener.onSuccess();
}
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
super.onCodeError(mContext, t);
if (listener != null) {
listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage())?"运单操作异常":t.getMessage());
}
}
}));
}
/**
* 运单回单
*
* @param ctx
* @param shipmentCode
* @param location
*/
public void pod(Context ctx, String shipmentCode, GDLocation location, OnGDResultListener listener) {
if (TextUtils.isEmpty(shipmentCode)) {
ToastUtils.showToast(ctx, "运单号不能为空");
return;
}
if (Double.isNaN(location.getBaiduLatitude()) || Double.isNaN(location.getBaiduLongitude())) {
ToastUtils.showToast(ctx, "经纬度不能为空");
return;
}
PickupBean pickupBean = new PickupBean();
pickupBean.setShipmentCode(shipmentCode);
pickupBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
pickupBean.setLocation(location);
DataManager.getInstance().pod(pickupBean)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean t) {
super.onSuccess(t);
if (listener != null) {
listener.onSuccess();
}
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
super.onCodeError(mContext, t);
if (listener != null) {
listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage())?"运单操作异常":t.getMessage());
}
}
}));
}
/**
* 运单提货照片上传
*
* @param ctx
* @param shipmentCode
* @param imageDTO
*/
public void uploadPickupImage(Context ctx, String shipmentCode, GDImage imageDTO, OnGDResultListener listener) {
if (TextUtils.isEmpty(shipmentCode)) {
ToastUtils.showToast(ctx, "运单号不能为空");
return;
}
if (TextUtils.isEmpty(imageDTO.getFileName())) {
ToastUtils.showToast(ctx, "照片不能为空");
return;
}
UpimgBean pickupBean = new UpimgBean();
pickupBean.setShipmentCode(shipmentCode);
pickupBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
pickupBean.setImage(imageDTO);
DataManager.getInstance().uploadPickupImage(pickupBean)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean t) {
super.onSuccess(t);
if (listener != null) {
listener.onSuccess();
}
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
super.onCodeError(mContext, t);
if (listener != null) {
listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage())?"运单操作异常":t.getMessage());
}
}
}));
}
/**
* 运单卸货照片上传
*
* @param ctx
* @param shipmentCode
* @param imageDTO
*/
public void uploadUnloadImage(Context ctx, String shipmentCode, GDImage imageDTO, OnGDResultListener listener) {
if (TextUtils.isEmpty(shipmentCode)) {
ToastUtils.showToast(ctx, "运单号不能为空");
return;
}
if (TextUtils.isEmpty(imageDTO.getFileName())) {
ToastUtils.showToast(ctx, "照片不能为空");
return;
}
UpimgBean pickupBean = new UpimgBean();
pickupBean.setShipmentCode(shipmentCode);
pickupBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
pickupBean.setImage(imageDTO);
DataManager.getInstance().uploadUnloadImage(pickupBean)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean t) {
super.onSuccess(t);
if (listener != null) {
listener.onSuccess();
}
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
super.onCodeError(mContext, t);
if (listener != null) {
listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage())?"运单操作异常":t.getMessage());
}
}
}));
}
/**
* 运单回单照片上传
*
* @param ctx
* @param shipmentCode
* @param imageDTO
*/
public void uploadPODImage(Context ctx, String shipmentCode, GDImage imageDTO, OnGDResultListener listener) {
if (TextUtils.isEmpty(shipmentCode)) {
ToastUtils.showToast(ctx, "运单号不能为空");
return;
}
if (TextUtils.isEmpty(imageDTO.getFileName())) {
ToastUtils.showToast(ctx, "照片不能为空");
return;
}
UpimgBean pickupBean = new UpimgBean();
pickupBean.setShipmentCode(shipmentCode);
pickupBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
pickupBean.setImage(imageDTO);
DataManager.getInstance().uploadPODImage(pickupBean)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean t) {
super.onSuccess(t);
if (listener != null) {
listener.onSuccess();
}
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
super.onCodeError(mContext, t);
if (listener != null) {
listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage())?"运单操作异常":t.getMessage());
}
}
}));
}
/**
* 获取发票列表
*
* @param ctx
* @param listener
*/
public void getInvoices(Context ctx, OnGDResultListener listener) {
DriverAuthDataBean auth = AuthParts.getAuth(ctx);
if (auth == null) {
return;
}
DataManager.getInstance().getInvoices(NewLJConstant.ENTER_PRISE_CODE, auth.getData().getIdcard(), 1, 100)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean<InvoicesBean>>() {
@Override
public void onSuccess(CommonResponseBean<CommonResponseBean<InvoicesBean>> t) {
super.onSuccess(t);
if (t.getData().getData().getDriverInvoices().size() > 0) {
confirmInvoice(ctx, new OnGDResultListener() {
@Override
public void onSuccess() {
}
@Override
public void onFailure(String var1, String var2) {
Log.e("NewLJUtils", var1 + var2);
}
});
}
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean<InvoicesBean>> t) {
super.onCodeError(mContext, t);
// Log.e("NewLJUtils", t.getMsg().toString());
}
}));
}
/**
* 同意发票申请
*
* @param ctx
*/
public void confirmInvoice(Context ctx, OnGDResultListener listener) {
DriverAuthDataBean auth = AuthParts.getAuth(ctx);
if (auth == null) {
return;
}
searchDriver(ctx, auth.getData().getIdcard(), new OnGDDownloadResultListener() {
@Override
public void onSuccess(String var1) {
InvoiceBean invoiceBean = new InvoiceBean();
invoiceBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
invoiceBean.setDriverInvoiceCode(var1);
invoiceBean.setDriverIdentification(auth.getData().getIdcard());
DataManager.getInstance().confirmInvoice(invoiceBean)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean t) {
super.onSuccess(t);
if (listener != null) {
listener.onSuccess();
}
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
super.onCodeError(mContext, t);
if (listener != null) {
listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage())?"运单操作异常":t.getMessage());
}
}
}));
}
@Override
public void onFailure(String var1, String var2) {
}
});
//查询身份证信息
// new AuthRequest().getCard(ctx, new Handler(msg -> {
// switch (msg.what) {
// case RequsetCodeConstants.ERROR:
// Toast.makeText(ctx, RequsetCodeConstants.FEEDBACK_TEXT, Toast.LENGTH_SHORT).show();
// break;
// case RequsetCodeConstants.UNKONWN:
// Toast.makeText(ctx, RequsetCodeConstants.UNKONWN_TEXT, Toast.LENGTH_SHORT).show();
// break;
// case RequsetCodeConstants.SERVER_ERROR:
// Toast.makeText(ctx, RequsetCodeConstants.SERVER_ERROR_TEXT, Toast.LENGTH_SHORT).show();
// break;
// case RequsetCodeConstants.GATEWAY_ERROR:
// Toast.makeText(ctx, RequsetCodeConstants.GATEWAY_ERROR_TEXT, Toast.LENGTH_SHORT).show();
// break;
// case RequsetCodeConstants.SUCCESS:
// IsAuthCardBean iacb = new Gson().fromJson(CacheGroup.cacheList.get(CertificatesActivity.ISAUTH), IsAuthCardBean.class);
// if (iacb != null || iacb.getData() != null || !TextUtils.isEmpty(iacb.getData().getIdcard())) {
// //根据身份证号查询路交司机信息
// searchDriver(ctx, iacb.getData().getIdcard(), new OnGDDownloadResultListener() {
// @Override
// public void onSuccess(String var1) {
// InvoiceBean invoiceBean = new InvoiceBean();
// invoiceBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
// invoiceBean.setDriverInvoiceCode(var1);
// invoiceBean.setDriverIdentification(iacb.getData().getIdcard());
// DataManager.getInstance().confirmInvoice(invoiceBean)
// .subscribeOn(Schedulers.io())
// .observeOn(AndroidSchedulers.mainThread())
// .subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
// @Override
// public void onSuccess(CommonResponseBean t) {
// super.onSuccess(t);
// if (listener != null) {
// listener.onSuccess();
// }
// }
//
// @Override
// public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
// super.onCodeError(mContext, t);
// if (listener != null) {
// listener.onFailure(t.getCode() + "", t.getMessage());
// }
// }
// }));
// }
//
// @Override
// public void onFailure(String var1, String var2) {
//
// }
// });
// } else {
// Toast.makeText(ctx, "缺少身份证信息", Toast.LENGTH_SHORT).show();
// }
// break;
// }
// return false;
// }));
}
/**
* 运单状态查询
*
* @param ctx
* @param shipmentCode
*/
public void getShipmentStatus(Context ctx, String shipmentCode, OnGDDownloadResultListener listener) {
ShipmentStatusBean shipmentStatusBean = new ShipmentStatusBean();
shipmentStatusBean.setShipmentCode(shipmentCode);
shipmentStatusBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
DataManager.getInstance().getShipmentStatus(shipmentStatusBean)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean t) {
super.onSuccess(t);
if (listener != null) {
listener.onSuccess(t.getStatusCode());
}
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
super.onCodeError(mContext, t);
if (listener != null) {
listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage())?"运单操作异常":t.getMessage());
}
}
}));
}
public void getPODImageNames(Context ctx, String shipmentCode) {
ShipmentStatusBean shipmentStatusBean = new ShipmentStatusBean();
shipmentStatusBean.setShipmentCode(shipmentCode);
shipmentStatusBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
DataManager.getInstance().getPODImageNames(shipmentStatusBean)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean t) {
super.onSuccess(t);
System.out.println("sadf");
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
super.onCodeError(mContext, t);
System.out.println("sadf");
}
}));
}
/**
* 开启位置上传
*
* @param act
*/
public void startLocationService(AppCompatActivity act) {
DriverAuthDataBean auth = AuthParts.getAuth(act);
if (auth == null) {
return;
}
searchDriver(act, auth.getData().getIdcard(), new OnGDDownloadResultListener() {
@Override
public void onSuccess(String var1) {
try {
//开启定位服务
Api.setBaseUrl("https://kehui56.cn/api", "https://api.kehui56.cn/api");
String result = Api.startLocationService(act, var1, s -> {
Log.e("位置上报", s);
});
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Override
public void onFailure(String var1, String var2) {
}
});
//查询身份证信息
// new AuthRequest().getCard(act, new Handler(msg -> {
// switch (msg.what) {
// case RequsetCodeConstants.ERROR:
// Toast.makeText(act, RequsetCodeConstants.FEEDBACK_TEXT, Toast.LENGTH_SHORT).show();
// break;
// case RequsetCodeConstants.UNKONWN:
// Toast.makeText(act, RequsetCodeConstants.UNKONWN_TEXT, Toast.LENGTH_SHORT).show();
// break;
// case RequsetCodeConstants.SERVER_ERROR:
// Toast.makeText(act, RequsetCodeConstants.SERVER_ERROR_TEXT, Toast.LENGTH_SHORT).show();
// break;
// case RequsetCodeConstants.GATEWAY_ERROR:
// Toast.makeText(act, RequsetCodeConstants.GATEWAY_ERROR_TEXT, Toast.LENGTH_SHORT).show();
// break;
// case RequsetCodeConstants.SUCCESS:
// IsAuthCardBean iacb = new Gson().fromJson(CacheGroup.cacheList.get(CertificatesActivity.ISAUTH), IsAuthCardBean.class);
// if (iacb != null || iacb.getData() != null || !TextUtils.isEmpty(iacb.getData().getIdcard())) {
// //根据身份证号查询路交司机信息
// searchDriver(act,iacb.getData().getIdcard(), new OnGDDownloadResultListener() {
// @Override
// public void onSuccess(String var1) {
// try {
// //开启定位服务
// Api.setBaseUrl("https://kehui56.cn/api", "https://api.kehui56.cn/api");
// String result = Api.startLocationService(act, var1, s -> {
// Log.e("位置上报", s);
// });
// } catch (Exception e) {
// throw new RuntimeException(e);
// }
// }
//
// @Override
// public void onFailure(String var1, String var2) {
//
// }
// });
// } else {
// Toast.makeText(act, "缺少身份证信息", Toast.LENGTH_SHORT).show();
// }
// break;
// }
// return false;
// }));
}
/**
* 关闭定位服务
*/
public void stopLocationService() {
Api.stopLocationService();
}
/**
* 查询司机
*/
public void searchDriver(Context ctx, String idCard, OnGDDownloadResultListener listener) {
DataManager.getInstance().searchDriver(idCard)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean<CommonResponseBean> t) {
super.onSuccess(t);
DriverBean driver = t.getDriver();
if (driver != null && !TextUtils.isEmpty(driver.getDriverCode())) {
if (listener != null)
listener.onSuccess(driver.getDriverCode());
}
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
super.onCodeError(mContext, t);
if (listener != null)
listener.onFailure(t.getCode(), TextUtils.isEmpty(t.getMessage())?"运单操作异常":t.getMessage());
}
}));
}
}
@@ -1,82 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<RelativeLayout
android:id="@+id/rl_title"
android:layout_width="match_parent"
android:layout_height="44dp"
>
<ImageView
android:id="@+id/back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:padding="5dp"
android:layout_marginLeft="10dp"
android:src="@mipmap/btn_back" />
<TextView
android:id="@+id/close"
android:layout_toRightOf="@id/back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="关闭" />
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:singleLine="true"
android:ellipsize="end"
android:layout_marginLeft="70dp"
android:layout_marginRight="60dp"
android:gravity="center_vertical"
android:textSize="17sp"
android:textColor="@color/color_333333"
android:text="人脸识别" />
</RelativeLayout>
<com.esign.esignsdk.h5.view.X5WebView
android:id="@+id/webview"
android:layout_below="@id/rl_title"
app:layout_constraintTop_toBottomOf="@id/rl_title"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
<LinearLayout
android:id="@+id/ll_exception"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/color_white"
android:layout_below="@id/rl_title"
android:orientation="vertical"
android:visibility="gone"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="80dp"
android:layout_gravity="center_horizontal"
android:layout_centerHorizontal="true"
android:src="@mipmap/icon_exception"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:textSize="16sp"
android:textColor="@color/color_282828"
android:text="@string/exception_tips"
android:gravity="center_horizontal"/>
</LinearLayout>
</RelativeLayout>
@@ -0,0 +1,23 @@
package com.arpa.hndahesudintocctmsdriver;
import android.util.Log;
import org.junit.Test;
import java.math.BigDecimal;
/**
* @author hlh
* @version 1.0.0
* @date 2021/10/12 16:53
* @description:
*/
public class test1 {
@Test
public void te(){
String s = new BigDecimal("100.000").subtract(new BigDecimal("5")).toString();
Log.i("",s);
}
}
+41 -5
View File
@@ -1,9 +1,45 @@
plugins { // Top-level build file where you can add configuration options common to all sub-projects/modules.
id 'com.android.application' version '7.2.2' apply false
id 'com.android.library' version '7.2.2' apply false
id 'org.jetbrains.kotlin.android' version '1.9.22' apply false
}
apply from: "compile.gradle" apply from: "compile.gradle"
buildscript {
// ext.kotlin_version = "1.5.0"
ext.kotlin_version = "1.6.10"
repositories {
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
google()
jcenter() // 这个
mavenCentral()
maven { url 'http://developer.huawei.com/repo/'}
maven { url 'https://repo1.maven.org/maven2/' }
maven {
url 'https://maven.aliyun.com/repository/releases'
}
}
dependencies {
classpath 'com.android.tools.build:gradle:4.2.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.huawei.agconnect:agcp:1.4.1.300'
}
}
allprojects {
repositories {
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
google()
jcenter() // Warning: this repository is going to shut down soon
mavenCentral()
maven {url 'http://developer.huawei.com/repo/'}
maven { url 'https://www.jitpack.io' }
maven { url 'https://repo1.maven.org/maven2/' }
maven {
url 'https://maven.aliyun.com/repository/releases'
}
}
}
task clean(type: Delete) { task clean(type: Delete) {
delete rootProject.buildDir delete rootProject.buildDir
} }
+1 -2
View File
@@ -1,7 +1,6 @@
#Mon Jul 12 10:16:49 CST 2021 #Mon Jul 12 10:16:49 CST 2021
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
#distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-6.7.1-bin.zip distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-6.7.1-bin.zip
distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-7.3.3-bin.zip
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
+1 -1
View File
@@ -35,7 +35,7 @@ android {
dependencies { dependencies {
// implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.3.1' implementation 'androidx.core:core-ktx:1.3.1'
implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.2.1' implementation 'com.google.android.material:material:1.2.1'
@@ -1,49 +0,0 @@
package com.dahe.mylibrary.bean;
import java.io.Serializable;
/**
* @ClassName DriverBean
* @Author john
* @Date 2024/11/28 12:24
* @Description TODO
*/
public class DriverBean implements Serializable {
private String driverCode;
private String isTaxRegistered;
private String taxRegisterStatus;
private String taxRegisterStatusDescription;
public String getDriverCode() {
return driverCode;
}
public void setDriverCode(String driverCode) {
this.driverCode = driverCode;
}
public String getIsTaxRegistered() {
return isTaxRegistered;
}
public void setIsTaxRegistered(String isTaxRegistered) {
this.isTaxRegistered = isTaxRegistered;
}
public String getTaxRegisterStatus() {
return taxRegisterStatus;
}
public void setTaxRegisterStatus(String taxRegisterStatus) {
this.taxRegisterStatus = taxRegisterStatus;
}
public String getTaxRegisterStatusDescription() {
return taxRegisterStatusDescription;
}
public void setTaxRegisterStatusDescription(String taxRegisterStatusDescription) {
this.taxRegisterStatusDescription = taxRegisterStatusDescription;
}
}
@@ -1,13 +0,0 @@
package com.dahe.mylibrary.callback;
/**
* @ClassName OnGDDownloadResultListener
* @Author john
* @Date 2024/11/25 18:22
* @Description TODO
*/
public interface OnGDDownloadResultListener {
void onSuccess(String var1);
void onFailure(String var1, String var2);
}
@@ -1,14 +0,0 @@
package com.dahe.mylibrary.callback;
/**
* @ClassName OnGDResultListener
* @Author john
* @Date 2024/11/25 17:48
* @Description TODO
*/
public interface OnGDResultListener {
void onSuccess();
void onFailure(String var1, String var2);
}
@@ -1,7 +1,5 @@
package com.dahe.mylibrary.net; package com.dahe.mylibrary.net;
import com.dahe.mylibrary.bean.DriverBean;
import java.io.Serializable; import java.io.Serializable;
/** /**
@@ -10,59 +8,13 @@ import java.io.Serializable;
public class CommonResponseBean<T> implements Serializable { public class CommonResponseBean<T> implements Serializable {
private T data; private T data;
private String code; private int code;
private String info; private String info;
private String msg; private String msg;
private String message;
private String url; private String url;
private String fileName; private String fileName;
private String token;
private String expiryIn;
private String statusCode;
private boolean success; private boolean success;
private DriverBean driver;
public DriverBean getDriver() {
return driver;
}
public void setDriver(DriverBean driver) {
this.driver = driver;
}
public String getStatusCode() {
return statusCode;
}
public void setStatusCode(String statusCode) {
this.statusCode = statusCode;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public String getExpiryIn() {
return expiryIn;
}
public void setExpiryIn(String expiryIn) {
this.expiryIn = expiryIn;
}
public T getData() { public T getData() {
return data; return data;
} }
@@ -71,11 +23,11 @@ public class CommonResponseBean<T> implements Serializable {
this.data = data; this.data = data;
} }
public String getCode() { public int getCode() {
return code; return code;
} }
public void setCode(String code) { public void setCode(int code) {
this.code = code; this.code = code;
} }
@@ -20,7 +20,6 @@ public class BaseSPUtils {
public static final String USER_INFO_KEY = "user_info_key"; public static final String USER_INFO_KEY = "user_info_key";
public static final String NET_SERVICE_TEST = "net_service_test"; public static final String NET_SERVICE_TEST = "net_service_test";
public static final String SEARRH_CACHE = "search_cache"; public static final String SEARRH_CACHE = "search_cache";
public static final String NEW_LJ_TOKEN = "NEW_LJ_TOKEN";
public static final String NAVI_PH_EDIT_CACHE = "navi_ph_edit_cache"; public static final String NAVI_PH_EDIT_CACHE = "navi_ph_edit_cache";
public static final String FIRST_OPEN = "first_open"; public static final String FIRST_OPEN = "first_open";
public static final String KEY_PRIVACY_AGREEMENT = "privacy_agreement"; public static final String KEY_PRIVACY_AGREEMENT = "privacy_agreement";
@@ -0,0 +1,112 @@
package com.dahe.mylibrary.utils;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.provider.Settings;
/**
* @ClassName PermissionUtils
* @Author john
* @Date 2024/12/19 14:59
* @Description TODO
*/
public class PermissionUtils {
// 私有静态实例,防止被外部实例化
private static PermissionUtils instance;
// 私有构造方法,防止通过 new 关键字创建实例
private PermissionUtils() {
}
// 获取单例实例
public static PermissionUtils getInstance() {
if (instance == null) {
synchronized (PermissionUtils.class) {
if (instance == null) {
instance = new PermissionUtils();
}
}
}
return instance;
}
/**
* 根据不同手机机型跳转到权限设置页面
*
* @param context 上下文
*/
public void goToAppPermissionSettings(Context context) {
Intent intent = new Intent();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (Build.FINGERPRINT.startsWith("Huawei") || Build.BRAND.startsWith("Huawei")) {
// 华为手机
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", context.getPackageName(), null);
intent.setData(uri);
} else if (Build.FINGERPRINT.startsWith("Xiaomi") || Build.BRAND.startsWith("Xiaomi")) {
// 小米手机
intent.setAction(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
Uri uri = Uri.parse("package:" + context.getPackageName());
intent.setData(uri);
} else if (Build.BRAND.equals("Meizu")) {
// 魅族手机
intent.setAction("com.meizu.safe.security.SHOW_APPSEC");
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.putExtra("packageName", context.getPackageName());
} else if (Build.FINGERPRINT.startsWith("OPPO") || Build.BRAND.startsWith("OPPO")) {
// OPPO手机
try {
String pkgName = context.getPackageName();
String className = "com.coloros.safecenter.permission.PermissionManagerActivity";
intent.setClassName("com.coloros.safecenter", className);
intent.putExtra("packageName", pkgName);
intent.putExtra("appName", context.getResources().getString(context.getApplicationInfo().labelRes));
intent.putExtra("opType", "4"); // 4 表示权限管理页面
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
} catch (Exception e) {
// 如果找不到OPPO的特定页面,则使用通用页面
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", context.getPackageName(), null);
intent.setData(uri);
}
} else if (Build.FINGERPRINT.startsWith("vivo") || Build.BRAND.startsWith("vivo")) {
// vivo手机
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", context.getPackageName(), null);
intent.setData(uri);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(Settings.EXTRA_APP_PACKAGE, context.getPackageName());
} else if (Build.BRAND.equals("samsung")) {
// 三星手机
try {
String pkgName = context.getPackageName();
Intent intent2 = new Intent("android.settings.APPLICATION_DETAILS_SETTINGS");
intent2.addCategory(Intent.CATEGORY_DEFAULT);
intent2.setData(Uri.parse("package:" + pkgName));
intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent2.putExtra("com.android.providers.media.EXTRA_APP_PACKAGE", pkgName);
context.startActivity(intent2);
return; // 使用三星特定的页面,不需要继续执行通用代码
} catch (Exception e) {
// 如果三星特定页面失败,则使用通用页面
}
} else {
// 其他手机使用通用页面
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", context.getPackageName(), null);
intent.setData(uri);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(Settings.EXTRA_APP_PACKAGE, context.getPackageName());
}
} else {
// 低于Android 6.0(M)的版本,使用通用页面
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", context.getPackageName(), null);
intent.setData(uri);
}
context.startActivity(intent);
}
}
-24
View File
@@ -1,27 +1,3 @@
pluginManagement {
repositories {
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter' }
maven { url "https://jitpack.io" }
gradlePluginPortal()
google()
mavenCentral()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter' }
maven { url "https://jitpack.io" }
google()
mavenCentral()
}
}
rootProject.name = "wangluohuoyun" rootProject.name = "wangluohuoyun"
include ':app' include ':app'
//include ':AliyunVideoCommon' //include ':AliyunVideoCommon'