DeliveryForRepairFragment.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  1. package com.uas.equipment.fragment;
  2. import android.app.Activity;
  3. import android.content.Intent;
  4. import android.graphics.Color;
  5. import android.os.Bundle;
  6. import android.view.KeyEvent;
  7. import android.view.View;
  8. import android.view.inputmethod.EditorInfo;
  9. import android.widget.AdapterView;
  10. import android.widget.ArrayAdapter;
  11. import android.widget.Button;
  12. import android.widget.ImageView;
  13. import android.widget.Spinner;
  14. import android.widget.TextView;
  15. import com.alibaba.fastjson.JSON;
  16. import com.alibaba.fastjson.JSONArray;
  17. import com.alibaba.fastjson.JSONObject;
  18. import com.android.volley.Request;
  19. import com.uas.equipment.R;
  20. import com.uas.equipment.activity.FunctionActivity;
  21. import com.uas.equipment.camera.CaptureActivity;
  22. import com.uas.equipment.camera.CodeUtils;
  23. import com.uas.equipment.global.GloableParams;
  24. import com.uas.equipment.tools.SharedPreUtil;
  25. import com.uas.equipment.util.CameraUtil;
  26. import com.uas.equipment.util.CommonUtil;
  27. import com.uas.equipment.util.Constants;
  28. import com.uas.equipment.util.FastjsonUtil;
  29. import com.uas.equipment.util.HttpCallback;
  30. import com.uas.equipment.util.HttpParams;
  31. import com.uas.equipment.util.StringUtil;
  32. import com.uas.equipment.util.VollyRequest;
  33. import com.uas.equipment.view.ClearableEditText;
  34. /**
  35. * Created by cjh-sail on 2023-02-01
  36. */
  37. public class DeliveryForRepairFragment extends BaseFragment{
  38. private String de_code;
  39. private Spinner spinner;
  40. private ArrayAdapter<String> adapter;
  41. private String[] m;
  42. private TextView tv_de_code;
  43. private TextView tv_dc_emname;
  44. private TextView tv_dc_devcode;
  45. private TextView tv_de_name;
  46. private TextView tv_malfunction;
  47. private TextView tv_dc_remark;
  48. private String dc_code;
  49. private String dc_emname;
  50. private String dc_devcode;
  51. private String de_name;
  52. private String dc_reason;
  53. private String dc_remark;
  54. private String dc_id;
  55. private Button btn_commit;
  56. private ClearableEditText index_position_malfunction;
  57. private ClearableEditText index_position_resource;
  58. private String maintenanceType;
  59. private TextView tv_prompt;
  60. private ClearableEditText ce_de_code;
  61. private ImageView storage_recharge_scan_iv;
  62. private int mFocusId;
  63. private static final int SCAN_BARCODE_CODE = 111;
  64. @Override
  65. protected int getLayout() {
  66. return R.layout.fragment_deliveryforrepair;
  67. }
  68. @Override
  69. protected void initViews() {
  70. FunctionActivity.setTitle(getString(R.string.title_storage_deliveryforrepair));
  71. spinner = root.findViewById(R.id.spinner02);
  72. tv_de_code = root.findViewById(R.id.tv_de_code);
  73. tv_dc_emname = root.findViewById(R.id.tv_dc_emname);
  74. tv_dc_devcode = root.findViewById(R.id.tv_dc_devcode);
  75. tv_de_name = root.findViewById(R.id.tv_de_name);
  76. tv_malfunction = root.findViewById(R.id.tv_malfunction);
  77. tv_dc_remark = root.findViewById(R.id.tv_dc_remark);
  78. btn_commit = root.findViewById(R.id.btn_commit);
  79. index_position_malfunction = root.findViewById(R.id.index_position_malfunction);
  80. index_position_resource = root.findViewById(R.id.index_position_resource);
  81. tv_prompt = root.findViewById(R.id.tv_prompt);
  82. ce_de_code = root.findViewById(R.id.ce_de_code);
  83. storage_recharge_scan_iv = root.findViewById(R.id.storage_recharge_scan_iv);
  84. }
  85. @Override
  86. protected void initEvents() {
  87. m = new String[]{"已维修","不可维修","待检修","维修中"};
  88. //将可选内容与ArrayAdapter连接起来
  89. adapter = new ArrayAdapter<String>(mActivity,android.R.layout.simple_spinner_item,m);
  90. //设置下拉列表的风格
  91. adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);//风格一
  92. //adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line); 风格二
  93. //将adapter 添加到spinner中
  94. spinner.setAdapter(adapter);
  95. //添加事件Spinner事件监听
  96. spinner.setOnItemSelectedListener(new SpinnerSelectedListener());
  97. //设置默认值
  98. spinner.setVisibility(View.VISIBLE);
  99. ce_de_code.setOnEditorActionListener(new TextView.OnEditorActionListener() {
  100. @Override
  101. public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
  102. if (actionId == EditorInfo.IME_ACTION_DONE
  103. || actionId == EditorInfo.IME_ACTION_SEND
  104. || (event != null && event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
  105. String va_code = ce_de_code.getText().toString().trim();
  106. getNewData(va_code);
  107. return true;
  108. }
  109. return false;
  110. }
  111. });
  112. storage_recharge_scan_iv.setOnClickListener(new View.OnClickListener() {
  113. @Override
  114. public void onClick(View v) {
  115. ce_de_code.requestFocus();
  116. if (CameraUtil.hasCamera()) {
  117. if (root.findFocus() != null) {
  118. mFocusId = root.findFocus().getId();
  119. Intent intent = new Intent();
  120. intent.setClass(mActivity, CaptureActivity.class);
  121. startActivityForResult(intent, SCAN_BARCODE_CODE);
  122. SharedPreUtil.saveString(mActivity, Constants.STORAGEERECHADD, "NO");
  123. } else {
  124. CommonUtil.toastNoRepeat(mActivity, "请选择您要操作的输入框");
  125. }
  126. } else {
  127. CommonUtil.toastNoRepeat(mActivity, getString(R.string.no_camera_detected));
  128. }
  129. }
  130. });
  131. }
  132. @Override
  133. protected void initDatas() {
  134. Bundle arguments = getArguments();
  135. de_code = arguments.getString("de_code");
  136. String de_name = arguments.getString("de_name");
  137. if (!StringUtil.isEmpty(de_code)){
  138. getNewNameData();
  139. }
  140. btn_commit.setOnClickListener(new View.OnClickListener() {
  141. @Override
  142. public void onClick(View v) {
  143. getNewCommitData();
  144. }
  145. });
  146. }
  147. public void getNewNameData(){
  148. progressDialog.show();
  149. VollyRequest.getInstance().stringRequest(new HttpParams.Builder()
  150. .url(GloableParams.ASTATIONTHE_COMMIT_DELIVERYFORREPAIR)
  151. .method(Request.Method.GET)
  152. .addParam("caller", "DeviceChange!Repair")
  153. .addParam("de_code", de_code)//设备编号
  154. .build(), new HttpCallback() {
  155. @Override
  156. public void onSuccess(int flag, Object o) throws Exception {
  157. progressDialog.dismiss();
  158. String result = o.toString();
  159. JSONObject resultObject = JSON.parseObject(result);
  160. JSONObject dataObject = resultObject.getJSONObject("items");
  161. dc_code = FastjsonUtil.getText(dataObject, "dc_code");
  162. dc_emname = FastjsonUtil.getText(dataObject, "dc_emname");
  163. dc_devcode = FastjsonUtil.getText(dataObject, "dc_devcode");
  164. de_name = FastjsonUtil.getText(dataObject, "de_name");
  165. dc_reason = FastjsonUtil.getText(dataObject, "dc_reason");
  166. dc_remark = FastjsonUtil.getText(dataObject, "dc_remark");
  167. dc_id = FastjsonUtil.getText(dataObject, "dc_id");
  168. tv_de_code.setText("送修单:"+ dc_code);
  169. tv_dc_emname.setText("送修人:"+ dc_emname);
  170. tv_dc_devcode.setText("设备:"+ dc_devcode);
  171. tv_de_name.setText(de_name);
  172. tv_malfunction.setText("故障现象:"+ dc_reason);
  173. tv_dc_remark.setText("备注:"+ dc_remark);
  174. }
  175. @Override
  176. public void onFail(int flag, String failStr) throws Exception {
  177. progressDialog.dismiss();
  178. CommonUtil.toastNoRepeat(mActivity, failStr);
  179. }
  180. });
  181. }
  182. //提交保存
  183. public void getNewCommitData(){
  184. if (index_position_malfunction.getText().toString().trim().isEmpty()){
  185. CommonUtil.toastNoRepeat(mActivity, "请填写故障原因");
  186. return;
  187. }
  188. if (index_position_resource.getText().toString().trim().isEmpty()){
  189. CommonUtil.toastNoRepeat(mActivity, "请填写备注");
  190. return;
  191. }
  192. if (dc_id.isEmpty()){
  193. CommonUtil.toastNoRepeat(mActivity, "未能获取到设备信id");
  194. return;
  195. }
  196. progressDialog.show();
  197. JSONObject jsonObject = new JSONObject();
  198. JSONArray jsonArray = new JSONArray();
  199. JSONObject object_1 = new JSONObject();
  200. object_1.put("dc_id", dc_id);
  201. object_1.put("dc_reasonanalyse", index_position_malfunction.getText().toString().trim());//原因分析
  202. object_1.put("dc_remark", index_position_resource.getText().toString().trim());//备注
  203. object_1.put("dc_actionresult", maintenanceType);
  204. jsonArray.add(object_1);
  205. jsonObject.put("formStore", jsonArray);
  206. VollyRequest.getInstance().stringRequest(new HttpParams.Builder()
  207. .url(GloableParams.ASTATIONTHE_COMMIT_MAINITEM)
  208. .method(Request.Method.GET)
  209. .addParam("caller", "DeviceChange!Repair")
  210. .addParam("de_code",de_code)
  211. .addParam("formStore",jsonArray.toString())
  212. .build(), new HttpCallback() {
  213. @Override
  214. public void onSuccess(int flag, Object o) throws Exception {
  215. progressDialog.dismiss();
  216. tv_prompt.setVisibility(View.VISIBLE);
  217. tv_prompt.setTextColor(Color.GREEN);
  218. tv_prompt.setText("提交成功");
  219. }
  220. @Override
  221. public void onFail(int flag, String failStr) throws Exception {
  222. progressDialog.dismiss();
  223. tv_prompt.setVisibility(View.VISIBLE);
  224. tv_prompt.setTextColor(Color.RED);
  225. tv_prompt.setText(failStr);
  226. // CommonUtil.toastNoRepeat(mActivity, failStr);
  227. }
  228. });
  229. }
  230. //使用数组形式操作
  231. class SpinnerSelectedListener implements AdapterView.OnItemSelectedListener {
  232. public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
  233. long arg3) {
  234. maintenanceType = m[arg2];
  235. }
  236. public void onNothingSelected(AdapterView<?> arg0) {
  237. }
  238. }
  239. @Override
  240. public boolean onKeyDown(int keyCode, KeyEvent event) {
  241. return false;
  242. }
  243. @Override
  244. public boolean onFragmentBackPressed() {
  245. return false;
  246. }
  247. @Override
  248. public void onHiddenChanged(boolean hidden) {
  249. super.onHiddenChanged(hidden);
  250. if (hidden) {
  251. ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
  252. } else {
  253. FunctionActivity.setTitle(getString(R.string.title_storage_deliveryforrepair));
  254. ((FunctionActivity) getActivity()).setMoreBtnVisible(true);
  255. }
  256. }
  257. public void getNewData(String de_codes){
  258. progressDialog.show();
  259. VollyRequest.getInstance().stringRequest(new HttpParams.Builder()
  260. .url(GloableParams.ASTATIONTHE_SWEEP_DATA)
  261. .method(Request.Method.GET)
  262. .addParam("de_code", de_codes)
  263. .build(), new HttpCallback() {
  264. @Override
  265. public void onSuccess(int flag, Object o) throws Exception {
  266. progressDialog.dismiss();
  267. String result = o.toString();
  268. JSONObject resultObject = JSON.parseObject(result);
  269. JSONObject dataObject = resultObject.getJSONObject("device");
  270. String de_code1 = FastjsonUtil.getText(dataObject, "DE_CODE");
  271. String de_name1 = FastjsonUtil.getText(dataObject, "DE_NAME");
  272. de_code=de_code1;
  273. de_name=de_name1;
  274. tv_de_code.setText(de_code1);
  275. tv_de_name.setText(de_name1);
  276. getNewNameData();
  277. }
  278. @Override
  279. public void onFail(int flag, String failStr) throws Exception {
  280. progressDialog.dismiss();
  281. CommonUtil.toastNoRepeat(mActivity, failStr);
  282. }
  283. });
  284. }
  285. @Override
  286. public void onActivityResult(int requestCode, int resultCode, Intent data) {
  287. super.onActivityResult(requestCode, resultCode, data);
  288. if (resultCode != Activity.RESULT_OK) {
  289. return;
  290. }
  291. if (requestCode == SCAN_BARCODE_CODE && data != null) {
  292. if (data.getExtras() != null) {
  293. String result = data.getExtras().getString(CodeUtils.RESULT_STRING);
  294. if (mFocusId == R.id.ce_de_code) {
  295. ce_de_code.setText(result);
  296. ce_de_code.setSelection(result.length());
  297. getNewData(result);
  298. }
  299. }
  300. }
  301. }
  302. }