| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046 |
- package com.uas.standard_esop.fragment;
- import android.app.AlertDialog;
- import android.content.DialogInterface;
- import android.content.Intent;
- import android.graphics.drawable.BitmapDrawable;
- import android.os.Bundle;
- import android.os.Handler;
- import android.text.Editable;
- import android.text.TextUtils;
- import android.text.TextWatcher;
- import android.util.Log;
- import android.view.KeyEvent;
- import android.view.View;
- import android.view.inputmethod.EditorInfo;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.ImageView;
- import android.widget.LinearLayout;
- import android.widget.PopupWindow;
- import android.widget.RadioButton;
- import android.widget.RadioGroup;
- import android.widget.TextView;
- import android.widget.Toast;
- import androidx.fragment.app.Fragment;
- import com.alibaba.fastjson.JSON;
- import com.android.volley.AuthFailureError;
- import com.android.volley.DefaultRetryPolicy;
- import com.android.volley.NetworkResponse;
- import com.android.volley.Request;
- import com.android.volley.RequestQueue;
- import com.android.volley.Response;
- import com.android.volley.VolleyError;
- import com.android.volley.toolbox.HttpHeaderParser;
- import com.android.volley.toolbox.JsonObjectRequest;
- import com.android.volley.toolbox.JsonRequest;
- import com.android.volley.toolbox.StringRequest;
- import com.android.volley.toolbox.Volley;
- import com.uas.standard_esop.R;
- import com.uas.standard_esop.activity.FunctionActivity;
- import com.uas.standard_esop.activity.SearchMaterialActivity;
- import com.uas.standard_esop.application.PdaApplication;
- import com.uas.standard_esop.bean.SubmitNotParam;
- import com.uas.standard_esop.database.DBManager;
- import com.uas.standard_esop.global.GloableParams;
- import com.uas.standard_esop.table.TableLBARCODEIO;
- import com.uas.standard_esop.table.TableLPRODIONEEDGET;
- import com.uas.standard_esop.tools.SharedPreUtil;
- import com.uas.standard_esop.tools.VolleyUtil;
- import com.uas.standard_esop.util.CommonUtil;
- import com.uas.standard_esop.util.Constants;
- import com.uas.standard_esop.util.JsonUtils;
- import com.uas.standard_esop.util.LogUtil;
- import org.json.JSONArray;
- import org.json.JSONException;
- import org.json.JSONObject;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Map;
- /**
- * Created by RaoMeng on 2016/7/27.
- * 材料入库采集页面
- */
- public class MaterialCollectionFragment extends BaseFragment {
- private final String TAG = "MaterialCollectionFragment";
- private String mPiId;
- private String mStorageNumber, mWarehouseNumber;
- private TextView mStorageNumberTv, mWarehouseNumberTv, mRemainNumberTv, mMaterialNameTv, mMaterialSpecTv;
- private EditText mMaterialNumberEt, mBarcodeEt, mMaterialSumEt, mLocationEt;
- private LinearLayout mLocationLL;
- private RadioGroup mCollectionTypeRg;
- private ImageView mMaterialSearchIv;
- private int mModeType = 1;//1代表在线,0代表离线
- private TableLPRODIONEEDGET mCollectionMessage;
- private PopupWindow popupWindow;
- private Fragment mFragment;
- private Button mSubmitBtn, mMoreBtn;
- private RequestQueue mRequestQueue;
- private StringRequest mStringRequestPost;
- private JsonRequest mJsonRequest;
- private DBManager mDbManager;
- private StringRequest mStringRequest;
- private long selectMaterialLPN_PRID;
- @Override
- protected int getLayout() {
- return R.layout.fragment_material_collection;
- }
- @Override
- protected void initViews() {
- FunctionActivity.setTitle(getResources().getString(R.string.material_in_collection));
- ((FunctionActivity) getActivity()).setMoreBtnVisible(true);
- Bundle bundle = getArguments();
- mStorageNumber = bundle.getString("pi_inoutno");
- mWarehouseNumber = bundle.getString("pd_whcode");
- mPiId = bundle.getString("pi_id");
- mDbManager = new DBManager(getActivity());
- mMoreBtn = (Button) getActivity().findViewById(R.id.btn_actionbar_more);
- mStorageNumberTv = (TextView) root.findViewById(R.id.material_collection_storage_tv);
- mWarehouseNumberTv = (TextView) root.findViewById(R.id.material_collection_warehouse_tv);
- mMaterialNumberEt = (EditText) root.findViewById(R.id.material_collection_number_et);
- mBarcodeEt = (EditText) root.findViewById(R.id.material_collection_barcode_et);
- mMaterialSumEt = (EditText) root.findViewById(R.id.material_collection_sum_et);
- mLocationEt = (EditText) root.findViewById(R.id.material_collection_location_et);
- mMaterialSearchIv = (ImageView) root.findViewById(R.id.material_collection_search_iv);
- mMaterialNameTv = (TextView) root.findViewById(R.id.material_collection_name_tv);
- mMaterialSpecTv = (TextView) root.findViewById(R.id.material_collection_specification_tv);
- mSubmitBtn = (Button) root.findViewById(R.id.material_collection_submit_btn);
- mRemainNumberTv = (TextView) root.findViewById(R.id.material_collection_remain_tv);
- mLocationLL = (LinearLayout) root.findViewById(R.id.material_collection_location_ll);
- mCollectionTypeRg = (RadioGroup) root.findViewById(R.id.material_collection_type_rg);
- mStorageNumberTv.setText(mStorageNumber);
- mWarehouseNumberTv.setText(mWarehouseNumber);
- //获取本地用户是否启用储位的标志
- final String useLocation = SharedPreUtil.getString(getActivity().getApplicationContext(), SharedPreUtil.KEY_USELOCATION, null);
- if (useLocation != null) {
- if ("N".equals(useLocation)) {
- mLocationLL.setVisibility(View.GONE);
- } else if ("Y".equals(useLocation)) {
- mLocationLL.setVisibility(View.VISIBLE);
- }
- }
- }
- @Override
- public void onHiddenChanged(boolean hidden) {
- super.onHiddenChanged(hidden);
- if (!hidden) {
- FunctionActivity.setTitle(getResources().getString(R.string.material_in_collection));
- ((FunctionActivity) getActivity()).setMoreBtnVisible(true);
- getMaterialCollectMsg();
- if (mBackHandlerInterface != null)
- mBackHandlerInterface.setSelectedFragment(this);
- }
- }
- @Override
- protected void initEvents() {
- mCollectionTypeRg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
- @Override
- public void onCheckedChanged(RadioGroup group, int checkedId) {
- if (checkedId == R.id.material_collection_online_rb) {
- List<TableLBARCODEIO> allBarcodeIo = new ArrayList<>();
- if (mDbManager.getDb().isOpen()) {
- allBarcodeIo = mDbManager.queryFromBarcodeIo(new String[]{"in", mPiId, mWarehouseNumber}, "inOrOut=? and LBI_PIID=? and LBI_WHCODE=?");
- }
- if (CommonUtil.isNetWorkConnected(getActivity())) {
- if (allBarcodeIo.size() != 0) {
- CommonUtil.toastNoRepeat(getActivity(), getResources().getString(R.string.auto_upload_offline_data));
- submitOfflineData(allBarcodeIo, false);
- } else {
- mModeType = 1;
- }
- } else {
- mCollectionTypeRg.check(R.id.material_collection_outline_rb);
- mModeType = 0;
- CommonUtil.toastNoRepeat(getActivity(), getResources().getString(R.string.str_net_not_connect));
- }
- } else if (checkedId == R.id.material_collection_outline_rb) {
- mModeType = 0;
- }
- }
- });
- mMaterialNumberEt.setOnKeyListener(new View.OnKeyListener() {
- @Override
- public boolean onKey(View v, int keyCode, KeyEvent event) {
- if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_UP) {
- getMaterialCollectMsg();
- return true;
- }
- return false;
- }
- });
- mMaterialNumberEt.setOnFocusChangeListener(new View.OnFocusChangeListener() {
- @Override
- public void onFocusChange(View v, boolean hasFocus) {
- if (!hasFocus && !TextUtils.isEmpty(mMaterialNumberEt.getText()) && isVisible()) {
- getMaterialCollectMsg();
- }
- }
- });
- mMaterialNumberEt.addTextChangedListener(new TextWatcher() {
- @Override
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {
- }
- @Override
- public void onTextChanged(CharSequence s, int start, int before, int count) {
- if (s.length() == 0) {
- mMaterialNameTv.setText(null);
- mMaterialSpecTv.setText(null);
- mBarcodeEt.setText(null);
- mMaterialSumEt.setText(null);
- mRemainNumberTv.setText(null);
- mLocationEt.setText(null);
- }
- }
- @Override
- public void afterTextChanged(Editable s) {
- }
- });
- mMaterialSearchIv.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent = new Intent();
- intent.setClass(getActivity(), SearchMaterialActivity.class);
- intent.putExtra("pi_id", mPiId);
- intent.putExtra("pd_whcode", mWarehouseNumber);
- intent.putExtra("current_input", mMaterialNumberEt.getText().toString().trim());
- startActivityForResult(intent, Constants.FLAG.REQUEST_SEARCH_MATERIAL);
- }
- });
- mBarcodeEt.setOnEditorActionListener(new TextView.OnEditorActionListener() {
- @Override
- public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
- if (actionId == EditorInfo.IME_ACTION_SEND
- || actionId == EditorInfo.IME_ACTION_DONE
- || (event != null && event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
- confirmEvent();
- return true;
- }
- return false;
- }
- });
- mSubmitBtn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- confirmEvent();
- }
- });
- mMoreBtn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- //Toast.makeText(getActivity(),"更多选项",Toast.LENGTH_SHORT).show();
- View view = View.inflate(getActivity(), R.layout.popupwindow_material_collect_listview, null);
- Button hadCollectBtn = (Button) view.findViewById(R.id.storage_collect_menu_1);
- Button noCollectBtn = (Button) view.findViewById(R.id.storage_collect_menu_2);
- Button reCollectBtn = (Button) view.findViewById(R.id.storage_collect_menu_3);
- Button noSubmitBtn = (Button) view.findViewById(R.id.storage_collect_menu_4);
- if (mModeType == 1) {
- noSubmitBtn.setVisibility(View.GONE);
- } else {
- noSubmitBtn.setVisibility(View.VISIBLE);
- }
- hadCollectBtn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- closeListPopupWindow();
- ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
- clickToFragment(new CollectAlreadyFragment());
- }
- });
- noCollectBtn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- closeListPopupWindow();
- ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
- clickToFragment(new CollectNotFragment());
- }
- });
- reCollectBtn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- //请求网络
- progressDialog.show();
- closeListPopupWindow();
- mDbManager.deleteFromBarcodeIo(new String[]{mPiId, mWarehouseNumber}, "LBI_PIID=? and LBI_WHCODE=?");
- getMaterialAgain();
- }
- });
- noSubmitBtn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- closeListPopupWindow();
- ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
- clickToFragment(new SubmitNotFragment());
- }
- });
- // String[] items = getResources().getStringArray(R.array.material_collect_menu);
- popupWindow = new PopupWindow(view, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, true);
- // popupWindow.setAnimationStyle(R.style.MenuAnimationFade);
- popupWindow.setBackgroundDrawable(new BitmapDrawable());
- popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
- @Override
- public void onDismiss() {
- closeListPopupWindow();
- }
- });
- CommonUtil.setBackgroundAlpha(getActivity(), 0.5f);
- popupWindow.showAsDropDown(mMoreBtn);
- }
- });
- }
- private void confirmEvent() {
- if (mMaterialNumberEt.hasFocus()) {
- mMaterialNumberEt.clearFocus();
- }
- String materialNum = mMaterialNumberEt.getText().toString().trim();
- String barCode = mBarcodeEt.getText().toString().trim();
- final String materialSum = mMaterialSumEt.getText().toString().trim();
- String materialRemain = mRemainNumberTv.getText().toString().trim();
- if (TextUtils.isEmpty(materialNum)) {
- Toast.makeText(getActivity(), R.string.please_select_material, Toast.LENGTH_SHORT).show();
- } else if (TextUtils.isEmpty(barCode)) {
- Toast.makeText(getActivity(), R.string.please_collect_code, Toast.LENGTH_SHORT).show();
- } else if (TextUtils.isEmpty(materialSum) || !materialSum.matches(Constants.REGEX.IS_FLOAT)) {
- Toast.makeText(getActivity(), R.string.please_input_currect_quantity, Toast.LENGTH_SHORT).show();
- } else if (Double.parseDouble(materialSum) > Double.parseDouble(materialRemain)) {
- Toast.makeText(getActivity(), R.string.quantity_must_less_remain, Toast.LENGTH_SHORT).show();
- } else if (mLocationLL.getVisibility() == View.VISIBLE && TextUtils.isEmpty(mLocationEt.getText())) {
- Toast.makeText(getActivity(), R.string.please_input_location, Toast.LENGTH_SHORT).show();
- }
- // else if (!materialNum.matches(Constants.REGEX.NO_SYMBOL)) {
- // CommonUtil.toastNoRepeat(getActivity(), getResources().getString(R.string.prodcode_cannot_contain_special));
- // }
- else if (!barCode.matches(Constants.REGEX.NO_CN_SYMBOL)) {
- CommonUtil.toastNoRepeat(getActivity(), getResources().getString(R.string.barcode_cannot_contain_special));
- } else {
- String materialNumber = mMaterialNumberEt.getText().toString();
- try {
- List<TableLPRODIONEEDGET> allMaterialList = null;
- TableLPRODIONEEDGET currentProd = null;
- if (mDbManager.getDb().isOpen()) {
- allMaterialList = mDbManager.queryFromProductWaitCollect(new String[]{"in"}, "inOrOut=? ");
- }
- if (allMaterialList != null) {
- for (int i = 0; i < allMaterialList.size(); i++) {
- if (mPiId.equals(allMaterialList.get(i).getLPN_PIID() + "") && mStorageNumber.equals(allMaterialList.get(i).getLPN_INOUTNO())
- && mWarehouseNumber.equals(allMaterialList.get(i).getLPN_WHCODE()) && materialNumber.equals(allMaterialList.get(i).getLPN_PRODCODE())) {
- currentProd = allMaterialList.get(i);
- }
- }
- if (currentProd == null && !TextUtils.isEmpty(mMaterialNumberEt.getText())) {
- mMaterialNumberEt.setText(null);
- Toast.makeText(getActivity(), getString(R.string.material_number_not_exist), Toast.LENGTH_SHORT).show();
- } else if (currentProd.getLPN_TRACEKIND() == 1 && Double.parseDouble(materialSum) != 1) {
- CommonUtil.toastNoRepeat(getActivity(), getResources().getString(R.string.single_material_only_one));
- } else {
- if (mModeType == 1) {
- if (CommonUtil.isNetWorkConnected(getActivity())) {
- submitMaterialCollect(materialNum, barCode, materialSum);
- } else {
- CommonUtil.toastNoRepeat(getActivity(), getResources().getString(R.string.str_net_not_connect));
- }
- } else if (mModeType == 0) {
- saveMaterialCollect(materialNum, barCode, materialSum);
- }
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- @Override
- protected void initDatas() {
- }
- /**
- * 离线模式保存采集信息
- *
- * @param materialNum
- * @param barCode
- * @param materialSum
- */
- private void saveMaterialCollect(String materialNum, String barCode, String materialSum) {
- //离线模式
- try {
- progressDialog.show();
- List<TableLBARCODEIO> allBarcodeIo = new ArrayList<>();
- if (mDbManager.getDb().isOpen()) {
- allBarcodeIo = mDbManager.queryFromBarcodeIo(new String[]{"in"}, "inOrOut=? ");
- }
- //如果用户采集的离线数据超过30条,提示用户请先将采集的数据上传,限制用户必须先将数据上传
- if (allBarcodeIo.size() >= 30) {
- progressDialog.dismiss();
- final List<TableLBARCODEIO> finalAllBarcodeIo = allBarcodeIo;
- new AlertDialog.Builder(getActivity())
- .setTitle("提示")
- .setMessage("您采集的离线数据已经达到30条,请先将离线数据上传再继续采集。是否上传数据?")
- .setPositiveButton("上传", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- if (CommonUtil.isNetWorkConnected(getActivity())) {
- submitOfflineData(finalAllBarcodeIo, false);
- } else {
- CommonUtil.toastNoRepeat(getActivity(), getResources().getString(R.string.str_net_not_connect));
- }
- }
- })
- .setNegativeButton("取消", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- dialog.dismiss();
- }
- }).show();
- return;
- }
- boolean isExist = false;
- for (int i = 0; i < allBarcodeIo.size(); i++) {
- if (mPiId.equals(allBarcodeIo.get(i).getLBI_PIID() + "") && mWarehouseNumber.equals(allBarcodeIo.get(i).getLBI_WHCODE())
- && barCode.equals(allBarcodeIo.get(i).getLBI_BARCODE())) {
- isExist = true;
- break;
- }
- }
- if (isExist) {
- progressDialog.dismiss();
- Toast.makeText(getActivity(), "条码 " + barCode + " 已经在已采集待提交数据中", Toast.LENGTH_SHORT).show();
- mBarcodeEt.setText(null);
- mBarcodeEt.requestFocus();
- } else {
- TableLBARCODEIO newBarcodeIo = new TableLBARCODEIO();
- newBarcodeIo.setLBI_PIID(Long.parseLong(mPiId));
- newBarcodeIo.setLBI_BARCODE(barCode);
- newBarcodeIo.setLBI_WHCODE(mWarehouseNumber);
- newBarcodeIo.setLBI_INOUTNO(mStorageNumber);
- newBarcodeIo.setLBI_PRODCODE(materialNum);
- newBarcodeIo.setLBI_INQTY(Double.parseDouble(materialSum));
- newBarcodeIo.setLBI_LOCATION(mLocationEt.getText().toString());
- newBarcodeIo.setLBI_PRDETAIL(mMaterialNameTv.getText().toString().trim());
- newBarcodeIo.setLBI_OUTQTY(Double.parseDouble(mMaterialSumEt.getText().toString().trim()));
- newBarcodeIo.setLBI_OUTBOXCODE("");
- newBarcodeIo.setLBI_PRID(selectMaterialLPN_PRID);
- newBarcodeIo.setInOrOut("in");
- newBarcodeIo.setLBI_BOXTYPE("");
- mDbManager.saveToBarcodeIo(newBarcodeIo);
- TableLPRODIONEEDGET curMaterial = null;
- if (mDbManager.getDb().isOpen()) {
- curMaterial = mDbManager.queryFromProductWaitCollect(new String[]{mCollectionMessage.getLPN_PIID() + "", mCollectionMessage.getLPN_WHCODE(), "in"}, "LPN_PIID=? and LPN_WHCODE=? and inOrOut=? ").get(0);
- }
- if (curMaterial != null) {
- double restqty = curMaterial.getLPN_RESTQTY();
- restqty = CommonUtil.doublesubtract(restqty, Double.parseDouble(materialSum));
- // if (restqty == 0) {
- //// PdaApplication.mDbUtils.delete(curMaterial);
- // mDbManager.deleteFromProductWaitCollect(curMaterial);
- // } else if (restqty > 0) {
- curMaterial.setLPN_RESTQTY(restqty);
- // PdaApplication.mDbUtils.update(curMaterial);
- mDbManager.updateProductWaitCollect(curMaterial);
- // }
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
- progressDialog.dismiss();
- Toast.makeText(getActivity(), "成功保存至未提交列表", Toast.LENGTH_SHORT).show();
- }
- }, 400);
- if ((int) restqty <= 0) {
- mMaterialNumberEt.setText(null);
- mMaterialNameTv.setText(null);
- mMaterialSpecTv.setText(null);
- mBarcodeEt.setText(null);
- mMaterialSumEt.setText(null);
- mRemainNumberTv.setText(null);
- mLocationEt.setText(null);
- } else {
- mBarcodeEt.setText(null);
- mRemainNumberTv.setText(restqty + "");
- }
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- private void submitOfflineData(final List<TableLBARCODEIO> mNotSubmitList, final boolean isPop) {
- progressDialog.show();
- final List<SubmitNotParam> submitNotParams = new ArrayList<SubmitNotParam>();
- for (int i = 0; i < mNotSubmitList.size(); i++) {
- SubmitNotParam submitNotParam = new SubmitNotParam();
- TableLBARCODEIO lbarcodeio = mNotSubmitList.get(i);
- submitNotParam.setBi_barcode(lbarcodeio.getLBI_BARCODE());
- submitNotParam.setBi_inoutno(lbarcodeio.getLBI_INOUTNO());
- submitNotParam.setBi_inqty(lbarcodeio.getLBI_INQTY() + "");
- submitNotParam.setBi_location(lbarcodeio.getLBI_LOCATION());
- submitNotParam.setBi_piid(lbarcodeio.getLBI_PIID() + "");
- submitNotParam.setBi_prodcode(lbarcodeio.getLBI_PRODCODE());
- submitNotParam.setBi_prodid(lbarcodeio.getLBI_PRID() + "");
- submitNotParam.setBi_whcode(lbarcodeio.getLBI_WHCODE());
- submitNotParam.setBi_outboxcode(lbarcodeio.getLBI_OUTBOXCODE());
- submitNotParam.setBi_boxtype(lbarcodeio.getLBI_BOXTYPE());
- submitNotParams.add(submitNotParam);
- }
- try {
- String url = GloableParams.ADDRESS_SAVE_BARCODE;
- PdaApplication.mRequestQueue.cancelAll(TAG + "submit");
- mStringRequest = new StringRequest(Request.Method.POST, url,
- new Response.Listener<String>() {
- @Override
- public void onResponse(String s) {
- progressDialog.dismiss();
- try {
- JSONObject resultJsonObject = new JSONObject(s);
- JSONObject dataJsonObject = resultJsonObject.getJSONObject("data");
- Iterator<String> resultKeys = dataJsonObject.keys();
- if (resultKeys.hasNext()) {
- int successCount = 0;
- int failCount = 0;
- while (resultKeys.hasNext()) {
- String barcodeKey = resultKeys.next().toString();
- String barcodeResult = JsonUtils.optStringNotNull(dataJsonObject, barcodeKey);
- if ("success".equals(barcodeResult)) {
- successCount++;
- for (int i = 0; i < mNotSubmitList.size(); i++) {
- TableLBARCODEIO lbarcodeio = mNotSubmitList.get(i);
- if (barcodeKey.equals(lbarcodeio.getLBI_BARCODE())) {
- mDbManager.deleteFromBarcodeIo(lbarcodeio);
- }
- }
- } else {
- failCount++;
- }
- }
- if (failCount == 0) {
- mModeType = 1;
- Toast.makeText(getActivity(), getResources().getString(R.string.submit_success), Toast.LENGTH_SHORT).show();
- if (isPop)
- getActivity().getSupportFragmentManager().popBackStack();
- } else {
- ((RadioButton) mCollectionTypeRg.findViewById(R.id.material_collection_outline_rb)).setChecked(true);
- mModeType = 0;
- CommonUtil.toastNoRepeat(getActivity(), successCount + "条数据提交成功\n" + failCount + "条数据提交失败");
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- },
- new Response.ErrorListener() {
- @Override
- public void onErrorResponse(VolleyError volleyError) {
- progressDialog.dismiss();
- mModeType = 0;
- ((RadioButton) mCollectionTypeRg.findViewById(R.id.material_collection_outline_rb)).setChecked(true);
- CommonUtil.showErrorToast(volleyError);
- }
- }) {
- @Override
- public Map<String, String> getHeaders() throws AuthFailureError {
- return VolleyUtil.getVolleyUtil().setCookies();
- }
- @Override
- protected Map<String, String> getParams() throws AuthFailureError {
- Map<String, String> param = new HashMap<>();
- param.put("data", JSON.toJSONString(submitNotParams));
- return param;
- }
- };
- mStringRequest.setRetryPolicy(new DefaultRetryPolicy(10 * 1000, 0, 1f));
- mStringRequest.setTag(TAG + "submit");
- PdaApplication.mRequestQueue.add(mStringRequest);
- } catch (Exception e) {
- progressDialog.dismiss();
- e.printStackTrace();
- }
- }
- /**
- * 在线模式提交采集
- *
- * @param materialNum
- * @param barCode
- * @param materialSum
- */
- private void submitMaterialCollect(final String materialNum, final String barCode, final String materialSum) {
- progressDialog.show();
- mRequestQueue = Volley.newRequestQueue(getActivity());
- mRequestQueue.cancelAll(TAG + "collect");
- final JSONObject paramsJson = new JSONObject();
- try {
- paramsJson.put("bi_barcode", barCode);
- paramsJson.put("bi_piid", mPiId);
- paramsJson.put("bi_whcode", mWarehouseNumber);
- paramsJson.put("bi_prodcode", materialNum);
- paramsJson.put("bi_inqty", materialSum);
- paramsJson.put("bi_prodid", selectMaterialLPN_PRID);
- paramsJson.put("bi_inoutno", mStorageNumber);
- if (mLocationLL.getVisibility() == View.VISIBLE) {
- paramsJson.put("bi_location", mLocationEt.getText().toString());
- } else {
- paramsJson.put("bi_location", "");
- }
- } catch (JSONException e) {
- e.printStackTrace();
- }
- mStringRequest = new StringRequest(Request.Method.POST, GloableParams.ADDRESS_SAVE_BARCODE,
- new Response.Listener<String>() {
- @Override
- public void onResponse(String s) {
- try {
- progressDialog.dismiss();
- JSONObject resultJsonObject = new JSONObject(s);
- JSONObject dataJsonObject = resultJsonObject.getJSONObject("data");
- Iterator<String> resultKeys = dataJsonObject.keys();
- if (resultKeys.hasNext()) {
- String barcodeKey = resultKeys.next().toString();
- String barcodeResult = JsonUtils.optStringNotNull(dataJsonObject, barcodeKey);
- if ("success".equals(barcodeResult)) {
- TableLPRODIONEEDGET curMaterial = null;
- if (!mDbManager.getDb().isOpen()) {
- mDbManager = new DBManager(getActivity());
- }
- 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);
- if (curMaterial != null) {
- double restqty = curMaterial.getLPN_RESTQTY();
- restqty = CommonUtil.doublesubtract(restqty, Double.parseDouble(materialSum));
- //由于已采集列表删除的时候要做更新操作,所以这里不能删除数据库内的数据
- // if (restqty == 0) {
- // mDbManager.deleteFromProductWaitCollect(curMaterial);
- // }
- // else if (restqty > 0) {
- curMaterial.setLPN_RESTQTY(restqty);
- mDbManager.updateProductWaitCollect(curMaterial);
- // }
- Toast.makeText(getActivity(), R.string.submit_collect_success, Toast.LENGTH_SHORT).show();
- if ((int) restqty <= 0) {
- mMaterialNumberEt.setText(null);
- mMaterialNameTv.setText(null);
- mMaterialSpecTv.setText(null);
- mBarcodeEt.setText(null);
- mMaterialSumEt.setText(null);
- mRemainNumberTv.setText(null);
- mLocationEt.setText(null);
- } else {
- mBarcodeEt.setText(null);
- mRemainNumberTv.setText(restqty + "");
- }
- }
- } else {
- mBarcodeEt.setText(null);
- CommonUtil.toastNoRepeat(getActivity(), barcodeResult);
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- },
- new Response.ErrorListener() {
- @Override
- public void onErrorResponse(VolleyError volleyError) {
- progressDialog.dismiss();
- mBarcodeEt.setText(null);
- CommonUtil.showErrorToast(volleyError);
- }
- }) {
- @Override
- public Map<String, String> getHeaders() throws AuthFailureError {
- return VolleyUtil.getVolleyUtil().setCookies();
- }
- @Override
- protected Map<String, String> getParams() throws AuthFailureError {
- Map<String, String> param = new HashMap<>();
- param.put("data", paramsJson.toString());
- return param;
- }
- };
- mStringRequest.setTag(TAG + "collect");
- mRequestQueue.add(mStringRequest);
- }
- private void getMaterialAgain() {
- mRequestQueue = Volley.newRequestQueue(getActivity());
- String url = GloableParams.ADDRESS_CLEARGET;
- mRequestQueue.cancelAll(TAG);
- mStringRequestPost = new StringRequest(VolleyUtil.METHOD_POST, url, new Response.Listener<String>() {
- @Override
- public void onResponse(String s) {
- LogUtil.e("已空", s + "");
- // progressDialog.dismiss();
- Toast.makeText(getActivity().getApplicationContext(), "已清空采集数据", Toast.LENGTH_LONG).show();
- getCollectNotListOnline(mPiId, mWarehouseNumber);
- }
- }, new Response.ErrorListener() {
- @Override
- public void onErrorResponse(VolleyError volleyError) {
- // progressDialog.dismiss();
- closeListPopupWindow();
- getCollectNotListOnline(mPiId, mWarehouseNumber);
- CommonUtil.showErrorToast(volleyError);
- }
- }) {
- @Override
- public Map<String, String> getHeaders() throws AuthFailureError {
- return VolleyUtil.getVolleyUtil().setCookies();
- }
- @Override
- protected Map<String, String> getParams() throws AuthFailureError {
- Map<String, String> params = new HashMap<>();
- params.put("id", mPiId);
- params.put("whcode", mWarehouseNumber);
- return params;
- }
- };
- mStringRequestPost.setTag(TAG);
- mRequestQueue.add(mStringRequestPost);
- }
- /**
- * 获取材料未采集列表
- *
- * @param pi_id
- * @param pd_whcode
- */
- private void getCollectNotListOnline(final String pi_id, final String pd_whcode) {
- progressDialog.show();
- String url = GloableParams.ADDRESS_NEED_GET_LIST + "?id=" + pi_id + "&whcode=" + pd_whcode + "&type=IN";
- Log.i("collectNoturl", url);
- PdaApplication.mRequestQueue.cancelAll(TAG + "online");
- mJsonRequest = new JsonObjectRequest(Request.Method.GET, url, null,
- new Response.Listener<JSONObject>() {
- @Override
- public void onResponse(JSONObject jsonObject) {
- progressDialog.dismiss();
- try {
- if (!"success".equals(jsonObject.getJSONObject("data").optString("message"))) {
- CommonUtil.toastNoRepeat(getActivity(), jsonObject.getJSONObject("data").optString("message"));
- }
- JSONArray jsonArray = jsonObject.getJSONObject("data").getJSONArray("data");
- LogUtil.i("jsonArray", jsonArray.toString());
- if (jsonArray != null) {
- List<TableLPRODIONEEDGET> lprodioneedgetList = new ArrayList<>();
- for (int i = 0; i < jsonArray.length(); i++) {
- LogUtil.i("jsonObject", jsonArray.get(i).toString());
- JSONObject currentObject = jsonArray.getJSONObject(i);
- TableLPRODIONEEDGET lprodioneedget = new TableLPRODIONEEDGET();
- lprodioneedget.setLPN_RESTQTY(currentObject.optDouble("PD_RESTQTY"));
- lprodioneedget.setLPN_PRODCODE(currentObject.optString("PD_PRODCODE"));
- lprodioneedget.setLPN_PRDETAIL(currentObject.optString("PR_DETAIL"));
- lprodioneedget.setLPN_PIID(currentObject.optLong("PD_PIID"));
- lprodioneedget.setLPN_WHCODE(currentObject.optString("PD_WHCODE"));
- lprodioneedget.setLPN_INOUTNO(currentObject.optString("PD_INOUTNO"));
- lprodioneedget.setLPN_ZXBZS(currentObject.optDouble("PR_ZXBZS"));
- lprodioneedget.setLPN_PRSPEC(JsonUtils.optStringNotNull(currentObject, "PR_SPEC"));
- lprodioneedget.setLPN_IFBARCODECHECK(JsonUtils.optStringNotNull(currentObject, "PR_IFBARCODECHECK"));
- lprodioneedget.setLPN_PRID(currentObject.optLong("PR_ID"));
- lprodioneedget.setLPN_BATCHCODE("");
- lprodioneedget.setLPN_ORDERCODE("");
- lprodioneedget.setInOrOut("in");
- lprodioneedget.setLPN_TRACEKIND(currentObject.optInt("PR_TRACEKIND"));
- lprodioneedgetList.add(lprodioneedget);
- }
- try {
- if (mDbManager.getDb().isOpen()) {
- // mDbManager.deleteInOrOutProductWaitCollect("in");
- mDbManager.deleteFromProductWaitCollect(new String[]{"in", pi_id, pd_whcode}, "inOrOut=? and LPN_PIID=? and LPN_WHCODE=?");
- mDbManager.saveListToProductWaitCollect(lprodioneedgetList);
- getMaterialCollectMsg();
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- } catch (JSONException e) {
- e.printStackTrace();
- }
- }
- },
- new Response.ErrorListener() {
- @Override
- public void onErrorResponse(VolleyError volleyError) {
- progressDialog.dismiss();
- CommonUtil.showErrorToast(volleyError);
- }
- }) {
- @Override
- public Map<String, String> getHeaders() throws AuthFailureError {
- return VolleyUtil.getVolleyUtil().setCookies();
- }
- @Override
- protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) {
- if (response.data == null || response.data.length == 0) {
- JSONObject jsonObject = new JSONObject();
- try {
- jsonObject.put("msg", "成功:服务器无返回");
- } catch (JSONException e) {
- e.printStackTrace();
- }
- return Response.success(jsonObject, HttpHeaderParser.parseCacheHeaders(response));
- } else {
- return super.parseNetworkResponse(response);
- }
- }
- };
- mJsonRequest.setRetryPolicy(new DefaultRetryPolicy(10 * 1000, 0, 1f));
- mJsonRequest.setTag(TAG + "online");
- PdaApplication.mRequestQueue.add(mJsonRequest);
- }
- private void clickToFragment(BaseFragment baseFragment) {
- Bundle bundle = new Bundle();
- bundle.putString("pi_id", mPiId);
- bundle.putString("pi_inoutno", mStorageNumber);
- bundle.putString("pd_whcode", mWarehouseNumber);
- bundle.putInt("modeType", mModeType);
- mFragment = baseFragment;
- mFragment.setArguments(bundle);
- // getFragmentManager().beginTransaction().addToBackStack(null).replace(R.id.container_function_fragment, mFragment).commit();
- if (!mFragment.isAdded())
- getFragmentManager().beginTransaction().addToBackStack(null).hide(this).add(R.id.container_function_fragment, mFragment).commit();
- else
- getFragmentManager().beginTransaction().addToBackStack(null).hide(this).show(mFragment).commit();
- }
- private void closeListPopupWindow() {
- if (popupWindow != null) {
- popupWindow.dismiss();
- popupWindow = null;
- CommonUtil.setBackgroundAlpha(getActivity(), 1f);
- }
- }
- @Override
- public void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- if (requestCode == Constants.FLAG.REQUEST_SEARCH_MATERIAL && resultCode == Constants.FLAG.RESULT_SEARCH_MATERIAL) {
- TableLPRODIONEEDGET selectMaterial = (TableLPRODIONEEDGET) data.getSerializableExtra("select_material");
- Log.i("onActivityResult: ", selectMaterial.toString());
- mMaterialNumberEt.setText(selectMaterial.getLPN_PRODCODE());
- mMaterialNameTv.setText(selectMaterial.getLPN_PRDETAIL());
- mMaterialSpecTv.setText(selectMaterial.getLPN_PRSPEC());
- if (selectMaterial.getLPN_ZXBZS() != -1) {
- mMaterialSumEt.setText(CommonUtil.doubleFormat(selectMaterial.getLPN_ZXBZS()));
- } else {
- mMaterialSumEt.setText("0.0");
- }
- mRemainNumberTv.setText(CommonUtil.doubleFormat(selectMaterial.getLPN_RESTQTY()));
- selectMaterialLPN_PRID = selectMaterial.getLPN_PRID();
- }
- }
- /**
- * 料号enter事件、失去焦点事件
- */
- private void getMaterialCollectMsg() {
- String materialNumber = mMaterialNumberEt.getText().toString();
- try {
- // List<TableLPRODIONEEDGET> allMaterialList = PdaApplication.mDbUtils.findAll(TableLPRODIONEEDGET.class);
- List<TableLPRODIONEEDGET> allMaterialList = null;
- if (mDbManager.getDb().isOpen()) {
- allMaterialList = mDbManager.queryFromProductWaitCollect(new String[]{"in"}, "inOrOut=? ");
- }
- if (allMaterialList != null) {
- for (int i = 0; i < allMaterialList.size(); i++) {
- if (mPiId.equals(allMaterialList.get(i).getLPN_PIID() + "") && mStorageNumber.equals(allMaterialList.get(i).getLPN_INOUTNO())
- && mWarehouseNumber.equals(allMaterialList.get(i).getLPN_WHCODE()) && materialNumber.equals(allMaterialList.get(i).getLPN_PRODCODE())) {
- mCollectionMessage = allMaterialList.get(i);
- mMaterialNameTv.setText(mCollectionMessage.getLPN_PRDETAIL());
- mMaterialSpecTv.setText(mCollectionMessage.getLPN_PRSPEC());
- if (TextUtils.isEmpty(mMaterialSumEt.getText().toString())) {
- mMaterialSumEt.setText(CommonUtil.doubleFormat(mCollectionMessage.getLPN_ZXBZS()));
- }
- mRemainNumberTv.setText(CommonUtil.doubleFormat(mCollectionMessage.getLPN_RESTQTY()));
- }
- }
- if (mCollectionMessage == null && !TextUtils.isEmpty(mMaterialNumberEt.getText())) {
- mMaterialNumberEt.setText(null);
- Toast.makeText(getActivity(), getString(R.string.material_number_not_exist), Toast.LENGTH_SHORT).show();
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- @Override
- public void onResume() {
- super.onResume();
- }
- @Override
- public void onDestroyView() {
- super.onDestroyView();
- ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
- mDbManager.closeDB();
- ((FunctionActivity) getActivity()).mFragment = new MaterialStorageFragment();
- }
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- return false;
- }
- /**
- * 其返回一个布尔值;意思是,如果对返回事件进行了处理就返回TRUE,如果不做处理就返回FALSE,让上层进行处理。
- *
- * @return
- */
- public boolean onFragmentBackPressed() {
- List<TableLBARCODEIO> allBarcodeIo = new ArrayList<>();
- if (!mDbManager.getDb().isOpen()) {
- mDbManager = new DBManager(getActivity());
- }
- // allBarcodeIo = mDbManager.queryFromBarcodeIo(new String[]{"in"}, "inOrOut=? ");
- allBarcodeIo = mDbManager.queryFromBarcodeIo(new String[]{"in", mStorageNumber, mWarehouseNumber}, "inOrOut=? and LBI_INOUTNO=? and LBI_WHCODE=?");
- if (allBarcodeIo != null && allBarcodeIo.size() != 0) {
- final List<TableLBARCODEIO> finalAllBarcodeIo = allBarcodeIo;
- new AlertDialog.Builder(getActivity())
- .setTitle("提示")
- .setMessage("存在未提交的离线采集数据,点击上传将把未提交数据上传,点击取消将清空未采集数据")
- .setPositiveButton("上传", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- if (CommonUtil.isNetWorkConnected(getActivity())) {
- submitOfflineData(finalAllBarcodeIo, true);
- } else {
- CommonUtil.toastNoRepeat(getActivity(), getResources().getString(R.string.str_net_not_connect));
- }
- }
- })
- .setNegativeButton("取消", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- dialog.dismiss();
- try {
- mDbManager.deleteListFromBarcodeIo(finalAllBarcodeIo);
- List<TableLPRODIONEEDGET> allLprodioneedgets = mDbManager.queryFromProductWaitCollect(new String[]{"in"}, "inOrOut=? ");
- if (allLprodioneedgets != null) {
- for (int j = 0; j < finalAllBarcodeIo.size(); j++) {
- TableLBARCODEIO deleteLbarcodeio = finalAllBarcodeIo.get(j);
- for (int i = 0; i < allLprodioneedgets.size(); i++) {
- TableLPRODIONEEDGET tableLPRODIONEEDGET = allLprodioneedgets.get(i);
- if (tableLPRODIONEEDGET.getLPN_PIID() == deleteLbarcodeio.getLBI_PIID()
- && tableLPRODIONEEDGET.getLPN_WHCODE().equals(deleteLbarcodeio.getLBI_WHCODE())
- && tableLPRODIONEEDGET.getLPN_PRODCODE().equals(deleteLbarcodeio.getLBI_PRODCODE())) {
- tableLPRODIONEEDGET.setLPN_RESTQTY(CommonUtil.doubleAddition(tableLPRODIONEEDGET.getLPN_RESTQTY(), deleteLbarcodeio.getLBI_INQTY()));
- mDbManager.updateProductWaitCollect(tableLPRODIONEEDGET);
- }
- }
- }
- }
- CommonUtil.toastNoRepeat(getActivity(), "清除数据成功");
- getActivity().getSupportFragmentManager().popBackStack();
- } catch (Exception e) {
- // e.printStackTrace();
- // Log.e(TAG + "exception", e.getMessage());
- CommonUtil.toastNoRepeat(getActivity(), "清除失败");
- getActivity().getSupportFragmentManager().popBackStack();
- }
- }
- }).show();
- // ((FunctionActivity) getActivity()).mFragment = new MaterialStorageFragment();
- return true;
- } else {
- return false;
- }
- }
- }
|