Commit e65ccb3b by Wyh

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

Signed-off-by: Wyh <1239658231>
parent 84531caa
...@@ -130,6 +130,7 @@ dependencies { ...@@ -130,6 +130,7 @@ dependencies {
api 'androidx.core:core-ktx:+' api 'androidx.core:core-ktx:+'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
api 'com.github.huangyanbin:SmartTable:2.2.0' api 'com.github.huangyanbin:SmartTable:2.2.0'
api rootProject.ext.dependencies['logan']
} }
repositories { repositories {
......
...@@ -3,7 +3,10 @@ package com.gingersoft.gsa.cloud.base.utils.time; ...@@ -3,7 +3,10 @@ package com.gingersoft.gsa.cloud.base.utils.time;
import android.content.Context; import android.content.Context;
import android.graphics.Color; import android.graphics.Color;
import androidx.core.content.ContextCompat;
import com.bigkoo.pickerview.listener.OnTimeSelectListener; 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.TimePickerView;
import com.gingersoft.gsa.cloud.ui.view.timeselect.builder.TimePickerBuilder; import com.gingersoft.gsa.cloud.ui.view.timeselect.builder.TimePickerBuilder;
...@@ -17,6 +20,7 @@ public class TimePickerUtils { ...@@ -17,6 +20,7 @@ public class TimePickerUtils {
/** /**
* 顯示報表頁面時間選擇樣式 * 顯示報表頁面時間選擇樣式
*
* @param mContext * @param mContext
* @param defaultTime 默認選中時間 * @param defaultTime 默認選中時間
* @param onTimeSelectListener 選中時間回調 * @param onTimeSelectListener 選中時間回調
...@@ -94,9 +98,33 @@ public class TimePickerUtils { ...@@ -94,9 +98,33 @@ public class TimePickerUtils {
return pvTime; 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 mContext
* @param defaultTime 默認選中時間 * @param defaultTime 默認選中時間
* @param onTimeSelectListener 選中時間回調 * @param onTimeSelectListener 選中時間回調
...@@ -128,4 +156,24 @@ public class TimePickerUtils { ...@@ -128,4 +156,24 @@ public class TimePickerUtils {
return pvTime; 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 { ...@@ -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_HM = new SimpleDateFormat("HH:mm");
public static final SimpleDateFormat DATE_FORMAT_DATE_H = new SimpleDateFormat("HH"); 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_MDHM = new SimpleDateFormat("MM-dd HH:mm");//, Locale.CHINESE
public static final SimpleDateFormat DEFAULT_DATE_MD = new SimpleDateFormat("MM-dd"); 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 @@ ...@@ -17,6 +17,7 @@
android:id="@+id/rv_content" android:id="@+id/rv_content"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/white"
android:layout_above="@id/btn_save" android:layout_above="@id/btn_save"
android:layout_below="@id/topbar_list" /> 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 { ext {
android = [ android = [
compileSdkVersion: 29, compileSdkVersion: 28,
buildToolsVersion: '29.0.3', buildToolsVersion: '28.0.3',
minSdkVersion : 19, //N5收銀機應用安卓開發環境要求Android OS Version: 5.1Android SDK Min Version: 19 minSdkVersion : 19, //N5收銀機應用安卓開發環境要求Android OS Version: 5.1Android SDK Min Version: 19
targetSdkVersion : 29, targetSdkVersion : 28,
//正式版: 1.0.3 3 //正式版: 1.0.3 3
//內部測試版:1.2.0 20 //內部測試版:1.2.0 20
versionCode : 10, versionCode : 10,
...@@ -12,7 +12,7 @@ ext { ...@@ -12,7 +12,7 @@ ext {
] ]
version = [ version = [
androidSupportSdkVersion: "29+", androidSupportSdkVersion: "28+",
retrofitSdkVersion : '2.3.0', retrofitSdkVersion : '2.3.0',
dagger2SdkVersion : "2.19", dagger2SdkVersion : "2.19",
glideSdkVersion : "4.9.0", glideSdkVersion : "4.9.0",
...@@ -131,8 +131,10 @@ ext { ...@@ -131,8 +131,10 @@ ext {
"immersionbar" : "com.gyf.immersionbar:immersionbar:3.0.0", "immersionbar" : "com.gyf.immersionbar:immersionbar:3.0.0",
// fragment快速实现(可选) // fragment快速实现(可选)
"immersionbar-components" : "com.gyf.immersionbar:immersionbar-components:3.0.0", "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; package com.gingersoft.gsa.cloud.database.utils;
import android.content.Context; import android.content.Context;
import android.database.Cursor;
import android.util.Log; import android.util.Log;
import com.gingersoft.gsa.cloud.database.DaoManager; 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.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 com.gingersoft.gsa.cloud.database.greendao.FoodDao;
import org.greenrobot.greendao.query.QueryBuilder; import org.greenrobot.greendao.query.QueryBuilder;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -207,7 +202,7 @@ public class FoodDaoUtils { ...@@ -207,7 +202,7 @@ public class FoodDaoUtils {
* *
* @return * @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); QueryBuilder<Food> queryBuilder = mManager.getDaoSession().queryBuilder(Food.class);
long currentTime = System.currentTimeMillis(); long currentTime = System.currentTimeMillis();
return queryBuilder.where(queryBuilder.and( return queryBuilder.where(queryBuilder.and(
......
...@@ -8,6 +8,7 @@ import androidx.lifecycle.viewModelScope ...@@ -8,6 +8,7 @@ import androidx.lifecycle.viewModelScope
import com.billy.cc.core.component.CC import com.billy.cc.core.component.CC
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication 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.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.time.TimeUtils
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils
import com.gingersoft.gsa.cloud.constans.PrintConstans import com.gingersoft.gsa.cloud.constans.PrintConstans
...@@ -87,7 +88,7 @@ class HistoryOrderViewModel(private val historyOrderRepository: HistoryOrderRepo ...@@ -87,7 +88,7 @@ class HistoryOrderViewModel(private val historyOrderRepository: HistoryOrderRepo
//訂單信息和廚房單 //訂單信息和廚房單
orderDetails.data!![0].order_type = data.order_type orderDetails.data!![0].order_type = data.order_type
orderDetails.data!![0].orderPayType = data.orderPayType orderDetails.data!![0].orderPayType = data.orderPayType
MyOrderManage.setDataBean(orderDetails.data!![0]) TakeawayOrder.getInstance().shoppingCart.dataBean = orderDetails.data!![0]
CC.obtainBuilder("Component.Print") CC.obtainBuilder("Component.Print")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_ORDER) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_ORDER)
.setActionName("printActivity") .setActionName("printActivity")
...@@ -100,7 +101,7 @@ class HistoryOrderViewModel(private val historyOrderRepository: HistoryOrderRepo ...@@ -100,7 +101,7 @@ class HistoryOrderViewModel(private val historyOrderRepository: HistoryOrderRepo
} else { } else {
listener.invoke(true) listener.invoke(true)
} }
MyOrderManage.setDataBean(null) TakeawayOrder.getInstance().shoppingCart.dataBean = null
} }
} else { } else {
ToastUtils.show(context, "沒有訂單內容,打印失敗") ToastUtils.show(context, "沒有訂單內容,打印失敗")
......
...@@ -16,6 +16,7 @@ import com.billy.cc.core.component.CC ...@@ -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.application.GsaCloudApplication
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod 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.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.gson.GsonUtils
import com.gingersoft.gsa.cloud.base.utils.okhttpUtils.OkHttp3Utils 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.other.TextUtil
...@@ -548,13 +549,13 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() { ...@@ -548,13 +549,13 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
*/ */
fun printOrder(code: Int, dataBean: OrderDetails.DataBean, listener: (MessageBean) -> Unit) { fun printOrder(code: Int, dataBean: OrderDetails.DataBean, listener: (MessageBean) -> Unit) {
//訂單信息和廚房單,打印前需要修改dataBean的order_type和orderPayType //訂單信息和廚房單,打印前需要修改dataBean的order_type和orderPayType
MyOrderManage.setDataBean(dataBean) TakeawayOrder.getInstance().shoppingCart.dataBean = dataBean
CC.obtainBuilder("Component.Print") CC.obtainBuilder("Component.Print")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_ORDER) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_ORDER)
.setActionName("printActivity") .setActionName("printActivity")
.build() .build()
.callAsyncCallbackOnMainThread { _, result -> .callAsyncCallbackOnMainThread { _, result ->
MyOrderManage.setDataBean(null) TakeawayOrder.getInstance().shoppingCart.dataBean = null
listener.invoke(getMsgBean(code, "打印", result.isSuccess)) listener.invoke(getMsgBean(code, "打印", result.isSuccess))
} }
} }
...@@ -563,13 +564,13 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() { ...@@ -563,13 +564,13 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
* 打印結賬單 * 打印結賬單
*/ */
private fun printOrderClosing(dataBean: OrderDetails.DataBean, listener: (Int, Boolean) -> Unit) { private fun printOrderClosing(dataBean: OrderDetails.DataBean, listener: (Int, Boolean) -> Unit) {
MyOrderManage.setDataBean(dataBean) TakeawayOrder.getInstance().shoppingCart.dataBean = dataBean
CC.obtainBuilder("Component.Print") CC.obtainBuilder("Component.Print")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_CLOSING) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_CLOSING)
.setActionName("printActivity") .setActionName("printActivity")
.build() .build()
.callAsyncCallbackOnMainThread { _, result -> .callAsyncCallbackOnMainThread { _, result ->
MyOrderManage.setDataBean(null) TakeawayOrder.getInstance().shoppingCart.dataBean = null
listener.invoke(PrintCode, result.isSuccess) listener.invoke(PrintCode, result.isSuccess)
} }
} }
......
...@@ -119,7 +119,7 @@ public class PrjQueryPresenter extends BasePresenter<PrjQueryContract.Model, Prj ...@@ -119,7 +119,7 @@ public class PrjQueryPresenter extends BasePresenter<PrjQueryContract.Model, Prj
@Override @Override
public void onNext(@NonNull BaseResult info) { public void onNext(@NonNull BaseResult info) {
if (info != null) { if (info != null) {
if (info.getData() != null) { if (info.isSuccess()) {
getKitchenPrint(orderNo); getKitchenPrint(orderNo);
} else if (TextUtil.isNotEmptyOrNullOrUndefined(info.getErrMsg())) { } else if (TextUtil.isNotEmptyOrNullOrUndefined(info.getErrMsg())) {
mRootView.showMessage(info.getErrMsg()); mRootView.showMessage(info.getErrMsg());
......
...@@ -2,9 +2,10 @@ package com.gingersoft.gsa.delivery_pick_mode.mvp.presenter; ...@@ -2,9 +2,10 @@ package com.gingersoft.gsa.delivery_pick_mode.mvp.presenter;
import android.app.Activity; import android.app.Activity;
import android.app.Application; import android.app.Application;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; 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.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.base.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.bean.RiceponAddOrderBean; import com.gingersoft.gsa.cloud.bean.RiceponAddOrderBean;
import com.gingersoft.gsa.cloud.print.bean.OrderDetails; import com.gingersoft.gsa.cloud.print.bean.OrderDetails;
...@@ -16,12 +17,16 @@ import com.jess.arms.http.imageloader.ImageLoader; ...@@ -16,12 +17,16 @@ import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager; import com.jess.arms.integration.AppManager;
import com.jess.arms.mvp.BasePresenter; import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.utils.RxLifecycleUtils; import com.jess.arms.utils.RxLifecycleUtils;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull; import io.reactivex.annotations.NonNull;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
...@@ -195,6 +200,7 @@ public class SendOrderPresenter extends BasePresenter<SendOrderContract.Model, S ...@@ -195,6 +200,7 @@ public class SendOrderPresenter extends BasePresenter<SendOrderContract.Model, S
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) { .subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override @Override
public void onNext(BaseResult s) { public void onNext(BaseResult s) {
TakeawayOrder.getInstance().initialization();
kill(); kill();
} }
}); });
...@@ -208,7 +214,7 @@ public class SendOrderPresenter extends BasePresenter<SendOrderContract.Model, S ...@@ -208,7 +214,7 @@ public class SendOrderPresenter extends BasePresenter<SendOrderContract.Model, S
activity.finish(); activity.finish();
} }
} }
MyOrderManage.getInstance().clear(); TakeawayOrder.getInstance().getShoppingCart().initialization(true);
mRootView.killMyself(); mRootView.killMyself();
} }
...@@ -229,10 +235,10 @@ public class SendOrderPresenter extends BasePresenter<SendOrderContract.Model, S ...@@ -229,10 +235,10 @@ public class SendOrderPresenter extends BasePresenter<SendOrderContract.Model, S
json.put("payType", 1); json.put("payType", 1);
json.put("receiver", name); 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("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("waimaiSendTime", waimaiSendTime);//送单时间
json.put("addressId", addressId); json.put("addressId", addressId);
json.put("sendTime", waimaiSendTime); json.put("sendTime", waimaiSendTime);
......
...@@ -191,7 +191,7 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements ...@@ -191,7 +191,7 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements
if (view.getId() == R.id.tv_prj_record_print_operation) { if (view.getId() == R.id.tv_prj_record_print_operation) {
//重印 //重印
List<PrjBean.DataBean.Bean> prjData = prjQueryBean.getData(); 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) -> { new AppDialog().showWaringDialog(mContext, "食品已打印,確認重印?", (view1, dialog) -> {
dialog.dismiss(); dialog.dismiss();
...@@ -217,12 +217,6 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements ...@@ -217,12 +217,6 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements
List<PrjBean.DataBean.Bean> printDatas = new ArrayList<>(); List<PrjBean.DataBean.Bean> printDatas = new ArrayList<>();
printDatas.add(prjData.get(position)); printDatas.add(prjData.get(position));
printPrj(printDatas); 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() + "")) { } else if (prjData.get(position).getProductId().equals(prjData.get(position + 1).getParentId() + "")) {
//有子食品 //有子食品
List<PrjBean.DataBean.Bean> printDatas = new ArrayList<>(); List<PrjBean.DataBean.Bean> printDatas = new ArrayList<>();
...@@ -235,15 +229,19 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements ...@@ -235,15 +229,19 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements
} }
} }
printPrj(printDatas); printPrj(printDatas);
} else {
//沒有子食品
//直接打印
List<PrjBean.DataBean.Bean> printDatas = new ArrayList<>();
printDatas.add(prjData.get(position));
printPrj(printDatas);
} }
} else { } else {
//是食品,直接打印子食品 //是食品,直接打印子食品
List<PrjBean.DataBean.Bean> printDatas = new ArrayList<>(); List<PrjBean.DataBean.Bean> printDatas = new ArrayList<>();
printDatas.add(prjData.get(position)); printDatas.add(prjData.get(position));
printPrj(printDatas); printPrj(printDatas);
} }
//添加重印的報警推送
OkHttp3Utils.noticePersonnel(AppConstans.RP_REPRINT_CODE, "重印,訂單號:" + prjData.get(position).getOrderNo());
} }
private void printPrj(List<PrjBean.DataBean.Bean> printDatas) { private void printPrj(List<PrjBean.DataBean.Bean> printDatas) {
...@@ -253,6 +251,8 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements ...@@ -253,6 +251,8 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements
printDatas.get(i).setCurrentIndex(i); printDatas.get(i).setCurrentIndex(i);
ids.append(printDatas.get(i).getId()); ids.append(printDatas.get(i).getId());
} }
//添加重印的報警推送
OkHttp3Utils.noticePersonnel(AppConstans.RP_REPRINT_CODE, "重印,訂單號:" + printDatas.get(0).getOrderNo());
String finalIds = ids.toString(); String finalIds = ids.toString();
CC.obtainBuilder("Component.Print") CC.obtainBuilder("Component.Print")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_KITCHEN) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_KITCHEN)
......
...@@ -32,19 +32,21 @@ public class PrjStateAdapter extends BaseQuickAdapter<PrjBean.DataBean.Bean, Bas ...@@ -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 state = baseViewHolder.getView(R.id.tv_prj_record_print_state);
TextView foodName = baseViewHolder.getView(R.id.tv_prj_record_food_name); TextView foodName = baseViewHolder.getView(R.id.tv_prj_record_food_name);
foodName.setText(dataBean.getProductName()); foodName.setText(dataBean.getProductName());
if (dataBean.getPresence() == 0) {
state.setText("沒有生成"); if (dataBean.getPrinterType() == 3) {
state.setTextColor(ContextCompat.getColor(context, R.color.red));
} else if (dataBean.getType() == 3) {
state.setText("已打印"); state.setText("已打印");
state.setTextColor(ContextCompat.getColor(context, R.color.order_state4_color)); state.setTextColor(ContextCompat.getColor(context, R.color.order_state4_color));
} else if (dataBean.getType() == 1) { } else if (dataBean.getPresence() == 0) {
state.setText("打印失敗"); 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)); state.setTextColor(ContextCompat.getColor(context, R.color.red));
} else { } else {
state.setText("打印失敗"); state.setText("打印失敗");
state.setTextColor(ContextCompat.getColor(context, R.color.red)); state.setTextColor(ContextCompat.getColor(context, R.color.red));
} }
state.setSelected(true);
if (baseViewHolder.getAdapterPosition() == 0) { if (baseViewHolder.getAdapterPosition() == 0) {
//只第一次測量一下 //只第一次測量一下
indentation = new BigDecimal(foodName.getPaint().measureText("哈")).setScale(0, BigDecimal.ROUND_HALF_UP).intValue(); indentation = new BigDecimal(foodName.getPaint().measureText("哈")).setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
......
...@@ -25,6 +25,8 @@ ...@@ -25,6 +25,8 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
android:ellipsize="marquee"
android:focusableInTouchMode="true"
android:gravity="center" android:gravity="center"
android:textColor="@color/theme_333_color" android:textColor="@color/theme_333_color"
android:textSize="@dimen/dp_16" android:textSize="@dimen/dp_16"
......
...@@ -7,14 +7,13 @@ import com.gingersoft.gsa.cloud.base.Api; ...@@ -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.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.FoodBean; 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.CommonConfiguration;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils; 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.constans.HttpsConstans;
import com.gingersoft.gsa.cloud.database.bean.ColorBean; import com.gingersoft.gsa.cloud.database.bean.ColorBean;
import com.gingersoft.gsa.cloud.database.bean.Discount; import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.database.bean.ExpandInfo; 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.bean.PrinterListBean;
import com.gingersoft.gsa.cloud.database.utils.ColorDaoUtils; import com.gingersoft.gsa.cloud.database.utils.ColorDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.ComboItemDaoUtils; import com.gingersoft.gsa.cloud.database.utils.ComboItemDaoUtils;
......
...@@ -5,6 +5,9 @@ ...@@ -5,6 +5,9 @@
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<application> <application>
<activity <activity
android:name=".mvp.ui.activity.menu.ShellActivity"
android:screenOrientation="portrait" />
<activity
android:name=".mvp.ui.activity.NewMainActivity" android:name=".mvp.ui.activity.NewMainActivity"
android:launchMode="singleTask" /> android:launchMode="singleTask" />
<activity <activity
...@@ -31,34 +34,6 @@ ...@@ -31,34 +34,6 @@
<activity <activity
android:name=".mvp.ui.activity.RestaurantQrCodeActivity" android:name=".mvp.ui.activity.RestaurantQrCodeActivity"
android:screenOrientation="portrait" /> 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 <activity
android:name=".mvp.ui.activity.menu.FoodMenuManageActivity" android:name=".mvp.ui.activity.menu.FoodMenuManageActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
......
...@@ -7,6 +7,7 @@ import com.billy.cc.core.component.CCResult; ...@@ -7,6 +7,7 @@ import com.billy.cc.core.component.CCResult;
import com.billy.cc.core.component.IComponent; import com.billy.cc.core.component.IComponent;
import com.gingersoft.gsa.cloud.function.FModule; 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.NewMainActivity;
import com.gingersoft.gsa.cloud.main.mvp.ui.activity.menu.FoodMenuManageActivity;
public class ComponentMain implements IComponent { public class ComponentMain implements IComponent {
...@@ -70,6 +71,11 @@ public class ComponentMain implements IComponent { ...@@ -70,6 +71,11 @@ public class ComponentMain implements IComponent {
case "showMainActivity": case "showMainActivity":
openActivity(cc); openActivity(cc);
break; 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": case "getLifecycleFragment":
//demo for provide fragment object to other component //demo for provide fragment object to other component
getLifecycleFragment(cc); getLifecycleFragment(cc);
......
...@@ -5,18 +5,18 @@ import dagger.Component; ...@@ -5,18 +5,18 @@ import dagger.Component;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.gingersoft.gsa.cloud.main.di.module.FoodSetModule; import com.gingersoft.gsa.cloud.main.di.module.SelectModule;
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.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: * Description:
* <p> * <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="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow 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">Star me</a>
...@@ -25,17 +25,17 @@ import com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.FoodSetFragment; ...@@ -25,17 +25,17 @@ import com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.FoodSetFragment;
* ================================================ * ================================================
*/ */
@FragmentScope @FragmentScope
@Component(modules = FoodSetModule.class, dependencies = AppComponent.class) @Component(modules = SelectModule.class, dependencies = AppComponent.class)
public interface FoodSetComponent { public interface SelectComponent {
void inject(FoodSetFragment fragment); void inject(SelectFragment fragment);
@Component.Builder @Component.Builder
interface Builder { interface Builder {
@BindsInstance @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; ...@@ -6,15 +6,15 @@ import dagger.Binds;
import dagger.Module; import dagger.Module;
import dagger.Provides; import dagger.Provides;
import com.gingersoft.gsa.cloud.main.mvp.contract.FoodSetContract; import com.gingersoft.gsa.cloud.main.mvp.contract.SelectContract;
import com.gingersoft.gsa.cloud.main.mvp.model.FoodSetModel; import com.gingersoft.gsa.cloud.main.mvp.model.SelectModel;
/** /**
* ================================================ * ================================================
* Description: * Description:
* <p> * <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="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow 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">Star me</a>
...@@ -23,8 +23,8 @@ import com.gingersoft.gsa.cloud.main.mvp.model.FoodSetModel; ...@@ -23,8 +23,8 @@ import com.gingersoft.gsa.cloud.main.mvp.model.FoodSetModel;
* ================================================ * ================================================
*/ */
@Module @Module
public abstract class FoodSetModule { public abstract class SelectModule {
@Binds @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; ...@@ -8,7 +8,7 @@ import com.jess.arms.mvp.IModel;
* ================================================ * ================================================
* Description: * Description:
* <p> * <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="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow 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">Star me</a>
...@@ -16,7 +16,7 @@ import com.jess.arms.mvp.IModel; ...@@ -16,7 +16,7 @@ import com.jess.arms.mvp.IModel;
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a> * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================ * ================================================
*/ */
public interface FoodSetContract { public interface SelectContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息 //对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView { interface View extends IView {
......
...@@ -2,22 +2,20 @@ package com.gingersoft.gsa.cloud.main.mvp.model; ...@@ -2,22 +2,20 @@ package com.gingersoft.gsa.cloud.main.mvp.model;
import android.app.Application; import android.app.Application;
import com.gingersoft.gsa.cloud.main.mvp.contract.SelectContract;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.jess.arms.di.scope.FragmentScope;
import com.jess.arms.integration.IRepositoryManager; import com.jess.arms.integration.IRepositoryManager;
import com.jess.arms.mvp.BaseModel; import com.jess.arms.mvp.BaseModel;
import com.jess.arms.di.scope.FragmentScope;
import javax.inject.Inject; import javax.inject.Inject;
import com.gingersoft.gsa.cloud.main.mvp.contract.FoodSetContract;
/** /**
* ================================================ * ================================================
* Description: * Description:
* <p> * <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="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow 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">Star me</a>
...@@ -26,14 +24,14 @@ import com.gingersoft.gsa.cloud.main.mvp.contract.FoodSetContract; ...@@ -26,14 +24,14 @@ import com.gingersoft.gsa.cloud.main.mvp.contract.FoodSetContract;
* ================================================ * ================================================
*/ */
@FragmentScope @FragmentScope
public class FoodSetModel extends BaseModel implements FoodSetContract.Model { public class SelectModel extends BaseModel implements SelectContract.Model {
@Inject @Inject
Gson mGson; Gson mGson;
@Inject @Inject
Application mApplication; Application mApplication;
@Inject @Inject
public FoodSetModel(IRepositoryManager repositoryManager) { public SelectModel(IRepositoryManager repositoryManager) {
super(repositoryManager); super(repositoryManager);
} }
......
...@@ -30,15 +30,13 @@ public class FoodMenuEditBean { ...@@ -30,15 +30,13 @@ public class FoodMenuEditBean {
*/ */
public final static int EDIT_FOOD_ITEM_BOOLEAN = 4; 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 { ...@@ -114,6 +112,14 @@ public class FoodMenuEditBean {
*/ */
private boolean isEdit = true; 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 @Data
...@@ -139,6 +145,7 @@ public class FoodMenuEditBean { ...@@ -139,6 +145,7 @@ public class FoodMenuEditBean {
this.showTitle = showTitle; this.showTitle = showTitle;
this.isRequired = isRequired; this.isRequired = isRequired;
} }
public FoodMenuEditBean(int itemType, String showTitle, boolean isRequired, String hintText, boolean isEdit) { public FoodMenuEditBean(int itemType, String showTitle, boolean isRequired, String hintText, boolean isEdit) {
this.itemType = itemType; this.itemType = itemType;
this.showTitle = showTitle; this.showTitle = showTitle;
...@@ -146,6 +153,7 @@ public class FoodMenuEditBean { ...@@ -146,6 +153,7 @@ public class FoodMenuEditBean {
this.hintText = hintText; this.hintText = hintText;
this.isEdit = isEdit; this.isEdit = isEdit;
} }
public FoodMenuEditBean(int itemType, String showTitle, boolean isRequired, String hintText) { public FoodMenuEditBean(int itemType, String showTitle, boolean isRequired, String hintText) {
this.itemType = itemType; this.itemType = itemType;
this.showTitle = showTitle; this.showTitle = showTitle;
...@@ -161,6 +169,15 @@ public class FoodMenuEditBean { ...@@ -161,6 +169,15 @@ public class FoodMenuEditBean {
this.showValue = showValue; 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) { public FoodMenuEditBean(int itemType, String showTitle, boolean isRequired, String hintText, int fragmentType) {
this.itemType = itemType; this.itemType = itemType;
this.showTitle = showTitle; this.showTitle = showTitle;
......
...@@ -2,7 +2,7 @@ package com.gingersoft.gsa.cloud.main.mvp.presenter; ...@@ -2,7 +2,7 @@ package com.gingersoft.gsa.cloud.main.mvp.presenter;
import android.app.Application; 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.di.scope.FragmentScope;
import com.jess.arms.http.imageloader.ImageLoader; import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager; import com.jess.arms.integration.AppManager;
...@@ -17,7 +17,7 @@ import me.jessyan.rxerrorhandler.core.RxErrorHandler; ...@@ -17,7 +17,7 @@ import me.jessyan.rxerrorhandler.core.RxErrorHandler;
* ================================================ * ================================================
* Description: * Description:
* <p> * <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="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow 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">Star me</a>
...@@ -26,7 +26,7 @@ import me.jessyan.rxerrorhandler.core.RxErrorHandler; ...@@ -26,7 +26,7 @@ import me.jessyan.rxerrorhandler.core.RxErrorHandler;
* ================================================ * ================================================
*/ */
@FragmentScope @FragmentScope
public class FoodSetPresenter extends BasePresenter<FoodSetContract.Model, FoodSetContract.View> { public class SelectPresenter extends BasePresenter<SelectContract.Model, SelectContract.View> {
@Inject @Inject
RxErrorHandler mErrorHandler; RxErrorHandler mErrorHandler;
@Inject @Inject
...@@ -37,7 +37,7 @@ public class FoodSetPresenter extends BasePresenter<FoodSetContract.Model, FoodS ...@@ -37,7 +37,7 @@ public class FoodSetPresenter extends BasePresenter<FoodSetContract.Model, FoodS
AppManager mAppManager; AppManager mAppManager;
@Inject @Inject
public FoodSetPresenter(FoodSetContract.Model model, FoodSetContract.View rootView) { public SelectPresenter(SelectContract.Model model, SelectContract.View rootView) {
super(model, rootView); super(model, rootView);
} }
......
...@@ -10,6 +10,7 @@ import androidx.core.content.ContextCompat; ...@@ -10,6 +10,7 @@ import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; 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.database.bean.ExpandInfo;
import com.gingersoft.gsa.cloud.main.R; import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.R2; import com.gingersoft.gsa.cloud.main.R2;
...@@ -24,7 +25,9 @@ import com.jess.arms.utils.ArmsUtils; ...@@ -24,7 +25,9 @@ import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton; import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
import com.qmuiteam.qmui.widget.QMUITopBar; import com.qmuiteam.qmui.widget.QMUITopBar;
import java.text.ParseException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar;
import java.util.List; import java.util.List;
import butterknife.BindView; import butterknife.BindView;
...@@ -131,9 +134,18 @@ public class ExpandListActivity extends BaseActivity<ExpandListPresenter> implem ...@@ -131,9 +134,18 @@ public class ExpandListActivity extends BaseActivity<ExpandListPresenter> implem
//保存 //保存
List<ExpandInfo> data = expandListAdapter.getData(); List<ExpandInfo> data = expandListAdapter.getData();
List<ExpandInfo> updateDate = new ArrayList<>(); List<ExpandInfo> updateDate = new ArrayList<>();
for (int i = 0; i < data.size(); i++) { for (ExpandInfo expandInfo : data) {
if (data.get(i).isUpdate()) { if(expandInfo.isUpdate()){
updateDate.add(data.get(i)); 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) { if (updateDate.size() > 0) {
......
...@@ -10,12 +10,13 @@ import com.gingersoft.gsa.cloud.main.R; ...@@ -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.di.component.DaggerFoodMenuManageComponent;
import com.gingersoft.gsa.cloud.main.mvp.contract.FoodMenuManageContract; 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.presenter.FoodMenuManagePresenter;
import com.gingersoft.gsa.cloud.main.mvp.ui.fragment.menu.FoodMenuFragment;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog; import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.jess.arms.base.BaseFragmentActivity; import com.jess.arms.base.BaseFragmentActivity;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils; 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; import static com.jess.arms.utils.Preconditions.checkNotNull;
...@@ -50,7 +51,7 @@ public class FoodMenuManageActivity extends BaseFragmentActivity<FoodMenuManageP ...@@ -50,7 +51,7 @@ public class FoodMenuManageActivity extends BaseFragmentActivity<FoodMenuManageP
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { 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 @Override
......
...@@ -8,6 +8,7 @@ import androidx.core.content.ContextCompat; ...@@ -8,6 +8,7 @@ import androidx.core.content.ContextCompat;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.viewholder.BaseViewHolder; import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.main.R; import com.gingersoft.gsa.cloud.main.R;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
...@@ -22,16 +23,19 @@ import java.util.List; ...@@ -22,16 +23,19 @@ import java.util.List;
* Time: 12:19 * Time: 12:19
* Use: * Use:
*/ */
public class FoodMenuMangerLeftAdapter extends BaseQuickAdapter<String, BaseViewHolder> { public class FoodMenuMangerLeftAdapter extends BaseQuickAdapter<Food, BaseViewHolder> {
private int selectIndex = 0; private int selectIndex = 0;
private int lastIndex = -1;
private Context context; private Context context;
private int whiteColor; private int whiteColor;
private int blueColor; private int blueColor;
private int textNormalColor; 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; this.context = context;
whiteColor = ContextCompat.getColor(context, R.color.white); whiteColor = ContextCompat.getColor(context, R.color.white);
blueColor = ContextCompat.getColor(context, R.color.theme_color); blueColor = ContextCompat.getColor(context, R.color.theme_color);
...@@ -39,9 +43,9 @@ public class FoodMenuMangerLeftAdapter extends BaseQuickAdapter<String, BaseView ...@@ -39,9 +43,9 @@ public class FoodMenuMangerLeftAdapter extends BaseQuickAdapter<String, BaseView
} }
@Override @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); TextView mTvCategoryName = baseViewHolder.getView(R.id.tv_food_menu_manger_category_name);
mTvCategoryName.setText(s); mTvCategoryName.setText(food.getFoodName());
if (selectIndex == baseViewHolder.getAdapterPosition()) { if (selectIndex == baseViewHolder.getAdapterPosition()) {
mTvCategoryName.setBackgroundColor(whiteColor); mTvCategoryName.setBackgroundColor(whiteColor);
mTvCategoryName.setTextColor(blueColor); mTvCategoryName.setTextColor(blueColor);
...@@ -51,8 +55,11 @@ public class FoodMenuMangerLeftAdapter extends BaseQuickAdapter<String, BaseView ...@@ -51,8 +55,11 @@ public class FoodMenuMangerLeftAdapter extends BaseQuickAdapter<String, BaseView
} }
} }
public void setSelectIndex(int selectIndex) { public void setSelectIndex(int currentIndex) {
this.selectIndex = selectIndex; if(selectIndex != currentIndex){
notifyDataSetChanged(); notifyItemChanged(selectIndex);
selectIndex = currentIndex;
notifyItemChanged(selectIndex);
}
} }
} }
...@@ -2,14 +2,14 @@ package com.gingersoft.gsa.cloud.main.mvp.ui.adapter.foodmenu; ...@@ -2,14 +2,14 @@ package com.gingersoft.gsa.cloud.main.mvp.ui.adapter.foodmenu;
import android.widget.SectionIndexer; 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.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.main.R; import com.gingersoft.gsa.cloud.main.R;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
...@@ -19,45 +19,67 @@ import java.util.List; ...@@ -19,45 +19,67 @@ import java.util.List;
* Time: 11:38 * Time: 11:38
* Use: * Use:
*/ */
public class FoodMenuMangerRightAdapter extends BaseQuickAdapter<String, BaseViewHolder> implements SectionIndexer { public class FoodMenuMangerRightAdapter extends BaseDelegateMultiAdapter<Food, BaseViewHolder> implements SectionIndexer {
private String[] foods; private List<Food> foodGroups;
private List<String> category; 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.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 @Override
public Object[] getSections() { public Object[] getSections() {
return category.toArray(); return foodGroups.toArray();
} }
@Override @Override
public int getPositionForSection(int sectionIndex) { public int getPositionForSection(int sectionIndex) {
for (int i = 0; i < foods.length; i++) { for (int i = 0; i < foods.size(); i++) {
if (foods[i].contains(category.get(sectionIndex))) { if (foods.get(i).getId().equals(foodGroups.get(sectionIndex).getId())) {
return i; return i;
} }
} }
return 0; return -1;
} }
@Override @Override
public int getSectionForPosition(int position) { public int getSectionForPosition(int position) {
for (int i = 0; i < category.size(); i++) { // int i1 = foodGroups.indexOf(foods.get(position));
if (foods[position].contains(category.get(i))) { // for (int i = 0; i < foodGroups.size(); i++) {
return i; // if (foods.get(position).getId().equals(foodGroups.get(i).getId())) {
} // return i;
} // }
return 0; // }
return foodGroups.indexOf(foods.get(position));
} }
@Override @Override
protected void convert(@NotNull BaseViewHolder baseViewHolder, String s) { protected void convert(@NotNull BaseViewHolder baseViewHolder, Food food) {
baseViewHolder.setText(R.id.item_food_menu_food_name, s); 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 { ...@@ -42,7 +42,11 @@ public class RadioItemProvider extends FoodMenuItemProvider {
super.convert(baseViewHolder, foodMenuEditBean); super.convert(baseViewHolder, foodMenuEditBean);
RecyclerView rv = baseViewHolder.getView(R.id.rv_radio); RecyclerView rv = baseViewHolder.getView(R.id.rv_radio);
rv.setLayoutManager(new GridLayoutManager(context, 2)); 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, ...@@ -25,6 +25,7 @@ public class RadioAdapter extends BaseQuickAdapter<FoodMenuEditBean.ShowClient,
public RadioAdapter(@Nullable List<FoodMenuEditBean.ShowClient> data) { public RadioAdapter(@Nullable List<FoodMenuEditBean.ShowClient> data) {
super(R.layout.item_child_radio, data); super(R.layout.item_child_radio, data);
addChildClickViewIds(R.id.rb_food_menu_item);
} }
@Override @Override
...@@ -32,9 +33,9 @@ public class RadioAdapter extends BaseQuickAdapter<FoodMenuEditBean.ShowClient, ...@@ -32,9 +33,9 @@ public class RadioAdapter extends BaseQuickAdapter<FoodMenuEditBean.ShowClient,
RadioButton radioButton = baseViewHolder.getView(R.id.rb_food_menu_item); RadioButton radioButton = baseViewHolder.getView(R.id.rb_food_menu_item);
radioButton.setText(showClient.getClientName()); radioButton.setText(showClient.getClientName());
radioButton.setChecked(baseViewHolder.getAdapterPosition() == checkedIndex); 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 ...@@ -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 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) { protected void toFragmentByAdapter(FoodMenuAdapter adapter, int position) {
if (adapter.getItemViewType(position) == FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT) { if (adapter.getItemViewType(position) == FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT) {
...@@ -77,7 +136,7 @@ public abstract class BaseFoodMenuFragment<P extends IPresenter> extends BaseFra ...@@ -77,7 +136,7 @@ public abstract class BaseFoodMenuFragment<P extends IPresenter> extends BaseFra
fragment = NewFoodFragment.newInstance(); fragment = NewFoodFragment.newInstance();
break; break;
case SELECT_TIME_PERIOD: case SELECT_TIME_PERIOD:
fragment = EditFoodFragment.newInstance(fragmentType,"選擇時段"); fragment = EditFoodFragment.newInstance(fragmentType, "選擇時段");
break; break;
case SELECT_FOOD_GROUP: case SELECT_FOOD_GROUP:
fragment = EditFoodFragment.newInstance(fragmentType, "選擇食品組"); fragment = EditFoodFragment.newInstance(fragmentType, "選擇食品組");
...@@ -94,9 +153,38 @@ public abstract class BaseFoodMenuFragment<P extends IPresenter> extends BaseFra ...@@ -94,9 +153,38 @@ public abstract class BaseFoodMenuFragment<P extends IPresenter> extends BaseFra
case ADD_FOOD_ITEM: case ADD_FOOD_ITEM:
fragment = NewlyAddedFragment.newInstance(fragmentType, "加配細項"); fragment = NewlyAddedFragment.newInstance(fragmentType, "加配細項");
break; break;
case EDIT_FOOD_ITEM_GROUP: case SELECT_FOOD_ITEM_GROUP:
fragment = EditFoodFragment.newInstance(fragmentType, "選擇細項組"); fragment = EditFoodFragment.newInstance(fragmentType, "選擇細項組");
break; 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: default:
break; break;
......
...@@ -225,6 +225,9 @@ public class EditFoodFragment extends BaseFoodMenuFragment<EditFoodPresenter> im ...@@ -225,6 +225,9 @@ public class EditFoodFragment extends BaseFoodMenuFragment<EditFoodPresenter> im
case SELECT_TIME_PERIOD: case SELECT_TIME_PERIOD:
toFragmentType = NEW_TIME_PERIOD; toFragmentType = NEW_TIME_PERIOD;
break; break;
case SELECT_FOOD_ITEM_GROUP:
toFragmentType = ADD_FOOD_ITEM_GROUP;
break;
default: default:
break; break;
} }
......
...@@ -21,6 +21,7 @@ import com.gingersoft.gsa.cloud.main.mvp.presenter.EditFoodItemsPresenter; ...@@ -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.gingersoft.gsa.cloud.main.mvp.ui.activity.menu.ShellActivity;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.alpha.QMUIAlphaTextView;
import butterknife.BindView; import butterknife.BindView;
import butterknife.OnClick; import butterknife.OnClick;
...@@ -29,28 +30,26 @@ import static com.jess.arms.utils.Preconditions.checkNotNull; ...@@ -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 { public class EditFoodItemsFragment extends BaseFoodMenuFragment<EditFoodItemsPresenter> implements EditFoodItemsContract.View, View.OnClickListener {
@BindView(R2.id.tv_add_item) @BindView(R2.id.tv_add_item)
TextView tvAddItem; QMUIAlphaTextView tvAddItem;
@BindView(R2.id.tv_food_item_manger) @BindView(R2.id.tv_food_item_manger)
TextView tvFoodItemManger; QMUIAlphaTextView tvFoodItemManger;
@BindView(R2.id.rv_food_items) @BindView(R2.id.rv_food_items)
RecyclerView rvFoodItems; 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(); EditFoodItemsFragment fragment = new EditFoodItemsFragment();
Bundle bundle = new Bundle();
bundle.putInt(FRAGMENT_TYPE, fragmentType);
fragment.setArguments(bundle);
return fragment; return fragment;
} }
...@@ -71,7 +70,19 @@ public class EditFoodItemsFragment extends BaseFoodMenuFragment<EditFoodItemsPre ...@@ -71,7 +70,19 @@ public class EditFoodItemsFragment extends BaseFoodMenuFragment<EditFoodItemsPre
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { 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 ...@@ -146,14 +157,24 @@ public class EditFoodItemsFragment extends BaseFoodMenuFragment<EditFoodItemsPre
@Override @Override
public void onClick(View v) { public void onClick(View v) {
int viewId = v.getId(); 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); Intent intent = new Intent(mContext, ShellActivity.class);
if (fragmentType == FOOD_ITEMS_PAGE) {
intent.putExtra(FRAGMENT_TYPE, ADD_FOOD_ITEM); 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); startActivity(intent);
} else if(viewId == R.id.tv_food_item_manger){
//細項管理
} }
} }
......
...@@ -86,8 +86,8 @@ public class NewFoodFragment extends BaseFoodMenuFragment<NewFoodPresenter> impl ...@@ -86,8 +86,8 @@ public class NewFoodFragment extends BaseFoodMenuFragment<NewFoodPresenter> impl
titles.add("套餐"); titles.add("套餐");
mFragments.add(NewlyAddedFragment.newInstance(FOOD_PROPERTIES, null, true)); mFragments.add(NewlyAddedFragment.newInstance(FOOD_PROPERTIES, null, true));
mFragments.add(EditFoodItemsFragment.newInstance()); mFragments.add(EditFoodItemsFragment.newInstance(FOOD_ITEMS_PAGE));
mFragments.add(FoodSetFragment.newInstance()); mFragments.add(EditFoodItemsFragment.newInstance(FOOD_SET_MEAL_PAGE));
//实例化适配器 //实例化适配器
TabFragmentAdapter mTabFragmentAdapter = new TabFragmentAdapter(getParentFragmentManager(), 1); TabFragmentAdapter mTabFragmentAdapter = new TabFragmentAdapter(getParentFragmentManager(), 1);
......
...@@ -15,6 +15,8 @@ import androidx.recyclerview.widget.LinearLayoutManager; ...@@ -15,6 +15,8 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.base.utils.other.TextUtil; 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.R;
import com.gingersoft.gsa.cloud.main.R2; import com.gingersoft.gsa.cloud.main.R2;
import com.gingersoft.gsa.cloud.main.di.component.DaggerNewlyAddedComponent; import com.gingersoft.gsa.cloud.main.di.component.DaggerNewlyAddedComponent;
...@@ -29,6 +31,8 @@ import com.jess.arms.utils.ArmsUtils; ...@@ -29,6 +31,8 @@ import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton; import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
import com.qmuiteam.qmui.widget.QMUITopBar; import com.qmuiteam.qmui.widget.QMUITopBar;
import java.util.List;
import butterknife.BindView; import butterknife.BindView;
import static com.gingersoft.gsa.cloud.ui.recylcler.decorator.DividerItemDecoration.VERTICAL_LIST; import static com.gingersoft.gsa.cloud.ui.recylcler.decorator.DividerItemDecoration.VERTICAL_LIST;
...@@ -114,6 +118,24 @@ public class NewlyAddedFragment extends BaseFoodMenuFragment<NewlyAddedPresenter ...@@ -114,6 +118,24 @@ public class NewlyAddedFragment extends BaseFoodMenuFragment<NewlyAddedPresenter
foodMenuAdapter.setOnItemClickListener((adapter, view, position) -> { foodMenuAdapter.setOnItemClickListener((adapter, view, position) -> {
if (adapter.getItemViewType(position) == FoodMenuEditBean.EDIT_FOOD_ITEM_SELECT) { 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) { if (toShellActivity) {
Intent intent = new Intent(mContext, ShellActivity.class); Intent intent = new Intent(mContext, ShellActivity.class);
intent.putExtra(FRAGMENT_TYPE, foodMenuAdapter.getData().get(position).getFragmentType()); intent.putExtra(FRAGMENT_TYPE, foodMenuAdapter.getData().get(position).getFragmentType());
...@@ -121,6 +143,7 @@ public class NewlyAddedFragment extends BaseFoodMenuFragment<NewlyAddedPresenter ...@@ -121,6 +143,7 @@ public class NewlyAddedFragment extends BaseFoodMenuFragment<NewlyAddedPresenter
} else { } else {
toFragmentByFragmentType(foodMenuAdapter.getData().get(position).getFragmentType()); toFragmentByFragmentType(foodMenuAdapter.getData().get(position).getFragmentType());
} }
}
} else { } else {
} }
......
...@@ -10,30 +10,59 @@ import android.view.ViewGroup; ...@@ -10,30 +10,59 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment; 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.R;
import com.gingersoft.gsa.cloud.main.di.component.DaggerFoodSetComponent; import com.gingersoft.gsa.cloud.main.R2;
import com.gingersoft.gsa.cloud.main.mvp.contract.FoodSetContract; import com.gingersoft.gsa.cloud.main.di.component.DaggerSelectComponent;
import com.gingersoft.gsa.cloud.main.mvp.presenter.FoodSetPresenter; 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.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils; 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; import static com.jess.arms.utils.Preconditions.checkNotNull;
/** /**
* 新增食品--套餐編輯頁面 * 餐牌的選擇頁面:默認選擇,排除內容
*/ */
public class FoodSetFragment extends BaseFoodMenuFragment<FoodSetPresenter> implements FoodSetContract.View { public class SelectFragment extends BaseFoodMenuFragment<SelectPresenter> implements SelectContract.View {
public static FoodSetFragment newInstance() { @BindView(R2.id.topbar_list)
FoodSetFragment fragment = new FoodSetFragment(); 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; return fragment;
} }
@Override @Override
public void setupFragmentComponent(@NonNull AppComponent appComponent) { public void setupFragmentComponent(@NonNull AppComponent appComponent) {
DaggerFoodSetComponent //如找不到该类,请编译一下项目 DaggerSelectComponent //如找不到该类,请编译一下项目
.builder() .builder()
.appComponent(appComponent) .appComponent(appComponent)
.view(this) .view(this)
...@@ -43,11 +72,39 @@ public class FoodSetFragment extends BaseFoodMenuFragment<FoodSetPresenter> impl ...@@ -43,11 +72,39 @@ public class FoodSetFragment extends BaseFoodMenuFragment<FoodSetPresenter> impl
@Override @Override
public View initView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 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 @Override
public void initData(@Nullable Bundle savedInstanceState) { 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 @@ ...@@ -15,6 +15,7 @@
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_content" android:id="@+id/rv_content"
android:background="@color/white"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"/> android:layout_height="match_parent"/>
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"> android:orientation="horizontal">
<TextView <com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/tv_add_item" android:id="@+id/tv_add_item"
style="@style/MainFoodMenuThemeColorTitleStyle" style="@style/MainFoodMenuThemeColorTitleStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
android:text="加配細項+" android:text="加配細項+"
android:textStyle="bold" /> android:textStyle="bold" />
<TextView <com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/tv_food_item_manger" android:id="@+id/tv_food_item_manger"
style="@style/MainFoodMenuThemeColorTitleStyle" style="@style/MainFoodMenuThemeColorTitleStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
...@@ -56,6 +56,7 @@ ...@@ -56,6 +56,7 @@
android:paddingBottom="@dimen/dp_10"> android:paddingBottom="@dimen/dp_10">
<TextView <TextView
android:id="@+id/tv_food_item_name_text"
style="@style/MainFoodMenuThemeColorTitleStyle" style="@style/MainFoodMenuThemeColorTitleStyle"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
......
...@@ -19,19 +19,19 @@ ...@@ -19,19 +19,19 @@
android:orientation="horizontal"> android:orientation="horizontal">
<RelativeLayout <RelativeLayout
android:layout_width="0dp" android:id="@+id/layout_food_menu_left"
android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical"> android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_food_menu_food_classification" 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_height="match_parent"
android:layout_above="@id/btn_add_food_group" android:layout_above="@id/btn_add_food_group"
android:background="@color/color_f3" /> android:background="@color/color_f3" />
<Button <com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_add_food_group" android:id="@+id/btn_add_food_group"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -45,9 +45,8 @@ ...@@ -45,9 +45,8 @@
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_food_menu_all_food" android:id="@+id/rv_food_menu_all_food"
android:layout_width="0dp" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="3.5"
android:orientation="vertical" /> android:orientation="vertical" />
</LinearLayout> </LinearLayout>
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" <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_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/grey_100"
android:orientation="vertical"> android:orientation="vertical">
<include layout="@layout/include_list_save_layout" /> <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"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/dp_300"> android:layout_height="@dimen/dp_50">
<TextView <TextView
android:id="@+id/item_food_menu_food_name" android:id="@+id/item_food_menu_food_name"
......
...@@ -10,6 +10,7 @@ import com.gingersoft.gsa.cloud.base.order.discount.MemberDiscount; ...@@ -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.MultyDiscount;
import com.gingersoft.gsa.cloud.base.order.discount.NomalDiscount; import com.gingersoft.gsa.cloud.base.order.discount.NomalDiscount;
import com.gingersoft.gsa.cloud.database.bean.Discount; import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.print.bean.OrderDetails;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -37,7 +38,10 @@ public class ShoppingCart { ...@@ -37,7 +38,10 @@ public class ShoppingCart {
} }
return shoppingCart; return shoppingCart;
} }
/**
* 外送/自取 的訂單數據
*/
protected OrderDetails.DataBean dataBean;
/** /**
* 商品列表 * 商品列表
*/ */
......
...@@ -155,5 +155,13 @@ public class PrintPresenter extends BasePresenter<PrintContract.Model, PrintCont ...@@ -155,5 +155,13 @@ public class PrintPresenter extends BasePresenter<PrintContract.Model, PrintCont
} }
return printerDeviceBean; 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;
}
} }
...@@ -6,11 +6,13 @@ import android.view.LayoutInflater; ...@@ -6,11 +6,13 @@ import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail; 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.MoneyUtil;
import com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils; import com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils; import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
...@@ -21,6 +23,7 @@ import com.joe.print.R; ...@@ -21,6 +23,7 @@ import com.joe.print.R;
import com.joe.print.mvp.model.bean.PrintBillBean; import com.joe.print.mvp.model.bean.PrintBillBean;
import com.joe.print.mvp.ui.adapter.BillItemAdapter; import com.joe.print.mvp.ui.adapter.BillItemAdapter;
import com.joe.print.mvp.ui.adapter.OtherOrderAdapter; import com.joe.print.mvp.ui.adapter.OtherOrderAdapter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
...@@ -33,7 +36,7 @@ public class PrintOtherOrderClosing extends PrinterRoot { ...@@ -33,7 +36,7 @@ public class PrintOtherOrderClosing extends PrinterRoot {
@Override @Override
public Map<String, List<Bitmap>> getPrintBitmap(Context mContext, PrinterDeviceBean deviceBean) { 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) { if (dataBean != null) {
Map<String, List<Bitmap>> bitmapMaps = new HashMap<>(); Map<String, List<Bitmap>> bitmapMaps = new HashMap<>();
List<Bitmap> bitmaps = new ArrayList<>(); List<Bitmap> bitmaps = new ArrayList<>();
......
...@@ -55,6 +55,9 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -55,6 +55,9 @@ public class PrintPrjKitchen extends PrinterRoot {
Bitmap bitmap = getKitChenPrintBitmap(mContext, key, noCut, deviceBean); Bitmap bitmap = getKitChenPrintBitmap(mContext, key, noCut, deviceBean);
bitmaps.add(bitmap); bitmaps.add(bitmap);
} }
if (key == null) {
key = "";
}
bitmapMaps.put(key, bitmaps); bitmapMaps.put(key, bitmaps);
} }
prjMap.clear(); prjMap.clear();
......
...@@ -31,7 +31,6 @@ import com.gingersoft.gsa.cloud.base.common.bean.BillingBean; ...@@ -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.common.bean.PayMethod;
import com.gingersoft.gsa.cloud.base.order.adapter.print.FoodAdapter; 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.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.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder; import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean; import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
...@@ -152,6 +151,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis ...@@ -152,6 +151,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
} }
Map<String, List<Bitmap>> printBitmap = getPrintBitmap(mContext, deviceBean); Map<String, List<Bitmap>> printBitmap = getPrintBitmap(mContext, deviceBean);
List<Bitmap> bitmapList = printBitmap.get(""); List<Bitmap> bitmapList = printBitmap.get("");
//根據打印次數,複製
if (bitmapList != null) { if (bitmapList != null) {
int bitmapSize = bitmapList.size(); int bitmapSize = bitmapList.size();
for (int i = 0; i < printCount - 1; i++) { for (int i = 0; i < printCount - 1; i++) {
......
...@@ -20,6 +20,7 @@ import com.gingersoft.gsa.cloud.base.threadPool.ThreadPoolManager; ...@@ -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.AidlUtil;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils; import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.okhttpUtils.OkHttp3Utils; 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.time.TimeUtils;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils; import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.constans.HttpsConstans; import com.gingersoft.gsa.cloud.constans.HttpsConstans;
...@@ -53,6 +54,7 @@ import org.json.JSONObject; ...@@ -53,6 +54,7 @@ import org.json.JSONObject;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
...@@ -76,7 +78,7 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -76,7 +78,7 @@ public class PrjService extends Service implements ReceiveListener {
private Disposable wakeDisposable; private Disposable wakeDisposable;
private List<PrinterDeviceBean> printerDeviceBeans; private List<PrinterDeviceBean> printerDeviceBeans;
private List<PrjBean.DataBean.Bean> printDatas = new ArrayList<>(); 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 List<PrintCurrencyBean> printCurrencyBeans;//通用打印配置
private Context mContext; private Context mContext;
private String TAG = "Prj"; private String TAG = "Prj";
...@@ -324,7 +326,8 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -324,7 +326,8 @@ public class PrjService extends Service implements ReceiveListener {
private void newPrint(String json) { private void newPrint(String json) {
printDatas.clear(); printDatas.clear();
listMap.clear(); // listMap.clear();
Map<String, List<PrjBean.DataBean.Bean>> listMap = new HashMap<>();
currentIndex = 0; currentIndex = 0;
totalPrj = 0; totalPrj = 0;
PrjBean prjBean = JsonUtils.parseObject(json, PrjBean.class); PrjBean prjBean = JsonUtils.parseObject(json, PrjBean.class);
...@@ -362,19 +365,23 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -362,19 +365,23 @@ public class PrjService extends Service implements ReceiveListener {
totalPrj++; totalPrj++;
} }
} }
// PrintPrjKitchen.getPrjMap().put(key, datas);
// printDatas.addAll(datas);
} }
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); 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 (Map.Entry<String, List<PrjBean.DataBean.Bean>> prjMap : listMap.entrySet()) {
for (PrjBean.DataBean.Bean bean : prjMap.getValue()) { for (PrjBean.DataBean.Bean bean : prjMap.getValue()) {
bean.setTotalPrj(totalPrj); bean.setTotalPrj(totalPrj);
if(bean.getStatus() == 2){ if (bean.getStatus() == 2) {
currentIndex++; currentIndex++;
} else { } else {
if(currentIndex == 0){ if (currentIndex == 0) {
currentIndex = 1; currentIndex = 1;
} }
} }
...@@ -382,13 +389,47 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -382,13 +389,47 @@ public class PrjService extends Service implements ReceiveListener {
} }
currentIndex++; currentIndex++;
} }
//讀取打印機和通用配置,可以優化 return listMap;
//獲取所有打印機 }
PrinterDeviceDaoUtils printerDeviceDaoUtils = new PrinterDeviceDaoUtils(this);
printerDeviceBeans = printerDeviceDaoUtils.queryAllPrinterDeviceBean(); private Map<String, List<PrjBean.DataBean.Bean>> printDataToMap(List<PrjBean.DataBean.Bean> printData) {
//獲取所有通用配置 Map<String, List<PrjBean.DataBean.Bean>> map = new HashMap<>();
printCurrencyBeans = MyPrintUtils.getPrintCurrencyBeans(this); 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<廚房位置,需要打印的數據>,通過廚房位置找到對應的打印機,並且通過數據拿到對應的通用配置 //第二步:遍歷 Map<廚房位置,需要打印的數據>,通過廚房位置找到對應的打印機,並且通過數據拿到對應的通用配置
for (Map.Entry<String, List<PrjBean.DataBean.Bean>> prjMap : listMap.entrySet()) { for (Map.Entry<String, List<PrjBean.DataBean.Bean>> prjMap : listMap.entrySet()) {
...@@ -409,6 +450,15 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -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) { private PrintCurrencyBean getPrintCurrencyBean(List<PrjBean.DataBean.Bean> beans) {
PrintCurrencyBean printCurrencyBean = null; PrintCurrencyBean printCurrencyBean = null;
if (beans != null && beans.size() > 0) { if (beans != null && beans.size() > 0) {
......
...@@ -54,6 +54,7 @@ import com.joe.print.mvp.ui.adapter.PrintProgressAdapter; ...@@ -54,6 +54,7 @@ import com.joe.print.mvp.ui.adapter.PrintProgressAdapter;
import com.yanzhenjie.recyclerview.widget.DefaultItemDecoration; import com.yanzhenjie.recyclerview.widget.DefaultItemDecoration;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -165,24 +166,29 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -165,24 +166,29 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
} else { } else {
// 獲取默認打印機,如果用戶沒有配置默認打印機,就取他最近使用的一個. // 獲取默認打印機,如果用戶沒有配置默認打印機,就取他最近使用的一個.
// 如果沒有最近使用的打印機,並且當前餐廳只有一台打印機,就用這一台打印機打印 // 如果沒有最近使用的打印機,並且當前餐廳只有一台打印機,就用這一台打印機打印
defaultPrint = mPresenter.getDefaultPrintInList(printerDeviceBeans, (String) SPUtils.get( "defaultPrint", "")); defaultPrint = mPresenter.getDefaultPrintInList(printerDeviceBeans, (String) SPUtils.get("defaultPrint", ""));
} }
if (type == PrintConstans.PRINT_KITCHEN) { 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); List<PrjBean.DataBean.Bean> printDatas = CCUtil.getNavigateParam(this, "prjBeans", null);
Map<String, List<PrjBean.DataBean.Bean>> prjMap = PrintPrjKitchen.getPrjMap(); Map<String, List<PrjBean.DataBean.Bean>> prjMap = PrintPrjKitchen.getPrjMap();
String printLocation = null;
for (PrjBean.DataBean.Bean prjBean : printDatas) { for (PrjBean.DataBean.Bean prjBean : printDatas) {
if (prjMap.containsKey(prjBean.getPrintPosition())) { if (printLocation == null) {
List<PrjBean.DataBean.Bean> beans = prjMap.get(prjBean.getPrintPosition()); if (TextUtil.isNotEmptyOrNullOrUndefined(prjBean.getPrintPosition())) {
if (beans != null) { printLocation = prjBean.getPrintPosition();
beans.add(prjBean); defaultPrint = mPresenter.getPrinterDeviceBeanByName(printerDeviceBeans, printLocation);
if (defaultPrint == null) {
printFile("未找到對應的打印機");
return;
} }
} else { } 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) { if (defaultPrint == null) {
...@@ -204,7 +210,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -204,7 +210,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
PrinterDeviceBean defaultPrint = MyPrintUtils.configPrinterProperties(finalPrintCurrencyBean, printerDeviceBeans.get(position)); PrinterDeviceBean defaultPrint = MyPrintUtils.configPrinterProperties(finalPrintCurrencyBean, printerDeviceBeans.get(position));
printByDevice(defaultPrint); printByDevice(defaultPrint);
selectPrint = position; selectPrint = position;
SPUtils.put( "defaultPrint", printerDeviceBeans.get(position).getName()); SPUtils.put("defaultPrint", printerDeviceBeans.get(position).getName());
dialog.dismiss(); dialog.dismiss();
}); });
} }
...@@ -284,6 +290,61 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -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 PrintProgressAdapter adapter;
private void setPrintProgress(int state) { private void setPrintProgress(int state) {
......
...@@ -2,25 +2,22 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter; ...@@ -2,25 +2,22 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Activity; import android.app.Activity;
import android.app.Application; import android.app.Application;
import android.os.Looper;
import android.text.TextUtils; import android.text.TextUtils;
import android.widget.TextView; import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; 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.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo; 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.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.order.cart.ShoppingCartNumberChange; import com.gingersoft.gsa.cloud.base.order.bean.discount.CouponDiscountBean;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.discount.OrderDiscount; 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.DiscountItem;
import com.gingersoft.gsa.cloud.base.order.billItem.RoundingItem; 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.billItem.ServiceChargeItem;
import com.gingersoft.gsa.cloud.base.order.cart.ShoppingCart; 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.cart.ShoppingCartNumberChange;
import com.gingersoft.gsa.cloud.base.order.discount.MultyDiscount; 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.discount.NomalDiscount;
import com.gingersoft.gsa.cloud.base.order.order.BaseOrder; import com.gingersoft.gsa.cloud.base.order.order.BaseOrder;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder; import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
...@@ -31,7 +28,9 @@ import com.gingersoft.gsa.cloud.base.utils.LanguageUtils; ...@@ -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.MoneyUtil;
import com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils; import com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils; 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.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.contract.BaseOrderContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.AddOrderRequest; import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.AddOrderRequest;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.CreateOrderRequest; 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; ...@@ -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.activity.OrderContentActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BillItemAdapter; 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.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.ui.widget.dialog.CommonTipDialog;
import com.gingersoft.gsa.cloud.zxing.MipcaCaptureActivity; import com.gingersoft.gsa.cloud.zxing.MipcaCaptureActivity;
import com.jess.arms.di.scope.ActivityScope; import com.jess.arms.di.scope.ActivityScope;
...@@ -55,8 +52,6 @@ import java.util.ArrayList; ...@@ -55,8 +52,6 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.logging.Handler;
import javax.inject.Inject; import javax.inject.Inject;
...@@ -177,7 +172,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex ...@@ -177,7 +172,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
mMealStandPresenter = (MealStandPresenter) this; mMealStandPresenter = (MealStandPresenter) this;
} }
BaseOrder baseOrder = OrderFactory.createOrder(FoodSummaryConstans.RESTAURANT_MODE); BaseOrder baseOrder = OrderFactory.createOrder(BaseOrder.orderType);
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.RESTAURANT_MODE)) { if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.RESTAURANT_MODE)) {
mDoshokuOrder = (DoshokuOrder) baseOrder; mDoshokuOrder = (DoshokuOrder) baseOrder;
mTableInfo = mDoshokuOrder.getOpenTableInfo(); mTableInfo = mDoshokuOrder.getOpenTableInfo();
...@@ -188,7 +183,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex ...@@ -188,7 +183,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
mOrderMealList = mShoppingCart.getOrderCommodityList(); mOrderMealList = mShoppingCart.getOrderCommodityList();
mBillItemList = mShoppingCart.getBillItemList(); mBillItemList = mShoppingCart.getBillItemList();
if (mMealStandPresenter != null) { if (mMealStandPresenter != null && mDoshokuOrder != null) {
orderPlaced = mDoshokuOrder.getOrderPlaced(); orderPlaced = mDoshokuOrder.getOrderPlaced();
} }
......
...@@ -17,6 +17,16 @@ import com.gingersoft.gsa.cloud.base.utils.LanguageUtils; ...@@ -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.MoneyUtil;
import com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils; import com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils; 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.R;
import com.gingersoft.gsa.cloud.table.mvp.contract.MealStandContract; import com.gingersoft.gsa.cloud.table.mvp.contract.MealStandContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.FoodReason; 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; ...@@ -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.ModifierAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter; 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.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.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
import com.google.gson.internal.LinkedTreeMap; import com.google.gson.internal.LinkedTreeMap;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
...@@ -51,13 +51,11 @@ import com.jess.arms.integration.AppManager; ...@@ -51,13 +51,11 @@ import com.jess.arms.integration.AppManager;
import com.jess.arms.utils.RxLifecycleUtils; import com.jess.arms.utils.RxLifecycleUtils;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
import com.xuexiang.rxutil2.RxBindingUtils;
import org.simple.eventbus.Subscriber; import org.simple.eventbus.Subscriber;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit;
import javax.inject.Inject; import javax.inject.Inject;
...@@ -68,7 +66,6 @@ import io.reactivex.Observer; ...@@ -68,7 +66,6 @@ import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull; import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
import me.jessyan.rxerrorhandler.core.RxErrorHandler; import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber; import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
...@@ -1611,7 +1608,10 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -1611,7 +1608,10 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
* @return * @return
*/ */
public boolean memberPointsCondition(double pointsRedeem, String foodName) { public boolean memberPointsCondition(double pointsRedeem, String foodName) {
MemberInfo memberInfo = mDoshokuOrder.getMemberInfo(); MemberInfo memberInfo = null;
if (mDoshokuOrder != null) {
memberInfo = mDoshokuOrder.getMemberInfo();
}
if (memberInfo == null) { if (memberInfo == null) {
//当前食品需要会员积分 //当前食品需要会员积分
if (pointsRedeem > 0) { if (pointsRedeem > 0) {
......
...@@ -22,6 +22,17 @@ import android.widget.LinearLayout; ...@@ -22,6 +22,17 @@ import android.widget.LinearLayout;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.ScrollView; import android.widget.ScrollView;
import android.widget.TextView; 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.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo; import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
...@@ -35,6 +46,10 @@ import com.gingersoft.gsa.cloud.base.utils.LanguageUtils; ...@@ -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.VibratorUtils;
import com.gingersoft.gsa.cloud.base.utils.other.SPUtils; import com.gingersoft.gsa.cloud.base.utils.other.SPUtils;
import com.gingersoft.gsa.cloud.constans.FoodSummaryConstans; 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.BuildConfig;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2; import com.gingersoft.gsa.cloud.table.R2;
...@@ -42,7 +57,6 @@ import com.gingersoft.gsa.cloud.table.di.component.DaggerMealStandComponent; ...@@ -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.contract.MealStandContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood; 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.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.presenter.MealStandPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BaseFragmentAdapter; import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BaseFragmentAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodGroupAdapter; 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; ...@@ -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.fragment.FineItemAllFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.ChooseNumberDialog; 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.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.PagerConfig;
import com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerGridLayoutManager; import com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerGridLayoutManager;
import com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerGridSnapHelper; import com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerGridSnapHelper;
...@@ -70,7 +80,6 @@ import com.jess.arms.di.component.AppComponent; ...@@ -70,7 +80,6 @@ import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.alpha.QMUIAlphaTextView; import com.qmuiteam.qmui.alpha.QMUIAlphaTextView;
import com.qmuiteam.qmui.util.QMUIDisplayHelper; import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.xuexiang.rxutil2.RxBindingUtils;
import org.simple.eventbus.EventBus; import org.simple.eventbus.EventBus;
...@@ -79,20 +88,9 @@ import java.util.ArrayList; ...@@ -79,20 +88,9 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; 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.BindView;
import butterknife.OnClick; import butterknife.OnClick;
import butterknife.OnLongClick; import butterknife.OnLongClick;
import io.reactivex.functions.Consumer;
import static com.jess.arms.utils.Preconditions.checkNotNull; import static com.jess.arms.utils.Preconditions.checkNotNull;
...@@ -340,7 +338,6 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -340,7 +338,6 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
TableBean.DataBean tableBean = new TableBean.DataBean(); TableBean.DataBean tableBean = new TableBean.DataBean();
tableBean.setPerson(1); tableBean.setPerson(1);
tableBean.setTableName("外賣"); tableBean.setTableName("外賣");
DoshokuOrder.getInstance().getOpenTableInfo().setPerson(1);
DoshokuOrder.getInstance().setOpenTableInfo(tableBean); DoshokuOrder.getInstance().setOpenTableInfo(tableBean);
btn_send_order.setText("送單信息"); btn_send_order.setText("送單信息");
} else { } else {
......
package com.gingersoft.gsa.cloud.table.mvp.ui.activity; package com.gingersoft.gsa.cloud.table.mvp.ui.activity;
import android.content.Intent; import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.os.Bundle; import android.os.Bundle;
import android.os.Message; import android.os.Message;
import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.SimpleAdapter; import android.widget.SimpleAdapter;
import android.widget.TextView; 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.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.order.order.BaseOrder; import com.gingersoft.gsa.cloud.base.order.order.BaseOrder;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean; import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil; import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.constans.FoodSummaryConstans; 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.R;
import com.gingersoft.gsa.cloud.table.R2; import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.di.component.DaggerTableComponent; import com.gingersoft.gsa.cloud.table.di.component.DaggerTableComponent;
...@@ -26,21 +35,15 @@ import com.gingersoft.gsa.cloud.table.mvp.model.table.action.TableAction; ...@@ -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.presenter.TablePresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllTableFragment; 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.table.mvp.ui.fragment.InputTableFragment;
import com.gingersoft.gsa.cloud.constans.GoldConstants;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog; 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.BaseFragmentActivity;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.kingja.loadsir.callback.Callback;
import com.kingja.loadsir.core.LoadService; import com.kingja.loadsir.core.LoadService;
import com.kingja.loadsir.core.LoadSir;
import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton; import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton;
import com.qmuiteam.qmui.arch.QMUIFragmentPagerAdapter; import com.qmuiteam.qmui.arch.QMUIFragmentPagerAdapter;
import com.qmuiteam.qmui.layout.QMUIButton; import com.qmuiteam.qmui.layout.QMUIButton;
import com.qmuiteam.qmui.util.QMUIDeviceHelper;
import com.qmuiteam.qmui.util.QMUIDisplayHelper; import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.QMUITopBar; import com.qmuiteam.qmui.widget.QMUITopBar;
import com.qmuiteam.qmui.widget.popup.QMUIPopup; import com.qmuiteam.qmui.widget.popup.QMUIPopup;
...@@ -50,7 +53,6 @@ import com.qmuiteam.qmui.widget.tab.QMUITabBuilder; ...@@ -50,7 +53,6 @@ import com.qmuiteam.qmui.widget.tab.QMUITabBuilder;
import com.qmuiteam.qmui.widget.tab.QMUITabIndicator; import com.qmuiteam.qmui.widget.tab.QMUITabIndicator;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment; import com.qmuiteam.qmui.widget.tab.QMUITabSegment;
import com.scwang.smartrefresh.layout.api.RefreshLayout; import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.xuexiang.rxutil2.RxBindingUtils;
import org.simple.eventbus.Subscriber; import org.simple.eventbus.Subscriber;
...@@ -59,15 +61,6 @@ import java.util.HashMap; ...@@ -59,15 +61,6 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; 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.BindView;
import butterknife.OnClick; 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