Преглед изворни кода

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

Arison пре 7 година
родитељ
комит
3c6b194819
27 измењених фајлова са 329 додато и 92 уклоњено
  1. 0 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/SelectAimActivity.java
  2. 1 11
      app_core/common/src/main/assets/work_menu.json
  3. BIN
      app_core/common/src/main/res/drawable-hdpi/ic_work_card.png
  4. BIN
      app_core/common/src/main/res/drawable-hdpi/icon_menu_my_scheduler.png
  5. BIN
      app_core/common/src/main/res/drawable-xhdpi/ic_work_card.png
  6. BIN
      app_core/common/src/main/res/drawable-xhdpi/icon_menu_my_scheduler.png
  7. BIN
      app_core/common/src/main/res/drawable-xxhdpi/ic_work_card.png
  8. BIN
      app_core/common/src/main/res/drawable-xxhdpi/icon_menu_my_scheduler.png
  9. 1 1
      app_core/common/src/main/res/layout/fragment_me.xml
  10. 2 1
      app_modular/appme/src/main/AndroidManifest.xml
  11. 56 16
      app_modular/appme/src/main/java/com/uas/appme/other/activity/WorkCardActivity.java
  12. BIN
      app_modular/appme/src/main/res/drawable-hdpi/bg_work_card_head.png
  13. BIN
      app_modular/appme/src/main/res/drawable-xhdpi/bg_work_card_head.png
  14. BIN
      app_modular/appme/src/main/res/drawable-xxhdpi/bg_work_card_head.png
  15. 80 7
      app_modular/appme/src/main/res/layout/activity_work_card.xml
  16. 1 0
      app_modular/appmessages/src/main/java/com/modular/appmessages/model/MessageHeader.java
  17. 74 2
      app_modular/appmessages/src/main/java/com/modular/appmessages/presenter/MessagePresenter.java
  18. 7 2
      app_modular/apputils/src/main/java/com/modular/apputils/presenter/BillPresenter.java
  19. 21 0
      app_modular/apputils/src/main/java/com/modular/apputils/utils/ImageViewUtils.java
  20. 9 0
      app_modular/apputils/src/main/java/com/modular/apputils/utils/TestStr.java
  21. 35 31
      app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/presenter/SelectAimPresenter.java
  22. 5 5
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/activity/BusinessTravelActivity.java
  23. 7 5
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/adapter/BusinessTravelAdapter.java
  24. 6 1
      app_modular/appworks/src/main/java/com/uas/appworks/adapter/CustomerCareListAdapter.java
  25. 17 1
      app_modular/appworks/src/main/java/com/uas/appworks/crm3_0/activity/CustomerManageActivity.java
  26. 4 4
      app_modular/appworks/src/main/java/com/uas/appworks/utils/TravelUtils.java
  27. 3 2
      app_modular/appworks/src/main/res/layout/activity_customer_manage.xml

+ 0 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/SelectAimActivity.java

@@ -43,7 +43,6 @@ public class SelectAimActivity extends OABaseActivity implements ISelectAim {
     private SelectAimAdapter adapter;
     private SelectAimPresenter presenter;
 
-    private String lastInput = "";
 
 
     @Override
@@ -75,8 +74,6 @@ public class SelectAimActivity extends OABaseActivity implements ISelectAim {
             public void afterTextChanged(Editable s) {
                 String input = s.toString();
                 input = input.replaceAll(" ", "").replaceAll("\n", "");
-                if (lastInput.equals(input)) return;
-                lastInput = input;
                 presenter.seachByKey(input);
             }
         });

+ 1 - 11
app_core/common/src/main/assets/work_menu.json

@@ -278,7 +278,7 @@
         "isLocalMenu": true,
         "menuName": "str_work_customer_manage",
         "menuIcon": "ic_work_customer_manage",
-        "menuActivity": "com.modular.work.crm3_0.activity.CustomerManageActivity",
+        "menuActivity": "com.modular.crm.CustomerListActivity",
         "menuTag": "local_customer_manage",
         "menuUrl": "",
         "caller": "",
@@ -323,16 +323,6 @@
         "menuUrl": "",
         "caller": "",
         "isHide": false
-      },
-      {
-        "isLocalMenu": true,
-        "menuName": "客户拜访",
-        "menuIcon": "local_customer_visit",
-        "menuActivity": "com.modular.work.crm3_0.activity.CustomerVisitActivity",
-        "menuTag": "local_customer_visit",
-        "menuUrl": "",
-        "caller": "",
-        "isHide": false
       }
     ]
   },

BIN
app_core/common/src/main/res/drawable-hdpi/ic_work_card.png


BIN
app_core/common/src/main/res/drawable-hdpi/icon_menu_my_scheduler.png


BIN
app_core/common/src/main/res/drawable-xhdpi/ic_work_card.png


BIN
app_core/common/src/main/res/drawable-xhdpi/icon_menu_my_scheduler.png


BIN
app_core/common/src/main/res/drawable-xxhdpi/ic_work_card.png


BIN
app_core/common/src/main/res/drawable-xxhdpi/icon_menu_my_scheduler.png


+ 1 - 1
app_core/common/src/main/res/layout/fragment_me.xml

@@ -646,7 +646,7 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_centerVertical="true"
-                android:drawableLeft="@drawable/icon_uu_setting"
+                android:drawableLeft="@drawable/ic_work_card"
                 android:drawablePadding="10dp"
                 android:gravity="center"
                 android:text="电子工牌"

+ 2 - 1
app_modular/appme/src/main/AndroidManifest.xml

