From dc1edb8495992cae8a791bbfa22bd2b573d4e434 Mon Sep 17 00:00:00 2001 From: "admin-pc\\admin" Date: Wed, 25 Sep 2024 17:35:28 +0800 Subject: [PATCH] =?UTF-8?q?2.3.2=20=E7=89=88=E6=9C=AC=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 11 +- app/src/main/AndroidManifest.xml | 12 +- .../adapter/WorkRiskListReportAdapter.java | 64 +++++ .../WorkRiskListReportAttachmentAdapter.java | 228 ++++++++++++++++++ .../zhdcoa/bean/WorkRiskListReportBean.java | 181 ++++++++++++++ .../zhdcoa/ui/activity/LoginActivity.kt | 12 +- .../ui/activity/PhotoRiskViewActivity.java | 149 ++++++++++++ .../ui/activity/TrainInfoMoreActivity.kt | 4 + .../WorkRiskListHuiBaoDetailActivity.kt | 109 +++++++++ .../ui/activity/WorkRiskListReportActivity.kt | 175 +++++++++----- .../zhdcoa/utils/RiskDatePickDialog.java | 168 +++++++++++++ .../res/layout/activity_photo_risk_view.xml | 17 ++ ...activity_work_risk_list_hui_bao_detail.xml | 224 +++++++++++++++++ .../layout/activity_work_risk_list_report.xml | 47 +++- .../layout/adapter_work_risk_list_report.xml | 142 +++++++++++ .../main/res/layout/gv_filter_image_risk.xml | 13 + .../main/res/layout/layout_date_tj_dialog.xml | 46 ++++ 17 files changed, 1513 insertions(+), 89 deletions(-) create mode 100644 app/src/main/java/com/rehome/zhdcoa/adapter/WorkRiskListReportAdapter.java create mode 100644 app/src/main/java/com/rehome/zhdcoa/adapter/WorkRiskListReportAttachmentAdapter.java create mode 100644 app/src/main/java/com/rehome/zhdcoa/bean/WorkRiskListReportBean.java create mode 100644 app/src/main/java/com/rehome/zhdcoa/ui/activity/PhotoRiskViewActivity.java create mode 100644 app/src/main/java/com/rehome/zhdcoa/ui/activity/WorkRiskListHuiBaoDetailActivity.kt create mode 100644 app/src/main/java/com/rehome/zhdcoa/utils/RiskDatePickDialog.java create mode 100644 app/src/main/res/layout/activity_photo_risk_view.xml create mode 100644 app/src/main/res/layout/activity_work_risk_list_hui_bao_detail.xml create mode 100644 app/src/main/res/layout/adapter_work_risk_list_report.xml create mode 100644 app/src/main/res/layout/gv_filter_image_risk.xml create mode 100644 app/src/main/res/layout/layout_date_tj_dialog.xml diff --git a/app/build.gradle b/app/build.gradle index 97db299..7b0afa7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ android { applicationId "com.rehome.zhdcoa" minSdk 24 targetSdk 34 - versionCode 15 - versionName "2.3.1" + versionCode 16 + versionName "2.3.2" multiDexEnabled true testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" //每个应用拥有不同的authorities,防止相同的在同一个手机上无法同时安装 @@ -106,6 +106,10 @@ dependencies { implementation project(':calendarview') //圆角日历CalenderView implementation project(':zxingLite') + //视频压缩 + implementation project(':videocompressor') + //实时录音wav转mp3 + implementation project(':recorderlib') @@ -180,7 +184,4 @@ dependencies { //implementation 'com.google.android.play:app-update:2.0.1' //emoji表情符号 implementation 'androidx.emoji:emoji-bundled:1.0.0' - implementation project(':videocompressor') - //实时录音wav转mp3 - implementation project(':recorderlib') } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1485dc9..5992d89 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -82,7 +82,6 @@ tools:replace="android:allowBackup" tools:targetApi="s"> - @@ -612,6 +611,9 @@ + @@ -1130,11 +1132,15 @@ + android:windowSoftInputMode="adjustResize|stateHidden" /> + android:windowSoftInputMode="adjustResize|stateHidden" /> + { + + private final Context context; + private List datas; + + public WorkRiskListReportAdapter(Context context, List datas) { + super(context); + this.context = context; + this.datas = datas; + } + + @Override + protected void handleData(int position, @NonNull AdapterWorkRiskListReportBinding binding) { + WorkRiskListReportBean.WorkRiskListReportDataListBean item = datas.get(position); + if (item != null) { + binding.tvHbr.setText(item.getReporterName()); + binding.tvHbbm.setText(item.getReporterDepartment()); + binding.tvHbsj.setText(item.getReportTime()); + binding.tvLevel.setText(item.getLevel()); + binding.tvHbnr.setText(item.getContent()); + } + + } + + @Override + protected AdapterWorkRiskListReportBinding getBinding(@NonNull LayoutInflater inflater, ViewGroup parent) { + return AdapterWorkRiskListReportBinding.inflate(inflater, parent, false); + } + + @Override + public int getCount() { + return datas.size(); + } + + @Override + public Object getItem(int position) { + return datas.get(position); + } + + @Override + public long getItemId(int position) { + return Long.valueOf(position); + } + +} diff --git a/app/src/main/java/com/rehome/zhdcoa/adapter/WorkRiskListReportAttachmentAdapter.java b/app/src/main/java/com/rehome/zhdcoa/adapter/WorkRiskListReportAttachmentAdapter.java new file mode 100644 index 0000000..259b3cc --- /dev/null +++ b/app/src/main/java/com/rehome/zhdcoa/adapter/WorkRiskListReportAttachmentAdapter.java @@ -0,0 +1,228 @@ +package com.rehome.zhdcoa.adapter; + + +/** + * Create By HuangWenFei + * 创建日期:2024-09-25 11:54 + * 描述: + */ + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; +import android.net.Uri; +import android.text.TextUtils; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.recyclerview.widget.RecyclerView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.engine.DiskCacheStrategy; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.config.SelectMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.utils.DateUtils; +import com.rehome.zhdcoa.Contans; +import com.rehome.zhdcoa.R; +import com.rehome.zhdcoa.adapter.luck.OnItemLongClickListener; +import com.rehome.zhdcoa.bean.WorkRiskListReportBean; +import com.rehome.zhdcoa.utils.NohttpUtils; +import com.yolanda.nohttp.NoHttp; +import com.yolanda.nohttp.rest.CacheMode; +import com.yolanda.nohttp.rest.OnResponseListener; +import com.yolanda.nohttp.rest.Request; +import com.yolanda.nohttp.rest.RequestQueue; +import com.yolanda.nohttp.rest.Response; +//import com.luck.pictureselector.R; +//import com.luck.pictureselector.listener.OnItemLongClickListener; + +import java.util.ArrayList; +import java.util.List; + +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.SSLSession; +import javax.net.ssl.SSLSocketFactory; + + +/** + * @author:luck + * @date:2016-7-27 23:02 + * @describe:GridImageAdapter + */ +public class WorkRiskListReportAttachmentAdapter extends RecyclerView.Adapter { + private Context context; + public static final String TAG = "PictureSelector"; + //public static final int TYPE_CAMERA = 1; + public static final int TYPE_PICTURE = 2; + private final LayoutInflater mInflater; + private final ArrayList list = new ArrayList<>(); + private RequestQueue queue; + + + public WorkRiskListReportAttachmentAdapter(Context context, List attachmentList) { + this.mInflater = LayoutInflater.from(context); + this.context=context; + this.list.addAll(attachmentList); + queue = NoHttp.newRequestQueue(1); + } + + public ArrayList getData() { + return list; + } + + public void remove(int position) { + if (position < list.size()) { + list.remove(position); + } + } + + public static class ViewHolder extends RecyclerView.ViewHolder { + + ImageView mImg; + + public ViewHolder(View view) { + super(view); + mImg = view.findViewById(R.id.fiv); + } + } + + @Override + public int getItemCount() { + return list.size(); + } + + @Override + public int getItemViewType(int position) { +// if (isShowAddItem(position)) { +// return TYPE_CAMERA; +// } else { +// return TYPE_PICTURE; +// } + return TYPE_PICTURE; + } + + /** + * 创建ViewHolder + */ + @Override + public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { + View view = mInflater.inflate(R.layout.gv_filter_image_risk, viewGroup, false); + return new ViewHolder(view); + } + + + /** + * 设置值 + */ + @Override + public void onBindViewHolder(final ViewHolder viewHolder, final int position) { + + WorkRiskListReportBean.AttachmentListBean item = list.get(position); + String path = item.getUrl(); + String fullPath = Contans.BASE_URL_AI_3D_SERVER + "sc_v1" + path; + + Request request = NoHttp.createImageRequest(fullPath); + //request.setCacheMode(CacheMode.ONLY_REQUEST_NETWORK); + request.setCacheMode(CacheMode.NONE_CACHE_REQUEST_NETWORK); + + if(Contans.BASE_URL_AI_3D_SERVER.equals(Contans.BASE_URL_AI_3D_SERVER_EXTRANET)){ + SSLSocketFactory socketFactory = NohttpUtils.getSSLSocketFactory(context); + if (socketFactory != null) { + request.setSSLSocketFactory(socketFactory); + request.setHostnameVerifier(new HostnameVerifier() { + @Override + public boolean verify(String s, SSLSession sslSession) { + return true; + } + }); + } + } + + if (!TextUtils.isEmpty(path)) { + Log.i("app", "path is:" + path); + Log.i("app", "fullPath is:" + fullPath); + queue.add(6, request, new OnResponseListener<>() { + @Override + public void onStart(int what) { + + } + + @Override + public void onSucceed(int what, Response response) { + Bitmap bitmap = response.get(); + Drawable drawable = new BitmapDrawable(context.getResources(), bitmap); + viewHolder.mImg.setImageDrawable(drawable); + } + + @Override + public void onFailed(int what, Response response) { + Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.head_photo); + Drawable drawable = new BitmapDrawable(context.getResources(), bitmap); + viewHolder.mImg.setImageDrawable(drawable); + } + + @Override + public void onFinish(int what) { + + } + }); + } else { + Log.i("app", "path is null"); + fullPath = ""; + } + + +// Glide.with(viewHolder.itemView.getContext()) +// .load(fullPath) +// .centerCrop() +// .placeholder(R.color.app_color_f6) +// .diskCacheStrategy(DiskCacheStrategy.ALL) +// .into(viewHolder.mImg); + + //itemView 的点击事件 + if (mItemClickListener != null) { + viewHolder.itemView.setOnClickListener(v -> { + int adapterPosition = viewHolder.getAbsoluteAdapterPosition(); + mItemClickListener.onItemClick(v, adapterPosition); + }); + } + + if (mItemLongClickListener != null) { + viewHolder.itemView.setOnLongClickListener(v -> { + int adapterPosition = viewHolder.getAbsoluteAdapterPosition(); + mItemLongClickListener.onItemLongClick(viewHolder, adapterPosition, v); + return true; + }); + } + } + + private OnItemClickListener mItemClickListener; + + public void setOnItemClickListener(OnItemClickListener l) { + this.mItemClickListener = l; + } + + public interface OnItemClickListener { + /** + * Item click event + * + * @param v + * @param position + */ + void onItemClick(View v, int position); + + } + + private OnItemLongClickListener mItemLongClickListener; + + public void setItemLongClickListener(OnItemLongClickListener l) { + this.mItemLongClickListener = l; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/rehome/zhdcoa/bean/WorkRiskListReportBean.java b/app/src/main/java/com/rehome/zhdcoa/bean/WorkRiskListReportBean.java new file mode 100644 index 0000000..802dc49 --- /dev/null +++ b/app/src/main/java/com/rehome/zhdcoa/bean/WorkRiskListReportBean.java @@ -0,0 +1,181 @@ +package com.rehome.zhdcoa.bean; + +import java.util.List; + +public class WorkRiskListReportBean extends AIRiskListBaseBean{ + + private RowsBean data; + + public RowsBean getData() { + return data; + } + + public void setData(RowsBean data) { + this.data = data; + } + + public static class RowsBean { + + //id + private int pageNo; + //id + private int pageSize; + //id + private int totalRow; + //id + private int totalPage; + + private List dataList; + + public int getPageNo() { + return pageNo; + } + + public void setPageNo(int pageNo) { + this.pageNo = pageNo; + } + + public int getPageSize() { + return pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getTotalRow() { + return totalRow; + } + + public void setTotalRow(int totalRow) { + this.totalRow = totalRow; + } + + public int getTotalPage() { + return totalPage; + } + + public void setTotalPage(int totalPage) { + this.totalPage = totalPage; + } + + public List getDataList() { + return dataList; + } + + public void setDataList(List dataList) { + this.dataList = dataList; + } + } + + public static class WorkRiskListReportDataListBean { + //id + private int id; + //工作票id + private int ticketId; + //报告人工号 + private String reporterNo; + private String reporterName; + private String reporterDepartment; + private String reportTime; + private String content; + private String level; + + private List attachmentList; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getTicketId() { + return ticketId; + } + + public void setTicketId(int ticketId) { + this.ticketId = ticketId; + } + + public String getReporterNo() { + return reporterNo; + } + + public void setReporterNo(String reporterNo) { + this.reporterNo = reporterNo; + } + + public String getReporterName() { + return reporterName; + } + + public void setReporterName(String reporterName) { + this.reporterName = reporterName; + } + + public String getReporterDepartment() { + return reporterDepartment; + } + + public void setReporterDepartment(String reporterDepartment) { + this.reporterDepartment = reporterDepartment; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getLevel() { + return level; + } + + public void setLevel(String level) { + this.level = level; + } + + public List getAttachmentList() { + return attachmentList; + } + + public void setAttachmentList(List attachmentList) { + this.attachmentList = attachmentList; + } + } + + public static class AttachmentListBean { + //id + private int id; + //图片地址 + private String url; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + } +} 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 54bf4e7..65a3840 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 @@ -170,14 +170,12 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() { if (isApkInDebug(context)) { // 管理员 - binding.etUsername.setText("ZHPS_Admin") - binding.etPassword.setText("Rehome.zhps@996") - - binding.etUsername.setText("310430") - binding.etPassword.setText("Laq**201610") - - +// binding.etUsername.setText("ZHPS_Admin") +// binding.etPassword.setText("Rehome.zhps@996") + //吴云强 +// binding.etUsername.setText("310430") +// binding.etPassword.setText("Laq**201610") //马 // binding.etUsername.setText("310482") diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/PhotoRiskViewActivity.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/PhotoRiskViewActivity.java new file mode 100644 index 0000000..8c9f75d --- /dev/null +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/PhotoRiskViewActivity.java @@ -0,0 +1,149 @@ +package com.rehome.zhdcoa.ui.activity; + + +import android.content.Context; +import android.content.pm.ApplicationInfo; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import android.text.TextUtils; +import android.util.Log; +import android.view.WindowManager; +import android.widget.ImageView; +import android.widget.Toast; +import com.rehome.zhdcoa.Contans; +import com.rehome.zhdcoa.R; +import com.rehome.zhdcoa.utils.NohttpUtils; +import com.yolanda.nohttp.NoHttp; +import com.yolanda.nohttp.rest.CacheMode; +import com.yolanda.nohttp.rest.OnResponseListener; +import com.yolanda.nohttp.rest.Request; +import com.yolanda.nohttp.rest.RequestQueue; +import com.yolanda.nohttp.rest.Response; +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.SSLSession; +import javax.net.ssl.SSLSocketFactory; + + +public class PhotoRiskViewActivity extends AppCompatActivity { + + private ImageView iv; + private RequestQueue queue; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + queue = NoHttp.newRequestQueue(1); + //设置全屏 + getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); + setContentView(R.layout.activity_photo_risk_view); + initView(); + + } + + private void initView() { + setTitle(getIntent().getExtras().getString("fileName")); + iv = findViewById(R.id.iv); + String path = getIntent().getExtras().getString("path"); + String imageUrl = getIntent().getExtras().getString("url"); + showLog(path); + showLog(imageUrl); + + + Request request = NoHttp.createImageRequest(imageUrl); + //request.setCacheMode(CacheMode.ONLY_REQUEST_NETWORK); + request.setCacheMode(CacheMode.NONE_CACHE_REQUEST_NETWORK); + + if(Contans.BASE_URL_AI_3D_SERVER.equals(Contans.BASE_URL_AI_3D_SERVER_EXTRANET)){ + SSLSocketFactory socketFactory = NohttpUtils.getSSLSocketFactory(this); + if (socketFactory != null) { + request.setSSLSocketFactory(socketFactory); + request.setHostnameVerifier(new HostnameVerifier() { + @Override + public boolean verify(String s, SSLSession sslSession) { + return true; + } + }); + } + } + + + queue.add(3, request, new OnResponseListener<>() { + @Override + public void onStart(int what) { + + } + + @Override + public void onSucceed(int what, Response response) { + Bitmap bitmap = response.get(); + Drawable drawable = new BitmapDrawable(getResources(), bitmap); + iv.setImageDrawable(drawable); + } + + @Override + public void onFailed(int what, Response response) { + Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.head_photo); + Drawable drawable = new BitmapDrawable(getResources(), bitmap); + iv.setImageDrawable(drawable); + } + + @Override + public void onFinish(int what) { + + } + }); + + + +// if (!TextUtils.isEmpty(url)) { +// Glide.with(PhotoRiskViewActivity.this) +// .load(url) +// .dontAnimate() +// .skipMemoryCache(true) +// .diskCacheStrategy(DiskCacheStrategy.NONE) +// .placeholder(R.drawable.head_photo) +// .into(iv); +// } else { +// if (!TextUtils.isEmpty(path)) { +// Bitmap bitmap = BitmapFactory.decodeFile(path); +// iv.setImageBitmap(bitmap); +// } +// } + } + + public Drawable bitmapToDrawable(Bitmap bitmap) { + return new BitmapDrawable(getResources(), bitmap); + } + + public void showLog(String logText) { + if (isApkInDebug(this)) { + if(TextUtils.isEmpty(logText)){ + Log.i("app", "logText is null"); + }else{ + Log.i("app", logText); + } + } + } + + /** + * 判断当前应用是否是debug状态 + */ + + public static boolean isApkInDebug(Context context) { + try { + ApplicationInfo info = context.getApplicationInfo(); + return (info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0; + } catch (Exception e) { + return false; + } + } + + public void showToast(String msg) { + Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/TrainInfoMoreActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/TrainInfoMoreActivity.kt index 40031d0..87fad48 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/TrainInfoMoreActivity.kt +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/TrainInfoMoreActivity.kt @@ -21,6 +21,7 @@ import com.rehome.zhdcoa.databinding.ActivityTrainInfoMoreBinding import com.rehome.zhdcoa.ui.toastview.toastviewbymyself import com.rehome.zhdcoa.utils.DownloadUtil import com.rehome.zhdcoa.utils.FileUtils +import com.rehome.zhdcoa.utils.GsonUtils import com.rehome.zhdcoa.utils.HttpUtils import com.rehome.zhdcoa.utils.TimeUtils import com.rehome.zhdcoa.weiget.AuditDialog @@ -410,13 +411,16 @@ class TrainInfoMoreActivity : BaseActivityOaToolbarViewBinding() { + + private lateinit var item: WorkRiskListReportBean.WorkRiskListReportDataListBean + + private lateinit var mAdapter: WorkRiskListReportAttachmentAdapter + + private var datas: MutableList = mutableListOf() + + + + + + override fun getViewBinding() = ActivityWorkRiskListHuiBaoDetailBinding.inflate(layoutInflater) + + override fun getToolbar() = binding.toolbarView.toolbar + + override fun initView() { + initToolbar("每日工作报告详情") + setLeftOnClickListener { + finish() + } + + var itemStr = intent.getStringExtra("item")!! + item = GsonUtils.GsonToBean(itemStr,WorkRiskListReportBean.WorkRiskListReportDataListBean::class.java) + + } + + override fun initData() { + binding.tvHbr.text = item.reporterName + binding.tvHbbm.text = item.reporterDepartment + binding.tvHbsj.text = item.reportTime + binding.tvLevel.text = item.level + binding.etMs.setText(item.content) + + //WorkRiskListReportAttachmentAdapter + + clearImageDiskCache(this) + + val manager: FullyGridLayoutManager = FullyGridLayoutManager( + this, + 4, GridLayoutManager.VERTICAL, false + ) + binding.recycle.setLayoutManager(manager) + binding.recycle.addItemDecoration( + GridSpacingItemDecoration( + 4, + DensityUtil.dip2px(this, 8f), false + ) + ) + + if(item.attachmentList!=null&&item.attachmentList.size>0){ + binding.llPhoto.visibility= View.VISIBLE + datas.addAll(item.attachmentList) + }else{ + binding.llPhoto.visibility= View.GONE + } + + mAdapter = WorkRiskListReportAttachmentAdapter(this, datas) + binding.recycle.setAdapter(mAdapter) + + mAdapter.setOnItemClickListener { v, position -> + val item: AttachmentListBean = item.attachmentList[position] + val st = Intent(context, PhotoRiskViewActivity::class.java) + if (!TextUtils.isEmpty(item.url)) { + var fullPath = Contans.BASE_URL_AI_3D_SERVER + "sc_v1" + item.url + st.putExtra("url", fullPath) + } + st.putExtra("fileName", "图片预览") + st.putExtra("path", "/") + startActivity(st) + } + } + + /** + * 清除图片磁盘缓存 + */ + private fun clearImageDiskCache(context: Context?) { + try { + if (Looper.myLooper() == Looper.getMainLooper()) { + Thread { Glide.get(context!!).clearDiskCache() }.start() + } else { + Glide.get(context!!).clearDiskCache() + } + } catch (e: Exception) { + e.printStackTrace() + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/WorkRiskListReportActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/WorkRiskListReportActivity.kt index c34131c..b68e09d 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/WorkRiskListReportActivity.kt +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/WorkRiskListReportActivity.kt @@ -1,35 +1,37 @@ package com.rehome.zhdcoa.ui.activity -import android.os.Bundle +import android.content.Intent import android.view.View -import androidx.activity.enableEdgeToEdge -import androidx.appcompat.app.AppCompatActivity -import androidx.core.view.ViewCompat -import androidx.core.view.WindowInsetsCompat +import android.widget.AdapterView import com.rehome.zhdcoa.Contans -import com.rehome.zhdcoa.R -import com.rehome.zhdcoa.adapter.WorkRiskLevelListAdapter +import com.rehome.zhdcoa.adapter.WorkRiskListReportAdapter import com.rehome.zhdcoa.base.BaseActivityOaToolbarViewBinding -import com.rehome.zhdcoa.bean.WorkRiskLevelListBean +import com.rehome.zhdcoa.bean.WorkRiskListReportBean import com.rehome.zhdcoa.databinding.ActivityWorkRiskListReportBinding 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.OAToolbar +import com.rehome.zhdcoa.utils.RiskDatePickDialog 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 class WorkRiskListReportActivity : BaseActivityOaToolbarViewBinding() { - private lateinit var headView: View + private var stime: String = "" + private var etime: String = "" - private var datas: MutableList = mutableListOf() - private lateinit var mAdapter: WorkRiskLevelListAdapter + private var datas: MutableList = mutableListOf() + private lateinit var mAdapter: WorkRiskListReportAdapter + //WorkRiskListReportAdapter + //adapter_work_risk_list_report + //WorkRiskListReportBean override fun getViewBinding() = ActivityWorkRiskListReportBinding.inflate(layoutInflater) @@ -43,10 +45,79 @@ class WorkRiskListReportActivity : BaseActivityOaToolbarViewBinding?, _: View?, position: Int, _: Long -> + val item:WorkRiskListReportBean.WorkRiskListReportDataListBean = datas[position] + //进入每日工作报告详情 + val intent = Intent(context, WorkRiskListHuiBaoDetailActivity::class.java) + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP) + intent.putExtra("item", GsonUtils.GsonString(item)) + startActivity(intent) + } + + + //格式化日期的对象(转化成习惯的时间格式) + val sdFormat = SimpleDateFormat("yyyy-MM-dd") + var calendar = Calendar.getInstance() + + val dayOfWeek: Int = calendar.get(Calendar.DAY_OF_WEEK) // 获取当前是周几(1代表周日,2代表周一,依次类推) + + if (dayOfWeek == Calendar.SUNDAY) { + calendar.add(Calendar.DAY_OF_MONTH, -6) // 如果是周日,向前推6天 + } else { + calendar.add( + Calendar.DAY_OF_MONTH, + -dayOfWeek + 2 + ) // 向前推dayOfWeek-2天(dayOfWeek减2代表前一周的周一) + } + + val nowStr = sdFormat.format(calendar.time) + showLog("周一:") + showLog(nowStr) + + var calendarSunday = Calendar.getInstance() + calendarSunday[Calendar.DAY_OF_WEEK] = Calendar.SUNDAY + calendarSunday.add(Calendar.DATE, 7) + val sundayStr = sdFormat.format(calendarSunday.time) + showLog("本周日:") + showLog(sundayStr) + + binding.tvSt.text = nowStr + binding.tvEt.text = sundayStr + + binding.tvSt.setOnClickListener(View.OnClickListener { view: View? -> + + val dialog = RiskDatePickDialog( + context, calendar + ) { outPutDate: String?,calendarBack: Calendar? -> + stime = binding.tvSt.getText().toString().trim { it <= ' ' } + binding.tvSt.text = outPutDate + calendar = calendarBack; + authenticationLoginAI() + } + dialog.show() + }) + binding.tvEt.setOnClickListener(View.OnClickListener { view: View? -> + + val dialog = RiskDatePickDialog( + context, calendarSunday + ) { outPutDate: String?,calendarBack: Calendar? -> + etime = binding.tvEt.getText().toString().trim { it <= ' ' } + binding.tvEt.text = outPutDate + calendarSunday = calendarBack; + authenticationLoginAI() + } + dialog.show() + }) + + //WorkRiskListHuiBaoDetailActivity } override fun initData() { @@ -82,6 +153,12 @@ class WorkRiskListReportActivity : BaseActivityOaToolbarViewBinding 0) { -// binding.tvNodata.visibility = View.GONE -// headView.visibility = View.VISIBLE -// datas.clear() -// datas.addAll(workRiskLevelLists) -// mAdapter.notifyDataSetChanged() -// -// dataA.clear() -// dataB.clear() -// dataC1.clear() -// dataC2.clear() -// dataC3.clear() -// dataLowRisk.clear() -// -// -// for(item in datas){ -// showLog(GsonUtils.GsonString(item)) -// if(item.level!=null&&item.level=="A"){ -// dataA.add(item) -// } -// if(item.level!=null&&item.level=="B"){ -// dataB.add(item) -// } -// if(item.level!=null&&item.level=="C1"){ -// dataC1.add(item) -// } -// if(item.level!=null&&item.level=="C2"){ -// dataC2.add(item) -// } -// if(item.level!=null&&item.level=="C3"){ -// dataC3.add(item) -// } -// if(item.level!=null&&item.level=="低风险"){ -// dataLowRisk.add(item) -// } -// } -// binding.tvA.text = dataA.size.toString() -// binding.tvB.text = dataB.size.toString() -// binding.tvC1.text = dataC1.size.toString() -// binding.tvC2.text = dataC2.size.toString() -// binding.tvC3.text = dataC3.size.toString() -// binding.tvLowLisk.text = dataLowRisk.size.toString() -// -// } else { -// binding.tvNodata.visibility = View.VISIBLE -// } -// } + val bean = GsonUtils.GsonToBean( + result, + WorkRiskListReportBean::class.java + ) + if (bean != null && bean.data != null&&bean.data.totalRow>0) { + val dataList = bean.data.dataList + if (dataList != null && dataList.size > 0) { + binding.tvNodata.visibility = View.GONE + datas.clear() + datas.addAll(dataList) + mAdapter.notifyDataSetChanged() + } else { + binding.tvNodata.visibility = View.VISIBLE + } + }else{ + binding.tvNodata.visibility = View.VISIBLE + datas.clear() + mAdapter.notifyDataSetChanged() + } } override fun onFailed(what: Int, response: Response?) { diff --git a/app/src/main/java/com/rehome/zhdcoa/utils/RiskDatePickDialog.java b/app/src/main/java/com/rehome/zhdcoa/utils/RiskDatePickDialog.java new file mode 100644 index 0000000..0a15137 --- /dev/null +++ b/app/src/main/java/com/rehome/zhdcoa/utils/RiskDatePickDialog.java @@ -0,0 +1,168 @@ +package com.rehome.zhdcoa.utils; + + + + +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 com.rehome.zhdcoa.R; + +import java.text.SimpleDateFormat; +import java.util.Calendar; + +/** + * 时间日期选择器 + * Created by Rehome-rjb1 on 2017/4/10. + */ + +public class RiskDatePickDialog 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 RiskDatePickDialog(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(String outPutDate,Calendar calendarBack); + } + + //获取屏幕宽度 + public static int getScreenWidth(Context context) { + WindowManager manager = (WindowManager) context + .getSystemService(Context.WINDOW_SERVICE); + Display display = manager.getDefaultDisplay(); + return display.getWidth(); + } + +} diff --git a/app/src/main/res/layout/activity_photo_risk_view.xml b/app/src/main/res/layout/activity_photo_risk_view.xml new file mode 100644 index 0000000..fce149d --- /dev/null +++ b/app/src/main/res/layout/activity_photo_risk_view.xml @@ -0,0 +1,17 @@ + +> + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_work_risk_list_hui_bao_detail.xml b/app/src/main/res/layout/activity_work_risk_list_hui_bao_detail.xml new file mode 100644 index 0000000..1f74a9c --- /dev/null +++ b/app/src/main/res/layout/activity_work_risk_list_hui_bao_detail.xml @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_work_risk_list_report.xml b/app/src/main/res/layout/activity_work_risk_list_report.xml index eafc039..3aee3b1 100644 --- a/app/src/main/res/layout/activity_work_risk_list_report.xml +++ b/app/src/main/res/layout/activity_work_risk_list_report.xml @@ -10,19 +10,50 @@ android:id="@+id/toolbarView" layout="@layout/layout_base" /> - + android:layout_height="wrap_content" + android:background="#dddddd" + android:padding="10dp" + android:minHeight="30px"> + + + + + @@ -31,7 +62,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:divider="#00000000" - android:dividerHeight="0px"/> + android:dividerHeight="5dp"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/gv_filter_image_risk.xml b/app/src/main/res/layout/gv_filter_image_risk.xml new file mode 100644 index 0000000..fa0d1fe --- /dev/null +++ b/app/src/main/res/layout/gv_filter_image_risk.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_date_tj_dialog.xml b/app/src/main/res/layout/layout_date_tj_dialog.xml new file mode 100644 index 0000000..685550d --- /dev/null +++ b/app/src/main/res/layout/layout_date_tj_dialog.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file