Browse Source

Merge branch 'developer' of https://gitlab.com/Arisono/SkWeiChat-Baidu into developer

RaoMeng 10 years ago
parent
commit
7ff8afa40d
38 changed files with 792 additions and 215 deletions
  1. 5 5
      WeiChat/src/main/AndroidManifest.xml
  2. 11 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/MeetUserEntity.java
  3. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/BusinessActivity.java
  4. 55 9
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/ClientActivity.java
  5. 5 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/CustomerAddActivity.java
  6. 1 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/CustomerListActivity.java
  7. 22 34
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/TaskAddActivity.java
  8. 14 14
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/VisitReportAddActivity.java
  9. 12 12
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/VisitReportPlanActivity.java
  10. 3 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AddMeetTaskActivity.java
  11. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AddMeetingActivity.java
  12. 1 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AlarmaActivity.java
  13. 45 26
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MeetDetailsActivity.java
  14. 4 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MeetingActivity.java
  15. 7 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OAActivity.java
  16. 12 7
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/SaveMeetActivity.java
  17. 30 35
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/UserSelectActivity.java
  18. 5 12
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SigninClickFragment.java
  19. 24 7
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java
  20. 7 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/view/FunnelView.java
  21. 471 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/view/wheel/DateTimePicker.java
  22. BIN
      WeiChat/src/main/res/drawable-xhdpi/ic_meeting_address.png
  23. BIN
      WeiChat/src/main/res/drawable-xhdpi/ic_meeting_time.png
  24. BIN
      WeiChat/src/main/res/drawable-xhdpi/ic_metting_label.png
  25. BIN
      WeiChat/src/main/res/drawable-xhdpi/ic_metting_people.png
  26. BIN
      WeiChat/src/main/res/drawable-xxhdpi/ic_meeting_address.png
  27. BIN
      WeiChat/src/main/res/drawable-xxhdpi/ic_meeting_time.png
  28. BIN
      WeiChat/src/main/res/drawable-xxhdpi/ic_metting_label.png
  29. BIN
      WeiChat/src/main/res/drawable-xxhdpi/ic_metting_people.png
  30. 1 1
      WeiChat/src/main/res/layout/activity_client.xml
  31. 2 0
      WeiChat/src/main/res/layout/activity_meet_details.xml
  32. 3 5
      WeiChat/src/main/res/layout/activity_outoffice.xml
  33. 2 2
      WeiChat/src/main/res/layout/activity_task_add.xml
  34. 2 4
      WeiChat/src/main/res/layout/fragment_outoffice.xml
  35. 10 5
      WeiChat/src/main/res/layout/fragment_signin.xml
  36. 1 1
      WeiChat/src/main/res/layout/item_signin_list.xml
  37. 11 8
      WeiChat/src/main/res/layout/meet_select_item.xml
  38. 24 15
      WeiChat/src/main/res/layout/oa_meeting_item.xml

+ 5 - 5
WeiChat/src/main/AndroidManifest.xml

@@ -2,12 +2,12 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     package="com.xzjmyk.pm.activity"
-    android:versionCode="48"
-    android:versionName="4.8">
+    android:versionCode="49"
+    android:versionName="4.9">
 
     <uses-sdk
         android:minSdkVersion="11"
-        android:targetSdkVersion="22" />
+        android:targetSdkVersion="23" />
 
     <!-- 拨打电话 -->
     <uses-permission android:name="android.permission.CALL_PHONE" />
@@ -431,10 +431,10 @@
             android:label="外勤签到" />
         <activity
             android:name=".ui.erp.activity.oa.MeetDetailsActivity"
-            android:label="会议签到" />
+            android:label="会议详情" />
         <activity
             android:name=".ui.erp.activity.oa.OARegisterActivity"
-            android:label="查看签到情况" />
+            android:label="会议签到" />
         <activity
             android:name=".ui.erp.activity.crm.CustomerAddActivity"
             android:configChanges="orientation|keyboardHidden"

+ 11 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/MeetUserEntity.java

@@ -10,12 +10,21 @@ public class MeetUserEntity implements Parcelable {
     private String imId;
     private String name;
     private String emCode;
+    private String company;
     private int emId;
     private boolean isClick = false;
 
     public MeetUserEntity() {
     }
 
+    public String getCompany() {
+        return company;
+    }
+
+    public void setCompany(String company) {
+        this.company = company;
+    }
+
     public String getImId() {
         return imId;
     }
@@ -60,6 +69,7 @@ public class MeetUserEntity implements Parcelable {
         imId = in.readString();
         name = in.readString();
         emCode = in.readString();
+        company = in.readString();
         emId = in.readInt();
         isClick = in.readByte() != 0;
     }
@@ -86,6 +96,7 @@ public class MeetUserEntity implements Parcelable {
         parcel.writeString(imId);
         parcel.writeString(name);
         parcel.writeString(emCode);
+        parcel.writeString(company);
         parcel.writeInt(emId);
         parcel.writeByte((byte) (isClick ? 1 : 0));
     }

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/BusinessActivity.java

@@ -347,7 +347,7 @@ public class BusinessActivity extends BaseActivity implements View.OnClickListen
         if (position != 0){
 //            HListViewOneAdapter.ViewHolder holder= (HListViewOneAdapter.ViewHolder) view.getTag();
             ArrayList<String> items=   gridlists.get(position);
-            startActivity(new Intent(ct, BusinessDetailActivty.class).putExtra("bt_type",3).putExtra("steps",items.get(2)));
+            startActivity(new Intent(ct, BusinessDetailActivty.class).putExtra("bt_type",3).putExtra("steps",items.get(1)));
            // Crouton.makeText(this,"item "+items.get(2)+" is clicked",0xff99cc00,1000).show();
         }
     }

+ 55 - 9
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/ClientActivity.java

@@ -38,6 +38,7 @@ import com.github.mikephil.charting.listener.OnChartValueSelectedListener;
 import com.github.mikephil.charting.utils.ColorTemplate;
 import com.github.mikephil.charting.utils.Highlight;
 import com.github.mikephil.charting.utils.LargeValueFormatter;
+import com.github.mikephil.charting.utils.ValueFormatter;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.R;
@@ -52,6 +53,7 @@ import com.xzjmyk.pm.activity.util.DisplayUtil;
 import com.xzjmyk.pm.activity.util.ToastUtil;
 import com.xzjmyk.pm.activity.view.wheel.DatePicker;
 
+import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
@@ -227,9 +229,9 @@ public class ClientActivity extends BaseActivity implements View.OnClickListener
         xAxis.setAxisLineColor(getResources().getColor(R.color.red));
         xAxis.setSpaceBetweenLabels(8);
         xAxis.setAxisLineWidth(0f);
-
         xAxis.setDrawGridLines(false);
         mChart.getAxisLeft().setDrawGridLines(false);
+     
         mChart.animateY(2500);
         tf = Typeface.createFromAsset(getAssets(),
                 "OpenSans-Regular.ttf");
@@ -237,14 +239,14 @@ public class ClientActivity extends BaseActivity implements View.OnClickListener
         l.setPosition(Legend.LegendPosition.BELOW_CHART_LEFT);
         l.setTypeface(tf);
 
-        XAxis xl = mChart.getXAxis();
-        xl.setTypeface(tf);
 
         YAxis leftAxis = mChart.getAxisLeft();
         leftAxis.setTypeface(tf);
         leftAxis.setValueFormatter(new LargeValueFormatter());
         leftAxis.setDrawGridLines(false);
         leftAxis.setSpaceTop(25f);
+        leftAxis.setAxisMinValue(0f);
+        leftAxis.setAxisMaxValue(100f);
         leftAxis.setAxisLineColor(getResources().getColor(R.color.red));
         mChart.getAxisRight().setEnabled(false);
         mChart.getAxisLeft().setEnabled(true);
@@ -260,21 +262,20 @@ public class ClientActivity extends BaseActivity implements View.OnClickListener
 
             }
         });
+        
         ArrayList<BarEntry> yVals1 = new ArrayList<BarEntry>();
         ArrayList<String> xVals = new ArrayList<String>();
-
         BarDataSet set1 = new BarDataSet(yVals1, "日销售额");
         set1.setColor(Color.rgb(164, 228, 251));
         dataSets1 = new ArrayList<BarDataSet>();
         dataSets1.add(set1);
         data = new BarData(xVals, dataSets1);
-        mChart.setNoDataText(" ");
         mChart.setData(data);
         mChart.setNoDataText("暂时没有数据");
         mChart.invalidate();
-        
     }
-    
+
+  
     private void initSaleBarChart(){
         mv = new MyMarkerView(this, R.layout.custom_marker_view);
         sChart.setMarkerView(mv);
@@ -288,6 +289,7 @@ public class ClientActivity extends BaseActivity implements View.OnClickListener
         xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
         // xAxis.setSpaceBetweenLabels(30);
         xAxis.setLabelsToSkip(0);
+        
         xAxis.setAxisLineColor(getResources().getColor(R.color.red));
         xAxis.setSpaceBetweenLabels(8);
         xAxis.setAxisLineWidth(0f);
@@ -309,6 +311,8 @@ public class ClientActivity extends BaseActivity implements View.OnClickListener
         leftAxis.setValueFormatter(new LargeValueFormatter());
         leftAxis.setDrawGridLines(false);
         leftAxis.setSpaceTop(25f);
+        leftAxis.setAxisMinValue(0f);
+        leftAxis.setAxisMaxValue(100f);
         leftAxis.setAxisLineColor(getResources().getColor(R.color.red));
         sChart.getAxisRight().setEnabled(false);
         sChart.getAxisLeft().setEnabled(true);
@@ -388,6 +392,28 @@ public class ClientActivity extends BaseActivity implements View.OnClickListener
         set1.setColors(ColorTemplate.JOYFUL_COLORS);
         //set1.setVisible(false);
         //set1.setDrawValues(false);
+        set1.setValueFormatter(new ValueFormatter() {
+            private DecimalFormat mFormat;
+            public void DefaultValueFormatter(int digits) {
+
+                StringBuffer b = new StringBuffer();
+                for (int i = 0; i < digits; i++) {
+                    if (i == 0)
+                        b.append(".");
+                    b.append("0");
+                }
+
+                mFormat = new DecimalFormat("###,###,###,##0" + b.toString());
+            }
+            @Override
+            public String getFormattedValue(float value) {
+                if (value==0){
+                    return "0";
+                }else {
+                    return mFormat.format(value);
+                }
+            }
+        });
         dataSets.clear();
         dataSets.add(set1);
 
@@ -395,10 +421,8 @@ public class ClientActivity extends BaseActivity implements View.OnClickListener
         mChart.setData(data);
         /**@注释:清空任何缩放  */
         mChart.zoom(0, 0, 0, 0);
-    
         mChart.zoom(ydata.length/4.2f,0,0,0);
         mChart.invalidate();
-        
     }
 
 
