李士越 5 tháng trước cách đây
mục cha
commit
013d25d971

+ 9 - 3
AndroidManifest.xml

@@ -2,12 +2,12 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.jiaju.activity"
     android:versionCode="1"
-    android:versionName="1.2.25.0527" >
+    android:versionName="1.2.25.0630" >
 
     <!-- 23  14 -->
     <uses-sdk
-        android:minSdkVersion="23"
-        android:targetSdkVersion="23" />
+        android:minSdkVersion="14"
+        android:targetSdkVersion="14" />
 
     <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" >
     </uses-permission>
@@ -795,6 +795,12 @@
          <activity
             android:name=".DeliveryNoteInquiryActivity"  > 
         </activity>
+        <activity
+            android:name=".LuociRevokeActivity"  > 
+        </activity>
+         <activity
+            android:name=".LuociPriceActivity"  > 
+        </activity>
     </application>
 
 </manifest>

+ 106 - 2
res/layout/finished_product_handover_head_view.xml

@@ -4,8 +4,112 @@
     android:layout_height="match_parent"
     android:orientation="vertical" >
 
-  
- 
+    <LinearLayout
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal" >
+
+        <com.jiaju.widget.JustifyTextView
+            android:layout_width="80dp"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="10dp"
+            android:layout_marginTop="10dp"
+            android:text="SAP地址"
+            android:textColor="@color/white"
+            android:textSize="@dimen/textsize_16" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerVertical="true"
+            android:layout_marginTop="5dp"
+            android:text=":"
+            android:textColor="@color/white"
+            android:textSize="@dimen/textsize_16" />
+
+        <LinearLayout
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical" >
+
+            <Spinner
+                android:id="@+id/Spinner01"
+                android:layout_width="fill_parent"
+                android:layout_height="40dp"
+                android:layout_margin="0dip"
+                android:layout_marginRight="10dp"
+                android:gravity="center"
+                android:padding="0dip"
+                 android:spinnerMode="dialog"
+                android:textAlignment="center" >
+            </Spinner>
+        </LinearLayout>
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal" >
+
+        <com.jiaju.widget.JustifyTextView
+            android:id="@+id/orderTitle"
+            android:layout_width="80dp"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="10dp"
+            android:layout_marginTop="10dp"
+            android:text="生产订单"
+            android:textColor="@color/white"
+            android:textSize="@dimen/textsize_16" />
+
+        <TextView
+            android:id="@+id/symbol3"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerVertical="true"
+            android:layout_marginTop="10dp"
+            android:text=":"
+            android:textColor="@color/white"
+            android:textSize="@dimen/textsize_16" />
+
+        <LinearLayout
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="5dp"
+            android:orientation="vertical" >
+
+            <EditText
+                android:id="@+id/orderEdt"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginRight="10dp"
+                android:background="@null"
+                android:imeOptions="actionGo"
+                android:singleLine="true"
+                android:text=""
+                android:textColor="@color/white"
+                android:textSize="@dimen/textsize_24" />
+
+            <View
+                android:layout_width="fill_parent"
+                android:layout_height="1dp"
+                android:background="@color/text_gray" />
+
+            <LinearLayout
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="15dp"
+                android:orientation="vertical" >
+
+                <Spinner
+                    android:id="@+id/orderSpinner"
+                    android:layout_width="fill_parent"
+                    android:layout_height="40dp"
+                    android:layout_marginRight="10dp"
+                    android:background="@drawable/spinner_drop_down" >
+                </Spinner>
+            </LinearLayout>
+        </LinearLayout>
+    </LinearLayout>
 
     <LinearLayout
         android:id="@+id/barcodelay"

+ 823 - 0
src/com/jiaju/activity/LuociPriceActivity.java

