Commit 36906ffd by wukun

1015

parent 194305f2
......@@ -70,6 +70,7 @@ public class LRecyclerView<M, B> extends FrameLayout {
private LinearLayout ll_faileView;
private BaseListPresenter mPresenter;
private boolean isRefreshable;
private boolean isWrapContent;
private boolean mIsEnd;
......@@ -98,6 +99,7 @@ public class LRecyclerView<M, B> extends FrameLayout {
isNeedFoot = ta.getBoolean(R.styleable.LRecyclerView_needFoot, true);
needCoreAdapter = ta.getBoolean(R.styleable.LRecyclerView_needCoreAdapter, false);
isRefreshable = ta.getBoolean(R.styleable.LRecyclerView_isRefreshable, true);
isWrapContent = ta.getBoolean(R.styleable.LRecyclerView_isWrapContent, false);
ta.recycle();
//初始化recycleview
......@@ -108,7 +110,11 @@ public class LRecyclerView<M, B> extends FrameLayout {
ll_faileView = layout.findViewById(R.id.ll_faileview);
swipeRefresh.setColorSchemeResources(R.color.cl_receiving_order_item_data);
mLayoutManager = new LinearLayoutManager(context);
// if (isWrapContent){
// mLayoutManager = new RecyclerLayoutManager(context);
// }else{
mLayoutManager = new LinearLayoutManager(context);
// }
mLayoutManager.setAutoMeasureEnabled(true);
recyclerview.setLayoutManager(mLayoutManager);
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 @@
<declare-styleable name="LRecyclerView">
<attr name="isReverse" format="boolean" />
<attr name="isRefreshable" format="boolean" />
<attr name="isWrapContent" format="boolean" />
<attr name="needCoreAdapter" format="boolean" />
<attr name="needFoot" format="boolean" />
<attr name="itemType" format="reference" />
......
......@@ -51,6 +51,9 @@
android:name=".ui.activity.OrderDetailsActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.OrderDetailsClockActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.ReturnPartNewActivity"
android:screenOrientation="portrait" />
<activity
......
......@@ -62,6 +62,9 @@ public class OrderApiFactory {
public static Observable<Boolean> receiveOrder(int orderId, int engineerId) {
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) {
return Api.getService(OrderService.class).subcriceTime(orderId, doorTime, doorComment).compose(Api.applySchedulers());
......
......@@ -144,6 +144,13 @@ public interface OrderService {
@Query("doorComment") String doorComment);
/**
* 打卡.
*
* @return
*/
@POST(OrderConstant.API_CLOCK_IN)
Observable<BaseResponse<Boolean>> clockIn(@Body RequestBody body);
/**
* 提交工单.
*
* @param orderInfo
......
......@@ -71,6 +71,15 @@ public class Order implements Serializable{
private String showPrice;
private double receiveOrderCommission;
private int source;
private String finishedDays;
public String getFinishedDays() {
return finishedDays;
}
public void setFinishedDays(String finishedDays) {
this.finishedDays = finishedDays;
}
public int getSource() {
return source;
......
......@@ -39,6 +39,9 @@ public class OrderConstant {
* 重新预约时间.
*/
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;
import static com.dayu.utils.UIUtils.getString;
import android.os.Bundle;
import androidx.databinding.ObservableField;
import com.dayu.base.api.Api;
import com.dayu.common.Constants;
import com.dayu.event.UserInfo;
......@@ -14,6 +18,7 @@ import com.dayu.order.api.protocol.data.AddDialRecordData;
import com.dayu.order.common.OrderConstant;
import com.dayu.order.ui.activity.MultiProcessOrderActivity;
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.fragment.OrderDoneFragment;
import com.dayu.order.ui.fragment.OrderThreeTabFragment;
......@@ -33,10 +38,6 @@ import io.reactivex.Observable;
import okhttp3.MediaType;
import okhttp3.RequestBody;
import static com.dayu.utils.UIUtils.getString;
import androidx.databinding.ObservableField;
/**
* Created by luofan
* on 2017/11/8.
......@@ -203,6 +204,13 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter {
// 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) {
}
......@@ -216,4 +224,19 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter {
AddDialRecordData recordData = new AddDialRecordData(mUserId, time, userInfo.getAccountName(), phoneNum, orderId);
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;
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.location.base.BaseMapActivity;
import com.dayu.order.R;
......@@ -17,12 +23,6 @@ import com.dayu.utils.UIUtils;
import java.util.Collections;
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
* 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;
import static com.dayu.utils.UtilsDate.FORMAT_ONE;
import static com.dayu.utils.UtilsDate.LONG_TIME_FORMAT_TWO;
import android.Manifest;
import android.app.Activity;
import android.content.Intent;
......@@ -8,6 +11,7 @@ import android.location.Address;
import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import com.alibaba.android.arouter.launcher.ARouter;
......@@ -52,9 +56,6 @@ import java.util.Map;
import io.reactivex.android.schedulers.AndroidSchedulers;
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
setTimeStatus(holder, item, time);
break;
case 3://待服务
Log.e("TAG", "initData: "+ item.getStatus()+"---"+ item.getSubStatus());
holder.tvItemProcess.setVisibility(View.GONE);
holder.rlItemEnd.setVisibility(View.VISIBLE);
holder.tvItemEnd.setVisibility(View.VISIBLE);
......@@ -195,18 +197,54 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
holder.orderLineOne.setVisibility(View.VISIBLE);
}
holder.itemUpdataTime.setText(mContext.getString(R.string.modify_appointment_time));
if (item.getSubStatus() == 1) {
// 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) {
// 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.tvItemProcess.setText(mContext.getString(R.string.begain_server));
} else if (item.getSubStatus() == 2) {
holder.tvItemProcess.setText(mContext.getString(R.string.begain_server));
}
// }
time = item.getConfirmDoorTime();
setTimeStatus(holder, item, time);
break;
case 4://待处理
holder.tvItemProcess.setVisibility(View.GONE);
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.tvItemProcess.setText(mContext.getString(R.string.process_order));
if (!haveCustomer) {
......@@ -430,52 +468,73 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
mItem = it;
mBind = h;
//createdsource为2,3,4并且status为4,进行中时跳转到任务列表.
if ((mItem.getCreatedSource() == 2 || mItem.getCreatedSource() == 3 || mItem.getCreatedSource() == 4) && mItem.getStatus() == 4) {
dumpServerActivity(mItem);
} else if (mItem.getStatus() == 4 && mItem.getSubStatus() == 3) {
dumpProcessActivity(mItem, posiiton);
} else if (mItem.getStatus() == 4 && mItem.getSubStatus() == 4) {
if (mItem.getSopStatus() == 1) {//sop启用
dumpSOPActivity(mItem, posiiton);
} else if (mItem.getSopStatus() == 0) {
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) {
dumpServerActivity(mItem);
} else if (mItem.getStatus() == 4 && mItem.getSubStatus() == 3) {
dumpProcessActivity(mItem, posiiton);
} else if (mItem.getStatus() == 4 && mItem.getSubStatus() == 4) {
if (mItem.getSopStatus() == 1) {//sop启用
dumpSOPActivity(mItem, posiiton);
} else if (mItem.getSopStatus() == 0) {
dumpProcessActivity(mItem, posiiton);
}
} else if (mItem.getStatus() == 4 && mItem.getSubStatus() == 5) {
dumpProcessActivity(mItem, posiiton);
}
} else if (mItem.getStatus() == 4 && mItem.getSubStatus() == 5) {
dumpProcessActivity(mItem, posiiton);
}
if (mItem.getStatus() == 4) {
return;
}
if (mItem.getStatus() == 3) {
RxPermissions permissions = new RxPermissions((Activity) mContext);
if (permissions.isGranted(Manifest.permission.ACCESS_COARSE_LOCATION)) {
startFirstServe(h, posiiton);
} else {
CustomDialog mDialog = new CustomDialog((Activity) mContext, com.dayu.baselibrary.R.style.CustomDialog, "大鱼需要你的定位权限,用于记录处理sop的当前位置"
, (dialog, confirm) -> {
if (confirm) {
Disposable observable = permissions.request(Manifest.permission.ACCESS_COARSE_LOCATION)
.subscribe(aBoolean -> {
if (aBoolean) {
ProgressUtil.setCanDismiss(false);
ProgressUtil.startLoad(mContext);
startFirstServe(h, posiiton);
} else {
ToastUtils.showShortToast("权限申请失败!");
}
});
}
dialog.dismiss();
});
mDialog.setTitle("温馨提示")
.setPositiveButton("去开启")
.setNegativeButton("取消");
mDialog.show();
if (mItem.getStatus() == 4) {
return;
}
if (mItem.getStatus() == 3) {
startServer(h, posiiton);
}
}
}
private void startServer(FragmentOrderdoingItemBinding h, int posiiton) {
RxPermissions permissions = new RxPermissions((Activity) mContext);
if (permissions.isGranted(Manifest.permission.ACCESS_COARSE_LOCATION)) {
startFirstServe(h, posiiton);
} else {
CustomDialog mDialog = new CustomDialog((Activity) mContext, com.dayu.baselibrary.R.style.CustomDialog, "大鱼需要你的定位权限,用于记录处理sop的当前位置"
, (dialog, confirm) -> {
if (confirm) {
Disposable observable = permissions.request(Manifest.permission.ACCESS_COARSE_LOCATION)
.subscribe(aBoolean -> {
if (aBoolean) {
ProgressUtil.setCanDismiss(false);
ProgressUtil.startLoad(mContext);
startFirstServe(h, posiiton);
} else {
ToastUtils.showShortToast("权限申请失败!");
}
});
}
dialog.dismiss();
});
mDialog.setTitle("温馨提示")
.setPositiveButton("去开启")
.setNegativeButton("取消");
mDialog.show();
}
}
......@@ -530,17 +589,23 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
}
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())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(mPresenter.baseObserver(integer -> {
ProgressUtil.stopLoad();
mItem.setStatus(4);
mItem.setSubStatus(integer);
processClick(mItem, h, posiiton);
mBind.tvItemProcess.setText(mContext.getString(R.string.process_order));
mBind.itemUpdataTime.setText(mContext.getString(R.string.need_again_door));
getLocation();
if (mItem.getSource() == 7){
ProgressUtil.stopLoad();
mPresenter.refreshClear();
}else{
ProgressUtil.stopLoad();
mItem.setStatus(4);
mItem.setSubStatus(integer);
processClick(mItem, h, posiiton);
mBind.tvItemProcess.setText(mContext.getString(R.string.process_order));
mBind.itemUpdataTime.setText(mContext.getString(R.string.need_again_door));
getLocation();
}
}, responeThrowable -> {
if ("ORDER0006".equals(responeThrowable.subCode)) {
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;
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.common.Constants;
import com.dayu.order.R;
......@@ -21,11 +26,6 @@ import org.greenrobot.eventbus.ThreadMode;
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
......@@ -59,7 +59,12 @@ public class OrderSecondTabFragment extends BaseFragment<OrderDoingPresenter, Fr
mBind.recyclerView.setOnItemClickListener(new OnItemClickListener<Order, FragmentOrderdoingItemBinding>() {
@Override
public void OnItemClick(Order item, FragmentOrderdoingItemBinding bind) {
mPresenter.dumpDetail(item.getId());
if (7 == item.getSource()){
mPresenter.dumpDetailClock(item.getId());
}else{
mPresenter.dumpDetail(item.getId());
}
}
});
}
......
......@@ -46,6 +46,13 @@
android:screenOrientation="portrait"
/>
<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:screenOrientation="portrait" />
<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 {
* 工单模块.
*/
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_KONWLEDGE_CENTER = "/order/konwledge_center";
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