@@ -422,6 +446,28 @@ public class ClientActivity extends BaseActivity implements View.OnClickListener
         set1.setColors(ColorTemplate.JOYFUL_COLORS);
         //set1.setVisible(false);
         //set1.setDrawValues(false);
+        set1.setValueFormatter(new ValueFormatter() {
+            private DecimalFormat mFormat;
+            public void DefaultValueFormatter(int digits) {
+
+                StringBuffer b = new StringBuffer();
+                for (int i = 0; i < digits; i++) {
+                    if (i == 0)
+                        b.append(".");
+                    b.append("0");
+                }
+
+                mFormat = new DecimalFormat("###,###,###,##0" + b.toString());
+            }
+            @Override
+            public String getFormattedValue(float value) {
+                if (value==0){
+                    return "0";
+                }else {
+                    return mFormat.format(value);
+                }
+            }
+        });
         dataSets1.clear();
         dataSets1.add(set1);
 

+ 5 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/CustomerAddActivity.java

@@ -82,6 +82,7 @@ public class CustomerAddActivity extends BaseActivity implements View.OnClickLis
     PopupMenu popup = null;
 
     private List<String> mLists = new ArrayList<String>();
+    private String et_cu_sellercode;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -172,6 +173,9 @@ public class CustomerAddActivity extends BaseActivity implements View.OnClickLis
                         " \"cu_add1\":\"" + tv_cu_address.getText().toString() + "\",\n" +
                         " \"cu_kind\":\"" + et_cu_kind.getText().toString() + "\",\n" +
                         " \"cu_district\":\"" + et_cu_district.getText().toString() + "\",\n" +
+                        " \"cu_auditstatus\":\"" +"在录入" + "\",\n" +
+                        " \"cu_auditstatuscode\":\"" + "ENTERING" + "\",\n" +
+                        " \"cu_sellercode\":\"" + et_cu_sellercode+ "\",\n" +
                         " \"cu_payments\":\"" +URLEncoder.encode(et_cu_payments.getText().toString()) + "\",\n" +
                         " \"cu_sellername\":\"" + et_cu_sellername.getText().toString() + "\",\n" +
                         " \"cu_contact\":\"" + tv_cu_contact.getText().toString() + "\",\n" +
@@ -476,6 +480,7 @@ public class CustomerAddActivity extends BaseActivity implements View.OnClickLis
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (requestCode == REQUEST_CLERK && resultCode == 2 && data != null){
             et_cu_sellername.setText(data.getStringExtra("en_name"));
+            et_cu_sellercode=data.getStringExtra("en_code");
         }
         super.onActivityResult(requestCode, resultCode, data);
     }

+ 1 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/CustomerListActivity.java

@@ -153,6 +153,7 @@ public class CustomerListActivity extends BaseActivity implements View.OnClickLi
             for (EmployeesEntity model:db) {
                 Log.i(TAG, "initData:" + model.getEM_DEPART());
                 Log.i(TAG, "initData:" + model.getEM_POSITION());
+                Log.i(TAG, "initData:" + model.getCOMPANY());
             }
             tv_position.setText(db.get(0).getEM_POSITION());
             tv_department.setText(db.get(0).getEM_DEFAULTORNAME()+"—>");

+ 22 - 34
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/TaskAddActivity.java

@@ -10,7 +10,6 @@ import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
 import android.widget.EditText;
-import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
 import com.andreabaccega.widget.FormEditText;
@@ -27,10 +26,8 @@ import com.xzjmyk.pm.activity.ui.erp.util.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.view.DateTimePickerDialog;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.util.ToastUtil;
-import com.xzjmyk.pm.activity.view.wheel.DatePicker;
 import com.xzjmyk.pm.activity.view.wheel.OptionPicker;
 
-import java.util.Calendar;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
@@ -88,7 +85,7 @@ public class TaskAddActivity extends BaseActivity implements View.OnClickListene
         tv_priority.setOnClickListener(this);
         tv_date.setOnClickListener(this);
         tv_date_start.setOnClickListener(this);
-        findViewById(R.id.sex_erp_rl).setOnClickListener(this);
+        findViewById(R.id.tv_executive).setOnClickListener(this);
         tv_date.setKeyListener(null);
         tv_date.setFocusable(false);
         tv_date_start.setKeyListener(null);
@@ -128,12 +125,27 @@ public class TaskAddActivity extends BaseActivity implements View.OnClickListene
         return true;
     }
 