@@ -0,0 +1,823 @@
+package com.jiaju.activity;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import com.jiaju.adapter.HandOverAdapter;
+import com.jiaju.adapter.OrderSpinnerAdapter;
+import com.jiaju.adapter.SapSpinnerAdapter;
+import com.jiaju.model.BarcodeInfo;
+import com.jiaju.model.Order;
+import com.jiaju.net.WebClient;
+import com.jiaju.utils.CommonUtil;
+import com.jiaju.utils.Constants;
+import com.jiaju.utils.CustomToast;
+import com.jiaju.utils.ProcessDialogUtils;
+import com.jiaju.utils.Removeduplicate;
+
+import android.app.Activity;
+import android.app.Notification;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.content.SharedPreferences.Editor;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.Message;
+import android.text.Editable;
+import android.text.InputFilter;
+import android.text.InputType;
+import android.text.Spanned;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.KeyEvent;
+import android.view.Menu;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.inputmethod.EditorInfo;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemSelectedListener;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ImageButton;
+import android.widget.ImageView;
+import android.widget.ListView;
+import android.widget.RelativeLayout;
+import android.widget.Spinner;
+import android.widget.TextView;
+//裸辞交接
+public class LuociPriceActivity extends Activity {
+	private TextView tvTitle;
+	private String password;
+	private String sessionkey;
+	private SharedPreferences preferences;
+	private String ServerAddress_ip;
+	private String ServerAddress_port;
+	private String accountCode;
+	private String handover_usercode;
+	private HandlerThread thread;
+	private Handler mHandler;
+	private WebClient client;
+	private List<Order> orderList;
+	private Spinner orderSpinner;
+	private SapSpinnerAdapter adapter1;
+	private EditText barcodeEdt;
+	private String barcode;
+	private TextView tvBack;
+	private ImageView ivBack;
+	private Object obj = new Object();
+	private List<BarcodeInfo> barcodeInfoList = new ArrayList<BarcodeInfo>();
+	private ListView barcodeLst;
+	private HandOverAdapter handoverAdapter;
+	private Button saveBtn;
+//	private EditText orderEdt;
+	private boolean orderFlag;
+	private Handler barcodeUpperH = new Handler();
+	private String barcodeUpper;
+	private boolean checkedFlag = false;
+	private boolean isOrderTextChange;
+	private OrderSpinnerAdapter adapter;
+	private boolean isBarcodeTextChange;
+	private RelativeLayout parent; 
+	private static final String[] m = {"APP1", "APP2", "APP3"};
+	private Spinner spinner;
+	private String spinnerName = "APP2";
+	private String spinner_ = "";
+	private boolean first = true;
+	@Override
+	protected void onCreate(Bundle savedInstanceState) {
+		super.onCreate(savedInstanceState);
+		setContentView(R.layout.activity_finished_product_handover); 
+		initView(); 
+		preferences = getSharedPreferences("user", Context.MODE_PRIVATE);
+		ServerAddress_ip = preferences.getString("ServerAddress_ip", "");
+		ServerAddress_port = preferences.getString("ServerAddress_duankou", "");
+		accountCode = preferences.getString("AccountCode", "");
+		handover_usercode = preferences.getString("UserCode", "");
+		password = preferences.getString("UserPassword", "");
+		sessionkey = preferences.getString("SessionKey", ""); 
+		Bundle b = getIntent().getExtras();
+		String title = b.getString("title");
+		tvTitle.setText(title); 
+		allListeners();
+		thread = new HandlerThread("trademarkThread", 5);
+		thread.start();
+		mHandler = new Handler(thread.getLooper());
+		OrderListRunnable orderListRunnable = new OrderListRunnable(obj);
+		mHandler.post(orderListRunnable);
+	} 
+	private void initView() {
+		tvTitle = (TextView) findViewById(R.id.title);
+		ivBack = (ImageButton) findViewById(R.id.left_img);
+		tvBack = (TextView) findViewById(R.id.back);
+		View head = View.inflate(this,
+				R.layout.finished_product_handover_head_viewluoci, null); 
+		barcodeEdt = (EditText) head.findViewById(R.id.barcodeEdt);
+		barcodeEdt.setRawInputType(InputType.TYPE_CLASS_NUMBER);
+		barcodeLst = (ListView) findViewById(R.id.handoverlst);
+		barcodeLst.addHeaderView(head, null, false);
+		handoverAdapter = new HandOverAdapter(
+				LuociPriceActivity.this, barcodeInfoList);
+		barcodeLst.setAdapter(handoverAdapter);
+		saveBtn = (Button) findViewById(R.id.saveBtn); 
+		parent = (RelativeLayout) findViewById(R.id.parentRel); 
+	}
+	private void allListeners() {
+		ivBack.setOnClickListener(new OnClickListener() {
+			@Override
+			public void onClick(View v) {
+				finish();
+			}
+		});
+		tvBack.setOnClickListener(new OnClickListener() {
+			@Override
+			public void onClick(View v) {
+				finish();
+			}
+		}); 
+		saveBtn.setOnClickListener(new View.OnClickListener() {
+			@Override
+			public void onClick(View v) { 
+				int orderId; 
+				if (barcodeInfoList == null || barcodeInfoList.size() == 0) {
+					CustomToast.showToast(getApplicationContext(), "条码信息不能为空",
+							2000);
+					return;
+				}
+				ProcessDialogUtils.showProcessDialog(
+						LuociPriceActivity.this);
+				thread = null;
+				thread = new HandlerThread("saveThread", 5);
+				thread.start();
+				mHandler = new Handler(thread.getLooper());
+				SaveRunnable saveRunnable = new SaveRunnable(obj);
+				mHandler.post(saveRunnable);
+			}
+		}); 
+		barcodeEdt.addTextChangedListener(new TextWatcher() {
+			@Override
+			public void afterTextChanged(Editable arg0) { 
+				
+				
+			}
+			@Override
+			public void beforeTextChanged(CharSequence s, int start, int count,
+					int after) {
+			}
+			@Override
+			public void onTextChanged(CharSequence s, int start, int before,
+					int count) {
+				barcodeUpper = barcodeEdt.getText().toString().trim();
+				if(barcodeUpper.length() >= 73)
+				{
+					String[] parts = barcodeUpper.split("-", 2); // 第二个参数限制分割后的数组长度,这里为2  
+					  
+			        if (parts.length == 2) {  
+			            //System.out.println("第一部分: " + parts[0]);  
+			            //System.out.println("第二部分: " + parts[1]);  
+			        	barcodeUpper = parts[1];
+			        }  
+				} 
+				// 判断输入的文字是否是小写
+				for (int i = 0; i < barcodeUpper.length(); i++) {
+					if (barcodeUpper.charAt(i) - 0 >= 97
+							&& barcodeUpper.charAt(i) - 0 <= 122) {
+						barcodeUpperH.postDelayed(UpperCase, 300);
+					}
+				}
+				if (start == 0 && before == 0 && count > 1) {
+					String barcode = barcodeEdt.getText().toString();
+					
+					
+					
+					barcode = barcode.trim();
+					if (!TextUtils.isEmpty(barcode)) {
+					 
+						if(barcode.length() >= 73)
+						{
+							String[] parts = barcode.split("-", 2); // 第二个参数限制分割后的数组长度,这里为2  
+							  
+					        if (parts.length == 2) {  
+					            //System.out.println("第一部分: " + parts[0]);  
+					            //System.out.println("第二部分: " + parts[1]);  
+					            barcode = parts[1];
+					        }  
+						} 
+						ProcessDialogUtils.showProcessDialog(
+								LuociPriceActivity.this);
+						barcodeEdt.setEnabled(false);
+						barcodeEdt.setFocusable(false);
+						barcodeEdt.setFilters(
+								new InputFilter[]{new InputFilter() {
+									@Override
+									public CharSequence filter(
+											CharSequence source, int start,
+											int end, Spanned dest, int dstart,
+											int dend) {
+										return source.length() < 1
+												? dest.subSequence(dstart, dend)
+												: "";
+									}
+								}});
+					
+						thread = new HandlerThread("barcodeThread", 5);
+						thread.start();
+						mHandler = new Handler(thread.getLooper());
+						BarcodeRunnable barcodeRunnable = new BarcodeRunnable(
+								obj, barcode);
+						mHandler.post(barcodeRunnable);
+					}
+				}
+			}
+		});
+		barcodeEdt.setOnEditorActionListener(
+				new TextView.OnEditorActionListener() {
+					@Override
+					public boolean onEditorAction(TextView v, int actionId,
+							KeyEvent event) {
+						if (actionId == EditorInfo.IME_ACTION_GO) {
+							String barcode = barcodeEdt.getText().toString(); 
+							if (!TextUtils.isEmpty(barcode)) {
+								if(barcode.length() >= 73)
+								{
+									String[] parts = barcode.split("-", 2); // 第二个参数限制分割后的数组长度,这里为2  
+									  
+							        if (parts.length == 2) {  
+							            //System.out.println("第一部分: " + parts[0]);  
+							            //System.out.println("第二部分: " + parts[1]);  
+							            barcode = parts[1];
+							        }  
+								} 
+								ProcessDialogUtils.showProcessDialog(
+										LuociPriceActivity.this);
+								barcodeEdt.setEnabled(false);
+								barcodeEdt.setFocusable(false);
+								barcodeEdt.setFilters(
+										new InputFilter[]{new InputFilter() {
+											@Override
+											public CharSequence filter(
+													CharSequence source,
+													int start, int end,
+													Spanned dest, int dstart,
+													int dend) {
+												return source.length() < 1
+														? dest.subSequence(
+																dstart, dend)
+														: "";
+											}
+										}});
+								thread = new HandlerThread("barcodeThread", 5);
+								thread.start();
+								mHandler = new Handler(thread.getLooper());
+								BarcodeRunnable barcodeRunnable = new BarcodeRunnable(
+										obj, barcode);
+								mHandler.post(barcodeRunnable);
+								return true;
+							}
+						}
+						return false;
+					}
+				});
+	}
+	Runnable UpperCase = new Runnable() {
+		@Override
+		public void run() {
+			// 小写转大写
+			barcodeEdt.setText(barcodeUpper.toUpperCase());
+			// 设置EditText光标位置
+			barcodeEdt.setSelection(barcodeUpper.length());
+		}
+	};
+	public static int getOrderIndex(String order, List<Order> orderList) {
+		int newposition = -1;
+		for (int position = 0; position < orderList.size(); position++) {
+			if (order
+					.equalsIgnoreCase((orderList.get(position).getOrderNo()))) {
+				newposition = position;
+				break;
+			}
+		}
+		return newposition;
+	}
+	private class SaveRunnable implements Runnable {
+		private Object object; 
+		public SaveRunnable(Object object) {
+			this.object = object; 
+		}
+		@Override
+		public void run() {
+			synchronized (object) {
+				try {
+					client = null;
+					client = new WebClient();
+					JSONObject js = new JSONObject();
+					js.put("accountCode", accountCode);
+					js.put("userCode", handover_usercode);
+					js.put("userPassword", password);
+					js.put("sessionKey", sessionkey);
+					js.put("module", "LCFinishedProduct");
+					js.put("SPANAME", spinnerName);
+					js.put("action", "LCSaveFinishedHandover");
+					JSONArray orderEntity = new JSONArray();
+					for (BarcodeInfo info : barcodeInfoList) {
+						JSONObject obj = new JSONObject();
+						obj.put("BarCode", info.getBarcode());
+						obj.put("GoodsModel", info.getGoodsCode());
+						obj.put("SPANAME", spinnerName);
+						obj.put("logoID", info.getLogoId());
+						obj.put("LogoName", info.getLogoName());
+						orderEntity.put(obj);
+					}
+					JSONObject data = new JSONObject();
+//					data.put("OrderID", orderId);
+					data.put("Table", orderEntity);
+					data.put("SPANAME", spinnerName);
+					js.put("jsonData", data.toString());
+					String result = client.doPost(
+							"http://" + ServerAddress_ip + ":"
+									+ ServerAddress_port
+									+ Constants.serverAction + "/DoAction",
+							js.toString(), "application/json");
+					Message m = new Message();
+					m.what = 3;
+					Bundle b = new Bundle();
+					b.putString("saveResult", result);
+					m.setData(b);
+					handler.sendMessage(m);
+				} catch (Exception e) {
+					e.printStackTrace();
+					Message m = new Message();
+					Bundle b = new Bundle();
+					b.putString("message", "网络连接异常");
+					m.setData(b);
+					m.what = 0;
+					exceptionHandler.sendMessage(m);
+				}
+			}
+		}
+	};
+	private class BarcodeRunnable implements Runnable {
+		private Object object;
+		private String barcode;
+		public BarcodeRunnable(Object object, String barcode) {
+			this.object = object;
+			this.barcode = barcode;
+		}
+		@Override
+		public void run() {
+			synchronized (object) {
+				try {
+					client = null;
+					client = new WebClient();
+					JSONObject js1 = new JSONObject();
+					js1.put("accountCode", accountCode);
+					js1.put("userCode", handover_usercode);
+					js1.put("userPassword", password);
+					js1.put("sessionKey", sessionkey);
+					JSONObject data = new JSONObject();
+					data.put("Barcode", barcode);
+					js1.put("jsonData", data.toString());
+					js1.put("module", "LCFinishedProduct");
+					js1.put("action", "LCFinishedHandoverBarcode");
+					String result2 = client.doPost(
+							"http://" + ServerAddress_ip + ":"
+									+ ServerAddress_port
+									+ Constants.serverAction + "/DoAction",
+							js1.toString(), "application/json");
+					Bundle b = new Bundle();
+					Message message = new Message();
+					message.what = 1;
+					b.putString("barcode", barcode);
+					b.putString("result", result2);
+					message.setData(b);
+					handler.sendMessage(message);
+				} catch (Exception e) {
+					e.printStackTrace();
+					Message m = new Message();
+					Bundle b = new Bundle();
+					b.putString("message", "网络连接异常");
+					m.setData(b);
+					m.what = 0;
+					exceptionHandler.sendMessage(m);
+				}
+			}
+		}
+	};
+	private class OrderListRunnable implements Runnable {
+		private Object object;
+		public OrderListRunnable(Object object) {
+			this.object = object;
+		}
+		@Override
+		public void run() {
+			synchronized (object) {
+				try {
+					client = null;
+					client = new WebClient();
+					JSONObject js = new JSONObject();
+					js.put("accountCode", accountCode);
+					js.put("userCode", handover_usercode);
+					js.put("userPassword", password);
+					js.put("sessionKey", sessionkey);
+					JSONObject orderEntity = new JSONObject();
+					js.put("order", orderEntity);
+					String result = client.doPost(
+							"http://" + ServerAddress_ip + ":"
+									+ ServerAddress_port
+									+ Constants.serverAction + "/GetOrderList",
+							js.toString(), "application/json");
+					JSONObject j = new JSONObject(result);
+					JSONObject j1 = j.optJSONObject("d");
+					int status = j1.optInt("Status");
+					String message = j1.optString("Message");
+					if (status == 0) {
+						String result1 = j1.optString("Result");
+						JSONArray jarray = new JSONArray(result1);
+						if (jarray != null && jarray.length() > 0) {
+							orderList = new ArrayList<Order>();
+							Order order = new Order();
+							order.setOrderId(-1);
+							order.setOrderNo("请选择订单");
+							orderList.add(order);
+							for (int i = 0; i < jarray.length(); i++) {
+								JSONObject obj = jarray.optJSONObject(i);
+								int orderId = obj.optInt("ORDERID");
+								String orderNo = obj.optString("ORDERNO");
+								String valueFlag = obj.optString("VALUEFLAG");
+								if (valueFlag.equals("1")) {
+									Order order1 = new Order();
+									order1.setOrderId(orderId);
+									order1.setOrderNo(orderNo);
+									orderList.add(order1);
+								}
+							}
+						} 
+						Message m = new Message();
+						m.what = 0;
+						Bundle b = new Bundle();
+						b.putSerializable("orderList",
+								(Serializable) orderList);
+						m.setData(b);
+						handler.sendMessage(m); 
+					} else {
+						Bundle b = new Bundle();
+						b.putInt("status", status);
+						b.putString("message", message);
+						Message m = new Message();
+						m.what = 1;
+						m.setData(b);
+						exceptionHandler.sendMessage(m);
+						return;
+					}
+				} catch (Exception e) {
+					e.printStackTrace();
+					Message m = new Message();
+					Bundle b = new Bundle();
+					b.putString("message", "网络连接异常");
+					m.setData(b);
+					m.what = 0;
+					exceptionHandler.sendMessage(m);
+				}
+			}
+		}
+	};
+	Handler exceptionHandler = new Handler() {
+		@Override
+		public void handleMessage(Message msg) {
+			switch (msg.what) {
+				case 0 :
+					Bundle b = msg.getData();
+					String message = b.getString("message");
+					ProcessDialogUtils.closeProgressDilog();
+					if (mHandler != null) {
+						mHandler.removeCallbacksAndMessages(null);
+						mHandler.getLooper().quit();
+					}
+					CustomToast.showToast(getApplicationContext(), message,
+							2000);
+					CommonUtil.setDefault(Notification.DEFAULT_VIBRATE,
+							getApplicationContext());
+					barcodeEdt.setEnabled(true);
+					barcodeEdt.setText("");
+					barcodeEdt.setFocusable(true);
+					barcodeEdt.setFocusableInTouchMode(true);
+					barcodeEdt.requestFocus();
+					barcodeEdt.findFocus();
+					barcodeEdt.setFilters(new InputFilter[]{new InputFilter() {
+						@Override
+						public CharSequence filter(CharSequence source,
+								int start, int end, Spanned dest, int dstart,
+								int dend) {
+							return null;
+						}
+					}}); 
+					break;
+				case 1 :
+					Bundle b1 = msg.getData();
+					int status1 = b1.getInt("status");
+					String message1 = b1.getString("message");
+					ProcessDialogUtils.closeProgressDilog();
+					if (mHandler != null) {
+						mHandler.removeCallbacksAndMessages(null);
+						mHandler.getLooper().quit();
+					}
+					CommonUtil.setDefault(Notification.DEFAULT_VIBRATE,
+							getApplicationContext());
+					CommonUtil.showBarCodeAlertDialog(status1, message1,
+							LuociPriceActivity.this, barcodeEdt,
+							null, null);
+					break;
+			}
+		}
+	};
+	Handler handler = new Handler() {
+		@SuppressWarnings("unchecked")
+		@Override
+		public void handleMessage(Message msg) {
+			switch (msg.what) {
+				case 0 :
+					Bundle b = msg.getData();
+					orderList = (List<Order>) b.getSerializable("orderList");
+					if (mHandler != null) {
+						mHandler.removeCallbacksAndMessages(null);
+						mHandler.getLooper().quit();
+					}
+					ProcessDialogUtils.closeProgressDilog(); 
+					break;
+				case 1 :
+					ProcessDialogUtils.closeProgressDilog();
+					if (mHandler != null) {
+						mHandler.removeCallbacksAndMessages(null);
+						mHandler.getLooper().quit();
+					}
+					Bundle b1 = msg.getData();
+					String result1 = b1.getString("result");
+					barcode = b1.getString("barcode");
+					JSONObject jobj2;
+					try {
+						jobj2 = new JSONObject(result1);
+						JSONObject jobj3 = jobj2.optJSONObject("d");
+						int status3 = jobj3.optInt("Status");
+						if (status3 == 0) {
+							String result4 = jobj3.optString("Result");
+							JSONObject jobj4 = new JSONObject(result4);
+							JSONArray arry4 = jobj4.optJSONArray("Table");
+							if (arry4 != null && arry4.length() > 0) {
+								JSONObject jobj6 = arry4.optJSONObject(0);
+								String outbarcode = jobj6.optString("BARCODE");
+								if (barcodeInfoList.size() > 0) {
+									boolean b2 = Removeduplicate.removeBarCode(
+											outbarcode, barcodeInfoList);
+									if (b2) {
+										String message = "条码" + outbarcode
+												+ "重复";
+										CustomToast.showToast(
+												getApplicationContext(),
+												message, 2000);
+										CommonUtil.setDefault(
+												Notification.DEFAULT_VIBRATE,
+												getApplicationContext());
+										barcodeEdt.setEnabled(true);
+										barcodeEdt.setText("");
+										barcodeEdt.setFocusable(true);
+										barcodeEdt
+												.setFocusableInTouchMode(true);
+										barcodeEdt.requestFocus();
+										barcodeEdt.findFocus();
+										barcodeEdt.setFilters(new InputFilter[]{
+												new InputFilter() {
+													@Override
+													public CharSequence filter(
+															CharSequence source,
+															int start, int end,
+															Spanned dest,
+															int dstart,
+															int dend) {
+														return null;
+													}
+												}}); 
+										return;
+									}
+								}
+								for (int i = 0; i < arry4.length(); i++) {
+									JSONObject jobj5 = arry4.optJSONObject(i);
+									int logoId = jobj5.optInt("LOGOID");
+									String logoCode = jobj5
+											.optString("LOGOCODE");
+									String logoName = jobj5
+											.optString("LOGONAME");
+									String goodsCode = jobj5
+											.optString("GOODSCODE");
+									String finishedBarCode = jobj5
+											.optString("FINISHEDBARCODE");
+									String outbarcode1 = jobj5
+											.optString("BARCODE");
+									int userId = jobj5.optInt("USERID");
+									String groutingUserCode = jobj5
+											.optString("GROUTINGUSERCODE");
+									String mouldCode = jobj5
+											.optString("MOULDCODE");
+									String groutingDate = jobj5
+											.optString("GROUTINGDATE");
+									groutingDate = CommonUtil
+											.commonDateConverter(groutingDate);
+									String diliverTime = jobj5
+											.optString("DELIVERTIME");
+									String goodsModel = jobj5
+											.optString("GOODSMODEL");
+									diliverTime = CommonUtil
+											.commonDateConverter(diliverTime);
+									// limitNum = jobj5.optInt("PLATELIMITNUM");
+									BarcodeInfo info = new BarcodeInfo();
+									info.setBarcode(outbarcode1);
+									info.setLogoId(logoId);
+									info.setLogoCode(logoCode);
+									info.setFinishedBarCode(finishedBarCode);
+									info.setLogoName(logoName);
+									info.setGoodsCode(goodsCode);
+									info.setGoodsModel(goodsModel);
+									info.setUserId(userId);
+									info.setUserCode(groutingUserCode);
+									info.setMouldCode(mouldCode);
+									info.setGroutingDate(groutingDate);
+									info.setDeliverTime(diliverTime);
+									info.setBanMa(
+											(jobj5.optString("BANMA") == "null")
+													? ""
+													: jobj5.optString("BANMA"));
+								 
+									barcodeInfoList.add(info);
+								}
+								if (handoverAdapter == null) {
+									handoverAdapter = new HandOverAdapter(
+											LuociPriceActivity.this,
+											barcodeInfoList);
+									barcodeLst.setAdapter(handoverAdapter);
+								 
+								} else {
+									handoverAdapter.notifyDataSetChanged();
+								}
+							 
+								barcodeEdt.setEnabled(true);
+								barcodeEdt.setText("");
+								barcodeEdt.setFocusable(true);
+								barcodeEdt.setFocusableInTouchMode(true);
+								barcodeEdt.requestFocus();
+								barcodeEdt.findFocus();
+								barcodeEdt.setFilters(
+										new InputFilter[]{new InputFilter() {
+											@Override
+											public CharSequence filter(
+													CharSequence source,
+													int start, int end,
+													Spanned dest, int dstart,
+													int dend) {
+												return null;
+											}
+										}}); 
+							}
+						} else {
+							String message = jobj3.optString("Message");
+							CommonUtil.setDefault(Notification.DEFAULT_VIBRATE,
+									getApplicationContext());
+							CommonUtil.showBarCodeAlertDialog(status3, message,
+									LuociPriceActivity.this,
+									barcodeEdt, null, null);
+							return;
+						}
+						saveBtn.setText("保存(" + barcodeInfoList.size() + ")");
+					} catch (JSONException e1) {
+						e1.printStackTrace();
+					}
+					break;
+				case 2 :
+					ProcessDialogUtils.closeProgressDilog();
+					if (mHandler != null) {
+						mHandler.removeCallbacksAndMessages(null);
+						mHandler.getLooper().quit();
+					}
+					Bundle b2 = msg.getData();
+					String errmsg = b2.getString("msg");
+					String missFlag = b2.getString("missingFlag");
+					Intent intent = new Intent();
+					Bundle b3 = new Bundle();
+					b3.putString("msg", errmsg);
+					b3.putString("missingFlag", missFlag);
+					intent.putExtras(b3);
+					intent.setClass(LuociPriceActivity.this,
+							MissingScanActivity.class);
+					startActivityForResult(intent, 101);
+					break;
+				case 3 :
+					Bundle b4 = msg.getData();
+					String result3 = b4.getString("saveResult");
+					if (mHandler != null) {
+						mHandler.removeCallbacksAndMessages(null);
+						mHandler.getLooper().quit();
+					}
+					ProcessDialogUtils.closeProgressDilog();
+					barcodeEdt.setEnabled(true);
+					barcodeEdt.setText("");
+					barcodeEdt.setFocusable(true);
+					barcodeEdt.setFocusableInTouchMode(true);
+					barcodeEdt.requestFocus();
+					barcodeEdt.findFocus();
+					barcodeEdt.setFilters(new InputFilter[]{new InputFilter() {
+						@Override
+						public CharSequence filter(CharSequence source,
+								int start, int end, Spanned dest, int dstart,
+								int dend) {
+							return null;
+						}
+					}});
+					try {
+						JSONObject jo = new JSONObject(result3);
+						JSONObject jo1 = jo.optJSONObject("d");
+						int status = jo1.optInt("Status");
+						String message = jo1.optString("Message");
+						if (status == 0) {
+							CustomToast.showToast(getApplicationContext(),
+									"保存成功", 2000);
+							// if (quantitySettingValue.equals("0")) {
+							// saveBtn.setEnabled(true);
+							//
+							// } else {
+							// saveBtn.setEnabled(false);
+							//
+							// }
+//							orderEdt.setText("");
+							if (handoverAdapter != null) {
+								barcodeInfoList.removeAll(barcodeInfoList);
+								handoverAdapter.notifyDataSetChanged();
+								saveBtn.setText(
+										"保存(" + barcodeInfoList.size() + ")");
+							}
+							CommonUtil.playSound(getApplicationContext());
+						} else {
+							CommonUtil.setDefault(Notification.DEFAULT_VIBRATE,
+									getApplicationContext());
+							CommonUtil.showBarCodeAlertDialog(status, message,
+									LuociPriceActivity.this,
+									barcodeEdt, null, null);
+						}
+					} catch (JSONException e) {
+						e.printStackTrace();
+					}
+					break;
+			}
+		}
+	};
+	@Override
+	public boolean dispatchTouchEvent(MotionEvent ev) {
+		switch (ev.getAction()) {
+			case MotionEvent.ACTION_DOWN :
+				View view = getCurrentFocus();
+				CommonUtil.hideKeyboard(ev, view,
+						LuociPriceActivity.this);// 调用方法判断是否需要隐藏键盘
+				break;
+			default :
+				break;
+		}
+		return super.dispatchTouchEvent(ev);
+	}
+	@Override
+	protected void onActivityResult(int requestCode, int resultCode,
+			Intent intent) {
+		if (requestCode == 101 && resultCode == 103) {
+//			orderEdt.setEnabled(true);
+//			orderEdt.setFocusable(true);
+//			orderEdt.setFocusableInTouchMode(true);
+//			orderEdt.setFilters(new InputFilter[]{new InputFilter() {
+//				@Override
+//				public CharSequence filter(CharSequence source, int start,
+//						int end, Spanned dest, int dstart, int dend) {
+//					return null;
+//				}
+//			}});
+			barcodeEdt.setEnabled(true);
+			barcodeEdt.setText("");
+			barcodeEdt.setFocusable(true);
+			barcodeEdt.setFocusableInTouchMode(true);
+			barcodeEdt.requestFocus();
+			barcodeEdt.findFocus();
+			barcodeEdt.setFilters(new InputFilter[]{new InputFilter() {
+				@Override
+				public CharSequence filter(CharSequence source, int start,
+						int end, Spanned dest, int dstart, int dend) {
+					return null;
+				}
+			}}); 
+		}
+	}
+	@Override
+	public boolean onCreateOptionsMenu(Menu menu) {
+		getMenuInflater().inflate(R.menu.finished_product_handover, menu);
+		return true;
+	}
+}

