新增预警信息入口

master
wenfei 3 weeks ago
parent a70af4ad6e
commit a4e28fbfdf

@ -82,12 +82,7 @@
tools:replace="android:allowBackup" tools:replace="android:allowBackup"
tools:targetApi="s"> tools:targetApi="s">
<activity
android:name=".ui.activity.AuthSuccessActivity"
android:exported="false" />
<activity
android:name=".ui.activity.VpnAuthActivity"
android:exported="false" />
<meta-data <meta-data
android:name="design_width" android:name="design_width"
@ -107,6 +102,12 @@
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity> </activity>
<activity
android:name=".ui.activity.AuthSuccessActivity"
android:exported="false" />
<activity
android:name=".ui.activity.VpnAuthActivity"
android:exported="false" />
<activity <activity
android:name=".ui.activity.MainActivity" android:name=".ui.activity.MainActivity"
android:configChanges="orientation|screenSize|keyboardHidden" android:configChanges="orientation|screenSize|keyboardHidden"
@ -440,6 +441,9 @@
<activity <activity
android:name=".ui.activity.SbinfoActivity" android:name=".ui.activity.SbinfoActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.DeviceAlarmInfofoActivity"
android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.activity.YdckglActivity" android:name=".ui.activity.YdckglActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
@ -1214,6 +1218,7 @@
android:name=".ui.activity.WeatherHistoryActivity" android:name=".ui.activity.WeatherHistoryActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize|stateHidden" /> android:windowSoftInputMode="adjustResize|stateHidden" />
<service <service
android:name=".service.PushService" android:name=".service.PushService"
android:exported="false" /> android:exported="false" />

