Commit 31f65a09 by Wyh

1、打印prj帶*號問題 2、處理打印結果回調BUG 3、優化PRJ查詢 4、優化PrjBean

parent d315d8ac
...@@ -36,7 +36,6 @@ ...@@ -36,7 +36,6 @@
<activity <activity
android:name=".mvp.ui.activity.SendOrderActivity" android:name=".mvp.ui.activity.SendOrderActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<meta-data <meta-data
android:name="com.gingersoft.gsa.cloud.common.config.globalconfig.GlobalConfiguration" android:name="com.gingersoft.gsa.cloud.common.config.globalconfig.GlobalConfiguration"
android:value="ConfigModule" /> android:value="ConfigModule" />
......
...@@ -16,5 +16,5 @@ public class PrjQueryBean { ...@@ -16,5 +16,5 @@ public class PrjQueryBean {
private boolean success; private boolean success;
private long sysTime; private long sysTime;
private String errMsg; private String errMsg;
private List<PrjBean.DataBean.Bean> data; private List<PrjBean> data;
} }
...@@ -19,6 +19,7 @@ import androidx.recyclerview.widget.RecyclerView; ...@@ -19,6 +19,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.common.constans.AppConstans; import com.gingersoft.gsa.cloud.common.constans.AppConstans;
import com.gingersoft.gsa.cloud.common.constans.PrintConstans; import com.gingersoft.gsa.cloud.common.constans.PrintConstans;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.print.bean.PrjBean; import com.gingersoft.gsa.cloud.print.bean.PrjBean;
import com.gingersoft.gsa.cloud.print.bean.UpdateBean; import com.gingersoft.gsa.cloud.print.bean.UpdateBean;
import com.gingersoft.gsa.cloud.common.utils.okhttpUtils.OkHttp3Utils; import com.gingersoft.gsa.cloud.common.utils.okhttpUtils.OkHttp3Utils;
...@@ -68,6 +69,8 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements ...@@ -68,6 +69,8 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements
TextView tvPrjRecordOrderId; TextView tvPrjRecordOrderId;
@BindView(R2.id.rv_prj_record_list) @BindView(R2.id.rv_prj_record_list)
RecyclerView rvPrjRecordList; RecyclerView rvPrjRecordList;
private PrjStateAdapter prjStateAdapter;
@BindView(R2.id.layout_edit_prj_order_number) @BindView(R2.id.layout_edit_prj_order_number)
ConstraintLayout editLayout; ConstraintLayout editLayout;
...@@ -100,8 +103,9 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements ...@@ -100,8 +103,9 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
String orderId = getIntent().getStringExtra(ORDERID_EXTRA_NAME); String orderId = getIntent().getStringExtra(ORDERID_EXTRA_NAME);
if (TextUtil.isNotEmptyOrNullOrUndefined(orderId)) { if (TextUtil.isNotEmptyOrNullOrUndefined(orderId)) {
layoutPrjOrderNumber.setVisibility(View.VISIBLE); // layoutPrjOrderNumber.setVisibility(View.VISIBLE);
tvPrjRecordOrderId.setText(orderId); // tvPrjRecordOrderId.setText(orderId);
edOrderNumber.setText(orderId);
getKitchenPrintRecord(); getKitchenPrintRecord();
} else { } else {
editLayout.setVisibility(View.VISIBLE); editLayout.setVisibility(View.VISIBLE);
...@@ -192,7 +196,6 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements ...@@ -192,7 +196,6 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements
} }
} }
private PrjStateAdapter prjStateAdapter;
@Override @Override
public void loadPrjInfo(PrjQueryBean prjQueryBean) { public void loadPrjInfo(PrjQueryBean prjQueryBean) {
...@@ -203,7 +206,7 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements ...@@ -203,7 +206,7 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements
prjStateAdapter.setOnItemChildClickListener((adapter, view, position) -> { prjStateAdapter.setOnItemChildClickListener((adapter, view, position) -> {
if (view.getId() == R.id.tv_prj_record_print_operation) { if (view.getId() == R.id.tv_prj_record_print_operation) {
//重印 //重印
List<PrjBean.DataBean.Bean> prjData = prjQueryBean.getData(); List<PrjBean> prjData = prjQueryBean.getData();
if (prjData.get(position).getPrinterType() == 3) { if (prjData.get(position).getPrinterType() == 3) {
//已打印的,提示是否重新打印 //已打印的,提示是否重新打印
new AppDialog().showWaringDialog(mContext, "食品已打印,確認重印?", (view1, dialog) -> { new AppDialog().showWaringDialog(mContext, "食品已打印,確認重印?", (view1, dialog) -> {
...@@ -220,18 +223,18 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements ...@@ -220,18 +223,18 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements
} }
} }
private void organizeData(int position, List<PrjBean.DataBean.Bean> prjData) { private void organizeData(int position, List<PrjBean> prjData) {
if (prjData.get(position).getParentId() == 0) { if (prjData.get(position).getParentId() == 0) {
//是主食品,判斷有沒有子食品,如果沒有子食品,直接打印主食品 //是主食品,判斷有沒有子食品,如果沒有子食品,直接打印主食品
if (position + 1 >= prjData.size()) { if (position + 1 >= prjData.size()) {
//沒有子食品 //沒有子食品
//直接打印 //直接打印
List<PrjBean.DataBean.Bean> printDatas = new ArrayList<>(); List<PrjBean> printDatas = new ArrayList<>();
printDatas.add(prjData.get(position)); printDatas.add(prjData.get(position));
printPrj(printDatas); printPrj(printDatas);
} else if (prjData.get(position).getProductId().equals(prjData.get(position + 1).getParentId() + "")) { } else if (prjData.get(position).getProductId().equals(prjData.get(position + 1).getParentId() + "")) {
//有子食品 //有子食品
List<PrjBean.DataBean.Bean> printDatas = new ArrayList<>(); List<PrjBean> printDatas = new ArrayList<>();
printDatas.add(prjData.get(position)); printDatas.add(prjData.get(position));
for (int i = position; i < prjData.size(); i++) { for (int i = position; i < prjData.size(); i++) {
if (prjData.get(position).getProductId().equals(prjData.get(i).getParentId() + "")) { if (prjData.get(position).getProductId().equals(prjData.get(i).getParentId() + "")) {
...@@ -244,26 +247,26 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements ...@@ -244,26 +247,26 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements
} else { } else {
//沒有子食品 //沒有子食品
//直接打印 //直接打印
List<PrjBean.DataBean.Bean> printDatas = new ArrayList<>(); List<PrjBean> printDatas = new ArrayList<>();
printDatas.add(prjData.get(position)); printDatas.add(prjData.get(position));
printPrj(printDatas); printPrj(printDatas);
} }
} else { } else {
//是主食品,直接打印子食品 //是主食品,直接打印子食品
List<PrjBean.DataBean.Bean> printDatas = new ArrayList<>(); List<PrjBean> printDatas = new ArrayList<>();
printDatas.add(prjData.get(position)); printDatas.add(prjData.get(position));
printPrj(printDatas); printPrj(printDatas);
} }
} }
private void printPrj(List<PrjBean.DataBean.Bean> printDatas) { private void printPrj(List<PrjBean> printDatas) {
String orderNo = ""; String orderNo = "";
StringBuilder ids = new StringBuilder(); StringBuilder ids = new StringBuilder();
for (int i = 0; i < printDatas.size(); i++) { for (int i = 0; i < printDatas.size(); i++) {
PrjBean.DataBean.Bean prjBean = printDatas.get(i); PrjBean prjBean = printDatas.get(i);
orderNo = prjBean.getOrderNo(); orderNo = prjBean.getOrderNo();
prjBean.setTotalPrj(printDatas.size()); prjBean.setTotalPrj(printDatas.size());
prjBean.setCurrentIndex(i); prjBean.setCurrentIndex(i + 1);
ids.append(prjBean.getId()); ids.append(prjBean.getId());
} }
//添加重印的報警推送 //添加重印的報警推送
...@@ -272,7 +275,7 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements ...@@ -272,7 +275,7 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_KITCHEN) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_KITCHEN)
.addParam(PrintConstans.PRINT_ORDER_NO, orderNo) .addParam(PrintConstans.PRINT_ORDER_NO, orderNo)
.addParam("prjBeans", printDatas) .addParam("prjBeans", GsonUtils.GsonString(printDatas))
.setActionName("printActivity") .setActionName("printActivity")
.build() .build()
.callAsyncCallbackOnMainThread((cc, result) -> { .callAsyncCallbackOnMainThread((cc, result) -> {
......
...@@ -20,7 +20,7 @@ import org.jetbrains.annotations.Nullable; ...@@ -20,7 +20,7 @@ import org.jetbrains.annotations.Nullable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
public class PrjStateAdapter extends BaseQuickAdapter<PrjBean.DataBean.Bean, BaseViewHolder> { public class PrjStateAdapter extends BaseQuickAdapter<PrjBean, BaseViewHolder> {
private Context context; private Context context;
private int indentation; private int indentation;
...@@ -29,7 +29,7 @@ public class PrjStateAdapter extends BaseQuickAdapter<PrjBean.DataBean.Bean, Bas ...@@ -29,7 +29,7 @@ public class PrjStateAdapter extends BaseQuickAdapter<PrjBean.DataBean.Bean, Bas
*/ */
private int successColor, failColor, flyFailColor; private int successColor, failColor, flyFailColor;
public PrjStateAdapter(Context context, @Nullable List<PrjBean.DataBean.Bean> data) { public PrjStateAdapter(Context context, @Nullable List<PrjBean> data) {
super(R.layout.item_prj_state, data); super(R.layout.item_prj_state, data);
this.context = context; this.context = context;
addChildClickViewIds(R.id.tv_prj_record_print_operation); addChildClickViewIds(R.id.tv_prj_record_print_operation);
...@@ -39,7 +39,7 @@ public class PrjStateAdapter extends BaseQuickAdapter<PrjBean.DataBean.Bean, Bas ...@@ -39,7 +39,7 @@ public class PrjStateAdapter extends BaseQuickAdapter<PrjBean.DataBean.Bean, Bas
} }
@Override @Override
protected void convert(@NotNull BaseViewHolder baseViewHolder, PrjBean.DataBean.Bean dataBean) { protected void convert(@NotNull BaseViewHolder baseViewHolder, PrjBean dataBean) {
//食品組名稱 //食品組名稱
baseViewHolder.setText(R.id.tv_prj_record_food_group_name, dataBean.getFoodGroupName()); baseViewHolder.setText(R.id.tv_prj_record_food_group_name, dataBean.getFoodGroupName());
//食品名稱 //食品名稱
...@@ -56,15 +56,19 @@ public class PrjStateAdapter extends BaseQuickAdapter<PrjBean.DataBean.Bean, Bas ...@@ -56,15 +56,19 @@ public class PrjStateAdapter extends BaseQuickAdapter<PrjBean.DataBean.Bean, Bas
tvFailReason.setText(""); tvFailReason.setText("");
} else if (dataBean.getPrinterType() == UpdateBean.FAILED_PRINT) { } else if (dataBean.getPrinterType() == UpdateBean.FAILED_PRINT) {
//打印失敗 //打印失敗
if (dataBean.getPresence() == PrjBean.DataBean.Bean.NOT_GENERATED_PRJ) { if (dataBean.getPresence() == PrjBean.NOT_GENERATED_PRJ) {
//未生成PRJ記錄 //未生成PRJ記錄
baseViewHolder.setBackgroundColor(R.id.tv_prj_record_food_name, failColor); baseViewHolder.setBackgroundColor(R.id.tv_prj_record_food_name, failColor);
tvFailReason.setText("未生成打印記錄"); tvFailReason.setText("未生成打印記錄");
} else if (dataBean.getPrinterDeviceId() == -1) { } else if (dataBean.getPrinterDeviceId() == -1) {
//打印機id為-1 //打印機id為-1
baseViewHolder.setBackgroundColor(R.id.tv_prj_record_food_name, failColor); baseViewHolder.setBackgroundColor(R.id.tv_prj_record_food_name, failColor);
tvFailReason.setText("未找到對應的打印機");
} else if (TextUtil.isEmptyOrNullOrUndefined(dataBean.getPrintPosition())) {
//沒有打印位置
baseViewHolder.setBackgroundColor(R.id.tv_prj_record_food_name, failColor);
tvFailReason.setText("未配置打印位置"); tvFailReason.setText("未配置打印位置");
} else if (TextUtil.isNotEmptyOrNullOrUndefined(dataBean.getFlyingSinglePosition()) && dataBean.getRequests() > PrjBean.DataBean.Bean.REQUEST_COUNT_FLY) { } else if (TextUtil.isNotEmptyOrNullOrUndefined(dataBean.getFlyingSinglePosition()) && dataBean.getRequests() > PrjBean.REQUEST_COUNT_FLY) {
//飛單位置不為空並且請求次數大於5此,說明飛單打印失敗 //飛單位置不為空並且請求次數大於5此,說明飛單打印失敗
baseViewHolder.setBackgroundColor(R.id.tv_prj_record_food_name, flyFailColor); baseViewHolder.setBackgroundColor(R.id.tv_prj_record_food_name, flyFailColor);
} }
...@@ -80,24 +84,29 @@ public class PrjStateAdapter extends BaseQuickAdapter<PrjBean.DataBean.Bean, Bas ...@@ -80,24 +84,29 @@ public class PrjStateAdapter extends BaseQuickAdapter<PrjBean.DataBean.Bean, Bas
//只第一次測量一下 //只第一次測量一下
indentation = new BigDecimal(foodName.getPaint().measureText("哈")).setScale(0, BigDecimal.ROUND_HALF_UP).intValue(); indentation = new BigDecimal(foodName.getPaint().measureText("哈")).setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
} }
LinearLayout foodNameLayout = baseViewHolder.getView(R.id.layout_print_state); TextView tvFoodName = baseViewHolder.getView(R.id.tv_prj_record_food_name);
if (dataBean.getParentId() != 0) { if (dataBean.getParentId() != 0) {
foodNameLayout.setPadding(indentation, foodNameLayout.getPaddingTop(), foodNameLayout.getPaddingRight(), foodNameLayout.getPaddingBottom()); tvFoodName.setPadding(indentation, tvFoodName.getPaddingTop(), tvFoodName.getPaddingRight(), tvFoodName.getPaddingBottom());
} else { } else {
foodNameLayout.setPadding(0, foodNameLayout.getPaddingTop(), foodNameLayout.getPaddingRight(), foodNameLayout.getPaddingBottom()); tvFoodName.setPadding(0, tvFoodName.getPaddingTop(), tvFoodName.getPaddingRight(), tvFoodName.getPaddingBottom());
} }
} }
private void setPrintPosition(@NotNull BaseViewHolder baseViewHolder, PrjBean.DataBean.Bean dataBean) { private void setPrintPosition(@NotNull BaseViewHolder baseViewHolder, PrjBean dataBean) {
TextView tvPrintPosition = baseViewHolder.getView(R.id.tv_prj_record_print_position);
if (TextUtil.isNotEmptyOrNullOrUndefined(dataBean.getPrintPosition())) { if (TextUtil.isNotEmptyOrNullOrUndefined(dataBean.getPrintPosition())) {
//打印位置 //打印位置
baseViewHolder.setText(R.id.tv_prj_record_print_position, dataBean.getPrintPosition()); if (dataBean.getStatus() == PrjBean.PRJ_STATUS_CUT_PAPER) {
tvPrintPosition.setText(dataBean.getPrintPosition() + "*");
} else {
tvPrintPosition.setText(dataBean.getPrintPosition());
}
if (TextUtil.isNotEmptyOrNullOrUndefined(dataBean.getFlyingSinglePosition())) { if (TextUtil.isNotEmptyOrNullOrUndefined(dataBean.getFlyingSinglePosition())) {
//打印位置+飛單位置 //打印位置+飛單位置
baseViewHolder.setText(R.id.tv_prj_record_print_position, dataBean.getPrintPosition() + "/" + dataBean.getFlyingSinglePosition()); tvPrintPosition.setText(tvPrintPosition.getText() + "/" + dataBean.getFlyingSinglePosition());
} }
} else { } else {
baseViewHolder.setText(R.id.tv_prj_record_print_position, ""); tvPrintPosition.setText("");
} }
} }
} }
...@@ -111,11 +111,6 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() { ...@@ -111,11 +111,6 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() {
getOrderDetails(orderId, binding) getOrderDetails(orderId, binding)
} }
initTopBar(qm_order_details_bar) initTopBar(qm_order_details_bar)
//訂單編號點擊事件
findViewById<TextView>(R.id.tv_order_no).setOnClickListener {
ClipboardUtils.copyText(tv_order_no.text)
showMessage("複製成功")
}
} }
private fun initTopBar(topbar: QMUITopBar) { private fun initTopBar(topbar: QMUITopBar) {
...@@ -133,6 +128,11 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() { ...@@ -133,6 +128,11 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() {
//初始化頁面佈局 //初始化頁面佈局
val orderDetails = it.data!![0] val orderDetails = it.data!![0]
orderNo = orderDetails.ORDER_NO.toString() orderNo = orderDetails.ORDER_NO.toString()
//訂單編號點擊事件
tv_order_details_order_no.setOnClickListener {
ClipboardUtils.copyText(orderNo)
showMessage("複製成功")
}
qm_order_details_bar.addRightImageButton(R.drawable.ic_print, R.id.iv_prj_history).setOnClickListener { qm_order_details_bar.addRightImageButton(R.drawable.ic_print, R.id.iv_prj_history).setOnClickListener {
PrjQueryActivity.startPrjQueryActivity(this@OrderDetailsActivity, orderNo) PrjQueryActivity.startPrjQueryActivity(this@OrderDetailsActivity, orderNo)
} }
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
<variable <variable
name="total" name="total"
type="Double" /> type="Double" />
<variable <variable
name="data" name="data"
type="com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails.DataBean" /> type="com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails.DataBean" />
...@@ -114,12 +115,15 @@ ...@@ -114,12 +115,15 @@
<!-- 訂單編號--> <!-- 訂單編號-->
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView <com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/tv_order_no" android:id="@+id/tv_order_details_order_no"
style="@style/otherOrder_details_twelve_text_Style" style="@style/otherOrder_details_twelve_text_Style"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="@dimen/other_order_info_dialog_content_marginLeft" android:layout_margin="@dimen/other_order_info_dialog_content_marginLeft"
android:layout_marginTop="@dimen/dp_10" android:layout_marginTop="@dimen/dp_10"
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:text="@{@string/order_no + data.oRDER_NO}" /> android:text="@{@string/order_no + data.oRDER_NO}" />
<TextView <TextView
...@@ -536,11 +540,11 @@ ...@@ -536,11 +540,11 @@
<LinearLayout <LinearLayout
android:id="@+id/layout_takeaway_discount" android:id="@+id/layout_takeaway_discount"
android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="@dimen/other_order_info_dialog_content_marginLeft" android:paddingLeft="@dimen/other_order_info_dialog_content_marginLeft"
android:paddingRight="@dimen/other_order_info_dialog_content_marginLeft"/> android:paddingRight="@dimen/other_order_info_dialog_content_marginLeft" />
<RelativeLayout <RelativeLayout
android:layout_width="match_parent" android:layout_width="match_parent"
...@@ -647,9 +651,9 @@ ...@@ -647,9 +651,9 @@
android:id="@+id/rv_third_expenses" android:id="@+id/rv_third_expenses"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginLeft="@dimen/dp_10" android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_10"/> android:layout_marginTop="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_10" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
......
...@@ -22,8 +22,7 @@ ...@@ -22,8 +22,7 @@
android:layout_marginRight="@dimen/dp_10" android:layout_marginRight="@dimen/dp_10"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingTop="@dimen/dp_20" android:paddingTop="@dimen/dp_20"
android:paddingBottom="@dimen/dp_20" android:paddingBottom="@dimen/dp_20">
android:visibility="gone">
<EditText <EditText
android:id="@+id/ed_input_order_number" android:id="@+id/ed_input_order_number"
......
...@@ -16,42 +16,41 @@ ...@@ -16,42 +16,41 @@
android:textColor="@color/theme_333_color" android:textColor="@color/theme_333_color"
android:textSize="@dimen/dp_16" android:textSize="@dimen/dp_16"
tools:text="食品組名稱" /> tools:text="食品組名稱" />
<include layout="@layout/include_vertical_color_ccc_dividing_line" /> <include layout="@layout/include_vertical_color_ccc_dividing_line" />
<LinearLayout <LinearLayout
android:id="@+id/layout_print_state"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="0.2" android:layout_weight="0.8"
android:orientation="vertical" android:paddingTop="@dimen/dp_2"
android:paddingLeft="@dimen/dp_5" android:paddingBottom="@dimen/dp_2"
android:paddingTop="@dimen/dp_5" android:gravity="center_vertical"
android:paddingRight="@dimen/dp_5"> android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView <TextView
android:id="@+id/tv_prj_record_food_name" android:id="@+id/tv_prj_record_food_name"
style="@style/PrjQueryItemStyle" style="@style/PrjQueryItemStyle"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="0.2"
android:paddingLeft="@dimen/dp_5"
android:paddingTop="@dimen/dp_5"
android:paddingRight="@dimen/dp_5"
tools:text="食品名稱一" /> tools:text="食品名稱一" />
<TextView <TextView
android:id="@+id/tv_prj_record_fail_reason"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_2"
android:textColor="@color/required_color"
android:textSize="@dimen/dp_10"
tools:text="失敗原因" />
</LinearLayout>
<TextView
android:id="@+id/tv_prj_record_print_position" android:id="@+id/tv_prj_record_print_position"
style="@style/PrjQueryItemStyle" style="@style/PrjQueryItemStyle"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="0.26" android:layout_weight="0.26"
tools:text="打印位置/飛單位置" /> tools:text="打印位置/飛單置" />
<TextView <TextView
android:id="@+id/tv_prj_record_print_count" android:id="@+id/tv_prj_record_print_count"
...@@ -83,5 +82,19 @@ ...@@ -83,5 +82,19 @@
android:textSize="@dimen/dp_16" /> android:textSize="@dimen/dp_16" />
</LinearLayout> </LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/tv_prj_record_fail_reason"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_2"
android:paddingLeft="@dimen/dp_5"
android:paddingRight="@dimen/dp_5"
android:textColor="@color/required_color"
android:textSize="@dimen/dp_10"
tools:text="失敗原因" />
</LinearLayout>
</LinearLayout> </LinearLayout>
\ No newline at end of file
...@@ -181,36 +181,6 @@ public class PrintInfoBean { ...@@ -181,36 +181,6 @@ public class PrintInfoBean {
} }
/**
* 將prj數據轉為打印類
*
* @param datas prj數據
* @param printLocation 廚房位置
* @param deviceBean 打印機信息
* @return 打印類集合
*/
public static List<List<PrintInfoBean>> transPrjBean(List<PrjBean.DataBean.Bean> datas, String printLocation, PrinterDeviceBean deviceBean) {
List<List<PrintInfoBean>> prjPrintBeans = new ArrayList<>();
//通過打印位置生成多張用於打印的bitmap
List<PrjBean.DataBean.Bean> noCut = new ArrayList<>();
for (PrjBean.DataBean.Bean prjbean : datas) {
//遍歷當前打印位置所有的食品
if (prjbean.getStatus() == 2) {
//切紙,單獨生成一條prj數據
List<PrjBean.DataBean.Bean> beans = new ArrayList<>();
beans.add(prjbean);
prjPrintBeans.add(getPrjPrintInfoBean(printLocation, beans, deviceBean));
} else {
//不切紙,保存到單獨的集合里,之後生成一組數據
noCut.add(prjbean);
}
}
if (noCut.size() > 0) {
prjPrintBeans.add(getPrjPrintInfoBean(printLocation, noCut, deviceBean));
}
return prjPrintBeans;
}
private static boolean foodIsBold = false;//食品是否加粗 private static boolean foodIsBold = false;//食品是否加粗
private static boolean foodItemIsBold = false;//細項是否加粗 private static boolean foodItemIsBold = false;//細項是否加粗
private static boolean foodIsItalic = false;//食品是否斜體 private static boolean foodIsItalic = false;//食品是否斜體
...@@ -231,13 +201,13 @@ public class PrintInfoBean { ...@@ -231,13 +201,13 @@ public class PrintInfoBean {
* *
* @return * @return
*/ */
private static List<PrintInfoBean> getPrjPrintInfoBean(String key, List<PrjBean.DataBean.Bean> prjBeans, PrinterDeviceBean deviceBean) { private static List<PrintInfoBean> getPrjPrintInfoBean(String key, List<PrjBean> prjBeans, PrinterDeviceBean deviceBean) {
List<PrintInfoBean> printInfoBeans = new ArrayList<>(); List<PrintInfoBean> printInfoBeans = new ArrayList<>();
initPrintConfig(deviceBean); initPrintConfig(deviceBean);
if (prjBeans == null || prjBeans.size() <= 0) { if (prjBeans == null || prjBeans.size() <= 0) {
return null; return null;
} }
PrjBean.DataBean.Bean prjBean = prjBeans.get(0); PrjBean prjBean = prjBeans.get(0);
if (prjBean == null) { if (prjBean == null) {
return null; return null;
} }
...@@ -275,7 +245,7 @@ public class PrintInfoBean { ...@@ -275,7 +245,7 @@ public class PrintInfoBean {
printInfoBeans.add(new PrintInfoBean(new String[]{"人數:" + prjBean.getPerson(), UserContext.newInstance().getMemberName()}, new Double[]{1d}, 0)); printInfoBeans.add(new PrintInfoBean(new String[]{"人數:" + prjBean.getPerson(), UserContext.newInstance().getMemberName()}, new Double[]{1d}, 0));
} }
printInfoBeans.add(new PrintInfoBean(new String[]{getLineBorder("", 1, paperWidth)}, 0)); printInfoBeans.add(new PrintInfoBean(new String[]{getLineBorder("", 1, paperWidth)}, 0));
for (PrjBean.DataBean.Bean bean : prjBeans) { for (PrjBean bean : prjBeans) {
if (bean.getParentId() == 0) { if (bean.getParentId() == 0) {
//沒有父級id,則是第一級食品 //沒有父級id,則是第一級食品
bean.setItemType(1); bean.setItemType(1);
...@@ -284,7 +254,7 @@ public class PrintInfoBean { ...@@ -284,7 +254,7 @@ public class PrintInfoBean {
if (bean.getParentId() != 0) { if (bean.getParentId() != 0) {
bean.setItemType(2);//先設置為細項,再通過下面的遍歷確定是否是第三級細項 bean.setItemType(2);//先設置為細項,再通過下面的遍歷確定是否是第三級細項
//循環遍歷查找父級食品 //循環遍歷查找父級食品
for (PrjBean.DataBean.Bean itembean : prjBeans) { for (PrjBean itembean : prjBeans) {
if (bean.getParentId() == itembean.getOrderDetailsId()) { if (bean.getParentId() == itembean.getOrderDetailsId()) {
//如果父級是細項,則當前食品就是二級細項 //如果父級是細項,則當前食品就是二級細項
bean.setItemType(bean.getItemType() + 1); bean.setItemType(bean.getItemType() + 1);
......
...@@ -66,21 +66,21 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -66,21 +66,21 @@ public class PrintPrjKitchen extends PrinterRoot {
private int modifierIsItalic; private int modifierIsItalic;
private String[] languageTypes; private String[] languageTypes;
private static Map<String, List<PrjBean.DataBean.Bean>> prjMap; private static Map<String, List<PrjBean>> prjMap;
@Override @Override
public Map<String, List<Bitmap>> getPrintBitmap(Context mContext, PrinterDeviceBean deviceBean) { public Map<String, List<Bitmap>> getPrintBitmap(Context mContext, PrinterDeviceBean deviceBean) {
Map<String, List<Bitmap>> bitmapMaps = new HashMap<>(); Map<String, List<Bitmap>> bitmapMaps = new HashMap<>();
//通過打印位置生成多張用於打印的bitmap //通過打印位置生成多張用於打印的bitmap
for (Map.Entry<String, List<PrjBean.DataBean.Bean>> entry : getPrjMap().entrySet()) { for (Map.Entry<String, List<PrjBean>> entry : getPrjMap().entrySet()) {
String key = entry.getKey(); String key = entry.getKey();
List<Bitmap> bitmaps = new ArrayList<>(); List<Bitmap> bitmaps = new ArrayList<>();
List<PrjBean.DataBean.Bean> noCut = new ArrayList<>(); List<PrjBean> noCut = new ArrayList<>();
//不帶*號,所有同樣廚房位置的食品都在一張紙上 //不帶*號,所有同樣廚房位置的食品都在一張紙上
for (PrjBean.DataBean.Bean bean : entry.getValue()) { for (PrjBean bean : entry.getValue()) {
if (bean.getStatus() == 2) { if (bean.getStatus() == 2) {
List<PrjBean.DataBean.Bean> beans = new ArrayList<>(); List<PrjBean> beans = new ArrayList<>();
beans.add(bean); beans.add(bean);
Bitmap bitmap = getKitChenPrintBitmap(mContext, key, beans, deviceBean); Bitmap bitmap = getKitChenPrintBitmap(mContext, key, beans, deviceBean);
bitmaps.add(bitmap); bitmaps.add(bitmap);
...@@ -120,16 +120,16 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -120,16 +120,16 @@ public class PrintPrjKitchen extends PrinterRoot {
this.languageTypes = deviceBean.getLanguageType().split(","); this.languageTypes = deviceBean.getLanguageType().split(",");
List<String> pritContents = new ArrayList<>(); List<String> pritContents = new ArrayList<>();
for (Map.Entry<String, List<PrjBean.DataBean.Bean>> entry : getPrjMap().entrySet()) { for (Map.Entry<String, List<PrjBean>> entry : getPrjMap().entrySet()) {
//不帶*號,所有同樣廚房位置的食品都在一張紙上 //不帶*號,所有同樣廚房位置的食品都在一張紙上
// for (PrjBean.DataBean.Bean bean : entry.getValue()) { // for (PrjBean bean : entry.getValue()) {
pritContents.add(getBBPosPrintData(entry.getKey(), entry.getValue(), entry.getValue().get(0))); pritContents.add(getBBPosPrintData(entry.getKey(), entry.getValue(), entry.getValue().get(0)));
// } // }
} }
return (String[]) pritContents.toArray(); return (String[]) pritContents.toArray();
} }
private String getBBPosPrintData(String key, List<PrjBean.DataBean.Bean> prjBeans, PrjBean.DataBean.Bean prjBean) { private String getBBPosPrintData(String key, List<PrjBean> prjBeans, PrjBean prjBean) {
String stringBuilder = "<html><body>" + String stringBuilder = "<html><body>" +
getHtmlHeadInfo(key, prjBean) + getHtmlHeadInfo(key, prjBean) +
getHtmlKitchenFood(prjBeans) + getHtmlKitchenFood(prjBeans) +
...@@ -138,7 +138,7 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -138,7 +138,7 @@ public class PrintPrjKitchen extends PrinterRoot {
return stringBuilder; return stringBuilder;
} }
private String getHtmlHeadInfo(String key, PrjBean.DataBean.Bean prjBean) { private String getHtmlHeadInfo(String key, PrjBean prjBean) {
List<HtmlLable> htmlLables = new ArrayList<>(); List<HtmlLable> htmlLables = new ArrayList<>();
...@@ -200,13 +200,13 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -200,13 +200,13 @@ public class PrintPrjKitchen extends PrinterRoot {
return getHtmlLables(htmlLables.toArray(new HtmlLable[htmlLables.size()])); return getHtmlLables(htmlLables.toArray(new HtmlLable[htmlLables.size()]));
} }
private String getHtmlKitchenFood(List<PrjBean.DataBean.Bean> prjBeans) { private String getHtmlKitchenFood(List<PrjBean> prjBeans) {
setFoodItemType(prjBeans); setFoodItemType(prjBeans);
List<HtmlLable> htmlLables = new ArrayList<>(); List<HtmlLable> htmlLables = new ArrayList<>();
for (PrjBean.DataBean.Bean prjBean : prjBeans) { for (PrjBean prjBean : prjBeans) {
} }
...@@ -215,7 +215,7 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -215,7 +215,7 @@ public class PrintPrjKitchen extends PrinterRoot {
return getHtmlLables(htmlLables.toArray(new HtmlLable[htmlLables.size()])); return getHtmlLables(htmlLables.toArray(new HtmlLable[htmlLables.size()]));
} }
private String getHtmlEndInfo(PrjBean.DataBean.Bean prjBean) { private String getHtmlEndInfo(PrjBean prjBean) {
List<HtmlLable> htmlLables = new ArrayList<>(); List<HtmlLable> htmlLables = new ArrayList<>();
//台號 //台號
htmlLables.add(new HtmlLable(HtmlContract.LABLE_P, getTableName(prjBean), new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_FONT_SIZE, font_size_kitchen_print_table_number2))); htmlLables.add(new HtmlLable(HtmlContract.LABLE_P, getTableName(prjBean), new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_FONT_SIZE, font_size_kitchen_print_table_number2)));
...@@ -233,8 +233,8 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -233,8 +233,8 @@ public class PrintPrjKitchen extends PrinterRoot {
return 1; return 1;
} }
public Bitmap getKitChenPrintBitmap(Context context, String key, PrjBean.DataBean.Bean data, PrinterDeviceBean printerDeviceBean) { public Bitmap getKitChenPrintBitmap(Context context, String key, PrjBean data, PrinterDeviceBean printerDeviceBean) {
List<PrjBean.DataBean.Bean> beans = new ArrayList<>(); List<PrjBean> beans = new ArrayList<>();
beans.add(data); beans.add(data);
return getKitChenPrintBitmap(context, key, beans, printerDeviceBean); return getKitChenPrintBitmap(context, key, beans, printerDeviceBean);
} }
...@@ -245,11 +245,11 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -245,11 +245,11 @@ public class PrintPrjKitchen extends PrinterRoot {
* @param context * @param context
* @return * @return
*/ */
public Bitmap getKitChenPrintBitmap(Context context, String key, List<PrjBean.DataBean.Bean> data, PrinterDeviceBean printerDeviceBean) { public Bitmap getKitChenPrintBitmap(Context context, String key, List<PrjBean> data, PrinterDeviceBean printerDeviceBean) {
if (data == null || data.size() <= 0) { if (data == null || data.size() <= 0) {
return null; return null;
} }
PrjBean.DataBean.Bean prjBean = data.get(0); PrjBean prjBean = data.get(0);
if (prjBean == null) { if (prjBean == null) {
return null; return null;
} }
...@@ -433,8 +433,8 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -433,8 +433,8 @@ public class PrintPrjKitchen extends PrinterRoot {
} }
private void setFoodItemType(List<PrjBean.DataBean.Bean> data) { private void setFoodItemType(List<PrjBean> data) {
for (PrjBean.DataBean.Bean bean : data) { for (PrjBean bean : data) {
if (bean.getParentId() == 0) { if (bean.getParentId() == 0) {
//沒有父級id,則是第一級食品 //沒有父級id,則是第一級食品
bean.setItemType(1); bean.setItemType(1);
...@@ -443,7 +443,7 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -443,7 +443,7 @@ public class PrintPrjKitchen extends PrinterRoot {
if (bean.getParentId() != 0) { if (bean.getParentId() != 0) {
bean.setItemType(2);//先設置為細項,再通過下面的遍歷確定是否是第三級細項 bean.setItemType(2);//先設置為細項,再通過下面的遍歷確定是否是第三級細項
//循環遍歷查找父級食品 //循環遍歷查找父級食品
for (PrjBean.DataBean.Bean itembean : data) { for (PrjBean itembean : data) {
if (bean.getParentId() == itembean.getOrderDetailsId()) { if (bean.getParentId() == itembean.getOrderDetailsId()) {
//如果父級是細項,則當前食品就是二級細項 //如果父級是細項,則當前食品就是二級細項
bean.setItemType(bean.getItemType() + 1); bean.setItemType(bean.getItemType() + 1);
...@@ -454,7 +454,7 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -454,7 +454,7 @@ public class PrintPrjKitchen extends PrinterRoot {
} }
} }
private String getTableName(PrjBean.DataBean.Bean prjBean) { private String getTableName(PrjBean prjBean) {
if (TextUtil.isEmptyOrNullOrUndefined(prjBean.getTableName())) { if (TextUtil.isEmptyOrNullOrUndefined(prjBean.getTableName())) {
switch (prjBean.getOrderType()) { switch (prjBean.getOrderType()) {
case 1: case 1:
...@@ -470,7 +470,7 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -470,7 +470,7 @@ public class PrintPrjKitchen extends PrinterRoot {
} }
} }
// private String getProductNameByLanguageType(PrjBean.DataBean.Bean prjBean) { // private String getProductNameByLanguageType(PrjBean prjBean) {
// for (String type : languageTypes) { // for (String type : languageTypes) {
// String languageType = type; // String languageType = type;
// if (languageType.contains(".")) { // if (languageType.contains(".")) {
...@@ -495,7 +495,7 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -495,7 +495,7 @@ public class PrintPrjKitchen extends PrinterRoot {
// } // }
// } // }
public static Map<String, List<PrjBean.DataBean.Bean>> getPrjMap() { public static Map<String, List<PrjBean>> getPrjMap() {
if (prjMap == null) { if (prjMap == null) {
prjMap = new HashMap<>(); prjMap = new HashMap<>();
} }
......
...@@ -37,7 +37,6 @@ import com.gingersoft.gsa.cloud.common.logan.LoganManager; ...@@ -37,7 +37,6 @@ import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.printer.AidlUtil; import com.gingersoft.gsa.cloud.common.printer.AidlUtil;
import com.gingersoft.gsa.cloud.common.printer.plugins.PrinterPlugins; import com.gingersoft.gsa.cloud.common.printer.plugins.PrinterPlugins;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil; import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.common.utils.threadPool.ThreadPoolManager;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils; import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.common.utils.view.ImageUtils; import com.gingersoft.gsa.cloud.common.utils.view.ImageUtils;
import com.gingersoft.gsa.cloud.common.utils.view.LayoutToBitmapUtils; import com.gingersoft.gsa.cloud.common.utils.view.LayoutToBitmapUtils;
...@@ -53,6 +52,7 @@ import com.gingersoft.gsa.cloud.print.bean.PrintTakeawayFormContent; ...@@ -53,6 +52,7 @@ import com.gingersoft.gsa.cloud.print.bean.PrintTakeawayFormContent;
import com.gingersoft.gsa.cloud.print.bean.base.PrintBillItem; import com.gingersoft.gsa.cloud.print.bean.base.PrintBillItem;
import com.gingersoft.gsa.cloud.print.bean.base.PrintFoodItem; import com.gingersoft.gsa.cloud.print.bean.base.PrintFoodItem;
import com.gingersoft.gsa.cloud.print.bean.base.PrintPayTypeItem; import com.gingersoft.gsa.cloud.print.bean.base.PrintPayTypeItem;
import com.gingersoft.gsa.cloud.print.impl.OnPrjPrintResultListener;
import com.google.zxing.WriterException; import com.google.zxing.WriterException;
import com.hyweb.n5.lib.constant.PrinterConstant; import com.hyweb.n5.lib.constant.PrinterConstant;
import com.hyweb.n5.lib.util.PrinterUtil; import com.hyweb.n5.lib.util.PrinterUtil;
...@@ -326,6 +326,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket ...@@ -326,6 +326,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
} }
private PrintExecutor executor; private PrintExecutor executor;
private EpsonPrint mPrinter;
/** /**
* ip設備打印 * ip設備打印
...@@ -339,8 +340,13 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket ...@@ -339,8 +340,13 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
RxJavaUtils.doInIOThread(new RxIOTask<Object>(0) { RxJavaUtils.doInIOThread(new RxIOTask<Object>(0) {
@Override @Override
public Void doInIOThread(Object o) { public Void doInIOThread(Object o) {
EpsonPrint mPrinter = new EpsonPrint(); mPrinter = new EpsonPrint();
mPrinter.initializeObject(GsaCloudApplication.getAppContext(), PrinterRoot.this, PrinterRoot.this); mPrinter.initializeObject(GsaCloudApplication.getAppContext(), PrinterRoot.this, new OnPrjPrintResultListener() {
@Override
public void onResult(int errorCode, String prjIds) {
PrinterRoot.this.onResult(errorCode);
}
});
for (int j = 0; j < bitmaps.size(); j++) { for (int j = 0; j < bitmaps.size(); j++) {
mPrinter.putPrintData(printerDeviceBean.getIp(), bitmaps.get(j), ""); mPrinter.putPrintData(printerDeviceBean.getIp(), bitmaps.get(j), "");
} }
...@@ -354,6 +360,12 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket ...@@ -354,6 +360,12 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
ipPrint(printerDeviceBean, bitmaps, this, this); ipPrint(printerDeviceBean, bitmaps, this, this);
} }
public void disconnectEpson() {
if (mPrinter != null) {
mPrinter.disconnectPrinter();
}
}
private void ipPrint(PrinterDeviceBean printerDeviceBean, List<Bitmap> bitmaps, PrintSocketHolder.OnStateChangedListener stateChangedListener, PrintExecutor.OnPrintResultListener resultListener) { private void ipPrint(PrinterDeviceBean printerDeviceBean, List<Bitmap> bitmaps, PrintSocketHolder.OnStateChangedListener stateChangedListener, PrintExecutor.OnPrintResultListener resultListener) {
if (executor == null) { if (executor == null) {
executor = new PrintExecutor() executor = new PrintExecutor()
......
...@@ -6,6 +6,7 @@ import com.gingersoft.gsa.cloud.print.PrintDataMaker; ...@@ -6,6 +6,7 @@ import com.gingersoft.gsa.cloud.print.PrintDataMaker;
import com.gingersoft.gsa.cloud.print.PrintExecutor; import com.gingersoft.gsa.cloud.print.PrintExecutor;
import com.gingersoft.gsa.cloud.print.PrinterWriter; import com.gingersoft.gsa.cloud.print.PrinterWriter;
import com.gingersoft.gsa.cloud.print.PrinterWriterExecutor; import com.gingersoft.gsa.cloud.print.PrinterWriterExecutor;
import com.gingersoft.gsa.cloud.print.impl.OnPrjPrintResultListener;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -21,9 +22,9 @@ public class PrjPrintMaker implements PrintDataMaker { ...@@ -21,9 +22,9 @@ public class PrjPrintMaker implements PrintDataMaker {
private String ip; private String ip;
private int port; private int port;
private PrintExecutor.OnPrjPrintResultListener onPrjPrintResultListener; private OnPrjPrintResultListener onPrjPrintResultListener;
public PrintExecutor.OnPrjPrintResultListener getOnPrjPrintResultListener() { public OnPrjPrintResultListener getOnPrjPrintResultListener() {
return onPrjPrintResultListener; return onPrjPrintResultListener;
} }
......
...@@ -5,6 +5,7 @@ import android.content.Intent; ...@@ -5,6 +5,7 @@ import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.WindowManager; import android.view.WindowManager;
...@@ -35,7 +36,6 @@ import com.jess.arms.utils.ArmsUtils; ...@@ -35,7 +36,6 @@ import com.jess.arms.utils.ArmsUtils;
import com.joe.print.di.component.DaggerPrintComponent; import com.joe.print.di.component.DaggerPrintComponent;
import com.joe.print.mvp.contract.PrintContract; import com.joe.print.mvp.contract.PrintContract;
import com.joe.print.mvp.presenter.PrintPresenter; import com.joe.print.mvp.presenter.PrintPresenter;
import com.joe.print.mvp.print.EpsonPrint;
import com.joe.print.mvp.print.PrintInstruction; import com.joe.print.mvp.print.PrintInstruction;
import com.joe.print.mvp.print.PrintListener; import com.joe.print.mvp.print.PrintListener;
import com.joe.print.mvp.print.PrintPrjKitchen; import com.joe.print.mvp.print.PrintPrjKitchen;
...@@ -45,6 +45,8 @@ import com.joe.print.mvp.print.utils.MyPrintUtils; ...@@ -45,6 +45,8 @@ import com.joe.print.mvp.print.utils.MyPrintUtils;
import com.joe.print.mvp.ui.view.PrinterLoadingDialog; import com.joe.print.mvp.ui.view.PrinterLoadingDialog;
import com.joe.print.mvp.ui.view.SelectPrintDevicePopup; import com.joe.print.mvp.ui.view.SelectPrintDevicePopup;
import com.lxj.xpopup.XPopup; import com.lxj.xpopup.XPopup;
import com.xuexiang.rxutil2.rxjava.RxJavaUtils;
import com.xuexiang.rxutil2.rxjava.task.RxUITask;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -256,10 +258,13 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -256,10 +258,13 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
* @return 如果prj有指定打印機,並且找到了,就返回 * @return 如果prj有指定打印機,並且找到了,就返回
*/ */
private PrinterDeviceBean setKitChenPrj(PrinterDeviceBean defaultPrint) { private PrinterDeviceBean setKitChenPrj(PrinterDeviceBean defaultPrint) {
List<PrjBean.DataBean.Bean> printDatas = CCUtil.getNavigateParam(this, "prjBeans", null); String prjJson = CCUtil.getNavigateParam(this, "prjBeans", null);
Map<String, List<PrjBean.DataBean.Bean>> prjMap = PrintPrjKitchen.getPrjMap(); List<PrjBean> printDatas = GsonUtils.jsonToList(prjJson, PrjBean.class);
// List<PrjBean> printDatas = CCUtil.getNavigateParam(this, "prjBeans", null);
Map<String, List<PrjBean>> prjMap = PrintPrjKitchen.getPrjMap();
String printLocation = null; String printLocation = null;
for (PrjBean.DataBean.Bean prjBean : printDatas) { prjMap.put("", printDatas);
for (PrjBean prjBean : printDatas) {
if (printLocation == null) { if (printLocation == null) {
if (TextUtil.isNotEmptyOrNullOrUndefined(prjBean.getPrintPosition())) { if (TextUtil.isNotEmptyOrNullOrUndefined(prjBean.getPrintPosition())) {
printLocation = prjBean.getPrintPosition(); printLocation = prjBean.getPrintPosition();
...@@ -275,7 +280,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -275,7 +280,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
prjBean.setPrintPosition(printLocation); prjBean.setPrintPosition(printLocation);
prjBean.setCurrentIndex(1); prjBean.setCurrentIndex(1);
} }
prjMap.put("", printDatas);
return null; return null;
} }
...@@ -312,6 +316,8 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -312,6 +316,8 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
PrintExecutor executor = new PrintExecutor(); PrintExecutor executor = new PrintExecutor();
executor.doPrinterRequestAsync(new OpenCashBoxMaker(defaultPrint.getIp(), defaultPrint.getPort())); executor.doPrinterRequestAsync(new OpenCashBoxMaker(defaultPrint.getIp(), defaultPrint.getPort()));
CC.sendCCResult(callId, CCResult.success()); CC.sendCCResult(callId, CCResult.success());
PrinterPlugins.getOnPrinterFlowHandler().onPrintSuccess();
killMyself();
} else { } else {
Map<String, List<Bitmap>> listMap; Map<String, List<Bitmap>> listMap;
List<Bitmap> zoomBitmaps = null; List<Bitmap> zoomBitmaps = null;
...@@ -367,8 +373,13 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -367,8 +373,13 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
} }
private void addPrintProgress(String printState) { private void addPrintProgress(String printState) {
RxJavaUtils.doInUIThread(new RxUITask<Object>(0) {
@Override
public void doInUIThread(Object o) {
printerLoadingDialog.setTitle(printState); printerLoadingDialog.setTitle(printState);
} }
});
}
@Override @Override
public boolean dispatchTouchEvent(MotionEvent ev) { public boolean dispatchTouchEvent(MotionEvent ev) {
...@@ -379,6 +390,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -379,6 +390,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override @Override
public void printStateChanged(int state) { public void printStateChanged(int state) {
Log.e("eee", "printStateChanged:" + state);
String tip = "加載中..."; String tip = "加載中...";
switch (state) { switch (state) {
case PrintSocketHolder.ERROR_0: case PrintSocketHolder.ERROR_0:
...@@ -544,8 +556,10 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -544,8 +556,10 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
//關閉ip打印連接 //關閉ip打印連接
PrintSocketHolder.getInstance().closeSocket(); PrintSocketHolder.getInstance().closeSocket();
//關閉針式打印連接 //關閉針式打印連接
EpsonPrint.getInstance().disconnectPrinter(); if (printerInIt != null) {
EpsonPrint.getInstance().finalizeObject(); printerInIt.disconnectEpson();
}
printerLoadingDialog.dismiss(); printerLoadingDialog.dismiss();
} }
......
...@@ -17,7 +17,7 @@ import java.util.List; ...@@ -17,7 +17,7 @@ import java.util.List;
/** /**
* Created by Wyh on 2020/2/20. * Created by Wyh on 2020/2/20.
*/ */
public class KitChenPrjPrintFoodAdapter extends BaseQuickAdapter<PrjBean.DataBean.Bean, BaseViewHolder> { public class KitChenPrjPrintFoodAdapter extends BaseQuickAdapter<PrjBean, BaseViewHolder> {
private int indentation = 0; private int indentation = 0;
...@@ -29,7 +29,7 @@ public class KitChenPrjPrintFoodAdapter extends BaseQuickAdapter<PrjBean.DataBea ...@@ -29,7 +29,7 @@ public class KitChenPrjPrintFoodAdapter extends BaseQuickAdapter<PrjBean.DataBea
private int modifierIsItalic; private int modifierIsItalic;
private String[] languageTypes; private String[] languageTypes;
public KitChenPrjPrintFoodAdapter(@Nullable List<PrjBean.DataBean.Bean> data, PrinterDeviceBean printerDeviceBean) { public KitChenPrjPrintFoodAdapter(@Nullable List<PrjBean> data, PrinterDeviceBean printerDeviceBean) {
super(R.layout.print_kitchen_item_parent, data); super(R.layout.print_kitchen_item_parent, data);
try { try {
this.foodFontSize = Integer.parseInt(printerDeviceBean.getFoodFont()) * 2; this.foodFontSize = Integer.parseInt(printerDeviceBean.getFoodFont()) * 2;
...@@ -45,7 +45,7 @@ public class KitChenPrjPrintFoodAdapter extends BaseQuickAdapter<PrjBean.DataBea ...@@ -45,7 +45,7 @@ public class KitChenPrjPrintFoodAdapter extends BaseQuickAdapter<PrjBean.DataBea
} }
@Override @Override
protected void convert(BaseViewHolder helper, PrjBean.DataBean.Bean item) { protected void convert(BaseViewHolder helper, PrjBean item) {
LinearLayout layout = helper.getView(R.id.layout_print_kitchen_parent); LinearLayout layout = helper.getView(R.id.layout_print_kitchen_parent);
for (String type : languageTypes) { for (String type : languageTypes) {
String languageType = type; String languageType = type;
......
...@@ -35,9 +35,9 @@ public class KitChenPrjFoodView extends LinearLayout { ...@@ -35,9 +35,9 @@ public class KitChenPrjFoodView extends LinearLayout {
private int foodIsItalic; private int foodIsItalic;
private int modifierIsItalic; private int modifierIsItalic;
private String[] languageTypes; private String[] languageTypes;
private List<PrjBean.DataBean.Bean> data; private List<PrjBean> data;
public KitChenPrjFoodView(Context context, @Nullable List<PrjBean.DataBean.Bean> data, PrinterDeviceBean printerDeviceBean) { public KitChenPrjFoodView(Context context, @Nullable List<PrjBean> data, PrinterDeviceBean printerDeviceBean) {
super(context); super(context);
try { try {
this.foodFontSize = Integer.parseInt(printerDeviceBean.getFoodFont()) * 2; this.foodFontSize = Integer.parseInt(printerDeviceBean.getFoodFont()) * 2;
...@@ -56,7 +56,7 @@ public class KitChenPrjFoodView extends LinearLayout { ...@@ -56,7 +56,7 @@ public class KitChenPrjFoodView extends LinearLayout {
private void init() { private void init() {
setOrientation(LinearLayout.VERTICAL); setOrientation(LinearLayout.VERTICAL);
for (PrjBean.DataBean.Bean item : data) { for (PrjBean item : data) {
// View view = View.inflate(getContext(), R.layout.print_kitchen_item_parent, null); // View view = View.inflate(getContext(), R.layout.print_kitchen_item_parent, null);
// LinearLayout layout = view.findViewById(R.id.layout_print_kitchen_parent); // LinearLayout layout = view.findViewById(R.id.layout_print_kitchen_parent);
for (String type : languageTypes) { for (String type : languageTypes) {
...@@ -95,7 +95,7 @@ public class KitChenPrjFoodView extends LinearLayout { ...@@ -95,7 +95,7 @@ public class KitChenPrjFoodView extends LinearLayout {
} }
boolean isBold, isItalic; boolean isBold, isItalic;
int paddingLeft; int paddingLeft;
if (itemType == PrjBean.DataBean.Bean.FOOD_SECONDARY) { if (itemType == PrjBean.FOOD_SECONDARY) {
//細項,縮進 //細項,縮進
paddingLeft = indentation; paddingLeft = indentation;
tvFoodName.setTextSize(modifierFontSize); tvFoodName.setTextSize(modifierFontSize);
...@@ -103,7 +103,7 @@ public class KitChenPrjFoodView extends LinearLayout { ...@@ -103,7 +103,7 @@ public class KitChenPrjFoodView extends LinearLayout {
isBold = modifierIsBold == 1; isBold = modifierIsBold == 1;
isItalic = modifierIsItalic == 1; isItalic = modifierIsItalic == 1;
} else if (itemType == PrjBean.DataBean.Bean.FOOD_THREE_LEVEL) { } else if (itemType == PrjBean.FOOD_THREE_LEVEL) {
//細項,縮進 //細項,縮進
paddingLeft = indentation * 2; paddingLeft = indentation * 2;
tvFoodName.setTextSize(modifierFontSize); tvFoodName.setTextSize(modifierFontSize);
......
...@@ -172,8 +172,6 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo ...@@ -172,8 +172,6 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo
} }
//添加主單位到副單位列表,用戶可手動切換 //添加主單位到副單位列表,用戶可手動切換
DeputyUnitBean deputyUnitBean = new DeputyUnitBean(purchaseOrderDetailsInfoVO.getBasicUnitName(), purchaseOrderDetailsInfoVO.getFoodQuantity()); DeputyUnitBean deputyUnitBean = new DeputyUnitBean(purchaseOrderDetailsInfoVO.getBasicUnitName(), purchaseOrderDetailsInfoVO.getFoodQuantity());
deputyUnitBean.setDeputyValue(purchaseOrderDetailsInfoVO.getFoodQuantity());
deputyUnitBean.setUnitPrice(purchaseOrderDetailsInfoVO.getFoodPrice());
deputyUnitBeans.add(0, deputyUnitBean); deputyUnitBeans.add(0, deputyUnitBean);
//设置显示的单位,如果大於1,則顯示第一個,因為第一個是副單位,默認顯示副單位 //设置显示的单位,如果大於1,則顯示第一個,因為第一個是副單位,默認顯示副單位
if (deputyUnitBeans.size() > 1) { if (deputyUnitBeans.size() > 1) {
...@@ -182,6 +180,9 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo ...@@ -182,6 +180,9 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo
//只有一個單位,顯示主單位 //只有一個單位,顯示主單位
purchaseOrderDetailsInfoVO.setShowUnit(deputyUnitBeans.get(0)); purchaseOrderDetailsInfoVO.setShowUnit(deputyUnitBeans.get(0));
} }
//設置默認顯示數量和價格
purchaseOrderDetailsInfoVO.getShowUnit().setDeputyValue(purchaseOrderDetailsInfoVO.getFoodQuantity());
purchaseOrderDetailsInfoVO.getShowUnit().setUnitPrice(purchaseOrderDetailsInfoVO.getFoodPrice());
//設置單位集合 //設置單位集合
purchaseOrderDetailsInfoVO.setFoodUnits(deputyUnitBeans); purchaseOrderDetailsInfoVO.setFoodUnits(deputyUnitBeans);
} else { } else {
......
...@@ -74,7 +74,7 @@ import static com.yalantis.ucrop.UCrop.REQUEST_CROP; ...@@ -74,7 +74,7 @@ import static com.yalantis.ucrop.UCrop.REQUEST_CROP;
/** /**
* ================================================ * ================================================
* Description: 訂單詳情 * Description: 訂單詳情,收貨操作頁面
*/ */
public class OrderDetailsFragment extends BaseSupplyChainFragment<OrderDetailsPresenter> implements OrderDetailsContract.View, View.OnClickListener { public class OrderDetailsFragment extends BaseSupplyChainFragment<OrderDetailsPresenter> implements OrderDetailsContract.View, View.OnClickListener {
......
...@@ -55,29 +55,21 @@ import com.gingersoft.gsa.cloud.common.utils.FileUtils; ...@@ -55,29 +55,21 @@ import com.gingersoft.gsa.cloud.common.utils.FileUtils;
import com.gingersoft.gsa.cloud.common.utils.crash.AppCrashHandler; import com.gingersoft.gsa.cloud.common.utils.crash.AppCrashHandler;
import com.gingersoft.gsa.cloud.common.utils.log.LogUtil; import com.gingersoft.gsa.cloud.common.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.common.utils.other.SPUtils; import com.gingersoft.gsa.cloud.common.utils.other.SPUtils;
import com.gingersoft.gsa.cloud.common.utils.view.BitmapUtil;
import com.gingersoft.gsa.cloud.common.utils.xlog.MyBackupStrategy; import com.gingersoft.gsa.cloud.common.utils.xlog.MyBackupStrategy;
import com.gingersoft.gsa.cloud.component.ComponentAction; import com.gingersoft.gsa.cloud.component.ComponentAction;
import com.gingersoft.gsa.cloud.component.ComponentName; import com.gingersoft.gsa.cloud.component.ComponentName;
import com.gingersoft.gsa.cloud.database.DaoManager; import com.gingersoft.gsa.cloud.database.DaoManager;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
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;
import com.kingja.loadsir.core.LoadSir; import com.kingja.loadsir.core.LoadSir;
import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager;
import com.scwang.smartrefresh.layout.SmartRefreshLayout; import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.footer.ClassicsFooter; import com.scwang.smartrefresh.layout.footer.ClassicsFooter;
import com.scwang.smartrefresh.layout.header.ClassicsHeader; import com.scwang.smartrefresh.layout.header.ClassicsHeader;
import com.xuexiang.rxutil2.rxjava.RxJavaUtils;
import com.xuexiang.rxutil2.rxjava.task.RxIOTask;
import java.io.File; import java.io.File;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Map;
import java.util.Set;
import io.reactivex.functions.Consumer; import io.reactivex.functions.Consumer;
import io.reactivex.plugins.RxJavaPlugins; import io.reactivex.plugins.RxJavaPlugins;
......
...@@ -4,6 +4,7 @@ import android.os.AsyncTask; ...@@ -4,6 +4,7 @@ import android.os.AsyncTask;
import android.util.Log; import android.util.Log;
import com.gingersoft.gsa.cloud.common.logan.LoganManager; import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.print.impl.OnPrjPrintResultListener;
import com.xuexiang.rxutil2.rxjava.RxJavaUtils; import com.xuexiang.rxutil2.rxjava.RxJavaUtils;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -20,6 +21,7 @@ public class PrintExecutor { ...@@ -20,6 +21,7 @@ public class PrintExecutor {
protected final String TAG = this.getClass().getSimpleName(); protected final String TAG = this.getClass().getSimpleName();
private static PrintExecutor printExecutor; private static PrintExecutor printExecutor;
public static PrintExecutor getInstance() { public static PrintExecutor getInstance() {
if (printExecutor == null) { if (printExecutor == null) {
printExecutor = new PrintExecutor(); printExecutor = new PrintExecutor();
...@@ -219,13 +221,6 @@ public class PrintExecutor { ...@@ -219,13 +221,6 @@ public class PrintExecutor {
void onResult(int errorCode); void onResult(int errorCode);
} }
public interface OnPrjPrintResultListener {
/**
* PRJ打印結果回調,prj service用
*/
void onResult(int errorCode, String ids);
}
public PrintExecutor setOnPrjPrintResultListener(OnPrjPrintResultListener onPrjPrintResultListener) { public PrintExecutor setOnPrjPrintResultListener(OnPrjPrintResultListener onPrjPrintResultListener) {
this.onPrjPrintResultListener = onPrjPrintResultListener; this.onPrjPrintResultListener = onPrjPrintResultListener;
return this; return this;
......
...@@ -6,25 +6,23 @@ import java.util.Map; ...@@ -6,25 +6,23 @@ import java.util.Map;
import lombok.Data; import lombok.Data;
/**
* @author admin
*/
@Data @Data
public class PrjBean { public class PrjBean implements Serializable {
/** /**
* success : true * prj狀態為不切紙
* sysTime : 1589177793623
* data : {"-1":[{"id":1,"printerDeviceId":-1,"status":1,"tableName":"51536","orderNo":"gs201351936242891","orderTime":2020,"person":2,"orderDetailsTime":"May 7, 2020 6:47:16 PM","orderDetailsId":48827589,"productName":"炸鸡翅","parentId":0,"type":3},{"id":2,"printerDeviceId":-1,"status":1,"tableName":"51536","orderNo":"gs201351936242891","orderTime":2020,"person":2,"orderDetailsTime":"May 7, 2020 6:47:16 PM","orderDetailsId":48827590,"productName":"鮮茄汁藍青口","parentId":0,"type":3}],"k1":[{"id":77,"printerDeviceId":1,"status":1,"tableName":"51536","orderNo":"gs201351936242891","orderTime":2020,"person":2,"orderDetailsTime":"May 11, 2020 11:41:41 AM","orderDetailsId":48828004,"productName":"走青檸測試","parentId":48827589,"type":4},{"id":78,"printerDeviceId":1,"status":1,"tableName":"51536","orderNo":"gs201351936242891","orderTime":2020,"person":2,"orderDetailsTime":"May 11, 2020 11:41:41 AM","orderDetailsId":48828005,"productName":"走豆測試","parentId":48827590,"type":4},{"id":79,"printerDeviceId":1,"status":1,"tableName":"51536","orderNo":"gs201351936242891","orderTime":2020,"person":2,"orderDetailsTime":"May 11, 2020 11:41:41 AM","orderDetailsId":48828006,"productName":"精選牛肉","parentId":0,"type":3},{"id":80,"printerDeviceId":1,"status":1,"tableName":"51536","orderNo":"gs201351936242891","orderTime":2020,"person":2,"orderDetailsTime":"May 11, 2020 11:41:41 AM","orderDetailsId":48828007,"productName":"走豆測試","parentId":48828006,"type":4},{"id":81,"printerDeviceId":1,"status":1,"tableName":"51536","orderNo":"gs201351936242891","orderTime":2020,"person":2,"orderDetailsTime":"May 11, 2020 11:41:41 AM","orderDetailsId":48828008,"productName":"雞飯(四客)","parentId":48828006,"type":3},{"id":82,"printerDeviceId":1,"status":1,"tableName":"51536","orderNo":"gs201351936242891","orderTime":2020,"person":2,"orderDetailsTime":"May 11, 2020 11:41:41 AM","orderDetailsId":48828009,"productName":"精選牛肉","parentId":48828006,"type":3}]}
*/ */
private boolean success; public static final int PRJ_STATUS_NOT_CUT_PAPER = 1;
private long sysTime; /**
private String data; * prj狀態為切紙
*/
@Data public static final int PRJ_STATUS_CUT_PAPER = 2;
public static class DataBean { /**
public Map<String, List<Bean>> prjMap; * prj狀態為跟隨主項
*/
@Data public static final int PRJ_STATUS_FOLLOW_PARENT = 3;
public static class Bean implements Serializable {
private static final long serialVersionUID = -3210457151279539745L;
/** /**
* id : 77 * id : 77
* printerDeviceId : 1 * printerDeviceId : 1
...@@ -58,6 +56,9 @@ public class PrjBean { ...@@ -58,6 +56,9 @@ public class PrjBean {
* 食品类型#3:食品;4:细项; * 食品类型#3:食品;4:细项;
*/ */
private int type; private int type;
public static final int FOOD_TYPE = 3;
public static final int FOOD_ITEM_TYPE = 4;
/** /**
* 打印狀態 * 打印狀態
*/ */
...@@ -115,6 +116,4 @@ public class PrjBean { ...@@ -115,6 +116,4 @@ public class PrjBean {
private String printPosition;//廚房位置 private String printPosition;//廚房位置
private String foodGroupName;//食品組 private String foodGroupName;//食品組
private String flyingSinglePosition;//飛單位置 private String flyingSinglePosition;//飛單位置
}
}
} }
package com.gingersoft.gsa.cloud.print.impl;
/**
* @author 宇航.
* User: admin
* Date: 2021/2/26
* Time: 10:49
* prj 打印結果回調
* Use:
*/
public interface OnPrjPrintResultListener {
/**
* prj 打印結果回調
*
* @param prjIds 本次打印的prj集合的id
* @param errorCode 錯誤碼
*/
void onResult(int errorCode, String prjIds);
}
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