diff --git a/ZJDXJ/app/src/main/AndroidManifest.xml b/ZJDXJ/app/src/main/AndroidManifest.xml index 340301e..4129ecf 100755 --- a/ZJDXJ/app/src/main/AndroidManifest.xml +++ b/ZJDXJ/app/src/main/AndroidManifest.xml @@ -23,8 +23,10 @@ - - + + @@ -53,6 +55,10 @@ + + diff --git a/ZJYXDXJ/app/src/main/AndroidManifest.xml b/ZJYXDXJ/app/src/main/AndroidManifest.xml index f7bf155..29e48a7 100755 --- a/ZJYXDXJ/app/src/main/AndroidManifest.xml +++ b/ZJYXDXJ/app/src/main/AndroidManifest.xml @@ -27,9 +27,8 @@ + tools:ignore="ScopedStorage" /> diff --git a/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/LoginActivity.java b/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/LoginActivity.java index feff192..29f176b 100755 --- a/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/LoginActivity.java +++ b/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/LoginActivity.java @@ -151,8 +151,8 @@ public class LoginActivity extends BaseActivity { // etUse.setText("181145"); // etPwd.setText("13902576510"); - etUse.setText("180701"); - etPwd.setText("13902576186"); +// etUse.setText("180701"); +// etPwd.setText("13902576186"); } diff --git a/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/MainActivity.java b/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/MainActivity.java index 81ed33b..29f9249 100644 --- a/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/MainActivity.java +++ b/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/MainActivity.java @@ -1,7 +1,11 @@ package com.bjzc.zjyxdxj.activity; +import static com.bjzc.zjyxdxj.utils.GsonUtils.GsonToBean; +import static org.litepal.crud.DataSupport.where; + import android.Manifest; import android.content.ComponentName; +import android.content.ContentValues; import android.content.Intent; import android.content.ServiceConnection; import android.content.pm.PackageInfo; @@ -9,6 +13,7 @@ import android.content.pm.PackageManager; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.os.IBinder; +import android.text.TextUtils; import android.view.KeyEvent; import android.view.View; import android.view.WindowManager; @@ -25,6 +30,10 @@ import androidx.core.content.ContextCompat; import com.azhon.appupdate.listener.OnButtonClickListener; import com.azhon.appupdate.listener.OnDownloadListener; import com.azhon.appupdate.manager.DownloadManager; +import com.bjzc.zjyxdxj.DBModel.XSJJHDataBean; +import com.bjzc.zjyxdxj.DBModel.XSJJHXZDataBean; +import com.bjzc.zjyxdxj.DBModel.Xjjh; +import com.bjzc.zjyxdxj.DBModel.XjjhList; import com.bjzc.zjyxdxj.R; import com.bjzc.zjyxdxj.activity.regular.RegularActivity; import com.bjzc.zjyxdxj.activity.sbxj.XscbglActivity; @@ -33,16 +42,34 @@ import com.bjzc.zjyxdxj.base.BaseActivity3; import com.bjzc.zjyxdxj.base.BaseCallBackNoProgress; import com.bjzc.zjyxdxj.bean.ApkUpdateBean; import com.bjzc.zjyxdxj.bean.GridViewBean; +import com.bjzc.zjyxdxj.bean.ScxjjhBean; +import com.bjzc.zjyxdxj.bean.StatusInfo2; +import com.bjzc.zjyxdxj.bean.XsRequestInfo; import com.bjzc.zjyxdxj.bleUtil.BluetoothLeService; import com.bjzc.zjyxdxj.contans.Contans; import com.bjzc.zjyxdxj.utils.AppManager; import com.bjzc.zjyxdxj.utils.FlashUtil; +import com.bjzc.zjyxdxj.utils.GsonUtils; +import com.bjzc.zjyxdxj.utils.HttpListener; import com.bjzc.zjyxdxj.utils.HttpUtils; import com.bjzc.zjyxdxj.utils.MqttSSLPublishServer; +import com.bjzc.zjyxdxj.utils.NetworkUtil; +import com.bjzc.zjyxdxj.utils.NoProgresshttpUtils; +import com.bjzc.zjyxdxj.utils.RSAUtils; import com.bjzc.zjyxdxj.utils.SPUtils; import com.bjzc.zjyxdxj.utils.StatusBarUtil; +import com.bjzc.zjyxdxj.utils.UiUtlis; import com.bjzc.zjyxdxj.weight.AuditDialog; import com.bjzc.zjyxdxj.weight.toastviewbymyself; +import com.google.gson.Gson; +import com.yolanda.nohttp.NoHttp; +import com.yolanda.nohttp.RequestMethod; +import com.yolanda.nohttp.rest.OnResponseListener; +import com.yolanda.nohttp.rest.Request; +import com.yolanda.nohttp.rest.RequestQueue; +import com.yolanda.nohttp.rest.Response; + +import org.litepal.crud.DataSupport; import java.io.File; import java.util.ArrayList; @@ -61,6 +88,13 @@ public class MainActivity extends BaseActivity3 { private List beanList = new ArrayList<>(); private GridViewAdapter adapter; + //自动上传 + private List dbxjjh = new ArrayList<>(); + static int needUploadCount = 0; + private RequestQueue queue; + + private String username; + // private String[] str = {"点检管理", "巡检管理", "读取NFC", "蓝牙管理", "缺陷工单提交(Maximo)", "测温", "测振"}; // private int[] imageId = {R.mipmap.icon_dxj, R.mipmap.icon6, R.mipmap.icon11, R.mipmap.icon13, R.mipmap.icon10, R.mipmap.icon10, R.mipmap.icon10}; // private int[] colors = {R.drawable.radius_a1, R.drawable.radius_e3, R.drawable.radius_a4, R.drawable.radius_b1, R.drawable.radius_d1, R.drawable.radius_d1, R.drawable.radius_d1}; @@ -82,6 +116,7 @@ public class MainActivity extends BaseActivity3 { MqttSSLPublishServer mqttPublishServer; //定时器 private Timer timer; + private Timer timerUpload; @Override @@ -92,6 +127,10 @@ public class MainActivity extends BaseActivity3 { //@RequiresApi(api = Build.VERSION_CODES.Q) @Override public void initView() { + String UserIDTemp = (String) SPUtils.get(context, Contans.USERID, ""); + username = RSAUtils.decryptBASE64StrLocal(UserIDTemp); + queue = NoHttp.newRequestQueue(1); + btnLogout = findViewById(R.id.btn_logout); tvLoginUser = findViewById(R.id.tv_login_user); gv = findViewById(R.id.gv); @@ -105,6 +144,7 @@ public class MainActivity extends BaseActivity3 { if(Contans.IP.equals(Contans.network_type_extranet)){ initMqtt(); } + initAutoUploadTimer(); btnLogout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -422,6 +462,19 @@ public class MainActivity extends BaseActivity3 { e.printStackTrace(); } } + if(timerUpload==null){ + try { + timerUpload = new Timer(); + timerUpload.schedule(new TimerTask() { + public void run() { + autoUpload(); + } + }, 30000, 30000); + // 设定指定的时间time,此处为30秒 + } catch (Exception e) { + e.printStackTrace(); + } + } } } @@ -443,6 +496,9 @@ public class MainActivity extends BaseActivity3 { if(timer!=null){ timer.cancel(); } + if(timerUpload!=null){ + timerUpload.cancel(); + } super.onDestroy(); } @@ -558,4 +614,243 @@ public class MainActivity extends BaseActivity3 { e.printStackTrace(); } } + + //自动上传定时器初始化 + public void initAutoUploadTimer() { + + try { + timerUpload = new Timer(); + timerUpload.schedule(new TimerTask() { + public void run() { + autoUpload(); + } + }, 30000, 30000); + // 设定指定的时间time,此处为10000毫秒 + } catch (Exception e) { + e.printStackTrace(); + } + } + + public void autoUpload(){ + if (NetworkUtil.hasNetWorkStatus(context, false)) { + showLog("有wifi网络"); + //检查是否有数据需要上传 + checkNeedUpload(); + } else { + showLog("无网络"); + } + } + //检查是否有数据需要上传 + public void checkNeedUpload(){ + needUploadCount = 0; + dbxjjh.clear(); + dbxjjh.addAll(where("download = ? and mk = ? and username = ?", "1", "BA", username).find(Xjjh.class)); + if(dbxjjh.size()>0){ + for (int i = 0; i < dbxjjh.size(); i++) { + Xjjh dataBean = dbxjjh.get(i); + List qydDataBeen = DataSupport.where("zxid = ? and username = ?", dataBean.getZxid(), username).find(XSJJHXZDataBean.class); + if(qydDataBeen!=null&&qydDataBeen.size()>0){ + for (int j = 0; j < qydDataBeen.size(); j++) { + if (qydDataBeen.get(j).isBAChecked()) { + needUploadCount++; + } + } + } + + } + } + //有需要上传的数据 + if(needUploadCount>0){ + autoUploadDataByBa(); + } + } + public void autoUploadDataByBa(){ + if(dbxjjh.size()>0){ + String idTemp = (String) SPUtils.get(context, Contans.REQUEST_ID, ""); + String id = RSAUtils.decryptBASE64StrLocal(idTemp); + + for (int i = 0; i < dbxjjh.size(); i++) { + Xjjh dataBean = dbxjjh.get(i); + String zxid = dataBean.getZxid(); + List qydDataBeen = DataSupport.where("zxid = ? and username = ?", zxid, username).find(XSJJHXZDataBean.class); + + ScxjjhBean scxjjhbean = new ScxjjhBean(); + scxjjhbean.setAction("BA_XJGL_RWSC_SET"); + scxjjhbean.setId(id); + scxjjhbean.setQZWC(0); + scxjjhbean.setZxid(zxid); + List datalist = new ArrayList<>(); + + if(qydDataBeen!=null&&qydDataBeen.size()>0){ + for (int j = 0; j < qydDataBeen.size(); j++) { + if (qydDataBeen.get(j).isBAChecked()) { + XSJJHXZDataBean xsjjhdatabeanItem = qydDataBeen.get(j); + + ScxjjhBean.data datas = new ScxjjhBean.data(); + datas.setScid(xsjjhdatabeanItem.getScid()); + datas.setDbh(xsjjhdatabeanItem.getQybh()); + if (xsjjhdatabeanItem.isBAChecked()) { + datas.setCbsz("已检"); + } else { + datas.setCbsz(""); + } + if (xsjjhdatabeanItem.getDATE() == null) { + datas.setDjsj(""); + } else { + datas.setDjsj(xsjjhdatabeanItem.getDATE()); + } + datas.setZcmc((String) SPUtils.get(context, Contans.BZBH, "")); + datas.setCbr(username); + if (xsjjhdatabeanItem.getFxnr() == null) { + datas.setFxnr(""); + } else { + datas.setFxnr(xsjjhdatabeanItem.getFxnr()); + } + if (xsjjhdatabeanItem.getSmfs() != null) { + datas.setSmfx(xsjjhdatabeanItem.getSmfs()); + } else { + datas.setSmfx(""); + } + if (xsjjhdatabeanItem.getDjsj() == null) { + datas.setDjsj(""); + } else { + datas.setDjsj(xsjjhdatabeanItem.getDjsj()); + } + datalist.add(datas); + } + } + scxjjhbean.setData(datalist); + } + if(datalist.size()>0){ + //上传数据 + String json = GsonUtils.GsonString(scxjjhbean); + sCDataBA(json, zxid,scxjjhbean); + } + } + } + } + //上传保安单条计划下的已检任务的数据 + private void sCDataBA(String json, String zxid,ScxjjhBean scxjjhbean) { + Request request = NoHttp.createStringRequest(Contans.IP + Contans.XSCB_PLAN_BA_UPLOAD, RequestMethod.POST); + request.setDefineRequestBodyForJson(json); + + String tokenTemp = (String) SPUtils.get(this, Contans.LOGIN_TOKEN, ""); + if(!TextUtils.isEmpty(tokenTemp)){ + String token = RSAUtils.decryptBASE64StrLocal(tokenTemp);; + String credential = "Bearer " + token; + request.addHeader("Authorization", credential); + showLog(request.url()); + //showLog(credential); + //showLog(new Gson().toJson(request.headers())); + } + + queue.add(2, request, new OnResponseListener() { + @Override + public void onStart(int what) {} + + @Override + public void onSucceed(int what, Response response) { + String result = response.get(); + showLog(result); + StatusInfo2 info = GsonUtils.GsonToBean(result, StatusInfo2.class); + try { + if (what == 2) { + if (info.getState() == 1) { //成功 + for(ScxjjhBean.data item :scxjjhbean.getData()){ + DataSupport.deleteAll(XSJJHXZDataBean.class, "zxid = ? and username = ? and scid = ?", zxid, username,item.getScid()); + //刷新计划下载界面 + Intent intent = new Intent(Contans.ACTION_DELETE_REFRESHPLANDOWNLOAD); + //发送广播,刷新任务下载页面 + sendBroadcast(intent); + updatePlanData(); + } + //检查是否需要删除计划 + checkNeedDeletePlan(zxid); + } + } + } catch (Exception e) { + showLog(UiUtlis.getString(context, R.string.data_error)); + } + } + + @Override + public void onFailed(int what, Response response) { + + } + + @Override + public void onFinish(int what) { + + } + }); + } + //检查是否需要删除计划 + private void checkNeedDeletePlan(String zxid){ + List qydDataBeen = DataSupport.where("zxid = ? and username = ?", zxid, username).find(XSJJHXZDataBean.class); + if(qydDataBeen!=null&&qydDataBeen.size() ==0){ + DataSupport.deleteAll(Xjjh.class, "download = 1 and username = ? and zxid = ?", username,zxid); + } + } + + private String createJsonBA() { + String idTemp = (String) SPUtils.get(context, Contans.REQUEST_ID, ""); + String id = RSAUtils.decryptBASE64StrLocal(idTemp); + + XsRequestInfo info = new XsRequestInfo(); + info.setAction("BA_XJGL_RWLB_GET"); + info.setId(id); + String json = GsonUtils.GsonString(info); + //Log.i("app", json); + return json; + } + + + private void updatePlanData() { //下载巡检数据 + + Request requestxs = NoHttp.createStringRequest(Contans.IP + Contans.BAXJ, RequestMethod.POST); + requestxs.setDefineRequestBodyForJson(createJsonBA()); + NoProgresshttpUtils.getInstance().add(this, 0, requestxs, new HttpListener() { + + @Override + public void onSucceed(int what, Response response) { + + String result = response.get(); + showLog("----------------"); + showLog(result); + XjjhList list = GsonToBean(result, XjjhList.class); + + if (list != null) { + if (list.getState().equals("1")) { + List xjjhs = list.getData();//服务器数据 + if(xjjhs!=null&&xjjhs.size()>0){ + for (int i = 0; i < list.getData().size(); i++) { + Xjjh xjjh = list.getData().get(i); + showLog(new Gson().toJson(xjjh)); + } + + //DataSupport.deleteAll(Xjjh.class, "download = 1 and username = ?", username); + for (Xjjh xjjh : xjjhs) { + List dbxjjh = DataSupport.where("zxid = ? and download = ? and username = ?", xjjh.getZxid(), "1", username).find(Xjjh.class); + if (dbxjjh.size() > 0) { + ContentValues values = new ContentValues(); + values.put("jhds", xjjh.getJhds()); + DataSupport.updateAll(Xjjh.class, values, "zxid = ?", xjjh.getZxid()); + } + } + //刷新计划下载界面 + Intent intent = new Intent(Contans.ACTION_REFRESHPLANDOWNLOAD); + //发送广播,刷新任务下载页面 + sendBroadcast(intent); + } + } + } + } + + @Override + public void onFailed(int what, Response response) { + + } + }); + } + } diff --git a/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/sbxj/CheckedStatusListActivity.java b/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/sbxj/CheckedStatusListActivity.java index e82582e..326a9d3 100644 --- a/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/sbxj/CheckedStatusListActivity.java +++ b/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/sbxj/CheckedStatusListActivity.java @@ -169,7 +169,7 @@ public class CheckedStatusListActivity extends BaseActivity3 implements View.OnC @Override protected void convert(ViewHolder viewHolder, XSJJHXZDataBean item, int position) { if (type != null && type.equals("BA")) { - viewHolder.setText(R.id.tv_xh, String.valueOf(position + 1)); + viewHolder.setText(R.id.tv_xh, String.valueOf( 1)); viewHolder.setText(R.id.tv_qymc, item.getQymc()); if (item.isBAChecked()) { viewHolder.setText(R.id.tv_djrw, "已检"); @@ -186,7 +186,7 @@ public class CheckedStatusListActivity extends BaseActivity3 implements View.OnC checkedCount++; } } - viewHolder.setText(R.id.tv_xh, String.valueOf(position + 1)); + viewHolder.setText(R.id.tv_xh, String.valueOf(1)); viewHolder.setText(R.id.tv_qymc, item.getQymc()); //viewHolder.setText(R.id.tv_djrw, checkedCount + "/" + xsjjhdatabean.size()); int a = checkedCount; diff --git a/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/sbxj/ScxsjhFragment.java b/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/sbxj/ScxsjhFragment.java index ff8adf5..445c904 100755 --- a/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/sbxj/ScxsjhFragment.java +++ b/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/sbxj/ScxsjhFragment.java @@ -497,8 +497,6 @@ public class ScxsjhFragment extends BaseFragment { } private void sCDataBA(String json, String zxid) { -// Log.i("app", Contans.IP + Contans.XSCB_PLAN_BA_UPLOAD); -// Log.i("app", json); Request request = NoHttp.createStringRequest(Contans.IP + Contans.XSCB_PLAN_BA_UPLOAD, RequestMethod.POST); request.setDefineRequestBodyForJson(json); @@ -507,9 +505,9 @@ public class ScxsjhFragment extends BaseFragment { String token = RSAUtils.decryptBASE64StrLocal(tokenTemp);; String credential = "Bearer " + token; request.addHeader("Authorization", credential); -// Log.i("app", request.url()); -// Log.i("app", credential); -// Log.i("app",new Gson().toJson(request.headers())); + showLog(request.url()); + showLog(credential); + showLog(new Gson().toJson(request.headers())); } queue.add(2, request, new OnResponseListener() { diff --git a/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/sbxj/SxgzActivity.java b/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/sbxj/SxgzActivity.java index be4029c..83da1d5 100755 --- a/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/sbxj/SxgzActivity.java +++ b/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/sbxj/SxgzActivity.java @@ -1,8 +1,11 @@ package com.bjzc.zjyxdxj.activity.sbxj; import android.Manifest; +import android.content.BroadcastReceiver; import android.content.ContentValues; +import android.content.Context; import android.content.Intent; +import android.content.IntentFilter; import android.content.pm.PackageManager; import android.graphics.Color; import android.os.Bundle; @@ -73,6 +76,18 @@ public class SxgzActivity extends BaseActivity3 { private String username; BaCheckDialog auditDialog = null; + private BroadcastReceiver myReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + if (Contans.ACTION_DELETE_REFRESHPLANDOWNLOAD.equals(action)) { + //刷新页面 + getDataInSqlite(); + adapter.notifyDataSetChanged(); + } + } + }; + @Override public int getLayoutId() { return R.layout.activity_xsgz; @@ -120,6 +135,11 @@ public class SxgzActivity extends BaseActivity3 { if (type != null && type.equals("BA")) { tv_djrw.setText("已检/未检"); } + + IntentFilter filter = new IntentFilter(); + filter.addAction(Contans.ACTION_DELETE_REFRESHPLANDOWNLOAD); + registerReceiver(myReceiver, filter); + auditDialog = new BaCheckDialog(context, "", new BaCheckDialog.AuditDialogListener() { @Override public void confirm(String notice) { @@ -190,7 +210,7 @@ public class SxgzActivity extends BaseActivity3 { public void handleNfc(String result) { super.handleNfc(result); handleNfcCheck(result); - //handleNfcCheck("043F30F2257381"); + //handleNfcCheck("042734F2257381"); } //加载数据库中已经下载的计划 @@ -695,4 +715,10 @@ public class SxgzActivity extends BaseActivity3 { super.onResume(); nfcValue = null; } + + @Override + protected void onDestroy() { + super.onDestroy(); + unregisterReceiver(myReceiver); + } } \ No newline at end of file diff --git a/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/sbxj/XscbglActivity.java b/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/sbxj/XscbglActivity.java index cd863d9..e172f3a 100755 --- a/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/sbxj/XscbglActivity.java +++ b/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/sbxj/XscbglActivity.java @@ -1,18 +1,22 @@ package com.bjzc.zjyxdxj.activity.sbxj; import android.content.BroadcastReceiver; +import android.content.ContentValues; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.os.Build; +import android.text.TextUtils; import android.util.Log; import android.view.WindowManager; import android.widget.GridView; import com.bjzc.zjyxdxj.DBModel.Profession; import com.bjzc.zjyxdxj.DBModel.ProfessionList; +import com.bjzc.zjyxdxj.DBModel.XSJJHXZBean; +import com.bjzc.zjyxdxj.DBModel.XSJJHXZDataBean; import com.bjzc.zjyxdxj.DBModel.Xjjh; import com.bjzc.zjyxdxj.DBModel.XjjhList; import com.bjzc.zjyxdxj.R; @@ -20,18 +24,24 @@ import com.bjzc.zjyxdxj.activity.LoginActivity; import com.bjzc.zjyxdxj.adapter.GridViewAdapter; import com.bjzc.zjyxdxj.base.BaseActivity; import com.bjzc.zjyxdxj.bean.GridViewBean; +import com.bjzc.zjyxdxj.bean.ScxjjhBean; +import com.bjzc.zjyxdxj.bean.StatusInfo2; import com.bjzc.zjyxdxj.bean.XsRequestInfo; import com.bjzc.zjyxdxj.contans.Contans; import com.bjzc.zjyxdxj.utils.GsonUtils; import com.bjzc.zjyxdxj.utils.HttpListener; +import com.bjzc.zjyxdxj.utils.HttpResponseListener; import com.bjzc.zjyxdxj.utils.NoProgresshttpUtils; import com.bjzc.zjyxdxj.utils.RSAUtils; import com.bjzc.zjyxdxj.utils.SPUtils; import com.bjzc.zjyxdxj.utils.StatusBarUtil; +import com.bjzc.zjyxdxj.utils.UiUtlis; import com.google.gson.Gson; import com.yolanda.nohttp.NoHttp; import com.yolanda.nohttp.RequestMethod; +import com.yolanda.nohttp.rest.OnResponseListener; import com.yolanda.nohttp.rest.Request; +import com.yolanda.nohttp.rest.RequestQueue; import com.yolanda.nohttp.rest.Response; import org.litepal.crud.DataSupport; @@ -40,6 +50,7 @@ import java.util.ArrayList; import java.util.List; import static com.bjzc.zjyxdxj.utils.GsonUtils.GsonToBean; +import static org.litepal.crud.DataSupport.where; /** * 巡视抄表管理 @@ -60,6 +71,7 @@ public class XscbglActivity extends BaseActivity { private GridViewAdapter adapter; private String type = null; private String username; + private RequestQueue queue; private BroadcastReceiver myReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { @@ -78,6 +90,7 @@ public class XscbglActivity extends BaseActivity { @Override protected void initView() { + queue = NoHttp.newRequestQueue(1); gv = findViewById(R.id.gv); Intent intentType = getIntent(); type = intentType.getStringExtra("type"); @@ -185,34 +198,31 @@ public class XscbglActivity extends BaseActivity { @Override public void onSucceed(int what, Response response) { -// Log.i("app", "----------------"); -// Log.i("app", response.get()); - XjjhList list = GsonToBean(response.get(), XjjhList.class); -// Log.i("app", list.getMsg()); -// Log.i("app", list.getState()); -// Log.i("app", String.valueOf(list.getData().size())); -// Log.i("app", String.valueOf("mt")); -// Log.i("app", "app"); + String result = response.get(); + showLog("----------------"); + showLog(result); + XjjhList list = GsonToBean(result, XjjhList.class); if (list != null) { if (list.getState().equals("1")) { for (int i = 0; i < list.getData().size(); i++) { Xjjh xjjh = list.getData().get(i); - Log.i("app", new Gson().toJson(xjjh)); + showLog(new Gson().toJson(xjjh)); } List xjjhs = list.getData();//服务器数据 - DataSupport.deleteAll(Xjjh.class, "download = 0 and username = ?", username); for (Xjjh xjjh : xjjhs) { - List dbxjjh = DataSupport.where("zxid = ? and download = ? and username = ?", xjjh.getZxid(), "1", username).find(Xjjh.class); - if (dbxjjh.size() == 0) { xjjh.setUsername(username); xjjh.save(); + //自动下载数据 + if(type!=null&&type.equals("BA")){ + downDataBA(xjjh.getZxid()); + } } } //刷新计划下载界面 @@ -232,6 +242,65 @@ public class XscbglActivity extends BaseActivity { }); } + private void updatePlanData() { //下载巡检数据 + + Request requestxs; + if (type.equals("BA")) { + requestxs = NoHttp.createStringRequest(Contans.IP + Contans.BAXJ, RequestMethod.POST); + } else { + requestxs = NoHttp.createStringRequest(Contans.IP + Contans.XSCB, RequestMethod.POST); + } + + if (type.equals("BA")) { + requestxs.setDefineRequestBodyForJson(createJsonBA()); + } else { + requestxs.setDefineRequestBodyForJson(createJson()); + } + + NoProgresshttpUtils.getInstance().add(this, 0, requestxs, new HttpListener() { + + @Override + public void onSucceed(int what, Response response) { + + String result = response.get(); + showLog("----------------"); + showLog(result); + XjjhList list = GsonToBean(result, XjjhList.class); + + if (list != null) { + if (list.getState().equals("1")) { + + for (int i = 0; i < list.getData().size(); i++) { + Xjjh xjjh = list.getData().get(i); + showLog(new Gson().toJson(xjjh)); + } + + List xjjhs = list.getData();//服务器数据 + if(xjjhs!=null&&xjjhs.size()>0){ + DataSupport.deleteAll(Xjjh.class, "username = ?", username); + for (Xjjh xjjh : xjjhs) { + List dbxjjh = DataSupport.where("zxid = ? and download = ? and username = ?", xjjh.getZxid(), "1", username).find(Xjjh.class); + if (dbxjjh.size() == 0) { + xjjh.setUsername(username); + xjjh.save(); + } + } + //刷新计划下载界面 + Intent intent = new Intent(Contans.ACTION_REFRESHPLANDOWNLOAD); + //发送广播,刷新任务下载页面 + sendBroadcast(intent); + } + } + } + } + + @Override + public void onFailed(int what, Response response) { + + } + }); + } + //获取运行专业数据 private void getProfessionData() { final Request requestxs = NoHttp.createStringRequest(Contans.IP + Contans.XSCB, RequestMethod.POST); @@ -310,4 +379,79 @@ public class XscbglActivity extends BaseActivity { super.onDestroy(); unregisterReceiver(myReceiver); } + + //保安计划下载 + private void downDataBA(String zxid) { + Request request = NoHttp.createStringRequest(Contans.IP + Contans.XSCB_PLAN_BA_DOWNLOAD, RequestMethod.POST); + request.setDefineRequestBodyForJson(createZyJsonBA(zxid)); + + String tokenTemp = (String) SPUtils.get(this, Contans.LOGIN_TOKEN, ""); + if (!TextUtils.isEmpty(tokenTemp)) { + String token = RSAUtils.decryptBASE64StrLocal(tokenTemp); + ; + String credential = "Bearer " + token; + request.addHeader("Authorization", credential); + showLog(request.url()); + //showLog(credential); + //showLog(new Gson().toJson(request.headers())); + } + + queue.add(2, request, new OnResponseListener() { + @Override + public void onStart(int what) {} + + @Override + public void onSucceed(int what, Response response) { + String result = response.get(); + showLog(result); + try { + if (what == 2) { + XSJJHXZBean xsjjhxzBean = GsonUtils.GsonToBean(result, XSJJHXZBean.class); + if (xsjjhxzBean != null && xsjjhxzBean.getState() == 1) { + List xsjjhxzDataBeanList = xsjjhxzBean.getData(); + ContentValues values = new ContentValues(); + values.put("download", 1); + if (xsjjhxzDataBeanList != null && xsjjhxzDataBeanList.size() > 0) { + DataSupport.updateAll(Xjjh.class, values, "zxid = ? and mk = ? and username = ?", xsjjhxzDataBeanList.get(0).getZxid(), type, username); + } + int dataCount = DataSupport.count(XSJJHXZDataBean.class); + //序号 + int index = dataCount; + for (int i = 0; i < xsjjhxzDataBeanList.size(); i++) { + xsjjhxzDataBeanList.get(i).setSN(++index); + xsjjhxzDataBeanList.get(i).setUsername(username); + } + DataSupport.saveAll(xsjjhxzDataBeanList); + } else { + showToast(UiUtlis.getString(context, R.string.data_error)); + } + } + } catch (Exception e) { + showLog(UiUtlis.getString(context, R.string.data_error)); + } + } + + @Override + public void onFailed(int what, Response response) { + + } + + @Override + public void onFinish(int what) { + + } + }); + } + + private String createZyJsonBA(String zxid) { + String idTemp = (String) SPUtils.get(context, Contans.REQUEST_ID, ""); + String id = RSAUtils.decryptBASE64StrLocal(idTemp); + XsRequestInfo info = new XsRequestInfo(); + info.setAction("BA_XJGL_RWXZ_GET"); + info.setZxid(zxid); + info.setId(id); + String json = GsonUtils.GsonString(info); + showLog(json); + return json; + } } diff --git a/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/sbxj/XzxsjhFragment.java b/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/sbxj/XzxsjhFragment.java index 03691d8..86cbb26 100755 --- a/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/sbxj/XzxsjhFragment.java +++ b/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/activity/sbxj/XzxsjhFragment.java @@ -324,9 +324,9 @@ public class XzxsjhFragment extends BaseFragment { String token = RSAUtils.decryptBASE64StrLocal(tokenTemp);; String credential = "Bearer " + token; request.addHeader("Authorization", credential); -// Log.i("app", request.url()); -// Log.i("app", credential); -// Log.i("app",new Gson().toJson(request.headers())); + showLog(request.url()); + //showLog(credential); + //showLog(new Gson().toJson(request.headers())); } queue.add(2, request, new HttpResponseListener<>(getActivity(), request, callbackBA, false, false, "")); diff --git a/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/contans/Contans.java b/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/contans/Contans.java index 6d1358d..779d4a1 100755 --- a/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/contans/Contans.java +++ b/ZJYXDXJ/app/src/main/java/com/bjzc/zjyxdxj/contans/Contans.java @@ -116,6 +116,7 @@ public class Contans { public static final String ACTION_YULONE = "actionYulOne"; public static final String ACTION_YULTWO = "actionYulTwo"; public static final String ACTION_REFRESHPLANDOWNLOAD = "refreshPlanDownload"; + public static final String ACTION_DELETE_REFRESHPLANDOWNLOAD = "action_delete_refreshplandownload"; public static final String ACTION_REFRESHPLANUPLOAD = "refreshPlanUpload"; public static final String ACTION_REFRESHDOWNLOADPLAN = "refreshDownloadPlan"; public static final String ACTION_PROFESSIONCHANGE = "professionChange";