MaterialCollectionFragment.java 50 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046
  1. package com.uas.standard_esop.fragment;
  2. import android.app.AlertDialog;
  3. import android.content.DialogInterface;
  4. import android.content.Intent;
  5. import android.graphics.drawable.BitmapDrawable;
  6. import android.os.Bundle;
  7. import android.os.Handler;
  8. import android.text.Editable;
  9. import android.text.TextUtils;
  10. import android.text.TextWatcher;
  11. import android.util.Log;
  12. import android.view.KeyEvent;
  13. import android.view.View;
  14. import android.view.inputmethod.EditorInfo;
  15. import android.widget.Button;
  16. import android.widget.EditText;
  17. import android.widget.ImageView;
  18. import android.widget.LinearLayout;
  19. import android.widget.PopupWindow;
  20. import android.widget.RadioButton;
  21. import android.widget.RadioGroup;
  22. import android.widget.TextView;
  23. import android.widget.Toast;
  24. import androidx.fragment.app.Fragment;
  25. import com.alibaba.fastjson.JSON;
  26. import com.android.volley.AuthFailureError;
  27. import com.android.volley.DefaultRetryPolicy;
  28. import com.android.volley.NetworkResponse;
  29. import com.android.volley.Request;
  30. import com.android.volley.RequestQueue;
  31. import com.android.volley.Response;
  32. import com.android.volley.VolleyError;
  33. import com.android.volley.toolbox.HttpHeaderParser;
  34. import com.android.volley.toolbox.JsonObjectRequest;
  35. import com.android.volley.toolbox.JsonRequest;
  36. import com.android.volley.toolbox.StringRequest;
  37. import com.android.volley.toolbox.Volley;
  38. import com.uas.standard_esop.R;
  39. import com.uas.standard_esop.activity.FunctionActivity;
  40. import com.uas.standard_esop.activity.SearchMaterialActivity;
  41. import com.uas.standard_esop.application.PdaApplication;
  42. import com.uas.standard_esop.bean.SubmitNotParam;
  43. import com.uas.standard_esop.database.DBManager;
  44. import com.uas.standard_esop.global.GloableParams;
  45. import com.uas.standard_esop.table.TableLBARCODEIO;
  46. import com.uas.standard_esop.table.TableLPRODIONEEDGET;
  47. import com.uas.standard_esop.tools.SharedPreUtil;
  48. import com.uas.standard_esop.tools.VolleyUtil;
  49. import com.uas.standard_esop.util.CommonUtil;
  50. import com.uas.standard_esop.util.Constants;
  51. import com.uas.standard_esop.util.JsonUtils;
  52. import com.uas.standard_esop.util.LogUtil;
  53. import org.json.JSONArray;
  54. import org.json.JSONException;
  55. import org.json.JSONObject;
  56. import java.util.ArrayList;
  57. import java.util.HashMap;
  58. import java.util.Iterator;
  59. import java.util.List;
  60. import java.util.Map;
  61. /**
  62. * Created by RaoMeng on 2016/7/27.
  63. * 材料入库采集页面
  64. */
  65. public class MaterialCollectionFragment extends BaseFragment {
  66. private final String TAG = "MaterialCollectionFragment";
  67. private String mPiId;
  68. private String mStorageNumber, mWarehouseNumber;
  69. private TextView mStorageNumberTv, mWarehouseNumberTv, mRemainNumberTv, mMaterialNameTv, mMaterialSpecTv;
  70. private EditText mMaterialNumberEt, mBarcodeEt, mMaterialSumEt, mLocationEt;
  71. private LinearLayout mLocationLL;
  72. private RadioGroup mCollectionTypeRg;
  73. private ImageView mMaterialSearchIv;
  74. private int mModeType = 1;//1代表在线,0代表离线
  75. private TableLPRODIONEEDGET mCollectionMessage;
  76. private PopupWindow popupWindow;
  77. private Fragment mFragment;
  78. private Button mSubmitBtn, mMoreBtn;
  79. private RequestQueue mRequestQueue;
  80. private StringRequest mStringRequestPost;
  81. private JsonRequest mJsonRequest;
  82. private DBManager mDbManager;
  83. private StringRequest mStringRequest;
  84. private long selectMaterialLPN_PRID;
  85. @Override
  86. protected int getLayout() {
  87. return R.layout.fragment_material_collection;
  88. }
  89. @Override
  90. protected void initViews() {
  91. FunctionActivity.setTitle(getResources().getString(R.string.material_in_collection));
  92. ((FunctionActivity) getActivity()).setMoreBtnVisible(true);
  93. Bundle bundle = getArguments();
  94. mStorageNumber = bundle.getString("pi_inoutno");
  95. mWarehouseNumber = bundle.getString("pd_whcode");
  96. mPiId = bundle.getString("pi_id");
  97. mDbManager = new DBManager(getActivity());
  98. mMoreBtn = (Button) getActivity().findViewById(R.id.btn_actionbar_more);
  99. mStorageNumberTv = (TextView) root.findViewById(R.id.material_collection_storage_tv);
  100. mWarehouseNumberTv = (TextView) root.findViewById(R.id.material_collection_warehouse_tv);
  101. mMaterialNumberEt = (EditText) root.findViewById(R.id.material_collection_number_et);
  102. mBarcodeEt = (EditText) root.findViewById(R.id.material_collection_barcode_et);
  103. mMaterialSumEt = (EditText) root.findViewById(R.id.material_collection_sum_et);
  104. mLocationEt = (EditText) root.findViewById(R.id.material_collection_location_et);
  105. mMaterialSearchIv = (ImageView) root.findViewById(R.id.material_collection_search_iv);
  106. mMaterialNameTv = (TextView) root.findViewById(R.id.material_collection_name_tv);
  107. mMaterialSpecTv = (TextView) root.findViewById(R.id.material_collection_specification_tv);
  108. mSubmitBtn = (Button) root.findViewById(R.id.material_collection_submit_btn);
  109. mRemainNumberTv = (TextView) root.findViewById(R.id.material_collection_remain_tv);
  110. mLocationLL = (LinearLayout) root.findViewById(R.id.material_collection_location_ll);
  111. mCollectionTypeRg = (RadioGroup) root.findViewById(R.id.material_collection_type_rg);
  112. mStorageNumberTv.setText(mStorageNumber);
  113. mWarehouseNumberTv.setText(mWarehouseNumber);
  114. //获取本地用户是否启用储位的标志
  115. final String useLocation = SharedPreUtil.getString(getActivity().getApplicationContext(), SharedPreUtil.KEY_USELOCATION, null);
  116. if (useLocation != null) {
  117. if ("N".equals(useLocation)) {
  118. mLocationLL.setVisibility(View.GONE);
  119. } else if ("Y".equals(useLocation)) {
  120. mLocationLL.setVisibility(View.VISIBLE);
  121. }
  122. }
  123. }
  124. @Override
  125. public void onHiddenChanged(boolean hidden) {
  126. super.onHiddenChanged(hidden);
  127. if (!hidden) {
  128. FunctionActivity.setTitle(getResources().getString(R.string.material_in_collection));
  129. ((FunctionActivity) getActivity()).setMoreBtnVisible(true);
  130. getMaterialCollectMsg();
  131. if (mBackHandlerInterface != null)
  132. mBackHandlerInterface.setSelectedFragment(this);
  133. }
  134. }
  135. @Override
  136. protected void initEvents() {
  137. mCollectionTypeRg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
  138. @Override
  139. public void onCheckedChanged(RadioGroup group, int checkedId) {
  140. if (checkedId == R.id.material_collection_online_rb) {
  141. List<TableLBARCODEIO> allBarcodeIo = new ArrayList<>();
  142. if (mDbManager.getDb().isOpen()) {
  143. allBarcodeIo = mDbManager.queryFromBarcodeIo(new String[]{"in", mPiId, mWarehouseNumber}, "inOrOut=? and LBI_PIID=? and LBI_WHCODE=?");
  144. }
  145. if (CommonUtil.isNetWorkConnected(getActivity())) {
  146. if (allBarcodeIo.size() != 0) {
  147. CommonUtil.toastNoRepeat(getActivity(), getResources().getString(R.string.auto_upload_offline_data));
  148. submitOfflineData(allBarcodeIo, false);
  149. } else {
  150. mModeType = 1;
  151. }
  152. } else {
  153. mCollectionTypeRg.check(R.id.material_collection_outline_rb);
  154. mModeType = 0;
  155. CommonUtil.toastNoRepeat(getActivity(), getResources().getString(R.string.str_net_not_connect));
  156. }
  157. } else if (checkedId == R.id.material_collection_outline_rb) {
  158. mModeType = 0;
  159. }
  160. }
  161. });
  162. mMaterialNumberEt.setOnKeyListener(new View.OnKeyListener() {
  163. @Override
  164. public boolean onKey(View v, int keyCode, KeyEvent event) {
  165. if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_UP) {
  166. getMaterialCollectMsg();
  167. return true;
  168. }
  169. return false;
  170. }
  171. });
  172. mMaterialNumberEt.setOnFocusChangeListener(new View.OnFocusChangeListener() {
  173. @Override
  174. public void onFocusChange(View v, boolean hasFocus) {
  175. if (!hasFocus && !TextUtils.isEmpty(mMaterialNumberEt.getText()) && isVisible()) {
  176. getMaterialCollectMsg();
  177. }
  178. }
  179. });
  180. mMaterialNumberEt.addTextChangedListener(new TextWatcher() {
  181. @Override
  182. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  183. }
  184. @Override
  185. public void onTextChanged(CharSequence s, int start, int before, int count) {
  186. if (s.length() == 0) {
  187. mMaterialNameTv.setText(null);
  188. mMaterialSpecTv.setText(null);
  189. mBarcodeEt.setText(null);
  190. mMaterialSumEt.setText(null);
  191. mRemainNumberTv.setText(null);
  192. mLocationEt.setText(null);
  193. }
  194. }
  195. @Override
  196. public void afterTextChanged(Editable s) {
  197. }
  198. });
  199. mMaterialSearchIv.setOnClickListener(new View.OnClickListener() {
  200. @Override
  201. public void onClick(View v) {
  202. Intent intent = new Intent();
  203. intent.setClass(getActivity(), SearchMaterialActivity.class);
  204. intent.putExtra("pi_id", mPiId);
  205. intent.putExtra("pd_whcode", mWarehouseNumber);
  206. intent.putExtra("current_input", mMaterialNumberEt.getText().toString().trim());
  207. startActivityForResult(intent, Constants.FLAG.REQUEST_SEARCH_MATERIAL);
  208. }
  209. });
  210. mBarcodeEt.setOnEditorActionListener(new TextView.OnEditorActionListener() {
  211. @Override
  212. public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
  213. if (actionId == EditorInfo.IME_ACTION_SEND
  214. || actionId == EditorInfo.IME_ACTION_DONE
  215. || (event != null && event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
  216. confirmEvent();
  217. return true;
  218. }
  219. return false;
  220. }
  221. });
  222. mSubmitBtn.setOnClickListener(new View.OnClickListener() {
  223. @Override
  224. public void onClick(View v) {
  225. confirmEvent();
  226. }
  227. });
  228. mMoreBtn.setOnClickListener(new View.OnClickListener() {
  229. @Override
  230. public void onClick(View v) {
  231. //Toast.makeText(getActivity(),"更多选项",Toast.LENGTH_SHORT).show();
  232. View view = View.inflate(getActivity(), R.layout.popupwindow_material_collect_listview, null);
  233. Button hadCollectBtn = (Button) view.findViewById(R.id.storage_collect_menu_1);
  234. Button noCollectBtn = (Button) view.findViewById(R.id.storage_collect_menu_2);
  235. Button reCollectBtn = (Button) view.findViewById(R.id.storage_collect_menu_3);
  236. Button noSubmitBtn = (Button) view.findViewById(R.id.storage_collect_menu_4);
  237. if (mModeType == 1) {
  238. noSubmitBtn.setVisibility(View.GONE);
  239. } else {
  240. noSubmitBtn.setVisibility(View.VISIBLE);
  241. }
  242. hadCollectBtn.setOnClickListener(new View.OnClickListener() {
  243. @Override
  244. public void onClick(View v) {
  245. closeListPopupWindow();
  246. ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
  247. clickToFragment(new CollectAlreadyFragment());
  248. }
  249. });
  250. noCollectBtn.setOnClickListener(new View.OnClickListener() {
  251. @Override
  252. public void onClick(View v) {
  253. closeListPopupWindow();
  254. ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
  255. clickToFragment(new CollectNotFragment());
  256. }
  257. });
  258. reCollectBtn.setOnClickListener(new View.OnClickListener() {
  259. @Override
  260. public void onClick(View v) {
  261. //请求网络
  262. progressDialog.show();
  263. closeListPopupWindow();
  264. mDbManager.deleteFromBarcodeIo(new String[]{mPiId, mWarehouseNumber}, "LBI_PIID=? and LBI_WHCODE=?");
  265. getMaterialAgain();
  266. }
  267. });
  268. noSubmitBtn.setOnClickListener(new View.OnClickListener() {
  269. @Override
  270. public void onClick(View v) {
  271. closeListPopupWindow();
  272. ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
  273. clickToFragment(new SubmitNotFragment());
  274. }
  275. });
  276. // String[] items = getResources().getStringArray(R.array.material_collect_menu);
  277. popupWindow = new PopupWindow(view, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, true);
  278. // popupWindow.setAnimationStyle(R.style.MenuAnimationFade);
  279. popupWindow.setBackgroundDrawable(new BitmapDrawable());
  280. popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
  281. @Override
  282. public void onDismiss() {
  283. closeListPopupWindow();
  284. }
  285. });
  286. CommonUtil.setBackgroundAlpha(getActivity(), 0.5f);
  287. popupWindow.showAsDropDown(mMoreBtn);
  288. }
  289. });
  290. }
  291. private void confirmEvent() {
  292. if (mMaterialNumberEt.hasFocus()) {
  293. mMaterialNumberEt.clearFocus();
  294. }
  295. String materialNum = mMaterialNumberEt.getText().toString().trim();
  296. String barCode = mBarcodeEt.getText().toString().trim();
  297. final String materialSum = mMaterialSumEt.getText().toString().trim();
  298. String materialRemain = mRemainNumberTv.getText().toString().trim();
  299. if (TextUtils.isEmpty(materialNum)) {
  300. Toast.makeText(getActivity(), R.string.please_select_material, Toast.LENGTH_SHORT).show();
  301. } else if (TextUtils.isEmpty(barCode)) {
  302. Toast.makeText(getActivity(), R.string.please_collect_code, Toast.LENGTH_SHORT).show();
  303. } else if (TextUtils.isEmpty(materialSum) || !materialSum.matches(Constants.REGEX.IS_FLOAT)) {
  304. Toast.makeText(getActivity(), R.string.please_input_currect_quantity, Toast.LENGTH_SHORT).show();
  305. } else if (Double.parseDouble(materialSum) > Double.parseDouble(materialRemain)) {
  306. Toast.makeText(getActivity(), R.string.quantity_must_less_remain, Toast.LENGTH_SHORT).show();
  307. } else if (mLocationLL.getVisibility() == View.VISIBLE && TextUtils.isEmpty(mLocationEt.getText())) {
  308. Toast.makeText(getActivity(), R.string.please_input_location, Toast.LENGTH_SHORT).show();
  309. }
  310. // else if (!materialNum.matches(Constants.REGEX.NO_SYMBOL)) {
  311. // CommonUtil.toastNoRepeat(getActivity(), getResources().getString(R.string.prodcode_cannot_contain_special));
  312. // }
  313. else if (!barCode.matches(Constants.REGEX.NO_CN_SYMBOL)) {
  314. CommonUtil.toastNoRepeat(getActivity(), getResources().getString(R.string.barcode_cannot_contain_special));
  315. } else {
  316. String materialNumber = mMaterialNumberEt.getText().toString();
  317. try {
  318. List<TableLPRODIONEEDGET> allMaterialList = null;
  319. TableLPRODIONEEDGET currentProd = null;
  320. if (mDbManager.getDb().isOpen()) {
  321. allMaterialList = mDbManager.queryFromProductWaitCollect(new String[]{"in"}, "inOrOut=? ");
  322. }
  323. if (allMaterialList != null) {
  324. for (int i = 0; i < allMaterialList.size(); i++) {
  325. if (mPiId.equals(allMaterialList.get(i).getLPN_PIID() + "") && mStorageNumber.equals(allMaterialList.get(i).getLPN_INOUTNO())
  326. && mWarehouseNumber.equals(allMaterialList.get(i).getLPN_WHCODE()) && materialNumber.equals(allMaterialList.get(i).getLPN_PRODCODE())) {
  327. currentProd = allMaterialList.get(i);
  328. }
  329. }
  330. if (currentProd == null && !TextUtils.isEmpty(mMaterialNumberEt.getText())) {
  331. mMaterialNumberEt.setText(null);
  332. Toast.makeText(getActivity(), getString(R.string.material_number_not_exist), Toast.LENGTH_SHORT).show();
  333. } else if (currentProd.getLPN_TRACEKIND() == 1 && Double.parseDouble(materialSum) != 1) {
  334. CommonUtil.toastNoRepeat(getActivity(), getResources().getString(R.string.single_material_only_one));
  335. } else {
  336. if (mModeType == 1) {
  337. if (CommonUtil.isNetWorkConnected(getActivity())) {
  338. submitMaterialCollect(materialNum, barCode, materialSum);
  339. } else {
  340. CommonUtil.toastNoRepeat(getActivity(), getResources().getString(R.string.str_net_not_connect));
  341. }
  342. } else if (mModeType == 0) {
  343. saveMaterialCollect(materialNum, barCode, materialSum);
  344. }
  345. }
  346. }
  347. } catch (Exception e) {
  348. e.printStackTrace();
  349. }
  350. }
  351. }
  352. @Override
  353. protected void initDatas() {
  354. }
  355. /**
  356. * 离线模式保存采集信息
  357. *
  358. * @param materialNum
  359. * @param barCode
  360. * @param materialSum
  361. */
  362. private void saveMaterialCollect(String materialNum, String barCode, String materialSum) {
  363. //离线模式
  364. try {
  365. progressDialog.show();
  366. List<TableLBARCODEIO> allBarcodeIo = new ArrayList<>();
  367. if (mDbManager.getDb().isOpen()) {
  368. allBarcodeIo = mDbManager.queryFromBarcodeIo(new String[]{"in"}, "inOrOut=? ");
  369. }
  370. //如果用户采集的离线数据超过30条,提示用户请先将采集的数据上传,限制用户必须先将数据上传
  371. if (allBarcodeIo.size() >= 30) {
  372. progressDialog.dismiss();
  373. final List<TableLBARCODEIO> finalAllBarcodeIo = allBarcodeIo;
  374. new AlertDialog.Builder(getActivity())
  375. .setTitle("提示")
  376. .setMessage("您采集的离线数据已经达到30条,请先将离线数据上传再继续采集。是否上传数据?")
  377. .setPositiveButton("上传", new DialogInterface.OnClickListener() {
  378. @Override
  379. public void onClick(DialogInterface dialog, int which) {
  380. if (CommonUtil.isNetWorkConnected(getActivity())) {
  381. submitOfflineData(finalAllBarcodeIo, false);
  382. } else {
  383. CommonUtil.toastNoRepeat(getActivity(), getResources().getString(R.string.str_net_not_connect));
  384. }
  385. }
  386. })
  387. .setNegativeButton("取消", new DialogInterface.OnClickListener() {
  388. @Override
  389. public void onClick(DialogInterface dialog, int which) {
  390. dialog.dismiss();
  391. }
  392. }).show();
  393. return;
  394. }
  395. boolean isExist = false;
  396. for (int i = 0; i < allBarcodeIo.size(); i++) {
  397. if (mPiId.equals(allBarcodeIo.get(i).getLBI_PIID() + "") && mWarehouseNumber.equals(allBarcodeIo.get(i).getLBI_WHCODE())
  398. && barCode.equals(allBarcodeIo.get(i).getLBI_BARCODE())) {
  399. isExist = true;
  400. break;
  401. }
  402. }
  403. if (isExist) {
  404. progressDialog.dismiss();
  405. Toast.makeText(getActivity(), "条码 " + barCode + " 已经在已采集待提交数据中", Toast.LENGTH_SHORT).show();
  406. mBarcodeEt.setText(null);
  407. mBarcodeEt.requestFocus();
  408. } else {
  409. TableLBARCODEIO newBarcodeIo = new TableLBARCODEIO();
  410. newBarcodeIo.setLBI_PIID(Long.parseLong(mPiId));
  411. newBarcodeIo.setLBI_BARCODE(barCode);
  412. newBarcodeIo.setLBI_WHCODE(mWarehouseNumber);
  413. newBarcodeIo.setLBI_INOUTNO(mStorageNumber);
  414. newBarcodeIo.setLBI_PRODCODE(materialNum);
  415. newBarcodeIo.setLBI_INQTY(Double.parseDouble(materialSum));
  416. newBarcodeIo.setLBI_LOCATION(mLocationEt.getText().toString());
  417. newBarcodeIo.setLBI_PRDETAIL(mMaterialNameTv.getText().toString().trim());
  418. newBarcodeIo.setLBI_OUTQTY(Double.parseDouble(mMaterialSumEt.getText().toString().trim()));
  419. newBarcodeIo.setLBI_OUTBOXCODE("");
  420. newBarcodeIo.setLBI_PRID(selectMaterialLPN_PRID);
  421. newBarcodeIo.setInOrOut("in");
  422. newBarcodeIo.setLBI_BOXTYPE("");
  423. mDbManager.saveToBarcodeIo(newBarcodeIo);
  424. TableLPRODIONEEDGET curMaterial = null;
  425. if (mDbManager.getDb().isOpen()) {
  426. curMaterial = mDbManager.queryFromProductWaitCollect(new String[]{mCollectionMessage.getLPN_PIID() + "", mCollectionMessage.getLPN_WHCODE(), "in"}, "LPN_PIID=? and LPN_WHCODE=? and inOrOut=? ").get(0);
  427. }
  428. if (curMaterial != null) {
  429. double restqty = curMaterial.getLPN_RESTQTY();
  430. restqty = CommonUtil.doublesubtract(restqty, Double.parseDouble(materialSum));
  431. // if (restqty == 0) {
  432. //// PdaApplication.mDbUtils.delete(curMaterial);
  433. // mDbManager.deleteFromProductWaitCollect(curMaterial);
  434. // } else if (restqty > 0) {
  435. curMaterial.setLPN_RESTQTY(restqty);
  436. // PdaApplication.mDbUtils.update(curMaterial);
  437. mDbManager.updateProductWaitCollect(curMaterial);
  438. // }
  439. new Handler().postDelayed(new Runnable() {
  440. @Override
  441. public void run() {
  442. progressDialog.dismiss();
  443. Toast.makeText(getActivity(), "成功保存至未提交列表", Toast.LENGTH_SHORT).show();
  444. }
  445. }, 400);
  446. if ((int) restqty <= 0) {
  447. mMaterialNumberEt.setText(null);
  448. mMaterialNameTv.setText(null);
  449. mMaterialSpecTv.setText(null);
  450. mBarcodeEt.setText(null);
  451. mMaterialSumEt.setText(null);
  452. mRemainNumberTv.setText(null);
  453. mLocationEt.setText(null);
  454. } else {
  455. mBarcodeEt.setText(null);
  456. mRemainNumberTv.setText(restqty + "");
  457. }
  458. }
  459. }
  460. } catch (Exception e) {
  461. e.printStackTrace();
  462. }
  463. }
  464. private void submitOfflineData(final List<TableLBARCODEIO> mNotSubmitList, final boolean isPop) {
  465. progressDialog.show();
  466. final List<SubmitNotParam> submitNotParams = new ArrayList<SubmitNotParam>();
  467. for (int i = 0; i < mNotSubmitList.size(); i++) {
  468. SubmitNotParam submitNotParam = new SubmitNotParam();
  469. TableLBARCODEIO lbarcodeio = mNotSubmitList.get(i);
  470. submitNotParam.setBi_barcode(lbarcodeio.getLBI_BARCODE());
  471. submitNotParam.setBi_inoutno(lbarcodeio.getLBI_INOUTNO());
  472. submitNotParam.setBi_inqty(lbarcodeio.getLBI_INQTY() + "");
  473. submitNotParam.setBi_location(lbarcodeio.getLBI_LOCATION());
  474. submitNotParam.setBi_piid(lbarcodeio.getLBI_PIID() + "");
  475. submitNotParam.setBi_prodcode(lbarcodeio.getLBI_PRODCODE());
  476. submitNotParam.setBi_prodid(lbarcodeio.getLBI_PRID() + "");
  477. submitNotParam.setBi_whcode(lbarcodeio.getLBI_WHCODE());
  478. submitNotParam.setBi_outboxcode(lbarcodeio.getLBI_OUTBOXCODE());
  479. submitNotParam.setBi_boxtype(lbarcodeio.getLBI_BOXTYPE());
  480. submitNotParams.add(submitNotParam);
  481. }
  482. try {
  483. String url = GloableParams.ADDRESS_SAVE_BARCODE;
  484. PdaApplication.mRequestQueue.cancelAll(TAG + "submit");
  485. mStringRequest = new StringRequest(Request.Method.POST, url,
  486. new Response.Listener<String>() {
  487. @Override
  488. public void onResponse(String s) {
  489. progressDialog.dismiss();
  490. try {
  491. JSONObject resultJsonObject = new JSONObject(s);
  492. JSONObject dataJsonObject = resultJsonObject.getJSONObject("data");
  493. Iterator<String> resultKeys = dataJsonObject.keys();
  494. if (resultKeys.hasNext()) {
  495. int successCount = 0;
  496. int failCount = 0;
  497. while (resultKeys.hasNext()) {
  498. String barcodeKey = resultKeys.next().toString();
  499. String barcodeResult = JsonUtils.optStringNotNull(dataJsonObject, barcodeKey);
  500. if ("success".equals(barcodeResult)) {
  501. successCount++;
  502. for (int i = 0; i < mNotSubmitList.size(); i++) {
  503. TableLBARCODEIO lbarcodeio = mNotSubmitList.get(i);
  504. if (barcodeKey.equals(lbarcodeio.getLBI_BARCODE())) {
  505. mDbManager.deleteFromBarcodeIo(lbarcodeio);
  506. }
  507. }
  508. } else {
  509. failCount++;
  510. }
  511. }
  512. if (failCount == 0) {
  513. mModeType = 1;
  514. Toast.makeText(getActivity(), getResources().getString(R.string.submit_success), Toast.LENGTH_SHORT).show();
  515. if (isPop)
  516. getActivity().getSupportFragmentManager().popBackStack();
  517. } else {
  518. ((RadioButton) mCollectionTypeRg.findViewById(R.id.material_collection_outline_rb)).setChecked(true);
  519. mModeType = 0;
  520. CommonUtil.toastNoRepeat(getActivity(), successCount + "条数据提交成功\n" + failCount + "条数据提交失败");
  521. }
  522. }
  523. } catch (Exception e) {
  524. e.printStackTrace();
  525. }
  526. }
  527. },
  528. new Response.ErrorListener() {
  529. @Override
  530. public void onErrorResponse(VolleyError volleyError) {
  531. progressDialog.dismiss();
  532. mModeType = 0;
  533. ((RadioButton) mCollectionTypeRg.findViewById(R.id.material_collection_outline_rb)).setChecked(true);
  534. CommonUtil.showErrorToast(volleyError);
  535. }
  536. }) {
  537. @Override
  538. public Map<String, String> getHeaders() throws AuthFailureError {
  539. return VolleyUtil.getVolleyUtil().setCookies();
  540. }
  541. @Override
  542. protected Map<String, String> getParams() throws AuthFailureError {
  543. Map<String, String> param = new HashMap<>();
  544. param.put("data", JSON.toJSONString(submitNotParams));
  545. return param;
  546. }
  547. };
  548. mStringRequest.setRetryPolicy(new DefaultRetryPolicy(10 * 1000, 0, 1f));
  549. mStringRequest.setTag(TAG + "submit");
  550. PdaApplication.mRequestQueue.add(mStringRequest);
  551. } catch (Exception e) {
  552. progressDialog.dismiss();
  553. e.printStackTrace();
  554. }
  555. }
  556. /**
  557. * 在线模式提交采集
  558. *
  559. * @param materialNum
  560. * @param barCode
  561. * @param materialSum
  562. */
  563. private void submitMaterialCollect(final String materialNum, final String barCode, final String materialSum) {
  564. progressDialog.show();
  565. mRequestQueue = Volley.newRequestQueue(getActivity());
  566. mRequestQueue.cancelAll(TAG + "collect");
  567. final JSONObject paramsJson = new JSONObject();
  568. try {
  569. paramsJson.put("bi_barcode", barCode);
  570. paramsJson.put("bi_piid", mPiId);
  571. paramsJson.put("bi_whcode", mWarehouseNumber);
  572. paramsJson.put("bi_prodcode", materialNum);
  573. paramsJson.put("bi_inqty", materialSum);
  574. paramsJson.put("bi_prodid", selectMaterialLPN_PRID);
  575. paramsJson.put("bi_inoutno", mStorageNumber);
  576. if (mLocationLL.getVisibility() == View.VISIBLE) {
  577. paramsJson.put("bi_location", mLocationEt.getText().toString());
  578. } else {
  579. paramsJson.put("bi_location", "");
  580. }
  581. } catch (JSONException e) {
  582. e.printStackTrace();
  583. }
  584. mStringRequest = new StringRequest(Request.Method.POST, GloableParams.ADDRESS_SAVE_BARCODE,
  585. new Response.Listener<String>() {
  586. @Override
  587. public void onResponse(String s) {
  588. try {
  589. progressDialog.dismiss();
  590. JSONObject resultJsonObject = new JSONObject(s);
  591. JSONObject dataJsonObject = resultJsonObject.getJSONObject("data");
  592. Iterator<String> resultKeys = dataJsonObject.keys();
  593. if (resultKeys.hasNext()) {
  594. String barcodeKey = resultKeys.next().toString();
  595. String barcodeResult = JsonUtils.optStringNotNull(dataJsonObject, barcodeKey);
  596. if ("success".equals(barcodeResult)) {
  597. TableLPRODIONEEDGET curMaterial = null;
  598. if (!mDbManager.getDb().isOpen()) {
  599. mDbManager = new DBManager(getActivity());
  600. }
  601. curMaterial = mDbManager.queryFromProductWaitCollect(new String[]{mCollectionMessage.getLPN_PIID() + "", mCollectionMessage.getLPN_WHCODE(), "in", materialNum}, "LPN_PIID=? and LPN_WHCODE=? and inOrOut=? and LPN_PRODCODE=?").get(0);
  602. if (curMaterial != null) {
  603. double restqty = curMaterial.getLPN_RESTQTY();
  604. restqty = CommonUtil.doublesubtract(restqty, Double.parseDouble(materialSum));
  605. //由于已采集列表删除的时候要做更新操作,所以这里不能删除数据库内的数据
  606. // if (restqty == 0) {
  607. // mDbManager.deleteFromProductWaitCollect(curMaterial);
  608. // }
  609. // else if (restqty > 0) {
  610. curMaterial.setLPN_RESTQTY(restqty);
  611. mDbManager.updateProductWaitCollect(curMaterial);
  612. // }
  613. Toast.makeText(getActivity(), R.string.submit_collect_success, Toast.LENGTH_SHORT).show();
  614. if ((int) restqty <= 0) {
  615. mMaterialNumberEt.setText(null);
  616. mMaterialNameTv.setText(null);
  617. mMaterialSpecTv.setText(null);
  618. mBarcodeEt.setText(null);
  619. mMaterialSumEt.setText(null);
  620. mRemainNumberTv.setText(null);
  621. mLocationEt.setText(null);
  622. } else {
  623. mBarcodeEt.setText(null);
  624. mRemainNumberTv.setText(restqty + "");
  625. }
  626. }
  627. } else {
  628. mBarcodeEt.setText(null);
  629. CommonUtil.toastNoRepeat(getActivity(), barcodeResult);
  630. }
  631. }
  632. } catch (Exception e) {
  633. e.printStackTrace();
  634. }
  635. }
  636. },
  637. new Response.ErrorListener() {
  638. @Override
  639. public void onErrorResponse(VolleyError volleyError) {
  640. progressDialog.dismiss();
  641. mBarcodeEt.setText(null);
  642. CommonUtil.showErrorToast(volleyError);
  643. }
  644. }) {
  645. @Override
  646. public Map<String, String> getHeaders() throws AuthFailureError {
  647. return VolleyUtil.getVolleyUtil().setCookies();
  648. }
  649. @Override
  650. protected Map<String, String> getParams() throws AuthFailureError {
  651. Map<String, String> param = new HashMap<>();
  652. param.put("data", paramsJson.toString());
  653. return param;
  654. }
  655. };
  656. mStringRequest.setTag(TAG + "collect");
  657. mRequestQueue.add(mStringRequest);
  658. }
  659. private void getMaterialAgain() {
  660. mRequestQueue = Volley.newRequestQueue(getActivity());
  661. String url = GloableParams.ADDRESS_CLEARGET;
  662. mRequestQueue.cancelAll(TAG);
  663. mStringRequestPost = new StringRequest(VolleyUtil.METHOD_POST, url, new Response.Listener<String>() {
  664. @Override
  665. public void onResponse(String s) {
  666. LogUtil.e("已空", s + "");
  667. // progressDialog.dismiss();
  668. Toast.makeText(getActivity().getApplicationContext(), "已清空采集数据", Toast.LENGTH_LONG).show();
  669. getCollectNotListOnline(mPiId, mWarehouseNumber);
  670. }
  671. }, new Response.ErrorListener() {
  672. @Override
  673. public void onErrorResponse(VolleyError volleyError) {
  674. // progressDialog.dismiss();
  675. closeListPopupWindow();
  676. getCollectNotListOnline(mPiId, mWarehouseNumber);
  677. CommonUtil.showErrorToast(volleyError);
  678. }
  679. }) {
  680. @Override
  681. public Map<String, String> getHeaders() throws AuthFailureError {
  682. return VolleyUtil.getVolleyUtil().setCookies();
  683. }
  684. @Override
  685. protected Map<String, String> getParams() throws AuthFailureError {
  686. Map<String, String> params = new HashMap<>();
  687. params.put("id", mPiId);
  688. params.put("whcode", mWarehouseNumber);
  689. return params;
  690. }
  691. };
  692. mStringRequestPost.setTag(TAG);
  693. mRequestQueue.add(mStringRequestPost);
  694. }
  695. /**
  696. * 获取材料未采集列表
  697. *
  698. * @param pi_id
  699. * @param pd_whcode
  700. */
  701. private void getCollectNotListOnline(final String pi_id, final String pd_whcode) {
  702. progressDialog.show();
  703. String url = GloableParams.ADDRESS_NEED_GET_LIST + "?id=" + pi_id + "&whcode=" + pd_whcode + "&type=IN";
  704. Log.i("collectNoturl", url);
  705. PdaApplication.mRequestQueue.cancelAll(TAG + "online");
  706. mJsonRequest = new JsonObjectRequest(Request.Method.GET, url, null,
  707. new Response.Listener<JSONObject>() {
  708. @Override
  709. public void onResponse(JSONObject jsonObject) {
  710. progressDialog.dismiss();
  711. try {
  712. if (!"success".equals(jsonObject.getJSONObject("data").optString("message"))) {
  713. CommonUtil.toastNoRepeat(getActivity(), jsonObject.getJSONObject("data").optString("message"));
  714. }
  715. JSONArray jsonArray = jsonObject.getJSONObject("data").getJSONArray("data");
  716. LogUtil.i("jsonArray", jsonArray.toString());
  717. if (jsonArray != null) {
  718. List<TableLPRODIONEEDGET> lprodioneedgetList = new ArrayList<>();
  719. for (int i = 0; i < jsonArray.length(); i++) {
  720. LogUtil.i("jsonObject", jsonArray.get(i).toString());
  721. JSONObject currentObject = jsonArray.getJSONObject(i);
  722. TableLPRODIONEEDGET lprodioneedget = new TableLPRODIONEEDGET();
  723. lprodioneedget.setLPN_RESTQTY(currentObject.optDouble("PD_RESTQTY"));
  724. lprodioneedget.setLPN_PRODCODE(currentObject.optString("PD_PRODCODE"));
  725. lprodioneedget.setLPN_PRDETAIL(currentObject.optString("PR_DETAIL"));
  726. lprodioneedget.setLPN_PIID(currentObject.optLong("PD_PIID"));
  727. lprodioneedget.setLPN_WHCODE(currentObject.optString("PD_WHCODE"));
  728. lprodioneedget.setLPN_INOUTNO(currentObject.optString("PD_INOUTNO"));
  729. lprodioneedget.setLPN_ZXBZS(currentObject.optDouble("PR_ZXBZS"));
  730. lprodioneedget.setLPN_PRSPEC(JsonUtils.optStringNotNull(currentObject, "PR_SPEC"));
  731. lprodioneedget.setLPN_IFBARCODECHECK(JsonUtils.optStringNotNull(currentObject, "PR_IFBARCODECHECK"));
  732. lprodioneedget.setLPN_PRID(currentObject.optLong("PR_ID"));
  733. lprodioneedget.setLPN_BATCHCODE("");
  734. lprodioneedget.setLPN_ORDERCODE("");
  735. lprodioneedget.setInOrOut("in");
  736. lprodioneedget.setLPN_TRACEKIND(currentObject.optInt("PR_TRACEKIND"));
  737. lprodioneedgetList.add(lprodioneedget);
  738. }
  739. try {
  740. if (mDbManager.getDb().isOpen()) {
  741. // mDbManager.deleteInOrOutProductWaitCollect("in");
  742. mDbManager.deleteFromProductWaitCollect(new String[]{"in", pi_id, pd_whcode}, "inOrOut=? and LPN_PIID=? and LPN_WHCODE=?");
  743. mDbManager.saveListToProductWaitCollect(lprodioneedgetList);
  744. getMaterialCollectMsg();
  745. }
  746. } catch (Exception e) {
  747. e.printStackTrace();
  748. }
  749. }
  750. } catch (JSONException e) {
  751. e.printStackTrace();
  752. }
  753. }
  754. },
  755. new Response.ErrorListener() {
  756. @Override
  757. public void onErrorResponse(VolleyError volleyError) {
  758. progressDialog.dismiss();
  759. CommonUtil.showErrorToast(volleyError);
  760. }
  761. }) {
  762. @Override
  763. public Map<String, String> getHeaders() throws AuthFailureError {
  764. return VolleyUtil.getVolleyUtil().setCookies();
  765. }
  766. @Override
  767. protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) {
  768. if (response.data == null || response.data.length == 0) {
  769. JSONObject jsonObject = new JSONObject();
  770. try {
  771. jsonObject.put("msg", "成功:服务器无返回");
  772. } catch (JSONException e) {
  773. e.printStackTrace();
  774. }
  775. return Response.success(jsonObject, HttpHeaderParser.parseCacheHeaders(response));
  776. } else {
  777. return super.parseNetworkResponse(response);
  778. }
  779. }
  780. };
  781. mJsonRequest.setRetryPolicy(new DefaultRetryPolicy(10 * 1000, 0, 1f));
  782. mJsonRequest.setTag(TAG + "online");
  783. PdaApplication.mRequestQueue.add(mJsonRequest);
  784. }
  785. private void clickToFragment(BaseFragment baseFragment) {
  786. Bundle bundle = new Bundle();
  787. bundle.putString("pi_id", mPiId);
  788. bundle.putString("pi_inoutno", mStorageNumber);
  789. bundle.putString("pd_whcode", mWarehouseNumber);
  790. bundle.putInt("modeType", mModeType);
  791. mFragment = baseFragment;
  792. mFragment.setArguments(bundle);
  793. // getFragmentManager().beginTransaction().addToBackStack(null).replace(R.id.container_function_fragment, mFragment).commit();
  794. if (!mFragment.isAdded())
  795. getFragmentManager().beginTransaction().addToBackStack(null).hide(this).add(R.id.container_function_fragment, mFragment).commit();
  796. else
  797. getFragmentManager().beginTransaction().addToBackStack(null).hide(this).show(mFragment).commit();
  798. }
  799. private void closeListPopupWindow() {
  800. if (popupWindow != null) {
  801. popupWindow.dismiss();
  802. popupWindow = null;
  803. CommonUtil.setBackgroundAlpha(getActivity(), 1f);
  804. }
  805. }
  806. @Override
  807. public void onActivityResult(int requestCode, int resultCode, Intent data) {
  808. super.onActivityResult(requestCode, resultCode, data);
  809. if (requestCode == Constants.FLAG.REQUEST_SEARCH_MATERIAL && resultCode == Constants.FLAG.RESULT_SEARCH_MATERIAL) {
  810. TableLPRODIONEEDGET selectMaterial = (TableLPRODIONEEDGET) data.getSerializableExtra("select_material");
  811. Log.i("onActivityResult: ", selectMaterial.toString());
  812. mMaterialNumberEt.setText(selectMaterial.getLPN_PRODCODE());
  813. mMaterialNameTv.setText(selectMaterial.getLPN_PRDETAIL());
  814. mMaterialSpecTv.setText(selectMaterial.getLPN_PRSPEC());
  815. if (selectMaterial.getLPN_ZXBZS() != -1) {
  816. mMaterialSumEt.setText(CommonUtil.doubleFormat(selectMaterial.getLPN_ZXBZS()));
  817. } else {
  818. mMaterialSumEt.setText("0.0");
  819. }
  820. mRemainNumberTv.setText(CommonUtil.doubleFormat(selectMaterial.getLPN_RESTQTY()));
  821. selectMaterialLPN_PRID = selectMaterial.getLPN_PRID();
  822. }
  823. }
  824. /**
  825. * 料号enter事件、失去焦点事件
  826. */
  827. private void getMaterialCollectMsg() {
  828. String materialNumber = mMaterialNumberEt.getText().toString();
  829. try {
  830. // List<TableLPRODIONEEDGET> allMaterialList = PdaApplication.mDbUtils.findAll(TableLPRODIONEEDGET.class);
  831. List<TableLPRODIONEEDGET> allMaterialList = null;
  832. if (mDbManager.getDb().isOpen()) {
  833. allMaterialList = mDbManager.queryFromProductWaitCollect(new String[]{"in"}, "inOrOut=? ");
  834. }
  835. if (allMaterialList != null) {
  836. for (int i = 0; i < allMaterialList.size(); i++) {
  837. if (mPiId.equals(allMaterialList.get(i).getLPN_PIID() + "") && mStorageNumber.equals(allMaterialList.get(i).getLPN_INOUTNO())
  838. && mWarehouseNumber.equals(allMaterialList.get(i).getLPN_WHCODE()) && materialNumber.equals(allMaterialList.get(i).getLPN_PRODCODE())) {
  839. mCollectionMessage = allMaterialList.get(i);
  840. mMaterialNameTv.setText(mCollectionMessage.getLPN_PRDETAIL());
  841. mMaterialSpecTv.setText(mCollectionMessage.getLPN_PRSPEC());
  842. if (TextUtils.isEmpty(mMaterialSumEt.getText().toString())) {
  843. mMaterialSumEt.setText(CommonUtil.doubleFormat(mCollectionMessage.getLPN_ZXBZS()));
  844. }
  845. mRemainNumberTv.setText(CommonUtil.doubleFormat(mCollectionMessage.getLPN_RESTQTY()));
  846. }
  847. }
  848. if (mCollectionMessage == null && !TextUtils.isEmpty(mMaterialNumberEt.getText())) {
  849. mMaterialNumberEt.setText(null);
  850. Toast.makeText(getActivity(), getString(R.string.material_number_not_exist), Toast.LENGTH_SHORT).show();
  851. }
  852. }
  853. } catch (Exception e) {
  854. e.printStackTrace();
  855. }
  856. }
  857. @Override
  858. public void onResume() {
  859. super.onResume();
  860. }
  861. @Override
  862. public void onDestroyView() {
  863. super.onDestroyView();
  864. ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
  865. mDbManager.closeDB();
  866. ((FunctionActivity) getActivity()).mFragment = new MaterialStorageFragment();
  867. }
  868. @Override
  869. public boolean onKeyDown(int keyCode, KeyEvent event) {
  870. return false;
  871. }
  872. /**
  873. * 其返回一个布尔值;意思是,如果对返回事件进行了处理就返回TRUE,如果不做处理就返回FALSE,让上层进行处理。
  874. *
  875. * @return
  876. */
  877. public boolean onFragmentBackPressed() {
  878. List<TableLBARCODEIO> allBarcodeIo = new ArrayList<>();
  879. if (!mDbManager.getDb().isOpen()) {
  880. mDbManager = new DBManager(getActivity());
  881. }
  882. // allBarcodeIo = mDbManager.queryFromBarcodeIo(new String[]{"in"}, "inOrOut=? ");
  883. allBarcodeIo = mDbManager.queryFromBarcodeIo(new String[]{"in", mStorageNumber, mWarehouseNumber}, "inOrOut=? and LBI_INOUTNO=? and LBI_WHCODE=?");
  884. if (allBarcodeIo != null && allBarcodeIo.size() != 0) {
  885. final List<TableLBARCODEIO> finalAllBarcodeIo = allBarcodeIo;
  886. new AlertDialog.Builder(getActivity())
  887. .setTitle("提示")
  888. .setMessage("存在未提交的离线采集数据,点击上传将把未提交数据上传,点击取消将清空未采集数据")
  889. .setPositiveButton("上传", new DialogInterface.OnClickListener() {
  890. @Override
  891. public void onClick(DialogInterface dialog, int which) {
  892. if (CommonUtil.isNetWorkConnected(getActivity())) {
  893. submitOfflineData(finalAllBarcodeIo, true);
  894. } else {
  895. CommonUtil.toastNoRepeat(getActivity(), getResources().getString(R.string.str_net_not_connect));
  896. }
  897. }
  898. })
  899. .setNegativeButton("取消", new DialogInterface.OnClickListener() {
  900. @Override
  901. public void onClick(DialogInterface dialog, int which) {
  902. dialog.dismiss();
  903. try {
  904. mDbManager.deleteListFromBarcodeIo(finalAllBarcodeIo);
  905. List<TableLPRODIONEEDGET> allLprodioneedgets = mDbManager.queryFromProductWaitCollect(new String[]{"in"}, "inOrOut=? ");
  906. if (allLprodioneedgets != null) {
  907. for (int j = 0; j < finalAllBarcodeIo.size(); j++) {
  908. TableLBARCODEIO deleteLbarcodeio = finalAllBarcodeIo.get(j);
  909. for (int i = 0; i < allLprodioneedgets.size(); i++) {
  910. TableLPRODIONEEDGET tableLPRODIONEEDGET = allLprodioneedgets.get(i);
  911. if (tableLPRODIONEEDGET.getLPN_PIID() == deleteLbarcodeio.getLBI_PIID()
  912. && tableLPRODIONEEDGET.getLPN_WHCODE().equals(deleteLbarcodeio.getLBI_WHCODE())
  913. && tableLPRODIONEEDGET.getLPN_PRODCODE().equals(deleteLbarcodeio.getLBI_PRODCODE())) {
  914. tableLPRODIONEEDGET.setLPN_RESTQTY(CommonUtil.doubleAddition(tableLPRODIONEEDGET.getLPN_RESTQTY(), deleteLbarcodeio.getLBI_INQTY()));
  915. mDbManager.updateProductWaitCollect(tableLPRODIONEEDGET);
  916. }
  917. }
  918. }
  919. }
  920. CommonUtil.toastNoRepeat(getActivity(), "清除数据成功");
  921. getActivity().getSupportFragmentManager().popBackStack();
  922. } catch (Exception e) {
  923. // e.printStackTrace();
  924. // Log.e(TAG + "exception", e.getMessage());
  925. CommonUtil.toastNoRepeat(getActivity(), "清除失败");
  926. getActivity().getSupportFragmentManager().popBackStack();
  927. }
  928. }
  929. }).show();
  930. // ((FunctionActivity) getActivity()).mFragment = new MaterialStorageFragment();
  931. return true;
  932. } else {
  933. return false;
  934. }
  935. }
  936. }