package cn.flightfeather.thirdapp.util;
|
|
import android.annotation.SuppressLint;
|
|
import com.ping.greendao.gen.DaoSession;
|
import com.ping.greendao.gen.DomainitemDao;
|
|
import java.util.Calendar;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.List;
|
|
import cn.flightfeather.thirdapp.R;
|
import cn.flightfeather.thirdapp.bean.Domainitem;
|
|
/**
|
* Created by linli on 2018/1/25.
|
*/
|
|
public class CommonUtils {
|
public static List<Domainitem> getDomainItemByCalalogGuid(DaoSession daoSession, String guid) {
|
return daoSession.getDomainitemDao().queryBuilder()
|
.where(DomainitemDao.Properties.Dcguid.eq(guid))
|
.orderAsc(DomainitemDao.Properties.Index).list();
|
}
|
|
public static HashMap<Byte, Domainitem> getDomainItemMapByCalalogGuid(DaoSession daoSession, String guid) {
|
HashMap<Byte, Domainitem> map = new HashMap<>();
|
List<Domainitem> list = daoSession.getDomainitemDao().queryBuilder()
|
.where(DomainitemDao.Properties.Dcguid.eq(guid))
|
.orderAsc(DomainitemDao.Properties.Index).list();
|
for (Domainitem item : list) {
|
map.put(Byte.parseByte(item.getValue()), item);
|
}
|
return map;
|
}
|
|
// 获得本周一0点时间
|
@SuppressLint("WrongConstant")
|
public static Date getTimesWeekmorning() {
|
Calendar cal = Calendar.getInstance();
|
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
|
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
|
return cal.getTime();
|
}
|
|
// 获得本周日24点时间
|
public static Date getTimesWeeknight() {
|
Calendar cal = Calendar.getInstance();
|
cal.setTime(getTimesWeekmorning());
|
cal.add(Calendar.WEEK_OF_MONTH, 1);
|
cal.add(Calendar.SECOND, -1);
|
return cal.getTime();
|
}
|
|
// 获得上周一0点时间
|
public static Date getTimesLastWeekmorning() {
|
Calendar cal = Calendar.getInstance();
|
cal.setTime(getTimesWeekmorning());
|
cal.add(Calendar.WEEK_OF_MONTH, -1);
|
return cal.getTime();
|
}
|
// 获得上周日24点时间
|
public static Date getTimesLastWeeknight() {
|
Calendar cal = Calendar.getInstance();
|
cal.setTime(getTimesWeeknight());
|
cal.add(Calendar.WEEK_OF_MONTH, -1);
|
return cal.getTime();
|
}
|
|
// 获得本月第一天0点时间
|
public static Date getTimesMonthmorning() {
|
Calendar cal = Calendar.getInstance();
|
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
|
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
|
return cal.getTime();
|
}
|
|
// 获得本月最后一天24点时间
|
public static Date getTimesMonthnight() {
|
Calendar cal = Calendar.getInstance();
|
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
|
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
|
cal.set(Calendar.HOUR_OF_DAY, 24);
|
cal.add(Calendar.SECOND, -1);
|
return cal.getTime();
|
}
|
|
// 获得上月第一天0点时间
|
public static Date getTimesLastMonthmorning() {
|
Calendar cal = Calendar.getInstance();
|
cal.setTime(getTimesMonthmorning());
|
cal.add(Calendar.MONTH, -1);
|
return cal.getTime();
|
}
|
|
// 获得上月最后一天24点时间
|
public static Date getTimesLastMonthnight() {
|
Calendar cal = Calendar.getInstance();
|
cal.setTime(getTimesMonthnight());
|
cal.add(Calendar.MONTH, -1);
|
return cal.getTime();
|
}
|
|
// 获得本季度第一天0点时间
|
public static Date getTimesSeasonmorning() {
|
Calendar cal = Calendar.getInstance();
|
int currentMonth = cal.get(Calendar.MONTH) + 1;
|
cal.setTime(getTimesMonthmorning());
|
if (currentMonth >= 1 && currentMonth <= 3)
|
cal.set(Calendar.MONTH, 0);
|
else if (currentMonth >= 4 && currentMonth <= 6)
|
cal.set(Calendar.MONTH, 3);
|
else if (currentMonth >= 7 && currentMonth <= 9)
|
cal.set(Calendar.MONTH, 6);
|
else if (currentMonth >= 10 && currentMonth <= 12)
|
cal.set(Calendar.MONTH, 9);
|
return cal.getTime();
|
}
|
|
// 获得本季度最后一天24点时间
|
public static Date getTimesSeasonnight() {
|
Calendar cal = Calendar.getInstance();
|
int currentMonth = cal.get(Calendar.MONTH) + 1;
|
cal.setTime(getTimesMonthnight());
|
if (currentMonth >= 1 && currentMonth <= 3) {
|
cal.set(Calendar.MONTH, 2);
|
cal.set(Calendar.DATE, 31);
|
} else if (currentMonth >= 4 && currentMonth <= 6) {
|
cal.set(Calendar.MONTH, 5);
|
cal.set(Calendar.DATE, 30);
|
} else if (currentMonth >= 7 && currentMonth <= 9) {
|
cal.set(Calendar.MONTH, 8);
|
cal.set(Calendar.DATE, 30);
|
} else if (currentMonth >= 10 && currentMonth <= 12) {
|
cal.set(Calendar.MONTH, 11);
|
cal.set(Calendar.DATE, 31);
|
}
|
return cal.getTime();
|
}
|
|
// 获得上季度第一天0点时间
|
public static Date getTimesLastSeasonmorning() {
|
Calendar cal = Calendar.getInstance();
|
cal.setTime(getTimesSeasonmorning());
|
int currentMonth = cal.get(Calendar.MONTH) + 1;
|
if (currentMonth >= 1 && currentMonth <= 3) {
|
cal.add(Calendar.YEAR, -1);
|
cal.set(Calendar.MONTH, 9);
|
}
|
else if (currentMonth >= 4 && currentMonth <= 6)
|
cal.set(Calendar.MONTH, 0);
|
else if (currentMonth >= 7 && currentMonth <= 9)
|
cal.set(Calendar.MONTH, 3);
|
else if (currentMonth >= 10 && currentMonth <= 12)
|
cal.set(Calendar.MONTH, 7);
|
return cal.getTime();
|
}
|
|
// 获得上季度最后一天24点时间
|
public static Date getTimesLastSeasonnight() {
|
Calendar cal = Calendar.getInstance();
|
cal.setTime(getTimesSeasonnight());
|
int currentMonth = cal.get(Calendar.MONTH) + 1;
|
if (currentMonth >= 1 && currentMonth <= 3) {
|
cal.add(Calendar.YEAR, -1);
|
cal.set(Calendar.MONTH, 11);
|
cal.set(Calendar.DATE, 31);
|
} else if (currentMonth >= 4 && currentMonth <= 6) {
|
cal.set(Calendar.MONTH, 2);
|
cal.set(Calendar.DATE, 31);
|
} else if (currentMonth >= 7 && currentMonth <= 9) {
|
cal.set(Calendar.MONTH, 5);
|
cal.set(Calendar.DATE, 30);
|
} else if (currentMonth >= 10 && currentMonth <= 12) {
|
cal.set(Calendar.MONTH, 8);
|
cal.set(Calendar.DATE, 30);
|
}
|
return cal.getTime();
|
}
|
|
// 获得今年第一天0点时间
|
public static Date getCurrentYearStartTime() {
|
Calendar cal = Calendar.getInstance();
|
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
|
cal.set(Calendar.DAY_OF_YEAR, cal.getActualMinimum(Calendar.YEAR));
|
return cal.getTime();
|
}
|
|
// 获得今年最后一天24点时间
|
public static Date getCurrentYearEndTime() {
|
Calendar cal = Calendar.getInstance();
|
cal.setTime(getCurrentYearStartTime());
|
cal.add(Calendar.YEAR, 1);
|
cal.add(Calendar.SECOND, -1);
|
return cal.getTime();
|
}
|
|
// 获得去年第一天0点时间
|
public static Date getLastYearStartTime() {
|
Calendar cal = Calendar.getInstance();
|
cal.setTime(getCurrentYearStartTime());
|
cal.add(Calendar.YEAR, -1);
|
return cal.getTime();
|
}
|
|
// 获得去年最后一天0点时间
|
public static Date getLastYearEndTime() {
|
Calendar cal = Calendar.getInstance();
|
cal.setTime(getCurrentYearEndTime());
|
cal.add(Calendar.YEAR, -1);
|
return cal.getTime();
|
}
|
|
/**
|
* 工作日查询
|
*
|
* @param cal 日历对象
|
* @param isStartTime 是否为开始时间,若为开始时间,则工作日需加,若为结束时间,工作日需减
|
* @return cal 日历对象
|
*/
|
public static Calendar findFirstWorkingDay(Calendar cal, boolean isStartTime) {
|
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
|
if (!(dayOfWeek > 0 && dayOfWeek < 6)) {
|
if (dayOfWeek == 0) {
|
if (isStartTime) {
|
cal.add(Calendar.DAY_OF_YEAR, 1);
|
} else {
|
cal.add(Calendar.DAY_OF_YEAR, -2);
|
}
|
} else {
|
if (isStartTime) {
|
cal.add(Calendar.DAY_OF_YEAR, 2);
|
} else {
|
cal.add(Calendar.DAY_OF_YEAR, -1);
|
}
|
}
|
}
|
return cal;
|
}
|
|
/**
|
* 直辖市判断
|
*
|
* @param s 省市名称
|
* @return 直辖市 返回 true;
|
*/
|
public static boolean isMDUCG(String s) {
|
return s.equals("北京市") || s.equals("上海市")
|
|| s.equals("天津市") || s.equals("重庆市");
|
}
|
|
public static String getAmapCityCode(String code) {
|
String cityCode = null;
|
if (code == null) return null;
|
switch (code) {
|
case "3100":
|
cityCode = "021";
|
break;
|
default:
|
cityCode = "021";
|
}
|
return cityCode;
|
}
|
|
public static boolean checkCellphone(String cellphone) {
|
String regex = "^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\\d{8}$";
|
return cellphone.matches(regex);
|
}
|
|
/**
|
* 验证固话号码
|
*
|
* @param telephone
|
* @return
|
*/
|
public static boolean checkTelephone(String telephone) {
|
String regex = "^(0\\d{2}-\\d{8}(-\\d{1,4})?)|(0\\d{3}-\\d{7,8}(-\\d{1,4})?)$";
|
return telephone.matches(regex);
|
}
|
|
/**
|
* 根据任务类型返回图标
|
* @param type 任务类型
|
* @return icon id
|
*/
|
public static int getIconByTaskType(String type){
|
switch (type){
|
case Constant.TASK_TYPE_1:
|
// return R.drawable.icon_inspection_run;
|
return R.drawable.icon_inspection_run_2;
|
case Constant.TASK_TYPE_2:
|
// return R.drawable.icon_uav;
|
return R.drawable.icon_uav_2;
|
case Constant.TASK_TYPE_3:
|
return R.drawable.icon_patrol_check;
|
case Constant.TASK_TYPE_4:
|
return R.drawable.icon_law_support;
|
case Constant.TASK_TYPE_5:
|
return R.drawable.icon_monitor_operation;
|
case Constant.TASK_TYPE_6:
|
return R.drawable.icon_manage_operation;
|
case Constant.TASK_TYPE_7:
|
return R.drawable.icon_transform;
|
case Constant.TASK_TYPE_8:
|
return R.drawable.icon_manage;
|
case Constant.TASK_TYPE_9:
|
return R.drawable.icon_consult;
|
case Constant.TASK_TYPE_99:
|
return R.drawable.icon_others_scene;
|
default:
|
return 0;
|
}
|
}
|
|
/**
|
* 根据场景类型返回图标
|
* @param type 场景类型
|
* @return icon id
|
*/
|
public static int getIconBySceneType(String type) {
|
switch (type) {
|
case Constant.SCENE_TYPE_SITE:
|
return R.drawable.icon_construction;
|
case Constant.SCENE_TYPE_WHARF:
|
return R.drawable.icon_wharf;
|
case Constant.SCENE_TYPE_MIXING_PLANT:
|
return R.drawable.icon_mixing_station;
|
case Constant.SCENE_TYPE4:
|
return R.drawable.icon_industrial;
|
case Constant.SCENE_TYPE5:
|
return R.drawable.icon_dining;
|
case Constant.SCENE_TYPE6:
|
return R.drawable.icon_car_service;
|
case Constant.SCENE_TYPE7:
|
return R.drawable.icon_dust;
|
case Constant.SCENE_TYPE8:
|
return R.drawable.icon_air_quality;
|
case Constant.SCENE_TYPE9:
|
return R.drawable.icon_road_dust;
|
case Constant.SCENE_TYPE10:
|
return R.drawable.icon_road;
|
case Constant.SCENE_TYPE11:
|
return R.drawable.icon_river;
|
case Constant.SCENE_TYPE12:
|
return R.drawable.icon_industrial_park;
|
case Constant.SCENE_TYPE13:
|
return R.drawable.icon_random_scene;
|
case Constant.SCENE_TYPE99:
|
return R.drawable.icon_others_scene;
|
default:
|
return 0;
|
}
|
}
|
|
/**
|
* 根据问题类型返回图标
|
* @param sceneType 场景类型
|
* @param type 问题类型
|
* @return
|
*/
|
public static int getIconByProblemType(String sceneType, String type) {
|
if (sceneType.equals(Constant.SCENE_TYPE_SITE)) {
|
switch (type) {
|
case "1":
|
return R.drawable.selector_button_problem_muck;
|
case "2":
|
return R.drawable.selector_button_problem_road;
|
case "3":
|
return R.drawable.selector_button_problem_vehicle;
|
case "4":
|
return R.drawable.selector_button_problem_dry_mortar_machine;
|
case "5":
|
return R.drawable.selector_button_problem_building_rubbish;
|
case "6":
|
return R.drawable.selector_button_problem_bulk_material;
|
case "7":
|
return R.drawable.selector_button_problem_protect;
|
case "8":
|
return R.drawable.selector_button_problem_dust_equipment;
|
case "9":
|
return R.drawable.selector_button_problem_attitude;
|
case "10":
|
return R.drawable.selector_button_problem_others;
|
default:
|
return R.drawable.selector_button_problem_others;
|
}
|
} else if (sceneType.equals(Constant.SCENE_TYPE_WHARF)){
|
switch (type) {
|
case "1":
|
return R.drawable.selector_button_problem_road;
|
case "2":
|
return R.drawable.selector_button_problem_vehicle;
|
case "3":
|
return R.drawable.selector_button_problem_bulk_material;
|
case "4":
|
return R.drawable.selector_button_problem_protect;
|
case "5":
|
return R.drawable.selector_button_problem_dust_equipment;
|
case "6":
|
return R.drawable.selector_button_problem_dedusting;
|
case "7":
|
return R.drawable.selector_button_problem_sewage;
|
case "8":
|
return R.drawable.selector_button_problem_attitude;
|
case "9":
|
return R.drawable.selector_button_problem_others;
|
default:
|
return R.drawable.selector_button_problem_others;
|
}
|
}
|
return R.drawable.selector_button_problem_others;
|
}
|
|
public static String getProblemTypeGUID(String sceneType) {
|
switch (sceneType) {
|
case Constant.SCENE_TYPE_SITE:
|
return Domain.DOMAINGUID_SITE_PROBLEM_TYPE;
|
case Constant.SCENE_TYPE_WHARF:
|
return Domain.DOMAINGUID_WHARF_PROBLEM_TYPE;
|
case Constant.SCENE_TYPE_MIXING_PLANT:
|
return Domain.DOMAINGUID_MIXING_PLANT_PROBLEM_TYPE;
|
// FIXME: 2019/2/15 目前只有前三种类型在用
|
case Constant.SCENE_TYPE4:
|
return Domain.DOMAINGUID_SITE_PROBLEM_TYPE;
|
case Constant.SCENE_TYPE5:
|
return Domain.DOMAINGUID_SITE_PROBLEM_TYPE;
|
case Constant.SCENE_TYPE6:
|
return Domain.DOMAINGUID_SITE_PROBLEM_TYPE;
|
case Constant.SCENE_TYPE7:
|
return Domain.DOMAINGUID_SITE_PROBLEM_TYPE;
|
case Constant.SCENE_TYPE8:
|
return Domain.DOMAINGUID_SITE_PROBLEM_TYPE;
|
case Constant.SCENE_TYPE9:
|
return Domain.DOMAINGUID_SITE_PROBLEM_TYPE;
|
case Constant.SCENE_TYPE10:
|
return Domain.DOMAINGUID_SITE_PROBLEM_TYPE;
|
case Constant.SCENE_TYPE11:
|
return Domain.DOMAINGUID_SITE_PROBLEM_TYPE;
|
case Constant.SCENE_TYPE12:
|
return Domain.DOMAINGUID_SITE_PROBLEM_TYPE;
|
case Constant.SCENE_TYPE13:
|
return Domain.DOMAINGUID_SITE_PROBLEM_TYPE;
|
case Constant.SCENE_TYPE99:
|
return Domain.DOMAINGUID_SITE_PROBLEM_TYPE;
|
default:
|
return Domain.DOMAINGUID_SITE_PROBLEM_TYPE;
|
}
|
}
|
|
public static String getSubStr(String strData, int startIndex,
|
String endIndexStr) {
|
int endIndex = strData.indexOf(endIndexStr, startIndex);
|
return strData.substring(startIndex, endIndex+1);
|
}
|
|
public static byte intToByte(int x) {
|
return (byte) x;
|
}
|
}
|