diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0d4826e..08b28b9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1132,11 +1132,15 @@ + android:theme="@android:style/Theme.Dialog" /> + : AutoLayoutActivity() { + + val REQUEST_CODE_ADD = 1 + val REQUEST_CODE_AUDIT = 2 + + var userInfo: UserInfoBean.UserInfo? = null + + protected lateinit var binding: T + protected lateinit var mToolbar: OAToolbarTwo + protected lateinit var context: Context + private var nfcAdapter: NfcAdapter? = null + private var readResult = "" + private var pendingIntent: PendingIntent? = null + private lateinit var mFilters: Array + private lateinit var mTechLists: Array> + private var isFirst = true + private var ndef: IntentFilter? = null + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding = getViewBinding() + mToolbar = getToolbar() + setContentView(binding.root) + context = this + ControllerActivity.getAppManager().addActivity(this) + userInfo = App.getInstance().userInfo + initView() + initData() + } + //初始化ViewBinding + protected abstract fun getViewBinding(): T + //初始化OAToolbar + protected abstract fun getToolbar(): OAToolbarTwo + //初始化View + protected abstract fun initView() + //初始化数据 + protected abstract fun initData() + + + fun startActivity(cls: Class?) { + val intent = Intent(this, cls) + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP) + startActivity(intent) + } + + override fun onPause() { + super.onPause() + if (nfcAdapter != null) { + nfcAdapter!!.disableForegroundDispatch(this) + } + } + + /* + * 重写onResume回调函数的意义在于处理多次读取NFC标签时的情况 + */ + override fun onResume() { + super.onResume() + + // 前台分发系统,这里的作用在于第二次检测NFC标签时该应用有最高的捕获优先权. + if (nfcAdapter != null && pendingIntent != null) { + nfcAdapter!!.enableForegroundDispatch( + this, pendingIntent, mFilters, + mTechLists + ) + } + } + + override fun onDestroy() { + super.onDestroy() + ControllerActivity.getAppManager().finishActivity(this) + } + + /** + * 显示toast + * + * @param text + */ + fun showToast(text: String) { + Toast.makeText(this, text, Toast.LENGTH_SHORT).show() + } + + fun showToast(id: Int) { + Toast.makeText(this, id, Toast.LENGTH_SHORT).show() + } + + /** + * 检测工作,判断设备的NFC支持情况 + * + * @return + */ + private fun ifNFCUse(): Boolean { + if (nfcAdapter == null) { + Toast.makeText(this, "设备不支持NFC!", Toast.LENGTH_SHORT).show() + return false + } + if (!nfcAdapter!!.isEnabled) { + Toast.makeText(this, "请在系统设置中先启用NFC功能!", Toast.LENGTH_SHORT).show() + return false + } + return true + } + + /** + * 初始化过程 + */ + fun initNFC() { + + //NFC适配器,所有的关于NFC的操作从该适配器进行 + nfcAdapter = NfcAdapter.getDefaultAdapter(this) + if (!ifNFCUse()) { + return + } + //将被调用的Intent,用于重复被Intent触发后将要执行的跳转 + pendingIntent = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + PendingIntent.getActivity( + this, + 0, + Intent(this, javaClass).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), + PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT + ) + } else { + PendingIntent.getActivity( + this, + 0, + Intent(this, javaClass).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), + PendingIntent.FLAG_UPDATE_CURRENT + ) + } + + + //设定要过滤的标签动作,这里只接收ACTION_NDEF_DISCOVERED类型 + ndef = IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED) + ndef!!.addCategory("*/*") + mFilters = arrayOf(ndef!!) // 过滤器 + mTechLists = arrayOf( + arrayOf(NfcA::class.java.name), arrayOf( + NfcF::class.java.name + ), arrayOf(NfcB::class.java.name), arrayOf( + NfcV::class.java.name + ), arrayOf(MifareClassic::class.java.name), arrayOf( + MifareUltralight::class.java.name + ), arrayOf(IsoDep::class.java.name) + ) // 允许扫描的标签类型 + if (isFirst) { + if (NfcAdapter.ACTION_NDEF_DISCOVERED == intent + .action + ) { + ndef = IntentFilter() + if (readFromTag(intent)) { + Toast.makeText(this, readResult, Toast.LENGTH_SHORT).show() + } else { + Toast.makeText(this, "标签数据为空", Toast.LENGTH_SHORT).show() + } + } + isFirst = false + } + } + +// private fun byteArrayToHexString(src: ByteArray?): String { +// //converts byte arrays to string +// if (src == null || src.isEmpty()) { +// return "" +// } +// var i: Int +// var j: Int=0 +// var k: Int +// val hex = arrayOf("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F") +// var out = "" +// while (j < src.size) { +// k = src[j].toInt() and 0xff +// i = k shr 4 and 0x0f +// out += hex[i] +// i = k and 0x0f +// out += hex[i] +// ++j +// } +// return out +// } + + /** + * 2进制to 16进制 + * @param src + * @return + */ + private fun bytesToHex(src: ByteArray?): String { + val sb = StringBuffer() + if (src == null || src.isEmpty()) { + return "" + } + var sTemp: String + for (i in src.indices) { + sTemp = Integer.toHexString(0xFF and src[i].toInt()) + if (sTemp.length < 2) { + sb.append(0) + } + sb.append(sTemp.uppercase(Locale.getDefault())) + } + return sb.toString() + } + + /* + * 有必要要了解onNewIntent回调函数的调用时机,请自行上网查询 + */ + override fun onNewIntent(intent: Intent) { + super.onNewIntent(intent) + if (NfcAdapter.ACTION_NDEF_DISCOVERED == intent.action || NfcAdapter.ACTION_TECH_DISCOVERED == intent.action) { + val id = bytesToHex(intent.getByteArrayExtra(NfcAdapter.EXTRA_ID)) + handleNfc(id) + } + } + + /** + * 读取NFC标签数据的操作 + */ + private fun readFromTag(intent: Intent): Boolean { + if (NfcAdapter.ACTION_NDEF_DISCOVERED == intent.action) { + val rawArray = intent + .getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES) + if (rawArray != null) { + val mNdefMsg = rawArray[0] as NdefMessage + val mNdefRecord = mNdefMsg.records[0] + if (mNdefRecord != null) { + readResult = String(mNdefRecord.payload, StandardCharsets.UTF_8) + return true + } + } + return false + } + return false + } + + //处理NFC + open fun handleNfc(result: String) { + //showToast(result); + } + + open fun initToolbar(title: String) { + mToolbar.setTvTitleText(title) + } + + open fun setToolbarTitle(title: String) { + mToolbar.setTvTitleText(title) + } + + open fun setTvRightTitle(text: String) { + mToolbar.setTvRightText(text) + } + + open fun setLeftOnClickListener(listener: View.OnClickListener?) { + mToolbar.setIvLeftOnClickListener(listener) + mToolbar.setIvLeftIcon(R.drawable.ac_back_icon) + } + + open fun getText(editText: EditText): String { + return editText.text.toString() + } + + open fun setToolbarColor() { + mToolbar.setBackgroundColor(resources.getColor(R.color.lucency)) + mToolbar.setTvTitleColor(resources.getColor(R.color.login_title_color)) + } + + protected open fun setStatusBar() { + StatusBarUtil.setColor(this, resources.getColor(R.color.colorPrimary)) + } + + fun initToolbar( + title: String, + rightText: String, + listenerRightClick: View.OnClickListener + ) { + mToolbar.setTvTitleText(title) + mToolbar.setTvRightText(rightText) + mToolbar.setIvLeftIcon(R.drawable.ac_back_icon) + mToolbar.setIvLeftOnClickListener { + finish() + } + mToolbar.setTvRightOnClickListener(listenerRightClick) + } + + fun initToolbar( + title: String, + rightText: String, + listenerLeftClick: View.OnClickListener, + listenerRightClick: View.OnClickListener + ) { + mToolbar.setTvTitleText(title) + mToolbar.setTvRightText(rightText) + mToolbar.setIvLeftIcon(R.drawable.ac_back_icon) + mToolbar.setIvLeftOnClickListener(listenerLeftClick) + mToolbar.setTvRightOnClickListener(listenerRightClick) + } + + fun initToolbar( + title: String, + rightText: String, + listenerLeftClick: View.OnClickListener, + listenerRightClick: View.OnClickListener, + listenerRightBottomClick: View.OnClickListener + ) { + mToolbar.setTvTitleText(title) + mToolbar.setTvRightText(rightText) + mToolbar.setIvLeftIcon(R.drawable.ac_back_icon) + mToolbar.setIvLeftOnClickListener(listenerLeftClick) + mToolbar.setTvRightOnClickListener(listenerRightClick) + mToolbar.setTvRightBottomOnClickListener(listenerRightBottomClick) + } + + fun initToolbar( + title: String, + rightTextId: Int, + listenerLeftClick: View.OnClickListener, + listenerRightClick: View.OnClickListener + ) { + mToolbar.setTvTitleText(title) + mToolbar.setTvRightText(rightTextId) + mToolbar.setIvLeftIcon(R.drawable.ac_back_icon) + mToolbar.setIvLeftOnClickListener(listenerLeftClick) + mToolbar.setTvRightOnClickListener(listenerRightClick) + } + open fun showLog(logText: String?) { + if (isApkInDebug(context)) { + if (TextUtils.isEmpty(logText)) { + Log.i("app", "logText is null") + } else { + Log.i("app", logText!!) + } + } + } + + /** + * 判断当前应用是否是debug状态 + */ + fun isApkInDebug(context: Context): Boolean { + try { + val info = context.applicationInfo + return (info.flags and ApplicationInfo.FLAG_DEBUGGABLE) != 0 + } catch (e: Exception) { + return false + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/rehome/zhdcoa/bean/WorkRiskLevelListBean.java b/app/src/main/java/com/rehome/zhdcoa/bean/WorkRiskLevelListBean.java index 5eb21c0..c957ef8 100644 --- a/app/src/main/java/com/rehome/zhdcoa/bean/WorkRiskLevelListBean.java +++ b/app/src/main/java/com/rehome/zhdcoa/bean/WorkRiskLevelListBean.java @@ -26,7 +26,7 @@ public class WorkRiskLevelListBean extends AIBaseBean{ //工作内容 private String content; //记录号 - private int number; + private String number; //工作票ID private Integer id; //工作票状态 @@ -35,7 +35,12 @@ public class WorkRiskLevelListBean extends AIBaseBean{ private String major; //设置工作票人工号 private String jobNo; + //作业风险信息类型 ticket:工作票 assisting:辅助工作 custom:自定义 + private String type; + //风险源危害对象数组 private List hazardList; + //工单编号 + private String orderNo; private boolean checked;//0:未选中,1:已选中 public String getCode() { @@ -54,11 +59,11 @@ public class WorkRiskLevelListBean extends AIBaseBean{ this.content = content; } - public int getNumber() { + public String getNumber() { return number; } - public void setNumber(int number) { + public void setNumber(String number) { this.number = number; } @@ -117,5 +122,21 @@ public class WorkRiskLevelListBean extends AIBaseBean{ public void setJobNo(String jobNo) { this.jobNo = jobNo; } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getOrderNo() { + return orderNo; + } + + public void setOrderNo(String orderNo) { + this.orderNo = orderNo; + } } } diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/CustomDialogChangeLevelActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/CustomDialogChangeLevelActivity.kt index 0014aab..a257465 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/CustomDialogChangeLevelActivity.kt +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/CustomDialogChangeLevelActivity.kt @@ -35,6 +35,7 @@ class CustomDialogChangeLevelActivity : Activity() { private var id: Int?=null private var level: String?=null + private var type: String?=null override fun onCreate(savedInstanceState: Bundle?) { @@ -50,6 +51,7 @@ class CustomDialogChangeLevelActivity : Activity() { id = intent.getIntExtra("id", 0) level = intent.getStringExtra("level") + type = intent.getStringExtra("type") if(level!=null){ if("A" == level){ binding.rb1.isChecked = true @@ -260,6 +262,7 @@ class CustomDialogChangeLevelActivity : Activity() { } param["jobNo"]= App.getInstance().userInfo.manid + param["type"]=type?:"ticket" if(binding.rb1.isChecked){ param["level"] = "A" diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/LoginActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/LoginActivity.kt index 4b79e9d..ce5ddb7 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/LoginActivity.kt +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/LoginActivity.kt @@ -174,6 +174,79 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() { if (isApkInDebug(context)) { // 管理员 + binding.etUsername.setText("ZHPS_Admin") + binding.etPassword.setText("Rehome.zhps@996") + + + //公司内网215管理员 +// binding.etUsername.setText("ZHPS_Admin") +// binding.etPassword.setText("Rehome.zhps@2020") + + + +// binding.etUsername.setText("310353") +// binding.etPassword.setText("Zhps1382.") + + +// binding.etUsername.setText("310691") +// binding.etPassword.setText("Abcd*1234") + +// binding.etUsername.setText("990001") +// binding.etPassword.setText("Bwfb@123") + +// binding.etUsername.setText("310295") +// binding.etPassword.setText("Whk363521!") + +// binding.etUsername.setText("310675") +// binding.etPassword.setText("Mj12345_") + + //吴云强 +// binding.etUsername.setText("310430") +// binding.etPassword.setText("Laq**201610") + + //马 +// binding.etUsername.setText("310482") +// binding.etPassword.setText("Maying2008!") + // 生产岗位 卢高波 可以进入巡视抄表 +// binding.etUsername.setText("310492") +// binding.etPassword.setText("Dudu520520@") + //李昕逸 可以进入巡视抄表 +// binding.etUsername.setText("310677") +// binding.etPassword.setText("LXY1997.qaz") + + //陈坚标 +// binding.etUsername.setText("310063") +// binding.etPassword.setText("ZHPs@040909") + + ////郑佩障 +// binding.etUsername.setText("310569") +// binding.etPassword.setText("sUnnY@0926") + + + + //谭添欢 +// binding.etUsername.setText("310273") +// binding.etPassword.setText("#Tth8680004") + //吴云强 +// binding.etUsername.setText("310430") +// binding.etPassword.setText("Laq@201610") + //欧建荣 +// binding.etUsername.setText("310285") +// binding.etPassword.setText("@Ojr310285") + + +// binding.etUsername.setText("310561") +// binding.etPassword.setText("Yangjing!0561") + +// binding.etUsername.setText("310534") +// binding.etPassword.setText("abCd*1234") + +// binding.etUsername.setText("310291") +// binding.etPassword.setText("sfd02910291Z+") +// binding.etUsername.setText("310465") +// binding.etPassword.setText("Liu524042*") +// binding.etUsername.setText("310291") +// binding.etPassword.setText("sfd02910291Z+") } 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 ee44829..557bcc9 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 @@ -9,6 +9,7 @@ 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 @@ -41,6 +42,9 @@ class WorkRiskListActivity : BaseActivityOaToolbarViewBinding = mutableListOf() private var jobNoList: MutableList = mutableListOf() + private var selectListAssistant: MutableList = mutableListOf() + private var jobNoListAssistant: MutableList = mutableListOf() + private var dataA: MutableList = mutableListOf() private var dataB: MutableList = mutableListOf() private var dataC1: MutableList = mutableListOf() @@ -57,19 +61,9 @@ class WorkRiskListActivity : BaseActivityOaToolbarViewBinding() { + + //private lateinit var headView: View + //private lateinit var cb: CheckBox + + private var datas: MutableList = mutableListOf() + private lateinit var mAdapter: WorkTickerSelectListAdapter + + //工作票主键数组,来源查询每日作业风险清单 + 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() = ActivityWorkTickerAssistantSelectListBinding.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 = WorkTickerSelectListAdapter(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() + } + 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)) + 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 url = Contans.BASE_URL_AI_3D_SERVER + Contans.DAYLY_RISK_LIST_NEW_ASSISTANT + val request = NoHttp.createStringRequest(url,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(url) + 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"]= "assisting" + + 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?) { + + } + }) + } + +} \ 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 b2f78dc..b45d5a3 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 @@ -155,7 +155,7 @@ class WorkTickerSelectListActivity : BaseActivityOaToolbarViewBinding0) { val dialog = CommitDialog(context, object : CommitDialogListener { override fun confirm() { showLog(GsonUtils.GsonString(ticketIdList)) @@ -304,6 +304,7 @@ class WorkTickerSelectListActivity : BaseActivityOaToolbarViewBinding + + + + + + + + + + + + + + + + android:background="#aaaaaa" /> + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_base_two.xml b/app/src/main/res/layout/layout_base_two.xml new file mode 100644 index 0000000..8e1122d --- /dev/null +++ b/app/src/main/res/layout/layout_base_two.xml @@ -0,0 +1,14 @@ + + + + + + diff --git a/app/src/main/res/layout/toolbartwo.xml b/app/src/main/res/layout/toolbartwo.xml new file mode 100644 index 0000000..6919e11 --- /dev/null +++ b/app/src/main/res/layout/toolbartwo.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + \ No newline at end of file