|
|
@@ -73,8 +73,8 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
|
|
|
|
|
|
@ViewInject(R.id.click_btn)
|
|
|
private Button click_btn;
|
|
|
-// @ViewInject(R.id.btn_update)
|
|
|
-// private Button btn_update;
|
|
|
+ @ViewInject(R.id.btn_update)
|
|
|
+ private Button btn_update;
|
|
|
|
|
|
@ViewInject(R.id.ll_item_add)
|
|
|
private LinearLayout ll_item_add;
|
|
|
@@ -91,9 +91,28 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
|
|
|
|
|
|
switch (msg.what) {
|
|
|
case load_success:
|
|
|
+ String formidkey="";
|
|
|
+ String detailkey_id="";
|
|
|
+ String detailkey_did="";
|
|
|
+ if (formid!=0){
|
|
|
+ if ("Ask4Leave".equals(caller)){
|
|
|
+ formidkey="va_id";
|
|
|
+ }else if ("SpeAttendance".equals(caller)){
|
|
|
+ formidkey="sa_id";
|
|
|
+ }else if("Workovertime".equals(caller)){
|
|
|
+ formidkey="wo_id";
|
|
|
+ detailkey_id="wod_id";
|
|
|
+ detailkey_did="wod_woid";
|
|
|
+ }else if("FeePlease!CCSQ".equals(caller)){
|
|
|
+ formidkey="fp_id";
|
|
|
+ detailkey_id="fpd_id";
|
|
|
+ detailkey_did="fpd_fpid";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if (!ListUtils.isEmpty(mDatas)) mDatas.clear();
|
|
|
if (!ListUtils.isEmpty(mDatasNet)) mDatasNet.clear();
|
|
|
- LogUtil.d(result);
|
|
|
+ LogUtil.prinlnLongMsg("result:", result);
|
|
|
JSONArray forms = JSON.parseObject(result).getJSONObject("data").getJSONArray("formdetail");
|
|
|
grids = JSON.parseObject(result).getJSONObject("data").getJSONArray("gridetail");
|
|
|
//主表分组
|
|
|
@@ -112,14 +131,19 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
|
|
|
ArrayList<Data> itemData = new ArrayList<>();
|
|
|
ArrayList<Data> itemDataNet = new ArrayList<>();//传输给配置界面
|
|
|
String value = iter.next();
|
|
|
+
|
|
|
+
|
|
|
for (int i = 0; i < forms.size(); i++) {
|
|
|
JSONObject items = forms.getJSONObject(i);
|
|
|
Data data = new Data();
|
|
|
+
|
|
|
data.setName(items.getString("fd_caption"));
|
|
|
data.setReadonly(items.getString("fd_readonly"));
|
|
|
data.setField(items.getString("fd_field"));
|
|
|
data.setDetno(items.getIntValue("fd_detno"));
|
|
|
+
|
|
|
data.setFdid(items.getIntValue("fd_id"));
|
|
|
+ data.setValue(items.getString("fd_value"));
|
|
|
data.setGroupId(0);
|
|
|
data.setGroup(items.getString("fd_group"));
|
|
|
data.setIsDefault(items.getIntValue("mfd_isdefault"));
|
|
|
@@ -156,8 +180,8 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
|
|
|
groupDataNet.setDatas(itemDataNet);//传输给配置界面
|
|
|
mDatasNet.add(groupDataNet);//传输给配置界面
|
|
|
mDatas.add(groupData);//添加分组
|
|
|
- System.out.println(value);
|
|
|
- LogUtil.d(JSON.toJSONString(mDatas));
|
|
|
+ //System.out.println(value);
|
|
|
+ // LogUtil.d(JSON.toJSONString(mDatas));
|
|
|
}
|
|
|
|
|
|
//明细项
|
|
|
@@ -170,6 +194,7 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
|
|
|
//分组大于1开始分组
|
|
|
if (detail.size()>1){
|
|
|
//需要分組
|
|
|
+ groupData = new GroupData();//分组
|
|
|
//过滤分组
|
|
|
Iterator<Integer> iter_detail = detail.iterator();
|
|
|
while (iter_detail.hasNext()){
|
|
|
@@ -178,22 +203,48 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
|
|
|
GroupData groupDataNet = new GroupData();
|
|
|
ArrayList<Data> itemData = new ArrayList<>();
|
|
|
ArrayList<Data> itemDataNet = new ArrayList<>();
|
|
|
+ //临时变量
|
|
|
+ String key_id="";
|
|
|
+ String key_did="";
|
|
|
+ HashMap<Integer,String> values=new HashMap<>();
|
|
|
for (int i = 0; i < grids.size(); i++) {
|
|
|
JSONObject items = grids.getJSONObject(i);
|
|
|
Data data = new Data();
|
|
|
+ if (detailkey_id.equals(items.getString("dg_field")))
|
|
|
+ {
|
|
|
+ //明细id
|
|
|
+ key_id=items.getString("dg_value");
|
|
|
+ values.put(items.getInteger("dg_group"),key_id);
|
|
|
+ LogUtil.d("明细id:"+key_id+"groupid:"+items.getInteger("dg_group"));
|
|
|
+ }
|
|
|
+ if (detailkey_did.equals(items.getString("dg_field"))){
|
|
|
+ //关联id
|
|
|
+ key_did=items.getString("dg_value");
|
|
|
+ }
|
|
|
data.setName(items.getString("dg_caption"));
|
|
|
data.setField(items.getString("dg_field"));
|
|
|
data.setDetno(items.getIntValue("dg_sequence"));
|
|
|
data.setFdid(items.getIntValue("gd_id"));
|
|
|
+ data.setValue(items.getString("dg_value"));
|
|
|
data.setIsDefault(items.getIntValue("mdg_isdefault"));
|
|
|
data.setIsNeed(items.getIntValue("mdg_isdefault"));
|
|
|
data.setType(items.getString("dg_type"));
|
|
|
+ data.setGroupId(items.getInteger("dg_group"));
|
|
|
+ data.setGroup("明细项"+items.getInteger("dg_group"));
|
|
|
if (detailId==items.getInteger("dg_group")){
|
|
|
//同类分组
|
|
|
if (data.getIsNeed() != 0) {
|
|
|
+ //逃逸筛选的数据组
|
|
|
+ LogUtil.d("group:"+detailId+" key_id:"+values.get(detailId)+" key_did:"+key_did);
|
|
|
+ data.setDetailId(values.get(detailId));
|
|
|
+ data.setDetailDid(key_did);
|
|
|
itemData.add(data);
|
|
|
} else {
|
|
|
- itemDataNet.add(data);
|
|
|
+ if(items.getInteger("dg_group")==1){
|
|
|
+ data.setGroup("明细项");
|
|
|
+ itemDataNet.add(data);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}else{
|
|
|
//不同类分组
|
|
|
@@ -202,25 +253,41 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
|
|
|
}
|
|
|
|
|
|
detailGroup.setDatas(itemData);
|
|
|
+ detailGroup.setId(detailId);
|
|
|
detailGroup.setName("明细项"+detailId);
|
|
|
+
|
|
|
groupDataNet.setDatas(itemDataNet);
|
|
|
|
|
|
mDatas.add(detailGroup);
|
|
|
mDatasNet.add(groupDataNet);
|
|
|
|
|
|
}
|
|
|
+ ll_item_add.setVisibility(View.VISIBLE);
|
|
|
}else{
|
|
|
//不需要分組---减少循环
|
|
|
groupData = new GroupData();//分组
|
|
|
GroupData groupDataNet = new GroupData();
|
|
|
ArrayList<Data> itemData = new ArrayList<>();
|
|
|
ArrayList<Data> itemDataNet = new ArrayList<>();
|
|
|
+ //临时变量
|
|
|
+ String key_id="";
|
|
|
+ String key_did="";
|
|
|
for (int i = 0; i < grids.size(); i++) {
|
|
|
|
|
|
JSONObject items = grids.getJSONObject(i);
|
|
|
Data data = new Data();
|
|
|
+ if (detailkey_id.equals(items.getString("dg_field")))
|
|
|
+ {
|
|
|
+ //关联id
|
|
|
+ key_id=items.getString("dg_value");
|
|
|
+ }
|
|
|
+ if (detailkey_did.equals(items.getString("dg_field"))){
|
|
|
+ //明细id
|
|
|
+ key_did=items.getString("dg_value");
|
|
|
+ }
|
|
|
data.setName(items.getString("dg_caption"));
|
|
|
data.setField(items.getString("dg_field"));
|
|
|
+ data.setValue(items.getString("dg_value"));
|
|
|
data.setDetno(items.getIntValue("dg_sequence"));
|
|
|
data.setFdid(items.getIntValue("gd_id"));
|
|
|
data.setIsDefault(items.getIntValue("mdg_isdefault"));
|
|
|
@@ -228,6 +295,9 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
|
|
|
data.setType(items.getString("dg_type"));
|
|
|
data.setGroupId(1);
|
|
|
if (data.getIsNeed() != 0) {
|
|
|
+ //逃逸筛选的数据组
|
|
|
+ data.setDetailId(key_id);
|
|
|
+ data.setDetailDid(key_did);
|
|
|
itemData.add(data);
|
|
|
}else{
|
|
|
data.setGroup("明细项");
|
|
|
@@ -246,7 +316,7 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
|
|
|
ll_item_add.setVisibility(View.VISIBLE);
|
|
|
|
|
|
}
|
|
|
-
|
|
|
+ ll_item_add.setVisibility(View.VISIBLE);
|
|
|
} else {
|
|
|
ll_item_add.setVisibility(View.GONE);
|
|
|
}
|
|
|
@@ -306,15 +376,36 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
|
|
|
ViewUtils.inject(this);
|
|
|
getSupportActionBar().setTitle("请假单");
|
|
|
|
|
|
+ Intent intent=getIntent();
|
|
|
+ formid=0;
|
|
|
+ if (intent!=null){
|
|
|
+ formid=intent.getIntExtra("id",0);
|
|
|
+ if (!StringUtils.isEmpty(intent.getStringExtra("caller"))) {
|
|
|
+ caller = intent.getStringExtra("caller");
|
|
|
+ }
|
|
|
+ LogUtil.d("更新caller:"+caller);
|
|
|
+ LogUtil.d("更新id:"+formid);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
private void initListener() {
|
|
|
ll_item_add.setOnClickListener(this);
|
|
|
click_btn.setOnClickListener(this);
|
|
|
+ btn_update.setOnClickListener(this);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ int formid;
|
|
|
+
|
|
|
private void initData() {
|
|
|
- loadData();
|
|
|
+ if (formid==0){
|
|
|
+ btn_update.setVisibility(View.GONE);
|
|
|
+ click_btn.setVisibility(View.VISIBLE);
|
|
|
+ }else{
|
|
|
+ btn_update.setVisibility(View.VISIBLE);
|
|
|
+ click_btn.setVisibility(View.GONE);
|
|
|
+ }
|
|
|
+ loadData(formid);
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -379,18 +470,18 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
|
|
|
return super.onOptionsItemSelected(item);
|
|
|
}
|
|
|
|
|
|
- private void loadData() {
|
|
|
+ private void loadData(int id) {
|
|
|
progressDialog.show();
|
|
|
if (caller == null) {
|
|
|
caller = "Ask4Leave";
|
|
|
}
|
|
|
///mobile/getformandgriddetail.action?caller=" + caller+ "&condition=1=1" + "&sessionId=" + sessionId+"&id=0";
|
|
|
- String url = Constants.getAppBaseUrl(ct) + "mobile/common/getformandgriddetail.action";
|
|
|
+ String url = Constants.getAppBaseUrl(ct) + "mobile/getformandgriddetail.action";
|
|
|
// String url = "http://192.168.253.222/ERP/"+ "mobile/getformandgriddetail.action";
|
|
|
Map<String, Object> params = new HashMap<>();
|
|
|
params.put("caller", caller);
|
|
|
params.put("condition", "1=1");
|
|
|
- params.put("id",0);
|
|
|
+ params.put("id",id);
|
|
|
params.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
|
|
|
LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
|
|
|
headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
|
|
|
@@ -406,10 +497,18 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
|
|
|
case R.id.click_btn:
|
|
|
commit();
|
|
|
break;
|
|
|
+ case R.id.btn_update:
|
|
|
+ updata();
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @desc:需要优化的适配器
|
|
|
+ * @author:Arison on 2016/12/2
|
|
|
+ */
|
|
|
public class DataAdapter extends BaseAdapter {
|
|
|
private Context ct;
|
|
|
private LayoutInflater inflater;
|
|
|
@@ -804,7 +903,25 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
|
|
|
* @author:Arison on 2016/11/16
|
|
|
*/
|
|
|
public void addGridItemData() {
|
|
|
- if (!ListUtils.isEmpty(grids)) {
|
|
|
+ if (!ListUtils.isEmpty(grids)) {//存在明细表
|
|
|
+ String formidkey="";
|
|
|
+ String detailkey_id="";
|
|
|
+ String detailkey_did="";
|
|
|
+ if (formid!=0){
|
|
|
+ if ("Ask4Leave".equals(caller)){
|
|
|
+ formidkey="va_id";
|
|
|
+ }else if ("SpeAttendance".equals(caller)){
|
|
|
+ formidkey="sa_id";
|
|
|
+ }else if("Workovertime".equals(caller)){
|
|
|
+ formidkey="wo_id";
|
|
|
+ detailkey_id="wod_id";
|
|
|
+ detailkey_did="wod_woid";
|
|
|
+ }else if("FeePlease!CCSQ".equals(caller)){
|
|
|
+ formidkey="fp_id";
|
|
|
+ detailkey_id="fpd_id";
|
|
|
+ detailkey_did="fpd_fpid";
|
|
|
+ }
|
|
|
+ }
|
|
|
// if (groupData==null) {
|
|
|
LogUtil.d("创建新groupData item");
|
|
|
GroupData groupData = new GroupData();//分组
|
|
|
@@ -817,29 +934,54 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
|
|
|
} else {
|
|
|
groupId = mDatas.size();
|
|
|
}
|
|
|
-
|
|
|
+ String key_id="";
|
|
|
+ String key_did="";
|
|
|
+ Integer groupid;
|
|
|
for (int i = 0; i < grids.size(); i++) {//弄掉循环
|
|
|
JSONObject items = grids.getJSONObject(i);
|
|
|
Data data = new Data();
|
|
|
+ if (detailkey_id.equals(items.getString("dg_field")))
|
|
|
+// {
|
|
|
+// //明细id
|
|
|
+// key_id=items.getString("dg_value");
|
|
|
+// }
|
|
|
+ if (detailkey_did.equals(items.getString("dg_field"))){
|
|
|
+ //关联id
|
|
|
+ key_did=items.getString("dg_value");
|
|
|
+ }
|
|
|
data.setName(items.getString("dg_caption"));
|
|
|
data.setField(items.getString("dg_field"));
|
|
|
data.setDetno(items.getIntValue("dg_sequence"));
|
|
|
data.setFdid(items.getIntValue("gd_id"));
|
|
|
+
|
|
|
data.setIsDefault(items.getIntValue("mdg_isdefault"));
|
|
|
data.setIsNeed(items.getIntValue("mdg_isdefault"));
|
|
|
data.setType(items.getString("dg_type"));
|
|
|
data.setGroupId(groupId);//设置组id
|
|
|
- if (data.getIsNeed() != 0) {
|
|
|
- itemData.add(data);
|
|
|
+ groupid=items.getInteger("dg_group");
|
|
|
+ if (formid==0){
|
|
|
+ //录入
|
|
|
+ if (data.getIsNeed() != 0) {
|
|
|
+ data.setDetailDid(key_did);//更新时候,只添加关联id
|
|
|
+ itemData.add(data);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ //更新 只取固定组名 1
|
|
|
+ if(groupid==1){
|
|
|
+ if (data.getIsNeed() != 0) {
|
|
|
+ data.setDetailDid(String.valueOf(formid));//更新时候,只添加关联id---主表ID
|
|
|
+ itemData.add(data);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
groupData.setDatas(itemData);
|
|
|
-
|
|
|
groupData.setId(groupId);
|
|
|
groupData.setName("明细项" + groupId);
|
|
|
-// }
|
|
|
-// groupData.setId(mDatas.size()+ 1);
|
|
|
-// groupData.setName("明细项"+mDatas.size());
|
|
|
LogUtil.d("添加id:" + groupData.getId() + "");
|
|
|
mDatas.add(groupData);
|
|
|
if (mAdapter == null) {
|
|
|
@@ -975,9 +1117,30 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
|
|
|
ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, Constants.HTTP_SUCCESS_INIT, null, null, "post");
|
|
|
}
|
|
|
|
|
|
+// Ask4Leave 主表:va_id
|
|
|
+// SpeAttendance 主表:sa_id
|
|
|
+// Workovertime 主表:wo_id,明细表:wod_id,wod_woid
|
|
|
+// FeePlease!CCSQ 主表:fp_id,明细表:fpd_id,fpd_fpid
|
|
|
|
|
|
public void updata(){
|
|
|
- LogUtil.d("提交操作:" + JSON.toJSONString(mDatas));
|
|
|
+ String formidkey="";
|
|
|
+ String detailkey_id="";
|
|
|
+ String detailkey_did="";
|
|
|
+ if ("Ask4Leave".equals(caller)){
|
|
|
+ formidkey="va_id";
|
|
|
+ }else if ("SpeAttendance".equals(caller)){
|
|
|
+ formidkey="sa_id";
|
|
|
+ }else if("Workovertime".equals(caller)){
|
|
|
+ formidkey="wo_id";
|
|
|
+ detailkey_id="wod_id";
|
|
|
+ detailkey_did="wod_woid";
|
|
|
+ }else if("FeePlease!CCSQ".equals(caller)){
|
|
|
+ formidkey="fp_id";
|
|
|
+ detailkey_id="fpd_id";
|
|
|
+ detailkey_did="fpd_fpid";
|
|
|
+ }
|
|
|
+
|
|
|
+ // LogUtil.d("提交操作:" + JSON.toJSONString(mDatas));
|
|
|
StringBuffer forStore = new StringBuffer("{");
|
|
|
StringBuffer gridStore = new StringBuffer("[");
|
|
|
//判断是否有明细项
|
|
|
@@ -993,14 +1156,15 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
|
|
|
return;
|
|
|
}
|
|
|
if (i == items.size() - 1) {
|
|
|
- forStore.append("\"" + key + "\":\"" + value + "\"}");
|
|
|
+ forStore.append("\"" + key + "\":\"" + value + "\",")
|
|
|
+ .append("\"" + formidkey + "\":\"" + formid + "\"}");
|
|
|
} else {
|
|
|
forStore.append("\"" + key + "\":\"" + value + "\",");
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
- LogUtil.d("forStore:" + forStore.toString());
|
|
|
+ LogUtil.prinlnLongMsg("update", "forStore:" + forStore.toString());
|
|
|
//屏蔽第一项
|
|
|
for (int i = 1; i < mDatas.size(); i++) {
|
|
|
items = mDatas.get(i).getDatas();
|
|
|
@@ -1010,12 +1174,17 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
|
|
|
Data item = items.get(j);
|
|
|
String key = item.getField();
|
|
|
String value = item.getValue();
|
|
|
+ String detailId=item.getDetailId();
|
|
|
+ String detailDid=item.getDetailDid();
|
|
|
+
|
|
|
if ("T".equals(item.getReadonly()) && StringUtils.isEmpty(value)) {
|
|
|
ToastMessage(item.getName() + "不能为空!");
|
|
|
return;
|
|
|
}
|
|
|
if (j == items.size() - 1) {
|
|
|
- gridStore.append("\"" + key + "\":\"" + value + "\"");
|
|
|
+ gridStore.append("\"" + key + "\":\"" + value + "\",")
|
|
|
+ .append("\"" + detailkey_id + "\":\"" + detailId + "\",")//主表id
|
|
|
+ .append("\"" + detailkey_did + "\":\"" + detailDid + "\"");//明细表id
|
|
|
} else {
|
|
|
gridStore.append("\"" + key + "\":\"" + value + "\",");
|
|
|
}
|
|
|
@@ -1030,7 +1199,7 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
|
|
|
}
|
|
|
}
|
|
|
gridStore.append("]");
|
|
|
- LogUtil.d("girdStore:" + gridStore.toString());
|
|
|
+ LogUtil.prinlnLongMsg("update", "girdStore:" + gridStore.toString());
|
|
|
updateData(forStore.toString(), gridStore.toString());
|
|
|
} else {
|
|
|
ArrayList<Data> items = mDatas.get(0).getDatas();
|
|
|
@@ -1044,14 +1213,15 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
|
|
|
return;
|
|
|
}
|
|
|
if (i == items.size() - 1) {
|
|
|
- forStore.append("\"" + key + "\":\"" + value + "\"}");
|
|
|
+ forStore.append("\"" + key + "\":\"" + value + "\",")
|
|
|
+ .append("\"" + formidkey + "\":\"" + formid + "\"}");
|
|
|
} else {
|
|
|
forStore.append("\"" + key + "\":\"" + value + "\",");
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
- LogUtil.d("forStore:" + forStore.toString());
|
|
|
+ LogUtil.prinlnLongMsg("update", "forStore:" + forStore.toString());
|
|
|
|
|
|
updateData(forStore.toString(), "");
|
|
|
}
|
|
|
@@ -1065,9 +1235,10 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
|
|
|
* @author:Arison on 2016/11/22
|
|
|
*/
|
|
|
public void updateData(String formStore, String gridStore){
|
|
|
- String url = Constants.getAppBaseUrl(ct) + "/mobile/oa/commonSaveAndSubmit.action";
|
|
|
+ String url = Constants.getAppBaseUrl(ct) + "/mobile/commonUpdate.action";
|
|
|
Map<String, Object> params = new HashMap<>();
|
|
|
params.put("caller", caller);
|
|
|
+ params.put("keyid",formid);
|
|
|
params.put("formStore", formStore);
|
|
|
params.put("gridStore", gridStore);
|
|
|
LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
|