This commit is contained in:
2025-11-18 15:12:24 +08:00
parent c173c425ce
commit a7d2035e70
1361 changed files with 367452 additions and 0 deletions
@@ -0,0 +1,613 @@
package cn.shangyu.gdxzExpert.activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.drawable.ColorDrawable;
import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AbsListView.LayoutParams;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.GridView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.gyf.immersionbar.ImmersionBar;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.RequestParams;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import cn.shangyu.gdxzExpert.R;
import cn.shangyu.gdxzExpert.base.BaseActivity;
import cn.shangyu.gdxzExpert.http.HttpHelper;
import cn.shangyu.gdxzExpert.http.OnCallBackFromNet;
import cn.shangyu.gdxzExpert.ui.CustomProgressDialog;
import cn.shangyu.gdxzExpert.utils.Constant;
import cn.shangyu.gdxzExpert.utils.LogUtil;
import cn.shangyu.gdxzExpert.utils.SharePrefUtil;
import cn.shangyu.gdxzExpert.utils.StringUtil;
import cn.shangyu.gdxzExpert.utils.ToastUtil;
import cn.shangyu.gdxzExpert.utils.UIUtils;
import cn.shangyu.gdxzExpert.utils.Url;
import cn.shangyu.gdxzExpert.widget.LoadingPage.ResultState;
public class MyVisitsDressActivity extends BaseActivity implements
OnClickListener, OnCallBackFromNet {
private View view;
private GridView mGv_visit;
public final static int GET_CALENDAR_FROM_NET = 101;
private MyVisitsDressActivity mActivity;
private String startdate;
private TextView mVisitnote, mVisitTime;
private static String CalendarForever = Url.getupdataExpertCalendarForever;// 修改门诊日历(默认全部)接口
private static String CalendarTemporary = Url.getupdataExpertCalendarTemporary;// 修改门诊日历(当前一周)
CustomProgressDialog dialog;
private TextView mMon, mTue, mWed, mThu, mFri, mSat, mSun;
int[] intsId = { R.id.tv_vist_mon, R.id.tv_vist_tue, R.id.tv_vist_wed,
R.id.tv_vist_thu, R.id.tv_vist_fir, R.id.tv_vist_sat,
R.id.tv_vist_sun };
TextView[] listsTime = { mMon, mTue, mWed, mThu, mFri, mSat, mSun };
private String expertUuid;
private Button myleft;
private Button myright;
private LinearLayout lv_bt_dress;
@Override
public void setTitle() {
// TODO Auto-generated method stub
top_title.setText("出诊计划");
top_right_text.setVisibility(View.VISIBLE);
top_right_text.setText("提交");
top_right_text.setOnClickListener(this);
top_back_layout.setOnClickListener(this);
}
// getExpertCalendar
@Override
public View onCreateSuccessedView() {
// TODO Auto-generated method stub
ImmersionBar.with(this).keyboardEnable(true).statusBarDarkFont(true).titleBar(mToolbar).init();
expertUuid = SharePrefUtil.getString(ct, Constant.uuid, "");// 取出专家的uuid
view = View.inflate(getApplicationContext(),
R.layout.activity_visit_ex, null);
lv_bt_dress = (LinearLayout) view.findViewById(R.id.ly_bt_exit_dress);
lv_bt_dress.setOnClickListener(this);
mGv_visit = (GridView) view.findViewById(R.id.gv_visity_server);
mVisitnote = (TextView) view.findViewById(R.id.et_visit_note);
mVisitTime = (TextView) view.findViewById(R.id.tv_visiti_date);
myleft = (Button) view.findViewById(R.id.bt_visit_left);
myright = (Button) view.findViewById(R.id.bt_visit_right);
myleft.setOnClickListener(this);
myright.setOnClickListener(this);
for (int i = 0; i < listsTime.length; i++) {
listsTime[i] = (TextView) view.findViewById(intsId[i]);
}
mActivity = this;
putEmpty();
startdate = "";
dialog = new CustomProgressDialog(this, "请稍候");
getCalendarData(startdate);
return view;
}
@Override
public ResultState onLoad() {
// TODO Auto-generated method stub
return ResultState.STATE_SUCCESSED;
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (data == null) {
return;
}
if (requestCode == 33) {
if (data.getStringExtra("NoteDress").equals("")) {
mVisitnote.setText(note);
} else {
mVisitnote.setText(data.getStringExtra("NoteDress"));
}
}
};
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
}
};
private long firstTime = 0;
private String note;
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.top_back_layout:// 返回
finish();
break;
case R.id.ly_bt_exit_dress:// 启动出诊备注地址编辑界面
Intent intent = new Intent(MyVisitsDressActivity.this,
NoteDressEditActivity.class);
startActivityForResult(intent, 33);
break;
case R.id.bt_visit_left:// 上一周
// getCalendarData(formatDate(-7));
if (formatDate(-7).equals("0")) {
ToastUtil.showMessage("门诊时间已经失效");
} else {
getCalendarData(formatDate(-7));
}
break;
case R.id.bt_visit_right:// 下一周
getCalendarData(formatDate(+7));
break;
case R.id.top_right_text:// 提交
// AlertDialog对话框
// //定义列表中的选项
String dress = mVisitnote.getText().toString().trim();
if (TextUtils.isEmpty(dress)) {
ToastUtil.showMessage("请填写出诊地址");
} else {
final String[] items = new String[] { "适用于以后所有周", "仅适用于本周" };
// 设置列表选项
new AlertDialog.Builder(MyVisitsDressActivity.this)
.setTitle("请选择适用范围")
.setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
// TODO Auto-generated method stub
switch (which) {
case 0:
ExpertCalendarForever(CalendarForever);// 全部设置
break;
case 1:
ExpertCalendarTemporary(CalendarTemporary);// 只设置当前一周
break;
}
}
}).setNegativeButton("取消", null).show();
}
break;
default:
break;
}
}
/**
*
* @param calendarForever
* 全部按当前设置
*/
private void ExpertCalendarForever(String calendarForever) {
// TODO Auto-generated method stub
String dress = mVisitnote.getText().toString().trim();
RequestParams params = new RequestParams();
params.addBodyParameter("expert_uuid", expertUuid);
params.addBodyParameter("mon_am", String.valueOf(ints.get(0)));
params.addBodyParameter("mon_pm", String.valueOf(ints.get(1)));
params.addBodyParameter("tue_am", String.valueOf(ints.get(2)));
params.addBodyParameter("tue_pm", String.valueOf(ints.get(3)));
params.addBodyParameter("wed_am", String.valueOf(ints.get(4)));
params.addBodyParameter("wed_pm", String.valueOf(ints.get(5)));
params.addBodyParameter("thu_am", String.valueOf(ints.get(6)));
params.addBodyParameter("thu_pm", String.valueOf(ints.get(7)));
params.addBodyParameter("fri_am", String.valueOf(ints.get(8)));
params.addBodyParameter("fri_pm", String.valueOf(ints.get(9)));
params.addBodyParameter("sat_am", String.valueOf(ints.get(10)));
params.addBodyParameter("sat_pm", String.valueOf(ints.get(11)));
params.addBodyParameter("sun_am", String.valueOf(ints.get(12)));
params.addBodyParameter("sun_pm", String.valueOf(ints.get(13)));
params.addBodyParameter("startdate", startdate);// 起始时间(当前周的周日所对应的日期)
params.addBodyParameter("note", dress);
HttpHelper.loadData(HttpMethod.POST, calendarForever, params,
new RequestCallBack<String>() {
@Override
public void onSuccess(ResponseInfo<String> info) {
ToastUtil.showMessage("设置成功");
}
@Override
public void onFailure(HttpException arg0, String arg1) {
LogUtil.i("数据请求失败了: " + arg1);
dismissLoadingProgress();
ToastUtil.showMessage("网络请求失败,请稍候再试!");
}
});
}
/**
*
* @param calendarTemporary
* 只设置本周
*/
private void ExpertCalendarTemporary(String calendarTemporary) {
// TODO Auto-generated method stub
String dress = mVisitnote.getText().toString().trim();
RequestParams params = new RequestParams();
params.addBodyParameter("expert_uuid", expertUuid);
params.addBodyParameter("mon_am", String.valueOf(ints.get(0)));
params.addBodyParameter("mon_pm", String.valueOf(ints.get(1)));
params.addBodyParameter("tue_am", String.valueOf(ints.get(2)));
params.addBodyParameter("tue_pm", String.valueOf(ints.get(3)));
params.addBodyParameter("wed_am", String.valueOf(ints.get(4)));
params.addBodyParameter("wed_pm", String.valueOf(ints.get(5)));
params.addBodyParameter("thu_am", String.valueOf(ints.get(6)));
params.addBodyParameter("thu_pm", String.valueOf(ints.get(7)));
params.addBodyParameter("fri_am", String.valueOf(ints.get(8)));
params.addBodyParameter("fri_pm", String.valueOf(ints.get(9)));
params.addBodyParameter("sat_am", String.valueOf(ints.get(10)));
params.addBodyParameter("sat_pm", String.valueOf(ints.get(11)));
params.addBodyParameter("sun_am", String.valueOf(ints.get(12)));
params.addBodyParameter("sun_pm", String.valueOf(ints.get(13)));
params.addBodyParameter("note", dress);
params.addBodyParameter("startdate", startdate);// 起始时间(当前周的周日所对应的日期)
HttpHelper.loadData(HttpMethod.POST, calendarTemporary, params,
new RequestCallBack<String>() {
@Override
public void onSuccess(ResponseInfo<String> info) {
ToastUtil.showMessage("设置成功");
}
@Override
public void onFailure(HttpException arg0, String arg1) {
LogUtil.i("数据请求失败了: " + arg1);
dismissLoadingProgress();
ToastUtil.showMessage("网络请求失败,请稍候再试!");
}
});
}
public void getCalendarData(String startdate) {
if (!dialog.isShowing()) {
dialog.show();
}
Map<String, String> param = new HashMap<String, String>();
param.put("expert_uuid", expertUuid);
param.put("startdate", startdate);
sendParamtoNet(Url.getgetExpertCalendar, param, GET_CALENDAR_FROM_NET,
mActivity, false);
}
public void onCallbackFromThread(String resultJson) {
// TODO Auto-generated method stub
}
public void onCallBackFromThread(String resultJson, int resultCode) {
// TODO Auto-generated method stub
if (dialog != null) {
dialog.dismiss();
}
String code = null;
String message = null;
JSONObject jsonObject = null;
JSONArray jsonArray = null;
try {
jsonObject = new JSONObject(resultJson);
code = jsonObject.getString("code");
message = jsonObject.getString("message");
startdate = jsonObject.getString("startdate");
for (int i = 0; i < listsTime.length; i++) {
listsTime[i].setText(formatDateB(i));
}
mVisitTime.setText(formatDateA(0) + "-" + formatDateA(6));
} catch (JSONException e) {
e.printStackTrace();
}
if (code.equals(0)) {
ToastUtil.showMessage("您暂未设置出诊计划");
}
if (code.equals("1")) {
switch (resultCode) {
case GET_CALENDAR_FROM_NET:
try {
JSONObject object = jsonObject
.getJSONObject("expertCalendar");
if (ints != null) {
ints.clear();
} else {
ints = new ArrayList<String>();
}
ints.add(
0,
!object.getString("mon_am").equals("null") ? object
.getString("mon_am") : "0");
ints.add(
1,
!object.getString("mon_pm").equals("null") ? object
.getString("mon_pm") : "0");
ints.add(
2,
!object.getString("tue_am").equals("null") ? object
.getString("tue_am") : "0");
ints.add(
3,
!object.getString("tue_pm").equals("null") ? object
.getString("tue_pm") : "0");
ints.add(
4,
!object.getString("wed_am").equals("null") ? object
.getString("wed_am") : "0");
ints.add(
5,
!object.getString("wed_pm").equals("null") ? object
.getString("wed_pm") : "0");
ints.add(
6,
!object.getString("thu_am").equals("null") ? object
.getString("thu_am") : "0");
ints.add(
7,
!object.getString("thu_pm").equals("null") ? object
.getString("thu_pm") : "0");
ints.add(
8,
!object.getString("fri_am").equals("null") ? object
.getString("fri_am") : "0");
ints.add(
9,
!object.getString("fri_pm").equals("null") ? object
.getString("fri_pm") : "0");
ints.add(
10,
!object.getString("sat_am").equals("null") ? object
.getString("sat_am") : "0");
ints.add(
11,
!object.getString("sat_pm").equals("null") ? object
.getString("sat_pm") : "0");
ints.add(
12,
!object.getString("sun_am").equals("null") ? object
.getString("sun_am") : "0");
ints.add(
13,
!object.getString("sun_pm").equals("null") ? object
.getString("sun_pm") : "0");
note = object.getString("note");
if (note != null) {
mVisitnote.setText(note);
}
adapter.notifyDataSetChanged();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
default:
break;
}
} else {
if (code.equals(3)) {
ToastUtil.showMessage("请求失败");
}
}
}
VisitAdapter adapter;
public void putEmpty() {
adapter = new VisitAdapter();
ints = new ArrayList<String>();
for (int i = 0; i < 14; i++) {
ints.add("0");
}
mGv_visit.setAdapter(adapter);
}
List<String> ints;
class VisitAdapter extends BaseAdapter {
@Override
public int getCount() {
// TODO Auto-generated method stub
return 16;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return ints.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(final int position, View convertView,
ViewGroup parent) {
// TODO Auto-generated method stub
View view = UIUtils.inflate(R.layout.item_visit);
TextView mTv_time = (TextView) view.findViewById(R.id.tv_go_visit);
TextView mV_lift = (TextView) view
.findViewById(R.id.v_item_visit_lift);
TextView mV_bottom = (TextView) view
.findViewById(R.id.v_item_visit_bottom);
if (position == 0) {
mTv_time.setText("上午");
mTv_time.setTextColor(getResources().getColor(
R.color.text_color));
}
if (position == 1) {
mTv_time.setText("下午");
mTv_time.setTextColor(getResources().getColor(
R.color.text_color));
}
if (position % 2 == 0) {
mV_lift.setVisibility(View.GONE);
} else {
mV_lift.setVisibility(View.VISIBLE);
}
if (position > 13) {
view.setLayoutParams(new LayoutParams(
LayoutParams.MATCH_PARENT, dip2px(
MyVisitsDressActivity.this, 34)));
}
for (int i = 0; i < ints.size(); i++) {
if (position > 1) {
if (ints.get(position - 2).equals("1")) {
mTv_time.setBackgroundResource(R.color.commonBackground);
mTv_time.setText("出诊");
// view.setBackgroundResource(R.color.tittle_bg);
} else {
mTv_time.setText("");
}
}
}
mTv_time.setTag(position);
if (position > 1) {
mTv_time.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (position == 0 || position == 1) {
return;
}
ColorDrawable colorDrawable = (ColorDrawable) v
.getBackground();// 获取背景颜色
if (getResources().getColor(R.color.commonBackground) == colorDrawable
.getColor()) {
v.setBackgroundResource(R.color.white);
((TextView) v).setText("");
ints.set(position - 2, "0");
} else {
v.setBackgroundResource(R.color.commonBackground);
((TextView) v).setText("出诊");
ints.set(position - 2, "1");
}
}
});
}
return view;
}
}
public static int dip2px(Context context, double d) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (d * scale + 0.5f);
}
private int addTime = 0;
public String formatDate(int addTime) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
if (StringUtil.isEmpty(startdate)) {
return "";
}
Date date = sdf.parse(startdate);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, addTime);
if ((calendar.getTimeInMillis() - System.currentTimeMillis()) < -1000
* 60 * 60 * 24 * 7) {
return "0";
}
date = calendar.getTime();
return sdf.format(date);
// 加1之后的日期Top
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public String formatDateA(int addTime) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat newsdf = new SimpleDateFormat("MM月dd日");
try {
if (StringUtil.isEmpty(startdate)) {
return "";
}
Date date = sdf.parse(startdate);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, addTime);
date = calendar.getTime();
return newsdf.format(date);
// 加1之后的日期Top
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public String formatDateB(int addTime) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat newsdf = new SimpleDateFormat("MM-dd");
try {
if (StringUtil.isEmpty(startdate)) {
return "";
}
Date date = sdf.parse(startdate);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, addTime);
date = calendar.getTime();
return newsdf.format(date);
// 加1之后的日期Top
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void processClick(View v) {
// TODO Auto-generated method stub
}
}