package com.jiuqi.njt.management;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewTreeObserver;
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.GridView;
import android.widget.HorizontalScrollView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.ListView;
import android.widget.RadioGroup;
import android.widget.RelativeLayout;
import android.widget.TableLayout;
import android.widget.TextView;
import com.jiuqi.mobile.nigo.comeclose.bean.app.file.RepairsFileBean;
import com.jiuqi.mobile.nigo.comeclose.bean.app.file.ServiceFileBean;
import com.jiuqi.mobile.nigo.comeclose.bean.app.gps.UserPositionBean;
import com.jiuqi.mobile.nigo.comeclose.bean.base.UserBean;
import com.jiuqi.mobile.nigo.comeclose.manager.file.IServiceFilesManager;
import com.jiuqi.mobile.nigo.comeclose.ws.client.ClientContext;
import com.jiuqi.njt.R;
import com.jiuqi.njt.adapter.GridViewAdapter;
import com.jiuqi.njt.adapter.PartsAdapter;
import com.jiuqi.njt.data.MyApp;
import com.jiuqi.njt.data.OptsharepreInterface;
import com.jiuqi.njt.model.ModuleType;
import com.jiuqi.njt.ui.PoiLocateActivity;
import com.jiuqi.njt.util.BitmapHelper;
import com.jiuqi.njt.util.Constants;
import com.jiuqi.njt.util.RepairUtils;
import com.jiuqi.njt.util.UIUtil;
/**
* @author Administrator 报修管理和维修管理(报修档案和维修档案)详情展示页
*/
@SuppressWarnings("unused")
public class RepairDetailsActivity extends Activity implements OnClickListener {
private LinearLayout PhotoLayout;
private double longitude;
private double latitude;
private Button btngzzp;
private HorizontalScrollView hScrollView;
private GridViewAdapter gridViewAdapter = null;
private List<Bitmap> bitmaps = new ArrayList<Bitmap>();
private GridView gridView;
private Button btnbsdx;
private EditText btnsccj;
private EditText btncppp;
private EditText btncpmc;
private EditText btncplx;
private EditText btncpxh;
private Button btnbxrq;
private Button btnccrq;
private Button btngmrq;
private Button btndtbj;
private Button btndtbjdetail;
private Button btn_wxrmc;
private Button btn_wxnr;
private Button btn_wxrsj;
private Button btn_wcrq;
private Button btn_wxrq;
private Button btn_partsMonery;
private Button btn_repairMonery;
private Button btn_tripsMonery;
private Button btn_totalMonery;
private TableLayout tabOne, tabTwo, tabThree;
private RelativeLayout listPartsRe;
private EditText btnbxkh;
private EditText btnbxsj;
private EditText btnbxdh;
private EditText btnbxdz;
private EditText btngzms;
private TextView tvbzqqr;
private RadioGroup tabs_rg;
private Button btnSubmit;
private MyApp application;
private OptsharepreInterface sharePre;
protected Calendar calendar = Calendar.getInstance();
private String guid;
private UserPositionBean userPositionBean;
private ModuleType moduleType;
private RepairsFileBean reBean = null;
private String guidStr = null;
private String type = null;
private ServiceFileBean serviceFileBean = null;
private LinearLayout tabLayout;
private LinearLayout showLayout;
private int height = 0;
private int width = 0;
private ListView listView;
private PartsAdapter adapter;
private SimpleDateFormat sdf;
private Button btnBack, btnAction;
private TextView tvTitle;
private Dialog pd = null;
private int actionNum = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
doinit();
}
private void doinit() {
initParam();
initWidgets();
initTitleBar();
initUI();
}
/**
* 初始化各种参数
*/
@SuppressLint({ "NewApi", "SimpleDateFormat" })
private void initParam() {
application = (MyApp) getApplication();
sharePre = new OptsharepreInterface(getApplicationContext());
sdf = new SimpleDateFormat("yyyy-MM-dd ");
longitude = application.getLon();
latitude = application.getLat();
userPositionBean = (UserPositionBean) getIntent().getSerializableExtra(
"UserPositionBean");
moduleType = (ModuleType) getIntent()
.getSerializableExtra("moduleType");
if (moduleType.equals(ModuleType.bxgl)) {
if (null != (RepairsFileBean) getIntent().getSerializableExtra(
"DetailsShow")) {
reBean = (RepairsFileBean) getIntent().getSerializableExtra(
"DetailsShow");
}
} else if (moduleType.equals(ModuleType.wxgl)) {
if (null != getIntent().getStringExtra("guid")) {
guidStr = getIntent().getStringExtra("guid");
type = getIntent().getStringExtra("type");
}
}
}
/**
* 初始化标题栏
*/
private void initTitleBar() {
tvTitle.setText("档案详情");
btnBack.setOnClickListener(this);
btnAction.setOnClickListener(this);
}
/**
* 初始化控件
*/
private void initWidgets() {
setContentView(R.layout.file_repair_fragment);
findViewById(R.id.titleBarStub).setVisibility(View.GONE);
findViewById(R.id.includetitle).setVisibility(View.VISIBLE);
PhotoLayout = (LinearLayout) findViewById(R.id.PhotoDisplayLayout);
btnBack = (Button) findViewById(R.id.btnba);
btnAction = (Button) findViewById(R.id.btnacti);
tvTitle = (TextView) findViewById(R.id.tvtit);
btnbsdx = (Button) findViewById(R.id.btn_bsdx);
btnsccj = (EditText) findViewById(R.id.btnsccj);
btncppp = (EditText) findViewById(R.id.btncppp);
btncpmc = (EditText) findViewById(R.id.btncpmc);
btncplx = (EditText) findViewById(R.id.btncplx);
btncpxh = (EditText) findViewById(R.id.btncpxh);
btnbxrq = (Button) findViewById(R.id.btnbxrq);
btnccrq = (Button) findViewById(R.id.btnccrq);
btngmrq = (Button) findViewById(R.id.btngmrq);
btndtbj = (Button) findViewById(R.id.btndtbj);
btndtbjdetail = (Button) findViewById(R.id.btndtbjde);
btngzzp = (Button) findViewById(R.id.btngzzp);
btnSubmit = (Button) findViewById(R.id.btnSubmit);
btnbxkh = (EditText) findViewById(R.id.btnbxkh);
btnbxsj = (EditText) findViewById(R.id.btnbxsj);
btnbxdh = (EditText) findViewById(R.id.btnbxdh);
btnbxdz = (EditText) findViewById(R.id.btnbxdz);
btngzms = (EditText) findViewById(R.id.btngzms);
tabs_rg = (RadioGroup) findViewById(R.id.tabs_rg);
// tab_rb_a = (RadioButton) findViewById(R.id.tab_rb_a);
// tab_rb_b = (RadioButton) findViewById(R.id.tab_rb_b);
// tab_rb_c = (RadioButton) findViewById(R.id.tab_rb_c);
tvbzqqr = (TextView) findViewById(R.id.tvbzqqr);
// 展示
hScrollView = (HorizontalScrollView) findViewById(R.id.hscrollview);
gridView = (GridView) findViewById(R.id.grid_view);
btn_wxrmc = (Button) findViewById(R.id.btn_wxrmc);
btn_wxrsj = (Button) findViewById(R.id.btn_wxrsj);
btn_wxnr = (Button) findViewById(R.id.btn_wxnr);
btn_wcrq = (Button) findViewById(R.id.btn_wcrq);
btn_wxrq = (Button) findViewById(R.id.btn_wxrq);
btn_partsMonery = (Button) findViewById(R.id.btn_partsMonery);
btn_repairMonery = (Button) findViewById(R.id.btn_repairMonery);
btn_tripsMonery = (Button) findViewById(R.id.btn_tripsMonery);
btn_totalMonery = (Button) findViewById(R.id.btn_totalMonery);
tabOne = (TableLayout) findViewById(R.id.tabOne);
tabTwo = (TableLayout) findViewById(R.id.tabTwo);
tabThree = (TableLayout) findViewById(R.id.tabThree);
listPartsRe = (RelativeLayout) findViewById(R.id.listPartsRe);
listView = (ListView) findViewById(R.id.partslist);
tabLayout = (LinearLayout) findViewById(R.id.tabLay);
showLayout = (LinearLayout) findViewById(R.id.showLayout);
setLinearParams();
}
/**
* 详情展示
*/
@SuppressLint("NewApi")
private void initUI() {
EditText[] editTextArray = { btnsccj, btncppp, btncpmc, btncplx,
btncpxh, btnbxkh, btnbxsj, btnbxdh, btnbxdz, btngzms };
btnSubmit.setVisibility(View.GONE);
for (int i = 0; i < editTextArray.length; i++) {
editTextArray[i].setEnabled(false);
}
pd = RepairUtils.myShowDialog(RepairDetailsActivity.this, 5);
pd.show();
if (moduleType.equals(ModuleType.bxgl)) {
new Thread(runna).start();// 直接获取图片
showLayout.setVisibility(View.GONE);
} else// 维修管理
{
new Thread(runnable).start();
}
}
public boolean validate() {
TextView[] widgets = { btnbsdx };
return RepairUtils.doValidateTextViewsHaveMessage(
RepairDetailsActivity.this, widgets);
}
public interface TaskFinished {
void whenTaskFinish();
}
/**
* 获取维修管理列表详情
*/
Runnable runnable = new Runnable() {
@Override
public void run() {
try {
// 报修档案(type=1),维修档案(type=2)
Map<String, String> map = new HashMap<String, String>();
map.put("type", type);
map.put("guid", guidStr);
serviceFileBean = new ServiceFileBean();
ClientContext context = application.getClientContext();
IServiceFilesManager manager = context
.getManager(IServiceFilesManager.class);
serviceFileBean = manager.getDetail(map);
} catch (Exception e) {
}
handler.sendEmptyMessage(0);
}
};
@SuppressLint("HandlerLeak")
private Handler handler = new Handler() {
@SuppressLint("NewApi")
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case 0:
reBean = new RepairsFileBean();
reBean = serviceFileBean.getSentEmployeeBean()
.getRepairsFileBean();
if (null == serviceFileBean.getSentEmployeeBean()
.getRepairsFileBean()) {
UIUtil.showMsg(RepairDetailsActivity.this, "详情获取异常");
} else {
new Thread(runna).start();
if (serviceFileBean.getSentEmployeeBean()
.getRepairsFileBean().getDealState().equals("1")) {
tabOne.setVisibility(View.VISIBLE);
btn_wxrmc.setText(serviceFileBean.getSentEmployeeBean()
.getRepairManName());
btn_wxrsj.setText(serviceFileBean.getSentEmployeeBean()
.getRepairManMobile());
} else {
if (sharePre.getPres("guid").equals(
serviceFileBean.getSentEmployeeBean()
.getRepairsFileBean().getRepairGuid())) {
btnAction.setVisibility(View.VISIBLE);
actionNum = 1;
btnAction.setText("派工");
}
}
if (null != serviceFileBean.getGuid()) {
// 维修数据
btnAction.setVisibility(View.GONE);
tabThree.setVisibility(View.VISIBLE);
listPartsRe.setVisibility(View.VISIBLE);
btn_wxnr.setText(null == serviceFileBean
.getServiceDetail() ? "" : serviceFileBean
.getServiceDetail());// 维修内容
btn_wcrq.setText(sdf.format(serviceFileBean
.getFinishDate()));// 完成日期
btn_wxrq.setText(sdf.format(serviceFileBean
.getServiceDate()));// 维修日期
btn_partsMonery.setText(serviceFileBean
.getPartsCharge() + "");// 零件费(元):
btn_repairMonery.setText(serviceFileBean
.getServiceCost() + "");// 维修费(元):
btn_tripsMonery.setText(serviceFileBean
.getTravelCharge() + "");// 差旅费(元):
btn_totalMonery.setText(serviceFileBean
.getTotalCharge() + "");// 总金额(元):
if (null != serviceFileBean.getServicePartBeans()) {
tabTwo.setVisibility(View.VISIBLE);
listPartsRe.setVisibility(View.VISIBLE);
tabThree.setVisibility(View.VISIBLE);
if (serviceFileBean.getServicePartBeans().size() != 0) {
adapter = new PartsAdapter(
RepairDetailsActivity.this,
serviceFileBean.getServicePartBeans());
listView.setAdapter(adapter);
LinearLayout.LayoutParams lp5 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
serviceFileBean.getServicePartBeans()
.size() * height - 1);
listPartsRe.setLayoutParams(lp5);
} else {
tabOne.setVisibility(View.GONE);
findViewById(R.id.pgXX)
.setVisibility(View.GONE);
findViewById(R.id.pgCon).setVisibility(
View.GONE);
LinearLayout.LayoutParams lp5 = new LinearLayout.LayoutParams(
0, 0);
listPartsRe.setLayoutParams(lp5);
}
}
} else {
if (type.equals("2")) {
btnAction.setVisibility(View.VISIBLE);
actionNum = 2;
btnAction.setText("维修单");
}
}
}
break;
case 1:
setBxData();
if (bitmaps == null || bitmaps.size() == 0) {
PhotoLayout.setVisibility(View.VISIBLE);
hScrollView.setVisibility(View.GONE);
btngzzp.setBackgroundResource(R.drawable.photodetail);
} else {
Bitmap bm = null;
bm = BitmapFactory.decodeStream(getResources()
.openRawResource(R.drawable.add_photo));
LayoutParams params = new LayoutParams((bitmaps.size() + 1)
* (bm.getWidth() * 2) + 20, bm.getHeight() * 2);
gridView.setLayoutParams(params);
gridView.setColumnWidth(bm.getWidth() * 2);
gridView.setHorizontalSpacing(5);
gridView.setStretchMode(GridView.NO_STRETCH);
gridView.setNumColumns(bitmaps.size());
if (null != bm) {
RepairUtils.destoryBimap(bm);
}
gridViewAdapter = new GridViewAdapter(
RepairDetailsActivity.this, bitmaps, bm.getWidth(),
bm.getHeight());
gridView.setAdapter(gridViewAdapter);
}
if (null != pd) {
RepairUtils.myRemoveDialog(pd);
}
break;
default:
break;
}
};
};
private void setLinearParams() {
ViewTreeObserver vto2 = tabLayout.getViewTreeObserver();
vto2.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
tabLayout.getViewTreeObserver().removeGlobalOnLayoutListener(
this);
height = tabLayout.getHeight();
width = tabLayout.getWidth();
}
});
}
private Runnable runna = new Runnable() {
@Override
public void run() {
String pathStr = null;
if (null != reBean.getTroubleImageBeans()
&& reBean.getTroubleImageBeans().length != 0) {
for (int i = 0; i < reBean.getTroubleImageBeans().length; i++) {
Bitmap bitmap = null;
if (null != reBean.getTroubleImageBeans()[i].getImagePath()) {
try {
pathStr = Constants.SERVER_URL
+ reBean.getTroubleImageBeans()[i]
.getImagePath();
} catch (Exception e) {
e.printStackTrace();
}
bitmap = BitmapHelper.getBitmap(pathStr);
}
if (null != bitmap) {
bitmaps.add(bitmap);
}
}
}
Message msg = Message.obtain();
msg.what = 1;
handler.sendMessage(msg);
}
};
// 报修数据
private void setBxData() {
PhotoLayout.setVisibility(View.GONE);
hScrollView.setVisibility(View.VISIBLE);
tabs_rg.setVisibility(View.GONE);
tvbzqqr.setVisibility(View.VISIBLE);
UserBean userBean = reBean.getRepairServiceBean();
if (null != userBean) {
btnbsdx.setText(null==userBean.getUserName()?"":userBean.getUserName());// 报送对象
}
btnbxkh.setText(reBean.getRepairManName());// 报修客户
btnbxsj.setText(reBean.getRepairManMobile());
btnbxdh.setText(reBean.getRepairManPhone());// 报修电话
btnsccj.setText(reBean.getFactoryName());// 生产厂家
btncpmc.setText(reBean.getProductName());// 产品名称
btncppp.setText(reBean.getModelName());// 产品品牌
btncplx.setText(reBean.getModelName());
btnbxrq.setText(sdf.format(reBean.getRepairsDate()));// 报修日期
btnccrq.setText(sdf.format(reBean.getMadeDate()));// 出厂日期
btngmrq.setText(sdf.format(reBean.getBuyDate()));// 购买日期
btnbxdz.setText(reBean.getRepairsAddress());// 报修地址
btngzms.setText(reBean.getTroubleDetail());// 故障描述
switch (reBean.getRepairType()) {
case 1:
tvbzqqr.setText("保修期内(免费维修)");
break;
case 2:
tvbzqqr.setText("保修期外");
break;
case 3:
tvbzqqr.setText("非保修项目(收费)");
break;
default:
break;
}
btndtbj.setVisibility(View.GONE);
btndtbjdetail.setVisibility(View.VISIBLE);
btndtbjdetail.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(RepairDetailsActivity.this,PoiLocateActivity.class);
startActivityForResult(intent,Constants.REQUEST_MAP_LOCATE_CODE);
}
});
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.btnba:
RepairDetailsActivity.this.finish();
break;
case R.id.btnacti:
Intent in = new Intent();
switch (actionNum) {
case 1:
// 跳到派工界面
in.setClass(RepairDetailsActivity.this, RepairActivity.class);
in.putExtra("guidBx", guid);
in.putExtra("serviceFileBean", serviceFileBean);
startActivity(in);
break;
case 2:
// 跳到维修单界面
in.setClass(RepairDetailsActivity.this,
RepairOfSingleActivity.class);
in.putExtra("pg", serviceFileBean.getSentEmployeeBean());
startActivity(in);
break;
default:
break;
}
break;
default:
break;
}
}
}