Browse Source

同步需求修改

zhongzhao 9 months ago
parent
commit
1a48216a60
28 changed files with 1537 additions and 35 deletions
  1. 5 5
      app/build.gradle
  2. 10 0
      app/src/main/AndroidManifest.xml
  3. 270 0
      app/src/main/java/com/hw/nativeapp/entity/PdaWipedRecordVo.java
  4. 41 0
      app/src/main/java/com/hw/nativeapp/entity/WipedEntity.java
  5. 10 0
      app/src/main/java/com/hw/nativeapp/httpnet/ApiService.java
  6. 2 6
      app/src/main/java/com/hw/nativeapp/ui/activity/MainActivity.java
  7. 32 9
      app/src/main/java/com/hw/nativeapp/ui/activity/PurchaseInfoActivity.java
  8. 137 0
      app/src/main/java/com/hw/nativeapp/ui/activity/WipedMainActivity.java
  9. 243 0
      app/src/main/java/com/hw/nativeapp/ui/activity/WipedRecordActivity.java
  10. 6 1
      app/src/main/java/com/hw/nativeapp/ui/activity/WriteOffSuccessActivity.java
  11. 9 5
      app/src/main/java/com/hw/nativeapp/ui/activity/adapters/PurchaseInfoAdapter.java
  12. 81 0
      app/src/main/java/com/hw/nativeapp/ui/activity/adapters/WipedRecordAdapter.java
  13. 38 0
      app/src/main/java/com/hw/nativeapp/ui/activity/holders/WipedHolder.java
  14. 107 0
      app/src/main/java/com/hw/nativeapp/ui/dialogs/DialogDatePick.java
  15. 8 0
      app/src/main/java/com/hw/nativeapp/utils/DateUtils.java
  16. 1 1
      app/src/main/res/drawable/bg_btn_01.xml
  17. 10 0
      app/src/main/res/drawable/shape_btnbule.xml
  18. 10 0
      app/src/main/res/drawable/shape_btngray.xml
  19. 7 0
      app/src/main/res/drawable/shape_dashed_line.xml
  20. 4 4
      app/src/main/res/layout/activity_info_query.xml
  21. 4 4
      app/src/main/res/layout/activity_purchase_info.xml
  22. 129 0
      app/src/main/res/layout/activity_wiped_main.xml
  23. 134 0
      app/src/main/res/layout/activity_wiped_record.xml
  24. 11 0
      app/src/main/res/layout/activity_write_off_success.xml
  25. 31 0
      app/src/main/res/layout/dialog_date.xml
  26. 197 0
      app/src/main/res/layout/item_wiped_record.xml
  27. BIN
      app/src/main/res/mipmap-hdpi/img_left_black.png
  28. BIN
      app/src/main/res/mipmap-hdpi/scan_code_wite.png

+ 5 - 5
app/build.gradle