@ -197,6 +197,8 @@ public class Contans {
//登录接口用户名和密码字段加密 //登录接口用户名和密码字段加密
public static final String LOGIN_USERNAME_AND_PWD_PUBLICKEY_ENCODE = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkJxhKMH+nwCSpqW+T67HnYblA3/ZvFslbwUB8YE+uojGouMCaeEnlyANebvIB+r6kpc2r6xSq1wEbV7MCk2cE2CK4/IK1OvR9aMSxnQHK9eekc7X2kueLjfuScXTy/QJpFPuTDDtMnwmqsXKBizAXcldSRJ9BdEyKklXAN3PH/7tym4tne26SuK/5Mjtw6AE8oNZFYrVknKYau4y2oEQbMo4kBuYokv4qrNmxbSM22Pu/Mw4M65S8sLKgHd+DwTVAYjilzXSoruG1gyqnY61YJuBPvvevEsp6TZ6fb5NKsVeRfprQ5TuoAtF+gIoEy0m0sKes4h+OoFsF7Wp0C1ESwIDAQAB"; public static final String LOGIN_USERNAME_AND_PWD_PUBLICKEY_ENCODE = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkJxhKMH+nwCSpqW+T67HnYblA3/ZvFslbwUB8YE+uojGouMCaeEnlyANebvIB+r6kpc2r6xSq1wEbV7MCk2cE2CK4/IK1OvR9aMSxnQHK9eekc7X2kueLjfuScXTy/QJpFPuTDDtMnwmqsXKBizAXcldSRJ9BdEyKklXAN3PH/7tym4tne26SuK/5Mjtw6AE8oNZFYrVknKYau4y2oEQbMo4kBuYokv4qrNmxbSM22Pu/Mw4M65S8sLKgHd+DwTVAYjilzXSoruG1gyqnY61YJuBPvvevEsp6TZ6fb5NKsVeRfprQ5TuoAtF+gIoEy0m0sKes4h+OoFsF7Wp0C1ESwIDAQAB";
public static final String DeviceAlermInfoAccount = "admin_07";
public static final String DeviceAlermInfoPwd = "oDyNHQnrq2l0IXEMtJFceUwRMx8p7s9ddK//iGjzVUVpgT8LKx7tCSRiOILDJ5yFFytmkHpAUg4S0Mv1urg7ELoDuOn8y+Ked8oo0BZY3c6T7/JPwlL+83lD8R76Q6xtJetM409AiBafF15oe3C54diJsIgbtPov2CvHV/34d8TvvzZY63vb+lAWcYBiK9O/q2lzEPmOw+3RGzbhsTLsAOS84Og45Jyutph6yOjs09PkmP1MnZ8iRse01iTmXY3DETwdkO7IbgO2QfpO2Lt9uAknKTf0fNNN7GPDSW8v+ajQRS29YdNWHYM/zB73UXCSienlO7cZXqCkfmuW+iJtnA==";
} }
/* /*
@ -525,6 +527,8 @@ public class Contans {
public static String PRINTIP_YIHAOCHANGKU = "10.19.110.220";//1号仓库是打印机的IP public static String PRINTIP_YIHAOCHANGKU = "10.19.110.220";//1号仓库是打印机的IP
public static String PRINTIP_BIANXIE = "10.19.110.24";//便携打印机的IP public static String PRINTIP_BIANXIE = "10.19.110.24";//便携打印机的IP
//设备状态智能监测及分析平台 登录
public final static String DeviceAlermInfoLoginUrl = "dserver/user/loginRsa";
//人员组织结构模块 用户验证接口token //人员组织结构模块 用户验证接口token
public final static String AUTHENTICATIONLOGINTOKEN = "AUTHENTICATIONLOGINTOKEN"; public final static String AUTHENTICATIONLOGINTOKEN = "AUTHENTICATIONLOGINTOKEN";
//人员组织结构模块 下次登录时间 //人员组织结构模块 下次登录时间

@ -0,0 +1,252 @@
package com.rehome.zhdcoa.ui.activity
import android.content.Intent
import android.text.TextUtils
import android.view.View
import android.widget.TextView
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import com.rehome.zhdcoa.Contans
import com.rehome.zhdcoa.R
import com.rehome.zhdcoa.adapter.WorkRiskLevelListAdapter
import com.rehome.zhdcoa.base.BaseActivityOaToolbarTwoViewBinding
import com.rehome.zhdcoa.base.BaseActivityOaToolbarViewBinding
import com.rehome.zhdcoa.bean.WorkRiskLevelListBean
import com.rehome.zhdcoa.completionUtil.ReplaceSpan
import com.rehome.zhdcoa.completionUtil.ReplaceSpan.OnClickListener
import com.rehome.zhdcoa.databinding.ActivityDeviceAlarmInfofoBinding
import com.rehome.zhdcoa.databinding.ActivityWorkRiskListBinding
import com.rehome.zhdcoa.utils.AuthenticationLoginAIUtils
import com.rehome.zhdcoa.utils.GsonUtils
import com.rehome.zhdcoa.utils.HttpListener
import com.rehome.zhdcoa.utils.NohttpUtils
import com.rehome.zhdcoa.utils.RSAAndroid
import com.yolanda.nohttp.NoHttp
import com.yolanda.nohttp.RequestMethod
import com.yolanda.nohttp.rest.Response
import java.text.SimpleDateFormat
import java.util.Calendar
import javax.net.ssl.HostnameVerifier
/**
* Create By HuangWenFei
* 创建日期2024-04-02 14:34
* 描述每日作业风险清单
*/
class DeviceAlarmInfofoActivity : BaseActivityOaToolbarViewBinding<ActivityDeviceAlarmInfofoBinding>() {
private lateinit var headView: View
private var datas: MutableList<WorkRiskLevelListBean.RowsBean> = mutableListOf()
private lateinit var mAdapter: WorkRiskLevelListAdapter
private var selectList: MutableList<Int> = mutableListOf()
private var jobNoList: MutableList<String> = mutableListOf()
private var selectListAssistant: MutableList<Int> = mutableListOf()
private var jobNoListAssistant: MutableList<String> = mutableListOf()
private var selectListCustom: MutableList<Int> = mutableListOf()
private var jobNoListCustom: MutableList<String> = mutableListOf()
private var dataA: MutableList<WorkRiskLevelListBean.RowsBean> = mutableListOf()
private var dataB: MutableList<WorkRiskLevelListBean.RowsBean> = mutableListOf()
private var dataC1: MutableList<WorkRiskLevelListBean.RowsBean> = mutableListOf()
private var dataC2: MutableList<WorkRiskLevelListBean.RowsBean> = mutableListOf()
private var dataC3: MutableList<WorkRiskLevelListBean.RowsBean> = mutableListOf()
private var dataLowRisk: MutableList<WorkRiskLevelListBean.RowsBean> = mutableListOf()
private var isNetworkNormal = false
private lateinit var launcherResultQRCode: ActivityResultLauncher<Intent>
override fun getViewBinding() = ActivityDeviceAlarmInfofoBinding.inflate(layoutInflater)
override fun getToolbar() = binding.toolbarView.toolbar
override fun initView() {
initToolbar("设备预警信息", "",{
})
launcherResultQRCode = createQRCodeActivityResultLauncher()
binding.lv.emptyView = binding.tvNodata
headView = View.inflate(this, R.layout.item_work_risk_list, null)
mAdapter = WorkRiskLevelListAdapter(this,datas,
{ position ->
val item = datas[position]
if(item.hazardList!=null&&item.hazardList.size>0){
//进入风险提示页面
val intent = Intent(context, WorkRiskListTipActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP)
intent.putExtra("hazardList", GsonUtils.GsonString(item.hazardList))
startActivity(intent)
}
},
{ position ->
val item = datas[position]
if(item.hazardList!=null&&item.hazardList.size>0){
//进入修改风险等级
val intent = Intent(context, CustomDialogChangeLevelActivity::class.java)
intent.putExtra("id",item.id)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP)
intent.putExtra("level", item.level)
intent.putExtra("type", item.type)
launcherResultQRCode.launch(intent)
}
},
{ position ->
val item = datas[position]
showLog("---------")
showLog(GsonUtils.GsonString(item))
//工作情况汇报
val intent = Intent(context, WorkRiskListHuiBaoActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP)
intent.putExtra("level",item.level)
intent.putExtra("type",item.type)
intent.putExtra("id",item.id)
startActivity(intent)
}
)
//binding.lv.addHeaderView(headView, null, false)
binding.lv.adapter = mAdapter
//格式化日期的对象(转化成习惯的时间格式)
val sdFormat = SimpleDateFormat("yyyy.MM.dd")
//静态方法getInstance()使用默认时区和语言环境获得一个日历。
val calendar = Calendar.getInstance()
}
override fun initData() {
authenticationLoginDeviceAlermInfo()
}
override fun onRestart() {
super.onRestart()
authenticationLoginDeviceAlermInfo()
}
//创建一个ActivityResultLauncher
private fun createQRCodeActivityResultLauncher(): ActivityResultLauncher<Intent> {
//kotlin写法
return registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
val data = it.data
val resultCode = it.resultCode
if (resultCode == RESULT_OK) {
if (data != null) {
val qrCodeStr = data.getStringExtra("code") ?: ""
showLog(qrCodeStr)
if(!TextUtils.isEmpty(qrCodeStr)){
//刷新列表数据
authenticationLoginDeviceAlermInfo()
}
}
}
}
}
private fun authenticationLoginDeviceAlermInfo() {
try {
//AI三维登录接口
val userName = Contans.SP.DeviceAlermInfoAccount
val strPrivateEncode = RSAAndroid.encryptByPrivateKeyForSpiltStr(Contans.SP.DeviceAlermInfoPwd,RSAAndroid.privateRsaKeyLocal)
val strPublicDecode = RSAAndroid.decryptByPublicKeyForSpiltStr(
Contans.SP.DeviceAlermInfoPwd,
RSAAndroid.publicRsaKeyLocal
)
showLog(userName)
showLog(strPublicDecode)
AuthenticationLoginAIUtils.authenticationDeviceAlermInfoShowProgress(
this, userName, strPublicDecode
) { _, token ->
if (token != null && token == "") {
showToast("设备状态智能监测及分析平台登录失败")
isNetworkNormal = false
} else {
//getWorkRiskListData()
//登录成功
}
}
} catch (e: Exception) {
e.printStackTrace()
}
}
private fun getWorkRiskListData() {
val request = NoHttp.createStringRequest(
Contans.BASE_URL_AI_3D_SERVER + Contans.DAYLY_RISK_LIST_NEW,
RequestMethod.GET
)
request.add("filter",true);
if (Contans.BASE_URL_AI_3D_SERVER == Contans.BASE_URL_AI_3D_SERVER_EXTRANET) {
val socketFactory = NohttpUtils.getSSLSocketFactory(context)
if (socketFactory != null) {
request.sslSocketFactory = socketFactory
request.hostnameVerifier = HostnameVerifier { _, _ -> true }
}
}
NohttpUtils.getInstance().add(this, 0, request, object : HttpListener<String?> {
override fun onSucceed(what: Int, response: Response<String?>?) {
val result = response?.get()
showLog("----------------")
showLog(result)
val bean = GsonUtils.GsonToBean(
result,
WorkRiskLevelListBean::class.java
)
if (bean != null && bean.data != null) {
isNetworkNormal = true
val workRiskLevelLists = bean.data
if (workRiskLevelLists != null && workRiskLevelLists.size > 0) {
binding.tvNodata.visibility = View.GONE
headView.visibility = View.VISIBLE
datas.clear()
datas.addAll(workRiskLevelLists)
mAdapter.notifyDataSetChanged()
dataA.clear()
dataB.clear()
dataC1.clear()
dataC2.clear()
dataC3.clear()
dataLowRisk.clear()
selectList.clear()
jobNoList.clear()
selectListAssistant.clear()
jobNoListAssistant.clear()
selectListCustom.clear()
jobNoListCustom.clear()
} else {
binding.tvNodata.visibility = View.VISIBLE
}
}else{
isNetworkNormal = false
}
}
override fun onFailed(what: Int, response: Response<String?>?) {
isNetworkNormal = false
}
})
}
private fun toWorkRiskListHuiBaoActivity(type:String){
//工作情况汇报
val intent = Intent(context, WorkRiskListHuiBaoActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP)
intent.putExtra("type",type)
startActivity(intent)
}
}

