Commit e65ccb3b by Wyh

1、優化prj廚房單打印邏輯 2、餐牌的食品列表

Signed-off-by: Wyh <1239658231>
parent 84531caa
......@@ -130,6 +130,7 @@ dependencies {
api 'androidx.core:core-ktx:+'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
api 'com.github.huangyanbin:SmartTable:2.2.0'
api rootProject.ext.dependencies['logan']
}
repositories {
......
......@@ -3,7 +3,10 @@ package com.gingersoft.gsa.cloud.base.utils.time;
import android.content.Context;
import android.graphics.Color;
import androidx.core.content.ContextCompat;
import com.bigkoo.pickerview.listener.OnTimeSelectListener;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.ui.view.timeselect.TimePickerView;
import com.gingersoft.gsa.cloud.ui.view.timeselect.builder.TimePickerBuilder;
......@@ -17,6 +20,7 @@ public class TimePickerUtils {
/**
* 顯示報表頁面時間選擇樣式
*
* @param mContext
* @param defaultTime 默認選中時間
* @param onTimeSelectListener 選中時間回調
......@@ -94,9 +98,33 @@ public class TimePickerUtils {
return pvTime;
}
public static TimePickerView showDatePicker(Context mContext, OnTimeSelectListener onTimeSelectListener) {
//獲取今年第一天的日期
//打開時間選擇器
TimePickerView pvTime = new TimePickerBuilder(mContext, onTimeSelectListener)
.setType(new boolean[]{true, true, true, false, false, false})//默认全部显示
.setCancelText("取消")//取消按钮文字
.setSubmitText("確認")//确认按钮文字
.setContentTextSize(20)//滚轮文字大小
.setTitleSize(20)//标题文字大小
.setOutSideCancelable(true)//点击屏幕,点在控件外部范围时,是否取消显示
.isCyclic(false)//是否循环滚动
.setTextColorCenter(Color.BLACK)//设置选中项的颜色
.setTitleColor(Color.BLACK)//标题文字颜色
.setSubmitColor(Color.BLUE)//确定按钮文字颜色
.setCancelColor(Color.BLUE)//取消按钮文字颜色
.setLabel("", "", "", "", "", "")
.isCenterLabel(false) //是否只显示中间选中项的label文字,false则每项item全部都带有label。
.build();
//設置默認選中時間
pvTime.setDate(Calendar.getInstance());//注:根据需求来决定是否使用该方法(一般是精确到秒的情况),此项可以在弹出选择器的时候重新设置当前时间,避免在初始化之后由于时间已经设定,导致选中时间与当前时间不匹配的问题。
pvTime.show();
return pvTime;
}
/**
* 顯示報表頁面時間選擇樣式
*
* @param mContext
* @param defaultTime 默認選中時間
* @param onTimeSelectListener 選中時間回調
......@@ -128,4 +156,24 @@ public class TimePickerUtils {
return pvTime;
}
private static TimePickerBuilder timePickerBuilder;
public static TimePickerBuilder init(Context context, OnTimeSelectListener onTimeSelectListener) {
timePickerBuilder = new TimePickerBuilder(context, onTimeSelectListener)
.setCancelText("取消")
.setSubmitText("確認")
.setContentTextSize(20)
.setTitleSize(20)
.setOutSideCancelable(true)
.isCyclic(false)
.setTextColorCenter(Color.BLACK)
.setTitleColor(Color.BLACK)
.setSubmitColor(ContextCompat.getColor(context, R.color.theme_color))
.setCancelColor(ContextCompat.getColor(context, R.color.theme_color))
.setLabel("", "", "", "", "", "")
.isCenterLabel(false)
.setDate(Calendar.getInstance());
return timePickerBuilder;
}
}
......@@ -90,6 +90,7 @@ public class TimeUtils {
public static final SimpleDateFormat DATE_FORMAT_DATE_HM = new SimpleDateFormat("HH:mm");
public static final SimpleDateFormat DATE_FORMAT_DATE_H = new SimpleDateFormat("HH");
public static final SimpleDateFormat DATE_FORMAT_HMS= new SimpleDateFormat("HH:mm:ss");
public static final SimpleDateFormat DEFAULT_DATE_MDHM = new SimpleDateFormat("MM-dd HH:mm");//, Locale.CHINESE
public static final SimpleDateFormat DEFAULT_DATE_MD = new SimpleDateFormat("MM-dd");
......
//package com.gingersoft.gsa.cloud.ui.recylcler.decorator;
//
//import android.content.Context;
//import android.graphics.Canvas;
//import android.graphics.Paint;
//import android.support.v7.widget.GridLayoutManager;
//import android.support.v7.widget.LinearLayoutManager;
//import android.support.v7.widget.RecyclerView;
//import android.text.TextUtils;
//import android.util.Log;
//import android.util.TypedValue;
//import android.view.LayoutInflater;
//import android.view.View;
//import android.view.ViewGroup;
//import android.widget.TextView;
//
//import java.util.List;
//
//
//public class ItemHeaderDecoration extends RecyclerView.ItemDecoration {
// private int mTitleHeight;
//// private List<RightBean> mDatas;
// private LayoutInflater mInflater;
// private CheckListener mCheckListener;
// public static String currentTag = "0";//标记当前左侧选中的position,因为有可能选中的item,右侧不能置顶,所以强制替换掉当前的tag
//
// void setCheckListener(CheckListener checkListener) {
// mCheckListener = checkListener;
// }
//
// ItemHeaderDecoration(Context context, List<RightBean> datas) {
//// this.mDatas = datas;
// Paint paint = new Paint();
// mTitleHeight = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 30, context.getResources().getDisplayMetrics());
// int titleFontSize = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 16, context.getResources().getDisplayMetrics());
// paint.setTextSize(titleFontSize);
// paint.setAntiAlias(true);
// mInflater = LayoutInflater.from(context);
// }
//
//
// public ItemHeaderDecoration setData(List<RightBean> mDatas) {
// this.mDatas = mDatas;
// return this;
// }
//
// public static void setCurrentTag(String currentTag) {
// ItemHeaderDecoration.currentTag = currentTag;
// }
//
//
// @Override
// public void onDrawOver(Canvas canvas, final RecyclerView parent, RecyclerView.State state) {
// GridLayoutManager manager = (GridLayoutManager) parent.getLayoutManager();
// GridLayoutManager.SpanSizeLookup spanSizeLookup = manager.getSpanSizeLookup();
// int pos = ((LinearLayoutManager) (parent.getLayoutManager())).findFirstVisibleItemPosition();
// int spanSize = spanSizeLookup.getSpanSize(pos);
// Log.d("pos--->", String.valueOf(pos));
// String tag = mDatas.get(pos).getTag();
// View child = parent.findViewHolderForLayoutPosition(pos).itemView;
// boolean isTranslate = false;//canvas是否平移的标志
// if (!TextUtils.equals(mDatas.get(pos).getTag(), mDatas.get(pos + 1).getTag())
// || !TextUtils.equals(mDatas.get(pos).getTag(), mDatas.get(pos + 2).getTag())
// || !TextUtils.equals(mDatas.get(pos).getTag(), mDatas.get(pos + 3).getTag())
// ) {
// tag = mDatas.get(pos).getTag();
// int i = child.getHeight() + child.getTop();
// Log.d("i---->", String.valueOf(i));
// if (spanSize == 1) {
// //body 才平移
// if (child.getHeight() + child.getTop() < mTitleHeight) {
// canvas.save();
// isTranslate = true;
// int height = child.getHeight() + child.getTop() - mTitleHeight;
// canvas.translate(0, height);
// }
// }
//
//
// }
// drawHeader(parent, pos, canvas);
// if (isTranslate) {
// canvas.restore();
// }
// Log.d("tag--->", tag + "VS" + currentTag);
// if (!TextUtils.equals(tag, currentTag)) {
// currentTag = tag;
// Integer integer = Integer.valueOf(tag);
// mCheckListener.check(integer, false);
// }
// }
//
// /**
// * @param parent
// * @param pos
// */
// private void drawHeader(RecyclerView parent, int pos, Canvas canvas) {
// View topTitleView = mInflater.inflate(R.layout.item_title, parent, false);
// TextView tvTitle = (TextView) topTitleView.findViewById(R.id.tv_title);
// tvTitle.setText(mDatas.get(pos).getTitleName());
// //绘制title开始
// int toDrawWidthSpec;//用于测量的widthMeasureSpec
// int toDrawHeightSpec;//用于测量的heightMeasureSpec
// RecyclerView.LayoutParams lp = (RecyclerView.LayoutParams) topTitleView.getLayoutParams();
// if (lp == null) {
// lp = new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);//这里是根据复杂布局layout的width height,new一个Lp
// topTitleView.setLayoutParams(lp);
// }
// topTitleView.setLayoutParams(lp);
// if (lp.width == ViewGroup.LayoutParams.MATCH_PARENT) {
// //如果是MATCH_PARENT,则用父控件能分配的最大宽度和EXACTLY构建MeasureSpec
// toDrawWidthSpec = View.MeasureSpec.makeMeasureSpec(parent.getWidth() - parent.getPaddingLeft() - parent.getPaddingRight(), View.MeasureSpec.EXACTLY);
// } else if (lp.width == ViewGroup.LayoutParams.WRAP_CONTENT) {
// //如果是WRAP_CONTENT,则用父控件能分配的最大宽度和AT_MOST构建MeasureSpec
// toDrawWidthSpec = View.MeasureSpec.makeMeasureSpec(parent.getWidth() - parent.getPaddingLeft() - parent.getPaddingRight(), View.MeasureSpec.AT_MOST);
// } else {
// //否则则是具体的宽度数值,则用这个宽度和EXACTLY构建MeasureSpec
// toDrawWidthSpec = View.MeasureSpec.makeMeasureSpec(lp.width, View.MeasureSpec.EXACTLY);
// }
// //高度同理
// if (lp.height == ViewGroup.LayoutParams.MATCH_PARENT) {
// toDrawHeightSpec = View.MeasureSpec.makeMeasureSpec(parent.getHeight() - parent.getPaddingTop() - parent.getPaddingBottom(), View.MeasureSpec.EXACTLY);
// } else if (lp.height == ViewGroup.LayoutParams.WRAP_CONTENT) {
// toDrawHeightSpec = View.MeasureSpec.makeMeasureSpec(parent.getHeight() - parent.getPaddingTop() - parent.getPaddingBottom(), View.MeasureSpec.AT_MOST);
// } else {
// toDrawHeightSpec = View.MeasureSpec.makeMeasureSpec(mTitleHeight, View.MeasureSpec.EXACTLY);
// }
// //依次调用 measure,layout,draw方法,将复杂头部显示在屏幕上
// topTitleView.measure(toDrawWidthSpec, toDrawHeightSpec);
// topTitleView.layout(parent.getPaddingLeft(), parent.getPaddingTop(), parent.getPaddingLeft() + topTitleView.getMeasuredWidth(), parent.getPaddingTop() + topTitleView.getMeasuredHeight());
// topTitleView.draw(canvas);//Canvas默认在视图顶部,无需平移,直接绘制
// //绘制title结束
//
// }
//}
package com.gingersoft.gsa.cloud.ui.recylcler.decorator;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.view.View;
import androidx.recyclerview.widget.RecyclerView;
/**
* PinnedHeader对应的ItemDecoration
*/
public class PinnedHeaderItemDecoration extends RecyclerView.ItemDecoration {
private Rect mPinnedHeaderRect = null;
private int mPinnedHeaderPosition = -1;
private int headType;
private onSelectListener onSelectListener;
public PinnedHeaderItemDecoration(int headType) {
this.headType = headType;
}
public interface onSelectListener{
void onSelect(int position);
}
public void setOnSelectListener(PinnedHeaderItemDecoration.onSelectListener onSelectListenter) {
this.onSelectListener = onSelectListenter;
}
/**
* 把要固定的View绘制在上层
*/
@Override
public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {
super.onDrawOver(c, parent, state);
//确保是PinnedHeaderAdapter的adapter,确保有View
if (parent.getChildCount() > 0) {
RecyclerView.Adapter adapter = parent.getAdapter();
//找到要固定的pin view
View firstView = parent.getChildAt(0);
int firstAdapterPosition = parent.getChildAdapterPosition(firstView);
int pinnedHeaderPosition = getPinnedHeaderViewPosition(firstAdapterPosition, adapter);
mPinnedHeaderPosition = pinnedHeaderPosition;
if (pinnedHeaderPosition != -1) {
RecyclerView.ViewHolder pinnedHeaderViewHolder = adapter.onCreateViewHolder(parent, headType);
adapter.onBindViewHolder(pinnedHeaderViewHolder, pinnedHeaderPosition);
//要固定的view
View pinnedHeaderView = pinnedHeaderViewHolder.itemView;
ensurePinnedHeaderViewLayout(pinnedHeaderView, parent);
int sectionPinOffset = 0;
for (int index = 0; index < parent.getChildCount(); index++) {
if (adapter.getItemViewType(parent.getChildAdapterPosition(parent.getChildAt(index))) == headType) {
View sectionView = parent.getChildAt(index);
int sectionTop = sectionView.getTop();
int pinViewHeight = pinnedHeaderView.getHeight();
if (sectionTop < pinViewHeight && sectionTop > 0) {
sectionPinOffset = sectionTop - pinViewHeight;
}
}
}
int saveCount = c.save();
RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) pinnedHeaderView.getLayoutParams();
if (layoutParams == null) {
throw new NullPointerException("PinnedHeaderItemDecoration");
}
c.translate(layoutParams.leftMargin, sectionPinOffset);
c.clipRect(0, 0, parent.getWidth(), pinnedHeaderView.getMeasuredHeight());
pinnedHeaderView.draw(c);
c.restoreToCount(saveCount);
if (mPinnedHeaderRect == null) {
mPinnedHeaderRect = new Rect();
}
mPinnedHeaderRect.set(0, 0, parent.getWidth(), pinnedHeaderView.getMeasuredHeight() + sectionPinOffset);
if(onSelectListener != null){
onSelectListener.onSelect(pinnedHeaderPosition);
}
} else {
mPinnedHeaderRect = null;
}
}
}
/**
* 要给每个item设置间距主要靠这个函数来实现
*/
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
}
/**
* 根据第一个可见的adapter的位置去获取临近的一个要固定的position的位置
*
* @param adapterFirstVisible 第一个可见的adapter的位置
* @return -1:未找到 >=0 找到位置
*/
private int getPinnedHeaderViewPosition(int adapterFirstVisible, RecyclerView.Adapter adapter) {
for (int index = adapterFirstVisible; index >= 0; index--) {
if (adapter.getItemViewType(index) == headType) {
return index;
}
}
return -1;
}
private void ensurePinnedHeaderViewLayout(View pinView, RecyclerView recyclerView) {
if (pinView.isLayoutRequested()) {
/**
* 用的是RecyclerView的宽度测量,和RecyclerView的宽度一样
*/
RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) pinView.getLayoutParams();
if (layoutParams == null) {
throw new NullPointerException("PinnedHeaderItemDecoration");
}
int widthSpec = View.MeasureSpec.makeMeasureSpec(
recyclerView.getMeasuredWidth() - layoutParams.leftMargin - layoutParams.rightMargin, View.MeasureSpec.EXACTLY);
int heightSpec;
if (layoutParams.height > 0) {
heightSpec = View.MeasureSpec.makeMeasureSpec(layoutParams.height, View.MeasureSpec.EXACTLY);
} else {
heightSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
}
pinView.measure(widthSpec, heightSpec);
pinView.layout(0, 0, pinView.getMeasuredWidth(), pinView.getMeasuredHeight());
}
}
}
......@@ -17,6 +17,7 @@
android:id="@+id/rv_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:layout_above="@id/btn_save"
android:layout_below="@id/topbar_list" />
......
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/tv_food_menu_category_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/theme_333_color"
android:gravity="center_horizontal"
android:paddingTop="@dimen/dp_6"
android:paddingBottom="@dimen/dp_6"
android:textColor="@color/white"
android:textSize="@dimen/dp_14"
tools:text="今日推薦 精選推薦" />
ext {
android = [
compileSdkVersion: 29,
buildToolsVersion: '29.0.3',
compileSdkVersion: 28,
buildToolsVersion: '28.0.3',
minSdkVersion : 19, //N5收銀機應用安卓開發環境要求Android OS Version: 5.1Android SDK Min Version: 19
targetSdkVersion : 29,
targetSdkVersion : 28,
//正式版: 1.0.3 3
//內部測試版:1.2.0 20
versionCode : 10,
......@@ -12,7 +12,7 @@ ext {
]
version = [
androidSupportSdkVersion: "29+",
androidSupportSdkVersion: "28+",
retrofitSdkVersion : '2.3.0',
dagger2SdkVersion : "2.19",
glideSdkVersion : "4.9.0",
......@@ -131,8 +131,10 @@ ext {
"immersionbar" : "com.gyf.immersionbar:immersionbar:3.0.0",
// fragment快速实现(可选)
"immersionbar-components" : "com.gyf.immersionbar:immersionbar-components:3.0.0",
"permissionx" : 'com.permissionx.guolindev:permissionx:1.3.1'
//獲取權限
"permissionx" : 'com.permissionx.guolindev:permissionx:1.3.1',
//美團點評-日誌監聽https://github.com/Meituan-Dianping/Logan/tree/master/Example/Logan-Android
"logan" : 'com.dianping.android.sdk:logan:1.2.4'
]
}
package com.gingersoft.gsa.cloud.database.utils;
import android.content.Context;
import android.database.Cursor;
import android.util.Log;
import com.gingersoft.gsa.cloud.database.DaoManager;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.greendao.FoodComboDao;
import com.gingersoft.gsa.cloud.database.greendao.FoodDao;
import org.greenrobot.greendao.query.QueryBuilder;
import java.util.Date;
import java.util.List;
/**
......@@ -207,7 +202,7 @@ public class FoodDaoUtils {
*
* @return
*/
public List<Food> queryFoodByQueryBuilder(long parentId,int foodSummary) {
public List<Food> queryFoodByQueryBuilder(long parentId, int foodSummary) {
QueryBuilder<Food> queryBuilder = mManager.getDaoSession().queryBuilder(Food.class);
long currentTime = System.currentTimeMillis();
return queryBuilder.where(queryBuilder.and(
......
......@@ -8,6 +8,7 @@ import androidx.lifecycle.viewModelScope
import com.billy.cc.core.component.CC
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage
import com.gingersoft.gsa.cloud.base.order.order.TakeawayOrder
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils
import com.gingersoft.gsa.cloud.constans.PrintConstans
......@@ -87,7 +88,7 @@ class HistoryOrderViewModel(private val historyOrderRepository: HistoryOrderRepo
//訂單信息和廚房單
orderDetails.data!![0].order_type = data.order_type
orderDetails.data!![0].orderPayType = data.orderPayType
MyOrderManage.setDataBean(orderDetails.data!![0])
TakeawayOrder.getInstance().shoppingCart.dataBean = orderDetails.data!![0]
CC.obtainBuilder("Component.Print")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_ORDER)
.setActionName("printActivity")
......@@ -100,7 +101,7 @@ class HistoryOrderViewModel(private val historyOrderRepository: HistoryOrderRepo
} else {
listener.invoke(true)
}
MyOrderManage.setDataBean(null)
TakeawayOrder.getInstance().shoppingCart.dataBean = null
}
} else {
ToastUtils.show(context, "沒有訂單內容,打印失敗")
......
......@@ -16,6 +16,7 @@ import com.billy.cc.core.component.CC
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage
import com.gingersoft.gsa.cloud.base.order.order.TakeawayOrder
import com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils
import com.gingersoft.gsa.cloud.base.utils.okhttpUtils.OkHttp3Utils
import com.gingersoft.gsa.cloud.base.utils.other.TextUtil
......@@ -548,13 +549,13 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
*/
fun printOrder(code: Int, dataBean: OrderDetails.DataBean, listener: (MessageBean) -> Unit) {
//訂單信息和廚房單,打印前需要修改dataBean的order_type和orderPayType
MyOrderManage.setDataBean(dataBean)
TakeawayOrder.getInstance().shoppingCart.dataBean = dataBean
CC.obtainBuilder("Component.Print")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_ORDER)
.setActionName("printActivity")
.build()
.callAsyncCallbackOnMainThread { _, result ->
MyOrderManage.setDataBean(null)
TakeawayOrder.getInstance().shoppingCart.dataBean = null
listener.invoke(getMsgBean(code, "打印", result.isSuccess))
}
}
......@@ -563,13 +564,13 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
* 打印結賬單
*/
private fun printOrderClosing(dataBean: OrderDetails.DataBean, listener: (Int, Boolean) -> Unit) {
MyOrderManage.setDataBean(dataBean)
TakeawayOrder.getInstance().shoppingCart.dataBean = dataBean
CC.obtainBuilder("Component.Print")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_CLOSING)
.setActionName("printActivity")
.build()
.callAsyncCallbackOnMainThread { _, result ->
MyOrderManage.setDataBean(null)
TakeawayOrder.getInstance().shoppingCart.dataBean = null
listener.invoke(PrintCode, result.isSuccess)
}
}
......
......@@ -119,7 +119,7 @@ public class PrjQueryPresenter extends BasePresenter<PrjQueryContract.Model, Prj
@Override
public void onNext(@NonNull BaseResult info) {
if (info != null) {
if (info.getData() != null) {
if (info.isSuccess()) {
getKitchenPrint(orderNo);
} else if (TextUtil.isNotEmptyOrNullOrUndefined(info.getErrMsg())) {
mRootView.showMessage(info.getErrMsg());
......
......@@ -2,9 +2,10 @@ package com.gingersoft.gsa.delivery_pick_mode.mvp.presenter;
import android.app.Activity;
import android.app.Application;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.order.order.TakeawayOrder;
import com.gingersoft.gsa.cloud.base.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.bean.RiceponAddOrderBean;
import com.gingersoft.gsa.cloud.print.bean.OrderDetails;
......@@ -16,12 +17,16 @@ import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager;
import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.utils.RxLifecycleUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.schedulers.Schedulers;
......@@ -195,6 +200,7 @@ public class SendOrderPresenter extends BasePresenter<SendOrderContract.Model, S
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(BaseResult s) {
TakeawayOrder.getInstance().initialization();
kill();
}
});
......@@ -208,7 +214,7 @@ public class SendOrderPresenter extends BasePresenter<SendOrderContract.Model, S
activity.finish();
}
}
MyOrderManage.getInstance().clear();
TakeawayOrder.getInstance().getShoppingCart().initialization(true);
mRootView.killMyself();
}
......@@ -229,10 +235,10 @@ public class SendOrderPresenter extends BasePresenter<SendOrderContract.Model, S
json.put("payType", 1);
json.put("receiver", name);
//原价
json.put("originalAmount", MyOrderManage.getInstance().getWholeAmount());
json.put("originalAmount", TakeawayOrder.getInstance().getShoppingCart().getWholeAmount());
json.put("orderType", 2);//訂單類型#1:餐廳訂單;2:線上外賣訂單3:扫码点餐;4固定二维码订单;5:预点餐;6:積分訂單;7:自取订单
//实际总价
json.put("totalPrice", MyOrderManage.getInstance().getTotalAmount());
json.put("totalPrice", TakeawayOrder.getInstance().getShoppingCart().getTotalAmount());
json.put("waimaiSendTime", waimaiSendTime);//送单时间
json.put("addressId", addressId);
json.put("sendTime", waimaiSendTime);
......
......@@ -191,7 +191,7 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements
if (view.getId() == R.id.tv_prj_record_print_operation) {
//重印
List<PrjBean.DataBean.Bean> prjData = prjQueryBean.getData();
if (prjData.get(position).getType() == 3) {
if (prjData.get(position).getPrinterType() == 3) {
//已打印的,提示是否重新打印
new AppDialog().showWaringDialog(mContext, "食品已打印,確認重印?", (view1, dialog) -> {
dialog.dismiss();
......@@ -217,12 +217,6 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements
List<PrjBean.DataBean.Bean> printDatas = new ArrayList<>();
printDatas.add(prjData.get(position));
printPrj(printDatas);
} else if (prjData.get(position + 1).getParentId() == 0) {
//沒有子食品
//直接打印
List<PrjBean.DataBean.Bean> printDatas = new ArrayList<>();
printDatas.add(prjData.get(position));
printPrj(printDatas);
} else if (prjData.get(position).getProductId().equals(prjData.get(position + 1).getParentId() + "")) {
//有子食品
List<PrjBean.DataBean.Bean> printDatas = new ArrayList<>();
......@@ -235,15 +229,19 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements
}
}
printPrj(printDatas);
} else {
//沒有子食品
//直接打印
List<PrjBean.DataBean.Bean> printDatas = new ArrayList<>();
printDatas.add(prjData.get(position));
printPrj(printDatas);
}
} else {
//是食品,直接打印子食品
//是食品,直接打印子食品
List<PrjBean.DataBean.Bean> printDatas = new ArrayList<>();
printDatas.add(prjData.get(position));
printPrj(printDatas);
}
//添加重印的報警推送
OkHttp3Utils.noticePersonnel(AppConstans.RP_REPRINT_CODE, "重印,訂單號:" + prjData.get(position).getOrderNo());
}
private void printPrj(List<PrjBean.DataBean.Bean> printDatas) {
......@@ -253,6 +251,8 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements
printDatas.get(i).setCurrentIndex(i);
ids.append(printDatas.get(i).getId());
}
//添加重印的報警推送
OkHttp3Utils.noticePersonnel(AppConstans.RP_REPRINT_CODE, "重印,訂單號:" + printDatas.get(0).getOrderNo());
String finalIds = ids.toString();
CC.obtainBuilder("Component.Print")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_KITCHEN)
......
......@@ -32,19 +32,21 @@ public class PrjStateAdapter extends BaseQuickAdapter<PrjBean.DataBean.Bean, Bas
TextView state = baseViewHolder.getView(R.id.tv_prj_record_print_state);
TextView foodName = baseViewHolder.getView(R.id.tv_prj_record_food_name);
foodName.setText(dataBean.getProductName());
if (dataBean.getPresence() == 0) {
state.setText("沒有生成");
state.setTextColor(ContextCompat.getColor(context, R.color.red));
} else if (dataBean.getType() == 3) {
if (dataBean.getPrinterType() == 3) {
state.setText("已打印");
state.setTextColor(ContextCompat.getColor(context, R.color.order_state4_color));
} else if (dataBean.getType() == 1) {
state.setText("打印失敗");
} else if (dataBean.getPresence() == 0) {
state.setText("未生成打印記錄");
state.setTextColor(ContextCompat.getColor(context, R.color.red));
} else if (dataBean.getPrinterDeviceId() == -1) {
state.setText("未配置打印位置");
state.setTextColor(ContextCompat.getColor(context, R.color.red));
} else {
state.setText("打印失敗");
state.setTextColor(ContextCompat.getColor(context, R.color.red));
}
state.setSelected(true);
if (baseViewHolder.getAdapterPosition() == 0) {
//只第一次測量一下
indentation = new BigDecimal(foodName.getPaint().measureText("哈")).setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
......
......@@ -25,6 +25,8 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ellipsize="marquee"
android:focusableInTouchMode="true"
android:gravity="center"
android:textColor="@color/theme_333_color"
android:textSize="@dimen/dp_16"
......
......@@ -7,14 +7,13 @@ import com.gingersoft.gsa.cloud.base.Api;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.FoodBean;
import com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.base.utils.CommonConfiguration;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.constans.HttpsConstans;
import com.gingersoft.gsa.cloud.database.bean.ColorBean;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.database.bean.ExpandInfo;
import com.gingersoft.gsa.cloud.database.bean.Function;
import com.gingersoft.gsa.cloud.database.bean.PrinterListBean;
import com.gingersoft.gsa.cloud.database.utils.ColorDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.ComboItemDaoUtils;
......
......@@ -5,6 +5,9 @@
<uses-permission android:name="android.permission.INTERNET" />
<application>
<activity
android:name=".mvp.ui.activity.menu.ShellActivity"
android:screenOrientation="portrait" />
<activity
android:name=".mvp.ui.activity.NewMainActivity"
android:launchMode="singleTask" />
<activity
......@@ -31,34 +34,6 @@
<activity
android:name=".mvp.ui.activity.RestaurantQrCodeActivity"
android:screenOrientation="portrait" />
<activity
android:name=".mvp.ui.activity.menu.AddFoodItemsActivity"
android:screenOrientation="portrait" />
<activity
android:name=".mvp.ui.activity.menu.NewSelectPeriodActivity"
android:screenOrientation="portrait" />
<activity
android:name=".mvp.ui.activity.menu.SelectTimePeriodActivity"
android:screenOrientation="portrait" />
<activity
android:name=".mvp.ui.activity.menu.NewFoodTypeActivity"
android:screenOrientation="portrait" />
<activity
android:name=".mvp.ui.activity.menu.SelectFoodTypeActivity"
android:screenOrientation="portrait" />
<activity
android:name=".mvp.ui.activity.menu.FoodDetailsActivity"
android:screenOrientation="portrait" />
<activity
android:name=".mvp.ui.activity.menu.SelectFoodGroupActivity"
android:screenOrientation="portrait" />
<activity
android:name=".mvp.ui.activity.menu.NewFoodActivity"
android:screenOrientation="portrait" />
<activity
android:name=".mvp.ui.activity.menu.NewAddFoodGroupActivity"
android:screenOrientation="portrait" />
<activity
android:name=".mvp.ui.activity.menu.FoodMenuManageActivity"
android:screenOrientation="portrait" />
......
......@@ -7,6 +7,7 @@ import com.billy.cc.core.component.CCResult;
import com.billy.cc.core.component.IComponent;
import com.gingersoft.gsa.cloud.function.FModule;
import com.gingersoft.gsa.cloud.main.mvp.ui.activity.NewMainActivity;
import com.gingersoft.gsa.cloud.main.mvp.ui.activity.menu.FoodMenuManageActivity;
public class ComponentMain implements IComponent {
......@@ -70,6 +71,11 @@ public class ComponentMain implements IComponent {
case "showMainActivity":
openActivity(cc);
break;
case "foodMenuActivity":
Intent intent = new Intent(cc.getContext(), FoodMenuManageActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
cc.getContext().startActivity(intent);
break;
case "getLifecycleFragment":
//demo for provide fragment object to other component
getLifecycleFragment(cc);
......
......@@ -5,18 +5,18 @@ import dagger.Component;
import com.jess.arms.di.component.AppComponent;
import com.gingersoft.gsa.cloud.main.di.module.FoodSetModule;
import com.gingersoft.gsa.cloud.main.mvp.contract.FoodSetContract;
import com.gingersoft.gsa.cloud.main.di.module.SelectModule;
import com.gingersoft.gsa.cloud.main.mvp.contract.SelectContract;
import com.jess.arms.di.scope.FragmentScope;
import com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.FoodSetFragment;
import com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.SelectFragment;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 10/29/2020 15:29
* Created by MVPArmsTemplate on 11/05/2020 14:21
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
......@@ -25,17 +25,17 @@ import com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.FoodSetFragment;
* ================================================
*/
@FragmentScope
@Component(modules = FoodSetModule.class, dependencies = AppComponent.class)
public interface FoodSetComponent {
void inject(FoodSetFragment fragment);
@Component(modules = SelectModule.class, dependencies = AppComponent.class)
public interface SelectComponent {
void inject(SelectFragment fragment);
@Component.Builder
interface Builder {
@BindsInstance
FoodSetComponent.Builder view(FoodSetContract.View view);
SelectComponent.Builder view(SelectContract.View view);
FoodSetComponent.Builder appComponent(AppComponent appComponent);
SelectComponent.Builder appComponent(AppComponent appComponent);
FoodSetComponent build();
SelectComponent build();
}
}
\ No newline at end of file
......@@ -6,15 +6,15 @@ import dagger.Binds;
import dagger.Module;
import dagger.Provides;
import com.gingersoft.gsa.cloud.main.mvp.contract.FoodSetContract;
import com.gingersoft.gsa.cloud.main.mvp.model.FoodSetModel;
import com.gingersoft.gsa.cloud.main.mvp.contract.SelectContract;
import com.gingersoft.gsa.cloud.main.mvp.model.SelectModel;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 10/29/2020 15:29
* Created by MVPArmsTemplate on 11/05/2020 14:21
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
......@@ -23,8 +23,8 @@ import com.gingersoft.gsa.cloud.main.mvp.model.FoodSetModel;
* ================================================
*/
@Module
public abstract class FoodSetModule {
public abstract class SelectModule {
@Binds
abstract FoodSetContract.Model bindFoodSetModel(FoodSetModel model);
abstract SelectContract.Model bindSelectModel(SelectModel model);
}
\ No newline at end of file
......@@ -8,7 +8,7 @@ import com.jess.arms.mvp.IModel;
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 10/29/2020 15:29
* Created by MVPArmsTemplate on 11/05/2020 14:21
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
......@@ -16,7 +16,7 @@ import com.jess.arms.mvp.IModel;
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public interface FoodSetContract {
public interface SelectContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView {
......
......@@ -2,22 +2,20 @@ package com.gingersoft.gsa.cloud.main.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.main.mvp.contract.SelectContract;
import com.google.gson.Gson;
import com.jess.arms.di.scope.FragmentScope;
import com.jess.arms.integration.IRepositoryManager;
import com.jess.arms.mvp.BaseModel;
import com.jess.arms.di.scope.FragmentScope;
import javax.inject.Inject;
import com.gingersoft.gsa.cloud.main.mvp.contract.FoodSetContract;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 10/29/2020 15:29
* Created by MVPArmsTemplate on 11/05/2020 14:21
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
......@@ -26,14 +24,14 @@ import com.gingersoft.gsa.cloud.main.mvp.contract.FoodSetContract;
* ================================================
*/
@FragmentScope
public class FoodSetModel extends BaseModel implements FoodSetContract.Model {
public class SelectModel extends BaseModel implements SelectContract.Model {
@Inject
Gson mGson;
@Inject
Application mApplication;
@Inject
public FoodSetModel(IRepositoryManager repositoryManager) {
public SelectModel(IRepositoryManager repositoryManager) {
super(repositoryManager);
}
......
......@@ -30,15 +30,13 @@ public class FoodMenuEditBean {
*/
public final static int EDIT_FOOD_ITEM_BOOLEAN = 4;
/**
* 多選
* 上傳圖片
*/
public final static int EDIT_FOOD_ITEM_CHECKBOX = 5;
public final static int EDIT_FOOD_ITEM_UPLOAD_PIC = 5;
/**
* 上傳圖片
* 多選
*/
public final static int EDIT_FOOD_ITEM_UPLOAD_PIC = 6;
public final static int EDIT_FOOD_ITEM_CHECKBOX = 6;
/**
* 單選
*/
......@@ -114,6 +112,14 @@ public class FoodMenuEditBean {
*/
private boolean isEdit = true;
/**
* 選擇類型,當item類型為EDIT_FOOD_ITEM_SELECT時,有選擇時間,日期,
*/
private int selectType;
public final static int SELECT_DATE = 1;
public final static int SELECT_TIME = 2;
/**
* 顯示端
*/
@Data
......@@ -139,6 +145,7 @@ public class FoodMenuEditBean {
this.showTitle = showTitle;
this.isRequired = isRequired;
}
public FoodMenuEditBean(int itemType, String showTitle, boolean isRequired, String hintText, boolean isEdit) {
this.itemType = itemType;
this.showTitle = showTitle;
......@@ -146,6 +153,7 @@ public class FoodMenuEditBean {
this.hintText = hintText;
this.isEdit = isEdit;
}
public FoodMenuEditBean(int itemType, String showTitle, boolean isRequired, String hintText) {
this.itemType = itemType;
this.showTitle = showTitle;
......@@ -161,6 +169,15 @@ public class FoodMenuEditBean {
this.showValue = showValue;
}
public FoodMenuEditBean(int itemType, String showTitle, boolean isRequired, String hintText, String showValue, int selectType) {
this.itemType = itemType;
this.showTitle = showTitle;
this.isRequired = isRequired;
this.hintText = hintText;
this.showValue = showValue;
this.selectType = selectType;
}
public FoodMenuEditBean(int itemType, String showTitle, boolean isRequired, String hintText, int fragmentType) {
this.itemType = itemType;
this.showTitle = showTitle;
......
......@@ -2,7 +2,7 @@ package com.gingersoft.gsa.cloud.main.mvp.presenter;
import android.app.Application;
import com.gingersoft.gsa.cloud.main.mvp.contract.FoodSetContract;
import com.gingersoft.gsa.cloud.main.mvp.contract.SelectContract;
import com.jess.arms.di.scope.FragmentScope;
import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager;
......@@ -17,7 +17,7 @@ import me.jessyan.rxerrorhandler.core.RxErrorHandler;
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 10/29/2020 15:29
* Created by MVPArmsTemplate on 11/05/2020 14:21
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
......@@ -26,7 +26,7 @@ import me.jessyan.rxerrorhandler.core.RxErrorHandler;
* ================================================
*/
@FragmentScope
public class FoodSetPresenter extends BasePresenter<FoodSetContract.Model, FoodSetContract.View> {
public class SelectPresenter extends BasePresenter<SelectContract.Model, SelectContract.View> {
@Inject
RxErrorHandler mErrorHandler;
@Inject
......@@ -37,7 +37,7 @@ public class FoodSetPresenter extends BasePresenter<FoodSetContract.Model, FoodS
AppManager mAppManager;
@Inject
public FoodSetPresenter(FoodSetContract.Model model, FoodSetContract.View rootView) {
public SelectPresenter(SelectContract.Model model, SelectContract.View rootView) {
super(model, rootView);
}
......
......@@ -10,6 +10,7 @@ import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.database.bean.ExpandInfo;
import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.R2;
......@@ -24,7 +25,9 @@ import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
import com.qmuiteam.qmui.widget.QMUITopBar;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import butterknife.BindView;
......@@ -131,9 +134,18 @@ public class ExpandListActivity extends BaseActivity<ExpandListPresenter> implem
//保存
List<ExpandInfo> data = expandListAdapter.getData();
List<ExpandInfo> updateDate = new ArrayList<>();
for (int i = 0; i < data.size(); i++) {
if (data.get(i).isUpdate()) {
updateDate.add(data.get(i));
for (ExpandInfo expandInfo : data) {
if(expandInfo.isUpdate()){
if(expandInfo.getValueDatetime() != null){
Calendar calendar = Calendar.getInstance();
try {
calendar.setTime(TimeUtils.ENGLISH_DATE_FORMAT.parse(expandInfo.getValueDatetime()));
} catch (ParseException e) {
e.printStackTrace();
}
expandInfo.setValueDatetime(TimeUtils.getStringByFormat(calendar.getTime(), TimeUtils.DEFAULT_DATE_FORMAT));
}
updateDate.add(expandInfo);
}
}
if (updateDate.size() > 0) {
......
......@@ -10,12 +10,13 @@ import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.di.component.DaggerFoodMenuManageComponent;
import com.gingersoft.gsa.cloud.main.mvp.contract.FoodMenuManageContract;
import com.gingersoft.gsa.cloud.main.mvp.presenter.FoodMenuManagePresenter;
import com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.FoodMenuFragment;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.jess.arms.base.BaseFragmentActivity;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import static com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.BaseFoodMenuFragment.FOOD_MANGER;
import static com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.BaseFoodMenuFragment.getFragmentByType;
import static com.jess.arms.utils.Preconditions.checkNotNull;
......@@ -50,7 +51,7 @@ public class FoodMenuManageActivity extends BaseFragmentActivity<FoodMenuManageP
@Override
public void initData(@Nullable Bundle savedInstanceState) {
loadRootFragment(R.id.layout_food_menu_content, FoodMenuFragment.newInstance());
loadRootFragment(R.id.layout_food_menu_content, getFragmentByType(FOOD_MANGER));
}
@Override
......
......@@ -13,11 +13,21 @@ import java.util.List;
import static com.gingersoft.gsa.cloud.base.utils.time.TimeUtils.DATE_FORMAT_DATE;
import static com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.BaseFoodMenuFragment.ADD_FOOD_ITEM;
import static com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.BaseFoodMenuFragment.EDIT_FOOD_ITEM_GROUP;
import static com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.BaseFoodMenuFragment.ADD_FOOD_ITEM_GROUP;
import static com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.BaseFoodMenuFragment.ADD_FOOD_SET_MEAL;
import static com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.BaseFoodMenuFragment.FOOD_PROPERTIES;
import static com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.BaseFoodMenuFragment.NEW_FOOD_GROUP;
import static com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.BaseFoodMenuFragment.NEW_FOOD_ITEM;
import static com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.BaseFoodMenuFragment.NEW_FOOD_SET_MEAL;
import static com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.BaseFoodMenuFragment.NEW_FOOD_SET_MEAL_GROUP;
import static com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.BaseFoodMenuFragment.NEW_FOOD_TYPE;
import static com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.BaseFoodMenuFragment.NEW_TIME_PERIOD;
import static com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.BaseFoodMenuFragment.SELECT_EXCLUDE_LIST;
import static com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.BaseFoodMenuFragment.SELECT_FOOD;
import static com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.BaseFoodMenuFragment.SELECT_FOOD_ITEM_GROUP;
import static com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.BaseFoodMenuFragment.SELECT_FOOD_SET_MEAL_GROUP;
import static com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.BaseFoodMenuFragment.SELECT_LIST;
import static com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.BaseFoodMenuFragment.SELECT_PRINT;
import static com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.FoodMenuFragment.SELECT_FOOD_GROUP;
import static com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.FoodMenuFragment.SELECT_FOOD_TYPE;
import static com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.FoodMenuFragment.SELECT_TIME_PERIOD;
......@@ -46,6 +56,21 @@ public class FoodMenuAdapter extends BaseProviderMultiAdapter<FoodMenuEditBean>
case ADD_FOOD_ITEM:
foodMenuEditBeans = getAddFoodItems();
break;
case ADD_FOOD_ITEM_GROUP:
foodMenuEditBeans = getAddFoodItemsGroup();
break;
case NEW_FOOD_ITEM:
foodMenuEditBeans = getNewFoodItem();
break;
case ADD_FOOD_SET_MEAL:
foodMenuEditBeans = getAddFoodSetMeal();
break;
case NEW_FOOD_SET_MEAL_GROUP:
foodMenuEditBeans = getNewFoodSetMealGroup();
break;
case NEW_FOOD_SET_MEAL:
foodMenuEditBeans = getNewFoodSetMeal();
break;
default:
foodMenuEditBeans = null;
break;
......@@ -157,11 +182,11 @@ public class FoodMenuAdapter extends BaseProviderMultiAdapter<FoodMenuEditBean>
Calendar calendar = Calendar.getInstance();
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT, "開始日期", false, "", DATE_FORMAT_DATE.format(calendar.getTime())));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT, "開始日期", false, "", DATE_FORMAT_DATE.format(calendar.getTime()), FoodMenuEditBean.SELECT_DATE));
calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR) + 10);
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT, "結束日期", false, "", DATE_FORMAT_DATE.format(calendar.getTime())));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT, "開始時間", false, "", "00:00:00"));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT, "結束時間", false, "", "23:59:59"));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT, "結束日期", false, "", DATE_FORMAT_DATE.format(calendar.getTime()), FoodMenuEditBean.SELECT_DATE));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT, "開始時間", false, "", "00:00:00", FoodMenuEditBean.SELECT_TIME));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT, "結束時間", false, "", "23:59:59", FoodMenuEditBean.SELECT_TIME));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_THICK_LINE));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_CHECKBOX, "週期", false));
......@@ -185,9 +210,9 @@ public class FoodMenuAdapter extends BaseProviderMultiAdapter<FoodMenuEditBean>
*/
public static List<FoodMenuEditBean> getAddFoodItems() {
List<FoodMenuEditBean> foodMenuEditBeans = new ArrayList<>();
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_INPUT, "食品名稱", false, "請輸入時段名稱"));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_INPUT, "食品名稱", false, "", false));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT, "細線組", false, "請選擇", EDIT_FOOD_ITEM_GROUP));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT, "細線組", false, "請選擇", SELECT_FOOD_ITEM_GROUP));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_INPUT, "最小數量", false, "請輸入最小數量"));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_INPUT, "最大數量", false, "請輸入最大數量"));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_INPUT, "優惠金額", false, "請輸入優惠金額"));
......@@ -203,8 +228,122 @@ public class FoodMenuAdapter extends BaseProviderMultiAdapter<FoodMenuEditBean>
selectCount.add(new FoodMenuEditBean.ShowClient("選擇多次", false));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_RADIO, "選擇次數", false, selectCount));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT, "默認選擇", false, "請選擇"));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT, "排除選項", false, "請選擇"));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT, "默認選擇", false, "請選擇", SELECT_LIST));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT, "排除選項", false, "請選擇", SELECT_EXCLUDE_LIST));
return foodMenuEditBeans;
}
/**
* 加配套餐
*
* @return
*/
public static List<FoodMenuEditBean> getAddFoodSetMeal() {
List<FoodMenuEditBean> foodMenuEditBeans = new ArrayList<>();
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_INPUT, "食品名稱", false, "", false));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT, "套餐", false, "請選擇", SELECT_FOOD_SET_MEAL_GROUP));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_INPUT, "優惠金額", false, "請輸入優惠金額"));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_INPUT, "整組優惠金額", false, "請輸入整組優惠金額"));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_INPUT, "選擇數量", false, "請輸入"));
List<FoodMenuEditBean.ShowClient> showTypes = new ArrayList<>();
showTypes.add(new FoodMenuEditBean.ShowClient("普通組別", false));
showTypes.add(new FoodMenuEditBean.ShowClient("加配食品", false));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_RADIO, "展示類型", false, showTypes));
List<FoodMenuEditBean.ShowClient> selectCount = new ArrayList<>();
selectCount.add(new FoodMenuEditBean.ShowClient("選擇一次", false));
selectCount.add(new FoodMenuEditBean.ShowClient("選擇多次", false));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_RADIO, "選擇次數", false, selectCount));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT, "默認選擇", false, "請選擇", SELECT_LIST));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT, "排除選項", false, "請選擇", SELECT_EXCLUDE_LIST));
return foodMenuEditBeans;
}
/**
* 加配細項
*
* @return
*/
public static List<FoodMenuEditBean> getNewFoodItem() {
List<FoodMenuEditBean> foodMenuEditBeans = new ArrayList<>();
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT, "細項組", true, "請選擇細項組", SELECT_FOOD_ITEM_GROUP));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_INPUT, "細項名稱1", true, "請輸入細項名稱"));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_INPUT, "細項名稱2", false, "請輸入細項名稱"));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_INPUT, "細項名稱3", false, "請輸入細項名稱"));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_INPUT, "細項金額", true, "請輸入細項金額"));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_INPUT, "細項原價", true, "請輸入細項原價"));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT, "打印位置", true, "請選擇打印位置", SELECT_PRINT));
List<FoodMenuEditBean.ShowClient> selectCount = new ArrayList<>();
selectCount.add(new FoodMenuEditBean.ShowClient("多選", false));
selectCount.add(new FoodMenuEditBean.ShowClient("口味", false));
selectCount.add(new FoodMenuEditBean.ShowClient("信息", false));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_CHECKBOX, "顯示端", false, selectCount));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_THICK_LINE));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_BOOLEAN, "細線啟用狀態", false, true));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_BOOLEAN, "折扣", false, false));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_BOOLEAN, "服務費", false, false));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_BOOLEAN, "打印賬單上", false, false));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_BOOLEAN, "打印主項", false, false));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_THICK_LINE));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_UPLOAD_PIC, "圖片上傳", true));
return foodMenuEditBeans;
}
/**
* 新增細項組
*/
public static List<FoodMenuEditBean> getAddFoodItemsGroup() {
List<FoodMenuEditBean> foodMenuEditBeans = new ArrayList<>();
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_INPUT, "細項組名稱1", false, "請輸入細項組名稱"));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_INPUT, "細項組名稱2", false, "請輸入細項組名稱"));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_INPUT, "細項組名稱3", false, "請輸入細項組名稱"));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_THICK_LINE));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_BOOLEAN, "顯示圖片", false, false));
List<FoodMenuEditBean.ShowClient> selectCount = new ArrayList<>();
selectCount.add(new FoodMenuEditBean.ShowClient("顯示", true));
selectCount.add(new FoodMenuEditBean.ShowClient("隱藏", false));
selectCount.add(new FoodMenuEditBean.ShowClient("暫停", false));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_CHECKBOX, "顯示狀態", false, selectCount));
return foodMenuEditBeans;
}
/**
* 新增套餐項
*/
public static List<FoodMenuEditBean> getNewFoodSetMeal() {
List<FoodMenuEditBean> foodMenuEditBeans = new ArrayList<>();
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT, "套餐組名稱", false, "請選擇", SELECT_FOOD_SET_MEAL_GROUP));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT, "食品", false, "請選擇", SELECT_FOOD));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_INPUT, "可選擇數量", false, "請輸入"));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_INPUT, "自定義金額", false, "請輸入"));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_BOOLEAN, "顯示", false, true));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_BOOLEAN, "分賬主項", false, false));
return foodMenuEditBeans;
}
/**
* 新增套餐組
*/
public static List<FoodMenuEditBean> getNewFoodSetMealGroup() {
List<FoodMenuEditBean> foodMenuEditBeans = new ArrayList<>();
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_INPUT, "套餐名稱1", false, "請輸入食品組名稱"));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_INPUT, "套餐名稱2", false, "請輸入食品組名稱"));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_INPUT, "套餐名稱3", false, "請輸入食品組名稱"));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_THICK_LINE));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_BOOLEAN, "顯示圖片", false, false));
List<FoodMenuEditBean.ShowClient> selectCount = new ArrayList<>();
selectCount.add(new FoodMenuEditBean.ShowClient("顯示", true));
selectCount.add(new FoodMenuEditBean.ShowClient("隱藏", false));
selectCount.add(new FoodMenuEditBean.ShowClient("暫停", false));
foodMenuEditBeans.add(new FoodMenuEditBean(FoodMenuEditBean.EDIT_FOOD_ITEM_CHECKBOX, "顯示狀態", false, selectCount));
return foodMenuEditBeans;
}
}
......@@ -8,6 +8,7 @@ import androidx.core.content.ContextCompat;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.main.R;
import org.jetbrains.annotations.NotNull;
......@@ -22,16 +23,19 @@ import java.util.List;
* Time: 12:19
* Use:
*/
public class FoodMenuMangerLeftAdapter extends BaseQuickAdapter<String, BaseViewHolder> {
public class FoodMenuMangerLeftAdapter extends BaseQuickAdapter<Food, BaseViewHolder> {
private int selectIndex = 0;
private int lastIndex = -1;
private Context context;
private int whiteColor;
private int blueColor;
private int textNormalColor;
public FoodMenuMangerLeftAdapter(Context context, @Nullable List<String> data) {
super(R.layout.item_food_menu_manger_left, data);
public FoodMenuMangerLeftAdapter(Context context, @Nullable List<Food> foodGroups) {
super(R.layout.item_food_menu_manger_left, foodGroups);
this.context = context;
whiteColor = ContextCompat.getColor(context, R.color.white);
blueColor = ContextCompat.getColor(context, R.color.theme_color);
......@@ -39,9 +43,9 @@ public class FoodMenuMangerLeftAdapter extends BaseQuickAdapter<String, BaseView
}
@Override
protected void convert(@NotNull BaseViewHolder baseViewHolder, String s) {
protected void convert(@NotNull BaseViewHolder baseViewHolder, Food food) {
TextView mTvCategoryName = baseViewHolder.getView(R.id.tv_food_menu_manger_category_name);
mTvCategoryName.setText(s);
mTvCategoryName.setText(food.getFoodName());
if (selectIndex == baseViewHolder.getAdapterPosition()) {
mTvCategoryName.setBackgroundColor(whiteColor);
mTvCategoryName.setTextColor(blueColor);
......@@ -51,8 +55,11 @@ public class FoodMenuMangerLeftAdapter extends BaseQuickAdapter<String, BaseView
}
}
public void setSelectIndex(int selectIndex) {
this.selectIndex = selectIndex;
notifyDataSetChanged();
public void setSelectIndex(int currentIndex) {
if(selectIndex != currentIndex){
notifyItemChanged(selectIndex);
selectIndex = currentIndex;
notifyItemChanged(selectIndex);
}
}
}
......@@ -2,14 +2,14 @@ package com.gingersoft.gsa.cloud.main.mvp.ui.adapter.foodmenu;
import android.widget.SectionIndexer;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseDelegateMultiAdapter;
import com.chad.library.adapter.base.delegate.BaseMultiTypeDelegate;
import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.main.R;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
......@@ -19,45 +19,67 @@ import java.util.List;
* Time: 11:38
* Use:
*/
public class FoodMenuMangerRightAdapter extends BaseQuickAdapter<String, BaseViewHolder> implements SectionIndexer {
public class FoodMenuMangerRightAdapter extends BaseDelegateMultiAdapter<Food, BaseViewHolder> implements SectionIndexer {
private String[] foods;
private List<String> category;
private List<Food> foodGroups;
private List<Food> foods;
public final int TITLE = 1;
public final int FOOD_INFO = 2;
public FoodMenuMangerRightAdapter(List<String> category, String[] foods) {
super(R.layout.item_food_menu_right_food_info, new ArrayList<>(Arrays.asList(foods)));
public FoodMenuMangerRightAdapter(List<Food> foodGroups, List<Food> foods) {
super(foods);
this.foods = foods;
this.category = category;
this.foodGroups = foodGroups;
setMultiTypeDelegate(new BaseMultiTypeDelegate<Food>() {
@Override
public int getItemType(@NotNull List<? extends Food> list, int i) {
if (list.get(i).getParentId() == 0) {
return TITLE;
} else {
return FOOD_INFO;
}
}
});
getMultiTypeDelegate().
addItemType(TITLE, R.layout.item_food_menu_category_title)
.addItemType(FOOD_INFO, R.layout.item_food_menu_right_food_info);
}
@Override
public Object[] getSections() {
return category.toArray();
return foodGroups.toArray();
}
@Override
public int getPositionForSection(int sectionIndex) {
for (int i = 0; i < foods.length; i++) {
if (foods[i].contains(category.get(sectionIndex))) {
for (int i = 0; i < foods.size(); i++) {
if (foods.get(i).getId().equals(foodGroups.get(sectionIndex).getId())) {
return i;
}
}
return 0;
return -1;
}
@Override
public int getSectionForPosition(int position) {
for (int i = 0; i < category.size(); i++) {
if (foods[position].contains(category.get(i))) {
return i;
}
}
return 0;
// int i1 = foodGroups.indexOf(foods.get(position));
// for (int i = 0; i < foodGroups.size(); i++) {
// if (foods.get(position).getId().equals(foodGroups.get(i).getId())) {
// return i;
// }
// }
return foodGroups.indexOf(foods.get(position));
}
@Override
protected void convert(@NotNull BaseViewHolder baseViewHolder, String s) {
baseViewHolder.setText(R.id.item_food_menu_food_name, s);
protected void convert(@NotNull BaseViewHolder baseViewHolder, Food food) {
if(baseViewHolder.getItemViewType() == FOOD_INFO){
baseViewHolder.setText(R.id.item_food_menu_food_name, food.getFoodName());
} else {
baseViewHolder.setText(R.id.tv_food_menu_category_title, food.getFoodName());
}
}
}
......@@ -42,7 +42,11 @@ public class RadioItemProvider extends FoodMenuItemProvider {
super.convert(baseViewHolder, foodMenuEditBean);
RecyclerView rv = baseViewHolder.getView(R.id.rv_radio);
rv.setLayoutManager(new GridLayoutManager(context, 2));
rv.setAdapter(new RadioAdapter(foodMenuEditBean.getCheckBoxList()));
RadioAdapter radioAdapter = new RadioAdapter(foodMenuEditBean.getCheckBoxList());
radioAdapter.setOnItemChildClickListener((adapter, view, position) -> {
radioAdapter.setCheckedIndex(position);
radioAdapter.notifyDataSetChanged();
});
rv.setAdapter(radioAdapter);
}
}
package com.gingersoft.gsa.cloud.main.mvp.ui.adapter.foodmenu;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.gingersoft.gsa.cloud.main.R;
import org.jetbrains.annotations.NotNull;
import java.util.List;
/**
* @author 宇航.
* User: admin
* Date: 2020/11/5
* Time: 14:58
* Use:
*/
public class SelectAdapter extends BaseQuickAdapter<String, BaseViewHolder> {
public SelectAdapter(List<String> strings) {
super(R.layout.item_default_select, strings);
}
@Override
protected void convert(@NotNull BaseViewHolder baseViewHolder, String s) {
baseViewHolder.setText(R.id.tv_select_name, s);
}
}
......@@ -25,6 +25,7 @@ public class RadioAdapter extends BaseQuickAdapter<FoodMenuEditBean.ShowClient,
public RadioAdapter(@Nullable List<FoodMenuEditBean.ShowClient> data) {
super(R.layout.item_child_radio, data);
addChildClickViewIds(R.id.rb_food_menu_item);
}
@Override
......@@ -32,9 +33,9 @@ public class RadioAdapter extends BaseQuickAdapter<FoodMenuEditBean.ShowClient,
RadioButton radioButton = baseViewHolder.getView(R.id.rb_food_menu_item);
radioButton.setText(showClient.getClientName());
radioButton.setChecked(baseViewHolder.getAdapterPosition() == checkedIndex);
radioButton.setOnCheckedChangeListener((buttonView, isChecked) -> {
checkedIndex = baseViewHolder.getAdapterPosition();
notifyDataSetChanged();
});
}
public void setCheckedIndex(int checkedIndex) {
this.checkedIndex = checkedIndex;
}
}
......@@ -55,11 +55,70 @@ public abstract class BaseFoodMenuFragment<P extends IPresenter> extends BaseFra
public final static int ADD_FOOD_ITEM = 8;
/**
* 編輯細項組
* 選擇細項組
*/
public final static int EDIT_FOOD_ITEM_GROUP = 9;
public final static int SELECT_FOOD_ITEM_GROUP = 9;
/**
* 新增細項組
*/
public final static int ADD_FOOD_ITEM_GROUP = 10;
/**
* 新增細項
*/
public final static int NEW_FOOD_ITEM = 11;
public final static int SELECT_PRINT = 13;
/**
* 食品管理
*/
public final static int FOOD_MANGER = 14;
/**
* 細項管理
*/
public final static int FOOD_ITEM_MANGER = 15;
/**
* 套餐管理
*/
public final static int FOOD_SET_MEAL_MANGER = 16;
/**
* 食品的細項頁面
*/
public final static int FOOD_ITEMS_PAGE = 17;
/**
* 食品的套餐頁面
*/
public final static int FOOD_SET_MEAL_PAGE = 18;
/**
* 加配套餐
*/
public final static int ADD_FOOD_SET_MEAL = 19;
/**
* 新增套餐組
*/
public final static int NEW_FOOD_SET_MEAL_GROUP = 20;
/**
* 新增套餐
*/
public final static int NEW_FOOD_SET_MEAL = 21;
/**
* 選擇套餐組
*/
public final static int SELECT_FOOD_SET_MEAL_GROUP = 22;
/**
* 選擇食品
*/
public final static int SELECT_FOOD = 23;
/**
* 選擇列表
*/
public final static int SELECT_LIST = 24;
/**
* 排除內容
*/
public final static int SELECT_EXCLUDE_LIST = 25;
protected void toFragmentByAdapter(FoodMenuAdapter adapter, int position) {
if (adapter.getItemViewType(position) == FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT) {
......@@ -77,7 +136,7 @@ public abstract class BaseFoodMenuFragment<P extends IPresenter> extends BaseFra
fragment = NewFoodFragment.newInstance();
break;
case SELECT_TIME_PERIOD:
fragment = EditFoodFragment.newInstance(fragmentType,"選擇時段");
fragment = EditFoodFragment.newInstance(fragmentType, "選擇時段");
break;
case SELECT_FOOD_GROUP:
fragment = EditFoodFragment.newInstance(fragmentType, "選擇食品組");
......@@ -94,9 +153,38 @@ public abstract class BaseFoodMenuFragment<P extends IPresenter> extends BaseFra
case ADD_FOOD_ITEM:
fragment = NewlyAddedFragment.newInstance(fragmentType, "加配細項");
break;
case EDIT_FOOD_ITEM_GROUP:
case SELECT_FOOD_ITEM_GROUP:
fragment = EditFoodFragment.newInstance(fragmentType, "選擇細項組");
break;
case ADD_FOOD_ITEM_GROUP:
fragment = NewlyAddedFragment.newInstance(fragmentType, "新增細項組");
break;
case NEW_FOOD_ITEM:
fragment = NewlyAddedFragment.newInstance(fragmentType, "新增細項");
break;
case FOOD_MANGER:
case FOOD_ITEM_MANGER:
case FOOD_SET_MEAL_MANGER:
fragment = FoodMenuFragment.newInstance(fragmentType);
break;
case ADD_FOOD_SET_MEAL:
fragment = NewlyAddedFragment.newInstance(fragmentType, "加配套餐");
break;
case NEW_FOOD_SET_MEAL:
fragment = NewlyAddedFragment.newInstance(fragmentType, "新增套餐項");
break;
case NEW_FOOD_SET_MEAL_GROUP:
fragment = NewlyAddedFragment.newInstance(fragmentType, "新增套餐組");
break;
case SELECT_FOOD_SET_MEAL_GROUP:
fragment = EditFoodFragment.newInstance(fragmentType, "選擇套餐組");
break;
case SELECT_LIST:
fragment = SelectFragment.newInstance(fragmentType, "默認選擇");
break;
case SELECT_EXCLUDE_LIST:
fragment = SelectFragment.newInstance(fragmentType, "排除內容");
break;
default:
break;
......
......@@ -225,6 +225,9 @@ public class EditFoodFragment extends BaseFoodMenuFragment<EditFoodPresenter> im
case SELECT_TIME_PERIOD:
toFragmentType = NEW_TIME_PERIOD;
break;
case SELECT_FOOD_ITEM_GROUP:
toFragmentType = ADD_FOOD_ITEM_GROUP;
break;
default:
break;
}
......
......@@ -21,6 +21,7 @@ import com.gingersoft.gsa.cloud.main.mvp.presenter.EditFoodItemsPresenter;
import com.gingersoft.gsa.cloud.main.mvp.ui.activity.menu.ShellActivity;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.alpha.QMUIAlphaTextView;
import butterknife.BindView;
import butterknife.OnClick;
......@@ -29,28 +30,26 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 11/03/2020 17:54
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
* 食品的細項、套餐
*/
public class EditFoodItemsFragment extends BaseFoodMenuFragment<EditFoodItemsPresenter> implements EditFoodItemsContract.View, View.OnClickListener {
@BindView(R2.id.tv_add_item)
TextView tvAddItem;
QMUIAlphaTextView tvAddItem;
@BindView(R2.id.tv_food_item_manger)
TextView tvFoodItemManger;
QMUIAlphaTextView tvFoodItemManger;
@BindView(R2.id.rv_food_items)
RecyclerView rvFoodItems;
@BindView(R2.id.tv_food_item_name_text)
TextView tvListTitleName;
private int fragmentType;
public static EditFoodItemsFragment newInstance() {
public static EditFoodItemsFragment newInstance(int fragmentType) {
EditFoodItemsFragment fragment = new EditFoodItemsFragment();
Bundle bundle = new Bundle();
bundle.putInt(FRAGMENT_TYPE, fragmentType);
fragment.setArguments(bundle);
return fragment;
}
......@@ -71,7 +70,19 @@ public class EditFoodItemsFragment extends BaseFoodMenuFragment<EditFoodItemsPre
@Override
public void initData(@Nullable Bundle savedInstanceState) {
Bundle arguments = getArguments();
if (arguments != null) {
fragmentType = arguments.getInt(FRAGMENT_TYPE);
}
if (fragmentType == FOOD_ITEMS_PAGE) {
tvAddItem.setText("加配細項+");
tvFoodItemManger.setText("細項管理");
tvListTitleName.setText("細項組名稱");
} else if (fragmentType == FOOD_SET_MEAL_PAGE) {
tvAddItem.setText("加配套餐+");
tvFoodItemManger.setText("套餐管理");
tvListTitleName.setText("套餐名稱");
}
}
/**
......@@ -146,14 +157,24 @@ public class EditFoodItemsFragment extends BaseFoodMenuFragment<EditFoodItemsPre
@Override
public void onClick(View v) {
int viewId = v.getId();
if(viewId == R.id.tv_add_item){
//加配細項
if (viewId == R.id.tv_add_item) {
//加配
Intent intent = new Intent(mContext, ShellActivity.class);
if (fragmentType == FOOD_ITEMS_PAGE) {
intent.putExtra(FRAGMENT_TYPE, ADD_FOOD_ITEM);
} else if (fragmentType == FOOD_SET_MEAL_PAGE) {
intent.putExtra(FRAGMENT_TYPE, ADD_FOOD_SET_MEAL);
}
startActivity(intent);
} else if (viewId == R.id.tv_food_item_manger) {
//管理
Intent intent = new Intent(mContext, ShellActivity.class);
if (fragmentType == FOOD_ITEMS_PAGE) {
intent.putExtra(FRAGMENT_TYPE, FOOD_ITEM_MANGER);
} else if (fragmentType == FOOD_SET_MEAL_PAGE) {
intent.putExtra(FRAGMENT_TYPE, FOOD_SET_MEAL_MANGER);
}
startActivity(intent);
} else if(viewId == R.id.tv_food_item_manger){
//細項管理
}
}
......
......@@ -6,14 +6,17 @@ import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.RelativeLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.R2;
import com.gingersoft.gsa.cloud.main.di.component.DaggerFoodMenuComponent;
......@@ -22,12 +25,14 @@ import com.gingersoft.gsa.cloud.main.mvp.presenter.FoodMenuPresenter;
import com.gingersoft.gsa.cloud.main.mvp.ui.adapter.foodmenu.FoodMenuMangerLeftAdapter;
import com.gingersoft.gsa.cloud.main.mvp.ui.adapter.foodmenu.FoodMenuMangerRightAdapter;
import com.gingersoft.gsa.cloud.ui.recylcler.decorator.DividerItemDecoration;
import com.gingersoft.gsa.cloud.ui.recylcler.decorator.PinnedHeaderItemDecoration;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton;
import com.qmuiteam.qmui.widget.QMUITopBar;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
......@@ -53,16 +58,33 @@ public class FoodMenuFragment extends BaseFoodMenuFragment<FoodMenuPresenter> im
@BindView(R2.id.topbar_food_menu)
QMUITopBar topbarFoodMenu;
@BindView(R2.id.btn_add_food_group)
Button btnAddFoodGroup;
QMUIAlphaButton btnAddFoodGroup;
@BindView(R2.id.rv_food_menu_food_classification)
RecyclerView leftRv;
@BindView(R2.id.rv_food_menu_all_food)
RecyclerView rightRv;
@BindView(R2.id.layout_food_menu_left)
RelativeLayout leftLayout;
private List<String> category = Arrays.asList("A食品", "B食品", "C食品", "D食品", "E食品");
private int fragmentType;
/**
* 右側滑動,會重複調用左側,這裡記錄一下上次的下標,判斷是否和上次一樣,是一樣的就不執行
*/
private int lastPosition = -1;
/**
* 左側的分類index
*/
private int sectionPosition = -1;
/**
* 左側分類recyclerview的高度的一半,避免每次計算
*/
private int halfLeftRvHeight;
public static FoodMenuFragment newInstance() {
public static FoodMenuFragment newInstance(int type) {
FoodMenuFragment fragment = new FoodMenuFragment();
Bundle bundle = new Bundle();
bundle.putInt(FRAGMENT_TYPE, type);
fragment.setArguments(bundle);
return fragment;
}
......@@ -83,51 +105,128 @@ public class FoodMenuFragment extends BaseFoodMenuFragment<FoodMenuPresenter> im
@Override
public void initData(@Nullable Bundle savedInstanceState) {
int screenWidth = ArmsUtils.getScreenWidth(mContext);
ViewGroup.LayoutParams layoutParams = leftLayout.getLayoutParams();
layoutParams.width = screenWidth / 3;
leftLayout.setLayoutParams(layoutParams);
ViewGroup.LayoutParams layoutParams1 = rightRv.getLayoutParams();
layoutParams1.width = screenWidth - layoutParams.width;
rightRv.setLayoutParams(layoutParams1);
Bundle arguments = getArguments();
if (arguments != null) {
fragmentType = arguments.getInt(FRAGMENT_TYPE);
}
initAddGroupBtn();
initTopBar();
leftRv.setLayoutManager(new LinearLayoutManager(mContext));
leftRv.addItemDecoration(new DividerItemDecoration(mContext, LinearLayoutManager.VERTICAL));
initRv();
}
FoodMenuMangerLeftAdapter foodMenuMangerLeftAdapter = new FoodMenuMangerLeftAdapter(mContext, category);
leftRv.setAdapter(foodMenuMangerLeftAdapter);
private void initRv() {
//查詢出食品組
FoodDaoUtils foodDaoUtils = new FoodDaoUtils(mContext);
String[] foods = new String[50];
for (int i = 0; i < 50; i++) {
int x = i / 10;
String foodName = category.get(x);
foods[i] = foodName + i;
//設置右側食品數據
List<Food> foods = foodDaoUtils.queryAllFood();
List<Food> foodGroups = new ArrayList<>();
for (Food food : foods) {
if (food.getParentId() == 0) {
foodGroups.add(food);
}
}
//設置左側category的數據
LinearLayoutManager leftLayoutManager = new LinearLayoutManager(mContext);
leftRv.setLayoutManager(leftLayoutManager);
leftRv.setHasFixedSize(true);
leftRv.addItemDecoration(new DividerItemDecoration(mContext, LinearLayoutManager.VERTICAL));
FoodMenuMangerLeftAdapter foodMenuMangerLeftAdapter = new FoodMenuMangerLeftAdapter(mContext, foodGroups);
leftRv.setAdapter(foodMenuMangerLeftAdapter);
rightRv.setLayoutManager(new LinearLayoutManager(mContext));
LinearLayoutManager rightLayoutManager = new LinearLayoutManager(mContext);
FoodMenuMangerRightAdapter foodMenuMangerRightAdapter = new FoodMenuMangerRightAdapter(foodGroups, foods);
rightRv.setLayoutManager(rightLayoutManager);
rightRv.addItemDecoration(new DividerItemDecoration(mContext, LinearLayoutManager.VERTICAL));
FoodMenuMangerRightAdapter foodMenuMangerRightAdapter = new FoodMenuMangerRightAdapter(category, foods);
PinnedHeaderItemDecoration pinnedHeaderItemDecoration = new PinnedHeaderItemDecoration(foodMenuMangerRightAdapter.TITLE);
rightRv.addItemDecoration(pinnedHeaderItemDecoration);
rightRv.setAdapter(foodMenuMangerRightAdapter);
//左側category點擊時右側滾動到指定位置
foodMenuMangerLeftAdapter.setOnItemClickListener((adapter, view, position) -> {
int section = foodMenuMangerRightAdapter.getPositionForSection(position);
foodMenuMangerLeftAdapter.setSelectIndex(position);
((LinearLayoutManager) rightRv.getLayoutManager()).scrollToPositionWithOffset(section, 0);
rightLayoutManager.scrollToPositionWithOffset(section, 0);
sectionPosition = position;
moveToCenter(leftLayoutManager, sectionPosition);
});
pinnedHeaderItemDecoration.setOnSelectListener(position -> {
if (lastPosition != position) {
lastPosition = position;
rightRv.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
int sectionPosition = foodMenuMangerRightAdapter.getSectionForPosition(lastPosition);
if (this.sectionPosition != sectionPosition) {
this.sectionPosition = sectionPosition;
leftRv.scrollToPosition(sectionPosition);
foodMenuMangerLeftAdapter.setSelectIndex(sectionPosition);
int firstPosition = leftLayoutManager.findFirstVisibleItemPosition();
if (sectionPosition - firstPosition >= 0) {
moveToCenter(leftLayoutManager, sectionPosition);
}
}
}
});
}
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
private void moveToCenter(LinearLayoutManager leftLayoutManager, int sectionPosition) {
View childAt = leftRv.getChildAt(sectionPosition - leftLayoutManager.findFirstVisibleItemPosition());
if(halfLeftRvHeight == 0) {
halfLeftRvHeight = leftRv.getHeight() / 2;
}
if (childAt != null) {
int y = (childAt.getTop() - halfLeftRvHeight);
leftRv.smoothScrollBy(0, y);
}
}
private void initAddGroupBtn() {
if (fragmentType == FOOD_MANGER) {
btnAddFoodGroup.setText("+食品組");
} else if (fragmentType == FOOD_ITEM_MANGER) {
btnAddFoodGroup.setText("+細項組");
} else if (fragmentType == FOOD_SET_MEAL_MANGER) {
btnAddFoodGroup.setText("+套餐組");
}
});
}
public void initTopBar() {
if (fragmentType == FOOD_MANGER) {
topbarFoodMenu.setTitle("餐牌管理");
topbarFoodMenu.addLeftBackImageButton().setOnClickListener(v -> onBackPressedSupport());
} else if (fragmentType == FOOD_ITEM_MANGER) {
topbarFoodMenu.setTitle("細項管理");
} else if (fragmentType == FOOD_SET_MEAL_MANGER) {
topbarFoodMenu.setTitle("套餐管理");
}
topbarFoodMenu.addLeftBackImageButton().setOnClickListener(v -> {
FragmentActivity activity = getActivity();
if (activity != null) {
activity.onBackPressed();
}
});
QMUIAlphaImageButton rightButton = topbarFoodMenu.addRightImageButton(R.drawable.ic_add_have_border, R.id.topbar_right_add_button);
rightButton.setOnClickListener(v -> toFragmentByFragmentType(FOOD_PROPERTIES));
rightButton.setOnClickListener(v -> {
if (fragmentType == FOOD_MANGER) {
toFragmentByFragmentType(FOOD_PROPERTIES);
} else if (fragmentType == FOOD_ITEM_MANGER) {
toFragmentByFragmentType(NEW_FOOD_ITEM);
} else if (fragmentType == FOOD_SET_MEAL_MANGER) {
toFragmentByFragmentType(NEW_FOOD_SET_MEAL);
}
});
}
/**
......@@ -202,7 +301,13 @@ public class FoodMenuFragment extends BaseFoodMenuFragment<FoodMenuPresenter> im
public void onClick(View v) {
int viewId = v.getId();
if (viewId == R.id.btn_add_food_group) {
if (fragmentType == FOOD_MANGER) {
toFragmentByFragmentType(NEW_FOOD_GROUP);
} else if (fragmentType == FOOD_ITEM_MANGER) {
toFragmentByFragmentType(ADD_FOOD_ITEM_GROUP);
} else if (fragmentType == FOOD_SET_MEAL_MANGER) {
toFragmentByFragmentType(NEW_FOOD_SET_MEAL_GROUP);
}
}
}
}
......@@ -86,8 +86,8 @@ public class NewFoodFragment extends BaseFoodMenuFragment<NewFoodPresenter> impl
titles.add("套餐");
mFragments.add(NewlyAddedFragment.newInstance(FOOD_PROPERTIES, null, true));
mFragments.add(EditFoodItemsFragment.newInstance());
mFragments.add(FoodSetFragment.newInstance());
mFragments.add(EditFoodItemsFragment.newInstance(FOOD_ITEMS_PAGE));
mFragments.add(EditFoodItemsFragment.newInstance(FOOD_SET_MEAL_PAGE));
//实例化适配器
TabFragmentAdapter mTabFragmentAdapter = new TabFragmentAdapter(getParentFragmentManager(), 1);
......
......@@ -15,6 +15,8 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.base.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.base.utils.time.TimePickerUtils;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.R2;
import com.gingersoft.gsa.cloud.main.di.component.DaggerNewlyAddedComponent;
......@@ -29,6 +31,8 @@ import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
import com.qmuiteam.qmui.widget.QMUITopBar;
import java.util.List;
import butterknife.BindView;
import static com.gingersoft.gsa.cloud.ui.recylcler.decorator.DividerItemDecoration.VERTICAL_LIST;
......@@ -114,6 +118,24 @@ public class NewlyAddedFragment extends BaseFoodMenuFragment<NewlyAddedPresenter
foodMenuAdapter.setOnItemClickListener((adapter, view, position) -> {
if (adapter.getItemViewType(position) == FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT) {
List<FoodMenuEditBean> data = foodMenuAdapter.getData();
if (data.get(position).getSelectType() == FoodMenuEditBean.SELECT_TIME) {
//選擇時間
TimePickerUtils.init(mContext, (date, v) -> {
data.get(position).setShowValue(TimeUtils.DATE_FORMAT_HMS.format(date));
adapter.notifyItemChanged(position);
}).setType(new boolean[]{false, false, false, true, true, true})
.build()
.show();
} else if (data.get(position).getSelectType() == FoodMenuEditBean.SELECT_DATE) {
//選擇日期
TimePickerUtils.init(mContext, (date, v) -> {
data.get(position).setShowValue(TimeUtils.DATE_FORMAT_DATE.format(date));
adapter.notifyItemChanged(position);
}).setType(new boolean[]{true, true, true, false, false, false})
.build()
.show();
} else {
if (toShellActivity) {
Intent intent = new Intent(mContext, ShellActivity.class);
intent.putExtra(FRAGMENT_TYPE, foodMenuAdapter.getData().get(position).getFragmentType());
......@@ -121,6 +143,7 @@ public class NewlyAddedFragment extends BaseFoodMenuFragment<NewlyAddedPresenter
} else {
toFragmentByFragmentType(foodMenuAdapter.getData().get(position).getFragmentType());
}
}
} else {
}
......
......@@ -10,30 +10,59 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.di.component.DaggerFoodSetComponent;
import com.gingersoft.gsa.cloud.main.mvp.contract.FoodSetContract;
import com.gingersoft.gsa.cloud.main.mvp.presenter.FoodSetPresenter;
import com.gingersoft.gsa.cloud.main.R2;
import com.gingersoft.gsa.cloud.main.di.component.DaggerSelectComponent;
import com.gingersoft.gsa.cloud.main.mvp.contract.SelectContract;
import com.gingersoft.gsa.cloud.main.mvp.presenter.SelectPresenter;
import com.gingersoft.gsa.cloud.main.mvp.ui.adapter.foodmenu.SelectAdapter;
import com.gingersoft.gsa.cloud.ui.recylcler.decorator.DividerItemDecoration;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
import com.qmuiteam.qmui.widget.QMUITopBar;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import static com.gingersoft.gsa.cloud.ui.recylcler.decorator.DividerItemDecoration.VERTICAL_LIST;
import static com.jess.arms.utils.Preconditions.checkNotNull;
/**
* 新增食品--套餐編輯頁面
* 餐牌的選擇頁面:默認選擇,排除內容
*/
public class FoodSetFragment extends BaseFoodMenuFragment<FoodSetPresenter> implements FoodSetContract.View {
public static FoodSetFragment newInstance() {
FoodSetFragment fragment = new FoodSetFragment();
public class SelectFragment extends BaseFoodMenuFragment<SelectPresenter> implements SelectContract.View {
@BindView(R2.id.topbar_list)
QMUITopBar topbarList;
@BindView(R2.id.rv_content)
RecyclerView rvContent;
@BindView(R2.id.btn_save)
QMUIAlphaButton btn_save;
private String title;
private int fragmentType;
private String itemName;
public static SelectFragment newInstance(int type, String title) {
SelectFragment fragment = new SelectFragment();
Bundle bundle = new Bundle();
bundle.putInt(FRAGMENT_TYPE, type);
bundle.putString(TITLE_KEY, title);
fragment.setArguments(bundle);
return fragment;
}
@Override
public void setupFragmentComponent(@NonNull AppComponent appComponent) {
DaggerFoodSetComponent //如找不到该类,请编译一下项目
DaggerSelectComponent //如找不到该类,请编译一下项目
.builder()
.appComponent(appComponent)
.view(this)
......@@ -43,11 +72,39 @@ public class FoodSetFragment extends BaseFoodMenuFragment<FoodSetPresenter> impl
@Override
public View initView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_food_set, container, false);
return inflater.inflate(R.layout.fragment_select, container, false);
}
@Override
public void initData(@Nullable Bundle savedInstanceState) {
Bundle arguments = getArguments();
if (arguments != null) {
title = arguments.getString(TITLE_KEY);
fragmentType = arguments.getInt(FRAGMENT_TYPE);
}
initTopBar();
if (fragmentType == SELECT_LIST) {
itemName = "選擇";
} else if (fragmentType == SELECT_EXCLUDE_LIST) {
itemName = "排除";
}
rvContent.setLayoutManager(new LinearLayoutManager(mContext));
List<String> contents = new ArrayList<>();
for (int i = 0; i < 10; i++) {
contents.add(itemName + i);
}
rvContent.addItemDecoration(new DividerItemDecoration(mContext, VERTICAL_LIST));
rvContent.setAdapter(new SelectAdapter(contents));
}
public void initTopBar() {
topbarList.setTitle(title);
topbarList.addLeftImageButton(R.drawable.icon_return, R.id.iv_left_back).setOnClickListener(v -> {
FragmentActivity activity = getActivity();
if (activity != null) {
activity.onBackPressed();
}
});
}
/**
......
......@@ -15,6 +15,7 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_content"
android:background="@color/white"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
......
......@@ -24,7 +24,7 @@
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/tv_add_item"
style="@style/MainFoodMenuThemeColorTitleStyle"
android:layout_width="wrap_content"
......@@ -34,7 +34,7 @@
android:text="加配細項+"
android:textStyle="bold" />
<TextView
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/tv_food_item_manger"
style="@style/MainFoodMenuThemeColorTitleStyle"
android:layout_width="wrap_content"
......@@ -56,6 +56,7 @@
android:paddingBottom="@dimen/dp_10">
<TextView
android:id="@+id/tv_food_item_name_text"
style="@style/MainFoodMenuThemeColorTitleStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
......
......@@ -19,19 +19,19 @@
android:orientation="horizontal">
<RelativeLayout
android:layout_width="0dp"
android:id="@+id/layout_food_menu_left"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_food_menu_food_classification"
android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_above="@id/btn_add_food_group"
android:background="@color/color_f3" />
<Button
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_add_food_group"
android:layout_width="match_parent"
android:layout_height="wrap_content"
......@@ -45,9 +45,8 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_food_menu_all_food"
android:layout_width="0dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="3.5"
android:orientation="vertical" />
</LinearLayout>
......
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/grey_100"
android:orientation="vertical">
<include layout="@layout/include_list_save_layout" />
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/include_list_save_layout" />
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<com.qmuiteam.qmui.alpha.QMUIAlphaLinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
style="@style/MainFoodMenuEditItemLayoutStyle"
android:layout_width="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_select_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.8"
tools:text="細項名稱一" />
<RadioButton
android:id="@+id/rb_default_select"
style="@style/MainFoodMenuEditItemTitleStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:button="@drawable/selector_radio_bg"
android:background="@null"
android:drawablePadding="@dimen/dp_6"/>
</com.qmuiteam.qmui.alpha.QMUIAlphaLinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_300">
android:layout_height="@dimen/dp_50">
<TextView
android:id="@+id/item_food_menu_food_name"
......
......@@ -10,6 +10,7 @@ import com.gingersoft.gsa.cloud.base.order.discount.MemberDiscount;
import com.gingersoft.gsa.cloud.base.order.discount.MultyDiscount;
import com.gingersoft.gsa.cloud.base.order.discount.NomalDiscount;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.print.bean.OrderDetails;
import java.util.ArrayList;
import java.util.List;
......@@ -37,7 +38,10 @@ public class ShoppingCart {
}
return shoppingCart;
}
/**
* 外送/自取 的訂單數據
*/
protected OrderDetails.DataBean dataBean;
/**
* 商品列表
*/
......
......@@ -155,5 +155,13 @@ public class PrintPresenter extends BasePresenter<PrintContract.Model, PrintCont
}
return printerDeviceBean;
}
public PrinterDeviceBean getPrinterDeviceBeanByName(List<PrinterDeviceBean> printerDeviceBeans, String printDeviceName) {
for (PrinterDeviceBean printerDeviceBean : printerDeviceBeans) {
if (printDeviceName != null && printDeviceName.equals(printerDeviceBean.getName())) {
this.printerDeviceBean = printerDeviceBean;
return this.printerDeviceBean;
}
}
return null;
}
}
......@@ -2,34 +2,21 @@ package com.joe.print.mvp.print;
import android.content.Context;
import android.graphics.Bitmap;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.order.order.TakeawayOrder;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.base.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.constans.ExpandConstant;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.print.bean.OrderDetails;
import com.joe.print.R;
import com.joe.print.mvp.model.bean.PrintBillBean;
import com.joe.print.mvp.ui.adapter.BillItemAdapter;
import com.joe.print.mvp.ui.adapter.OtherOrderAdapter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
/**
* 外送接單,印單 已改新版
......@@ -39,7 +26,7 @@ public class PrintOtherOrder extends PrinterRoot {
@Override
public Map<String, List<Bitmap>> getPrintBitmap(Context mContext, PrinterDeviceBean deviceBean) {
OrderDetails.DataBean dataBean = MyOrderManage.getDataBean();
OrderDetails.DataBean dataBean = TakeawayOrder.getInstance().getShoppingCart().getDataBean();
if (dataBean != null) {
Map<String, List<Bitmap>> bitmapMaps = new HashMap<>();
//廚房單,可能會有多個IP打印
......@@ -70,61 +57,6 @@ public class PrintOtherOrder extends PrinterRoot {
return RestaurantExpandInfoUtils.getValue(ExpandConstant.DeliveryPrintCount,1);
}
private void addCountBitmap(List<Bitmap> bitmaps, int count, Bitmap bitmap) {
for (int i = 0; i < count; i++) {
bitmaps.add(bitmap);
}
}
private void addToMap(Map<String, List<OrderDetails.DataBean.PRODUCTNAMEBean>> foodMaps, OrderDetails.DataBean.PRODUCTNAMEBean food) {
if (foodMaps.get(food.getPrintseting()) != null) {
Objects.requireNonNull(foodMaps.get(food.getPrintseting())).add(food);
} else {
List<OrderDetails.DataBean.PRODUCTNAMEBean> newFoods = new ArrayList<>();
newFoods.add(food);
foodMaps.put(Objects.requireNonNull(food.getPrintseting()), newFoods);
}
}
//獲取廚房單圖片
private Bitmap getOrderKitchenBitmap(Context context, List<OrderDetails.DataBean.PRODUCTNAMEBean> orderDetail, OrderDetails.DataBean dataBean) {
View view = LinearLayout.inflate(context, R.layout.print_other_order_food, null);
TextView tvOrderType = view.findViewById(R.id.tv_order_type);//訂單類型。外賣or自取
TextView tvCreateTime = view.findViewById(R.id.tv_order_create_time);
TextView tvOperator = view.findViewById(R.id.tv_operator_name);//操作人員
TextView tvSendTime = view.findViewById(R.id.tv_order_send_time);
TextView tvOrderNum = view.findViewById(R.id.tv_order_number);
RecyclerView rvFood = view.findViewById(R.id.rv_order_food);
TextView tvTakeCode = view.findViewById(R.id.tv_order_take_code);
if (dataBean.getOrder_type() == 2) {
tvOrderType.setText("外送");
} else {
tvOrderType.setText("自取");
}
if (dataBean.getTakeFoodCode() != null && !dataBean.getTakeFoodCode().equals("0")) {
tvTakeCode.setText("取餐碼:#" + dataBean.getTakeFoodCode());
} else {
view.findViewById(R.id.tv_order_take_code).setVisibility(View.GONE);
}
//送貨時間
if (!TextUtil.isEmptyOrNullOrUndefined(dataBean.getSEND_TIME())) {
tvSendTime.setVisibility(View.VISIBLE);
tvSendTime.setText("送貨時間:" + dataBean.getSEND_TIME());
} else {
tvSendTime.setVisibility(View.GONE);
}
tvOperator.setText("操作:" + GsaCloudApplication.getMemberName());
//創建時間
tvCreateTime.setText(TimeUtils.parseTimeRepeat(dataBean.getCREATE_TIME(), TimeUtils.DEFAULT_DATE_FORMAT));
//訂單號
tvOrderNum.setText("單號:" + dataBean.getORDER_NO());
rvFood.setLayoutManager(new LinearLayoutManager(context));
rvFood.setAdapter(new OtherOrderAdapter(context, orderDetail, false));
return viewToBitmap(context, view);
}
private Bitmap getBitmap(Context mContext, OrderDetails.DataBean data, PrinterDeviceBean deviceBean) {
LinearLayout layout = new LinearLayout(mContext);
layout.setOrientation(LinearLayout.VERTICAL);
......@@ -163,130 +95,8 @@ public class PrintOtherOrder extends PrinterRoot {
return viewToZoomBitmap(mContext, layout, deviceBean);
}
private Bitmap initPrintView(Context context, OrderDetails.DataBean data) {
View view = LayoutInflater.from(context).inflate(R.layout.print_confirm_order_view, null, false);
TextView tvOrderClosing = view.findViewById(R.id.tv_order_closing);
TextView tvBillNumber = view.findViewById(R.id.tv_bill_number);
//品牌名
setText(view, R.id.tv_brand_name, GsaCloudApplication.getBrandName());
//餐廳名
setText(view, R.id.tv_restaurant_name, GsaCloudApplication.getRestaurantName());
// 訂單類型
setText(view, R.id.tv_order_type, data.getOrder_type() == 2 ? "外送" : "自取");
// 訂單號
setText(view, R.id.tv_order_number, "單號:" + data.getORDER_NO());
if (data.getOrder_type() == 7) {
//自取 顯示 取餐碼+訂單碼
if (!TextUtil.isEmptyOrNullOrUndefined(data.getTakeFoodCode())) {
setText(view, R.id.tv_order_take_food_code, "取餐碼:" + data.getTakeFoodCode());
}
} else {
//外送 顯示訂單碼
setText(view, R.id.tv_order_take_food_code, "訂單碼:" + data.getTakeFoodCode());
}
if (data.getTakeFoodCode() == null || data.getTakeFoodCode().equals("0")) {
view.findViewById(R.id.tv_order_take_food_code).setVisibility(View.GONE);
}
if (data.getBillNo() == null || data.getBillNo().length() <= 0) {
tvBillNumber.setVisibility(View.GONE);
} else {
tvBillNumber.setText("訂單碼:" + data.getBillNo());
}
//訂單創建時間
setText(view, R.id.tv_order_create, context.getString(R.string.create_order_time) + TimeUtils.parseTimeRepeat(data.getCREATE_TIME(), TimeUtils.DEFAULT_DATE_FORMAT));
String amountUnit = context.getString(R.string.amount_unit);
RecyclerView rvBill = view.findViewById(R.id.rv_bill);
List<PrintBillBean> billData = new ArrayList<>();
billData.add(getBillBean("合計:", amountUnit + MoneyUtil.sub(MoneyUtil.sub(Double.parseDouble(data.getTOTAL_AMOUNT()), data.getLunchbox()), data.getDELIVERY_CHARGE())));
if (data.getLunchbox() != 0) {
billData.add(getBillBean("餐盒費:", amountUnit + data.getLunchbox()));
}
if (data.getDELIVERY_CHARGE() != 0) {
billData.add(getBillBean("送貨費:", amountUnit + data.getDELIVERY_CHARGE()));
}
if (data.getCouponList() != null && data.getCouponList().size() > 0) {
for (OrderDetails.DataBean.CouponBean coupon : data.getCouponList()) {
billData.add(getBillBean(coupon.getCouponName() + ":", "-$" + coupon.getDiscount_amount()));
}
}
//總金額減去餐盒費之後的價格
// double amount1 = MoneyUtil.sub(Double.parseDouble(Objects.requireNonNull(data.getTOTAL_AMOUNT())), data.getLunchbox());
//總金額減去餐盒費、減去配送費之後的價格
// double amount2 = MoneyUtil.sub(amount1, data.getDELIVERY_CHARGE());
//總金額減去餐盒費、減去配送費、減去折扣之後的價格
// double amount3 = MoneyUtil.sub(amount2, data.getDiscount_amount());
// billData.add(getBillBean("總金額:", amountUnit + data.getTOTAL_AMOUNT()));
BillItemAdapter adapter = new BillItemAdapter(billData);
rvBill.setLayoutManager(new LinearLayoutManager(context));
rvBill.setAdapter(adapter);
//總金額
setText(view, R.id.tv_total, amountUnit + data.getTOTAL_AMOUNT());
//支付金額
setText(view, R.id.tv_pay_amount_text, "支付金額:" + amountUnit + MoneyUtil.sub(Double.parseDouble(data.getTOTAL_AMOUNT()), data.getDiscount_amount()));
if (data.getOrderPayType() == 1) {
//貨到付款
setText(view, R.id.tv_pay_type, "貨到付款");
} else if (data.getOrderPayType() == 0) {
setText(view, R.id.tv_pay_type, "店內支付");
} else if (data.getOrderPayType() == 2) {
setText(view, R.id.tv_pay_type, "在線支付");
//顯示支付時間
if (data.getPayTime() != null) {
tvOrderClosing.setText("支付時間:" + data.getPayTime());
tvOrderClosing.setVisibility(View.VISIBLE);
}
}
setText(view, R.id.tv_pay_amount_text, "支付金額:" + amountUnit + MoneyUtil.sub(Double.parseDouble(data.getTOTAL_AMOUNT()), data.getDiscount_amount()));
//收貨時間
setText(view, R.id.tv_delivery_time, data.getOrder_type() == 2 ? data.getSEND_TIME() : data.getTakeTime());
if (data.getOrder_type() != 2) {
//自取,隱藏地址和收貨人
view.findViewById(R.id.tv_address).setVisibility(View.GONE);
view.findViewById(R.id.tv_receiver).setVisibility(View.GONE);
} else {
//收貨地址
setText(view, R.id.tv_address, context.getString(R.string.address) + data.getAddressDetail());
//收貨人
setText(view, R.id.tv_receiver, "收貨人:" + data.getRECEIVER());
}
//手機號
setText(view, R.id.tv_phone, "手機號:" + data.getPHONE());
//底部時間
// setText(view, R.id.tv_bottom_time, "手機號:" + data.getPHONE());
//備註
if (data.getRemark() != null && !data.getRemark().isEmpty()) {
setText(view, R.id.tv_remark, "備註:" + data.getRemark());
view.findViewById(R.id.tv_remark).setVisibility(View.VISIBLE);
} else {
view.findViewById(R.id.tv_remark).setVisibility(View.GONE);
}
if (data.getPRODUCT_NAME() != null) {
RecyclerView rvFoodList = view.findViewById(R.id.rv_order_print_food);
rvFoodList.setLayoutManager(new LinearLayoutManager(context));
rvFoodList.setAdapter(new OtherOrderAdapter(context, data.getPRODUCT_NAME(), true));
}
return viewToBitmap(context, view);
}
private PrintBillBean getBillBean(String title, String value) {
return new PrintBillBean(title, value);
}
private void setAmount(Double data, TextView tvText, TextView tvAmount, String amountUnit) {
if (data <= 0) {
tvText.setVisibility(View.GONE);
tvAmount.setVisibility(View.GONE);
} else {
tvText.setVisibility(View.VISIBLE);
tvAmount.setVisibility(View.VISIBLE);
tvAmount.setText(amountUnit + data.toString());
}
}
}
......@@ -6,11 +6,13 @@ import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.order.order.TakeawayOrder;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
......@@ -21,6 +23,7 @@ import com.joe.print.R;
import com.joe.print.mvp.model.bean.PrintBillBean;
import com.joe.print.mvp.ui.adapter.BillItemAdapter;
import com.joe.print.mvp.ui.adapter.OtherOrderAdapter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
......@@ -33,7 +36,7 @@ public class PrintOtherOrderClosing extends PrinterRoot {
@Override
public Map<String, List<Bitmap>> getPrintBitmap(Context mContext, PrinterDeviceBean deviceBean) {
OrderDetails.DataBean dataBean = MyOrderManage.getDataBean();
OrderDetails.DataBean dataBean = TakeawayOrder.getInstance().getShoppingCart().getDataBean();
if (dataBean != null) {
Map<String, List<Bitmap>> bitmapMaps = new HashMap<>();
List<Bitmap> bitmaps = new ArrayList<>();
......
......@@ -55,6 +55,9 @@ public class PrintPrjKitchen extends PrinterRoot {
Bitmap bitmap = getKitChenPrintBitmap(mContext, key, noCut, deviceBean);
bitmaps.add(bitmap);
}
if (key == null) {
key = "";
}
bitmapMaps.put(key, bitmaps);
}
prjMap.clear();
......
......@@ -31,7 +31,6 @@ import com.gingersoft.gsa.cloud.base.common.bean.BillingBean;
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
import com.gingersoft.gsa.cloud.base.order.adapter.print.FoodAdapter;
import com.gingersoft.gsa.cloud.base.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.base.order.billItem.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
......@@ -152,6 +151,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
}
Map<String, List<Bitmap>> printBitmap = getPrintBitmap(mContext, deviceBean);
List<Bitmap> bitmapList = printBitmap.get("");
//根據打印次數,複製
if (bitmapList != null) {
int bitmapSize = bitmapList.size();
for (int i = 0; i < printCount - 1; i++) {
......
......@@ -20,6 +20,7 @@ import com.gingersoft.gsa.cloud.base.threadPool.ThreadPoolManager;
import com.gingersoft.gsa.cloud.base.utils.AidlUtil;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.okhttpUtils.OkHttp3Utils;
import com.gingersoft.gsa.cloud.base.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.constans.HttpsConstans;
......@@ -53,6 +54,7 @@ import org.json.JSONObject;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
......@@ -76,7 +78,7 @@ public class PrjService extends Service implements ReceiveListener {
private Disposable wakeDisposable;
private List<PrinterDeviceBean> printerDeviceBeans;
private List<PrjBean.DataBean.Bean> printDatas = new ArrayList<>();
private Map<String, List<PrjBean.DataBean.Bean>> listMap = new HashMap<>();
// private Map<String, List<PrjBean.DataBean.Bean>> listMap = new HashMap<>();
private List<PrintCurrencyBean> printCurrencyBeans;//通用打印配置
private Context mContext;
private String TAG = "Prj";
......@@ -324,7 +326,8 @@ public class PrjService extends Service implements ReceiveListener {
private void newPrint(String json) {
printDatas.clear();
listMap.clear();
// listMap.clear();
Map<String, List<PrjBean.DataBean.Bean>> listMap = new HashMap<>();
currentIndex = 0;
totalPrj = 0;
PrjBean prjBean = JsonUtils.parseObject(json, PrjBean.class);
......@@ -362,19 +365,23 @@ public class PrjService extends Service implements ReceiveListener {
totalPrj++;
}
}
// PrintPrjKitchen.getPrjMap().put(key, datas);
// printDatas.addAll(datas);
}
} catch (JSONException e) {
e.printStackTrace();
}
setPrjIndex(listMap, totalPrj);
initPrinterDevices();
foreachPrint(listMap);
}
private Map<String, List<PrjBean.DataBean.Bean>> setPrjIndex(Map<String, List<PrjBean.DataBean.Bean>> listMap, int totalPrj) {
for (Map.Entry<String, List<PrjBean.DataBean.Bean>> prjMap : listMap.entrySet()) {
for (PrjBean.DataBean.Bean bean : prjMap.getValue()) {
bean.setTotalPrj(totalPrj);
if(bean.getStatus() == 2){
if (bean.getStatus() == 2) {
currentIndex++;
} else {
if(currentIndex == 0){
if (currentIndex == 0) {
currentIndex = 1;
}
}
......@@ -382,13 +389,47 @@ public class PrjService extends Service implements ReceiveListener {
}
currentIndex++;
}
//讀取打印機和通用配置,可以優化
//獲取所有打印機
PrinterDeviceDaoUtils printerDeviceDaoUtils = new PrinterDeviceDaoUtils(this);
printerDeviceBeans = printerDeviceDaoUtils.queryAllPrinterDeviceBean();
//獲取所有通用配置
printCurrencyBeans = MyPrintUtils.getPrintCurrencyBeans(this);
return listMap;
}
private Map<String, List<PrjBean.DataBean.Bean>> printDataToMap(List<PrjBean.DataBean.Bean> printData) {
Map<String, List<PrjBean.DataBean.Bean>> map = new HashMap<>();
PrinterDeviceBean defaultPainter = null;
initPrinterDevices();
//獲得默認的打印機
for (PrinterDeviceBean printerDeviceBean : printerDeviceBeans) {
if (printerDeviceBean.getType() == 2) {
defaultPainter = printerDeviceBean;
break;
}
}
//將prj集合通過打印位置轉成map
for (PrjBean.DataBean.Bean bean : printData) {
if (TextUtil.isNotEmptyOrNullOrUndefined(bean.getPrintPosition())) {
List<PrjBean.DataBean.Bean> mapByKey = map.get(bean.getPrintPosition());
if (mapByKey != null) {
mapByKey.add(bean);
} else {
map.put(bean.getPrintPosition(), Collections.singletonList(bean));
}
} else if (defaultPainter != null) {
//沒有打印位置的,由默認的位置去打印
bean.setPrintPosition(defaultPainter.getName());
List<PrjBean.DataBean.Bean> mapByKey = map.get(bean.getPrintPosition());
if (mapByKey != null) {
mapByKey.add(bean);
} else {
map.put(bean.getPrintPosition(), Collections.singletonList(bean));
}
} else {
ToastUtils.show(this, "未配置打印機");
}
}
return map;
}
private void foreachPrint(Map<String, List<PrjBean.DataBean.Bean>> listMap) {
//雙重遍歷可以以後優化
//第二步:遍歷 Map<廚房位置,需要打印的數據>,通過廚房位置找到對應的打印機,並且通過數據拿到對應的通用配置
for (Map.Entry<String, List<PrjBean.DataBean.Bean>> prjMap : listMap.entrySet()) {
......@@ -409,6 +450,15 @@ public class PrjService extends Service implements ReceiveListener {
}
}
private void initPrinterDevices() {
//讀取打印機和通用配置,可以優化
//獲取所有打印機
PrinterDeviceDaoUtils printerDeviceDaoUtils = new PrinterDeviceDaoUtils(this);
printerDeviceBeans = printerDeviceDaoUtils.queryAllPrinterDeviceBean();
//獲取所有通用配置
printCurrencyBeans = MyPrintUtils.getPrintCurrencyBeans(this);
}
private PrintCurrencyBean getPrintCurrencyBean(List<PrjBean.DataBean.Bean> beans) {
PrintCurrencyBean printCurrencyBean = null;
if (beans != null && beans.size() > 0) {
......
......@@ -54,6 +54,7 @@ import com.joe.print.mvp.ui.adapter.PrintProgressAdapter;
import com.yanzhenjie.recyclerview.widget.DefaultItemDecoration;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -165,24 +166,29 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
} else {
// 獲取默認打印機,如果用戶沒有配置默認打印機,就取他最近使用的一個.
// 如果沒有最近使用的打印機,並且當前餐廳只有一台打印機,就用這一台打印機打印
defaultPrint = mPresenter.getDefaultPrintInList(printerDeviceBeans, (String) SPUtils.get( "defaultPrint", ""));
defaultPrint = mPresenter.getDefaultPrintInList(printerDeviceBeans, (String) SPUtils.get("defaultPrint", ""));
}
if (type == PrintConstans.PRINT_KITCHEN) {
// List<PrjBean.DataBean.Bean> printDatas = (List<PrjBean.DataBean.Bean>) getIntent().getSerializableExtra("prjBeans");
List<PrjBean.DataBean.Bean> printDatas = CCUtil.getNavigateParam(this, "prjBeans", null);
Map<String, List<PrjBean.DataBean.Bean>> prjMap = PrintPrjKitchen.getPrjMap();
String printLocation = null;
for (PrjBean.DataBean.Bean prjBean : printDatas) {
if (prjMap.containsKey(prjBean.getPrintPosition())) {
List<PrjBean.DataBean.Bean> beans = prjMap.get(prjBean.getPrintPosition());
if (beans != null) {
beans.add(prjBean);
if (printLocation == null) {
if (TextUtil.isNotEmptyOrNullOrUndefined(prjBean.getPrintPosition())) {
printLocation = prjBean.getPrintPosition();
defaultPrint = mPresenter.getPrinterDeviceBeanByName(printerDeviceBeans, printLocation);
if (defaultPrint == null) {
printFile("未找到對應的打印機");
return;
}
} else {
prjMap.put(prjBean.getPrintPosition(), Collections.singletonList(prjBean));
printLocation = defaultPrint.getName();
}
}
// prjMap.put("", printDatas);
prjBean.setPrintPosition(printLocation);
prjBean.setCurrentIndex(1);
}
prjMap.put("", printDatas);
}
if (defaultPrint == null) {
......@@ -204,7 +210,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
PrinterDeviceBean defaultPrint = MyPrintUtils.configPrinterProperties(finalPrintCurrencyBean, printerDeviceBeans.get(position));
printByDevice(defaultPrint);
selectPrint = position;
SPUtils.put( "defaultPrint", printerDeviceBeans.get(position).getName());
SPUtils.put("defaultPrint", printerDeviceBeans.get(position).getName());
dialog.dismiss();
});
}
......@@ -284,6 +290,61 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
}
}
private Map<String, List<PrjBean.DataBean.Bean>> setPrjIndex(Map<String, List<PrjBean.DataBean.Bean>> listMap, int totalPrj) {
int currentIndex = 0;
for (Map.Entry<String, List<PrjBean.DataBean.Bean>> prjMap : listMap.entrySet()) {
for (PrjBean.DataBean.Bean bean : prjMap.getValue()) {
bean.setTotalPrj(totalPrj);
if (bean.getStatus() == 2) {
currentIndex++;
} else {
if (currentIndex == 0) {
currentIndex = 1;
}
}
bean.setCurrentIndex(currentIndex);
}
currentIndex++;
}
return listMap;
}
private Map<String, List<PrjBean.DataBean.Bean>> printDataToMap(List<PrjBean.DataBean.Bean> printData) {
Map<String, List<PrjBean.DataBean.Bean>> map = new HashMap<>();
PrinterDeviceBean defaultPainter = null;
//獲得默認的打印機
for (PrinterDeviceBean printerDeviceBean : printerDeviceBeans) {
if (printerDeviceBean.getType() == 2) {
defaultPainter = printerDeviceBean;
break;
}
}
//將prj集合通過打印位置轉成map
for (PrjBean.DataBean.Bean bean : printData) {
if (TextUtil.isNotEmptyOrNullOrUndefined(bean.getPrintPosition())) {
List<PrjBean.DataBean.Bean> mapByKey = map.get(bean.getPrintPosition());
if (mapByKey != null) {
mapByKey.add(bean);
} else {
map.put(bean.getPrintPosition(), Collections.singletonList(bean));
}
} else if (defaultPainter != null) {
//沒有打印位置的,由默認的位置去打印
bean.setPrintPosition(defaultPainter.getName());
List<PrjBean.DataBean.Bean> mapByKey = map.get(bean.getPrintPosition());
if (mapByKey != null) {
mapByKey.add(bean);
} else {
map.put(bean.getPrintPosition(), Collections.singletonList(bean));
}
} else {
ToastUtils.show(this, "未配置打印機");
}
}
return map;
}
private PrintProgressAdapter adapter;
private void setPrintProgress(int state) {
......
......@@ -2,25 +2,22 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Activity;
import android.app.Application;
import android.os.Looper;
import android.text.TextUtils;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.order.bean.discount.CouponDiscountBean;
import com.gingersoft.gsa.cloud.base.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.base.order.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.order.cart.ShoppingCartNumberChange;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.discount.CouponDiscountBean;
import com.gingersoft.gsa.cloud.base.order.bean.discount.OrderDiscount;
import com.gingersoft.gsa.cloud.base.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.base.order.billItem.DiscountItem;
import com.gingersoft.gsa.cloud.base.order.billItem.RoundingItem;
import com.gingersoft.gsa.cloud.base.order.billItem.ServiceChargeItem;
import com.gingersoft.gsa.cloud.base.order.cart.ShoppingCart;
import com.gingersoft.gsa.cloud.base.order.commodity.MealCommodity;
import com.gingersoft.gsa.cloud.base.order.discount.MultyDiscount;
import com.gingersoft.gsa.cloud.base.order.cart.ShoppingCartNumberChange;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.discount.NomalDiscount;
import com.gingersoft.gsa.cloud.base.order.order.BaseOrder;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
......@@ -31,7 +28,9 @@ import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.constans.ExpandConstant;
import com.gingersoft.gsa.cloud.constans.FoodSummaryConstans;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.table.mvp.contract.BaseOrderContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.AddOrderRequest;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.CreateOrderRequest;
......@@ -39,8 +38,6 @@ import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderContentActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BillItemAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter;
import com.gingersoft.gsa.cloud.constans.ExpandConstant;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
import com.gingersoft.gsa.cloud.zxing.MipcaCaptureActivity;
import com.jess.arms.di.scope.ActivityScope;
......@@ -55,8 +52,6 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.logging.Handler;
import javax.inject.Inject;
......@@ -177,7 +172,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
mMealStandPresenter = (MealStandPresenter) this;
}
BaseOrder baseOrder = OrderFactory.createOrder(FoodSummaryConstans.RESTAURANT_MODE);
BaseOrder baseOrder = OrderFactory.createOrder(BaseOrder.orderType);
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.RESTAURANT_MODE)) {
mDoshokuOrder = (DoshokuOrder) baseOrder;
mTableInfo = mDoshokuOrder.getOpenTableInfo();
......@@ -188,7 +183,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
mOrderMealList = mShoppingCart.getOrderCommodityList();
mBillItemList = mShoppingCart.getBillItemList();
if (mMealStandPresenter != null) {
if (mMealStandPresenter != null && mDoshokuOrder != null) {
orderPlaced = mDoshokuOrder.getOrderPlaced();
}
......
......@@ -17,6 +17,16 @@ import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.constans.ExpandConstant;
import com.gingersoft.gsa.cloud.constans.MealConstant;
import com.gingersoft.gsa.cloud.constans.PrintConstans;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.mvp.contract.MealStandContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.FoodReason;
......@@ -32,16 +42,6 @@ import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodGroupAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ModifierAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.CancelFoodDialog;
import com.gingersoft.gsa.cloud.constans.ExpandConstant;
import com.gingersoft.gsa.cloud.constans.MealConstant;
import com.gingersoft.gsa.cloud.constans.PrintConstans;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
import com.google.gson.internal.LinkedTreeMap;
import com.jess.arms.base.DefaultAdapter;
......@@ -51,13 +51,11 @@ import com.jess.arms.integration.AppManager;
import com.jess.arms.utils.RxLifecycleUtils;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
import com.xuexiang.rxutil2.RxBindingUtils;
import org.simple.eventbus.Subscriber;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import javax.inject.Inject;
......@@ -68,7 +66,6 @@ import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
......@@ -1611,7 +1608,10 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
* @return
*/
public boolean memberPointsCondition(double pointsRedeem, String foodName) {
MemberInfo memberInfo = mDoshokuOrder.getMemberInfo();
MemberInfo memberInfo = null;
if (mDoshokuOrder != null) {
memberInfo = mDoshokuOrder.getMemberInfo();
}
if (memberInfo == null) {
//当前食品需要会员积分
if (pointsRedeem > 0) {
......
......@@ -22,6 +22,17 @@ import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
......@@ -35,6 +46,10 @@ import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.base.utils.VibratorUtils;
import com.gingersoft.gsa.cloud.base.utils.other.SPUtils;
import com.gingersoft.gsa.cloud.constans.FoodSummaryConstans;
import com.gingersoft.gsa.cloud.constans.GoldConstants;
import com.gingersoft.gsa.cloud.constans.MealConstant;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.print.PrinterUtils;
import com.gingersoft.gsa.cloud.table.BuildConfig;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
......@@ -42,7 +57,6 @@ import com.gingersoft.gsa.cloud.table.di.component.DaggerMealStandComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.MealStandContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.event.InitTableEvent;
import com.gingersoft.gsa.cloud.table.mvp.presenter.BaseOrderPresenter;
import com.gingersoft.gsa.cloud.table.mvp.presenter.MealStandPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BaseFragmentAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodGroupAdapter;
......@@ -50,10 +64,6 @@ import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.FineItemAllFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.ChooseNumberDialog;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.UseMemberDialog;
import com.gingersoft.gsa.cloud.constans.GoldConstants;
import com.gingersoft.gsa.cloud.constans.MealConstant;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.print.PrinterUtils;
import com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerConfig;
import com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerGridLayoutManager;
import com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerGridSnapHelper;
......@@ -70,7 +80,6 @@ import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.alpha.QMUIAlphaTextView;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.xuexiang.rxutil2.RxBindingUtils;
import org.simple.eventbus.EventBus;
......@@ -79,20 +88,9 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import butterknife.BindView;
import butterknife.OnClick;
import butterknife.OnLongClick;
import io.reactivex.functions.Consumer;
import static com.jess.arms.utils.Preconditions.checkNotNull;
......@@ -340,7 +338,6 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
TableBean.DataBean tableBean = new TableBean.DataBean();
tableBean.setPerson(1);
tableBean.setTableName("外賣");
DoshokuOrder.getInstance().getOpenTableInfo().setPerson(1);
DoshokuOrder.getInstance().setOpenTableInfo(tableBean);
btn_send_order.setText("送單信息");
} else {
......
package com.gingersoft.gsa.cloud.table.mvp.ui.activity;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.os.Message;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.order.order.BaseOrder;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.constans.FoodSummaryConstans;
import com.gingersoft.gsa.cloud.constans.GoldConstants;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.di.component.DaggerTableComponent;
......@@ -26,21 +35,15 @@ import com.gingersoft.gsa.cloud.table.mvp.model.table.action.TableAction;
import com.gingersoft.gsa.cloud.table.mvp.presenter.TablePresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllTableFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.InputTableFragment;
import com.gingersoft.gsa.cloud.constans.GoldConstants;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx;
import com.jess.arms.base.BaseFragmentActivity;
import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import com.kingja.loadsir.callback.Callback;
import com.kingja.loadsir.core.LoadService;
import com.kingja.loadsir.core.LoadSir;
import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton;
import com.qmuiteam.qmui.arch.QMUIFragmentPagerAdapter;
import com.qmuiteam.qmui.layout.QMUIButton;
import com.qmuiteam.qmui.util.QMUIDeviceHelper;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.QMUITopBar;
import com.qmuiteam.qmui.widget.popup.QMUIPopup;
......@@ -50,7 +53,6 @@ import com.qmuiteam.qmui.widget.tab.QMUITabBuilder;
import com.qmuiteam.qmui.widget.tab.QMUITabIndicator;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.xuexiang.rxutil2.RxBindingUtils;
import org.simple.eventbus.Subscriber;
......@@ -59,15 +61,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import butterknife.BindView;
import butterknife.OnClick;
......
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