@@ -95,8 +95,8 @@ dependencies {
 
     implementation 'com.xw.repo:xedittext:2.1.0@aar'
 
-    api  'com.jakewharton:butterknife:10.2.3'
-    annotationProcessor  'com.jakewharton:butterknife-compiler:10.2.3'
+    api 'com.jakewharton:butterknife:10.2.3'
+    annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3'
     implementation 'com.squareup.retrofit2:converter-scalars:2.2.0'
     implementation 'com.squareup.retrofit2:converter-gson:2.2.0'
     implementation 'com.squareup.retrofit2:adapter-rxjava2:2.2.0'
@@ -105,14 +105,14 @@ dependencies {
     implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.34'
     implementation 'com.jakewharton:butterknife:10.2.3'
     implementation 'com.blankj:utilcode:1.30.5'
-    api  'io.reactivex.rxjava2:rxjava:2.0.6'
-    api  'io.reactivex.rxjava2:rxandroid:2.0.1'
+    api 'io.reactivex.rxjava2:rxjava:2.0.6'
+    api 'io.reactivex.rxjava2:rxandroid:2.0.1'
     implementation 'com.squareup.okhttp3:okhttp:3.8.1'
 
     implementation 'com.hjq:titlebar:5.0'
 //    implementation 'org.xutils:xutils:3.4.0'
 
-    implementation 'com.alibaba:fastjson:1.2.8'
+    implementation 'com.alibaba:fastjson:1.2.72'
     implementation 'com.google.zxing:core:3.4.1'
     implementation('com.journeyapps:zxing-android-embedded:3.6.0') { transitive = false }
 

+ 10 - 0
app/src/main/AndroidManifest.xml

@@ -94,6 +94,16 @@
             android:configChanges="orientation|screenSize"
             android:theme="@style/ThemeNoTitleBar" />
 
+        <!--  票务查询页面  -->
+        <activity android:name="com.hw.nativeapp.ui.activity.WipedMainActivity"
+            android:configChanges="orientation|screenSize"
+            android:theme="@style/ThemeNoTitleBar" />
+
+        <!--  黑核销记录  -->
+        <activity android:name="com.hw.nativeapp.ui.activity.WipedRecordActivity"
+            android:configChanges="orientation|screenSize"
+            android:theme="@style/ThemeNoTitleBar" />
+
         <!--  查询结果页面  -->
         <activity android:name="com.hw.nativeapp.ui.activity.PurchaseInfoActivity"
             android:configChanges="orientation|screenSize"

+ 270 - 0
app/src/main/java/com/hw/nativeapp/entity/PdaWipedRecordVo.java

@@ -0,0 +1,270 @@
+package com.hw.nativeapp.entity;
+
+import java.util.Date;
+
+public class PdaWipedRecordVo {
+
+    /**
+     * 订单号
+     */
+    private String orderId;
+    /**
+     * 观影人ID
+     */
+    private String viewerId;
+    /**
+     * 用户ID
+     */
+    private String userId;
+
+    /**
+     * 观影人名称
+     */
+    private String viewerName;
+    /**
+     * 座位名称
+     */
+    private String seatName;
+    /**
+     * 座位类型名称
+     */
+    private String seatTypeName;
+    /**
+     * 订单来源
+     */
+    private Integer source;
+    /**
+     * 订单状态
+     */
+    private Integer status;
+    /**
+     * 演出厅名称
+     */
+    private String auditoriumName;
+    /**
+     * 节目名称
+     */
+    private String performName;
+    /**
+     * 节目播出日期
+     */
+    private String performDate;
+    /** 演出时段开始 */
+    private String performTimeStart;
+    /** 演出时段结束 */
+    private String performTimeEnd;
+    /**
+     * 观影人手机号
+     */
+    private String viewerMobile;
+    /**
+     * 观影人身份证号
+     */
+    private String viewerIdcard;
+    /**
+     * 核销人姓名
+     */
+    private String wipedName;
+    /**
+     * 核销人工号
+     */
+    private String jobNum;
+
+    /**
+     * 核销时间
+     */
+    private String useTime;
+
+    /**
+     * 核销码
+     */
+    private String qrcodeNo;
+    /**
+     * 场馆名称
+     */
+    private String theatreName;
+    /**
+     * 票务名称
+     */
+    private String goodsName;
+    /**
+     * 订单来源
+     */
+    private String sourceName;
+
+    public String getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(String orderId) {
+        this.orderId = orderId;
+    }
+
+    public String getViewerId() {
+        return viewerId;
+    }
+
+    public void setViewerId(String viewerId) {
+        this.viewerId = viewerId;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getViewerName() {
+        return viewerName;
+    }
+
+    public void setViewerName(String viewerName) {
+        this.viewerName = viewerName;
+    }
+
+    public String getSeatName() {
+        return seatName;
+    }
+
+    public void setSeatName(String seatName) {
+        this.seatName = seatName;
+    }
+
+    public String getSeatTypeName() {
+        return seatTypeName;
+    }
+
+    public void setSeatTypeName(String seatTypeName) {
+        this.seatTypeName = seatTypeName;
+    }
+
+    public Integer getSource() {
+        return source;
+    }
+
+    public void setSource(Integer source) {
+        this.source = source;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public String getAuditoriumName() {
+        return auditoriumName;
+    }
+
+    public void setAuditoriumName(String auditoriumName) {
+        this.auditoriumName = auditoriumName;
+    }
+
+    public String getPerformName() {
+        return performName;
+    }
+
+    public void setPerformName(String performName) {
+        this.performName = performName;
+    }
+
+    public String getPerformDate() {
+        return performDate;
+    }
+
+    public void setPerformDate(String performDate) {
+        this.performDate = performDate;
+    }
+
+    public String getPerformTimeStart() {
+        return performTimeStart;
+    }
+
+    public void setPerformTimeStart(String performTimeStart) {
+        this.performTimeStart = performTimeStart;
+    }
+
+    public String getPerformTimeEnd() {
+        return performTimeEnd;
+    }
+
+    public void setPerformTimeEnd(String performTimeEnd) {
+        this.performTimeEnd = performTimeEnd;
+    }
+
+    public String getViewerMobile() {
+        return viewerMobile;
+    }
+
+    public void setViewerMobile(String viewerMobile) {
+        this.viewerMobile = viewerMobile;
+    }
+
+    public String getViewerIdcard() {
+        return viewerIdcard;
+    }
+
+    public void setViewerIdcard(String viewerIdcard) {
+        this.viewerIdcard = viewerIdcard;
+    }
+
+    public String getWipedName() {
+        return wipedName;
+    }
+
+    public void setWipedName(String wipedName) {
+        this.wipedName = wipedName;
+    }
+
+    public String getJobNum() {
+        return jobNum;
+    }
+
+    public void setJobNum(String jobNum) {
+        this.jobNum = jobNum;
+    }
+
+    public String getUseTime() {
+        return useTime;
+    }
+
+    public void setUseTime(String useTime) {
+        this.useTime = useTime;
+    }
+
+    public String getQrcodeNo() {
+        return qrcodeNo;
+    }
+
+    public void setQrcodeNo(String qrcodeNo) {
+        this.qrcodeNo = qrcodeNo;
+    }
+
+    public String getTheatreName() {
+        return theatreName;
+    }
+
+    public void setTheatreName(String theatreName) {
+        this.theatreName = theatreName;
+    }
+
+    public String getGoodsName() {
+        return goodsName;
+    }
+
+    public void setGoodsName(String goodsName) {
+        this.goodsName = goodsName;
+    }
+
+    public String getSourceName() {
+        return sourceName;
+    }
+
+    public void setSourceName(String sourceName) {
+        this.sourceName = sourceName;
+    }
+}

+ 41 - 0
app/src/main/java/com/hw/nativeapp/entity/WipedEntity.java

@@ -0,0 +1,41 @@
+package com.hw.nativeapp.entity;
+
+public class WipedEntity {
+
+    /**
+     * 二维码
+     */
+    private String qrcodeNo;
+    /**
+     * 手机号
+     */
+    private String mobile;
+    /**
+     * 观影人姓名
+     */
+    private String name;
+
+    public String getQrcodeNo() {
+        return qrcodeNo;
+    }
+
+    public void setQrcodeNo(String qrcodeNo) {
+        this.qrcodeNo = qrcodeNo;
+    }
+
+    public String getMobile() {
+        return mobile;
+    }
+
+    public void setMobile(String mobile) {
+        this.mobile = mobile;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+}

+ 10 - 0
app/src/main/java/com/hw/nativeapp/httpnet/ApiService.java

@@ -99,6 +99,16 @@ public interface ApiService {
             @Query("t") Long currtime
     );
 
+    /**
+     * 核销记录
+     * @param options
+     * @param currtime
+     * @return
+     */
+    @GET(COMMON + "/order/orderInfo/pdaWipedPageList")
+    Observable<ResponseData<JSONObject>> pdaWipedPageList(@QueryMap Map< String,String> options,
+                                                    @Query("t") Long currtime);
+
     // 二要数认证
     @POST(COMMON + "/thirdapi/identity/factorAuth")
     Observable<ResponseData<JSONObject>> factorAuth(

+ 2 - 6
app/src/main/java/com/hw/nativeapp/ui/activity/MainActivity.java

@@ -57,14 +57,10 @@ public class MainActivity extends BaseActivity  {
     public void onClick(View v){
         switch (v.getId()){
             case R.id.write_off_btn:
-                ActivityUtils.launchActivity(this,InfoQueryActivity.class);
+                ActivityUtils.launchActivity(this,WipedMainActivity.class);
                 break;
             case R.id.history_btn:
-                Toast msg = Toast.makeText(MainActivity.this, "该功能正在开发中!", Toast.LENGTH_SHORT);
-//                msg.setGravity(Gravity.CENTER, 0, 0);
-                msg.show();
-//                printTest();
-
+                ActivityUtils.launchActivity(this,WipedRecordActivity.class);
                 break;
             case R.id.img_setting:
                 ActivityUtils.launchActivity(this,SettingActivity.class);

+ 32 - 9
app/src/main/java/com/hw/nativeapp/ui/activity/PurchaseInfoActivity.java

@@ -22,6 +22,7 @@ import com.hjq.bar.TitleBar;
 import com.hw.nativeapp.MApplication;
 import com.hw.nativeapp.R;
 import com.hw.nativeapp.config.enums.IntegerEnum;
+import com.hw.nativeapp.entity.WipedEntity;
 import com.hw.nativeapp.httpnet.ErrorConsumer;
 import com.hw.nativeapp.httpnet.ResponseConsumer;
 import com.hw.nativeapp.httpnet.entity.PageAsk;
@@ -37,6 +38,8 @@ import com.scwang.smartrefresh.layout.footer.ClassicsFooter;
 import com.scwang.smartrefresh.layout.header.ClassicsHeader;
 
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -69,8 +72,9 @@ public class PurchaseInfoActivity extends BaseActivity  {
 
     private ProgressDialog progressDialog;
 
-    private String qrcodeNo = "";
-    private String idcard = "";
+
+    WipedEntity wipedEntity = new WipedEntity();
+
     private JSONArray viewerList = new JSONArray();
 
     private JSONArray dataList = new JSONArray();
@@ -143,6 +147,12 @@ public class PurchaseInfoActivity extends BaseActivity  {
     private void setDataList(boolean cleaned){
         if (dataList != null && !dataList.isEmpty()){
             List<handleBean> rowbeans = JSONArray.parseArray(JSON.toJSONString(dataList), handleBean.class);
+            Collections.sort(rowbeans, new Comparator<handleBean>() {
+                @Override
+                public int compare(handleBean o1, handleBean o2) {
+                    return Integer.compare(o1.status, o2.status);
+                }
+            });
             reflashLoadData(rowbeans, cleaned);
             emptyShow(false);
         }else {
@@ -153,8 +163,11 @@ public class PurchaseInfoActivity extends BaseActivity  {
     //获取页面传递参数
     private void getPageTransmitParams(){
         Intent transmitIntent = getIntent();
-        qrcodeNo = transmitIntent.getStringExtra("qrcodeNo");
-        idcard = transmitIntent.getStringExtra("idcard");
+        wipedEntity.setQrcodeNo(transmitIntent.getStringExtra("qrcodeNo"));
+        wipedEntity.setMobile(transmitIntent.getStringExtra("mobile"));
+        wipedEntity.setName(transmitIntent.getStringExtra("name"));
+//        qrcodeNo = transmitIntent.getStringExtra("qrcodeNo");
+//        idcard = transmitIntent.getStringExtra("idcard");
     }
 
     private void reflashFinish(){
@@ -210,11 +223,14 @@ public class PurchaseInfoActivity extends BaseActivity  {
 
     private void getDataList(boolean cleaned){
         Map< String,String> options = new HashMap<>();
-        if(qrcodeNo != null && !qrcodeNo.isEmpty()){
-            options.put("qrcodeNo", qrcodeNo);
+        if (!StringUtils.isEmpty(wipedEntity.getQrcodeNo())){
+            options.put("qrcodeNo", wipedEntity.getQrcodeNo());
         }
-        if(idcard != null && !idcard.isEmpty()){
-            options.put("idcard", idcard);
+        if (!StringUtils.isEmpty(wipedEntity.getMobile())){
+            options.put("mobile", wipedEntity.getMobile());
+        }
+        if (!StringUtils.isEmpty(wipedEntity.getName())){
+            options.put("name", wipedEntity.getName());
         }
         options.put("orderStatusIn","0,3,4,5,6,7,8,9");
         MApplication.getApiService().getValidList( options, System.currentTimeMillis() / 1000)
@@ -234,6 +250,12 @@ public class PurchaseInfoActivity extends BaseActivity  {
                         }
                         if (rows != null && !rows.isEmpty()){
                             List<handleBean> rowbeans = JSONArray.parseArray(JSON.toJSONString(rows), handleBean.class);
+                            Collections.sort(rowbeans, new Comparator<handleBean>() {
+                                @Override
+                                public int compare(handleBean o1, handleBean o2) {
+                                    return Integer.compare(o1.status, o2.status);
+                                }
+                            });
                             reflashLoadData(rowbeans, cleaned);
                             emptyShow(false);
                         }else {
@@ -281,7 +303,6 @@ public class PurchaseInfoActivity extends BaseActivity  {
         }
         if(listObj.size() == 0) {
             Toast msg = Toast.makeText(this, "请勾选需要核销的数据!", Toast.LENGTH_SHORT);
-//            msg.setGravity(Gravity.CENTER, 0, 0);
             msg.show();
             return;
         }
@@ -332,4 +353,6 @@ public class PurchaseInfoActivity extends BaseActivity  {
                 }, new ErrorConsumer());
     }
 
+
+
 }

+ 137 - 0
app/src/main/java/com/hw/nativeapp/ui/activity/WipedMainActivity.java

@@ -0,0 +1,137 @@
+package com.hw.nativeapp.ui.activity;
+import android.app.ProgressDialog;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Handler;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import com.google.zxing.integration.android.IntentIntegrator;
+import com.google.zxing.integration.android.IntentResult;
+import com.hjq.bar.OnTitleBarListener;
+import com.hjq.bar.TitleBar;
+import com.hw.nativeapp.MApplication;
+import com.hw.nativeapp.R;
+import com.hw.nativeapp.httpnet.ErrorConsumer;
+import com.hw.nativeapp.httpnet.ResponseConsumer;
+import com.hw.nativeapp.utils.ActivityUtils;
+import com.hw.nativeapp.utils.MaskUtil;
+import com.hw.nativeapp.utils.RxUtil;
+import com.hw.nativeapp.utils.StringUtils;
+import com.hw.nativeapp.utils.ToastUtils;
+import com.xw.repo.XEditText;
+
+import java.util.Objects;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+
+public class WipedMainActivity extends BaseActivity  {
+
+    private TitleBar titleBar;
+
+    @BindView(R.id.et_qrcodeNo)
+    XEditText et_qrcodeNo;
+    @BindView(R.id.et_mobile)
+    XEditText et_mobile;
+    @BindView(R.id.et_viewerName)
+    XEditText et_viewerName;
+
+    private String idcard = "";
+    private String scanCode = "";
+    @Override
+    void initView() {
+        titleBar = findViewById(R.id.tb_main_bar);
+        titleBar.setOnTitleBarListener(new OnTitleBarListener() {
+            @Override
+            public void onLeftClick(View v) {
+                ActivityUtils.activityFinish(WipedMainActivity.this, true );
+            }
+
+            @Override
+            public void onTitleClick(View v) {
+
+            }
+
+            @Override
+            public void onRightClick(View v) {
+
+            }
+        });
+    }
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_wiped_main);
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+    }
+
+    @OnClick({R.id.ll_scan_search, R.id.btn_search})
+    public void onClick(View v){
+        switch (v.getId()){
+            case R.id.ll_scan_search:
+                startScanCode();
+                break;
+            case R.id.btn_search:
+                commonSearch();
+                break;
+        }
+    }
+
+    // 核销码
+    private void commonSearch(){
+        String qrcodeNo = Objects.requireNonNull(et_qrcodeNo.getText()).toString();
+        String mobile = Objects.requireNonNull(et_mobile.getText()).toString();
+        String viewerName = Objects.requireNonNull(et_viewerName.getText()).toString();
+        if (StringUtils.isEmpty(qrcodeNo) && StringUtils.isEmpty(mobile) && StringUtils.isEmpty(viewerName)){
+            ToastUtils.showShortToast(this, "请至少输入一个查询条件");
+            return;
+        }
+        Bundle bundle = new Bundle();
+        if (!StringUtils.isEmpty(qrcodeNo)){
+            bundle.putString("qrcodeNo", qrcodeNo);
+        }
+        if (!StringUtils.isEmpty(mobile)){
+            bundle.putString("mobile", mobile);
+        }
+        if (!StringUtils.isEmpty(viewerName)){
+            bundle.putString("name", viewerName);
+        }
+        ActivityUtils.launchActivity(WipedMainActivity.this,PurchaseInfoActivity.class, bundle);
+    }
+
+    private void startScanCode(){
+        new IntentIntegrator(this)
+                .setDesiredBarcodeFormats(IntentIntegrator.ALL_CODE_TYPES)// 扫码的类型,可选:一维码,二维码,一/二维码
+                .setPrompt("")// 设置提示语
+                .setCaptureActivity(ScanQRCodeActivity.class)
+                .addExtra("scanTimes", "请扫码")
+                .setCameraId(0)// 选择摄像头,可使用前置或者后置
+                .setBeepEnabled(true)// 是否开启声音,扫完码之后会"哔"的一声
+                .setBarcodeImageEnabled(false)// 扫完码之后生成二维码的图片
+                .initiateScan();// 初始化扫码
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data){
+        IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
+        if(resultCode != 0){
+            scanCode = result.getContents();
+            if(scanCode != null && scanCode.isEmpty() ){
+                Toast msg = Toast.makeText(this, "扫描核销码不能为空!", Toast.LENGTH_SHORT);
+//                msg.setGravity(Gravity.CENTER, 0, 0);
+                msg.show();
+                return;
+            }
+            Bundle bundle = new Bundle();
+            bundle.putString("qrcodeNo", scanCode);
+            ActivityUtils.launchActivity(WipedMainActivity.this,PurchaseInfoActivity.class, bundle);
+        }
+    }
+}

+ 243 - 0
app/src/main/java/com/hw/nativeapp/ui/activity/WipedRecordActivity.java

@@ -0,0 +1,243 @@
+package com.hw.nativeapp.ui.activity;
+
+import android.app.Dialog;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.hjq.bar.OnTitleBarListener;
+import com.hjq.bar.TitleBar;
+import com.hw.nativeapp.MApplication;
+import com.hw.nativeapp.R;
+import com.hw.nativeapp.entity.PdaWipedRecordVo;
+import com.hw.nativeapp.httpnet.ErrorConsumer;
+import com.hw.nativeapp.httpnet.ResponseConsumer;
+import com.hw.nativeapp.httpnet.entity.PageAsk;
+import com.hw.nativeapp.ui.activity.adapters.WipedRecordAdapter;
+import com.hw.nativeapp.ui.dialogs.DialogDatePick;
+import com.hw.nativeapp.ui.dialogs.Dialog_Update;
+import com.hw.nativeapp.utils.ActivityUtils;
+import com.hw.nativeapp.utils.DateUtils;
+import com.hw.nativeapp.utils.RxUtil;
+import com.hw.nativeapp.utils.ToastUtils;
+import com.scwang.smartrefresh.layout.SmartRefreshLayout;
+import com.scwang.smartrefresh.layout.footer.ClassicsFooter;
+import com.scwang.smartrefresh.layout.header.ClassicsHeader;
+import com.xw.repo.XEditText;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+
+public class WipedRecordActivity extends BaseActivity  {
+
+    //列表相关
+    @BindView(R.id.list_stock)
+    RecyclerView listStock;
+    @BindView(R.id.refreshLayout)
+    SmartRefreshLayout refreshLayout;
+    @BindView(R.id.tx_noDataShow)
+    TextView tx_noDataShow;
+
+
+    //查询相关
+    @BindView(R.id.et_searchStartTime)
+    TextView et_searchStartTime;
+    @BindView(R.id.et_searchEndTime)
+    TextView et_searchEndTime;
+
+
+    private TitleBar titleBar;
+
+    private PageAsk pageAsk = new PageAsk();
+    private WipedRecordAdapter adapter;
+
+
+
+    private JSONArray dataList = new JSONArray();
+    @Override
+    void initView() {
+        titleBar = findViewById(R.id.tb_main_bar);
+        titleBar.setOnTitleBarListener(new OnTitleBarListener() {
+
+            @Override
+            public void onLeftClick(View v) {
+                ActivityUtils.activityFinish(WipedRecordActivity.this, true );
+            }
+
+            @Override
+            public void onTitleClick(View v) {
+
+            }
+
+            @Override
+            public void onRightClick(View v) {
+
+            }
+        });
+        initListView();
+        initLoadData();
+    }
+
+
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_wiped_record);
+    }
+
+    @Override
+    protected void onStart() {
+        super.onStart();
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+    }
+
+    @OnClick({R.id.btn_search,R.id.et_searchStartTime,R.id.et_searchEndTime})
+    public void onClick(View v){
+        switch (v.getId()){
+            case R.id.btn_search:
+                initLoadData();
+                break;
+
+            case R.id.et_searchStartTime:
+                showTimeSelect((TextView) v);
+                break;
+            case R.id.et_searchEndTime:
+                showTimeSelect((TextView) v);
+                break;
+        }
+    }
+
+    private void cleanSearch(){
+        et_searchStartTime.setText("");
+        et_searchEndTime.setText("");
+    }
+
+
+    private void reflashFinish(){
+        if (refreshLayout != null){
+            refreshLayout.finishRefresh();
+            refreshLayout.finishLoadMore();
+        }
+    }
+    private void initListView(){
+        //线性布局
+        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
+        linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
+        listStock.setLayoutManager(linearLayoutManager);
+
+        adapter = new WipedRecordAdapter(this);
+
+        listStock.setAdapter(adapter);
+
+        //下拉刷新
+        refreshLayout.setRefreshHeader(new ClassicsHeader(this));
+        //上拉加载
+        refreshLayout.setRefreshFooter(new ClassicsFooter(this));
+        //为下来刷新添加事件
+        refreshLayout.setOnRefreshListener(refreshlayout -> initLoadData());
+        //为上拉下载添加事件
+        refreshLayout.setOnLoadMoreListener(refreshlayout -> {
+            if (pageAsk.pageNum > pageAsk.pageCount){
+                ToastUtils.showLongToast(WipedRecordActivity.this, "没有太多数据了");
+                refreshlayout.finishLoadMore();
+            }else{
+                pageAsk.pageNum++;
+                getDataList(false);
+            }
+        });
+
+        et_searchStartTime.setText(DateUtils.formatDate(new Date(),"yyyy-MM-dd"));
+        et_searchEndTime.setText(DateUtils.formatDate(new Date(),"yyyy-MM-dd"));
+    }
+
+    private void initLoadData(){
+        pageAsk.pageNum = 1;
+        pageAsk.pageSize = 20;
+        getDataList(true);
+    }
+
+    private void getDataList(boolean cleaned){
+        Map< String,String> options = new HashMap<>();
+        options.put("pageNum",pageAsk.pageNum+"");
+        options.put("pageSize",pageAsk.pageSize+"");
+        options.put("startTime",et_searchStartTime.getText().toString());
+        options.put("endTime",et_searchEndTime.getText().toString());
+        MApplication.getApiService().pdaWipedPageList( options, System.currentTimeMillis() / 1000)
+                .compose(RxUtil.applyObservableAsync())
+                .subscribe(new ResponseConsumer<JSONObject>() {
+                    @Override
+                    public void onSuccess(JSONObject data) {
+                        JSONArray rows = data.getJSONArray("rows");
+
+                        dataList = rows;
+
+                        if (rows != null && !rows.isEmpty()){
+                            List<PdaWipedRecordVo> rowbeans = rows.toJavaList(PdaWipedRecordVo.class);
+                            reflashLoadData(rowbeans, cleaned);
+                            emptyShow(false);
+                        }else {
+                            emptyShow(true);
+                        }
+                        reflashFinish();
+                    }
+
+                    @Override
+                    public void onFailed(int code, String msg) {
+                        reflashFinish();
+                    }
+                }, new ErrorConsumer());
+    }
+
+    private void emptyShow(boolean empty){
+        if (empty){
+            tx_noDataShow.setVisibility(View.VISIBLE);
+            refreshLayout.setVisibility(View.GONE);
+        }else{
+            refreshLayout.setVisibility(View.VISIBLE);
+            tx_noDataShow.setVisibility(View.GONE);
+        }
+
+    }
+
+    private void reflashLoadData(List<PdaWipedRecordVo> rows, boolean cleared){
+        if (adapter == null){
+            return;
+        }
+        if (cleared){
+            adapter.clearDatas();
+        }
+        adapter.addDatas(rows);
+    }
+
+
+    private void showTimeSelect(TextView textView){
+        DialogDatePick.Builder dialog = new DialogDatePick.Builder(this);
+        dialog.setTitle("选择时间")
+                .setPositionButton("确定", (dialog1, time) -> {
+                    textView.setText(time);
+                    dialog1.dismiss();
+                }).create().show();
+    }
+
+
+
+}

+ 6 - 1
app/src/main/java/com/hw/nativeapp/ui/activity/WriteOffSuccessActivity.java

@@ -6,6 +6,8 @@ import android.view.View;
 
 import com.hjq.bar.TitleBar;
 import com.hw.nativeapp.R;
+import com.hw.nativeapp.utils.ActivityUtils;
+
 import butterknife.OnClick;
 
 
@@ -35,7 +37,7 @@ public class WriteOffSuccessActivity extends BaseActivity  {
     protected void onDestroy() {
         super.onDestroy();
     }
-    @OnClick({R.id.btn_complete})
+    @OnClick({R.id.btn_complete,R.id.btn_keepGoOn})
     public void onClick(View v){
         switch (v.getId()){
             case R.id.btn_complete:
@@ -44,6 +46,9 @@ public class WriteOffSuccessActivity extends BaseActivity  {
                 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                 startActivity(intent);
                 break;
+            case R.id.btn_keepGoOn:
+                ActivityUtils.launchActivity(this,WipedMainActivity.class);
+                break;
         }
     }
 }

+ 9 - 5
app/src/main/java/com/hw/nativeapp/ui/activity/adapters/PurchaseInfoAdapter.java

@@ -70,7 +70,7 @@ public class PurchaseInfoAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
 
         //日期
         Date pStart = DateUtils.parse(detailBean.performStart,DateUtils.DATE_TIME_PATTERN);
-        Date pEnd = DateUtils.parse(detailBean.performStart,DateUtils.DATE_TIME_PATTERN);;
+        Date pEnd = DateUtils.parse(detailBean.performEnd,DateUtils.DATE_TIME_PATTERN);;
         String shwoTime = DateUtils.getDateString(pStart,"MM月dd日 HH:mm") + "-" +
                 DateUtils.getDateString(pEnd,"HH:mm");
 
@@ -87,15 +87,19 @@ public class PurchaseInfoAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
             normalHolder.ll_item.setOnClickListener(v -> {
                 detailBean.checkedStatus =  !normalHolder.cb_check.isChecked();
                 normalHolder.cb_check.setChecked(detailBean.checkedStatus);
-                mOnOutBtnClickListerer.onClick(detailBean, position);
+                if (mOnOutBtnClickListerer != null){
+                    mOnOutBtnClickListerer.onClick(detailBean, position);
+                }
+
             });
         }else {
             normalHolder.cb_check.setVisibility(View.INVISIBLE);
         }
-
         normalHolder.cb_check.setOnCheckedChangeListener((buttonView, isChecked) -> {
-            detailBean.checkedStatus =  normalHolder.cb_check.isChecked();
-            mOnOutBtnClickListerer.onClick(detailBean, position);
+                detailBean.checkedStatus =  normalHolder.cb_check.isChecked();
+            if (mOnOutBtnClickListerer != null){
+                mOnOutBtnClickListerer.onClick(detailBean, position);
+            }
         });
 
     }

+ 81 - 0
app/src/main/java/com/hw/nativeapp/ui/activity/adapters/WipedRecordAdapter.java

@@ -0,0 +1,81 @@
+package com.hw.nativeapp.ui.activity.adapters;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.hw.nativeapp.R;
+import com.hw.nativeapp.config.enums.IntegerEnum;
+import com.hw.nativeapp.entity.PdaWipedRecordVo;
+import com.hw.nativeapp.httpnet.entity.handleBean;
+import com.hw.nativeapp.ui.activity.holders.PurchaseInfoHolder;
+import com.hw.nativeapp.ui.activity.holders.WipedHolder;
+import com.hw.nativeapp.utils.DateUtils;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class WipedRecordAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
+
+
+    private Context mContext;
+    private List<PdaWipedRecordVo> mDatas ;
+
+
+
+    public WipedRecordAdapter(Context context) {
+        mContext = context;
+        mDatas = new ArrayList<>();
+    }
+
+    public void addDatas(List<PdaWipedRecordVo> datas){
+        if (mDatas == null){
+            mDatas = new ArrayList<>();
+        }
+        mDatas.addAll(datas);
+        notifyDataSetChanged();
+    }
+
+    public void clearDatas(){
+        if (mDatas != null){
+            mDatas.clear();
+        }
+    }
+
+    @NonNull
+    @Override
+    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+        View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_wiped_record, parent, false);
+        return new WipedHolder(itemView);
+    }
+
+    @Override
+    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
+        WipedHolder normalHolder = (WipedHolder) holder;
+        PdaWipedRecordVo recordVo = mDatas.get(position);
+        if (recordVo == null){
+            return;
+        }
+        normalHolder.tx_orderId.setText(recordVo.getOrderId());
+        normalHolder.tx_theatreName.setText(recordVo.getTheatreName());
+        normalHolder.tx_auditoriumName.setText(recordVo.getAuditoriumName());
+        normalHolder.tx_performName.setText(recordVo.getPerformName());
+        normalHolder.tx_goodsName.setText(recordVo.getGoodsName());
+        normalHolder.tx_timeName.setText(recordVo.getPerformDate() + " "+ recordVo.getPerformTimeStart() + " - " + recordVo.getPerformTimeEnd());
+        normalHolder.tx_seatName.setText(recordVo.getSeatName());
+        normalHolder.tx_sourceName.setText(recordVo.getSourceName());
+        normalHolder.tx_useName.setText(recordVo.getWipedName() + " " + recordVo.getUseTime());
+    }
+
+    @Override
+    public int getItemCount() {
+        return mDatas.size();
+    }
+
+
+}

+ 38 - 0
app/src/main/java/com/hw/nativeapp/ui/activity/holders/WipedHolder.java

@@ -0,0 +1,38 @@
+package com.hw.nativeapp.ui.activity.holders;
+
+import android.view.View;
+import android.widget.CheckBox;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.hw.nativeapp.R;
+
+public class WipedHolder extends RecyclerView.ViewHolder{
+
+    public TextView tx_orderId;
+    public TextView tx_performName;
+    public TextView tx_theatreName;
+    public TextView tx_auditoriumName;
+    public TextView tx_goodsName;
+    public TextView tx_timeName;
+    public TextView tx_seatName;
+    public TextView tx_sourceName;
+    public TextView tx_useName;
+
+    public WipedHolder(@NonNull View itemView) {
+        super(itemView);
+
+        tx_orderId = (TextView) itemView.findViewById(R.id.tx_orderId);
+        tx_performName = (TextView) itemView.findViewById(R.id.tx_performName);
+        tx_theatreName = (TextView) itemView.findViewById(R.id.tx_theatreName);
+        tx_auditoriumName = (TextView) itemView.findViewById(R.id.tx_auditoriumName);
+        tx_goodsName = (TextView) itemView.findViewById(R.id.tx_goodsName);
+        tx_timeName = (TextView) itemView.findViewById(R.id.tx_timeName);
+        tx_seatName = (TextView) itemView.findViewById(R.id.tx_seatName);
+        tx_sourceName = (TextView) itemView.findViewById(R.id.tx_sourceName);
+        tx_useName = (TextView) itemView.findViewById(R.id.tx_useName);
+    }
+}

+ 107 - 0
app/src/main/java/com/hw/nativeapp/ui/dialogs/DialogDatePick.java

@@ -0,0 +1,107 @@
+package com.hw.nativeapp.ui.dialogs;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.widget.Button;
+import android.widget.DatePicker;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.blankj.utilcode.util.StringUtils;
+import com.hw.nativeapp.R;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+
+public class DialogDatePick extends Dialog {
+
+    public DialogDatePick(Context mcontext) {
+        super(mcontext);
+    }
+
+    public DialogDatePick(Context context, int themeResId){
+        super(context, themeResId);
+    }
+
+    public static class Builder {
+        private Context context;
+        private String title;//抬头信息
+        private String oldcontent;//修改前旧数据
+        private String negative_text;//消极的
+        private String positive_text;//积极的
+        private boolean negativeShow = false;
+        private boolean positiveShow = false;
+//        private OnClickListener positiveListener;//积极的监听
+        private OnBtnClickListerer btnClickListerer;//积极的监听
+
+        public Builder(Context context) {
+            this.context = context;
+        }
+
+
+        public Builder setTitle(String title) {
+            if (StringUtils.isEmpty(title)) {
+                this.title = "温馨提示";
+            }
+            this.title = title;
+            return this;
+        }
+
+
+
+
+        public Builder setPositionButton(String positive_text, OnBtnClickListerer positiveListener) {
+            if (positive_text == null) {
+                this.positive_text = "确定";
+            }
+            this.positive_text = positive_text;
+            this.btnClickListerer = positiveListener;
+            this.positiveShow = true;
+            return this;
+        }
+
+
+        private DatePicker dp_time;
+        private Button btn_enter;
+
+
+
+        public DialogDatePick create() {
+            final DialogDatePick dialog = new DialogDatePick(context);
+            View view = LayoutInflater.from(context).inflate(R.layout.dialog_date, null);
+            dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);//加上这一句,取消原来的标题栏,没加这句之前,发现在三星的手机上会有一条蓝色的线
+            dialog.setContentView(view, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
+            dp_time = (DatePicker) view.findViewById(R.id.dp_time);
+            btn_enter = (Button) view.findViewById(R.id.btn_enter);
+
+            dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
+            btn_enter.setOnClickListener(v -> btnClickListerer.onClick(dialog,getDateTime()));
+
+            return dialog;
+        }
+
+        private String getDateTime(){
+            int year = dp_time.getYear();
+            int month = dp_time.getMonth(); // 注意:月份是从0开始的
+            int day = dp_time.getDayOfMonth();
+
+            // 将月份和日期转换为其正确的表示形式
+
+            // 将获取的年月日组合成一个日期格式的字符串
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            String dateString = sdf.format(new Date(year - 1900, month, day));
+            return dateString;
+        }
+
+        public interface OnBtnClickListerer{
+            void onClick(DialogDatePick dialog, String time);
+        }
+    }
+}

+ 8 - 0
app/src/main/java/com/hw/nativeapp/utils/DateUtils.java

@@ -205,6 +205,14 @@ public class DateUtils {
         return new Date();
     }
 
+    public static String formatDate(Date date, String pattern) {
+        return getSDFormat(pattern).format(date);
+    }
+
+    // 指定模式的时间格式
+    private static SimpleDateFormat getSDFormat(String pattern) {
+        return new SimpleDateFormat(pattern);
+    }
 
     /**
      * 获取某一天00:00:00

+ 1 - 1
app/src/main/res/drawable/bg_btn_01.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <shape xmlns:android="http://schemas.android.com/apk/res/android"><!--首页搜索框样式-->
     <solid android:color="#ff2e79f1" />
-    <corners android:radius="15dp" />
+    <corners android:radius="6dp" />
 </shape>

+ 10 - 0
app/src/main/res/drawable/shape_btnbule.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <stroke android:width="1sp"
+        android:color="@color/blue" />
+
+    <solid android:color="@android:color/transparent"/>
+
+
+</shape>

+ 10 - 0
app/src/main/res/drawable/shape_btngray.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <stroke android:width="1sp"
+        android:color="@color/gray" />
+
+    <solid android:color="@android:color/transparent"/>
+
+
+</shape>

+ 7 - 0
app/src/main/res/drawable/shape_dashed_line.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <stroke android:width="1dp"
+        android:color="@color/gray"
+        android:dashWidth="4dp"
+        android:dashGap="2dp"/>
+</shape>

+ 4 - 4
app/src/main/res/layout/activity_info_query.xml

@@ -10,13 +10,13 @@
         android:id="@+id/tb_main_bar"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:background="@color/login_bk"
-        app:leftColor="@color/white"
-        app:leftIcon="@mipmap/left_icon"
+        android:background="@color/white"
+        app:leftColor="@color/black"
+        app:leftIcon="@mipmap/img_left_black"
         app:leftSize="15sp"
         app:leftTitle="返回"
         app:title="票务查询"
-        app:titleColor="@color/white"
+        app:titleColor="@color/black"
         app:titleSize="18sp" />
 
     <ScrollView

+ 4 - 4
app/src/main/res/layout/activity_purchase_info.xml

@@ -10,13 +10,13 @@
         android:id="@+id/tb_main_bar"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:background="@color/login_bk"
-        app:leftColor="@color/white"
-        app:leftIcon="@mipmap/left_icon"
+        android:background="@color/white"
+        app:leftColor="@color/black"
+        app:leftIcon="@mipmap/img_left_black"
         app:leftSize="15sp"
         app:leftTitle="返回"
         app:title="查询结果"
-        app:titleColor="@color/white"
+        app:titleColor="@color/black"
         app:titleSize="18sp" />
 
     <LinearLayout

+ 129 - 0
app/src/main/res/layout/activity_wiped_main.xml

@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@mipmap/page_bj">
+
+    <com.hjq.bar.TitleBar
+        android:id="@+id/tb_main_bar"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@color/white"
+        app:leftColor="@color/white"
+        app:leftIcon="@mipmap/img_left_black"
+        app:leftSize="15sp"
+        app:leftTitle="返回"
+        app:title="票务查询"
+        app:titleColor="@color/black"
+        app:titleSize="18sp" />
+
+    <ScrollView
+
+        android:id="@+id/sv"
+        android:layout_below="@+id/tb_main_bar"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_gravity="top"
+            android:background="@color/white"
+            android:orientation="vertical"
+            android:padding="20sp">
+
+            <LinearLayout
+                android:id="@+id/ll_scan_search"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_gravity="center"
+                android:gravity="center"
+                android:layout_marginTop="40sp"
+                android:background="@drawable/bg_btn_01"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="100sp"
+                    android:gravity="center"
+                    android:padding="10sp"
+                    android:text="扫取票码查询"
+                    android:textColor="@color/white"
+                    android:textFontWeight="800"
+                    android:textSize="24sp" />
+
+                <ImageView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:src="@mipmap/scan_code_wite"/>
+            </LinearLayout>
+
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_gravity="center"
+                android:gravity="center"
+                android:layout_marginTop="60sp"
+                android:orientation="vertical">
+
+                <com.xw.repo.XEditText
+                    android:id="@+id/et_qrcodeNo"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:background="@drawable/shape_btngray"
+                    android:textColor="@color/black"
+                    android:hint="请输入核销码"
+                    android:text=""
+                    android:textColorHint="@color/gray"
+                    android:padding="10sp"
+                    android:inputType="text"
+                    app:x_clearDrawable="@mipmap/ic_del"/>
+
+                <com.xw.repo.XEditText
+                    android:id="@+id/et_mobile"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="26sp"
+                    android:background="@drawable/shape_btngray"
+                    android:textColor="@color/black"
+                    android:hint="请输入手机号"
+                    android:text=""
+                    android:textColorHint="@color/gray"
+                    android:padding="10sp"
+                    android:inputType="text"
+                    app:x_clearDrawable="@mipmap/ic_del"/>
+
+                <com.xw.repo.XEditText
+                    android:id="@+id/et_viewerName"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="26sp"
+                    android:background="@drawable/shape_btngray"
+                    android:textColor="@color/black"
+                    android:hint="请输入购票人/观影人姓名"
+                    android:text=""
+                    android:textColorHint="@color/gray"
+                    android:padding="10sp"
+                    android:inputType="text"
+                    app:x_clearDrawable="@mipmap/ic_del"/>
+
+                <Button
+                    android:id="@+id/btn_search"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="40sp"
+                    android:text="查询"
+                    android:textSize="26sp"
+                    android:textColor="@color/blue"
+                    android:background="@drawable/shape_btnbule"/>
+
+            </LinearLayout>
+
+        </LinearLayout>
+    </ScrollView>
+
+</RelativeLayout>

+ 134 - 0
app/src/main/res/layout/activity_wiped_record.xml

@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@mipmap/page_bj">
+
+    <com.hjq.bar.TitleBar
+        android:id="@+id/tb_main_bar"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@color/white"
+        app:leftColor="@color/black"
+        app:leftIcon="@mipmap/img_left_black"
+        app:leftSize="15sp"
+        app:leftTitle="返回"
+        app:title="核销记录"
+        app:titleColor="@color/black"
+        app:titleSize="18sp" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_gravity="top"
+        android:layout_marginTop="70sp"
+        android:layout_marginLeft="10sp"
+        android:layout_marginRight="10sp"
+        android:background="@drawable/bg_take"
+        android:orientation="vertical"
+        android:padding="4sp">
+
+        <LinearLayout
+            android:gravity="center"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textColor="@color/black"
+                android:text="日期:"/>
+
+            <TextView
+                android:id="@+id/et_searchStartTime"
+                android:layout_width="100sp"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="4sp"
+                android:background="@drawable/shape_btngray"
+                android:textColor="@color/black"
+                tools:text="2024-07-01"
+                android:textColorHint="@color/gray"
+                android:paddingTop="4sp"
+                android:paddingBottom="4sp"
+                android:paddingLeft="6sp"
+                android:paddingRight="6sp"/>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textColor="@color/black"
+                android:paddingLeft="4sp"
+                android:paddingRight="4sp"
+                android:text="-"/>
+
+            <TextView
+                android:id="@+id/et_searchEndTime"
+                android:layout_width="100sp"
+                android:layout_height="wrap_content"
+                android:background="@drawable/shape_btngray"
+                android:textColor="@color/black"
+                tools:text="2024-07-01"
+                android:textColorHint="@color/gray"
+                android:paddingTop="4sp"
+                android:paddingBottom="4sp"
+                android:paddingLeft="6sp"
+                android:paddingRight="6sp" />
+            <Button
+                android:id="@+id/btn_search"
+                android:background="@drawable/bg_corners_05"
+                android:layout_marginLeft="6sp"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textColor="@color/white"
+                android:text="搜索"/>
+
+        </LinearLayout>
+        <ScrollView
+            android:id="@+id/sv"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@+id/tb_main_bar">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginBottom="10sp"
+                android:gravity="center"
+                android:orientation="vertical">
+
+                <TextView
+                    android:id="@+id/tx_noDataShow"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:layout_below="@+id/tb_main_bar"
+                    android:padding="40dp"
+                    android:gravity="center"
+                    android:text="没有核销数据"
+                    android:textSize="14sp"
+                    android:visibility="gone" />
+
+                <com.scwang.smartrefresh.layout.SmartRefreshLayout
+                    android:id="@+id/refreshLayout"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:layout_below="@+id/tb_main_bar">
+
+                    <androidx.recyclerview.widget.RecyclerView
+                        android:id="@+id/list_stock"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent" />
+
+                </com.scwang.smartrefresh.layout.SmartRefreshLayout>
+            </LinearLayout>
+        </ScrollView>
+    </LinearLayout>
+
+
+</RelativeLayout>

+ 11 - 0
app/src/main/res/layout/activity_write_off_success.xml

@@ -42,6 +42,17 @@
                     android:scaleType="fitXY"
                     android:src="@mipmap/img_success"/>
 
+                <Button
+                    android:id="@+id/btn_keepGoOn"
+                    android:layout_height="wrap_content"
+                    android:layout_width="240sp"
+                    android:textSize="24sp"
+                    android:gravity="center"
+                    android:textColor="@color/white"
+                    android:layout_marginTop="30sp"
+                    android:background="@drawable/bg_corners_05"
+                    android:text="继续核销"/>
+
                 <TextView
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"

+ 31 - 0
app/src/main/res/layout/dialog_date.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:gravity="center"
+    android:background="@color/white"
+    android:orientation="vertical" >
+
+    <LinearLayout
+        android:layout_margin="10sp"
+        android:orientation="vertical"
+        android:layout_width="wrap_content"
+        android:gravity="center"
+        android:layout_height="wrap_content">
+
+        <DatePicker
+            android:id="@+id/dp_time"
+            android:layout_width="350sp"
+            android:layout_height="wrap_content" />
+
+        <Button
+            android:id="@+id/btn_enter"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:background="@drawable/bg_corners_05"
+            android:layout_marginBottom="10sp"
+            android:text="确定"/>
+    </LinearLayout>
+
+
+</LinearLayout>

+ 197 - 0
app/src/main/res/layout/item_wiped_record.xml

@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:orientation="vertical">
+
+
+    <LinearLayout
+        android:id="@+id/ll_item"
+        android:layout_margin="10sp"
+        android:layout_width="match_parent"
+        android:orientation="vertical"
+        android:padding="15sp"
+        android:background="@drawable/bg_info_01"
+        android:layout_height="wrap_content">
+
+        <TextView
+            android:id="@+id/tx_orderId"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textColor="@color/gray"
+            tools:text="967645708909584384"/>
+
+        <View
+            android:layout_marginTop="10sp"
+            android:layout_marginBottom="6sp"
+            android:layout_width="match_parent"
+            android:layout_height="2dp"
+            android:background="@drawable/shape_dashed_line"/>
+
+        <LinearLayout
+            android:layout_marginTop="4sp"
+            android:orientation="horizontal"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content">
+
+            <TextView
+                android:layout_width="60sp"
+                android:layout_height="wrap_content"
+                android:textColor="@color/gray"
+                android:text="剧目名称"/>
+
+            <TextView
+                android:id="@+id/tx_performName"
+                android:layout_marginLeft="8sp"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:textColor="@color/black"
+                tools:text="伟大转折剧场"/>
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_marginTop="4sp"
+            android:orientation="horizontal"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content">
+
+            <TextView
+                android:layout_width="60sp"
+                android:layout_height="wrap_content"
+                android:textColor="@color/gray"
+                android:text="场馆名称"/>
+
+            <TextView
+                android:id="@+id/tx_theatreName"
+                android:layout_marginLeft="8sp"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:textColor="@color/black"
+                tools:text="场馆-测试"/>
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_marginTop="4sp"
+            android:orientation="horizontal"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content">
+
+            <TextView
+                android:layout_width="60sp"
+                android:layout_height="wrap_content"
+                android:textColor="@color/gray"
+                android:text="演出厅"/>
+
+            <TextView
+                android:id="@+id/tx_auditoriumName"
+                android:layout_marginLeft="8sp"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:textColor="@color/black"
+                tools:text="演出厅-测试"/>
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_marginTop="4sp"
+            android:orientation="horizontal"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content">
+
+            <TextView
+                android:layout_width="60sp"
+                android:layout_height="wrap_content"
+                android:textColor="@color/gray"
+                android:text="票务名称"/>
+
+            <TextView
+                android:id="@+id/tx_goodsName"
+                android:layout_marginLeft="8sp"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:textColor="@color/black"
+                tools:text="儿童票-OTA测试"/>
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_marginTop="4sp"
+            android:orientation="horizontal"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content">
+
+            <TextView
+                android:layout_width="60sp"
+                android:layout_height="wrap_content"
+                android:textColor="@color/gray"
+                android:text="场次时间"/>
+
+            <TextView
+                android:id="@+id/tx_timeName"
+                android:layout_marginLeft="8sp"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:textColor="@color/black"
+                tools:text="2023-12-23 11:00 - 12:00"/>
+        </LinearLayout>
+        <LinearLayout
+            android:layout_marginTop="4sp"
+            android:orientation="horizontal"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content">
+
+            <TextView
+                android:layout_width="60sp"
+                android:layout_height="wrap_content"
+                android:textColor="@color/gray"
+                android:text="座位号"/>
+
+            <TextView
+                android:id="@+id/tx_seatName"
+                android:layout_marginLeft="8sp"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:textColor="@color/black"
+                tools:text="12排8座"/>
+        </LinearLayout>
+        <LinearLayout
+            android:layout_marginTop="4sp"
+            android:orientation="horizontal"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content">
+
+            <TextView
+                android:layout_width="60sp"
+                android:layout_height="wrap_content"
+                android:textColor="@color/gray"
+                android:text="订单来源"/>
+
+            <TextView
+                android:id="@+id/tx_sourceName"
+                android:layout_marginLeft="8sp"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:textColor="@color/black"
+                tools:text="小程序"/>
+        </LinearLayout>
+        <LinearLayout
+            android:layout_marginTop="4sp"
+            android:orientation="horizontal"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content">
+
+            <TextView
+                android:layout_width="60sp"
+                android:layout_height="wrap_content"
+                android:textColor="@color/gray"
+                android:text="核销信息"/>
+
+            <TextView
+                android:id="@+id/tx_useName"
+                android:layout_marginLeft="8sp"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:textColor="@color/black"
+                tools:text="殷登顺 2024-05-11 16:00:11"/>
+        </LinearLayout>
+    </LinearLayout>
+</LinearLayout>

BIN
app/src/main/res/mipmap-hdpi/img_left_black.png


BIN
app/src/main/res/mipmap-hdpi/scan_code_wite.png