@ -228,8 +228,8 @@ class LoginActivity : BaseActivityOaToolbarViewBinding<ActivityLoginBinding>() {
if (isApkInDebug(context)) { if (isApkInDebug(context)) {
// 管理员 // 管理员
// binding.etUsername.setText("ZHPS_Admin") binding.etUsername.setText("ZHPS_Admin")
// binding.etPassword.setText("Rehome.zhps@996") binding.etPassword.setText("Rehome.zhps@996")
//公司内网215管理员 //公司内网215管理员

@ -119,6 +119,8 @@ import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -769,6 +771,7 @@ public class WztpScActivity extends BaseActivity2 {
private void uploadWZTP(String stEndName) { private void uploadWZTP(String stEndName) {
Wztpscinfo.Wztp wztp = wztps.get(0); Wztpscinfo.Wztp wztp = wztps.get(0);
File wztpuploadfile = new File(path + "/" + stEndName); File wztpuploadfile = new File(path + "/" + stEndName);
showLog(wztpuploadfile.getPath());
//showToast("filesize:" + String.valueOf(wztpuploadfile.length())); //showToast("filesize:" + String.valueOf(wztpuploadfile.length()));
RequestBody requestFile = RequestBody.create(MediaType.parse("image/*"), wztpuploadfile); RequestBody requestFile = RequestBody.create(MediaType.parse("image/*"), wztpuploadfile);
MultipartBody.Part body = MultipartBody.Part.createFormData("fileps", wztpuploadfile.getName(), requestFile); MultipartBody.Part body = MultipartBody.Part.createFormData("fileps", wztpuploadfile.getName(), requestFile);
@ -808,6 +811,7 @@ public class WztpScActivity extends BaseActivity2 {
private void uploadWZTPFJT(String fjtEndName) { private void uploadWZTPFJT(String fjtEndName) {
Wztpscinfo.Wztp wztp = wztps.get(0); Wztpscinfo.Wztp wztp = wztps.get(0);
File wztpuploadfile = new File(path + "/" + fjtEndName); File wztpuploadfile = new File(path + "/" + fjtEndName);
showLog(wztpuploadfile.getPath());
//showToast("filesize:" + String.valueOf(wztpuploadfile.length())); //showToast("filesize:" + String.valueOf(wztpuploadfile.length()));
RequestBody requestFile = RequestBody.create(MediaType.parse("image/*"), wztpuploadfile); RequestBody requestFile = RequestBody.create(MediaType.parse("image/*"), wztpuploadfile);
MultipartBody.Part body = MultipartBody.Part.createFormData("fileps", wztpuploadfile.getName(), requestFile); MultipartBody.Part body = MultipartBody.Part.createFormData("fileps", wztpuploadfile.getName(), requestFile);
@ -856,14 +860,21 @@ public class WztpScActivity extends BaseActivity2 {
Log.i("app", wztp.getItemnum() + "." + extensionName); Log.i("app", wztp.getItemnum() + "." + extensionName);
Log.i("app", String.valueOf(duration)); Log.i("app", String.valueOf(duration));
String itemNumTemp = wztp.getItemnum();
if(!TextUtils.isEmpty(itemNumTemp) && itemNumTemp.contains("/")){
itemNumTemp.replace("/","-");
}
showLog("---------itemNumTemp-------");
showLog(itemNumTemp);
HttpUtils.getYXApi(this).uploadwztpBody( HttpUtils.getYXApi(this).uploadwztpBody(
wztp.getItemnum(), wztp.getItemnum(),
wztp.getItemid(), wztp.getItemid(),
username, username,
"3", "3",
wztp.getItemnum() + "." + extensionName, itemNumTemp + "." + extensionName,
duration, duration,
wztp.getItemnum() + ".jpg", itemNumTemp + ".jpg",
body).enqueue(new BaseCallBack<wztpBean>(context) { body).enqueue(new BaseCallBack<wztpBean>(context) {
@Override @Override
public void onSuccess(Call<wztpBean> call, retrofit2.Response<wztpBean> response) { public void onSuccess(Call<wztpBean> call, retrofit2.Response<wztpBean> response) {
@ -893,7 +904,11 @@ public class WztpScActivity extends BaseActivity2 {
private void compressVideo() { private void compressVideo() {
Wztpscinfo.Wztp wztp = wztps.get(0); Wztpscinfo.Wztp wztp = wztps.get(0);
String extensionName = FileUtils.getFileType(videoFileName); String extensionName = FileUtils.getFileType(videoFileName);
videoCompressFilePath = context.getExternalFilesDir(null).getPath() + "/Movies/" + wztp.getItemnum() + "_compress_video." + extensionName; String itemNumTemp = wztp.getItemnum();
if(!TextUtils.isEmpty(itemNumTemp) && itemNumTemp.contains("/")){
itemNumTemp = itemNumTemp.replace("/","_");
}
videoCompressFilePath = context.getExternalFilesDir(null).getPath() + "/Movies/" + itemNumTemp + "_compress_video." + extensionName;
VideoCompress.compressVideoLow(videoFilePath, videoCompressFilePath, new VideoCompress.CompressListener() { VideoCompress.compressVideoLow(videoFilePath, videoCompressFilePath, new VideoCompress.CompressListener() {
@Override @Override
public void onStart() { public void onStart() {
@ -931,14 +946,32 @@ public class WztpScActivity extends BaseActivity2 {
Log.i("app", wztp.getItemnum() + "." + extensionName); Log.i("app", wztp.getItemnum() + "." + extensionName);
Log.i("app", String.valueOf(duration)); Log.i("app", String.valueOf(duration));
String url = Contans.IP + Contans.YDCK_WZ_UPLOAD_VIDEO_URL + "?itemnum=" + wztp.getItemnum() + "&itemid=" + wztp.getItemid() + "&operid=" + username String itemNumTemp = wztp.getItemnum();
+ "&type=3" + "&fname=" + wztp.getItemnum() + "." + extensionName + "&videoleng=" + duration + "&videosltname=" + wztp.getItemnum() + "_video.jpg"; if(!TextUtils.isEmpty(itemNumTemp) && itemNumTemp.contains("/")){
itemNumTemp = itemNumTemp.replace("/","_");
}
showLog(itemNumTemp);
showLog(wztp.getItemnum());
String itemNumEncode = wztp.getItemnum();
try {
if(!TextUtils.isEmpty(itemNumEncode) && itemNumEncode.contains("/")){
itemNumEncode = URLEncoder.encode(itemNumEncode, "UTF-8");;
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
String url = Contans.IP + Contans.YDCK_WZ_UPLOAD_VIDEO_URL + "?itemnum=" + itemNumEncode + "&itemid=" + wztp.getItemid() + "&operid=" + username
+ "&type=3" + "&fname=" + itemNumTemp + "." + extensionName + "&videoleng=" + duration + "&videosltname=" + itemNumTemp + "_video.jpg";
Log.i("app", url); Log.i("app", url);
try { try {
Bitmap bitmapVideo = VideoImageUtil.createVideoThumbnail(videoFilePath, MediaStore.Images.Thumbnails.MINI_KIND); Bitmap bitmapVideo = VideoImageUtil.createVideoThumbnail(videoFilePath, MediaStore.Images.Thumbnails.MINI_KIND);
videoStFilePath = context.getExternalFilesDir(null).getPath() + "/Movies/" + wztp.getItemnum() + "_video.jpg"; videoStFilePath = context.getExternalFilesDir(null).getPath() + "/Movies/" + itemNumTemp + "_video.jpg";
VideoImageUtil.saveImage(videoStFilePath, bitmapVideo); VideoImageUtil.saveImage(videoStFilePath, bitmapVideo);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
@ -1334,6 +1367,13 @@ public class WztpScActivity extends BaseActivity2 {
private void cropFromTake(String name, int flag) throws IOException { private void cropFromTake(String name, int flag) throws IOException {
String applicationId = App.getApplicationId(context); String applicationId = App.getApplicationId(context);
stFileName = name + ".jpg"; stFileName = name + ".jpg";
showLog("-------before------");
showLog(stFileName);
if(!TextUtils.isEmpty(name) && name.contains("/")){
stFileName = stFileName.replace("/","_");
}
showLog("-------after------");
showLog(stFileName);
this.deleteFileIfNeed(path, stFileName); this.deleteFileIfNeed(path, stFileName);
File fos = this.createFileIfNeed(path, stFileName); File fos = this.createFileIfNeed(path, stFileName);
Uri uri = FileProvider.getUriForFile(context, applicationId + ".fileprovider", fos); Uri uri = FileProvider.getUriForFile(context, applicationId + ".fileprovider", fos);
@ -1355,6 +1395,9 @@ public class WztpScActivity extends BaseActivity2 {
String applicationId = App.getApplicationId(context); String applicationId = App.getApplicationId(context);
fjtFileName = name + ".jpg"; fjtFileName = name + ".jpg";
if(!TextUtils.isEmpty(name) && name.contains("/")){
fjtFileName = fjtFileName.replace("/","_");
}
this.deleteFileIfNeed(path, fjtFileName); this.deleteFileIfNeed(path, fjtFileName);
File fos = this.createFileIfNeed(path, fjtFileName); File fos = this.createFileIfNeed(path, fjtFileName);
Uri uri = FileProvider.getUriForFile(context, applicationId + ".fileprovider", fos); Uri uri = FileProvider.getUriForFile(context, applicationId + ".fileprovider", fos);
@ -1412,6 +1455,9 @@ public class WztpScActivity extends BaseActivity2 {
private void choosePhoto(int flag) { private void choosePhoto(int flag) {
stFileName = UiUtlis.getText(etHgtm) + ".jpg"; stFileName = UiUtlis.getText(etHgtm) + ".jpg";
if(!TextUtils.isEmpty(stFileName) && stFileName.contains("/")){
stFileName = stFileName.replace("/","_");
}
this.deleteFileIfNeed(path, stFileName); this.deleteFileIfNeed(path, stFileName);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
Intent fjtxc = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); Intent fjtxc = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
@ -1434,6 +1480,9 @@ public class WztpScActivity extends BaseActivity2 {
private void choosePhotoFjt(int flag) { private void choosePhotoFjt(int flag) {
fjtFileName = UiUtlis.getText(etHgtm) + "FJT" + ".jpg"; fjtFileName = UiUtlis.getText(etHgtm) + "FJT" + ".jpg";
if(!TextUtils.isEmpty(fjtFileName) && fjtFileName.contains("/")){
fjtFileName = fjtFileName.replace("/","_");
}
this.deleteFileIfNeed(path, fjtFileName); this.deleteFileIfNeed(path, fjtFileName);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
Intent fjtxc = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); Intent fjtxc = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

@ -131,6 +131,8 @@ import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -862,7 +864,12 @@ public class WztpblScDetailActivity extends BaseActivityOaToolbarViewBinding<Act
private void compressVideo() { private void compressVideo() {
Wztpscinfo.Wztp wztp = wztps.get(0); Wztpscinfo.Wztp wztp = wztps.get(0);
String extensionName = FileUtils.getFileType(videoFileName); String extensionName = FileUtils.getFileType(videoFileName);
videoCompressFilePath = context.getExternalFilesDir(null).getPath() + "/Movies/" + wztp.getItemnum() + "_compress_video." + extensionName; String itemNumTemp = wztp.getItemnum();
if(!TextUtils.isEmpty(itemNumTemp) && itemNumTemp.contains("/")){
itemNumTemp = itemNumTemp.replace("/","_");
}
videoCompressFilePath = context.getExternalFilesDir(null).getPath() + "/Movies/" + itemNumTemp + "_compress_video." + extensionName;
VideoCompress.compressVideoLow(videoFilePath, videoCompressFilePath, new VideoCompress.CompressListener() { VideoCompress.compressVideoLow(videoFilePath, videoCompressFilePath, new VideoCompress.CompressListener() {
@Override @Override
public void onStart() { public void onStart() {
@ -900,8 +907,25 @@ public class WztpblScDetailActivity extends BaseActivityOaToolbarViewBinding<Act
Log.i("app", wztp.getItemnum() + "." + extensionName); Log.i("app", wztp.getItemnum() + "." + extensionName);
Log.i("app", String.valueOf(duration)); Log.i("app", String.valueOf(duration));
String url = Contans.IP + Contans.YDCK_WZ_UPLOAD_VIDEO_URL + "?itemnum=" + wztp.getItemnum() + "&itemid=" + wztp.getItemid() + "&operid=" + username String itemNumTemp = wztp.getItemnum();
+ "&type=3" + "&fname=" + wztp.getItemnum() + "." + extensionName + "&videoleng=" + duration + "&videosltname=" + wztp.getItemnum() + "_video.jpg"; if(!TextUtils.isEmpty(itemNumTemp) && itemNumTemp.contains("/")){
itemNumTemp = itemNumTemp.replace("/","_");
}
showLog(itemNumTemp);
showLog(wztp.getItemnum());
String itemNumEncode = wztp.getItemnum();
try {
if(!TextUtils.isEmpty(itemNumEncode) && itemNumEncode.contains("/")){
itemNumEncode = URLEncoder.encode(itemNumEncode, "UTF-8");;
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
String url = Contans.IP + Contans.YDCK_WZ_UPLOAD_VIDEO_URL + "?itemnum=" + itemNumEncode + "&itemid=" + wztp.getItemid() + "&operid=" + username
+ "&type=3" + "&fname=" + itemNumTemp + "." + extensionName + "&videoleng=" + duration + "&videosltname=" + itemNumTemp + "_video.jpg";
Log.i("app", url); Log.i("app", url);

@ -49,6 +49,7 @@ import com.rehome.zhdcoa.databinding.FragmentYunxingBinding
import com.rehome.zhdcoa.service.PushService import com.rehome.zhdcoa.service.PushService
import com.rehome.zhdcoa.service.UploadDataService import com.rehome.zhdcoa.service.UploadDataService
import com.rehome.zhdcoa.ui.activity.AjhxcglActivity import com.rehome.zhdcoa.ui.activity.AjhxcglActivity
import com.rehome.zhdcoa.ui.activity.DeviceAlarmInfofoActivity
import com.rehome.zhdcoa.ui.activity.GdActivity import com.rehome.zhdcoa.ui.activity.GdActivity
import com.rehome.zhdcoa.ui.activity.SbinfoActivity import com.rehome.zhdcoa.ui.activity.SbinfoActivity
import com.rehome.zhdcoa.ui.activity.SbxdjglActivity import com.rehome.zhdcoa.ui.activity.SbxdjglActivity
@ -230,6 +231,11 @@ class YunXingFragment : BaseViewBindingKotlinFragment<FragmentYunxingBinding>()
startActivity(intent) startActivity(intent)
} }
9 -> {
intent = Intent(activity, DeviceAlarmInfofoActivity::class.java)
startActivity(intent)
}
else -> {} else -> {}
} }
} }
@ -278,6 +284,7 @@ class YunXingFragment : BaseViewBindingKotlinFragment<FragmentYunxingBinding>()
item_yx.add(0) item_yx.add(0)
item_yx.add(5) item_yx.add(5)
item_yx.add(8) item_yx.add(8)
item_yx.add(9)
} }
"AppMobileHouse" -> item_yx.add(1) "AppMobileHouse" -> item_yx.add(1)
@ -292,7 +299,10 @@ class YunXingFragment : BaseViewBindingKotlinFragment<FragmentYunxingBinding>()
"AppMeterReading" -> item_yx.add(6) "AppMeterReading" -> item_yx.add(6)
"AppXSCB" -> item_yx.add(6) "AppXSCB" -> item_yx.add(6)
"AppDQGZ" -> item_yx.add(7) "AppDQGZ" -> item_yx.add(7)
else -> item_yx.add(8) else -> {
item_yx.add(8)
item_yx.add(9)
}
} }
} }
} }

@ -254,6 +254,86 @@ public class AuthenticationLoginAIUtils {
}); });
} }
public static void authenticationDeviceAlermInfoShowProgress(Activity mActivity, String account, String password, OnAuthenticationLoginListener listener) {
Request<String> request = NoHttp.createStringRequest(Contans.IP + Contans.DeviceAlermInfoLoginUrl, RequestMethod.POST);
Map<String, String> params = new HashMap<>();
params.put("username", account);
params.put("password", password);
String json = GsonUtils.GsonString(params);
//showLog(json);
String jsonEncrypt = RSAUtils.encryptBASE64Str(json);
//showLog(jsonEncrypt);
request.setDefineRequestBodyForJson(jsonEncrypt);
if (Contans.IP.equals(Contans.IP_EXTRANET)) {
SSLSocketFactory socketFactory = NohttpUtils.getSSLSocketFactory(mActivity);
if (socketFactory != null) {
request.setSSLSocketFactory(socketFactory);
request.setHostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(String s, SSLSession sslSession) {
return true;
}
});
}
}
NohttpUtils.getInstance().add(mActivity, 0, request, new HttpListener<String>() {
@Override
public void onSucceed(int what, Response<String> response) {
showLog("----------------",mActivity);
String result = response.get();
showLog(result,mActivity);
if(!TextUtils.isEmpty(result)){
UserAuthenticationAIBean bean = GsonToBean(result, UserAuthenticationAIBean.class);
if (bean != null) {
if (bean.isSuccess()&&bean.getCode()==20000) {//登录成功
SPUtils.put(mActivity, Contans.AUTHENTICATIONLOGINTOKENAI, bean.getData().getToken());
listener.onAuthenticationSuccess(true, bean.getData().getToken());
} else {
if (bean.getFlag() == -1) {
if (bean.getMsg() != null && bean.getMsg().equals("用户未注销")) {
String token = (String) SPUtils.get(mActivity, Contans.AUTHENTICATIONLOGINTOKENAI, String.valueOf(""));
listener.onAuthenticationSuccess(true, token);
}
} else {
listener.onAuthenticationSuccess(false, "");
if (bean.getFlag() == -2) {
showLog("没有传参",mActivity);
}
if (bean.getFlag() == -3) {
showLog("服务器解密失败",mActivity);
}
if (bean.getFlag() == -4) {
showLog("Json 格式不正确",mActivity);
}
if (bean.getFlag() == -5) {
showLog("账号密码不能为空",mActivity);
}
if (bean.getFlag() == -6) {
showLog("账号或密码错误",mActivity);
}
}
}
}
}
}
@Override
public void onFailed(int what, Response<String> response) {
showLog("onFailed",mActivity);
listener.onAuthenticationSuccess(false, "");
}
});
}
public static void showLog(String logText,Context context) { public static void showLog(String logText,Context context) {
if (isApkInDebug(context)) { if (isApkInDebug(context)) {
if (TextUtils.isEmpty(logText)) { if (TextUtils.isEmpty(logText)) {

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#E7F1F7"
tools:context=".ui.activity.WorkRiskListActivity">
<include
android:id="@+id/toolbarView"
layout="@layout/layout_base" />
<include
android:id="@+id/item_head"
layout="@layout/item_work_risk_list"
android:layout_width="match_parent"
android:layout_marginStart="10px"
android:layout_marginEnd="10px"
android:layout_marginTop="5dp"
android:layout_height="wrap_content" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="10px"
android:layout_marginEnd="10px"
android:layout_marginBottom="10px"
android:layout_weight="1">
<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="#00000000"
android:dividerHeight="0px"/>
<TextView
android:id="@+id/tv_nodata"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textColor="@color/viewfinder_mask"
android:gravity="center"
android:text="暂无数据"/>
</FrameLayout>
</LinearLayout>
Loading…
Cancel
Save