12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004 |
- package com.fxy.detection;
- import android.annotation.SuppressLint;
- import android.app.AlertDialog;
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.DialogInterface;
- import android.content.Intent;
- import android.content.IntentFilter;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.Message;
- import android.support.v7.widget.RecyclerView;
- import android.text.Editable;
- import android.text.TextWatcher;
- import android.view.KeyEvent;
- import android.view.View;
- import android.view.inputmethod.EditorInfo;
- import android.widget.EditText;
- import android.widget.ImageButton;
- import android.widget.LinearLayout;
- import android.widget.ProgressBar;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.elvishew.xlog.XLog;
- import com.fxy.R;
- import com.fxy.baselibrary.base.BaseActivity;
- import com.fxy.baselibrary.bean.BaseEventBusBean;
- import com.fxy.baselibrary.interfaces.OnRxScanerListener;
- import com.fxy.baselibrary.qrcode.ActivityScanerCode;
- import com.fxy.baselibrary.util.JsonUtil;
- import com.fxy.bean.ActionBean;
- import com.fxy.bean.ScanBean;
- import com.fxy.common.AsyncUpload;
- import com.fxy.common.PictureSelectorUpload;
- import com.fxy.common.UploadProgressEvent;
- import com.fxy.constant.BaseConfig;
- import com.fxy.constant.EventCode;
- import com.fxy.detection.bean.NeedPhotoBean;
- import com.fxy.detection.bean.TakePictureBean;
- import com.fxy.net.MyDialogCallback;
- import com.fxy.net.Urls;
- import com.fxy.view.FloatingImageView;
- import com.google.gson.Gson;
- import com.google.zxing.Result;
- import com.luck.picture.lib.config.PictureConfig;
- import com.luck.picture.lib.entity.LocalMedia;
- import com.lzy.okgo.OkGo;
- import com.lzy.okgo.model.Response;
- import org.greenrobot.eventbus.Subscribe;
- import org.greenrobot.eventbus.ThreadMode;
- import org.json.JSONException;
- import org.json.JSONObject;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import butterknife.BindView;
- import butterknife.ButterKnife;
- import butterknife.OnClick;
- import butterknife.Unbinder;
- import sto.android.app.StoJNI;
- import sto.android.app.StoPdaKeyEvent;
- import sto.android.app.StoTongJNI;
- public class DetectionPutInMainActivity extends BaseActivity implements StoJNI.ScanCallBack{
- /**
- * 列表适配器
- */
- Context mContext = this;
- @BindView(R.id.et_order_number)
- EditText etOrderNumber;
- @BindView(R.id.et_tracking_number)
- EditText etTrackingNumber;
- @BindView(R.id.et_unit_code)
- EditText etUnitCode;
- //拍照区域
- @BindView(R.id.ll_camera_picture_module)
- LinearLayout llCameraPictureModule;
- @BindView(R.id.ll_label_picture)
- LinearLayout llLabelPicture;
- @BindView(R.id.ll_weigh_picture)
- LinearLayout llWeighPicture;
- @BindView(R.id.ll_result)
- LinearLayout llResult;
- @BindView(R.id.tv_result)
- TextView tvResult;
- @BindView(R.id.ll_await_num)
- LinearLayout llAwaitNum;
- @BindView(R.id.tv_await_num)
- TextView tvAwaitNum;
- @BindView(R.id.pb_progressbar)
- ProgressBar pbProgressbar;
- @BindView(R.id.percentage_text_view)
- TextView tvPercentageTextView;
- @BindView(R.id.btn_start_upload)
- TextView btnStartUpload;
- @BindView(R.id.ll_upload_progressbar)
- LinearLayout llUploadProgressbar;
- private HashMap<String, Object> postData = new HashMap<>();
- private HashMap<String,AsyncUpload> mapPictureSelector = new HashMap<>();
- private List<TakePictureBean> takePictureBeanList = new ArrayList<>();
- private String currentPictureType= "";
- private boolean currentUploadStatus = false;
- //
- //扫码扫码动作
- private ScanBean scanBean;
- private boolean showWeightImg = false;
- private boolean isRequiredShow = false;
- private ArrayList<String> baseImgList = new ArrayList<>();
- protected String action;
- private Unbinder unbinder;
- private JSONObject postParam = new JSONObject();
- @Override
- public int getContentViewResId() {
- return R.layout.activity_fxy_detection_putin;
- }
- @Override
- public boolean showToolBar() {
- return true;
- }
- @Override
- public boolean openEventBus() {
- return true;
- }
- @Override
- protected void getBundleExtras(Bundle bundle) {
- //XLog.e("接收数据解析:",bundle);
- }
- //finish的返回监听
- //这里的requestCode参数,就是上面设置的 1 ,当跳转的页面返回的时候,通过这个加以判断
- //resultCode ,这个参数是在跳转的页面里面规定的,它也是一个int类型的标志
- //第三个参数包含了返回的值
- //如果不需要所跳转的页面返回值,也就不需要这个方法了
- @Override
- public void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- if (resultCode == RESULT_OK) {
- // 图片选择结果回调
- if (requestCode == PictureConfig.CHOOSE_REQUEST) {
- if (mapPictureSelector.containsKey(currentPictureType)){
- mapPictureSelector.get(currentPictureType).setNotifyParam(getNotifyParam());
- mapPictureSelector.get(currentPictureType).getSelectImg(data);
- }
- totalAwaitNum();
- checkSubmit();
- }
- }
- }
- /**
- * EventBus接收信息的方法,开启后才会调用(非粘性事件)
- *
- * @param event
- */
- @Override
- protected void EventBean(BaseEventBusBean event) {
- // XLog.e("----------接收返回--------------");
- // XLog.e("接收返回:"+event.getEventCode());
- if (event != null && event.getEventCode() == EventCode.displacement_refresh){
- }
- }
- @Override
- public boolean isPlayMusic() {
- return true;
- }
- @Override
- protected void initView() {
- unbinder = ButterKnife.bind(this);
- setTitleName("单箱入库");
- initEdit();
- iniData();
- RecyclerView rvLabelShowImg = (RecyclerView)llLabelPicture.findViewById(R.id.rv_show_img);
- RecyclerView rvWeighShowImg = (RecyclerView)llWeighPicture.findViewById(R.id.rv_show_img);
- mapPictureSelector.put("label_img",setItemPicture("label_img",rvLabelShowImg,9));
- mapPictureSelector.put("weight_img",setItemPicture("weight_img",rvWeighShowImg,9));
- iniPhoto();
- totalAwaitNum();
- }
- /**
- * 设置多个上传文件
- * @param uploadType String
- * @param showImg RecyclerView
- */
- private AsyncUpload setItemPicture(String uploadType,RecyclerView showImg,int num){
- String notifyUrl = Urls.getServiceAddress(this) + Urls.FXY_DETECTION_PUTIN;
- AsyncUpload pictureUpload = new AsyncUpload(DetectionPutInMainActivity.this,showImg,"detection",uploadType,notifyUrl,false);
- pictureUpload.setUploadType(uploadType);
- pictureUpload.setCompress(true,100,100);
- pictureUpload.setOnlyCamera(true);
- pictureUpload.setMaxSelectNum(num);
- //showImg.onTouchEvent()
- pictureUpload.setOnChangeListener(new AsyncUpload.UploadChangeListener() {
- @Override
- public void uploadResult(boolean State,String actionType) {
- if (State) {
- totalAwaitNum();
- }
- }
- @Override
- public void uploadFileKey(String fileKey) {
- System.out.println("fileKey:"+fileKey);
- currentPictureType = fileKey;
- }
- });
- return pictureUpload;
- }
- private void setCameraPicture(){
- llCameraPictureModule.removeAllViews();;
- for (int i=0;i<takePictureBeanList.size();i++){
- addPictureSelectorUpload(llCameraPictureModule,takePictureBeanList.get(i));
- }
- }
- public void addPictureSelectorUpload(LinearLayout linearLayout, TakePictureBean takePictureBean){
- View itemPictureSelector = View.inflate(mContext, R.layout.item_picture_selector, null);
- TextView tvPicturesTitle = itemPictureSelector.findViewById(R.id.tv_pictures_title);
- tvPicturesTitle.setText(takePictureBean.getField());
- RecyclerView rvLabelShowImg = (RecyclerView)itemPictureSelector.findViewById(R.id.recyclerview);
- linearLayout.addView(itemPictureSelector);
- AsyncUpload tmpPictureSelector = setItemPicture(takePictureBean.getField(),rvLabelShowImg,takePictureBean.getNumber());
- mapPictureSelector.put(takePictureBean.getField(),tmpPictureSelector);
- }
- @Override
- public boolean dispatchKeyEvent(KeyEvent event) {
- //XLog.e("event:"+event.getKeyCode());
- if ((event.getKeyCode()==KeyEvent.KEYCODE_DPAD_CENTER || event.getKeyCode()==KeyEvent.KEYCODE_ENTER ) && event.getAction() == KeyEvent.ACTION_DOWN){
- //按确定键
- }
- return super.dispatchKeyEvent(event);
- }
- public HashMap<String, Object> getNotifyParam(){
- postData.put("box_number",etOrderNumber.getText().toString().trim());
- postData.put("tracking_number",etTrackingNumber.getText().toString().trim());
- postData.put("unit_code",etUnitCode.getText().toString().trim());
- mapPictureSelector.get(currentPictureType).setNotifyParam(postData);
- mapPictureSelector.get(currentPictureType).setNotifyParam(postData);
- return postData;
- }
- //监听按键
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- XLog.e("监听按键:"+keyCode);XLog.e(event);
- if (scanBean.getIsBroadcast()==0 && StoTongJNI.getIns(mContext).getEventFuction(keyCode) == StoPdaKeyEvent.KEYCODE_SCAN
- && event.getRepeatCount() == 0) {
- if (StoTongJNI.getIns(mContext).GetScannerIsScanning()) {
- //
- } else {
- StoTongJNI.getIns(mContext).SetScannerStart();
- }
- }
- return super.onKeyDown(keyCode, event);
- }
- @SuppressLint("HandlerLeak")
- Handler scanHandler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- // TODO Auto-generated method stub
- if (msg.obj != null) {
- String scanResult = msg.obj.toString().trim();
- if (!scanResult.isEmpty()){
- setScanResult(scanResult);
- }
- }
- }
- };
- @Override
- public void onScanResults(String str) {
- Message msg = new Message();
- msg.obj = str;
- scanHandler.sendMessage(msg);
- }
- @Override
- public void onScanResults(String str, int type) {
- }
- /**
- * 定义广播接受
- */
- BroadcastReceiver mReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- String scanResult = intent.getStringExtra(scanBean.getDataName());
- if (scanResult==null){return; }
- String scanStatus = "";
- if (!scanBean.getStatusName().isEmpty()){
- scanStatus = intent.getStringExtra(scanBean.getStatusName());
- }else{
- scanStatus = scanResult.isEmpty()? "" : "ok"; //有值 默认是扫码成功;
- }
- //新大陆(MT65,MT90) 需要手动关闭
- if (!scanBean.getActionStop().isEmpty()){
- Intent stopIntent = new Intent(scanBean.getActionStop());
- mContext.sendBroadcast(stopIntent);
- }
- if ("ok".equals(scanStatus)){
- setScanResult(scanResult);
- }else{
- showErrorToast(getString(R.string.scan_failed));
- }
- }
- };
- /**
- * 注册广播
- */
- private void initReceiver(){
- try {
- String scanStr = getScanSetting();
- scanBean = JsonUtil.getObject(scanStr, ScanBean.class);
- Integer is_broadcast = scanBean.getIsBroadcast();//是否广播
- if (is_broadcast ==1){
- IntentFilter mFilter = new IntentFilter(scanBean.getAction());
- this.registerReceiver(mReceiver, mFilter);
- }else{
- //不广播进行处理 jni模式
- String pdaBrand = StoTongJNI.getmPdaBrand();
- if (!pdaBrand.isEmpty()){
- StoTongJNI.getIns(this).setmScanCB(this);
- StoTongJNI.getIns(this).SetScannerOn();
- }
- }
- }catch (Exception e) {
- showErrorToast("获取扫码配置失败"+e.getMessage());
- XLog.e("获取扫码配置失败:" + e.getMessage());
- }
- }
- private void initEdit() {
- List<EditText> list = new ArrayList<>();
- list.add(etTrackingNumber);
- list.add(etOrderNumber);
- list.add(etUnitCode);
- unifyEdit(list);
- llResult.setVisibility(View.GONE);
- llWeighPicture.setVisibility(View.GONE);
- }
- private void iniData(){
- baseImgList.add("label_img");
- baseImgList.add("weight_img");
- }
- //getAwaitNum
- private void totalAwaitNum(){
- int awaitNum = mapPictureSelector.get("label_img").getAwaitNum();
- tvAwaitNum.setText(String.valueOf(awaitNum));
- if (awaitNum == 0){
- operateStopUpload();
- }
- }
- //统一按钮回调
- @SuppressLint("NonConstantResourceId")
- public void callbackEditor(View v){
- XLog.e("获取:"+v.getId());
- XLog.e("id:"+R.id.et_tracking_number);
- switch (v.getId()) {
- case R.id.et_tracking_number:
- getInboundTrack();
- break;
- case R.id.et_order_number:
- if (etTrackingNumber.getText().toString().isEmpty()){
- etTrackingNumber.requestFocus();
- return;
- }
- if (etOrderNumber.getText().toString().isEmpty()){
- etOrderNumber.requestFocus();
- return;
- }
- etUnitCode.requestFocus();
- etUnitCode.setSelection(etUnitCode.getText().toString().length());
- break;
- case R.id.et_unit_code:
- for (int i=0;i<baseImgList.size();i++){
- String tmpKey = baseImgList.get(0);
- if (mapPictureSelector.containsKey(tmpKey) && mapPictureSelector.get(tmpKey).getOssPhotoList().size()==0){
- mapPictureSelector.get(tmpKey).authCamera();
- return;
- }
- }
- for (int i=0;i<takePictureBeanList.size();i++){
- String tmpKey = takePictureBeanList.get(0).getField();
- if (mapPictureSelector.containsKey(tmpKey) && mapPictureSelector.get(tmpKey).getOssPhotoList().size()==0){
- mapPictureSelector.get(tmpKey).authCamera();
- return;
- }
- }
- pictureInbound();
- break;
- default:
- }
- }
- /**
- * 统一设置Edit监听
- * @param list
- */
- public void unifyEdit(List<EditText> list){
- for (int i=0;i<list.size();i++){
- EditText editText = list.get(i);
- LinearLayout linearLayout = (LinearLayout)editText.getParent();
- ImageButton imageButton = getChildImageButton(linearLayout);
- //监听按确定
- editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
- @Override
- public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
- //XLog.e("actionId:"+actionId);
- if (actionId == EditorInfo.IME_ACTION_SEND || actionId == EditorInfo.IME_ACTION_DONE ) {
- if (v.getText().toString().trim().isEmpty()) {
- setEditTextFocused(v,true);
- showWarningToast(v.getHint().toString());
- return false;
- }else{
- setEditTextNormal(v,true);
- }
- callbackEditor(v);
- return false;
- }
- return false;
- }
- });
- editText.addTextChangedListener(new TextWatcher() {
- public void onTextChanged(CharSequence s, int start, int before, int count) {
- EditText currentEditText = null;
- ImageButton currentImage = null;
- //获取焦点的view对象
- View view=getWindow().getDecorView().findFocus();
- //如果是EditText
- if(view instanceof EditText){
- currentEditText = (EditText) view;
- currentImage = getChildImageButton((LinearLayout)currentEditText.getParent());
- }
- if (s.length() > 0 ) {
- if (currentImage !=null ){
- currentImage.setVisibility(View.VISIBLE);
- }
- if (currentEditText!=null){
- setEditTextNormal(currentEditText,true);
- }
- } else {
- if (currentImage !=null ){
- currentImage.setVisibility(View.INVISIBLE);
- }
- if (currentEditText!=null && isRequiredShow){
- setEditTextFocused(currentEditText,true);
- }
- }
- }
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {
- }
- public void afterTextChanged(Editable s) {
- }
- });
- if (imageButton !=null ){
- unifyClearEdit(imageButton);
- }
- }
- }
- private OnRxScanerListener mScanerListener = new OnRxScanerListener() {
- @Override
- public void onSuccess(String type, Result result) {
- String scanResult = result.getText();
- switch (type){
- case BaseConfig.COMMON_SCANNER_ONLY:
- setScanResult(scanResult);
- break;
- }
- }
- @Override
- public void onFail(String type, String message) {
- }
- };
- //把扫描结果赋值
- private void setScanResult(String scanResult){
- //获取焦点的view对象
- View view=getWindow().getDecorView().findFocus();
- //如果是EditText
- if(view instanceof EditText)
- {
- ((EditText) view).setText(scanResult);
- showSuccessToast("扫描成功");
- callbackEditor(view);
- }
- }
- private void getInboundTrack(){
- int awaitNum = mapPictureSelector.get("label_img").getAwaitNum();
- if (currentUploadStatus && awaitNum>0){
- new AlertDialog.Builder(mContext).setTitle(R.string.dl_hint)
- .setMessage("当前正在上传图片。是否需要停止上传继续操作")
- .setNegativeButton(R.string.str_cancel, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- if (!currentUploadStatus){
- operateStartUpload();
- }
- dialogInterface.dismiss();
- }
- }).setPositiveButton(R.string.str_submit, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- }
- }).show();
- }
- if (etTrackingNumber.getText().toString().isEmpty()){
- showErrorToast(etTrackingNumber.getHint().toString());
- return;
- }
- Map<String,Object> math = new HashMap<>();
- math.put("tracking_number",etTrackingNumber.getText().toString().trim());
- String mathJson = (new Gson()).toJson(math);
- if (!checkRepeat(Urls.FXY_DETECTION_PUTIN_TRACK+(mathJson.toString()))){
- Toast.makeText(this, getString(R.string.error_data_processed), Toast.LENGTH_LONG).show();
- return;
- }
- OkGo.<String>post(Urls.getServiceAddress(this) + Urls.FXY_DETECTION_PUTIN_TRACK).upJson(mathJson)
- .execute(new MyDialogCallback(this, true, true) {
- @Override
- public void onSuccess(Response<String> response) {
- super.onSuccess(response);
- try {
- ActionBean bean = JsonUtil.getObject(response.body(), ActionBean.class);
- JSONObject result = new JSONObject();
- if (bean.data!=null && !bean.data.isEmpty() && !bean.data.equals("[]")){
- result = new JSONObject(bean.data);
- }
- String voiceName = result.has("voice_name") ? result.getString("voice_name"):"";
- String showText = result.has("show_text") ? result.getString("show_text"):"";
- String show_weight_img = result.has("show_weight_img") ? result.getString("show_weight_img"):"";
- if (result.has("need_photo")){
- takePictureBeanList = JsonUtil.jsonString2Beans(result.getString("need_photo"),TakePictureBean.class);
- }
- showWeightImg = show_weight_img.contains("1");
- llWeighPicture.setVisibility(showWeightImg ? View.VISIBLE:View.GONE);
- llResult.setVisibility(showText.isEmpty() ? View.GONE:View.VISIBLE);
- tvResult.setText(showText);
- setCameraPicture();
- if(bean.code == 1){
- showSuccessToast(bean.msg,voiceName);
- }else{
- showWarningToast(bean.msg,voiceName);
- }
- } catch (Exception e) {
- e.printStackTrace();
- XLog.e("添加开箱拆柜数据结果返回错误",e.getMessage());
- }
- }
- });
- etOrderNumber.requestFocus();
- etOrderNumber.setSelection(etOrderNumber.getText().toString().length());
- }
- private void checkSubmit(){
- if (mapPictureSelector.get("label_img").getOssPhotoList().size()==0){
- return;
- }
- if (showWeightImg && mapPictureSelector.get("weight_img").getOssPhotoList().size()==0){
- return;
- }
- if (takePictureBeanList.size()>0){
- for (int i=0;i<takePictureBeanList.size();i++){
- if (mapPictureSelector.get(takePictureBeanList.get(i).getField()).getOssPhotoList().size()==0){
- return;
- }
- }
- }
- pictureInbound();
- initUnitCode();
- }
- private void pictureInbound(){
- isRequiredShow = true;
- if (!validate()){
- return;
- }
- // if (!checkRepeat(Urls.FXY_DETECTION_PUTIN+(postParam.toString()))){
- // Toast.makeText(this, getString(R.string.error_data_processed), Toast.LENGTH_LONG).show();
- // return;
- // }
- OkGo.<String>post(Urls.getServiceAddress(this) + Urls.FXY_DETECTION_PUTIN).upJson(postParam)
- .execute(new MyDialogCallback(this, true, false) {
- @Override
- public void onSuccess(Response<String> response) {
- super.onSuccess(response);
- }
- });
- //假成功
- showSuccessToast("success");
- }
- //完成入库
- private void finishInbound(){
- isRequiredShow = true;
- if (etTrackingNumber.getText().toString().isEmpty()){
- showWarningToast(etTrackingNumber.getHint().toString());
- return ;
- }
- if (etOrderNumber.getText().toString().isEmpty()){
- showWarningToast(etOrderNumber.getHint().toString());
- return ;
- }
- HashMap<String,Object> postData = new HashMap<>();
- postData.put("box_number",etOrderNumber.getText().toString().trim());
- postData.put("tracking_number",etTrackingNumber.getText().toString().trim());
- String body = (new Gson()).toJson(postData);
- OkGo.<String>post(Urls.getServiceAddress(this) + Urls.FXY_DETECTION_PUTIN).upJson(body)
- .execute(new MyDialogCallback(this, true, false) {
- @Override
- public void onSuccess(Response<String> response) {
- super.onSuccess(response);
- try {
- ActionBean bean = JsonUtil.getObject(response.body(), ActionBean.class);
- // if(bean.code == 1){
- // showSuccessToast(bean.msg);
- // }else{
- // showWarningToast(bean.msg);
- // }
- } catch (Exception e) {
- e.printStackTrace();
- XLog.e("添加开箱拆柜数据结果返回错误",e.getMessage());
- }
- }
- });
- //假成功
- showSuccessToast("success");
- initFinish();
- }
- public void initUnitCode(){
- isRequiredShow = false;
- for (String key : mapPictureSelector.keySet()) {
- if (!baseImgList.contains(key)){
- mapPictureSelector.get(key).emptyRemake();
- }
- }
- etUnitCode.setText("");
- etUnitCode.requestFocus();
- llLabelPicture.setVisibility(View.GONE);
- }
- private void initFinish(){
- initUnitCode();
- for (int i=0;i<baseImgList.size();i++){
- if (mapPictureSelector.containsKey(baseImgList.get(i))){
- mapPictureSelector.get(baseImgList.get(i)).emptyRemake();
- }
- }
- llResult.setVisibility(View.GONE);
- llWeighPicture.setVisibility(View.GONE);
- llLabelPicture.setVisibility(View.VISIBLE);
- takePictureBeanList.clear();
- setCameraPicture();
- etTrackingNumber.setText("");
- etOrderNumber.setText("");
- etTrackingNumber.requestFocus();
- }
- /*
- * 校验必录
- */
- private boolean validate(){
- if (etTrackingNumber.getText().toString().isEmpty()){
- showWarningToast(etTrackingNumber.getHint().toString());
- return false;
- }
- if (etOrderNumber.getText().toString().isEmpty()){
- showWarningToast(etOrderNumber.getHint().toString());
- return false;
- }
- if (etUnitCode.getText().toString().isEmpty()){
- showWarningToast(etUnitCode.getHint().toString());
- return false;
- }
- try {
- postParam = new JSONObject();
- Gson gson = new Gson();
- List<String> stringList = mapPictureSelector.get("label_img").getOssPhotoList();
- if (stringList.size()==0){
- showWarningToast("面单照片不能为空");
- return false;
- }
- postParam.put("label_img_tag",mapPictureSelector.get("label_img").getUniqueTag());
- postParam.put("label_img",gson.toJson(stringList));
- AsyncUpload weightUpload = mapPictureSelector.get("weight_img");
- if (showWeightImg && weightUpload!=null){
- List<String> weighPhotoList = weightUpload.getOssPhotoList();
- if (weighPhotoList.size()==0){
- showWarningToast("内件照片不能为空");
- return false;
- }
- postParam.put("weight_img_tag",weightUpload.getUniqueTag());
- postParam.put("weight_img",gson.toJson(weighPhotoList));
- }
- //拍照
- if (takePictureBeanList.size()>0){
- JSONObject otherObject = new JSONObject();
- for (int i=0; i < takePictureBeanList.size();i++){
- String name = takePictureBeanList.get(i).getField();
- if (!mapPictureSelector.containsKey(name) ){
- showErrorToast("页面渲染异常,请更新操作");
- }
- List<String> tmpList = mapPictureSelector.get(name).getOssPhotoList();
- if (tmpList.size() == 0){
- showWarningToast("请上传".concat(takePictureBeanList.get(i).getTitle()).concat("拍照"));
- }
- otherObject.put(name,gson.toJson(tmpList));
- }
- postParam.put("other_img",otherObject);
- }
- postParam.put("box_number",etOrderNumber.getText().toString().trim());
- postParam.put("tracking_number",etTrackingNumber.getText().toString().trim());
- postParam.put("unit_code",etUnitCode.getText().toString().trim());
- } catch (JSONException e) {
- showWarningToast("系统异常"+e.getMessage());
- e.printStackTrace();
- return false;
- }
- return true;
- }
- private void iniPhoto(){
- // HashMap<String, Object> map = new HashMap<>();
- // map.put("disabled",false);
- // map.put("error","不可拍照");
- // labelPictureSelectorUpload.setLimitOperate(map);
- // weighPictureSelectorUpload.setLimitOperate(map);
- }
- //sIsGoodinfoMatch,sIsBattery,sIsMagnetic,sIsWood,sIsExtra,sIsOther
- @OnClick({R.id.btn_confirm,R.id.btn_start_upload})
- public void onViewClicked(View view) {
- Bundle bundle = new Bundle();
- switch (view.getId()) {
- case R.id.btn_confirm:
- finishInbound();
- break;
- case R.id.btn_start_upload:
- if (currentUploadStatus) {
- operateStopUpload();
- } else {
- operateStartUpload();
- }
- default:
- break;
- }
- }
- private void operateStopUpload(){
- if (currentUploadStatus){
- mapPictureSelector.get("label_img").setStopUpload();
- currentUploadStatus = false;
- btnStartUpload.setText("开始上传");
- llUploadProgressbar.setVisibility(View.GONE);
- }
- }
- private void operateStartUpload(){
- if (!currentUploadStatus){
- mapPictureSelector.get("label_img").setStartUpload();
- currentUploadStatus = true;
- btnStartUpload.setText("停止上传");
- llUploadProgressbar.setVisibility(View.VISIBLE);
- }
- }
- protected void showBack() {
- super.showBack();
- tb_iv_left.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- int num = mapPictureSelector.get("label_img").getAwaitNum();
- if (num>0){
- new AlertDialog.Builder(mContext).setTitle(R.string.dl_hint)
- .setMessage("返回会取消上传还有"+num+"条数据未上传,确定要返回吗")
- .setNegativeButton(R.string.str_cancel, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- if (!currentUploadStatus){
- operateStartUpload();
- }
- dialogInterface.dismiss();
- }
- }).setPositiveButton(R.string.str_submit, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- if (isShowBackDialog) {
- onBackPressedSupport();
- } else {
- finish();
- }
- }
- }).show();
- }else{
- if (isShowBackDialog) {
- onBackPressedSupport();
- } else {
- finish();
- }
- }
- }
- });
- }
- @Subscribe(threadMode = ThreadMode.MAIN)
- public void onUploadProgress(UploadProgressEvent event) {
- // 更新进度条或其他 UI 元素
- int num = event.getProgress();
- pbProgressbar.setProgress(num);
- tvPercentageTextView.setText(String.valueOf(num).concat("%"));
- }
- @Override
- protected void onDestroy() {
- unbinder.unbind();
- for (AsyncUpload asyncUpload : mapPictureSelector.values()) {
- asyncUpload.removeHandler();
- }
- super.onDestroy();
- }
- @Override
- protected void onResume() {
- super.onResume();
- initReceiver();
- }
- @Override
- protected void onPause() {
- super.onPause();
- //销毁在onResume()方法中的广播
- try {
- //停止扫描
- Integer is_broadcast = scanBean.getIsBroadcast();//是否广播
- if (is_broadcast==0){
- StoTongJNI.getIns(mContext).SetScannerStop();
- StoTongJNI.getIns(mContext).SetScannerOff();
- }else{
- unregisterReceiver(mReceiver);
- }
- }catch (Exception e){
- XLog.e("销毁广播失败:",e.getMessage());
- }
- }
- }
|