Commit 23c33633 by Wyh

1、凍鏈新增打印狀態 2、凍鏈省去本地確認訂單、由後台處理 3、prj打印顯示凍鏈 4、新增凍鏈prj查詢

parent 738d4593
......@@ -50,5 +50,8 @@ public interface ColdChainMainContract {
Observable<BaseResult> addPrj(RequestBody requestBody);
Observable<BaseResult> getNotPrintedOrderList();
Observable<BaseResult> updatePrintOrderStatus(RequestBody requestBody);
}
}
......@@ -40,5 +40,7 @@ public interface OrderDetailsContract {
Observable<BaseResult> addPrj(RequestBody requestBody);
Observable<BaseResult> updatePrintPdfStatus(RequestBody requestBody);
Observable<BaseResult> updatePrintOrderStatus(RequestBody requestBody);
}
}
......@@ -14,6 +14,7 @@ import com.gingersoft.coldchain_module.mvp.model.service.ColdChainService;
import com.gingersoft.coldchain_module.mvp.model.service.OrderDetailService;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails;
import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager;
import com.google.gson.Gson;
import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.integration.IRepositoryManager;
......@@ -94,4 +95,14 @@ public class ColdChainMainModel extends BaseModel implements ColdChainMainContra
return mRepositoryManager.obtainRetrofitService(OrderDetailService.class).addPrj(requestBody);
}
@Override
public Observable<BaseResult> getNotPrintedOrderList() {
return mRepositoryManager.obtainRetrofitService(OrderDetailService.class).getNotPrintedOrderList(RestaurantInfoManager.newInstance().getRestaurantId());
}
@Override
public Observable<BaseResult> updatePrintOrderStatus(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(OrderDetailService.class).updatePrintOrderStatus(requestBody);
}
}
\ No newline at end of file
......@@ -75,5 +75,10 @@ public class OrderDetailsModel extends BaseModel implements OrderDetailsContract
return mRepositoryManager.obtainRetrofitService(OrderDetailService.class).updatePrintPdfStatus(requestBody);
}
@Override
public Observable<BaseResult> updatePrintOrderStatus(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(OrderDetailService.class).updatePrintOrderStatus(requestBody);
}
}
\ No newline at end of file
package com.gingersoft.coldchain_module.mvp.model.bean;
import com.gingersoft.coldchain_module.R;
import java.util.List;
public class OrderList {
......@@ -187,6 +189,39 @@ public class OrderList {
private int sumNum;
private String Open_Status;
private int isPrintPdf;//是否已打印PDF 0否 1是
/**
* 是否打印上菜紙
* 0 未打印,1 打印成功,2 打印失敗
*/
private int printStatus;
public String getPrintStrByStatus() {
switch (printStatus) {
case 1:
return "已打印訂單";
case 2:
return "訂單打印失敗";
default:
return "未打印訂單";
}
}
public int getColorByStatus() {
switch (printStatus) {
case 1:
return R.color.print_success_color;
case 2:
return R.color.required_color;
default:
return R.color.color_3c;
}
}
public int getPrintStatus() {
return printStatus;
}
public void setPrintStatus(int printStatus) {
this.printStatus = printStatus;
}
public int getCurStat() {
return curStat;
......
......@@ -14,6 +14,9 @@ class ThirdItem : ArrayList<ThirdItem.ThirdItemItem>() {
constructor(product_name: String, hkd: UntPrice)
: this("", Dim(), product_name, "", 1, "", "", "", hkd, Wt())
constructor(product_name: String, hkd: UntPrice, qty: Int)
: this("", Dim(), product_name, "", qty, "", "", "", hkd, Wt())
data class Dim(
val hgt: Int = 1,
val len: Int = 1,
......
......@@ -10,8 +10,10 @@ import io.reactivex.Observable;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Query;
public interface OrderDetailService {
......@@ -47,4 +49,13 @@ public interface OrderDetailService {
@POST("shipanyTransportOrderInfo/update" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> updatePrintPdfStatus(@Body RequestBody requestBody);
@Headers({"Domain-Name: ricepon_order"})
@GET("orderInfo/getOrderInfoById" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> getNotPrintedOrderList(@Query("restaurantId") int restaurantId);
@Headers({"Domain-Name: ricepon_order"})
@POST("orderInfo/updateOrderInfoExt" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> updatePrintOrderStatus(@Body RequestBody requestBody);
}
......@@ -13,11 +13,14 @@ import com.gingersoft.coldchain_module.mvp.model.bean.ShipAnyOrdersNewBean;
import com.gingersoft.coldchain_module.mvp.model.bean.SupplementInfoBean;
import com.gingersoft.coldchain_module.mvp.model.bean.ThirdItem;
import com.gingersoft.coldchain_module.mvp.model.bean.UpdateRestaurantStateBean;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.constans.ExpandConstant;
import com.gingersoft.gsa.cloud.common.constans.PrintConstans;
import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails;
import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfo;
import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager;
import com.gingersoft.gsa.cloud.common.core.restaurant.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.common.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
......@@ -58,6 +61,11 @@ public class ColdChainMainPresenter extends BasePresenter<ColdChainMainContract.
@Inject
AppManager mAppManager;
public static final int PRINT_COLD_CHAIN_ORDER_SUCCESS = 1;
public static final int PRINT_COLD_CHAIN_ORDER_FAIL = 2;
private String TAG = this.getClass().getSimpleName();
@Inject
public ColdChainMainPresenter(ColdChainMainContract.Model model, ColdChainMainContract.View rootView) {
super(model, rootView);
......@@ -225,12 +233,10 @@ public class ColdChainMainPresenter extends BasePresenter<ColdChainMainContract.
/**
* 獲取待確認訂單(開了自動接單調用此方法接單)
*
* @param restaurantId
*/
public void startToBeConfirmedOrderList(int restaurantId) {
public void startToBeConfirmedOrderList() {
RequestBody requestBody = new FormBody.Builder()
.add("restaurantId", restaurantId + "")
.add("restaurantId", RestaurantInfoManager.newInstance().getRestaurantId() + "")
.add("page", "0")
.add("pageSize", "")
.add("status", "0,1")
......@@ -270,11 +276,17 @@ public class ColdChainMainPresenter extends BasePresenter<ColdChainMainContract.
});
}
/**
* 獲取訂單詳情
*/
public void findOrderDetails(int orderId) {
findOrderDetails(orderId, false);
}
/**
* 獲取訂單詳情
*/
public void findOrderDetails(int orderId, boolean isOnlyPrint) {
//startTime endTime //mRootView.showLoading("獲取訂單詳情...") mRootView.hideLoading()
RequestBody requestBody = new FormBody.Builder()
.add("orderId", orderId + "")
......@@ -297,11 +309,17 @@ public class ColdChainMainPresenter extends BasePresenter<ColdChainMainContract.
@Override
public void onNext(@NonNull OrderDetails info) {
LogUtil.d("eee", "凍鏈:findOrderDetails" + orderId + "--漏打印:" + isOnlyPrint);
LoganManager.w_network("凍鏈:findOrderDetails" + orderId + "--漏打印:" + isOnlyPrint);
if (info != null && info.getData() != null && info.getData().size() > 0) {
if (isOnlyPrint) {
updateOrderState(info.getData().get(0), ColdChainConstants.ORDER_CONFIRMED);
} else {
//第三方配送
thirdDelivery(info.getData().get(0));
}
}
}
});
}
......@@ -318,18 +336,47 @@ public class ColdChainMainPresenter extends BasePresenter<ColdChainMainContract.
ThirdItem third = new ThirdItem();
if (dataBean.getPRODUCT_NAME() != null) {
for (OrderDetails.DataBean.PRODUCTNAMEBean productnameBean : dataBean.getPRODUCT_NAME()) {
ThirdItem.ThirdItemItem.UntPrice hkd = new ThirdItem.ThirdItemItem.UntPrice("HKD", Double.valueOf(productnameBean.getPRICE()));
ThirdItem.ThirdItemItem.UntPrice hkd = new ThirdItem.ThirdItemItem.UntPrice("HKD", Double.parseDouble(productnameBean.getPRICE()));
ThirdItem.ThirdItemItem thirdItemItem;
if (TextUtil.isNotEmptyOrNullOrUndefined(productnameBean.getPRODUCT_NAME())) {
thirdItemItem = new ThirdItem.ThirdItemItem(productnameBean.getPRODUCT_NAME(), hkd);
//一級食品
if (productnameBean.getNum() != null) {
thirdItemItem = new ThirdItem.ThirdItemItem(productnameBean.getPRODUCT_NAME(), hkd, Integer.parseInt(productnameBean.getNum()));
} else {
thirdItemItem = new ThirdItem.ThirdItemItem("", hkd);
thirdItemItem = new ThirdItem.ThirdItemItem(productnameBean.getPRODUCT_NAME(), hkd);
}
third.add(thirdItemItem);
if (productnameBean.getChild() != null) {
for (OrderDetails.DataBean.PRODUCTNAMEBean.ChildBeanX childBeanX : productnameBean.getChild()) {
//二級細項
String childBeanXPrice = childBeanX.getPRICE();
if (childBeanXPrice == null) {
childBeanXPrice = "0";
}
String childBeanXNum = childBeanX.getNum();
if (childBeanXNum == null) {
childBeanXNum = "0";
}
third.add(new ThirdItem.ThirdItemItem(childBeanX.getPRODUCT_NAME(), new ThirdItem.ThirdItemItem.UntPrice("HKD", Double.parseDouble(childBeanXPrice)), Integer.parseInt(childBeanXNum)));
if (childBeanX.getChild() != null) {
for (OrderDetails.DataBean.PRODUCTNAMEBean.ChildBeanX.ChildBean childBean : childBeanX.getChild()) {
//三級細項
String childBeanPrice = childBean.getPRICE();
if (childBeanPrice == null) {
childBeanPrice = "0";
}
String childBeanNum = childBean.getNum();
if (childBeanNum == null) {
childBeanNum = "0";
}
Log.e("eee", "調用第三方物流接口開始");
third.add(new ThirdItem.ThirdItemItem(childBean.getPRODUCT_NAME(), new ThirdItem.ThirdItemItem.UntPrice("HKD", Double.parseDouble(childBeanPrice)), Integer.parseInt(childBeanNum)));
}
}
}
}
}
}
LogUtil.d("eee", "調用第三方物流接口開始");
LoganManager.w_network("凍鏈:調用第三方物流接口開始");
//第三方物流
RequestBody requestBody = new FormBody.Builder()
.add("orderId", dataBean.getID() + "")
......@@ -347,9 +394,10 @@ public class ColdChainMainPresenter extends BasePresenter<ColdChainMainContract.
.subscribe(new ErrorHandleSubscriber<ShipAnyOrdersNewBean>(mErrorHandler) {
@Override
public void onNext(@NonNull ShipAnyOrdersNewBean info) {
Log.e("eee", "調用第三方物流接口結束:");
if (info != null && info.isSuccess()) {
LogUtil.d("eee", "調用第三方物流接口結束");
//修改訂單狀態
dataBean.setTakeFoodCode(info.getData().getTakeFoodCode());
updateOrderState(dataBean, ColdChainConstants.ORDER_CONFIRMED);
}
}
......@@ -357,30 +405,35 @@ public class ColdChainMainPresenter extends BasePresenter<ColdChainMainContract.
@Override
public void onError(Throwable t) {
super.onError(t);
Log.e("eee", "調用第三方物流接口出錯:" + t.getMessage());
LoganManager.w_network("凍鏈:調用第三方物流接口出錯:" + t.getMessage());
}
});
}
private void printColdChainOrder(OrderDetails.DataBean dataBean) {
LogUtil.w("eee", "凍鏈自動上菜紙" + RestaurantExpandInfoUtils.getValue(ExpandConstant.AutoPrinterPaper, true));
if (RestaurantExpandInfoUtils.getValue(ExpandConstant.AutoPrinterPaper, true)) {
LogUtil.d("eee", "凍鏈:打印上菜紙");
//打印凍鏈上菜紙
dataBean.setOrder_type(8);
TakeawayOrder.getInstance().getShoppingCart().setDeliveryAndPickupData(dataBean);
PrintContentAdapter contentAdapter = new PrintContentAdapter();
PrintContent printContent = contentAdapter.adaptationPrintTakeawayFormContent(dataBean);
LogUtil.w("eee", "打印凍鏈上菜紙");
LoganManager.w_printer(TAG, "凍鏈:打印上菜紙");
CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_ORDER)
.addParam(PrintConstans.PRINT_CONTENT, printContent)
.addParam(PrintConstans.PRINT_ORDER_NO, dataBean.getORDER_NO())
.addParam(PrintConstans.PRINT_SHOW_LOADING, false)
.setActionName("printActivity")
.build()
.callAsyncCallbackOnMainThread((cc, result) -> {
// if (result.isSuccess()) {
Log.e("eee", "打印結果" + result.isSuccess());
if (result.isSuccess()) {
//打印成功
// }
updatePrintOrderStatus(dataBean.getID(), PRINT_COLD_CHAIN_ORDER_SUCCESS);
} else {
updatePrintOrderStatus(dataBean.getID(), PRINT_COLD_CHAIN_ORDER_FAIL);
}
TakeawayOrder.getInstance().getShoppingCart().setDeliveryAndPickupData(null);
});
}
......@@ -397,13 +450,15 @@ public class ColdChainMainPresenter extends BasePresenter<ColdChainMainContract.
if (OrderDetails.verificationAmount(dataBean)) {
return;
}
Log.e("eee", "取餐碼:" + dataBean.getTakeFoodCode());
//添加PRJ
addPrj(dataBean);
//打印凍鏈上菜紙
printColdChainOrder(dataBean);
//再次去獲取待確認訂單列表
startToBeConfirmedOrderList();
//修改訂單狀態
//後台會修改狀態,這裡就不修改
// RequestBody requestBody = new FormBody.Builder()
// .add("memberId", UserContext.newInstance().getMemberId() + "")
// .add("orderId", dataBean.getID() + "")
......@@ -462,4 +517,49 @@ public class ColdChainMainPresenter extends BasePresenter<ColdChainMainContract.
}
}
/**
* 獲取未打印的訂單列表
*/
public void getNotPrintedOrderList() {
mModel.getNotPrintedOrderList()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult info) {
if (info.isSuccess()) {
LogUtil.i("eee", "獲取未打印列表" + info.getData().toString());
LoganManager.w_network("凍鏈:getNotPrintedOrderList");
List<Integer> ids = GsonUtils.jsonToList(info.getData(), Integer.class);
if (ids.size() > 0) {
findOrderDetails(ids.get(0), true);
}
}
}
});
}
/**
* 獲取未打印的訂單列表
*
* @param orderId
* @param printState 打印上菜紙狀態:0 未打印,1 打印成功,2 打印失敗
*/
public void updatePrintOrderStatus(int orderId, int printState) {
RequestBody requestBody = new FormBody.Builder()
.add("orderId", orderId + "")
.add("printStatus", printState + "")
.build();
mModel.updatePrintOrderStatus(requestBody)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult info) {
Log.e("eee", "修改訂單" + orderId + "打印狀態結束:" + printState);
}
});
}
}
......@@ -67,6 +67,7 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo
AppManager mAppManager;
private OrderDetails.DataBean dataBean;
@Inject
public OrderDetailsPresenter(OrderDetailsContract.Model model, OrderDetailsContract.View rootView) {
super(model, rootView);
......@@ -168,7 +169,7 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo
ThirdItem.ThirdItemItem thirdItemItem;
if (TextUtil.isNotEmptyOrNullOrUndefined(productnameBean.getPRODUCT_NAME())) {
thirdItemItem = new ThirdItem.ThirdItemItem(productnameBean.getPRODUCT_NAME(), hkd);
thirdItemItem = new ThirdItem.ThirdItemItem(productnameBean.getPRODUCT_NAME(), hkd, Integer.parseInt(productnameBean.getNum()));
} else {
thirdItemItem = new ThirdItem.ThirdItemItem("", hkd);
}
......@@ -223,30 +224,30 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo
mRootView.showMessage(OrderDetails.getVerifiAmountTip());
return;
}
RequestBody requestBody = new FormBody.Builder()
.add("memberId", UserContext.newInstance().getMemberId() + "")
.add("orderId", dataBean.getID() + "")
.add("status", status + "")
.add("", UserContext.newInstance().getMemberName() + "")
.build();
mModel.updateOrderStatus(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading("確認訂單中,請稍候..."))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<UpdateOrderStatusBean>(mErrorHandler) {
@Override
public void onNext(@NonNull UpdateOrderStatusBean info) {
if (info != null) {
// RequestBody requestBody = new FormBody.Builder()
// .add("memberId", UserContext.newInstance().getMemberId() + "")
// .add("orderId", dataBean.getID() + "")
// .add("status", status + "")
// .add("", UserContext.newInstance().getMemberName() + "")
// .build();
// mModel.updateOrderStatus(requestBody)
// .subscribeOn(Schedulers.io())
// .doOnSubscribe(disposable -> mRootView.showLoading("確認訂單中,請稍候..."))
// .subscribeOn(AndroidSchedulers.mainThread())
// .observeOn(AndroidSchedulers.mainThread())
// .doAfterTerminate(() -> mRootView.hideLoading())
// .compose(RxLifecycleUtils.bindToLifecycle(mRootView))
// .subscribe(new ErrorHandleSubscriber<UpdateOrderStatusBean>(mErrorHandler) {
//
// @Override
// public void onNext(@NonNull UpdateOrderStatusBean info) {
// if (info != null) {
//添加PRJ
addPrj(dataBean);
printColdChainOrder(RestaurantExpandInfoUtils.getValue(ExpandConstant.AutoPrinterPaper, true));
if (TextUtil.isNotEmptyOrNullOrUndefined(info.getErrorMsg())) {
mRootView.showMessage(info.getErrorMsg());
}
// if (TextUtil.isNotEmptyOrNullOrUndefined(info.getErrorMsg())) {
// mRootView.showMessage(info.getErrorMsg());
// }
if (status == ColdChainConstants.ORDER_CONFIRMED) {
//模擬獲取到PDF,進行打印
mRootView.updateOrderState(status);
......@@ -260,16 +261,16 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo
} else {
mRootView.killMyself();
}
}
}
// }
// }
@Override
public void onError(Throwable t) {
super.onError(t);
mRootView.showMessage(t.getMessage() + "");
mRootView.killMyself();
}
});
// @Override
// public void onError(Throwable t) {
// super.onError(t);
// mRootView.showMessage(t.getMessage() + "");
// mRootView.killMyself();
// }
// });
}
public void addPrj(OrderDetails.DataBean dataBean) {
......@@ -514,13 +515,35 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo
.setActionName("printActivity")
.build()
.callAsyncCallbackOnMainThread((cc, result) -> {
// if (result.isSuccess()) {
//打印成功
// }
Log.e("eee", "打印結果" + result.isSuccess());
updatePrintOrderStatus(dataBean.getID(), result.isSuccess() ? ColdChainMainPresenter.PRINT_COLD_CHAIN_ORDER_SUCCESS : ColdChainMainPresenter.PRINT_COLD_CHAIN_ORDER_FAIL);
TakeawayOrder.getInstance().getShoppingCart().setDeliveryAndPickupData(null);
});
}
}
/**
* 獲取未打印的訂單列表
*
* @param orderId
* @param printState 打印上菜紙狀態:0 未打印,1 打印成功,2 打印失敗
*/
public void updatePrintOrderStatus(int orderId, int printState) {
RequestBody requestBody = new FormBody.Builder()
.add("orderId", orderId + "")
.add("printStatus", printState + "")
.build();
mModel.updatePrintOrderStatus(requestBody)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult info) {
}
});
}
}
......@@ -40,6 +40,7 @@ import com.gingersoft.gsa.cloud.common.constans.DeliveryPickConstans;
import com.gingersoft.gsa.cloud.common.constans.ExpandConstant;
import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager;
import com.gingersoft.gsa.cloud.common.core.restaurant.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.service.DataNotificationService;
import com.gingersoft.gsa.cloud.common.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
......@@ -93,8 +94,6 @@ public class ColdChainMainActivity extends BaseFragmentActivity<ColdChainMainPre
@BindView(R2.id.cb_auto_receiving_orders)
CheckBox autoReceivingOrders;
private final int autoReceivingOrderInterval = 15;
public void setOrderNum(OrderList.DataBeanX.DataBean bean) {
mTakeAwayPb.setMax(bean.getMaxOrder() == 0 ? 1 : bean.getMaxOrder());
mTakeAwayPb.setProgress(bean.getNum());
......@@ -223,7 +222,7 @@ public class ColdChainMainActivity extends BaseFragmentActivity<ColdChainMainPre
private DataNotificationService.MyBind bind = null;
private long lastClickTime = 0;
private long lastMsgTime = 0;
private ServiceConnection serviceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
......@@ -231,24 +230,31 @@ public class ColdChainMainActivity extends BaseFragmentActivity<ColdChainMainPre
if (bind != null) {
bind.setOnPostCallBack(type -> {
// -1斷開連接,\n-2:消息傳輸錯誤,\n0:連接消息,\n1:登錄通知,\n2:登出通知,\n3:外賣送單通知,\n4:自取送單通知,\n5:歷史訂單通知,\n6:修改訂單狀態通知,\n7:支付成功通知"
if (type == 3 || type == 5
|| type == 6 || type == 7) {
long nowTime = System.currentTimeMillis();
if (nowTime - lastClickTime < 5000) {
if (nowTime - lastMsgTime < 5000) {
//兩次推送時間需要間隔五秒以上
return;
}
lastClickTime = nowTime;
LoganManager.w_action("eee", "心跳通知" + type);
lastMsgTime = nowTime;
LoganManager.w_action("eee", "自動上菜紙:" + RestaurantExpandInfoUtils.getValue(ExpandConstant.AutoPrinterPaper, true));
if (RestaurantExpandInfoUtils.getValue(ExpandConstant.AutoPrinterPaper, true)) {
mPresenter.getNotPrintedOrderList();
}
//判斷要不要自動接單
if (autoReceivingOrders.isChecked()) {
mPresenter.startToBeConfirmedOrderList();
}
if (type == 3 || type == 5
|| type == 6 || type == 7) {
fragments.get(viewPager.getCurrentItem()).onRefreshData();
mPresenter.getBalance();
if (type != 5) {
getNumByOrderTypeInvoke("loadNumber");
}
//判斷要不要自動接單
if (autoReceivingOrders.isChecked()) {
mPresenter.startToBeConfirmedOrderList(restaurantId);
}
}
});
bind.execute(aBoolean -> null);
bind.setJumpActivity(ColdChainMainActivity.class);
}
......
......@@ -9,6 +9,7 @@ import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
......@@ -20,6 +21,7 @@ import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.billy.cc.core.component.CC;
import com.gingersoft.coldchain_module.R;
import com.gingersoft.coldchain_module.R2;
import com.gingersoft.coldchain_module.di.component.DaggerOrderDetailsComponent;
......@@ -38,6 +40,7 @@ import com.gingersoft.gsa.cloud.common.utils.ClipboardUtils;
import com.gingersoft.gsa.cloud.common.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.component.ComponentName;
import com.gingersoft.gsa.cloud.database.bean.Function;
import com.gingersoft.gsa.cloud.ui.utils.AppDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
......@@ -117,6 +120,8 @@ public class OrderDetailsActivity extends BaseActivity<OrderDetailsPresenter> im
TextView mTvPayAmount;
@BindView(R2.id.tv_pay_method)
TextView mTvPayMethod;
@BindView(R2.id.iv_cold_chain_query_prj)
ImageView ivQueryPrj;
private int orderId;
private int isRead = -1;
......@@ -229,6 +234,14 @@ public class OrderDetailsActivity extends BaseActivity<OrderDetailsPresenter> im
topBar.addRightImageButton(R.drawable.ic_white_print, R.id.id_topbar_print).setOnClickListener(v ->
mPresenter.printColdChainOrder(true)
);
ivQueryPrj.setOnClickListener(v -> {
//查詢prj
CC.obtainBuilder(ComponentName.COMPONENT_DELIVERYPICK)
.setActionName("PrjQueryActivity")
.addParam("orderId", bean.getORDER_NO())
.build()
.call();
});
labUrl = bean.getLabUrl();
mTvOrderFrom.setText(getResources().getString(bean.getOrder_from() == 7 ? R.string.h5_order : R.string.ricepon_order));
if (bean.getOrderStatus() == 2) {
......
......@@ -48,6 +48,8 @@ public class OrderListAdapter extends BaseQuickAdapter<OrderList.DataBeanX.DataB
} else {
baseViewHolder.setText(R.id.tv_order_user_name, dataBean.getRECEIVER() + "(" + dataBean.getPHONE() + ")");
}
baseViewHolder.setText(R.id.tv_order_print_state, dataBean.getPrintStrByStatus());
baseViewHolder.setTextColor(R.id.tv_order_print_state, ContextCompat.getColor(getContext(), dataBean.getColorByStatus()));
baseViewHolder.setText(R.id.tv_address, "地址:" + dataBean.getADDRESS_DETAIL());
baseViewHolder.setText(R.id.tv_delivery_state, getStatus(dataBean.getCurStat()));
baseViewHolder.setText(R.id.tv_order_amount, "$" + dataBean.getPAY_AMOUNT());
......
......@@ -82,17 +82,35 @@
android:layout_marginTop="@dimen/dp_10"
tools:text="訂單號:" />
<!-- 訂單編號-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_10"
android:orientation="horizontal">
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/tv_order_no"
style="@style/otherOrder_details_twelve_text_Style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:drawablePadding="@dimen/dp_5"
android:drawableRight="@drawable/ic_black_copy"
android:drawablePadding="@dimen/dp_5"
tools:text="訂單編號:" />
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<ImageView
android:id="@+id/iv_cold_chain_query_prj"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_prj_query" />
</LinearLayout>
<TextView
android:id="@+id/tv_create_time"
style="@style/otherOrder_details_twelve_text_Style"
......
......@@ -114,23 +114,33 @@
tools:text="2019-07-06 15:30:00"
tools:textColor="@color/theme_333_color" />
<TextView
android:id="@+id/tv_logistics_order_print_state"
style="@style/order_item_info_title_textStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_9"
android:layout_marginTop="@dimen/dp_2"
android:gravity="right"
android:text="物流單已打印"
android:textColor="@color/color_3c" />
android:textColor="@color/color_3c"
tools:text="物流單已打印" />
<TextView
android:id="@+id/tv_order_print_state"
style="@style/order_item_info_title_textStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_2"
android:gravity="right"
android:textColor="@color/color_3c"
android:textStyle="bold"
tools:text="訂單已打印" />
<TextView
android:id="@+id/tv_delivery_state"
style="@style/order_item_info_title_textStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_9"
android:layout_marginTop="@dimen/dp_2"
android:gravity="right"
android:textColor="@color/color_3c"
tools:text="已通知物流"
......@@ -156,7 +166,7 @@
android:id="@+id/tv_order_amount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_7"
android:layout_marginTop="@dimen/dp_3"
android:gravity="center_horizontal"
android:maxWidth="@dimen/dp_100"
android:textColor="@color/red_600"
......
......@@ -716,7 +716,11 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
for (i in it) {
val price = ThirdItem.ThirdItemItem.UntPrice(`val` = i.PRICE!!.toDouble())
val thirdItem = if (i.PRODUCT_NAME != null) {
if (i.num != null) {
ThirdItem.ThirdItemItem(name = i.PRODUCT_NAME!!, qty = i.num!!.toInt(), unt_price = price)
} else {
ThirdItem.ThirdItemItem(name = i.PRODUCT_NAME!!, qty = 1, unt_price = price)
}
} else {
ThirdItem.ThirdItemItem(name = "", qty = 1, unt_price = price)
}
......
......@@ -17,14 +17,15 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.billy.cc.core.component.CC;
import com.billy.cc.core.component.CCUtil;
import com.gingersoft.gsa.cloud.common.constans.AppConstans;
import com.gingersoft.gsa.cloud.common.constans.PrintConstans;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.print.bean.PrjBean;
import com.gingersoft.gsa.cloud.print.bean.UpdateBean;
import com.gingersoft.gsa.cloud.common.utils.okhttpUtils.OkHttp3Utils;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.component.ComponentName;
import com.gingersoft.gsa.cloud.print.bean.PrjBean;
import com.gingersoft.gsa.cloud.print.bean.UpdateBean;
import com.gingersoft.gsa.cloud.ui.recylcler.decorator.DividerItemDecoration;
import com.gingersoft.gsa.cloud.ui.utils.AppDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
......@@ -102,6 +103,9 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements
@Override
public void initData(@Nullable Bundle savedInstanceState) {
String orderId = getIntent().getStringExtra(ORDERID_EXTRA_NAME);
if (TextUtil.isEmptyOrNullOrUndefined(orderId)) {
orderId = CCUtil.getNavigateParam(this, ORDERID_EXTRA_NAME, null);
}
if (TextUtil.isNotEmptyOrNullOrUndefined(orderId)) {
// layoutPrjOrderNumber.setVisibility(View.VISIBLE);
// tvPrjRecordOrderId.setText(orderId);
......
......@@ -218,24 +218,24 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
}
private void initService() {
boolean deliveryOrderServiceRunning = StytemUtils.isServiceRunning("com.gingersoft.gsa.cloud.common.service.DataNotificationService", this);
if (!deliveryOrderServiceRunning) {
Intent service = new Intent(GsaCloudApplication.getAppContext(), DataNotificationService.class);
service.putExtra(DataNotificationService.CONNECTION_TYPE, DataNotificationService.mCurrConnectionType);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
startForegroundService(service);
} else {
startService(service);
}
}
// boolean prjServiceRunning = StytemUtils.isServiceRunning("com.joe.print.mvp.print.service.PrjService", this);
// if (!prjServiceRunning) {
// //開啟Prj打印服務
// CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
// .setActionName("openPrintService")
// .build()
// .call();
// boolean deliveryOrderServiceRunning = StytemUtils.isServiceRunning("com.gingersoft.gsa.cloud.common.service.DataNotificationService", this);
// if (!deliveryOrderServiceRunning) {
// Intent service = new Intent(GsaCloudApplication.getAppContext(), DataNotificationService.class);
// service.putExtra(DataNotificationService.CONNECTION_TYPE, DataNotificationService.mCurrConnectionType);
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// startForegroundService(service);
// } else {
// startService(service);
// }
// }
boolean prjServiceRunning = StytemUtils.isServiceRunning("com.joe.print.mvp.print.service.PrjService", this);
if (!prjServiceRunning) {
//開啟Prj打印服務
CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.setActionName("openPrintService")
.build()
.call();
}
}
......
......@@ -8,7 +8,7 @@
<application>
<activity
android:name=".mvp.ui.activity.PrintActivity"
android:launchMode="singleTop"
android:launchMode="singleInstance"
android:theme="@style/print_TranslucentTheme" />
<activity
......
......@@ -20,7 +20,7 @@ public class PrintComponent implements IComponent {
public String getName() {
//组件的名称,调用此组件的方式:
// CC.obtainBuilder("ComponentA")...build().callAsync()
return ComponentName.COMPONENT_PRINT ;
return ComponentName.COMPONENT_PRINT;
}
/**
......@@ -117,7 +117,7 @@ public class PrintComponent implements IComponent {
// //将cc的callId传给Activity,登录完成后通过这个callId来回传结果
// intent.putExtra("callId", cc.getCallId());
// context.startActivity(intent);
CCUtil.navigateTo(cc,PrintActivity.class);
CCUtil.navigateTo(cc, PrintActivity.class);
//返回true,不立即调用CC.sendCCResult
return true;
}
......
......@@ -323,6 +323,13 @@ public class PrintPrjKitchen extends PrinterRoot {
tvTakeCode.setText(prjBean.getTakeFoodCode());
}
break;
case OrderTypeConstans.order_type_8:
layoutOpenTableTime.setVisibility(View.GONE);
tvTableNumber.setText("凍鏈");
tvTableNumber2.setText("凍鏈");
tvOrderNumberText.setText("訂單碼:");
tvOrderNumber.setText(prjBean.getTakeFoodCode());
break;
default:
layoutOpenTableTime.setVisibility(View.GONE);
tvTableNumber.setText("外賣");
......
......@@ -178,6 +178,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintExecut
*/
public Map<String, List<Bitmap>> getPrintBitmapByCount(Context mContext, PrinterDeviceBean deviceBean) {
int printCount = getPrintCount(mContext);
LogUtil.e("eee", "打印次數" + printCount);
if (printCount <= 0) {
return null;
}
......@@ -389,7 +390,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintExecut
// break;
// }
LogUtil.e("eee", "打印狀態:" + state);
if(state == PrintSocketHolder.STATE_4){
if (state == PrintSocketHolder.STATE_4) {
printSuccess();
}
})
......@@ -660,6 +661,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintExecut
tvTakeFoodCode.setText("訂單碼:" + data.getTakeFoodCode());
}
if (data.getTakeFoodCode() == null || data.getTakeFoodCode().equals("0")) {
LogUtil.e("eee", "訂單碼:" + data.getTakeFoodCode());
tvTakeFoodCode.setVisibility(View.GONE);
}
......
......@@ -949,7 +949,6 @@ public class PrjService extends Service implements ReceiveListener {
*
* @param j
* @param beans
* @param cutPrjData
* @param notCutData
* @param key
* @param printerDeviceBean
......
......@@ -120,7 +120,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override
public void initData(@Nullable Bundle savedInstanceState) {
actionPrinter();
PrinterPlugins.setOnPrinterFlowHandler(new PrinterFlowListener() {
@Override
public void connectionBefore(String deviceName, String IP, int port, long ioTimeout, long printTimeout) {
......@@ -170,7 +169,11 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
printerResult = true;
printerLoadingDialog.setStep(PrinterLoadingDialog.PROGRESS_PRINTING, PrinterLoadingDialog.STATUS_ERROR, e.getMessage());
//延遲兩秒關閉
RxJavaUtils.delay(2, aLong -> killMyself());
RxJavaUtils.delay(2, aLong -> {
LogUtil.e("eee", "打印失敗");
CC.sendCCResult(callId, CCResult.error("print error"));
killMyself();
});
}
});
}
......@@ -205,6 +208,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
}
private void showPrintLoadingDialog() {
boolean isShowLoading = CCUtil.getNavigateParam(this, PrintConstans.PRINT_SHOW_LOADING, true);
if (printerLoadingDialog != null) {
printerLoadingDialog = printerLoadingDialog.build();
} else {
......@@ -218,8 +222,10 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
CC.sendCCResult(callId, CCResult.error("print error"));
}
});
if (isShowLoading) {
printerLoadingDialog.show();
}
}
/**
* 如果沒有默認打印機,彈窗彈出讓用戶選擇打印機
......
......@@ -147,6 +147,7 @@ public class ShoppingCartAdapter extends BaseQuickAdapter<ShoppingCartBean, Shop
purchaseFoodBean.setFoodQuantity(1);
}
foodListAdapter.notifyItemChanged(position);
dialog.dismiss();
});
} else {
//當數量發生改變時,重新計算價格。
......
package com.gingersoft.supply_chain.mvp.ui.fragment.food;
import android.graphics.Color;
import android.os.Bundle;
import android.text.InputFilter;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.EditText;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
......@@ -15,11 +16,8 @@ import androidx.fragment.app.FragmentActivity;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.listener.OnItemChildClickListener;
import com.gingersoft.gsa.cloud.common.utils.inputFilter.InputFilterUtils;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.ui.utils.AppDialog;
import com.gingersoft.supply_chain.R;
import com.gingersoft.supply_chain.R2;
import com.gingersoft.supply_chain.di.component.DaggerFoodUnitPageComponent;
......@@ -30,22 +28,16 @@ import com.gingersoft.supply_chain.mvp.presenter.FoodUnitPagePresenter;
import com.gingersoft.supply_chain.mvp.ui.adapter.BasicUnitAdapter;
import com.gingersoft.supply_chain.mvp.ui.adapter.DeputyUnitAdapter;
import com.gingersoft.supply_chain.mvp.ui.fragment.BaseSupplyChainFragment;
import com.gingersoft.supply_chain.mvp.ui.fragment.order.OrderDetailsFragment;
import com.gingersoft.supply_chain.mvp.ui.widget.EditTextPopup;
import com.gingersoft.supply_chain.mvp.utils.NotDispatchListener;
import com.jess.arms.di.component.AppComponent;
import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.impl.ConfirmPopupView;
import com.lxj.xpopup.interfaces.OnCancelListener;
import com.lxj.xpopup.interfaces.OnConfirmListener;
import com.lxj.xpopup.interfaces.OnInputConfirmListener;
import com.qmuiteam.qmui.alpha.QMUIAlphaTextView;
import com.qmuiteam.qmui.widget.QMUITopBar;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogView;
import com.qmuiteam.qmui.widget.popup.QMUIBasePopup;
import java.io.Serializable;
import java.util.Iterator;
import java.util.List;
import butterknife.BindView;
......@@ -171,6 +163,10 @@ public class FoodUnitPageFragment extends BaseSupplyChainFragment<FoodUnitPagePr
mPresenter.addBasicUnit(text, basicUnitAdapter.getData());
}
}, null);
new XPopup.Builder(requireContext())
.isDestroyOnDismiss(true)
.asCustom(popup)
.show();
} else {
//先獲取當前焦點在哪個輸入框上,然後再填充內容
FragmentActivity activity = getActivity();
......
......@@ -306,7 +306,7 @@ public class OrderDetailsFragment extends BaseSupplyChainFragment<OrderDetailsPr
if (TextUtil.isNotEmptyOrNullOrUndefined(pic)) {
new XPopup.Builder(requireContext())
.isDestroyOnDismiss(true)
.asImageViewer((ImageView) view, pic, true, Color.parseColor("#f1f1f1"), -1, 0, false, new ImageLoader())
.asImageViewer((ImageView) view, pic, true, Color.parseColor("#f1f1f1"), -1, -1, false, -1, new ImageLoader())
.show();
}
}
......
......@@ -20,12 +20,6 @@ public class EditTextPopup extends InputConfirmPopupView {
/**
* @param context
*/
public EditTextPopup(@NonNull Context context) {
super(context, R.layout.dialog_edit);
}
/**
* @param context
*/
public EditTextPopup(@NonNull Context context, InputFilter[] inputFilters) {
super(context, R.layout.dialog_edit);
this.inputFilters = inputFilters;
......@@ -34,6 +28,7 @@ public class EditTextPopup extends InputConfirmPopupView {
@Override
protected void onCreate() {
super.onCreate();
getEditText().setFilters(inputFilters);
}
}
......@@ -129,7 +129,6 @@
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_7"
android:layout_marginRight="@dimen/dp_7"
android:background="@color/white"
android:paddingBottom="@dimen/dp_8" />
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
......
......@@ -19,6 +19,7 @@
android:layout_width="match_parent"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_10"
android:background="@color/supply_chain_bg_color"
android:layout_height="match_parent"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
......
......@@ -3,6 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:background="@color/white"
android:layout_height="wrap_content">
<androidx.cardview.widget.CardView
......@@ -10,7 +11,6 @@
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_3"
android:layout_marginRight="@dimen/dp_3"
android:background="@color/white"
app:cardCornerRadius="@dimen/dp_4"
app:cardUseCompatPadding="true"
app:elevation="@dimen/dp_4">
......
......@@ -9,6 +9,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:textColor="@color/color_3c"
android:layout_marginTop="@dimen/dp_10"
android:text="正常消耗" />
......
......@@ -148,7 +148,7 @@ ext {
//滴滴開源 哆啦A夢:辅助开发工具、测试效率工具、视觉辅助工具
"doraemonkit" : 'com.didichuxing.doraemonkit:dokitx:3.3.3',
//popup
'xpopup' : 'com.lxj:xpopup:2.2.10'
'xpopup' : 'com.lxj:xpopup:2.2.22'
]
}
......@@ -47,4 +47,8 @@ public class LoganConfig {
*/
public static final byte native_LEVLE = 6;
/**
* 心跳通知日誌
*/
public static final byte heart_LEVLE = 7;
}
......@@ -22,4 +22,10 @@ public interface OrderTypeConstans {
* 自取
*/
int order_type_7 = 7;
/**
* 凍鏈
*/
int order_type_8 = 8;
}
......@@ -23,6 +23,8 @@ public class PrintConstans {
public static final String PRINT_TYPE = "print_type";//打印類型
public static final String PRINT_CONTENT = "print_content";//打印內容
public static final String PRINT_ORDER_NO = "print_order_no";//打印ID(唯一标识即可)
public static final String PRINT_SHOW_LOADING = "print_show_loading";//是否顯示打印進度彈窗
public final static int PRINT_TEST = -1;//測試頁
public final static int PRINT_SERVE = 0;//上菜紙
......
......@@ -60,7 +60,9 @@ public class LoganManager {
Logan.w(log, LoganConfig.native_LEVLE);
}
public static void w_heart(String log) {
Logan.w(log, LoganConfig.heart_LEVLE);
}
/*******************************自定義業務日誌類型**************************************/
private static final String LOGIN_BUSINESS_TAG = "login-> ";
private static final String HOME_BUSINESS_TAG = "home-> ";
......
......@@ -376,7 +376,8 @@ class DataNotificationService : Service() {
}
fun send(currConnectionType: Int) {
val token = "weixin_" + RestaurantInfoManager.newInstance().restaurantId + "_" + UserContext.newInstance().memberId + "_" + getRandomString(24)
// val token = "weixin_" + RestaurantInfoManager.newInstance().restaurantId + "_" + UserContext.newInstance().memberId + "_" + getRandomString(24)
val token = "weixin_" + RestaurantInfoManager.newInstance().restaurantId + "_" + getRandomString(24)
LoganManager.w_code(TAG, "token=" + token);
if (mWebSocket != null) {
mWebSocket?.send(Gson().toJson(MsgBean(1, getConnectiontype(), token)))
......
......@@ -2,6 +2,8 @@ package com.gingersoft.gsa.cloud.common.utils.inputFilter;
import android.content.Context;
import android.text.InputFilter;
import android.text.Spanned;
import android.text.TextUtils;
import android.util.Log;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
......@@ -10,6 +12,8 @@ import com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import me.jessyan.autosize.utils.LogUtils;
/**
* @author 宇航.
* User: admin
......@@ -129,31 +133,72 @@ public class InputFilterUtils {
*/
private static InputFilter getMaxLengthFilter(Context context, String tipString, int maxLength) {
return (source, start, end, dest, dstart, dend) -> {
int destLength = TextUtil.getStringLength(dest.toString());
int sourceLength = TextUtil.getStringLength(source.toString());
// int keep = maxLength - (dest.length() - (dend - dstart));
int keep = maxLength - destLength;
if (keep <= 0) {
if (TextUtil.isNotEmptyOrNullOrUndefined(source.toString()) && TextUtil.isNotEmptyOrNullOrUndefined(tipString)) {
ToastUtils.show(context, tipString);
if (TextUtils.isEmpty(source)) {
return null;
}
LogUtils.e("source:" + source);
LogUtils.e("dest:" + dest);
int inputCount = 0;
int destCount = 0;
inputCount = getCurLength(source);
LogUtils.e("inputCount:" + inputCount);
if (dest.length() != 0) {
destCount = getCurLength(dest);
}
LogUtils.e("destCount:" + destCount);
if (destCount >= maxLength) {
return "";
} else if (keep >= sourceLength) {
return null; // keep original
} else {
keep += start;
if (Character.isHighSurrogate(source.charAt(keep - 1))) {
--keep;
if (keep == start) {
if (TextUtil.isNotEmptyOrNullOrUndefined(tipString)) {
ToastUtils.show(context, tipString);
int count = inputCount + destCount;
if (dest.length() == 0) {
if (count <= maxLength) {
return null;
} else {
return sub(source, maxLength);
}
return "";
}
LogUtils.e("count:" + count);
if (count > maxLength) {
//int min = count - maxLength;
int maxSubLength = maxLength - destCount;
return sub(source, maxSubLength);
}
return source.subSequence(start, keep);
}
return null;
};
}
private static CharSequence sub(CharSequence sq, int subLength) {
int needLength = 0;
int length = 0;
for (int i = 0; i < sq.length(); i++) {
if (sq.charAt(i) < 128) {
length += 1;
} else {
length += 2;
}
++needLength;
if (subLength <= length) {
return sq.subSequence(0, needLength);
}
}
return sq;
}
private static int getCurLength(CharSequence s) {
int length = 0;
if (s == null) {
return length;
} else {
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) < 128) {
length += 1;
} else {
length += 2;
}
}
}
return length;
}
}
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 to comment