| | |
| | | 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.SocketUtil; |
| | | import com.dayu.recharge.utils.TipUtil; |
| | | import com.dayu.recharge.view.PassWordDialog; |
| | | import com.dayu.recharge.view.datepicker.CustomDatePicker; |
| | |
| | | } |
| | | |
| | | 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(); |
| | | myBinding.cardReplacement.setOnClickListener(v -> startActivity(new Intent(MyActivity.this, ReplacementActivity.class))); |
| | | myBinding.myAdmin.setOnClickListener(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.myPsw.setOnClickListener(v -> startActivity(new Intent(MyActivity.this, PassWordActivity.class))); |
| | | myBinding.myRechargeListLl.setOnClickListener(v -> startActivity(new Intent(MyActivity.this, RechargeListActivity.class))); |
| | | myBinding.myNewCardListLl.setOnClickListener(v -> startActivity(new Intent(MyActivity.this, NewCardListActivity.class))); |
| | | myBinding.myNewCardOut.setOnClickListener(v -> { |
| | | isRechargeList = false; |
| | | beginDatePicker.show(System.currentTimeMillis()); |
| | | }); |
| | | myBinding.myRechargeListLl.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | startActivity(new Intent(MyActivity.this, RechargeListActivity.class)); |
| | | } |
| | | myBinding.myRechargeOut.setOnClickListener(v -> { |
| | | isRechargeList = true; |
| | | beginDatePicker.show(System.currentTimeMillis()); |
| | | }); |
| | | 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.myTestConnect.setOnClickListener(v -> SocketNet.getInstance().isConnect(MyActivity.this)); |
| | | |
| | | } |
| | | |
| | | |
| | | 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; |
| | | Handler handler = new Handler(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; |
| | | }); |
| | | |
| | | /** |
| | |
| | | */ |
| | | private void outExcl() { |
| | | startAnim(); |
| | | new Thread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | { |
| | | new Thread(() -> { |
| | | { |
| | | try { |
| | | File file = new File(ExcelUtil.outPath); |
| | | //文件夹是否已经存在 |
| | | if (!file.exists()) { |
| | | file.mkdirs(); |
| | | } |
| | | List listData = new ArrayList(); |
| | | try { |
| | | File file = new File(ExcelUtil.outPath); |
| | | //文件夹是否已经存在 |
| | | if (!file.exists()) { |
| | | file.mkdirs(); |
| | | if (isRechargeList) { |
| | | listData = asynchBaseDao.rechargeDao().ansyFindByTime(beginTime, endTime); |
| | | } else { |
| | | listData = asynchBaseDao.userCardDao().findByTime(beginTime, endTime); |
| | | } |
| | | 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, "记录为空"); |
| | | handler.sendEmptyMessage(2); |
| | | 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(); |
| | | } |
| | | 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(); |
| | |
| | | AdminDataBean adminData; |
| | | try { |
| | | adminData = baseDao.adminDao().findFirst(); |
| | | if (adminData != null) { |
| | | if (adminData.isHasAddressCode()) { |
| | | myBinding.myAdminName.setText(adminData.getSheng() + adminData.getShi() + adminData.getXian() + adminData.getZhen() + adminData.getCun()); |
| | | myBinding.myVillageNum.setText(adminData.getSerial()); |
| | | } else { |
| | |
| | | if (TextUtils.isEmpty(initCode)) { |
| | | msgData.append("设备未注册"); |
| | | } else { |
| | | msgData.append("设备注册号:" + initCode); |
| | | msgData.append("设备注册号:").append(initCode); |
| | | } |
| | | myBinding.myTestConnect.setText(msgData); |
| | | } catch (Exception e) { |
| | |
| | | final long endTimestamp = System.currentTimeMillis(); |
| | | |
| | | // 通过时间戳初始化日期,毫秒级别 |
| | | beginDatePicker = new CustomDatePicker(this, "选择开始时间", new CustomDatePicker.Callback() { |
| | | @Override |
| | | public void onTimeSelected(long timestamp) { |
| | | beginTime = timestamp; |
| | | endDatePicker.show(timestamp); |
| | | } |
| | | beginDatePicker = new CustomDatePicker(this, "选择开始时间", timestamp -> { |
| | | beginTime = timestamp; |
| | | endDatePicker.show(timestamp); |
| | | }, beginTimestamp, endTimestamp); |
| | | // 不允许点击屏幕或物理返回键关闭 |
| | | beginDatePicker.setCancelable(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(); |
| | | } |
| | | endDatePicker = new CustomDatePicker(this, "选择结束时间", 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); |