Commit 36906ffd by wukun

1015

parent 194305f2
...@@ -70,6 +70,7 @@ public class LRecyclerView<M, B> extends FrameLayout { ...@@ -70,6 +70,7 @@ public class LRecyclerView<M, B> extends FrameLayout {
private LinearLayout ll_faileView; private LinearLayout ll_faileView;
private BaseListPresenter mPresenter; private BaseListPresenter mPresenter;
private boolean isRefreshable; private boolean isRefreshable;
private boolean isWrapContent;
private boolean mIsEnd; private boolean mIsEnd;
...@@ -98,6 +99,7 @@ public class LRecyclerView<M, B> extends FrameLayout { ...@@ -98,6 +99,7 @@ public class LRecyclerView<M, B> extends FrameLayout {
isNeedFoot = ta.getBoolean(R.styleable.LRecyclerView_needFoot, true); isNeedFoot = ta.getBoolean(R.styleable.LRecyclerView_needFoot, true);
needCoreAdapter = ta.getBoolean(R.styleable.LRecyclerView_needCoreAdapter, false); needCoreAdapter = ta.getBoolean(R.styleable.LRecyclerView_needCoreAdapter, false);
isRefreshable = ta.getBoolean(R.styleable.LRecyclerView_isRefreshable, true); isRefreshable = ta.getBoolean(R.styleable.LRecyclerView_isRefreshable, true);
isWrapContent = ta.getBoolean(R.styleable.LRecyclerView_isWrapContent, false);
ta.recycle(); ta.recycle();
//初始化recycleview //初始化recycleview
...@@ -108,7 +110,11 @@ public class LRecyclerView<M, B> extends FrameLayout { ...@@ -108,7 +110,11 @@ public class LRecyclerView<M, B> extends FrameLayout {
ll_faileView = layout.findViewById(R.id.ll_faileview); ll_faileView = layout.findViewById(R.id.ll_faileview);
swipeRefresh.setColorSchemeResources(R.color.cl_receiving_order_item_data); swipeRefresh.setColorSchemeResources(R.color.cl_receiving_order_item_data);
// if (isWrapContent){
// mLayoutManager = new RecyclerLayoutManager(context);
// }else{
mLayoutManager = new LinearLayoutManager(context); mLayoutManager = new LinearLayoutManager(context);
// }
mLayoutManager.setAutoMeasureEnabled(true); mLayoutManager.setAutoMeasureEnabled(true);
recyclerview.setLayoutManager(mLayoutManager); recyclerview.setLayoutManager(mLayoutManager);
recyclerview.setItemAnimator(new DefaultItemAnimator()); recyclerview.setItemAnimator(new DefaultItemAnimator());
......
package com.dayu.widgets;
import android.content.Context;
import android.view.View;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
public class RecyclerLayoutManager extends LinearLayoutManager {
public RecyclerLayoutManager(Context context){
super(context);
}
@Override
public void onMeasure(RecyclerView.Recycler recycler, RecyclerView.State state, int widthSpec, int heightSpec) {
int itemCount = state.getItemCount();
int measuredWidth = 0;
int measuredHeight = 0;
int heightSize = View.MeasureSpec.getSize(heightSpec);
for(int i = 0; i < itemCount; i ++){
View view = recycler.getViewForPosition(i);
if(view != null){
RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams)view.getLayoutParams();
int margin = layoutParams.bottomMargin + layoutParams.topMargin;
measuredWidth = View.MeasureSpec.getSize(widthSpec);
view.measure(widthSpec, View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
switch (layoutParams.height){
case RecyclerView.LayoutParams.WRAP_CONTENT:
measuredHeight += (getDecoratedMeasuredHeight(view) + margin);
break;
case RecyclerView.LayoutParams.MATCH_PARENT:
default:
measuredHeight += (layoutParams.height + margin);
break;
}
}
}
if(measuredHeight > heightSize)
super.onMeasure(recycler, state, widthSpec, heightSpec);
else
setMeasuredDimension(measuredWidth, measuredHeight);
}
}
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
<declare-styleable name="LRecyclerView"> <declare-styleable name="LRecyclerView">
<attr name="isReverse" format="boolean" /> <attr name="isReverse" format="boolean" />
<attr name="isRefreshable" format="boolean" /> <attr name="isRefreshable" format="boolean" />
<attr name="isWrapContent" format="boolean" />
<attr name="needCoreAdapter" format="boolean" /> <attr name="needCoreAdapter" format="boolean" />
<attr name="needFoot" format="boolean" /> <attr name="needFoot" format="boolean" />
<attr name="itemType" format="reference" /> <attr name="itemType" format="reference" />
......
...@@ -51,6 +51,9 @@ ...@@ -51,6 +51,9 @@
android:name=".ui.activity.OrderDetailsActivity" android:name=".ui.activity.OrderDetailsActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.activity.OrderDetailsClockActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.ReturnPartNewActivity" android:name=".ui.activity.ReturnPartNewActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
......
...@@ -62,6 +62,9 @@ public class OrderApiFactory { ...@@ -62,6 +62,9 @@ public class OrderApiFactory {
public static Observable<Boolean> receiveOrder(int orderId, int engineerId) { public static Observable<Boolean> receiveOrder(int orderId, int engineerId) {
return Api.getService(OrderService.class).receiveOrder(orderId, engineerId).compose(Api.applySchedulers()); return Api.getService(OrderService.class).receiveOrder(orderId, engineerId).compose(Api.applySchedulers());
} }
public static Observable<Boolean> clockIn(RequestBody body) {
return Api.getService(OrderService.class).clockIn(body).compose(Api.applySchedulers());
}
public static Observable<Boolean> subcriceTime(int orderId, String doorTime, String doorComment) { public static Observable<Boolean> subcriceTime(int orderId, String doorTime, String doorComment) {
return Api.getService(OrderService.class).subcriceTime(orderId, doorTime, doorComment).compose(Api.applySchedulers()); return Api.getService(OrderService.class).subcriceTime(orderId, doorTime, doorComment).compose(Api.applySchedulers());
......
...@@ -144,6 +144,13 @@ public interface OrderService { ...@@ -144,6 +144,13 @@ public interface OrderService {
@Query("doorComment") String doorComment); @Query("doorComment") String doorComment);
/** /**
* 打卡.
*
* @return
*/
@POST(OrderConstant.API_CLOCK_IN)
Observable<BaseResponse<Boolean>> clockIn(@Body RequestBody body);
/**
* 提交工单. * 提交工单.
* *
* @param orderInfo * @param orderInfo
......
...@@ -71,6 +71,15 @@ public class Order implements Serializable{ ...@@ -71,6 +71,15 @@ public class Order implements Serializable{
private String showPrice; private String showPrice;
private double receiveOrderCommission; private double receiveOrderCommission;
private int source; private int source;
private String finishedDays;
public String getFinishedDays() {
return finishedDays;
}
public void setFinishedDays(String finishedDays) {
this.finishedDays = finishedDays;
}
public int getSource() { public int getSource() {
return source; return source;
......
...@@ -39,6 +39,9 @@ public class OrderConstant { ...@@ -39,6 +39,9 @@ public class OrderConstant {
* 重新预约时间. * 重新预约时间.
*/ */
public static final String API_SUBCRIBE_TIME = "/api-order/" + "orders/bespeakDoor"; public static final String API_SUBCRIBE_TIME = "/api-order/" + "orders/bespeakDoor";
public static final String API_CLOCK_IN = "/api-order/" + "orders/clockIn";
/** /**
* 开始出发. * 开始出发.
*/ */
......
package com.dayu.order.presenter.orderdetail;
import com.dayu.base.ui.presenter.BaseListPresenter;
import com.dayu.common.BaseView;
import com.dayu.order.api.protocol.OrderDetail;
import java.util.List;
/**
* Created by luo
* on 2016/8/4.
*/
public interface OrderDetailClockContract {
interface View extends BaseView {
void checkSignature(String esignatureImg);
void init(OrderDetail detail);
/**
* 初始化标题按钮.
*/
void initBtn();
void addFragment();
void setDatas(OrderDetail detail);
void setOrderPhoneNum(List<String> info);
}
abstract class Presenter extends BaseListPresenter<OrderDetailClockContract.View> {
/**
*
* @param orderId 工单id.
*/
public abstract void getOrderDetailInfo(int orderId);
public abstract void getInfo();
public abstract int getOrderId();
public abstract void dumpToSop(int id);
public abstract void dumpCheckContent(int postion);
public abstract void dumpMap(double latitude,double longitude,String address);
public abstract void dumpLogistics(String courierNum,String shipperCode);
public abstract void dumpCheckSignature(int position);
}
}
package com.dayu.order.presenter.orderdetail;
import static com.dayu.common.Constants.ORDER_ID;
import static com.dayu.common.Constants.ORDER_STATE;
import static com.dayu.order.common.OrderConstant.ORDER_SOP_FINISH;
import android.os.Bundle;
import android.text.TextUtils;
import androidx.databinding.ObservableField;
import com.dayu.common.Constants;
import com.dayu.event.UserInfo;
import com.dayu.location.base.BaseMapActivity;
import com.dayu.order.R;
import com.dayu.order.api.OrderApiFactory;
import com.dayu.order.api.protocol.OrderDetail;
import com.dayu.order.common.OrderConstant;
import com.dayu.order.ui.activity.CheckContentActivity;
import com.dayu.order.ui.activity.LogisticsInfoActivity;
import com.dayu.order.ui.activity.SopWebViewActivity;
import com.dayu.utils.ToastUtils;
import com.dayu.utils.UIUtils;
import com.dayu.utils.UserManager;
import java.util.List;
/**
* Created by luofan
* on 2017/11/8.
*/
public class OrderDetailClockPresenter extends OrderDetailClockContract.Presenter {
private int mOrderId;
private int mUserId;
public ObservableField<Object> mDatas = new ObservableField<>();
public ObservableField<Boolean> isShowLine = new ObservableField<>();
private OrderDetail mDetails;
@Override
public void onAttached() {
Bundle bundle = mView.getBundle();
mOrderId = bundle.getInt(Constants.ORDER_ID, 0);
mView.showDialog();
UserInfo info = UserManager.getInstance().getUser();
mUserId = Integer.parseInt(info.getAccountId());
getOrderDetailInfo(mOrderId);
}
@Override
public void getOrderDetailInfo(int orderId) {
OrderApiFactory.getOperatePhone(mOrderId).subscribe(baseObserver(info-> {
mView.setOrderPhoneNum(info);
OrderApiFactory.getOrderInfo(orderId,mUserId).subscribe(baseObserver(
detail -> {
mDetails = detail;
if (mDetails != null) {
List list = detail.getRecord();
mDatas.set(list);
if (list.size() == 0) {
isShowLine.set(false);
} else {
isShowLine.set(true);
}
} else {
isShowLine.set(false);
}
mView.init(detail);
}
, responeThrowable -> mView.init(null)));
}));
}
@Override
public void getInfo() {
mView.showDialog();
OrderApiFactory.getOrderInfo(mOrderId,mUserId).subscribe(baseObserver(
detail -> {
mView.setDatas(detail);
// mDetails = detail;
// if (mDetails != null) {
// List list = detail.getRecord();
// Collections.reverse(list);
// mDatas.set(list);
// if (list.size() == 0) {
// isShowLine.set(false);
// } else {
// isShowLine.set(true);
// }
// } else {
// isShowLine.set(false);
// }
}));
}
@Override
public ObservableField<Object> getSourceDatas() {
return mDatas;
}
@Override
public int getOrderId() {
return mOrderId;
}
@Override
public void dumpToSop(int id) {
Bundle bundle = new Bundle();
if (mDetails.getCreatedSource() == 2 || mDetails.getCreatedSource() == 3 || mDetails.getCreatedSource() == 4) {
bundle.putInt(ORDER_ID, id);
} else {
bundle.putInt(ORDER_ID, mDetails.getId());
}
bundle.putInt(OrderConstant.CREATEDSOURCE, mDetails.getCreatedSource());
bundle.putInt(ORDER_STATE, ORDER_SOP_FINISH);
bundle.putInt(Constants.SOP_ORDER_VERSION, mDetails.getVersion());
bundle.putBoolean(Constants.SOP_CAN_EDIT, false);
mView.startActivity(SopWebViewActivity.class, bundle);
}
@Override
public void dumpCheckContent(int postion) {
Bundle bundle = new Bundle();
bundle.putSerializable(Constants.ORDER_DETAIL, mDetails);
bundle.putInt(Constants.ORDER_POSTION, postion);
mView.startActivity(CheckContentActivity.class, bundle);
}
@Override
public void dumpMap(double latitude, double longitude, String address) {
Bundle bundle = new Bundle();
bundle.putDouble(Constants.LONGITUDE, longitude);
bundle.putDouble(Constants.LATITUDE, latitude);
bundle.putString("address", address);
if (longitude == 0 && latitude == 0) {
ToastUtils.showShortToast(UIUtils.getString(R.string.failed_get_address));
return;
}
mView.startActivity(BaseMapActivity.class, bundle);
}
@Override
public void dumpLogistics(String courierNum, String shipperCode) {
Bundle bundle = new Bundle();
bundle.putString(Constants.COURIER_NUM, courierNum);
bundle.putString(Constants.SHIPPER_CODE, shipperCode);
mView.startActivity(LogisticsInfoActivity.class, bundle);
}
@Override
public void dumpCheckSignature(int position) {
if (TextUtils.isEmpty(mDetails.getEsignatureImg())){
ToastUtils.showShortToast("暂无签名");
}else{
mView.checkSignature(mDetails.getEsignatureImg());
}
}
public OrderDetail getDetail() {
return mDetails;
}
}
package com.dayu.order.presenter.orderdoing; package com.dayu.order.presenter.orderdoing;
import static com.dayu.utils.UIUtils.getString;
import android.os.Bundle; import android.os.Bundle;
import androidx.databinding.ObservableField;
import com.dayu.base.api.Api; import com.dayu.base.api.Api;
import com.dayu.common.Constants; import com.dayu.common.Constants;
import com.dayu.event.UserInfo; import com.dayu.event.UserInfo;
...@@ -14,6 +18,7 @@ import com.dayu.order.api.protocol.data.AddDialRecordData; ...@@ -14,6 +18,7 @@ import com.dayu.order.api.protocol.data.AddDialRecordData;
import com.dayu.order.common.OrderConstant; import com.dayu.order.common.OrderConstant;
import com.dayu.order.ui.activity.MultiProcessOrderActivity; import com.dayu.order.ui.activity.MultiProcessOrderActivity;
import com.dayu.order.ui.activity.OrderDetailsActivity; import com.dayu.order.ui.activity.OrderDetailsActivity;
import com.dayu.order.ui.activity.OrderDetailsClockActivity;
import com.dayu.order.ui.activity.SopWebViewActivity; import com.dayu.order.ui.activity.SopWebViewActivity;
import com.dayu.order.ui.fragment.OrderDoneFragment; import com.dayu.order.ui.fragment.OrderDoneFragment;
import com.dayu.order.ui.fragment.OrderThreeTabFragment; import com.dayu.order.ui.fragment.OrderThreeTabFragment;
...@@ -33,10 +38,6 @@ import io.reactivex.Observable; ...@@ -33,10 +38,6 @@ import io.reactivex.Observable;
import okhttp3.MediaType; import okhttp3.MediaType;
import okhttp3.RequestBody; import okhttp3.RequestBody;
import static com.dayu.utils.UIUtils.getString;
import androidx.databinding.ObservableField;
/** /**
* Created by luofan * Created by luofan
* on 2017/11/8. * on 2017/11/8.
...@@ -203,6 +204,13 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter { ...@@ -203,6 +204,13 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter {
// MobclickAgent.onEvent(BaseApplication.getContext(), "check_order_detail"); // MobclickAgent.onEvent(BaseApplication.getContext(), "check_order_detail");
} }
public void dumpDetailClock(int orderId) {
Bundle bundle = new Bundle();
bundle.putInt(Constants.ORDER_ID, orderId);
mView.startActivity(OrderDetailsClockActivity.class, bundle);
}
private void checkCachedLicense(Order order) { private void checkCachedLicense(Order order) {
} }
...@@ -216,4 +224,19 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter { ...@@ -216,4 +224,19 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter {
AddDialRecordData recordData = new AddDialRecordData(mUserId, time, userInfo.getAccountName(), phoneNum, orderId); AddDialRecordData recordData = new AddDialRecordData(mUserId, time, userInfo.getAccountName(), phoneNum, orderId);
Api.getService(OrderService.class).addDialRecord(recordData).compose(Api.applySchedulers()).subscribe(); Api.getService(OrderService.class).addDialRecord(recordData).compose(Api.applySchedulers()).subscribe();
} }
public Observable<Boolean> clockIn(int id) {
HashMap<String, Object> params = new HashMap<>();
params.put("orderId", id);
JSONObject jsonObject = new JSONObject(params);
RequestBody body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString());
return OrderApiFactory.clockIn(body);
}
public void refreshClear() {
getOrders(mState, mUserId, mSiteId, mPage, Constants.PAGESIZE);
}
} }
package com.dayu.order.presenter.orderserver; package com.dayu.order.presenter.orderserver;
import static com.dayu.common.Constants.ORDER_ID;
import static com.dayu.common.Constants.ORDER_STATE;
import static com.dayu.order.common.OrderConstant.ORDER_SOP_FINISH;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
import androidx.databinding.ObservableField;
import com.dayu.common.Constants; import com.dayu.common.Constants;
import com.dayu.location.base.BaseMapActivity; import com.dayu.location.base.BaseMapActivity;
import com.dayu.order.R; import com.dayu.order.R;
...@@ -17,12 +23,6 @@ import com.dayu.utils.UIUtils; ...@@ -17,12 +23,6 @@ import com.dayu.utils.UIUtils;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import static com.dayu.common.Constants.ORDER_ID;
import static com.dayu.common.Constants.ORDER_STATE;
import static com.dayu.order.common.OrderConstant.ORDER_SOP_FINISH;
import androidx.databinding.ObservableField;
/** /**
* Created by luofan * Created by luofan
* on 2017/11/8. * on 2017/11/8.
......
package com.dayu.order.ui.activity;
import androidx.databinding.ObservableField;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.base.ui.activity.ImgGalleryActivty;
import com.dayu.order.R;
import com.dayu.order.api.protocol.OrderDetail;
import com.dayu.order.databinding.ActivityOrderDetailsClockBinding;
import com.dayu.order.presenter.orderdetail.OrderDetailClockContract;
import com.dayu.order.presenter.orderdetail.OrderDetailClockPresenter;
import com.dayu.order.ui.adapter.OrderServerClockAdapter;
import com.dayu.provider.router.RouterPath;
import java.util.List;
/**
* 工单详情(打卡)
* on 2023/10/15.
*/
@Route(path = RouterPath.PATH_ORDER_DETAIL_CLOCK)
public class OrderDetailsClockActivity extends BaseActivity<OrderDetailClockPresenter, ActivityOrderDetailsClockBinding>
implements OrderDetailClockContract.View{
public ObservableField<Object> mDatas = new ObservableField<>();
public ObservableField<Boolean> isShowLine = new ObservableField<>();
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
@Override
public int getLayoutId() {
return R.layout.activity_order_details_clock;
}
@Override
public void initView() {
mBind.titleBack.setOnClickListener(v -> dumpBack());
OrderServerClockAdapter adapter = new OrderServerClockAdapter(false);
adapter.setOrderDetail(mPresenter.getDetail());
mBind.recyclerView.setAdapter(adapter);
}
@Override
public void checkSignature(String esignatureImg) {
ImgGalleryActivty.launch(mActivity,esignatureImg);
}
@Override
public void init(OrderDetail detail) {
}
@Override
public void initBtn() {
}
@Override
public void addFragment() {
}
@Override
public void setDatas(OrderDetail detail) {
}
@Override
public void setOrderPhoneNum(List<String> info) {
}
}
package com.dayu.order.ui.adapter; package com.dayu.order.ui.adapter;
import static com.dayu.utils.UtilsDate.FORMAT_ONE;
import static com.dayu.utils.UtilsDate.LONG_TIME_FORMAT_TWO;
import android.Manifest; import android.Manifest;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
...@@ -8,6 +11,7 @@ import android.location.Address; ...@@ -8,6 +11,7 @@ import android.location.Address;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log;
import android.view.View; import android.view.View;
import com.alibaba.android.arouter.launcher.ARouter; import com.alibaba.android.arouter.launcher.ARouter;
...@@ -52,9 +56,6 @@ import java.util.Map; ...@@ -52,9 +56,6 @@ import java.util.Map;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
import static com.dayu.utils.UtilsDate.FORMAT_ONE;
import static com.dayu.utils.UtilsDate.LONG_TIME_FORMAT_TWO;
/** /**
* 待服务列表的适配器 * 待服务列表的适配器
...@@ -183,6 +184,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi ...@@ -183,6 +184,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
setTimeStatus(holder, item, time); setTimeStatus(holder, item, time);
break; break;
case 3://待服务 case 3://待服务
Log.e("TAG", "initData: "+ item.getStatus()+"---"+ item.getSubStatus());
holder.tvItemProcess.setVisibility(View.GONE); holder.tvItemProcess.setVisibility(View.GONE);
holder.rlItemEnd.setVisibility(View.VISIBLE); holder.rlItemEnd.setVisibility(View.VISIBLE);
holder.tvItemEnd.setVisibility(View.VISIBLE); holder.tvItemEnd.setVisibility(View.VISIBLE);
...@@ -195,18 +197,54 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi ...@@ -195,18 +197,54 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
holder.orderLineOne.setVisibility(View.VISIBLE); holder.orderLineOne.setVisibility(View.VISIBLE);
} }
holder.itemUpdataTime.setText(mContext.getString(R.string.modify_appointment_time)); holder.itemUpdataTime.setText(mContext.getString(R.string.modify_appointment_time));
// int source = item.getSource();
// if (7 == source){
// Log.e("TAG111", "initData: "+ item.getStatus()+"---"+ item.getSubStatus());
// if (3 == item.getStatus()){
// holder.tvItemProcess.setText(mContext.getString(R.string.begain_server));
// }else if (4 == item.getStatus()){
// if (7 != item.getSubStatus()){
// holder.tvItemProcess.setText("第"+item.getFinishedDays() +"天打卡");
// }else{
// holder.tvItemProcess.setText(mContext.getString(R.string.submit_order));
// }
// }
// }else{
if (item.getSubStatus() == 1) { if (item.getSubStatus() == 1) {
// holder.tvItemProcess.setText(mContext.getString(R.string.have_go_on)); // holder.tvItemProcess.setText(mContext.getString(R.string.have_go_on));
holder.tvItemProcess.setText(mContext.getString(R.string.begain_server)); holder.tvItemProcess.setText(mContext.getString(R.string.begain_server));
} else if (item.getSubStatus() == 2) { } else if (item.getSubStatus() == 2) {
holder.tvItemProcess.setText(mContext.getString(R.string.begain_server)); holder.tvItemProcess.setText(mContext.getString(R.string.begain_server));
} }
// }
time = item.getConfirmDoorTime(); time = item.getConfirmDoorTime();
setTimeStatus(holder, item, time); setTimeStatus(holder, item, time);
break; break;
case 4://待处理 case 4://待处理
holder.tvItemProcess.setVisibility(View.GONE); holder.tvItemProcess.setVisibility(View.GONE);
holder.tvItemEnd.setVisibility(View.VISIBLE); holder.tvItemEnd.setVisibility(View.VISIBLE);
int source = item.getSource();
if (7 == source){
Log.e("TAG111", "initData: "+ item.getStatus()+"---"+ item.getSubStatus());
if (3 == item.getStatus()){
holder.tvItemEnd.setText(mContext.getString(R.string.begain_server));
}else if (4 == item.getStatus()){
if (7 != item.getSubStatus()){
holder.tvItemEnd.setText("第"+item.getFinishedDays() +"天打卡");
}else{
holder.tvItemEnd.setText(mContext.getString(R.string.submit_order));
}
}
}else{
if (item.getSubStatus() == 1) {
// holder.tvItemProcess.setText(mContext.getString(R.string.have_go_on));
holder.tvItemProcess.setText(mContext.getString(R.string.begain_server));
} else if (item.getSubStatus() == 2) {
holder.tvItemProcess.setText(mContext.getString(R.string.begain_server));
}
}
holder.itemUpdataTime.setText(mContext.getString(R.string.need_again_door)); holder.itemUpdataTime.setText(mContext.getString(R.string.need_again_door));
holder.tvItemProcess.setText(mContext.getString(R.string.process_order)); holder.tvItemProcess.setText(mContext.getString(R.string.process_order));
if (!haveCustomer) { if (!haveCustomer) {
...@@ -430,7 +468,25 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi ...@@ -430,7 +468,25 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
mItem = it; mItem = it;
mBind = h; mBind = h;
//createdsource为2,3,4并且status为4,进行中时跳转到任务列表.
if (7 == it.getSource()){
if (3 == it.getStatus()){
startServer(h, posiiton);
}else if (4 == it.getStatus()){
if (7 != it.getSubStatus()){
mPresenter.clockIn(it.getId())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(mPresenter.baseObserver(aBoolean -> {
mPresenter.refresh();
}, responeThrowable -> {
}));
}else{
}
}
}else{
//createdsource为2,3,4并且status为4,进行中时跳转到任务列表.
if ((mItem.getCreatedSource() == 2 || mItem.getCreatedSource() == 3 || mItem.getCreatedSource() == 4) && mItem.getStatus() == 4) { if ((mItem.getCreatedSource() == 2 || mItem.getCreatedSource() == 3 || mItem.getCreatedSource() == 4) && mItem.getStatus() == 4) {
dumpServerActivity(mItem); dumpServerActivity(mItem);
} else if (mItem.getStatus() == 4 && mItem.getSubStatus() == 3) { } else if (mItem.getStatus() == 4 && mItem.getSubStatus() == 3) {
...@@ -449,6 +505,12 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi ...@@ -449,6 +505,12 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
} }
if (mItem.getStatus() == 3) { if (mItem.getStatus() == 3) {
startServer(h, posiiton);
}
}
}
private void startServer(FragmentOrderdoingItemBinding h, int posiiton) {
RxPermissions permissions = new RxPermissions((Activity) mContext); RxPermissions permissions = new RxPermissions((Activity) mContext);
if (permissions.isGranted(Manifest.permission.ACCESS_COARSE_LOCATION)) { if (permissions.isGranted(Manifest.permission.ACCESS_COARSE_LOCATION)) {
startFirstServe(h, posiiton); startFirstServe(h, posiiton);
...@@ -474,9 +536,6 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi ...@@ -474,9 +536,6 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
.setNegativeButton("取消"); .setNegativeButton("取消");
mDialog.show(); mDialog.show();
} }
}
} }
private void getLocation() { private void getLocation() {
...@@ -530,10 +589,14 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi ...@@ -530,10 +589,14 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
} }
private void startFirstServe(FragmentOrderdoingItemBinding h, int posiiton) { private void startFirstServe(FragmentOrderdoingItemBinding h, int posiiton) {
if (mItem.getSubStatus() == 1 || mItem.getSubStatus() == 2) { if (mItem.getSubStatus() == 1 || mItem.getSubStatus() == 2 || (mItem.getSource() == 7)) {
mPresenter.startServer(mItem.getId()) mPresenter.startServer(mItem.getId())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe(mPresenter.baseObserver(integer -> { .subscribe(mPresenter.baseObserver(integer -> {
if (mItem.getSource() == 7){
ProgressUtil.stopLoad();
mPresenter.refreshClear();
}else{
ProgressUtil.stopLoad(); ProgressUtil.stopLoad();
mItem.setStatus(4); mItem.setStatus(4);
mItem.setSubStatus(integer); mItem.setSubStatus(integer);
...@@ -541,6 +604,8 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi ...@@ -541,6 +604,8 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
mBind.tvItemProcess.setText(mContext.getString(R.string.process_order)); mBind.tvItemProcess.setText(mContext.getString(R.string.process_order));
mBind.itemUpdataTime.setText(mContext.getString(R.string.need_again_door)); mBind.itemUpdataTime.setText(mContext.getString(R.string.need_again_door));
getLocation(); getLocation();
}
}, responeThrowable -> { }, responeThrowable -> {
if ("ORDER0006".equals(responeThrowable.subCode)) { if ("ORDER0006".equals(responeThrowable.subCode)) {
EventBus.getDefault().post(new RefreshTab(3)); EventBus.getDefault().post(new RefreshTab(3));
......
package com.dayu.order.ui.adapter;
import android.content.Intent;
import android.text.TextUtils;
import android.view.View;
import com.dayu.base.ui.activity.VideoPreviewActivty;
import com.dayu.base.ui.adapter.CoreAdapter;
import com.dayu.common.Constants;
import com.dayu.order.R;
import com.dayu.order.api.protocol.OrderDetail;
import com.dayu.order.databinding.ServeDatailsItemBinding;
import com.dayu.order.presenter.orderdetail.OrderDetailClockPresenter;
import com.dayu.utils.UIUtils;
import java.util.ArrayList;
/**
* Created by luofan
* on 2018/4/23.
*/
public class OrderServerClockAdapter extends CoreAdapter<OrderDetail.RecordBean, ServeDatailsItemBinding> {
private OrderDetail mDetail;
public OrderServerClockAdapter(boolean needFoot) {
super(needFoot);
}
public void setOrderDetail(OrderDetail detail) {
mDetail = detail;
}
@Override
protected void onBind(ServeDatailsItemBinding holder, OrderDetail.RecordBean item, int position) {
super.onBind(holder, item, position);
OrderDetailClockPresenter presenter = (OrderDetailClockPresenter) mPresenter;
if (position == 0) {
holder.ivCircle.setImageResource(R.drawable.icon_circle_blue);
// holder.serverCheck.setBackgroundResource(R.drawable.tab_blue_react);
// holder.serverCheck.setGravity(Gravity.CENTER);
// holder.serverCheck.setTextColor(UIUtils.getColor(R.color.white));
holder.serverTimeComment.setTextColor(UIUtils.getColor(R.color.default_text_color));
holder.serverTime.setTextColor(UIUtils.getColor(R.color.default_text_color));
holder.serverComment.setTextColor(UIUtils.getColor(R.color.default_text_color));
holder.serverState.setTextColor(UIUtils.getColor(R.color.default_text_color));
} else {
holder.ivCircle.setImageResource(R.drawable.icon_circle_gray);
// holder.serverCheck.setBackground(null);
// holder.serverCheck.setGravity(Gravity.LEFT);
// holder.serverCheck.setTextColor(UIUtils.getColor(R.color.cl_receiving_order_item_data));
holder.serverTimeComment.setTextColor(UIUtils.getColor(R.color.cl_order_text_one));
holder.serverTime.setTextColor(UIUtils.getColor(R.color.cl_order_text_one));
holder.serverComment.setTextColor(UIUtils.getColor(R.color.cl_order_text_one));
holder.serverState.setTextColor(UIUtils.getColor(R.color.cl_order_text_one));
}
holder.serverTime.setText(item.getCreateTime());
holder.serverState.setText("【" + item.getOperation() + "】");
holder.serverCheck.setVisibility(View.VISIBLE);
holder.serverTimeComment.setVisibility(View.GONE);
holder.serverComment.setText(item.getOperationComment());
if ((item.getCommentInfo() != null && item.getCommentInfo().contains(UIUtils.getString(R.string.appointment_time)))) {
holder.serverTimeComment.setText(item.getCommentInfo());
holder.serverCheck.setVisibility(View.GONE);
holder.serverTimeComment.setVisibility(View.VISIBLE);
} else if (UIUtils.getString(R.string.order_remark).equals(item.getCommentName())) {
if (TextUtils.isEmpty(item.getCommentInfo())) {
holder.serverTimeComment.setText(UIUtils.getString(R.string.no_remark));
} else {
holder.serverTimeComment.setText(UIUtils.getString(R.string.remark_order) + item.getCommentInfo());
}
holder.serverCheck.setText("");
holder.serverTimeComment.setVisibility(View.VISIBLE);
} else if (UIUtils.getString(R.string.system_chcek).equals(item.getOperation())) {
holder.serverCheck.setText(UIUtils.getString(R.string.check_accept));
holder.serverTimeComment.setVisibility(View.GONE);
} else if (UIUtils.getString(R.string.reassignment_reason).equals(item.getCommentName())) {
if (TextUtils.isEmpty(item.getCommentInfo())) {
holder.serverTimeComment.setText(UIUtils.getString(R.string.no_reassignment));
} else {
holder.serverTimeComment.setText(UIUtils.getString(R.string.reassignment_reason) + ":" + item.getCommentInfo());
}
holder.serverCheck.setVisibility(View.GONE);
holder.serverTimeComment.setVisibility(View.VISIBLE);
} else if (UIUtils.getString(R.string.cancle_reason).equals(item.getCommentName())) {
if (TextUtils.isEmpty(item.getCommentInfo())) {
holder.serverTimeComment.setText(UIUtils.getString(R.string.no_cancle));
} else {
holder.serverTimeComment.setText(UIUtils.getString(R.string.cancle_reason) + ":" + item.getCommentInfo());
}
holder.serverCheck.setVisibility(View.GONE);
holder.serverTimeComment.setVisibility(View.VISIBLE);
} else if (UIUtils.getString(R.string.part_record).equals(item.getOperation())) {
holder.serverCheck.setVisibility(View.GONE);
holder.serverTimeComment.setVisibility(View.GONE);
} else {
holder.serverTimeComment.setVisibility(View.GONE);
if (TextUtils.isEmpty(item.getCommentName())) {
holder.serverCheck.setVisibility(View.GONE);
} else {
holder.serverCheck.setText(item.getCommentName());
}
}
if (UIUtils.getString(R.string.user_chcek).equals(item.getOperation())) {
holder.serverCheck.setText("验收视频");
holder.serverCheck.setVisibility(View.VISIBLE);
holder.serverTimeComment.setVisibility(View.GONE);
}
// if (UIUtils.getString(R.string.check_accept).equals(item.getCommentName()) || UIUtils.getString(R.string.system_chcek).equals(item.getOperation())) {
if (UIUtils.getString(R.string.system_chcek).equals(item.getOperation())) {
if (mDetail.getCreatedSource() == 2 || mDetail.getCreatedSource() == 3 || mDetail.getCreatedSource() == 4) {
holder.serverCheck.setVisibility(View.GONE);
} else {
holder.serverCheck.setVisibility(View.VISIBLE);
}
holder.serverCheck.setOnClickListener(v -> presenter.dumpCheckContent(position));
}
if (UIUtils.getString(R.string.user_chcek).equals(item.getOperation())) {
holder.serverCheck.setOnClickListener(v -> {
ArrayList<String> list = new ArrayList<>();
list.add(mDetail.getShortVideoUrl());
Intent intent = new Intent(mContext, VideoPreviewActivty.class);
intent.putStringArrayListExtra(Constants.BUNDLE_KEY_ID, list);
mContext.startActivity(intent);
});
}
if (UIUtils.getString(R.string.order_remark).equals(item.getCommentName())) {
holder.serverCheck.setOnClickListener(v -> presenter.dumpCheckContent(position));
}
if (UIUtils.getString(R.string.check_location).equals(item.getCommentName())) {
holder.serverCheck.setOnClickListener(v -> presenter.dumpMap(item.getLatitude(), item.getLongitude(), item.getAddress()));
}
if (UIUtils.getString(R.string.check_reason).equals(item.getCommentName())) {
if (mDetail.getCreatedSource() == 2 || mDetail.getCreatedSource() == 3 || mDetail.getCreatedSource() == 4) {
if (item.getCommentInfo() != null) {
holder.serverCheck.setOnClickListener(v -> presenter.dumpToSop(Integer.parseInt(item.getCommentInfo())));
}
} else {
holder.serverCheck.setOnClickListener(v -> presenter.dumpToSop(0));
}
}
if (item.getServiceProgessTimeNum() == 9) {
holder.serverTimeComment.setVisibility(View.VISIBLE);
holder.serverTimeComment.setText(item.getCommentInfo());
}
}
}
package com.dayu.order.ui.fragment; package com.dayu.order.ui.fragment;
import static com.dayu.order.common.OrderConstant.ORDER_FINISH;
import static com.dayu.order.common.OrderConstant.ORDER_NOCONTACT_FINISH;
import static com.dayu.order.common.OrderConstant.ORDER_SOP_FINISH;
import static com.dayu.order.common.OrderConstant.ORDER_YUYUE;
import com.dayu.base.ui.fragment.BaseFragment; import com.dayu.base.ui.fragment.BaseFragment;
import com.dayu.common.Constants; import com.dayu.common.Constants;
import com.dayu.order.R; import com.dayu.order.R;
...@@ -21,11 +26,6 @@ import org.greenrobot.eventbus.ThreadMode; ...@@ -21,11 +26,6 @@ import org.greenrobot.eventbus.ThreadMode;
import java.util.List; import java.util.List;
import static com.dayu.order.common.OrderConstant.ORDER_FINISH;
import static com.dayu.order.common.OrderConstant.ORDER_NOCONTACT_FINISH;
import static com.dayu.order.common.OrderConstant.ORDER_SOP_FINISH;
import static com.dayu.order.common.OrderConstant.ORDER_YUYUE;
/** /**
* 待服务的Fragment * 待服务的Fragment
...@@ -59,8 +59,13 @@ public class OrderSecondTabFragment extends BaseFragment<OrderDoingPresenter, Fr ...@@ -59,8 +59,13 @@ public class OrderSecondTabFragment extends BaseFragment<OrderDoingPresenter, Fr
mBind.recyclerView.setOnItemClickListener(new OnItemClickListener<Order, FragmentOrderdoingItemBinding>() { mBind.recyclerView.setOnItemClickListener(new OnItemClickListener<Order, FragmentOrderdoingItemBinding>() {
@Override @Override
public void OnItemClick(Order item, FragmentOrderdoingItemBinding bind) { public void OnItemClick(Order item, FragmentOrderdoingItemBinding bind) {
if (7 == item.getSource()){
mPresenter.dumpDetailClock(item.getId());
}else{
mPresenter.dumpDetail(item.getId()); mPresenter.dumpDetail(item.getId());
} }
}
}); });
} }
......
...@@ -46,6 +46,13 @@ ...@@ -46,6 +46,13 @@
android:screenOrientation="portrait" android:screenOrientation="portrait"
/> />
<activity <activity
android:name=".ui.activity.OrderDetailsClockActivity"
android:launchMode="singleTask"
android:windowSoftInputMode="adjustResize"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait"
/>
<activity
android:name=".ui.activity.ReturnPartNewActivity" android:name=".ui.activity.ReturnPartNewActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
......
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="presenter"
type="com.dayu.order.presenter.orderdetail.OrderDetailClockPresenter" />
<import type="android.view.View" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/rl_title"
style="@style/title">
<TextView
android:id="@+id/tv_title"
style="@style/text_title"
android:text="@string/order_detail" />
<ImageView
android:id="@+id/title_back"
style="@style/title_image_back" />
<LinearLayout
android:id="@+id/ll_help_tool"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="15dp"
android:gravity="center_vertical"
android:visibility="gone"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_xiaolvren"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/help_tool"
android:layout_marginLeft="3dp"
android:textColor="@color/text_common_blue"
android:textSize="14sp" />
</LinearLayout>
<ImageView
style="@style/card_line"
android:layout_alignParentBottom="true" />
</RelativeLayout>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.dayu.widgets.DottdeLineView
android:id="@+id/dl_line"
android:layout_width="1dp"
android:layout_height="wrap_content"
android:layout_marginLeft="24dp"
android:layerType="software"
android:visibility="@{presenter.isShowLine?View.VISIBLE:View.GONE}" />
<com.dayu.widgets.LRecyclerView
android:id="@+id/recyclerView"
setPresenter="@{presenter}"
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="@color/transparent"
app:isRefreshable="false"
app:itemType="@layout/serve_datails_item"
android:layout_marginBottom="@dimen/dp_10"
/>
</RelativeLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@color/common_red"/>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</LinearLayout>
</layout>
\ No newline at end of file
...@@ -19,6 +19,7 @@ public class RouterPath { ...@@ -19,6 +19,7 @@ public class RouterPath {
* 工单模块. * 工单模块.
*/ */
public final static String PATH_ORDER_DETAIL = "/order/detail"; public final static String PATH_ORDER_DETAIL = "/order/detail";
public final static String PATH_ORDER_DETAIL_CLOCK = "/order/detail_clock";
public final static String PATH_ORDER_HISTORY = "/order/history"; public final static String PATH_ORDER_HISTORY = "/order/history";
public final static String PATH_ORDER_KONWLEDGE_CENTER = "/order/konwledge_center"; public final static String PATH_ORDER_KONWLEDGE_CENTER = "/order/konwledge_center";
public final static String PATH_ORDER_KNOWLEDGE_DETAIL = "/order/konwledge_detail"; public final static String PATH_ORDER_KNOWLEDGE_DETAIL = "/order/konwledge_detail";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment