diff --git a/app/src/main/java/com/dayu/bigfish/InitializeActivity.java b/app/src/main/java/com/dayu/bigfish/InitializeActivity.java
index 598b955..2e3b568 100755
--- a/app/src/main/java/com/dayu/bigfish/InitializeActivity.java
+++ b/app/src/main/java/com/dayu/bigfish/InitializeActivity.java
@@ -10,13 +10,19 @@ import android.support.annotation.NonNull;
 import android.text.TextUtils;
 import android.widget.Toast;
 
+import com.alibaba.android.arouter.launcher.ARouter;
 import com.dayu.base.ui.activity.DataBindingActivity;
 import com.dayu.bigfish.databinding.ActivityInitializeMainBinding;
 import com.dayu.bigfish.ui.MainActivity;
+import com.dayu.common.Constants;
 import com.dayu.event.UserInfo;
+import com.dayu.managercenter.ui.activity.ManagerActivity;
+import com.dayu.managercenter.ui.activity.ServiceStationActivity;
+import com.dayu.provider.router.RouterPath;
 import com.dayu.usercenter.ui.activity.SmsLoginActivity;
 import com.dayu.utils.LogUtils;
 import com.dayu.utils.MPermissionUtils;
+import com.dayu.utils.StationManager;
 import com.dayu.utils.UserManager;
 import com.dayu.widgets.CustomDialog;
 import com.hyphenate.EMCallBack;
