添加起始日期控件以及相关逻辑
//获取当前日期
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();
}
}
}