|
@@ -86,13 +86,13 @@ public class WODispatchPlanTmDoBizFun {
|
|
|
andWheres.put("plan_id", planId);
|
|
|
List<DispatchCmdBatchItemModel> itemModels = getItemDBService()
|
|
|
.listAllWithsExByDispoal("", "", andWheres, new HashMap<>(), "handle_start_time", "");
|
|
|
- if(model.getNextTakeTime()!=null&&model.getNextTakeTime()>0L
|
|
|
- &&model.getPlanStatus()==1
|
|
|
- &&(checkTm <=nowLoc&&isWithinFiveMinutes(checkTm,nowLoc))
|
|
|
+ if(checkTm == model.getNextTakeTime()
|
|
|
&&!CollectionUtils.isEmpty(itemModels)){
|
|
|
//TODO 满足以上条件就派发调用远程接口生成指令工单
|
|
|
+ JSONArray jsonArray = new JSONArray();
|
|
|
+
|
|
|
for (DispatchCmdBatchItemModel item:itemModels) {
|
|
|
- Map<String, Object> planCommandParam = new HashMap<>();
|
|
|
+ JSONObject planCommandParam = new JSONObject();
|
|
|
planCommandParam.put("type", 1);
|
|
|
planCommandParam.put("title", model.getTitle());
|
|
|
planCommandParam.put("zoneId", model.getZoneId());
|
|
@@ -118,10 +118,11 @@ public class WODispatchPlanTmDoBizFun {
|
|
|
}
|
|
|
planCommandParam.put("sugBeginTime",sugBeginTime);
|
|
|
String endTimeStr = item.getHandleEndTime();
|
|
|
- planCommandParam.put("sugEndTime", LocalDateTime.now()
|
|
|
+ planCommandParam.put("sugEndTime", TimeTool.convertDateStr2UTC(LocalDateTime.now()
|
|
|
.withHour(Integer.valueOf(endTimeStr.split(":")[0]))
|
|
|
.withMinute(Integer.valueOf(endTimeStr.split(":")[1]))
|
|
|
- .withSecond(Integer.valueOf(endTimeStr.split(":")[2])));
|
|
|
+ .withSecond(Integer.valueOf(endTimeStr.split(":")[2]))
|
|
|
+ .format(DateTimeFormatter.ofPattern(TimeTool.TIMESTAMP_FORMAT))));
|
|
|
List<Map<String,Object>> suggestions = new ArrayList<>();
|
|
|
if(!CollectionUtils.isEmpty(item.getDispoalModels())){
|
|
|
for(DispatchCmdBatchDispoalModel dispoalModel:item.getDispoalModels()) {
|
|
@@ -134,27 +135,35 @@ public class WODispatchPlanTmDoBizFun {
|
|
|
suggestions.add(sug);
|
|
|
}
|
|
|
}
|
|
|
- planCommandParam.put("suggestions",FastJsonUtil.toJSON(suggestions));
|
|
|
+ planCommandParam.put("suggestions",suggestions);
|
|
|
planCommandParam.put("fromSource",planId);
|
|
|
planCommandParam.put("level",model.getUrgentLevel());
|
|
|
planCommandParam.put("sendway",model.getSendway());
|
|
|
planCommandParam.put("remark",model.getDispatchRemark());
|
|
|
planCommandParam.put("gis",item.getGis());
|
|
|
planCommandParam.put("address",item.getHandleAddress());
|
|
|
-
|
|
|
- //TODO 调用数据接口
|
|
|
+ jsonArray.add(planCommandParam);
|
|
|
+ }
|
|
|
+ //TODO 调用数据接口
|
|
|
+ if(jsonArray.size()>0) {
|
|
|
try {
|
|
|
- ResponseRes res = ServiceMgrProxy.getInstance().applyTaskServiceApi().postPlanCommand(planCommandParam);
|
|
|
- if(ResponseCode.RESULT_NORMAL.equals(res.getRescode())){
|
|
|
+ JSONObject jsonParam = new JSONObject();
|
|
|
+ jsonParam.put("total",jsonArray.size());
|
|
|
+ jsonParam.put("data",jsonArray);
|
|
|
+ ResponseRes res = ServiceMgrProxy.getInstance().applyTaskServiceApi().postPlanCommand(jsonParam);
|
|
|
+ JSONObject resDataObj = JSONObject.parseObject(res.getResdata().toString());
|
|
|
+ if (ResponseCode.RESULT_NORMAL.equals(res.getRescode())
|
|
|
+ &&resDataObj.getJSONArray("data").size()>0
|
|
|
+ &&"0".equals(resDataObj.getJSONArray("data").getJSONObject(0).getString("code"))) {
|
|
|
//TODO 再计算下一次的时间,并且更新至调度计划的数据库
|
|
|
- Map<String,Object> upPlanUpWhere = new HashMap<>();//修改计划的条件
|
|
|
- upPlanUpWhere.put("plan_id",model.getPlanId());
|
|
|
- Map<String,Object> upPlan = new HashMap<>();//要修改的计划
|
|
|
+ Map<String, Object> upPlanUpWhere = new HashMap<>();//修改计划的条件
|
|
|
+ upPlanUpWhere.put("plan_id", model.getPlanId());
|
|
|
+ Map<String, Object> upPlan = new HashMap<>();//要修改的计划
|
|
|
DispatchPlanInfoNextTimeModel nextTimeModel = new DispatchPlanInfoNextTimeModel();
|
|
|
List<DispatchCmdBatchItemNextTimeModel> itemModelNextTimes = new ArrayList<>();
|
|
|
- if(!CollectionUtils.isEmpty(itemModels)){
|
|
|
- for(DispatchCmdBatchItemModel jpItem:itemModels){
|
|
|
- DispatchCmdBatchItemNextTimeModel dispatchCmdBatchItemNextTimeModel =new DispatchCmdBatchItemNextTimeModel();
|
|
|
+ if (!CollectionUtils.isEmpty(itemModels)) {
|
|
|
+ for (DispatchCmdBatchItemModel jpItem : itemModels) {
|
|
|
+ DispatchCmdBatchItemNextTimeModel dispatchCmdBatchItemNextTimeModel = new DispatchCmdBatchItemNextTimeModel();
|
|
|
dispatchCmdBatchItemNextTimeModel.setHandleStartTime(jpItem.getHandleStartTime());
|
|
|
itemModelNextTimes.add(dispatchCmdBatchItemNextTimeModel);
|
|
|
}
|
|
@@ -163,19 +172,19 @@ public class WODispatchPlanTmDoBizFun {
|
|
|
nextTimeModel.setPlanType(model.getPlanType());
|
|
|
nextTimeModel.setDispatchLeadTime(model.getDispatchLeadTime());
|
|
|
nextTimeModel.setCycles(model.getCycles());
|
|
|
- if(model.getPlanType()==0){
|
|
|
- upPlan.put("next_take_time",0L);
|
|
|
- }else {
|
|
|
+ if (model.getPlanType() == 0) {
|
|
|
+ upPlan.put("next_take_time", 0L);
|
|
|
+ } else {
|
|
|
upPlan.put("next_take_time", returnNextTakeTime(nextTimeModel));
|
|
|
- upPlan.put("last_take_time", model.getNextTakeTime());
|
|
|
}
|
|
|
+ upPlan.put("last_take_time",resDataObj.getJSONArray("data").getJSONObject(0).getLong("okTime"));
|
|
|
getThisDBService().updateWiths(upPlan, upPlanUpWhere);
|
|
|
|
|
|
code = ResponseCode.RESULT_NORMAL;
|
|
|
}
|
|
|
- }catch(Exception ex){
|
|
|
+ } catch (Exception ex) {
|
|
|
LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mStrClassName, mStrClassName
|
|
|
- ,String.format("check planInfo errorMsg:%s end<====",
|
|
|
+ , String.format("check planInfo errorMsg:%s end<====",
|
|
|
ex.getLocalizedMessage()));
|
|
|
}
|
|
|
}
|
|
@@ -268,11 +277,9 @@ public class WODispatchPlanTmDoBizFun {
|
|
|
String sql = "";
|
|
|
if(jsonParam.getDownFlag()!=null) {
|
|
|
if(jsonParam.getDownFlag()==0) {
|
|
|
- sql += " AND " + WODispatchPlanInfoTable.R_INFO.LAST_TAKE_TIME + " !=0 AND "
|
|
|
- + WODispatchPlanInfoTable.R_INFO.LAST_TAKE_TIME + " IS NOT NULL";
|
|
|
+ sql += " AND " + WODispatchPlanInfoTable.R_INFO.LAST_TAKE_TIME + " = 0 ";
|
|
|
}else{
|
|
|
- sql += " AND (" + WODispatchPlanInfoTable.R_INFO.LAST_TAKE_TIME + " = 0 OR "
|
|
|
- + WODispatchPlanInfoTable.R_INFO.LAST_TAKE_TIME + " IS NULL )";
|
|
|
+ sql += " AND " + WODispatchPlanInfoTable.R_INFO.LAST_TAKE_TIME + " > 0 ";
|
|
|
}
|
|
|
}
|
|
|
int nTotals = getThisDBService().totalCountsEx("", andWheres, null, lilterExtend+sql);
|