@@ -121,7 +121,8 @@
         <!-- <activity android:name=".settings.activity.PayTestActivity"></activity> -->
 
         <activity android:name=".settings.activity.SystemAdminActivity" />
-        <activity android:name=".other.activity.WorkCardActivity" />
+        <activity android:name=".other.activity.WorkCardActivity"
+            android:label="电子工牌"/>
         <activity android:name=".settings.activity.FontSizeActivity"
 
             android:launchMode="singleTask">

+ 56 - 16
app_modular/appme/src/main/java/com/uas/appme/other/activity/WorkCardActivity.java

@@ -3,24 +3,36 @@ package com.uas.appme.other.activity;
 import android.graphics.Bitmap;
 import android.os.Bundle;
 import android.widget.ImageView;
+import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baidu.aip.excep.utils.Base64Util;
+import com.common.LogUtil;
+import com.common.config.BaseConfig;
 import com.common.data.JSONUtil;
 import com.common.data.ListUtils;
 import com.core.base.BaseActivity;
 import com.core.utils.CommonUtil;
+import com.me.imageloader.ImageLoaderUtil;
 import com.modular.apputils.listener.OnSmartHttpListener;
 import com.modular.apputils.network.Parameter;
 import com.modular.apputils.network.Tags;
+import com.modular.apputils.utils.ImageViewUtils;
+import com.modular.apputils.utils.TestStr;
 import com.modular.apputils.utils.UUHttpHelper;
 import com.uas.appme.R;
 
