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; } } }