提交 53769939 authored 作者: lgd's avatar lgd

1.日志图片上传

2.//TODO erp用户是否选择新部门为空,质检接口数据无对应问题,内部交易订单审核,审核规则,领用申请列表/退件列表/参数,坩埚下单,mes,刷新token,编辑任务担当无法修改
上级 fc72997b
......@@ -71,8 +71,8 @@ dependencies {
//沉浸式
implementation 'com.gyf.immersionbar:immersionbar:2.3.3'
// glide 依赖
implementation 'com.github.bumptech.glide:glide:4.9.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
implementation 'com.github.bumptech.glide:glide:4.11.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
//banner依赖
implementation 'com.youth.banner:banner:1.4.9'
//design库
......
......@@ -13,19 +13,12 @@
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_LOGS" />
<!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<application
android:name=".app.WorkApp"
......@@ -33,6 +26,7 @@
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:networkSecurityConfig="@xml/network_security_config"
android:theme="@style/Work.Base"
android:usesCleartextTraffic="true">
<activity
......
......@@ -19,7 +19,7 @@ public class ImageBean {
private String name;
private String path;
private String type;
private int size;
private long size;
private String url;
public String getId() {
......@@ -54,11 +54,11 @@ public class ImageBean {
this.type = type;
}
public int getSize() {
public long getSize() {
return size;
}
public void setSize(int size) {
public void setSize(long size) {
this.size = size;
}
......
......@@ -146,7 +146,7 @@ public interface MesApiService {
* @return
*/
@Multipart
@POST("/file/uploadFile")
@POST("/himes/api/file/uploadFile")
Observable<BaseMesBean> upload(@Part MultipartBody.Part file);
}
......@@ -19,18 +19,24 @@ import com.tbruyelle.rxpermissions2.RxPermissions;
import com.wd.workoffice.R;
import com.wd.workoffice.app.BaseMesBean;
import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.bean.mesBean.ImageBean;
import com.wd.workoffice.bean.mesBean.TicketBean;
import com.wd.workoffice.retrofit.ApiService;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.ui.activity.bat.store.StoreSaleConfirmActivity;
import com.wd.workoffice.util.Glide4Engine;
import com.wd.workoffice.util.GlideUtils;
import com.wd.workoffice.util.WorkUtils;
import com.zhihu.matisse.Matisse;
import com.zhihu.matisse.MimeType;
import com.zhihu.matisse.internal.entity.CaptureStrategy;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import androidx.annotation.Nullable;
......@@ -39,6 +45,7 @@ import butterknife.ButterKnife;
import butterknife.OnClick;
import flexible.xd.android_base.network.rtfhttp.RtfHelper;
import flexible.xd.android_base.network.rtfhttp.Transformer;
import flexible.xd.android_base.utils.FileUtils;
import io.reactivex.disposables.Disposable;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
......@@ -71,6 +78,7 @@ public class MesTicketAddLogActivity extends WorkToolBarActivity {
ImageView ivImg3;
private Map<String, Object> param;
private TicketBean.ListBean data;
private Map<Integer, Object> annexMap = new HashMap<>();
@Override
protected void initView() {
......@@ -79,6 +87,8 @@ public class MesTicketAddLogActivity extends WorkToolBarActivity {
tvCode.setText(data.getJobNo());
tvTime.setText(data.getCreateDateTime());
tvCreatePerson.setText(data.getCreateUserName());
// ivImg1.setImageResource(R.mipmap.ic_launcher);
// GlideUtils.getRequest().load(R.mipmap.ic_launcher).into(ivImg1);
}
@Override
......@@ -139,22 +149,33 @@ public class MesTicketAddLogActivity extends WorkToolBarActivity {
param.put("customerDemand", client);
param.put("jobContent", content);
param.put("problemDescription", desc);
// param.put("attachments", Arrays.asList("https://image.baidu.com/search/redirect?tn=redirect&word=j&juid=60A17C&sign=ckwboawzac&url=http%3A%2F%2Fwww.he-nan.com%2Fwtx%2Fswaxd%2Fnew-126233.html&bakfurl1=http%3A%2F%2Fwww.jnhsgc.com%2Fwtx%2Fswaxd%2Fshow%2F2188241.html&bakfurl2=http%3A%2F%2Fwww.10huan.com%2Fwtx%2Fswaxd%2Fnew-1240701.html&objurl=https%3A%2F%2Ftimgsa.baidu.com%2Ftimg%3Fimage%26quality%3D80%26size%3Db9999_10000%26sec%3D1587918679912%26di%3D8f01c77314881dad317d1cbda58cd0bf%26imgtype%3D0%26src%3Dhttp%253A%252F%252Fimg.yzt-tools.com%252F20190218%252Fca736a78109decf300cbaf239cc32545.jpg"));
param.put("attachments", getUploadImg());
submit();
break;
}
return super.onOptionsItemSelected(item);
}
private List<Object> getUploadImg() {
List<Object> imgList = new ArrayList<>();
for (Map.Entry<Integer, Object> integerStringEntry : annexMap.entrySet()) {
imgList.add(integerStringEntry.getValue());
}
return imgList;
}
@OnClick({R.id.iv_img1, R.id.iv_img2, R.id.iv_img3})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.iv_img1:
addImg(1);
break;
case R.id.iv_img2:
addImg(2);
break;
case R.id.iv_img3:
addImg(3);
break;
}
}
......@@ -169,7 +190,7 @@ public class MesTicketAddLogActivity extends WorkToolBarActivity {
if (granted) {
// All requested permissions are granted
Matisse.from(MesTicketAddLogActivity.this)
.choose(MimeType.ofImage())
.choose(MimeType.ofAll())
.countable(true)
.maxSelectable(1).capture(true).
captureStrategy(new CaptureStrategy(true, "com.wd.workoffice.fileprovider"))
......@@ -193,27 +214,30 @@ public class MesTicketAddLogActivity extends WorkToolBarActivity {
switch (requestCode) {
case 10001:
if (Matisse.obtainResult(data).size() != 0) {
upload(1, Matisse.obtainResult(data).get(0));
Uri uri = Matisse.obtainResult(data).get(0);
upload(1, uri);
}
break;
case 10002:
if (Matisse.obtainResult(data).size() != 0) {
upload(2, Matisse.obtainResult(data).get(0));
Uri uri = Matisse.obtainResult(data).get(0);
upload(2, uri);
}
break;
case 10003:
if (Matisse.obtainResult(data).size() != 0) {
upload(3, Matisse.obtainResult(data).get(0));
Uri uri = Matisse.obtainResult(data).get(0);
upload(3, uri);
}
break;
}
}
}
private void upload(int position, Uri data) {
private void upload(int position, Uri uri) {
showLoading();
File file = WorkUtils.uriToFile(data, this);
RequestBody requestFile = RequestBody.create(MediaType.parse("image/png"), file);
File file = WorkUtils.uriToFile(uri, this);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
RtfUtils.getMesRtf().
upload(MultipartBody.Part.createFormData("file", file.getName(), requestFile)).
compose(Transformer.schedule()).subscribe(new WorkObserver<BaseMesBean>() {
......@@ -231,11 +255,30 @@ public class MesTicketAddLogActivity extends WorkToolBarActivity {
@Override
public void onSuccess(BaseMesBean data) {
hideLoading();
if (data.isSuccess()) {
if (!data.isSuccess()) {
toast(data.getMessage());
return;
}
toast("上传成功");
ImageBean imageBean = new ImageBean();
imageBean.setPath(data.getData().toString());
imageBean.setName(file.getName());
imageBean.setSize(FileUtils.getFileLength(file));
imageBean.setType(data.getData().toString().split("\\.")[1]);
switch (position) {
case 1:
GlideUtils.getRequest().load(uri).into(ivImg1);
annexMap.put(1, imageBean);
break;
case 2:
GlideUtils.getRequest().load(uri).into(ivImg2);
annexMap.put(2, imageBean);
break;
case 3:
GlideUtils.getRequest().load(uri).into(ivImg3);
annexMap.put(3, imageBean);
break;
}
}
});
}
......
......@@ -11,12 +11,16 @@ import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.wd.workoffice.R;
import com.wd.workoffice.app.BaseMesBean;
import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.bean.event.AddTicketEvent;
import com.wd.workoffice.bean.mesBean.TicketBean;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.ui.adapter.MesTicketAdapter;
import com.wd.workoffice.util.WorkUtils;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
......@@ -161,4 +165,23 @@ public class MesTicketListTakeOnActivity extends WorkToolBarActivity {
break;
}
}
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
@Subscribe
public void refresh(AddTicketEvent event) {
page = 1;
param.put("pageNum", page);
getData();
}
}
package com.wd.workoffice.ui.adapter;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.wd.workoffice.R;
import com.wd.workoffice.bean.mesBean.ImageBean;
import java.util.List;
import androidx.annotation.Nullable;
/**
* Created by flexible on 2018/8/13.
*/
public class AnnexAdapter extends BaseQuickAdapter<ImageBean, BaseViewHolder> {
int type = 0;
public AnnexAdapter(int layoutResId, List data) {
super(layoutResId, data);
}
public AnnexAdapter(int layoutResId, @Nullable List<ImageBean> data, int type) {
super(layoutResId, data);
this.type = type;
}
@Override
protected void convert(BaseViewHolder helper, ImageBean item) {
helper.setText(R.id.tv_name, item.getName());
helper.addOnClickListener(R.id.tv_delete);
helper.setGone(R.id.tv_delete, type == 0);
}
}
package com.wd.workoffice.ui.adapter;
import android.widget.ImageView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.wd.workoffice.R;
import com.wd.workoffice.bean.mesBean.ImageBean;
import com.wd.workoffice.util.GlideUtils;
import java.util.List;
/**
* Created by flexible on 2018/8/13.
*/
public class ImgAddAdapter extends BaseQuickAdapter<ImageBean, BaseViewHolder> {
public ImgAddAdapter(int layoutResId, List data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, ImageBean item) {
ImageView ivImg = helper.getView(R.id.iv_img);
GlideUtils.getRequest().load(item.getUrl()).into(ivImg);
}
}
......@@ -213,14 +213,17 @@
android:src="@mipmap/arrow_right_gray" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_job"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</RelativeLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_job"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:paddingHorizontal="10mm" />
<View style="@style/dividerX" />
<TextView
......
......@@ -73,6 +73,7 @@
android:layout_marginTop="30mm"
android:background="@drawable/shape_ticket_go"
android:gravity="center"
android:textSize="12sp"
android:textColor="@color/white" />
<Button
......
......@@ -585,10 +585,16 @@
android:textSize="14sp" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_annx"
android:id="@+id/rv_annex"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/tv_upload"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+ 上传附件" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
......
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6mm"
android:orientation="vertical"
android:paddingHorizontal="10mm">
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="zzz" />
<TextView
android:id="@+id/tv_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="删除"
android:textColor="@color/red"
android:visibility="gone" />
</RelativeLayout>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论