+import de.hdodenhof.circleimageview.CircleImageView;
+
 public class WorkCardActivity extends BaseActivity {
     private ImageView logoIv;
-    private ImageView headIv;
+    private TextView companyNameTv;
+    private TextView nameTv;
+    private TextView emCodeTv;
+    private TextView positionTv;
+    private CircleImageView headIv;
 
     private UUHttpHelper mUUHttpHelper;
 
@@ -34,41 +46,69 @@ public class WorkCardActivity extends BaseActivity {
     private void initView() {
         mUUHttpHelper = new UUHttpHelper(CommonUtil.getAppBaseUrl(ct));
         logoIv = (ImageView) findViewById(R.id.logoIv);
-        headIv = (ImageView) findViewById(R.id.headIv);
+        companyNameTv = (TextView) findViewById(R.id.companyNameTv);
+        nameTv = (TextView) findViewById(R.id.nameTv);
+        emCodeTv = (TextView) findViewById(R.id.emCodeTv);
+        positionTv = (TextView) findViewById(R.id.positionTv);
+        headIv = (CircleImageView) findViewById(R.id.headIv);
+
+
         loadData();
     }
 
     private void loadData() {
         mUUHttpHelper.requestCompanyHttp(new Parameter.Builder()
-                .url("mobile/oa/getLabourCardInfor.action")
-                .addParams("emcode",CommonUtil.getEmcode())
+                        .url("mobile/oa/getLabourCardInfor.action")
+                        .addParams("emcode", CommonUtil.getEmcode())
                 , new OnSmartHttpListener() {
                     @Override
                     public void onSuccess(int what, String message, Tags tag) throws Exception {
-                        JSONObject object= JSON.parseObject(message);
-                        JSONArray mLabourCardInfors= JSONUtil.getJSONArray(object,"LabourCardInfor");
+                        JSONObject object = JSON.parseObject(message);
+                        JSONArray mLabourCardInfors = JSONUtil.getJSONArray(object, "LabourCardInfor");
                         if (!ListUtils.isEmpty(mLabourCardInfors)) {
                             handlerData(mLabourCardInfors.getJSONObject(0));
+                        }else{
+                            handlerData(new JSONObject());
                         }
                     }
 
                     @Override
                     public void onFailure(int what, String message, Tags tag) throws Exception {
-
+                        handlerData(new JSONObject());
                     }
                 });
+
+        //TODO 测试数据
+        if (BaseConfig.isDebug()) {
+            JSONObject object = JSON.parseObject(TestStr.LABOUR_CARD_INFOR);
+            JSONArray mLabourCardInfors = JSONUtil.getJSONArray(object, "LabourCardInfor");
+            if (!ListUtils.isEmpty(mLabourCardInfors)) {
+                handlerData(mLabourCardInfors.getJSONObject(0));
+            }
+        }
     }
 
-    private void handlerData( JSONObject mLabourCardInfor ){
-        String em_photourl=JSONUtil.getText(mLabourCardInfor,"EM_PHOTOURL");
-        String em_name=JSONUtil.getText(mLabourCardInfor,"EM_NAME");
-        String em_code=JSONUtil.getText(mLabourCardInfor,"EM_CODE");
-        String em_sex=JSONUtil.getText(mLabourCardInfor,"EM_SEX");
-        String em_mobile=JSONUtil.getText(mLabourCardInfor,"EM_MOBILE");
-        String em_position=JSONUtil.getText(mLabourCardInfor,"EM_POSITION");
-        String en_logo=JSONUtil.getText(mLabourCardInfor,"EN_LOGO");
+
+    private void handlerData(JSONObject mLabourCardInfor) {
+        String em_cop = JSONUtil.getText(mLabourCardInfor, "EM_COP");
+        String em_photourl = JSONUtil.getText(mLabourCardInfor, "EM_PHOTOURL");
+        String em_name = JSONUtil.getText(mLabourCardInfor, "EM_NAME");
+        String em_code = JSONUtil.getText(mLabourCardInfor, "EM_CODE");
+        String em_sex = JSONUtil.getText(mLabourCardInfor, "EM_SEX");
+        String em_mobile = JSONUtil.getText(mLabourCardInfor, "EM_MOBILE");
+        String em_position = JSONUtil.getText(mLabourCardInfor, "EM_DEPART");
+        String en_logo = JSONUtil.getText(mLabourCardInfor, "EN_LOGO");
+
+        companyNameTv.setText(em_cop);
+        nameTv.setText(em_name);
+        emCodeTv.setText("ID " + em_code);
+        positionTv.setText(em_position);
+        positionTv.setText(em_position);
+        String headUrl = ImageViewUtils.getErpImageUrl(em_photourl);
+        LogUtil.i("gong", "headUrl=" + headUrl);
+        ImageLoaderUtil.getInstance().loadImage(headUrl, headIv);
         Bitmap logoMap = Base64Util.base64ToBitmap(en_logo);
-        if (logoMap!=null){
+        if (logoMap != null) {
             logoIv.setImageBitmap(logoMap);
         }
     }

BIN
app_modular/appme/src/main/res/drawable-hdpi/bg_work_card_head.png


BIN
app_modular/appme/src/main/res/drawable-xhdpi/bg_work_card_head.png


BIN
app_modular/appme/src/main/res/drawable-xxhdpi/bg_work_card_head.png


+ 80 - 7
app_modular/appme/src/main/res/layout/activity_work_card.xml

@@ -2,24 +2,97 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:background="@color/white"
     android:orientation="vertical">
 
 
     <ImageView
         android:id="@+id/logoIv"
-        android:layout_width="match_parent"
-        android:layout_height="50dp" />
+        android:layout_width="wrap_content"
+        android:layout_height="55dp"
+        android:layout_marginLeft="@dimen/padding"
+        android:layout_marginTop="@dimen/paddingMin" />
 
     <TextView
+        android:id="@+id/companyNameTv"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/padding"
         android:gravity="center"
         android:text="深圳优软科技有限公司"
+        android:textColor="#FF2B88AF"
         android:textSize="20sp" />
 
-    <ImageView
-        android:id="@+id/headIv"
-        android:layout_width="80dp"
-        android:layout_gravity="center"
-        android:layout_height="80dp" />
+
+    <FrameLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_marginTop="@dimen/paddingMax">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_marginTop="74dp"
+            android:background="#FF2B88AF"
+            android:gravity="center_horizontal"
+            android:orientation="vertical"
+            android:paddingTop="90dp">
+
+            <TextView
+                android:id="@+id/nameTv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="黄耀鹏"
+                android:textColor="@color/white"
+                android:textSize="15sp" />
+
+            <TextView
+                android:id="@+id/emCodeTv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/padding"
+                android:text="ID   T03674"
+                android:textColor="@color/white"
+                android:textSize="15sp" />
+
+            <TextView
+                android:id="@+id/positionTv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/padding"
+                android:text="优软科技移动app部"
+                android:textColor="@color/white"
+                android:textSize="15sp" />
+
+            <View
+                android:layout_width="0dp"
+                android:layout_height="0dp"
+                android:layout_weight="1" />
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="1dp"
+                android:background="#F7F8F8" />
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginBottom="@dimen/padding"
+                android:layout_marginTop="@dimen/paddingMin"
+                android:text="英唐智慧   全球共享"
+                android:textColor="@color/white"
+                android:textSize="12sp" />
+        </LinearLayout>
+
+
+        <de.hdodenhof.circleimageview.CircleImageView
+            android:id="@+id/headIv"
+            android:layout_width="140dp"
+            android:layout_height="140dp"
+            android:padding="@dimen/paddingMin"
+            android:layout_gravity="center_horizontal"
+            android:background="@drawable/bg_work_card_head" />
+
+
+    </FrameLayout>
 </LinearLayout>

+ 1 - 0
app_modular/appmessages/src/main/java/com/modular/appmessages/model/MessageHeader.java

@@ -16,6 +16,7 @@ public class MessageHeader {
      * 5.代办工作
      * 6.订阅号
      * 7.一元捐
+     * 21.我的日程
      */
     private int type;//根据类型来决定要调转的界面
     private int icon;

+ 74 - 2
app_modular/appmessages/src/main/java/com/modular/appmessages/presenter/MessagePresenter.java

@@ -58,13 +58,18 @@ import com.modular.appmessages.model.MessageNew;
 import com.modular.appmessages.model.SubMessage;
 import com.modular.appmessages.presenter.imp.IMessageView;
 import com.modular.appmessages.util.ApprovalUtil;
+import com.modular.apputils.listener.OnSmartHttpListener;
+import com.modular.apputils.network.Parameter;
+import com.modular.apputils.network.Tags;
 import com.modular.apputils.utils.SignUtils;
 import com.modular.apputils.utils.SwitchUtil;
+import com.modular.apputils.utils.UUHttpHelper;
 import com.modular.apputils.utils.VoiceUtils;
 import com.modular.booking.activity.services.BServiceListActivity;
 import com.modular.booking.model.SBMenuModel;
 import com.uas.appworks.OA.platform.activity.BusinessTravelActivity;
 import com.uas.appworks.OA.platform.activity.PurchaseDetailsActivity;
+import com.uas.appworks.activity.ScheduleActivity;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -88,6 +93,7 @@ public class MessagePresenter implements OnHttpResultListener {
     private final int LOAD_BOOKING = 0x17;//小秘书红点
     private final int LOAD_REAL_TIME = 0x18;
     private final int IS_COMPANY_ADMIN = 0x19;
+    private final int LOAD_SCHEDULE = 0x20;//获取日程数据
 
     public static final int REAL_TIME_FORM = 7;
     public static final int BUSINESS_STATISTICS = 8;
@@ -101,7 +107,7 @@ public class MessagePresenter implements OnHttpResultListener {
     private String subReadTime;//订阅号点击时间
 
     private String filter;//搜索数据
-    private int emnewsNum, subsNum, processNum, taskNum, bookingNum, uuHelperNum;//红点消息分类数量
+    private int emnewsNum, subsNum, processNum, taskNum, bookingNum, uuHelperNum, scheduleNum;//红点消息分类数量
     private String[] RECEIVER_LIST = {ConnectivityManager.CONNECTIVITY_ACTION, OAConfig.AUTO_SIGIN_ALART, MsgBroadcast.ACTION_MSG_COMPANY_UPDATE, "com.app.home.update"
             , MsgBroadcast.ACTION_MSG_UI_UPDATE};
     private BroadcastReceiver dataChangeReceiver = new BroadcastReceiver() {
@@ -155,6 +161,9 @@ public class MessagePresenter implements OnHttpResultListener {
             loadProcessToDo();//获取审批流接口
             loadSubData();
             loadNews(isB2b);//获取消息
+            if (!isB2b) {
+                loadSchedule();
+            }
         } else if (role.equals("3")) {//B2b用户
             isB2b = true;
             loadB2bNewsCount();
@@ -251,9 +260,48 @@ public class MessagePresenter implements OnHttpResultListener {
                 .setWhat(LOAD_EMNEWS)
                 .bulid();
         OAHttpHelper.getInstance().requestHttp(request, this);
+    }
+
+    /**
+     * 获取日程
+     */
+    private void loadSchedule() {
+        if (mUUHttpHelper == null) {
+            mUUHttpHelper = new UUHttpHelper(CommonUtil.getSchedulerBaseUrl());
+        }
+        String sessionId= CommonUtil.getSharedPreferences(ct, "sessionId");
+        mUUHttpHelper.requestHttp(new Parameter.Builder()
+                .url("schedule/getSchedule")
+                .addParams("imid", MyApplication.getInstance().getLoginUserId())
+                .addParams("uasUrl", CommonUtil.getAppBaseUrl(ct))
+                .addParams("emcode", CommonUtil.getEmcode())
+                .addParams("master", CommonUtil.getMaster())
+                .addParams("sessionId",sessionId)
+                .addSuperHeaders("Cookie", "JSESSIONID=" + sessionId)
+                .record(LOAD_SCHEDULE), mOnSmartHttpListener);
 
     }
 
+    private UUHttpHelper mUUHttpHelper;
+    private OnSmartHttpListener mOnSmartHttpListener = new OnSmartHttpListener() {
+        @Override
+        public void onSuccess(int what, String message, Tags tag) throws Exception {
+            JSONObject object = JSON.parseObject(message);
+            switch (what) {
+                case LOAD_SCHEDULE:
+                    if (JSONUtil.getBoolean(object, "success")) {
+                        int unRead = JSONUtil.getInt(object, "data");
+                        showScheduleNum(unRead);
+                    }
+                    break;
+            }
+        }
+
+        @Override
+        public void onFailure(int what, String message, Tags tag) throws Exception {
+
+        }
+    };
 
     private void postReadNews(String ids) {
         Map<String, Object> param = new HashMap<>();
@@ -422,6 +470,10 @@ public class MessagePresenter implements OnHttpResultListener {
                 } else if ("1".equals(result)) {
                     iMessageView.updateHeaderView(BUSINESS_STATISTICS, 1, "", "");
                 }
+                break;
+            case LOAD_SCHEDULE:
+                //TODO 获取日程数据
+                break;
             default:
                 break;
         }
@@ -551,6 +603,12 @@ public class MessagePresenter implements OnHttpResultListener {
         iMessageView.updateHeaderView(6, num, num > 0 ? title : "", time);
     }
 
+    private void showScheduleNum(int num) {
+        scheduleNum = num;
+        updateForUnReader();
+        iMessageView.updateHeaderView(21, num, num > 0 ? "你有新的日程" : "", "");
+    }
+
     private void saveSubs2Db(JSONObject o) throws Exception {
         JSONArray array = o.getJSONArray("data");
         if (ListUtils.isEmpty(array)) return;
@@ -1035,7 +1093,7 @@ public class MessagePresenter implements OnHttpResultListener {
 
     /*跟新未读红点信息*/
     private void updateForUnReader() {
-        int num = subsNum + processNum + uuHelperNum + emnewsNum + taskNum + bookingNum;
+        int num = subsNum + processNum + uuHelperNum + emnewsNum + taskNum + bookingNum + scheduleNum;
         if (this.unReaderListener != null) {
             this.unReaderListener.setUnReader(num);
         }
@@ -1128,6 +1186,16 @@ public class MessagePresenter implements OnHttpResultListener {
             models.addAll(getErpHeader());
         }
 
+        if (1 == 1) {
+            MessageNew h = new MessageNew();
+            MessageHeader model = new MessageHeader(StringUtil.getMessage(R.string.my_scheduler));
+            model.setIcon(R.drawable.icon_menu_my_scheduler);
+            model.setSubDoc("");
+            model.setType(21);
+            model.setRedKey("my_scheduler");
+            h.setT(model);
+            models.add(h);
+        }
         if (PreferenceUtils.getInt("UUSTEP", -1) == 1) {
             //显示UU运动
             MessageNew h = new MessageNew();
@@ -1364,6 +1432,10 @@ public class MessagePresenter implements OnHttpResultListener {
                 intent = new Intent(ct, PurchaseDetailsActivity.class).putExtra(Constants.FLAG.EXTRA_B2B_LIST_STATE, "待回复");
                 ct.startActivity(intent);
                 break;
+            case 21:
+                intent = new Intent(ct, ScheduleActivity.class);
+                ct.startActivity(intent);
+                break;
             default:
                 break;
         }

+ 7 - 2
app_modular/apputils/src/main/java/com/modular/apputils/presenter/BillPresenter.java

@@ -324,12 +324,12 @@ public class BillPresenter extends BaseNetPresenter implements OnSmartHttpListen
                 break;
             case SAVE_AND_SUBMIT:
                 if (JSONUtil.getBoolean(jsonObject, "success")) {
-                    if (mId<=0){
+                    if (mId <= 0) {
                         int keyvalue = JSONUtil.getInt(jsonObject, "keyvalue");
                         String formcode = JSONUtil.getText(jsonObject, "formcode");
                         judgeApproval(keyvalue, formcode);
                         iBill.showToast(R.string.save_success);
-                    }else{
+                    } else {
                         judgeApproval(mId, "");
                         iBill.showToast(R.string.save_success);
                     }
@@ -585,6 +585,11 @@ public class BillPresenter extends BaseNetPresenter implements OnSmartHttpListen
         }
         if ((type.equals("D") || type.equals("T")) && TextUtils.isEmpty(defValue)) {
             defValue = DateFormatUtil.long2Str(System.currentTimeMillis() + 1000 * 10 * 60, DateFormatUtil.YMD_HMS);
+            if (caption.contains("生日")) {
+                String day = DateFormatUtil.long2Str(System.currentTimeMillis(), DateFormatUtil.YMD);
+                mBillModel.setValue(day);
+                mBillModel.setDisplay(defValue);
+            }
         }
         mBillModel.setFindFunctionName(findFunctionName);
         mBillModel.setCaption(caption);

+ 21 - 0
app_modular/apputils/src/main/java/com/modular/apputils/utils/ImageViewUtils.java

@@ -0,0 +1,21 @@
+package com.modular.apputils.utils;
+
+import com.core.app.MyApplication;
+import com.core.utils.CommonUtil;
+
+public class ImageViewUtils {
+
+    public static String getErpImageUrl(String path) {
+        return CommonUtil.getAppBaseUrl(MyApplication.getInstance()) + "common/download.action?path=" + path + "&sessionId=" +
+                CommonUtil.getSharedPreferences(MyApplication.getInstance(), "sessionId") +
+                "&sessionUser=" + CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username") +
+                "&master=" + CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
+    }
+
+    public static String getErpImageUrl(int id) {
+        return CommonUtil.getAppBaseUrl(MyApplication.getInstance()) + "common/downloadbyId.action?id=" + id + "&sessionId=" +
+                CommonUtil.getSharedPreferences(MyApplication.getInstance(), "sessionId") +
+                "&sessionUser=" + CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username") +
+                "&master=" + CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
+    }
+}

Разлика између датотеке није приказан због своје велике величине
+ 9 - 0
app_modular/apputils/src/main/java/com/modular/apputils/utils/TestStr.java


+ 35 - 31
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/presenter/SelectAimPresenter.java

@@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baidu.mapapi.model.LatLng;
 import com.baidu.mapapi.search.core.PoiInfo;
+import com.common.LogUtil;
 import com.common.data.ListUtils;
 import com.common.data.StringUtil;
 import com.core.api.wxapi.ApiConfig;
@@ -41,7 +42,7 @@ public class SelectAimPresenter implements OnHttpResultListener {
     private ISelectAim iSelectAim;
     private final int LOAD = 0x11;
     private final int LOAD_CUSTOMER = 0x12;//拜访计划客户名称数据
-    private List<SelectAimModel> models=new ArrayList<>();//从服务其返回的数据列表
+    private List<SelectAimModel> models = new ArrayList<>();//从服务其返回的数据列表
     private List<SelectAimModel> keyList;//搜索企业筛选的人员
     private int seachMapType = 0;//下拉百度地图数据类型  1.获取附近数据  2.获取全国数据  2.获取城市数据
     private String keyWork;
@@ -70,6 +71,11 @@ public class SelectAimPresenter implements OnHttpResultListener {
 
     public void seachByKey(String keyWork) {
         this.keyWork = keyWork;
+        if (keyList == null) {
+            keyList = new ArrayList<>();
+        } else {
+            keyList.clear();
+        }
         if (ListUtils.isEmpty(models)) {
             if (StringUtil.isEmpty(keyWork)) {
                 loadNeer();
@@ -82,23 +88,21 @@ public class SelectAimPresenter implements OnHttpResultListener {
                     m.setFirst(false);
                 iSelectAim.showModel(models);
                 return;
-            }
-            if (keyList == null)
-                keyList = new ArrayList<>();
-            else
-                keyList.clear();
-            boolean isFirst = true;
-            for (SelectAimModel e : models) {
-                if (isIncude(keyWork, e)) {
-                    if (isFirst) {
-                        e.setFirst(true);
-                        isFirst = false;
-                    } else
-                        e.setFirst(isFirst);
-                    keyList.add(e);
+            } else {
+                boolean isFirst = true;
+                for (SelectAimModel e : models) {
+                    if (isIncude(keyWork, e)) {
+                        if (isFirst) {
+                            e.setFirst(true);
+                            isFirst = false;
+                        } else
+                            e.setFirst(isFirst);
+                        keyList.add(e);
+                    }
                 }
+                loadDataByChina();
             }
-            loadDataByChina();
+
         }
 
     }
@@ -176,14 +180,15 @@ public class SelectAimPresenter implements OnHttpResultListener {
     //下载全国数据
     private void loadDataByChina() {
         seachMapType = 2;
-        LocationNeerHelper.getInstance().searchByInput(MyApplication.getInstance(),"中国",keyWork,0,mOnSearchLocationListener);
+        LocationNeerHelper.getInstance().searchByInput(MyApplication.getInstance(), "中国", keyWork, 0, mOnSearchLocationListener);
     }
 
     //下载本城市数据
     private void loadDataByCity() {
         seachMapType = 3;
-        LocationNeerHelper.getInstance().searchByInput(MyApplication.getInstance(),null,keyWork,0,mOnSearchLocationListener);
+        LocationNeerHelper.getInstance().searchByInput(MyApplication.getInstance(), null, keyWork, 0, mOnSearchLocationListener);
     }
+
     private OnSearchLocationListener mOnSearchLocationListener = new OnSearchLocationListener() {
         @Override
         public void onCallBack(boolean isSuccess, List<UASLocation> locations) {
@@ -191,9 +196,7 @@ public class SelectAimPresenter implements OnHttpResultListener {
                 for (SelectAimModel e : models)
                     e.setFirst(false);
                 iSelectAim.showModel(models);
-                return;
-            }
-            if (!isSuccess) {
+            } else if (!isSuccess) {
                 if (seachMapType == 1) {
                     loadDataByChina();
                     return;
@@ -205,13 +208,16 @@ public class SelectAimPresenter implements OnHttpResultListener {
                     return;
                 }
             } else {
+                if (seachMapType==1&&!StringUtil.isEmpty(keyWork)){
+                    return;
+                }
                 SelectAimModel model = null;
                 boolean isFirst = true;
                 List<PoiInfo> chches = new ArrayList<>();
-                for (UASLocation e: locations)
-                {
+                for (UASLocation e : locations) {
                     chches.add(ModelChangeUtils.location2PoiInfo(e));
                 }
+                List<SelectAimModel> chchesModels=new ArrayList<>();
                 for (int i = 0; i < chches.size(); i++) {
                     if (StringUtil.isEmpty(chches.get(i).name) || StringUtil.isEmpty(chches.get(i).address))
                         continue;
@@ -226,15 +232,15 @@ public class SelectAimPresenter implements OnHttpResultListener {
                     } else {
                         model.setFirst(false);
                     }
-                    models.add(model);
+                    chchesModels.add(model);
                 }
-                if (ListUtils.isEmpty(models)) {
+                if (ListUtils.isEmpty(chchesModels)) {
                     showEmpty();
                 } else {
                     List<SelectAimModel> show = new ArrayList<>();
                     if (!ListUtils.isEmpty(keyList))
                         show.addAll(keyList);
-                    show.addAll(models);
+                    show.addAll(chchesModels);
                     iSelectAim.showModel(show);
                 }
             }
@@ -243,8 +249,6 @@ public class SelectAimPresenter implements OnHttpResultListener {
     };
 
 
-
-
     @Override
     public void result(int what, boolean isJSON, String message, Bundle bundle) {
         if (isJSON && (what == LOAD || what == LOAD_CUSTOMER)) {
@@ -288,7 +292,6 @@ public class SelectAimPresenter implements OnHttpResultListener {
                 model.setAddress(object.getString(address));
                 model.setTimes(object.getInteger(md_visitcount));
                 model.setName(object.getString(company));
-                //TODO id先不要
 //                model.seti(object.getInteger("MD_ID"));
                 model.setType(2);
                 float longitude = object.getFloatValue(md_longitude);
@@ -332,7 +335,6 @@ public class SelectAimPresenter implements OnHttpResultListener {
                 model.setName(object.getString("CU_NAME"));
                 model.setObject(JSON.toJSONString(object));
                 model.setTimes(-1);
-                //TODO id先不要
 //                model.seti(object.getInteger("MD_ID"));
                 model.setType(2);
                 models.add(model);
@@ -378,7 +380,9 @@ public class SelectAimPresenter implements OnHttpResultListener {
 
     private boolean isIncude(String key, SelectAimModel model) {
         String text = model.getAddress() + model.getTime() + model.getName();
-        return StringUtil.isInclude(text, key);
+        boolean isInclude = StringUtil.isInclude(text, key);
+        LogUtil.i("gong", "isIncude=" + "\n text=" + text + "\n key=" + key + " ==" + isInclude);
+        return isInclude;
     }
 
     private void log(String message) {

+ 5 - 5
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/activity/BusinessTravelActivity.java

@@ -83,7 +83,7 @@ public class BusinessTravelActivity extends BaseNetActivity implements OnSmartHt
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         if (R.id.addTravel == item.getItemId()) {
-            TravelUtils.showSelect(ct, appkey, appSceret, new BusinessTravel());
+            TravelUtils.showSelect(ct,cusCode, appkey, appSceret, new BusinessTravel());
         }
         return super.onOptionsItemSelected(item);
     }
@@ -146,11 +146,11 @@ public class BusinessTravelActivity extends BaseNetActivity implements OnSmartHt
         public void onClick(View view) {
             int id=view.getId();
             if (R.id.clickAir == id) {
-                TravelUtils.reserve(ct, appkey, appSceret, getLeaderModel(BusinessTravel.AIR));
+                TravelUtils.reserve(ct,cusCode, appkey, appSceret, getLeaderModel(BusinessTravel.AIR));
             } else if (R.id.clickHotel == id) {
-                TravelUtils.reserve(ct, appkey, appSceret, getLeaderModel(BusinessTravel.HOTEL));
+                TravelUtils.reserve(ct,cusCode, appkey, appSceret, getLeaderModel(BusinessTravel.HOTEL));
             } else if (R.id.clickTrain == id) {
-                TravelUtils.reserve(ct, appkey, appSceret, getLeaderModel(BusinessTravel.TRAIN));
+                TravelUtils.reserve(ct,cusCode, appkey, appSceret, getLeaderModel(BusinessTravel.TRAIN));
             }
         }
     };
@@ -269,7 +269,7 @@ public class BusinessTravelActivity extends BaseNetActivity implements OnSmartHt
 
     private void setAdapter(List<BusinessTravel> models) {
         if (mAdapter == null) {
-            mAdapter = new BusinessTravelAdapter(ct, appkey, appSceret, models);
+            mAdapter = new BusinessTravelAdapter(ct,cusCode, appkey, appSceret, models);
             mRecyclerView.addItemDecoration(new SpaceItemDecoration(10));
             mRecyclerView.setLayoutManager(new LinearLayoutManager(ct));
             mRecyclerView.setAdapter(mAdapter);

+ 7 - 5
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/adapter/BusinessTravelAdapter.java

@@ -34,11 +34,13 @@ public class BusinessTravelAdapter extends RecyclerView.Adapter<RecyclerView.Vie
     private List<BusinessTravel> models;
     private String currentName;
     private String appkey = null;
+    private String cusCode = null;
     private String appSceret = null;
 
-    public BusinessTravelAdapter(Context ct, String appkey, String appSceret, List<BusinessTravel> models) {
+    public BusinessTravelAdapter(Context ct, String cusCode, String appkey,String appSceret, List<BusinessTravel> models) {
         this.ct = ct;
         this.appkey = appkey;
+        this.cusCode = cusCode;
         this.appSceret = appSceret;
         this.models = models;
         this.currentName = CommonUtil.getName();
@@ -367,13 +369,13 @@ public class BusinessTravelAdapter extends RecyclerView.Adapter<RecyclerView.Vie
             notifyItemChanged(position);
         } else if (R.id.doneTv == id || R.id.subRl == id || R.id.addMoreTv == id) {
             BusinessTravel model = (BusinessTravel) v.getTag(R.id.tag_key);
-            TravelUtils.reserve(ct, appkey, appSceret, model);
+            TravelUtils.reserve(ct,cusCode, appkey, appSceret, model);
         } else if (R.id.clickAir == id) {
-            TravelUtils.reserve(ct, appkey, appSceret, getLeaderModel(BusinessTravel.AIR));
+            TravelUtils.reserve(ct, cusCode,appkey, appSceret, getLeaderModel(BusinessTravel.AIR));
         } else if (R.id.clickHotel == id) {
-            TravelUtils.reserve(ct, appkey, appSceret, getLeaderModel(BusinessTravel.HOTEL));
+            TravelUtils.reserve(ct,cusCode, appkey, appSceret, getLeaderModel(BusinessTravel.HOTEL));
         } else if (R.id.clickTrain == id) {
-            TravelUtils.reserve(ct, appkey, appSceret, getLeaderModel(BusinessTravel.TRAIN));
+            TravelUtils.reserve(ct,cusCode, appkey, appSceret, getLeaderModel(BusinessTravel.TRAIN));
         }
     }
 

+ 6 - 1
app_modular/appworks/src/main/java/com/uas/appworks/adapter/CustomerCareListAdapter.java

@@ -49,7 +49,12 @@ public class CustomerCareListAdapter extends EasyBaseAdapter {
                 StringBuilder subTitleBuilder=new StringBuilder(DateFormatUtil.long2Str(time,DateFormatUtil.MD));
                 subTitleBuilder.append(" | 农历  "+new Lunar(new Date(time)).toString());
                 mViewHolder.subTitleTv.setText(subTitleBuilder.toString());
-                mViewHolder.tagTv.setText(String.valueOf(DateFormatUtil.differentDays(time,System.currentTimeMillis()))+"天");
+                String tag="今";
+                int day=DateFormatUtil.differentDays(System.currentTimeMillis(),time);
+                if (day!=0){
+                    tag=String.valueOf(day)+"天";
+                }
+                mViewHolder.tagTv.setText(tag);
             }
             view.setTag(mViewHolder);
         } else {

+ 17 - 1
app_modular/appworks/src/main/java/com/uas/appworks/crm3_0/activity/CustomerManageActivity.java

@@ -15,6 +15,7 @@ import android.widget.AdapterView;
 import android.widget.ImageView;
 import android.widget.ListView;
 import android.widget.PopupWindow;
+import android.widget.ScrollView;
 import android.widget.SimpleAdapter;
 import android.widget.TextView;
 
@@ -29,6 +30,8 @@ import com.core.utils.CommonUtil;
 import com.core.utils.time.wheel.DatePicker;
 import com.core.widget.MyListView;
 import com.core.widget.view.MyGridView;
+import com.handmark.pulltorefresh.library.PullToRefreshBase;
+import com.handmark.pulltorefresh.library.PullToRefreshScrollView;
 import com.modular.apputils.activity.BillDetailsActivity;
 import com.modular.apputils.activity.BillInputActivity;
 import com.modular.apputils.activity.BillListActivity;
@@ -66,6 +69,7 @@ public class CustomerManageActivity extends OABaseActivity implements ICustomerM
     private TextView customerCareRefTimeTv;
     private MyListView customerCareLv;
     private ImageView customerCareRefIv;
+    private PullToRefreshScrollView mPullToRefreshScrollView;
 
     private CustomerManagePresenter mCustomerManagePresenter = null;
 
@@ -104,6 +108,7 @@ public class CustomerManageActivity extends OABaseActivity implements ICustomerM
         customerCareRefTimeTv = findViewById(R.id.customerCareRefTimeTv);
         customerCareLv = findViewById(R.id.customerCareLv);
         customerCareRefIv = findViewById(R.id.customerCareRefIv);
+        mPullToRefreshScrollView = findViewById(R.id.mPullToRefreshScrollView);
 
         addGridView = (MyGridView) findViewById(R.id.addGridView);
 
@@ -135,6 +140,14 @@ public class CustomerManageActivity extends OABaseActivity implements ICustomerM
         customerCareRefIv.setOnClickListener(mOnClickListener);
         visitTv.setOnClickListener(mOnClickListener);
         visitRefIv.setOnClickListener(mOnClickListener);
+        mPullToRefreshScrollView.setMode(PullToRefreshBase.Mode.PULL_FROM_START);
+        mPullToRefreshScrollView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ScrollView>() {
+            @Override
+            public void onRefresh(PullToRefreshBase<ScrollView> refreshView) {
+                mCustomerManagePresenter.loadAllData();
+            }
+        });
+
         addGridView.setAdapter(new EasyBaseAdapter(ct, getAddItems()) {
             @Override
             public View bindView(View view, int position, EasyBaseModel model) {
@@ -442,6 +455,7 @@ public class CustomerManageActivity extends OABaseActivity implements ICustomerM
 
     @Override
     public void setShowCustomerAdapter(List<EasyBaseModel> models) {
+        mPullToRefreshScrollView.onRefreshComplete();
         showCustomerRefIv.setAnimation(null);
         showCustomerRefTimeTv.setText(DateFormatUtil.long2Str(DateFormatUtil.YMD_HMS));
         if (showCustomerAdapter == null) {
@@ -491,6 +505,7 @@ public class CustomerManageActivity extends OABaseActivity implements ICustomerM
 
     @Override
     public void setForgetCustomerAdapter(List<EasyBaseModel> models) {
+        mPullToRefreshScrollView.onRefreshComplete();
         forgetCustomerRefIv.setAnimation(null);
         forgetCustomerRefTimeTv.setText(DateFormatUtil.long2Str(DateFormatUtil.YMD_HMS));
         if (mCustomerForgetAdapter == null) {
@@ -503,7 +518,7 @@ public class CustomerManageActivity extends OABaseActivity implements ICustomerM
 
     @Override
     public void setCustomerCareAdapter(List<EasyBaseModel> models) {
-
+        mPullToRefreshScrollView.onRefreshComplete();
         customerCareRefIv.setAnimation(null);
         customerCareRefTimeTv.setText(DateFormatUtil.long2Str(DateFormatUtil.YMD_HMS));
         if (mCustomerCareAdapter == null) {
@@ -516,6 +531,7 @@ public class CustomerManageActivity extends OABaseActivity implements ICustomerM
 
     @Override
     public void setVisitAdapter(List<EasyBaseModel> models) {
+        mPullToRefreshScrollView.onRefreshComplete();
         visitRefIv.setAnimation(null);
         visitRefTimeTv.setText(DateFormatUtil.long2Str(DateFormatUtil.YMD_HMS));
         if (mVisitAdapter == null) {

+ 4 - 4
app_modular/appworks/src/main/java/com/uas/appworks/utils/TravelUtils.java

@@ -32,9 +32,9 @@ import java.util.Map;
 
 public class TravelUtils {
 
-    public static void reserve(Context ct, String appkey, String appSceret, BusinessTravel model) {
+    public static void reserve(Context ct,String cusCode, String appkey, String appSceret, BusinessTravel model) {
         if (model.getType() == BusinessTravel.UNKOWN || BusinessTravel.TITLE == model.getType()) {
-            showSelect(ct, appkey, appSceret, model);
+            showSelect(ct,cusCode, appkey, appSceret, model);
             return;
         }
         Map<String, Object> map = new HashMap<>();
@@ -129,7 +129,7 @@ public class TravelUtils {
         }
     }
 
-    public static void showSelect(final Context ct, final String appkey, final String appSceret, final BusinessTravel model) {
+    public static void showSelect(final Context ct,final String cusCode, final String appkey, final String appSceret, final BusinessTravel model) {
         List<String> items = new ArrayList<>();
         items.add("火车票");
         items.add("飞机票");
@@ -152,7 +152,7 @@ public class TravelUtils {
                                 model.setType(BusinessTravel.AIR);
                                 break;
                         }
-                        reserve(ct, appkey, appSceret, model);
+                        reserve(ct,cusCode, appkey, appSceret, model);
                         return true;
                     }
                 }).positiveText(MyApplication.getInstance().getString(com.uas.appworks.R.string.common_sure)).show();

+ 3 - 2
app_modular/appworks/src/main/res/layout/activity_customer_manage.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
-<com.core.widget.CustomerScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+<com.handmark.pulltorefresh.library.PullToRefreshScrollView xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
+    android:id="@+id/mPullToRefreshScrollView"
     android:layout_height="match_parent">
 
     <LinearLayout
@@ -270,4 +271,4 @@
         </RelativeLayout>
         <!--end 拜访统计-->
     </LinearLayout>
-</com.core.widget.CustomerScrollView>
+</com.handmark.pulltorefresh.library.PullToRefreshScrollView>

Неке датотеке нису приказане због велике количине промена