Commit db7e0360 by 宁斌

Merge remote-tracking branch 'origin/dev' into dev

parents 2b1ed606 c7d7592a
...@@ -115,8 +115,6 @@ dependencies { ...@@ -115,8 +115,6 @@ dependencies {
implementation 'com.gcssloop.recyclerview:pagerlayoutmanager:2.3.8' implementation 'com.gcssloop.recyclerview:pagerlayoutmanager:2.3.8'
//陰影背景 //陰影背景
api 'com.github.lihangleo2:ShadowLayout:2.1.6' api 'com.github.lihangleo2:ShadowLayout:2.1.6'
//時間選擇控件
api 'com.contrarywind:Android-PickerView:3.2.4'
implementation 'org.aspectj:aspectjrt:1.8.9' implementation 'org.aspectj:aspectjrt:1.8.9'
//商米打印庫 //商米打印庫
api 'com.sunmi:printerlibrary:1.0.7' api 'com.sunmi:printerlibrary:1.0.7'
...@@ -129,7 +127,8 @@ dependencies { ...@@ -129,7 +127,8 @@ dependencies {
implementation 'cn.bingoogolapple:bga-photopicker:1.2.8@aar' implementation 'cn.bingoogolapple:bga-photopicker:1.2.8@aar'
implementation 'cn.bingoogolapple:bga-baseadapter:1.2.9@aar' implementation 'cn.bingoogolapple:bga-baseadapter:1.2.9@aar'
implementation 'cn.bingoogolapple:bga-flowlayout:1.0.0@aar' implementation 'cn.bingoogolapple:bga-flowlayout:1.0.0@aar'
//时间选择器
api rootProject.ext.dependencies["pickerview"]
api 'androidx.core:core-ktx:+' api 'androidx.core:core-ktx:+'
implementation 'org.projectlombok:lombok:1.18.8' implementation 'org.projectlombok:lombok:1.18.8'
......
...@@ -3,7 +3,9 @@ package com.gingersoft.gsa.cloud.base.utils.time; ...@@ -3,7 +3,9 @@ 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 com.bigkoo.pickerview.TimePickerView; import com.bigkoo.pickerview.builder.TimePickerBuilder;
import com.bigkoo.pickerview.listener.OnTimeSelectListener;
import com.bigkoo.pickerview.view.TimePickerView;
import java.util.Calendar; import java.util.Calendar;
...@@ -19,16 +21,16 @@ public class TimePickerUtils { ...@@ -19,16 +21,16 @@ public class TimePickerUtils {
* @param defaultTime 默認選中時間 * @param defaultTime 默認選中時間
* @param onTimeSelectListener 選中時間回調 * @param onTimeSelectListener 選中時間回調
*/ */
public static TimePickerView showReportTimePicker(Context mContext, Calendar defaultTime, TimePickerView.OnTimeSelectListener onTimeSelectListener) { public static TimePickerView showReportTimePicker(Context mContext, Calendar defaultTime, OnTimeSelectListener onTimeSelectListener) {
//獲取今年第一天的日期 //獲取今年第一天的日期
Calendar cal = Calendar.getInstance(); Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_YEAR, cal.getActualMinimum(Calendar.DAY_OF_YEAR)); cal.set(Calendar.DAY_OF_YEAR, cal.getActualMinimum(Calendar.DAY_OF_YEAR));
//打開時間選擇器 //打開時間選擇器
TimePickerView pvTime = new TimePickerView.Builder(mContext, onTimeSelectListener) TimePickerView pvTime = new TimePickerBuilder(mContext, onTimeSelectListener)
.setType(TimePickerView.Type.YEAR_MONTH_DAY)//默认全部显示 .setType(new boolean[]{true, true, true, false, false, false})//默认全部显示
.setCancelText("取消")//取消按钮文字 .setCancelText("取消")//取消按钮文字
.setSubmitText("確認")//确认按钮文字 .setSubmitText("確認")//确认按钮文字
.setContentSize(20)//滚轮文字大小 .setContentTextSize(20)//滚轮文字大小
.setTitleSize(20)//标题文字大小 .setTitleSize(20)//标题文字大小
// .setTitleText("请选择时间")//标题文字 // .setTitleText("请选择时间")//标题文字
.setOutSideCancelable(true)//点击屏幕,点在控件外部范围时,是否取消显示 .setOutSideCancelable(true)//点击屏幕,点在控件外部范围时,是否取消显示
...@@ -39,7 +41,6 @@ public class TimePickerUtils { ...@@ -39,7 +41,6 @@ public class TimePickerUtils {
.setCancelColor(Color.BLUE)//取消按钮文字颜色 .setCancelColor(Color.BLUE)//取消按钮文字颜色
// .setTitleBgColor(0xFF666666)//标题背景颜色 Night mode // .setTitleBgColor(0xFF666666)//标题背景颜色 Night mode
// .setBgColor(0xFF333333)//滚轮背景颜色 Night mode // .setBgColor(0xFF333333)//滚轮背景颜色 Night mode
.setRange(Calendar.getInstance().get(Calendar.YEAR), Calendar.getInstance().get(Calendar.YEAR))
// .setDate(selectedDate)// 如果不设置的话,默认是系统时间*/ // .setDate(selectedDate)// 如果不设置的话,默认是系统时间*/
.setRangDate(cal, Calendar.getInstance())//時間是今年第一天到今天 .setRangDate(cal, Calendar.getInstance())//時間是今年第一天到今天
.setLabel("", "", "", "", "", "") .setLabel("", "", "", "", "", "")
...@@ -60,16 +61,17 @@ public class TimePickerUtils { ...@@ -60,16 +61,17 @@ public class TimePickerUtils {
* @param onTimeSelectListener 選中時間後點擊確認 回調 * @param onTimeSelectListener 選中時間後點擊確認 回調
* @return * @return
*/ */
public static TimePickerView showReportTimePicker(Context mContext, Calendar startTime, Calendar endTime, Calendar defaultTime, TimePickerView.OnTimeSelectListener onTimeSelectListener) { public static TimePickerView showReportTimePicker(Context mContext, Calendar startTime, Calendar endTime, Calendar defaultTime, OnTimeSelectListener onTimeSelectListener) {
//獲取今年第一天的日期 //獲取今年第一天的日期
Calendar cal = Calendar.getInstance(); Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_YEAR, cal.getActualMinimum(Calendar.DAY_OF_YEAR)); cal.set(Calendar.DAY_OF_YEAR, cal.getActualMinimum(Calendar.DAY_OF_YEAR));
//打開時間選擇器 //打開時間選擇器
TimePickerView pvTime = new TimePickerView.Builder(mContext, onTimeSelectListener) TimePickerView pvTime = new TimePickerBuilder(mContext, onTimeSelectListener)
.setType(TimePickerView.Type.YEAR_MONTH_DAY)//默认全部显示 .setType(new boolean[]{true, true, true, false, false, false})
.setCancelText("取消")//取消按钮文字 .setCancelText("取消")//取消按钮文字
.setSubmitText("確認")//确认按钮文字 .setSubmitText("確認")//确认按钮文字
.setContentSize(20)//滚轮文字大小 .setContentTextSize(20)//滚轮文字大小
.setTitleSize(20)//标题文字大小 .setTitleSize(20)//标题文字大小
// .setTitleText("请选择时间")//标题文字 // .setTitleText("请选择时间")//标题文字
.setOutSideCancelable(true)//点击屏幕,点在控件外部范围时,是否取消显示 .setOutSideCancelable(true)//点击屏幕,点在控件外部范围时,是否取消显示
...@@ -80,7 +82,6 @@ public class TimePickerUtils { ...@@ -80,7 +82,6 @@ public class TimePickerUtils {
.setCancelColor(Color.BLUE)//取消按钮文字颜色 .setCancelColor(Color.BLUE)//取消按钮文字颜色
// .setTitleBgColor(0xFF666666)//标题背景颜色 Night mode // .setTitleBgColor(0xFF666666)//标题背景颜色 Night mode
// .setBgColor(0xFF333333)//滚轮背景颜色 Night mode // .setBgColor(0xFF333333)//滚轮背景颜色 Night mode
.setRange(Calendar.getInstance().get(Calendar.YEAR), Calendar.getInstance().get(Calendar.YEAR))
// .setDate(selectedDate)// 如果不设置的话,默认是系统时间*/ // .setDate(selectedDate)// 如果不设置的话,默认是系统时间*/
.setRangDate(startTime, endTime)//時間是今年第一天到今天 .setRangDate(startTime, endTime)//時間是今年第一天到今天
.setLabel("", "", "", "", "", "") .setLabel("", "", "", "", "", "")
...@@ -100,35 +101,28 @@ public class TimePickerUtils { ...@@ -100,35 +101,28 @@ public class TimePickerUtils {
* @param defaultTime 默認選中時間 * @param defaultTime 默認選中時間
* @param onTimeSelectListener 選中時間回調 * @param onTimeSelectListener 選中時間回調
*/ */
public static TimePickerView showTimePicker(Context mContext, Calendar defaultTime, TimePickerView.OnTimeSelectListener onTimeSelectListener) { public static com.gingersoft.gsa.cloud.ui.view.timeselect.TimePickerView showTimePicker(Context mContext, Calendar defaultTime, OnTimeSelectListener onTimeSelectListener) {
//獲取今年第一天的日期 //獲取今年第一天的日期
Calendar cal = Calendar.getInstance(); Calendar endTime = Calendar.getInstance();
cal.set(Calendar.HOUR, cal.getActualMaximum(Calendar.HOUR_OF_DAY)); endTime.set(Calendar.HOUR_OF_DAY, endTime.getActualMaximum(Calendar.HOUR_OF_DAY));
endTime.set(Calendar.MINUTE, endTime.getActualMaximum(Calendar.MINUTE));
//打開時間選擇器 //打開時間選擇器
TimePickerView pvTime = new TimePickerView.Builder(mContext, onTimeSelectListener) com.gingersoft.gsa.cloud.ui.view.timeselect.TimePickerView pvTime = new com.gingersoft.gsa.cloud.ui.view.timeselect.builder.TimePickerBuilder(mContext, onTimeSelectListener)
.setType(TimePickerView.Type.HOURS_MINS)//默认全部显示 .setType(new boolean[]{false, false, false, true, true, false})//默认全部显示
.setCancelText("取消")//取消按钮文字 .setCancelText("取消")//取消按钮文字
.setSubmitText("確認")//确认按钮文字 .setSubmitText("確認")//确认按钮文字
.setContentSize(20)//滚轮文字大小 .setContentTextSize(20)//滚轮文字大小
.setTitleSize(20)//标题文字大小 .setTitleSize(20)//标题文字大小
// .setTitleText("请选择时间")//标题文字
.setOutSideCancelable(true)//点击屏幕,点在控件外部范围时,是否取消显示 .setOutSideCancelable(true)//点击屏幕,点在控件外部范围时,是否取消显示
.isCyclic(false)//是否循环滚动 .isCyclic(false)//是否循环滚动
.setTextColorCenter(Color.BLACK)//设置选中项的颜色 .setTextColorCenter(Color.BLACK)//设置选中项的颜色
.setTitleColor(Color.BLACK)//标题文字颜色 .setTitleColor(Color.BLACK)//标题文字颜色
.setSubmitColor(Color.BLUE)//确定按钮文字颜色 .setSubmitColor(Color.BLUE)//确定按钮文字颜色
.setCancelColor(Color.BLUE)//取消按钮文字颜色 .setCancelColor(Color.BLUE)//取消按钮文字颜色
// .setTitleBgColor(0xFF666666)//标题背景颜色 Night mode .setRangDate(Calendar.getInstance(), endTime)//限制時間範圍
// .setBgColor(0xFF333333)//滚轮背景颜色 Night mode
// .setRange(Calendar.getInstance().get(Calendar.YEAR), Calendar.getInstance().get(Calendar.YEAR))
// .setDate(selectedDate)// 如果不设置的话,默认是系统时间*/
.setRangDate(Calendar.getInstance(), cal)//時間是今年第一天到今天
.setLabel("", "", "", "", "", "") .setLabel("", "", "", "", "", "")
.isCenterLabel(false) //是否只显示中间选中项的label文字,false则每项item全部都带有label。 .isCenterLabel(false) //是否只显示中间选中项的label文字,false则每项item全部都带有label。
// .isDialog(true)//是否显示为对话框样式
.build(); .build();
//設置默認選中時間
// pvTime.setDate(defaultTime);//注:根据需求来决定是否使用该方法(一般是精确到秒的情况),此项可以在弹出选择器的时候重新设置当前时间,避免在初始化之后由于时间已经设定,导致选中时间与当前时间不匹配的问题。
pvTime.show(); pvTime.show();
return pvTime; return pvTime;
} }
......
...@@ -10,6 +10,7 @@ public class AppConstans { ...@@ -10,6 +10,7 @@ public class AppConstans {
public static final String RP_THIRE_LOGISTICS_ERROR = "RP_WL003";//第三方物流接口錯誤碼 public static final String RP_THIRE_LOGISTICS_ERROR = "RP_WL003";//第三方物流接口錯誤碼
public static final String RP_UPDATE_ORDER_STATE_ERROR = "RP_UO004";//修改訂單狀態失敗錯誤碼 public static final String RP_UPDATE_ORDER_STATE_ERROR = "RP_UO004";//修改訂單狀態失敗錯誤碼
public static final String RP_LOGIN_ERROR = "RP_LOGIN";//登陸報錯錯誤碼 public static final String RP_LOGIN_ERROR = "RP_LOGIN";//登陸報錯錯誤碼
public static final String RP_REPRINT_CODE = "RP_REPRINT_CODE";//登陸報錯錯誤碼
public static final String SECRETKEY_VALUES = "2309485937845783"; public static final String SECRETKEY_VALUES = "2309485937845783";
......
package com.gingersoft.gsa.cloud.print.bean;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import lombok.Data;
@Data
public class PrjBean {
/**
* success : true
* sysTime : 1589177793623
* data : {"-1":[{"id":1,"printerDeviceId":-1,"status":1,"tableName":"51536","orderNo":"gs201351936242891","orderTime":2020,"person":2,"orderDetailsTime":"May 7, 2020 6:47:16 PM","orderDetailsId":48827589,"productName":"炸鸡翅","parentId":0,"type":3},{"id":2,"printerDeviceId":-1,"status":1,"tableName":"51536","orderNo":"gs201351936242891","orderTime":2020,"person":2,"orderDetailsTime":"May 7, 2020 6:47:16 PM","orderDetailsId":48827590,"productName":"鮮茄汁藍青口","parentId":0,"type":3}],"k1":[{"id":77,"printerDeviceId":1,"status":1,"tableName":"51536","orderNo":"gs201351936242891","orderTime":2020,"person":2,"orderDetailsTime":"May 11, 2020 11:41:41 AM","orderDetailsId":48828004,"productName":"走青檸測試","parentId":48827589,"type":4},{"id":78,"printerDeviceId":1,"status":1,"tableName":"51536","orderNo":"gs201351936242891","orderTime":2020,"person":2,"orderDetailsTime":"May 11, 2020 11:41:41 AM","orderDetailsId":48828005,"productName":"走豆測試","parentId":48827590,"type":4},{"id":79,"printerDeviceId":1,"status":1,"tableName":"51536","orderNo":"gs201351936242891","orderTime":2020,"person":2,"orderDetailsTime":"May 11, 2020 11:41:41 AM","orderDetailsId":48828006,"productName":"精選牛肉","parentId":0,"type":3},{"id":80,"printerDeviceId":1,"status":1,"tableName":"51536","orderNo":"gs201351936242891","orderTime":2020,"person":2,"orderDetailsTime":"May 11, 2020 11:41:41 AM","orderDetailsId":48828007,"productName":"走豆測試","parentId":48828006,"type":4},{"id":81,"printerDeviceId":1,"status":1,"tableName":"51536","orderNo":"gs201351936242891","orderTime":2020,"person":2,"orderDetailsTime":"May 11, 2020 11:41:41 AM","orderDetailsId":48828008,"productName":"雞飯(四客)","parentId":48828006,"type":3},{"id":82,"printerDeviceId":1,"status":1,"tableName":"51536","orderNo":"gs201351936242891","orderTime":2020,"person":2,"orderDetailsTime":"May 11, 2020 11:41:41 AM","orderDetailsId":48828009,"productName":"精選牛肉","parentId":48828006,"type":3}]}
*/
private boolean success;
private long sysTime;
private String data;
@Data
public static class DataBean {
public Map<String, List<Bean>> prjMap;
@Data
public static class Bean implements Serializable {
private static final long serialVersionUID = -3210457151279539745L;
/**
* id : 77
* printerDeviceId : 1
* status : 1
* tableName : 51536
* orderNo : gs201351936242891
* orderTime : 2020
* person : 2
* orderDetailsTime : May 11, 2020 11:41:41 AM
* orderDetailsId : 48828004
* productName : 走青檸測試
* parentId : 48827589
* type : 4
*/
private int id;
private int printerDeviceId;
private int status;//為2是帶*,需要切紙的
private String tableName;
private String orderNo;
private int orderTime;
private int person;
private String orderDetailsTime;
private int orderDetailsId;
private String productName;
private String productName2;
private String productName3;
private int parentId;
private int type;
private int printerType;
private Long printerTime;
private int number;
private String productId;
private Long createTime;
private int requests;
private int actualPrinterDeviceId;
private String takeFoodCode; //取餐碼
private String billNo;//訂單碼
private int orderType;//訂單類型
private String userName;
/***
* 層級
* 1:主食品
* 2:子項or細項
* 3:細項
*/
private int itemType;
private String sender;
private String takeTime;
private String sendTime;
private int currentIndex;//當前是第幾張prj
private int totalPrj;//本次總共有多少張prj
private int isFirstSendOrder;//是否首次送單,1是 2否
private int quantity;//統計打印數量
private int presence;//presence:是否生成prj記錄 0:否,1:是
private String printPosition;//廚房位置
}
}
}
package com.gingersoft.gsa.cloud.ui.view.timeselect;
import android.content.Context;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.bigkoo.pickerview.R;
import com.bigkoo.pickerview.configure.PickerOptions;
import java.util.List;
/**
* 条件选择器
* Created by Sai on 15/11/22.
*/
public class OptionsPickerView<T> extends BasePickerView implements View.OnClickListener {
private WheelOptions<T> wheelOptions;
private static final String TAG_SUBMIT = "submit";
private static final String TAG_CANCEL = "cancel";
public OptionsPickerView(PickerOptions pickerOptions) {
super(pickerOptions.context);
mPickerOptions = pickerOptions;
initView(pickerOptions.context);
}
private void initView(Context context) {
setDialogOutSideCancelable();
initViews();
initAnim();
initEvents();
if (mPickerOptions.customListener == null) {
LayoutInflater.from(context).inflate(mPickerOptions.layoutRes, contentContainer);
//顶部标题
TextView tvTitle = (TextView) findViewById(R.id.tvTitle);
RelativeLayout rv_top_bar = (RelativeLayout) findViewById(R.id.rv_topbar);
//确定和取消按钮
Button btnSubmit = (Button) findViewById(R.id.btnSubmit);
Button btnCancel = (Button) findViewById(R.id.btnCancel);
btnSubmit.setTag(TAG_SUBMIT);
btnCancel.setTag(TAG_CANCEL);
btnSubmit.setOnClickListener(this);
btnCancel.setOnClickListener(this);
//设置文字
btnSubmit.setText(TextUtils.isEmpty(mPickerOptions.textContentConfirm) ? context.getResources().getString(R.string.pickerview_submit) : mPickerOptions.textContentConfirm);
btnCancel.setText(TextUtils.isEmpty(mPickerOptions.textContentCancel) ? context.getResources().getString(R.string.pickerview_cancel) : mPickerOptions.textContentCancel);
tvTitle.setText(TextUtils.isEmpty(mPickerOptions.textContentTitle) ? "" : mPickerOptions.textContentTitle);//默认为空
//设置color
btnSubmit.setTextColor(mPickerOptions.textColorConfirm);
btnCancel.setTextColor(mPickerOptions.textColorCancel);
tvTitle.setTextColor(mPickerOptions.textColorTitle);
rv_top_bar.setBackgroundColor(mPickerOptions.bgColorTitle);
//设置文字大小
btnSubmit.setTextSize(mPickerOptions.textSizeSubmitCancel);
btnCancel.setTextSize(mPickerOptions.textSizeSubmitCancel);
tvTitle.setTextSize(mPickerOptions.textSizeTitle);
} else {
mPickerOptions.customListener.customLayout(LayoutInflater.from(context).inflate(mPickerOptions.layoutRes, contentContainer));
}
// ----滚轮布局
final LinearLayout optionsPicker = (LinearLayout) findViewById(R.id.optionspicker);
optionsPicker.setBackgroundColor(mPickerOptions.bgColorWheel);
wheelOptions = new WheelOptions<>(optionsPicker, mPickerOptions.isRestoreItem);
if (mPickerOptions.optionsSelectChangeListener != null) {
wheelOptions.setOptionsSelectChangeListener(mPickerOptions.optionsSelectChangeListener);
}
wheelOptions.setTextContentSize(mPickerOptions.textSizeContent);
wheelOptions.setItemsVisible(mPickerOptions.itemsVisibleCount);
wheelOptions.setAlphaGradient(mPickerOptions.isAlphaGradient);
wheelOptions.setLabels(mPickerOptions.label1, mPickerOptions.label2, mPickerOptions.label3);
wheelOptions.setTextXOffset(mPickerOptions.x_offset_one, mPickerOptions.x_offset_two, mPickerOptions.x_offset_three);
wheelOptions.setCyclic(mPickerOptions.cyclic1, mPickerOptions.cyclic2, mPickerOptions.cyclic3);
wheelOptions.setTypeface(mPickerOptions.font);
setOutSideCancelable(mPickerOptions.cancelable);
wheelOptions.setDividerColor(mPickerOptions.dividerColor);
wheelOptions.setDividerType(mPickerOptions.dividerType);
wheelOptions.setLineSpacingMultiplier(mPickerOptions.lineSpacingMultiplier);
wheelOptions.setTextColorOut(mPickerOptions.textColorOut);
wheelOptions.setTextColorCenter(mPickerOptions.textColorCenter);
wheelOptions.isCenterLabel(mPickerOptions.isCenterLabel);
}
/**
* 动态设置标题
*
* @param text 标题文本内容
*/
public void setTitleText(String text) {
TextView tvTitle = (TextView) findViewById(R.id.tvTitle);
if (tvTitle != null) {
tvTitle.setText(text);
}
}
/**
* 设置默认选中项
*
* @param option1
*/
public void setSelectOptions(int option1) {
mPickerOptions.option1 = option1;
reSetCurrentItems();
}
public void setSelectOptions(int option1, int option2) {
mPickerOptions.option1 = option1;
mPickerOptions.option2 = option2;
reSetCurrentItems();
}
public void setSelectOptions(int option1, int option2, int option3) {
mPickerOptions.option1 = option1;
mPickerOptions.option2 = option2;
mPickerOptions.option3 = option3;
reSetCurrentItems();
}
private void reSetCurrentItems() {
if (wheelOptions != null) {
wheelOptions.setCurrentItems(mPickerOptions.option1, mPickerOptions.option2, mPickerOptions.option3);
}
}
public void setPicker(List<T> optionsItems) {
this.setPicker(optionsItems, null, null);
}
public void setPicker(List<T> options1Items, List<List<T>> options2Items) {
this.setPicker(options1Items, options2Items, null);
}
public void setPicker(List<T> options1Items,
List<List<T>> options2Items,
List<List<List<T>>> options3Items) {
wheelOptions.setPicker(options1Items, options2Items, options3Items);
reSetCurrentItems();
}
//不联动情况下调用
public void setNPicker(List<T> options1Items,
List<T> options2Items,
List<T> options3Items) {
wheelOptions.setLinkage(false);
wheelOptions.setNPicker(options1Items, options2Items, options3Items);
reSetCurrentItems();
}
@Override
public void onClick(View v) {
String tag = (String) v.getTag();
if (tag.equals(TAG_SUBMIT)) {
returnData();
} else if (tag.equals(TAG_CANCEL)) {
if (mPickerOptions.cancelListener != null) {
mPickerOptions.cancelListener.onClick(v);
}
}
dismiss();
}
//抽离接口回调的方法
public void returnData() {
if (mPickerOptions.optionsSelectListener != null) {
int[] optionsCurrentItems = wheelOptions.getCurrentItems();
mPickerOptions.optionsSelectListener.onOptionsSelect(optionsCurrentItems[0], optionsCurrentItems[1], optionsCurrentItems[2], clickView);
}
}
@Override
public boolean isDialog() {
return mPickerOptions.isDialog;
}
}
package com.gingersoft.gsa.cloud.ui.view.timeselect.builder;
import android.content.Context;
import android.graphics.Typeface;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.ColorInt;
import com.bigkoo.pickerview.configure.PickerOptions;
import com.bigkoo.pickerview.listener.CustomListener;
import com.bigkoo.pickerview.listener.OnOptionsSelectChangeListener;
import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.contrarywind.view.WheelView;
/**
* Created by xiaosongzeem on 2018/3/20.
*/
public class OptionsPickerBuilder {
//配置类
private PickerOptions mPickerOptions;
//Required
public OptionsPickerBuilder(Context context, OnOptionsSelectListener listener) {
mPickerOptions = new PickerOptions(PickerOptions.TYPE_PICKER_OPTIONS);
mPickerOptions.context = context;
mPickerOptions.optionsSelectListener = listener;
}
//Option
public OptionsPickerBuilder setSubmitText(String textContentConfirm) {
mPickerOptions.textContentConfirm = textContentConfirm;
return this;
}
public OptionsPickerBuilder setCancelText(String textContentCancel) {
mPickerOptions.textContentCancel = textContentCancel;
return this;
}
public OptionsPickerBuilder setTitleText(String textContentTitle) {
mPickerOptions.textContentTitle = textContentTitle;
return this;
}
public OptionsPickerBuilder isDialog(boolean isDialog) {
mPickerOptions.isDialog = isDialog;
return this;
}
public OptionsPickerBuilder addOnCancelClickListener(View.OnClickListener cancelListener) {
mPickerOptions.cancelListener = cancelListener;
return this;
}
public OptionsPickerBuilder setSubmitColor(int textColorConfirm) {
mPickerOptions.textColorConfirm = textColorConfirm;
return this;
}
public OptionsPickerBuilder setCancelColor(int textColorCancel) {
mPickerOptions.textColorCancel = textColorCancel;
return this;
}
/**
* {@link #setOutSideColor} instead.
*
* @param backgroundId color resId.
*/
@Deprecated
public OptionsPickerBuilder setBackgroundId(int backgroundId) {
mPickerOptions.outSideColor = backgroundId;
return this;
}
/**
* 显示时的外部背景色颜色,默认是灰色
*
* @param outSideColor color resId.
* @return
*/
public OptionsPickerBuilder setOutSideColor(int outSideColor) {
mPickerOptions.outSideColor = outSideColor;
return this;
}
/**
* ViewGroup 类型
* 设置PickerView的显示容器
*
* @param decorView Parent View.
* @return
*/
public OptionsPickerBuilder setDecorView(ViewGroup decorView) {
mPickerOptions.decorView = decorView;
return this;
}
public OptionsPickerBuilder setLayoutRes(int res, CustomListener listener) {
mPickerOptions.layoutRes = res;
mPickerOptions.customListener = listener;
return this;
}
public OptionsPickerBuilder setBgColor(int bgColorWheel) {
mPickerOptions.bgColorWheel = bgColorWheel;
return this;
}
public OptionsPickerBuilder setTitleBgColor(int bgColorTitle) {
mPickerOptions.bgColorTitle = bgColorTitle;
return this;
}
public OptionsPickerBuilder setTitleColor(int textColorTitle) {
mPickerOptions.textColorTitle = textColorTitle;
return this;
}
public OptionsPickerBuilder setSubCalSize(int textSizeSubmitCancel) {
mPickerOptions.textSizeSubmitCancel = textSizeSubmitCancel;
return this;
}
public OptionsPickerBuilder setTitleSize(int textSizeTitle) {
mPickerOptions.textSizeTitle = textSizeTitle;
return this;
}
public OptionsPickerBuilder setContentTextSize(int textSizeContent) {
mPickerOptions.textSizeContent = textSizeContent;
return this;
}
public OptionsPickerBuilder setOutSideCancelable(boolean cancelable) {
mPickerOptions.cancelable = cancelable;
return this;
}
public OptionsPickerBuilder setLabels(String label1, String label2, String label3) {
mPickerOptions.label1 = label1;
mPickerOptions.label2 = label2;
mPickerOptions.label3 = label3;
return this;
}
/**
* 设置Item 的间距倍数,用于控制 Item 高度间隔
*
* @param lineSpacingMultiplier 浮点型,1.0-4.0f 之间有效,超过则取极值。
*/
public OptionsPickerBuilder setLineSpacingMultiplier(float lineSpacingMultiplier) {
mPickerOptions.lineSpacingMultiplier = lineSpacingMultiplier;
return this;
}
/**
* Set item divider line type color.
*
* @param dividerColor color resId.
*/
public OptionsPickerBuilder setDividerColor(@ColorInt int dividerColor) {
mPickerOptions.dividerColor = dividerColor;
return this;
}
/**
* Set item divider line type.
*
* @param dividerType enum Type {@link WheelView.DividerType}
*/
public OptionsPickerBuilder setDividerType(WheelView.DividerType dividerType) {
mPickerOptions.dividerType = dividerType;
return this;
}
/**
* Set the textColor of selected item.
*
* @param textColorCenter color res.
*/
public OptionsPickerBuilder setTextColorCenter(int textColorCenter) {
mPickerOptions.textColorCenter = textColorCenter;
return this;
}
/**
* Set the textColor of outside item.
*
* @param textColorOut color resId.
*/
public OptionsPickerBuilder setTextColorOut(@ColorInt int textColorOut) {
mPickerOptions.textColorOut = textColorOut;
return this;
}
public OptionsPickerBuilder setTypeface(Typeface font) {
mPickerOptions.font = font;
return this;
}
public OptionsPickerBuilder setCyclic(boolean cyclic1, boolean cyclic2, boolean cyclic3) {
mPickerOptions.cyclic1 = cyclic1;
mPickerOptions.cyclic2 = cyclic2;
mPickerOptions.cyclic3 = cyclic3;
return this;
}
public OptionsPickerBuilder setSelectOptions(int option1) {
mPickerOptions.option1 = option1;
return this;
}
public OptionsPickerBuilder setSelectOptions(int option1, int option2) {
mPickerOptions.option1 = option1;
mPickerOptions.option2 = option2;
return this;
}
public OptionsPickerBuilder setSelectOptions(int option1, int option2, int option3) {
mPickerOptions.option1 = option1;
mPickerOptions.option2 = option2;
mPickerOptions.option3 = option3;
return this;
}
public OptionsPickerBuilder setTextXOffset(int xoffset_one, int xoffset_two, int xoffset_three) {
mPickerOptions.x_offset_one = xoffset_one;
mPickerOptions.x_offset_two = xoffset_two;
mPickerOptions.x_offset_three = xoffset_three;
return this;
}
public OptionsPickerBuilder isCenterLabel(boolean isCenterLabel) {
mPickerOptions.isCenterLabel = isCenterLabel;
return this;
}
/**
* 设置最大可见数目
*
* @param count 建议设置为 3 ~ 9之间。
*/
public OptionsPickerBuilder setItemVisibleCount(int count) {
mPickerOptions.itemsVisibleCount = count;
return this;
}
/**
* 透明度是否渐变
*
* @param isAlphaGradient true of false
*/
public OptionsPickerBuilder isAlphaGradient(boolean isAlphaGradient) {
mPickerOptions.isAlphaGradient = isAlphaGradient;
return this;
}
/**
* 切换选项时,是否还原第一项
*
* @param isRestoreItem true:还原; false: 保持上一个选项
* @return TimePickerBuilder
*/
public OptionsPickerBuilder isRestoreItem(boolean isRestoreItem) {
mPickerOptions.isRestoreItem = isRestoreItem;
return this;
}
/**
* @param listener 切换item项滚动停止时,实时回调监听。
* @return
*/
public OptionsPickerBuilder setOptionsSelectChangeListener(OnOptionsSelectChangeListener listener) {
mPickerOptions.optionsSelectChangeListener = listener;
return this;
}
public <T> OptionsPickerView<T> build() {
return new OptionsPickerView<>(mPickerOptions);
}
}
package com.gingersoft.gsa.cloud.ui.view.timeselect.builder;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.ColorInt;
import com.bigkoo.pickerview.configure.PickerOptions;
import com.bigkoo.pickerview.listener.CustomListener;
import com.bigkoo.pickerview.listener.OnTimeSelectChangeListener;
import com.bigkoo.pickerview.listener.OnTimeSelectListener;
import com.contrarywind.view.WheelView;
import com.gingersoft.gsa.cloud.ui.view.timeselect.TimePickerView;
import java.util.Calendar;
/**
* Created by xiaosongzeem on 2018/3/20.
*/
public class TimePickerBuilder {
private PickerOptions mPickerOptions;
//Required
public TimePickerBuilder(Context context, OnTimeSelectListener listener) {
mPickerOptions = new PickerOptions(PickerOptions.TYPE_PICKER_TIME);
mPickerOptions.context = context;
mPickerOptions.timeSelectListener = listener;
}
//Option
public TimePickerBuilder setGravity(int gravity) {
mPickerOptions.textGravity = gravity;
return this;
}
public TimePickerBuilder addOnCancelClickListener(View.OnClickListener cancelListener) {
mPickerOptions.cancelListener = cancelListener;
return this;
}
/**
* new boolean[]{true, true, true, false, false, false}
* control the "year","month","day","hours","minutes","seconds " display or hide.
* 分别控制“年”“月”“日”“时”“分”“秒”的显示或隐藏。
*
* @param type 布尔型数组,长度需要设置为6。
* @return TimePickerBuilder
*/
public TimePickerBuilder setType(boolean[] type) {
mPickerOptions.type = type;
return this;
}
public TimePickerBuilder setSubmitText(String textContentConfirm) {
mPickerOptions.textContentConfirm = textContentConfirm;
return this;
}
public TimePickerBuilder isDialog(boolean isDialog) {
mPickerOptions.isDialog = isDialog;
return this;
}
public TimePickerBuilder setCancelText(String textContentCancel) {
mPickerOptions.textContentCancel = textContentCancel;
return this;
}
public TimePickerBuilder setTitleText(String textContentTitle) {
mPickerOptions.textContentTitle = textContentTitle;
return this;
}
public TimePickerBuilder setSubmitColor(int textColorConfirm) {
mPickerOptions.textColorConfirm = textColorConfirm;
return this;
}
public TimePickerBuilder setCancelColor(int textColorCancel) {
mPickerOptions.textColorCancel = textColorCancel;
return this;
}
/**
* ViewGroup 类型的容器
*
* @param decorView 选择器会被添加到此容器中
* @return TimePickerBuilder
*/
public TimePickerBuilder setDecorView(ViewGroup decorView) {
mPickerOptions.decorView = decorView;
return this;
}
public TimePickerBuilder setBgColor(int bgColorWheel) {
mPickerOptions.bgColorWheel = bgColorWheel;
return this;
}
public TimePickerBuilder setTitleBgColor(int bgColorTitle) {
mPickerOptions.bgColorTitle = bgColorTitle;
return this;
}
public TimePickerBuilder setTitleColor(int textColorTitle) {
mPickerOptions.textColorTitle = textColorTitle;
return this;
}
public TimePickerBuilder setSubCalSize(int textSizeSubmitCancel) {
mPickerOptions.textSizeSubmitCancel = textSizeSubmitCancel;
return this;
}
public TimePickerBuilder setTitleSize(int textSizeTitle) {
mPickerOptions.textSizeTitle = textSizeTitle;
return this;
}
public TimePickerBuilder setContentTextSize(int textSizeContent) {
mPickerOptions.textSizeContent = textSizeContent;
return this;
}
/**
* 设置最大可见数目
*
* @param count suggest value: 3, 5, 7, 9
*/
public TimePickerBuilder setItemVisibleCount(int count) {
mPickerOptions.itemsVisibleCount = count;
return this;
}
/**
* 透明度是否渐变
*
* @param isAlphaGradient true of false
*/
public TimePickerBuilder isAlphaGradient(boolean isAlphaGradient) {
mPickerOptions.isAlphaGradient = isAlphaGradient;
return this;
}
/**
* 因为系统Calendar的月份是从0-11的,所以如果是调用Calendar的set方法来设置时间,月份的范围也要是从0-11
*
* @param date
* @return TimePickerBuilder
*/
public TimePickerBuilder setDate(Calendar date) {
mPickerOptions.date = date;
return this;
}
public TimePickerBuilder setLayoutRes(int res, CustomListener customListener) {
mPickerOptions.layoutRes = res;
mPickerOptions.customListener = customListener;
return this;
}
/**
* 设置起始时间
* 因为系统Calendar的月份是从0-11的,所以如果是调用Calendar的set方法来设置时间,月份的范围也要是从0-11
*/
public TimePickerBuilder setRangDate(Calendar startDate, Calendar endDate) {
mPickerOptions.startDate = startDate;
mPickerOptions.endDate = endDate;
return this;
}
/**
* 设置间距倍数,但是只能在1.0-4.0f之间
*
* @param lineSpacingMultiplier
*/
public TimePickerBuilder setLineSpacingMultiplier(float lineSpacingMultiplier) {
mPickerOptions.lineSpacingMultiplier = lineSpacingMultiplier;
return this;
}
/**
* 设置分割线的颜色
*
* @param dividerColor
*/
public TimePickerBuilder setDividerColor(@ColorInt int dividerColor) {
mPickerOptions.dividerColor = dividerColor;
return this;
}
/**
* 设置分割线的类型
*
* @param dividerType
*/
public TimePickerBuilder setDividerType(WheelView.DividerType dividerType) {
mPickerOptions.dividerType = dividerType;
return this;
}
/**
* {@link #setOutSideColor} instead.
*
* @param backgroundId color resId.
*/
@Deprecated
public TimePickerBuilder setBackgroundId(int backgroundId) {
mPickerOptions.outSideColor = backgroundId;
return this;
}
/**
* 显示时的外部背景色颜色,默认是灰色
*
* @param outSideColor
*/
public TimePickerBuilder setOutSideColor(@ColorInt int outSideColor) {
mPickerOptions.outSideColor = outSideColor;
return this;
}
/**
* 设置分割线之间的文字的颜色
*
* @param textColorCenter
*/
public TimePickerBuilder setTextColorCenter(@ColorInt int textColorCenter) {
mPickerOptions.textColorCenter = textColorCenter;
return this;
}
/**
* 设置分割线以外文字的颜色
*
* @param textColorOut
*/
public TimePickerBuilder setTextColorOut(@ColorInt int textColorOut) {
mPickerOptions.textColorOut = textColorOut;
return this;
}
public TimePickerBuilder isCyclic(boolean cyclic) {
mPickerOptions.cyclic = cyclic;
return this;
}
public TimePickerBuilder setOutSideCancelable(boolean cancelable) {
mPickerOptions.cancelable = cancelable;
return this;
}
public TimePickerBuilder setLunarCalendar(boolean lunarCalendar) {
mPickerOptions.isLunarCalendar = lunarCalendar;
return this;
}
public TimePickerBuilder setLabel(String label_year, String label_month, String label_day, String label_hours, String label_mins, String label_seconds) {
mPickerOptions.label_year = label_year;
mPickerOptions.label_month = label_month;
mPickerOptions.label_day = label_day;
mPickerOptions.label_hours = label_hours;
mPickerOptions.label_minutes = label_mins;
mPickerOptions.label_seconds = label_seconds;
return this;
}
/**
* 设置X轴倾斜角度[ -90 , 90°]
*
* @param x_offset_year 年
* @param x_offset_month 月
* @param x_offset_day 日
* @param x_offset_hours 时
* @param x_offset_minutes 分
* @param x_offset_seconds 秒
* @return
*/
public TimePickerBuilder setTextXOffset(int x_offset_year, int x_offset_month, int x_offset_day,
int x_offset_hours, int x_offset_minutes, int x_offset_seconds) {
mPickerOptions.x_offset_year = x_offset_year;
mPickerOptions.x_offset_month = x_offset_month;
mPickerOptions.x_offset_day = x_offset_day;
mPickerOptions.x_offset_hours = x_offset_hours;
mPickerOptions.x_offset_minutes = x_offset_minutes;
mPickerOptions.x_offset_seconds = x_offset_seconds;
return this;
}
public TimePickerBuilder isCenterLabel(boolean isCenterLabel) {
mPickerOptions.isCenterLabel = isCenterLabel;
return this;
}
/**
* @param listener 切换item项滚动停止时,实时回调监听。
* @return
*/
public TimePickerBuilder setTimeSelectChangeListener(OnTimeSelectChangeListener listener) {
mPickerOptions.timeSelectChangeListener = listener;
return this;
}
public TimePickerView build() {
return new TimePickerView(mPickerOptions);
}
}
...@@ -43,4 +43,6 @@ ...@@ -43,4 +43,6 @@
<item name="about_version_code" type="id"/> <item name="about_version_code" type="id"/>
<item name="split" type="id"/> <item name="split" type="id"/>
<item name="layout_replace" type="id"/> <item name="layout_replace" type="id"/>
<item name="iv_prj_history" type="id"/>
</resources> </resources>
\ No newline at end of file
...@@ -43,5 +43,8 @@ ...@@ -43,5 +43,8 @@
<activity <activity
android:name=".mvp.ui.activity.AddressListActivity" android:name=".mvp.ui.activity.AddressListActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity
android:name=".mvp.ui.activity.PrjQueryActivity"
android:screenOrientation="portrait" />
</application> </application>
</manifest> </manifest>
\ No newline at end of file
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
android:networkSecurityConfig="@xml/network_android" android:networkSecurityConfig="@xml/network_android"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/AppTheme"> android:theme="@style/AppTheme">
<activity android:name=".mvp.ui.activity.PrjQueryActivity" />
<activity android:name=".mvp.ui.activity.AddressListActivity" /> <activity android:name=".mvp.ui.activity.AddressListActivity" />
<activity android:name=".ui.activity.LogActivity" /> <activity android:name=".ui.activity.LogActivity" />
<activity android:name=".ui.activity.OrderDetailsActivity" /> <activity android:name=".ui.activity.OrderDetailsActivity" />
......
...@@ -8,6 +8,7 @@ import com.billy.cc.core.component.CCUtil; ...@@ -8,6 +8,7 @@ import com.billy.cc.core.component.CCUtil;
import com.billy.cc.core.component.IComponent; import com.billy.cc.core.component.IComponent;
import com.gingersoft.gsa.cloud.service.GetInfoUpdateService; import com.gingersoft.gsa.cloud.service.GetInfoUpdateService;
import com.gingersoft.gsa.delivery_pick_mode.data.network.ServiceCreator; import com.gingersoft.gsa.delivery_pick_mode.data.network.ServiceCreator;
import com.gingersoft.gsa.delivery_pick_mode.mvp.ui.activity.PrjQueryActivity;
import com.gingersoft.gsa.delivery_pick_mode.mvp.ui.activity.SendOrderActivity; import com.gingersoft.gsa.delivery_pick_mode.mvp.ui.activity.SendOrderActivity;
import com.gingersoft.gsa.delivery_pick_mode.ui.activity.DeliveryOrderMainActivity; import com.gingersoft.gsa.delivery_pick_mode.ui.activity.DeliveryOrderMainActivity;
import com.gingersoft.gsa.delivery_pick_mode.ui.activity.HistoryOrderActivity; import com.gingersoft.gsa.delivery_pick_mode.ui.activity.HistoryOrderActivity;
...@@ -64,6 +65,10 @@ public class DeliveryPickComponent implements IComponent { ...@@ -64,6 +65,10 @@ public class DeliveryPickComponent implements IComponent {
CCUtil.navigateTo(cc, SendOrderActivity.class); CCUtil.navigateTo(cc, SendOrderActivity.class);
CC.sendCCResult(cc.getCallId(), CCResult.success()); CC.sendCCResult(cc.getCallId(), CCResult.success());
break; break;
case "PrjQueryActivity":
CCUtil.navigateTo(cc, PrjQueryActivity.class);
CC.sendCCResult(cc.getCallId(), CCResult.success());
break;
default: default:
// cc.callAsync(new IComponentCallback() { // cc.callAsync(new IComponentCallback() {
// @Override // @Override
......
package com.gingersoft.gsa.delivery_pick_mode.data.network package com.gingersoft.gsa.delivery_pick_mode.data.network
import android.util.Log
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
import com.gingersoft.gsa.cloud.base.utils.encryption.Aes import com.gingersoft.gsa.cloud.base.utils.encryption.Aes
import com.gingersoft.gsa.cloud.constans.AppConstans import com.gingersoft.gsa.cloud.constans.AppConstans
...@@ -45,6 +46,7 @@ object ServiceCreator { ...@@ -45,6 +46,7 @@ object ServiceCreator {
builder = Retrofit.Builder() builder = Retrofit.Builder()
.baseUrl(HttpsConstans.ricepon_wechat) .baseUrl(HttpsConstans.ricepon_wechat)
.client(httpClient.build()) .client(httpClient.build())
.addConverterFactory(ScalarsConverterFactory.create()) .addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create()) .addConverterFactory(GsonConverterFactory.create())
builder2 = Retrofit.Builder() builder2 = Retrofit.Builder()
...@@ -131,6 +133,7 @@ object ServiceCreator { ...@@ -131,6 +133,7 @@ object ServiceCreator {
token = Aes.aesEncrypt("9_" + memberId + "_" + System.currentTimeMillis() + "_" + loginToken) token = Aes.aesEncrypt("9_" + memberId + "_" + System.currentTimeMillis() + "_" + loginToken)
token = token.replace("\r|\n".toRegex(), "") token = token.replace("\r|\n".toRegex(), "")
builder.set("token", token) builder.set("token", token)
Log.e("eee", "添加Token:" + token);
} }
val request1 = chain.request().newBuilder().headers(builder.build()).build() val request1 = chain.request().newBuilder().headers(builder.build()).build()
return chain.proceed(request1) return chain.proceed(request1)
......
package com.gingersoft.gsa.delivery_pick_mode.di.component;
import dagger.BindsInstance;
import dagger.Component;
import com.jess.arms.di.component.AppComponent;
import com.gingersoft.gsa.delivery_pick_mode.di.module.PrjQueryModule;
import com.gingersoft.gsa.delivery_pick_mode.mvp.contract.PrjQueryContract;
import com.jess.arms.di.scope.ActivityScope;
import com.gingersoft.gsa.delivery_pick_mode.mvp.ui.activity.PrjQueryActivity;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 10/20/2020 09:34
* <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>
* ================================================
*/
@ActivityScope
@Component(modules = PrjQueryModule.class, dependencies = AppComponent.class)
public interface PrjQueryComponent {
void inject(PrjQueryActivity activity);
@Component.Builder
interface Builder {
@BindsInstance
PrjQueryComponent.Builder view(PrjQueryContract.View view);
PrjQueryComponent.Builder appComponent(AppComponent appComponent);
PrjQueryComponent build();
}
}
\ No newline at end of file
package com.gingersoft.gsa.delivery_pick_mode.di.module;
import com.jess.arms.di.scope.ActivityScope;
import dagger.Binds;
import dagger.Module;
import dagger.Provides;
import com.gingersoft.gsa.delivery_pick_mode.mvp.contract.PrjQueryContract;
import com.gingersoft.gsa.delivery_pick_mode.mvp.model.PrjQueryModel;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 10/20/2020 09:34
* <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>
* ================================================
*/
@Module
public abstract class PrjQueryModule {
@Binds
abstract PrjQueryContract.Model bindPrjQueryModel(PrjQueryModel model);
}
\ No newline at end of file
package com.gingersoft.gsa.delivery_pick_mode.mvp.bean;
import com.gingersoft.gsa.cloud.print.bean.PrjBean;
import java.util.List;
import lombok.Data;
@Data
public class PrjQueryBean {
/**
* success : true
* sysTime : 1603245617207
* data : [{"id":48865917,"orderNo":"26200413276048171","orderTime":2020,"sender":"","sendTime":"","person":0,"number":1,"orderDetailsTime":"Aug 6, 2020 6:08:29 PM","orderDetailsId":48865917,"productName":"蟹膏軍艦 (2件)","productName2":"","productName3":"","parentId":0,"type":3,"productId":34985,"requests":0,"takeFoodCode":"A241","takeTime":"08-06 (週四)立即","billNo":"0685","orderType":7,"presence":1}]
*/
private boolean success;
private long sysTime;
private String errMsg;
private List<PrjBean.DataBean.Bean> data;
}
package com.gingersoft.gsa.delivery_pick_mode.mvp.contract;
import com.gingersoft.gsa.delivery_pick_mode.mvp.bean.PrjQueryBean;
import com.jess.arms.mvp.IModel;
import com.jess.arms.mvp.IView;
import io.reactivex.Observable;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 10/20/2020 09:34
* <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 interface PrjQueryContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView {
void loadPrjInfo(PrjQueryBean prjQueryBean);
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel {
Observable<PrjQueryBean> getKitchenPrint(String orderId);
}
}
package com.gingersoft.gsa.delivery_pick_mode.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.delivery_pick_mode.mvp.bean.PrjQueryBean;
import com.gingersoft.gsa.delivery_pick_mode.mvp.contract.PrjQueryContract;
import com.gingersoft.gsa.delivery_pick_mode.mvp.server.PrjQueryServer;
import com.google.gson.Gson;
import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.integration.IRepositoryManager;
import com.jess.arms.mvp.BaseModel;
import javax.inject.Inject;
import io.reactivex.Observable;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 10/20/2020 09:34
* <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>
* ================================================
*/
@ActivityScope
public class PrjQueryModel extends BaseModel implements PrjQueryContract.Model {
@Inject
Gson mGson;
@Inject
Application mApplication;
@Inject
public PrjQueryModel(IRepositoryManager repositoryManager) {
super(repositoryManager);
}
@Override
public void onDestroy() {
super.onDestroy();
this.mGson = null;
this.mApplication = null;
}
@Override
public Observable<PrjQueryBean> getKitchenPrint(String orderId) {
return mRepositoryManager.obtainRetrofitService(PrjQueryServer.class).
getKitchenPrint(orderId, GsaCloudApplication.getRestaurantId() + "");
}
}
\ No newline at end of file
package com.gingersoft.gsa.delivery_pick_mode.mvp.presenter;
import android.app.Application;
import com.gingersoft.gsa.cloud.base.utils.other.TextUtil;
import com.gingersoft.gsa.delivery_pick_mode.mvp.bean.PrjQueryBean;
import com.gingersoft.gsa.delivery_pick_mode.mvp.contract.PrjQueryContract;
import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager;
import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.utils.RxLifecycleUtils;
import javax.inject.Inject;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.schedulers.Schedulers;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 10/20/2020 09:34
* <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>
* ================================================
*/
@ActivityScope
public class PrjQueryPresenter extends BasePresenter<PrjQueryContract.Model, PrjQueryContract.View> {
@Inject
RxErrorHandler mErrorHandler;
@Inject
Application mApplication;
@Inject
ImageLoader mImageLoader;
@Inject
AppManager mAppManager;
@Inject
public PrjQueryPresenter(PrjQueryContract.Model model, PrjQueryContract.View rootView) {
super(model, rootView);
}
@Override
public void onDestroy() {
super.onDestroy();
this.mErrorHandler = null;
this.mAppManager = null;
this.mImageLoader = null;
this.mApplication = null;
}
public void getKitchenPrint(String orderNo) {
mModel.getKitchenPrint(orderNo)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading("查詢打印信息 ..."))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<PrjQueryBean>(mErrorHandler) {
@Override
public void onNext(@NonNull PrjQueryBean info) {
if (info != null) {
if (info.getData() != null) {
mRootView.loadPrjInfo(info);
} else if (TextUtil.isNotEmptyOrNullOrUndefined(info.getErrMsg())) {
mRootView.showMessage(info.getErrMsg());
} else {
mRootView.showMessage("打印信息查詢失敗");
}
} else {
mRootView.showMessage("打印信息查詢失敗");
}
}
@Override
public void onError(Throwable t) {
super.onError(t);
}
});
}
}
...@@ -172,7 +172,7 @@ public class SendOrderPresenter extends BasePresenter<SendOrderContract.Model, S ...@@ -172,7 +172,7 @@ public class SendOrderPresenter extends BasePresenter<SendOrderContract.Model, S
for (OrderDetails.DataBean.PRODUCTNAMEBean productnameBean : productnameBeans) { for (OrderDetails.DataBean.PRODUCTNAMEBean productnameBean : productnameBeans) {
if (productnameBean.getChild() != null) { if (productnameBean.getChild() != null) {
for (OrderDetails.DataBean.PRODUCTNAMEBean.ChildBeanX childBeanX : productnameBean.getChild()) { for (OrderDetails.DataBean.PRODUCTNAMEBean.ChildBeanX childBeanX : productnameBean.getChild()) {
if (childBeanX != null) { if (childBeanX.getChild() != null) {
for (OrderDetails.DataBean.PRODUCTNAMEBean.ChildBeanX.ChildBean childBean : childBeanX.getChild()) { for (OrderDetails.DataBean.PRODUCTNAMEBean.ChildBeanX.ChildBean childBean : childBeanX.getChild()) {
ids.append(childBean.getOdsId()); ids.append(childBean.getOdsId());
ids.append(","); ids.append(",");
...@@ -232,6 +232,7 @@ public class SendOrderPresenter extends BasePresenter<SendOrderContract.Model, S ...@@ -232,6 +232,7 @@ public class SendOrderPresenter extends BasePresenter<SendOrderContract.Model, S
json.put("addressDetail", address); json.put("addressDetail", address);
json.put("orderRemark", ""); json.put("orderRemark", "");
json.put("payType", 1); json.put("payType", 1);
json.put("receiver", name);
//原价 //原价
json.put("originalAmount", MyOrderManage.getInstance().getWholeAmount()); json.put("originalAmount", MyOrderManage.getInstance().getWholeAmount());
json.put("orderType", 2);//訂單類型#1:餐廳訂單;2:線上外賣訂單3:扫码点餐;4固定二维码订单;5:预点餐;6:積分訂單;7:自取订单 json.put("orderType", 2);//訂單類型#1:餐廳訂單;2:線上外賣訂單3:扫码点餐;4固定二维码订单;5:预点餐;6:積分訂單;7:自取订单
......
package com.gingersoft.gsa.delivery_pick_mode.mvp.server;
import com.gingersoft.gsa.delivery_pick_mode.mvp.bean.PrjQueryBean;
import io.reactivex.Observable;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface PrjQueryServer {
@GET("printerRecording/getKitchenPrint" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<PrjQueryBean> getKitchenPrint(@Query("orderNo") String orderId, @Query("restaurantId") String restaurantId);
}
...@@ -74,7 +74,7 @@ public class AddressListActivity extends BaseActivity<AddressListPresenter> impl ...@@ -74,7 +74,7 @@ public class AddressListActivity extends BaseActivity<AddressListPresenter> impl
List<MemberAddressInfoBean.DataBean> dataBeanList = (List<MemberAddressInfoBean.DataBean>) getIntent().getSerializableExtra(REQUEST_ADDRESS_LIST_NAME); List<MemberAddressInfoBean.DataBean> dataBeanList = (List<MemberAddressInfoBean.DataBean>) getIntent().getSerializableExtra(REQUEST_ADDRESS_LIST_NAME);
int resultCode = getIntent().getIntExtra(RESULT_CODE, 0); int resultCode = getIntent().getIntExtra(RESULT_CODE, 0);
AddressAdapter addressAdapter = new AddressAdapter(dataBeanList); AddressAdapter addressAdapter = new AddressAdapter(dataBeanList);
addressAdapter.setOnItemChildClickListener((adapter, view, position) -> { addressAdapter.setOnItemClickListener((adapter, view, position) -> {
Intent intent = new Intent(); Intent intent = new Intent();
intent.putExtra(RESULT_DATA_NAME, dataBeanList.get(position)); intent.putExtra(RESULT_DATA_NAME, dataBeanList.get(position));
setResult(resultCode, intent); setResult(resultCode, intent);
......
package com.gingersoft.gsa.delivery_pick_mode.mvp.ui.activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.utils.okhttpUtils.OkHttp3Utils;
import com.gingersoft.gsa.cloud.base.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.constans.AppConstans;
import com.gingersoft.gsa.cloud.constans.PrintConstans;
import com.gingersoft.gsa.cloud.print.bean.PrjBean;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.gingersoft.gsa.delivery_pick_mode.R;
import com.gingersoft.gsa.delivery_pick_mode.R2;
import com.gingersoft.gsa.delivery_pick_mode.di.component.DaggerPrjQueryComponent;
import com.gingersoft.gsa.delivery_pick_mode.mvp.bean.PrjQueryBean;
import com.gingersoft.gsa.delivery_pick_mode.mvp.contract.PrjQueryContract;
import com.gingersoft.gsa.delivery_pick_mode.mvp.presenter.PrjQueryPresenter;
import com.gingersoft.gsa.delivery_pick_mode.mvp.ui.adapter.PrjStateAdapter;
import com.jess.arms.base.BaseActivity;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.widget.QMUITopBar;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
import static com.jess.arms.utils.Preconditions.checkNotNull;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 10/20/2020 09:34
* <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 PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements PrjQueryContract.View, View.OnClickListener {
@BindView(R2.id.top_bar_prj_print)
QMUITopBar topBarPrjPrint;
@BindView(R2.id.tv_prj_record_order_id)
TextView tvPrjRecordOrderId;
@BindView(R2.id.rv_prj_record_list)
RecyclerView rvPrjRecordList;
@BindView(R2.id.layout_edit_prj_order_number)
ConstraintLayout editLayout;
@BindView(R2.id.iv_search_order_prj)
ImageView ivSearchOrderPrj;
@BindView(R2.id.layout_prj_order_number)
LinearLayout layoutPrjOrderNumber;
@BindView(R2.id.ed_input_order_number)
EditText edOrderNumber;
private static final String ORDERID_EXTRA_NAME = "orderId";
@Override
public void setupActivityComponent(@NonNull AppComponent appComponent) {
DaggerPrjQueryComponent //如找不到该类,请编译一下项目
.builder()
.appComponent(appComponent)
.view(this)
.build()
.inject(this);
}
@Override
public int initView(@Nullable Bundle savedInstanceState) {
return R.layout.activity_prj_query;
}
@Override
public void initData(@Nullable Bundle savedInstanceState) {
String orderId = getIntent().getStringExtra(ORDERID_EXTRA_NAME);
if (TextUtil.isNotEmptyOrNullOrUndefined(orderId)) {
layoutPrjOrderNumber.setVisibility(View.VISIBLE);
tvPrjRecordOrderId.setText(orderId);
mPresenter.getKitchenPrint(orderId);
} else {
editLayout.setVisibility(View.VISIBLE);
}
}
public static void startPrjQueryActivity(Context context, String orderId) {
Intent intent = new Intent(context, PrjQueryActivity.class);
intent.putExtra(ORDERID_EXTRA_NAME, orderId);
context.startActivity(intent);
}
@Override
public void initIntent() {
}
@Override
public void initTopBar() {
topBarPrjPrint.setTitle("廚房打印查詢");
topBarPrjPrint.setBackgroundColor(ContextCompat.getColor(this, R.color.theme_color));
topBarPrjPrint.addLeftImageButton(R.drawable.icon_return, R.id.iv_left_back).setOnClickListener(v -> killMyself());
}
@Override
public void initLanguage() {
}
@Override
public void initLayoutParams() {
}
@Override
public void initLayoutVisible() {
}
@Override
public void showLoading(String message) {
if (message != null) {
LoadingDialog.showDialogForLoading(this, message, true);
} else {
LoadingDialog.showDialogForLoading(this);
}
}
@Override
public void hideLoading() {
LoadingDialog.cancelDialogForLoading();
}
@Override
public void showMessage(@NonNull String message) {
ArmsUtils.makeText(this, message);
}
@Override
public void launchActivity(@NonNull Intent intent) {
checkNotNull(intent);
ArmsUtils.startActivity(intent);
}
@Override
public void killMyself() {
finish();
}
@OnClick({R2.id.iv_search_order_prj})
@Override
public void onClick(View v) {
int viewId = v.getId();
if (viewId == R.id.iv_search_order_prj) {
if (TextUtil.isNotEmptyOrNullOrUndefined(edOrderNumber)) {
mPresenter.getKitchenPrint(edOrderNumber.getText().toString());
}
}
}
@Override
public void loadPrjInfo(PrjQueryBean prjQueryBean) {
PrjStateAdapter prjStateAdapter = new PrjStateAdapter(mContext, prjQueryBean.getData());
rvPrjRecordList.setAdapter(prjStateAdapter);
prjStateAdapter.setOnItemChildClickListener((adapter, view, position) -> {
if (view.getId() == R.id.tv_prj_record_print_operation) {
//重印
List<PrjBean.DataBean.Bean> prjData = prjQueryBean.getData();
if (prjData.get(position).getParentId() == 0) {
//是主食品,判斷有沒有子食品,如果沒有子食品,直接打印主食品
if (position + 1 > prjData.size() || prjData.get(position + 1).getParentId() == 0) {
//沒有子食品
//直接打印
List<PrjBean.DataBean.Bean> printDatas = new ArrayList<>();
printDatas.add(prjData.get(position));
printPrj(printDatas);
} else if (prjData.get(position).getProductId().equals(prjData.get(position + 1).getParentId() + "")) {
//有子食品
List<PrjBean.DataBean.Bean> printDatas = new ArrayList<>();
printDatas.add(prjData.get(position));
for (int i = position; i < prjData.size(); i++) {
if (prjData.get(position).getProductId().equals(prjData.get(i).getParentId() + "")) {
printDatas.add(prjData.get(i));
} else {
break;
}
}
printPrj(printDatas);
}
} else {
//是子食品,直接打印子食品
List<PrjBean.DataBean.Bean> printDatas = new ArrayList<>();
printDatas.add(prjData.get(position));
printPrj(printDatas);
}
//添加重印的報警推送
OkHttp3Utils.noticePersonnel(AppConstans.RP_REPRINT_CODE, "重印,訂單號:" + prjData.get(position).getOrderNo());
}
});
rvPrjRecordList.setLayoutManager(new LinearLayoutManager(mContext));
}
private void printPrj(List<PrjBean.DataBean.Bean> printDatas) {
CC.obtainBuilder("Component.Print")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_KITCHEN)
.addParam("prjBeans", printDatas)
.setActionName("printActivity")
.build()
.callAsyncCallbackOnMainThread((cc, result) -> {
});
}
}
package com.gingersoft.gsa.delivery_pick_mode.mvp.ui.adapter;
import android.content.Context;
import android.widget.TextView;
import androidx.core.content.ContextCompat;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.gingersoft.gsa.cloud.print.bean.PrjBean;
import com.gingersoft.gsa.delivery_pick_mode.R;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.math.BigDecimal;
import java.util.List;
public class PrjStateAdapter extends BaseQuickAdapter<PrjBean.DataBean.Bean, BaseViewHolder> {
private Context context;
private int indentation;
public PrjStateAdapter(Context context, @Nullable List<PrjBean.DataBean.Bean> data) {
super(R.layout.item_prj_state, data);
this.context = context;
addChildClickViewIds(R.id.tv_prj_record_print_operation);
}
@Override
protected void convert(@NotNull BaseViewHolder baseViewHolder, PrjBean.DataBean.Bean dataBean) {
TextView state = baseViewHolder.getView(R.id.tv_prj_record_print_state);
TextView foodName = baseViewHolder.getView(R.id.tv_prj_record_food_name);
foodName.setText(dataBean.getProductName());
if (dataBean.getPresence() == 0) {
state.setText("沒有生成");
state.setTextColor(ContextCompat.getColor(context, R.color.red));
} else if (dataBean.getType() == 3) {
state.setText("已打印");
state.setTextColor(ContextCompat.getColor(context, R.color.order_state4_color));
} else if (dataBean.getType() == 1) {
state.setText("打印失敗");
state.setTextColor(ContextCompat.getColor(context, R.color.red));
} else {
state.setText("未知");
state.setTextColor(ContextCompat.getColor(context, R.color.gray));
}
if (baseViewHolder.getAdapterPosition() == 0) {
//只第一次測量一下
indentation = new BigDecimal(foodName.getPaint().measureText("哈")).setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
}
if (dataBean.getParentId() != 0) {
foodName.setPadding(indentation, foodName.getPaddingTop(), foodName.getPaddingRight(), foodName.getPaddingBottom());
} else {
foodName.setPadding(0, foodName.getPaddingTop(), foodName.getPaddingRight(), foodName.getPaddingBottom());
}
}
}
...@@ -37,6 +37,7 @@ import com.gingersoft.gsa.delivery_pick_mode.model.viewModel.PageViewModel.Compa ...@@ -37,6 +37,7 @@ import com.gingersoft.gsa.delivery_pick_mode.model.viewModel.PageViewModel.Compa
import com.gingersoft.gsa.delivery_pick_mode.model.viewModel.PageViewModel.Companion.OrderDelivery import com.gingersoft.gsa.delivery_pick_mode.model.viewModel.PageViewModel.Companion.OrderDelivery
import com.gingersoft.gsa.delivery_pick_mode.model.viewModel.PageViewModel.Companion.PrintCode import com.gingersoft.gsa.delivery_pick_mode.model.viewModel.PageViewModel.Companion.PrintCode
import com.gingersoft.gsa.delivery_pick_mode.model.viewModel.PageViewModel.Companion.Transportation import com.gingersoft.gsa.delivery_pick_mode.model.viewModel.PageViewModel.Companion.Transportation
import com.gingersoft.gsa.delivery_pick_mode.mvp.ui.activity.PrjQueryActivity
import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.DeliveryAdapter import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.DeliveryAdapter
import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.FoodListAdapter import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.FoodListAdapter
import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.OrderDetailsAdapter import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.OrderDetailsAdapter
...@@ -67,6 +68,7 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() { ...@@ -67,6 +68,7 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() {
lateinit var skeletonScreen: ViewSkeletonScreen lateinit var skeletonScreen: ViewSkeletonScreen
var restaurantId: Int = -1 var restaurantId: Int = -1
private var orderNo: String? = null
lateinit var rvThirdExpenses: RecyclerView lateinit var rvThirdExpenses: RecyclerView
lateinit var thirdExpensesLayout: LinearLayout lateinit var thirdExpensesLayout: LinearLayout
...@@ -114,6 +116,7 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() { ...@@ -114,6 +116,7 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() {
topbar.setTitle(GsaCloudApplication.getRestaurantName()) topbar.setTitle(GsaCloudApplication.getRestaurantName())
topbar.addLeftImageButton(R.drawable.icon_return, R.id.iv_left_back).setOnClickListener { finish() } topbar.addLeftImageButton(R.drawable.icon_return, R.id.iv_left_back).setOnClickListener { finish() }
topbar.setBackgroundColor(ContextCompat.getColor(this, R.color.theme_color)) topbar.setBackgroundColor(ContextCompat.getColor(this, R.color.theme_color))
} }
private fun PageViewModel.getOrderDetails(orderId: String, binding: ActivityOrderDetailsBinding) { private fun PageViewModel.getOrderDetails(orderId: String, binding: ActivityOrderDetailsBinding) {
...@@ -124,6 +127,10 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() { ...@@ -124,6 +127,10 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() {
if (it?.data != null && it.data!!.isNotEmpty()) { if (it?.data != null && it.data!!.isNotEmpty()) {
//初始化頁面佈局 //初始化頁面佈局
val orderDetails = it.data!![0] val orderDetails = it.data!![0]
orderNo = orderDetails.ORDER_NO.toString()
qm_order_details_bar.addRightImageButton(R.drawable.ic_print, R.id.iv_prj_history).setOnClickListener {
PrjQueryActivity.startPrjQueryActivity(this@OrderDetailsActivity, orderNo)
}
orderDetails.order_type = orderType orderDetails.order_type = orderType
orderDetails.orderPayType = orderPayType orderDetails.orderPayType = orderPayType
binding.data = orderDetails binding.data = orderDetails
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.qmuiteam.qmui.widget.QMUITopBar
android:id="@+id/top_bar_prj_print"
android:layout_width="match_parent"
android:layout_height="@dimen/head_height"
android:fitsSystemWindows="true"
app:qmui_topbar_text_btn_color_state_list="@color/theme_white_color"
app:qmui_topbar_title_color="@color/theme_white_color" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layout_edit_prj_order_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_10"
android:visibility="gone"
android:layout_marginRight="@dimen/dp_10"
android:orientation="horizontal"
android:paddingTop="@dimen/dp_20"
android:paddingBottom="@dimen/dp_20">
<EditText
android:id="@+id/ed_input_order_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/shape_login_edit_border"
android:hint="請輸入訂單號"
android:padding="@dimen/dp_10"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_search_order_prj"
android:layout_width="@dimen/dp_50"
android:layout_height="0dp"
android:padding="@dimen/dp_8"
android:src="@drawable/ic_search"
app:layout_constraintBottom_toBottomOf="@id/ed_input_order_number"
app:layout_constraintRight_toRightOf="@id/ed_input_order_number"
app:layout_constraintTop_toTopOf="@id/ed_input_order_number" />
<View
android:layout_width="@dimen/dp_0_5"
android:layout_height="0dp"
android:background="@color/color_aaa"
app:layout_constraintBottom_toBottomOf="@id/iv_search_order_prj"
app:layout_constraintRight_toLeftOf="@id/iv_search_order_prj"
app:layout_constraintTop_toTopOf="@id/iv_search_order_prj" />
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
android:id="@+id/layout_prj_order_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_10"
android:orientation="horizontal"
android:paddingTop="@dimen/dp_20"
android:paddingBottom="@dimen/dp_20"
android:visibility="gone">
<TextView
android:id="@+id/tv_prj_record_order_number_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="訂單號:"
android:textColor="@color/theme_333_color"
android:textSize="@dimen/dp_18"
android:textStyle="bold"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_prj_record_order_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/theme_333_color"
android:textSize="@dimen/dp_18"
app:layout_constraintLeft_toRightOf="@id/tv_prj_record_order_number_text"
app:layout_constraintTop_toTopOf="parent"
tools:text="746932158462315" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_10"
android:background="@color/color_e4"
android:orientation="horizontal"
android:paddingLeft="@dimen/dp_10"
android:paddingTop="@dimen/dp_5"
android:paddingRight="@dimen/dp_10"
android:paddingBottom="@dimen/dp_5">
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="食品名稱"
android:textColor="@color/theme_color"
android:textSize="@dimen/dp_16" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="打印狀態"
android:textColor="@color/theme_color"
android:textSize="@dimen/dp_16" />
<TextView
android:layout_width="0dp"
android:layout_weight="0.5"
android:gravity="center"
android:layout_height="wrap_content"
android:text="操作"
android:textColor="@color/theme_color"
android:textSize="@dimen/dp_16" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_prj_record_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_10" />
</LinearLayout>
\ No newline at end of file
<?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="wrap_content"
android:orientation="horizontal"
android:paddingLeft="@dimen/dp_10"
android:paddingTop="@dimen/dp_5"
android:gravity="center"
android:paddingRight="@dimen/dp_10"
android:paddingBottom="@dimen/dp_5">
<TextView
android:id="@+id/tv_prj_record_food_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="@color/theme_333_color"
android:textSize="@dimen/dp_16"
tools:text="食品名稱一" />
<TextView
android:id="@+id/tv_prj_record_print_state"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/theme_333_color"
android:textSize="@dimen/dp_16"
tools:text="打印狀態" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:orientation="vertical">
<TextView
android:id="@+id/tv_prj_record_print_operation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/theme_color"
android:gravity="right"
android:paddingLeft="@dimen/dp_10"
android:paddingTop="@dimen/dp_2"
android:paddingRight="@dimen/dp_10"
android:paddingBottom="@dimen/dp_2"
android:text="重印"
android:textColor="@color/white"
android:textSize="@dimen/dp_16" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
...@@ -55,6 +55,7 @@ dependencies { ...@@ -55,6 +55,7 @@ dependencies {
// implementation fileTree(include: ['*.jar'], dir: 'libs') // implementation fileTree(include: ['*.jar'], dir: 'libs')
api project(':updateApk') api project(':updateApk')
implementation project(path: ':android_internal')
annotationProcessor rootProject.ext.dependencies["dagger2-compiler"] annotationProcessor rootProject.ext.dependencies["dagger2-compiler"]
debugImplementation rootProject.ext.dependencies["canary-debug"] debugImplementation rootProject.ext.dependencies["canary-debug"]
......
...@@ -257,44 +257,10 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl ...@@ -257,44 +257,10 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
} }
private void initFuncationData() { private void initFuncationData() {
//拿到功能列表數據
// FunctionDaoUtils functionDao = new FunctionDaoUtils(mContext);
// List<Function> functions = functionDao.queryAllFunction();
// if (functions == null) {
// return;
// }
List<Function> functions = new ArrayList<>(); List<Function> functions = new ArrayList<>();
// functions.add(new Function((long) 150, 0, 5, "點餐", 0, 0)); List<Function> orderFunctions = FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.main.class, ComponentMain.main.order, "order");
// functions.add(new Function((long) 140, 150, 5, "冷鏈接單", R.drawable.ic_pre_order_mode, 0)); if (orderFunctions.size() > 0) {
functions.addAll(orderFunctions);
//// if (!BuildConfig.DEBUG) {
// functions.add(new Function((long) 150, 0, 5, "點餐", 0, 0));
// if (BuildConfig.DEBUG) {
// functions.add(new Function((long) 138, 150, 5, "餐檯模式", R.drawable.ic_dining_table_mode, 0));
// }
// functions.add(new Function((long) 139, 150, 5, "外送/自取", R.drawable.ic_delivery_mode, 0));
//// functions.add(new Function((long) 140, 150, 5, "外賣模式", R.drawable.ic_outsourcing_model_close, 0));
//// functions.add(new Function((long) 141, 150, 5, "預點餐模式", R.drawable.ic_pre_order_mode_close, 1));
// functions.add(new Function((long) 151, 0, 5, "管理", 0, 0));
// if (BuildConfig.DEBUG) {
// functions.add(new Function((long) 142, 151, 5, "賬單管理", R.drawable.ic_meals_menu_management, 0));
// functions.add(new Function((long) 143, 151, 5, "餐檯管理", R.drawable.ic_dining_table_management, 0));
// }
// functions.add(new Function((long) 144, 151, 5, "打印管理", R.drawable.ic_print_management, 0));
// if (BuildConfig.DEBUG) {
// functions.add(new Function((long) 145, 151, 5, "支付管理", R.drawable.ic_pay_management_close, 1));
// functions.add(new Function((long) 146, 151, 5, "折扣管理", R.drawable.ic_discount_management_close, 1));
// functions.add(new Function((long) 147, 151, 5, "沽清管理", R.drawable.ic_sell_off_manger, 0));
// }
// functions.add(new Function((long) 152, 0, 5, "員工", 0, 0));
// functions.add(new Function((long) 147, 152, 5, "員工管理", R.drawable.ic_staff_management_close, 1));
// functions.add(new Function((long) 148, 152, 5, "權限管理", R.drawable.ic_authority_management_close, 1));
// functions.add(new Function((long) 149, 152, 5, "操作記錄", R.drawable.ic_operation_record_close, 1));
// } else {
List<Function> orderFuncations = FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.main.class, ComponentMain.main.order, "order");
if (orderFuncations.size() > 0) {
functions.addAll(orderFuncations);
sl_order.setVisibility(View.VISIBLE); sl_order.setVisibility(View.VISIBLE);
} else { } else {
sl_order.setVisibility(View.INVISIBLE); sl_order.setVisibility(View.INVISIBLE);
...@@ -304,6 +270,7 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl ...@@ -304,6 +270,7 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
managerFuncations.add(new Function((long) 171, 163, 5, "二維碼", R.drawable.ic_authority_management_close, 0)); managerFuncations.add(new Function((long) 171, 163, 5, "二維碼", R.drawable.ic_authority_management_close, 0));
managerFuncations.add(new Function((long) 171, 163, 5, "配置列表", R.drawable.ic_authority_management_close, 0)); managerFuncations.add(new Function((long) 171, 163, 5, "配置列表", R.drawable.ic_authority_management_close, 0));
managerFuncations.add(new Function((long) 171, 163, 5, "廚房打印查詢", R.drawable.ic_authority_management_close, 0));
if (managerFuncations.size() > 0) { if (managerFuncations.size() > 0) {
functions.addAll(managerFuncations); functions.addAll(managerFuncations);
...@@ -338,7 +305,7 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl ...@@ -338,7 +305,7 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
} }
} }
} }
if (orderFuncations.size() > 0) { if (orderFunctions.size() > 0) {
initAdapter(parents, funMap, 0, R.layout.main_home_funcation_item, rvOrdering, 4); initAdapter(parents, funMap, 0, R.layout.main_home_funcation_item, rvOrdering, 4);
} }
if (managerFuncations.size() > 0) { if (managerFuncations.size() > 0) {
...@@ -366,53 +333,65 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl ...@@ -366,53 +333,65 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
} }
private void functionClick(String name, int status) { private void functionClick(String name, int status) {
// switch (status) { switch (name){
// case STATUS_NONACTIVATED: case "餐檯模式":
// ToastUtils.show(mContext, "服務暫未開通,請前往開通"); CC.obtainBuilder("Component.Table")
// return; .setActionName("showTableActivity")
// case STATUS_TIME_LIMIT: .build()
// ToastUtils.show(mContext, "服務已到期,請前往續費"); .call();
// return; break;
// } case "打印管理":
if (name.equals("餐檯模式")) {
CC.obtainBuilder("Component.Table") CC.obtainBuilder("Component.Print")
.setActionName("showTableActivity") .setActionName("showPrintActivity")
.build() .build()
.call(); .call();
} else if (name.equals("打印管理")) { break;
CC.obtainBuilder("Component.Print") case "賬單管理":
.setActionName("showPrintActivity") CC.obtainBuilder("Component.Table")
.build() .setActionName("showOrderCenterActivity")
.call(); .build()
} else if (name.equals("賬單管理")) { .call();
CC.obtainBuilder("Component.Table") break;
.setActionName("showOrderCenterActivity") case "外送/自取":
.build() CC.obtainBuilder("ComponentDeliveryPick")
.call(); .setActionName("orderActivity")
} else if (name.equals("外送/自取")) { .build()
CC.obtainBuilder("ComponentDeliveryPick") .call();
.setActionName("orderActivity") break;
.build() case "沽清管理":
.call(); CC.obtainBuilder("Component.Table")
} else if (name.equals("沽清管理")) { .setActionName("showSoldoutCtrlActivity")
CC.obtainBuilder("Component.Table") .build()
.setActionName("showSoldoutCtrlActivity") .call();
.build() break;
.call(); case "餐檯管理":
} else if (name.equals("餐檯管理")) { CC.obtainBuilder("Component.Manager")
CC.obtainBuilder("Component.Manager") .setActionName("showTableManageActivity")
.setActionName("showTableManageActivity") .build()
.build() .call();
.call(); break;
} else if (name.equals("冷鏈接單") || name.equals("凍鏈接單")) { case "冷鏈接單":
CC.obtainBuilder("Component.ColdChain") case "凍鏈接單":
.setActionName("Component.ColdChain") CC.obtainBuilder("Component.ColdChain")
.build() .setActionName("Component.ColdChain")
.call(); .build()
} else if (name.equals("二維碼")) { .call();
launchActivity(new Intent(mContext, RestaurantQrCodeActivity.class)); break;
} else if (name.equals("配置列表")) { case "二維碼":
launchActivity(new Intent(mContext, ExpandListActivity.class)); launchActivity(new Intent(mContext, RestaurantQrCodeActivity.class));
break;
case "配置列表":
launchActivity(new Intent(mContext, ExpandListActivity.class));
break;
case "廚房打印查詢":
CC.obtainBuilder("ComponentDeliveryPick")
.setActionName("PrjQueryActivity")
.build()
.call();
break;
default:
break;
} }
} }
......
...@@ -8,7 +8,7 @@ import android.widget.EditText; ...@@ -8,7 +8,7 @@ import android.widget.EditText;
import android.widget.Switch; import android.widget.Switch;
import android.widget.TextView; import android.widget.TextView;
import com.bigkoo.pickerview.TimePickerView; import com.bigkoo.pickerview.builder.TimePickerBuilder;
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.base.utils.other.TextUtil; import com.gingersoft.gsa.cloud.base.utils.other.TextUtil;
...@@ -83,13 +83,13 @@ public class ExpandListAdapter extends BaseQuickAdapter<ExpandInfo, BaseViewHold ...@@ -83,13 +83,13 @@ public class ExpandListAdapter extends BaseQuickAdapter<ExpandInfo, BaseViewHold
//Sep 11, 2020 6:10:42 PM //Sep 11, 2020 6:10:42 PM
tvTime.setOnClickListener(v -> { tvTime.setOnClickListener(v -> {
//时间选择器 //时间选择器
new TimePickerView.Builder(getContext(), (date, view) -> { new TimePickerBuilder(getContext(), (date, view) -> {
tvTime.setText(TimeUtils.parseDateToString(date, TimeUtils.DATE_FORMAT_DATE)); tvTime.setText(TimeUtils.parseDateToString(date, TimeUtils.DATE_FORMAT_DATE));
function.setUpdate(true); function.setUpdate(true);
}) })
.setDate(calendar) .setDate(calendar)
.setType(TimePickerView.Type.YEAR_MONTH_DAY) .setType(new boolean[]{true,true,true,false,false,false})
.setContentSize(24) .setContentTextSize(24)
.setLabel("", "", "", "", "", "") .setLabel("", "", "", "", "", "")
.build() .build()
.show(); .show();
......
...@@ -9,6 +9,7 @@ import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils; ...@@ -9,6 +9,7 @@ import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.database.bean.PrintCurrencyBean; import com.gingersoft.gsa.cloud.database.bean.PrintCurrencyBean;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean; import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.print.bean.OrderDetails; import com.gingersoft.gsa.cloud.print.bean.OrderDetails;
import com.gingersoft.gsa.cloud.print.bean.PrjBean;
import com.joe.print.R; import com.joe.print.R;
import com.joe.print.mvp.print.utils.MyPrintUtils; import com.joe.print.mvp.print.utils.MyPrintUtils;
......
...@@ -15,7 +15,7 @@ import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils; ...@@ -15,7 +15,7 @@ import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.constans.ExpandConstant; import com.gingersoft.gsa.cloud.constans.ExpandConstant;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean; import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.joe.print.R; import com.joe.print.R;
import com.joe.print.mvp.model.bean.PrjBean; import com.gingersoft.gsa.cloud.print.bean.PrjBean;
import com.joe.print.mvp.ui.adapter.KitChenPrjPrintFoodAdapter; import com.joe.print.mvp.ui.adapter.KitChenPrjPrintFoodAdapter;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -50,6 +50,7 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -50,6 +50,7 @@ public class PrintPrjKitchen extends PrinterRoot {
noCut.add(bean); noCut.add(bean);
} }
} }
if (noCut.size() > 0) { if (noCut.size() > 0) {
Bitmap bitmap = getKitChenPrintBitmap(mContext, key, noCut, deviceBean); Bitmap bitmap = getKitChenPrintBitmap(mContext, key, noCut, deviceBean);
bitmaps.add(bitmap); bitmaps.add(bitmap);
......
...@@ -33,7 +33,7 @@ import com.gingersoft.gsa.cloud.print.PrinterWriter58mm; ...@@ -33,7 +33,7 @@ import com.gingersoft.gsa.cloud.print.PrinterWriter58mm;
import com.hyweb.n5.lib.constant.PrinterConstant; import com.hyweb.n5.lib.constant.PrinterConstant;
import com.hyweb.n5.lib.util.PrinterUtil; import com.hyweb.n5.lib.util.PrinterUtil;
import com.hyweb.n5.server.aidl.IOnPrintCallback; import com.hyweb.n5.server.aidl.IOnPrintCallback;
import com.joe.print.mvp.model.bean.PrjBean; import com.gingersoft.gsa.cloud.print.bean.PrjBean;
import com.joe.print.mvp.print.PrintPrjKitchen; import com.joe.print.mvp.print.PrintPrjKitchen;
import com.joe.print.mvp.print.PrinterRoot; import com.joe.print.mvp.print.PrinterRoot;
import com.joe.print.mvp.print.common.PrinterFinderCallback; import com.joe.print.mvp.print.common.PrinterFinderCallback;
......
...@@ -35,6 +35,7 @@ import com.gingersoft.gsa.cloud.database.bean.PrintCurrencyBean; ...@@ -35,6 +35,7 @@ import com.gingersoft.gsa.cloud.database.bean.PrintCurrencyBean;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean; import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.print.PrintExecutor; import com.gingersoft.gsa.cloud.print.PrintExecutor;
import com.gingersoft.gsa.cloud.print.PrintSocketHolder; import com.gingersoft.gsa.cloud.print.PrintSocketHolder;
import com.gingersoft.gsa.cloud.print.bean.PrjBean;
import com.jess.arms.base.BaseActivity; import com.jess.arms.base.BaseActivity;
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;
...@@ -45,6 +46,7 @@ import com.joe.print.mvp.presenter.PrintPresenter; ...@@ -45,6 +46,7 @@ import com.joe.print.mvp.presenter.PrintPresenter;
import com.joe.print.mvp.print.OpenCashBoxMaker; import com.joe.print.mvp.print.OpenCashBoxMaker;
import com.joe.print.mvp.print.PrintInstruction; import com.joe.print.mvp.print.PrintInstruction;
import com.joe.print.mvp.print.PrintListener; import com.joe.print.mvp.print.PrintListener;
import com.joe.print.mvp.print.PrintPrjKitchen;
import com.joe.print.mvp.print.PrinterRoot; import com.joe.print.mvp.print.PrinterRoot;
import com.joe.print.mvp.print.utils.MyPrintUtils; import com.joe.print.mvp.print.utils.MyPrintUtils;
import com.joe.print.mvp.ui.adapter.DialogPrinterListAdapter; import com.joe.print.mvp.ui.adapter.DialogPrinterListAdapter;
...@@ -123,11 +125,8 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -123,11 +125,8 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
return 0; //R.layout.print_bitmap如果你不需要框架帮你设置 setContentView(id) 需要 自行设置,请返回 0 return 0; //R.layout.print_bitmap如果你不需要框架帮你设置 setContentView(id) 需要 自行设置,请返回 0
} }
// ImageView bitmapIv;
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
// bitmapIv = findViewById(R.id.iv_bitmap);
callId = CCUtil.getNavigateCallId(this); callId = CCUtil.getNavigateCallId(this);
//獲取打印類型,根據打印類型生成對應的bitmap //獲取打印類型,根據打印類型生成對應的bitmap
type = CCUtil.getNavigateParam(this, PRINT_TYPE, PrintConstans.PRINT_TEST); type = CCUtil.getNavigateParam(this, PRINT_TYPE, PrintConstans.PRINT_TEST);
...@@ -138,21 +137,13 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -138,21 +137,13 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
printerInIt.setPrintListener(this); printerInIt.setPrintListener(this);
} }
initPrintConfig(); initPrintConfig();
// new Thread(new Runnable() {
// @Override
// public void run() {
// Handler handler = new Handler(Looper.getMainLooper());
// handler.sendMessage()
// }
// });
} }
private int selectPrint = -1; private int selectPrint = -1;
private void initPrintConfig() { private void initPrintConfig() {
PrintCurrencyBean printCurrencyBean = null; PrintCurrencyBean printCurrencyBean = null;
PrinterDeviceBean defaultPrint; PrinterDeviceBean defaultPrint = null;
//獲取通用打印配置,不同的打印 //獲取通用打印配置,不同的打印
if (type == 5 || type == 7) { if (type == 5 || type == 7) {
//外賣的通用打印配置 //外賣的通用打印配置
...@@ -175,6 +166,13 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -175,6 +166,13 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
// 如果沒有最近使用的打印機,並且當前餐廳只有一台打印機,就用這一台打印機打印 // 如果沒有最近使用的打印機,並且當前餐廳只有一台打印機,就用這一台打印機打印
defaultPrint = mPresenter.getDefaultPrintInList(printerDeviceBeans, (String) SPUtils.get(mContext, "defaultPrint", "")); defaultPrint = mPresenter.getDefaultPrintInList(printerDeviceBeans, (String) SPUtils.get(mContext, "defaultPrint", ""));
} }
if (type == PrintConstans.PRINT_KITCHEN) {
// List<PrjBean.DataBean.Bean> printDatas = (List<PrjBean.DataBean.Bean>) getIntent().getSerializableExtra("prjBeans");
List<PrjBean.DataBean.Bean> printDatas = CCUtil.getNavigateParam(this, "prjBeans", null);
Map<String, List<PrjBean.DataBean.Bean>> prjMap = PrintPrjKitchen.getPrjMap();
prjMap.put("", printDatas);
}
if (defaultPrint == null) { if (defaultPrint == null) {
//沒有默認打印機,查看當前餐廳有沒有打印機 //沒有默認打印機,查看當前餐廳有沒有打印機
//如果當前餐廳有打印機,彈出彈窗讓用戶選擇一個打印機打印 //如果當前餐廳有打印機,彈出彈窗讓用戶選擇一個打印機打印
......
...@@ -3,7 +3,6 @@ package com.joe.print.mvp.ui.activity; ...@@ -3,7 +3,6 @@ package com.joe.print.mvp.ui.activity;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
...@@ -11,8 +10,7 @@ import com.epson.epos2.printer.Printer; ...@@ -11,8 +10,7 @@ import com.epson.epos2.printer.Printer;
import com.epson.epos2.printer.PrinterStatusInfo; import com.epson.epos2.printer.PrinterStatusInfo;
import com.epson.epos2.printer.ReceiveListener; import com.epson.epos2.printer.ReceiveListener;
import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail; import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.utils.okhttpUtils.OkHttp3Utils; import com.gingersoft.gsa.cloud.base.utils.time.TimePickerUtils;
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.database.bean.PrinterDeviceBean; import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.print.PrintExecutor; import com.gingersoft.gsa.cloud.print.PrintExecutor;
...@@ -22,15 +20,12 @@ import com.joe.print.mvp.print.common.PrinterFinderCallback; ...@@ -22,15 +20,12 @@ import com.joe.print.mvp.print.common.PrinterFinderCallback;
import com.joe.print.mvp.print.common.SendCallback; import com.joe.print.mvp.print.common.SendCallback;
import com.joe.print.mvp.print.common.SendResultCode; import com.joe.print.mvp.print.common.SendResultCode;
import com.joe.print.mvp.print.usb.UsbPrinter; import com.joe.print.mvp.print.usb.UsbPrinter;
import com.joe.print.mvp.print.usb.UsbPrinterFinder;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar;
import java.util.List; import java.util.List;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
public class PrintTestActivity extends AppCompatActivity implements PrintSocketHolder.OnStateChangedListener, PrintExecutor.OnPrintResultListener, ReceiveListener { public class PrintTestActivity extends AppCompatActivity implements PrintSocketHolder.OnStateChangedListener, PrintExecutor.OnPrintResultListener, ReceiveListener {
private int lineLength = 42;//一行42個 17.5 private int lineLength = 42;//一行42個 17.5
...@@ -176,43 +171,48 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH ...@@ -176,43 +171,48 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_print_test); setContentView(R.layout.activity_print_test);
EditText ed_ip = findViewById(R.id.ed_ip); // EditText ed_ip = findViewById(R.id.ed_ip);
UsbPrinterFinder printerFinder = new UsbPrinterFinder(this, printerFinderCallback); // UsbPrinterFinder printerFinder = new UsbPrinterFinder(this, printerFinderCallback);
printerFinder.startFinder(); // printerFinder.startFinder();
//
List<OrderDetail> foodList = new ArrayList<>(); // List<OrderDetail> foodList = new ArrayList<>();
foodList.add(new OrderDetail("牛肉拉麵", 10, 1)); // foodList.add(new OrderDetail("牛肉拉麵", 10, 1));
foodList.add(new OrderDetail("紅燒牛肉拉麵", 200, 2)); // foodList.add(new OrderDetail("紅燒牛肉拉麵", 200, 2));
//
findViewById(R.id.btn_test).setOnClickListener(view -> { // findViewById(R.id.btn_test).setOnClickListener(view -> {
//打印測試 // //打印測試
String stringBuilder = "<html><body>" + // String stringBuilder = "<html><body>" +
getPLable("GingerSoft") + // getPLable("GingerSoft") +
getPLable("Gs1") + // getPLable("Gs1") +
getPLable("開檯時間:" + TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT)) + // getPLable("開檯時間:" + TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT)) +
getPLable(getLineChar(lineLength, "_")) + // getPLable(getLineChar(lineLength, "_")) +
getPLable(getFoodListStr(foodList)) + // getPLable(getFoodListStr(foodList)) +
"</body></html>"; // "</body></html>";
OkHttp3Utils.get("http://localhost:8080/pos?transactionType=PRINT&isExternal=false&apiVersion=21&printData=" + stringBuilder).subscribe(new Observer<String>() { // OkHttp3Utils.get("http://localhost:8080/pos?transactionType=PRINT&isExternal=false&apiVersion=21&printData=" + stringBuilder).subscribe(new Observer<String>() {
@Override // @Override
public void onSubscribe(Disposable d) { // public void onSubscribe(Disposable d) {
//
} // }
//
@Override // @Override
public void onNext(String s) { // public void onNext(String s) {
} // }
//
@Override // @Override
public void onError(Throwable e) { // public void onError(Throwable e) {
//
} // }
//
@Override // @Override
public void onComplete() { // public void onComplete() {
//
} // }
}); // });
// });
TimePickerUtils.showTimePicker(this, null, (date, v1) -> {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
}); });
} }
......
...@@ -12,7 +12,7 @@ import com.chad.library.adapter.base.viewholder.BaseViewHolder; ...@@ -12,7 +12,7 @@ import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.gingersoft.gsa.cloud.base.R; import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.utils.other.TextUtil; import com.gingersoft.gsa.cloud.base.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean; import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.joe.print.mvp.model.bean.PrjBean; import com.gingersoft.gsa.cloud.print.bean.PrjBean;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
......
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