diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalScheduleRuleController.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalScheduleRuleController.java index a0c4b34..03dd682 100644 --- a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalScheduleRuleController.java +++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalScheduleRuleController.java @@ -149,8 +149,8 @@ public class TerminalScheduleRuleController extends BaseController { @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) @RequestMapping("/getCmaSchelduleUpload") @Log(title = "根据requestid查询时间表下发状态", type = "查询") - public ResponseReult getCmaSchelduleUpload(@RequestBody @Validated RequestIdListVo vo) { - ServiceBody serviceBody = terminalScheduleRuleService.checkScheldule(vo); + public ResponseReult getCmaSchelduleUpload(@RequestBody @Validated RequestIdListVo vo) { + ServiceBody serviceBody = terminalScheduleRuleService.checkScheldule(vo); if (serviceBody.getCode() == ServiceStatus.SUCCESS) { return ResponseReult.success(serviceBody.getData()); } else { diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/ScheduleRequestIdListModel.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/ScheduleRequestIdListModel.java new file mode 100644 index 0000000..6b697a9 --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/ScheduleRequestIdListModel.java @@ -0,0 +1,35 @@ +package com.shxy.xymanager_common.model; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +@ApiModel(value = "查询cma结果状态列表", description = "查询Cma结果requestid的list") +public class ScheduleRequestIdListModel { + + @NotNull(message = "查询编号列表不能缺少") + @ApiModelProperty(value = "查询结果列表", example = "123455") + private List list; + + @Data + public static class RequestStatusBean { + + @ApiModelProperty(value = "装置编号", example = "123456") + private Integer termid; + + @ApiModelProperty(value = "通道编号", example = "AAAA") + private Integer channelid; + + @ApiModelProperty(value = "请求编号", example = "AAAA") + private Integer requestid; + + @ApiModelProperty(value = "下发状态", example = "0---没有成功 1--下发成功") + private Integer status; + + } + +} diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/RequestIdListVo.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/RequestIdListVo.java index 906a851..f3d3fc2 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/RequestIdListVo.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/RequestIdListVo.java @@ -1,5 +1,6 @@ package com.shxy.xymanager_common.vo; +import com.shxy.xymanager_common.model.GetScheduleRequestIdListModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -13,6 +14,20 @@ public class RequestIdListVo { @NotNull(message = "查询编号列表不能缺少") @ApiModelProperty(value = "查询编号列表", example = "123455") - private List list; + private List list; + + @Data + public static class RequestBean { + + @ApiModelProperty(value = "装置编号", example = "123456") + private Integer termid; + + @ApiModelProperty(value = "通道编号", example = "AAAA") + private Integer channelid; + + @ApiModelProperty(value = "请求编号", example = "AAAA") + private Integer requestid; + + } } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalScheduleRuleServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalScheduleRuleServiceImpl.java index 6898100..55dca77 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalScheduleRuleServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalScheduleRuleServiceImpl.java @@ -33,6 +33,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.validation.constraints.NotNull; import java.sql.Time; import java.util.ArrayList; import java.util.Date; @@ -269,10 +270,10 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ span2 = span; } int indexOri = index; - int indexAdd = indexOri+1; - int indexAddT = indexAdd+1; - String string = "--hour"+indexOri+"="+ startHour + "\t" + "--min"+indexOri+"=" + startMin + "\t" + "--preset"+indexOri+"=255 --hour="+(indexAdd)+"=" + endTimeHour + "\t" + "--min"+(indexAdd)+"=" + endTimeMin + "\t" - + "--preset"+(indexAdd)+"=255 --hour"+indexAddT+"=" + span1 + "\t" + "--min"+indexAddT+"=" + span2 + "\t" + "--preset"+indexAddT+"=255"; + int indexAdd = indexOri + 1; + int indexAddT = indexAdd + 1; + String string = "--hour" + indexOri + "=" + startHour + "\t" + "--min" + indexOri + "=" + startMin + "\t" + "--preset" + indexOri + "=255 --hour=" + (indexAdd) + "=" + endTimeHour + "\t" + "--min" + (indexAdd) + "=" + endTimeMin + "\t" + + "--preset" + (indexAdd) + "=255 --hour" + indexAddT + "=" + span1 + "\t" + "--min" + indexAddT + "=" + span2 + "\t" + "--preset" + indexAddT + "=255"; timestr.append(string); index++; } @@ -280,7 +281,7 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ ArrayList requestIdList = new ArrayList<>(); for (int x = 0; x < terminalsList.size(); x++) { ChannelAndTermDto channelAndTermDto = terminalsList.get(x); - String cmd = Constants.CMD + "schedule --group="+dtoList.size()+"--flag=1 --cmdid=" + channelAndTermDto.getCmdid() + "\t" + "--channel=" + channelAndTermDto.getChannelid() + "\t" + + String cmd = Constants.CMD + "schedule --group=" + dtoList.size() + "--flag=1 --cmdid=" + channelAndTermDto.getCmdid() + "\t" + "--channel=" + channelAndTermDto.getChannelid() + "\t" + timestr.toString(); ProcessExecUtils.exec(cmd); int requestId = Integer.parseInt(Constants.REQUEST_ID.toString()); @@ -316,11 +317,22 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ */ @Override @Transactional - public ServiceBody checkScheldule(RequestIdListVo vo) { + public ServiceBody checkScheldule(RequestIdListVo vo) { /* * 当定时任务或者用户主动查询下发状态时 * */ - List requestidlist = vo.getList(); + ScheduleRequestIdListModel model = new ScheduleRequestIdListModel(); + List requestidlist = new ArrayList<>(); + List list = vo.getList(); + if (CollectionUtil.isEmpty(list)) { + return Asserts.error("查询数据不能缺少"); + } + for (RequestIdListVo.RequestBean it : list) { + requestidlist.add(it.getRequestid()); + } + if (CollectionUtil.isEmpty(requestidlist)) { + return Asserts.error("查询编号列表缺少"); + } List resultsList = requestResultsDao.selectByRequestIdList(requestidlist); /* * 如果下发成功 @@ -328,8 +340,31 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ * 2,将装置关联拍照时间正式表改为临时表的对应状态 * 3,将装置自身detial表插入新数据 * */ + ArrayList modellist = new ArrayList<>(); if (CollectionUtil.isEmpty(resultsList)) { - return Asserts.success("尚未查询到下发数据"); + for (RequestIdListVo.RequestBean it : list) { + ScheduleRequestIdListModel.RequestStatusBean requestBean = new ScheduleRequestIdListModel.RequestStatusBean(); + requestBean.setRequestid(it.getRequestid()); + requestBean.setChannelid(it.getChannelid()); + requestBean.setTermid(it.getTermid()); + requestBean.setStatus(CommonStatus.DELETE.value()); + modellist.add(requestBean); + } + model.setList(modellist); + return Asserts.success(model); + } else { + for (RequestIdListVo.RequestBean it : list) { + for (int i = 0; i < resultsList.size(); i++) { + if (it.getRequestid().intValue() == requestidlist.get(i).intValue()) { + ScheduleRequestIdListModel.RequestStatusBean requestBean = new ScheduleRequestIdListModel.RequestStatusBean(); + requestBean.setRequestid(it.getRequestid()); + requestBean.setChannelid(it.getChannelid()); + requestBean.setTermid(it.getTermid()); + requestBean.setStatus(CommonStatus.EFFECTIVE.value()); + } + } + } + model.setList(modellist); } terminalSchedulesTempDao.updateStatusByRequestIdList(requestidlist, CommonStatus.EFFECTIVE.value(), new Date()); @@ -369,8 +404,13 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ terminalScheduleDetailsDao.deleteByTermidAndChannelIdList(terminalSchedules); terminalScheduleDetailsDao.insertList(terminalScheduleDetails, date, date); int i = requestResultsDao.updateByRequestIdList(requestidlist, CommonStatus.EFFECTIVE.value());//根据requestid将结果表中的状态修改为已下发 + + ScheduleRequestIdListModel.RequestStatusBean requestBean = new ScheduleRequestIdListModel.RequestStatusBean(); +// for (RequestIdListVo.RequestBean it : list) { +// requestBean.setStatus(); +// } if (i != 0) { - return Asserts.success("下发成功"); + return Asserts.success(model); } else { return Asserts.error("关联失败"); } @@ -383,7 +423,7 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ * 当定时任务或者用户主动查询下发状态时 * */ List requestidlist = new ArrayList<>(); - List resultsList = requestResultsDao.selectByTypeAndStatus(scheduletype, clientid,255, null); + List resultsList = requestResultsDao.selectByTypeAndStatus(scheduletype, clientid, 255, null); /* * 如果下发成功 * 1,将临时表中的数据状态改成1下发成功状态 diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalScheduleRuleService.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalScheduleRuleService.java index 55806e3..c8bdafd 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalScheduleRuleService.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalScheduleRuleService.java @@ -62,7 +62,7 @@ public interface TerminalScheduleRuleService { * @param vo * @return */ - ServiceBody checkScheldule(RequestIdListVo vo); + ServiceBody checkScheldule(RequestIdListVo vo); /** * 获取通道的规则时间表