Android 出货计划功能实现

添加起始日期控件以及相关逻辑

 //获取当前日期
    private void getDate() {
        cal = Calendar.getInstance();
        year = cal.get(Calendar.YEAR);
        Log.i("wxy", "year" + year);
        month = cal.get(Calendar.MONTH);
        day = cal.get(Calendar.DAY_OF_MONTH);
    }

起始日期不能大于结束日期

  @Override
    public void onClick(View view) {

        switch (view.getId()) {
            case R.id.tvStartDate:
                DatePickerDialog.OnDateSetListener listener = new DatePickerDialog.OnDateSetListener() {

                    @Override
                    public void onDateSet(DatePicker arg0, int year, int month, int day) {
                        Date date = new Date();
                        Date endDate = new Date();
                        String str = year + "-" + (++month) + "-" + day;
                        try {
                            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
                            date = (Date) formatter.parse(str);
                            endDate = (Date) formatter.parse(tvEndDate.getText().toString());
                        } catch (Exception e) {
                        }
                        if (date.compareTo(endDate) > 0) {
                            Toast.makeText(QueryActivity.this, "开始日期不能大于结束日期!", Toast.LENGTH_LONG).show();
                            tvStartDate.setText(DateTimeHelper.getLocalTime("yyyy-MM-dd"));
                        } else {
                            tvStartDate.setText(str);
                        }
                    }
                };
                DatePickerDialog dialog = new DatePickerDialog(QueryActivity.this, 0, listener, year, month, day);
                dialog.show();
                break;
            case R.id.tvEndDate:
                DatePickerDialog.OnDateSetListener listener1 = new DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePicker arg0, int year, int month, int day) {
                    /*    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
                        String date =formatter.format(year + "-" + (++month) + "-" + day) ;
                            String date = year + "-" + (++month) + "-" + day;*/
                        Date date = new Date();
                        Date startDate = new Date();
                        String str = year + "-" + (++month) + "-" + day;
                        try {
                            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
                            date = (Date) formatter.parse(str);
                            startDate = (Date) formatter.parse(tvStartDate.getText().toString());
                        } catch (Exception e) {
                        }
                        if (date.compareTo(startDate) < 0) {
                            Toast.makeText(QueryActivity.this, "结束日期不能小于开始日期!", Toast.LENGTH_LONG).show();
                            tvEndDate.setText(tvStartDate.getText().toString());
                        } else {
                            tvEndDate.setText(str);
                        }
                    }
                };
                DatePickerDialog dialog1 = new DatePickerDialog(QueryActivity.this, 0, listener1, year, month, day);
                dialog1.show();
                break;
        }

    }

根据出货号或出货起始日期查询出货计划

 private List<QueryParam> packageQueryParam() {
        List<QueryParam> params = new ArrayList<>();
        //出货计划号参数
        QueryParam queryParam = new QueryParam();
        String dvNo = tvOutPlanNo.getText().toString();
        if (!dvNo.isEmpty()) {
            queryParam.setPropertyName("DvNo");
            queryParam.setFindType("ctLike");
            List<String> values = new ArrayList<>();
            values.add(dvNo);
            queryParam.setValues(values);
            params.add(queryParam);
        }
        //出货计划日期
        String startDate = tvStartDate.getText().toString();
        String endDate = tvEndDate.getText().toString();
        if (dvNo.isEmpty()) {
            queryParam.setPropertyName("PlanDate");
            queryParam.setFindType("ctBetween");
            List<String> values = new ArrayList<>();
            values.add(startDate);
            values.add(endDate);
            queryParam.setValues(values);
            params.add(queryParam);
        }
        return params;
    }
    private void jumpToOutPlanActivity(List<OutPlanItem> params) {
        ARouter.getInstance().build("/whassister/OutPlanActivity").
                withObject(Constant.JUMP_FLAG_OUTPLANS, (Serializable)params).navigation();
    }

