Commit 2abd64bd by 宁斌

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

# Conflicts:
#	base-module/build.gradle
#	base-module/src/main/java/com/gingersoft/gsa/cloud/config/globalconfig/GlobalConfiguration.java
#	delivery_pick_module/src/main/java/com/gingersoft/gsa/delivery_pick_mode/data/network/ServiceCreator.kt
#	delivery_pick_module/src/main/java/com/gingersoft/gsa/delivery_pick_mode/mvp/presenter/SendOrderPresenter.java
parents 1d233a8d ceec008e
...@@ -101,6 +101,7 @@ dependencies { ...@@ -101,6 +101,7 @@ dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs') implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation files('libs/javabase64-1.2.jar') implementation files('libs/javabase64-1.2.jar')
implementation files('libs/sun.misc.BASE64Decoder.jar') implementation files('libs/sun.misc.BASE64Decoder.jar')
api files('libs/jcifs-1.3.19.jar')
api files('libs/nexgon5lib.jar') api files('libs/nexgon5lib.jar')
if (project.ext.runAsApp) { if (project.ext.runAsApp) {
annotationProcessor rootProject.ext.dependencies["dagger2-compiler"] annotationProcessor rootProject.ext.dependencies["dagger2-compiler"]
......
package com.gingersoft.gsa.cloud.base.utils; package com.gingersoft.gsa.cloud.base.utils;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
...@@ -77,4 +82,27 @@ public class CollectionUtils { ...@@ -77,4 +82,27 @@ public class CollectionUtils {
} }
} }
} }
/**
* 深拷貝一個list集合,改變當前集合不影響之前的集合數據
* @param src
* @param <E>
* @return
*/
public static <E> List<E> deepCopy(List<E> src) {
try {
ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(byteOut);
out.writeObject(src);
ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray());
ObjectInputStream in = new ObjectInputStream(byteIn);
@SuppressWarnings("unchecked")
List<E> dest = (List<E>) in.readObject();
return dest;
} catch (Exception e) {
e.printStackTrace();
return new ArrayList<E>();
}
}
} }
...@@ -4,6 +4,7 @@ import android.content.Context; ...@@ -4,6 +4,7 @@ import android.content.Context;
import com.gingersoft.gsa.cloud.base.BuildConfig; import com.gingersoft.gsa.cloud.base.BuildConfig;
import com.gingersoft.gsa.cloud.config.globalconfig.applyOptions.intercept.LoggingInterceptor; import com.gingersoft.gsa.cloud.config.globalconfig.applyOptions.intercept.LoggingInterceptor;
import com.jess.arms.di.module.ClientModule; import com.jess.arms.di.module.ClientModule;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import retrofit2.Retrofit; import retrofit2.Retrofit;
......
...@@ -15,7 +15,10 @@ public class ExpandConstant { ...@@ -15,7 +15,10 @@ public class ExpandConstant {
public final static String PrintStatisticsAmount = "PrintStatisticsAmount";//是否顯示統計打印數 public final static String PrintStatisticsAmount = "PrintStatisticsAmount";//是否顯示統計打印數
public final static String PrintFirstOrder = "PrintFirstOrder";//是否打印"頭單"文字 public final static String PrintFirstOrder = "PrintFirstOrder";//是否打印"頭單"文字
public final static String FrozenChainAutoOrder = "FrozenChainAutoOrder";//是否自動接單 為0true public final static String FrozenChainAutoOrder = "FrozenChainAutoOrder";//凍鏈是否自動接單 為0時true
public final static String TakeawayAutoOrder = "TakeawayAutoOrder";//外賣/自取 是否自動接單 為0時true
public final static String Rounding = "Rounding"; public final static String Rounding = "Rounding";
public final static String RoundingDecimal = "RoundingDecimal"; public final static String RoundingDecimal = "RoundingDecimal";
......
...@@ -25,7 +25,7 @@ public interface FoodSummaryConstans { ...@@ -25,7 +25,7 @@ public interface FoodSummaryConstans {
*/ */
int MEAL_MENU = 4; int MEAL_MENU = 4;
/** /**
* 鏈餐種 * 鏈餐種
*/ */
int COLD_CHAIN = 5; int COLD_CHAIN = 5;
/** /**
......
...@@ -169,7 +169,7 @@ public class ColdChainMainActivity extends BaseFragmentActivity<ColdChainMainPre ...@@ -169,7 +169,7 @@ public class ColdChainMainActivity extends BaseFragmentActivity<ColdChainMainPre
@Override @Override
public void onNext(Long aLong) { public void onNext(Long aLong) {
mPresenter.updateExpandInfo(ExpandConstant.FrozenChainAutoOrder, new String[]{RestaurantExpandInfoUtils.VALUE_INT}, new String[]{RestaurantExpandInfoUtils.getValue(ExpandConstant.FrozenChainAutoOrder, false) ? "0" : "1"}); // mPresenter.updateExpandInfo(ExpandConstant.FrozenChainAutoOrder, new String[]{RestaurantExpandInfoUtils.VALUE_INT}, new String[]{RestaurantExpandInfoUtils.getValue(ExpandConstant.FrozenChainAutoOrder, false) ? "0" : "1"});
if (!isChecked) { if (!isChecked) {
mPresenter.stopAutoReceivingOrders(); mPresenter.stopAutoReceivingOrders();
} else { } else {
......
...@@ -131,9 +131,10 @@ ext { ...@@ -131,9 +131,10 @@ ext {
"immersionbar" : "com.gyf.immersionbar:immersionbar:3.0.0", "immersionbar" : "com.gyf.immersionbar:immersionbar:3.0.0",
// fragment快速实现(可选) // fragment快速实现(可选)
"immersionbar-components" : "com.gyf.immersionbar:immersionbar-components:3.0.0", "immersionbar-components" : "com.gyf.immersionbar:immersionbar-components:3.0.0",
//獲取權限
"permissionx" : 'com.permissionx.guolindev:permissionx:1.3.1', "permissionx" : 'com.permissionx.guolindev:permissionx:1.3.1',
//美團點評-日誌監聽https://github.com/Meituan-Dianping/Logan/tree/master/Example/Logan-Android
"logan" : 'com.dianping.android.sdk:logan:1.2.4',
//滴滴開源 哆啦A夢:辅助开发工具、测试效率工具、视觉辅助工具 //滴滴開源 哆啦A夢:辅助开发工具、测试效率工具、视觉辅助工具
"doraemonkit" : 'com.didichuxing.doraemonkit:dokitx:3.3.3' "doraemonkit" : 'com.didichuxing.doraemonkit:dokitx:3.3.3'
] ]
......
...@@ -54,10 +54,6 @@ public class ExpandInfo implements Serializable { ...@@ -54,10 +54,6 @@ public class ExpandInfo implements Serializable {
private int dataType; private int dataType;
private String showName; private String showName;
//是否被編輯了
@Transient
private boolean isUpdate = false;
public static final byte data_type_int = 1; public static final byte data_type_int = 1;
public static final byte data_type_string = 2; public static final byte data_type_string = 2;
public static final byte data_type_boolean = 3; public static final byte data_type_boolean = 3;
......
...@@ -8,6 +8,7 @@ import com.gingersoft.gsa.cloud.constans.AppConstans ...@@ -8,6 +8,7 @@ import com.gingersoft.gsa.cloud.constans.AppConstans
import com.gingersoft.gsa.cloud.constans.HttpsConstans import com.gingersoft.gsa.cloud.constans.HttpsConstans
import com.gingersoft.gsa.cloud.constans.HttpsConstans.ROOT_SERVER import com.gingersoft.gsa.cloud.constans.HttpsConstans.ROOT_SERVER
import com.gingersoft.gsa.cloud.constans.HttpsConstans.URK_RICEPON_GSA import com.gingersoft.gsa.cloud.constans.HttpsConstans.URK_RICEPON_GSA
import com.gingersoft.gsa.cloud.config.globalconfig.applyOptions.intercept.LoggingInterceptor
import com.jess.arms.utils.DeviceUtils import com.jess.arms.utils.DeviceUtils
import okhttp3.Headers import okhttp3.Headers
import okhttp3.Interceptor import okhttp3.Interceptor
...@@ -133,7 +134,6 @@ object ServiceCreator { ...@@ -133,7 +134,6 @@ object ServiceCreator {
token = Aes.aesEncrypt("9_" + memberId + "_" + System.currentTimeMillis() + "_" + loginToken) token = Aes.aesEncrypt("9_" + memberId + "_" + System.currentTimeMillis() + "_" + loginToken)
token = token.replace("\r|\n".toRegex(), "") token = token.replace("\r|\n".toRegex(), "")
builder.set("token", token) builder.set("token", token)
Log.e("eee", "添加Token:" + token);
} }
val request1 = chain.request().newBuilder().headers(builder.build()).build() val request1 = chain.request().newBuilder().headers(builder.build()).build()
return chain.proceed(request1) return chain.proceed(request1)
......
...@@ -3,6 +3,8 @@ package com.gingersoft.gsa.delivery_pick_mode.mvp.presenter; ...@@ -3,6 +3,8 @@ package com.gingersoft.gsa.delivery_pick_mode.mvp.presenter;
import android.app.Activity; import android.app.Activity;
import android.app.Application; import android.app.Application;
import com.gingersoft.gsa.cloud.app.GsaCloudApplication; import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.order.order.TakeawayOrder; import com.gingersoft.gsa.cloud.base.order.order.TakeawayOrder;
import com.gingersoft.gsa.cloud.base.utils.other.TextUtil; import com.gingersoft.gsa.cloud.base.utils.other.TextUtil;
......
...@@ -103,28 +103,24 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen ...@@ -103,28 +103,24 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen
//餐廳營業信息 //餐廳營業信息
loadRestaurantInfo(binding) loadRestaurantInfo(binding)
cl_order_info.post { initInfoHeight()
layoutHeight = cl_order_info.height.toFloat()
}
btn_open_or_close_info.post {
btnHeight = btn_open_or_close_info.height.toFloat()
}
layout_immediate_order.setOnClickListener { initOrderType()
it.background = ContextCompat.getDrawable(this, R.drawable.shape_left_themecolor_radius_btn) //是否自動接單
layout_booking_order.background = ContextCompat.getDrawable(this, R.drawable.shape_right_white_radius_btn) cb_takeaway_auto_receiving_orders.setOnCheckedChangeListener { buttonView, isChecked ->
tv_immediate_order.setTextColor(ContextCompat.getColor(this, R.color.white)) if(isChecked){
tv_booking_order.setTextColor(ContextCompat.getColor(this, R.color.theme_333_color)) pageViewModel.startAutoConfirmOrder()
pageViewModel.appointmentType.postValue(0) } else {
} pageViewModel.stopAutoConfirmOrder()
layout_booking_order.setOnClickListener { }
it.background = ContextCompat.getDrawable(this, R.drawable.shape_right_themecolor_radius_btn) RestaurantExpandInfoUtils.setValue(ExpandConstant.TakeawayAutoOrder, isChecked)
layout_immediate_order.background = ContextCompat.getDrawable(this, R.drawable.shape_left_white_radius_btn)
tv_booking_order.setTextColor(ContextCompat.getColor(this, R.color.white))
tv_immediate_order.setTextColor(ContextCompat.getColor(this, R.color.theme_333_color))
pageViewModel.appointmentType.postValue(1)
} }
cb_takeaway_auto_receiving_orders.isChecked = RestaurantExpandInfoUtils.getValue<Boolean>(ExpandConstant.TakeawayAutoOrder, false)
pageViewModel.apply { pageViewModel.apply {
if(cb_takeaway_auto_receiving_orders.isChecked){
startAutoConfirmOrder()
}
getDeliveryInfo(restaurantId.toString(), memberId.toString()) getDeliveryInfo(restaurantId.toString(), memberId.toString())
balanceBean.observe(this@DeliveryOrderMainActivity, Observer { balanceBean.observe(this@DeliveryOrderMainActivity, Observer {
it?.data?.let { data -> it?.data?.let { data ->
...@@ -151,6 +147,38 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen ...@@ -151,6 +147,38 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen
} }
} }
/**
* 獲取高度用於收起展開
*/
private fun initInfoHeight() {
cl_order_info.post {
layoutHeight = cl_order_info.height.toFloat()
}
btn_open_or_close_info.post {
btnHeight = btn_open_or_close_info.height.toFloat()
}
}
/**
* 初始化即時單,預約單選中狀態
*/
private fun initOrderType() {
layout_immediate_order.setOnClickListener {
it.background = ContextCompat.getDrawable(this, R.drawable.shape_left_themecolor_radius_btn)
layout_booking_order.background = ContextCompat.getDrawable(this, R.drawable.shape_right_white_radius_btn)
tv_immediate_order.setTextColor(ContextCompat.getColor(this, R.color.white))
tv_booking_order.setTextColor(ContextCompat.getColor(this, R.color.theme_333_color))
pageViewModel.appointmentType.postValue(0)
}
layout_booking_order.setOnClickListener {
it.background = ContextCompat.getDrawable(this, R.drawable.shape_right_themecolor_radius_btn)
layout_immediate_order.background = ContextCompat.getDrawable(this, R.drawable.shape_left_white_radius_btn)
tv_booking_order.setTextColor(ContextCompat.getColor(this, R.color.white))
tv_immediate_order.setTextColor(ContextCompat.getColor(this, R.color.theme_333_color))
pageViewModel.appointmentType.postValue(1)
}
}
private fun initViewPager() { private fun initViewPager() {
val sectionsPagerAdapter = SectionsPagerAdapter(this, supportFragmentManager, ints) val sectionsPagerAdapter = SectionsPagerAdapter(this, supportFragmentManager, ints)
view_pager.adapter = sectionsPagerAdapter view_pager.adapter = sectionsPagerAdapter
...@@ -406,6 +434,7 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen ...@@ -406,6 +434,7 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen
override fun onDestroy() { override fun onDestroy() {
super.onDestroy() super.onDestroy()
pageViewModel.stopAutoConfirmOrder()
bind?.setOnPostCallBack(null) bind?.setOnPostCallBack(null)
bind?.execute {} bind?.execute {}
cancelDialogForLoading() cancelDialogForLoading()
...@@ -603,9 +632,9 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen ...@@ -603,9 +632,9 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen
.setActionName("showMealStandActivity") .setActionName("showMealStandActivity")
.build() .build()
.call() .call()
SPUtils.remove( SendOrderActivity.MEMBER_NAME_KEY) SPUtils.remove(SendOrderActivity.MEMBER_NAME_KEY)
SPUtils.remove( SendOrderActivity.MEMBER_PHONE_KEY) SPUtils.remove(SendOrderActivity.MEMBER_PHONE_KEY)
SPUtils.remove( SendOrderActivity.MEMBER_ADDRESS_KEY) SPUtils.remove(SendOrderActivity.MEMBER_ADDRESS_KEY)
pop!!.dismiss() pop!!.dismiss()
} }
} }
......
...@@ -596,7 +596,7 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() { ...@@ -596,7 +596,7 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() {
private fun PageViewModel.confirmOrder(orderDetails: OrderDetails.DataBean, trafficType: String = "", isPrint: Boolean = true) { private fun PageViewModel.confirmOrder(orderDetails: OrderDetails.DataBean, trafficType: String = "", isPrint: Boolean = true) {
showLoading() showLoading()
var status = 2 var status = 2
confirmOrder(orderDetails, status, trafficType, restaurantId, if (isBookingOrder) false else isPrint, listener) confirmOrder(orderDetails, status, trafficType, restaurantId, if (isBookingOrder) false else isPrint, if (isBookingOrder) false else isPrint, listener)
} }
/** /**
......
...@@ -38,7 +38,6 @@ class PlaceholderFragment : BaseFragment(R.layout.fragment_other_order) { ...@@ -38,7 +38,6 @@ class PlaceholderFragment : BaseFragment(R.layout.fragment_other_order) {
pageViewModel.apply { pageViewModel.apply {
// 綁定狀態,如果這個值發生變化 // 綁定狀態,如果這個值發生變化
refreshState.observe(viewLifecycleOwner, Observer { refreshState.observe(viewLifecycleOwner, Observer {
Log.e("CSDN_LQR0", "頁面pageindex$it" + "當前頁面$position")
if (position == it) { if (position == it) {
page = 1 page = 1
getOrderList(false) getOrderList(false)
......
...@@ -183,7 +183,7 @@ ...@@ -183,7 +183,7 @@
android:background="@drawable/shape_restaurant_state_bg" android:background="@drawable/shape_restaurant_state_bg"
android:text="營業中 " android:text="營業中 "
app:layout_constraintBottom_toBottomOf="@id/ed_order_num_search" app:layout_constraintBottom_toBottomOf="@id/ed_order_num_search"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toLeftOf="@id/cb_takeaway_auto_receiving_orders"
app:layout_constraintTop_toTopOf="@id/ed_order_num_search" /> app:layout_constraintTop_toTopOf="@id/ed_order_num_search" />
<ImageView <ImageView
...@@ -196,6 +196,18 @@ ...@@ -196,6 +196,18 @@
app:layout_constraintRight_toRightOf="@id/tv_restaurant_state" app:layout_constraintRight_toRightOf="@id/tv_restaurant_state"
app:layout_constraintTop_toTopOf="@id/tv_restaurant_state" /> app:layout_constraintTop_toTopOf="@id/tv_restaurant_state" />
<androidx.appcompat.widget.AppCompatCheckBox
android:id="@+id/cb_takeaway_auto_receiving_orders"
style="@style/MyCheckbox_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layoutDirection="ltr"
android:text="自動接單"
android:textColor="@color/color_a9"
app:layout_constraintBottom_toBottomOf="@id/ed_order_num_search"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@id/ed_order_num_search" />
<!-- --> <!-- -->
<!-- <com.gingersoft.gsa.cloud.ui.view.SwitchButton--> <!-- <com.gingersoft.gsa.cloud.ui.view.SwitchButton-->
<!-- android:id="@+id/btn_switch_restaurant_state"--> <!-- android:id="@+id/btn_switch_restaurant_state"-->
......
...@@ -4,6 +4,7 @@ import android.app.Application; ...@@ -4,6 +4,7 @@ import android.app.Application;
import com.gingersoft.gsa.cloud.app.GsaCloudApplication; import com.gingersoft.gsa.cloud.app.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.CollectionUtils;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils; import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils; import com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils; import com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils;
...@@ -17,6 +18,7 @@ import com.jess.arms.integration.AppManager; ...@@ -17,6 +18,7 @@ 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 java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
...@@ -40,9 +42,12 @@ public class ExpandListPresenter extends BasePresenter<ExpandListContract.Model, ...@@ -40,9 +42,12 @@ public class ExpandListPresenter extends BasePresenter<ExpandListContract.Model,
@Inject @Inject
AppManager mAppManager; AppManager mAppManager;
private List<ExpandInfo> originalDate;
@Inject @Inject
public ExpandListPresenter(ExpandListContract.Model model, ExpandListContract.View rootView) { public ExpandListPresenter(ExpandListContract.Model model, ExpandListContract.View rootView) {
super(model, rootView); super(model, rootView);
originalDate = new ArrayList<>();
} }
@Override @Override
...@@ -68,7 +73,22 @@ public class ExpandListPresenter extends BasePresenter<ExpandListContract.Model, ...@@ -68,7 +73,22 @@ public class ExpandListPresenter extends BasePresenter<ExpandListContract.Model,
if (result.isSuccess()) { if (result.isSuccess()) {
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); if (expandInfoList != null) {
originalDate = CollectionUtils.deepCopy(expandInfoList);
mRootView.loadExpandList(expandInfoList);
} else {
if (TextUtil.isNotEmptyOrNullOrUndefined(result.getErrMsg())) {
mRootView.showMessage(result.getErrMsg());
} else {
mRootView.showMessage("數據獲取失敗");
}
}
} else {
if (TextUtil.isNotEmptyOrNullOrUndefined(result.getErrMsg())) {
mRootView.showMessage(result.getErrMsg());
} else {
mRootView.showMessage("數據獲取失敗");
}
} }
} }
} }
...@@ -77,7 +97,20 @@ public class ExpandListPresenter extends BasePresenter<ExpandListContract.Model, ...@@ -77,7 +97,20 @@ public class ExpandListPresenter extends BasePresenter<ExpandListContract.Model,
public void updateExpandInfo(List<ExpandInfo> data) { public void updateExpandInfo(List<ExpandInfo> data) {
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(data)); List<ExpandInfo> changeData = new ArrayList<>();
if (originalDate != null) {
for (ExpandInfo expandInfo : data) {
if (!originalDate.contains(expandInfo)) {
//改變了
changeData.add(expandInfo);
}
}
}
if (changeData.size() <= 0) {
mRootView.killMyself();
return;
}
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(changeData));
mModel.updateExpandInfo(requestBody) mModel.updateExpandInfo(requestBody)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading("")) .doOnSubscribe(disposable -> mRootView.showLoading(""))
......
...@@ -10,7 +10,6 @@ import androidx.core.content.ContextCompat; ...@@ -10,7 +10,6 @@ import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.database.bean.ExpandInfo; import com.gingersoft.gsa.cloud.database.bean.ExpandInfo;
import com.gingersoft.gsa.cloud.main.R; import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.R2; import com.gingersoft.gsa.cloud.main.R2;
...@@ -25,9 +24,6 @@ import com.jess.arms.utils.ArmsUtils; ...@@ -25,9 +24,6 @@ import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton; import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
import com.qmuiteam.qmui.widget.QMUITopBar; import com.qmuiteam.qmui.widget.QMUITopBar;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List; import java.util.List;
import butterknife.BindView; import butterknife.BindView;
...@@ -132,28 +128,8 @@ public class ExpandListActivity extends BaseActivity<ExpandListPresenter> implem ...@@ -132,28 +128,8 @@ public class ExpandListActivity extends BaseActivity<ExpandListPresenter> implem
int viewId = v.getId(); int viewId = v.getId();
if (viewId == R.id.btn_expand_save) { if (viewId == R.id.btn_expand_save) {
//保存 //保存
List<ExpandInfo> data = expandListAdapter.getData(); //調用接口批量修改
List<ExpandInfo> updateDate = new ArrayList<>(); mPresenter.updateExpandInfo(expandListAdapter.getData());
for (ExpandInfo expandInfo : data) {
if(expandInfo.isUpdate()){
if(expandInfo.getValueDatetime() != null){
Calendar calendar = Calendar.getInstance();
try {
calendar.setTime(TimeUtils.ENGLISH_DATE_FORMAT.parse(expandInfo.getValueDatetime()));
} catch (ParseException e) {
e.printStackTrace();
}
expandInfo.setValueDatetime(TimeUtils.getStringByFormat(calendar.getTime(), TimeUtils.DEFAULT_DATE_FORMAT));
}
updateDate.add(expandInfo);
}
}
if (updateDate.size() > 0) {
//調用接口批量修改
mPresenter.updateExpandInfo(updateDate);
} else {
killMyself();
}
} }
} }
} }
...@@ -32,7 +32,6 @@ public class ExpandListAdapter extends BaseQuickAdapter<ExpandInfo, BaseViewHold ...@@ -32,7 +32,6 @@ 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.getShowName());
baseViewHolder.setText(R.id.tv_expand_name, function.getRemark()); baseViewHolder.setText(R.id.tv_expand_name, function.getRemark());
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);
...@@ -62,14 +61,12 @@ public class ExpandListAdapter extends BaseQuickAdapter<ExpandInfo, BaseViewHold ...@@ -62,14 +61,12 @@ public class ExpandListAdapter extends BaseQuickAdapter<ExpandInfo, BaseViewHold
btn.setChecked(function.getValueInt() == 0); btn.setChecked(function.getValueInt() == 0);
btn.setOnCheckedChangeListener((buttonView, isChecked) -> { btn.setOnCheckedChangeListener((buttonView, isChecked) -> {
function.setValueInt(isChecked ? 0 : 1); function.setValueInt(isChecked ? 0 : 1);
function.setUpdate(true);
}); });
} else if (function.getDataType() == 4) { } else if (function.getDataType() == 4) {
//日期 //日期
editText.setVisibility(View.GONE); editText.setVisibility(View.GONE);
btn.setVisibility(View.GONE); btn.setVisibility(View.GONE);
tvTime.setVisibility(View.VISIBLE); tvTime.setVisibility(View.VISIBLE);
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
if (function.getValueDatetime() != null) { if (function.getValueDatetime() != null) {
try { try {
...@@ -83,10 +80,9 @@ public class ExpandListAdapter extends BaseQuickAdapter<ExpandInfo, BaseViewHold ...@@ -83,10 +80,9 @@ public class ExpandListAdapter extends BaseQuickAdapter<ExpandInfo, BaseViewHold
//时间选择器 //时间选择器
new TimePickerBuilder(getContext(), (date, view) -> { new TimePickerBuilder(getContext(), (date, view) -> {
tvTime.setText(TimeUtils.parseDateToString(date, TimeUtils.DATE_FORMAT_DATE)); tvTime.setText(TimeUtils.parseDateToString(date, TimeUtils.DATE_FORMAT_DATE));
function.setUpdate(true);
}) })
.setDate(calendar) .setDate(calendar)
.setType(new boolean[]{true,true,true,false,false,false}) .setType(new boolean[]{true, true, true, false, false, false})
.setContentTextSize(24) .setContentTextSize(24)
.setLabel("", "", "", "", "", "") .setLabel("", "", "", "", "", "")
.build() .build()
...@@ -99,31 +95,32 @@ public class ExpandListAdapter extends BaseQuickAdapter<ExpandInfo, BaseViewHold ...@@ -99,31 +95,32 @@ public class ExpandListAdapter extends BaseQuickAdapter<ExpandInfo, BaseViewHold
tvTime.setVisibility(View.GONE); tvTime.setVisibility(View.GONE);
editText.setVisibility(View.GONE); editText.setVisibility(View.GONE);
} }
if (editText.getVisibility() == View.VISIBLE) {
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
editText.addTextChangedListener(new TextWatcher() { }
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override @Override
public void onTextChanged(CharSequence s, int start, int before, int count) { public void onTextChanged(CharSequence s, int start, int before, int count) {
} }
@Override @Override
public void afterTextChanged(Editable s) { public void afterTextChanged(Editable s) {
if (function.getDataType() == 1) { ExpandInfo expandInfo = getData().get(baseViewHolder.getAdapterPosition());
if (TextUtil.isNotEmptyOrNullOrUndefined(s.toString())) { if (expandInfo.getDataType() == 1) {
function.setValueInt(Integer.parseInt(s.toString())); if (TextUtil.isNotEmptyOrNullOrUndefined(s.toString())) {
function.setUpdate(true); expandInfo.setValueInt(Integer.parseInt(s.toString()));
} }
} else if (function.getDataType() == 2) { } else if (expandInfo.getDataType() == 2) {
if (TextUtil.isNotEmptyOrNullOrUndefined(s.toString())) { if (TextUtil.isNotEmptyOrNullOrUndefined(s.toString())) {
function.setValueChar(s.toString()); expandInfo.setValueChar(s.toString());
function.setUpdate(true); }
} }
} }
} });
}); }
} }
} }
...@@ -183,7 +183,11 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -183,7 +183,11 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
return; return;
} }
} else { } else {
printLocation = defaultPrint.getName(); if (defaultPrint == null) {
printLocation = "";
} else {
printLocation = defaultPrint.getName();
}
} }
} }
prjBean.setPrintPosition(printLocation); prjBean.setPrintPosition(printLocation);
......
...@@ -10,7 +10,6 @@ import com.epson.epos2.printer.Printer; ...@@ -10,7 +10,6 @@ import com.epson.epos2.printer.Printer;
import com.epson.epos2.printer.PrinterStatusInfo; import com.epson.epos2.printer.PrinterStatusInfo;
import com.epson.epos2.printer.ReceiveListener; import com.epson.epos2.printer.ReceiveListener;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail; import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.utils.time.TimePickerUtils;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils; import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean; import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.print.PrintExecutor; import com.gingersoft.gsa.cloud.print.PrintExecutor;
...@@ -21,11 +20,19 @@ import com.joe.print.mvp.print.common.SendCallback; ...@@ -21,11 +20,19 @@ import com.joe.print.mvp.print.common.SendCallback;
import com.joe.print.mvp.print.common.SendResultCode; import com.joe.print.mvp.print.common.SendResultCode;
import com.joe.print.mvp.print.usb.UsbPrinter; import com.joe.print.mvp.print.usb.UsbPrinter;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar;
import java.util.List; import java.util.List;
import jcifs.UniAddress;
import jcifs.smb.NtlmPasswordAuthentication;
import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileInputStream;
import jcifs.smb.SmbFileOutputStream;
import jcifs.smb.SmbSession;
public class PrintTestActivity extends AppCompatActivity implements PrintSocketHolder.OnStateChangedListener, PrintExecutor.OnPrintResultListener, ReceiveListener { public class PrintTestActivity extends AppCompatActivity implements PrintSocketHolder.OnStateChangedListener, PrintExecutor.OnPrintResultListener, ReceiveListener {
private int lineLength = 42;//一行42個 17.5 private int lineLength = 42;//一行42個 17.5
...@@ -33,6 +40,51 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH ...@@ -33,6 +40,51 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
private static int foodNumSpace = 8; private static int foodNumSpace = 8;
private static int foodAmountSpace = 10; private static int foodAmountSpace = 10;
private static void run() {
String ip = "192.168.1.144";
String rootPath = "smb://" + ip + "/KuGou/";
try {
UniAddress domain = UniAddress.getByName(ip);
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(rootPath,
"", "");
SmbSession.logon(domain, auth);
SmbFile smbFile = new SmbFile(rootPath, auth);
smbFile.connect();
if (smbFile.isDirectory()) {
String newFilePath = rootPath + System.currentTimeMillis() + ".prj";
SmbFile createFile = new SmbFile(newFilePath, auth);
createFile.connect();
createFile.createNewFile();
if (createFile.exists()) {
SmbFileInputStream in = new SmbFileInputStream(createFile);
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new SmbFileOutputStream(createFile, true));
bufferedOutputStream.write("oiasfia按時間肯定很快就愛上檔卡戶時段接口和6556a6d5as65das5das奧術大師大所奧術大師大所".getBytes());
bufferedOutputStream.close();
}
smbFile.delete();
createFile.delete();
} else {
Log.e("eee", "请选择文件夾");
}
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_print_test);
// System.setProperty("jcifs.smb.client.dfs.disabled", "true");
// System.setProperty("jcifs.smb.client.soTimeout", "1000000");
// System.setProperty("jcifs.smb.client.responseTimeout", "30000");
// 获取跟目录然后获取下面各个盘符
new Thread(//smb://192.168.1.144/KuGou/
PrintTestActivity::run).start();
}
/** /**
* 獲取縮進,通過文字和最大長度 * 獲取縮進,通過文字和最大長度
* *
...@@ -167,54 +219,6 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH ...@@ -167,54 +219,6 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
return stringList; return stringList;
} }
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_print_test);
// EditText ed_ip = findViewById(R.id.ed_ip);
// UsbPrinterFinder printerFinder = new UsbPrinterFinder(this, printerFinderCallback);
// printerFinder.startFinder();
//
// List<OrderDetail> foodList = new ArrayList<>();
// foodList.add(new OrderDetail("牛肉拉麵", 10, 1));
// foodList.add(new OrderDetail("紅燒牛肉拉麵", 200, 2));
//
// findViewById(R.id.btn_test).setOnClickListener(view -> {
// //打印測試
// String stringBuilder = "<html><body>" +
// getPLable("GingerSoft") +
// getPLable("Gs1") +
// getPLable("開檯時間:" + TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT)) +
// getPLable(getLineChar(lineLength, "_")) +
// getPLable(getFoodListStr(foodList)) +
// "</body></html>";
// OkHttp3Utils.get("http://localhost:8080/pos?transactionType=PRINT&isExternal=false&apiVersion=21&printData=" + stringBuilder).subscribe(new Observer<String>() {
// @Override
// public void onSubscribe(Disposable d) {
//
// }
//
// @Override
// public void onNext(String s) {
// }
//
// @Override
// public void onError(Throwable e) {
//
// }
//
// @Override
// public void onComplete() {
//
// }
// });
// });
TimePickerUtils.showTimePicker(this, null, (date, v1) -> {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
});
}
public String getLineChar(int size, String str) { public String getLineChar(int size, String str) {
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
......
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