diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 08b28b9..08c267c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1136,11 +1136,15 @@
+ android:windowSoftInputMode="adjustResize|stateHidden" />
+ android:windowSoftInputMode="adjustResize|stateHidden" />
+
{
+ private final Context context;
+ private final List data;
+ private CallBack mCallBack;
+
+ public interface CallBack {
+ void Click(@NonNull View view,int position);
+ }
+
+ private OnWorkTicketModifyClickListener onWorkTicketModifyClickListener;
+ private OnWorkTicketDeleteClickListener onWorkTicketDeleteClickListener;
+
+ public WorkTickerCustomListAdapter(Context context, List datas, CallBack mCallBack,OnWorkTicketModifyClickListener onWorkTicketModifyClickListener,OnWorkTicketDeleteClickListener onWorkTicketDeleteClickListener) {
+ super(context);
+ this.context=context;
+ this.data=datas;
+ this.mCallBack = mCallBack;
+ this.onWorkTicketModifyClickListener=onWorkTicketModifyClickListener;
+ this.onWorkTicketDeleteClickListener=onWorkTicketDeleteClickListener;
+ }
+
+ @Override
+ protected void handleData(int position, @NonNull AdapterWorkTicketCustomListBinding binding) {
+ WorkRiskLevelListBean.RowsBean item = data.get(position);
+
+ binding.tvPaiHao.setText(item.getCode());
+ binding.tvContent.setText(item.getContent());
+ binding.tvLevel.setText(item.getLevel());
+ if(!TextUtils.isEmpty(item.getMajor())){
+ binding.tvZy.setText(item.getMajor());
+ }
+ binding.cb.setChecked(item.isChecked());
+ binding.cb.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ mCallBack.Click(view,position);
+ }
+ });
+ binding.tvModify.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ onWorkTicketModifyClickListener.onItemClick(position);
+ }
+ });
+ binding.tvDelete.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ onWorkTicketDeleteClickListener.onItemClick(position);
+ }
+ });
+ int color = ContextCompat.getColor(context, R.color.colorPrimary);
+ int colorRed = ContextCompat.getColor(context, R.color.red);
+ if(TextUtils.isEmpty(item.getJobNo())){
+ binding.cb.setEnabled(true);
+ binding.tvModify.setEnabled(true);
+ binding.tvDelete.setEnabled(true);
+ binding.llModify.setBackgroundColor(color);
+ binding.llDelete.setBackgroundColor(colorRed);
+ }else{
+ if(item.getJobNo().equals(App.getInstance().getUserInfo().getManid())){
+ binding.cb.setEnabled(true);
+ binding.tvModify.setEnabled(true);
+ binding.tvDelete.setEnabled(true);
+ binding.llModify.setBackgroundColor(color);
+ binding.llDelete.setBackgroundColor(colorRed);
+ }else{
+ //不是本人选中的,不允许修改
+ binding.cb.setEnabled(false);
+ binding.tvPaiHao.setTextColor(Color.GRAY);
+ binding.tvContent.setTextColor(Color.GRAY);
+ binding.tvLevel.setTextColor(Color.GRAY);
+ binding.tvModify.setEnabled(false);
+ binding.tvDelete.setEnabled(false);
+ binding.llModify.setBackgroundColor(Color.GRAY);
+ binding.llDelete.setBackgroundColor(Color.GRAY);
+ }
+ }
+ }
+
+ @Override
+ protected AdapterWorkTicketCustomListBinding getBinding(@NonNull LayoutInflater inflater, ViewGroup parent) {
+ return AdapterWorkTicketCustomListBinding.inflate(inflater, parent, false);
+ }
+
+ @Override
+ public int getCount() {
+ return data.size();
+ }
+
+ @Override
+ public Object getItem(int position) {
+ return data.get(position);
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return Long.valueOf(position);
+ }
+
+ public interface OnWorkTicketModifyClickListener {
+ void onItemClick(int position);
+ }
+ public interface OnWorkTicketDeleteClickListener {
+ void onItemClick(int position);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/rehome/zhdcoa/bean/AbbjBean.java b/app/src/main/java/com/rehome/zhdcoa/bean/AbbjBean.java
index 9d93cdd..eeb9d20 100644
--- a/app/src/main/java/com/rehome/zhdcoa/bean/AbbjBean.java
+++ b/app/src/main/java/com/rehome/zhdcoa/bean/AbbjBean.java
@@ -6,7 +6,7 @@ import java.util.List;
* Created by ruihong on 2019/2/25.
*/
-public class AbbjBean {
+public class AbbjBean {
/**
diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/AbActivity.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/AbActivity.java
index 768248b..2acd764 100644
--- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/AbActivity.java
+++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/AbActivity.java
@@ -64,7 +64,8 @@ public class AbActivity extends BaseActivity {
public void getdata() {
- final Request requestxs = NoHttp.createStringRequest("http://219.131.195.3:8082/" + Contans.AB, RequestMethod.POST);
+ String url = Contans.BASE_URL + Contans.AB;
+ final Request requestxs = NoHttp.createStringRequest(url, RequestMethod.POST);
requestxs.setDefineRequestBodyForJson(createJson("", ""));
@@ -73,6 +74,11 @@ public class AbActivity extends BaseActivity {
@Override
public void onSucceed(int what, com.yolanda.nohttp.rest.Response response) {
+ showLog( "--------getdata--------");
+ showLog(url);
+ String result = response.get();
+ showLog( result);
+
AbbjBean list = GsonUtils.GsonToBean(response.get(), AbbjBean.class);
if (list != null) {
diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/WorkRiskListActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/WorkRiskListActivity.kt
index 557bcc9..99ef895 100644
--- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/WorkRiskListActivity.kt
+++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/WorkRiskListActivity.kt
@@ -45,6 +45,9 @@ class WorkRiskListActivity : BaseActivityOaToolbarViewBinding = mutableListOf()
private var jobNoListAssistant: MutableList = mutableListOf()
+ private var selectListCustom: MutableList = mutableListOf()
+ private var jobNoListCustom: MutableList = mutableListOf()
+
private var dataA: MutableList = mutableListOf()
private var dataB: MutableList = mutableListOf()
private var dataC1: MutableList = mutableListOf()
@@ -140,10 +143,12 @@ class WorkRiskListActivity : BaseActivityOaToolbarViewBinding() {
+
+ //private lateinit var headView: View
+ //private lateinit var cb: CheckBox
+
+ private var datas: MutableList = mutableListOf()
+ private lateinit var mAdapter: WorkTickerCustomListAdapter
+
+ //工作票主键数组,来源查询每日作业风险清单
+ private var ticketIdList : MutableList = mutableListOf()
+ //要取消的工作票主键
+ private var deleteIdList : MutableList = mutableListOf()
+
+ private var selectList: MutableList = mutableListOf()
+ private var jobNoList: MutableList = mutableListOf()
+
+
+ private lateinit var calendar: Calendar
+
+ //格式化日期的对象(转化成习惯的时间格式)
+ private val sdFormat = SimpleDateFormat("yyyy-MM-dd")
+
+ override fun getViewBinding() = ActivityWorkTickerCustomListBinding.inflate(layoutInflater)
+
+ override fun getToolbar() = binding.toolbarView.toolbar
+
+ override fun initView() {
+
+ initToolbar("手动添加工作票", "新增") {
+ //提交
+ }
+
+ resetToday()
+
+ val selectListStr = intent.getStringExtra("selectList")!!
+ showLog(selectListStr)
+ val gson = Gson()
+ val selectListTemp:MutableList = gson.fromJson>(selectListStr,object:TypeToken>() {}.type)
+ showLog(GsonUtils.GsonString(selectListTemp))
+ if(selectListTemp.isNotEmpty()){
+ selectList.addAll(selectListTemp)
+ }
+
+ val jobNoListStr = intent.getStringExtra("jobNoList")!!
+ showLog(jobNoListStr)
+ val jobNoListTemp:MutableList = gson.fromJson>(jobNoListStr,object:TypeToken>() {}.type)
+ showLog(GsonUtils.GsonString(jobNoListTemp))
+ if(jobNoListTemp.isNotEmpty()){
+ jobNoList.addAll(jobNoListTemp)
+ }
+
+
+ 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()
+ }
+ deleteIdList.clear()
+ } else {
+ for (i in datas.indices) {
+ datas[i].isChecked = false
+ mAdapter.notifyDataSetChanged()
+ }
+ if(selectList.size>0){
+ deleteIdList.addAll(selectList)
+ }
+ }
+ }
+
+ mAdapter = WorkTickerCustomListAdapter(this,datas,{ view, position ->
+ val checkBox = view as CheckBox
+ datas[position].isChecked = checkBox.isChecked
+ var count = 0
+ for (a in datas.indices) {
+ if (datas[a].isChecked) {
+ count++
+ }
+ }
+ if(!checkBox.isChecked){
+ if(selectList.size>0){
+ for (i in selectList.indices) {
+ if(selectList[i] == datas[position].id){
+ if(!deleteIdList.contains(selectList[i])){
+ deleteIdList.add(selectList[i])
+ }
+ }
+ }
+ }
+ }
+ binding.itemHead.cb.isChecked = count == datas.size
+ mAdapter.notifyDataSetChanged()
+ },{ position ->
+ val item:WorkRiskLevelListBean.RowsBean = datas[position]
+ showToast("修改")
+ },{ position ->
+ val item:WorkRiskLevelListBean.RowsBean = datas[position]
+ showToast("删除")
+ val dialog = CommitDialog(context, object : CommitDialogListener {
+ override fun confirm() {
+ //authenticationLoginAISubmit()
+ }
+
+ override fun cancel() {
+ }
+ })
+ dialog.setTvMsg("您确定要删除手动添加的工作票吗?")
+ dialog.show()
+ })
+
+ binding.lv.adapter = mAdapter
+
+ binding.tvSubmit.setOnClickListener {
+ var canSubmit = false
+ ticketIdList.clear()
+ for (i in datas.indices) {
+ if (datas[i].isChecked) {
+ canSubmit = true
+ ticketIdList.add(datas[i].id)
+ }
+ }
+ if (canSubmit||deleteIdList.size>0) {
+ val dialog = CommitDialog(context, object : CommitDialogListener {
+ override fun confirm() {
+ showLog(GsonUtils.GsonString(ticketIdList))
+ showLog(ticketIdList.size.toString())
+ //authenticationLoginAISubmit()
+ }
+
+ override fun cancel() {
+ }
+ })
+ dialog.setTvMsg("您确定要设置工作票作业?")
+ dialog.show()
+ }else{
+ showToast("致少选择一个工作票才能提交")
+ }
+ }
+ }
+
+ 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.isNotEmpty()) {
+ binding.tvNodata.visibility = View.GONE
+ datas.clear()
+
+ if(selectList.isNotEmpty()){
+ for (i in workRiskLevelLists.indices) {
+ for (j in selectList.indices) {
+ if (workRiskLevelLists[i].id==selectList[j]) {
+ workRiskLevelLists[i].isChecked = true
+ workRiskLevelLists[i].jobNo = jobNoList[j]
+ }
+ }
+ }
+ }
+
+ 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
+ }
+
+ private fun authenticationLoginAISubmit() {
+ 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 {
+ submitWorkTicketData()
+ }
+ }
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ }
+
+ private fun getSubmitJsonData(): String {
+ val param = HashMap()
+ param["assignmentDate"] = binding.tvSt.text.toString().trim()
+ param["ticketIdList"] = ticketIdList
+ param["deleteIdList"]= deleteIdList
+ param["jobNo"]= App.getInstance().userInfo.manid
+ param["type"]= "custom"
+
+ val json = GsonUtils.GsonString(param)
+ showLog(json)
+ return json
+ }
+
+ private fun submitWorkTicketData() {
+ val request = NoHttp.createStringRequest(
+ Contans.BASE_URL_AI_3D_SERVER + Contans.DAYLY_RISK_LIST_SUBMIT_WORK_TICKET_LIST,
+ RequestMethod.POST
+ )
+
+ val json: String = getSubmitJsonData()
+ request.setDefineRequestBodyForJson(json)
+
+ 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,
+ AIBaseBean::class.java
+ )
+ if (bean != null && bean.isSuccess) {
+ //提交成功
+ val confirmDialog = ConfirmDialog(
+ context, "设置工作票作业日期成功"
+ ) { finish() }
+ confirmDialog.setTvTitle("提示")
+ confirmDialog.setCancelable(true)
+ confirmDialog.show()
+ }else{
+ showToast("设置工作票作业日期失败")
+ }
+ }
+
+ override fun onFailed(what: Int, response: Response?) {
+
+ }
+ })
+ }
+
+}
+
+//class WorkTickerCustomListActivity : AppCompatActivity() {
+// override fun onCreate(savedInstanceState: Bundle?) {
+// super.onCreate(savedInstanceState)
+// enableEdgeToEdge()
+// setContentView(R.layout.activity_work_ticker_custom_list)
+// ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
+// val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
+// v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
+// insets
+// }
+// }
+//}
\ No newline at end of file
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
index b45d5a3..3631f77 100644
--- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/WorkTickerSelectListActivity.kt
+++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/WorkTickerSelectListActivity.kt
@@ -1,10 +1,8 @@
package com.rehome.zhdcoa.ui.activity
-import android.content.DialogInterface
-import android.graphics.Color
+
import android.view.View
import android.widget.CheckBox
-
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.rehome.zhdcoa.App
@@ -34,7 +32,7 @@ import javax.net.ssl.HostnameVerifier
/**
* Create By HuangWenFei
* 创建日期:2025-02-6 15:31
- * 描述:已审批的工作票
+ * 描述:已审批的工作票 WorkTickerCustomListActivity
*/
class WorkTickerSelectListActivity : BaseActivityOaToolbarViewBinding() {
@@ -159,7 +157,8 @@ class WorkTickerSelectListActivity : BaseActivityOaToolbarViewBinding
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/adapter_work_ticket_custom_list.xml b/app/src/main/res/layout/adapter_work_ticket_custom_list.xml
new file mode 100644
index 0000000..976dd5b
--- /dev/null
+++ b/app/src/main/res/layout/adapter_work_ticket_custom_list.xml
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/header_work_ticket_custom_list.xml b/app/src/main/res/layout/header_work_ticket_custom_list.xml
new file mode 100644
index 0000000..c117ff8
--- /dev/null
+++ b/app/src/main/res/layout/header_work_ticket_custom_list.xml
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+