Commit 5e45c2a8 by Wyh

10.15 1、BBpos打印印單、上菜紙、處方單 2、PRJ打印頁數優化 3、新訂單頁面

Signed-off-by: Wyh <1239658231>
parent cc2bb8ac
...@@ -51,7 +51,7 @@ android { ...@@ -51,7 +51,7 @@ android {
/** /**
* 版本号 * 版本号
*/ */
schemaVersion 16 schemaVersion 17
/** /**
* greendao输出dao的数据库操作实体类文件夹(相对路径 包名+自定义路径名称,包将创建于包名的直接路径下) * greendao输出dao的数据库操作实体类文件夹(相对路径 包名+自定义路径名称,包将创建于包名的直接路径下)
*/ */
......
...@@ -30,13 +30,13 @@ import com.gingersoft.gsa.cloud.base.utils.crash.AppCrashHandler; ...@@ -30,13 +30,13 @@ import com.gingersoft.gsa.cloud.base.utils.crash.AppCrashHandler;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil; import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.base.utils.other.SPUtils; import com.gingersoft.gsa.cloud.base.utils.other.SPUtils;
import com.gingersoft.gsa.cloud.base.utils.xlog.MyBackupStrategy; import com.gingersoft.gsa.cloud.base.utils.xlog.MyBackupStrategy;
import com.gingersoft.gsa.cloud.bean.RestaurantExpandInfo;
import com.gingersoft.gsa.cloud.constans.HttpsConstans; import com.gingersoft.gsa.cloud.constans.HttpsConstans;
import com.gingersoft.gsa.cloud.constans.PrintConstans; import com.gingersoft.gsa.cloud.constans.PrintConstans;
import com.gingersoft.gsa.cloud.constans.UserConstans; import com.gingersoft.gsa.cloud.constans.UserConstans;
import com.gingersoft.gsa.cloud.database.DaoManager; import com.gingersoft.gsa.cloud.database.DaoManager;
import com.gingersoft.gsa.cloud.database.bean.ExpandInfo; import com.gingersoft.gsa.cloud.database.bean.ExpandInfo;
import com.gingersoft.gsa.cloud.database.utils.ExpandInfoDaoUtils; import com.gingersoft.gsa.cloud.database.utils.ExpandInfoDaoUtils;
import com.gingersoft.gsa.cloud.bean.RestaurantExpandInfo;
import com.hyweb.n5.lib.exception.NoInitPrinterException; import com.hyweb.n5.lib.exception.NoInitPrinterException;
import com.hyweb.n5.lib.util.PrinterUtil; import com.hyweb.n5.lib.util.PrinterUtil;
import com.jess.arms.base.BaseApplication; import com.jess.arms.base.BaseApplication;
...@@ -105,7 +105,7 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -105,7 +105,7 @@ public class GsaCloudApplication extends BaseApplication {
@Override @Override
public void onCreate() { public void onCreate() {
super.onCreate(); super.onCreate();
this.mAppContext = this; mAppContext = this;
CC.enableVerboseLog(true); CC.enableVerboseLog(true);
CC.enableDebug(true); CC.enableDebug(true);
CC.enableRemoteCC(true); CC.enableRemoteCC(true);
...@@ -227,6 +227,8 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -227,6 +227,8 @@ public class GsaCloudApplication extends BaseApplication {
RetrofitUrlManager.getInstance().putDomain("ricepon_activities", HttpsConstans.ricepon_activities); RetrofitUrlManager.getInstance().putDomain("ricepon_activities", HttpsConstans.ricepon_activities);
///ricepon-cloud-gsa/api/請求地址 ///ricepon-cloud-gsa/api/請求地址
RetrofitUrlManager.getInstance().putDomain("ricepon_cloud_gsa", HttpsConstans.ricepon_cloud_gsa); RetrofitUrlManager.getInstance().putDomain("ricepon_cloud_gsa", HttpsConstans.ricepon_cloud_gsa);
//61177
RetrofitUrlManager.getInstance().putDomain("ricepon_member", HttpsConstans.RICEPON_MEMBER_61177);
} }
private void initPrint() { private void initPrint() {
......
...@@ -20,4 +20,43 @@ public class BaseResult { ...@@ -20,4 +20,43 @@ public class BaseResult {
private String errMsg; private String errMsg;
private Object data; private Object data;
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public long getSysTime() {
return sysTime;
}
public void setSysTime(long sysTime) {
this.sysTime = sysTime;
}
public String getErrCode() {
return errCode;
}
public void setErrCode(String errCode) {
this.errCode = errCode;
}
public String getErrMsg() {
return errMsg;
}
public void setErrMsg(String errMsg) {
this.errMsg = errMsg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
} }
...@@ -234,4 +234,332 @@ public class PayMethod { ...@@ -234,4 +234,332 @@ public class PayMethod {
this.nameSecond = name; this.nameSecond = name;
this.nameThird = name; this.nameThird = name;
} }
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getBrandId() {
return brandId;
}
public void setBrandId(int brandId) {
this.brandId = brandId;
}
public int getRestaurantId() {
return restaurantId;
}
public void setRestaurantId(int restaurantId) {
this.restaurantId = restaurantId;
}
public String getNameFirst() {
return nameFirst;
}
public void setNameFirst(String nameFirst) {
this.nameFirst = nameFirst;
}
public String getNameSecond() {
return nameSecond;
}
public void setNameSecond(String nameSecond) {
this.nameSecond = nameSecond;
}
public String getNameThird() {
return nameThird;
}
public void setNameThird(String nameThird) {
this.nameThird = nameThird;
}
public int getWhetherSales() {
return whetherSales;
}
public void setWhetherSales(int whetherSales) {
this.whetherSales = whetherSales;
}
public int getWhetherManagerAuthority() {
return whetherManagerAuthority;
}
public void setWhetherManagerAuthority(int whetherManagerAuthority) {
this.whetherManagerAuthority = whetherManagerAuthority;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getFont_color() {
return font_color;
}
public void setFont_color(String font_color) {
this.font_color = font_color;
}
public int getWhetherReportCount() {
return whetherReportCount;
}
public void setWhetherReportCount(int whetherReportCount) {
this.whetherReportCount = whetherReportCount;
}
public int getInteractiveType() {
return interactiveType;
}
public void setInteractiveType(int interactiveType) {
this.interactiveType = interactiveType;
}
public int getWhetherFixedAmount() {
return whetherFixedAmount;
}
public void setWhetherFixedAmount(int whetherFixedAmount) {
this.whetherFixedAmount = whetherFixedAmount;
}
public double getAmountValue() {
return amountValue;
}
public void setAmountValue(double amountValue) {
this.amountValue = amountValue;
}
public int getPayType() {
return payType;
}
public void setPayType(int payType) {
this.payType = payType;
}
public double getMinPayAmount() {
return minPayAmount;
}
public void setMinPayAmount(double minPayAmount) {
this.minPayAmount = minPayAmount;
}
public int getWhetherFreeService() {
return whetherFreeService;
}
public void setWhetherFreeService(int whetherFreeService) {
this.whetherFreeService = whetherFreeService;
}
public int getWhetherTaxExemption() {
return whetherTaxExemption;
}
public void setWhetherTaxExemption(int whetherTaxExemption) {
this.whetherTaxExemption = whetherTaxExemption;
}
public int getWhetherSignatureLine() {
return whetherSignatureLine;
}
public void setWhetherSignatureLine(int whetherSignatureLine) {
this.whetherSignatureLine = whetherSignatureLine;
}
public int getPaySeq() {
return paySeq;
}
public void setPaySeq(int paySeq) {
this.paySeq = paySeq;
}
public int getWhetherOpenBox() {
return whetherOpenBox;
}
public void setWhetherOpenBox(int whetherOpenBox) {
this.whetherOpenBox = whetherOpenBox;
}
public int getGetIntegral() {
return getIntegral;
}
public void setGetIntegral(int getIntegral) {
this.getIntegral = getIntegral;
}
public int getIntegralMultiple() {
return integralMultiple;
}
public void setIntegralMultiple(int integralMultiple) {
this.integralMultiple = integralMultiple;
}
public float getDeductionIntegral() {
return deductionIntegral;
}
public void setDeductionIntegral(float deductionIntegral) {
this.deductionIntegral = deductionIntegral;
}
public int getDockingType() {
return dockingType;
}
public void setDockingType(int dockingType) {
this.dockingType = dockingType;
}
public String getBillType() {
return billType;
}
public void setBillType(String billType) {
this.billType = billType;
}
public int getTablePrintingAmount() {
return tablePrintingAmount;
}
public void setTablePrintingAmount(int tablePrintingAmount) {
this.tablePrintingAmount = tablePrintingAmount;
}
public int getTakeOutPrintingAmount() {
return takeOutPrintingAmount;
}
public void setTakeOutPrintingAmount(int takeOutPrintingAmount) {
this.takeOutPrintingAmount = takeOutPrintingAmount;
}
public long getUpdateTime() {
return updateTime;
}
public void setUpdateTime(long updateTime) {
this.updateTime = updateTime;
}
public long getCreateTimeX() {
return createTimeX;
}
public void setCreateTimeX(long createTimeX) {
this.createTimeX = createTimeX;
}
public int getUpdateUid() {
return updateUid;
}
public void setUpdateUid(int updateUid) {
this.updateUid = updateUid;
}
public int getCreateUid() {
return createUid;
}
public void setCreateUid(int createUid) {
this.createUid = createUid;
}
public double getPayMoney() {
return payMoney;
}
public void setPayMoney(double payMoney) {
this.payMoney = payMoney;
}
public double getTipsPrice() {
return TipsPrice;
}
public void setTipsPrice(double tipsPrice) {
TipsPrice = tipsPrice;
}
public int getPayModeTextColor() {
return payModeTextColor;
}
public void setPayModeTextColor(int payModeTextColor) {
this.payModeTextColor = payModeTextColor;
}
public int getPayMoneyTextColor() {
return payMoneyTextColor;
}
public void setPayMoneyTextColor(int payMoneyTextColor) {
this.payMoneyTextColor = payMoneyTextColor;
}
public int getPayModeTextSelectColor() {
return payModeTextSelectColor;
}
public void setPayModeTextSelectColor(int payModeTextSelectColor) {
this.payModeTextSelectColor = payModeTextSelectColor;
}
public int getPayMoneyTextSelectColor() {
return payMoneyTextSelectColor;
}
public void setPayMoneyTextSelectColor(int payMoneyTextSelectColor) {
this.payMoneyTextSelectColor = payMoneyTextSelectColor;
}
public int getPayModeSize() {
return payModeSize;
}
public void setPayModeSize(int payModeSize) {
this.payModeSize = payModeSize;
}
public int getPayMoneySize() {
return payMoneySize;
}
public void setPayMoneySize(int payMoneySize) {
this.payMoneySize = payMoneySize;
}
public static int getPayTypeCash() {
return PAY_TYPE_CASH;
}
public static int getPayTypeIntegral() {
return PAY_TYPE_INTEGRAL;
}
} }
package com.gingersoft.gsa.cloud.base.utils.other; package com.gingersoft.gsa.cloud.base.utils.other;
import android.widget.EditText;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
...@@ -23,6 +25,15 @@ public class TextUtil { ...@@ -23,6 +25,15 @@ public class TextUtil {
!str.equals("null") && !str.equals("undefined"); !str.equals("null") && !str.equals("undefined");
} }
public static boolean isNotEmptyOrNullOrUndefined(EditText editText) {
if (editText != null && editText.getText() != null) {
String str = editText.getText().toString();
return str.length() != 0 && !str.equals("null") && !str.equals("undefined");
} else {
return false;
}
}
public static String isEmptyReturnString(String str) { public static String isEmptyReturnString(String str) {
if (str == null || str.length() == 0 || if (str == null || str.length() == 0 ||
str.equals("null") || str.equals("undefined")) { str.equals("null") || str.equals("undefined")) {
...@@ -53,9 +64,10 @@ public class TextUtil { ...@@ -53,9 +64,10 @@ public class TextUtil {
c[i] = (char) 32; c[i] = (char) 32;
continue; continue;
} }
if (c[i] > 65280 && c[i] < 65375) if (c[i] > 65280 && c[i] < 65375) {
c[i] = (char) (c[i] - 65248); c[i] = (char) (c[i] - 65248);
} }
}
return new String(c); return new String(c);
} }
......
...@@ -94,4 +94,43 @@ public class TimePickerUtils { ...@@ -94,4 +94,43 @@ public class TimePickerUtils {
} }
/**
* 顯示報表頁面時間選擇樣式
* @param mContext
* @param defaultTime 默認選中時間
* @param onTimeSelectListener 選中時間回調
*/
public static TimePickerView showTimePicker(Context mContext, Calendar defaultTime, TimePickerView.OnTimeSelectListener onTimeSelectListener) {
//獲取今年第一天的日期
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR, cal.getActualMaximum(Calendar.HOUR_OF_DAY));
//打開時間選擇器
TimePickerView pvTime = new TimePickerView.Builder(mContext, onTimeSelectListener)
.setType(TimePickerView.Type.HOURS_MINS)//默认全部显示
.setCancelText("取消")//取消按钮文字
.setSubmitText("確認")//确认按钮文字
.setContentSize(20)//滚轮文字大小
.setTitleSize(20)//标题文字大小
// .setTitleText("请选择时间")//标题文字
.setOutSideCancelable(true)//点击屏幕,点在控件外部范围时,是否取消显示
.isCyclic(false)//是否循环滚动
.setTextColorCenter(Color.BLACK)//设置选中项的颜色
.setTitleColor(Color.BLACK)//标题文字颜色
.setSubmitColor(Color.BLUE)//确定按钮文字颜色
.setCancelColor(Color.BLUE)//取消按钮文字颜色
// .setTitleBgColor(0xFF666666)//标题背景颜色 Night mode
// .setBgColor(0xFF333333)//滚轮背景颜色 Night mode
// .setRange(Calendar.getInstance().get(Calendar.YEAR), Calendar.getInstance().get(Calendar.YEAR))
// .setDate(selectedDate)// 如果不设置的话,默认是系统时间*/
.setRangDate(Calendar.getInstance(), cal)//時間是今年第一天到今天
.setLabel("", "", "", "", "", "")
.isCenterLabel(false) //是否只显示中间选中项的label文字,false则每项item全部都带有label。
// .isDialog(true)//是否显示为对话框样式
.build();
//設置默認選中時間
// pvTime.setDate(defaultTime);//注:根据需求来决定是否使用该方法(一般是精确到秒的情况),此项可以在弹出选择器的时候重新设置当前时间,避免在初始化之后由于时间已经设定,导致选中时间与当前时间不匹配的问题。
pvTime.show();
return pvTime;
}
} }
...@@ -22,6 +22,67 @@ import timber.log.Timber; ...@@ -22,6 +22,67 @@ import timber.log.Timber;
* @Description: TODO(时间工具类) * @Description: TODO(时间工具类)
*/ */
public class TimeUtils { public class TimeUtils {
/**
* SimpleDateFormat.format把date转成String
* SimpleDateFormat.parse把String转成date。
*
* SimpleDateFormat.parse的时候,经常会有ParseException原因是输入的字符串格式跟SimpleDateFormat定义的格式不一致。
* 这时候,可以先通过SimpleDateFormat.format把参数转成符合格式的字符串,然后再调用SimpleDateFormat.parse
*
* G 年代标志符
* y 年
* M 月
* d 日
* h 时 在上午或下午 (1~12)
* H 时 在一天中 (0~23)
* m 分
* s 秒
* S 毫秒
* E 星期
* D 一年中的第几天
* F 一月中第几个星期几
* w 一年中第几个星期
* W 一月中第几个星期
* a 上午 / 下午 标记符
* k 时 在一天中 (1~24)
* K 时 在上午或下午 (0~11)
* z 时区
* <p>
* yyyy : 代表年(不去区分大小写) 假设年份为 2017
* <p>
* "y" , "yyy" , "yyyy" 匹配的都是4位完整的年 如 : "2017"
* "yy" 匹配的是年分的后两位 如 : "15"
* 超过4位,会在年份前面加"0"补位 如 "YYYYY"对应"02017"
* <p>
* MM : 代表月(只能使用大写) 假设月份为 9
* "M" 对应 "9"
* "MM" 对应 "09"
* "MMM" 对应 "Sep"
* "MMMM" 对应 "Sep"
* 超出3位,仍然对应 "September"
* <p>
* dd : 代表日(只能使用小写) 假设为13号
* "d" , "dd" 都对应 "13"
* 超出2位,会在数字前面加"0"补位. 例如 "dddd" 对应 "0013"
* <p>
* hh : 代表时(区分大小写,大写为24进制计时,小写为12进制计时) 假设为15时
* "H" , "HH" 都对应 "15" , 超出2位,会在数字前面加"0"补位. 例如 "HHHH" 对应 "0015"
* "h" 对应 "3"
* "hh" 对应 "03" , 超出2位,会在数字前面加"0"补位. 例如 "hhhh" 对应 "0003"
* <p>
* mm : 代表分(只能使用小写) 假设为32分
* "m" , "mm" 都对应 "32" , 超出2位,会在数字前面加"0"补位. 例如 "mmmm" 对应 "0032"
* <p>
* ss : 代表秒(只能使用小写) 假设为15秒
* "s" , "ss" 都对应 "15" , 超出2位,会在数字前面加"0"补位. 例如 "ssss" 对应 "0015"
* <p>
* E : 代表星期(只能使用大写) 假设为 Sunday
* "E" , "EE" , "EEE" 都对应 "Sun"
* "EEEE" 对应 "Sunday" , 超出4位 , 仍然对应 "Sunday"
* <p>
* a : 代表上午还是下午,如果是上午就对应 "AM" , 如果是下午就对应 "PM"
*/
public static final SimpleDateFormat ENGLISH_DATE_FORMAT = new SimpleDateFormat("MMM d, yyyy K:m:s a", Locale.ENGLISH);
public static final SimpleDateFormat DEFAULT_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//, Locale.CHINESE public static final SimpleDateFormat DEFAULT_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//, Locale.CHINESE
public static final SimpleDateFormat DEFAULT_DATE_FORMAT_YMDHM = new SimpleDateFormat("yyyy-MM-dd HH:mm");//, Locale.CHINESE public static final SimpleDateFormat DEFAULT_DATE_FORMAT_YMDHM = new SimpleDateFormat("yyyy-MM-dd HH:mm");//, Locale.CHINESE
...@@ -1446,7 +1507,7 @@ public class TimeUtils { ...@@ -1446,7 +1507,7 @@ public class TimeUtils {
return time; return time;
} }
public static String parseDateToString(Date date, SimpleDateFormat dateFormat){ public static String parseDateToString(Date date, SimpleDateFormat dateFormat) {
return dateFormat.format(date); return dateFormat.format(date);
} }
......
...@@ -49,6 +49,182 @@ public class RestaurantExpandInfo { ...@@ -49,6 +49,182 @@ public class RestaurantExpandInfo {
//估清控制食品字體大小 //估清控制食品字體大小
private int soldoutCtrlFoodFontSize = 16; private int soldoutCtrlFoodFontSize = 16;
public int getFoodGroupRow() {
return foodGroupRow;
}
public void setFoodGroupRow(int foodGroupRow) {
this.foodGroupRow = foodGroupRow;
}
public int getFoodGroupColumn() {
return foodGroupColumn;
}
public void setFoodGroupColumn(int foodGroupColumn) {
this.foodGroupColumn = foodGroupColumn;
}
public int getFoodColumn() {
return foodColumn;
}
public void setFoodColumn(int foodColumn) {
this.foodColumn = foodColumn;
}
public int getComboColumn() {
return comboColumn;
}
public void setComboColumn(int comboColumn) {
this.comboColumn = comboColumn;
}
public int getModColumn() {
return modColumn;
}
public void setModColumn(int modColumn) {
this.modColumn = modColumn;
}
public int getDiscountColumn() {
return discountColumn;
}
public void setDiscountColumn(int discountColumn) {
this.discountColumn = discountColumn;
}
public int getFoodGroupBtnHeight() {
return foodGroupBtnHeight;
}
public void setFoodGroupBtnHeight(int foodGroupBtnHeight) {
this.foodGroupBtnHeight = foodGroupBtnHeight;
}
public int getFoodBtnHeight() {
return foodBtnHeight;
}
public void setFoodBtnHeight(int foodBtnHeight) {
this.foodBtnHeight = foodBtnHeight;
}
public int getModBtnHeight() {
return modBtnHeight;
}
public void setModBtnHeight(int modBtnHeight) {
this.modBtnHeight = modBtnHeight;
}
public int getComboHeight() {
return comboHeight;
}
public void setComboHeight(int comboHeight) {
this.comboHeight = comboHeight;
}
public int getDiscountHeight() {
return discountHeight;
}
public void setDiscountHeight(int discountHeight) {
this.discountHeight = discountHeight;
}
public int getLayoutQtyHeight() {
return LayoutQtyHeight;
}
public void setLayoutQtyHeight(int layoutQtyHeight) {
LayoutQtyHeight = layoutQtyHeight;
}
public int getFoodGroupFontSize() {
return foodGroupFontSize;
}
public void setFoodGroupFontSize(int foodGroupFontSize) {
this.foodGroupFontSize = foodGroupFontSize;
}
public int getFoodFontSize() {
return foodFontSize;
}
public void setFoodFontSize(int foodFontSize) {
this.foodFontSize = foodFontSize;
}
public int getComboFontSize() {
return comboFontSize;
}
public void setComboFontSize(int comboFontSize) {
this.comboFontSize = comboFontSize;
}
public int getModFontSize() {
return modFontSize;
}
public void setModFontSize(int modFontSize) {
this.modFontSize = modFontSize;
}
public int getDiscountFontSize() {
return discountFontSize;
}
public void setDiscountFontSize(int discountFontSize) {
this.discountFontSize = discountFontSize;
}
public int getOrderNumberShowSize() {
return OrderNumberShowSize;
}
public void setOrderNumberShowSize(int orderNumberShowSize) {
OrderNumberShowSize = orderNumberShowSize;
}
public int getOrderNumberFontSize() {
return OrderNumberFontSize;
}
public void setOrderNumberFontSize(int orderNumberFontSize) {
OrderNumberFontSize = orderNumberFontSize;
}
public int getOrderNumberChildShowSize() {
return OrderNumberChildShowSize;
}
public void setOrderNumberChildShowSize(int orderNumberChildShowSize) {
OrderNumberChildShowSize = orderNumberChildShowSize;
}
public int getOrderNumberChildFontSize() {
return OrderNumberChildFontSize;
}
public void setOrderNumberChildFontSize(int orderNumberChildFontSize) {
OrderNumberChildFontSize = orderNumberChildFontSize;
}
public int getSoldoutCtrlFoodFontSize() {
return soldoutCtrlFoodFontSize;
}
public void setSoldoutCtrlFoodFontSize(int soldoutCtrlFoodFontSize) {
this.soldoutCtrlFoodFontSize = soldoutCtrlFoodFontSize;
}
} }
...@@ -76,6 +252,149 @@ public class RestaurantExpandInfo { ...@@ -76,6 +252,149 @@ public class RestaurantExpandInfo {
private int AutoPrinterPaper;//送單自動打印上菜紙 private int AutoPrinterPaper;//送單自動打印上菜紙
private int ToPrintQRCode;//結賬是否打印積分二維碼 private int ToPrintQRCode;//結賬是否打印積分二維碼
private int AutoQuitTime = 600;//餐檯模式下單頁多少秒不操作返回餐檯頁面 private int AutoQuitTime = 600;//餐檯模式下單頁多少秒不操作返回餐檯頁面
public int getRounding() {
return Rounding;
}
public void setRounding(int rounding) {
Rounding = rounding;
}
public int getRoundingDecimal() {
return RoundingDecimal;
}
public void setRoundingDecimal(int roundingDecimal) {
RoundingDecimal = roundingDecimal;
}
public int getItemDecimals() {
return ItemDecimals;
}
public void setItemDecimals(int itemDecimals) {
ItemDecimals = itemDecimals;
}
public int getDeliveryPrintCount() {
return DeliveryPrintCount;
}
public void setDeliveryPrintCount(int deliveryPrintCount) {
DeliveryPrintCount = deliveryPrintCount;
}
public int getDeliveryClosingPC() {
return DeliveryClosingPC;
}
public void setDeliveryClosingPC(int deliveryClosingPC) {
DeliveryClosingPC = deliveryClosingPC;
}
public int getTableModePrintCount() {
return TableModePrintCount;
}
public void setTableModePrintCount(int tableModePrintCount) {
TableModePrintCount = tableModePrintCount;
}
public int getTableModeClosingPC() {
return TableModeClosingPC;
}
public void setTableModeClosingPC(int tableModeClosingPC) {
TableModeClosingPC = tableModeClosingPC;
} }
public int getOrderReceivingTimeout() {
return OrderReceivingTimeout;
}
public void setOrderReceivingTimeout(int orderReceivingTimeout) {
OrderReceivingTimeout = orderReceivingTimeout;
}
public int getPrintMemberInfo() {
return PrintMemberInfo;
}
public void setPrintMemberInfo(int printMemberInfo) {
PrintMemberInfo = printMemberInfo;
}
public int getPrintPage() {
return PrintPage;
}
public void setPrintPage(int printPage) {
PrintPage = printPage;
}
public int getPrintMergerFood() {
return PrintMergerFood;
}
public void setPrintMergerFood(int printMergerFood) {
PrintMergerFood = printMergerFood;
}
public int getPrintStatisticsAmount() {
return PrintStatisticsAmount;
}
public void setPrintStatisticsAmount(int printStatisticsAmount) {
PrintStatisticsAmount = printStatisticsAmount;
}
public int getPrintFirstOrder() {
return PrintFirstOrder;
}
public void setPrintFirstOrder(int printFirstOrder) {
PrintFirstOrder = printFirstOrder;
}
public int getFrozenChainAutoOrder() {
return FrozenChainAutoOrder;
}
public void setFrozenChainAutoOrder(int frozenChainAutoOrder) {
FrozenChainAutoOrder = frozenChainAutoOrder;
}
public int getMergeSendFood() {
return MergeSendFood;
}
public void setMergeSendFood(int mergeSendFood) {
MergeSendFood = mergeSendFood;
}
public int getAutoPrinterPaper() {
return AutoPrinterPaper;
}
public void setAutoPrinterPaper(int autoPrinterPaper) {
AutoPrinterPaper = autoPrinterPaper;
}
public int getToPrintQRCode() {
return ToPrintQRCode;
}
public void setToPrintQRCode(int toPrintQRCode) {
ToPrintQRCode = toPrintQRCode;
}
public int getAutoQuitTime() {
return AutoQuitTime;
}
public void setAutoQuitTime(int autoQuitTime) {
AutoQuitTime = autoQuitTime;
}
}
} }
...@@ -73,6 +73,7 @@ public class HttpsConstans { ...@@ -73,6 +73,7 @@ public class HttpsConstans {
//---------------------------------------System請求地址---------------------------------------------------------------------------------- //---------------------------------------System請求地址----------------------------------------------------------------------------------
public static String SYSTEM_PATH = "/ricepon-system/api/"; public static String SYSTEM_PATH = "/ricepon-system/api/";
public static String API_RICEPON_MEMBER = "/ricepon-member/api/";
//--------------------------------------配置----------------------------------------------------------------------------------- //--------------------------------------配置-----------------------------------------------------------------------------------
...@@ -86,7 +87,6 @@ public class HttpsConstans { ...@@ -86,7 +87,6 @@ public class HttpsConstans {
*/ */
public static int isFormal = 0; public static int isFormal = 0;
//沽清控制地址 //沽清控制地址
public static String _SERVER_ADDRESS;// = (isFormal ? HTTP_ADDRESS_URL_FORMAL : "http://a.ricepon.com:61177") + "/member-web/api/"; public static String _SERVER_ADDRESS;// = (isFormal ? HTTP_ADDRESS_URL_FORMAL : "http://a.ricepon.com:61177") + "/member-web/api/";
...@@ -109,6 +109,10 @@ public class HttpsConstans { ...@@ -109,6 +109,10 @@ public class HttpsConstans {
public static String SYSTEM_URL; public static String SYSTEM_URL;
public static String RICEPON_MEMBER_SERVER_ADDRESS;
public static String RICEPON_MEMBER_61177;
public static void init(Context context) { public static void init(Context context) {
isFormal = (int) SPUtils.get(context, "isFormal", -1); isFormal = (int) SPUtils.get(context, "isFormal", -1);
if (isFormal == -1 && BuildConfig.DEBUG) { if (isFormal == -1 && BuildConfig.DEBUG) {
...@@ -119,17 +123,20 @@ public class HttpsConstans { ...@@ -119,17 +123,20 @@ public class HttpsConstans {
} }
switch (isFormal) { switch (isFormal) {
default: default:
_SERVER_ADDRESS = HTTP_ADDRESS_URL_FORMAL + "/member-web/api/"; RICEPON_MEMBER_61177 = HTTP_ADDRESS_URL_FORMAL + API_RICEPON_MEMBER;
_SERVER_ADDRESS = HTTP_ADDRESS_URL_FORMAL + WECHAR_REPORT_PATH;
ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL = HTTP_ADDRESS_URL_FORMAL; ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL = HTTP_ADDRESS_URL_FORMAL;
ROOT_SERVER_ADDRESS_FORMAL = HTTP_ADDRESS_URL_FORMAL + CLOUD_GSA_API_PATH; ROOT_SERVER_ADDRESS_FORMAL = HTTP_ADDRESS_URL_FORMAL + CLOUD_GSA_API_PATH;
ROOT_URL = ROOT_FORMAL_URL; ROOT_URL = ROOT_FORMAL_URL;
REPORT_SERVER_ADDRESS = REPORT_FORMAL_ADDRESS + REPORT_PATH; REPORT_SERVER_ADDRESS = REPORT_FORMAL_ADDRESS + REPORT_PATH;
WECHAR_REPORT_SERVER_ADDRESS = WECHAR_REPORT_FORMAL_ADDRESS + WECHAR_REPORT_PATH;//正式:WECHAR_REPORT_FORMAL_ADDRESS 測試:WECHAR_REPORT_TEST_ADDRESS WECHAR_REPORT_SERVER_ADDRESS = WECHAR_REPORT_FORMAL_ADDRESS + WECHAR_REPORT_PATH;//正式:WECHAR_REPORT_FORMAL_ADDRESS 測試:WECHAR_REPORT_TEST_ADDRESS
RICEPON_MEMBER_SERVER_ADDRESS = WECHAR_REPORT_FORMAL_ADDRESS + WECHAR_REPORT_PATH;
SYSTEM_URL = HTTP_ADDRESS_URL_FORMAL + SYSTEM_PATH; SYSTEM_URL = HTTP_ADDRESS_URL_FORMAL + SYSTEM_PATH;
ROOT_SERVER = HTTP_ADDRESS_URL_FORMAL; ROOT_SERVER = HTTP_ADDRESS_URL_FORMAL;
break; break;
case 1: case 1:
_SERVER_ADDRESS = "http://a.ricepon.com:61177" + "/member-web/api/"; RICEPON_MEMBER_61177 = WECHAR_REPORT_TEST_ADDRESS + API_RICEPON_MEMBER;
_SERVER_ADDRESS = WECHAR_REPORT_TEST_ADDRESS + WECHAR_REPORT_PATH;
ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL = REPORT_TEST_ADDRESS; ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL = REPORT_TEST_ADDRESS;
ROOT_SERVER_ADDRESS_FORMAL = HTTP_ADDRESS_URL_HK + CLOUD_GSA_API_PATH; ROOT_SERVER_ADDRESS_FORMAL = HTTP_ADDRESS_URL_HK + CLOUD_GSA_API_PATH;
ROOT_URL = ROOT_HK_TEST_URL; ROOT_URL = ROOT_HK_TEST_URL;
...@@ -139,7 +146,8 @@ public class HttpsConstans { ...@@ -139,7 +146,8 @@ public class HttpsConstans {
ROOT_SERVER = HTTP_ADDRESS_URL_HK; ROOT_SERVER = HTTP_ADDRESS_URL_HK;
break; break;
case 2: case 2:
_SERVER_ADDRESS = ROOT_SERVER_ZHI_WANG_HK + "/member-web/api/"; RICEPON_MEMBER_61177 = WECHAR_REPORT_TEST_ADDRESS + API_RICEPON_MEMBER;
_SERVER_ADDRESS = ROOT_SERVER_ZHI_WANG_HK + WECHAR_REPORT_PATH;
ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL = REPORT_TEST_ADDRESS; ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL = REPORT_TEST_ADDRESS;
ROOT_SERVER_ADDRESS_FORMAL = ROOT_SERVER_ZHI_WANG_HK; ROOT_SERVER_ADDRESS_FORMAL = ROOT_SERVER_ZHI_WANG_HK;
ROOT_URL = ROOT_SZ_URL; ROOT_URL = ROOT_SZ_URL;
...@@ -148,7 +156,8 @@ public class HttpsConstans { ...@@ -148,7 +156,8 @@ public class HttpsConstans {
SYSTEM_URL = ROOT_SERVER_ZHI_WANG_HK + SYSTEM_PATH; SYSTEM_URL = ROOT_SERVER_ZHI_WANG_HK + SYSTEM_PATH;
break; break;
case 3: case 3:
_SERVER_ADDRESS = ROOT_SERVER_YOU_CHANG_HK + "/member-web/api/"; RICEPON_MEMBER_61177 = WECHAR_REPORT_TEST_ADDRESS + API_RICEPON_MEMBER;
_SERVER_ADDRESS = ROOT_SERVER_YOU_CHANG_HK + WECHAR_REPORT_PATH;
ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL = REPORT_TEST_ADDRESS; ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL = REPORT_TEST_ADDRESS;
ROOT_SERVER_ADDRESS_FORMAL = ROOT_SERVER_YOU_CHANG_HK; ROOT_SERVER_ADDRESS_FORMAL = ROOT_SERVER_YOU_CHANG_HK;
ROOT_URL = ROOT_SZ_URL; ROOT_URL = ROOT_SZ_URL;
...@@ -157,7 +166,8 @@ public class HttpsConstans { ...@@ -157,7 +166,8 @@ public class HttpsConstans {
SYSTEM_URL = ROOT_SERVER_YOU_CHANG_HK + SYSTEM_PATH; SYSTEM_URL = ROOT_SERVER_YOU_CHANG_HK + SYSTEM_PATH;
break; break;
case 4: case 4:
_SERVER_ADDRESS = ROOT_SERVER_SHI_SHU_HK + "/member-web/api/"; RICEPON_MEMBER_61177 = WECHAR_REPORT_TEST_ADDRESS + API_RICEPON_MEMBER;
_SERVER_ADDRESS = ROOT_SERVER_SHI_SHU_HK + WECHAR_REPORT_PATH;
ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL = REPORT_TEST_ADDRESS; ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL = REPORT_TEST_ADDRESS;
ROOT_SERVER_ADDRESS_FORMAL = ROOT_SERVER_SHI_SHU_HK; ROOT_SERVER_ADDRESS_FORMAL = ROOT_SERVER_SHI_SHU_HK;
ROOT_URL = ROOT_SZ_URL; ROOT_URL = ROOT_SZ_URL;
...@@ -173,8 +183,9 @@ public class HttpsConstans { ...@@ -173,8 +183,9 @@ public class HttpsConstans {
ricepon_gsa = HttpsConstans.ROOT_URL + HttpsConstans.URK_RICEPON_GSA; ricepon_gsa = HttpsConstans.ROOT_URL + HttpsConstans.URK_RICEPON_GSA;
ricepon_activities = HttpsConstans.ROOT_URL + HttpsConstans.URK_RICEPON_ACTIVITIES; ricepon_activities = HttpsConstans.ROOT_URL + HttpsConstans.URK_RICEPON_ACTIVITIES;
ricepon_cloud_gsa = HttpsConstans.ROOT_URL + HttpsConstans.CLOUD_GSA_API_PATH; ricepon_cloud_gsa = HttpsConstans.ROOT_URL + HttpsConstans.CLOUD_GSA_API_PATH;
ricepon_member = HttpsConstans.ROOT_URL + "/ricepon-member/api/"; ricepon_member = HttpsConstans.ROOT_URL + API_RICEPON_MEMBER;
} }
public static String ricepon_wechat; public static String ricepon_wechat;
public static String ricepon_order; public static String ricepon_order;
public static String member_web_ricepon_gsa; public static String member_web_ricepon_gsa;
...@@ -185,7 +196,4 @@ public class HttpsConstans { ...@@ -185,7 +196,4 @@ public class HttpsConstans {
public static String ricepon_member; public static String ricepon_member;
} }
\ No newline at end of file
...@@ -4,14 +4,13 @@ import android.graphics.Color; ...@@ -4,14 +4,13 @@ import android.graphics.Color;
import android.text.TextUtils; import android.text.TextUtils;
import org.greenrobot.greendao.annotation.Entity; import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Generated;
import org.greenrobot.greendao.annotation.Id; import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.Property; import org.greenrobot.greendao.annotation.Property;
import org.greenrobot.greendao.annotation.Transient;
import java.util.Date; import java.util.Date;
import org.greenrobot.greendao.annotation.Generated;
import org.greenrobot.greendao.annotation.Transient;
import lombok.Data; import lombok.Data;
/** /**
...@@ -414,4 +413,163 @@ public class ComboItem { ...@@ -414,4 +413,163 @@ public class ComboItem {
this.printSeting = printSeting; this.printSeting = printSeting;
} }
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getName1() {
return name1;
}
public void setName1(String name1) {
this.name1 = name1;
}
public String getName2() {
return name2;
}
public void setName2(String name2) {
this.name2 = name2;
}
public long getParentId() {
return parentId;
}
public void setParentId(long parentId) {
this.parentId = parentId;
}
public int getSelectQty() {
return selectQty;
}
public void setSelectQty(int selectQty) {
this.selectQty = selectQty;
}
public String getDefmodifier() {
return defmodifier;
}
public void setDefmodifier(String defmodifier) {
this.defmodifier = defmodifier;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public long getAblediscount() {
return ablediscount;
}
public void setAblediscount(long ablediscount) {
this.ablediscount = ablediscount;
}
public int getServiceCharge() {
return serviceCharge;
}
public void setServiceCharge(int serviceCharge) {
this.serviceCharge = serviceCharge;
}
public int getAutoMode() {
return autoMode;
}
public void setAutoMode(int autoMode) {
this.autoMode = autoMode;
}
public boolean isModifier() {
return isModifier;
}
public void setModifier(boolean modifier) {
isModifier = modifier;
}
public long getInvisible() {
return invisible;
}
public void setInvisible(long invisible) {
this.invisible = invisible;
}
public String getMaxNumber() {
return maxNumber;
}
public void setMaxNumber(String maxNumber) {
this.maxNumber = maxNumber;
}
public String getCurrentMaxNumber() {
return currentMaxNumber;
}
public void setCurrentMaxNumber(String currentMaxNumber) {
this.currentMaxNumber = currentMaxNumber;
}
public int getBgColor() {
return bgColor;
}
public void setBgColor(int bgColor) {
this.bgColor = bgColor;
}
public int getFontColor() {
return fontColor;
}
public void setFontColor(int fontColor) {
this.fontColor = fontColor;
}
public Modifier getModifier() {
return modifier;
}
public void setModifier(Modifier modifier) {
this.modifier = modifier;
}
public double getPointsAdd() {
return pointsAdd;
}
public void setPointsAdd(double pointsAdd) {
this.pointsAdd = pointsAdd;
}
public long getPointsRatio() {
return pointsRatio;
}
public void setPointsRatio(long pointsRatio) {
this.pointsRatio = pointsRatio;
}
public double getPointsRedeem() {
return pointsRedeem;
}
public void setPointsRedeem(double pointsRedeem) {
this.pointsRedeem = pointsRedeem;
}
} }
...@@ -85,6 +85,13 @@ public class Discount { ...@@ -85,6 +85,13 @@ public class Discount {
public Discount() { public Discount() {
} }
public long getMemberId() {
return memberId;
}
public void setMemberId(long memberId) {
this.memberId = memberId;
}
/** /**
* 計算折扣金額 * 計算折扣金額
......
...@@ -50,16 +50,16 @@ public class ExpandInfo { ...@@ -50,16 +50,16 @@ public class ExpandInfo {
//是否被編輯了 //是否被編輯了
@Transient @Transient
private boolean isUpdate = false; private boolean isUpdate = false;
private String showName;
public static final int data_type_int = 1; public static final int data_type_int = 1;
public static final int data_type_string = 2; public static final int data_type_string = 2;
public static final int data_type_boolean = 3; public static final int data_type_boolean = 3;
public static final int data_type_date = 4; public static final int data_type_date = 4;
@Generated(hash = 372331474) @Generated(hash = 1155994232)
public ExpandInfo(Long id, int restaurantId, String settingName, public ExpandInfo(Long id, int restaurantId, String settingName,
Integer valueInt, String valueChar, String valueDatetime, String remark, Integer valueInt, String valueChar, String valueDatetime, String remark,
int dataType) { int dataType, String showName) {
this.id = id; this.id = id;
this.restaurantId = restaurantId; this.restaurantId = restaurantId;
this.settingName = settingName; this.settingName = settingName;
...@@ -68,6 +68,7 @@ public class ExpandInfo { ...@@ -68,6 +68,7 @@ public class ExpandInfo {
this.valueDatetime = valueDatetime; this.valueDatetime = valueDatetime;
this.remark = remark; this.remark = remark;
this.dataType = dataType; this.dataType = dataType;
this.showName = showName;
} }
@Generated(hash = 9429432) @Generated(hash = 9429432)
public ExpandInfo() { public ExpandInfo() {
...@@ -128,4 +129,12 @@ public class ExpandInfo { ...@@ -128,4 +129,12 @@ public class ExpandInfo {
public void setUpdate(boolean update) { public void setUpdate(boolean update) {
isUpdate = update; isUpdate = update;
} }
public String getShowName() {
return showName;
}
public void setShowName(String showName) {
this.showName = showName;
}
} }
package com.gingersoft.gsa.cloud.database.greendao;
import android.database.Cursor;
import android.database.sqlite.SQLiteStatement;
import com.gingersoft.gsa.cloud.database.bean.ColorBean;
import org.greenrobot.greendao.AbstractDao;
import org.greenrobot.greendao.Property;
import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.database.DatabaseStatement;
import org.greenrobot.greendao.internal.DaoConfig;
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
/**
* DAO for table "COLOR_BEAN".
*/
public class ColorBeanDao extends AbstractDao<ColorBean, Void> {
public static final String TABLENAME = "COLOR_BEAN";
/**
* Properties of entity ColorBean.<br/>
* Can be used for QueryBuilder and for referencing column names.
*/
public static class Properties {
public final static Property ColorId = new Property(0, int.class, "colorId", false, "COLOR_ID");
public final static Property ColorStart = new Property(1, String.class, "colorStart", false, "COLOR_START");
public final static Property ColorStop = new Property(2, String.class, "colorStop", false, "COLOR_STOP");
public final static Property FontColor = new Property(3, String.class, "fontColor", false, "FONT_COLOR");
public final static Property AndroidColor = new Property(4, String.class, "androidColor", false, "ANDROID_COLOR");
public final static Property AndroidFontColor = new Property(5, String.class, "androidFontColor", false, "ANDROID_FONT_COLOR");
public final static Property CreateTime = new Property(6, String.class, "createTime", false, "CREATE_TIME");
public final static Property EditTime = new Property(7, String.class, "editTime", false, "EDIT_TIME");
}
public ColorBeanDao(DaoConfig config) {
super(config);
}
public ColorBeanDao(DaoConfig config, DaoSession daoSession) {
super(config, daoSession);
}
/** Creates the underlying database table. */
public static void createTable(Database db, boolean ifNotExists) {
String constraint = ifNotExists? "IF NOT EXISTS ": "";
db.execSQL("CREATE TABLE " + constraint + "\"COLOR_BEAN\" (" + //
"\"COLOR_ID\" INTEGER NOT NULL ," + // 0: colorId
"\"COLOR_START\" TEXT," + // 1: colorStart
"\"COLOR_STOP\" TEXT," + // 2: colorStop
"\"FONT_COLOR\" TEXT," + // 3: fontColor
"\"ANDROID_COLOR\" TEXT," + // 4: androidColor
"\"ANDROID_FONT_COLOR\" TEXT," + // 5: androidFontColor
"\"CREATE_TIME\" TEXT," + // 6: createTime
"\"EDIT_TIME\" TEXT);"); // 7: editTime
}
/** Drops the underlying database table. */
public static void dropTable(Database db, boolean ifExists) {
String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"COLOR_BEAN\"";
db.execSQL(sql);
}
@Override
protected final void bindValues(DatabaseStatement stmt, ColorBean entity) {
stmt.clearBindings();
stmt.bindLong(1, entity.getColorId());
String colorStart = entity.getColorStart();
if (colorStart != null) {
stmt.bindString(2, colorStart);
}
String colorStop = entity.getColorStop();
if (colorStop != null) {
stmt.bindString(3, colorStop);
}
String fontColor = entity.getFontColor();
if (fontColor != null) {
stmt.bindString(4, fontColor);
}
String androidColor = entity.getAndroidColor();
if (androidColor != null) {
stmt.bindString(5, androidColor);
}
String androidFontColor = entity.getAndroidFontColor();
if (androidFontColor != null) {
stmt.bindString(6, androidFontColor);
}
String createTime = entity.getCreateTime();
if (createTime != null) {
stmt.bindString(7, createTime);
}
String editTime = entity.getEditTime();
if (editTime != null) {
stmt.bindString(8, editTime);
}
}
@Override
protected final void bindValues(SQLiteStatement stmt, ColorBean entity) {
stmt.clearBindings();
stmt.bindLong(1, entity.getColorId());
String colorStart = entity.getColorStart();
if (colorStart != null) {
stmt.bindString(2, colorStart);
}
String colorStop = entity.getColorStop();
if (colorStop != null) {
stmt.bindString(3, colorStop);
}
String fontColor = entity.getFontColor();
if (fontColor != null) {
stmt.bindString(4, fontColor);
}
String androidColor = entity.getAndroidColor();
if (androidColor != null) {
stmt.bindString(5, androidColor);
}
String androidFontColor = entity.getAndroidFontColor();
if (androidFontColor != null) {
stmt.bindString(6, androidFontColor);
}
String createTime = entity.getCreateTime();
if (createTime != null) {
stmt.bindString(7, createTime);
}
String editTime = entity.getEditTime();
if (editTime != null) {
stmt.bindString(8, editTime);
}
}
@Override
public Void readKey(Cursor cursor, int offset) {
return null;
}
@Override
public ColorBean readEntity(Cursor cursor, int offset) {
ColorBean entity = new ColorBean( //
cursor.getInt(offset + 0), // colorId
cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // colorStart
cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // colorStop
cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // fontColor
cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // androidColor
cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // androidFontColor
cursor.isNull(offset + 6) ? null : cursor.getString(offset + 6), // createTime
cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7) // editTime
);
return entity;
}
@Override
public void readEntity(Cursor cursor, ColorBean entity, int offset) {
entity.setColorId(cursor.getInt(offset + 0));
entity.setColorStart(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1));
entity.setColorStop(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2));
entity.setFontColor(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3));
entity.setAndroidColor(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4));
entity.setAndroidFontColor(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5));
entity.setCreateTime(cursor.isNull(offset + 6) ? null : cursor.getString(offset + 6));
entity.setEditTime(cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7));
}
@Override
protected final Void updateKeyAfterInsert(ColorBean entity, long rowId) {
// Unsupported or missing PK type
return null;
}
@Override
public Void getKey(ColorBean entity) {
return null;
}
@Override
public boolean hasKey(ColorBean entity) {
// TODO
return false;
}
@Override
protected final boolean isEntityUpdateable() {
return true;
}
}
...@@ -14,10 +14,10 @@ import org.greenrobot.greendao.identityscope.IdentityScopeType; ...@@ -14,10 +14,10 @@ import org.greenrobot.greendao.identityscope.IdentityScopeType;
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. // THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
/** /**
* Master of DAO (schema version 16): knows all DAOs. * Master of DAO (schema version 17): knows all DAOs.
*/ */
public class DaoMaster extends AbstractDaoMaster { public class DaoMaster extends AbstractDaoMaster {
public static final int SCHEMA_VERSION = 16; public static final int SCHEMA_VERSION = 17;
/** Creates underlying database table using DAOs. */ /** Creates underlying database table using DAOs. */
public static void createAllTables(Database db, boolean ifNotExists) { public static void createAllTables(Database db, boolean ifNotExists) {
......
...@@ -32,6 +32,7 @@ public class ExpandInfoDao extends AbstractDao<ExpandInfo, Long> { ...@@ -32,6 +32,7 @@ public class ExpandInfoDao extends AbstractDao<ExpandInfo, Long> {
public final static Property ValueDatetime = new Property(5, String.class, "valueDatetime", false, "VALUE_DATETIME"); public final static Property ValueDatetime = new Property(5, String.class, "valueDatetime", false, "VALUE_DATETIME");
public final static Property Remark = new Property(6, String.class, "remark", false, "REMARK"); public final static Property Remark = new Property(6, String.class, "remark", false, "REMARK");
public final static Property DataType = new Property(7, int.class, "dataType", false, "DATA_TYPE"); public final static Property DataType = new Property(7, int.class, "dataType", false, "DATA_TYPE");
public final static Property ShowName = new Property(8, String.class, "showName", false, "SHOW_NAME");
} }
...@@ -54,7 +55,8 @@ public class ExpandInfoDao extends AbstractDao<ExpandInfo, Long> { ...@@ -54,7 +55,8 @@ public class ExpandInfoDao extends AbstractDao<ExpandInfo, Long> {
"\"VALUE_CHAR\" TEXT," + // 4: valueChar "\"VALUE_CHAR\" TEXT," + // 4: valueChar
"\"VALUE_DATETIME\" TEXT," + // 5: valueDatetime "\"VALUE_DATETIME\" TEXT," + // 5: valueDatetime
"\"REMARK\" TEXT," + // 6: remark "\"REMARK\" TEXT," + // 6: remark
"\"DATA_TYPE\" INTEGER NOT NULL );"); // 7: dataType "\"DATA_TYPE\" INTEGER NOT NULL ," + // 7: dataType
"\"SHOW_NAME\" TEXT);"); // 8: showName
} }
/** Drops the underlying database table. */ /** Drops the underlying database table. */
...@@ -98,6 +100,11 @@ public class ExpandInfoDao extends AbstractDao<ExpandInfo, Long> { ...@@ -98,6 +100,11 @@ public class ExpandInfoDao extends AbstractDao<ExpandInfo, Long> {
stmt.bindString(7, remark); stmt.bindString(7, remark);
} }
stmt.bindLong(8, entity.getDataType()); stmt.bindLong(8, entity.getDataType());
String showName = entity.getShowName();
if (showName != null) {
stmt.bindString(9, showName);
}
} }
@Override @Override
...@@ -135,6 +142,11 @@ public class ExpandInfoDao extends AbstractDao<ExpandInfo, Long> { ...@@ -135,6 +142,11 @@ public class ExpandInfoDao extends AbstractDao<ExpandInfo, Long> {
stmt.bindString(7, remark); stmt.bindString(7, remark);
} }
stmt.bindLong(8, entity.getDataType()); stmt.bindLong(8, entity.getDataType());
String showName = entity.getShowName();
if (showName != null) {
stmt.bindString(9, showName);
}
} }
@Override @Override
...@@ -152,7 +164,8 @@ public class ExpandInfoDao extends AbstractDao<ExpandInfo, Long> { ...@@ -152,7 +164,8 @@ public class ExpandInfoDao extends AbstractDao<ExpandInfo, Long> {
cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // valueChar cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // valueChar
cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // valueDatetime cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // valueDatetime
cursor.isNull(offset + 6) ? null : cursor.getString(offset + 6), // remark cursor.isNull(offset + 6) ? null : cursor.getString(offset + 6), // remark
cursor.getInt(offset + 7) // dataType cursor.getInt(offset + 7), // dataType
cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8) // showName
); );
return entity; return entity;
} }
...@@ -167,6 +180,7 @@ public class ExpandInfoDao extends AbstractDao<ExpandInfo, Long> { ...@@ -167,6 +180,7 @@ public class ExpandInfoDao extends AbstractDao<ExpandInfo, Long> {
entity.setValueDatetime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); entity.setValueDatetime(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5));
entity.setRemark(cursor.isNull(offset + 6) ? null : cursor.getString(offset + 6)); entity.setRemark(cursor.isNull(offset + 6) ? null : cursor.getString(offset + 6));
entity.setDataType(cursor.getInt(offset + 7)); entity.setDataType(cursor.getInt(offset + 7));
entity.setShowName(cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8));
} }
@Override @Override
......
package com.gingersoft.gsa.cloud.ui.adapter;
import android.content.Context;
import android.graphics.drawable.Drawable;
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.base.R;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List;
public class ListSelectAdapter extends BaseQuickAdapter<String, BaseViewHolder> {
private int textSize;
private int selectTextColor;
private int normalTextColor;
private Drawable normalBg;
private Drawable selectBg;
private int selectIndex = 0;
private int paddingLeft = 0;
private int paddingTop = 0;
private int paddingRight = 0;
private int paddingBottom = 0;
private Context mContext;
// public ListSelectAdapter(List<String> data) {
// super(layoutResId, data);
// }
public ListSelectAdapter(Context context, int layoutResId, @Nullable List<String> data) {
super(layoutResId, data);
this.mContext = context;
textSize = 16;
selectBg = ContextCompat.getDrawable(context, R.drawable.s_tran_twenty_blue);
selectTextColor = ContextCompat.getColor(context, R.color.other_order_details_sure_btn_color);
normalTextColor = ContextCompat.getColor(context, R.color.color_c9);
}
@Override
protected void convert(@NotNull BaseViewHolder baseViewHolder, String s) {
TextView title = baseViewHolder.getView(R.id.cb_select_title);
title.setText(s);
title.setTextSize(textSize);
title.setBackground(selectBg);
title.setPadding(paddingLeft, paddingTop, paddingRight, paddingBottom);
if (baseViewHolder.getAdapterPosition() == selectIndex) {
title.setBackground(selectBg);
title.setTextColor(selectTextColor);
} else {
title.setBackground(normalBg);
title.setTextColor(normalTextColor);
}
}
public ListSelectAdapter setSelectTextColor(int textColor) {
this.selectTextColor = textColor;
return this;
}
public ListSelectAdapter setNormalTextColor(int textColor) {
this.normalTextColor = textColor;
return this;
}
public ListSelectAdapter setTextSize(int textSize) {
this.textSize = textSize;
return this;
}
public ListSelectAdapter setNormalBg(Drawable bg) {
this.normalBg = bg;
return this;
}
public ListSelectAdapter setSelectBg(Drawable bg) {
this.selectBg = bg;
return this;
}
public ListSelectAdapter setNormalBg(int bg) {
return setNormalBg(ContextCompat.getDrawable(mContext, bg));
}
public ListSelectAdapter setSelectBg(int bg) {
return setSelectBg(ContextCompat.getDrawable(mContext, bg));
}
public ListSelectAdapter setDefaultSelect(int select) {
this.selectIndex = select;
return this;
}
public ListSelectAdapter setPadding(int paddingLeft, int paddingTop, int paddingRight, int paddingBottom) {
this.paddingLeft = paddingLeft;
this.paddingBottom = paddingBottom;
this.paddingTop = paddingTop;
this.paddingRight = paddingRight;
return this;
}
public ListSelectAdapter notifyAdapter() {
notifyDataSetChanged();
return this;
}
}
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/other_order_details_sure_btn_color" android:state_checked="true"/>
<item android:color="@color/color_66"/>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/tran_twenty_send_order_btn_bg_color" android:state_checked="true"/>
<item android:drawable="@color/color_ea"/>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/other_order_details_sure_btn_color" android:state_checked="true"/>
<item android:drawable="@drawable/shape_delivery_item_btn_normal"/>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/cb_select_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
\ No newline at end of file
...@@ -21,13 +21,14 @@ ...@@ -21,13 +21,14 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="0.15" android:layout_weight="0.15"
android:layout_gravity="bottom" android:layout_gravity="bottom"
tools:text="x1111111111111111111111111" tools:text="x11111111111111111000011111111"
android:gravity="right|center_vertical" /> android:gravity="right|center_vertical" />
<TextView <TextView
android:id="@+id/tv_food_price" android:id="@+id/tv_food_price"
style="@style/Print_text_style" style="@style/Print_text_style"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_weight="0.25"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="bottom" android:layout_gravity="bottom"
android:layout_marginLeft="@dimen/dp_5" android:layout_marginLeft="@dimen/dp_5"
......
...@@ -467,7 +467,9 @@ ...@@ -467,7 +467,9 @@
<color name="color_3b">#3b3b3b</color> <color name="color_3b">#3b3b3b</color>
<color name="color_18">#181818</color> <color name="color_18">#181818</color>
<color name="color_e8">#e8e8e8</color> <color name="color_e8">#e8e8e8</color>
<color name="color_ea">#EAEAEA</color>
<color name="tran_twenty_send_order_btn_bg_color">#331196DB</color>
<color name="tran_fifty_order_state0_color">#7F009788</color> <color name="tran_fifty_order_state0_color">#7F009788</color>
<!-- 待確認背景色--> <!-- 待確認背景色-->
<color name="order_state0_color">#009788</color> <color name="order_state0_color">#009788</color>
......
package com.gingersoft.gsa.delivery_pick_mode.mvp.contract; package com.gingersoft.gsa.delivery_pick_mode.mvp.contract;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.delivery_pick_mode.mvp.model.MemberAddressInfoBean;
import com.jess.arms.mvp.IModel; import com.jess.arms.mvp.IModel;
import com.jess.arms.mvp.IView; import com.jess.arms.mvp.IView;
import java.util.Map; import java.util.Map;
import io.reactivex.Observable; import io.reactivex.Observable;
import okhttp3.RequestBody;
/** /**
...@@ -22,7 +25,7 @@ import io.reactivex.Observable; ...@@ -22,7 +25,7 @@ import io.reactivex.Observable;
*/ */
public interface SendOrderContract { public interface SendOrderContract {
interface View extends IView { interface View extends IView {
void loadMemberInfo(MemberAddressInfoBean.DataBean data);
} }
interface Model extends IModel { interface Model extends IModel {
...@@ -30,5 +33,9 @@ public interface SendOrderContract { ...@@ -30,5 +33,9 @@ public interface SendOrderContract {
* 獲取配送信息 * 獲取配送信息
*/ */
Observable<String> getConfirmTakeawayOrderData(Map<String, Object> map); Observable<String> getConfirmTakeawayOrderData(Map<String, Object> map);
Observable<BaseResult> submitOrder(RequestBody requestBody);
Observable<MemberAddressInfoBean> getMemberAddressInfo(String phone);
} }
} }
package com.gingersoft.gsa.delivery_pick_mode.mvp.model;
public class MemberAddressInfoBean {
/**
* success : true
* sysTime : 1602675733309
* data : {"id":57172,"receiver":"王","sex":1,"phone":"18384840551","addressDetail":"455","currentAddress":"美丽华商场","isDefault":1}
*/
private boolean success;
private long sysTime;
private String errorMsg;
private DataBean data;
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public long getSysTime() {
return sysTime;
}
public void setSysTime(long sysTime) {
this.sysTime = sysTime;
}
public DataBean getData() {
return data;
}
public void setData(DataBean data) {
this.data = data;
}
public String getErrorMsg() {
return errorMsg;
}
public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
}
public static class DataBean {
/**
* id : 57172
* receiver : 王
* sex : 1
* phone : 18384840551
* addressDetail : 455
* currentAddress : 美丽华商场
* isDefault : 1
*/
private int id;
private String receiver;
private int sex;
private String phone;
private String addressDetail;
private String currentAddress;
private int isDefault;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getReceiver() {
return receiver;
}
public void setReceiver(String receiver) {
this.receiver = receiver;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddressDetail() {
return addressDetail;
}
public void setAddressDetail(String addressDetail) {
this.addressDetail = addressDetail;
}
public String getCurrentAddress() {
return currentAddress;
}
public void setCurrentAddress(String currentAddress) {
this.currentAddress = currentAddress;
}
public int getIsDefault() {
return isDefault;
}
public void setIsDefault(int isDefault) {
this.isDefault = isDefault;
}
}
}
...@@ -2,6 +2,7 @@ package com.gingersoft.gsa.delivery_pick_mode.mvp.model; ...@@ -2,6 +2,7 @@ package com.gingersoft.gsa.delivery_pick_mode.mvp.model;
import android.app.Application; import android.app.Application;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.delivery_pick_mode.mvp.contract.SendOrderContract; import com.gingersoft.gsa.delivery_pick_mode.mvp.contract.SendOrderContract;
import com.gingersoft.gsa.delivery_pick_mode.mvp.server.SendOrderServer; import com.gingersoft.gsa.delivery_pick_mode.mvp.server.SendOrderServer;
import com.google.gson.Gson; import com.google.gson.Gson;
...@@ -14,6 +15,7 @@ import java.util.Map; ...@@ -14,6 +15,7 @@ import java.util.Map;
import javax.inject.Inject; import javax.inject.Inject;
import io.reactivex.Observable; import io.reactivex.Observable;
import okhttp3.RequestBody;
/** /**
...@@ -52,4 +54,14 @@ public class SendOrderModel extends BaseModel implements SendOrderContract.Model ...@@ -52,4 +54,14 @@ public class SendOrderModel extends BaseModel implements SendOrderContract.Model
public Observable<String> getConfirmTakeawayOrderData(Map<String, Object> map) { public Observable<String> getConfirmTakeawayOrderData(Map<String, Object> map) {
return mRepositoryManager.obtainRetrofitService(SendOrderServer.class).getConfirmTakeawayOrderData(map); return mRepositoryManager.obtainRetrofitService(SendOrderServer.class).getConfirmTakeawayOrderData(map);
} }
@Override
public Observable<BaseResult> submitOrder(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(SendOrderServer.class).submitOrder(requestBody);
}
@Override
public Observable<MemberAddressInfoBean> getMemberAddressInfo(String phone) {
return mRepositoryManager.obtainRetrofitService(SendOrderServer.class).getMemberAddressInfo(phone);
}
} }
\ No newline at end of file
...@@ -2,22 +2,36 @@ package com.gingersoft.gsa.delivery_pick_mode.mvp.presenter; ...@@ -2,22 +2,36 @@ package com.gingersoft.gsa.delivery_pick_mode.mvp.presenter;
import android.app.Application; import android.app.Application;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.utils.other.TextUtil;
import com.gingersoft.gsa.delivery_pick_mode.mvp.contract.SendOrderContract; import com.gingersoft.gsa.delivery_pick_mode.mvp.contract.SendOrderContract;
import com.gingersoft.gsa.delivery_pick_mode.mvp.model.MemberAddressInfoBean;
import com.jess.arms.di.scope.ActivityScope; import com.jess.arms.di.scope.ActivityScope;
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;
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.JSONException;
import org.json.JSONObject;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
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.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;
import okhttp3.FormBody;
import okhttp3.RequestBody;
/** /**
...@@ -79,7 +93,149 @@ public class SendOrderPresenter extends BasePresenter<SendOrderContract.Model, S ...@@ -79,7 +93,149 @@ public class SendOrderPresenter extends BasePresenter<SendOrderContract.Model, S
public void onNext(String s) { public void onNext(String s) {
// https://hktest.ricepon.com:64377/member-web/api/member/getAddressAndResSetting?&pageSize=15&shopId=26&isdefault=1&pageIndex=1&price=0&memberId=515 // https://hktest.ricepon.com:64377/member-web/api/member/getAddressAndResSetting?&pageSize=15&shopId=26&isdefault=1&pageIndex=1&price=0&memberId=515
} }
@Override
public void onError(Throwable t) {
super.onError(t);
}
});
}
public void getMemberAddressInfo(String phone) {
mModel.getMemberAddressInfo(phone)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading("查詢會員信息..."))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<MemberAddressInfoBean>(mErrorHandler) {
@Override
public void onNext(@NonNull MemberAddressInfoBean info) {
if (info != null) {
if (info.isSuccess() && info.getData() != null) {
mRootView.loadMemberInfo(info.getData());
} else if (TextUtil.isNotEmptyOrNullOrUndefined(info.getErrorMsg())) {
mRootView.showMessage(info.getErrorMsg());
} else {
mRootView.showMessage("會員信息獲取失敗");
}
} else {
mRootView.showMessage("會員信息獲取失敗");
}
}
}); });
} }
public void submitOrder(String name, String phone, String address) {
RequestBody requestBody = new FormBody.Builder()
.add("order", getOrderJson(name, phone, address))
.add("apiversion", "1")
.build();
mModel.submitOrder(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading("正在創建訂單..."))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult info) {
}
@Override
public void onError(Throwable t) {
super.onError(t);
}
});
}
/**
* 订单提交
*/
private String getOrderJson(String name, String phone, String address) {
JSONObject json;
json = new JSONObject();
try {
json.put("shopId", GsaCloudApplication.getRestaurantId());
json.put("phone", phone);
json.put("replenishmentType", "1");
json.put("transportationType", "3");
json.put("memberId", GsaCloudApplication.getMemberId());
json.put("addressDetail", address);
json.put("orderRemark", "");
json.put("payType", 1);
//原价
json.put("originalAmount", MyOrderManage.getInstance().getWholeAmount());
json.put("orderType", 8);
//实际总价
json.put("totalPrice", MyOrderManage.getInstance().getTotalAmount());
// json.put("waimaiSendTime", waimaiSendTime);//送单时间
JSONArray array = new JSONArray();
List<OrderDetail> orderDetails = MyOrderManage.getInstance().getOrderFoodList();
for (int i = 0; i < orderDetails.size(); i++) {
OrderDetail orderDetail = orderDetails.get(i);
JSONObject food = getFoodJson(orderDetail);
if (i + 1 < orderDetails.size() && orderDetails.get(i + 1).getParentId() == orderDetail.getId()
&& orderDetails.get(i + 1).getItemType() != 0) {
//如果下一個食品的父級id是當前食品的id
JSONArray foodArray = new JSONArray();
long foodId = orderDetail.getId();
for (int j = i + 1; j < orderDetails.size(); j++) {
OrderDetail secondOrderDetail = orderDetails.get(j);
JSONObject secondFood = getFoodJson(secondOrderDetail);
JSONArray secondArray = new JSONArray();
if (orderDetails.get(j).getParentId() == foodId) {
secondArray.put(secondFood);
long secondFoodId = secondOrderDetail.getId();
if (j + 1 < orderDetails.size() && orderDetails.get(j + 1).getParentId() == secondOrderDetail.getId()) {
for (int k = j + 1; k < orderDetails.size(); k++) {
JSONObject thirdFood = getFoodJson(secondOrderDetail);
JSONArray thirdArray = new JSONArray();
if (orderDetails.get(k).getParentId() == secondFoodId) {
thirdArray.put(getFoodJson(orderDetails.get(k)));
} else {
thirdFood.put("itemDetail", thirdArray);
secondArray.put(thirdFood);
i = k;
break;
}
}
}
} else {
secondFood.put("itemDetail", secondArray);
foodArray.put(secondFood);
i = j;
break;
}
}
} else {
array.put(food);
}
}
json.put("foods", array);
} catch (JSONException e) {
e.printStackTrace();
}
return json.toString();
}
private JSONObject getFoodJson(OrderDetail orderDetail) {
JSONObject object = new JSONObject();
try {
object.put("posFid", orderDetail.getParentId());
object.put("productId", orderDetail.getId());
object.put("productName", orderDetail.getProductName());
object.put("number", orderDetail.getNumber());
object.put("price", orderDetail.getPrice());
object.put("lunchboxPrice", orderDetail.getLunchboxPrice());
} catch (JSONException e) {
e.printStackTrace();
}
return object;
}
} }
package com.gingersoft.gsa.delivery_pick_mode.mvp.server; package com.gingersoft.gsa.delivery_pick_mode.mvp.server;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.delivery_pick_mode.mvp.model.MemberAddressInfoBean;
import java.util.Map; import java.util.Map;
import io.reactivex.Observable; import io.reactivex.Observable;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager; import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.GET; import retrofit2.http.GET;
import retrofit2.http.Headers; import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Query;
import retrofit2.http.QueryMap; import retrofit2.http.QueryMap;
public interface SendOrderServer { public interface SendOrderServer {
...@@ -14,4 +21,12 @@ public interface SendOrderServer { ...@@ -14,4 +21,12 @@ public interface SendOrderServer {
@GET("member/getAddressAndResSetting?" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @GET("member/getAddressAndResSetting?" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<String> getConfirmTakeawayOrderData(@QueryMap Map<String, Object> map); Observable<String> getConfirmTakeawayOrderData(@QueryMap Map<String, Object> map);
@Headers({"Domain-Name: update_version"})
@POST("order/addOrder2" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> submitOrder(@Body RequestBody requestBody);
@Headers({"Domain-Name: ricepon_member"})
@GET("member/getMemberAddressInfo" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<MemberAddressInfoBean> getMemberAddressInfo(@Query("phone") String phone);
} }
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_delivery_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:background="@drawable/shape_delivery_item_btn_normal"
android:gravity="center"
android:orientation="vertical"
android:padding="@dimen/dp_5"
android:layout_marginLeft="@dimen/dp_2"
android:layout_marginRight="@dimen/dp_2">
<TextView
android:id="@+id/tv_delivery_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/color_c8"
android:textSize="@dimen/dp_17" />
</LinearLayout>
\ No newline at end of file
...@@ -12,5 +12,7 @@ ...@@ -12,5 +12,7 @@
<string name="distribution_mode">配送方式:</string> <string name="distribution_mode">配送方式:</string>
<string name="pay_mode">支付類型:</string> <string name="pay_mode">支付類型:</string>
<string name="delivery_time">配送時間:</string> <string name="delivery_time">配送時間:</string>
<string name="delivery_shop">本店派送</string>
<string name="logistics_distribution">物流配送</string>
</resources> </resources>
...@@ -8,6 +8,7 @@ import com.jess.arms.mvp.IView; ...@@ -8,6 +8,7 @@ import com.jess.arms.mvp.IView;
import java.util.List; import java.util.List;
import io.reactivex.Observable; import io.reactivex.Observable;
import okhttp3.RequestBody;
public interface ExpandListContract { public interface ExpandListContract {
...@@ -19,5 +20,7 @@ public interface ExpandListContract { ...@@ -19,5 +20,7 @@ public interface ExpandListContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存 //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel { interface Model extends IModel {
Observable<BaseResult> getExpandList(int restaurantId); Observable<BaseResult> getExpandList(int restaurantId);
Observable<BaseResult> updateExpandInfo(RequestBody requestBody);
} }
} }
...@@ -4,7 +4,6 @@ import android.app.Application; ...@@ -4,7 +4,6 @@ import android.app.Application;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.main.mvp.contract.ExpandListContract; import com.gingersoft.gsa.cloud.main.mvp.contract.ExpandListContract;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.FunctionBean;
import com.gingersoft.gsa.cloud.main.mvp.model.service.ExpandListService; import com.gingersoft.gsa.cloud.main.mvp.model.service.ExpandListService;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.jess.arms.di.scope.ActivityScope; import com.jess.arms.di.scope.ActivityScope;
...@@ -14,6 +13,7 @@ import com.jess.arms.mvp.BaseModel; ...@@ -14,6 +13,7 @@ import com.jess.arms.mvp.BaseModel;
import javax.inject.Inject; import javax.inject.Inject;
import io.reactivex.Observable; import io.reactivex.Observable;
import okhttp3.RequestBody;
@ActivityScope @ActivityScope
...@@ -40,4 +40,9 @@ public class ExpandListModel extends BaseModel implements ExpandListContract.Mod ...@@ -40,4 +40,9 @@ public class ExpandListModel extends BaseModel implements ExpandListContract.Mod
public Observable<BaseResult> getExpandList(int restaurantId) { public Observable<BaseResult> getExpandList(int restaurantId) {
return mRepositoryManager.obtainRetrofitService(ExpandListService.class).getExpandList(restaurantId); return mRepositoryManager.obtainRetrofitService(ExpandListService.class).getExpandList(restaurantId);
} }
@Override
public Observable<BaseResult> updateExpandInfo(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(ExpandListService.class).updateExpandInfo(requestBody);
}
} }
\ No newline at end of file
...@@ -4,11 +4,20 @@ import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; ...@@ -4,11 +4,20 @@ import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import io.reactivex.Observable; import io.reactivex.Observable;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager; import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.GET; import retrofit2.http.GET;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Query; import retrofit2.http.Query;
public interface ExpandListService { public interface ExpandListService {
@GET("restaurant/ext/list" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @GET("restaurant/ext/list" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> getExpandList(@Query("restaurantId") int restaurantId); Observable<BaseResult> getExpandList(@Query("restaurantId") int restaurantId);
@Headers({"Domain-Name: system_url"})
@POST("restaurantExt/batchUpdate" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> updateExpandInfo(@Body RequestBody requestBody);
} }
...@@ -5,6 +5,8 @@ import android.app.Application; ...@@ -5,6 +5,8 @@ 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.utils.JsonUtils; import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.base.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.database.bean.ExpandInfo; import com.gingersoft.gsa.cloud.database.bean.ExpandInfo;
import com.gingersoft.gsa.cloud.main.mvp.contract.ExpandListContract; import com.gingersoft.gsa.cloud.main.mvp.contract.ExpandListContract;
import com.jess.arms.di.scope.ActivityScope; import com.jess.arms.di.scope.ActivityScope;
...@@ -21,6 +23,8 @@ import io.reactivex.android.schedulers.AndroidSchedulers; ...@@ -21,6 +23,8 @@ import io.reactivex.android.schedulers.AndroidSchedulers;
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;
import okhttp3.MediaType;
import okhttp3.RequestBody;
@ActivityScope @ActivityScope
...@@ -63,11 +67,33 @@ public class ExpandListPresenter extends BasePresenter<ExpandListContract.Model, ...@@ -63,11 +67,33 @@ public class ExpandListPresenter extends BasePresenter<ExpandListContract.Model,
if (result.getData() != null) { if (result.getData() != null) {
List<ExpandInfo> expandInfoList = JsonUtils.parseArray(result.getData(), ExpandInfo.class); List<ExpandInfo> expandInfoList = JsonUtils.parseArray(result.getData(), ExpandInfo.class);
mRootView.loadExpandList(expandInfoList); mRootView.loadExpandList(expandInfoList);
}
}
}
});
}
public void updateExpandInfo(List<ExpandInfo> data){
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(data));
mModel.updateExpandInfo(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(""))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(BaseResult result) {
if(TextUtil.isNotEmptyOrNullOrUndefined(result.getErrMsg())){
mRootView.showMessage(result.getErrMsg());
} }
if (result.isSuccess()) {
mRootView.killMyself();
} }
} }
}); });
} }
} }
...@@ -2,7 +2,6 @@ package com.gingersoft.gsa.cloud.main.mvp.ui.adapter; ...@@ -2,7 +2,6 @@ package com.gingersoft.gsa.cloud.main.mvp.ui.adapter;
import android.text.Editable; import android.text.Editable;
import android.text.TextWatcher; import android.text.TextWatcher;
import android.util.Log;
import android.view.View; import android.view.View;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
import android.widget.EditText; import android.widget.EditText;
...@@ -18,7 +17,6 @@ import com.gingersoft.gsa.cloud.database.bean.ExpandInfo; ...@@ -18,7 +17,6 @@ import com.gingersoft.gsa.cloud.database.bean.ExpandInfo;
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 org.jetbrains.annotations.Nullable;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.ParseException; import java.text.ParseException;
...@@ -28,7 +26,7 @@ import java.util.List; ...@@ -28,7 +26,7 @@ import java.util.List;
public class ExpandListAdapter extends BaseQuickAdapter<ExpandInfo, BaseViewHolder> { public class ExpandListAdapter extends BaseQuickAdapter<ExpandInfo, BaseViewHolder> {
public ExpandListAdapter(@Nullable List<ExpandInfo> data) { public ExpandListAdapter(List<ExpandInfo> data) {
super(R.layout.main_expand_item, data); super(R.layout.main_expand_item, data);
for (int i = 0; i < data.size(); i++) { for (int i = 0; i < data.size(); i++) {
data.get(i).setDataType(i); data.get(i).setDataType(i);
...@@ -37,7 +35,7 @@ public class ExpandListAdapter extends BaseQuickAdapter<ExpandInfo, BaseViewHold ...@@ -37,7 +35,7 @@ public class ExpandListAdapter extends BaseQuickAdapter<ExpandInfo, BaseViewHold
@Override @Override
protected void convert(@NotNull BaseViewHolder baseViewHolder, ExpandInfo function) { protected void convert(@NotNull BaseViewHolder baseViewHolder, ExpandInfo function) {
baseViewHolder.setText(R.id.tv_expand_name, function.getRemark()); baseViewHolder.setText(R.id.tv_expand_name, function.getShowName());
EditText editText = baseViewHolder.getView(R.id.ed_expand_edit); EditText editText = baseViewHolder.getView(R.id.ed_expand_edit);
Switch btn = baseViewHolder.getView(R.id.switch_expand_boolean); Switch btn = baseViewHolder.getView(R.id.switch_expand_boolean);
TextView tvTime = baseViewHolder.getView(R.id.tv_expand_time); TextView tvTime = baseViewHolder.getView(R.id.tv_expand_time);
...@@ -75,6 +73,7 @@ public class ExpandListAdapter extends BaseQuickAdapter<ExpandInfo, BaseViewHold ...@@ -75,6 +73,7 @@ public class ExpandListAdapter extends BaseQuickAdapter<ExpandInfo, BaseViewHold
tvTime.setVisibility(View.VISIBLE); tvTime.setVisibility(View.VISIBLE);
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
if (function.getValueDatetime() != null) {
try { try {
calendar.setTime(DateFormat.getDateTimeInstance().parse(function.getValueDatetime())); calendar.setTime(DateFormat.getDateTimeInstance().parse(function.getValueDatetime()));
} catch (ParseException e) { } catch (ParseException e) {
...@@ -96,6 +95,7 @@ public class ExpandListAdapter extends BaseQuickAdapter<ExpandInfo, BaseViewHold ...@@ -96,6 +95,7 @@ public class ExpandListAdapter extends BaseQuickAdapter<ExpandInfo, BaseViewHold
.show(); .show();
}); });
}
} else { } else {
btn.setVisibility(View.GONE); btn.setVisibility(View.GONE);
tvTime.setVisibility(View.GONE); tvTime.setVisibility(View.GONE);
......
...@@ -2,10 +2,12 @@ package com.joe.print.mvp.print; ...@@ -2,10 +2,12 @@ package com.joe.print.mvp.print;
import android.content.Context; import android.content.Context;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.text.TextUtils;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import com.gingersoft.gsa.cloud.base.common.bean.BillingBean; import com.gingersoft.gsa.cloud.base.common.bean.BillingBean;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo; import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
import com.gingersoft.gsa.cloud.base.order.bean.BillOrderMoney; import com.gingersoft.gsa.cloud.base.order.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail; import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage; import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
...@@ -39,7 +41,49 @@ public class PrintBill extends PrinterRoot { ...@@ -39,7 +41,49 @@ public class PrintBill extends PrinterRoot {
@Override @Override
public String getPrintData(Context mContext, PrinterDeviceBean deviceBean) { public String getPrintData(Context mContext, PrinterDeviceBean deviceBean) {
return null; List<OrderDetail> foodList = MyOrderManage.getInstance().getOrderFoodList();
TableBean.DataBean tableBean = OpenTableManage.getDefault().getTableBean();
StringBuilder payInfo = new StringBuilder();
for (PayMethod payMethod : MyOrderManage.getInstance().getBillMoney()) {
payInfo.append(payMethod.getPayName() + " ").append(payMethod.getPayMoney());
}
StringBuilder memberIntegerInfo = new StringBuilder();
OrderDetails.DataBean data = getOrderMemberInfo();
MyOrderManage.getInstance().getIntegralQrcode();
if (data.getAddPoints() != 0 || data.getOldPoints() != 0 || data.getAddPoints() != 0) {
memberIntegerInfo.append(getPLable("本次積分:" + data.getAddPoints(), HTML_PRINT_GRAVITY_LEFT))
.append(getPLable("結餘積分:" + data.getNowPoints(), HTML_PRINT_GRAVITY_LEFT))
.append(getPLable("上次積分:" + data.getOldPoints(), HTML_PRINT_GRAVITY_LEFT));
//名稱中間替換為*號
if (data.getMEMBER_NAME() != null && data.getMEMBER_NAME().length() > 0) {
memberIntegerInfo.append(getPLable("會員名稱:" + getReplaceAfter(data.getMEMBER_NAME()), HTML_PRINT_GRAVITY_LEFT));
}
if (data.getPHONE() != null && data.getPHONE().length() > 0) {
memberIntegerInfo.append(getPLable("會員電話:" + getReplaceAfter(data.getPHONE()), HTML_PRINT_GRAVITY_LEFT));
}
}
String stringBuilder = "<html><body>" +
getHtmlPrintHeadInfo() +
getHtmlPrintHeadOrderInfo(tableBean) +
generateFoodInfo(foodList) +
getHtmlBillInfo() +
getWholeLine() +
getPLable(payInfo.toString(), HTML_PRINT_GRAVITY_LEFT) +
getWholeLine() +
getPLable(memberIntegerInfo.toString(), HTML_PRINT_GRAVITY_LEFT);
String integralQrCode = MyOrderManage.getInstance().getIntegralQrcode();
if (!TextUtils.isEmpty(integralQrCode) &&
(boolean) RestaurantExpandInfoUtils.getValue(ExpandConstant.ToPrintQRCode, false)) {
stringBuilder += getPLable("請掃描二維碼", HTML_PRINT_GRAVITY_CENTER) +
getHtmlQrCode(MyOrderManage.getInstance().getIntegralQrcode()) +
getPLable("《追加積分到個人賬戶》", HTML_PRINT_GRAVITY_CENTER);
}
stringBuilder += "</body></html>";
return stringBuilder;
} }
@Override @Override
......
...@@ -6,6 +6,10 @@ import android.view.LayoutInflater; ...@@ -6,6 +6,10 @@ 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.RecyclerView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail; import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage; import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
...@@ -25,9 +29,6 @@ import java.util.HashMap; ...@@ -25,9 +29,6 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
/** /**
* 打印外賣接單 結賬單 * 打印外賣接單 結賬單
*/ */
...@@ -240,22 +241,4 @@ public class PrintOtherOrderClosing extends PrinterRoot { ...@@ -240,22 +241,4 @@ public class PrintOtherOrderClosing extends PrinterRoot {
return new PrintBillBean(title, value); return new PrintBillBean(title, value);
} }
private String getReplaceAfter(String str) {
if (str != null && str.length() > 0) {
int replaceStrCount = str.length() / 2;
StringBuilder buffer = new StringBuilder();
if (replaceStrCount >= 5) {
replaceStrCount = str.length() - 5;
}
for (int i = 0; i < replaceStrCount; i++) {
buffer.append("*");
}
String header = str.substring(0, 1);
String tail = str.substring(replaceStrCount + 1);
return header + buffer.toString() + tail;
}
return "";
}
} }
\ No newline at end of file
...@@ -179,18 +179,18 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -179,18 +179,18 @@ public class PrintPrjKitchen extends PrinterRoot {
} else { } else {
tvTakeTime.setVisibility(View.GONE); tvTakeTime.setVisibility(View.GONE);
} }
if (RestaurantExpandInfoUtils.getValue(ExpandConstant.PrintFirstOrder, false)) { // if (RestaurantExpandInfoUtils.getValue(ExpandConstant.PrintFirstOrder, false)) {
tvFirstOrder.setText("<頭單>"); // tvFirstOrder.setText("<頭單>");
tvFirstOrder.setVisibility(prjBean.getIsFirstSendOrder() == 1 ? View.VISIBLE : View.GONE); // tvFirstOrder.setVisibility(prjBean.getIsFirstSendOrder() == 1 ? View.VISIBLE : View.GONE);
} else { // } else {
tvFirstOrder.setVisibility(View.GONE); // tvFirstOrder.setVisibility(View.GONE);
} // }
//
if (RestaurantExpandInfoUtils.getValue(ExpandConstant.PrintStatisticsAmount, false)) { // if (RestaurantExpandInfoUtils.getValue(ExpandConstant.PrintStatisticsAmount, false)) {
tvPrintQuantity.setText(prjBean.getQuantity() + ""); // tvPrintQuantity.setText(prjBean.getQuantity() + "");
} else { // } else {
tvPrintQuantity.setVisibility(View.GONE); // tvPrintQuantity.setVisibility(View.GONE);
} // }
//開台時間 //開台時間
tvOpeningTime.setText(TimeUtils.parseTimeRepeat(prjBean.getOrderDetailsTime(), TimeUtils.DEFAULT_DATE_MDHM)); tvOpeningTime.setText(TimeUtils.parseTimeRepeat(prjBean.getOrderDetailsTime(), TimeUtils.DEFAULT_DATE_MDHM));
......
...@@ -3,16 +3,8 @@ package com.joe.print.mvp.print; ...@@ -3,16 +3,8 @@ package com.joe.print.mvp.print;
import android.content.Context; import android.content.Context;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.view.Gravity; import android.view.Gravity;
import android.view.View;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BillingBean;
import com.gingersoft.gsa.cloud.base.order.adapter.print.FoodAdapter;
import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail; import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail;
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.bean.mealManger.OpenTableManage; import com.gingersoft.gsa.cloud.base.order.bean.mealManger.OpenTableManage;
...@@ -43,7 +35,15 @@ public class PrintServe extends PrinterRoot { ...@@ -43,7 +35,15 @@ public class PrintServe extends PrinterRoot {
@Override @Override
public String getPrintData(Context mContext, PrinterDeviceBean deviceBean) { public String getPrintData(Context mContext, PrinterDeviceBean deviceBean) {
return null; List<OrderDetail> foodList = MyOrderManage.getInstance().getOrderFoodList();
TableBean.DataBean tableBean = OpenTableManage.getDefault().getTableBean();
String stringBuilder = "<html><body>" +
getHtmlPrintHeadInfo() +
getHtmlPrintHeadOrderInfo(tableBean) +
generateFoodInfoTwoColumns(foodList) +
getWholeLine() +
getHtmlFooter() + "</body></html>";
return stringBuilder;
} }
@Override @Override
...@@ -52,69 +52,6 @@ public class PrintServe extends PrinterRoot { ...@@ -52,69 +52,6 @@ public class PrintServe extends PrinterRoot {
} }
private Bitmap getServeBitmap(Context context, PrinterDeviceBean printerDeviceBean) {
List<OrderDetail> foodList = MyOrderManage.getInstance().getNewFoodList();
if (foodList == null || foodList.size() <= 0) {
return null;
}
View view = LinearLayout.inflate(context, R.layout.print_layout_print, null);
TextView brandName = view.findViewById(R.id.tv_brand_name);
TextView restaurantName = view.findViewById(R.id.tv_restaurant_name);
TextView tableNum = view.findViewById(R.id.tv_dining_table_number);
TextView people = view.findViewById(R.id.tv_people);
TextView orderNum = view.findViewById(R.id.tv_order_num);
TextView orderData = view.findViewById(R.id.tv_date);
RecyclerView rvFood = view.findViewById(R.id.rv_food);
RecyclerView rvBillAmount = view.findViewById(R.id.rv_bill_amount);
TextView mTvTotalAmount = view.findViewById(R.id.tv_total_amount);
TextView checkOutTime = view.findViewById(R.id.tv_checkout_time);
TextView line_food_info = view.findViewById(R.id.line_food_info);
TableBean.DataBean tableBean = OpenTableManage.getDefault().getTableBean();
brandName.setText(GsaCloudApplication.getBrandName());
restaurantName.setText(GsaCloudApplication.getRestaurantName());
tableNum.setText("餐檯:" + tableBean.getTableName());
people.setText("人數:" + OpenTableManage.getDefault().getPeopleNumber());
orderData.setText(TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT));
checkOutTime.setText(TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT));
FoodAdapter foodAdapter = new FoodAdapter(foodList);
rvFood.setLayoutManager(new LinearLayoutManager(context));
rvFood.setAdapter(foodAdapter);
List<BillingBean> billingBeans = new ArrayList<>();
// if (billingBeans.size() <= 0) {
line_food_info.setVisibility(View.GONE);
rvBillAmount.setVisibility(View.GONE);
view.findViewById(R.id.line_price_info).setVisibility(View.GONE);
// } else {
// BillAdapter billAdapter = new BillAdapter(billingBeans);
// rvBillAmount.setLayoutManager(new LinearLayoutManager(context));
// rvBillAmount.setAdapter(billAdapter);
// }
if (OpenTableManage.getDefault().getTableBean() != null) {
tableNum.setText(OpenTableManage.getDefault().getTableBean().getTableName());
people.setText(OpenTableManage.getDefault().getPeopleNumber() + "");
}
if (MyOrderManage.getInstance().getOrderId() != -1) {
orderNum.setText(MyOrderManage.getInstance().getOrderId() + "");
}
// BigDecimal totalAmount = new BigDecimal(0);
// for (OrderDetail OrderDetail : foodList) {
// totalAmount = MoneyUtil.sum(totalAmount, MoneyUtil.priceCalculation(OrderDetail.getPrice(), OrderDetail.getNumber()));
// }
//總金額
view.findViewById(R.id.tv_total_amount_text).setVisibility(View.GONE);
mTvTotalAmount.setVisibility(View.GONE);
mTvTotalAmount.setText(MyOrderManage.getInstance().getTotalAmount() + "");
//加载条形码
// ImageView ivBarCode = view.findViewById(R.id.iv_bar_code);
// ivBarCode.setImageBitmap(BitmapUtil.generateBitmap("12312112131", 2, 450, 150));
return viewToZoomBitmap(context, view, printerDeviceBean);
}
private Bitmap getBitmap(Context mContext, PrinterDeviceBean printerDeviceBean) { private Bitmap getBitmap(Context mContext, PrinterDeviceBean printerDeviceBean) {
List<OrderDetail> foodList = MyOrderManage.getInstance().getOrderFoodList(); List<OrderDetail> foodList = MyOrderManage.getInstance().getOrderFoodList();
if (foodList == null || foodList.size() <= 0) { if (foodList == null || foodList.size() <= 0) {
......
...@@ -5,7 +5,6 @@ import android.graphics.Bitmap; ...@@ -5,7 +5,6 @@ import android.graphics.Bitmap;
import android.view.Gravity; import android.view.Gravity;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BillingBean; import com.gingersoft.gsa.cloud.base.common.bean.BillingBean;
import com.gingersoft.gsa.cloud.base.order.bean.BillOrderMoney; import com.gingersoft.gsa.cloud.base.order.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail; import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail;
...@@ -48,62 +47,16 @@ public class PrintSlip extends PrinterRoot { ...@@ -48,62 +47,16 @@ public class PrintSlip extends PrinterRoot {
@Override @Override
public String getPrintData(Context mContext, PrinterDeviceBean deviceBean) { public String getPrintData(Context mContext, PrinterDeviceBean deviceBean) {
List<OrderDetail> foodList = MyOrderManage.getInstance().getOrderFoodList(); List<OrderDetail> foodList = MyOrderManage.getInstance().getOrderFoodList();
if (foodList == null || foodList.size() <= 0) {
return null;
}
TableBean.DataBean tableBean = OpenTableManage.getDefault().getTableBean(); TableBean.DataBean tableBean = OpenTableManage.getDefault().getTableBean();
StringBuilder stringBuilder = new StringBuilder(); String stringBuilder = "<html><body>" +
stringBuilder.append("<html><body>"); getHtmlPrintHeadInfo() +
stringBuilder.append(getPLable(GsaCloudApplication.getBrandName())) getHtmlPrintHeadOrderInfo(tableBean) +
.append(getPLable(GsaCloudApplication.getRestaurantName())) generateFoodInfo(foodList) +
.append(getLineLable()) getHtmlBillInfo() +
.append(getPLable("餐檯:" + tableBean.getTableName())) getWholeLine() +
.append(getPLable("人數:" + OpenTableManage.getDefault().getPeopleNumber())) getHtmlFooter() + "</body></html>";
.append(getPLable("單號:" + MyOrderManage.getInstance().getOrderId())) return stringBuilder;
.append(getPLable("日期:" + TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT)))
.append(getLineLable())
.append("<p>\n" +
"<div align=\"left\">Item 1 - WisePOS</div>\n" +
"<div align=\"right\">$999</div>\n" +
"<div align=\"left\">Item 2 - Printer</div>\n" +
"<div align=\"right\">$299</div>\n" +
"<div align=\"left\">Item 3 - Cup</div>\n" +
"<div align=\"right\">$78</div> \n" +
"<div align=\"left\">Item 4 - Data SIM</div>\n" +
"<div align=\"right\">$99</div> \n" +
"<div align=\"right\">____________</div>\n" +
"<div align=\"right\">Total: $XXX</div>\n" +
"</p>");
stringBuilder.append("</body></html>");
//<h1>Heading 1</h1><br/>
//<h2>Heading 2</h2><br/>
//<h3>Heading 3</h3><br/>
//<h4>Heading 4</h4><br/>
//<p align="right">Right</p><div align="center">Center</div>
//<p align="left">Left</p><br/>
//<img src="https%3A%2F%2Fmedia.licdn.com%2Fdms%2Fimage%2FC510BAQFnb_2T7cLREw%2Fcomp
// any-logo_200_200%2F0%3Fe%3D2159024400%26v%3Dbeta%26t%3De21PjbFv5en9quafFnWxkwWiJh
// 3aAFqZHJJsoE81ggk"></img><br/>
// <ol start="10">
//<li>A</li>
//<li>B</li>
//</ol>
//<ul>
//<li>A</li>
//<li>B</li>
//</ul>
return null;
}
// private String getDiv(String content, String location) {
//
// }
private String getLineLable() {
return "<br/>";
} }
private String getPLable(String content) { private String getPLable(String content) {
......
...@@ -21,6 +21,7 @@ import com.gingersoft.gsa.cloud.base.utils.AidlUtil; ...@@ -21,6 +21,7 @@ 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.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.constans.HttpsConstans; import com.gingersoft.gsa.cloud.constans.HttpsConstans;
import com.gingersoft.gsa.cloud.constans.PrintConstans; import com.gingersoft.gsa.cloud.constans.PrintConstans;
import com.gingersoft.gsa.cloud.database.bean.PrintCurrencyBean; import com.gingersoft.gsa.cloud.database.bean.PrintCurrencyBean;
...@@ -323,7 +324,7 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -323,7 +324,7 @@ 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();
currentIndex = 1; currentIndex = 0;
totalPrj = 0; totalPrj = 0;
PrjBean prjBean = JsonUtils.parseObject(json, PrjBean.class); PrjBean prjBean = JsonUtils.parseObject(json, PrjBean.class);
if (prjBean == null || prjBean.getData() == null) { if (prjBean == null || prjBean.getData() == null) {
...@@ -342,11 +343,24 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -342,11 +343,24 @@ public class PrjService extends Service implements ReceiveListener {
//最后就可以通过刚刚得到的key值去解析后面的json了 //最后就可以通过刚刚得到的key值去解析后面的json了
JSONArray dataJson = (JSONArray) jsonObject.get(key); JSONArray dataJson = (JSONArray) jsonObject.get(key);
List<PrjBean.DataBean.Bean> datas = JsonUtils.parseArray(dataJson.toString(), PrjBean.DataBean.Bean.class); List<PrjBean.DataBean.Bean> datas = JsonUtils.parseArray(dataJson.toString(), PrjBean.DataBean.Bean.class);
if (datas == null || datas.size() <= 0) { if (datas != null && datas.size() > 0) {
return; //打印位置和需要打印的數據
listMap.put(key, datas);
//有沒有不需要切紙的
boolean isHasNoCut = false;
for (PrjBean.DataBean.Bean bean : datas) {
if (bean.getStatus() == 2) {
//需要切紙,prj總數就+1
totalPrj++;
} else {
isHasNoCut = true;
}
}
if (isHasNoCut) {
//有不需要切紙的食物,prj總數+1
totalPrj++;
}
} }
totalPrj += datas.size();
listMap.put(key, datas);//打印位置和需要打印的數據
// PrintPrjKitchen.getPrjMap().put(key, datas); // PrintPrjKitchen.getPrjMap().put(key, datas);
// printDatas.addAll(datas); // printDatas.addAll(datas);
} }
...@@ -355,11 +369,18 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -355,11 +369,18 @@ public class PrjService extends Service implements ReceiveListener {
} }
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.setCurrentIndex(currentIndex);
bean.setTotalPrj(totalPrj); bean.setTotalPrj(totalPrj);
if(bean.getStatus() == 2){
currentIndex++; currentIndex++;
} else {
if(currentIndex == 0){
currentIndex = 1;
} }
} }
bean.setCurrentIndex(currentIndex);
}
currentIndex++;
}
//讀取打印機和通用配置,可以優化 //讀取打印機和通用配置,可以優化
//獲取所有打印機 //獲取所有打印機
PrinterDeviceDaoUtils printerDeviceDaoUtils = new PrinterDeviceDaoUtils(this); PrinterDeviceDaoUtils printerDeviceDaoUtils = new PrinterDeviceDaoUtils(this);
...@@ -472,7 +493,13 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -472,7 +493,13 @@ public class PrjService extends Service implements ReceiveListener {
updatePrjFailure(EpsIds); updatePrjFailure(EpsIds);
} }
} else { } else {
List<Map<String, Bitmap>> bitmapMaps = generatePrintMaps(key, beans, printerDeviceBean); List<Map<String, Bitmap>> bitmapMaps = null;
if (printerDeviceBean.getPrinterDeviceType() == 2 && PrintConstans.PRINT_MODEL_WISEPOS.contains(Build.MODEL)) {
//本機打印並且是BBPOS
} else {
bitmapMaps = generatePrintMaps(key, beans, printerDeviceBean);
}
switch (printerDeviceBean.getPrinterDeviceType()) { switch (printerDeviceBean.getPrinterDeviceType()) {
case 1: case 1:
//IP打印 //IP打印
...@@ -562,6 +589,9 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -562,6 +589,9 @@ public class PrjService extends Service implements ReceiveListener {
} else if (PrintConstans.PRINT_MODEL_N5.contains(model)) { } else if (PrintConstans.PRINT_MODEL_N5.contains(model)) {
//N5打印 //N5打印
n5Print(bitmapMaps); n5Print(bitmapMaps);
} else if (PrintConstans.PRINT_MODEL_WISEPOS.contains(model)) {
//BBPOS,生成data
ToastUtils.show(this, "BBPOS不支持打印處方單");
} else { } else {
updatePrjFailure(getPrintIds(bitmapMaps)); updatePrjFailure(getPrintIds(bitmapMaps));
} }
...@@ -665,12 +695,6 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -665,12 +695,6 @@ public class PrjService extends Service implements ReceiveListener {
* @param beans 打印的食品和其他的一些信息 * @param beans 打印的食品和其他的一些信息
*/ */
private List<Map<String, Bitmap>> generatePrintMaps(String key, List<PrjBean.DataBean.Bean> beans, PrinterDeviceBean printerDeviceBean) { private List<Map<String, Bitmap>> generatePrintMaps(String key, List<PrjBean.DataBean.Bean> beans, PrinterDeviceBean printerDeviceBean) {
// //食品合併
// for (PrjBean.DataBean.Bean bean : beans) {
// for (PrjBean.DataBean.Bean bean2 : beans) {
//
// }
// }
PrintPrjKitchen printPrjKitchen = new PrintPrjKitchen(); PrintPrjKitchen printPrjKitchen = new PrintPrjKitchen();
//這個Map的key是這張PRJ的所有PRJ記錄的id,然後會同時打印多張,所以是一個List集合 //這個Map的key是這張PRJ的所有PRJ記錄的id,然後會同時打印多張,所以是一個List集合
List<Map<String, Bitmap>> bitmapMaps = new ArrayList<>(); List<Map<String, Bitmap>> bitmapMaps = new ArrayList<>();
...@@ -769,75 +793,12 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -769,75 +793,12 @@ public class PrjService extends Service implements ReceiveListener {
EpsIds = ""; EpsIds = "";
} }
// @Override
// public void onStateChanged(int state, PrinterDeviceBean printerDeviceBean) {
// String tip = "加載中";
// switch (state) {
// case PrintSocketHolder.ERROR_0:
// tip = "打印成功";
// break;
// case PrintSocketHolder.ERROR_1:
// tip = "生成打印數據失敗";
// break;
// case PrintSocketHolder.ERROR_2:
// case PrintSocketHolder.ERROR_3:
// tip = "連接打印機失敗";
// break;
// case PrintSocketHolder.ERROR_4:
// tip = "寫入測試頁面數據失敗";
// break;
// case PrintSocketHolder.ERROR_5:
// tip = "必要的參數不能為空";
// break;
// case PrintSocketHolder.STATE_0:
// case PrintSocketHolder.STATE_1:
// tip = "開始創建連接";
// break;
// case PrintSocketHolder.STATE_2:
// tip = "創建連接成功,開始發送數據";
// break;
// case PrintSocketHolder.STATE_3:
// tip = "開始寫入數據";
// break;
// case PrintSocketHolder.STATE_4:
// tip = "關閉中";
// break;
// }
// Log.e(TAG, "打印機狀態:" + tip);
// }
//
// @Override
// public void onResult(int errorCode, PrinterDeviceBean printerDeviceBean) {
// switch (errorCode) {
// case PrintSocketHolder.ERROR_0:
// //更新狀態
// updatePrjState(3);
// Log.e(TAG, "打印成功");
// break;
// case PrintSocketHolder.ERROR_1:
// break;
// case PrintSocketHolder.ERROR_2:
// Log.e(TAG, "创建Socket失败");
// //再次打開輪詢
// updatePrjState(1);
// case PrintSocketHolder.ERROR_3:
// Log.e(TAG, "获取输出流失败");
// break;
// case PrintSocketHolder.ERROR_4:
// Log.e(TAG, "写入测试页面数据失败");
// break;
// case PrintSocketHolder.ERROR_5:
// Log.e(TAG, "必要参数不能为空");
// break;
// }
// }
@Override @Override
public void onPtrReceive(Printer printer, int i, PrinterStatusInfo printerStatusInfo, String s) { public void onPtrReceive(Printer printer, int i, PrinterStatusInfo printerStatusInfo, String s) {
//針式打印回調 //針式打印回調
if (i == 0) { if (i == 0) {
//打印成功 //打印成功
updatePrjFailure(EpsIds); updatePrjSuccess(EpsIds);
} else { } else {
//打印失敗 //打印失敗
updatePrjFailure(EpsIds); updatePrjFailure(EpsIds);
......
package com.joe.print.mvp.print.utils;
import android.content.Intent;
import android.util.Xml;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.utils.okhttpUtils.OkHttp3Utils;
import com.gingersoft.gsa.cloud.bean.WiseposBean;
import com.joe.print.mvp.print.PrintListener;
import com.joe.print.mvp.ui.activity.PrintActivity;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.net.ConnectException;
import java.util.concurrent.TimeoutException;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
public class BBposPrint {
public void print(String printData, PrintListener listener) {
WiseposBean wiseposBean = new WiseposBean();
OkHttp3Utils.get("http://localhost:8080/pos?transactionType=PRINT&isExternal=false&apiVersion=21&printData=" + printData).subscribe(new Observer<String>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(String s) {
analysisPrintResult(s, wiseposBean, listener);
}
@Override
public void onError(Throwable e) {
e.printStackTrace();
if (e instanceof ConnectException) {
listener.printFile("無法連接打印,請檢查WisePay是否打開");
} else if (e instanceof TimeoutException) {
backPrintActivity();
}
}
@Override
public void onComplete() {
//這個節點解析完成
if (wiseposBean.getState() != null && wiseposBean.getState().equals("SUCCESS")) {
listener.printSuccess();
} else {
listener.printFile("打印失敗");
}
backPrintActivity();
}
private void backPrintActivity() {
Intent intent = new Intent(GsaCloudApplication.getAppContext(), PrintActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
intent.addFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
intent.addFlags(Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
GsaCloudApplication.getAppContext().startActivity(intent);
}
});
}
private void analysisPrintResult(String s, WiseposBean wiseposBean, PrintListener listener) {
XmlPullParser xmlPullParser = Xml.newPullParser();
try {
xmlPullParser.setInput(new ByteArrayInputStream(s.getBytes()), "utf-8");
int eventType = xmlPullParser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
//開始解析
break;
case XmlPullParser.START_TAG:
//解析到某一個節點
String xmlName = xmlPullParser.getName();
switch (xmlName) {
case "status":
wiseposBean.setState(xmlPullParser.nextText());
break;
case "ErrorMessage":
if (xmlPullParser.nextText().equals("Please login first")) {
listener.printFile("請先登錄WisePay");
} else {
listener.printFile("" + xmlPullParser.nextText());
}
break;
case "requestType":
wiseposBean.setRequestType(xmlPullParser.nextText());
break;
default:
break;
}
break;
case XmlPullParser.END_TAG:
break;
default:
break;
}
eventType = xmlPullParser.next();
}
} catch (XmlPullParserException | IOException e) {
e.printStackTrace();
}
}
}
...@@ -6,6 +6,7 @@ import android.content.Intent; ...@@ -6,6 +6,7 @@ import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.Color; import android.graphics.Color;
import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.ColorDrawable;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.MotionEvent; import android.view.MotionEvent;
...@@ -230,37 +231,46 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -230,37 +231,46 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
if (isShowDialog) { if (isShowDialog) {
initDialog(); initDialog();
} }
// if (defaultPrint.getPrinterDeviceType() == 2 && PrintConstans.PRINT_MODEL_WISEPOS.contains(Build.MODEL)) { Map<String, List<Bitmap>> listMap = null;
// //本機打印並且是BBPOS List<Bitmap> zoomBitmaps = null;
//
// String printData = null;
// if (defaultPrint.getPrinterDeviceType() == 2 && PrintConstans.PRINT_MODEL_WISEPOS.contains(Build.MODEL)) {
// } else { //本機打印並且是BBPOS
//獲得對應的圖片 printData = printerInIt.getPrintData(mContext, defaultPrint);
Map<String, List<Bitmap>> listMap = printerInIt.getPrintBitmapByCount(mContext, defaultPrint); if (printData == null) {
printFile("暫不支持打印此單");
return;
}
} else {
listMap = printerInIt.getPrintBitmapByCount(mContext, defaultPrint);
if (listMap != null) { if (listMap != null) {
List<Bitmap> zoomBitmaps = listMap.get(""); zoomBitmaps = listMap.get("");
} else {
printFile("暫不支持打印此單");
return;
}
if (zoomBitmaps != null && zoomBitmaps.size() > 0) { if (zoomBitmaps != null && zoomBitmaps.size() > 0) {
} else {
//打印失敗
printFile("打印失敗,生成打印數據失敗");
}
}
//獲得對應的圖片
if (defaultPrint.getPrinterDeviceType() == 1) { if (defaultPrint.getPrinterDeviceType() == 1) {
//IP打印 //IP打印
printerInIt.ipDevicePrint(defaultPrint, zoomBitmaps); printerInIt.ipDevicePrint(defaultPrint, zoomBitmaps);
} else if (defaultPrint.getPrinterDeviceType() == 2) { } else if (defaultPrint.getPrinterDeviceType() == 2) {
//本地N5或Sunmi打印 //本地N5或Sunmi打印
printerInIt.locationPrint(zoomBitmaps, this); printerInIt.locationPrint(zoomBitmaps, printData, this);
} else if (defaultPrint.getPrinterDeviceType() == 3) { } else if (defaultPrint.getPrinterDeviceType() == 3) {
//USB打印打印 //USB打印打印
printerInIt.usbPrint(mContext, zoomBitmaps); printerInIt.usbPrint(mContext, zoomBitmaps);
} else { } else {
printFile("未找到對應的打印類型"); printFile("未找到對應的打印類型");
} }
} else {
//打印失敗
printFile("打印失敗,生成打印數據失敗");
}
} else {
printFile("打印失敗,打印次數為0");
}
// }
} }
} }
......
...@@ -10,7 +10,6 @@ import androidx.appcompat.app.AppCompatActivity; ...@@ -10,7 +10,6 @@ import androidx.appcompat.app.AppCompatActivity;
import com.epson.epos2.printer.Printer; 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.application.GsaCloudApplication;
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.okhttpUtils.OkHttp3Utils;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils; import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
...@@ -34,7 +33,7 @@ import io.reactivex.disposables.Disposable; ...@@ -34,7 +33,7 @@ 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個 private int lineLength = 42;//一行42個 17.5
private static int foodNameSpace = 16; private static int foodNameSpace = 16;
private static int foodNumSpace = 8; private static int foodNumSpace = 8;
private static int foodAmountSpace = 10; private static int foodAmountSpace = 10;
...@@ -50,7 +49,7 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH ...@@ -50,7 +49,7 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
int spaceLength = (int) Math.ceil(MaxLength - getChineseValueLength(text)); int spaceLength = (int) Math.ceil(MaxLength - getChineseValueLength(text));
StringBuilder space = new StringBuilder(); StringBuilder space = new StringBuilder();
for (int i = 0; i < spaceLength; i++) { for (int i = 0; i < spaceLength; i++) {
space.append(" "); space.append("_");
} }
space.append(text); space.append(text);
return space.toString(); return space.toString();
...@@ -61,7 +60,7 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH ...@@ -61,7 +60,7 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
StringBuilder space = new StringBuilder(); StringBuilder space = new StringBuilder();
space.append(text); space.append(text);
for (int i = 0; i < spaceLength; i++) { for (int i = 0; i < spaceLength; i++) {
space.append(" "); space.append("_");
} }
return space.toString(); return space.toString();
} }
...@@ -182,22 +181,16 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH ...@@ -182,22 +181,16 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
printerFinder.startFinder(); printerFinder.startFinder();
List<OrderDetail> foodList = new ArrayList<>(); List<OrderDetail> foodList = new ArrayList<>();
foodList.add(new OrderDetail("Thịt bò não trong nước sốt nâu", 5, 0)); foodList.add(new OrderDetail("牛肉拉麵", 10, 1));
foodList.add(new OrderDetail(" 紅燒牛肉 拉麵", 10, 1)); foodList.add(new OrderDetail("紅燒牛肉拉麵", 200, 2));
foodList.add(new OrderDetail("เนื้อตุ๋น", 200, 2));
foodList.add(new OrderDetail("牛肉の角煮アスティフェン", 1000, 30));
findViewById(R.id.btn_test).setOnClickListener(view -> { findViewById(R.id.btn_test).setOnClickListener(view -> {
//打印測試 //打印測試
String stringBuilder = "<html><body>" + String stringBuilder = "<html><body>" +
getPLable(GsaCloudApplication.getBrandName()) + getPLable("GingerSoft") +
getPLable(GsaCloudApplication.getRestaurantName()) + getPLable("Gs1") +
getPLable(getLineChar(lineLength,"_")) + getPLable("開檯時間:" + TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT)) +
getPLable("餐檯: " + "111") + getPLable(getLineChar(lineLength, "_")) +
getPLable("人數:23") +
getPLable("123456789123456789123456789123456789123456789") +
getPLable("日期:" + TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT)) +
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>() {
...@@ -223,7 +216,7 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH ...@@ -223,7 +216,7 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
}); });
} }
public String getLineChar(int size, String str){ public String getLineChar(int size, String str) {
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
stringBuilder.append(str); stringBuilder.append(str);
...@@ -231,33 +224,12 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH ...@@ -231,33 +224,12 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
return stringBuilder.toString(); return stringBuilder.toString();
} }
public static void main(String[] args) {
List<OrderDetail> foodList = new ArrayList<>();
foodList.add(new OrderDetail("牛肉", 0.5, 3));
foodList.add(new OrderDetail("紅燒牛肉", 5, 0));
foodList.add(new OrderDetail(" 紅燒牛肉 拉麵", 10, 1));
foodList.add(new OrderDetail("康師傅紅燒牛肉麵", 200, 2));
foodList.add(new OrderDetail("紅燒牛肉炒康師傅", 1000, 30));
System.out.print(getFoodListStr(foodList));
}
public static String getFoodListStr(List<OrderDetail> foodList) { public static String getFoodListStr(List<OrderDetail> foodList) {
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("<strong>");
for (OrderDetail detail : foodList) { for (OrderDetail detail : foodList) {
// stringBuilder.append(getLineFood(detail.getProductName(), detail.getNumber(), detail.getPrice())); stringBuilder.append(getLineFood(detail.getProductName(), detail.getNumber(), detail.getPrice()));
stringBuilder.append("<div align=\"left\">") stringBuilder.append("<br/>");
.append(detail.getProductName()) }
.append("</div>");
stringBuilder.append("<div align=\"right\">")
.append("X")
.append(detail.getNumber())
.append(" $")
.append(detail.getPrice())
.append("</div>");
}
stringBuilder.append("</strong>");
return stringBuilder.toString(); return stringBuilder.toString();
} }
...@@ -266,24 +238,16 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH ...@@ -266,24 +238,16 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < stringList.size(); i++) { for (int i = 0; i < stringList.size(); i++) {
if (i == 0) { if (i == 0) {
stringBuilder.append("<p>") stringBuilder.append(getSpaceByTextLength2(stringList.get(i), foodNameSpace));
.append(getSpaceByTextLength2(stringList.get(i), foodNameSpace)) String foodNumStr = "X" + foodNum;
.append(getSpaceByTextLength("X" + foodNum, foodNumSpace)) stringBuilder.append(getSpaceByTextLength(foodNumStr, foodNumSpace));
.append(getSpaceByTextLength("$" + foodAmount, foodAmountSpace)) stringBuilder.append(getSpaceByTextLength("$" + foodAmount, foodAmountSpace));
.append("</p>");
// stringBuilder.append(getSpaceByTextLength2(stringList.get(i), foodNameSpace));
// String foodNumStr = "X" + foodNum;
// stringBuilder.append(getSpaceByTextLength(foodNumStr, foodNumSpace));
// stringBuilder.append(getSpaceByTextLength("$" + foodAmount, foodAmountSpace));
} else { } else {
stringBuilder.append("<p>") stringBuilder.append(stringList.get(i));
.append(stringList.get(i)) }
.append("</p>"); if (i != stringList.size() - 1) {
} stringBuilder.append("<br/>");
// if (i != stringList.size() - 1) { }
// stringBuilder.append("<br/>");
stringBuilder.append("\n");
// }
} }
return stringBuilder.toString(); return stringBuilder.toString();
} }
......
...@@ -15,6 +15,15 @@ import android.widget.Chronometer; ...@@ -15,6 +15,15 @@ import android.widget.Chronometer;
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.RecyclerView;
import androidx.viewpager.widget.ViewPager;
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.bean.mealManger.OpenTableManage; import com.gingersoft.gsa.cloud.base.order.bean.mealManger.OpenTableManage;
...@@ -61,14 +70,6 @@ import java.util.Map; ...@@ -61,14 +70,6 @@ import java.util.Map;
import javax.inject.Inject; import javax.inject.Inject;
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.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import butterknife.BindView; import butterknife.BindView;
import butterknife.OnClick; import butterknife.OnClick;
...@@ -178,7 +179,6 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese ...@@ -178,7 +179,6 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
initOrderDetail(); initOrderDetail();
initTopInfo(); initTopInfo();
mPresenter.initTopFunctionData(); mPresenter.initTopFunctionData();
......
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