|
@@ -0,0 +1,709 @@
|
|
|
+package com.fxy.hk;
|
|
|
+
|
|
|
+import android.annotation.SuppressLint;
|
|
|
+import android.content.BroadcastReceiver;
|
|
|
+import android.content.Context;
|
|
|
+import android.content.Intent;
|
|
|
+import android.content.IntentFilter;
|
|
|
+import android.os.Bundle;
|
|
|
+import android.os.Handler;
|
|
|
+import android.os.Message;
|
|
|
+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.TextView;
|
|
|
+
|
|
|
+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.baselibrary.util.StringUtils;
|
|
|
+import com.fxy.baselibrary.views.MarqueeTextView;
|
|
|
+import com.fxy.bean.ActionBean;
|
|
|
+import com.fxy.bean.ScanBean;
|
|
|
+import com.fxy.bean.UploadResultBean;
|
|
|
+import com.fxy.common.FiledUpload;
|
|
|
+import com.fxy.constant.BaseConfig;
|
|
|
+import com.fxy.constant.EventCode;
|
|
|
+import com.fxy.helper.HkDataHelper;
|
|
|
+import com.fxy.net.MyDialogCallback;
|
|
|
+import com.fxy.net.Urls;
|
|
|
+import com.fxy.realm.CutRuleRealm;
|
|
|
+import com.fxy.realm.HkTransDetailRealm;
|
|
|
+import com.fxy.realm.HkTransRealm;
|
|
|
+import com.fxy.view.FloatingImageView;
|
|
|
+import com.google.gson.Gson;
|
|
|
+import com.google.zxing.Result;
|
|
|
+import com.jaredrummler.materialspinner.MaterialSpinner;
|
|
|
+import com.luck.picture.lib.PictureSelector;
|
|
|
+import com.luck.picture.lib.config.PictureConfig;
|
|
|
+import com.luck.picture.lib.config.PictureMimeType;
|
|
|
+import com.luck.picture.lib.entity.LocalMedia;
|
|
|
+import com.lzy.okgo.OkGo;
|
|
|
+import com.lzy.okgo.model.Response;
|
|
|
+
|
|
|
+import org.json.JSONException;
|
|
|
+import org.json.JSONObject;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+import butterknife.BindView;
|
|
|
+import butterknife.ButterKnife;
|
|
|
+import butterknife.OnClick;
|
|
|
+import butterknife.Unbinder;
|
|
|
+import io.realm.RealmResults;
|
|
|
+import sto.android.app.StoJNI;
|
|
|
+import sto.android.app.StoPdaKeyEvent;
|
|
|
+import sto.android.app.StoTongJNI;
|
|
|
+
|
|
|
+public class HkPutinMainActivity extends BaseActivity implements StoJNI.ScanCallBack{
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 列表适配器
|
|
|
+ */
|
|
|
+ Context mContext = this;
|
|
|
+
|
|
|
+ //单号清除
|
|
|
+ @BindView(R.id.ib_order_no_clear)
|
|
|
+ ImageButton ibOrderNoClear;
|
|
|
+
|
|
|
+ //单号
|
|
|
+ @BindView(R.id.et_order_no)
|
|
|
+ EditText etOrderNo;
|
|
|
+
|
|
|
+
|
|
|
+ @BindView(R.id.ms_batch_list)
|
|
|
+ MaterialSpinner batchListSpinner;
|
|
|
+
|
|
|
+ @BindView(R.id.mt_order_code)
|
|
|
+ MarqueeTextView mtOrderCode;
|
|
|
+
|
|
|
+
|
|
|
+ @BindView(R.id.tv_sort)
|
|
|
+ TextView tvSort;
|
|
|
+
|
|
|
+ private String batchNumber = "";
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ private FiledUpload filedUpload;
|
|
|
+ //
|
|
|
+ //扫码扫码动作
|
|
|
+ private ScanBean scanBean;
|
|
|
+
|
|
|
+ private List<CutRuleRealm> cutRuleRealmList;
|
|
|
+
|
|
|
+ //浮动按钮
|
|
|
+ @BindView(R.id.iv_drag)
|
|
|
+ FloatingImageView iv_drag;
|
|
|
+
|
|
|
+
|
|
|
+ private List<String> spinnerBatchList = new ArrayList<String>();
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ protected String action;
|
|
|
+
|
|
|
+
|
|
|
+ private Unbinder unbinder;
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int getContentViewResId() {
|
|
|
+ return R.layout.activity_fxy_hk_putin;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean showToolBar() {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean openEventBus() {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void getBundleExtras(Bundle 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) {// 图片选择结果回调
|
|
|
+ List<LocalMedia> images = PictureSelector.obtainMultipleResult(data);
|
|
|
+ LocalMedia localMedia = images.get(0);
|
|
|
+ String localPath = localMedia.isCompressed() ? localMedia.getCompressPath():localMedia.getPath();
|
|
|
+ filedUpload.filedUpload(localPath);
|
|
|
+ filedUpload.setOnChangeListener(new FiledUpload.UploadChangeListener() {
|
|
|
+ @Override
|
|
|
+ public void uploadResult(UploadResultBean uploadResultBean) {
|
|
|
+ if (uploadResultBean.getStatus()==1){
|
|
|
+ ArrayList<String> photoList = new ArrayList<String>();
|
|
|
+ photoList.add(uploadResultBean.getPath());
|
|
|
+ pictureInbound(photoList);
|
|
|
+ }else{
|
|
|
+ showErrorToast("上传图片失败");
|
|
|
+ XLog.e("上传结果失败"+uploadResultBean.getError());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 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("托盘入库");
|
|
|
+
|
|
|
+ //拉取数据
|
|
|
+ (new HkDataHelper(HkPutinMainActivity.this)).getBaseInfo();
|
|
|
+
|
|
|
+ initEdit();
|
|
|
+ iniData();
|
|
|
+
|
|
|
+ initSpinner();
|
|
|
+
|
|
|
+ filedUpload = new FiledUpload(HkPutinMainActivity.this,"photo");
|
|
|
+
|
|
|
+
|
|
|
+ //监听浮动按钮
|
|
|
+ iv_drag.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ if(!iv_drag.isDrag()){
|
|
|
+ ActivityScanerCode.setScanerListener(mScanerListener);
|
|
|
+ ActivityScanerCode.intent2Activity(mContext, BaseConfig.COMMON_SCANNER_ONLY);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ private void iniData(){
|
|
|
+
|
|
|
+ RealmResults<HkTransRealm> realmResultsAll = mRealm.where(HkTransRealm.class).findAll();
|
|
|
+ realmResultsAll.load();
|
|
|
+ spinnerBatchList = new ArrayList<String>();
|
|
|
+ if (realmResultsAll.size()>0){
|
|
|
+ for (int i=0;i<realmResultsAll.size();i++){
|
|
|
+ spinnerBatchList.add(realmResultsAll.get(i).getBatch());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (spinnerBatchList.size()>0){
|
|
|
+ batchNumber = spinnerBatchList.get(0);
|
|
|
+ }
|
|
|
+ batchListSpinner.setItems(spinnerBatchList);
|
|
|
+
|
|
|
+ batchListSpinner.setSelected(false);
|
|
|
+
|
|
|
+ cutRuleRealmList = mRealm.where(CutRuleRealm.class).findAll();
|
|
|
+
|
|
|
+
|
|
|
+ initSpinner();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 初始化下拉框控件值
|
|
|
+ */
|
|
|
+ private void initSpinner() {
|
|
|
+
|
|
|
+
|
|
|
+ batchListSpinner.setOnItemSelectedListener(new MaterialSpinner.OnItemSelectedListener<String>() {
|
|
|
+ @Override public void onItemSelected(MaterialSpinner view, int position, long id, String item) {
|
|
|
+ batchNumber = item;
|
|
|
+ etOrderNo.setEnabled(true);
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ //拍照上传
|
|
|
+ private void pictureInbound(ArrayList<String> photoList){
|
|
|
+ try {
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+
|
|
|
+ Gson gson = new Gson();
|
|
|
+ jsonObject.put("photo",gson.toJson(photoList));
|
|
|
+ OkGo.<String>post(Urls.getServiceAddress(this) + Urls.FXY_GK_INBOUND_PICTURE).upJson(jsonObject)
|
|
|
+ .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("上传成功");
|
|
|
+ }else{
|
|
|
+ showErrorToast("上传失败");
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ XLog.e("香港图片结果返回错误",e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @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 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() {
|
|
|
+ //
|
|
|
+ etOrderNo.setOnEditorActionListener(new TextView.OnEditorActionListener() {
|
|
|
+ @Override
|
|
|
+ public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
|
|
|
+ if (actionId == EditorInfo.IME_ACTION_DONE) {
|
|
|
+ String orderNo = etOrderNo.getText().toString().trim();
|
|
|
+ if (StringUtils.isEmpty(orderNo)) {
|
|
|
+ setEditTextFocused(v,true);
|
|
|
+ showWarningToast(v.getHint().toString());
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ inboundPutin();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ etOrderNo.addTextChangedListener(new TextWatcher() {
|
|
|
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
|
|
|
+ if (s.length() > 0 ) {
|
|
|
+ if (etOrderNo.isEnabled()){
|
|
|
+ ibOrderNoClear.setVisibility(View.VISIBLE);
|
|
|
+ }
|
|
|
+ setEditTextNormal(etOrderNo,true);
|
|
|
+ } else {
|
|
|
+ ibOrderNoClear.setVisibility(View.INVISIBLE);
|
|
|
+ setEditTextFocused(etOrderNo,true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
|
|
+ }
|
|
|
+
|
|
|
+ public void afterTextChanged(Editable s) {
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ ibOrderNoClear.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View view) {
|
|
|
+ etOrderNo.requestFocus();
|
|
|
+ etOrderNo.getText().clear();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 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);
|
|
|
+
|
|
|
+ switch (view.getId()) {
|
|
|
+ case R.id.et_order_no:
|
|
|
+ inboundPutin();
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public String strByCutRule(String str,List<CutRuleRealm> cutRuleRealmList){
|
|
|
+
|
|
|
+ str = str.replaceAll("\u001D", "");
|
|
|
+ str = str.trim();
|
|
|
+ if (cutRuleRealmList.size()==0){
|
|
|
+ return str;
|
|
|
+ }
|
|
|
+ int len = str.length();
|
|
|
+
|
|
|
+
|
|
|
+ for (int i=0;i<cutRuleRealmList.size();i++){
|
|
|
+ CutRuleRealm cutRuleRealm = cutRuleRealmList.get(i);
|
|
|
+ if (len!=cutRuleRealm.getNumberLength()){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ String number_start = cutRuleRealm.getNumberStart();
|
|
|
+ int cut_type = cutRuleRealm.getCutType();
|
|
|
+ int number_length = cutRuleRealm.getNumberLength();
|
|
|
+ int start_index = cutRuleRealm.getStartIndex()-1;
|
|
|
+ int cut_length = cutRuleRealm.getCutLength();
|
|
|
+
|
|
|
+ if (len!=number_length){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!number_start.equals("%") && !str.startsWith(number_start)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (cut_type==1){
|
|
|
+ str = str.substring(start_index,cut_length+start_index);
|
|
|
+ }
|
|
|
+ //从后往前截取待完善
|
|
|
+ }
|
|
|
+
|
|
|
+ return str;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询订单
|
|
|
+ * @param trackingNumber
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private HkTransDetailRealm getDetailRealm(String trackingNumber){
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ HkTransDetailRealm detailRealm = mRealm.where(HkTransDetailRealm.class)
|
|
|
+ .equalTo("tracking_number",trackingNumber)
|
|
|
+ .equalTo("batch_number",batchNumber)
|
|
|
+ .findFirst();
|
|
|
+ if (detailRealm==null){
|
|
|
+ trackingNumber = strByCutRule(trackingNumber,cutRuleRealmList);
|
|
|
+ detailRealm = mRealm.where(HkTransDetailRealm.class)
|
|
|
+ .equalTo("tracking_number",trackingNumber)
|
|
|
+ .equalTo("batch_number",batchNumber)
|
|
|
+ .findFirst();
|
|
|
+ }
|
|
|
+ return detailRealm;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private void inboundPutin(){
|
|
|
+ if (!validate()){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ String trackingNumber = etOrderNo.getText().toString().trim();
|
|
|
+
|
|
|
+ HkTransDetailRealm detailRealm = getDetailRealm(trackingNumber);
|
|
|
+ if (detailRealm==null){
|
|
|
+ authCamera();
|
|
|
+ mtOrderCode.setText("");
|
|
|
+ tvSort.setText("");
|
|
|
+ etOrderNo.setText("");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ showSuccessToast("Success","hk"+detailRealm.getSort());
|
|
|
+ mtOrderCode.setText(detailRealm.getTrackingNumber());
|
|
|
+ tvSort.setText(detailRealm.getSort());
|
|
|
+ etOrderNo.setText("");
|
|
|
+
|
|
|
+ try {
|
|
|
+ JSONObject postParam = new JSONObject();
|
|
|
+ postParam.put("transport_order_number",batchNumber);
|
|
|
+ postParam.put("tracking_number",detailRealm.getTrackingNumber());
|
|
|
+ postParam.put("realm_id",detailRealm.getId());
|
|
|
+
|
|
|
+
|
|
|
+ OkGo.<String>post(Urls.getServiceAddress(this) + Urls.FXY_GK_INBOUND_PUTIN).upJson(postParam)
|
|
|
+ .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);
|
|
|
+ if(bean.code == 1){
|
|
|
+
|
|
|
+ JSONObject data = new JSONObject(bean.data);
|
|
|
+ if (data.has("realm_id")){
|
|
|
+ setIsFinish(data.getString("realm_id"),1);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+// showWarningToast(bean.msg);
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ XLog.e("添加理货数据结果返回错误",e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+ } catch (JSONException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private void setIsFinish(String realmId,int isFinish){
|
|
|
+ //更新值
|
|
|
+ mRealm.beginTransaction();
|
|
|
+ HkTransDetailRealm myObject = mRealm.where(HkTransDetailRealm.class).equalTo("id",realmId).findFirst();
|
|
|
+ myObject.setPushStatus(isFinish);
|
|
|
+ mRealm.commitTransaction();
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
+ * 校验必录
|
|
|
+ */
|
|
|
+ private boolean validate(){
|
|
|
+
|
|
|
+ if (batchNumber.isEmpty()){
|
|
|
+ showErrorToast(batchListSpinner.getHint().toString());
|
|
|
+ setEditTextFocused(batchListSpinner,true);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ setEditTextNormal(batchListSpinner,true);
|
|
|
+
|
|
|
+ //数据检查不通过
|
|
|
+ String orderNo = etOrderNo.getText().toString().trim();
|
|
|
+ if (orderNo.isEmpty()){
|
|
|
+ showWarningToast(etOrderNo.getHint().toString());
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private void authCamera(){
|
|
|
+ //拍照
|
|
|
+ com.luck.picture.lib.PictureSelector.create(this)
|
|
|
+ .openCamera(PictureMimeType.ofImage())
|
|
|
+ //只需要拍照
|
|
|
+ //.selectionMode(PictureConfig.SINGLE)
|
|
|
+// .isCamera(true)
|
|
|
+ //.compressMaxKB()//压缩最大值kb compressGrade()为Luban.CUSTOM_GEAR有效
|
|
|
+ .compress(true) // 压缩
|
|
|
+ .cropCompressQuality(100)// 裁剪压缩质量 默认100
|
|
|
+ .minimumCompressSize(100) //最新压缩图片 默认100
|
|
|
+ .forResult(PictureConfig.CHOOSE_REQUEST);
|
|
|
+ }
|
|
|
+
|
|
|
+ //
|
|
|
+ @OnClick({R.id.btn_photos})
|
|
|
+ public void onViewClicked(View view) {
|
|
|
+ Bundle bundle = new Bundle();
|
|
|
+ switch (view.getId()) {
|
|
|
+ case R.id.btn_photos:
|
|
|
+ authCamera();
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onDestroy() {
|
|
|
+ unbinder.unbind();
|
|
|
+ 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());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|