-    public void showDialog(final TextView tv) {
-        DateTimePickerDialog dialog = new DateTimePickerDialog(this, System.currentTimeMillis());
+    public void showDialog(final FormEditText tv, final boolean b) {
+        final DateTimePickerDialog dialog = new DateTimePickerDialog(this, System.currentTimeMillis());
         dialog.setOnDateTimeSetListener(new DateTimePickerDialog.OnDateTimeSetListener() {
             public void OnDateTimeSet(AlertDialog dia, long date) {
                 String str = TimeUtils.f_long_2_str(date);
-                tv.setText(str);
+                String start = null;
+                if (!b) {
+                    start = tv_date_start.getText().toString();
+                    if (str.compareTo(start) < 0) {
+                        ToastUtil.showToast(ct, "结束时间不能小于开始时间");
+                    } else {
+                        tv.setText(str);
+                    }
+                } else {
+                    start = TimeUtils.f_long_2_str(System.currentTimeMillis());
+                    if (str.compareTo(start) < 0) {
+                        ToastUtil.showToast(ct, "开始时间不能小于当前时间");
+                    } else {
+                        tv.setText(str);
+                    }
+                }
             }
         });
         dialog.show();
@@ -270,41 +282,17 @@ public class TaskAddActivity extends BaseActivity implements View.OnClickListene
         sex_option.show();
     }
 
-    private void showDateDialog(final FormEditText view) {
-        DatePicker picker = new DatePicker(this);
-        picker.setRange(1950, 2030);
-        picker.setSelectedItem(
-                Calendar.getInstance().get(Calendar.YEAR),
-                Calendar.getInstance().get(Calendar.MONTH) + 1,
-                Calendar.getInstance().get(Calendar.DAY_OF_MONTH));
-        picker.setOnDatePickListener(new DatePicker.OnYearMonthDayPickListener() {
-            @Override
-            public void onDatePicked(String year, String month, String day) {
-                switch (view.getId()) {
-                    case R.id.tv_date:
-                        view.setText(year + "-" + month + "-" + day);
-                        break;
-                    case R.id.tv_date_start:
-                        view.setText(year + "-" + month + "-" + day);
-                        break;
-                }
-
-
-            }
-        });
-        picker.show();
-    }
 
     @Override
     public void onClick(View v) {
         switch (v.getId()) {
             case R.id.tv_date_start:
-                showDialog(tv_date_start);
+                showDialog(tv_date_start, true);
 //                showDateDialog((FormEditText) v.findViewById(R.id.tv_date_start));
                 break;
             case R.id.tv_date:
                 if (tv_date_start.getText() != null && tv_date_start.getText().toString().length() > 0) {
-                    showDialog(tv_date);
+                    showDialog(tv_date, false);
                 } else {
                     ToastUtil.showToast(ct, "请先填写开始日期");
                 }
@@ -316,7 +304,7 @@ public class TaskAddActivity extends BaseActivity implements View.OnClickListene
             case R.id.tv_priority:
                 showPriorityDialog(tv_priority, 0x11);
                 break;
-            case R.id.sex_erp_rl:
+            case R.id.tv_executive:
                 Intent intent = new Intent(ct, UserSelectActivity.class);
                 intent.putExtra("single", true);
                 startActivityForResult(intent, 0x11);

+ 14 - 14
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/VisitReportAddActivity.java

@@ -28,7 +28,7 @@ import com.xzjmyk.pm.activity.ui.erp.view.SingleDialog;
 import com.xzjmyk.pm.activity.util.BaiduMapUtil;
 import com.xzjmyk.pm.activity.util.DateFormatUtil;
 import com.xzjmyk.pm.activity.util.TimeUtils;
-import com.xzjmyk.pm.activity.view.wheel.DatePicker;
+import com.xzjmyk.pm.activity.view.wheel.DateTimePicker;
 
 import java.util.ArrayList;
 import java.util.Calendar;
@@ -51,7 +51,6 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
     private FormEditText tv_customer_login;
     @ViewInject(R.id.tv_linksman_login)
     private FormEditText tv_linksman_login;
-
     @ViewInject(R.id.tv_date_start)
     private FormEditText tv_date_start;
     @ViewInject(R.id.tv_date_end)
@@ -269,28 +268,29 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
     }
 
     private void showDateDialog(final FormEditText tv) {
-        DatePicker picker = new DatePicker(this);
-        picker.setRange(1950, 2030);
-        picker.setSelectedItem(
-                Calendar.getInstance().get(Calendar.YEAR),
-                Calendar.getInstance().get(Calendar.MONTH) + 1,
-                Calendar.getInstance().get(Calendar.DAY_OF_MONTH));
-        picker.setOnDatePickListener(new DatePicker.OnYearMonthDayPickListener() {
+        DateTimePicker picker = new DateTimePicker(this, DateTimePicker.HOUR_OF_DAY);
+        picker.setRange(2000, 2030);
+        picker.setSelectedItem( Calendar.getInstance().get(Calendar.YEAR),  
+                Calendar.getInstance().get(Calendar.MONTH)+1,
+                Calendar.getInstance().get(Calendar.DAY_OF_MONTH),
+                Calendar.getInstance().get(Calendar.HOUR_OF_DAY),
+                Calendar.getInstance().get(Calendar.MINUTE));
+        picker.setOnDateTimePickListener(new DateTimePicker.OnYearMonthDayTimePickListener() {
             @Override
-            public void onDatePicked(String year, String month, String day) {
-//                        ToastUtil.showToast(ct, year + "-" + month + "-" + day);
+            public void onDateTimePicked(String year, String month, String day, String hour, String minute) {
+                
                 switch (tv.getId()) {
                     case R.id.tv_date_start:
-                        tv_date_start.setText(year + "-" + month + "-" + day);
+                        tv_date_start.setText(year + "-" + month + "-" + day + " " + hour + ":" + minute+":00");
                         break;
                     case R.id.tv_date_end:
-                        tv_date_end.setText(year + "-" + month + "-" + day);
+                        tv_date_end.setText(year + "-" + month + "-" + day + " " + hour + ":" + minute+":00");
                         break;
                 }
-
             }
         });
         picker.show();
+        
     }
 //    private void getCodeByNet() {
 //        String url = Constants.getAppBaseUrl(ct) + "mobile/crm/updateVistPlan.action";

+ 12 - 12
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/VisitReportPlanActivity.java

@@ -25,7 +25,7 @@ import com.xzjmyk.pm.activity.ui.erp.view.SingleDialog;
 import com.xzjmyk.pm.activity.util.BaiduMapUtil;
 import com.xzjmyk.pm.activity.util.DateFormatUtil;
 import com.xzjmyk.pm.activity.util.TimeUtils;
-import com.xzjmyk.pm.activity.view.wheel.DatePicker;
+import com.xzjmyk.pm.activity.view.wheel.DateTimePicker;
 
 import java.util.ArrayList;
 import java.util.Calendar;
@@ -220,22 +220,22 @@ public class VisitReportPlanActivity extends BaseActivity implements View.OnClic
         finish();
     }
     private void showDateDialog(final FormEditText tv) {
-        DatePicker picker = new DatePicker(this);
-        picker.setRange(1950, 2030);
-        picker.setSelectedItem(
-                Calendar.getInstance().get(Calendar.YEAR),
-                Calendar.getInstance().get(Calendar.MONTH) + 1,
-                Calendar.getInstance().get(Calendar.DAY_OF_MONTH));
-        picker.setOnDatePickListener(new DatePicker.OnYearMonthDayPickListener() {
+        DateTimePicker picker = new DateTimePicker(this, DateTimePicker.HOUR_OF_DAY);
+        picker.setRange(2000, 2030);
+        picker.setSelectedItem( Calendar.getInstance().get(Calendar.YEAR),
+                Calendar.getInstance().get(Calendar.MONTH)+1,
+                Calendar.getInstance().get(Calendar.DAY_OF_MONTH),
+                Calendar.getInstance().get(Calendar.HOUR_OF_DAY),
+                Calendar.getInstance().get(Calendar.MINUTE));
+        picker.setOnDateTimePickListener(new DateTimePicker.OnYearMonthDayTimePickListener() {
             @Override
-            public void onDatePicked(String year, String month, String day) {
-//                        ToastUtil.showToast(ct, year + "-" + month + "-" + day);
+            public void onDateTimePicked(String year, String month, String day, String hour, String minute) {
                 switch (tv.getId()) {
                     case R.id.tv_date_select:
-                        tv_date_select.setText(year + "-" + month + "-" + day);
+                        tv_date_select.setText(year + "-" + month + "-" + day + " " + hour + ":" + minute + ":00");
                         break;
                     case R.id.tv_visit_enddate:
-                        tv_date_end.setText(year + "-" + month + "-" + day);
+                        tv_date_end.setText(year + "-" + month + "-" + day + " " + hour + ":" + minute + ":00");
                         break;
                 }
             }

+ 3 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AddMeetTaskActivity.java

@@ -4,7 +4,6 @@ import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
-import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuItem;
@@ -75,8 +74,9 @@ public class AddMeetTaskActivity extends BaseActivity {
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (data == null) return;
-        if (requestCode == 0x11 && resultCode == 0x11) {
-            data.getStringExtra("name");
+        if (requestCode == 0x11 && resultCode == 0x20) {
+//            data.getStringExtra("name");
+            loadNetData();
         }
     }
 
@@ -110,7 +110,6 @@ public class AddMeetTaskActivity extends BaseActivity {
     }
 
     private void loadNetData() {
-        Log.i("gongpengming", meetName);
         String url = CommonUtil.getSharedPreferences(this, "erp_baseurl") + "common/datalist/data.action";
         String emcode = CommonUtil.getSharedPreferences(ct, "erp_username");
         String caller = "ResourceAssignment";

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AddMeetingActivity.java

@@ -285,7 +285,7 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
                 "\"ma_groupid\":" + "\"" + ids + "\",\n" +
                 "\"ma_id\":" + "\"" + id + "\",\n" +
                 "\"ma_isturndoc\":" + "\"" + "否" + "\",\n" +
-                "\"ma_mrname\":" + "\"" + name_et.getText().toString() + "\",\n" +
+                "\"ma_mrname\":" + "\"" + location_et.getText().toString() + "\",\n" +
                 "\"ma_recorddate\":" + "\"" + TimeUtils.s_long_2_str(System.currentTimeMillis()) + "\",\n" +
                 "\"ma_recorder\":" + "\"" + MyApplication.getInstance().mLoginUser.getNickName() + "\",\n" +
                 "\"ma_remark\":" + "\"" + about_et.getText().toString() + "\",\n" +

+ 1 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AlarmaActivity.java

@@ -190,6 +190,7 @@ public class AlarmaActivity extends BaseActivity implements View.OnClickListener
          下班时间设置,弹出款:延迟1分钟,延迟2分钟,延迟5分钟,延迟10分钟,延迟20分钟,延迟30分钟
          */
         final String[] str = new String[6];
+
         if (isU) {
             str[0] = "提前1分钟";
             str[1] = "提前2分钟";

+ 45 - 26
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MeetDetailsActivity.java

@@ -51,6 +51,8 @@ public class MeetDetailsActivity extends BaseActivity implements View.OnClickLis
     private Button click_btn;
     @ViewInject(R.id.oa_meeting_start_date)
     private TextView oa_meeting_start_date;
+    @ViewInject(R.id.end_meet_tv)
+    private TextView end_meet_tv;
     @ViewInject(R.id.status_tv)
     private TextView status_tv;
     @ViewInject(R.id.location_tv)
@@ -70,7 +72,7 @@ public class MeetDetailsActivity extends BaseActivity implements View.OnClickLis
             switch (msg.what) {
                 case whatLoad:
                     object = JSON.parseObject(message).getJSONObject("panelData");
-                    updataUI();
+//                    updataUI();
                     break;
                 case ENDMEET:
                     ToastUtil.showToast(ct, "会议结束成功");
@@ -84,6 +86,7 @@ public class MeetDetailsActivity extends BaseActivity implements View.OnClickLis
                     ToastUtil.showToast(ct, "会议签到成功");
                     isPlay = false;
                     click_btn.setPressed(true);
+                    loadNumData();
                     break;
                 case 0x14:
                     JSONObject numlist = JSON.parseObject(message).getJSONObject("participants");
@@ -127,7 +130,6 @@ public class MeetDetailsActivity extends BaseActivity implements View.OnClickLis
             ma_id = entity.getMa_id();
             ma_code = entity.getMa_code();
         }
-        loadDetailsData();
         loadNumData();
         initView();
     }
@@ -157,8 +159,6 @@ public class MeetDetailsActivity extends BaseActivity implements View.OnClickLis
     }
 
     private void initView() {
-        sub_tv.setText(entity.getMa_remark() == null ? "" : entity.getMa_remark());
-        tag_tv.setText(entity.getMa_tag() == null ? "" : entity.getMa_tag());
         getPoinfo();
         findViewById(R.id.meet_save).setOnClickListener(this);
         findViewById(R.id.num_tag).setOnClickListener(this);
@@ -166,32 +166,42 @@ public class MeetDetailsActivity extends BaseActivity implements View.OnClickLis
         findViewById(R.id.click_btn).setOnClickListener(this);
         findViewById(R.id.location_tag).setOnClickListener(this);
         findViewById(R.id.add_task_ll).setOnClickListener(this);
-    }
-
-    String baseUrl;
-
-    private void updataUI() {
-        if (object == null) return;
-        name_tv.setText(object.getString("ma_theme"));
-        addr_tv.setText(object.getString("mr_site"));
-        user_tv.setText(object.getString("ma_recorder"));
-        long startLongTime = TimeUtils.f_str_2_long(entity.getMa_starttime());
-        oa_meeting_start.setText(TimeUtils.long2str(startLongTime, "MM月dd"));
-        oa_meeting_start_date.setText(TimeUtils.long2str(startLongTime, "HH:mm"));
-        long endLongTime = TimeUtils.f_str_2_long(entity.getMa_endtime());
-        oa_meeting_end.setText(TimeUtils.long2str(startLongTime, "MM月dd"));
-        oa_meeting_end_date.setText(TimeUtils.long2str(endLongTime, "HH:mm"));
+        if (entity == null) return;
+        if (entity.getMa_recorder() != null && !MyApplication.getInstance().mLoginUser.getNickName().equals(entity.getMa_recorder())) {
+            end_meet_tv.setVisibility(View.GONE);
+        } else {
+            end_meet_tv.setVisibility(View.VISIBLE);
+        }
+        //设置会议 地点、介绍、发起人、标签
+        addr_tv.setText(entity.getMa_mrname() == null ? "未填写" : entity.getMa_mrname());
+        sub_tv.setText(entity.getMa_remark() == null ? "" : entity.getMa_remark());
+        user_tv.setText(entity.getMa_recorder() == null ? "" : entity.getMa_recorder());
+        tag_tv.setText(entity.getMa_tag() == null ? "" : entity.getMa_tag());
+        //设置会议状态
         String str = entity.getMa_stage();
         if (str == null) {
             if (TimeUtils.f_str_2_long(entity.getMa_starttime()) > System.currentTimeMillis())
                 str = "未开始";
             else
                 str = "进行中";
+        } else {
+            if ("已结束".equals(str)) {
+
+            }
         }
         status_tv.setText(str);
+        //设置开始和结束时间的显示
+        long startLongTime = TimeUtils.f_str_2_long(entity.getMa_starttime());
+        oa_meeting_start.setText(TimeUtils.long2str(startLongTime, "MM月dd"));
+        oa_meeting_start_date.setText(TimeUtils.long2str(startLongTime, "HH:mm"));
+        long endLongTime = TimeUtils.f_str_2_long(entity.getMa_endtime());
+        oa_meeting_end.setText(TimeUtils.long2str(startLongTime, "MM月dd"));
+        oa_meeting_end_date.setText(TimeUtils.long2str(endLongTime, "HH:mm"));
     }
 
-    //下拉页面数据
+    String baseUrl;
+
+    //获取会议详情接口(获取到的数据太少,先不用)
     private void loadDetailsData() {
         progressDialog.show();
         //获取网络数据
@@ -258,15 +268,20 @@ public class MeetDetailsActivity extends BaseActivity implements View.OnClickLis
                 urlSub = "mobile/crm/updateMeeting.action";//结束会议
                 break;
         }
+//        emcode改成em_code ,ma_id改成ma_code
         String url = baseUrl + urlSub;
         String em_code = CommonUtil.getSharedPreferences(ct, "erp_username");
         String sessionId = CommonUtil.getSharedPreferences(ct, "sessionId");
         final Map<String, Object> param = new HashMap<>();
         String caller = "Meetingroomapply";
-        param.put("emcode", em_code);
-        if (type != ENDMEET)
+        if (type == ENDMEET) {
+            param.put("emcode", em_code);
+            param.put("ma_id", ma_id);
+        } else {
             param.put("caller", caller);
-        param.put("ma_id", ma_id);
+            param.put("em_code", em_code);
+            param.put("ma_code", ma_id);
+        }
         param.put("sessionId", sessionId);
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
@@ -328,9 +343,13 @@ public class MeetDetailsActivity extends BaseActivity implements View.OnClickLis
                 showExitDialog();
                 break;
             case R.id.click_btn:
-                if (isPlay)
-                    doNetSubmit(SIGNNIN);
-                else {
+                if (isPlay) {
+                    if ("已结束".equals(status_tv.getText().toString().trim())) {
+                        ToastUtil.showToast(ct, "会议已经结束,不能在签到");
+                    } else {
+                        doNetSubmit(SIGNNIN);
+                    }
+                } else {
                     ToastUtil.showToast(ct, "您已经签到过了");
                     click_btn.setPressed(true);
                 }

+ 4 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MeetingActivity.java

@@ -157,7 +157,6 @@ public class MeetingActivity extends BaseActivity {
                 MeetEntity entity = adapter.getData().get((i - 1 < 0 ? 0 : (i - 1)));
                 intent.putExtra("data", entity);
                 intent.putExtra("item", (i - 1 < 0 ? 0 : (i - 1)));
-
                 startActivityForResult(intent, requestCode);
             }
         });
@@ -289,7 +288,7 @@ public class MeetingActivity extends BaseActivity {
             viewholder.oa_meeting_start_date.setText(TimeUtils.long2str(startLong, "HH:mm"));
             viewholder.oa_meeting_end_date.setText(TimeUtils.long2str(endLong, "HH:mm"));
             viewholder.oa_meeting_name_tv.setText(entity.getMa_theme());
-            viewholder.oa_meeting_addr_tv.setText(entity.getMa_remark());
+            viewholder.oa_meeting_addr_tv.setText(entity.getMa_mrname());
             viewholder.oa_meeting_user_tv.setText(entity.getMa_recorder());
             if (entity.getMa_tag() == null || entity.getMa_tag().length() <= 0) return;
             viewholder.oa_meeting_tag_tv.setText(entity.getMa_type() == null ? "" : entity.getMa_type());
@@ -314,17 +313,17 @@ public class MeetingActivity extends BaseActivity {
         if (requestCode == this.requestCode) {
             if (resultCode == 0x14) {
                 if ("data".equals(data.getStringExtra("data"))) {
-                    //TODO 刷新
                     list_business.setRefreshing(true);
                     loadNetData(1);
                 }
             } else if (resultCode == 0x15) {
+                Log.i("gongpengming", "resultCode == 0x15");
                 int i = data.getIntExtra("item", -1);
+                Log.i("gongpengming", "item=" + i);
                 if (i >= 0 && data.getBooleanExtra("data", false)) {//是否结束会议
+                    Log.i("gongpengming", "item=已结束");
                     entities = adapter.getData();
                     entities.get(i).setStatus("已结束");
-                } else {
-                    entities.get(i).setStatus("正在进行");
                 }
                 adapter.setData(entities);
             }

+ 7 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OAActivity.java

@@ -466,12 +466,13 @@ public class OAActivity extends BaseActivity implements View.OnClickListener {
 
     /**
      * 点击我和我的下属的工作日志中的标识变化
+     *
      * @param isMy 是否是 我的工作日志
      */
     private void chaneTAG(boolean isMy) {
         if (isMy) {
             if (!my_client_log.getText().toString().trim().equals("下属工作日志")) {
-                my_client_log.setText("下属工作日");
+                my_client_log.setText("下属工作日");
             }
             tag = 1;
             ok_scale.setVisibility(View.GONE);
@@ -616,6 +617,11 @@ public class OAActivity extends BaseActivity implements View.OnClickListener {
             }
             if (chche.getStatus() != null) {//状态
                 viewholder.item_status_tv.setText(chche.getStatus());
+                if ("已拜访".equals(chche.getStatus())) {
+                    viewholder.item_doit_tv.setVisibility(View.GONE);
+                } else {
+                    viewholder.item_doit_tv.setVisibility(View.VISIBLE);
+                }
             } else {
                 viewholder.item_status_tv.setText("");
             }

+ 12 - 7
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/SaveMeetActivity.java

@@ -48,13 +48,15 @@ public class SaveMeetActivity extends BaseActivity {
                     ToastUtil.showToast(SaveMeetActivity.this, "保存会议纪要失败");
                 }
             } else if (msg.what == 0x12) {
-                JSONObject json = JSON.parseObject(message);
-                if (json.containsKey("success") && json.getBoolean("success")) {
-                    ToastUtil.showToast(SaveMeetActivity.this, "保存会议纪要成功");
-                    finish();
-                } else {
-                    ToastUtil.showToast(SaveMeetActivity.this, "更新会议纪要失败");
-                }
+                ToastUtil.showToast(SaveMeetActivity.this, "保存会议纪要成功");
+                finish();
+//                JSONObject json = JSON.parseObject(message);
+//                if (json.containsKey("success") && json.getBoolean("success")) {
+//                    ToastUtil.showToast(SaveMeetActivity.this, "保存会议纪要成功");
+//                    finish();
+//                } else {
+//                    ToastUtil.showToast(SaveMeetActivity.this, "更新会议纪要失败");
+//                }
             }
         }
     };
@@ -67,11 +69,13 @@ public class SaveMeetActivity extends BaseActivity {
         }
         return super.onOptionsItemSelected(item);
     }
+
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         getMenuInflater().inflate(R.menu.menu_visit_save, menu);
         return super.onCreateOptionsMenu(menu);
     }
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -113,6 +117,7 @@ public class SaveMeetActivity extends BaseActivity {
         }
         doSave(builder.toString());
     }
+
     private void updataCode() {
         //获取网络数据
         if (bean == null) {

+ 30 - 35
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/UserSelectActivity.java

@@ -6,7 +6,6 @@ import android.os.Handler;
 import android.os.Message;
 import android.text.Editable;
 import android.text.TextWatcher;
-import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuItem;
@@ -15,17 +14,21 @@ import android.view.ViewGroup;
 import android.widget.AdapterView;
 import android.widget.BaseAdapter;
 import android.widget.CheckBox;
+import android.widget.ImageView;
 import android.widget.ListView;
 import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.handmark.pulltorefresh.library.PullToRefreshBase;
 import com.handmark.pulltorefresh.library.PullToRefreshListView;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
+import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.oa.MeetUserEntity;
+import com.xzjmyk.pm.activity.helper.AvatarHelper;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.db.DBManager;
 import com.xzjmyk.pm.activity.ui.erp.entity.EmployeesEntity;
@@ -66,20 +69,24 @@ public class UserSelectActivity extends BaseActivity {
                     MeetUserEntity entity = null;
                     String code = null;//em_code
                     String name = null;//em_name
+                    String company = null;//em_name
                     String imId = null;//em_department->em_post
+                    JSONObject object = null;
                     for (int i = 0; i < array.size(); i++) {
+                        object = array.getJSONObject(i);
                         entity = new MeetUserEntity();
                         entity.setClick(false);
-                        code = array.getJSONObject(i).getString("em_code");
-                        name = array.getJSONObject(i).getString("em_name");
-                        imId = (array.getJSONObject(i).getString("em_department") == null ? "" : (array.getJSONObject(i).getString("em_department") + "->")) +
+                        code = object.containsKey("em_code") ? object.getString("em_code") : "";
+                        name = object.containsKey("em_name") ? object.getString("em_name") : "";
+                        imId = object.containsKey("em_imid") ? object.getString("em_imid") : "";
+                        company = (array.getJSONObject(i).getString("em_department") == null ? "" : (array.getJSONObject(i).getString("em_department") + "->")) +
                                 (array.getJSONObject(i).getString("em_post") == null ? "" : array.getJSONObject(i).getString("em_post"));
-                        entity.setEmCode(code == null ? "" : code);
-                        entity.setName(name == null ? "" : name);
-                        entity.setImId(imId == null ? "" : imId);
+                        entity.setEmCode(code);
+                        entity.setName(name);
+                        entity.setImId(imId);
+                        entity.setCompany(company);
                         entities.add(entity);
                     }
-
                     if (entities.size() > 0) {
                         if (adapter == null) {
                             adapter = new MeetSelectAdapter(entities);
@@ -107,7 +114,7 @@ public class UserSelectActivity extends BaseActivity {
         listview.setEmptyView(view);
         adapter = new MeetSelectAdapter();
         listview.setAdapter(adapter);
-        listview.setMode(PullToRefreshBase.Mode.PULL_FROM_START);
+        listview.setMode(PullToRefreshBase.Mode.DISABLED);
         search_edit.addTextChangedListener(new TextWatcher() {
             @Override
             public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
@@ -120,26 +127,11 @@ public class UserSelectActivity extends BaseActivity {
             @Override
             public void afterTextChanged(Editable editable) {
                 String strChche = editable.toString();
-                //TODO 正则
-                Log.i("gongpengming", strChche);
-                if (entities == null) {
-                    Log.i("gongpengming", "beans==null");
-                } else {
-                    Log.i("gongpengming", "beans!=null");
-                }
-                if (entities.size() <= 0) {
-                    Log.i("gongpengming", "beans.size() <= 0");
-                } else {
-                    Log.i("gongpengming", "beans.size() > 0");
-                }
                 if (entities == null || entities.size() <= 0) return;
                 ArrayList<MeetUserEntity> chche = new ArrayList<>();
                 for (MeetUserEntity e : entities) {
                     if (getResult(e.getName() + e.getImId(), strChche)) {
-                        Log.i("gongpengming", "一样的 " + e.getName() + e.getImId());
                         chche.add(e);
-                    } else {
-                        Log.i("gongpengming", "这个是不一样的 " + e.getName() + e.getImId());
                     }
                 }
                 adapter.setUsers(chche);
@@ -186,7 +178,7 @@ public class UserSelectActivity extends BaseActivity {
             return;
         }
         for (int i = 0; i < adapter.getUsers().size(); i++) {
-            if (CommonUtil.getSharedPreferences(ct, "username").trim().equals(adapter.getUsers().get(i).getEmCode().trim())) {
+            if (MyApplication.getInstance().mLoginUser.getUserId().equals(adapter.getUsers().get(i).getImId())) {
                 list.add(adapter.getUsers().get(i));
                 continue;
             }
@@ -225,23 +217,22 @@ public class UserSelectActivity extends BaseActivity {
     }
 
     private void getDataByDB() {  //企业通讯录好友
-        if (manager == null)
-            manager = new DBManager(ct);
+        manager = new DBManager(ct);
         String master = CommonUtil.getSharedPreferences(ct, "erp_master"); //待优化   每次都 读取文件耗性能
         if (StringUtils.isEmpty(master)) return;
         List<EmployeesEntity> emList = manager.select_getEmployee(
                 new String[]{master},
                 "whichsys=?");
+        manager.closeDB();
         for (int i = 0; i < emList.size(); i++) {//企业通讯人员
-            if (emList.get(i).getEm_IMID() == 0) continue;
-
+//            if (emList.get(i).getEm_IMID() == 0) continue;
             entities.add(EnterChatAction(emList.get(i)));
         }
+
         //获取完数据以后
         if (adapter != null)
             adapter.setUsers(entities);
     }
-
     private void getDataByNet() {
         progressDialog.show();
         //获取网络数据
@@ -256,6 +247,7 @@ public class UserSelectActivity extends BaseActivity {
 
     private MeetUserEntity EnterChatAction(EmployeesEntity employee) {
         MeetUserEntity entity = new MeetUserEntity();
+        entity.setCompany(employee.getCOMPANY() == null ? "" : employee.getCOMPANY());
         entity.setImId(String.valueOf(employee.getEm_IMID()));
         entity.setName(employee.getEM_NAME());
         entity.setEmCode(employee.getEM_CODE());
@@ -306,6 +298,7 @@ public class UserSelectActivity extends BaseActivity {
                 holder.select_scb = (CheckBox) view.findViewById(R.id.select_scb);
                 holder.id_tv = (TextView) view.findViewById(R.id.id_tv);
                 holder.name_tv = (TextView) view.findViewById(R.id.name_tv);
+                holder.head_img = (ImageView) view.findViewById(R.id.head_img);
                 view.setTag(holder);
             } else {
                 holder = (ViewHolder) view.getTag();
@@ -313,11 +306,12 @@ public class UserSelectActivity extends BaseActivity {
             holder.select_scb.setChecked(users.get(i).isClick());
             holder.select_scb.setFocusable(false);
             holder.select_scb.setClickable(false);
-            if (isNet)
-                holder.id_tv.setText(users.get(i).getImId());
-            else
-                holder.id_tv.setText("imId:" + users.get(i).getImId());
-
+            if (isNet) {
+                holder.id_tv.setText(users.get(i).getCompany());
+            } else {
+                holder.id_tv.setText(users.get(i).getCompany().length() <= 0 ? "" : "公司:" + users.get(i).getCompany());
+            }
+            AvatarHelper.getInstance().displayAvatar(users.get(i).getImId(), holder.head_img, true);//不会删除缓存
             holder.name_tv.setText("姓名:" + users.get(i).getName());
             return view;
         }
@@ -325,6 +319,7 @@ public class UserSelectActivity extends BaseActivity {
         class ViewHolder {
             CheckBox select_scb;
             TextView name_tv, id_tv;
+            ImageView head_img;
         }
     }
 }

+ 5 - 12
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SigninClickFragment.java

@@ -6,7 +6,6 @@ import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
-import android.support.v7.app.ActionBar;
 import android.support.v7.app.AlertDialog;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -102,7 +101,8 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
                         }
                     } else {
                         //如果返回失败
-                        ToastUtil.showToast(ct, "网络连接失败,请稍后再试");
+                        ct.finish();
+                        ToastUtil.showToast(ct, "系统尚未找到您的班次,请联系管理员设置班次");
                     }
                     break;
                 case WHATLOG://获取打卡
@@ -141,7 +141,6 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
     protected void onCreateView(Bundle savedInstanceState, boolean createView) {
         ViewUtils.inject(getmRootView());
         setHasOptionsMenu(true);
-        ActionBar bar = ct.getSupportActionBar();
         init();
         initView();
     }
@@ -517,32 +516,26 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
         Bean b = null;
         switch (num) {
             case 3:
-                chche.clear();
                 b = new Bean();//上班
                 b.time = object.containsKey("wd_ondutythree") ? object.getString("wd_ondutythree") : "08:30";
                 b.startSignin = object.containsKey("wd_onbeg3") ? object.getString("wd_onbeg3") : "07:00";
                 b.time2 = object.containsKey("wd_offdutythree") ? object.getString("wd_offdutythree") : "11:30";
                 b.startSignin2 = object.containsKey("wd_offend3") ? object.getString("wd_offend3") : "12:00";
-                chche.add(b);
-                beans.addAll(0, chche);
+                beans.add(0, b);
             case 2:
-                chche.clear();
                 b = new Bean();
                 b.time = object.containsKey("wd_ondutytwo") ? object.getString("wd_ondutytwo") : "--:--";
                 b.startSignin = object.containsKey("wd_onbeg2") ? object.getString("wd_onbeg2") : "07:00";
                 b.time2 = object.containsKey("wd_offdutytwo") ? object.getString("wd_offdutytwo") : "--:--";
                 b.startSignin2 = object.containsKey("wd_offend2") ? object.getString("wd_offend2") : "07:00";
-                chche.add(b);
-                beans.addAll(0, chche);
+                beans.add(0, b);
             case 1:
-                chche.clear();
                 b = new Bean();
                 b.time = object.containsKey("wd_ondutyone") ? object.getString("wd_ondutyone") : "--:--";
                 b.startSignin = object.containsKey("wd_onbeg1") ? object.getString("wd_onbeg1") : "07:00";
                 b.time2 = object.containsKey("wd_offdutyone") ? object.getString("wd_offdutyone") : "--:--";
                 b.startSignin2 = object.containsKey("wd_offend1") ? object.getString("wd_offend1") : "07:00";
-                chche.add(b);
-                beans.addAll(0, chche);
+                beans.add(0, b);
                 break;
         }//添加上班签到时间完成
         endLoadData(beans);

+ 24 - 7
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java

@@ -169,6 +169,7 @@ public class MessageFragment extends EasyFragment {
     }
 
     public void setListener(int num) {
+        Log.i("gongpengming", num + "num=");
         if (refreshRedUIListener == null) return;
         refreshRedUIListener.updata(num);
     }
@@ -276,13 +277,10 @@ public class MessageFragment extends EasyFragment {
         num_tv = (TextView) view.findViewById(R.id.num_tv);
         content_tv = (TextView) view.findViewById(R.id.content_tv);
         time_tv = (TextView) view.findViewById(R.id.time_tv);
-
         b2b_num_tv = (TextView) view.findViewById(R.id.b2b_num_tv);
         b2b_content_tv = (TextView) view.findViewById(R.id.b2b_content_tv);
         b2b_time_tv = (TextView) view.findViewById(R.id.b2b_time_tv);
-
         rl_b2b = (RelativeLayout) view.findViewById(R.id.rl_b2b_business);
-
         view.findViewById(R.id.schedule_rl).setOnClickListener(listener);
         view.findViewById(R.id.task_rl).setOnClickListener(listener);
         view.findViewById(R.id.notice_rl).setOnClickListener(listener);
@@ -645,6 +643,21 @@ public class MessageFragment extends EasyFragment {
         ViewUtil.httpSendRequest(ct, url, param, handler, headers, Constants.LOAD_SUCCESS, null, null, "get");
     }
 
+    //获取任务
+    public void loadTaskByNet(int handlerWhat) {
+        String url = Constants.getAppBaseUrl(getActivity()) + "common/datalist/data.action";
+        Map<String, Object> mparams = new HashMap<String, Object>();
+        mparams.put("sessionId", CommonUtil.getSharedPreferences(mActivity, "sessionId"));
+        mparams.put("caller", "ResourceAssignment");
+        mparams.put("page", "1");
+        mparams.put("pageSize", "100");
+        mparams.put("_noc", "1");
+        String em_code = CommonUtil.getSharedPreferences(mActivity, "erp_username");
+        mparams.put("condition", "ra_resourcecode='" + em_code + "' and ra_statuscode='" + "START" + "'");
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(mActivity, "sessionId"));
+        ViewUtil.httpSendRequest(mActivity, url, mparams, handler, headers, handlerWhat, null, null, "get");
+    }
 
     public void loadGongGaoCount(Context ct) {
         String url = Constants.getAppBaseUrl(ct) + "common/desktop/note/notice.action";
@@ -710,6 +723,7 @@ public class MessageFragment extends EasyFragment {
             b2b_num_tv.setVisibility(View.VISIBLE);
             b2b_content_tv.setText("您有" + bMsgs.size() + "条商务消息未读");
             rl_b2b.setVisibility(View.VISIBLE);
+            Log.i("gongpengming", "bMsgs.size=" + bMsgs.size());
             setListener(bMsgs.size() + GONGGAO_count + NOTICE_count + NES_count + TASK_count + DAIBAN_count + SUBRICE_count);
         } else {
             rl_b2b.setVisibility(View.GONE);
@@ -733,6 +747,7 @@ public class MessageFragment extends EasyFragment {
                                 num += 1;
                         }
                     }
+                    Log.i("gongpengming", "num.size=" + num);
                     setListener(GONGGAO_count + NOTICE_count + NES_count + TASK_count + DAIBAN_count + num);
                     if (num > 0) {
                         num_tv.setText(num + "");
@@ -767,6 +782,7 @@ public class MessageFragment extends EasyFragment {
                     setNOTICE_count(GONGGAO_count + NOTICE_count + NES_count);
                     break;
                 case TASK_MSG:
+                    Log.i("gonpengming", "TASK_MSG=" + TASK_count);
                     setListener(GONGGAO_count + NOTICE_count + NES_count + TASK_count + DAIBAN_count + SUBRICE_count);
                     if (TASK_count > 0) {
                         task_num_tv.setText(TASK_count + "");
@@ -808,6 +824,7 @@ public class MessageFragment extends EasyFragment {
 
 
     private void setNOTICE_count(int count) {
+        Log.i("gongpengming","setNOTICE_count="+count);
         setListener(GONGGAO_count + NOTICE_count + NES_count + TASK_count + DAIBAN_count + SUBRICE_count);
         if (count > 0) {
             notice_num_tv.setText(count + "");
@@ -957,10 +974,10 @@ public class MessageFragment extends EasyFragment {
                 }
                 TASK_count = task_num;
                 handler.sendEmptyMessage(TASK_MSG);
-//                DAIBAN_count = daiban_num;
-//                handler.sendEmptyMessage(DAIBAN_MSG);
-                SUBRICE_count = pagin_num;
-                handler.sendEmptyMessage(SUBRICE_MSG);
+                DAIBAN_count = daiban_num;
+                handler.sendEmptyMessage(DAIBAN_MSG);
+//                SUBRICE_count = pagin_num;
+//                handler.sendEmptyMessage(SUBRICE_MSG);
             }
         }
     }

+ 7 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/view/FunnelView.java

@@ -12,9 +12,11 @@ import android.util.AttributeSet;
 import android.util.Log;
 import android.util.TypedValue;
 import android.view.View;
+import android.view.WindowManager;
 import android.view.animation.AccelerateDecelerateInterpolator;
 
 import com.alibaba.fastjson.JSON;
+import com.xzjmyk.pm.activity.util.DisplayUtil;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -48,7 +50,9 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
     private float mTotalHeight = 
             TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 250, getResources().getDisplayMetrics());
     private float maxWidth = 
-            TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 330, getResources().getDisplayMetrics());
+            TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
+                   355,
+                    getResources().getDisplayMetrics());
     private float maxLineH = 
             TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 120, getResources().getDisplayMetrics());
     private float minLineH = 
@@ -81,6 +85,8 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
         this.mMoneys = moneys;
         this.maxMoney = maxMoney;
         this.colors=colors;
+        Log.i("FunnelMain", "setData:px:" + ((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getWidth() );
+        Log.i("FunnelMain", "setData:dp:" + DisplayUtil.px2dip(getContext(),((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getWidth()));
         stopAnimator();
         init();
         calculate();

+ 471 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/view/wheel/DateTimePicker.java

@@ -0,0 +1,471 @@
+package com.xzjmyk.pm.activity.view.wheel;
+
+import android.app.Activity;
+import android.support.annotation.IntDef;
+import android.support.annotation.NonNull;
+import android.text.TextUtils;
+import android.view.Gravity;
+import android.view.View;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.Comparator;
+
+/**
+ * Created by Dong on 2016/5/13.
+ * 年月日 时分秒
+ */
+public class DateTimePicker extends WheelPicker {
+
+    /**
+     * 年月日
+     */
+    public static final int YEAR_MONTH_DAY = 0;
+    /**
+     * 年月
+     */
+    public static final int YEAR_MONTH = 1;
+    /**
+     * 月日
+     */
+    public static final int MONTH_DAY = 2;
+
+    /**
+     * 24小时
+     */
+    public static final int HOUR_OF_DAY = 3;
+    /**
+     * 12小时
+     */
+    public static final int HOUR = 4;
+
+    private ArrayList<String> years = new ArrayList<String>();
+    private ArrayList<String> months = new ArrayList<String>();
+    private ArrayList<String> days = new ArrayList<String>();
+    private String yearLabel = "年", monthLabel = "月", dayLabel = "日";
+    private int selectedYearIndex = 0, selectedMonthIndex = 0, selectedDayIndex = 0;
+    private String hourLabel = "时", minuteLabel = "分";
+    private String selectedHour = "", selectedMinute = "";
+    private OnDateTimePickListener onDateTimePickListener;
+    private int mode;
+
+
+    @IntDef(flag = false, value = {YEAR_MONTH_DAY, YEAR_MONTH, MONTH_DAY, HOUR_OF_DAY, HOUR})
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface Mode {
+    }
+
+    public DateTimePicker(Activity activity, @Mode int mode) {
+        super(activity);
+        textSize = 16;//年月日时分,比较宽,设置字体小一点才能显示完整
+        this.mode = mode;
+        for (int i = 2000; i <= 2050; i++) {
+            years.add(String.valueOf(i));
+        }
+        for (int i = 1; i <= 12; i++) {
+            months.add(DateUtils.fillZero(i));
+        }
+        for (int i = 1; i <= 31; i++) {
+            days.add(DateUtils.fillZero(i));
+        }
+        selectedHour = DateUtils.fillZero(Calendar.getInstance().get(Calendar.HOUR_OF_DAY));
+        selectedMinute = DateUtils.fillZero(Calendar.getInstance().get(Calendar.MINUTE));
+    }
+
+    @NonNull
+    @Override
+    protected View makeCenterView() {
+        LinearLayout layout = new LinearLayout(activity);
+        layout.setOrientation(LinearLayout.HORIZONTAL);
+        layout.setGravity(Gravity.CENTER);
+        WheelView yearView = new WheelView(activity.getBaseContext());
+        yearView.setLayoutParams(new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));
+        yearView.setTextSize(textSize);
+        yearView.setTextColor(textColorNormal, textColorFocus);
+        yearView.setLineVisible(lineVisible);
+        yearView.setLineColor(lineColor);
+        yearView.setOffset(offset);
+        layout.addView(yearView);
+        TextView yearTextView = new TextView(activity);
+        yearTextView.setLayoutParams(new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));
+        yearTextView.setTextSize(textSize);
+        yearTextView.setTextColor(textColorFocus);
+        if (!TextUtils.isEmpty(yearLabel)) {
+            yearTextView.setText(yearLabel);
+        }
+        layout.addView(yearTextView);
+
+        WheelView monthView = new WheelView(activity.getBaseContext());
+        monthView.setLayoutParams(new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));
+        monthView.setTextSize(textSize);
+        monthView.setTextColor(textColorNormal, textColorFocus);
+        monthView.setLineVisible(lineVisible);
+        monthView.setLineColor(lineColor);
+        monthView.setOffset(offset);
+        layout.addView(monthView);
+        TextView monthTextView = new TextView(activity);
+        monthTextView.setLayoutParams(new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));
+        monthTextView.setTextSize(textSize);
+        monthTextView.setTextColor(textColorFocus);
+        if (!TextUtils.isEmpty(monthLabel)) {
+            monthTextView.setText(monthLabel);
+        }
+        layout.addView(monthTextView);
+
+        final WheelView dayView = new WheelView(activity.getBaseContext());
+        dayView.setLayoutParams(new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));
+        dayView.setTextSize(textSize);
+        dayView.setTextColor(textColorNormal, textColorFocus);
+        dayView.setLineVisible(lineVisible);
+        dayView.setLineColor(lineColor);
+        dayView.setOffset(offset);
+        layout.addView(dayView);
+        TextView dayTextView = new TextView(activity);
+        dayTextView.setLayoutParams(new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));
+        dayTextView.setTextSize(textSize);
+        dayTextView.setTextColor(textColorFocus);
+        if (!TextUtils.isEmpty(dayLabel)) {
+            dayTextView.setText(dayLabel);
+        }
+        layout.addView(dayTextView);
+
+        WheelView hourView = new WheelView(activity);
+        hourView.setLayoutParams(new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));
+        hourView.setTextSize(textSize);
+        hourView.setTextColor(textColorNormal, textColorFocus);
+        hourView.setLineVisible(lineVisible);
+        hourView.setLineColor(lineColor);
+        layout.addView(hourView);
+        TextView hourTextView = new TextView(activity);
+        hourTextView.setLayoutParams(new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));
+        hourTextView.setTextSize(textSize);
+        hourTextView.setTextColor(textColorFocus);
+        if (!TextUtils.isEmpty(hourLabel)) {
+            hourTextView.setText(hourLabel);
+        }
+        layout.addView(hourTextView);
+
+        WheelView minuteView = new WheelView(activity);
+        minuteView.setLayoutParams(new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));
+        minuteView.setTextSize(textSize);
+        minuteView.setTextColor(textColorNormal, textColorFocus);
+        minuteView.setLineVisible(lineVisible);
+        minuteView.setLineColor(lineColor);
+        minuteView.setOffset(offset);
+        layout.addView(minuteView);
+
+        TextView minuteTextView = new TextView(activity);
+        minuteTextView.setLayoutParams(new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));
+        minuteTextView.setTextSize(textSize);
+        minuteTextView.setTextColor(textColorFocus);
+        if (!TextUtils.isEmpty(minuteLabel)) {
+            minuteTextView.setText(minuteLabel);
+        }
+        layout.addView(minuteTextView);
+
+        if (mode == YEAR_MONTH) {
+            dayView.setVisibility(View.GONE);
+            dayTextView.setVisibility(View.GONE);
+        } else if (mode == MONTH_DAY) {
+            yearView.setVisibility(View.GONE);
+            yearTextView.setVisibility(View.GONE);
+        }
+        if (mode != MONTH_DAY) {
+            if (!TextUtils.isEmpty(yearLabel)) {
+                yearTextView.setText(yearLabel);
+            }
+            if (selectedYearIndex == 0) {
+                yearView.setItems(years);
+            } else {
+                yearView.setItems(years, selectedYearIndex);
+            }
+            yearView.setOnWheelViewListener(new WheelView.OnWheelViewListener() {
+                @Override
+                public void onSelected(boolean isUserScroll, int selectedIndex, String item) {
+                    selectedYearIndex = selectedIndex;
+                    //需要根据年份及月份动态计算天数
+                    days.clear();
+                    int maxDays = DateUtils.calculateDaysInMonth(stringToYearMonthDay(item), stringToYearMonthDay(months.get(selectedMonthIndex)));
+                    for (int i = 1; i <= maxDays; i++) {
+                        days.add(DateUtils.fillZero(i));
+                    }
+                    if (selectedDayIndex >= maxDays) {
+                        //年或月变动时,保持之前选择的日不动:如果之前选择的日是之前年月的最大日,则日自动为该年月的最大日
+                        selectedDayIndex = days.size() - 1;
+                    }
+                    dayView.setItems(days, selectedDayIndex);
+                }
+            });
+        }
+        if (!TextUtils.isEmpty(monthLabel)) {
+            monthTextView.setText(monthLabel);
+        }
+        if (selectedMonthIndex == 0) {
+            monthView.setItems(months);
+        } else {
+            monthView.setItems(months, selectedMonthIndex);
+        }
+        monthView.setOnWheelViewListener(new WheelView.OnWheelViewListener() {
+            @Override
+            public void onSelected(boolean isUserScroll, int selectedIndex, String item) {
+                selectedMonthIndex = selectedIndex;
+                if (mode != YEAR_MONTH) {
+                    //年月日或年月模式下,需要根据年份及月份动态计算天数
+                    days.clear();
+                    int maxDays = DateUtils.calculateDaysInMonth(stringToYearMonthDay(years.get(selectedYearIndex)), stringToYearMonthDay(item));
+                    for (int i = 1; i <= maxDays; i++) {
+                        days.add(DateUtils.fillZero(i));
+                    }
+                    if (selectedDayIndex >= maxDays) {
+                        //年或月变动时,保持之前选择的日不动:如果之前选择的日是之前年月的最大日,则日自动为该年月的最大日
+                        selectedDayIndex = days.size() - 1;
+                    }
+                    dayView.setItems(days, selectedDayIndex);
+                }
+            }
+        });
+        if (mode != YEAR_MONTH) {
+            if (!TextUtils.isEmpty(dayLabel)) {
+                dayTextView.setText(dayLabel);
+            }
+            if (selectedDayIndex == 0) {
+                dayView.setItems(days);
+            } else {
+                dayView.setItems(days, selectedDayIndex);
+            }
+            dayView.setOnWheelViewListener(new WheelView.OnWheelViewListener() {
+                @Override
+                public void onSelected(boolean isUserScroll, int selectedIndex, String item) {
+                    selectedDayIndex = selectedIndex;
+                }
+            });
+        }
+
+        ArrayList<String> hours = new ArrayList<String>();
+        if (mode == HOUR) {
+            for (int i = 1; i <= 12; i++) {
+                hours.add(DateUtils.fillZero(i));
+            }
+        } else {
+            for (int i = 0; i < 24; i++) {
+                hours.add(DateUtils.fillZero(i));
+            }
+        }
+        hourView.setItems(hours, selectedHour);
+        ArrayList<String> minutes = new ArrayList<String>();
+        for (int i = 0; i < 60; i++) {
+            minutes.add(DateUtils.fillZero(i));
+        }
+        minuteView.setItems(minutes, selectedMinute);
+        hourView.setOnWheelViewListener(new WheelView.OnWheelViewListener() {
+            @Override
+            public void onSelected(boolean isUserScroll, int selectedIndex, String item) {
+                selectedHour = item;
+            }
+        });
+        minuteView.setOnWheelViewListener(new WheelView.OnWheelViewListener() {
+            @Override
+            public void onSelected(boolean isUserScroll, int selectedIndex, String item) {
+                selectedMinute = item;
+            }
+        });
+
+        return layout;
+    }
+
+    @Override
+    protected void onSubmit() {
+        if (onDateTimePickListener != null) {
+            String year = getSelectedYear();
+            String month = getSelectedMonth();
+            String day = getSelectedDay();
+            switch (mode) {
+                case YEAR_MONTH:
+                    ((OnYearMonthPickListener) onDateTimePickListener).onDateTimePicked(year, month, selectedHour, selectedMinute);
+                    break;
+                case MONTH_DAY:
+                    ((OnMonthDayPickListener) onDateTimePickListener).onDateTimePicked(month, day, selectedHour, selectedMinute);
+                    break;
+                default:
+                    ((OnYearMonthDayTimePickListener) onDateTimePickListener).onDateTimePicked(year, month, day, selectedHour, selectedMinute);
+                    break;
+            }
+        }
+    }
+
+    /**
+     * Gets selected year.
+     *
+     * @return the selected year
+     */
+    public String getSelectedYear() {
+        return years.get(selectedYearIndex);
+    }
+
+    /**
+     * Gets selected month.
+     *
+     * @return the selected month
+     */
+    public String getSelectedMonth() {
+        return months.get(selectedMonthIndex);
+    }
+
+    /**
+     * Gets selected day.
+     *
+     * @return the selected day
+     */
+    public String getSelectedDay() {
+        return days.get(selectedDayIndex);
+    }
+
+    private int stringToYearMonthDay(String text) {
+        if (text.startsWith("0")) {
+            //截取掉前缀0以便转换为整数
+            text = text.substring(1);
+        }
+        return Integer.parseInt(text);
+    }
+
+    /**
+     * Sets label.
+     *
+     * @param yearLabel  the year label
+     * @param monthLabel the month label
+     * @param dayLabel   the day label
+     */
+    public void setLabel(String yearLabel, String monthLabel, String dayLabel, String hourLabel, String minuteLabel) {
+        this.yearLabel = yearLabel;
+        this.monthLabel = monthLabel;
+        this.dayLabel = dayLabel;
+        this.hourLabel = hourLabel;
+        this.minuteLabel = minuteLabel;
+    }
+
+    /**
+     * Sets range.
+     *
+     * @param startYear the start year
+     * @param endYear   the end year
+     */
+    public void setRange(int startYear, int endYear) {
+        years.clear();
+        for (int i = startYear; i <= endYear; i++) {
+            years.add(String.valueOf(i));
+        }
+    }
+
+    private int findItemIndex(ArrayList<String> items, int item) {
+        //折半查找有序元素的索引
+        int index = Collections.binarySearch(items, item, new Comparator<Object>() {
+            @Override
+            public int compare(Object lhs, Object rhs) {
+                String lhsStr = lhs.toString();
+                String rhsStr = rhs.toString();
+                lhsStr = lhsStr.startsWith("0") ? lhsStr.substring(1) : lhsStr;
+                rhsStr = rhsStr.startsWith("0") ? rhsStr.substring(1) : rhsStr;
+                return Integer.parseInt(lhsStr) - Integer.parseInt(rhsStr);
+            }
+        });
+        if (index < 0) {
+            index = 0;
+        }
+        return index;
+    }
+
+    /**
+     * @param year
+     * @param month
+     * @param day
+     * @param hour
+     * @param minute
+     */
+    public void setSelectedItem(int year, int month, int day, int hour, int minute) {
+        selectedYearIndex = findItemIndex(years, year);
+        selectedMonthIndex = findItemIndex(months, month);
+        selectedDayIndex = findItemIndex(days, day);
+        selectedHour = String.valueOf(hour);
+        selectedMinute = String.valueOf(minute);
+    }
+
+    /**
+     * Sets selected item.
+     *
+     * @param yearOrMonth the year or month
+     * @param monthOrDay  the month or day
+     */
+    public void setSelectedItem(int yearOrMonth, int monthOrDay) {
+        if (mode == MONTH_DAY) {
+            selectedMonthIndex = findItemIndex(months, yearOrMonth);
+            selectedDayIndex = findItemIndex(days, monthOrDay);
+        } else {
+            selectedYearIndex = findItemIndex(years, yearOrMonth);
+            selectedMonthIndex = findItemIndex(months, monthOrDay);
+        }
+    }
+
+
+    /**
+     * The interface On DateTime pick listener.
+     */
+    protected interface OnDateTimePickListener {
+
+    }
+
+    /**
+     * The interface On year month day pick listener.
+     */
+    public interface OnYearMonthDayTimePickListener extends OnDateTimePickListener {
+
+        /**
+         * On date picked.
+         *
+         * @param year  the year
+         * @param month the month
+         * @param day   the day
+         */
+        void onDateTimePicked(String year, String month, String day, String hour, String minute);
+
+    }
+
+    /**
+     * The interface On year month pick listener.
+     */
+    public interface OnYearMonthPickListener extends OnDateTimePickListener {
+
+        /**
+         * On date picked.
+         *
+         * @param year  the year
+         * @param month the month
+         */
+        void onDateTimePicked(String year, String month, String hour, String minute);
+
+    }
+
+    /**
+     * The interface On month day pick listener.
+     */
+    public interface OnMonthDayPickListener extends OnDateTimePickListener {
+
+        /**
+         * On date picked.
+         *
+         * @param month the month
+         * @param day   the day
+         */
+        void onDateTimePicked(String month, String day, String hour, String minute);
+
+    }
+
+    public void setOnDateTimePickListener(OnDateTimePickListener listener) {
+        this.onDateTimePickListener = listener;
+    }
+
+}

BIN
WeiChat/src/main/res/drawable-xhdpi/ic_meeting_address.png


BIN
WeiChat/src/main/res/drawable-xhdpi/ic_meeting_time.png


BIN
WeiChat/src/main/res/drawable-xhdpi/ic_metting_label.png


BIN
WeiChat/src/main/res/drawable-xhdpi/ic_metting_people.png


BIN
WeiChat/src/main/res/drawable-xxhdpi/ic_meeting_address.png


BIN
WeiChat/src/main/res/drawable-xxhdpi/ic_meeting_time.png


BIN
WeiChat/src/main/res/drawable-xxhdpi/ic_metting_label.png


BIN
WeiChat/src/main/res/drawable-xxhdpi/ic_metting_people.png


+ 1 - 1
WeiChat/src/main/res/layout/activity_client.xml

@@ -801,7 +801,7 @@
                     <com.github.mikephil.charting.charts.BarChart
                         android:id="@+id/crm_chart_bar"
                         android:layout_width="match_parent"
-                        android:layout_height="match_parent"
+                        android:layout_height="200dp"
                         android:layout_marginTop="10dp"
                         android:layout_marginBottom="10dp" />
                 </LinearLayout>

+ 2 - 0
WeiChat/src/main/res/layout/activity_meet_details.xml

@@ -32,6 +32,7 @@
             <TextView
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
+                android:textColor="@color/white"
                 android:layout_marginTop="2dp"
                 android:text="会议纪要" />
         </LinearLayout>
@@ -55,6 +56,7 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="2dp"
+                android:textColor="@color/white"
                 android:text="分配任务" />
         </LinearLayout>
     </LinearLayout>

+ 3 - 5
WeiChat/src/main/res/layout/activity_outoffice.xml

@@ -10,7 +10,8 @@
         android:layout_width="match_parent"
         android:layout_height="44dp"
         android:layout_alignParentBottom="true"
-        android:orientation="horizontal">
+        android:orientation="horizontal"
+        android:visibility="gone">
 
         <RadioButton
             android:id="@+id/sin_rb"
@@ -31,17 +32,14 @@
             android:button="@null"
             android:drawableTop="@drawable/outoffice_play"
             android:gravity="center"
-            android:text="足迹"
-            android:visibility="gone" />
+            android:text="足迹" />
 
     </RadioGroup>
-
     <View
         android:layout_width="match_parent"
         android:layout_height="2px"
         android:layout_above="@+id/top"
         android:background="@color/item_line" />
-
     <FrameLayout
         android:id="@+id/content_fl"
         android:layout_width="match_parent"

+ 2 - 2
WeiChat/src/main/res/layout/activity_task_add.xml

@@ -69,7 +69,7 @@
             <com.andreabaccega.widget.FormEditText xmlns:editTextFormExample="http://schemas.android.com/apk/res-auto"
                 android:id="@+id/tv_executive"
                 style="@style/form_relative_right_text"
-             
+                android:drawableRight="@drawable/nav_icon_search_default"
                 android:hint="请选择"
                 editTextFormExample:testType="nocheck" />
         </RelativeLayout>
@@ -275,9 +275,9 @@
                 android:id="@+id/tv_content"
                 style="@style/form_relative_right_text"
                 android:gravity="top|left"
+                android:hint="最多输入十五个字符"
                 android:minLines="4"
                 android:padding="5dp"
-                android:hint="最多输入十五个字符"
                 editTextFormExample:testType="nocheck" />
         </RelativeLayout>
 

+ 2 - 4
WeiChat/src/main/res/layout/fragment_outoffice.xml

@@ -45,7 +45,7 @@
             android:layout_height="wrap_content"
             android:layout_alignLeft="@+id/name_tv"
             android:layout_below="@+id/line"
-            android:layout_marginTop="10dp"
+            android:layout_marginTop="15dp"
             android:text="你今天完成签到"
             android:textSize="20dp" />
 
@@ -53,11 +53,9 @@
             android:id="@+id/num_tv"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_alignBaseline="@+id/tv"
-            android:layout_alignBottom="@+id/name_tv"
+            android:layout_alignBottom="@+id/tv"
             android:layout_marginLeft="5dp"
             android:layout_toRightOf="@+id/tv"
-            android:paddingBottom="5dp"
             android:text="0 "
             android:textColor="@color/mainList2"
             android:textSize="25dp" />

+ 10 - 5
WeiChat/src/main/res/layout/fragment_signin.xml

@@ -1,9 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:background="@color/oa_main"
-    android:layout_height="match_parent">
-
+    android:layout_height="match_parent"
+    android:background="@color/oa_main">
     <RelativeLayout
         android:id="@+id/top"
         android:layout_width="match_parent"
@@ -34,7 +33,6 @@
             android:padding="8dp"
             android:src="@drawable/setting" />
     </RelativeLayout>
-
     <LinearLayout
         android:id="@+id/oa_range_addr_rl"
         android:layout_width="match_parent"
@@ -58,7 +56,6 @@
             android:text="地点微调"
             android:textColor="@color/cadetblue" />
     </LinearLayout>
-
     <ImageView
         android:id="@+id/signin_btn"
         android:layout_width="wrap_content"
@@ -82,4 +79,12 @@
         android:focusable="false"
         android:longClickable="false"
         android:minHeight="100dp" />
+
+    <View
+        android:layout_width="2px"
+        android:layout_height="match_parent"
+        android:layout_above="@+id/signin_btn"
+        android:layout_below="@+id/top"
+        android:layout_centerHorizontal="true"
+        android:background="@color/item_line" />
 </RelativeLayout>

+ 1 - 1
WeiChat/src/main/res/layout/item_signin_list.xml

@@ -11,7 +11,7 @@
         android:background="@drawable/signin_point" />
 
     <View
-        android:layout_width="6px"
+        android:layout_width="2px"
         android:layout_height="180dp"
         android:layout_below="@+id/point"
         android:layout_centerHorizontal="true"

+ 11 - 8
WeiChat/src/main/res/layout/meet_select_item.xml

@@ -1,12 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
-    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="@dimen/item_height"
     android:background="@color/bg_main"
-    android:paddingBottom="8dp"
-    android:paddingLeft="10dp"
-    android:paddingRight="10dp"
-    android:paddingTop="8dp">
+    android:padding="8dp">
 
     <CheckBox
         android:id="@+id/select_scb"
@@ -17,13 +14,20 @@
         android:drawableLeft="@drawable/oa_rb_button_bg"
         android:padding="10dp" />
 
+    <ImageView
+        android:id="@+id/head_img"
+        android:layout_width="38dp"
+        android:layout_height="38dp"
+        android:layout_centerVertical="true"
+        android:layout_toRightOf="@id/select_scb"
+        android:src="@drawable/friend_u" />
+
     <TextView
         android:id="@+id/name_tv"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginLeft="10dp"
-        android:layout_toRightOf="@+id/select_scb"
-        android:text="名字"
+        android:layout_toRightOf="@+id/head_img"
         android:textColor="@color/text_main"
         android:textSize="@dimen/text_main" />
 
@@ -34,7 +38,6 @@
         android:layout_alignLeft="@+id/name_tv"
         android:layout_below="@+id/name_tv"
         android:layout_marginTop="8dp"
-        android:text="id:id"
         android:textColor="@color/text_hine"
         android:textSize="@dimen/text_hine" />
 </RelativeLayout>

+ 24 - 15
WeiChat/src/main/res/layout/oa_meeting_item.xml

@@ -21,21 +21,32 @@
         android:textColor="@color/hintColor"
         android:textSize="@dimen/text_hine" />
 
+    <ImageView
+        android:id="@+id/oa_meeting_start_tag"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/oa_meeting_name_tv"
+        android:layout_marginTop="20dp"
+        android:drawablePadding="5dp"
+        android:src="@drawable/ic_meeting_time" />
+
     <TextView
         android:id="@+id/oa_meeting_start"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_below="@id/oa_meeting_name_tv"
+        android:layout_marginLeft="5dp"
         android:layout_marginTop="20dp"
-        android:drawableLeft="@drawable/ic_meeting_time"
+        android:layout_toRightOf="@id/oa_meeting_start_tag"
         android:drawablePadding="5dp"
         android:gravity="center_vertical"
-        android:textSize="@dimen/text_hine" />
+        android:textSize="@dimen/text_main" />
 
     <TextView
         android:id="@+id/oa_meeting_start_date"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
+        android:layout_alignLeft="@id/oa_meeting_start"
         android:layout_below="@id/oa_meeting_start"
         android:layout_marginTop="5dp"
         android:gravity="center_vertical"
@@ -58,8 +69,8 @@
         android:layout_height="wrap_content"
         android:layout_alignTop="@+id/oa_meeting_start_date"
         android:layout_toRightOf="@+id/oa_meeting_line"
-        android:gravity="center_vertical"
         android:drawableLeft="@null"
+        android:gravity="center_vertical"
         android:textSize="30sp" />
 
     <TextView
@@ -68,10 +79,10 @@
         android:layout_height="wrap_content"
         android:layout_above="@id/oa_meeting_end_date"
         android:layout_alignLeft="@+id/oa_meeting_end_date"
+        android:layout_alignTop="@id/oa_meeting_start"
         android:layout_marginBottom="5dp"
         android:gravity="center_vertical"
-        android:layout_alignTop="@id/oa_meeting_start"
-        android:textSize="@dimen/text_hine" />
+        android:textSize="@dimen/text_main" />
 
     <TextView
         android:id="@+id/oa_meeting_addr"
@@ -79,10 +90,10 @@
         android:layout_height="wrap_content"
         android:layout_below="@+id/oa_meeting_start_date"
         android:layout_marginTop="10dp"
-        android:text="会议地点"
         android:drawableLeft="@drawable/ic_meeting_address"
-        android:gravity="center_vertical"
         android:drawablePadding="5dp"
+        android:gravity="center_vertical"
+        android:text="会议地点"
         android:textColor="@color/hintColor" />
 
     <TextView
@@ -91,8 +102,7 @@
         android:layout_height="wrap_content"
         android:layout_alignTop="@+id/oa_meeting_addr"
         android:layout_marginLeft="10dp"
-        android:layout_toRightOf="@+id/oa_meeting_addr"
-        android:text="三楼会议室" />
+        android:layout_toRightOf="@+id/oa_meeting_addr" />
 
     <TextView
         android:id="@+id/oa_meeting_user"
@@ -100,10 +110,10 @@
         android:layout_height="wrap_content"
         android:layout_below="@+id/oa_meeting_addr"
         android:layout_marginTop="10dp"
-        android:text="发  起  人"
         android:drawableLeft="@drawable/ic_metting_people"
-        android:gravity="center_vertical"
         android:drawablePadding="5dp"
+        android:gravity="center_vertical"
+        android:text="发  起  人"
         android:textColor="@color/hintColor" />
 
     <TextView
@@ -112,8 +122,7 @@
         android:layout_height="wrap_content"
         android:layout_alignTop="@+id/oa_meeting_user"
         android:layout_marginLeft="10dp"
-        android:layout_toRightOf="@+id/oa_meeting_user"
-        android:text="张建国" />
+        android:layout_toRightOf="@+id/oa_meeting_user" />
 
     <TextView
         android:id="@+id/oa_meeting_tag"
@@ -121,10 +130,10 @@
         android:layout_height="wrap_content"
         android:layout_below="@+id/oa_meeting_user"
         android:layout_marginTop="10dp"
-        android:text="会议纪要"
         android:drawableLeft="@drawable/ic_metting_label"
-        android:gravity="center_vertical"
         android:drawablePadding="5dp"
+        android:gravity="center_vertical"
+        android:text="会议纪要"
         android:textColor="@color/hintColor" />
 
     <TextView