调用web接口封装数据

  @Override
    public void onClick(View view) {

        switch (view.getId()) {
            case R.id.tvStartDate:
                DatePickerDialog.OnDateSetListener listener = new DatePickerDialog.OnDateSetListener() {

                    @Override
                    public void onDateSet(DatePicker arg0, int year, int month, int day) {
                        Date date = new Date();
                        Date endDate = new Date();
                        String str = year + "-" + (++month) + "-" + day;
                        try {
                            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
                            date = (Date) formatter.parse(str);
                            endDate = (Date) formatter.parse(tvEndDate.getText().toString());
                        } catch (Exception e) {
                        }
                        if (date.compareTo(endDate) > 0) {
                            Toast.makeText(QueryActivity.this, "开始日期不能大于结束日期!", Toast.LENGTH_LONG).show();
                            tvStartDate.setText(DateTimeHelper.getLocalTime("yyyy-MM-dd"));
                        } else {
                            tvStartDate.setText(str);
                        }
                    }
                };
                DatePickerDialog dialog = new DatePickerDialog(QueryActivity.this, 0, listener, year, month, day);
                dialog.show();
                break;
            case R.id.tvEndDate:
                DatePickerDialog.OnDateSetListener listener1 = new DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePicker arg0, int year, int month, int day) {
                    /*    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
                        String date =formatter.format(year + "-" + (++month) + "-" + day) ;
                            String date = year + "-" + (++month) + "-" + day;*/
                        Date date = new Date();
                        Date startDate = new Date();
                        String str = year + "-" + (++month) + "-" + day;
                        try {
                            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
                            date = (Date) formatter.parse(str);
                            startDate = (Date) formatter.parse(tvStartDate.getText().toString());
                        } catch (Exception e) {
                        }
                        if (date.compareTo(startDate) < 0) {
                            Toast.makeText(QueryActivity.this, "结束日期不能小于开始日期!", Toast.LENGTH_LONG).show();
                            tvEndDate.setText(tvStartDate.getText().toString());
                        } else {
                            tvEndDate.setText(str);
                        }
                    }
                };
                DatePickerDialog dialog1 = new DatePickerDialog(QueryActivity.this, 0, listener1, year, month, day);
                dialog1.show();
                break;
        }

    }

    class FindOutPlanDataTask extends AsyncTask<List<QueryParam>, Void, String> {
        @Override
        protected void onPreExecute() {
        }

        @Override
        protected String doInBackground(List<QueryParam>... params) {
            Gson gson = new Gson();
            String data = gson.toJson(params[0]);

            Map<String, Object> map = new HashMap<>();
            map.put("userName", Gloab.getInstance().getUserName());
            map.put("orgCode", Gloab.getInstance().getOrgCode());
            map.put("param", data);
            String result = WebServiceHttpUtils.call(BaseApplication.nameSpace,
                    BaseApplication.serviceUrl, BaseApplication.QUERY_OUTPLAN_METHODNAME, true, map);
            return result;
        }

        @Override
        protected void onPostExecute(String result) {
            dismissLoading();
            Gson gson = new Gson();
            try {
                JSONObject root = new JSONObject(result);
                String rst = root.getString("rst");
                String msg = root.getString("msg");
                if (rst.equals("1")) {
                    Toast.makeText(QueryActivity.this, msg, Toast.LENGTH_LONG).show();
                } else {
                    JSONArray data = root.getJSONArray("data");
                    List<OutPlanItem> outPlanItems = gson.fromJson(data.toString(), new TypeToken<List<OutPlanItem>>() {
                    }.getType());

                    jumpToOutPlanActivity(outPlanItems);
                }
            } catch (JSONException e) {
                e.printStackTrace();
                Toast.makeText(QueryActivity.this, e.getMessage(), Toast.LENGTH_LONG).show();
            }
        }
    }

出货单明细接口实现

     @Override
            public boolean onItemLongClick(BaseQuickAdapter adapter, View view, int position) {
                //todo:1.调用web接口 2.封装结果到OutPlanLineItem集合中 3.调用showOutPlanDetail展示
                showLoading();
                OutPlanItem outPlanItem = (OutPlanItem) adapter.getItem(position);
                FindOutPlanLineItemTask findOutPlanLineItemTask = new FindOutPlanLineItemTask();
                findOutPlanLineItemTask.execute(outPlanItem.getId());
                return true;
            }
class FindOutPlanLineItemTask extends AsyncTask<Long, Void, String> {
        @Override
        protected void onPreExecute() {
        }

        @Override
        protected String doInBackground(Long... params) {
            Map<String, Object> map = new HashMap<>();
            map.put("userName", Gloab.getInstance().getUserName());
            map.put("orgCode", Gloab.getInstance().getOrgCode());
            map.put("id", params[0].toString());
            String result = WebServiceHttpUtils.call(BaseApplication.nameSpace,
                    BaseApplication.serviceUrl, BaseApplication.QUERY_OUTPLANITEM_METHODNAME, true, map);
            return result;
        }

        @Override
        protected void onPostExecute(String result) {
            dismissLoading();
            Gson gson = new Gson();
            try {
                JSONObject root = new JSONObject(result);
                String rst = root.getString("rst");
                String msg = root.getString("msg");
                if (rst.equals("xx")) {
                    Toast.makeText(OutPlanActivity.this, msg, Toast.LENGTH_LONG).show();
                } else {
                    JSONObject data = root.getJSONObject("data");
                    JSONObject outPlan = data.getJSONObject("outPlan");
                    JSONArray outPlanLines = data.getJSONArray("outPlanLines");
                    List<OutPlanLineItem> outPlanItems = gson.fromJson(outPlanLines.toString(), new TypeToken<List<OutPlanLineItem>>() {
                    }.getType());
                    OutPlanItem outPlanItem = gson.fromJson(outPlan.toString(), new TypeToken<OutPlanItem>() {
                    }.getType());
                    outPlanItem.setOutPlanLineItems(outPlanItems);
                    showOutPlanDetail(outPlanItem,recyclerView);
                }
            } catch (JSONException e) {
                e.printStackTrace();
                Toast.makeText(OutPlanActivity.this, e.getMessage(), Toast.LENGTH_LONG).show();
            }
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值