package com.dayu.recharge.activity;
|
|
import android.Manifest;
|
import android.app.Activity;
|
import android.content.Intent;
|
import android.content.pm.PackageManager;
|
import android.os.Build;
|
import android.os.Bundle;
|
import android.os.Handler;
|
import android.os.Message;
|
import android.text.TextUtils;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
|
import androidx.annotation.NonNull;
|
|
import com.dayu.recharge.MyApplication;
|
import com.dayu.recharge.databinding.ActivityMyBinding;
|
import com.dayu.recharge.dbBean.AdminDataBean;
|
import com.dayu.recharge.net.SocketNet;
|
import com.dayu.recharge.utils.DeviceNumberUtils;
|
import com.dayu.recharge.utils.ExcelUtil;
|
import com.dayu.recharge.utils.TipUtil;
|
import com.dayu.recharge.view.PassWordDialog;
|
import com.dayu.recharge.view.datepicker.CustomDatePicker;
|
import com.dayu.recharge.view.datepicker.DateFormatUtils;
|
|
import java.io.File;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
|
/**
|
* Copyright (C), 2023,
|
* Author: zuo
|
* Date: 2023-11-10 19:52
|
* Description: 个人中心
|
*/
|
public class MyActivity extends BaseActivity {
|
|
|
private CustomDatePicker beginDatePicker;
|
private CustomDatePicker endDatePicker;
|
long beginTime;
|
long endTime;
|
|
boolean isRechargeList = false;
|
ActivityMyBinding myBinding;
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
myBinding = ActivityMyBinding.inflate(LayoutInflater.from(this));
|
setContentView(myBinding.getRoot());
|
getVersion(this);
|
setData();
|
initDatePicker();
|
initView();
|
}
|
|
private void initView() {
|
myBinding.cardReplacement.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
startActivity(new Intent(MyActivity.this, ReplacementActivity.class));
|
}
|
});
|
myBinding.myAdmin.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
PassWordDialog passWordDialog = new PassWordDialog(MyActivity.this, new Intent(MyActivity.this, AdminSetupActivity.class));
|
passWordDialog.show();
|
// startActivity(new Intent(MyActivity.this, AdminSetupActivity.class));
|
}
|
});
|
myBinding.myPsw.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
startActivity(new Intent(MyActivity.this, PassWordActivity.class));
|
}
|
});
|
myBinding.myRechargeListLl.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
startActivity(new Intent(MyActivity.this, RechargeListActivity.class));
|
}
|
});
|
myBinding.myNewCardListLl.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
startActivity(new Intent(MyActivity.this, NewCardListActivity.class));
|
}
|
});
|
myBinding.myNewCardOut.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
isRechargeList = false;
|
beginDatePicker.show(System.currentTimeMillis());
|
}
|
});
|
myBinding.myRechargeOut.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
isRechargeList = true;
|
beginDatePicker.show(System.currentTimeMillis());
|
}
|
});
|
myBinding.myTestConnect.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
SocketNet.getInstance().isConnect(MyActivity.this);
|
|
}
|
});
|
myBinding.sysIp.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
PassWordDialog passWordDialog = new PassWordDialog(MyActivity.this, new Intent(MyActivity.this, SysIpActivity.class));
|
passWordDialog.show();
|
|
}
|
});
|
}
|
|
|
Handler handler = new Handler(new Handler.Callback() {
|
@Override
|
public boolean handleMessage(@NonNull Message msg) {
|
switch (msg.what) {
|
case 1:
|
TipUtil.show(MyActivity.this, "导出成功!");
|
break;
|
case 3:
|
TipUtil.show(MyActivity.this, "记录为空!");
|
break;
|
default:
|
TipUtil.show(MyActivity.this, "导出失败!");
|
break;
|
}
|
stopAnim();
|
return false;
|
}
|
});
|
|
/**
|
* 导出成Excel
|
*/
|
private void outExcl() {
|
startAnim();
|
new Thread(new Runnable() {
|
@Override
|
public void run() {
|
{
|
try {
|
File file = new File(ExcelUtil.outPath);
|
//文件夹是否已经存在
|
if (!file.exists()) {
|
file.mkdirs();
|
}
|
List listData = new ArrayList();
|
try {
|
if (isRechargeList) {
|
listData = asynchBaseDao.rechargeDao().ansyFindByTime(beginTime, endTime);
|
} else {
|
listData = asynchBaseDao.userCardDao().findByTime(beginTime, endTime);
|
}
|
if (listData == null || listData.size() == 0) {
|
handler.sendEmptyMessage(2);
|
return;
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
String[] title;
|
String fileName;
|
if (listData == null || listData.size() == 0) {
|
TipUtil.show(MyActivity.this, "记录为空");
|
return;
|
}
|
if (isRechargeList) {
|
title = new String[]{"设备序列号", "用户名", "订单号", "充值日期", "充值金额(元)", "剩余金额(元)"};
|
fileName = file.toString() + "/" + ExcelUtil.outRechargePathName;
|
} else {
|
title = new String[]{"设备序列号", "用户名", "身份证号", "注册日期", "电话"};
|
fileName = file.toString() + "/" + ExcelUtil.outUserPathName;
|
}
|
ExcelUtil.initExcel(fileName, title);
|
ExcelUtil.writeObjListToExcel(listData, fileName, MyActivity.this);
|
handler.sendEmptyMessage(1);
|
} catch (Exception e) {
|
handler.sendEmptyMessage(2);
|
e.printStackTrace();
|
}
|
}
|
}
|
}).start();
|
|
|
}
|
|
void getVersion(Activity context) {
|
int REQUEST_CODE_PERMISSION_STORAGE = 100;
|
if (Build.VERSION.SDK_INT >= 23) {
|
String[] permissions = {
|
Manifest.permission.READ_EXTERNAL_STORAGE,
|
Manifest.permission.WRITE_EXTERNAL_STORAGE
|
};
|
|
for (String str : permissions) {
|
if (context.checkSelfPermission(str) != PackageManager.PERMISSION_GRANTED) {
|
context.requestPermissions(permissions, REQUEST_CODE_PERMISSION_STORAGE);
|
return;
|
}
|
}
|
}
|
}
|
|
private void setData() {
|
AdminDataBean adminData;
|
try {
|
adminData = baseDao.adminDao().findFirst();
|
if (adminData != null) {
|
myBinding.myAdminName.setText(adminData.getSheng() + adminData.getShi() + adminData.getXian() + adminData.getZhen() + adminData.getCun());
|
myBinding.myVillageNum.setText(adminData.getSerial());
|
} else {
|
myBinding.myAdminName.setText("请点击地址信息设置");
|
myBinding.myVillageNum.setText("请点击地址信息设置");
|
}
|
StringBuilder msgData = new StringBuilder();
|
|
String initCode = DeviceNumberUtils.getDeviceNumber();
|
if (TextUtils.isEmpty(initCode)) {
|
msgData.append("设备未注册");
|
} else {
|
msgData.append("设备注册号:" + initCode);
|
}
|
myBinding.myTestConnect.setText(msgData);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
|
@Override
|
protected void onStart() {
|
super.onStart();
|
setData();
|
}
|
|
|
private void initDatePicker() {
|
long beginTimestamp = DateFormatUtils.str2Long("2009-05-01", false);
|
final long endTimestamp = System.currentTimeMillis();
|
|
// 通过时间戳初始化日期,毫秒级别
|
beginDatePicker = new CustomDatePicker(this, "选择开始时间", new CustomDatePicker.Callback() {
|
@Override
|
public void onTimeSelected(long timestamp) {
|
beginTime = timestamp;
|
endDatePicker.show(timestamp);
|
}
|
}, beginTimestamp, endTimestamp);
|
// 不允许点击屏幕或物理返回键关闭
|
beginDatePicker.setCancelable(false);
|
// 不显示时和分
|
beginDatePicker.setCanShowPreciseTime(false);
|
// 不允许循环滚动
|
beginDatePicker.setScrollLoop(false);
|
// 不允许滚动动画
|
beginDatePicker.setCanShowAnim(false);
|
|
endDatePicker = new CustomDatePicker(this, "选择结束时间", new CustomDatePicker.Callback() {
|
@Override
|
public void onTimeSelected(long timestamp) {
|
endTime = timestamp;
|
if ((endTime < beginTime) && endTime != beginTime) {
|
TipUtil.show(MyActivity.this, "结束时间不能晚于开始时间");
|
} else {
|
try {
|
endTime = endTime + (1000 * 60 * 60 * 24) - 1;
|
outExcl();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
}
|
}, beginTimestamp, endTimestamp);
|
// 不允许点击屏幕或物理返回键关闭
|
endDatePicker.setCancelable(false);
|
// 不显示时和分
|
endDatePicker.setCanShowPreciseTime(false);
|
// 不允许循环滚动
|
endDatePicker.setScrollLoop(false);
|
// 不允许滚动动画
|
endDatePicker.setCanShowAnim(false);
|
}
|
|
@Override
|
protected void onDestroy() {
|
super.onDestroy();
|
endDatePicker.onDestroy();
|
beginDatePicker.onDestroy();
|
}
|
|
void startAnim() {
|
myBinding.avi.setVisibility(View.VISIBLE);
|
myBinding.avi.show();
|
// or avi.smoothToShow();
|
}
|
|
void stopAnim() {
|
myBinding.avi.hide();
|
// or avi.smoothToHide();
|
}
|
|
|
}
|