From 70fbe8eb6cfa5a3aed58fccaaa3dd8df0b808ab5 Mon Sep 17 00:00:00 2001 From: lijia Date: Thu, 13 Oct 2022 17:09:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=89=E8=81=94=E7=8A=B6=E6=80=81=E4=B8=8D?= =?UTF-8?q?=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 14 + .../bean/StartOrderBean.java | 9 + .../shangchuan/ShangChuangImgActivity2.java | 709 ++++++++++++++++++ 3 files changed, 732 insertions(+) create mode 100644 app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/shangchuan/ShangChuangImgActivity2.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a11fb4a..da45e40 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -108,6 +108,20 @@ + + + + + + + + + + + + goods; private int report; @@ -280,6 +281,14 @@ public class StartOrderBean { private String distance; private int isEvaluation; + public String getImageTakenDate() { + return imageTakenDate; + } + + public void setImageTakenDate(String imageTakenDate) { + this.imageTakenDate = imageTakenDate; + } + public long getId() { return id; } diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/shangchuan/ShangChuangImgActivity2.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/shangchuan/ShangChuangImgActivity2.java new file mode 100644 index 0000000..1c2f4b1 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/shangchuan/ShangChuangImgActivity2.java @@ -0,0 +1,709 @@ +package com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Message; +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.OnResultListener; +import com.alct.mdp.model.Goods; +import com.alct.mdp.model.Image; +import com.alct.mdp.model.Location; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.BaseBean; +import com.arpa.hndahesudintocctmsdriver.bean.StartOrderBean; +import com.arpa.hndahesudintocctmsdriver.bean.UploadBean; +import com.arpa.hndahesudintocctmsdriver.report.JTTProcess; +import com.arpa.hndahesudintocctmsdriver.request.HuoYuanRequset; +import com.arpa.hndahesudintocctmsdriver.request.bean.LUInputBean; +import com.arpa.hndahesudintocctmsdriver.request.bean.UploadReceiptInputBean; +import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity; +import com.arpa.hndahesudintocctmsdriver.util.BitmapUtil; +import com.arpa.hndahesudintocctmsdriver.util.NfcUtils; +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.bumptech.glide.Glide; +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 java.io.File; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.List; + +public class ShangChuangImgActivity2 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; + private LocationUtil lu; + private List 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; + + @Override + public void msgMethod(Message m) { + super.msgMethod(m); + switch (m.what){ + case RequsetCodeConstants.SUCCESS: + if (CacheGroup.cacheList.get("upload")!=null) { + 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); + 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"); + } + for(int i=0;i { + if (!locationKey){ + customDialog.show(); + lgdu.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){ + typeRequest(); + }else{ + Toast.makeText(con,"请先上传一张图片",Toast.LENGTH_SHORT).show(); + } + }); + getImg.setOnClickListener(v -> { + if(key){ + Log.e("--imgIds.size()--",imgIds.size()+""); + gia.showPopueWindow(this,true); +// gia.showPopueWindow(this,index==2); + }else{ + 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(); + ImageFileCompressUtil.imageFileCompress(con,new File(path),hd); + } else if (requestCode == PictureConfig.CHOOSE_REQUEST && resultCode == RESULT_OK) { + List 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(); + ImageFileCompressUtil.imageFileCompress(con,new File(path),hd); + } + } + } + + public void initLocation(){ + address.setText(lgdu.getAddress()); + } + + public void typeRequest(){ +// for(int i=0;i0) { + 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){ +// hyr.loading(lub); + if(keys){ + nfc(); + up_traffic_start(); + up_image_z(); + } + }else{ + Toast.makeText(con,"定位异常,请重新定位",Toast.LENGTH_SHORT).show(); + } + + }else{ + 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){ + nfc(); + up_traffic_end(); + up_image(); + } +// hyr.dischargeCargo(lub); + }else{ + Toast.makeText(con,"定位异常,请重新定位",Toast.LENGTH_SHORT).show(); + } + + }else{ + 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{ + Toast.makeText(con,"定位异常,请重新定位",Toast.LENGTH_SHORT).show(); + } + }else{ + Toast.makeText(con,"图片上传异常,请重新上传",Toast.LENGTH_SHORT).show(); + } + break; + default:break; + } + } + + private StartOrderBean sob; + + //上传安联和交通厅-装货 + public void up_traffic_start(){ + //安联 + if(sob.getData().getReportAlct()==1) { + + StartOrderBean.DataDTO.WayChildrenDTO data = new StartOrderBean.DataDTO.WayChildrenDTO(); + for (StartOrderBean.DataDTO.WayChildrenDTO wayChild : sob.getData().getWayChildren()) { + if (wayChild.getType()==1){ + data = wayChild; + } + } + + Location l = new Location(); + l.setBaiduLongitude(Double.parseDouble(data.getLongitude())); + l.setBaiduLatitude(Double.parseDouble(data.getLatitude())); + l.setLocation(data.getAddress()); + l.setTime(data.getImageTakenDate()); + MDPLocationCollectionManager.pickup(con,sob.getData().getShippingNoteNumber(), l, new OnResultListener() { + @Override + public void onSuccess() { + Log.e("上报安联", "装货上传成功"); + ToastUtils.showToast(ShangChuangImgActivity2.this,"装货上传成功"); + } + + @Override + public void onFailure(String s, String s1) { + Log.e("上报安联失败(装货):", s + s1); + ToastUtils.showToast(ShangChuangImgActivity2.this,s + s1); + } + }); + } + //交通厅 + if(sob.getData().getReport()==1){ + JTTProcess.start(con,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_traffic_end(){ + //安联 + if(sob.getData().getReportAlct()==1){ + StartOrderBean.DataDTO.WayChildrenDTO data = new StartOrderBean.DataDTO.WayChildrenDTO(); + for (StartOrderBean.DataDTO.WayChildrenDTO wayChild : sob.getData().getWayChildren()) { + if (wayChild.getType()==2){ + data = wayChild; + } + } + Location l=new Location(); + l.setBaiduLongitude(Double.parseDouble(data.getLongitude())); + l.setBaiduLatitude(Double.parseDouble(data.getLatitude())); + l.setLocation(data.getAddress()); + l.setTime(data.getImageTakenDate()); + Log.e("-安联卸货信息-",gson.toJson(l)); + MDPLocationCollectionManager.unload(con, sob.getData().getShippingNoteNumber(), l, new OnResultListener() { + @Override + public void onSuccess() { + Log.e("上报安联","卸货上传成功"); + ToastUtils.showToast(ShangChuangImgActivity2.this,"卸货上传成功"); + } + + @Override + public void onFailure(String s, String s1) { + Log.e("上报安联失败(卸货):",s+s1); + ToastUtils.showToast(ShangChuangImgActivity2.this,s+s1); + } + }); + } + //交通厅 + if(sob.getData().getReport()==1){ + JTTProcess.stop(con,sob,""); + } + } + + //上传安联-签收 + public void up_trafficSign(){ + StartOrderBean.DataDTO.WayChildrenDTO data = new StartOrderBean.DataDTO.WayChildrenDTO(); + for (StartOrderBean.DataDTO.WayChildrenDTO wayChild : sob.getData().getWayChildren()) { + if (wayChild.getType()==2){ + data = wayChild; + } + } + //安联 + Location l=new Location(); + l.setBaiduLongitude(Double.parseDouble(data.getLongitude())); + l.setBaiduLatitude(Double.parseDouble(data.getLatitude())); + l.setLocation(data.getAddress()); + l.setTime(data.getImageTakenDate()); + List 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("上报安联","签收成功"); + ToastUtils.showToast(ShangChuangImgActivity2.this,"签收成功"); + } + + @Override + public void onFailure(String s, String s1) { + ToastUtils.showToast(ShangChuangImgActivity2.this,s+s1); + Log.e("上报安联失败(签收):",s+s1); + } + }); + } + + //上传安联-回单 + public void up_trafficReceipt(){ + StartOrderBean.DataDTO.WayChildrenDTO data = new StartOrderBean.DataDTO.WayChildrenDTO(); + for (StartOrderBean.DataDTO.WayChildrenDTO wayChild : sob.getData().getWayChildren()) { + if (wayChild.getType()==2){ + data = wayChild; + } + } + //安联 + Location l=new Location(); + l.setBaiduLongitude(Double.parseDouble(data.getLongitude())); + l.setBaiduLatitude(Double.parseDouble(data.getLatitude())); + l.setLocation(data.getAddress()); + l.setTime(data.getImageTakenDate()); + MDPLocationCollectionManager.pod(con, sob.getData().getShippingNoteNumber(), l, new OnResultListener() { + + @Override + public void onSuccess() { + Log.e("上报安联","回单上传成功"); + ToastUtils.showToast(ShangChuangImgActivity2.this,"回单上传成功"); + } + + @Override + public void onFailure(String s, String s1) { + Log.e("上报安联失败(回单):",s+s1); + ToastUtils.showToast(ShangChuangImgActivity2.this,s+s1); + } + + }); + } + + public void up_image_z(){ + ///storage/emulated/0/Android/data/com.oneclouds.wangluohuoyun/files/Pictures/163124593063154.jpg + + StartOrderBean.DataDTO.WayChildrenDTO data = new StartOrderBean.DataDTO.WayChildrenDTO(); + for (StartOrderBean.DataDTO.WayChildrenDTO wayChild : sob.getData().getWayChildren()) { + if (wayChild.getType()==1){ + data = wayChild; + } + } + + 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(data.getImageTakenDate()); + image.setBaiduLongitude(Double.parseDouble(data.getLongitude())); + image.setBaiduLatitude(Double.parseDouble(data.getLatitude())); + image.setLocation(data.getAddress()); + MDPLocationCollectionManager.uploadPickupImage(con, sob.getData().getShippingNoteNumber(), image, new OnResultListener() { + + @Override + public void onSuccess() { + Log.e("上报安联","装货照片上传成功"); + ToastUtils.showToast(ShangChuangImgActivity2.this,"装货照片上传成功"); + } + + @Override + public void onFailure(String s, String s1) { + Log.e("上报安联失败(装货照片):",s+s1); + ToastUtils.showToast(ShangChuangImgActivity2.this,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(){ + + StartOrderBean.DataDTO.WayChildrenDTO data = new StartOrderBean.DataDTO.WayChildrenDTO(); + for (StartOrderBean.DataDTO.WayChildrenDTO wayChild : sob.getData().getWayChildren()) { + if (wayChild.getType()==2){ + data = wayChild; + } + } + + 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(data.getImageTakenDate()); + image.setBaiduLongitude(Double.parseDouble(data.getLongitude())); + image.setBaiduLatitude(Double.parseDouble(data.getLatitude())); + image.setLocation(data.getAddress()); + MDPLocationCollectionManager.uploadUnloadImage(con, sob.getData().getShippingNoteNumber(), image, new OnResultListener() { + + @Override + public void onSuccess() { + Log.e("上报安联","卸货照片上传成功"); + ToastUtils.showToast(ShangChuangImgActivity2.this,"卸货照片上传成功"); + } + + @Override + public void onFailure(String s, String s1) { + Log.e("上报安联失败(卸货照片):",s+s1); + ToastUtils.showToast(ShangChuangImgActivity2.this,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 receipt_image(){ + ///storage/emulated/0/Android/data/com.oneclouds.wangluohuoyun/files/Pictures/163124593063154.jpg + StartOrderBean.DataDTO.WayChildrenDTO data = new StartOrderBean.DataDTO.WayChildrenDTO(); + for (StartOrderBean.DataDTO.WayChildrenDTO wayChild : sob.getData().getWayChildren()) { + if (wayChild.getType()==2){ + data = wayChild; + } + } + + 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(data.getImageTakenDate()); + image.setBaiduLongitude(Double.parseDouble(data.getLongitude())); + image.setBaiduLatitude(Double.parseDouble(data.getLatitude())); + image.setLocation(data.getAddress()); + MDPLocationCollectionManager.uploadPODImage(con, sob.getData().getShippingNoteNumber(), image, new OnResultListener() { + + @Override + public void onSuccess() { + Log.e("上报安联","回单照片上传成功"); + ToastUtils.showToast(ShangChuangImgActivity2.this,"回单照片上传成功"); + } + + @Override + public void onFailure(String s, String s1) { + Log.e("上报安联失败(回单照片):",s+s1); + ToastUtils.showToast(ShangChuangImgActivity2.this,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); + } + + +}