@@ -43,12 +49,14 @@ public class InitializeActivity extends DataBindingActivity<ActivityInitializeMa
         MobclickAgent.openActivityDurationTrack(false);
         mActivity = this;
         String[] mPerArr = new String[]{Manifest.permission.READ_PHONE_STATE, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE
-        , Manifest.permission.CAMERA};
+                , Manifest.permission.CAMERA};
 
         MPermissionUtils.requestPermissionsResult(mActivity, SDK_PERMISSION_REQUEST, mPerArr, new MPermissionUtils.OnPermissionListener() {
             @Override
             public void onPermissionGranted() {
-                doJump();
+                Observable.timer(1000, TimeUnit.MILLISECONDS)
+                        .observeOn(AndroidSchedulers.mainThread())
+                        .subscribe(aLong -> doJump());
             }
 
             @Override
@@ -63,22 +71,40 @@ public class InitializeActivity extends DataBindingActivity<ActivityInitializeMa
     }
 
     private void doJump() {
-        Intent intent;
-        if (UserManager.getInstance().hasUserInfo()) {
-            UserInfo info = UserManager.getInstance().getUser();
-            loginHx(info.getHxAccount(), info.getHxPwd());
-            intent = new Intent(InitializeActivity.this, MainActivity.class);
-        } else {
-            intent = new Intent(InitializeActivity.this, SmsLoginActivity.class);
+        switch (UserManager.getInstance().getRole()) {
+            case Constants.NOT_LOGIN:
+                Intent intent = new Intent(InitializeActivity.this, SmsLoginActivity.class);
+                startActivity(intent);
+                break;
+            case Constants.MANAGER:
+                if (StationManager.getInstance().haveData()) {
+                    Intent intent1 = new Intent(InitializeActivity.this, MainActivity.class);
+                    startActivity(intent1);
+                } else {
+                    ARouter.getInstance().build(RouterPath.PATH_SERVICESTATION).navigation();
+                }
+                break;
+            case Constants.ENGINEER:
+                Intent intent1 = new Intent(InitializeActivity.this, MainActivity.class);
+                startActivity(intent1);
+                break;
+            case Constants.MANAGER_ENGINEER:
+                Intent intent2;
+                if (StationManager.getInstance().haveData()) {
+                    intent2 = new Intent(InitializeActivity.this, ManagerActivity.class);
+                    startActivity(intent2);
+                } else {
+                    intent2 = new Intent(InitializeActivity.this, ServiceStationActivity.class);
+
+                }
+                startActivity(intent2);
+                break;
+            default:
+                break;
         }
-        Observable.timer(1000, TimeUnit.MILLISECONDS)
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(
-                        aLong -> {
-                            startActivity(intent);
-                            finish();
-                        }
-                );
+        UserInfo info = UserManager.getInstance().getUser();
+        loginHx(info.getHxAccount(), info.getHxPwd());
+        finish();
     }
 
     public void loginHx(String hxAccount, String hxPwd) {
diff --git a/app/src/main/java/com/dayu/bigfish/presenter/main/MainPresenter.java b/app/src/main/java/com/dayu/bigfish/presenter/main/MainPresenter.java
index db7043c..4be4e88 100644
--- a/app/src/main/java/com/dayu/bigfish/presenter/main/MainPresenter.java
+++ b/app/src/main/java/com/dayu/bigfish/presenter/main/MainPresenter.java
@@ -35,7 +35,7 @@ public class MainPresenter extends MainContract.Presenter {
     public void onAttached() {
         mUser = UserManager.getInstance().getUser();
         mAccountId = Integer.parseInt(mUser.getAccountId());
-        mSiteId = Integer.parseInt(mUser.getSiteId());
+        mSiteId = mUser.getSiteId();
         request();
     }
 
diff --git a/app/src/main/java/com/dayu/bigfish/ui/MainActivity.java b/app/src/main/java/com/dayu/bigfish/ui/MainActivity.java
index 10aff54..3236bf7 100644
--- a/app/src/main/java/com/dayu/bigfish/ui/MainActivity.java
+++ b/app/src/main/java/com/dayu/bigfish/ui/MainActivity.java
@@ -33,6 +33,7 @@ import com.dayu.common.Constants;
 import com.dayu.event.DownloadBean;
 import com.dayu.event.UserInfo;
 import com.dayu.location.base.LocationUtils;
+import com.dayu.managercenter.ui.fragment.ManagerFragment;
 import com.dayu.message.ui.fragment.HomeMessageFragment;
 import com.dayu.order.ui.activity.ReceivingActivity;
 import com.dayu.order.ui.fragment.HomeOrderFragment;
@@ -40,6 +41,7 @@ import com.dayu.provider.event.RefreshReceivingNum;
 import com.dayu.provider.event.SwtichFragment;
 import com.dayu.provider.router.RouterPath;
 import com.dayu.usercenter.ui.fragment.HomePersonFragment;
+import com.dayu.utils.TimeUtils;
 import com.dayu.utils.UserManager;
 import com.dayu.utils.badgeNumberManger.BadgeNumberManager;
 import com.dayu.widgets.CustomDialog;
@@ -66,11 +68,12 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
     private TextView[] mTabs;
     private NotificationManager notificationManager;
     private NotificationCompat.Builder builder;
+    private ManagerFragment managerFragment;
     private HomeFirstTabFragment firstFragment;
     private HomeOrderFragment secondFragment;
     private HomeMessageFragment thirdFragment;
     private HomePersonFragment fourFragment;
-    private int mFirstPositon = 1;
+    private int mFirstPositon = 0;
 
     @Override
     public int getLayoutId() {
@@ -79,11 +82,18 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
 
     @Override
     public void initView() {
-        firstFragment = HomeFirstTabFragment.newInstance();
         secondFragment = HomeOrderFragment.newInstance();
         thirdFragment = HomeMessageFragment.newInstance();
         fourFragment = HomePersonFragment.newInstance();
-        mFragments = new Fragment[]{firstFragment, secondFragment, thirdFragment, fourFragment};
+        if (UserManager.getInstance().getRole() == Constants.ENGINEER) {
+            firstFragment = HomeFirstTabFragment.newInstance();
+            mFragments = new Fragment[]{firstFragment, secondFragment, thirdFragment, fourFragment};
+            mFirstPositon = 1;
+        } else if (UserManager.getInstance().getRole() == Constants.MANAGER_ENGINEER) {
+            managerFragment = ManagerFragment.newInstance();
+            mFragments = new Fragment[]{managerFragment, secondFragment, thirdFragment, fourFragment};
+            mFirstPositon=0;
+        }
         mTabs = new TextView[]{mBind.tabFirst, mBind.tabSecond, mBind.tabThird, mBind.tabFour};
         addFragment();
         initListener();
@@ -309,9 +319,10 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
 
     @Override
     protected void onDestroy() {
-        super.onDestroy();
         LocationUtils.destroy();
         EventBus.getDefault().unregister(this);
+        TimeUtils.onDestory();
+        super.onDestroy();
     }
 
     @Override
diff --git a/baseSDK/src/main/java/com/dayu/common/Constants.java b/baseSDK/src/main/java/com/dayu/common/Constants.java
index d07f87e..317ae93 100755
--- a/baseSDK/src/main/java/com/dayu/common/Constants.java
+++ b/baseSDK/src/main/java/com/dayu/common/Constants.java
@@ -102,6 +102,10 @@ public class Constants {
 
     /***********************其他配置**********************************/
     public final static int PAGESIZE = 20;
+    public final static int NOT_LOGIN = -1;
+    public final static int MANAGER = 1;
+    public final static int ENGINEER = 2;
+    public final static int MANAGER_ENGINEER = 3;
     public final static String BUNDLE = "bundle";
     public final static String ID = "id";
     //订单详情
diff --git a/managercenter/src/main/java/com/dayu/managercenter/data/ServiceStation.java b/baseSDK/src/main/java/com/dayu/event/ServiceStation.java
similarity index 96%
rename from managercenter/src/main/java/com/dayu/managercenter/data/ServiceStation.java
rename to baseSDK/src/main/java/com/dayu/event/ServiceStation.java
index c34989d..65d84e7 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/data/ServiceStation.java
+++ b/baseSDK/src/main/java/com/dayu/event/ServiceStation.java
@@ -1,4 +1,4 @@
-package com.dayu.managercenter.data;
+package com.dayu.event;
 
 /**
  * Created by luofan
@@ -21,7 +21,7 @@ public class ServiceStation {
     private Object createTime;
     private String telephone;
     private int starScore;
-    private Object accountId;
+    private Integer accountId;
     private String providerRealName;
     private String providerName;
     private Object providerTypes;
@@ -149,11 +149,11 @@ public class ServiceStation {
         this.starScore = starScore;
     }
 
-    public Object getAccountId() {
+    public Integer getAccountId() {
         return accountId;
     }
 
-    public void setAccountId(Object accountId) {
+    public void setAccountId(Integer accountId) {
         this.accountId = accountId;
     }
 
diff --git a/baseSDK/src/main/java/com/dayu/event/UserInfo.java b/baseSDK/src/main/java/com/dayu/event/UserInfo.java
index 0a27944..3ffbd9a 100755
--- a/baseSDK/src/main/java/com/dayu/event/UserInfo.java
+++ b/baseSDK/src/main/java/com/dayu/event/UserInfo.java
@@ -1,10 +1,12 @@
 package com.dayu.event;
 
+import java.util.List;
+
 /**
  * 储存用户信息的类
  *
  * @author wangceyu
- *         on 2017/8/28.
+ * on 2017/8/28.
  */
 
 public class UserInfo {
@@ -16,7 +18,7 @@ public class UserInfo {
     /**
      * 用户所属服务商id
      */
-    private String siteId;
+    private int siteId;
     /**
      * 成功时返回的token
      */
@@ -31,6 +33,15 @@ public class UserInfo {
     private String accountName;
     private int status;
     private int detectStatus;
+    private List<Integer> roles;
+
+    public List<Integer> getRoles() {
+        return roles;
+    }
+
+    public void setRoles(List<Integer> roles) {
+        this.roles = roles;
+    }
 
     public int getDetectStatus() {
         return detectStatus;
@@ -64,11 +75,11 @@ public class UserInfo {
         this.accountId = accountId;
     }
 
-    public String getSiteId() {
+    public int getSiteId() {
         return siteId;
     }
 
-    public void setSiteId(String siteId) {
+    public void setSiteId(int siteId) {
         this.siteId = siteId;
     }
 
diff --git a/managercenter/src/main/java/com/dayu/managercenter/common/StationManager.java b/baseSDK/src/main/java/com/dayu/utils/StationManager.java
similarity index 84%
rename from managercenter/src/main/java/com/dayu/managercenter/common/StationManager.java
rename to baseSDK/src/main/java/com/dayu/utils/StationManager.java
index fa4678e..d54e907 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/common/StationManager.java
+++ b/baseSDK/src/main/java/com/dayu/utils/StationManager.java
@@ -1,7 +1,6 @@
-package com.dayu.managercenter.common;
+package com.dayu.utils;
 
-import com.dayu.managercenter.data.ServiceStation;
-import com.dayu.utils.SPUtils;
+import com.dayu.event.ServiceStation;
 import com.google.gson.Gson;
 
 /**
@@ -31,4 +30,9 @@ public class StationManager {
     public ServiceStation getStation() {
         return new Gson().fromJson((String) SPUtils.get("big_fish", "SERVICE_STATION", ""), ServiceStation.class);
     }
+
+    public boolean haveData() {
+        ServiceStation station = getStation();
+        return station == null || station.getAccountId() != null;
+    }
 }
diff --git a/baseSDK/src/main/java/com/dayu/utils/TimeUtils.java b/baseSDK/src/main/java/com/dayu/utils/TimeUtils.java
index 25b22f7..7e58db3 100644
--- a/baseSDK/src/main/java/com/dayu/utils/TimeUtils.java
+++ b/baseSDK/src/main/java/com/dayu/utils/TimeUtils.java
@@ -9,12 +9,12 @@ import android.os.CountDownTimer;
 public class TimeUtils {
     private static CountDownTimer mTimer;
 
-    public static void startTimer(long millisInFuture, long countDownInterval, OnCountDownCallBack callBack) {
-        mTimer = getTimer(millisInFuture, countDownInterval, callBack);
+    public static void startTimer(long millisInFuture, long countDownInterval, int tag, OnCountDownCallBack callBack) {
+        mTimer = getTimer(millisInFuture, countDownInterval, tag, callBack);
         mTimer.start();
     }
 
-    private static CountDownTimer getTimer(long millisInFuture, long interval, OnCountDownCallBack callBack) {
+    private static CountDownTimer getTimer(long millisInFuture, long interval, int tag, OnCountDownCallBack callBack) {
         return new CountDownTimer(millisInFuture, interval) {
             @Override
             public void onTick(long millisUntilFinished) {
@@ -31,14 +31,14 @@ public class TimeUtils {
                     hour = hour % 24;
                 }
                 if (callBack != null) {
-                    callBack.onProcess(day, hour, minute, second);
+                    callBack.onProcess(day, hour, minute, second, tag);
                 }
             }
 
             @Override
             public void onFinish() {
                 if (callBack != null) {
-                    callBack.onFinish();
+                    callBack.onFinish(tag);
                 }
             }
         };
@@ -53,8 +53,8 @@ public class TimeUtils {
 
     public interface OnCountDownCallBack {
 
-        void onProcess(int day, int hour, int minute, int second);
+        void onProcess(int day, int hour, int minute, int second, int tag);
 
-        void onFinish();
+        void onFinish(int tag);
     }
 }
diff --git a/baseSDK/src/main/java/com/dayu/utils/UserManager.java b/baseSDK/src/main/java/com/dayu/utils/UserManager.java
index 8a54f36..e115f8c 100755
--- a/baseSDK/src/main/java/com/dayu/utils/UserManager.java
+++ b/baseSDK/src/main/java/com/dayu/utils/UserManager.java
@@ -2,6 +2,7 @@ package com.dayu.utils;
 
 import android.text.TextUtils;
 
+import com.dayu.common.Constants;
 import com.dayu.event.UserInfo;
 import com.google.gson.Gson;
 
@@ -64,10 +65,36 @@ public class UserManager {
         UserInfo userInfo = getUser();
         if (userInfo != null) {
             //有数据
-            return !TextUtils.isEmpty(userInfo.getAccountId()) && !TextUtils.isEmpty(userInfo.getSiteId())
-                    && !TextUtils.isEmpty(userInfo.getAccountName());
+            return !TextUtils.isEmpty(userInfo.getAccountId()) && !TextUtils.isEmpty(userInfo.getAccountName());
         }
         return false;
     }
 
+    public boolean isManager() {
+        UserInfo userInfo = getUser();
+        return userInfo.getRoles().contains(3);
+    }
+
+    public int getRole() {
+        boolean isEngineer = false;
+        boolean isManager = false;
+        UserInfo userInfo = getUser();
+        if (userInfo == null || userInfo.getRoles() == null || (TextUtils.isEmpty(userInfo.getAccountId()) && TextUtils.isEmpty(userInfo.getAccountName()))) {
+            return Constants.NOT_LOGIN;
+        }
+        if (userInfo.getRoles().contains(2)) {
+            isEngineer = true;
+        }
+        if (userInfo.getRoles().contains(3)) {
+            isManager = true;
+        }
+        if (isEngineer && isManager) {
+            return Constants.MANAGER_ENGINEER;
+        } else if (isEngineer) {
+            return Constants.ENGINEER;
+        } else if (isManager) {
+            return Constants.MANAGER;
+        }
+        return Constants.NOT_LOGIN;
+    }
 }
diff --git a/baseSDK/src/main/res/values/strings.xml b/baseSDK/src/main/res/values/strings.xml
index 81ba948..0c4108c 100644
--- a/baseSDK/src/main/res/values/strings.xml
+++ b/baseSDK/src/main/res/values/strings.xml
@@ -395,7 +395,8 @@
     <string name="order_price">授权单价</string>
     <string name="refuse">拒绝</string>
     <string name="change_engineer">改派工程师</string>
-    <string name="designate_engineer">改派工程师</string>
+    <string name="change_engineer_name">改派工程师(%1$s)</string>
+    <string name="designate_engineer">指派工程师</string>
     <string name="comform_receive_order">确定接单</string>
     <string name="send_order_price">发&#160;&#160;单&#160;&#160;价</string>
     <string name="send_order_price_trim">发单价</string>
diff --git a/managercenter/src/main/debug/AndroidManifest.xml b/managercenter/src/main/debug/AndroidManifest.xml
index eb80397..343f926 100644
--- a/managercenter/src/main/debug/AndroidManifest.xml
+++ b/managercenter/src/main/debug/AndroidManifest.xml
@@ -17,5 +17,7 @@
         <activity android:name=".ui.activity.ServiceStationActivity" />
         <activity android:name=".ui.activity.SendOrderDetailActivity" />
         <activity android:name=".ui.activity.SubOrderDetailActivity" />
+        <activity android:name=".ui.activity.PreviewActivty" />
+        <activity android:name=".ui.activity.ChangeReasonActivity" />
     </application>
 </manifest>
diff --git a/managercenter/src/main/java/com/dayu/managercenter/api/ManagerApiFactory.java b/managercenter/src/main/java/com/dayu/managercenter/api/ManagerApiFactory.java
index 3cbd357..3dbf854 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/api/ManagerApiFactory.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/api/ManagerApiFactory.java
@@ -2,12 +2,12 @@ package com.dayu.managercenter.api;
 
 import com.dayu.base.api.Api;
 import com.dayu.base.api.protocol.BasePageBean;
+import com.dayu.event.ServiceStation;
 import com.dayu.managercenter.data.Bargain;
 import com.dayu.managercenter.data.Engineer;
 import com.dayu.managercenter.data.GrabOrder;
 import com.dayu.managercenter.data.Order;
 import com.dayu.managercenter.data.OrderDetail;
-import com.dayu.managercenter.data.ServiceStation;
 import com.dayu.managercenter.data.SpInfo;
 
 import java.util.List;
@@ -59,7 +59,7 @@ public class ManagerApiFactory {
         return Api.getService(ManagerService.class).bargain(body).compose(Api.applySchedulers());
     }
 
-    public static Observable<BasePageBean<Bargain>> getBargainPrice(int spSiteId,int kaOrderId) {
+    public static Observable<BasePageBean<Bargain>> getBargainPrice(int spSiteId, int kaOrderId) {
         return Api.getService(ManagerService.class).getBargainPrice(spSiteId, kaOrderId).compose(Api.applySchedulers());
     }
 
@@ -70,4 +70,16 @@ public class ManagerApiFactory {
     public static Observable<SpInfo> querySpInfo(int accountId) {
         return Api.getService(ManagerService.class).querySpInfo(accountId).compose(Api.applySchedulers());
     }
+
+    public static Observable<Boolean> refuse(int orderId, String createBy, String reason) {
+        return Api.getService(ManagerService.class).refuse(orderId, createBy, reason).compose(Api.applySchedulers());
+    }
+
+    public static Observable<BasePageBean<Order>> getDesignateList(int siteId, int changeEngineerStatus, int page, int pageSize) {
+        return Api.getService(ManagerService.class).getDesignateList(siteId, changeEngineerStatus, page, pageSize).compose(Api.applySchedulers());
+    }
+
+    public static Observable<Boolean> changeEngineer(int id, String reason, int engineerId) {
+        return Api.getService(ManagerService.class).changeEngineer(id, reason, engineerId).compose(Api.applySchedulers());
+    }
 }
diff --git a/managercenter/src/main/java/com/dayu/managercenter/api/ManagerService.java b/managercenter/src/main/java/com/dayu/managercenter/api/ManagerService.java
index a2e727f..3fd9911 100755
--- a/managercenter/src/main/java/com/dayu/managercenter/api/ManagerService.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/api/ManagerService.java
@@ -3,13 +3,13 @@ package com.dayu.managercenter.api;
 
 import com.dayu.base.api.protocol.BasePageBean;
 import com.dayu.base.api.protocol.BaseResponse;
+import com.dayu.event.ServiceStation;
 import com.dayu.managercenter.common.ManagerConstant;
 import com.dayu.managercenter.data.Bargain;
 import com.dayu.managercenter.data.Engineer;
 import com.dayu.managercenter.data.GrabOrder;
 import com.dayu.managercenter.data.Order;
 import com.dayu.managercenter.data.OrderDetail;
-import com.dayu.managercenter.data.ServiceStation;
 import com.dayu.managercenter.data.SpInfo;
 
 import java.util.List;
@@ -34,7 +34,7 @@ public interface ManagerService {
      * @return
      */
     @GET(ManagerConstant.SERVICE_STATIONS)
-    Observable<BaseResponse<List<ServiceStation>>> getServiceStations(@Path("id") int id);
+    Observable<BaseResponse<List<ServiceStation>>> getServiceStations(@Path("accountId") int id);
 
     /**
      * 获取工单列表.
@@ -161,4 +161,38 @@ public interface ManagerService {
      */
     @GET(ManagerConstant.QUERY_SP)
     Observable<BaseResponse<SpInfo>> querySpInfo(@Path("accountId") int accountId);
+
+    /**
+     * 拒绝.
+     *
+     * @param orderId
+     * @param createBy
+     * @param reason
+     * @return
+     */
+    @POST(ManagerConstant.REFUSE)
+    Observable<BaseResponse<Boolean>> refuse(@Query("orderId") int orderId, @Query("createBy") String createBy, @Query("reason") String reason);
+
+    /**
+     * 获取可改派列表.
+     *
+     * @param siteId
+     * @param changeEngineerStatus
+     * @param page
+     * @param pageSize
+     * @return
+     */
+    @GET(ManagerConstant.DESIGNATE_LIST)
+    Observable<BaseResponse<BasePageBean<Order>>> getDesignateList(@Query("siteId") int siteId, @Query("changeEngineerStatus") int changeEngineerStatus, @Query("page") int page, @Query("pageSize") int pageSize);
+
+    /**
+     * 改派工程师.
+     *
+     * @param id
+     * @param reason
+     * @param engineerId
+     * @return
+     */
+    @POST(ManagerConstant.CHANGE_ENGINEER)
+    Observable<BaseResponse<Boolean>> changeEngineer(@Query("id") int id, @Query("reason") String reason, @Query("engineerId") int engineerId);
 }
diff --git a/managercenter/src/main/java/com/dayu/managercenter/common/ManagerConstant.java b/managercenter/src/main/java/com/dayu/managercenter/common/ManagerConstant.java
index eb04f40..ef102a9 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/common/ManagerConstant.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/common/ManagerConstant.java
@@ -15,15 +15,15 @@ public class ManagerConstant {
 
     public final static String[] GRAB_TAB = {UIUtils.getString(R.string.can_grab_order), UIUtils.getString(R.string.bargain_order)};
 
-    public final static int SEND_ORDER= 0;
-    public final static int GRAB_ORDER= 1;
-    public final static int BARGAIN_ORDER= 11;
-    public final static int Eu_ORDER= 2;
-    public final static int CHANGE_ORDER= 3;
+    public final static int SEND_ORDER = 0;
+    public final static int GRAB_ORDER = 1;
+    public final static int BARGAIN_ORDER = 11;
+    public final static int Eu_ORDER = 2;
+    public final static int CHANGE_ORDER = 3;
     /**
      * 获取服务站列表.
      */
-    public final static String SERVICE_STATIONS = "/api-user/" + "serviceProviderSite/serverList/{id}";
+    public final static String SERVICE_STATIONS = "/api-user/" + "serviceProviderSite/serverListByShopKeeper/{accountId}";
 
     /**
      * 获取工单列表.
@@ -43,12 +43,12 @@ public class ManagerConstant {
     /**
      * 获取用户预约列表.
      */
-    public final static String EU_ORDER = "api-order/"+"euOrders/provider";
+    public final static String EU_ORDER = "api-order/" + "euOrders/provider";
 
     /**
      * 获取工程师列表.
      */
-    public final static String ENGINEER_LIST = "api-user/"+"engineerInfo/selectEngineerListByCategoryIdAndServiceType";
+    public final static String ENGINEER_LIST = "api-user/" + "engineerInfo/selectEngineerListByCategoryIdAndServiceType";
 
     /**
      * 工单详情信息,包含评价,投诉,服务记录.
@@ -59,7 +59,7 @@ public class ManagerConstant {
     /**
      * 获取服务单信息.
      */
-    public static final String KA_ORDER_DETAILS = "/api-ka-order/"+"kaFlashOrder/orderDetail/id/{orderId}";
+    public static final String KA_ORDER_DETAILS = "/api-ka-order/" + "kaFlashOrder/orderDetail/id/{orderId}";
 
     /**
      * 指派工程师.
@@ -69,16 +69,31 @@ public class ManagerConstant {
     /**
      * 议价.
      */
-    public static final String BARGAIN = "api-ka-order/"+"kaOrderBargain";
+    public static final String BARGAIN = "api-ka-order/" + "kaOrderBargain";
 
     /**
      * 接单.
      */
-    public static final String RECEIVE_ORDER = "api-ka-order/"+"kaFlashOrder/spRobOrders";
+    public static final String RECEIVE_ORDER = "api-ka-order/" + "kaFlashOrder/spRobOrders";
 
     /**
      * 查询sp信息.
      */
-    public static final String QUERY_SP ="/api-user/"+"serviceProviderInfo/queryLegalProviderInfo/accountId/{accountId}";
+    public static final String QUERY_SP = "/api-user/" + "serviceProviderInfo/queryLegalProviderInfo/accountId/{accountId}";
+
+    /**
+     * eu单拒绝.
+     */
+    public static final String REFUSE = "/api-order/" + "euOrders/refuse";
+
+    /**
+     * 获取可改派列表.
+     */
+    public static final String DESIGNATE_LIST = "/api-order/" + "orders/provider";
+
+    /**
+     * 改派工程师.
+     */
+    public static final String CHANGE_ENGINEER = "/api-order/" + "orders/reassignment";
 
 }
diff --git a/managercenter/src/main/java/com/dayu/managercenter/data/Order.java b/managercenter/src/main/java/com/dayu/managercenter/data/Order.java
index 66582dd..d03a506 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/data/Order.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/data/Order.java
@@ -128,7 +128,7 @@ public class Order {
     private String createTime;
     private String appointmentTime;
     private String comment;
-    private Object confirmDoorTime;
+    private String confirmDoorTime;
     private Object confirmDoorComment;
     private Object serviceRecordComment;
     private Object customerCheckComment;
@@ -147,7 +147,7 @@ public class Order {
     private Object closePhase;
     private int siteId;
     private Object engineerId;
-    private Object engineerName;
+    private String engineerName;
     private Object serviceType;
     private double paymentPrice;
     private String serviceName;
@@ -450,11 +450,11 @@ public class Order {
         this.comment = comment;
     }
 
-    public Object getConfirmDoorTime() {
+    public String getConfirmDoorTime() {
         return confirmDoorTime;
     }
 
-    public void setConfirmDoorTime(Object confirmDoorTime) {
+    public void setConfirmDoorTime(String confirmDoorTime) {
         this.confirmDoorTime = confirmDoorTime;
     }
 
@@ -602,11 +602,11 @@ public class Order {
         this.engineerId = engineerId;
     }
 
-    public Object getEngineerName() {
+    public String getEngineerName() {
         return engineerName;
     }
 
-    public void setEngineerName(Object engineerName) {
+    public void setEngineerName(String engineerName) {
         this.engineerName = engineerName;
     }
 
diff --git a/managercenter/src/main/java/com/dayu/managercenter/data/OrderDetail.java b/managercenter/src/main/java/com/dayu/managercenter/data/OrderDetail.java
index fdb0665..52a78df 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/data/OrderDetail.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/data/OrderDetail.java
@@ -60,6 +60,7 @@ public class OrderDetail implements Serializable {
     private Object closePhase;
     private int siteId;
     private int engineerId;
+    private String engineerName;
     private Object feedback;
     private Object complait;
     private List<RecordBean> record;
@@ -77,6 +78,14 @@ public class OrderDetail implements Serializable {
     private Integer payStatus;//或null:未支付 2.已支付3.支付成功4.支付失败
     private Double paymentPrice;//发单价
 
+    public String getEngineerName() {
+        return engineerName;
+    }
+
+    public void setEngineerName(String engineerName) {
+        this.engineerName = engineerName;
+    }
+
     public Double getPaymentPrice() {
         return paymentPrice;
     }
diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/bargainorder/BargainPresenter.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/bargainorder/BargainPresenter.java
index e68410a..f547d45 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/presenter/bargainorder/BargainPresenter.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/bargainorder/BargainPresenter.java
@@ -4,12 +4,12 @@ import android.databinding.ObservableField;
 import android.os.Bundle;
 
 import com.dayu.common.Constants;
+import com.dayu.event.ServiceStation;
 import com.dayu.managercenter.api.ManagerApiFactory;
 import com.dayu.managercenter.common.ManagerConstant;
-import com.dayu.managercenter.common.StationManager;
-import com.dayu.managercenter.data.ServiceStation;
 import com.dayu.managercenter.ui.activity.SendOrderDetailActivity;
 import com.dayu.provider.event.ManagerReceiveEvent;
+import com.dayu.utils.StationManager;
 import com.dayu.utils.ToastUtils;
 
 import org.greenrobot.eventbus.EventBus;
diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/changeorder/ChangeOrderContract.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/changeorder/ChangeOrderContract.java
index 63c7c58..9ac9fec 100755
--- a/managercenter/src/main/java/com/dayu/managercenter/presenter/changeorder/ChangeOrderContract.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/changeorder/ChangeOrderContract.java
@@ -1,17 +1,24 @@
 package com.dayu.managercenter.presenter.changeorder;
 
 
+import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
 import com.dayu.base.ui.presenter.BaseListPresenter;
 import com.dayu.common.BaseView;
 
+import java.util.List;
+
 /**
  * Created by luo on 2016/8/4.
  */
 public interface ChangeOrderContract {
 
     interface View extends BaseView {
+        void showEngineerDialog(List<String> list, OnOptionsSelectListener listener);
     }
 
     abstract class Presenter extends BaseListPresenter<View> {
+        public abstract void getDesignateList();
+
+        public abstract void getEngineers(int id);
     }
 }
diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/changeorder/ChangeOrderPresenter.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/changeorder/ChangeOrderPresenter.java
index 9e38688..e650eb7 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/presenter/changeorder/ChangeOrderPresenter.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/changeorder/ChangeOrderPresenter.java
@@ -1,6 +1,17 @@
 package com.dayu.managercenter.presenter.changeorder;
 
 import android.databinding.ObservableField;
+import android.os.Bundle;
+
+import com.dayu.common.Constants;
+import com.dayu.event.ServiceStation;
+import com.dayu.managercenter.api.ManagerApiFactory;
+import com.dayu.managercenter.data.Engineer;
+import com.dayu.managercenter.ui.activity.ChangeReasonActivity;
+import com.dayu.utils.StationManager;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Created by luofan
@@ -8,14 +19,55 @@ import android.databinding.ObservableField;
  */
 public class ChangeOrderPresenter extends ChangeOrderContract.Presenter {
     private ObservableField<Object> datas = new ObservableField<>();
+    private ServiceStation mStation;
+    private int mPage;
 
     @Override
     public void onAttached() {
-
+        mStation = StationManager.getInstance().getStation();
     }
 
     @Override
     public ObservableField<Object> getSourceDatas() {
         return datas;
     }
+
+    @Override
+    public void getDesignateList() {
+        ManagerApiFactory.getDesignateList(mStation.getId(), 1, mPage, Constants.PAGESIZE).subscribe(baseObserver(
+                orderBasePageBean -> datas.set(orderBasePageBean),
+                error -> datas.set(Constants.FAILED)));
+    }
+
+    @Override
+    public void getEngineers(int id) {
+        mView.showDialog();
+        ManagerApiFactory.getEngineers(mStation.getId()).subscribe(baseObserver(
+                engineers -> showEngineerDialog(engineers, id)));
+    }
+
+    private void showEngineerDialog(List<Engineer> engineers, int id) {
+        List<String> list = new ArrayList<>();
+        for (Engineer info : engineers) {
+            list.add(info.getRealName());
+        }
+        mView.showEngineerDialog(list, (options1, options2, options3, v)
+                -> {
+            Bundle bundle = new Bundle();
+            bundle.putInt(Constants.ACCOUNT_ID, engineers.get(options1).getAccountId());
+            bundle.putInt(Constants.ID, id);
+            mView.startActivity(ChangeReasonActivity.class, bundle);
+        });
+    }
+
+    @Override
+    public void refresh() {
+        mPage = 1;
+        getDesignateList();
+    }
+
+    @Override
+    public void loadMore() {
+        getDesignateList();
+    }
 }
diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/changereason/ChangeReasonContract.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/changereason/ChangeReasonContract.java
new file mode 100755
index 0000000..8cd89df
--- /dev/null
+++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/changereason/ChangeReasonContract.java
@@ -0,0 +1,20 @@
+package com.dayu.managercenter.presenter.changereason;
+
+
+import com.dayu.base.ui.presenter.BasePresenter;
+import com.dayu.common.BaseView;
+
+
+/**
+ * Created by luo
+ * on 2016/8/4.
+ */
+public interface ChangeReasonContract {
+
+    interface View extends BaseView {
+    }
+
+    abstract class Presenter extends BasePresenter<View> {
+        public abstract void changeEngineer();
+    }
+}
diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/changereason/ChangeReasonPresenter.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/changereason/ChangeReasonPresenter.java
new file mode 100644
index 0000000..540a5e4
--- /dev/null
+++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/changereason/ChangeReasonPresenter.java
@@ -0,0 +1,35 @@
+package com.dayu.managercenter.presenter.changereason;
+
+import android.databinding.ObservableField;
+
+import com.dayu.common.Constants;
+import com.dayu.managercenter.api.ManagerApiFactory;
+import com.dayu.utils.ToastUtils;
+
+/**
+ * Created by luofan
+ * on 2017/11/8.
+ */
+public class ChangeReasonPresenter extends ChangeReasonContract.Presenter {
+    public ObservableField<String> mReason = new ObservableField<>();
+    private int mAccountId;
+    private int mId;
+
+    @Override
+    public void onAttached() {
+        mAccountId = mView.getBundle().getInt(Constants.ACCOUNT_ID);
+        mId = mView.getBundle().getInt(Constants.ID);
+    }
+
+
+    @Override
+    public void changeEngineer() {
+        mView.showDialog();
+        ManagerApiFactory.changeEngineer(mId, mReason.get(), mAccountId).subscribe(
+                baseObserver(aBoolean -> {
+                    ToastUtils.showShortToast("改派成功");
+                    mView.dumpBack();
+                })
+        );
+    }
+}
diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/graborder/GrabPresenter.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/graborder/GrabPresenter.java
index 4228235..39c111a 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/presenter/graborder/GrabPresenter.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/graborder/GrabPresenter.java
@@ -4,13 +4,14 @@ import android.databinding.ObservableField;
 import android.os.Bundle;
 
 import com.dayu.common.Constants;
+import com.dayu.event.ServiceStation;
 import com.dayu.managercenter.api.ManagerApiFactory;
 import com.dayu.managercenter.common.ManagerConstant;
-import com.dayu.managercenter.common.StationManager;
 import com.dayu.managercenter.data.GrabOrder;
-import com.dayu.managercenter.data.ServiceStation;
 import com.dayu.managercenter.ui.activity.SendOrderDetailActivity;
 import com.dayu.provider.event.ManagerReceiveEvent;
+import com.dayu.provider.event.RefreshGrabEvent;
+import com.dayu.utils.StationManager;
 import com.dayu.utils.ToastUtils;
 
 import org.greenrobot.eventbus.EventBus;
@@ -20,6 +21,7 @@ import java.util.HashMap;
 import java.util.concurrent.TimeUnit;
 
 import io.reactivex.Observable;
+import io.reactivex.android.schedulers.AndroidSchedulers;
 import okhttp3.MediaType;
 import okhttp3.RequestBody;
 
@@ -68,6 +70,12 @@ public class GrabPresenter extends GrabContract.Presenter {
         RequestBody body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString());
         ManagerApiFactory.bargain(body).subscribe(baseObserver(aBoolean -> {
             refresh();
+            Bundle bundle = new Bundle();
+            bundle.putInt(Constants.ID, (order.getId()));
+            bundle.putInt(Constants.STATE, ManagerConstant.BARGAIN_ORDER);
+            mView.startActivity(SendOrderDetailActivity.class, bundle);
+            Observable.timer(500, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread())
+                    .subscribe(l -> EventBus.getDefault().post(new RefreshGrabEvent(1)));
         }));
     }
 
diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/senddetail/SendDetailPresenter.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/senddetail/SendDetailPresenter.java
index aea0161..7a989b8 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/presenter/senddetail/SendDetailPresenter.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/senddetail/SendDetailPresenter.java
@@ -4,18 +4,18 @@ import android.databinding.ObservableField;
 import android.os.Bundle;
 
 import com.dayu.common.Constants;
+import com.dayu.event.ServiceStation;
 import com.dayu.managercenter.R;
 import com.dayu.managercenter.api.ManagerApiFactory;
 import com.dayu.managercenter.common.ManagerConstant;
-import com.dayu.managercenter.common.StationManager;
 import com.dayu.managercenter.data.Engineer;
 import com.dayu.managercenter.data.OrderDetail;
-import com.dayu.managercenter.data.ServiceStation;
 import com.dayu.managercenter.data.Spu;
 import com.dayu.managercenter.ui.activity.SendOrderDetailActivity;
 import com.dayu.provider.event.DesignateEvent;
 import com.dayu.provider.event.ManagerReceiveEvent;
 import com.dayu.provider.event.RefreshGrabEvent;
+import com.dayu.utils.StationManager;
 import com.dayu.utils.ToastUtils;
 import com.dayu.utils.UserManager;
 
diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/sendorder/SendOrderPresenter.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/sendorder/SendOrderPresenter.java
index a0415ce..f2322ab 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/presenter/sendorder/SendOrderPresenter.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/sendorder/SendOrderPresenter.java
@@ -3,12 +3,12 @@ package com.dayu.managercenter.presenter.sendorder;
 import android.databinding.ObservableField;
 
 import com.dayu.common.Constants;
+import com.dayu.event.ServiceStation;
 import com.dayu.event.UserInfo;
 import com.dayu.managercenter.R;
 import com.dayu.managercenter.api.ManagerApiFactory;
-import com.dayu.managercenter.common.StationManager;
 import com.dayu.managercenter.data.Engineer;
-import com.dayu.managercenter.data.ServiceStation;
+import com.dayu.utils.StationManager;
 import com.dayu.utils.UserManager;
 
 import java.util.ArrayList;
diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/servicestation/ServiceStationContract.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/servicestation/ServiceStationContract.java
index 916a070..ea9c81a 100755
--- a/managercenter/src/main/java/com/dayu/managercenter/presenter/servicestation/ServiceStationContract.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/servicestation/ServiceStationContract.java
@@ -3,7 +3,7 @@ package com.dayu.managercenter.presenter.servicestation;
 
 import com.dayu.base.ui.presenter.BaseListPresenter;
 import com.dayu.common.BaseView;
-import com.dayu.managercenter.data.ServiceStation;
+import com.dayu.event.ServiceStation;
 
 /**
  * Created by luo on 2016/8/4.
diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/servicestation/ServiceStationPresenter.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/servicestation/ServiceStationPresenter.java
index 6f50846..9519c3c 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/presenter/servicestation/ServiceStationPresenter.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/servicestation/ServiceStationPresenter.java
@@ -4,10 +4,12 @@ import android.databinding.ObservableField;
 
 import com.alibaba.android.arouter.launcher.ARouter;
 import com.dayu.common.Constants;
+import com.dayu.event.ServiceStation;
 import com.dayu.managercenter.api.ManagerApiFactory;
-import com.dayu.managercenter.common.StationManager;
-import com.dayu.managercenter.data.ServiceStation;
+import com.dayu.managercenter.ui.activity.ManagerActivity;
 import com.dayu.provider.router.RouterPath;
+import com.dayu.utils.StationManager;
+import com.dayu.utils.UserManager;
 
 /**
  * Created by luofan
@@ -36,8 +38,13 @@ public class ServiceStationPresenter extends ServiceStationContract.Presenter {
 
     @Override
     public void selectStation(ServiceStation station) {
+        mView.showDialog();
         StationManager.getInstance().svaeStation(station);
-        ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation();
+        if (UserManager.getInstance().getRole() == Constants.ENGINEER) {
+            mView.startActivity(ManagerActivity.class);
+        } else if (UserManager.getInstance().getRole() == Constants.MANAGER_ENGINEER) {
+            ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation();
+        }
     }
 
     @Override
diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/subcribeorder/SubcribeOrderContract.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/subcribeorder/SubcribeOrderContract.java
index 71d6ea4..3de4aef 100755
--- a/managercenter/src/main/java/com/dayu/managercenter/presenter/subcribeorder/SubcribeOrderContract.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/subcribeorder/SubcribeOrderContract.java
@@ -1,18 +1,33 @@
 package com.dayu.managercenter.presenter.subcribeorder;
 
 
+import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
 import com.dayu.base.ui.presenter.BaseListPresenter;
 import com.dayu.common.BaseView;
 
+import java.util.List;
+
 /**
  * Created by luo on 2016/8/4.
  */
 public interface SubcribeOrderContract {
 
     interface View extends BaseView {
+        void showEngineerDialog(List<String> list, OnOptionsSelectListener listener);
     }
 
     abstract class Presenter extends BaseListPresenter<View> {
         public abstract void getSubcribeOrder();
+
+
+        public abstract void refuse(int id);
+
+
+        public abstract void designate(int id, int accountId);
+
+        /**
+         * 获取工程师列表.
+         */
+        public abstract void getEngineers(int id);
     }
 }
diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/subcribeorder/SubcribeOrderPresenter.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/subcribeorder/SubcribeOrderPresenter.java
index e1205dc..3677492 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/presenter/subcribeorder/SubcribeOrderPresenter.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/subcribeorder/SubcribeOrderPresenter.java
@@ -3,9 +3,15 @@ package com.dayu.managercenter.presenter.subcribeorder;
 import android.databinding.ObservableField;
 
 import com.dayu.common.Constants;
+import com.dayu.event.ServiceStation;
+import com.dayu.managercenter.R;
 import com.dayu.managercenter.api.ManagerApiFactory;
-import com.dayu.managercenter.common.StationManager;
-import com.dayu.managercenter.data.ServiceStation;
+import com.dayu.managercenter.data.Engineer;
+import com.dayu.utils.StationManager;
+import com.dayu.utils.UserManager;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Created by luofan
@@ -15,10 +21,12 @@ public class SubcribeOrderPresenter extends SubcribeOrderContract.Presenter {
     private ObservableField<Object> datas = new ObservableField<>();
     private int mPage;
     private int mId;
+    private String mName;
 
     @Override
     public void onAttached() {
         ServiceStation station = StationManager.getInstance().getStation();
+        mName = UserManager.getInstance().getUser().getAccountName();
         mId = station.getId();
     }
 
@@ -29,11 +37,46 @@ public class SubcribeOrderPresenter extends SubcribeOrderContract.Presenter {
 
     @Override
     public void getSubcribeOrder() {
+        mView.showDialog();
         ManagerApiFactory.getEuOrder(mPage, Constants.PAGESIZE, mId, 8, 5).subscribe(baseObserver(
                 orders -> datas.set(orders), error -> datas.set(Constants.FAILED)));
     }
 
     @Override
+    public void refuse(int id) {
+        mView.showDialog();
+        ManagerApiFactory.refuse(id, mName, "").subscribe(baseObserver(aBoolean -> {
+            mView.showToast("工单已拒绝");
+            refresh();
+        }));
+    }
+
+    @Override
+    public void designate(int accountId, int id) {
+        mView.showDialog();
+        ManagerApiFactory.designate(id, accountId, mName).subscribe(baseObserver(aBoolean -> {
+            mView.showToast(R.string.designate_success);
+            refresh();
+        }));
+    }
+
+    @Override
+    public void getEngineers(int id) {
+        mView.showDialog();
+        ManagerApiFactory.getEngineers(mId).subscribe(baseObserver(
+                engineers -> showEngineerDialog(engineers, id)));
+    }
+
+    private void showEngineerDialog(List<Engineer> engineers, int id) {
+        List<String> list = new ArrayList<>();
+        for (Engineer info : engineers) {
+            list.add(info.getRealName());
+        }
+        mView.showEngineerDialog(list, (options1, options2, options3, v)
+                -> designate(engineers.get(options1).getAccountId(), id));
+    }
+
+    @Override
     public void refresh() {
         mPage = 1;
         getSubcribeOrder();
diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/subdetail/SubDetailContract.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/subdetail/SubDetailContract.java
index 0f842c4..e94109f 100755
--- a/managercenter/src/main/java/com/dayu/managercenter/presenter/subdetail/SubDetailContract.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/subdetail/SubDetailContract.java
@@ -1,10 +1,13 @@
 package com.dayu.managercenter.presenter.subdetail;
 
 
+import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
 import com.dayu.base.ui.presenter.BasePresenter;
 import com.dayu.common.BaseView;
 import com.dayu.managercenter.data.OrderDetail;
 
+import java.util.List;
+
 /**
  * Created by luo on 2016/8/4.
  */
@@ -12,6 +15,8 @@ public interface SubDetailContract {
 
     interface View extends BaseView {
         void getData(OrderDetail detail);
+
+        void showEngineerDialog(List<String> list, OnOptionsSelectListener listener);
     }
 
     abstract class Presenter extends BasePresenter<View> {
@@ -20,5 +25,12 @@ public interface SubDetailContract {
          */
         public abstract void getOrderInfo();
 
+
+        public abstract void refuse(int id);
+
+
+        public abstract void designate(int id, int accountId);
+
+        public abstract void getEngineers(int id);
     }
 }
diff --git a/managercenter/src/main/java/com/dayu/managercenter/presenter/subdetail/SubDetailPresenter.java b/managercenter/src/main/java/com/dayu/managercenter/presenter/subdetail/SubDetailPresenter.java
index 853821d..79838b0 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/presenter/subdetail/SubDetailPresenter.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/presenter/subdetail/SubDetailPresenter.java
@@ -1,7 +1,17 @@
 package com.dayu.managercenter.presenter.subdetail;
 
 import com.dayu.common.Constants;
+import com.dayu.managercenter.R;
 import com.dayu.managercenter.api.ManagerApiFactory;
+import com.dayu.managercenter.common.ManagerConstant;
+import com.dayu.managercenter.data.Engineer;
+import com.dayu.provider.event.RefreshManagerEvent;
+import com.dayu.utils.UserManager;
+
+import org.greenrobot.eventbus.EventBus;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Created by luofan
@@ -9,10 +19,12 @@ import com.dayu.managercenter.api.ManagerApiFactory;
  */
 public class SubDetailPresenter extends SubDetailContract.Presenter {
     private int mId;
+    private String mName;
 
     @Override
     public void onAttached() {
         mId = mView.getBundle().getInt(Constants.ID);
+        mName = UserManager.getInstance().getUser().getAccountName();
         getOrderInfo();
     }
 
@@ -22,4 +34,39 @@ public class SubDetailPresenter extends SubDetailContract.Presenter {
         ManagerApiFactory.getOrderInfo(mId).subscribe(baseObserver(
                 orderDetail -> mView.getData(orderDetail)));
     }
+
+    @Override
+    public void refuse(int id) {
+        mView.showDialog();
+        ManagerApiFactory.refuse(id, mName, "").subscribe(baseObserver(aBoolean -> {
+            mView.showToast("工单已拒绝");
+            EventBus.getDefault().post(new RefreshManagerEvent(ManagerConstant.Eu_ORDER));
+            mView.dumpBack();
+        }));
+    }
+
+    @Override
+    public void designate(int accountId,int id) {
+        mView.showDialog();
+        ManagerApiFactory.designate(id, accountId, mName).subscribe(baseObserver(aBoolean -> {
+            mView.showToast(R.string.designate_success);
+            EventBus.getDefault().post(new RefreshManagerEvent(ManagerConstant.Eu_ORDER));
+            mView.dumpBack();
+        }));
+    }
+
+    @Override
+    public void getEngineers(int id) {
+        ManagerApiFactory.getEngineers(id).subscribe(baseObserver(
+                engineers -> showEngineerDialog(engineers, id)));
+    }
+
+    private void showEngineerDialog(List<Engineer> engineers, int id) {
+        List<String> list = new ArrayList<>();
+        for (Engineer info : engineers) {
+            list.add(info.getRealName());
+        }
+        mView.showEngineerDialog(list, (options1, options2, options3, v)
+                -> designate(engineers.get(options1).getAccountId(), id));
+    }
 }
diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/activity/ChangeReasonActivity.java b/managercenter/src/main/java/com/dayu/managercenter/ui/activity/ChangeReasonActivity.java
new file mode 100755
index 0000000..8e12823
--- /dev/null
+++ b/managercenter/src/main/java/com/dayu/managercenter/ui/activity/ChangeReasonActivity.java
@@ -0,0 +1,29 @@
+package com.dayu.managercenter.ui.activity;
+
+import com.dayu.base.ui.activity.BaseActivity;
+import com.dayu.managercenter.R;
+import com.dayu.managercenter.databinding.ActivityChangeReasonBinding;
+import com.dayu.managercenter.presenter.changereason.ChangeReasonContract;
+import com.dayu.managercenter.presenter.changereason.ChangeReasonPresenter;
+
+/**
+ * Created by luofan
+ * on 2017/11/8.
+ */
+
+public class ChangeReasonActivity extends BaseActivity<ChangeReasonPresenter, ActivityChangeReasonBinding>
+        implements ChangeReasonContract.View {
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.activity_change_reason;
+    }
+
+    @Override
+    public void initView() {
+    }
+    @Override
+    public void setPresenter() {
+        mBind.setPresenter(mPresenter);
+    }
+}
diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/activity/ManagerActivity.java b/managercenter/src/main/java/com/dayu/managercenter/ui/activity/ManagerActivity.java
index 0fb70d0..e71276a 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/ui/activity/ManagerActivity.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/ui/activity/ManagerActivity.java
@@ -5,14 +5,16 @@ import android.support.v7.app.AppCompatActivity;
 import android.view.Window;
 import android.view.WindowManager;
 
+import com.alibaba.android.arouter.facade.annotation.Route;
 import com.dayu.managercenter.R;
 import com.dayu.managercenter.ui.fragment.ManagerFragment;
+import com.dayu.provider.router.RouterPath;
 
 /**
  * Created by luofan
  * on 2018/2/7.
  */
-
+@Route(path = RouterPath.PATH_MANAGER)
 public class ManagerActivity extends AppCompatActivity {
 
     @Override
diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/activity/PreviewActivty.java b/managercenter/src/main/java/com/dayu/managercenter/ui/activity/PreviewActivty.java
new file mode 100755
index 0000000..b901783
--- /dev/null
+++ b/managercenter/src/main/java/com/dayu/managercenter/ui/activity/PreviewActivty.java
@@ -0,0 +1,78 @@
+package com.dayu.managercenter.ui.activity;
+
+import android.content.Context;
+import android.support.v4.view.PagerAdapter;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+
+import com.dayu.base.ui.activity.DataBindingActivity;
+import com.dayu.common.Constants;
+import com.dayu.managercenter.R;
+import com.dayu.managercenter.databinding.ActivityPicPreviewBinding;
+import com.dayu.utils.GlideImageLoader;
+
+import java.util.ArrayList;
+
+/**
+ * 选中图片页面
+ * on 2016/12/2.
+ * Created by MrWang
+ */
+public class PreviewActivty extends DataBindingActivity<ActivityPicPreviewBinding> {
+    private MyPageAdapter adapter;
+    private Context mContext;
+    public ArrayList<String> mInfos = new ArrayList<>();
+
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.activity_pic_preview;
+    }
+
+    @Override
+    public void initView() {
+        mContext = this;
+        mInfos = getIntent().getStringArrayListExtra(Constants.BUNDLE_KEY_ID);
+        adapter = new MyPageAdapter(mInfos);
+        mBind.vpPreview.setAdapter(adapter);
+        mBind.vpPreview.setCurrentItem(getIntent().getIntExtra(Constants.BUNDLE_KEY_ID, 0));
+        mBind.titileBack.setOnClickListener(o -> finish());
+    }
+
+    class MyPageAdapter extends PagerAdapter {
+
+        private ArrayList<String> listViews;
+
+        public MyPageAdapter(ArrayList<String> listViews) {
+            this.listViews = listViews;
+        }
+
+        public int getCount() {
+            return listViews.size();
+        }
+
+        public int getItemPosition(Object object) {
+            return POSITION_NONE;
+        }
+
+        @Override
+        public void destroyItem(ViewGroup container, int position, Object object) {
+            container.removeView((View) object);
+        }
+
+        @Override
+        public Object instantiateItem(ViewGroup container, int position) {
+            ImageView imageView = new ImageView(mContext);
+            GlideImageLoader.load(mContext, listViews.get(position), imageView);
+            container.addView(imageView);
+            return imageView;
+        }
+
+        @Override
+        public boolean isViewFromObject(View view, Object object) {
+            return view == object;
+        }
+    }
+}
+
diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/activity/SendOrderDetailActivity.java b/managercenter/src/main/java/com/dayu/managercenter/ui/activity/SendOrderDetailActivity.java
index 89cbc3f..94891da 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/ui/activity/SendOrderDetailActivity.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/ui/activity/SendOrderDetailActivity.java
@@ -1,6 +1,5 @@
 package com.dayu.managercenter.ui.activity;
 
-import android.app.Dialog;
 import android.graphics.Color;
 import android.support.v7.widget.LinearLayoutManager;
 import android.view.View;
@@ -14,8 +13,6 @@ import com.dayu.base.ui.adapter.CoreAdapter;
 import com.dayu.common.Constants;
 import com.dayu.managercenter.R;
 import com.dayu.managercenter.common.ManagerConstant;
-import com.dayu.managercenter.common.StationManager;
-import com.dayu.managercenter.data.GrabOrder;
 import com.dayu.managercenter.data.OrderDetail;
 import com.dayu.managercenter.data.Spu;
 import com.dayu.managercenter.databinding.ActivitySendDetailBinding;
@@ -23,6 +20,7 @@ import com.dayu.managercenter.databinding.ItemSendOrderDetailBinding;
 import com.dayu.managercenter.presenter.senddetail.SendDetailContract;
 import com.dayu.managercenter.presenter.senddetail.SendDetailPresenter;
 import com.dayu.managercenter.ui.view.BargainDialog;
+import com.dayu.utils.StationManager;
 import com.dayu.utils.TimeUtils;
 import com.dayu.utils.UIUtils;
 import com.dayu.utils.UtilsDate;
@@ -93,13 +91,11 @@ public class SendOrderDetailActivity extends BaseActivity<SendDetailPresenter, A
             mBind.customerAcceptance.setOnClickListener(v -> showReceiveDialog());
             mBind.priceState.setVisibility(View.VISIBLE);
         } else if (mState == ManagerConstant.CHANGE_ORDER) {
-            mBind.tvState.setVisibility(View.GONE);
-            mBind.tvOrderState.setVisibility(View.GONE);
+            mBind.tvState.setVisibility(View.VISIBLE);
+            mBind.tvOrderState.setVisibility(View.VISIBLE);
             mBind.tvEngineer.setVisibility(View.VISIBLE);
             mBind.engineerName.setVisibility(View.VISIBLE);
             mBind.customerAcceptance.setText(getString(R.string.change));
-            mBind.customerAcceptance.setOnClickListener(v -> {
-            });
         }
     }
 
@@ -118,7 +114,7 @@ public class SendOrderDetailActivity extends BaseActivity<SendDetailPresenter, A
                 mBind.tvLookMore.setVisibility(View.GONE);
             }
         });
-        if ((detail.getCreatedSource() != null && detail.getCreatedSource() == 1) || mState == ManagerConstant.GRAB_ORDER
+        if ((detail.getCreatedSource() != null && detail.getCreatedSource() == 1 || detail.getCreatedSource() == 5) || mState == ManagerConstant.GRAB_ORDER
                 || mState == ManagerConstant.BARGAIN_ORDER) {
             mBind.rlServerContent.setVisibility(View.GONE);
             mBind.serverName.setVisibility(View.VISIBLE);
@@ -151,12 +147,12 @@ public class SendOrderDetailActivity extends BaseActivity<SendDetailPresenter, A
         String s = UIUtils.getString(R.string.bargain_notice);
         String result = String.format(s, StationManager.getInstance().getStation().getName());
         mDialog = new BargainDialog(mActivity, R.style.CustomDialog, result,
-                (dialog1, confirm, str) -> {
+                (dialog1, confirm, editText) -> {
                     if (confirm) {
-                        if (Double.parseDouble(str) <= mDetail.getPaymentPrice()) {
+                        if (Double.parseDouble(editText.getText().toString().trim()) <= mDetail.getPaymentPrice()) {
                             mDialog.setError(getString(R.string.bargain_dialog_error));
                         } else {
-                            mPresenter.bargain(str, mDetail);
+                            mPresenter.bargain(editText.getText().toString().trim(), mDetail);
                         }
                     }
                 });
@@ -186,16 +182,16 @@ public class SendOrderDetailActivity extends BaseActivity<SendDetailPresenter, A
 
     private void setTime(String endTime, TextView view) {
         long time = UtilsDate.timeSub(endTime);
-        TimeUtils.startTimer(time, 1000, new TimeUtils.OnCountDownCallBack() {
+        TimeUtils.startTimer(time, 1000, -1, new TimeUtils.OnCountDownCallBack() {
             @Override
-            public void onProcess(int day, int hour, int minute, int second) {
+            public void onProcess(int day, int hour, int minute, int second, int tag) {
                 String str = UIUtils.getString(R.string.grab_time);
                 String result = String.format(str, day, hour, minute, second);
                 view.setText(UIUtils.setNumColor(result, Color.RED));
             }
 
             @Override
-            public void onFinish() {
+            public void onFinish(int tag) {
             }
         });
     }
diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/activity/ServiceStationActivity.java b/managercenter/src/main/java/com/dayu/managercenter/ui/activity/ServiceStationActivity.java
index d2991ff..5792aee 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/ui/activity/ServiceStationActivity.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/ui/activity/ServiceStationActivity.java
@@ -2,8 +2,8 @@ package com.dayu.managercenter.ui.activity;
 
 import com.alibaba.android.arouter.facade.annotation.Route;
 import com.dayu.base.ui.activity.BaseActivity;
+import com.dayu.event.ServiceStation;
 import com.dayu.managercenter.R;
-import com.dayu.managercenter.data.ServiceStation;
 import com.dayu.managercenter.databinding.ActivityServiceStationBinding;
 import com.dayu.managercenter.presenter.servicestation.ServiceStationContract;
 import com.dayu.managercenter.presenter.servicestation.ServiceStationPresenter;
diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/activity/SubOrderDetailActivity.java b/managercenter/src/main/java/com/dayu/managercenter/ui/activity/SubOrderDetailActivity.java
index c4d306c..785c1da 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/ui/activity/SubOrderDetailActivity.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/ui/activity/SubOrderDetailActivity.java
@@ -1,14 +1,27 @@
 package com.dayu.managercenter.ui.activity;
 
+import android.content.Intent;
 import android.view.View;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
 
+import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
+import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
+import com.bigkoo.pickerview.view.OptionsPickerView;
 import com.dayu.base.ui.activity.BaseActivity;
+import com.dayu.common.Constants;
 import com.dayu.managercenter.R;
 import com.dayu.managercenter.data.OrderDetail;
 import com.dayu.managercenter.databinding.ActivitySubOrderDetailBinding;
 import com.dayu.managercenter.presenter.subdetail.SubDetailContract;
 import com.dayu.managercenter.presenter.subdetail.SubDetailPresenter;
+import com.dayu.utils.GlideImageLoader;
 import com.dayu.utils.UIUtils;
+import com.dayu.utils.UtilsScreen;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Created by luofan
@@ -16,6 +29,7 @@ import com.dayu.utils.UIUtils;
  */
 public class SubOrderDetailActivity extends BaseActivity<SubDetailPresenter, ActivitySubOrderDetailBinding> implements SubDetailContract.View {
     private boolean mFlag;
+    private int mIvWeight;
 
     @Override
     public void setPresenter() {
@@ -28,7 +42,8 @@ public class SubOrderDetailActivity extends BaseActivity<SubDetailPresenter, Act
 
     @Override
     public void initView() {
-
+        mIvWeight = (UtilsScreen.getScreenWidth(mActivity) - UtilsScreen.dip2px(mActivity, 20)) / 5;
+        mBind.llPhoto.removeAllViews();
     }
 
     @Override
@@ -44,6 +59,31 @@ public class SubOrderDetailActivity extends BaseActivity<SubDetailPresenter, Act
                 mBind.tvLookMore.setVisibility(View.GONE);
             }
         });
+        mBind.refuse.setOnClickListener(v -> mPresenter.refuse(detail.getId()));
+        mBind.designate.setOnClickListener(v -> mPresenter.getEngineers(detail.getSiteId()));
+        initPhoto(detail.getAccessories(), mBind.llPhoto);
+    }
+
+    public void initPhoto(List<OrderDetail.accessories> list, LinearLayout layout) {
+        layout.removeAllViews();
+        ArrayList<String> pics = new ArrayList<>();
+        for (int i = 0; i < list.size(); i++) {
+            ImageView view = new ImageView(mActivity);
+            view.setLayoutParams(new RelativeLayout.LayoutParams(mIvWeight, mIvWeight));
+            view.setPadding(0, 0, 10, 0);
+            String path = list.get(i).getUrl();
+            pics.add(path);
+            GlideImageLoader.load(mActivity, path, view);
+            view.setOnClickListener(v -> dumpPic(pics));
+            layout.addView(view);
+        }
+    }
+
+    private void dumpPic(ArrayList<String> list) {
+        Intent intent = new Intent(this, PreviewActivty.class);
+        intent.putStringArrayListExtra(Constants.BUNDLE_KEY_ID, list);
+        int DELETECODE = 0;
+        startActivityForResult(intent, DELETECODE);
     }
 
     public void lookMore() {
@@ -57,4 +97,15 @@ public class SubOrderDetailActivity extends BaseActivity<SubDetailPresenter, Act
             mBind.orderRemark.setMaxLines(2);
         }
     }
+
+    @Override
+    public void showEngineerDialog(List<String> list, OnOptionsSelectListener listener) {
+        //条件选择器
+        OptionsPickerView pvOptions = new OptionsPickerBuilder(mActivity, listener)
+                .setContentTextSize(18)
+                .setLineSpacingMultiplier(2.0f)
+                .build();
+        pvOptions.setPicker(list);
+        pvOptions.show();
+    }
 }
diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/adapter/GrabOrderAdapter.java b/managercenter/src/main/java/com/dayu/managercenter/ui/adapter/GrabOrderAdapter.java
index d29d1b8..b29955c 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/ui/adapter/GrabOrderAdapter.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/ui/adapter/GrabOrderAdapter.java
@@ -33,7 +33,8 @@ public class GrabOrderAdapter extends CoreAdapter<GrabOrder, ItemGrabBargainBind
         holder.grabAddress.setText(address);
         holder.createTime.setText(item.getCreateTime());
         if (state == 0) {
-            setTime(item.getAppointmentTime(), holder);
+            holder.leftTime.setTag(position);
+            setTime(item.getAppointmentTime(), holder, position);
             holder.leftTime.setVisibility(View.VISIBLE);
             holder.tvBargin.setVisibility(View.VISIBLE);
             holder.arrow.setVisibility(View.VISIBLE);
@@ -79,19 +80,23 @@ public class GrabOrderAdapter extends CoreAdapter<GrabOrder, ItemGrabBargainBind
         });
     }
 
-    private void setTime(String endTime, ItemGrabBargainBinding holder) {
+    private void setTime(String endTime, ItemGrabBargainBinding holder, int position) {
         long time = UtilsDate.timeSub(endTime);
-        TimeUtils.startTimer(time, 1000, new TimeUtils.OnCountDownCallBack() {
+        TimeUtils.startTimer(time, 1000, position, new TimeUtils.OnCountDownCallBack() {
             @Override
-            public void onProcess(int day, int hour, int minute, int second) {
-                String str = UIUtils.getString(R.string.grab_time);
-                String result = String.format(str, day, hour, minute, second);
-                holder.leftTime.setText(UIUtils.setNumColor(result, Color.RED));
+            public void onProcess(int day, int hour, int minute, int second, int tag) {
+                if (((int) holder.leftTime.getTag()) == tag) {
+                    String str = UIUtils.getString(R.string.grab_time);
+                    String result = String.format(str, day, hour, minute, second);
+                    holder.leftTime.setText(UIUtils.setNumColor(result, Color.RED));
+                }
             }
 
             @Override
-            public void onFinish() {
-                ((GrabPresenter) mPresenter).getGrapOrders();
+            public void onFinish(int tag) {
+                if (((int) holder.leftTime.getTag()) == tag) {
+                    ((GrabPresenter) mPresenter).getGrapOrders();
+                }
             }
         });
     }
diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/adapter/ManagerOrderAdapter.java b/managercenter/src/main/java/com/dayu/managercenter/ui/adapter/ManagerOrderAdapter.java
index 6f2bf4c..ca91306 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/ui/adapter/ManagerOrderAdapter.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/ui/adapter/ManagerOrderAdapter.java
@@ -42,22 +42,6 @@ public class ManagerOrderAdapter extends CoreAdapter<Order, ItemManagerOrderBind
         } else {
             holder.tvOrderDetail.setText(item.getSpuName());
         }
-        String time = item.getAppointmentTime();
-        if (TextUtils.isEmpty(time)) {
-            holder.itemTody.setText(mContext.getString(R.string.no_appointment));
-            holder.itemTime.setVisibility(View.GONE);
-        } else {
-            String dateTime = null;
-            try {
-                dateTime = UtilsDate.changeFormat(time, FORMAT_ONE, LONG_TIME_FORMAT_TWO);
-            } catch (ParseException e) {
-                e.printStackTrace();
-            }
-            holder.itemTody.setText(UtilsDate.getDayOrIsToday(time));
-            holder.itemTime.setText(dateTime);
-            holder.itemTime.setVisibility(View.VISIBLE);
-        }
-
         if (item.getCreatedSource() == 2 || item.getCreatedSource() == 3 || item.getCreatedSource() == 4) {
 
             if (TextUtils.isEmpty(item.getSpus().get(0).getKaSpuName())) {
@@ -81,17 +65,24 @@ public class ManagerOrderAdapter extends CoreAdapter<Order, ItemManagerOrderBind
         } else {
             holder.tvServerType.setVisibility(View.GONE);
         }
+        holder.itemTextPhone.setOnClickListener(v -> {
+            if (mOnChildClickListener != null) {
+                mOnChildClickListener.OnChildClick(holder.itemTextPhone, this, position);
+            }
+        });
+
+        holder.itemUpdataTime.setOnClickListener(v -> {
+            if (mOnChildClickListener != null) {
+                mOnChildClickListener.OnChildClick(holder.itemUpdataTime, this, position);
+            }
+        });
+        String time = item.getAppointmentTime();
         switch (state) {
             case ManagerConstant.SEND_ORDER:
                 holder.itemTextPhone.setText(mContext.getString(R.string.designate));
                 holder.itemUpdataTime.setVisibility(View.GONE);
                 holder.orderLineOne.setVisibility(View.GONE);
                 holder.tvOrderDetail.setVisibility(View.VISIBLE);
-                holder.itemTextPhone.setOnClickListener(v -> {
-                    if (mOnChildClickListener != null) {
-                        mOnChildClickListener.OnChildClick(holder.itemTextPhone, this, position);
-                    }
-                });
                 break;
             case ManagerConstant.Eu_ORDER:
                 holder.itemTextPhone.setText(mContext.getString(R.string.refuse));
@@ -101,13 +92,35 @@ public class ManagerOrderAdapter extends CoreAdapter<Order, ItemManagerOrderBind
                 holder.tvOrderDetail.setVisibility(View.GONE);
                 break;
             case ManagerConstant.CHANGE_ORDER:
-                holder.itemTextPhone.setText(mContext.getString(R.string.change_engineer));
+                String str = mContext.getString(R.string.change_engineer_name);
+                holder.itemTextPhone.setText(String.format(str, item.getEngineerName()));
                 holder.itemUpdataTime.setVisibility(View.GONE);
                 holder.orderLineOne.setVisibility(View.GONE);
                 holder.tvOrderDetail.setVisibility(View.VISIBLE);
+                if (item.getStatus() == 2) {
+                    time = item.getAppointmentTime();
+                    holder.tvOrderTime.setText(mContext.getString(R.string.have_appointment));
+                } else if (item.getStatus() == 3) {
+                    time = item.getConfirmDoorTime();
+                    holder.tvOrderTime.setText(mContext.getString(R.string.tv_home_tab_one_subscribe_time));
+                }
                 break;
             default:
                 break;
         }
+        if (TextUtils.isEmpty(time)) {
+            holder.itemTody.setText(mContext.getString(R.string.no_appointment));
+            holder.itemTime.setVisibility(View.GONE);
+        } else {
+            String dateTime = null;
+            try {
+                dateTime = UtilsDate.changeFormat(time, FORMAT_ONE, LONG_TIME_FORMAT_TWO);
+            } catch (ParseException e) {
+                e.printStackTrace();
+            }
+            holder.itemTody.setText(UtilsDate.getDayOrIsToday(time));
+            holder.itemTime.setText(dateTime);
+            holder.itemTime.setVisibility(View.VISIBLE);
+        }
     }
 }
diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/BargainFragment.java b/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/BargainFragment.java
index 2034504..c996f75 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/BargainFragment.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/BargainFragment.java
@@ -6,14 +6,15 @@ import com.dayu.base.ui.fragment.BaseFragment;
 import com.dayu.common.Constants;
 import com.dayu.managercenter.R;
 import com.dayu.managercenter.common.ManagerConstant;
-import com.dayu.managercenter.common.StationManager;
 import com.dayu.managercenter.data.GrabOrder;
 import com.dayu.managercenter.databinding.FragmentRecycleBinding;
 import com.dayu.managercenter.presenter.bargainorder.BargainContract;
 import com.dayu.managercenter.presenter.bargainorder.BargainPresenter;
 import com.dayu.managercenter.ui.activity.SendOrderDetailActivity;
 import com.dayu.managercenter.ui.adapter.GrabOrderAdapter;
+import com.dayu.provider.event.ManagerReceiveEvent;
 import com.dayu.provider.event.RefreshGrabEvent;
+import com.dayu.utils.StationManager;
 import com.dayu.utils.UIUtils;
 import com.dayu.widgets.CustomDialog;
 
@@ -95,4 +96,9 @@ public class BargainFragment extends BaseFragment<BargainPresenter, FragmentRecy
     public void swtichfragment(RefreshGrabEvent event) {
         mPresenter.refresh();
     }
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void swtichfragment(ManagerReceiveEvent event) {
+        mPresenter.refresh();
+    }
 }
diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/ChangeOrderFragment.java b/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/ChangeOrderFragment.java
index 4234748..8c8667e 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/ChangeOrderFragment.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/ChangeOrderFragment.java
@@ -2,19 +2,27 @@ package com.dayu.managercenter.ui.fragment;
 
 import android.os.Bundle;
 
+import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
+import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
+import com.bigkoo.pickerview.view.OptionsPickerView;
 import com.dayu.base.ui.fragment.BaseFragment;
+import com.dayu.common.Constants;
 import com.dayu.managercenter.R;
 import com.dayu.managercenter.common.ManagerConstant;
+import com.dayu.managercenter.data.Order;
 import com.dayu.managercenter.databinding.FragmentRecycleBinding;
 import com.dayu.managercenter.presenter.changeorder.ChangeOrderContract;
 import com.dayu.managercenter.presenter.changeorder.ChangeOrderPresenter;
+import com.dayu.managercenter.ui.activity.SendOrderDetailActivity;
 import com.dayu.managercenter.ui.adapter.ManagerOrderAdapter;
 
+import java.util.List;
+
 /**
  * Created by luofan
  * on 2018/8/27.
  */
-public class ChangeOrderFragment extends BaseFragment<ChangeOrderPresenter,FragmentRecycleBinding> implements ChangeOrderContract.View{
+public class ChangeOrderFragment extends BaseFragment<ChangeOrderPresenter, FragmentRecycleBinding> implements ChangeOrderContract.View {
     public static ChangeOrderFragment newInstance() {
         Bundle args = new Bundle();
         ChangeOrderFragment fragment = new ChangeOrderFragment();
@@ -42,6 +50,31 @@ public class ChangeOrderFragment extends BaseFragment<ChangeOrderPresenter,Fragm
         ManagerOrderAdapter adapter = new ManagerOrderAdapter(true, ManagerConstant.CHANGE_ORDER);
         adapter.setViewType(R.layout.item_manager_order);
         mBind.recyclerView.setAdapter(adapter);
-//        mPresenter.refresh();
+        mPresenter.refresh();
+
+        mBind.recyclerView.setOnItemClickListener((item, bind) -> {
+            Bundle bundle = new Bundle();
+            bundle.putInt(Constants.ID, (((Order) item).getId()));
+            bundle.putInt(Constants.STATE, ManagerConstant.CHANGE_ORDER);
+            startActivity(SendOrderDetailActivity.class, bundle);
+        });
+
+        mBind.recyclerView.mCoreAdapter.setOnChildClickListener((view, adapter1, position) -> {
+            Order order = (Order) mBind.recyclerView.getDatas().get(position);
+            if (view.getId() == R.id.item_text_phone) {
+                mPresenter.getEngineers(order.getId());
+            }
+        });
+    }
+
+    @Override
+    public void showEngineerDialog(List<String> list, OnOptionsSelectListener listener) {
+        //条件选择器
+        OptionsPickerView pvOptions = new OptionsPickerBuilder(mActivity, listener)
+                .setContentTextSize(18)
+                .setLineSpacingMultiplier(2.0f)
+                .build();
+        pvOptions.setPicker(list);
+        pvOptions.show();
     }
 }
diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/GrabFragment.java b/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/GrabFragment.java
index 3d5772e..188ec25 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/GrabFragment.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/GrabFragment.java
@@ -13,6 +13,7 @@ import com.dayu.managercenter.presenter.graborder.GrabPresenter;
 import com.dayu.managercenter.ui.activity.SendOrderDetailActivity;
 import com.dayu.managercenter.ui.adapter.GrabOrderAdapter;
 import com.dayu.managercenter.ui.view.BargainDialog;
+import com.dayu.provider.event.ManagerReceiveEvent;
 import com.dayu.provider.event.RefreshGrabEvent;
 import com.dayu.utils.UIUtils;
 import com.dayu.widgets.CustomDialog;
@@ -80,20 +81,22 @@ public class GrabFragment extends BaseFragment<GrabPresenter, FragmentRecycleBin
         String s = UIUtils.getString(R.string.bargain_notice);
         String result = String.format(s, order.getSiteName());
         mDialog = new BargainDialog(mActivity, R.style.CustomDialog, result,
-                (dialog1, confirm, str) -> {
+                (dialog1, confirm, editText) -> {
                     if (confirm) {
-                        if (Double.parseDouble(str) <= order.getPaymentPrice()) {
+                        if (Double.parseDouble(editText.getText().toString().trim()) <= order.getPaymentPrice()) {
                             mDialog.setError(getString(R.string.bargain_dialog_error));
                         } else {
-                            mPresenter.bargain(str, order);
+                            mPresenter.bargain(editText.getText().toString().trim(), order);
                         }
                     }
+                    mDialog.dismiss();
                 });
         mDialog.setTitle(mActivity.getString(R.string.bargain_titile))
                 .setNegativeButton(mActivity.getString(R.string.cancle))
                 .setPositiveButton(mActivity.getString(R.string.bargain_comform))
                 .setNegativeButtonColor(R.color.default_editext_color);
         mDialog.show();
+
     }
 
     @Override
@@ -118,4 +121,9 @@ public class GrabFragment extends BaseFragment<GrabPresenter, FragmentRecycleBin
     public void swtichfragment(RefreshGrabEvent event) {
         mPresenter.refresh();
     }
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void swtichfragment(ManagerReceiveEvent event) {
+        mPresenter.refresh();
+    }
 }
diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/SubcribeOrderFragment.java b/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/SubcribeOrderFragment.java
index 678276f..6eb7c66 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/SubcribeOrderFragment.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/ui/fragment/SubcribeOrderFragment.java
@@ -2,6 +2,9 @@ package com.dayu.managercenter.ui.fragment;
 
 import android.os.Bundle;
 
+import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
+import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
+import com.bigkoo.pickerview.view.OptionsPickerView;
 import com.dayu.base.ui.fragment.BaseFragment;
 import com.dayu.common.Constants;
 import com.dayu.managercenter.R;
@@ -12,6 +15,13 @@ import com.dayu.managercenter.presenter.subcribeorder.SubcribeOrderContract;
 import com.dayu.managercenter.presenter.subcribeorder.SubcribeOrderPresenter;
 import com.dayu.managercenter.ui.activity.SubOrderDetailActivity;
 import com.dayu.managercenter.ui.adapter.ManagerOrderAdapter;
+import com.dayu.provider.event.RefreshManagerEvent;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
+import java.util.List;
 
 /**
  * Created by luofan
@@ -43,6 +53,7 @@ public class SubcribeOrderFragment extends BaseFragment<SubcribeOrderPresenter, 
 
     @Override
     public void initView() {
+        EventBus.getDefault().register(this);
         ManagerOrderAdapter adapter = new ManagerOrderAdapter(true, ManagerConstant.Eu_ORDER);
         adapter.setViewType(R.layout.item_manager_order);
         mBind.recyclerView.setAdapter(adapter);
@@ -52,5 +63,31 @@ public class SubcribeOrderFragment extends BaseFragment<SubcribeOrderPresenter, 
             bundle.putInt(Constants.ID, (((Order) item).getId()));
             startActivity(SubOrderDetailActivity.class, bundle);
         });
+        mBind.recyclerView.mCoreAdapter.setOnChildClickListener((view, adapter1, position) -> {
+            Order order = (Order) mBind.recyclerView.getDatas().get(position);
+            if (view.getId() == R.id.item_text_phone) {
+                mPresenter.refuse(order.getId());
+            } else if (view.getId() == R.id.item_updata_time) {
+                mPresenter.getEngineers(order.getId());
+            }
+        });
+    }
+
+    @Override
+    public void showEngineerDialog(List<String> list, OnOptionsSelectListener listener) {
+        //条件选择器
+        OptionsPickerView pvOptions = new OptionsPickerBuilder(mActivity, listener)
+                .setContentTextSize(18)
+                .setLineSpacingMultiplier(2.0f)
+                .build();
+        pvOptions.setPicker(list);
+        pvOptions.show();
+    }
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void swtichfragment(RefreshManagerEvent event) {
+        if (event.getState() == ManagerConstant.Eu_ORDER) {
+            mPresenter.refresh();
+        }
     }
 }
diff --git a/managercenter/src/main/java/com/dayu/managercenter/ui/view/BargainDialog.java b/managercenter/src/main/java/com/dayu/managercenter/ui/view/BargainDialog.java
index c1be26f..b0c983f 100644
--- a/managercenter/src/main/java/com/dayu/managercenter/ui/view/BargainDialog.java
+++ b/managercenter/src/main/java/com/dayu/managercenter/ui/view/BargainDialog.java
@@ -5,6 +5,7 @@ import android.content.Context;
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.view.View;
+import android.view.inputmethod.InputMethodManager;
 import android.widget.EditText;
 import android.widget.TextView;
 
@@ -12,6 +13,11 @@ import com.dayu.common.MyTextWatcher;
 import com.dayu.managercenter.R;
 import com.dayu.utils.UIUtils;
 
+import java.util.concurrent.TimeUnit;
+
+import io.reactivex.Observable;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+
 
 /**
  * Created by luofan on 2017/11/10.
@@ -154,6 +160,11 @@ public class BargainDialog extends Dialog implements View.OnClickListener {
                 }
             }
         });
+        edittext.requestFocus();
+        Observable.timer(300, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe(l ->{
+            InputMethodManager inputManager = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
+            inputManager.showSoftInput(edittext, 0);
+        });
         submitTxt.setOnClickListener(this);
     }
 
@@ -163,18 +174,18 @@ public class BargainDialog extends Dialog implements View.OnClickListener {
         int i = v.getId();
         if (i == R.id.cancel) {
             if (listener != null) {
-                listener.onClick(this, false, "");
+                listener.onClick(this, false, edittext);
             }
             this.dismiss();
 
         } else if (i == R.id.submit) {
             if (listener != null) {
-                listener.onClick(this, true, edittext.getText().toString().trim());
+                listener.onClick(this, true, edittext);
             }
         }
     }
 
     public interface OnCloseListener {
-        void onClick(Dialog dialog, boolean confirm, String str);
+        void onClick(Dialog dialog, boolean confirm, EditText editText);
     }
 }
diff --git a/managercenter/src/main/release/AndroidManifest.xml b/managercenter/src/main/release/AndroidManifest.xml
index 21f10d8..7c747ac 100644
--- a/managercenter/src/main/release/AndroidManifest.xml
+++ b/managercenter/src/main/release/AndroidManifest.xml
@@ -9,6 +9,8 @@
         <activity android:name="com.dayu.managercenter.ui.activity.ServiceStationActivity" />
         <activity android:name="com.dayu.managercenter.ui.activity.SendOrderDetailActivity" />
         <activity android:name="com.dayu.managercenter.ui.activity.SubOrderDetailActivity" />
+        <activity android:name="com.dayu.managercenter.ui.activity.PreviewActivty" />
+        <activity android:name="com.dayu.managercenter.ui.activity.ChangeReasonActivity" />
     </application>
 
 </manifest>
diff --git a/managercenter/src/main/res/layout/activity_change_reason.xml b/managercenter/src/main/res/layout/activity_change_reason.xml
new file mode 100644
index 0000000..bd8f3d4
--- /dev/null
+++ b/managercenter/src/main/res/layout/activity_change_reason.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <data>
+
+
+        <variable
+            name="presenter"
+            type="com.dayu.managercenter.presenter.changereason.ChangeReasonPresenter" />
+    </data>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@color/cl_home_listview_bg"
+        android:orientation="vertical">
+
+        <RelativeLayout
+            android:id="@+id/title_idea"
+            style="@style/title">
+
+            <TextView
+                android:id="@+id/text_idea"
+                style="@style/text_title"
+                android:text="改派原因" />
+
+            <ImageView
+                android:id="@+id/title_back"
+                style="@style/title_image_back"
+                android:onClick="@{()->presenter.dumpBack()}"
+                />
+
+            <TextView
+                android:id="@+id/tv_right_title"
+                style="@style/title_right_text"
+                android:onClick="@{()->presenter.changeEngineer()}"
+                android:text="@string/submit"
+                android:textColor="@color/cl_home_button"
+                android:textSize="15sp" />
+
+        </RelativeLayout>
+
+        <ImageView style="@style/card_line" />
+
+        <EditText
+            android:id="@+id/et_content"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/dp_163"
+            android:layout_gravity="center"
+            android:background="@color/white"
+            android:gravity="top"
+            android:hint="请填写改派原因"
+            android:paddingLeft="@dimen/dp_13"
+            android:paddingTop="@dimen/dp_17"
+            android:maxLength="200"
+            android:text="@={presenter.mReason}"
+            android:textColor="@color/cl_home_title_text_color"
+            android:textColorHint="@color/cl_selector_hui"
+            android:textSize="@dimen/sp_13.3" />
+
+    </LinearLayout>
+</layout>
\ No newline at end of file
diff --git a/managercenter/src/main/res/layout/activity_pic_preview.xml b/managercenter/src/main/res/layout/activity_pic_preview.xml
new file mode 100644
index 0000000..5a60afa
--- /dev/null
+++ b/managercenter/src/main/res/layout/activity_pic_preview.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@color/cl_home_edit_text"
+        android:orientation="vertical"
+        >
+
+        <RelativeLayout
+            android:id="@+id/title_finish"
+            style="@style/title"
+            >
+
+            <TextView
+                style="@style/text_title"
+                android:text="@string/pre_look"
+                />
+
+            <ImageView
+                android:id="@+id/titile_back"
+                style="@style/title_image_back"/>
+        </RelativeLayout>
+
+        <android.support.v4.view.ViewPager
+            android:id="@+id/vp_preview"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:background="@color/cl_order_text_one"
+            android:unselectedAlpha="1">
+        </android.support.v4.view.ViewPager>
+
+    </LinearLayout>
+</layout>
\ No newline at end of file
diff --git a/managercenter/src/main/res/layout/activity_send_detail.xml b/managercenter/src/main/res/layout/activity_send_detail.xml
index b60ae3b..44fb6f2 100644
--- a/managercenter/src/main/res/layout/activity_send_detail.xml
+++ b/managercenter/src/main/res/layout/activity_send_detail.xml
@@ -131,6 +131,7 @@
                         android:layout_marginLeft="19dp"
                         android:layout_marginTop="@dimen/dp_15"
                         android:layout_toRightOf="@+id/tv_engineer"
+                        android:text="@{item.engineerName}"
                         android:textColor="@color/cl_home_title_text_color"
                         android:textSize="14sp" />
 
@@ -148,7 +149,7 @@
                         android:id="@+id/ll_server_content"
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
-                        android:layout_below="@id/tv_num"
+                        android:layout_below="@id/tv_engineer"
                         android:layout_marginLeft="19dp"
                         android:layout_toRightOf="@+id/tv_content"
                         android:orientation="vertical">
@@ -279,23 +280,23 @@
                         android:layout_marginLeft="19dp"
                         android:layout_marginTop="15dp"
                         android:layout_toRightOf="@+id/tv_my_price"
+                        android:text="@{presenter.price}"
                         android:textColor="@color/cl_home_title_text_color"
                         android:textSize="14sp"
-                        android:text="@{presenter.price}"
                         android:visibility="gone" />
 
                     <TextView
                         android:id="@+id/price_state"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
+                        android:layout_alignParentRight="true"
                         android:layout_below="@+id/tv_order_price"
                         android:layout_marginLeft="19dp"
-                        android:layout_alignParentRight="true"
                         android:layout_marginRight="15dp"
                         android:layout_marginTop="15dp"
+                        android:text="确认中"
                         android:textColor="@color/cl_home_title_text_color"
                         android:textSize="14sp"
-                        android:text="确认中"
                         android:visibility="gone" />
 
                     <TextView
diff --git a/managercenter/src/main/res/layout/activity_sub_order_detail.xml b/managercenter/src/main/res/layout/activity_sub_order_detail.xml
index 785bdf2..873b549 100644
--- a/managercenter/src/main/res/layout/activity_sub_order_detail.xml
+++ b/managercenter/src/main/res/layout/activity_sub_order_detail.xml
@@ -62,6 +62,7 @@
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:background="@color/white"
+                    android:paddingBottom="15dp"
                     android:paddingLeft="15dp">
 
                     <TextView
@@ -273,6 +274,7 @@
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:background="@color/white"
+                    android:paddingBottom="15dp"
                     android:paddingLeft="15dp">
 
                     <TextView
@@ -423,7 +425,7 @@
             android:orientation="horizontal">
 
             <TextView
-                android:id="@+id/bargain"
+                android:id="@+id/refuse"
                 android:layout_width="0dp"
                 android:layout_height="49dp"
                 android:layout_weight="1"
@@ -435,7 +437,7 @@
                 android:visibility="visible" />
 
             <TextView
-                android:id="@+id/customer_acceptance"
+                android:id="@+id/designate"
                 android:layout_width="0dp"
                 android:layout_height="49dp"
                 android:layout_weight="1"
diff --git a/managercenter/src/main/res/layout/item_service_station.xml b/managercenter/src/main/res/layout/item_service_station.xml
index fa39e84..c538495 100644
--- a/managercenter/src/main/res/layout/item_service_station.xml
+++ b/managercenter/src/main/res/layout/item_service_station.xml
@@ -5,7 +5,7 @@
 
         <variable
             name="item"
-            type="com.dayu.managercenter.data.ServiceStation" />
+            type="com.dayu.event.ServiceStation" />
 
         <import type="com.dayu.utils.UIUtils" />
     </data>
diff --git a/orderCenter/src/main/java/com/dayu/order/presenter/homeorder/HomeOrderPresenter.java b/orderCenter/src/main/java/com/dayu/order/presenter/homeorder/HomeOrderPresenter.java
index 803e2fb..5acb003 100644
--- a/orderCenter/src/main/java/com/dayu/order/presenter/homeorder/HomeOrderPresenter.java
+++ b/orderCenter/src/main/java/com/dayu/order/presenter/homeorder/HomeOrderPresenter.java
@@ -24,7 +24,7 @@ public class HomeOrderPresenter extends HomeOrderContract.Presenter {
 //        UserManager.getInstance().saveUserForJson(json);
         UserInfo userInfo = UserManager.getInstance().getUser();
         mUserId = Integer.parseInt(userInfo.getAccountId());
-        mSiteId = Integer.parseInt(userInfo.getSiteId());
+        mSiteId = userInfo.getSiteId();
     }
 
     public void getTabNum(int index) {
diff --git a/orderCenter/src/main/java/com/dayu/order/presenter/orderdoing/OrderDoingPresenter.java b/orderCenter/src/main/java/com/dayu/order/presenter/orderdoing/OrderDoingPresenter.java
index 0e89b0f..f07744d 100644
--- a/orderCenter/src/main/java/com/dayu/order/presenter/orderdoing/OrderDoingPresenter.java
+++ b/orderCenter/src/main/java/com/dayu/order/presenter/orderdoing/OrderDoingPresenter.java
@@ -52,7 +52,7 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter {
     public void onAttached() {
         UserInfo userInfo = UserManager.getInstance().getUser();
         mUserId = Integer.parseInt(userInfo.getAccountId());
-        mSiteId = Integer.parseInt(userInfo.getSiteId());
+        mSiteId = userInfo.getSiteId();
         mState = mView.getState();
     }
 
diff --git a/orderCenter/src/main/java/com/dayu/order/presenter/receivingorder/ReceivingPresenter.java b/orderCenter/src/main/java/com/dayu/order/presenter/receivingorder/ReceivingPresenter.java
index f96155d..15372cc 100644
--- a/orderCenter/src/main/java/com/dayu/order/presenter/receivingorder/ReceivingPresenter.java
+++ b/orderCenter/src/main/java/com/dayu/order/presenter/receivingorder/ReceivingPresenter.java
@@ -41,7 +41,7 @@ public class ReceivingPresenter extends ReceivingContract.Presenter {
     public void onAttached() {
         UserInfo userInfo = UserManager.getInstance().getUser();
         mUserId = Integer.parseInt(userInfo.getAccountId());
-        mSiteId = Integer.parseInt(userInfo.getSiteId());
+        mSiteId = userInfo.getSiteId();
         refresh();
     }
 
diff --git a/orderCenter/src/main/java/com/dayu/order/presenter/subcribeTime/SubcribeTimePresenter.java b/orderCenter/src/main/java/com/dayu/order/presenter/subcribeTime/SubcribeTimePresenter.java
index b96f839..07c9642 100644
--- a/orderCenter/src/main/java/com/dayu/order/presenter/subcribeTime/SubcribeTimePresenter.java
+++ b/orderCenter/src/main/java/com/dayu/order/presenter/subcribeTime/SubcribeTimePresenter.java
@@ -86,17 +86,21 @@ public class SubcribeTimePresenter extends SubcribeContract.Presenter {
         if (TextUtils.isEmpty(mHour.get()) || TextUtils.isEmpty(mDay.get())) {
             mView.showToast(R.string.input_day_time);
         } else {
-            ProgressUtil.setCanDismiss(false);
-            mView.showDialog();
-            ProgressUtil.isTouchDismiss(false);
-            mView.showToast(R.string.on_commite_data);
             try {
                 String d = UtilsDate.changeFormat(mDay.get(), LONG_DATE, LONG_DATE_FORMAT);
                 mTime = d + " " + mHour.get() + ":00";
             } catch (ParseException e) {
                 e.printStackTrace();
             }
-            subcribeTime(mOrderId, mTime, mInfo.get());
+            if (isLegal()) {
+                ProgressUtil.setCanDismiss(false);
+                mView.showDialog();
+                ProgressUtil.isTouchDismiss(false);
+                mView.showToast(R.string.on_commite_data);
+                subcribeTime(mOrderId, mTime, mInfo.get());
+            } else {
+                mView.showToast(R.string.input_right_time);
+            }
         }
     }
 
@@ -147,7 +151,7 @@ public class SubcribeTimePresenter extends SubcribeContract.Presenter {
         mView.selectTime(new boolean[]{false, false, false, true, true, false}, this::onTimeSelect);
     }
 
-    public void onTimeSelect(Date date, View v) {
+    private void onTimeSelect(Date date, View v) {
         if (mType == 1) {
             String time = UtilsDate.getTime(date);
             if (UtilsDate.dayDiff(UtilsDate.getNowDate(), date) >= 0) {
@@ -159,20 +163,19 @@ public class SubcribeTimePresenter extends SubcribeContract.Presenter {
             int year = UtilsDate.getYear(date);
             int month = UtilsDate.getMonth(date);
             int day = UtilsDate.getDay(date);
-            if (year == UtilsDate.getToYear() && month == UtilsDate.getToMonth() && day == UtilsDate.getToday()) {
-                mIsToday = true;
-            } else {
-                mIsToday = false;
-            }
+            mIsToday = year == UtilsDate.getToYear() && month == UtilsDate.getToMonth() && day == UtilsDate.getToday();
         } else {
             String nowtime = UtilsDate.getCurrDate(LONG_TIME_FORMAT_TWO);
             String hour = UtilsDate.dateToString(date, LONG_TIME_FORMAT_TWO);
             if (mIsToday && UtilsDate.stringtoDate(nowtime, LONG_TIME_FORMAT_TWO).getTime() - UtilsDate.stringtoDate(hour, LONG_TIME_FORMAT_TWO).getTime() >= 0) {
                 mView.showToast(R.string.input_right_time);
-                return;
             } else {
                 mHour.set(hour);
             }
         }
     }
+
+    private boolean isLegal() {
+        return UtilsDate.getLongFromyyyyMMddHHmmss(mTime) - System.currentTimeMillis() > 0;
+    }
 }
diff --git a/orderCenter/src/main/java/com/dayu/order/presenter/worksRecord/OrderRecordPresenter.java b/orderCenter/src/main/java/com/dayu/order/presenter/worksRecord/OrderRecordPresenter.java
index 1e2e889..65f0528 100644
--- a/orderCenter/src/main/java/com/dayu/order/presenter/worksRecord/OrderRecordPresenter.java
+++ b/orderCenter/src/main/java/com/dayu/order/presenter/worksRecord/OrderRecordPresenter.java
@@ -33,7 +33,7 @@ public class OrderRecordPresenter extends OrderRecordContract.Presenter {
     public void onAttached() {
         UserInfo userInfo = UserManager.getInstance().getUser();
         mUserId = Integer.parseInt(userInfo.getAccountId());
-        mSiteId = Integer.parseInt(userInfo.getSiteId());
+        mSiteId = userInfo.getSiteId();
         serchStr.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
             @Override
             public void onPropertyChanged(Observable observable, int i) {
diff --git a/provider/src/main/java/com/dayu/provider/event/RefreshManagerEvent.java b/provider/src/main/java/com/dayu/provider/event/RefreshManagerEvent.java
new file mode 100644
index 0000000..8f1c315
--- /dev/null
+++ b/provider/src/main/java/com/dayu/provider/event/RefreshManagerEvent.java
@@ -0,0 +1,21 @@
+package com.dayu.provider.event;
+
+/**
+ * Created by luofan
+ * on 2018/9/4.
+ */
+public class RefreshManagerEvent {
+    private int state;
+
+    public RefreshManagerEvent(int state) {
+        this.state = state;
+    }
+
+    public int getState() {
+        return state;
+    }
+
+    public void setState(int state) {
+        this.state = state;
+    }
+}
diff --git a/provider/src/main/java/com/dayu/provider/router/RouterPath.java b/provider/src/main/java/com/dayu/provider/router/RouterPath.java
index e011474..e9959bf 100644
--- a/provider/src/main/java/com/dayu/provider/router/RouterPath.java
+++ b/provider/src/main/java/com/dayu/provider/router/RouterPath.java
@@ -29,5 +29,6 @@ public class RouterPath {
      * 店长模块
      */
     public final static String PATH_SERVICESTATION="/manager/servicestation";
+    public final static String PATH_MANAGER="/manager/manager_home";
 
 }
diff --git a/userCenter/src/main/java/com/dayu/usercenter/api/UserApiFactory.java b/userCenter/src/main/java/com/dayu/usercenter/api/UserApiFactory.java
index 730595b..98e5492 100644
--- a/userCenter/src/main/java/com/dayu/usercenter/api/UserApiFactory.java
+++ b/userCenter/src/main/java/com/dayu/usercenter/api/UserApiFactory.java
@@ -101,4 +101,8 @@ public class UserApiFactory {
     public static Observable<String> modifyPwd(String accountId, String ordpwd, String newpwd1, String newpwd2) {
         return Api.getDownloadService(UserService.class).modifyPwd(accountId, ordpwd, newpwd1, newpwd2).compose(Api.applySchedulers());
     }
+
+    public static Observable<Integer> getSiteId(int accountId) {
+        return Api.getDownloadService(UserService.class).getSiteId(accountId).compose(Api.applySchedulers());
+    }
 }
diff --git a/userCenter/src/main/java/com/dayu/usercenter/api/UserService.java b/userCenter/src/main/java/com/dayu/usercenter/api/UserService.java
index 3d8b6bd..d03a64c 100755
--- a/userCenter/src/main/java/com/dayu/usercenter/api/UserService.java
+++ b/userCenter/src/main/java/com/dayu/usercenter/api/UserService.java
@@ -35,7 +35,7 @@ public interface UserService {
      */
     @POST(UserConstant.LOGIN_URL)
     Observable<BaseResponse<UserInfo>> login(@Query("telephone") String phone
-            , @Query("smsCode") String smsCode,@Query("loginType") String loginType);
+            , @Query("smsCode") String smsCode, @Query("loginType") String loginType);
 
     /**
      * 获取验证码
@@ -185,6 +185,7 @@ public interface UserService {
 
     /**
      * 忘记密码发送验证码.
+     *
      * @param telephone
      * @param type
      * @return
@@ -194,6 +195,7 @@ public interface UserService {
 
     /**
      * 忘记密码校验验证码.
+     *
      * @param telephone
      * @param smsCode
      * @return
@@ -203,6 +205,7 @@ public interface UserService {
 
     /**
      * 忘记密码.
+     *
      * @param token
      * @param newpwd1
      * @param newpwd2
@@ -213,6 +216,7 @@ public interface UserService {
 
     /**
      * 修改密码.
+     *
      * @param accountId
      * @param ordpwd
      * @param newpwd1
@@ -221,4 +225,13 @@ public interface UserService {
      */
     @POST(UserConstant.MODIFY_PWD)
     Observable<BaseResponse<String>> modifyPwd(@Query("accountId") String accountId, @Query("ordpwd") String ordpwd, @Query("newpwd1") String newpwd1, @Query("newpwd2") String newpwd2);
+
+    /**
+     * 获取siteId.
+     *
+     * @param accountId
+     * @return
+     */
+    @GET(UserConstant.GET_SITEID)
+    Observable<BaseResponse<Integer>> getSiteId(@Path("accountId") int accountId);
 }
diff --git a/userCenter/src/main/java/com/dayu/usercenter/common/UserConstant.java b/userCenter/src/main/java/com/dayu/usercenter/common/UserConstant.java
index 264b3db..1c15614 100644
--- a/userCenter/src/main/java/com/dayu/usercenter/common/UserConstant.java
+++ b/userCenter/src/main/java/com/dayu/usercenter/common/UserConstant.java
@@ -103,4 +103,9 @@ public class UserConstant {
      * 修改密码.
      */
     public final static String MODIFY_PWD = "/api-user/" + "account/modifyPwd";
+
+    /**
+     * 获取工程师siteid.
+     */
+    public final static String GET_SITEID = "/api-user/" + "serviceProviderSite/findSiteIdByAccountId/{accountId}";
 }
diff --git a/userCenter/src/main/java/com/dayu/usercenter/presenter/pwlogin/PwLoginContract.java b/userCenter/src/main/java/com/dayu/usercenter/presenter/pwlogin/PwLoginContract.java
index 295b469..163533c 100755
--- a/userCenter/src/main/java/com/dayu/usercenter/presenter/pwlogin/PwLoginContract.java
+++ b/userCenter/src/main/java/com/dayu/usercenter/presenter/pwlogin/PwLoginContract.java
@@ -25,6 +25,8 @@ public interface PwLoginContract {
          */
         public abstract void login();
 
+        public abstract void getSiteId(UserInfo info);
+
         /**
          * 跳转到主界面并保存用户信息.
          */
diff --git a/userCenter/src/main/java/com/dayu/usercenter/presenter/pwlogin/PwLoginPresenter.java b/userCenter/src/main/java/com/dayu/usercenter/presenter/pwlogin/PwLoginPresenter.java
index 3f01e31..401fb0d 100644
--- a/userCenter/src/main/java/com/dayu/usercenter/presenter/pwlogin/PwLoginPresenter.java
+++ b/userCenter/src/main/java/com/dayu/usercenter/presenter/pwlogin/PwLoginPresenter.java
@@ -5,6 +5,7 @@ import android.os.Bundle;
 import android.text.TextUtils;
 
 import com.alibaba.android.arouter.launcher.ARouter;
+import com.dayu.common.Constants;
 import com.dayu.event.UserInfo;
 import com.dayu.provider.router.RouterPath;
 import com.dayu.usercenter.R;
@@ -14,6 +15,7 @@ import com.dayu.usercenter.ui.activity.IdentityCertificationActivity;
 import com.dayu.usercenter.ui.activity.SmsLoginActivity;
 import com.dayu.utils.LogUtils;
 import com.dayu.utils.MD5Util;
+import com.dayu.utils.StationManager;
 import com.dayu.utils.ToastUtils;
 import com.dayu.utils.UIUtils;
 import com.dayu.utils.UserManager;
@@ -43,17 +45,8 @@ public class PwLoginPresenter extends PwLoginContract.Presenter {
             return;
         }
         mView.showDialog();
-        UserApiFactory.login(phoneNume.get(), MD5Util.encrypt(code.get()), "usernameLogin").subscribe(baseObserver(userInfo -> {
-            if (userInfo.getDetectStatus() == 1) {
-                loginHx(userInfo.getHxAccount(), userInfo.getHxPwd());
-                dumpAndSave(userInfo);
-            } else if (userInfo.getDetectStatus() == 2 || userInfo.getDetectStatus() == 3) {
-                UserManager.getInstance().saveUser(userInfo);
-                showLoginDialog(userInfo);
-            } else {
-                ToastUtils.showShortToast(UIUtils.getString(R.string.login_faile));
-            }
-        }));
+        UserApiFactory.login(phoneNume.get(), MD5Util.encrypt(code.get()), "usernameLogin").subscribe(
+                baseObserver(this::getSiteId));
     }
 
     @Override
@@ -79,9 +72,57 @@ public class PwLoginPresenter extends PwLoginContract.Presenter {
     }
 
     @Override
+    public void getSiteId(UserInfo info) {
+        UserApiFactory.getSiteId(Integer.parseInt(info.getAccountId())).subscribe(baseObserver(
+                integer -> {
+                    info.setSiteId(integer);
+                    dumpAndSave(info);
+                }));
+    }
+
+    @Override
     public void dumpAndSave(UserInfo info) {
-        UserManager.getInstance().saveUser(info);
-        ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation();
+        switch (UserManager.getInstance().getRole()) {
+            case Constants.MANAGER:
+                loginHx(info.getHxAccount(), info.getHxPwd());
+                UserManager.getInstance().saveUser(info);
+                if (StationManager.getInstance().haveData()) {
+                    ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation();
+                } else {
+                    ARouter.getInstance().build(RouterPath.PATH_SERVICESTATION).navigation();
+                }
+                break;
+            case Constants.ENGINEER:
+                if (info.getDetectStatus() == 1) {
+                    loginHx(info.getHxAccount(), info.getHxPwd());
+                    UserManager.getInstance().saveUser(info);
+                    ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation();
+                } else if (info.getDetectStatus() == 2 || info.getDetectStatus() == 3) {
+                    UserManager.getInstance().saveUser(info);
+                    showLoginDialog(info);
+                } else {
+                    ToastUtils.showShortToast(UIUtils.getString(R.string.login_faile));
+                }
+                break;
+            case Constants.MANAGER_ENGINEER:
+                if (info.getDetectStatus() == 1) {
+                    loginHx(info.getHxAccount(), info.getHxPwd());
+                    UserManager.getInstance().saveUser(info);
+                    if (StationManager.getInstance().haveData()) {
+                        ARouter.getInstance().build(RouterPath.PATH_MANAGER).navigation();
+                    } else {
+                        ARouter.getInstance().build(RouterPath.PATH_SERVICESTATION).navigation();
+                    }
+                } else if (info.getDetectStatus() == 2 || info.getDetectStatus() == 3) {
+                    UserManager.getInstance().saveUser(info);
+                    showLoginDialog(info);
+                } else {
+                    ToastUtils.showShortToast(UIUtils.getString(R.string.login_faile));
+                }
+                break;
+            default:
+                break;
+        }
     }
 
     private void showLoginDialog(UserInfo userInfo) {
diff --git a/userCenter/src/main/java/com/dayu/usercenter/presenter/smslogin/SmsLoginContract.java b/userCenter/src/main/java/com/dayu/usercenter/presenter/smslogin/SmsLoginContract.java
index af23bd6..30f2e5e 100755
--- a/userCenter/src/main/java/com/dayu/usercenter/presenter/smslogin/SmsLoginContract.java
+++ b/userCenter/src/main/java/com/dayu/usercenter/presenter/smslogin/SmsLoginContract.java
@@ -55,5 +55,12 @@ public interface SmsLoginContract {
          */
         public abstract void loginHx(String hxAccount, String hxPwd);
 
+        /**
+         * 获取siteId.
+         *
+         * @param accountId
+         */
+        public abstract void getSiteId(UserInfo info);
+
     }
 }
diff --git a/userCenter/src/main/java/com/dayu/usercenter/presenter/smslogin/SmsLoginPresenter.java b/userCenter/src/main/java/com/dayu/usercenter/presenter/smslogin/SmsLoginPresenter.java
index 72f7417..0b32ad4 100644
--- a/userCenter/src/main/java/com/dayu/usercenter/presenter/smslogin/SmsLoginPresenter.java
+++ b/userCenter/src/main/java/com/dayu/usercenter/presenter/smslogin/SmsLoginPresenter.java
@@ -6,6 +6,7 @@ import android.text.TextUtils;
 
 import com.alibaba.android.arouter.launcher.ARouter;
 import com.dayu.common.BaseApplication;
+import com.dayu.common.Constants;
 import com.dayu.event.UserInfo;
 import com.dayu.provider.router.RouterPath;
 import com.dayu.usercenter.R;
@@ -13,6 +14,7 @@ import com.dayu.usercenter.api.UserApiFactory;
 import com.dayu.usercenter.common.UserConstant;
 import com.dayu.usercenter.ui.activity.IdentityCertificationActivity;
 import com.dayu.utils.LogUtils;
+import com.dayu.utils.StationManager;
 import com.dayu.utils.ToastUtils;
 import com.dayu.utils.UIUtils;
 import com.dayu.utils.UserManager;
@@ -54,45 +56,36 @@ public class SmsLoginPresenter extends SmsLoginContract.Presenter {
     @Override
     public void login(String code) {
         mView.showDialog();
-        UserApiFactory.login(mPhone, code, "mobileLogin").subscribe(baseObserver(userInfo -> {
-            if (userInfo.getDetectStatus() == 1) {
-                loginHx(userInfo.getHxAccount(), userInfo.getHxPwd());
-                dumpAndSave(userInfo);
-            } else if (userInfo.getDetectStatus() == 2 || userInfo.getDetectStatus() == 3) {
-                UserManager.getInstance().saveUser(userInfo);
-                showLoginDialog(userInfo);
-            } else {
-                ToastUtils.showShortToast(UIUtils.getString(R.string.login_faile));
-            }
-        }, error -> {
-            String message = UIUtils.getString(R.string.login_faile);
-            switch (error.subCode) {
-                case "USER0002":
-                    message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.sms_code_unsend_or_expire);
-                    break;
-                case "USER0004":
-                    message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.not_engineer);
-                    break;
-                case "USER0005":
-                    message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.account_frozen);
-                    break;
-                case "USER0020":
-                    message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.sms_code_unsend_or_expire);
-                    break;
-                case "GLOBAL0101":
-                case "USER0021":
-                    message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.sms_code_error);
-                    break;
-                case "USER0003":
-                case "USER0023":
-                    message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.engineer_acount_notavialibe);
-                    break;
-                case "USER0024":
-                    message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.engineer_not_have_site);
-                    break;
-            }
-            mView.setError(message);
-        }));
+        UserApiFactory.login(mPhone, code, "mobileLogin").subscribe(baseObserver(
+                this::getSiteId, error -> {
+                    String message = UIUtils.getString(R.string.login_faile);
+                    switch (error.subCode) {
+                        case "USER0002":
+                            message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.sms_code_unsend_or_expire);
+                            break;
+                        case "USER0004":
+                            message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.not_engineer);
+                            break;
+                        case "USER0005":
+                            message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.account_frozen);
+                            break;
+                        case "USER0020":
+                            message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.sms_code_unsend_or_expire);
+                            break;
+                        case "GLOBAL0101":
+                        case "USER0021":
+                            message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.sms_code_error);
+                            break;
+                        case "USER0003":
+                        case "USER0023":
+                            message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.engineer_acount_notavialibe);
+                            break;
+                        case "USER0024":
+                            message = BaseApplication.getContext().getString(com.dayu.baselibrary.R.string.engineer_not_have_site);
+                            break;
+                    }
+                    mView.setError(message);
+                }));
     }
 
     @Override
@@ -118,10 +111,57 @@ public class SmsLoginPresenter extends SmsLoginContract.Presenter {
     }
 
     @Override
+    public void getSiteId(UserInfo info) {
+        UserApiFactory.getSiteId(Integer.parseInt(info.getAccountId())).subscribe(baseObserver(
+                integer -> {
+                    info.setSiteId(integer);
+                    dumpAndSave(info);
+                }));
+    }
+
+    @Override
     public void dumpAndSave(UserInfo info) {
-//        mView.setError("");
-        UserManager.getInstance().saveUser(info);
-        ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation();
+        switch (UserManager.getInstance().getRole()) {
+            case Constants.MANAGER:
+                loginHx(info.getHxAccount(), info.getHxPwd());
+                UserManager.getInstance().saveUser(info);
+                if (StationManager.getInstance().haveData()) {
+                    ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation();
+                } else {
+                    ARouter.getInstance().build(RouterPath.PATH_SERVICESTATION).navigation();
+                }
+                break;
+            case Constants.ENGINEER:
+                if (info.getDetectStatus() == 1) {
+                    loginHx(info.getHxAccount(), info.getHxPwd());
+                    UserManager.getInstance().saveUser(info);
+                    ARouter.getInstance().build(RouterPath.PATH_MAIN).navigation();
+                } else if (info.getDetectStatus() == 2 || info.getDetectStatus() == 3) {
+                    UserManager.getInstance().saveUser(info);
+                    showLoginDialog(info);
+                } else {
+                    ToastUtils.showShortToast(UIUtils.getString(R.string.login_faile));
+                }
+                break;
+            case Constants.MANAGER_ENGINEER:
+                if (info.getDetectStatus() == 1) {
+                    loginHx(info.getHxAccount(), info.getHxPwd());
+                    UserManager.getInstance().saveUser(info);
+                    if (StationManager.getInstance().haveData()) {
+                        ARouter.getInstance().build(RouterPath.PATH_MANAGER).navigation();
+                    } else {
+                        ARouter.getInstance().build(RouterPath.PATH_SERVICESTATION).navigation();
+                    }
+                } else if (info.getDetectStatus() == 2 || info.getDetectStatus() == 3) {
+                    UserManager.getInstance().saveUser(info);
+                    showLoginDialog(info);
+                } else {
+                    ToastUtils.showShortToast(UIUtils.getString(R.string.login_faile));
+                }
+                break;
+            default:
+                break;
+        }
     }
 
     private void showLoginDialog(UserInfo userInfo) {
diff --git a/userCenter/src/main/java/com/dayu/usercenter/ui/fragment/HomePersonFragment.java b/userCenter/src/main/java/com/dayu/usercenter/ui/fragment/HomePersonFragment.java
index 4cca359..e7f879a 100644
--- a/userCenter/src/main/java/com/dayu/usercenter/ui/fragment/HomePersonFragment.java
+++ b/userCenter/src/main/java/com/dayu/usercenter/ui/fragment/HomePersonFragment.java
@@ -64,7 +64,7 @@ public class HomePersonFragment extends BaseFragment<HomePersonPresenter, Fragme
     public void initView() {
         UserInfo userInfo = UserManager.getInstance().getUser();
         userId = Integer.parseInt(userInfo.getAccountId());
-        siteId = Integer.parseInt(userInfo.getSiteId());
+        siteId = userInfo.getSiteId();
         ProgressUtil.startLoad(mActivity);
         EventBus.getDefault().register(this);
 //        mPresenter.getAllData(userId, siteId);