+ 627 - 0
src/com/jiaju/activity/LuociRevokeActivity.java

@@ -0,0 +1,627 @@
+package com.jiaju.activity;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import com.jiaju.adapter.CancelFinishedProductHandOverAdapter;
+import com.jiaju.model.BarcodeInfo;
+import com.jiaju.net.WebClient;
+import com.jiaju.utils.CommonUtil;
+import com.jiaju.utils.Constants;
+import com.jiaju.utils.ProcessDialogUtils;
+import com.jiaju.utils.Removeduplicate;
+
+import android.app.Activity;
+import android.app.Notification;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.Message;
+import android.text.Editable;
+import android.text.InputFilter;
+import android.text.InputType;
+import android.text.Spanned;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.KeyEvent;
+import android.view.Menu;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ImageButton;
+import android.widget.ListView;
+import android.widget.TextView;
+import android.widget.Toast;
+//裸辞交接 撤销
+public class LuociRevokeActivity extends Activity {
+	private TextView title;
+	private EditText barcodeEdt;
+	private String accountCode;
+	private String cancelPacking_userCode;
+	private String password;
+	private String sessionkey;
+	private SharedPreferences preferences;
+	private String ServerAddress_ip;
+	private String ServerAddress_duankou;
+	private HandlerThread thread;
+	private Handler mHandler;
+	private WebClient client = null;
+	private TextView backtext;
+	private ImageButton backbtn;
+	private Object obj = new Object();
+	private List<BarcodeInfo> barcodeList;
+	private CancelFinishedProductHandOverAdapter adapter = null;
+	private ListView cancellstview;
+	private Button saveBtn;
+	private String procedureName;
+	private Handler barcodeUpperH = new Handler();
+	private String barcodeUpper;
+	@Override
+	protected void onCreate(Bundle savedInstanceState) {
+		super.onCreate(savedInstanceState);
+		setContentView(R.layout.activity_cancel_finished_product_hand_over);
+		initView();
+		preferences = getSharedPreferences("user", Context.MODE_PRIVATE);
+		ServerAddress_ip = preferences.getString("ServerAddress_ip", "");
+		ServerAddress_duankou = preferences.getString("ServerAddress_duankou",
+				"");
+		accountCode = preferences.getString("AccountCode", "");
+		cancelPacking_userCode = preferences.getString("UserCode", "");
+		password = preferences.getString("UserPassword", "");
+		sessionkey = preferences.getString("SessionKey", "");
+		Bundle b = getIntent().getExtras();
+		procedureName = b.getString("title");
+		title.setText(procedureName);
+		CommonUtil.BarcodeMaxLength(barcodeEdt, 50);
+		barcodeList = new ArrayList<BarcodeInfo>();
+		allListeners();
+	}
+	public void initView() {
+		title = (TextView) findViewById(R.id.title);
+		barcodeEdt = (EditText) findViewById(R.id.barcodeEdt);
+		barcodeEdt.setRawInputType(InputType.TYPE_CLASS_NUMBER);
+		backbtn = (ImageButton) findViewById(R.id.left_img);
+		backtext = (TextView) findViewById(R.id.back);
+		cancellstview = (ListView) findViewById(R.id.cancel_listview);
+		saveBtn = (Button) findViewById(R.id.saveBtn);
+	}
+	public void allListeners() {
+		saveBtn.setOnClickListener(new View.OnClickListener() {
+			@Override
+			public void onClick(View v) {
+				if (barcodeList == null) {
+					Toast.makeText(getApplicationContext(), "条码信息不能为空",
+							Toast.LENGTH_SHORT).show();
+					return;
+				} else {
+					if (barcodeList.size() == 0) {
+						Toast.makeText(getApplicationContext(), "条码信息不能为空",
+								Toast.LENGTH_SHORT).show();
+						return;
+					}
+					BarcodeInfo info = barcodeList.get(0);
+					String barcode = info.getBarcode();
+					ProcessDialogUtils.showProcessDialog(
+							LuociRevokeActivity.this);
+					if (saveBtn.isEnabled()) {
+						saveBtn.setEnabled(false);
+						thread = new HandlerThread("saveThread", 5);
+						thread.start();
+						mHandler = new Handler(thread.getLooper());
+						SaveRunnable saveRunnable = new SaveRunnable(barcode,
+								obj);
+						mHandler.post(saveRunnable);
+					}
+				}
+			}
+		});
+		backtext.setOnClickListener(new OnClickListener() {
+			@Override
+			public void onClick(View v) {
+				finish();
+			}
+		});
+		backbtn.setOnClickListener(new View.OnClickListener() {
+			@Override
+			public void onClick(View v) {
+				finish();
+			}
+		});
+		barcodeEdt.addTextChangedListener(new TextWatcher() {
+			@Override
+			public void afterTextChanged(Editable arg0) {
+			}
+			@Override
+			public void beforeTextChanged(CharSequence s, int start, int count,
+					int after) {
+			}
+			@Override
+			public void onTextChanged(CharSequence s, int start, int before,
+					int count) {
+				barcodeUpper = barcodeEdt.getText().toString().trim();
+				// 判断输入的文字是否是小写
+				for (int i = 0; i < barcodeUpper.length(); i++) {
+					if (barcodeUpper.charAt(i) - 0 >= 97
+							&& barcodeUpper.charAt(i) - 0 <= 122) {
+						barcodeUpperH.postDelayed(UpperCase, 300);
+					}
+				}
+				if (start == 0 && before == 0 && count > 1) {
+					String barcode = barcodeEdt.getText().toString().trim();
+					if (!TextUtils.isEmpty(barcode)) {
+						if (barcodeList.size() > 0) {
+							boolean b = Removeduplicate.removeBarCode(barcode,
+									barcodeList);
+							if (b) {
+								barcodeEdt.setText("");
+								barcodeEdt.setFocusable(true);
+								barcodeEdt.requestFocus();
+								CommonUtil.setDefault(
+										Notification.DEFAULT_VIBRATE,
+										getApplicationContext());
+								Toast.makeText(getApplicationContext(),
+										"条码" + barcode + "重复",
+										Toast.LENGTH_SHORT).show();
+								return;
+							}
+						}
+						if (barcodeList != null && barcodeList.size() > 0) {
+							barcodeList.removeAll(barcodeList);
+							if (adapter != null) {
+								adapter.notifyDataSetChanged();
+							}
+						}
+						ProcessDialogUtils.showProcessDialog(
+								LuociRevokeActivity.this);
+						barcodeEdt.setEnabled(false);
+						barcodeEdt.setFocusable(false);
+						barcodeEdt.setFilters(
+								new InputFilter[]{new InputFilter() {
+									@Override
+									public CharSequence filter(
+											CharSequence source, int start,
+											int end, Spanned dest, int dstart,
+											int dend) {
+										return source.length() < 1
+												? dest.subSequence(dstart, dend)
+												: "";
+									}
+								}});
+						thread = new HandlerThread("barcodeThread", 5);
+						thread.start();
+						mHandler = new Handler(thread.getLooper());
+						BarcodeRunnable barcodeRunnable = new BarcodeRunnable(
+								barcode, obj);
+						mHandler.post(barcodeRunnable);
+					}
+				}
+			}
+		});
+		barcodeEdt.setOnEditorActionListener(
+				new TextView.OnEditorActionListener() {
+					@Override
+					public boolean onEditorAction(TextView v, int actionId,
+							KeyEvent event) {
+						if (actionId == EditorInfo.IME_ACTION_GO) {
+							String barcode = barcodeEdt.getText().toString();
+							if (!TextUtils.isEmpty(barcode)) {
+								if (barcodeList.size() > 0) {
+									boolean b = Removeduplicate.removeBarCode(
+											barcode, barcodeList);
+									if (b) {
+										barcodeEdt.setText("");
+										barcodeEdt.setFocusable(true);
+										barcodeEdt.requestFocus();
+										CommonUtil.setDefault(
+												Notification.DEFAULT_VIBRATE,
+												getApplicationContext());
+										Toast.makeText(getApplicationContext(),
+												"条码" + barcode + "重复",
+												Toast.LENGTH_SHORT).show();
+										return true;
+									}
+								}
+								if (barcodeList != null
+										&& barcodeList.size() > 0) {
+									barcodeList.removeAll(barcodeList);
+									if (adapter != null) {
+										adapter.notifyDataSetChanged();
+									}
+								}
+								ProcessDialogUtils.showProcessDialog(
+										LuociRevokeActivity.this);
+								barcodeEdt.setEnabled(false);
+								barcodeEdt.setFocusable(false);
+								barcodeEdt.setFilters(
+										new InputFilter[]{new InputFilter() {
+											@Override
+											public CharSequence filter(
+													CharSequence source,
+													int start, int end,
+													Spanned dest, int dstart,
+													int dend) {
+												return source.length() < 1
+														? dest.subSequence(
+																dstart, dend)
+														: "";
+											}
+										}});
+								thread = new HandlerThread("barcodeThread", 5);
+								thread.start();
+								mHandler = new Handler(thread.getLooper());
+								BarcodeRunnable barcodeRunnable = new BarcodeRunnable(
+										barcode, obj);
+								mHandler.post(barcodeRunnable);
+								return true;
+							} else {
+								Toast.makeText(getApplicationContext(),
+										"产品条码不能为空", Toast.LENGTH_SHORT).show();
+								return true;
+							}
+						}
+						return false;
+					}
+				});
+	}
+	Runnable BarcodeUpperCase = new Runnable() {
+		@Override
+		public void run() {
+			// 小写转大写
+			barcodeEdt.setText(barcodeUpper.toUpperCase());
+			// 设置EditText光标位置
+			barcodeEdt.setSelection(barcodeUpper.length());
+		}
+	};
+	Runnable UpperCase = new Runnable() {
+		@Override
+		public void run() {
+			// 小写转大写
+			barcodeEdt.setText(barcodeUpper.toUpperCase());
+			// 设置EditText光标位置
+			barcodeEdt.setSelection(barcodeUpper.length());
+		}
+	};
+	Handler h = new Handler() {
+		@Override
+		public void handleMessage(Message msg) {
+			switch (msg.what) {
+				case 0 :
+					Bundle b1 = msg.getData();
+					String json1 = b1.getString("barcodeResult");
+					ProcessDialogUtils.closeProgressDilog();
+					try {
+						JSONObject jo2 = new JSONObject(json1);
+						JSONObject jo3 = jo2.optJSONObject("d");
+						int status = jo3.optInt("Status");
+						String message = jo3.optString("Message");
+						if (status == 0) {
+							String result = jo3.optString("Result");
+							JSONObject resultObj = new JSONObject(result);
+							JSONArray jarray = resultObj.optJSONArray("Table");
+							if (jarray != null && jarray.length() > 0) {
+								for (int i = 0; i < jarray.length(); i++) {
+									JSONObject jo = jarray.optJSONObject(i);
+									String orderNo = jo.optString("ORDERNO");
+									String goodsCode = jo
+											.optString("GOODSCODE");
+									String groutingUserCode = jo
+											.optString("GROUTINGUSERCODE");
+									int logoId = jo.optInt("LOGOID");
+									String logoCode = jo.optString("LOGOCODE");
+									String logoName = jo.optString("LOGONAME");
+									String barcode = jo.optString("BARCODE");
+									String finishedBarcode = jo
+											.optString("FINISHEDBARCODE");
+									String groutingDate = jo
+											.optString("GROUTINGDATE");
+									String billetDate = jo
+											.optString("DELIVERTIME");
+									String mouldCode = jo
+											.optString("GROUTINGMOULDCODE");
+									BarcodeInfo info = new BarcodeInfo();
+									info.setBarcode(barcode);
+									info.setFinishedBarCode(finishedBarcode);
+									info.setOrderNo(orderNo);
+									info.setGoodsCode(goodsCode);
+									info.setUserCode(groutingUserCode);
+									info.setLogoId(logoId);
+									info.setLogoCode(logoCode);
+									info.setLogoName(logoName);
+									info.setBanMa(
+											(jo.optString("BANMA") == "null")
+													? ""
+													: jo.optString("BANMA"));
+									if (!TextUtils.isEmpty(groutingDate)) {
+										if (groutingDate.contains("/")) {
+											groutingDate = CommonUtil
+													.dateStringConverter(
+															groutingDate);
+										} else if (groutingDate.contains("-")) {
+											groutingDate = CommonUtil
+													.commonDateConverter(
+															groutingDate);
+										}
+										info.setGroutingDate(groutingDate);
+									} else {
+										info.setGroutingDate("");
+									}
+									if (!TextUtils.isEmpty(billetDate)) {
+										if (billetDate.contains("/")) {
+											billetDate = CommonUtil
+													.dateStringConverter(
+															billetDate);
+										} else if (billetDate.contains("-")) {
+											billetDate = CommonUtil
+													.commonDateConverter(
+															billetDate);
+										}
+										info.setDeliverTime(billetDate);
+									} else {
+										info.setDeliverTime("");
+									}
+									info.setMouldCode(mouldCode);
+									barcodeList.add(info);
+								}
+								adapter = new CancelFinishedProductHandOverAdapter(
+										LuociRevokeActivity.this,
+										barcodeList);
+								cancellstview.setAdapter(adapter);
+								saveBtn.setText(
+										"保存(" + barcodeList.size() + ")");
+							} else {
+								Toast.makeText(getApplicationContext(),
+										"此条码不存在", Toast.LENGTH_SHORT).show();
+							}
+							barcodeEdt.setEnabled(true);
+							barcodeEdt.setText("");
+							barcodeEdt.setFocusable(true);
+							barcodeEdt.setFocusableInTouchMode(true);
+							barcodeEdt.requestFocus();
+							barcodeEdt.findFocus();
+							barcodeEdt.setFilters(
+									new InputFilter[]{new InputFilter() {
+										@Override
+										public CharSequence filter(
+												CharSequence source, int start,
+												int end, Spanned dest,
+												int dstart, int dend) {
+											return null;
+										}
+									}});
+							CommonUtil.BarcodeMaxLength(barcodeEdt, 50);
+						} else {
+							CommonUtil.setDefault(Notification.DEFAULT_VIBRATE,
+									getApplicationContext());
+							CommonUtil.showBarCodeAlertDialog(status, message,
+									LuociRevokeActivity.this,
+									barcodeEdt, null, null);
+						}
+						if (mHandler != null) {
+							mHandler.removeCallbacksAndMessages(null);
+							mHandler.getLooper().quit();
+						}
+					} catch (JSONException e1) {
+						e1.printStackTrace();
+						Toast.makeText(getApplicationContext(), "json数据异常",
+								Toast.LENGTH_SHORT).show();
+					}
+					break;
+				case 1 :
+					Bundle b = msg.getData();
+					String json = b.getString("saveResult");
+					ProcessDialogUtils.closeProgressDilog();
+					if (mHandler != null) {
+						mHandler.removeCallbacksAndMessages(null);
+						mHandler.getLooper().quit();
+					}
+					saveBtn.setEnabled(true);
+					try {
+						JSONObject jo = new JSONObject(json);
+						JSONObject jo1 = jo.optJSONObject("d");
+						int status = jo1.optInt("Status");
+						String message = jo1.optString("Message");
+						if (barcodeList != null && barcodeList.size() > 0) {
+							barcodeList.removeAll(barcodeList);
+							if (adapter != null) {
+								adapter.notifyDataSetChanged();
+							}
+						}
+						saveBtn.setText("保存(" + barcodeList.size() + ")");
+						if (status == 0) {
+							barcodeEdt.setEnabled(true);
+							barcodeEdt.setText("");
+							barcodeEdt.setFocusable(true);
+							barcodeEdt.setFocusableInTouchMode(true);
+							barcodeEdt.requestFocus();
+							barcodeEdt.findFocus();
+							barcodeEdt.setFilters(
+									new InputFilter[]{new InputFilter() {
+										@Override
+										public CharSequence filter(
+												CharSequence source, int start,
+												int end, Spanned dest,
+												int dstart, int dend) {
+											return null;
+										}
+									}});
+							CommonUtil.BarcodeMaxLength(barcodeEdt, 50);
+							InputMethodManager im = (InputMethodManager) barcodeEdt
+									.getContext().getSystemService(
+											Context.INPUT_METHOD_SERVICE);
+							im.hideSoftInputFromWindow(
+									LuociRevokeActivity.this
+											.getCurrentFocus().getWindowToken(),
+									InputMethodManager.HIDE_NOT_ALWAYS);
+							Toast.makeText(getApplicationContext(), "上传成功",
+									Toast.LENGTH_SHORT).show();
+							CommonUtil.playSound(getApplicationContext());
+						} else {
+							CommonUtil.showBarCodeAlertDialog(status, message,
+									LuociRevokeActivity.this,
+									barcodeEdt, null, null);
+							CommonUtil.setDefault(Notification.DEFAULT_VIBRATE,
+									getApplicationContext());
+						}
+					} catch (JSONException e) {
+						e.printStackTrace();
+						Toast.makeText(getApplicationContext(), "json数据异常",
+								Toast.LENGTH_SHORT).show();
+					}
+					break;
+			}
+		}
+	};
+	private Handler exceptionHandler = new Handler() {
+		@Override
+		public void handleMessage(Message msg) {
+			super.handleMessage(msg);
+			switch (msg.what) {
+				case 0 :
+					ProcessDialogUtils.closeProgressDilog();
+					saveBtn.setEnabled(true);
+					if (mHandler != null) {
+						mHandler.removeCallbacksAndMessages(null);
+						mHandler.getLooper().quit();
+					}
+					Bundle b = msg.getData();
+					String message = b.getString("message");
+					CommonUtil.setDefault(Notification.DEFAULT_VIBRATE,
+							getApplicationContext());
+					Toast.makeText(getApplicationContext(), message,
+							Toast.LENGTH_SHORT).show();
+					barcodeEdt.setEnabled(true);
+					barcodeEdt.setText("");
+					barcodeEdt.setFocusable(true);
+					barcodeEdt.setFocusableInTouchMode(true);
+					barcodeEdt.requestFocus();
+					barcodeEdt.findFocus();
+					barcodeEdt.setFilters(new InputFilter[]{new InputFilter() {
+						@Override
+						public CharSequence filter(CharSequence source,
+								int start, int end, Spanned dest, int dstart,
+								int dend) {
+							return null;
+						}
+					}});
+					CommonUtil.BarcodeMaxLength(barcodeEdt, 50);
+					break;
+			}
+		}
+	};
+	public class SaveRunnable implements Runnable {
+		String barcode;
+		Object obj;
+		public SaveRunnable(String barcode, Object obj) {
+			this.barcode = barcode;
+			this.obj = obj;
+		}
+		@Override
+		public void run() {
+			synchronized (obj) {
+				try {
+					client = new WebClient();
+					JSONObject js = new JSONObject();
+					js.put("accountCode", accountCode);
+					js.put("userCode", cancelPacking_userCode);
+					js.put("userPassword", password);
+					js.put("sessionKey", sessionkey);
+					js.put("module", "LCFinishedProduct");
+					js.put("action", "LCBackFinishedHandover");
+					JSONArray barcodeArray = new JSONArray();
+					for (int i = 0; i < barcodeList.size(); i++) {
+						BarcodeInfo barcodeInfo = barcodeList.get(i);
+						JSONObject jobj = new JSONObject();
+						jobj.put("BarCode", barcodeInfo.getBarcode());
+						jobj.put("GoodsModel", barcodeInfo.getGoodsCode());
+						jobj.put("logoID", barcodeInfo.getLogoId());
+						jobj.put("LogoName", barcodeInfo.getLogoName());
+						barcodeArray.put(jobj);
+					}
+					JSONObject data = new JSONObject();
+					data.put("Table", barcodeArray);
+					js.put("jsonData", data.toString());
+					String result = client.doPost(
+							"http://" + ServerAddress_ip + ":"
+									+ ServerAddress_duankou
+									+ Constants.serverAction + "/DoAction",
+							js.toString(), "application/json");
+					Message m = new Message();
+					m.what = 1;
+					Bundle b = new Bundle();
+					b.putString("saveResult", result);
+					m.setData(b);
+					h.sendMessage(m);
+				} catch (Exception e) {
+					e.printStackTrace();
+					Message m = new Message();
+					m.what = 0;
+					Bundle b = new Bundle();
+					b.putString("message", "网络连接异常");
+					m.setData(b);
+					exceptionHandler.sendMessage(m);
+					return;
+				}
+			}
+		}
+	};
+	public class BarcodeRunnable implements Runnable {
+		String barcode;
+		Object obj;
+		public BarcodeRunnable(String barcode, Object obj) {
+			this.barcode = barcode;
+			this.obj = obj;
+		}
+		@Override
+		public void run() {
+			synchronized (obj) {
+				try {
+					client = new WebClient();
+					JSONObject js = new JSONObject();
+					js.put("accountCode", accountCode);
+					js.put("userCode", cancelPacking_userCode);
+					js.put("userPassword", password);
+					js.put("sessionKey", sessionkey);
+					js.put("module", "LCFinishedProduct");
+					js.put("action", "LCBackFinishedHandoverCheck");
+					JSONObject data = new JSONObject();
+					data.put("Barcode", barcode);
+					js.put("jsonData", data.toString());
+					String result = client.doPost(
+							"http://" + ServerAddress_ip + ":"
+									+ ServerAddress_duankou
+									+ Constants.serverAction + "/DoAction",
+							js.toString(), "application/json");
+					Message m = new Message();
+					m.what = 0;
+					Bundle b = new Bundle();
+					b.putString("barcodeResult", result);
+					m.setData(b);
+					h.sendMessage(m);
+				} catch (Exception e) {
+					e.printStackTrace();
+					Message m = new Message();
+					m.what = 0;
+					Bundle b = new Bundle();
+					b.putString("message", "网络连接异常");
+					m.setData(b);
+					exceptionHandler.sendMessage(m);
+					return;
+				}
+			}
+		}
+	};
+	@Override
+	public boolean onCreateOptionsMenu(Menu menu) {
+		// Inflate the menu; this adds items to the action bar if it is present.
+		getMenuInflater().inflate(R.menu.cancel_packing, menu);
+		return true;
+	}
+}

+ 2 - 2
src/com/jiaju/adapter/ProductLineExpandableListView.java

@@ -1563,7 +1563,7 @@ public class ProductLineExpandableListView extends ExpandableListView
 			Intent i = new Intent();
 			Bundle b = new Bundle();
 			b.putString("procedureName", procedureName);
-			b.putString("title", "交接");
+			b.putString("title", "裸瓷交接");
 			i.putExtras(b);
 			i.setClass(mContext, LuociPriceActivity.class);
 			mContext.startActivity(i);
@@ -1573,7 +1573,7 @@ public class ProductLineExpandableListView extends ExpandableListView
 			Intent i = new Intent();
 			Bundle b = new Bundle();
 			b.putString("procedureName", procedureName);
-			b.putString("title", "撤销");
+			b.putString("title", "裸瓷撤销");
 			i.putExtras(b);
 			i.setClass(mContext, LuociRevokeActivity.class);
 			mContext.startActivity(i);