|
|
@@ -17,12 +17,14 @@ import android.view.View;
|
|
|
import android.widget.LinearLayout;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.common.LogUtil;
|
|
|
import com.common.data.CalendarUtil;
|
|
|
import com.common.data.JSONUtil;
|
|
|
import com.common.data.ListUtils;
|
|
|
import com.common.data.StringUtil;
|
|
|
+import com.common.data.TextUtil;
|
|
|
import com.common.file.FileUtils;
|
|
|
import com.common.ui.CameraUtil;
|
|
|
import com.core.app.Constants;
|
|
|
@@ -46,6 +48,7 @@ import java.io.Serializable;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
|
|
|
/**
|
|
|
@@ -58,6 +61,7 @@ public class BillInputActivity extends OABaseActivity implements IBill, BillAdap
|
|
|
public final int REQUESTCODE_C_NET = 0x14;
|
|
|
public final int REQUESTCODE_ENCLOSURE_LOW = 0x15;
|
|
|
public final int REQUEST_CODE_CAPTURE_PHOTO = 0x16;
|
|
|
+ public final int REQUEST_CODE_SELECT_MORE = 0x17;
|
|
|
|
|
|
public RecyclerView mRecyclerView;
|
|
|
public BillPresenter mBillPresenter;
|
|
|
@@ -224,12 +228,39 @@ public class BillInputActivity extends OABaseActivity implements IBill, BillAdap
|
|
|
findBydbFind(model);
|
|
|
break;
|
|
|
case "MF":
|
|
|
+ //多选
|
|
|
+ findMore(position, model);
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void findMore(int position, BillGroupModel.BillModel model) {
|
|
|
+ HashMap param = new HashMap<>();
|
|
|
+ String[] fields = new String[]{"sa_custname"};
|
|
|
+ param.put("caller", mBillPresenter.getFormCaller());
|
|
|
+ param.put("page", "1");
|
|
|
+ param.put("which", "form");
|
|
|
+ param.put("condition", "1=1");
|
|
|
+ param.put("pageSize", "30");
|
|
|
+ param.put("field", model.getField());
|
|
|
+ Bundle bundle = new Bundle();
|
|
|
+ bundle.putSerializable("param", param);
|
|
|
+ Intent intent = new Intent(ct, SelectActivity.class);
|
|
|
+ intent.putExtra("type", 1);
|
|
|
+ intent.putExtra("isSingle", false);
|
|
|
+ intent.putExtra("reid", R.style.OAThemeMeet);
|
|
|
+ intent.putExtras(bundle);
|
|
|
+ intent.putExtra("key", "combdatas");
|
|
|
+ intent.putExtra("showKey", model.getField());
|
|
|
+ intent.putExtra("fields", fields);
|
|
|
+ intent.putExtra("action", "common/dbfind.action");
|
|
|
+ intent.putExtra("title", model.getCaption());
|
|
|
+ intent.putExtra("id", model.getGroupIndex());
|
|
|
+ startActivityForResult(intent, REQUEST_CODE_SELECT_MORE);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void toEnclosureSelect(int position, BillGroupModel.BillModel model) {
|
|
|
selectPosition = position;
|
|
|
@@ -326,10 +357,15 @@ public class BillInputActivity extends OABaseActivity implements IBill, BillAdap
|
|
|
public void onDateTimePicked(String year, String month, String day, String hour, String minute) {
|
|
|
String date = year + "-" + month + "-" + day;
|
|
|
String dateTime = date + " " + hour + ":" + minute + ":00";
|
|
|
- mBillAdapter.updateBillModelValues(position, needTime ? dateTime : date, needTime ? dateTime : date);
|
|
|
+ mBillAdapter.updateBillModelValues(position, needTime ? dateTime : date, needTime ? dateTime : date);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ picker.setOnCancelListener(new DateTimePicker.OnCancelListener() {
|
|
|
+ @Override
|
|
|
+ public void onCancel() {
|
|
|
+ mBillAdapter.updateBillModelValues(position, "", "");
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
picker.show();
|
|
|
}
|
|
|
|
|
|
@@ -394,6 +430,42 @@ public class BillInputActivity extends OABaseActivity implements IBill, BillAdap
|
|
|
super.onActivityResult(requestCode, resultCode, data);
|
|
|
if (data == null) return;
|
|
|
switch (requestCode) {
|
|
|
+ case REQUEST_CODE_SELECT_MORE:
|
|
|
+ if (resultCode == 0x21) {//多选框
|
|
|
+ int groupIndex = data.getIntExtra("id", 0);
|
|
|
+ ArrayList<SelectBean> muliData = data.getParcelableArrayListExtra("data");
|
|
|
+ JSONObject object = null;
|
|
|
+ if (!ListUtils.isEmpty(muliData)) {
|
|
|
+ object = JSON.parseObject(muliData.get(0).getJson());
|
|
|
+ String dbFind = muliData.get(0).getDbfinds();
|
|
|
+ for (int i = 1; i < muliData.size(); i++) {
|
|
|
+ SelectBean b = muliData.get(i);
|
|
|
+ JSONObject bObject = JSON.parseObject(b.getJson());
|
|
|
+ for (Map.Entry<String, Object> entry : bObject.entrySet()) {
|
|
|
+ String oldText = object.getString(entry.getKey());
|
|
|
+ object.put(entry.getKey(), oldText + "#" + entry.getValue());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!TextUtils.isEmpty(dbFind)) {
|
|
|
+ JSONArray fbFindArray = JSON.parseArray(dbFind);
|
|
|
+ if (!ListUtils.isEmpty(fbFindArray)) {
|
|
|
+ for (int i = 0; i < fbFindArray.size(); i++) {
|
|
|
+ String dbGridField = JSONUtil.getText(fbFindArray.getJSONObject(i), "dbGridField");
|
|
|
+ String field = JSONUtil.getText(fbFindArray.getJSONObject(i), "field");
|
|
|
+ if (object.containsKey(dbGridField)) {
|
|
|
+ object.put(field,object.get(dbGridField));
|
|
|
+ object.remove(dbGridField);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+// mBillAdapter.updateBillModelValues(id, values, values);
|
|
|
+ LogUtil.i("gong", "object=" + object);
|
|
|
+ LogUtil.i("gong", "groupIndex=" + groupIndex);
|
|
|
+ handlerSelectDbFind(object, groupIndex);
|
|
|
+ }
|
|
|
+ break;
|
|
|
case REQUESTCODE_C_NET:
|
|
|
SelectBean mSelectBeanC = data.getParcelableExtra("data");
|
|
|
int position = data.getIntExtra("id", -1);
|
|
|
@@ -485,7 +557,6 @@ public class BillInputActivity extends OABaseActivity implements IBill, BillAdap
|
|
|
}
|
|
|
|
|
|
protected void handlerSelectDbFind(JSONObject object, int groupId) {
|
|
|
- LogUtil.d("Arison", "groupId:" + groupId + " object:" + object.toJSONString());
|
|
|
BillGroupModel mBillGroupModel = mBillAdapter.getBillGroupModel(groupId);
|
|
|
if (mBillGroupModel != null) {
|
|
|
if (!ListUtils.isEmpty(mBillGroupModel.getShowBillFields())) {
|