|
|
@@ -4,6 +4,7 @@ import android.app.Activity;
|
|
|
import android.content.Context;
|
|
|
import android.content.DialogInterface;
|
|
|
import android.content.Intent;
|
|
|
+import android.net.Uri;
|
|
|
import android.os.Bundle;
|
|
|
import android.os.Handler;
|
|
|
import android.os.Message;
|
|
|
@@ -24,6 +25,7 @@ import android.widget.EditText;
|
|
|
import android.widget.LinearLayout;
|
|
|
import android.widget.RelativeLayout;
|
|
|
import android.widget.TextView;
|
|
|
+import android.widget.Toast;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
@@ -35,6 +37,7 @@ import com.common.data.ListUtils;
|
|
|
import com.common.data.RegexUtil;
|
|
|
import com.common.data.StringUtil;
|
|
|
import com.common.preferences.PreferenceUtils;
|
|
|
+import com.common.ui.CameraUtil;
|
|
|
import com.core.app.AppConfig;
|
|
|
import com.core.app.Constants;
|
|
|
import com.core.app.MyApplication;
|
|
|
@@ -42,13 +45,21 @@ import com.core.base.BaseActivity;
|
|
|
import com.core.model.SelectBean;
|
|
|
import com.core.net.http.ViewUtil;
|
|
|
import com.core.utils.CommonUtil;
|
|
|
+import com.core.utils.ToastUtil;
|
|
|
+import com.core.utils.pictureselector.ComPictureAdapter;
|
|
|
import com.core.utils.time.wheel.DateTimePicker;
|
|
|
+import com.core.widget.view.Activity.ImgFileListActivity;
|
|
|
import com.core.widget.view.Activity.SelectActivity;
|
|
|
import com.core.widget.view.ListViewInScroller;
|
|
|
+import com.core.widget.view.MyGridView;
|
|
|
import com.core.widget.view.model.SelectAimModel;
|
|
|
import com.core.widget.view.selectcalendar.SelectCalendarActivity;
|
|
|
import com.core.widget.view.selectcalendar.bean.Data;
|
|
|
import com.lidroid.xutils.ViewUtils;
|
|
|
+import com.me.network.app.http.HttpClient;
|
|
|
+import com.me.network.app.http.Method;
|
|
|
+import com.me.network.app.http.rx.ResultListener;
|
|
|
+import com.me.network.app.http.rx.ResultSubscriber;
|
|
|
import com.modular.apputils.utils.PopupWindowHelper;
|
|
|
import com.uas.appworks.OA.erp.activity.CommonDocDetailsActivity;
|
|
|
import com.uas.appworks.OA.erp.activity.form.DataFormFieldActivity;
|
|
|
@@ -56,6 +67,7 @@ import com.uas.appworks.OA.erp.activity.form.FormListSelectActivity;
|
|
|
import com.uas.appworks.OA.erp.model.form.GroupData;
|
|
|
import com.uas.appworks.R;
|
|
|
|
|
|
+import java.io.File;
|
|
|
import java.text.DecimalFormat;
|
|
|
import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
@@ -118,6 +130,7 @@ public class CommonDataFormActivity extends BaseActivity implements View.OnClick
|
|
|
private int va_id;
|
|
|
private String mServeId;
|
|
|
|
|
|
+ private String sessionId;
|
|
|
private Handler mHandler = new Handler() {
|
|
|
|
|
|
@Override
|
|
|
@@ -132,6 +145,7 @@ public class CommonDataFormActivity extends BaseActivity implements View.OnClick
|
|
|
if (StringUtil.isEmpty(result)) return;
|
|
|
LogUtil.prinlnLongMsg("result:", result);
|
|
|
JSONArray forms = JSON.parseObject(result).getJSONObject("data").getJSONArray("formdetail");
|
|
|
+ sessionId=JSON.parseObject(result).getString("sessionId");
|
|
|
grids = JSON.parseObject(result).getJSONObject("data").getJSONArray("gridetail");
|
|
|
//主表分组
|
|
|
HashSet<String> set = new HashSet<String>();
|
|
|
@@ -573,7 +587,8 @@ public class CommonDataFormActivity extends BaseActivity implements View.OnClick
|
|
|
}
|
|
|
};
|
|
|
private int currentGroupId;//当前点击的分组
|
|
|
-
|
|
|
+ private ArrayList mPhotoList = new ArrayList<String>();
|
|
|
+
|
|
|
private void updateItemAdd() {
|
|
|
if (ll_item_add != null) {
|
|
|
if (caller.equals("FeePlease!CCSQ") || caller.equals("Workovertime")) {
|
|
|
@@ -1086,13 +1101,17 @@ public class CommonDataFormActivity extends BaseActivity implements View.OnClick
|
|
|
break;
|
|
|
case TYPE_ITEM:
|
|
|
ViewModel model;
|
|
|
+ LinearLayout select_img_layout;
|
|
|
+ MyGridView grid_view;
|
|
|
if (true) {
|
|
|
- convertView = inflater.inflate(R.layout.listitem_businessless_edit, parent, false);
|
|
|
+ convertView = inflater.inflate(R.layout.listitem_form_edit, parent, false);
|
|
|
model = new ViewModel();
|
|
|
model.text = (TextView) convertView.findViewById(R.id.tv_less_key);
|
|
|
model.editText = (EditText) convertView.findViewById(R.id.tv_less_value);
|
|
|
model.ll_moment = (LinearLayout) convertView.findViewById(R.id.ll_moment);
|
|
|
model.editText.setBackgroundResource(R.color.transparent);
|
|
|
+ grid_view=(MyGridView)convertView.findViewById(R.id.grid_view);
|
|
|
+ select_img_layout= (LinearLayout) convertView.findViewById(R.id.select_img_layout);
|
|
|
convertView.setTag(model);
|
|
|
} else {
|
|
|
//缓存问题
|
|
|
@@ -1120,6 +1139,20 @@ public class CommonDataFormActivity extends BaseActivity implements View.OnClick
|
|
|
model.editText.setFocusable(false);
|
|
|
model.editText.setHint("请选择(必选)");
|
|
|
}
|
|
|
+ //附件上传
|
|
|
+ if (data.getType().equals("FF")){
|
|
|
+ model.editText.setKeyListener(null);
|
|
|
+ model.editText.setFocusable(false);
|
|
|
+ model.editText.setHint("请上传(必选)");
|
|
|
+
|
|
|
+
|
|
|
+ cAdapter = new ComPictureAdapter(mContext);
|
|
|
+ cAdapter.setmPhotoList(mPhotoList);
|
|
|
+ cAdapter.setMaxSiz(9);
|
|
|
+ grid_view.setAdapter(cAdapter);
|
|
|
+ select_img_layout.setVisibility(View.VISIBLE);
|
|
|
+ }
|
|
|
+
|
|
|
if (data.isEditing()) {
|
|
|
model.editText.setEnabled(true);
|
|
|
} else {
|
|
|
@@ -1255,7 +1288,12 @@ public class CommonDataFormActivity extends BaseActivity implements View.OnClick
|
|
|
}
|
|
|
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ //上传附件
|
|
|
+ if(data.getType().equals("FF")){
|
|
|
+ showSelectPictureDialog();
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|
|
|
});
|
|
|
@@ -1463,9 +1501,27 @@ public class CommonDataFormActivity extends BaseActivity implements View.OnClick
|
|
|
case 0x21://多选
|
|
|
if (data == null) return;
|
|
|
ArrayList<SelectBean> muliData = data.getParcelableArrayListExtra("data");
|
|
|
- LogUtil.d("HttpLogs", "muliData:" + JSON.toJSONString(muliData));
|
|
|
int id = data.getIntExtra("id", 0);
|
|
|
+ LogUtil.d("HttpLogs", "muliData:" + JSON.toJSONString(muliData));
|
|
|
+ LogUtil.d("HttpLogs","多选项:"+mAdapter.getmListData().get(0).getDatas().get(id - 1).getFd_logictype());
|
|
|
+ String fd_logictype=mAdapter.getmListData().get(0).getDatas().get(id - 1).getFd_logictype();
|
|
|
if (requestCode == id && resultCode == 0x21) {//多选框
|
|
|
+ StringBuilder values = new StringBuilder("");
|
|
|
+ String logicArray[]=fd_logictype.split(";");
|
|
|
+ for (int i = 0; i <logicArray.length ; i++) {
|
|
|
+ String logicName= logicArray[i];
|
|
|
+ String isSelected="0";
|
|
|
+ for (int j = 0; j <muliData.size(); j++) {
|
|
|
+ String selectName= muliData.get(j).getName();
|
|
|
+ if (selectName.equals(logicName)){
|
|
|
+ isSelected="1";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ values.append(isSelected+";");
|
|
|
+ }
|
|
|
+
|
|
|
+ LogUtil.d("HttpLogs","values:"+values.toString());
|
|
|
+
|
|
|
StringBuilder str = new StringBuilder("");
|
|
|
if (!ListUtils.isEmpty(muliData)) {
|
|
|
for (int i = 0; i < muliData.size(); i++) {
|
|
|
@@ -1478,8 +1534,9 @@ public class CommonDataFormActivity extends BaseActivity implements View.OnClick
|
|
|
|
|
|
}
|
|
|
}
|
|
|
- LogUtil.d(str.toString());
|
|
|
+ LogUtil.d("HttpLogs","vaules:CN:"+str.toString());
|
|
|
mAdapter.getmListData().get(0).getDatas().get(id - 1).setValue(str.toString());
|
|
|
+ mAdapter.getmListData().get(0).getDatas().get(id - 1).setDisplayValue(values.toString());
|
|
|
//Toast.makeText(ct, "下拉项:" + datas.get(id - 1).getName() + "返回值:" + str.toString(), Toast.LENGTH_LONG).show();
|
|
|
// mAdapter.get
|
|
|
mAdapter.notifyDataSetChanged();
|
|
|
@@ -1498,6 +1555,38 @@ public class CommonDataFormActivity extends BaseActivity implements View.OnClick
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
+ if (requestCode == 0x01 && resultCode == 0x02 && data != null) {
|
|
|
+ mPhotoList.addAll(data.getStringArrayListExtra("files"));
|
|
|
+ Log.i("files0x01", data.getStringArrayListExtra("files").toString());
|
|
|
+ Log.i("mPhotoList", mPhotoList.toString());
|
|
|
+ doImageFiltering(mPhotoList);
|
|
|
+ uploadFile();
|
|
|
+// mAdapter.notifyDataSetInvalidated();
|
|
|
+ }
|
|
|
+
|
|
|
+ if (requestCode == REQUEST_CODE_CAPTURE_PHOTO) {// 拍照返回
|
|
|
+ if (resultCode == Activity.RESULT_OK) {
|
|
|
+ if (mNewPhotoUri != null) {
|
|
|
+ mPhotoList.add(mNewPhotoUri.getPath());
|
|
|
+ cAdapter.notifyDataSetInvalidated();
|
|
|
+ uploadFile();
|
|
|
+ } else {
|
|
|
+ ToastUtil.showToast(this, R.string.c_take_picture_failed);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (requestCode == REQUEST_CODE_PICK_PHOTO) {// 选择一张图片,然后立即调用裁减
|
|
|
+ if (resultCode == Activity.RESULT_OK) {
|
|
|
+ if (data != null && data.getData() != null) {
|
|
|
+ LogUtil.d("uri:", JSON.toJSONString(data.getData()));
|
|
|
+ String path = CameraUtil.getImagePathFromUri(this, data.getData());
|
|
|
+ mPhotoList.add(path);
|
|
|
+ uploadFile();
|
|
|
+ cAdapter.notifyDataSetInvalidated();
|
|
|
+ } else {
|
|
|
+ ToastUtil.showToast(this, R.string.c_photo_album_failed);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private void parseResultByField(Intent data) {
|
|
|
@@ -2484,4 +2573,91 @@ public class CommonDataFormActivity extends BaseActivity implements View.OnClick
|
|
|
// selectApprovers(text);
|
|
|
// }
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ private void showSelectPictureDialog() {
|
|
|
+ String[] items = new String[]{getString(R.string.c_take_picture), getString(R.string.c_photo_album)};
|
|
|
+ android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(this).setSingleChoiceItems(items, 0,
|
|
|
+ new DialogInterface.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(DialogInterface dialog, int which) {
|
|
|
+ if (which == 0) {
|
|
|
+ try {
|
|
|
+ takePhoto();
|
|
|
+ } catch (Exception e) {
|
|
|
+ String message = e.getMessage();
|
|
|
+ if (!StringUtil.isEmpty(message) && message.contains("Permission")) {
|
|
|
+ ToastUtil.showToast(ct, R.string.not_system_permission);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+// selectPhoto();
|
|
|
+ Intent intent = new Intent();
|
|
|
+ intent.putExtra("MAX_SIZE", 9);
|
|
|
+ intent.putExtra("CURRENT_SIZE", mPhotoList == null ? 0 : mPhotoList.size());
|
|
|
+ intent.setClass(ct, ImgFileListActivity.class);
|
|
|
+ startActivityForResult(intent, 0x01);
|
|
|
+ }
|
|
|
+ dialog.dismiss();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ builder.show();
|
|
|
+ }
|
|
|
+
|
|
|
+ private static final int REQUEST_CODE_CAPTURE_PHOTO = 1;// 拍照
|
|
|
+ private static final int REQUEST_CODE_PICK_PHOTO = 2;// 图库
|
|
|
+ private static Uri mNewPhotoUri;// 拍照和图库 获得图片的URI
|
|
|
+ ComPictureAdapter cAdapter;
|
|
|
+ private void takePhoto() throws Exception {
|
|
|
+ mNewPhotoUri = CameraUtil.getOutputMediaFileUri(mContext, MyApplication.getInstance().mLoginUser.getUserId(), CameraUtil.MEDIA_TYPE_IMAGE);
|
|
|
+ LogUtil.d("uri:" + mNewPhotoUri);
|
|
|
+ if (mNewPhotoUri != null) {
|
|
|
+ CameraUtil.captureImage(CommonDataFormActivity.this,
|
|
|
+ mNewPhotoUri,
|
|
|
+ REQUEST_CODE_CAPTURE_PHOTO);
|
|
|
+ } else {
|
|
|
+ ToastUtil.showToast(this, "uri is null");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void doImageFiltering(ArrayList<String> mPhotoList) {
|
|
|
+ for (int i = 0; i < mPhotoList.size(); i++) {
|
|
|
+ File file = new File(mPhotoList.get(i).toString());
|
|
|
+ if (!file.isFile()) {
|
|
|
+// mPhotoList.remove(i);
|
|
|
+ Toast.makeText(ct, "第" + (i + 1) + "张图片格式不对,可能会上传失败,建议更换", Toast.LENGTH_LONG).show();
|
|
|
+ }
|
|
|
+ if (i == mPhotoList.size() - 1) {
|
|
|
+ mAdapter.notifyDataSetInvalidated();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //上传文件
|
|
|
+ public void uploadFile(){
|
|
|
+ HttpClient httpClient=new HttpClient.Builder(CommonUtil.getAppBaseUrl(mContext)).build();
|
|
|
+ LogUtil.d("HttpLogs","path:"+mPhotoList.get(0).toString()+" sessionId:"+sessionId);
|
|
|
+ httpClient.Api().uploads(new HttpClient.Builder()
|
|
|
+ .url("api/serve/uploadAttach.action")
|
|
|
+ .add("master",CommonUtil.getSharedPreferences(mContext,"erp_master"))
|
|
|
+ .add("file", new File(mPhotoList.get(0).toString())) .add("access_token","12321")
|
|
|
+ .add("sessionId", sessionId)
|
|
|
+ .add("client_type","cc")
|
|
|
+ .header("Cookie", "JSESSIONID=" + sessionId)
|
|
|
+ .header("sessionId", sessionId)
|
|
|
+ .method(Method.POST)
|
|
|
+ .build(),new ResultSubscriber<Object>(new ResultListener<Object>() {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onResponse(Object o) {
|
|
|
+ LogUtil.d("HttpLogs","o:"+o.toString());
|
|
|
+ }
|
|
|
+ }));
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|