|
|
@@ -36,28 +36,37 @@ public class AutoErpService extends Service {
|
|
|
public static final String SAVE_WORK_ACTION = "SAVE_WORK_ACTION";
|
|
|
public static final String SAVE_MISSION_ACTION = "SAVE_MISSION_ACTION";
|
|
|
public static final String LOAD_MISSION = "LOAD_MISSION";
|
|
|
+ public static final String UPDATA_ERP_CHANGE = "com.app.home.update";//更新账套信息
|
|
|
+ public static final String CHANGE_WORK_TASK = "CHANGE_WORK_TASK";//自动打卡任务变更
|
|
|
+ public static final String CHANGE_MISSION_TASK = "CHANGE_MISSION_TASK";//自动外勤任务变更
|
|
|
+ public static final String INIT_MISSION_TASK = "INIT_MISSION_TASK";//初始化外勤签到任务
|
|
|
|
|
|
- public static final int STATUS_SIGNING = 0x11;//自动打卡
|
|
|
- public static final int STATUS_WORK_ALARM = 0x12;//上班提醒
|
|
|
- public static final int STATUS_OFF_ALARM = 0x13;//下班提醒
|
|
|
- public static final int STATUS_MISSION = 0x14;//外勤签到
|
|
|
- public static final int STATUS_LEAVE_ALARM = 0x15;//离开提醒
|
|
|
+
|
|
|
+ public final int STATUS_SIGNING = 0x11;//自动打卡
|
|
|
+ public final int STATUS_WORK_ALARM = 0x12;//上班提醒
|
|
|
+ public final int STATUS_OFF_ALARM = 0x13;//下班提醒
|
|
|
+ public final int STATUS_MISSION = 0x14;//外勤签到
|
|
|
+ public final int STATUS_LEAVE_ALARM = 0x15;//离开提醒
|
|
|
|
|
|
|
|
|
private ReckonAutoUtil reckonAutoUtil;//计算工具
|
|
|
private NotificationManage notificationManage;//通知管理器
|
|
|
|
|
|
-
|
|
|
- private boolean isAlarm;//是否打卡提醒
|
|
|
- private boolean isAuto;//是否自动打卡
|
|
|
-
|
|
|
private final long MINUTE = 60 * 1000;//一分钟的时间戳
|
|
|
private long workInterval = MINUTE;//计算循环的时间
|
|
|
- private long missionInterval = 2 * MINUTE;//计算循环的时间
|
|
|
+ private long missionInterval = 6 * MINUTE;//计算循环的时间
|
|
|
private AutoErpSigninUitl signinUitl;
|
|
|
|
|
|
private final String[] flags = {
|
|
|
- SAVE_WORK_ACTION, SAVE_MISSION_ACTION, LOAD_MISSION
|
|
|
+ SAVE_WORK_ACTION,//保存班次数据成功
|
|
|
+ SAVE_MISSION_ACTION, //保存外勤计划数据成功
|
|
|
+ LOAD_MISSION,//下拉外勤数据
|
|
|
+
|
|
|
+ CHANGE_WORK_TASK,//下拉外勤数据
|
|
|
+ CHANGE_MISSION_TASK,//下拉外勤数据
|
|
|
+ INIT_MISSION_TASK,//初始化外勤签到任务
|
|
|
+
|
|
|
+ UPDATA_ERP_CHANGE//更换账套
|
|
|
};
|
|
|
private Handler handler = new Handler() {
|
|
|
@Override
|
|
|
@@ -93,6 +102,8 @@ public class AutoErpService extends Service {
|
|
|
|
|
|
private boolean isWorkRuning = false;
|
|
|
private boolean isMissionRuning = false;
|
|
|
+ private boolean canWork = false;
|
|
|
+ private boolean canMission = false;
|
|
|
|
|
|
private BroadcastReceiver updateReceiver = new BroadcastReceiver() {
|
|
|
@Override
|
|
|
@@ -100,16 +111,32 @@ public class AutoErpService extends Service {
|
|
|
try {
|
|
|
if (intent == null || StringUtils.isEmpty(intent.getAction())) return;
|
|
|
if (intent.getAction().equals(SAVE_WORK_ACTION)) {
|
|
|
+ log(SAVE_WORK_ACTION);
|
|
|
if (!isWorkRuning)
|
|
|
startWorkTask();
|
|
|
- } else if (intent.getAction().equals(SAVE_MISSION_ACTION)) {
|
|
|
- if (!isMissionRuning)
|
|
|
+ } else if (intent.getAction().equals(SAVE_MISSION_ACTION)) {//1.保存新增外勤计划成功
|
|
|
+ log(SAVE_MISSION_ACTION);
|
|
|
+ if (!isMissionRuning) {
|
|
|
+ canMission = true;
|
|
|
startMissionTask();
|
|
|
+ }
|
|
|
} else if (intent.getAction().equals(LOAD_MISSION)) {
|
|
|
+ log(LOAD_MISSION);
|
|
|
signinUitl.loadMissionPlan();
|
|
|
+ } else if (intent.getAction().equals(UPDATA_ERP_CHANGE)) {
|
|
|
+ log(UPDATA_ERP_CHANGE);
|
|
|
+ init();
|
|
|
+ } else if (intent.getAction().equals(CHANGE_WORK_TASK)) {
|
|
|
+ log(CHANGE_WORK_TASK);
|
|
|
+ canWork = intent.getBooleanExtra(CHANGE_WORK_TASK, true);
|
|
|
+ } else if (intent.getAction().equals(CHANGE_MISSION_TASK)) {
|
|
|
+ log(CHANGE_MISSION_TASK);
|
|
|
+ canMission = intent.getBooleanExtra(CHANGE_MISSION_TASK, true);
|
|
|
+ }else if (intent.getAction().equals(INIT_MISSION_TASK)){
|
|
|
+ initMission();
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
-
|
|
|
+ if (e != null) log("BroadcastReceiver Exception=" + e.getMessage());
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
@@ -126,7 +153,6 @@ public class AutoErpService extends Service {
|
|
|
initBroadcast();//初始化广播接受器
|
|
|
initDB();//初始化数据库数据,1.删除昨天数据 2.下拉当天数据
|
|
|
init();//初始化
|
|
|
- initTask();//初始化任务
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
@@ -151,15 +177,6 @@ public class AutoErpService extends Service {
|
|
|
registerReceiver(updateReceiver, filter);
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 初始化任务
|
|
|
- * 1.判断任务是否应该启动
|
|
|
- * 2.启动任务
|
|
|
- */
|
|
|
- private void initTask() throws Exception {
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
|
|
|
/**
|
|
|
* 开启自动打卡和提醒任务
|
|
|
@@ -179,7 +196,9 @@ public class AutoErpService extends Service {
|
|
|
isWorkRuning = false;
|
|
|
break;
|
|
|
}
|
|
|
- if (isAuto) {
|
|
|
+ log("startWorkTask run");
|
|
|
+ //是否提醒
|
|
|
+ if (CommonUtil.getSharedPreferencesBoolean(MyApplication.getInstance(), AppConfig.AUTO_SIGNIN, true)) {
|
|
|
WorkModel model = getReckonAutoUtil().reckonAutoWork();
|
|
|
if (model != null) {
|
|
|
log("符合打卡");
|
|
|
@@ -191,8 +210,8 @@ public class AutoErpService extends Service {
|
|
|
message.setData(bundle);
|
|
|
handler.sendMessage(message);
|
|
|
}
|
|
|
- } else if (isAlarm) {//提醒 1.离开办公室 2.上班提醒 3.下班提醒
|
|
|
- int type = getReckonAutoUtil().reckonAlarm(isAlarm, workInterval);
|
|
|
+ } else if (CommonUtil.getSharedPreferencesBoolean(MyApplication.getInstance(), AppConfig.ALARMA_CLICK, false)) {//提醒 1.离开办公室 2.上班提醒 3.下班提醒
|
|
|
+ int type = getReckonAutoUtil().reckonAlarm(workInterval);
|
|
|
if (type == 1) {
|
|
|
//TODO 符合离开办公室提醒
|
|
|
handler.sendEmptyMessage(STATUS_LEAVE_ALARM);
|
|
|
@@ -236,6 +255,8 @@ public class AutoErpService extends Service {
|
|
|
isMissionRuning = false;
|
|
|
break;
|
|
|
}
|
|
|
+
|
|
|
+ log("startMissionTask run");
|
|
|
List<MissionModel> plans = MissionDao.getInstance().queryByEnCode();
|
|
|
log("自动外勤 plans==" + (ListUtils.isEmpty(plans) ? 0 : plans.size()));
|
|
|
//符合外勤判断
|
|
|
@@ -298,6 +319,7 @@ public class AutoErpService extends Service {
|
|
|
public void result(int code, String result) {
|
|
|
boolean isNeedAutoOut = PreferenceUtils.getBoolean(AppConfig.AUTO_MISSION, false);
|
|
|
if (isNeedAutoOut) {
|
|
|
+ canMission = true;
|
|
|
signinUitl.loadMissionPlan();
|
|
|
} else {
|
|
|
try {
|
|
|
@@ -315,10 +337,11 @@ public class AutoErpService extends Service {
|
|
|
private void initWork() {
|
|
|
//判断是否是自动打卡
|
|
|
//是否自动打卡
|
|
|
- isAlarm = CommonUtil.getSharedPreferencesBoolean(MyApplication.getInstance(), AppConfig.ALARMA_CLICK, false);
|
|
|
+ boolean isAlarm = CommonUtil.getSharedPreferencesBoolean(MyApplication.getInstance(), AppConfig.ALARMA_CLICK, false);
|
|
|
//是否提醒
|
|
|
- isAuto = CommonUtil.getSharedPreferencesBoolean(MyApplication.getInstance(), AppConfig.AUTO_SIGNIN, true);
|
|
|
+ boolean isAuto = CommonUtil.getSharedPreferencesBoolean(MyApplication.getInstance(), AppConfig.AUTO_SIGNIN, true);
|
|
|
if (isAlarm || isAuto) {
|
|
|
+ canWork = true;
|
|
|
//TODO 下拉班次数据和是否本机账号
|
|
|
signinUitl.loadWorkData();
|
|
|
} else {
|
|
|
@@ -339,11 +362,11 @@ public class AutoErpService extends Service {
|
|
|
}
|
|
|
|
|
|
private boolean isCanMission() {
|
|
|
- return true;
|
|
|
+ return canMission;
|
|
|
}
|
|
|
|
|
|
private boolean isCanWork() {
|
|
|
- return true;
|
|
|
+ return canWork;
|
|
|
}
|
|
|
|
|
|
/**
|