瀏覽代碼

提交类型 需求修改
提交内容 修改通用表单处理

Bitliker 7 年之前
父節點
當前提交
195e0ed56b

+ 10 - 1
app_core/common/src/main/java/com/core/widget/view/selectcalendar/bean/Data.java

@@ -16,7 +16,8 @@ public class Data implements Parcelable {
     private String group;//组名----多组的情况
     private boolean isSelected;
     private int detno;//编号
-    private String readonly;//必填
+    private String readonly;//是否只读
+    private String allowblank;//是否允许为空
     private int isDefault;//是否展示和隐藏
     private String type;//字段类型
     private String name;//文本字段名
@@ -90,6 +91,14 @@ public class Data implements Parcelable {
         this.readonly = readonly;
     }
 
+    public String getAllowblank() {
+        return allowblank;
+    }
+
+    public void setAllowblank(String allowblank) {
+        this.allowblank = allowblank;
+    }
+
     public int getIsNeed() {
         return isNeed;
     }

+ 71 - 31
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceDataFormAddActivity.java

@@ -76,7 +76,6 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 
-
 public class DeviceDataFormAddActivity extends SupportToolBarActivity implements View.OnClickListener {
 
 
@@ -164,10 +163,19 @@ public class DeviceDataFormAddActivity extends SupportToolBarActivity implements
                                 Data data = new Data();
                                 data.setName(items.getString("fd_caption"));
                                 data.setReadonly(items.getString("fd_readonly"));
+                                data.setAllowblank(items.getString("fd_allowblank"));
                                 data.setField(items.getString("fd_field"));
                                 data.setDetno(items.getIntValue("fd_detno"));
                                 data.setMaxlength(String.valueOf(items.getIntValue("fd_maxlength")));
                                 data.setFdid(items.getIntValue("fd_id"));
+                                String fd_defaultvalue = JSONUtil.getText(items, "fd_defaultvalue");
+                                if (TextUtils.isEmpty(data.getValue()) && !TextUtils.isEmpty(fd_defaultvalue)) {
+                                    data.setValue(fd_defaultvalue);
+                                }
+                                String type = items.getString("fd_type");
+                                if (!TextUtils.isEmpty(type) && type.equals("D")) {
+                                    data.setValue(DateFormatUtil.getStrDate4Date(new Date(), "yyyy-MM-dd HH:mm:ss"));
+                                }
 
                                 if ("ID".equals(data.getName())) {
                                     formidkey = data.getField();
@@ -342,7 +350,9 @@ public class DeviceDataFormAddActivity extends SupportToolBarActivity implements
                                         }
                                         data.setMaxlength(String.valueOf(items.getIntValue("dg_maxlength")));
                                         data.setName(items.getString("dg_caption"));
-                                        data.setReadonly(items.getString("dg_logictype"));
+                                        data.setAllowblank(items.getString("dg_logictype"));
+                                        data.setReadonly(items.getString("dg_editable"));
+
                                         data.setField(items.getString("dg_field"));
                                         data.setDetno(items.getIntValue("dg_sequence"));
                                         data.setFdid(items.getIntValue("gd_id"));
@@ -443,7 +453,9 @@ public class DeviceDataFormAddActivity extends SupportToolBarActivity implements
                                     data.setMaxlength(String.valueOf(items.getIntValue("dg_maxlength")));
                                     data.setName(items.getString("dg_caption"));
                                     data.setField(items.getString("dg_field"));
-                                    data.setReadonly(items.getString("dg_logictype"));
+                                    data.setAllowblank(items.getString("dg_logictype"));
+                                    data.setReadonly(items.getString("dg_editable"));
+
                                     data.setValue(items.getString("dg_value"));
                                     if (d_startDate.equals(items.getString("dg_field"))) {
                                         if (StringUtil.isEmpty(items.getString("dg_value"))) {
@@ -681,7 +693,7 @@ public class DeviceDataFormAddActivity extends SupportToolBarActivity implements
             mDevice = intent.getParcelableExtra(Constants.FLAG.MODEL);
             caller = intent.getStringExtra("caller");
             if (!StringUtil.isEmpty(intent.getStringExtra("title"))) {
-            setTitle(intent.getStringExtra("title"));
+                setTitle(intent.getStringExtra("title"));
             }
         }
     }
@@ -809,11 +821,28 @@ public class DeviceDataFormAddActivity extends SupportToolBarActivity implements
         if (!StringUtil.isEmpty(field.getValue())) {
             //记住时间
             String date = field.getValue();
-            int year = Integer.valueOf(date.substring(0, 4));
-            int month = Integer.valueOf(date.substring(5, 7));
-            int day = Integer.valueOf(date.substring(8, 10));
-            int hour = Integer.valueOf(date.substring(11, 13));
-            int minute = Integer.valueOf(date.substring(14, 16));
+            int year = 2018;
+            int month = 01;
+            int day = 01;
+            int hour = 0;
+            int minute = 0;
+            if (!TextUtils.isEmpty(date)) {
+                if (date.length() > 4) {
+                    year = Integer.valueOf(date.substring(0, 4));
+                }
+                if (date.length() > 7) {
+                    month = Integer.valueOf(date.substring(5, 7));
+                }
+                if (date.length() > 10) {
+                    day = Integer.valueOf(date.substring(8, 10));
+                }
+                if (date.length() > 13) {
+                    hour = Integer.valueOf(date.substring(11, 13));
+                }
+                if (date.length() > 16) {
+                    minute = Integer.valueOf(date.substring(14, 16));
+                }
+            }
             picker.setSelectedItem(year, month, day, hour, minute);
         } else {
             //赋值当前系统时间
@@ -1348,7 +1377,9 @@ public class DeviceDataFormAddActivity extends SupportToolBarActivity implements
                 data.setField(items.getString("dg_field"));
                 data.setDetno(items.getIntValue("dg_sequence"));
                 data.setFdid(items.getIntValue("gd_id"));
-                data.setReadonly(items.getString("dg_logictype"));
+                data.setAllowblank(items.getString("dg_logictype"));
+                data.setReadonly(items.getString("dg_editable"));
+
                 data.setIsDefault(items.getIntValue("mdg_isdefault"));
                 data.setIsNeed(items.getIntValue("mdg_isdefault"));
                 data.setType(items.getString("dg_type"));
@@ -1473,8 +1504,8 @@ public class DeviceDataFormAddActivity extends SupportToolBarActivity implements
                     String disValue = item.getDisplayValue();
                     if (!StringUtil.isEmpty(disValue)) value = disValue;//下拉字段
                     if (StringUtil.isEmpty(value)) value = "";
-                    if (("F".equals(item.getReadonly()) && StringUtil.isEmpty(value))
-                            || ("necessaryField".equals(item.getReadonly()) && StringUtil.isEmpty(value))) {
+                    if (("F".equals(item.getAllowblank()) && StringUtil.isEmpty(value))
+                            || ("necessaryField".equals(item.getAllowblank()) && StringUtil.isEmpty(value))) {
                         ToastMessage(item.getName() + "不能为空!");
                         return;
                     }
@@ -1529,8 +1560,8 @@ public class DeviceDataFormAddActivity extends SupportToolBarActivity implements
                         String disValue = item.getDisplayValue();
                         if (!StringUtil.isEmpty(disValue)) value = disValue;//下拉字段
                         if (StringUtil.isEmpty(value)) value = "";
-                        if (("F".equals(item.getReadonly()) && StringUtil.isEmpty(value))
-                                || ("necessaryField".equals(item.getReadonly()) && StringUtil.isEmpty(value))) {
+                        if (("F".equals(item.getAllowblank()) && StringUtil.isEmpty(value))
+                                || ("necessaryField".equals(item.getAllowblank()) && StringUtil.isEmpty(value))) {
                             ToastMessage(item.getName() + "不能为空!");
                             return;
                         }
@@ -1590,8 +1621,8 @@ public class DeviceDataFormAddActivity extends SupportToolBarActivity implements
                     String disValue = item.getDisplayValue();
                     if (!StringUtil.isEmpty(disValue)) value = disValue;//下拉字段
                     if (StringUtil.isEmpty(value)) value = "";
-                    if (("F".equals(item.getReadonly()) && StringUtil.isEmpty(value))
-                            || ("necessaryField".equals(item.getReadonly()) && StringUtil.isEmpty(value))) {
+                    if (("F".equals(item.getAllowblank()) && StringUtil.isEmpty(value))
+                            || ("necessaryField".equals(item.getAllowblank()) && StringUtil.isEmpty(value))) {
                         ToastMessage(item.getName() + "不能为空!");
                         return;
                     }
@@ -1691,8 +1722,8 @@ public class DeviceDataFormAddActivity extends SupportToolBarActivity implements
                     String key = item.getField();
                     String value = item.getValue();
                     if (StringUtil.isEmpty(value)) value = "";
-                    if (("F".equals(item.getReadonly()) && StringUtil.isEmpty(value))
-                            || ("necessaryField".equals(item.getReadonly()) && StringUtil.isEmpty(value))) {
+                    if (("F".equals(item.getAllowblank()) && StringUtil.isEmpty(value))
+                            || ("necessaryField".equals(item.getAllowblank()) && StringUtil.isEmpty(value))) {
                         ToastMessage(item.getName() + "不能为空!");
                         return;
                     }
@@ -1748,8 +1779,8 @@ public class DeviceDataFormAddActivity extends SupportToolBarActivity implements
                         }
                         String detailDid = String.valueOf(formid);
                         if (StringUtil.isEmpty(value)) value = "";
-                        if (("F".equals(item.getReadonly()) && StringUtil.isEmpty(value))
-                                || ("necessaryField".equals(item.getReadonly()) && StringUtil.isEmpty(value))) {
+                        if (("F".equals(item.getAllowblank()) && StringUtil.isEmpty(value))
+                                || ("necessaryField".equals(item.getAllowblank()) && StringUtil.isEmpty(value))) {
                             ToastMessage(item.getName() + "不能为空!");
                             return;
                         }
@@ -1809,8 +1840,8 @@ public class DeviceDataFormAddActivity extends SupportToolBarActivity implements
                     String key = item.getField();
                     String value = item.getValue();
                     if (StringUtil.isEmpty(value)) value = "";
-                    if (("F".equals(item.getReadonly()) && StringUtil.isEmpty(value))
-                            || ("necessaryField".equals(item.getReadonly()) && StringUtil.isEmpty(value))) {
+                    if (("F".equals(item.getAllowblank()) && StringUtil.isEmpty(value))
+                            || ("necessaryField".equals(item.getAllowblank()) && StringUtil.isEmpty(value))) {
                         ToastMessage(item.getName() + "不能为空!");
                         return;
                     }
@@ -2157,7 +2188,7 @@ public class DeviceDataFormAddActivity extends SupportToolBarActivity implements
                     RelativeLayout header = (RelativeLayout) convertView.findViewById(R.id.rl_item_header);
                     final Data itemValue = ((Data) getItem(position));
                     // final  int id= getGroupPosition(position);
-                    textView.setText(TextUtils.isEmpty(itemValue.getGroup())?"":itemValue.getGroup());//
+                    textView.setText(TextUtils.isEmpty(itemValue.getGroup()) ? "" : itemValue.getGroup());//
                     try {
                         if (StringUtil.isEmpty(itemValue.getGroup())) {
                             header.setVisibility(View.GONE);
@@ -2213,13 +2244,6 @@ public class DeviceDataFormAddActivity extends SupportToolBarActivity implements
                     HashMap<String, Object> results = isLastItem(position);
                     final Integer categoryIndex = (Integer) results.get("categoryIndex");
                     model.text.setText(data.getName());
-                    if ("F".equals(data.getReadonly()) || "necessaryField".equals(data.getReadonly())) {
-                        model.editText.setHint("请输入");
-                        model.muchInputTv.setVisibility(View.VISIBLE);
-                    } else {
-                        model.editText.setHint("请输入");
-                        model.muchInputTv.setVisibility(View.GONE);
-                    }
                     model.selectIv.setVisibility(View.GONE);
                     if (data.getType().equals("D") ||
                             data.getType().equals("C") ||
@@ -2456,6 +2480,23 @@ public class DeviceDataFormAddActivity extends SupportToolBarActivity implements
                     if (!StringUtil.isEmpty(data.getValue()) && isLeave) {
                         model.editText.setText(data.getValue());
                     }
+                    model.editText.setHint("请输入");
+                    if (TextUtils.isEmpty(data.getAllowblank()) || "F".equals(data.getAllowblank())
+                            || "necessaryField".equals(data.getAllowblank())) {
+                        model.muchInputTv.setVisibility(View.VISIBLE);
+                    } else {
+                        model.muchInputTv.setVisibility(View.GONE);
+                    }
+                    //判断是否可编辑
+                    if (TextUtils.isEmpty(data.getReadonly()) || !"T".equals(data.getReadonly())) {
+                        //可编辑
+                        model.editText.setFocusable(true);
+                        model.editText.setEnabled(true);
+                    } else {
+                        //不可编辑
+                        model.editText.setFocusable(false);
+                        model.editText.setEnabled(false);
+                    }
                     break;
             }
 
@@ -2472,5 +2513,4 @@ public class DeviceDataFormAddActivity extends SupportToolBarActivity implements
     }
 
 
-
 }

+ 83 - 40
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/form/DataFormDetailActivity.java

@@ -170,27 +170,34 @@ 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.setAllowblank(items.getString("fd_allowblank"));
                                 data.setField(items.getString("fd_field"));
                                 data.setDetno(items.getIntValue("fd_detno"));
                                 data.setMaxlength(String.valueOf(items.getIntValue("fd_maxlength")));
                                 data.setFdid(items.getIntValue("fd_id"));
                                 data.setValue(items.getString("fd_value"));
-
+                                //TODO
+                                String fd_defaultvalue = JSONUtil.getText(items, "fd_defaultvalue");
+                                if (TextUtils.isEmpty(data.getValue()) && !TextUtils.isEmpty(fd_defaultvalue)) {
+                                    data.setValue(fd_defaultvalue);
+                                }
+                                String type=items.getString("fd_type");
+                                if (!TextUtils.isEmpty(type) && type.equals("D")) {
+                                    data.setValue(DateFormatUtil.getStrDate4Date(new Date(), "yyyy-MM-dd HH:mm:ss"));
+                                }
                                 if (startDate.equals(items.getString("fd_field"))) {
-                                    if (StringUtil.isEmpty(items.getString("fd_value"))) {
+                                    if (StringUtil.isEmpty(data.getValue())) {
                                         data.setValue(DateFormatUtil.getStrDate4Date(new Date(), "yyyy-MM-dd HH:mm:ss"));
                                     }
                                     startDate_v = data.getValue();
                                 }
                                 if (endDate.equals(items.getString("fd_field"))) {
-                                    if (StringUtil.isEmpty(items.getString("fd_value"))) {
+                                    if (StringUtil.isEmpty(data.getValue())) {
                                         data.setValue(DateFormatUtil.getStrDate4Date(new Date(), "yyyy-MM-dd HH:mm:ss"));
                                     }
                                     endDate_v = data.getValue();
@@ -200,7 +207,7 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                                 data.setGroup(items.getString("fd_group"));
                                 data.setIsDefault(items.getIntValue("mfd_isdefault"));
                                 data.setIsNeed(items.getIntValue("mfd_isdefault"));
-                                data.setType(items.getString("fd_type"));
+                                data.setType(type);
                                 if (!StringUtil.isEmpty(value)) {
                                     if (value.equals(items.getString("fd_group"))) {
                                         if (data.getIsNeed() == -1) {
@@ -261,7 +268,6 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                                 Iterator<Integer> iter_detail = detailist.iterator();
                                 while (iter_detail.hasNext()) {
                                     Integer detailId = iter_detail.next();
-                                    LogUtil.d(TAG, "明细表分组id:" + detailId + "");
                                     GroupData detailGroup = new GroupData();
                                     GroupData groupDataNet = new GroupData();
                                     ArrayList<Data> itemData = new ArrayList<>();
@@ -273,12 +279,6 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                                     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);
-//                                            Lg.d("明细id:" + key_id + "groupid:" + items.getInteger("dg_group"));
-//                                        }
                                         if (detailkey_did.equals(items.getString("dg_field"))) {
                                             //关联id
                                             if (StringUtil.isEmpty(items.getString("dg_value"))) {
@@ -290,11 +290,17 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                                         }
                                         data.setMaxlength(String.valueOf(items.getIntValue("dg_maxlength")));
                                         data.setName(items.getString("dg_caption"));
-                                        data.setReadonly(items.getString("dg_logictype"));
+                                        data.setAllowblank(items.getString("dg_logictype"));
+                                        data.setReadonly(items.getString("dg_editable"));
                                         data.setField(items.getString("dg_field"));
                                         data.setDetno(items.getIntValue("dg_sequence"));
                                         data.setFdid(items.getIntValue("gd_id"));
                                         data.setValue(items.getString("dg_value"));
+
+                                        if (!TextUtils.isEmpty(data.getType()) && data.getType().equals("D")) {
+                                            data.setValue(DateFormatUtil.getStrDate4Date(new Date(), "yyyy-MM-dd HH:mm:ss"));
+                                        }
+
                                         if (d_startDate.equals(items.getString("dg_field"))) {
                                             if (StringUtil.isEmpty(items.getString("dg_value"))) {
                                                 data.setValue(DateFormatUtil.getStrDate4Date(new Date(), "yyyy-MM-dd HH:mm:ss"));
@@ -391,7 +397,9 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                                     data.setMaxlength(String.valueOf(items.getIntValue("dg_maxlength")));
                                     data.setName(items.getString("dg_caption"));
                                     data.setField(items.getString("dg_field"));
-                                    data.setReadonly(items.getString("dg_logictype"));
+                                    data.setAllowblank(items.getString("dg_logictype"));
+                                    data.setReadonly(items.getString("dg_editable"));
+
                                     data.setValue(items.getString("dg_value"));
                                     if (d_startDate.equals(items.getString("dg_field"))) {
                                         if (StringUtil.isEmpty(items.getString("dg_value"))) {
@@ -1060,13 +1068,6 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                     HashMap<String, Object> results = isLastItem(position);
                     final Integer categoryIndex = (Integer) results.get("categoryIndex");
                     model.text.setText(data.getName());
-                    if ("F".equals(data.getReadonly()) || "necessaryField".equals(data.getReadonly())) {
-                        model.editText.setHint("请输入");
-                        model.muchInputTv.setVisibility(View.VISIBLE);
-                    } else {
-                        model.editText.setHint("请输入");
-                        model.muchInputTv.setVisibility(View.GONE);
-                    }
                     model.selectIv.setVisibility(View.GONE);
                     if (data.getType().equals("D") ||
                             data.getType().equals("C") ||
@@ -1303,9 +1304,30 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                     if (!StringUtil.isEmpty(data.getValue()) && isLeave) {
                         model.editText.setText(data.getValue());
                     }
+
+                    //TODO 判断是否允许为空
+                    model.editText.setHint("请输入");
+                    if (TextUtils.isEmpty(data.getAllowblank()) || "F".equals(data.getAllowblank())
+                            || "necessaryField".equals(data.getAllowblank())) {
+                        model.muchInputTv.setVisibility(View.VISIBLE);
+                    } else {
+                        model.muchInputTv.setVisibility(View.GONE);
+                    }
+                    //判断是否可编辑
+                    if (TextUtils.isEmpty(data.getReadonly()) || !"T".equals(data.getReadonly())) {
+                        //可编辑
+                        model.editText.setFocusable(true);
+                        model.editText.setEnabled(true);
+                    } else {
+                        //不可编辑
+                        model.editText.setFocusable(false);
+                        model.editText.setEnabled(false);
+                    }
+
                     break;
             }
 
+
             return convertView;
         }
 
@@ -1319,6 +1341,8 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
     }
 
     /**
+     * TODO
+     *
      * @desc:日期选择控件---底部弹窗
      * @author:Arison on 2017/2/13
      */
@@ -1328,11 +1352,28 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
         if (!StringUtil.isEmpty(field.getValue())) {
             //记住时间
             String date = field.getValue();
-            int year = Integer.valueOf(date.substring(0, 4));
-            int month = Integer.valueOf(date.substring(5, 7));
-            int day = Integer.valueOf(date.substring(8, 10));
-            int hour = Integer.valueOf(date.substring(11, 13));
-            int minute = Integer.valueOf(date.substring(14, 16));
+            int year = 2018;
+            int month = 01;
+            int day = 01;
+            int hour = 0;
+            int minute = 0;
+            if (!TextUtils.isEmpty(date)) {
+                if (date.length() > 4) {
+                    year = Integer.valueOf(date.substring(0, 4));
+                }
+                if (date.length() > 7) {
+                    month = Integer.valueOf(date.substring(5, 7));
+                }
+                if (date.length() > 10) {
+                    day = Integer.valueOf(date.substring(8, 10));
+                }
+                if (date.length() > 13) {
+                    hour = Integer.valueOf(date.substring(11, 13));
+                }
+                if (date.length() > 16) {
+                    minute = Integer.valueOf(date.substring(14, 16));
+                }
+            }
             picker.setSelectedItem(year, month, day, hour, minute);
         } else {
             //赋值当前系统时间
@@ -1870,7 +1911,9 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                 data.setField(items.getString("dg_field"));
                 data.setDetno(items.getIntValue("dg_sequence"));
                 data.setFdid(items.getIntValue("gd_id"));
-                data.setReadonly(items.getString("dg_logictype"));
+                data.setAllowblank(items.getString("dg_logictype"));
+                data.setReadonly(items.getString("dg_editable"));
+
                 data.setIsDefault(items.getIntValue("mdg_isdefault"));
                 data.setIsNeed(items.getIntValue("mdg_isdefault"));
                 data.setType(items.getString("dg_type"));
@@ -1995,8 +2038,8 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                     String disValue = item.getDisplayValue();
                     if (!StringUtil.isEmpty(disValue)) value = disValue;//下拉字段
                     if (StringUtil.isEmpty(value)) value = "";
-                    if (("F".equals(item.getReadonly()) && StringUtil.isEmpty(value))
-                            || ("necessaryField".equals(item.getReadonly()) && StringUtil.isEmpty(value))) {
+                    if (("F".equals(item.getAllowblank()) && StringUtil.isEmpty(value))
+                            || ("necessaryField".equals(item.getAllowblank()) && StringUtil.isEmpty(value))) {
                         ToastMessage(item.getName() + "不能为空!");
                         return;
                     }
@@ -2051,8 +2094,8 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                         String disValue = item.getDisplayValue();
                         if (!StringUtil.isEmpty(disValue)) value = disValue;//下拉字段
                         if (StringUtil.isEmpty(value)) value = "";
-                        if (("F".equals(item.getReadonly()) && StringUtil.isEmpty(value))
-                                || ("necessaryField".equals(item.getReadonly()) && StringUtil.isEmpty(value))) {
+                        if (("F".equals(item.getAllowblank()) && StringUtil.isEmpty(value))
+                                || ("necessaryField".equals(item.getAllowblank()) && StringUtil.isEmpty(value))) {
                             ToastMessage(item.getName() + "不能为空!");
                             return;
                         }
@@ -2112,8 +2155,8 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                     String disValue = item.getDisplayValue();
                     if (!StringUtil.isEmpty(disValue)) value = disValue;//下拉字段
                     if (StringUtil.isEmpty(value)) value = "";
-                    if (("F".equals(item.getReadonly()) && StringUtil.isEmpty(value))
-                            || ("necessaryField".equals(item.getReadonly()) && StringUtil.isEmpty(value))) {
+                    if (("F".equals(item.getAllowblank()) && StringUtil.isEmpty(value))
+                            || ("necessaryField".equals(item.getAllowblank()) && StringUtil.isEmpty(value))) {
                         ToastMessage(item.getName() + "不能为空!");
                         return;
                     }
@@ -2214,8 +2257,8 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                     String key = item.getField();
                     String value = item.getValue();
                     if (StringUtil.isEmpty(value)) value = "";
-                    if (("F".equals(item.getReadonly()) && StringUtil.isEmpty(value))
-                            || ("necessaryField".equals(item.getReadonly()) && StringUtil.isEmpty(value))) {
+                    if (("F".equals(item.getAllowblank()) && StringUtil.isEmpty(value))
+                            || ("necessaryField".equals(item.getAllowblank()) && StringUtil.isEmpty(value))) {
                         ToastMessage(item.getName() + "不能为空!");
                         return;
                     }
@@ -2271,8 +2314,8 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                         }
                         String detailDid = String.valueOf(formid);
                         if (StringUtil.isEmpty(value)) value = "";
-                        if (("F".equals(item.getReadonly()) && StringUtil.isEmpty(value))
-                                || ("necessaryField".equals(item.getReadonly()) && StringUtil.isEmpty(value))) {
+                        if (("F".equals(item.getAllowblank()) && StringUtil.isEmpty(value))
+                                || ("necessaryField".equals(item.getAllowblank()) && StringUtil.isEmpty(value))) {
                             ToastMessage(item.getName() + "不能为空!");
                             return;
                         }
@@ -2332,8 +2375,8 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                     String key = item.getField();
                     String value = item.getValue();
                     if (StringUtil.isEmpty(value)) value = "";
-                    if (("F".equals(item.getReadonly()) && StringUtil.isEmpty(value))
-                            || ("necessaryField".equals(item.getReadonly()) && StringUtil.isEmpty(value))) {
+                    if (("F".equals(item.getAllowblank()) && StringUtil.isEmpty(value))
+                            || ("necessaryField".equals(item.getAllowblank()) && StringUtil.isEmpty(value))) {
                         ToastMessage(item.getName() + "不能为空!");
                         return;
                     }

+ 71 - 27
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/form/TravelDataFormDetailActivity.java

@@ -171,12 +171,22 @@ public class TravelDataFormDetailActivity extends BaseActivity implements View.O
                                 Data data = new Data();
                                 data.setName(items.getString("fd_caption"));
                                 data.setReadonly(items.getString("fd_readonly"));
+                                data.setAllowblank(items.getString("fd_allowblank"));
                                 data.setField(items.getString("fd_field"));
                                 data.setDetno(items.getIntValue("fd_detno"));
                                 data.setMaxlength(String.valueOf(items.getIntValue("fd_maxlength")));
                                 data.setFdid(items.getIntValue("fd_id"));
                                 data.setValue(items.getString("fd_value"));
 
+                                String fd_defaultvalue = JSONUtil.getText(items, "fd_defaultvalue");
+                                if (TextUtils.isEmpty(data.getValue()) && !TextUtils.isEmpty(fd_defaultvalue)) {
+                                    data.setValue(fd_defaultvalue);
+                                }
+                                String type=items.getString("fd_type");
+                                if (!TextUtils.isEmpty(type) && type.equals("D")) {
+                                    data.setValue(DateFormatUtil.getStrDate4Date(new Date(), "yyyy-MM-dd HH:mm:ss"));
+                                }
+
                                 if (startDate.equals(items.getString("fd_field"))) {
                                     if (StringUtil.isEmpty(items.getString("fd_value"))) {
                                         data.setValue(DateFormatUtil.getStrDate4Date(new Date(), "yyyy-MM-dd HH:mm:ss"));
@@ -284,7 +294,9 @@ public class TravelDataFormDetailActivity extends BaseActivity implements View.O
                                         }
                                         data.setMaxlength(String.valueOf(items.getIntValue("dg_maxlength")));
                                         data.setName(items.getString("dg_caption"));
-                                        data.setReadonly(items.getString("dg_logictype"));
+                                        data.setAllowblank(items.getString("dg_logictype"));
+                                        data.setReadonly(items.getString("dg_editable"));
+
                                         data.setField(items.getString("dg_field"));
                                         data.setDetno(items.getIntValue("dg_sequence"));
                                         data.setFdid(items.getIntValue("gd_id"));
@@ -385,7 +397,9 @@ public class TravelDataFormDetailActivity extends BaseActivity implements View.O
                                     data.setMaxlength(String.valueOf(items.getIntValue("dg_maxlength")));
                                     data.setName(items.getString("dg_caption"));
                                     data.setField(items.getString("dg_field"));
-                                    data.setReadonly(items.getString("dg_logictype"));
+                                    data.setAllowblank(items.getString("dg_logictype"));
+                                    data.setReadonly(items.getString("dg_editable"));
+
                                     data.setValue(items.getString("dg_value"));
                                     if (d_startDate.equals(items.getString("dg_field"))) {
                                         if (StringUtil.isEmpty(items.getString("dg_value"))) {
@@ -1103,13 +1117,6 @@ public class TravelDataFormDetailActivity extends BaseActivity implements View.O
                     HashMap<String, Object> results = isLastItem(position);
                     final Integer categoryIndex = (Integer) results.get("categoryIndex");
                     model.text.setText(data.getName());
-                    if ("F".equals(data.getReadonly()) || "necessaryField".equals(data.getReadonly())) {
-                        model.editText.setHint("请输入");
-                        model.muchInputTv.setVisibility(View.VISIBLE);
-                    } else {
-                        model.editText.setHint("请输入");
-                        model.muchInputTv.setVisibility(View.GONE);
-                    }
                     model.selectIv.setVisibility(View.GONE);
                     if (data.getType().equals("D") ||
                             data.getType().equals("C") ||
@@ -1346,6 +1353,24 @@ public class TravelDataFormDetailActivity extends BaseActivity implements View.O
                     if (!StringUtil.isEmpty(data.getValue()) && isLeave) {
                         model.editText.setText(data.getValue());
                     }
+                    model.editText.setHint("请输入");
+                    if (TextUtils.isEmpty(data.getAllowblank()) || "F".equals(data.getAllowblank())
+                            || "necessaryField".equals(data.getAllowblank())) {
+                        model.muchInputTv.setVisibility(View.VISIBLE);
+                    } else {
+                        model.muchInputTv.setVisibility(View.GONE);
+                    }
+                    LogUtil.i(data.getName()+"=getReadonly="+data.getReadonly());
+                    //判断是否可编辑
+                    if (TextUtils.isEmpty(data.getReadonly()) || !"T".equals(data.getReadonly())) {
+                        //可编辑
+                        model.editText.setFocusable(true);
+                        model.editText.setEnabled(true);
+                    } else {
+                        //不可编辑
+                        model.editText.setFocusable(false);
+                        model.editText.setEnabled(false);
+                    }
                     break;
             }
 
@@ -1371,11 +1396,28 @@ public class TravelDataFormDetailActivity extends BaseActivity implements View.O
         if (!StringUtil.isEmpty(field.getValue())) {
             //记住时间
             String date = field.getValue();
-            int year = Integer.valueOf(date.substring(0, 4));
-            int month = Integer.valueOf(date.substring(5, 7));
-            int day = Integer.valueOf(date.substring(8, 10));
-            int hour = Integer.valueOf(date.substring(11, 13));
-            int minute = Integer.valueOf(date.substring(14, 16));
+            int year = 2018;
+            int month = 01;
+            int day = 01;
+            int hour = 0;
+            int minute = 0;
+            if (!TextUtils.isEmpty(date)) {
+                if (date.length() > 4) {
+                    year = Integer.valueOf(date.substring(0, 4));
+                }
+                if (date.length() > 7) {
+                    month = Integer.valueOf(date.substring(5, 7));
+                }
+                if (date.length() > 10) {
+                    day = Integer.valueOf(date.substring(8, 10));
+                }
+                if (date.length() > 13) {
+                    hour = Integer.valueOf(date.substring(11, 13));
+                }
+                if (date.length() > 16) {
+                    minute = Integer.valueOf(date.substring(14, 16));
+                }
+            }
             picker.setSelectedItem(year, month, day, hour, minute);
         } else {
             //赋值当前系统时间
@@ -1925,7 +1967,9 @@ public class TravelDataFormDetailActivity extends BaseActivity implements View.O
                 data.setField(items.getString("dg_field"));
                 data.setDetno(items.getIntValue("dg_sequence"));
                 data.setFdid(items.getIntValue("gd_id"));
-                data.setReadonly(items.getString("dg_logictype"));
+                data.setAllowblank(items.getString("dg_logictype"));
+                data.setReadonly(items.getString("dg_editable"));
+
                 data.setIsDefault(items.getIntValue("mdg_isdefault"));
                 data.setIsNeed(items.getIntValue("mdg_isdefault"));
                 data.setType(items.getString("dg_type"));
@@ -2050,8 +2094,8 @@ public class TravelDataFormDetailActivity extends BaseActivity implements View.O
                     String disValue = item.getDisplayValue();
                     if (!StringUtil.isEmpty(disValue)) value = disValue;//下拉字段
                     if (StringUtil.isEmpty(value)) value = "";
-                    if (("F".equals(item.getReadonly()) && StringUtil.isEmpty(value))
-                            || ("necessaryField".equals(item.getReadonly()) && StringUtil.isEmpty(value))) {
+                    if (("F".equals(item.getAllowblank()) && StringUtil.isEmpty(value))
+                            || ("necessaryField".equals(item.getAllowblank()) && StringUtil.isEmpty(value))) {
                         ToastMessage(item.getName() + "不能为空!");
                         return;
                     }
@@ -2106,8 +2150,8 @@ public class TravelDataFormDetailActivity extends BaseActivity implements View.O
                         String disValue = item.getDisplayValue();
                         if (!StringUtil.isEmpty(disValue)) value = disValue;//下拉字段
                         if (StringUtil.isEmpty(value)) value = "";
-                        if (("F".equals(item.getReadonly()) && StringUtil.isEmpty(value))
-                                || ("necessaryField".equals(item.getReadonly()) && StringUtil.isEmpty(value))) {
+                        if (("F".equals(item.getAllowblank()) && StringUtil.isEmpty(value))
+                                || ("necessaryField".equals(item.getAllowblank()) && StringUtil.isEmpty(value))) {
                             ToastMessage(item.getName() + "不能为空!");
                             return;
                         }
@@ -2167,8 +2211,8 @@ public class TravelDataFormDetailActivity extends BaseActivity implements View.O
                     String disValue = item.getDisplayValue();
                     if (!StringUtil.isEmpty(disValue)) value = disValue;//下拉字段
                     if (StringUtil.isEmpty(value)) value = "";
-                    if (("F".equals(item.getReadonly()) && StringUtil.isEmpty(value))
-                            || ("necessaryField".equals(item.getReadonly()) && StringUtil.isEmpty(value))) {
+                    if (("F".equals(item.getAllowblank()) && StringUtil.isEmpty(value))
+                            || ("necessaryField".equals(item.getAllowblank()) && StringUtil.isEmpty(value))) {
                         ToastMessage(item.getName() + "不能为空!");
                         return;
                     }
@@ -2268,8 +2312,8 @@ public class TravelDataFormDetailActivity extends BaseActivity implements View.O
                     String key = item.getField();
                     String value = item.getValue();
                     if (StringUtil.isEmpty(value)) value = "";
-                    if (("F".equals(item.getReadonly()) && StringUtil.isEmpty(value))
-                            || ("necessaryField".equals(item.getReadonly()) && StringUtil.isEmpty(value))) {
+                    if (("F".equals(item.getAllowblank()) && StringUtil.isEmpty(value))
+                            || ("necessaryField".equals(item.getAllowblank()) && StringUtil.isEmpty(value))) {
                         ToastMessage(item.getName() + "不能为空!");
                         return;
                     }
@@ -2325,8 +2369,8 @@ public class TravelDataFormDetailActivity extends BaseActivity implements View.O
                         }
                         String detailDid = String.valueOf(formid);
                         if (StringUtil.isEmpty(value)) value = "";
-                        if (("F".equals(item.getReadonly()) && StringUtil.isEmpty(value))
-                                || ("necessaryField".equals(item.getReadonly()) && StringUtil.isEmpty(value))) {
+                        if (("F".equals(item.getAllowblank()) && StringUtil.isEmpty(value))
+                                || ("necessaryField".equals(item.getAllowblank()) && StringUtil.isEmpty(value))) {
                             ToastMessage(item.getName() + "不能为空!");
                             return;
                         }
@@ -2386,8 +2430,8 @@ public class TravelDataFormDetailActivity extends BaseActivity implements View.O
                     String key = item.getField();
                     String value = item.getValue();
                     if (StringUtil.isEmpty(value)) value = "";
-                    if (("F".equals(item.getReadonly()) && StringUtil.isEmpty(value))
-                            || ("necessaryField".equals(item.getReadonly()) && StringUtil.isEmpty(value))) {
+                    if (("F".equals(item.getAllowblank()) && StringUtil.isEmpty(value))
+                            || ("necessaryField".equals(item.getAllowblank()) && StringUtil.isEmpty(value))) {
                         ToastMessage(item.getName() + "不能为空!");
                         return;
                     }