| 
					
				 | 
			
			
				@@ -0,0 +1,902 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+package com.yijia.handpos.service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import android.content.Intent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import android.graphics.Bitmap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import android.os.Bundle; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import android.os.Environment; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import android.os.Handler; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import android.os.IBinder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import android.os.Message; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import android.os.Messenger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import android.util.Log; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import android.widget.Toast; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.android.volley.Request; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.android.volley.RequestQueue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.android.volley.toolbox.JsonObjectRequest; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.android.volley.toolbox.JsonRequest; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.android.volley.toolbox.Volley; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.google.gson.Gson; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.google.gson.GsonBuilder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.iflytek.cloud.ErrorCode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.iflytek.cloud.InitListener; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.iflytek.cloud.SpeechConstant; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.iflytek.cloud.SpeechError; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.iflytek.cloud.SpeechEvent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.iflytek.cloud.SpeechSynthesizer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.iflytek.cloud.SpeechUtility; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.iflytek.cloud.SynthesizerListener; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.iflytek.cloud.util.ResourceUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.orhanobut.logger.Logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.pax.dal.IDAL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.pax.dal.IPrinter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.pax.dal.exceptions.PrinterDevException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.pax.gl.IGL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.pax.gl.imgprocessing.IImgProcessing; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.pax.gl.impl.GLProxy; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.pax.neptunelite.api.NeptuneLiteUser; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.rabbitmq.client.AMQP; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.rabbitmq.client.Channel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.rabbitmq.client.Connection; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.rabbitmq.client.ConnectionFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.rabbitmq.client.DefaultConsumer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.rabbitmq.client.Envelope; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.shihoo.daemon.work.AbsWorkService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yijia.handpos.MainActivity; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yijia.handpos.PosApplication; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yijia.handpos.R; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yijia.handpos.broadcast.BroadCastManager; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yijia.handpos.pojo.PrintRootBean; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yijia.handpos.pojo.ResponseBean; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yijia.handpos.ui.order.OrderFragment; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yijia.handpos.util.ConsUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yijia.handpos.util.NetworkUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.json.JSONException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.json.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.io.IOException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Arrays; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.HashMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.concurrent.TimeUnit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.concurrent.TimeoutException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.reactivex.Observable; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.reactivex.disposables.Disposable; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.reactivex.functions.Action; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.reactivex.functions.Consumer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+public class RabbitMqService extends AbsWorkService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static String TAG = RabbitMqService.class.getSimpleName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private Disposable mDisposable; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private long mSaveDataStamp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private RequestQueue requestQueue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private PrintRootBean printRootBean; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ConnectionFactory connectionFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static final int FONT_LARGE = 48; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static final int FONT_BIG = 36; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static final int FONT_NORMAL = 32; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static final int FONT_SMALL = 22; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static IDAL dal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static IGL gl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 语音合成对象 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private SpeechSynthesizer mTts; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 本地发音人列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String[] localVoicersEntries; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String[] localVoicersValue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 默认云端发音人 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static String voicerCloud = "xiaoyan"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 默认本地发音人 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static String voicerLocal = "xiaoyan"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static String voicerXtts = "xiaoyan"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 引擎类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String mEngineType = SpeechConstant.TYPE_LOCAL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static String TUSN_NO = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //打印机状态代码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private int printerStatusFlag=0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public RabbitMqService() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 是否 任务完成, 不再需要服务运行? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 应当停止服务, true; 应当启动服务, false; 无法判断, 什么也不做, null. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Boolean needStartWorkService() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return MainActivity.isCanStartWorkService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public IBinder onBind(Intent intent) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // TODO: Return the communication channel to the service. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 任务是否正在运行? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 任务正在运行, true; 任务当前不在运行, false; 无法判断, 什么也不做, null. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Boolean isWorkRunning() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //若还没有取消订阅, 就说明任务仍在运行. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return mDisposable != null && !mDisposable.isDisposed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public IBinder onBindService(Intent intent, Void v) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 此处必须有返回,否则绑定无回调 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return new Messenger(new Handler()).getBinder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void onServiceKilled() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Log.d("wsh-daemon", "onServiceKilled --- 保存数据到磁盘"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void stopWork() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //取消对任务的订阅 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (mDisposable !=null && !mDisposable.isDisposed()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mDisposable.dispose(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void startWork() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Log.d("wsh-daemon", "检查磁盘中是否有上次销毁时保存的数据"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        mDisposable = Observable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .interval(3, TimeUnit.SECONDS) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //取消任务时取消定时唤醒 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .doOnDispose(() -> Log.d("wsh-daemon", " -- doOnDispose ---  取消订阅 .... ")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .subscribe(aLong -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Log.d("wsh-daemon", "每 3 秒采集一次数据... count = " + aLong); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (aLong > 0 && aLong % 18 == 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        Log.d("wsh-daemon", "   采集数据  saveCount = " + (aLong / 18 - 1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 服务第一次创建的时候调用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void onCreate() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        super.onCreate(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Log.i(TAG,"服务的onCreate方法被调用......"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dal = NeptuneLiteUser.getInstance().getDal(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gl = new GLProxy(this).getGL(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            TUSN_NO = dal.getSys().readTUSN(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            printerStatusFlag=dal.getPrinter().getStatus(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Logger.i("获取到的打印机状态码:"+dal.getPrinter().getStatus()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (ConsUtil.tusnNo.equals("")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ConsUtil.tusnNo = TUSN_NO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 应用程序入口处调用,避免手机内存过小,杀死后台进程后通过历史intent进入Activity造成SpeechUtility对象为null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 注意:此接口在非主进程调用会返回null对象,如需在非主进程使用语音功能,请增加参数:SpeechConstant.FORCE_LOGIN+"=true" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 参数间使用“,”分隔。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 设置你申请的应用appid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 注意: appid 必须和下载的SDK保持一致,否则会出现10407错误 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        StringBuffer param = new StringBuffer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        param.append("appid=" + getString(R.string.app_id)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        param.append(","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 设置使用v5+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        param.append(SpeechConstant.ENGINE_MODE + "=" + SpeechConstant.MODE_MSC); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SpeechUtility.createUtility(this, param.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 初始化合成对象 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        mTts = SpeechSynthesizer.createSynthesizer(this, mTtsInitListener); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 本地发音人名称列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        localVoicersEntries = getResources().getStringArray(R.array.voicer_local_entries); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        localVoicersValue = getResources().getStringArray(R.array.voicer_local_values); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //RabitMq 连接设置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        setupConnectionFactory(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //设定Handler,开启进程,消费消息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        initMessageHandler(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //获取POS绑定的油枪数组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        getGunArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void initMessageHandler(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //用于从线程中获取数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        final Handler incomingMessageHandler = new Handler(msg -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //收到消息,进行下一步的操作 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String message = msg.getData().getString("msg"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            printRootBean = gson.fromJson(message, PrintRootBean.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ("1".equals(printRootBean.getPrintSetting())){//只打印客户联 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ("oil".equals(printRootBean.getMessageContent().getContentData().get(0).getOrderType())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (Arrays.asList(ConsUtil.gunNoArray).contains(printRootBean.getMessageContent() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .getContentData().get(0).getOilGun())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        doPrintCus(printRootBean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        techSpeakBean(printRootBean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ("noOil".equals(printRootBean.getMessageContent().getContentData().get(0).getOrderType())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    doPrintNoOilCus(printRootBean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ("integral".equals(printRootBean.getMessageContent().getContentData().get(0).getOrderType())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    doPrintInteCus(printRootBean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ("2".equals(printRootBean.getPrintSetting())){//只打印商户联 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ("oil".equals(printRootBean.getMessageContent().getContentData().get(0).getOrderType())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (Arrays.asList(ConsUtil.gunNoArray).contains(printRootBean.getMessageContent() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .getContentData().get(0).getOilGun())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        doPrintMer(printRootBean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        techSpeakBean(printRootBean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ("noOil".equals(printRootBean.getMessageContent().getContentData().get(0).getOrderType())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    doPrintNoOilMer(printRootBean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ("integral".equals(printRootBean.getMessageContent().getContentData().get(0).getOrderType())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    doPrintInteMer(printRootBean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ("3".equals(printRootBean.getPrintSetting())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ("oil".equals(printRootBean.getMessageContent().getContentData().get(0).getOrderType())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (Arrays.asList(ConsUtil.gunNoArray).contains(printRootBean.getMessageContent() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .getContentData().get(0).getOilGun())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        doPrintCus(printRootBean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        doPrintMer(printRootBean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        techSpeakBean(printRootBean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ("noOil".equals(printRootBean.getMessageContent().getContentData().get(0).getOrderType())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    doPrintNoOilCus(printRootBean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    doPrintNoOilMer(printRootBean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ("integral".equals(printRootBean.getMessageContent().getContentData().get(0).getOrderType())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    doPrintInteCus(printRootBean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    doPrintInteMer(printRootBean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Log.i("接收到的消息:", "msg:" + message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //开启消费者线程 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        new Thread(() -> basicConsume(incomingMessageHandler)).start(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 连接设置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void setupConnectionFactory() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PosApplication posApplication = (PosApplication) this.getApplicationContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        connectionFactory = new ConnectionFactory(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        connectionFactory.setHost(posApplication.getHost()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        connectionFactory.setPort(posApplication.getPort()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        connectionFactory.setUsername(posApplication.getUsername()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        connectionFactory.setPassword(posApplication.getPassword()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        connectionFactory.setAutomaticRecoveryEnabled(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        connectionFactory.setRequestedHeartbeat(20); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void getGunArray(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //获取到一个RequestQueue对象 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        requestQueue = Volley.newRequestQueue(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (NetworkUtil.isNetworkAvailable(this)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String urlGet = ConsUtil.REQUEST_BASE_URL + ConsUtil.REQUEST_PREFIX + "/getStationDeviceManagerBytusn?tusn=" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    + TUSN_NO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            JsonRequest<JSONObject> jsonRequestGet = new JsonObjectRequest(Request.Method.GET, urlGet, null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    response -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (response.getInt("retCode") == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                Log.d("请求成功:", response.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                Gson gson = new Gson(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                ResponseBean responseBean = gson.fromJson(response.toString(), ResponseBean.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                if (null != responseBean.getData() || "".equals(responseBean.getData())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    String[] guns = responseBean.getData().getGunNo().split(","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    if (!Arrays.equals(guns, ConsUtil.gunNoArray)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        ConsUtil.gunNoArray = guns; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    if( null == mTts ){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        // 创建单例失败,与 21001 错误为同样原因,参考 http://bbs.xfyun.cn/forum.php?mod=viewthread&tid=9688 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        Log.d(TAG, "创建对象失败,请确认 libmsc.so 放置正确,\n 且有调用 createUtility 进行初始化" ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    String text="该机未绑定油枪,请维护!否则无法打印小票!"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    // 设置参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    setParam(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    int code = mTts.startSpeaking(text, mTtsListener); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    if (code != ErrorCode.SUCCESS) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        Log.d(TAG,"语音合成失败,错误码: " + code+",请点击网址https://www.xfyun.cn/document/error-code查询解决方案"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    Toast.makeText(getApplicationContext(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            response.getString("该POS机未绑定油枪,请维护!否则无法打印小票"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            Toast.LENGTH_LONG).show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                Log.d("请求失败:", response.getString("message")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                Toast.makeText(getApplicationContext(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        response.getString("message"), Toast.LENGTH_SHORT).show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } catch (JSONException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if( null == mTts ){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                // 创建单例失败,与 21001 错误为同样原因,参考 http://bbs.xfyun.cn/forum.php?mod=viewthread&tid=9688 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                Log.d(TAG, "创建对象失败,请确认 libmsc.so 放置正确,\n 且有调用 createUtility 进行初始化" ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            String text="该机未绑定油枪,请维护!否则无法打印小票!"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            // 设置参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            setParam(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            int code = mTts.startSpeaking(text, mTtsListener); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (code != ErrorCode.SUCCESS) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                Log.d(TAG,"语音合成失败,错误码: " + code+",请点击网址https://www.xfyun.cn/document/error-code查询解决方案"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Log.d("转换失败:", e.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Toast.makeText(getApplicationContext(), "该POS机未绑定油枪,请维护!否则无法打印小票!", Toast.LENGTH_LONG).show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }, volleyError -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Toast.makeText(getApplicationContext(), volleyError.toString(), Toast.LENGTH_SHORT).show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Log.d("请求失败:", volleyError.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                public Map<String, String> getHeaders() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    HashMap<String, String> headers = new HashMap<String, String>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    headers.put("Accept", "application/json"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    headers.put("Content-Type", "application/json; charset=UTF-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return headers; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 3 将post请求添加到队列中 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            requestQueue.add(jsonRequestGet); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Toast.makeText(getApplicationContext(),"网络不可用,请检查网络!" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    , Toast.LENGTH_SHORT).show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 消费者收消息线程(从发布者那边订阅消息) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void basicConsume(final Handler handler) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //连接 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Connection connection = connectionFactory.newConnection(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //通道 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            final Channel channel = connection.createChannel(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //同一时刻服务器只会发送一条消息给消费者 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            channel.basicQos(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //实现Consumer的最简单方法是将便捷类DefaultConsumer子类化。可以在basicConsume 调用上传递此子类的对象以设置订阅: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            channel.basicConsume(ConsUtil.tusnNo, false, new DefaultConsumer(channel) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                public void handleDelivery(String consumerTag, Envelope envelope, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                           AMQP.BasicProperties properties, byte[] body) throws IOException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    super.handleDelivery(consumerTag, envelope, properties, body); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    String msg = new String(body, "utf-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    long deliveryTag = envelope.getDeliveryTag(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    channel.basicAck(deliveryTag, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //从message池中获取msg对象更高效 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Message uimsg = handler.obtainMessage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Bundle bundle = new Bundle(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    bundle.putString("msg", msg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    uimsg.setData(bundle); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    handler.sendMessage(uimsg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //发送广播 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Log.i("开始发送广播。。。","开始发送广播。。。"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Intent intent = new Intent(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    intent.setAction(OrderFragment.ACTION_UPDATE_ORDER_ITEM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sendBroadcast(intent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Log.d(TAG, e.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (TimeoutException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Log.d(TAG, e.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 获取打印状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String getPrintErrorMsg(int status) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        switch (status) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            case 2:// 缺纸 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                result = "打印机缺纸"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            case 8:// 打印机过热 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                result = "打印机过热"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            case 9:// 电量低 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                result = "电池电量低"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                result = "其它未知异常"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void techSpeak(String str) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (null == mTts) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 创建单例失败,与 21001 错误为同样原因,参考 http://bbs.xfyun.cn/forum.php?mod=viewthread&tid=9688 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String errorMsg = "创建对象失败,请确认 libmsc.so 放置正确,\n 且有调用 createUtility 进行初始化"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Log.d(TAG, errorMsg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Toast.makeText(this, errorMsg, Toast.LENGTH_SHORT).show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String text = str; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 设置参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        setParam(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int code = mTts.startSpeaking(text, mTtsListener); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (code != ErrorCode.SUCCESS) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Log.d(TAG, "语音合成失败,错误码: " + code + ",请点击网址https://www.xfyun.cn/document/error-code查询解决方案"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void techSpeakBean(PrintRootBean printRootBean) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (null == mTts) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 创建单例失败,与 21001 错误为同样原因,参考 http://bbs.xfyun.cn/forum.php?mod=viewthread&tid=9688 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String errorMsg = "创建对象失败,请确认 libmsc.so 放置正确,\n 且有调用 createUtility 进行初始化"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Log.d(TAG, errorMsg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Toast.makeText(this, errorMsg, Toast.LENGTH_SHORT).show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String oilGun = printRootBean.getMessageContent().getContentData().get(0).getOilGun(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String oilName = printRootBean.getMessageContent().getContentData().get(0).getOilName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String payType = printRootBean.getMessageContent().getContentData().get(0).getPayType(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String money = printRootBean.getMessageContent().getContentData().get(0).getReceivableAmt(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        oilName = oilName.replace("#", ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String text = oilGun + "号枪" + oilName + "号油品" + payType + "支付到账" + money + "元"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 设置参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        setParam(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int code = mTts.startSpeaking(text, mTtsListener); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (code != ErrorCode.SUCCESS) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Log.d(TAG, "语音合成失败,错误码: " + code + ",请点击网址https://www.xfyun.cn/document/error-code查询解决方案"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 合成回调监听。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private SynthesizerListener mTtsListener = new SynthesizerListener() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public void onSpeakBegin() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Log.d(TAG, "开始播放:" + System.currentTimeMillis()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public void onSpeakPaused() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Log.d(TAG, "暂停播放"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public void onSpeakResumed() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Log.d(TAG, "继续播放"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public void onBufferProgress(int percent, int beginPos, int endPos, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                     String info) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public void onSpeakProgress(int percent, int beginPos, int endPos) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public void onCompleted(SpeechError error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (error == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Log.d(TAG, "播放完成"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else if (error != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Log.d(TAG, error.getPlainDescription(true)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public void onEvent(int eventType, int arg1, int arg2, Bundle obj) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 以下代码用于获取与云端的会话id,当业务出错时将会话id提供给技术支持人员,可用于查询会话日志,定位出错原因 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 若使用本地能力,会话id为null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (SpeechEvent.EVENT_SESSION_ID == eventType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String sid = obj.getString(SpeechEvent.KEY_EVENT_AUDIO_URL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Log.d(TAG, "session id =" + sid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 初始化监听。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private InitListener mTtsInitListener = code -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Log.d(TAG, "InitListener init() code = " + code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (code != ErrorCode.SUCCESS) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Log.d(TAG, "初始化失败,错误码:" + code + ",请点击网址https://www.xfyun.cn/document/error-code查询解决方案"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 初始化成功,之后可以调用startSpeaking方法 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 注:有的开发者在onCreate方法中创建完合成对象之后马上就调用startSpeaking进行合成, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 正确的做法是将onCreate中的startSpeaking调用移至这里 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 参数设置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void setParam() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 清空参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        mTts.setParameter(SpeechConstant.PARAMS, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //设置合成 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (mEngineType.equals(SpeechConstant.TYPE_CLOUD)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //设置使用云端引擎 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mTts.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //设置发音人 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mTts.setParameter(SpeechConstant.VOICE_NAME, voicerCloud); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else if (mEngineType.equals(SpeechConstant.TYPE_LOCAL)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //设置使用本地引擎 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mTts.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_LOCAL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //设置发音人资源路径 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mTts.setParameter(ResourceUtil.TTS_RES_PATH, getResourcePath()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //设置发音人 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mTts.setParameter(SpeechConstant.VOICE_NAME, voicerLocal); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mTts.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_XTTS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //设置发音人资源路径 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mTts.setParameter(ResourceUtil.TTS_RES_PATH, getResourcePath()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //设置发音人 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mTts.setParameter(SpeechConstant.VOICE_NAME, voicerXtts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //mTts.setParameter(SpeechConstant.TTS_DATA_NOTIFY,"1");//支持实时音频流抛出,仅在synthesizeToUri条件下支持 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //设置合成语速 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        mTts.setParameter(SpeechConstant.SPEED, "50"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //设置合成音调 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        mTts.setParameter(SpeechConstant.PITCH, "50"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //设置合成音量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        mTts.setParameter(SpeechConstant.VOLUME, "50"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //设置播放器音频流类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        mTts.setParameter(SpeechConstant.STREAM_TYPE, "3"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //	mTts.setParameter(SpeechConstant.STREAM_TYPE, AudioManager.STREAM_MUSIC+""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 设置播放合成音频打断音乐播放,默认为true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        mTts.setParameter(SpeechConstant.KEY_REQUEST_FOCUS, "true"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 设置音频保存路径,保存音频格式支持pcm、wav,设置路径为sd卡请注意WRITE_EXTERNAL_STORAGE权限 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        mTts.setParameter(SpeechConstant.AUDIO_FORMAT, "wav"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        mTts.setParameter(SpeechConstant.TTS_AUDIO_PATH, Environment.getExternalStorageDirectory() + "/msc/tts.wav"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //获取发音人资源路径 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String getResourcePath() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        StringBuffer tempBuffer = new StringBuffer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String type = "tts"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (mEngineType.equals(SpeechConstant.TYPE_XTTS)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            type = "xtts"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //合成通用资源 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        tempBuffer.append(ResourceUtil.generateResourcePath(this, ResourceUtil.RESOURCE_TYPE.assets, type + "/common.jet")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        tempBuffer.append(";"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //发音人资源 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (mEngineType.equals(SpeechConstant.TYPE_XTTS)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            tempBuffer.append(ResourceUtil.generateResourcePath(this, ResourceUtil.RESOURCE_TYPE.assets, type + "/" + RabbitMqService.voicerXtts + ".jet")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            tempBuffer.append(ResourceUtil.generateResourcePath(this, ResourceUtil.RESOURCE_TYPE.assets, type + "/" + RabbitMqService.voicerLocal + ".jet")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return tempBuffer.toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void doPrintCus(PrintRootBean printRootBean) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IPrinter iPrinter = dal.getPrinter(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IImgProcessing.IPage page = gl.getImgProcessing().createPage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        page.addLine().addUnit((msg), FONT_BIG, IImgProcessing.IPage.EAlign.CENTER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit(("油品订单--客户联"), FONT_BIG, IImgProcessing.IPage.EAlign.CENTER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("-------------------------------------", FONT_NORMAL, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                IImgProcessing.IPage.EAlign.CENTER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("原价:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getReceivableAmt() + "元", FONT_LARGE, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("订单号:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getOrderNo(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        page.addLine().addUnit("交易单号:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                .get(0).getTransactionId(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("支付方式:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getPayType(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("下单时间:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getCreatedDate(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("付款时间:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getPayDate(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //如果是CNG,气量单位为KG 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ("LNG".equals(printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getOilName()) || "lng".equals(printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getOilName())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            page.addLine().addUnit("油量:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .get(0).getOrderLiters() + "KG", FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            page.addLine().addUnit("油量:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .get(0).getOrderLiters() + "升", FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("油枪:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getOilGun() + "号枪", FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("油品:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getOilName(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("实付:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getAmt() + "元  " + "共优惠:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getDiscountAmt() + "元", FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("单价:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getOilPirce() + "元", FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("获得积分:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getIntegral() + "积分", FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("手机号:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getMobilePhone(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("油站名:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getStationName(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("加油员:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getOilPersonnel(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("\n", FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IImgProcessing imgProcessing = gl.getImgProcessing(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Bitmap bitmap = imgProcessing.pageToBitmap(page, 384); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            iPrinter.init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int gray = 300; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            iPrinter.setGray(gray); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            iPrinter.printBitmap(bitmap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int ret = iPrinter.start(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (ret == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Toast.makeText(this, getPrintErrorMsg(ret), Toast.LENGTH_SHORT).show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (PrinterDevException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void doPrintMer(PrintRootBean printRootBean) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IPrinter iPrinter = dal.getPrinter(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IImgProcessing.IPage page = gl.getImgProcessing().createPage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        page.addLine().addUnit((msg), FONT_BIG, IImgProcessing.IPage.EAlign.CENTER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit(("油品订单--商户联"), FONT_BIG, IImgProcessing.IPage.EAlign.CENTER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("-------------------------------------", FONT_NORMAL, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                IImgProcessing.IPage.EAlign.CENTER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("原价:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getReceivableAmt() + "元", FONT_LARGE, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("订单号:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getOrderNo(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        page.addLine().addUnit("交易单号:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                .get(0).getTransactionId(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("支付方式:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getPayType(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("下单时间:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getCreatedDate(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("付款时间:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getPayDate(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("油量:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getOrderLiters() + "升", FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("油枪:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getOilGun() + "号枪", FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("油品:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getOilName(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("实付:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getAmt() + "元  " + "共优惠:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getDiscountAmt() + "元", FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("单价:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getOilPirce() + "元", FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("获得积分:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getIntegral() + "积分", FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("手机号:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getMobilePhone(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("油站名:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getStationName(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("加油员:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getOilPersonnel(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("\n", FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IImgProcessing imgProcessing = gl.getImgProcessing(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Bitmap bitmap = imgProcessing.pageToBitmap(page, 384); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            iPrinter.init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int gray = 300; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            iPrinter.setGray(gray); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            iPrinter.printBitmap(bitmap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int ret = iPrinter.start(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (ret == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Toast.makeText(this, getPrintErrorMsg(ret), Toast.LENGTH_SHORT).show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (PrinterDevException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void doPrintNoOilCus(PrintRootBean printRootBean) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IPrinter iPrinter = dal.getPrinter(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IImgProcessing.IPage page = gl.getImgProcessing().createPage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        page.addLine().addUnit((msg), FONT_BIG, IImgProcessing.IPage.EAlign.CENTER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit(("非油品订单--客户联"), FONT_BIG, IImgProcessing.IPage.EAlign.CENTER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("-------------------------------------", FONT_NORMAL, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                IImgProcessing.IPage.EAlign.CENTER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("订单号:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getOrderNo(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("交易时间:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getPayDate(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("油站:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getStationName(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("原价:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getReceivableAmt() + "元", FONT_NORMAL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("支付:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getReceivableAmt() + "元", FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("支付方式:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getPayType(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("\n", FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IImgProcessing imgProcessing = gl.getImgProcessing(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Bitmap bitmap = imgProcessing.pageToBitmap(page, 384); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            iPrinter.init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int gray = 300; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            iPrinter.setGray(gray); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            iPrinter.printBitmap(bitmap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int ret = iPrinter.start(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (ret == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Toast.makeText(this, getPrintErrorMsg(ret), Toast.LENGTH_SHORT).show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (PrinterDevException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void doPrintNoOilMer(PrintRootBean printRootBean) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IPrinter iPrinter = dal.getPrinter(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IImgProcessing.IPage page = gl.getImgProcessing().createPage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        page.addLine().addUnit((msg), FONT_BIG, IImgProcessing.IPage.EAlign.CENTER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit(("非油品订单--商户联"), FONT_BIG, IImgProcessing.IPage.EAlign.CENTER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("-------------------------------------", FONT_NORMAL, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                IImgProcessing.IPage.EAlign.CENTER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("订单号:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getOrderNo(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("交易时间:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getPayDate(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("油站:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getStationName(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("原价:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getReceivableAmt() + "元", FONT_NORMAL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("支付:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getReceivableAmt() + "元", FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("支付方式:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getPayType(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("\n", FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IImgProcessing imgProcessing = gl.getImgProcessing(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Bitmap bitmap = imgProcessing.pageToBitmap(page, 384); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            iPrinter.init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int gray = 300; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            iPrinter.setGray(gray); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            iPrinter.printBitmap(bitmap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int ret = iPrinter.start(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (ret == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Toast.makeText(this, getPrintErrorMsg(ret), Toast.LENGTH_SHORT).show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (PrinterDevException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void doPrintInteCus(PrintRootBean printRootBean) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IPrinter iPrinter = dal.getPrinter(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IImgProcessing.IPage page = gl.getImgProcessing().createPage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        page.addLine().addUnit((msg), FONT_BIG, IImgProcessing.IPage.EAlign.CENTER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit(("积分订单--客户联"), FONT_BIG, IImgProcessing.IPage.EAlign.CENTER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("-------------------------------------", FONT_NORMAL, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                IImgProcessing.IPage.EAlign.CENTER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("订单号:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getOrderNo(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("交易时间:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getPayDate(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("油站:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getStationName(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("兑换商品:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getWaresName(), FONT_NORMAL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("商品数量:" + "x " +printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getExchangeNum(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("消耗积分:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getOrderSumIntegral(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("剩余积分:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getSurplusPoints(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("客户昵称:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getCustomerName(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("\n", FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IImgProcessing imgProcessing = gl.getImgProcessing(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Bitmap bitmap = imgProcessing.pageToBitmap(page, 384); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            iPrinter.init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int gray = 300; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            iPrinter.setGray(gray); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            iPrinter.printBitmap(bitmap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int ret = iPrinter.start(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (ret == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Toast.makeText(this, getPrintErrorMsg(ret), Toast.LENGTH_SHORT).show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (PrinterDevException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void doPrintInteMer(PrintRootBean printRootBean) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IPrinter iPrinter = dal.getPrinter(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IImgProcessing.IPage page = gl.getImgProcessing().createPage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        page.addLine().addUnit((msg), FONT_BIG, IImgProcessing.IPage.EAlign.CENTER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit(("积分订单--商户联"), FONT_BIG, IImgProcessing.IPage.EAlign.CENTER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("-------------------------------------", FONT_NORMAL, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                IImgProcessing.IPage.EAlign.CENTER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("订单号:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getOrderNo(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("交易时间:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getPayDate(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("油站:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getStationName(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("兑换商品:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getWaresName(), FONT_NORMAL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("商品数量:" + "x " +printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getExchangeNum(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("消耗积分:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getOrderSumIntegral(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("剩余积分:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getSurplusPoints(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("客户昵称:" + printRootBean.getMessageContent().getContentData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .get(0).getCustomerName(), FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page.addLine().addUnit("\n", FONT_SMALL, IImgProcessing.IPage.EAlign.LEFT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IImgProcessing imgProcessing = gl.getImgProcessing(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Bitmap bitmap = imgProcessing.pageToBitmap(page, 384); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            iPrinter.init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int gray = 300; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            iPrinter.setGray(gray); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            iPrinter.printBitmap(bitmap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            int ret = iPrinter.start(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (ret == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Toast.makeText(this, getPrintErrorMsg(ret), Toast.LENGTH_SHORT).show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (PrinterDevException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 服务每一次启动的时候调用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public int onStartCommand(Intent intent, int flags, int startId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Log.i(TAG,"服务的onStartCommand方法被调用......"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dal = NeptuneLiteUser.getInstance().getDal(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            gl = new GLProxy(this).getGL(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            TUSN_NO = dal.getSys().readTUSN(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            printerStatusFlag=dal.getPrinter().getStatus(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Logger.i("获取到的打印机状态码:"+dal.getPrinter().getStatus()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (ConsUtil.tusnNo.equals("")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ConsUtil.tusnNo = TUSN_NO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //获取POS绑定的油枪数组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        getGunArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return START_STICKY; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 服务销毁的时候调用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void onDestroy() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Log.i(TAG,"服务的onDestroy方法被调用......"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        super.onDestroy(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (null != mTts) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mTts.stopSpeaking(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 退出时释放连接 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            mTts.destroy(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |