diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/WorkTickerSelectListActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/WorkTickerSelectListActivity.kt new file mode 100644 index 0000000..8bf34e8 --- /dev/null +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/WorkTickerSelectListActivity.kt @@ -0,0 +1,208 @@ +package com.rehome.zhdcoa.ui.activity + +import android.content.Intent +import android.view.View +import android.widget.CheckBox +import com.rehome.zhdcoa.Contans +import com.rehome.zhdcoa.adapter.WorkTickerSelectListAdapter +import com.rehome.zhdcoa.adapter.WorkTickerSelectListAdapter.CallBack +import com.rehome.zhdcoa.base.BaseActivityOaToolbarViewBinding +import com.rehome.zhdcoa.bean.WorkRiskLevelListBean +import com.rehome.zhdcoa.databinding.ActivityWorkTickerSelectListBinding +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.rehome.zhdcoa.weiget.DatePickDialogNew +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 + * 创建日期:2025-02-6 15:31 + * 描述:已审批的工作票 + */ +class WorkTickerSelectListActivity : BaseActivityOaToolbarViewBinding() { + + //private lateinit var headView: View + //private lateinit var cb: CheckBox + + private var datas: MutableList = mutableListOf() + private lateinit var mAdapter: WorkTickerSelectListAdapter + //WorkTickerSelectListAdapter + + private var selectList: MutableList = mutableListOf() + private lateinit var calendar: Calendar + + //格式化日期的对象(转化成习惯的时间格式) + private val sdFormat = SimpleDateFormat("yyyy-MM-dd") + + override fun getViewBinding() = ActivityWorkTickerSelectListBinding.inflate(layoutInflater) + + override fun getToolbar() = binding.toolbarView.toolbar + + override fun initView() { + + initToolbar("已授权工作票", "") { + //提交 + } + + resetToday() + + binding.tvSt.setOnClickListener(View.OnClickListener { view: View? -> + + val dialog = DatePickDialogNew( + context, calendar + ) { outPutDate: String,calendarBack:Calendar -> + binding.tvSt.text = outPutDate + calendar = calendarBack; + //checkServerConnectStatus() + } + dialog.show() + }) + + binding.lv.emptyView = binding.tvNodata + //headView = View.inflate(this, R.layout.header_work_ticket_select_list, null) + //cb = headView.findViewById(R.id.cb) as CheckBox + binding.itemHead.cb.setOnClickListener { + if (binding.itemHead.cb.isChecked) { + for (i in datas.indices) { + datas[i].isChecked = true + mAdapter.notifyDataSetChanged() + } + } else { + for (i in datas.indices) { + datas[i].isChecked = false + mAdapter.notifyDataSetChanged() + } + } + } + + mAdapter = WorkTickerSelectListAdapter(this,datas,object:CallBack{ + override fun Click(view: View,position:Int) { + val checkBox = view as CheckBox + datas[position].isChecked = checkBox.isChecked + var count = 0 + for (a in datas.indices) { + if (datas[a].isChecked) { + count++ + } + } + binding.itemHead.cb.isChecked = count == datas.size + mAdapter.notifyDataSetChanged() + } + }) + //binding.lv.addHeaderView(headView, null, false) + binding.lv.adapter = mAdapter + + binding.tvSubmit.setOnClickListener { + + + + } + + //格式化日期的对象(转化成习惯的时间格式) + val sdFormat = SimpleDateFormat("yyyy.MM.dd") + //静态方法getInstance()使用默认时区和语言环境获得一个日历。 + val calendar = Calendar.getInstance() + //输出当前系统时间; + //binding.tvTime.text = sdFormat.format(calendar.time) + } + + override fun initData() { + authenticationLoginAI() + } + + private fun authenticationLoginAI() { + try { + //AI三维登录接口 + val userName = Contans.SP.AI_ACCOUNT + //String strPrivateEncode=RSAAndroid.encryptByPrivateKeyForSpiltStr(Contans.SP.AI_PWD,RSAAndroid.privateRsaKeyLocal); + val strPublicDecode = RSAAndroid.decryptByPublicKeyForSpiltStr( + Contans.SP.AI_PWD_ENCODE, + RSAAndroid.publicRsaKeyLocal + ) + AuthenticationLoginAIUtils.authenticationAILoginShowProgress( + this, userName, strPublicDecode + ) { _, token -> + if (token != null && token == "") { + showToast("AI三维平台登录失败") + } 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",false); + + 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 { + + override fun onSucceed(what: Int, response: Response?) { + val result = response?.get() + showLog("----------------") + showLog(result) + val bean = GsonUtils.GsonToBean( + result, + WorkRiskLevelListBean::class.java + ) + if (bean != null && bean.data != null) { + val workRiskLevelLists = bean.data + if (workRiskLevelLists != null && workRiskLevelLists.size > 0) { + binding.tvNodata.visibility = View.GONE + datas.clear() + datas.addAll(workRiskLevelLists) + mAdapter.notifyDataSetChanged() + + + + + for(item in datas){ + showLog(GsonUtils.GsonString(item)) +// if(item.level!=null&&item.level=="A"){ +// dataA.add(item) +// } + } + } else { + binding.tvNodata.visibility = View.VISIBLE + } + } + } + + override fun onFailed(what: Int, response: Response?) { + + } + }) + } + + private fun resetToday(){ + calendar = Calendar.getInstance() + val startDateStr = sdFormat.format(calendar.time) + showLog("今天:") + showLog(startDateStr) + binding.tvSt.text = startDateStr + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/rehome/zhdcoa/weiget/DatePickDialogNew.java b/app/src/main/java/com/rehome/zhdcoa/weiget/DatePickDialogNew.java new file mode 100644 index 0000000..aca48d7 --- /dev/null +++ b/app/src/main/java/com/rehome/zhdcoa/weiget/DatePickDialogNew.java @@ -0,0 +1,167 @@ +package com.rehome.zhdcoa.weiget; + + +import android.app.Dialog; +import android.content.Context; +import android.view.Display; +import android.view.Gravity; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.DatePicker; +import android.widget.TextView; +import android.widget.TimePicker; + +import androidx.annotation.NonNull; + +import com.rehome.zhdcoa.R; +import java.text.SimpleDateFormat; +import java.util.Calendar; + +/** + * 时间日期选择器 + * Created by Rehome-rjb1 on 2017/4/10. + */ + +public class DatePickDialogNew extends Dialog implements DatePicker.OnDateChangedListener, + TimePicker.OnTimeChangedListener { + + private final TextView tv_dialog_title; + private TextView tv_dialog_msg; + private final TextView tv_dialog_commit; + private final TextView tv_dialog_cancel; + private final View lay_dialog_title; + private final View lay_dialog_cancel; + private View lay_dialog_commit; + private final CommitClickListener commitClickListener; + private final DatePicker datePicker; + private String outPutDateTime; + private Calendar calendarBack = Calendar.getInstance(); + + //private final Calendar nowCalendar = Calendar.getInstance();//现在时间 + //private Calendar tempCalendar = Calendar.getInstance();//历史时间 + + + //private final SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm"); + //private final SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + private final SimpleDateFormat simpleDateFormat3 = new SimpleDateFormat("yyyy-MM-dd"); + //private final SimpleDateFormat simpleDateFormat4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + + public DatePickDialogNew(Context context, Calendar calendar,CommitClickListener commitClickListener) { + super(context); + this.commitClickListener = commitClickListener; + requestWindowFeature(Window.FEATURE_NO_TITLE); + getWindow().setBackgroundDrawableResource(android.R.color.transparent); + setContentView(R.layout.layout_date_tj_dialog); + + + + Window window = getWindow(); + WindowManager.LayoutParams lp = window.getAttributes(); + lp.width = (getScreenWidth(context)) * 4 / 5; + window.setGravity(Gravity.CENTER); + + lay_dialog_title = findViewById(R.id.lay_dialog_title); + tv_dialog_title = findViewById(R.id.dialog_title); + + lay_dialog_cancel = findViewById(R.id.lay_dialog_cancel); +// lay_dialog_commit = findViewById(R.id.lay_dialog_commit); + + tv_dialog_cancel = findViewById(R.id.dialog_cancel); + tv_dialog_commit = findViewById(R.id.dialog_commit); + + datePicker = findViewById(R.id.datePicker); + + //this.calendar=calendar; + initDateTime(datePicker, calendar); + + tv_dialog_cancel.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + dismiss(); + } + }); + tv_dialog_commit.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + commitClickListener.confirm(outPutDateTime,calendarBack); + dismiss(); + } + }); + } + + + public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { + onDateChanged(null, 0, 0, 0); + } + + /** + * 时间改变时候回调 + * + * @param view + * @param year 年 + * @param monthOfYear 月 + * @param dayOfMonth 日 + */ + public void onDateChanged(DatePicker view, int year, int monthOfYear, + int dayOfMonth) { +// tempCalendar.set(datePicker.getYear(), datePicker.getMonth(), +// datePicker.getDayOfMonth(), 0, +// 0,0); + + /** + * 如果当前时间大于选择的时间,就重置时间 + */ + //calendar = tempCalendar; + Calendar calendar = Calendar.getInstance(); + calendar.set(datePicker.getYear(), datePicker.getMonth(), + datePicker.getDayOfMonth(), 0, + 0,0); + + calendarBack = calendar; + outPutDateTime = simpleDateFormat3.format(calendar.getTime()); + tv_dialog_title.setText(outPutDateTime); + } + + + /** + * 初始化时间 + * + * @param datePicker 日期选择控件 + * @param calendar 日历类 + */ + private void initDateTime(DatePicker datePicker, Calendar calendar) { + //calendar.add(Calendar.DATE, 1); + datePicker.init(calendar.get(Calendar.YEAR), + calendar.get(Calendar.MONTH), + calendar.get(Calendar.DAY_OF_MONTH), this); + //设置不显示年 + ((ViewGroup) ((ViewGroup) datePicker.getChildAt(0)).getChildAt(0)).getChildAt(0).setVisibility(View.VISIBLE); + + calendar.set(datePicker.getYear(), datePicker.getMonth(), + datePicker.getDayOfMonth(), 0, + 0,0); + + tv_dialog_title.setText(simpleDateFormat3.format(calendar.getTime())); + //tempCalendar = calendar; + outPutDateTime = simpleDateFormat3.format(calendar.getTime()); + } + + public interface CommitClickListener { + /** + * @param outPutDate 精确到天 + */ + void confirm(@NonNull String outPutDate,@NonNull Calendar calendarBack); + } + + //获取屏幕宽度 + public static int getScreenWidth(Context context) { + WindowManager manager = (WindowManager) context + .getSystemService(Context.WINDOW_SERVICE); + Display display = manager.getDefaultDisplay(); + return display.getWidth(); + } + +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_work_ticker_select_list.xml b/app/src/main/res/layout/activity_work_ticker_select_list.xml new file mode 100644 index 0000000..f6929f8 --- /dev/null +++ b/app/src/main/res/layout/activity_work_ticker_select_list.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/adapter_work_ticket_select_list.xml b/app/src/main/res/layout/adapter_work_ticket_select_list.xml new file mode 100644 index 0000000..5df57cf --- /dev/null +++ b/app/src/main/res/layout/adapter_work_ticket_select_list.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/header_work_ticket_select_list.xml b/app/src/main/res/layout/header_work_ticket_select_list.xml new file mode 100644 index 0000000..8d2f057 --- /dev/null +++ b/app/src/main/res/layout/header_work_ticket_select_list.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +