Sfoglia il codice sorgente

Merge branch 'feature' of https://gitlab.com/Arisono/SkWeiChat-Baidu into feature_raomeng

# Conflicts:
#	WeiChat/version.properties
raomeng 8 anni fa
parent
commit
c8ed277497

+ 5 - 5
WeiChat/version.properties

@@ -1,5 +1,5 @@
-#Sat Jan 20 12:35:59 CST 2018
-debugName=511
-versionName=624
-debugCode=511
-versionCode=163
+#Sat Jan 20 14:12:48 CST 2018
+debugName=495
+versionName=625
+debugCode=495
+versionCode=164

+ 1 - 1
app_core/common/src/main/java/com/core/utils/CommonUtil.java

@@ -101,7 +101,7 @@ public class CommonUtil {
         }
         String baseUrl = getSharedPreferences(ct, "erp_baseurl");
 //        if (BaseConfig.isDebug()){
-//            baseUrl="http://192.168.253.97:8080/ERP/";
+//            baseUrl="http://192.168.253.203:8090/ERP/";
 //        }
 //        baseUrl="http://192.168.253.203:8090/ERP/
 

+ 4 - 1
app_modular/apputils/src/main/java/com/modular/apputils/activity/BaseNetActivity.java

@@ -97,7 +97,7 @@ public abstract class BaseNetActivity extends ActionBackActivity {
 
     private void initHttpConfig() {
         String baseUrl = getBaseUrl();
-        LogUtil.i("baseUrl="+baseUrl);
+        LogUtil.i("baseUrl=" + baseUrl);
         if (!StringUtil.isEmpty(baseUrl)) {
             httpClient = new HttpClient.Builder(baseUrl).isDebug(true)
                     .connectTimeout(5000)
@@ -124,6 +124,7 @@ public abstract class BaseNetActivity extends ActionBackActivity {
             httpClient.Api().send(httpBuilder.build(), new ResultSubscriber<>(new Result2Listener<Object>() {
                 @Override
                 public void onResponse(Object o) {
+                    LogUtil.i("onResponse oooo=" + o.toString());
                     if (onHttpListener != null) try {
                         Tags tags = parameter.getTag();
                         int record = 0;
@@ -146,6 +147,7 @@ public abstract class BaseNetActivity extends ActionBackActivity {
 
                 @Override
                 public void onFailure(Object t) {
+                    LogUtil.i("onFailure oooo=" + t.toString());
                     if (onHttpListener != null) try {
                         Tags tags = parameter.getTag();
                         int record = 0;
@@ -158,6 +160,7 @@ public abstract class BaseNetActivity extends ActionBackActivity {
                         }
                         onHttpListener.onFailure(record, message, tags);
                     } catch (Exception e) {
+                        LogUtil.i("oooo=" + e.getMessage());
                         e.printStackTrace();
                     }
                     dismissProgress();

+ 65 - 22
app_modular/apputils/src/main/java/com/modular/apputils/activity/SelectNetAcitivty.java

@@ -8,6 +8,7 @@ import android.support.v7.widget.DefaultItemAnimator;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.text.Editable;
+import android.text.TextUtils;
 import android.util.Log;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
@@ -135,6 +136,8 @@ public class SelectNetAcitivty extends OABaseActivity {
         }
     }
 
+    private boolean isDevice;
+
     private void initView() {
         VoiceSearchView voiceSearchView = (VoiceSearchView) findViewById(R.id.voiceSearchView);
         refreshListView = (PullToRefreshListView) findViewById(R.id.refreshListView);
@@ -148,7 +151,11 @@ public class SelectNetAcitivty extends OABaseActivity {
             @Override
             public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                 lastKey = StringUtil.getText(v);
-                loadSearch(page = 1, lastKey);
+                if (isDevice && !TextUtils.isEmpty(lastKey)) {
+                    loadSearchDevice(lastKey);
+                } else {
+                    loadSearch(page = 1, lastKey);
+                }
                 return false;
             }
         });
@@ -170,13 +177,12 @@ public class SelectNetAcitivty extends OABaseActivity {
             caller = intent.getStringExtra("caller");
             gCaller = intent.getStringExtra("gCaller");
             corekey = intent.getStringExtra("corekey");
+            isDevice = intent.getBooleanExtra("isDevice",false);
         }
         String baseUrl = CommonUtil.getAppBaseUrl(this);
         String sessionId = CommonUtil.getSharedPreferences(this, "sessionId");
-        Log.i("gongpengming", "baseUrl=" + baseUrl);
         httpClient = new HttpClient.Builder(baseUrl)
                 .isDebug(true)
-//                .header("Cookie", "JSESSIONID=" + sessionId)
                 .add("master", CommonUtil.getMaster())
                 .add("sessionUser", CommonUtil.getEmcode())
                 .add("sessionId", sessionId)
@@ -187,25 +193,43 @@ public class SelectNetAcitivty extends OABaseActivity {
         showLoading();
     }
 
+    private void loadSearchDevice(final String keyWork) {
+        refreshListView.setMode(PullToRefreshBase.Mode.DISABLED);
+        HttpClient.Builder builder = new HttpClient.Builder();
+        boolean isForm = StringUtil.isEmpty(gCaller);
+        builder.url("mobile/device/getSearchData.action")
+                .add("caller", isForm ? caller : gCaller)
+                .add("name", fieldKey)
+                .header("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(this, "sessionId"))
+                .add("condition", keyWork)
+                .method(Method.GET);
+        httpClient.Api().send(builder.build(), new ResultSubscriber<>(new ResultListener<Object>() {
+            @Override
+            public void onResponse(Object o) {
+                if (!lastKey.equals(keyWork)) return;
+                try {
+                    handleData(o.toString());
+                    dimssLoading();
+                } catch (Exception e) {
+                    dimssLoading();
+                    if (mAdapter == null || ListUtils.isEmpty(mAdapter.models)) {
+                        mEmptyLayout.showEmpty();
+                    }
+                }
+                refreshListView.onRefreshComplete();
+            }
+        }));
+
+    }
+
     private void loadSearch(int page, final String keyWork) {
+        refreshListView.setMode(PullToRefreshBase.Mode.BOTH);
         String condition = null;
         if (StringUtil.isEmpty(keyWork)) {
             condition = "1=1";
-        } else
-//            if (configMap == null || configMap.isEmpty()) {
+        } else {
             condition = "upper(" + (StringUtil.isEmpty(corekey) ? fieldKey : corekey) + ") like '%" + keyWork.toUpperCase() + "%'";
-//        } else {
-//            String kwUp = keyWork.toUpperCase();
-//            StringBuilder conditionBulid = new StringBuilder();
-//            for (Map.Entry<String, String> e : configMap.entrySet()) {
-//                conditionBulid.append("upper(" + e.getValue() + ") like '%" + kwUp + "%' or ");
-//            }
-//            if (conditionBulid.length() > 2) {
-//                conditionBulid.delete(conditionBulid.length() - 3, conditionBulid.length());
-//            }
-//            condition = conditionBulid.toString();
-//            LogUtil.i("condition=" + condition);
-//        }
+        }
         HttpClient.Builder builder = new HttpClient.Builder();
         boolean isForm = StringUtil.isEmpty(gCaller);
         builder.url("mobile/common/dbfind.action")
@@ -243,8 +267,24 @@ public class SelectNetAcitivty extends OABaseActivity {
 
     private ListAdapter mAdapter = null;
 
+    private void handleDataDevice(String messgae) throws Exception {
+        JSONObject object = JSON.parseObject(messgae);
+        String dataStr = JSONUtil.getText(object, "data");
+        JSONArray data = JSON.parseArray(dataStr);
+        List<Bean> models = new ArrayList<>();
+        Bean b = null;
+        for (int i = 0; i < data.size(); i++) {
+            JSONObject o = data.getJSONObject(i);
+            b = new Bean();
+            b.name = JSONUtil.getText(o, fieldKey);
+            b.json = o.toJSONString();
+            b.showName = getShowName(o);
+            models.add(b);
+        }
+        showByAdapter(models);
+    }
+
     private void handleData(String messgae) throws Exception {
-        LogUtil.prinlnLongMsg("gongpengming", "messgae=" + messgae);
         JSONObject object = JSON.parseObject(messgae);
         JSONArray dbfinds = JSONUtil.getJSONArray(object, "dbfinds", "gridDbfinds");
         String dataStr = JSONUtil.getText(object, "data");
@@ -252,10 +292,9 @@ public class SelectNetAcitivty extends OABaseActivity {
         setData2Adapter(data, dbfinds);
     }
 
-    private Map<String, String> configMap;
 
     private void setData2Adapter(JSONArray data, JSONArray dbfinds) throws Exception {
-        configMap = new LinkedHashMap<>();
+         Map<String, String> configMap = new LinkedHashMap<>();
         //获取配置
         JSONObject config = null;
         String fieldKeyLike = null;
@@ -291,6 +330,10 @@ public class SelectNetAcitivty extends OABaseActivity {
             if (!StringUtil.isEmpty(b.name))
                 models.add(b);
         }
+        showByAdapter(models);
+    }
+
+    private void showByAdapter(List<Bean> models) {
         if (mAdapter == null) {
             mAdapter = new ListAdapter(models);
             refreshListView.setAdapter(mAdapter);
@@ -318,9 +361,9 @@ public class SelectNetAcitivty extends OABaseActivity {
         }
     }
 
-    private String getShowName(Map<String, String> object) throws Exception {
+    private <T> String getShowName(Map<String, T> object) throws Exception {
         StringBuilder builder = new StringBuilder();
-        for (Map.Entry<String, String> e : object.entrySet()) {
+        for (Map.Entry<String, T> e : object.entrySet()) {
             builder.append(e.getValue() + ",");
         }
         StringUtil.removieLast(builder);

+ 1 - 1
app_modular/apputils/src/main/java/com/modular/apputils/utils/SwitchUtil.java

@@ -13,7 +13,7 @@ public class SwitchUtil {
     }
 
     public static boolean showShebeiguanli() {
-        return  BaseConfig.isDebug();
+        return false;
     }
 
     public static boolean newFeePlease() {

+ 1 - 0
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceDataFormAddActivity.java

@@ -1022,6 +1022,7 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
                                 startActivityForResult(new Intent(ct, SelectNetAcitivty.class)
                                                 .putExtra("fieldKey", data.getField())
                                                 .putExtra("caller", caller)
+                                                .putExtra("isDevice", true)
                                                 .putExtra("device", data.getName().equals("设备编号"))
                                                 .putExtra("isForm", true)
                                         , 90);

+ 98 - 21
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/activity/PurchaseDetailsActivity.java

@@ -8,7 +8,9 @@ import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.text.Editable;
 import android.text.TextUtils;
+import android.view.KeyEvent;
 import android.view.LayoutInflater;
+import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.BaseAdapter;
@@ -44,7 +46,6 @@ import com.modular.apputils.activity.BaseNetActivity;
 import com.modular.apputils.listener.OnSmartHttpListener;
 import com.modular.apputils.network.Parameter;
 import com.modular.apputils.network.Tags;
-import com.modular.apputils.utils.TestStr;
 import com.uas.appworks.OA.platform.adapter.PurchaseDetailsAdapter;
 import com.uas.appworks.OA.platform.model.Purchase;
 import com.uas.appworks.R;
@@ -62,12 +63,14 @@ import java.util.Map;
 
 public class PurchaseDetailsActivity extends BaseNetActivity implements OnSmartHttpListener {
 
-    private long varId;
+    private String varId;
     private String varStatus;
 
     private RecyclerView mRecyclerView;
     private PurchaseDetailsAdapter mAdapter;
 
+    private boolean changeStatus;
+
     @Override
     protected int getLayoutId() {
         return R.layout.activity_purchase_details;
@@ -83,17 +86,34 @@ public class PurchaseDetailsActivity extends BaseNetActivity implements OnSmartH
     protected void init() throws Exception {
         Intent intent = getIntent();
         if (intent != null) {
-            varId = intent.getLongExtra(Constants.FLAG.KEY_PURCHASE_ID, 0);
+            varId = intent.getStringExtra(Constants.FLAG.KEY_PURCHASE_ID);
             varStatus = intent.getStringExtra(Constants.FLAG.KEY_PURCHASE_STATUS);
         }
         if (varStatus == null) {
             varStatus = "";
         }
-        getSupportActionBar().setTitle(varStatus);
+        changeStatus = false;
+        setStatus();
         initView();
         initData();
     }
 
+    private void setStatus() {
+        String title = "";
+        switch (varStatus) {
+            case Constants.FLAG.STATE_CUSTOMER_INQUIRY_END:
+                title = "已结案";
+                break;
+            case Constants.FLAG.STATE_CUSTOMER_INQUIRY_DONE:
+                title = "已回复";
+                break;
+            case Constants.FLAG.STATE_CUSTOMER_INQUIRY_TODO:
+                title = "待回复";
+                break;
+        }
+        getSupportActionBar().setTitle(title);
+    }
+
     private void initView() {
         mRecyclerView = findViewById(R.id.mRecyclerView);
         mRecyclerView.setLayoutManager(new LinearLayoutManager(ct));
@@ -107,7 +127,6 @@ public class PurchaseDetailsActivity extends BaseNetActivity implements OnSmartH
 
 
     private void loadData() {
-        varId = 937370;
         int enuu = 10041559;
         String phone = "15671616315";
         Parameter.Builder builder = new Parameter.Builder();
@@ -126,34 +145,40 @@ public class PurchaseDetailsActivity extends BaseNetActivity implements OnSmartH
 
     private void verifiReply(List<Purchase> purchases) {
         replyNumber = 0;
-        for (Purchase purchase : purchases) {
-            if (!TextUtils.isEmpty(purchase.getDate()) &&
-                    !TextUtils.isEmpty(purchase.getNumber()) &&
-                    !TextUtils.isEmpty(purchase.getRemarksInput())) {
-                reply(purchase);
+        List<Map<String, Object>> mapList = new ArrayList<>();
+        for (int i = 1; i < purchases.size(); i++) {
+            Purchase purchase = purchases.get(i);
+            if (!TextUtils.isEmpty(purchase.getDate()) && purchase.isCanInput()) {
+                Map<String, Object> map = new HashMap<>();
+                map.put("qty", StringUtil.getFirstInt(purchase.getNumber(), 0));
+                map.put("delivery", DateFormatUtil.str2Long(purchase.getDate(), DateFormatUtil.YMD));//
+                map.put("remark", purchase.getRemarksInput());
+                map.put("pdId", purchase.getId());
+                mapList.add(map);
             }
         }
+        if (!ListUtils.isEmpty(mapList)) {
+            String json = JSONUtil.map2JSON(mapList);
+            reply(json);
+        } else {
+            LogUtil.i("没有可以提交的明细表单");
+        }
     }
 
-    private void reply(Purchase purchases) {
+    private void reply(String json) {
         replyNumber++;
         int enuu = 10041559;
         String phone = "15671616315";
         Parameter.Builder builder = new Parameter.Builder();
-        Map<String, Object> map = new HashMap<>();
-        map.put("qty", purchases.getNumber());
-        map.put("delivery", DateFormatUtil.str2Long(purchases.getDate(), DateFormatUtil.YMD));//
-        map.put("remark", purchases.getRemarksInput());
-        String json = JSONUtil.map2JSON(map);
         LogUtil.i("json=" + json);
         builder.mode(Method.POST)
-                .url("mobile/sale/orders/items/" + purchases.getId() + "/reply")
+                .url("mobile/sale/orders/reply")
                 .addParams("en_uu", enuu)
                 .addParams("json", json)
+                .addParams("user_tel", phone)
                 .record(0x12)
                 .showLog(true)
-                .autoProgress(true)
-                .addParams("user_tel", phone);
+                .autoProgress(true);
         requestHttp(builder, this);
     }
 
@@ -182,7 +207,7 @@ public class PurchaseDetailsActivity extends BaseNetActivity implements OnSmartH
                 if (replyNumber == 0) {
                     Toast.makeText(MyApplication.getInstance(), "回复成功", Toast.LENGTH_SHORT).show();
                     if (this != null) {
-                        this.finish();
+                        loadData();
                     }
                 }
                 break;
@@ -192,6 +217,11 @@ public class PurchaseDetailsActivity extends BaseNetActivity implements OnSmartH
     @Override
     public void onFailure(int what, String message, Tags tag) throws Exception {
         ToastUtil.showToast(ct, message);
+        if (0x12 == what && StringUtil.isEmpty(message) && this != null) {
+            loadData();
+        }
+
+
     }
 
 
@@ -200,6 +230,7 @@ public class PurchaseDetailsActivity extends BaseNetActivity implements OnSmartH
             @Override
             public void run() {
                 JSONObject object = JSON.parseObject(message);
+                setVarStatus(object);
                 final List<Purchase> dataList = new ArrayList<>();
                 dataList.add(getPurchase(true, object));
                 JSONArray orderItems = JSONUtil.getJSONArray(object, "orderItems");
@@ -211,6 +242,7 @@ public class PurchaseDetailsActivity extends BaseNetActivity implements OnSmartH
                 OAHttpHelper.getInstance().post(new Runnable() {
                     @Override
                     public void run() {
+                        setStatus();
                         setData2Adapter(dataList);
                     }
                 });
@@ -218,6 +250,30 @@ public class PurchaseDetailsActivity extends BaseNetActivity implements OnSmartH
         });
     }
 
+    private void setVarStatus(JSONObject object) {
+        String end = JSONUtil.getText(object, "end");
+        if (!TextUtils.isEmpty(end) && "1".equals(end)) {
+            if (!varStatus.equals(Constants.FLAG.STATE_PURCHASE_ORDER_END)) {
+                changeStatus = true;
+                varStatus = Constants.FLAG.STATE_PURCHASE_ORDER_END;
+            }
+        } else {
+            String status = JSONUtil.getText(object, "status");
+            String reply = JSONUtil.getText(object, "reply");
+            if ("200".equals(status)) {
+                if (!varStatus.equals(Constants.FLAG.STATE_PURCHASE_ORDER_TODO)) {
+                    changeStatus = true;
+                    varStatus = Constants.FLAG.STATE_PURCHASE_ORDER_TODO;
+                }
+            } else if ("201".equals(status) && "1".equals(reply)) {
+                if (!varStatus.equals(Constants.FLAG.STATE_PURCHASE_ORDER_DONE)) {
+                    changeStatus = true;
+                    varStatus = Constants.FLAG.STATE_PURCHASE_ORDER_DONE;
+                }
+            }
+        }
+    }
+
 
     private Purchase getPurchase(boolean first, JSONObject object) {
         Purchase purchase = new Purchase();
@@ -228,11 +284,12 @@ public class PurchaseDetailsActivity extends BaseNetActivity implements OnSmartH
         String number = JSONUtil.getText(object, "qty");//数量
         String date = DateFormatUtil.long2Str(JSONUtil.getLong(object, "replyDelivery", "delivery"), DateFormatUtil.YMD);//交货日期
         String replyRemark = JSONUtil.getText(object, "replyRemark");//采购单号
+        int status = JSONUtil.getInt(object, "status");//状态
 
 
         String code;//采购单号
         String remarks;//备注|产品
-        String alls ;//总额|产品规格
+        String alls;//总额|产品规格
         if (first) {
             code = JSONUtil.getText(object, "code");//采购单号
             remarks = JSONUtil.getText(object, "remark");//备注
@@ -243,6 +300,7 @@ public class PurchaseDetailsActivity extends BaseNetActivity implements OnSmartH
             remarks = JSONUtil.getText(product, "title");
             alls = JSONUtil.getText(product, "spec");
         }
+        purchase.setCanInput(status == 200);
         purchase.setId(id);
         purchase.setCode(code);
         purchase.setCustomer(client);
@@ -255,4 +313,23 @@ public class PurchaseDetailsActivity extends BaseNetActivity implements OnSmartH
         purchase.setRemarksInput(replyRemark);
         return purchase;
     }
+
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == android.R.id.home) {
+            if (changeStatus) {
+                setResult(0x12, new Intent().putExtra(Constants.FLAG.KEY_PURCHASE_STATUS, varStatus));
+            }
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        if (keyCode == KeyEvent.KEYCODE_BACK && changeStatus) {
+            setResult(0x12, new Intent().putExtra(Constants.FLAG.KEY_PURCHASE_STATUS, varStatus));
+        }
+        return super.onKeyDown(keyCode, event);
+    }
 }

+ 14 - 8
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/adapter/PurchaseDetailsAdapter.java

@@ -20,6 +20,7 @@ import com.common.data.ListUtils;
 import com.common.data.StringUtil;
 import com.common.data.TextUtil;
 import com.common.system.DisplayUtil;
+import com.core.app.Constants;
 import com.core.utils.time.wheel.DateTimePicker;
 import com.core.widget.listener.EditChangeListener;
 import com.uas.appworks.OA.platform.model.Purchase;
@@ -43,7 +44,7 @@ public class PurchaseDetailsAdapter extends RecyclerView.Adapter<RecyclerView.Vi
         this.context = context;
         this.purchases = purchases;
         mInflater = LayoutInflater.from(context);
-        canReply = (status != null && !status.equals("已结案"));
+        canReply = (status != null && status.equals(Constants.FLAG.STATE_CUSTOMER_INQUIRY_TODO));
 
     }
 
@@ -97,12 +98,7 @@ public class PurchaseDetailsAdapter extends RecyclerView.Adapter<RecyclerView.Vi
             dateEd = itemView.findViewById(R.id.dateEd);
             numberEd = itemView.findViewById(R.id.numberEd);
             remarksInputEd = itemView.findViewById(R.id.remarksInputEd);
-            if (!canReply) {
-                numberEd.setClickable(false);
-                numberEd.setFocusable(false);
-                remarksInputEd.setClickable(false);
-                remarksInputEd.setFocusable(false);
-            }
+
         }
     }
 
@@ -171,11 +167,21 @@ public class PurchaseDetailsAdapter extends RecyclerView.Adapter<RecyclerView.Vi
         holder.numberEd.setText(purchase.getNumber());
         holder.remarksInputEd.setText(purchase.getRemarksInput());
 
-        if (canReply) {
+        if (canReply && purchase.isCanInput()) {
             holder.dateEd.setTag(position);
             holder.dateEd.setOnClickListener(onClickListener);
             holder.numberEd.addTextChangedListener(new TextChangListener(position, 1));
             holder.remarksInputEd.addTextChangedListener(new TextChangListener(position, 2));
+            holder.numberEd.setClickable(true);
+            holder.numberEd.setFocusable(true);
+            holder.remarksInputEd.setClickable(true);
+            holder.remarksInputEd.setFocusable(true);
+        } else {
+            holder.dateEd.setOnClickListener(null);
+            holder.numberEd.setClickable(false);
+            holder.numberEd.setFocusable(false);
+            holder.remarksInputEd.setClickable(false);
+            holder.remarksInputEd.setFocusable(false);
         }
 
 

+ 10 - 0
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/model/Purchase.java

@@ -6,6 +6,7 @@ package com.uas.appworks.OA.platform.model;
 
 public class Purchase {
     private int id;
+    private boolean canInput;
     private String customer;
     private String address;
     private  String code;
@@ -16,6 +17,15 @@ public class Purchase {
     private  String number;
     private  String remarksInput;
 
+
+    public boolean isCanInput() {
+        return canInput;
+    }
+
+    public void setCanInput(boolean canInput) {
+        this.canInput = canInput;
+    }
+
     public int getId() {
         return id;
     }