您的位置:首页 > 其它

计划任务配置管理页面

2016-11-28 13:25 267 查看
@model CoronaDataCenter.Models.PlanModel
@{
ViewBag.Title = "编辑计划配置";
if (ViewBag.ActionType == "View")
{
ViewBag.Title = "计划配置详情";
}
else if (ViewBag.ActionType == "Create")
{
ViewBag.Title = "添加计划配置";
}
else if (ViewBag.ActionType == "Edit")
{
ViewBag.Title = "编辑计划配置";
}
Layout = "~/Views/Shared/_LayoutB.cshtml";
}
@section Head{
<script src="@Url.Content("~/Scripts/Validate/jquery-Lweight-validate-min.js")" type="text/javascript"></script>
<link href="@Url.Content("~/Scripts/Validate/Lweight.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/Common/commonTools.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/DatePicker/WdatePicker.js")" type="text/javascript"></script>
<script src="../../Scripts/UI/jquery.easyui.min.js"></script>
}

<style type="text/css">
.input_ContentCenter{
line-height: 34px;
height: 34px;
}
</style>

<button class="btn btn-info btn-sm col-md-offset-1" type="button" style="margin-top: 10px;" onclick="javascript:history.back(-1);">
<span class="glyphicon glyphicon-arrow-left col-md-offset-1 " style="color: white; font-size: 1.5em;"></span>
</button>
<div class="container">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<form id="EditData" class="form-horizontal" role="form" method="post" form-key="true" enctype="multipart/form-data">
<div class="form-group">
<label for="PlanName" class="col-md-2">计划名称</label>
<div class="col-md-6">
<input id="PlanName" name="PlanName" value="@Model.PlanName" class="form-control" placeholder = "请输入计划名称" check-type="required" required-message="请输入计划名称" />
</div>
<div class="col-md-3"><font color="red">*</font></div>
</div>
<div class="form-group">
<label for="Sn" class="col-md-2">电站</label>
<div class="col-md-6">
<select id="selSn" name="Sn" class="form-control" check-type="required" required-message="请选择电站">
<option></option>
@foreach (var item in ViewBag.Stations as List<SelectListItem>)
{
if (Model.Sn == item.Value.Split(',')[0])
{
<option value="@item.Value" selected="selected">@item.Text</option>
}
else
{
<option value="@item.Value">@item.Text</option>
}
}
</select>
</div>
<div class="col-md-3"><font color="red">*</font></div>
</div>
<div class="form-group">
<label for="PlanBeginTime" class="col-md-2">开始时间</label>
<div class="col-md-6">
<input id="PlanBeginTime" name="PlanBeginTime" value="@Model.PlanBeginTime" class="form-control Wdate" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})" check-type="required" required-message="请选择开始时间" />
</div>
<div class="col-md-3"><font color="red">*</font></div>
</div>
<div class="form-group">
<label for="PlanEndTime" class="col-md-2">结束时间</label>
<div class="col-md-6">
<input id="PlanEndTime" name="PlanEndTime" value="@Model.PlanEndTime" class="form-control Wdate" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})"/>
</div>
</div>
<div class="form-group">
<label for="PlanInterval" class="col-md-2">执行频率</label>
<div class="col-md-6">
<select id="PlanInterval" name="PlanInterval" class="form-control" val="@Model.PlanInterval" check-type="required" required-message="请选择时间间隔">
@foreach (var item in ViewBag.PlanIntervalsList as List<SelectListItem>)
{
if (Model.PlanInterval == item.Value)
{
<option value="@item.Value" selected="selected">@item.Text</option>
}
else
{
<option value="@item.Value">@item.Text</option>
}
}
</select>
</div>
<div class="col-md-3"><font color="red">*</font></div>
</div>

<!------------实时------------>
<div class="form-group EveryInTime">
<label for="EveryInTime" class="col-md-2">执行间隔</label>
<div class="col-md-3">
<input id="ExecutionInterval_InTime" name="ExecutionInterval_InTime" value="@Model.ExecutionInterval" class="form-control InTime" check-type="required" required-message="请输入执行间隔" />
</div>
<div class="col-md-2">
<select id="ExecutionIntervalType_InTime" name="ExecutionIntervalType_InTime" class="form-control InTime" val="@Model.ExecutionIntervalType" check-type="required" required-message="请选择每天频率">
@foreach (var item in ViewBag.ExecutionIntervalTypeSelectList as List<SelectListItem>)
{
if (Model.ExecutionIntervalType == item.Value)
{
<option value="@item.Value" selected="selected">@item.Text</option>
}
else
{
<option value="@item.Value">@item.Text</option>
}
}
</select>
</div>
<div class="col-md-3"><font color="red">*</font></div>
</div>
<!------------实时------------>

<!------------每天------------>
<div class="form-group EveryDay">
<div class="col-md-3">
<input type="hidden" id="hidExecutionTime_EveryDayType" value="@Model.ExecutionTime_EveryDayType"/>
<input type="radio" name="ExecutionTime_EveryDayType" value="OneTime" /> 执行一次
</div>
<div class="col-md-1">
<input id="ExecutionTime_DayHours" value="@Model.ExecutionTime_Hours" class="form-control ExecutionTime_EveryDay OneTime" name="ExecutionTime_DayHours" />
</div>
<div class="col-md-1 input_ContentCenter">
<label>时:</label>
</div>
<div class="col-md-1">
<input id="ExecutionTime_DayMinutes" value="@Model.ExecutionTime_Minutes" class="form-control ExecutionTime_EveryDay OneTime" name="ExecutionTime_DayMinutes" />

4000
</div>
<div class="col-md-1 input_ContentCenter">
<label>分:</label>
</div>
<div class="col-md-1">
<input id="ExecutionTime_DaySeconds" value="@Model.ExecutionTime_Seconds" class="form-control ExecutionTime_EveryDay OneTime" name="ExecutionTime_DaySeconds" />
</div>
<div class="col-md-1 input_ContentCenter">
<label>秒</label>
</div>
<div class="col-md-2"><font color="red">*</font></div>
</div>
<div class="form-group EveryDay">
<div class="col-md-3">
<input type="radio" name="ExecutionTime_EveryDayType" value="Repeated" /> 执行间隔
</div>
<div class="col-md-3">
<input id="ExecutionInterval" name="ExecutionInterval" value="@Model.ExecutionInterval" class="form-control Repeated" check-type="required" required-message="请输入执行间隔" />
</div>
<div class="col-md-2">
<select id="ExecutionIntervalType" name="ExecutionIntervalType" class="form-control Repeated" val="@Model.ExecutionIntervalType" check-type="required" required-message="请选择每天频率">
@foreach (var item in ViewBag.ExecutionIntervalTypeSelectList as List<SelectListItem>)
{
if (Model.ExecutionIntervalType == item.Value)
{
<option value="@item.Value" selected="selected">@item.Text</option>
}
else
{
<option value="@item.Value">@item.Text</option>
}
}
</select>
</div>
<div class="col-md-3"><font color="red">*</font></div>
</div>
<!------------每天------------>

<!------------每周------------>
<div class="form-group EveryWeek">
<label for="ExecutionWeek" class="col-md-2">执行星期</label>
<div class="col-md-6">
<select id="ExecutionWeek" name="ExecutionWeek" class="form-control" val="@Model.ExecutionWeek" check-type="required" required-message="请选择执行星期数">
@foreach (var item in ViewBag.ExecutionWeekList)
{
if (Model.ExecutionWeek == item.Value)
{
<option value="@item.Value" selected="selected">@item.Text</option>
}
else
{
<option value="@item.Value">@item.Text</option>
}
}
</select>
</div>
<div class="col-md-3"><font color="red">*</font></div>
</div>
<!------------每周------------>

<!------------每月------------>
<div class="form-group EveryMonth">
<label for="ExecutionDay" class="col-md-2">执行日期</label>
<div class="col-md-6">
<select id="ExecutionDay" name="ExecutionDay" class="form-control" val="@Model.ExecutionDay" check-type="required" required-message="请选择执行日期">
@foreach (var item in ViewBag.ExecutionDayList)
{
if (Model.ExecutionDay == item.Value)
{
<option value="@item.Value" selected="selected">@item.Text</option>
}
else
{
<option value="@item.Value">@item.Text</option>
}
}
</select>
</div>
<div class="col-md-3"><font color="red">*</font></div>
</div>
<!------------每月------------>

<!------------------执行时间------------------->
<div class="form-group ExecutionTime">
<label for="ExecutionTime_Hours" class="col-md-2">执行时间</label>
<div class="col-md-1">
<input id="ExecutionTime_Hours" value="@Model.ExecutionTime_Hours" class="form-control ExecutionTime_Common" name="ExecutionTime_Hours" />
</div>
<div class="col-md-1 input_ContentCenter">
<label>时:</label>
</div>
<div class="col-md-1">
<input id="ExecutionTime_Minutes" value="@Model.ExecutionTime_Minutes" class="form-control ExecutionTime_Common" name="ExecutionTime_Minutes" />
</div>
<div class="col-md-1 input_ContentCenter">
<label>分:</label>
</div>
<div class="col-md-1">
<input id="ExecutionTime_Seconds" value="@Model.ExecutionTime_Seconds" class="form-control ExecutionTime_Common" name="ExecutionTime_Seconds" />
</div>
<div class="col-md-1 input_ContentCenter">
<label>秒</label>
</div>
<div class="col-md-3"><font color="red">*</font></div>
</div>
<!------------------执行时间------------------->

<div class="form-group">
<label for="PlanReceiver" class="col-md-2">接收人</label>
<div class="col-md-6">
<select id="selPlanReceiver" name="PlanReceiver" class="form-control" check-type="required" required-message="请选择接收人" multiple>
@if (!string.IsNullOrEmpty(Model.PlanReceiver))
{
foreach (var item in ViewBag.PlanReceiverList as List<SelectListItem>)
{
if (@Model.PlanReceiver.Contains(item.Value))
{
<option value="@item.Value" selected="selected">@item.Text</option>
}
else
{
<option value="@item.Value">@item.Text</option>
}
}
}
</select>
</div>
<div class="col-md-3"><font color="red">*</font></div>
</div>
<div class="form-group">
<label for="PlanReceiveMethod" class="col-md-2">接收方式</label>
<div class="col-md-6">
<select id="PlanReceiveMethod" name="PlanReceiveMethod" class="form-control" check-type="required" required-message="请选择接收方式" multiple>
@if (!string.IsNullOrEmpty(Model.PlanReceiveMethod))
{
foreach (var item in ViewBag.PlanReceiveMethodsList as List<SelectListItem>)
{
if (@Model.PlanReceiveMethod.Contains(item.Value))
{
<option value="@item.Value" selected="selected">@item.Text</option>
}
else
{
<option value="@item.Value">@item.Text</option>
}
}
}
else
{
foreach (var item in ViewBag.PlanReceiveMethodsList as List<SelectListItem>)
{
<option value="@item.Value">@item.Text</option>
}
}
</select>
</div>
<div class="col-md-3"><font color="red">*</font></div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-3">
@if (ViewBag.ActionType == "Edit" || ViewBag.ActionType == "Create")
{
<button id="btnSave" type="submit" class="btn btn-primary borderRadius">
<span class="glyphicon glyphicon-ok"> 保存</span>
</button>
}
<button id="btnCancel" type="button" class="btn btn-danger borderRadius" onclick="Cancel();">
<span class="glyphicon glyphicon-remove"> 取消</span>
</button>
<input id="ActionType" type="hidden" name="ActionType" value="@ViewBag.ActionType" />
<input id="PlanID" type="hidden" name="PlanID" value="@Model.PlanID" />
<input id="TaskID" type="hidden" name="TaskID" value="@ViewBag.TaskID" />
<input id="hidErrorMsg" type="hidden" value="@ViewBag.ErrorMsg" />

<input id="btn" type="button" value="test" class="btn" onclick="GetPlanIntervalVal();" style="display:none;" />
</div>
</div>
</form>
</div>
</div>
</div>

<!--Bootstrap Modal对话框框 -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">提示信息</h4>
</div>
<div class="modal-body" id="modal-body" style="color: red; text-align: center;">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
</div>
</div>
</div>
</div>

<script type="text/javascript">
$(function () {
//保存按钮
SaveAlert(); //保存之后的错误提醒
selectChange("selSn", "selPlanReceiver");   //联动下拉框

$("#EditData").myValidate(
{
formCall: function () { $("#EditData").submit(); },
isAlert: false,
formKey: false,
alterCall: function (msg) { }
});

///////////////////////////////////////////////////////////////////////////////////////////////////////////////
CheckRadio();                       //Radio单选取值
CheckPlanInterval();                //首次加载,根据频率当前选择值初始化控件
PlanIntervalChange();               //下拉框change事件
EveryDayClick();                    //radio的click事件
CheckExecutionTime_EveryDay();      //input中只能输入正整数
CheckHours();                       //input中只能输入0-23的正整数
CheckMinutesAndSeconds();           //input中只能输入0-59的正整数
});

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//首次加载,根据频率当前选择值初始化控件
function CheckPlanInterval() {
//检测频率下拉框,初始化不同频率相关html控件
var selPlanInterval = $("#PlanInterval option:selected").val(); //获取执行间隔(频率)下拉框当前选择值
//alert(selPlanInterval);
if (selPlanInterval == 0) {         //实时
$(".EveryInTime").css("display", "block");
$(".EveryDay").css("display", "none");
$(".EveryWeek").css("display", "none");
$(".EveryMonth").css("display", "none");
$(".ExecutionTime").css("display", "none");
}
else if (selPlanInterval == 1) {    //每天
$(".EveryInTime").css("display", "none");
$(".EveryDay").css("display", "block");
$(".EveryWeek").css("display", "none");
$(".EveryMonth").css("display", "none");
$(".ExecutionTime").css("display", "none");
}
else if (selPlanInterval == 2) {    //每周
$(".EveryInTime").css("display", "none");
$(".EveryDay").css("display", "none");
$(".EveryWeek").css("display", "block");
$(".EveryMonth").css("display", "none");
$(".ExecutionTime").css("display", "block");
}
else if (selPlanInterval == 3) {    //每月
$(".EveryInTime").css("display", "none");
$(".EveryDay").css("display", "none");
$(".EveryWeek").css("display", "none");
$(".EveryMonth").css("display", "block");
$(".ExecutionTime").css("display", "block");
}

//初始化频率为‘每天’的相关html控件
var chkEveryDay = $("input[name='ExecutionTime_EveryDayType']:checked").val();  //获取CheckBox当前选择值
//alert(chkEveryDay);
if (chkEveryDay == "OneTime") {
$('.OneTime').removeAttr("disabled");//去除input元素的disabled属性
$('.Repeated').attr("disabled", "disabled");//将input元素设置为disabled
$("#ExecutionInterval").val('');
}
else {
$('.OneTime').attr("disabled", "disabled")//将input元素设置为disabled
$('.Repeated').removeAttr("disabled");//去除input元素的disabled属性
$(".ExecutionTime_EveryDay").val(''); //清空文本框
}
}

//下拉框change事件
function PlanIntervalChange() {
$("#PlanInterval").on("change", function () {
var selPlanInterval = $("#PlanInterval option:selected").val(); //获取执行间隔(频率)下拉框当前选择值
//alert(selPlanInterval);
if (selPlanInterval == 0) {         //实时
$(".EveryInTime").css("display", "block
186cf
");
$(".EveryDay").css("display", "none");
$(".EveryWeek").css("display", "none");
$(".EveryMonth").css("display", "none");
$(".ExecutionTime").css("display", "none");
}
else if (selPlanInterval == 1) {    //每天
$(".EveryInTime").css("display", "none");
$(".EveryDay").css("display", "block");
$(".EveryWeek").css("display", "none");
$(".EveryMonth").css("display", "none");
$(".ExecutionTime").css("display", "none");
}
else if (selPlanInterval == 2) {    //每周
$(".EveryInTime").css("display", "none");
$(".EveryDay").css("display", "none");
$(".EveryWeek").css("display", "block");
$(".EveryMonth").css("display", "none");
$(".ExecutionTime").css("display", "block");
}
else if (selPlanInterval == 3) {    //每月
$(".EveryInTime").css("display", "none");
$(".EveryDay").css("display", "none");
$(".EveryWeek").css("display", "none");
$(".EveryMonth").css("display", "block");
$(".ExecutionTime").css("display", "block");
}

//清空执行时间文本框
$(".ExecutionTime_Common").val(''); //执行时间的时分秒
$(".ExecutionTime_EveryDay").val(''); //执行时间的时分秒
$("#ExecutionInterval_InTime").val(''); //实时,执行间隔
});
}

//radio的click事件,根据当前选择控制html控件是否可用,注:频率为‘每天’时,‘执行一次’与‘执行间隔’只能选一种
function EveryDayClick() {
$("input[name='ExecutionTime_EveryDayType']").on("click", function () {
var chkEveryDay = $("input[name='ExecutionTime_EveryDayType']:checked").val();  //获取CheckBox当前选择值
//alert(chkEveryDay);
if (chkEveryDay == "OneTime") {
$('.OneTime').removeAttr("disabled");//去除input元素的disabled属性
$('.Repeated').attr("disabled", "disabled");//将input元素设置为disabled
$("#ExecutionInterval").val('');
}
else {
$('.OneTime').attr("disabled", "disabled");//将input元素设置为disabled
$('.Repeated').removeAttr("disabled");//去除input元素的disabled属性
$(".ExecutionTime_EveryDay").val(''); //清空文本框
}
});
}

//Radio单选取值
function CheckRadio() {
var hidRadio = $("#hidExecutionTime_EveryDayType").val();
var radios = document.getElementsByName("ExecutionTime_EveryDayType");
if (hidRadio.length > 0) {
if (hidRadio == "OneTime") {
radios[0].checked = true;
} else {
radios[1].checked = true;
}
}
else {
radios[0].checked = true;
}
}

//input中只能输入正整数
function CheckExecutionTime_EveryDay() {
//限制键盘只能按数字键、小键盘数字键、退格键
$("#ExecutionInterval,#ExecutionInterval_InTime").keyup(function (e) {
if(this.value.length==1){
this.value=this.value.replace(/[^1-9]/g,'')
}else{
this.value=this.value.replace(/\D/g,'')
}
}).bind("paste", function () {  //CTR+V事件处理
if (this.value.length == 1) {
this.value = this.value.replace(/[^1-9]/g, '')
} else {
this.value = this.value.replace(/\D/g, '')
}
});
}

//input中只能输入0-23的正整数
function CheckHours() {
//限制键盘只能按数字键、小键盘数字键、退格键
$("#ExecutionTime_Hours,#ExecutionTime_DayHours").keyup(function (e) {
//var reg = /^([1-9]|1\d|2[0-3])$/;
var reg = /^(2[0-3]|[0-1]?\d)$/;
var r = this.value.match(reg);
if (r == null) {
this.value = '';
}
}).bind("paste", function () {  //CTR+V事件处理
//var reg = /^([1-9]|1\d|2[0-3])$/;
var reg = /^(2[0-3]|[0-1]?\d)$/;
var r = this.value.match(reg);
if (r == null) {
this.value = '';
}
});
}

//input中只能输入0-59的正整数
function CheckMinutesAndSeconds() {
//限制键盘只能按数字键、小键盘数字键、退格键
$("#ExecutionTime_Minutes,#ExecutionTime_Seconds,#ExecutionTime_DayMinutes,#ExecutionTime_DaySeconds").keyup(function (e) {
//var reg = /^([1-9]|[1-4]\d|5[0-9])$/;
var reg = /^[0-5]?[0-9]$/;
var r = this.value.match(reg);
if (r == null) {
this.value = '';
}
}).bind("paste", function () {  //CTR+V事件处理
//var reg = /^([1-9]|[1-4]\d|5[0-9])$/;
var reg = /^[0-5]?[0-9]$/;
var r = this.value.match(reg);
if (r == null) {
this.value = '';
}
});
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//取消按钮
function Cancel() {
window.location.href = "/SystemManager/PlanManager?id=@ViewBag.TaskID";
}

//保存之后的错误提醒
function SaveAlert() {
var ErMsg = $("#hidErrorMsg").val();
if ($.trim(ErMsg).length > 0) {
//alert(ErMsg);
$('#modal-body').append(ErMsg);
$('#myModal').modal();
}
}

//获取多选框值,值类型为数组需转换为字符串便于保存
function GetPlanIntervalVal() {
var varStr = $("#PlanInterval").val();   //获取多选框值,值类型为数组
varStr = varStr.join();   //将数组转换为字符串
$("#PlanInterval").attr("value", varStr); //多选框赋值
}

//下拉框联动
function selectChange(selSn, selPlanReceiver) {
$("#" + selSn).change(function () {
$("#" + selPlanReceiver + " option").remove();  //初始化下拉框
$.ajax({
type: "POST",
dataType: "json",
url: " @Url.Action("GetPlanReceiverBySN", "SystemManager")",
data: { strSn: $(this).val() },
success: function (data) {
if (data.length > 0) {
$.map(data, function (item, index) {
$("#" + selPlanReceiver).append("<option value=" + item.Value + ">" + item.Text + "</option>");
});
}
}
});
});
}

</script>


#region 计划任务配置 add by lupeng on 20160506
//计划任务配置页面
public ActionResult PlanAndTaskManager(string PlanID)
{
Session[MyConst.StartTime] = DateTime.Now.ToString();
SysLogModel sysModel = new SysLogModel()
{
Action = "计划任务配置",
Content = "浏览",
ModuleCode = "XTGL-XT-JHRW"
};
Syslog.InsertSYSLog(sysModel);

ViewBag.startTime = "";
ViewBag.endTime = "";

List<TaskModel> model = new List<TaskModel>();
model = SearchTaskData(ViewBag.startTime, ViewBag.endTime, PlanID, "", "");
return View(model);
}

//计划任务配置页的提交,这里是“查询”,其参数是POST方式传递过来的,参数名是控件(input\select等)的name属性
[HttpPost]
public ActionResult PlanAndTaskManager(string startTime, string endTime, string PlanID, string TaskName, string TaskID)
{
SysLogModel sysModel = new SysLogModel()
{
Action = "计划任务配置",
Content = "查询",
ModuleCode = "XTGL-XT-JHRW"
};
Syslog.InsertSYSLog(sysModel);
List<TaskModel> model = new List<TaskModel>();
model = SearchTaskData(startTime, endTime, PlanID, TaskName, TaskID);
return View(model);
}

[NonAction]
private List<TaskModel> SearchTaskData(string startTime, string endTime, string PlanID, string TaskName, string TaskID)
{
SystemManager syMan = new SystemManager();
if (!string.IsNullOrEmpty(startTime) && !string.IsNullOrEmpty(endTime)) //有起止日期
{
ViewBag.startTime = startTime;
ViewBag.endTime = Convert.ToDateTime(endTime).AddDays(1).ToShortDateString().Replace("/", "-");
}
else if (!string.IsNullOrEmpty(startTime) && string.IsNullOrEmpty(endTime)) //有开始日期
{
ViewBag.startTime = startTime;
ViewBag.endTime = Convert.ToDateTime(startTime).AddDays(1).ToShortDateString().Replace("/", "-");
}
else if (string.IsNullOrEmpty(startTime) && !string.IsNullOrEmpty(endTime)) //有结束日期
{
ViewBag.startTime = Convert.ToDateTime(startTime).AddDays(-1).ToShortDateString().Replace("/", "-");
ViewBag.endTime = endTime;
}
List<TaskModel> List = syMan.GetTaskData(ViewBag.startTime, ViewBag.endTime, PlanID, TaskName, TaskID);
ViewBag.PlanID = PlanID;    //任务ID
ViewBag.PlanName = syMan.GetPlanDataByID(PlanID).PlanName;    //任务名称
return List;
}

//编辑View
public ActionResult EditPlanAndTask(string ActionType, string PlanID, string TaskID)
{
TaskModel model = new TaskModel();
Session[MyConst.StartTime] = DateTime.Now;
ViewBag.PlanID = PlanID;    //任务ID
model.PlanID = PlanID;
ViewBag.ActionType = ActionType;
string ActionContent = string.Empty;
if (ActionType == "Create")
{
ActionContent = "添加任务配置";
ViewBag.TaskID = 0;
}
else if (ActionType == "Edit")
{
ActionContent = "编辑任务配置";
model = syMan.GetTaskDataByID(TaskID);
ViewBag.TaskID = model.TaskID;
}
else if (ActionType == "View")
{
ActionContent = "任务配置详情";
model = syMan.GetTaskDataByID(TaskID);
ViewBag.TaskID = model.TaskID;
}
//添加日志
SysLogModel sysModel = new SysLogModel()
{
Action = "计划任务配置",
Content = ActionContent,
ModuleCode = "XTGL-XT-JHRW"
};
Syslog.InsertSYSLog(sysModel);

List<PlanModel> planLists = syMan.GetPlanData("", "", "");
ViewBag.PlanList = CommonTools.GetPlanSelectList(planLists); //计划下拉框数据源

ViewBag.TaskTypesList = TaskTypesSelectList();    //任务类型下拉框数据源

return View(model);
}

//编辑,Post方法
[HttpPost]
public ActionResult EditPlanAndTask(TaskModel model, string ActionType)
{
List<PlanModel> planLists = syMan.GetPlanData("", "", "");
ViewBag.PlanList = CommonTools.GetPlanSelectList(planLists); //计划下拉框数据源
ViewBag.TaskTypesList = TaskTypesSelectList();    //任务类型下拉框数据源
string strContent = string.Empty;
if (ActionType == "Create")
{
strContent = "添加";
ViewBag.ActionType = "Create";
}
else
{
strContent = "修改";
ViewBag.ActionType = "Edit";
}
if (ModelState.IsValid)
{
#region
if (ActionType == "Create")   //新增操作
{
#region
model.TaskCreateUser = (Session[MyConst.UserModel] as AccountModel).ID.ToString();
List<TaskModel> list = syMan.GetTaskData("", "", model.PlanID, model.TaskName, "");
if (list != null && list.Count > 0) //验证是否重复
{
ViewBag.ErrorMsg += "<label>任务配置名称已存在!</label></br> ";
//插入系统日志
SysLogModel sysModel = new SysLogModel()
{
Action = strContent + "任务配置",
Content = strContent + "失败",
ModuleCode = "XTGL-XT-JHRW"
};
Syslog.InsertSYSLog(sysModel);

return View(model);
}
else
{
int result = syMan.InsertTaskData(model);   //新增数据
//插入系统日志
SysLogModel sysModel = new SysLogModel()
{
Action = strContent + "任务配置",
Content = result > 0 ? strContent + "成功" : strContent + "失败",
ModuleCode = "XTGL-XT-XWGG"
};
Syslog.InsertSYSLog(sysModel);
if (result > 0)
{
return RedirectToAction("PlanAndTaskManager", "SystemManager", new { PlanID = model.PlanID });
}
else
{
ViewBag.ErrorMsg = strContent + "失败";

return View(model);
}
}
#endregion
}
else //修改操作
{
#region
model.TaskModifyUser = (Session[MyConst.UserModel] as AccountModel).ID.ToString();
int result = syMan.ModifyTaskData(model);   //修改数据
//插入系统日志
SysLogModel sysModel1 = new SysLogModel()
{
Action = strContent + "任务配置",
Content = result > 0 ? strContent + "成功" : strContent + "失败",
ModuleCode = "XTGL-XT-XWGG"
};
Syslog.InsertSYSLog(sysModel1);
if (result > 0)
{
//this.TempData["PlanID"] = model.PlanID;
return RedirectToAction("PlanAndTaskManager", "SystemManager", new { PlanID = model.PlanID });
}
else
{
ViewBag.ErrorMsg = strContent + "失败";

return View(model);
}
#endregion
}
#endregion
}
else
{
ViewBag.ErrorMsg = strContent + "失败";
//插入系统日志
SysLogModel sysModel = new SysLogModel()
{
Action = strContent +"任务配置",
Content = strContent + "失败",
ModuleCode = "XTGL-XT-XWGG"
};
Syslog.InsertSYSLog(sysModel);

return View(model);
}
}

//删除任务配置
[HttpPost]
public ContentResult TaskDelete(int id)
{
int result = syMan.DeleteTask(id);
SysLogModel sysModel = new SysLogModel()
{
Action = "删除任务配置",
Content = result > 0 ? "删除成功" : "删除失败",
ModuleCode = "XTGL-XT-XWGG"
};
Syslog.InsertSYSLog(sysModel);
if (result > 0)
{
return Content("ok");
}
else
{
return Content("");
}
}

//计划配置页面
public ActionResult PlanManager()
{
Session[MyConst.StartTime] = DateTime.Now.ToString();
SysLogModel sysModel = new SysLogModel()
{
Action = "计划任务配置",
Content = "浏览计划",
ModuleCode = "XTGL-XT-JHRW"
};
Syslog.InsertSYSLog(sysModel);

List<PlanModel> model = new List<PlanModel>();
model = SearchPlanData("", "", "");
InitPlan("");
return View(model);
}

//计划配置页的提交,这里是“查询”,其参数是POST方式传递过来的,参数名是控件(input\select等)的name属性
[HttpPost]
public ActionResult PlanManager(string startTime, string endTime, string PlanName)
{
SysLogModel sysModel = new SysLogModel()
{
Action = "计划任务配置",
Content = "查询计划",
ModuleCode = "XTGL-XT-JHRW"
};
Syslog.InsertSYSLog(sysModel);
List<PlanModel> model = new List<PlanModel>();
model = SearchPlanData(startTime, endTime, PlanName);
InitPlan("");
return View(model);
}

[NonAction]
private List<PlanModel> SearchPlanData(string startTime, string endTime, string PlanName)
{
SystemManager syMan = new SystemManager();
if (!string.IsNullOrEmpty(startTime) && !string.IsNullOrEmpty(endTime)) //有起止日期
{
ViewBag.startTime = startTime;
ViewBag.endTime = Convert.ToDateTime(endTime).AddDays(1).ToShortDateString().Replace("/", "-");
}
else if (!string.IsNullOrEmpty(startTime) && string.IsNullOrEmpty(endTime)) //有开始日期
{
ViewBag.startTime = startTime;
ViewBag.endTime = Convert.ToDateTime(startTime).AddDays(1).ToShortDateString().Replace("/", "-");
}
else if (string.IsNullOrEmpty(startTime) && !string.IsNullOrEmpty(endTime)) //有结束日期
{
ViewBag.startTime = Convert.ToDateTime(startTime).AddDays(-1).ToShortDateString().Replace("/", "-");
ViewBag.endTime = endTime;
}
List<PlanModel> List = syMan.GetPlanData(ViewBag.startTime, ViewBag.endTime, PlanName);
return List;
}

//编辑View
public ActionResult EditPlan(string ActionType, string TaskID, string id)
{
#region
PlanModel model = new PlanModel();
Session[MyConst.StartTime] = DateTime.Now;
ViewBag.ActionType = ActionType;
ViewBag.PlanID = id;
ViewBag.TaskID = TaskID;
string ActionContent = string.Empty;
if (ActionType == "Create")
{
ActionContent = "添加任务配置";
ViewBag.TaskID = 0;
model.PlanBeginTime = Convert.ToDateTime(DateTime.Now.ToString());  //新增时开始时间为系统当前时间
}
else if (ActionType == "Edit")
{
ActionContent = "编辑任务配置";
model = syMan.GetPlanDataByID(id);
ViewBag.TaskID = model.TaskID;
}
else if (ActionType == "View")
{
ActionContent = "任务配置详情";
model = syMan.GetPlanDataByID(id);
ViewBag.TaskID = model.TaskID;
}
//添加日志
SysLogModel sysModel = new SysLogModel()
{
Action = "计划任务配置",
Content = ActionContent,
ModuleCode = "XTGL-XT-JHRW"
};
Syslog.InsertSYSLog(sysModel);

InitPlan(model.Sn);

return View(model);
#endregion
}

//初始化时需要的数据
[NonAction]
public void InitPlan(string Sn)
{
AreaManager arMan = new AreaManager();
ViewBag.Provinces = CommonTools.GetAreaSelectList(arMan.GetAreas());
OwnerManager oMan = new OwnerManager();
ViewBag.Owners = CommonTools.GetOwnerSelectList(oMan.GetAllOwners(""));
InvestorManager iMan = new InvestorManager();
ViewBag.Investors = CommonTools.GetInvestorSelectList(iMan.GetAllInvestors(""));
UnitsManager uMan = new UnitsManager();
ViewBag.Units = CommonTools.GetUnitsSelectList(uMan.GetAllUnits(""));
ContractorInfoManager cMan = new ContractorInfoManager();
ViewBag.Contractors = CommonTools.GetContractorSelectList(cMan.GetAllContractor(""));

StationInfoManager staInfoMan = new StationInfoManager();
List<StationInfoModel> stationLists = staInfoMan.GetStations();
ViewBag.Stations = CommonTools.GetStationSelectList(stationLists.FindAll(t => t.IsUsing != 0)); //获取下拉框数据,电站信息

//List<TaskModel> taskLists = syMan.GetTaskData("", "","", "", "List");
//ViewBag.Tasks = CommonTools.GetTaskSelectList(taskLists); //获取下拉框数据,任务配置信息

ViewBag.PlanIntervalsList = PlanIntervalsSelectList();    //任务类型下拉框数据源
ViewBag.PlanReceiveMethodsList = PlanReceiveMethodsSelectList();    //接收方式下拉框数据源
ViewBag.ExecutionIntervalTypeSelectList = ExecutionIntervalTypeSelectList();    //时间间隔下拉框数据源
ViewBag.ExecutionDayList = ExecutionDayList();    //每月日期数下拉框数据源
ViewBag.ExecutionWeekList = ExecutionWeekSelectList();    //一周星期数下拉框数据源

#region 接收人下拉框数据源,获取电站用户
AccountManager userMan = new AccountManager();
GroupManager groupMan = new GroupManager();
List<GroupModel> groupList = groupMan.GetGroups();  //获取所有用户组
if (!string.IsNullOrEmpty(Sn))
{
List<GroupModel> groups = groupList.FindAll(f => f.OwnerID == staInfoMan.GetStationBySN(Sn).OwnModel.ID);    //获取当前电站所属用户组
ViewBag.PlanReceiverList = CommonTools.GetUserSelectList(userMan.GetUsers().FindAll(u => groups.Contains(u.UserGroup))); //接收人下拉框数据源,获取电站用户
}
else
{
//ViewBag.PlanReceiverList = "";
ViewBag.PlanReceiverList = CommonTools.GetUserSelectList(userMan.GetUsers());
}
#endregion
}

//编辑,Post方法
[HttpPost]
public ActionResult EditPlan(PlanModel model, string ActionType)
{
#region
string strContent = string.Empty;
if (ActionType == "Create")
{
strContent = "添加";
ViewBag.ActionType = "Create";
}
else
{
strContent = "修改";
ViewBag.ActionType = "Edit";
}

ViewBag.ErrorMsg = string.Empty;
if (string.IsNullOrEmpty(model.PlanName))
{
ViewBag.ErrorMsg += "<label>请输入计划名称!</label><br/>";
}
if (string.IsNullOrEmpty(model.Sn))
{
ViewBag.ErrorMsg += "<label>请选择电站!</label><br/>";
}
else
{
InitPlan(model.Sn.Split(',')[0]);
}
if (string.IsNullOrEmpty(model.PlanBeginTime.ToString()))
{
ViewBag.ErrorMsg += "<label>请选择开始时间!</label><br/>";
}
if (string.IsNullOrEmpty(model.PlanReceiver))
{
ViewBag.ErrorMsg += "<label>请输入接收人!</label><br/>";
}
if (string.IsNullOrEmpty(model.PlanName))
{
ViewBag.ErrorMsg += "<label>请输入接收方式!</label><br/>";
}

#region 验证执行频率并赋值
if (!string.IsNullOrEmpty(model.PlanInterval))
{
string PlanInterval = model.PlanInterval;       //执行间隔(频率)
#region
if (PlanInterval == "0")        //实时
{
model.ExecutionInterval = model.ExecutionInterval_InTime;             //每天频率/执行间隔
model.ExecutionIntervalType = model.ExecutionIntervalType_InTime;     //每天执行间隔类型,注:时、分、秒
model.ExecutionTime_EveryDayType = null;    //每天频率类型,注:执行一次、执行间隔
model.ExecutionWeek = null;                 //执行星期数
model.ExecutionDay = null;                  //执行日期数
model.ExecutionTime_Hours = null;           //执行时间小时数
model.ExecutionTime_Minutes = null;         //执行时间分钟数
model.ExecutionTime_Seconds = null;         //执行时间秒数
}
else if (PlanInterval == "1")   //每天
{
#region 验证执行时分秒
if (model.ExecutionTime_EveryDayType == "OneTime") //每天频率类型:执行一次
{
#region
if (!string.IsNullOrEmpty(model.ExecutionTime_DayHours)) //小时数
{
model.ExecutionTime_Hours = model.ExecutionTime_DayHours;
}
else
{
ViewBag.ErrorMsg += "<label>请选择执行时间小时数!</label><br/>";
}
if (!string.IsNullOrEmpty(model.ExecutionTime_DayMinutes)) //分钟数
{
model.ExecutionTime_Minutes = model.ExecutionTime_DayMinutes;
}
else
{
ViewBag.ErrorMsg += "<label>请选择执行时间分钟数!</label><br/>";
}
if (!string.IsNullOrEmpty(model.ExecutionTime_DaySeconds)) //秒数
{
model.ExecutionTime_Seconds = model.ExecutionTime_DaySeconds;
}
else
{
ViewBag.ErrorMsg += "<label>请选择执行时间秒数!</label><br/>";
}
model.ExecutionInterval = null; //每天频率/执行间隔
model.ExecutionIntervalType = null; //每天执行间隔类型,注:时、分、秒
#endregion
}
else //每天频率:执行间隔
{
#region
if (!string.IsNullOrEmpty(model.ExecutionInterval))  //每天频率/执行间隔
{
model.ExecutionInterval = model.ExecutionInterval;
}
else
{
ViewBag.ErrorMsg += "<label>请选择每天频率的执行间隔!</label><br/>";
}
model.ExecutionIntervalType = model.ExecutionIntervalType; //每天执行间隔类型,注:时、分、秒
model.ExecutionTime_Hours = null;           //执行时间小时数
model.ExecutionTime_Minutes = null;         //执行时间分钟数
model.ExecutionTime_Seconds = null;         //执行时间秒数
#endregion
}
#endregion

model.ExecutionWeek = null; //执行星期数
model.ExecutionDay = null;  //执行日期数
}
else //每周、每月
{
#region 验证执行时分秒
if (!string.IsNullOrEmpty(model.ExecutionTime_Hours)) //小时数
{
model.ExecutionTime_Hours = model.ExecutionTime_Hours;
}
else
{
ViewBag.ErrorMsg += "<label>请选择执行时间小时数!</label><br/>";
}
if (!string.IsNullOrEmpty(model.ExecutionTime_Minutes)) //分钟数
{
model.ExecutionTime_Minutes = model.ExecutionTime_Minutes;
}
else
{
ViewBag.ErrorMsg += "<label>请选择执行时间分钟数!</label><br/>";
}
if (!string.IsNullOrEmpty(model.ExecutionTime_Seconds)) //秒数
{
model.ExecutionTime_Seconds = model.ExecutionTime_Seconds;
}
else
{
ViewBag.ErrorMsg += "<label>请选择执行时间秒数!</label><br/>";
}
#endregion

#region
if (PlanInterval == "2") //每周
{
model.ExecutionDay = null; //执行日期数
model.ExecutionWeek = model.ExecutionWeek;
}
else if (PlanInterval == "3") //每月
{
model.ExecutionWeek = null; //执行星期数
model.ExecutionDay = model.ExecutionDay;
}
model.ExecutionInterval = null;          //每天频率/执行间隔
model.ExecutionIntervalType = null;      //每天执行间隔类型,注:时、分、秒
model.ExecutionTime_EveryDayType = null; //每天频率类型,注:执行一次、执行间隔
#endregion
}
#endregion
}
#endregion

if (!string.IsNullOrEmpty(ViewBag.ErrorMsg)) //是否存在验证异常信息
{
InitPlan("");
return View(model);
}

if (ModelState.IsValid)
{
model.PlanReceiver = Request.Form["PlanReceiver"];  //获取多选框值
model.PlanReceiveMethod = Request.Form["PlanReceiveMethod"];  //获取多选框值
if (string.IsNullOrEmpty(model.PlanReceiver)) //验证是否有接收人
{
StationInfoManager staMan = new StationInfoManager();
model.SnName = new StationInfoManager().GetStations().Find(g => g.Sn == model.Sn.Split(',')[0]).Name;
ViewBag.ErrorMsg = strContent + "失败,请给电站:" + model.SnName + "配置消息接收人!<br/>";

//插入系统日志
SysLogModel sysModel = new SysLogModel()
{
Action = strContent + "任务配置",
Content = strContent + "失败",
ModuleCode = "XTGL-XT-JHRW"
};
Syslog.InsertSYSLog(sysModel);
return View(model);
}
#region
if (ActionType == "Create")   //新增操作
{
#region
model.PlanMaker = (Session[MyConst.UserModel] as AccountModel).ID.ToString();
List<PlanModel> list = syMan.GetPlanData("", "", "").FindAll(u => u.PlanName == model.PlanName);
if (list != null && list.Count > 0) //验证是否重复
{
model.PlanReceiver = null;
ViewBag.ErrorMsg += "<label>任务配置名称已存在!</label></br> ";
//插入系统日志
SysLogModel sysModel = new SysLogModel()
{
Action = strContent + "任务配置",
Content = strContent + "失败",
ModuleCode = "XTGL-XT-JHRW"
};
Syslog.InsertSYSLog(sysModel);
return View(model);
}
else
{
int result = syMan.InsertPlanData(model);   //新增数据
//int result = 0; //测试用
//插入系统日志
SysLogModel sysModel = new SysLogModel()
{
Action = strContent + "任务配置",
Content = result > 0 ? strContent + "成功" : strContent + "失败",
ModuleCode = "XTGL-XT-JHRW"
};
Syslog.InsertSYSLog(sysModel);
if (result > 0)
{
return RedirectToAction("PlanManager", "SystemManager");
}
else
{
ViewBag.ErrorMsg = strContent + "失败";
return View(model);
}
}
#endregion
}
else //修改操作
{
#region
model.PlanMaker = (Session[MyConst.UserModel] as AccountModel).ID.ToString();
int result = syMan.ModifyPlanData(model);   //修改数据
//int result = 0;   //测试用
//插入系统日志
SysLogModel sysModel1 = new SysLogModel()
{
Action = strContent + "任务配置",
Content = result > 0 ? strContent + "成功" : strContent + "失败",
ModuleCode = "XTGL-XT-JHRW"
};
Syslog.InsertSYSLog(sysModel1);
if (result > 0)
{
return RedirectToAction("PlanManager", "SystemManager");
}
else
{
ViewBag.ErrorMsg = strContent + "失败";
model = syMan.GetPlanDataByID(model.PlanID.ToString());
return View(model);
}
#endregion
}
#endregion
}
else
{
ViewBag.ErrorMsg = strContent + "失败,请检查录入数据是否正确";
//插入系统日志
SysLogModel sysModel = new SysLogModel()
{
Action = strContent + "任务配置",
Content = strContent + "失败",
ModuleCode = "XTGL-XT-JHRW"
};
Syslog.InsertSYSLog(sysModel);
return View(model);
}
#endregion
}

//删除任务配置
[HttpPost]
public ContentResult PlanDelete(int id)
{
int result = syMan.DeletePlan(id);
SysLogModel sysModel = new SysLogModel()
{
Action = "删除计划配置",
Content = result > 0 ? "删除成功" : "删除失败",
ModuleCode = "XTGL-XT-JHRW"
};
Syslog.InsertSYSLog(sysModel);
if (result > 0)
{
return Content("ok");
}
else
{
return Content("");
}
}

//获取电站所属用户,下拉框联动
[HttpPost]
public JsonResult GetPlanReceiverBySN(string strSn)
{
AccountManager userMan = new AccountManager();
GroupManager groupMan = new GroupManager();
List<SelectListItem> items = new List<SelectListItem>();
StationInfoManager grpMan = new StationInfoManager();
List<GroupModel> groupList = groupMan.GetGroups();  //获取所有用户组
List<GroupModel> groups = groupList.FindAll(f => f.OwnerID == grpMan.GetStationBySN(strSn.Split(',')[0]).OwnModel.ID);    //获取当前电站所属用户组
items.AddRange(CommonTools.GetUserSelectList(userMan.GetUsers().FindAll(u => groups.Contains(u.UserGroup))));   //获取当前电站所属用户
return Json(items, JsonRequestBehavior.AllowGet);
}

#region 把枚举转换成数组
/// <summary>
/// 任务类型枚举
/// </summary>
public enum TaskTypes
{
系统通讯状态报警 = 0,
电站设备故障报警 = 1,
电站设备性能预警 = 2,
生成电站月报报表=3,
巡检提醒=4
}

/// <summary>
/// 计划任务执行频率--时间间隔枚举
/// </summary>
public enum PlanIntervals
{
//实时推送 = 0,
//每天推送一次 = 1,
//每周推送一次 = 2,
//每月推送一次 = 3

实时推送 = 0,
每天 = 1,
每周 = 2,
每月 = 3
}

/// <summary>
/// 每天频率--执行间隔枚举
/// </summary>
public enum ExecutionInterval
{
时 = 0,
分 = 1,
秒 = 2
}

/// <summary>
/// 一周的星期数
/// </summary>
public enum ExecutionWeek
{
星期日 = 0,
星期一 = 1,
星期二 = 2,
星期三 = 3,
星期四 = 4,
星期五 = 5,
星期六 = 6
}

/// <summary>
/// 接收方式枚举
/// </summary>
public enum PlanReceiveMethods
{
邮件 = 0,
微信 = 1
}

/// <summary>
/// 获取每月日期数集合 IList
/// </summary>
public static IList ExecutionDayList()
{
List<SelectListItem> selectlist = new List<SelectListItem>();
ArrayList list = new ArrayList();
for (int i = 1; i <= 31;i++ )
{
ListItem listitem = new ListItem(i.ToString(), i.ToString());
list.Add(listitem);
}
return list;
}

/// <summary>
/// 将枚举转换成集合 IList
/// </summary>
/// <returns></returns>
public static IList TaskTypesList()
{
List<SelectListItem> selectlist = new List<SelectListItem>();
ArrayList list = new ArrayList();
foreach (int i in Enum.GetValues(typeof(TaskTypes)))
{
ListItem listitem = new ListItem(Enum.GetName(typeof(TaskTypes), i), i.ToString());
list.Add(listitem);
}
return list;
}

/// <summary>
/// 将任务类型枚举转换成集合 SelectListItem
/// </summary>
/// <returns></returns>
public static List<SelectListItem> TaskTypesSelectList()
{
List<SelectListItem> selectlist = new List<SelectListItem>();
foreach (int i in Enum.GetValues(typeof(TaskTypes)))
{
SelectListItem selectitem = new SelectListItem();
selectitem.Value = i.ToString();
selectitem.Text = Enum.GetName(typeof(TaskTypes), i);
selectlist.Add(selectitem);
}
return selectlist;
}

/// <summary>
/// 把接收方式枚举转换成数组 SelectListItem
/// </summary>
/// <returns></returns>
public static List<SelectListItem> PlanReceiveMethodsSelectList()
{
List<SelectListItem> selectlist = new List<SelectListItem>();
foreach (int i in Enum.GetValues(typeof(PlanReceiveMethods)))
{
SelectListItem selectitem = new SelectListItem();
selectitem.Value = i.ToString();
selectitem.Text = Enum.GetName(typeof(PlanReceiveMethods), i);
selectlist.Add(selectitem);
}
return selectlist;
}

/// <summary>
/// 把执行间隔(频率)枚举转换成数组 SelectListItem
/// </summary>
/// <returns></returns>
public static List<SelectListItem> PlanIntervalsSelectList()
{
List<SelectListItem> selectlist = new List<SelectListItem>();
foreach (int i in Enum.GetValues(typeof(PlanIntervals)))
{
SelectListItem selectitem = new SelectListItem();
selectitem.Value = i.ToString();
selectitem.Text = Enum.GetName(typeof(PlanIntervals), i);
selectlist.Add(selectitem);
}
return selectlist;
}

/// <summary>
/// 把每天频率枚举转换成数组 SelectListItem
/// </summary>
/// <returns></returns>
public static List<SelectListItem> ExecutionWeekSelectList()
{
List<SelectListItem> selectlist = new List<SelectListItem>();
foreach (int i in Enum.GetValues(typeof(ExecutionWeek)))
{
SelectListItem selectitem = new SelectListItem();
selectitem.Value = i.ToString();
selectitem.Text = Enum.GetName(typeof(ExecutionWeek), i);
selectlist.Add(selectitem);
}
return selectlist;
}

/// <summary>
/// 把时间间隔枚举转换成数组 SelectListItem
/// </summary>
/// <returns></returns>
public static List<SelectListItem> ExecutionIntervalTypeSelectList()
{
List<SelectListItem> selectlist = new List<SelectListItem>();
foreach (int i in Enum.GetValues(typeof(ExecutionInterval)))
{
SelectListItem selectitem = new SelectListItem();
selectitem.Value = i.ToString();
selectitem.Text = Enum.GetName(typeof(ExecutionInterval), i);
selectlist.Add(selectitem);
}
return selectlist;
}
#endregion

#region 批量操作
//保存
[HttpPost]
public ContentResult PlanBatchSave(string datas, string strPlanReceiver, string strPlanReceiveMethod)
{
#region
//string id = datas.Split(',')[0];
//PlanModel model = syMan.GetPlanDataByID(id);    //根据ID查找任务配置
//model.PlanID = Convert.ToInt32(datas.Split(',')[0]);            //计划ID
////model.TaskID = Convert.ToInt32(datas.Split(',')[1]);            //任务ID
//model.Sn = datas.Split(',')[1];                                 //电站标识
////model.PlanReceiver = datas.Split(',')[3];                       //接收人
//model.PlanReceiver = strPlanReceiver;                       //接收人,获取多选框值
////model.PlanReceiveMethod = datas.Split(',')[3];                  //接收方式
//model.PlanReceiveMethod = strPlanReceiveMethod;                       //接收人,获取多选框值
//model.PlanBeginTime = Convert.ToDateTime(datas.Split(',')[4]);  //开始时间
//model.PlanEndTime = Convert.ToDateTime(datas.Split(',')[5]);    //结束时间
//model.PlanInterval = datas.Split(',')[6];                       //时间间隔
//int t = syMan.ModifyPlanData(model);    //批量保存
//if (t > 0)
//{
//    //插入系统日志
//    SysLogModel sysModel = new SysLogModel()
//    {
//        Action = "计划配置——批量保存",
//        Content = "操作成功",
//        ModuleCode = "XTGL-XT-JHRW"
//    };
//    Syslog.InsertSYSLog(sysModel);

//    return Content("ok");
//}
//else
//{ return Content(""); }
#endregion

#region
string id = string.Empty;
PlanModel model = new PlanModel();
string ErrorMsg = string.Empty;
if (datas.Split(',')[0] == "undefined")
{
ErrorMsg += "<label>请选择要操作的数据!</label></br> ";
}
else
{
#region
id = datas.Split(',')[0];
model = syMan.GetPlanDataByID(id);
if (datas.Split(',')[0] == "undefined")
{
ErrorMsg += "<label>请输入计划ID!</label></br> ";
}
else
{
model.PlanID = Convert.ToInt32(datas.Split(',')[0]);            //计划ID
}
if (datas.Split(',')[1] == "undefined")
{
ErrorMsg += "<label>请选择电站标识!</label></br> ";
}
else
{
model.Sn = datas.Split(',')[1];                                 //电站标识
}
if (datas.Split(',')[4] == "undefined")
{
ErrorMsg += "<label>请选择开始时间!</label></br> ";
}
else
{
model.PlanBeginTime = Convert.ToDateTime(datas.Split(',')[4]);  //开始时间
}
if (datas.Split(',')[5] == "undefined")
{
ErrorMsg += "<label>请选择结束时间!</label></br> ";
}
else
{
model.PlanEndTime = Convert.ToDateTime(datas.Split(',')[5]);    //结束时间
}
//if (datas.Split(',')[6] == "undefined")
//{
//    ErrorMsg += "<label>请选择时间间隔!</label></br> ";
//}
//else
//{
//    model.PlanInterval = datas.Split(',')[6];                       //时间间隔
//}
#endregion

model.PlanReceiver = strPlanReceiver;                       //接收人,获取多选框值
model.PlanReceiveMethod = strPlanReceiveMethod;             //接收方式,获取多选框值
}
if (!string.IsNullOrEmpty(ErrorMsg))
{
return Content(ErrorMsg);
}

//string id = datas.Split(',')[0];
//PlanModel model = syMan.GetPlanDataByID(id);    //根据ID查找任务配置
//model.PlanID = Convert.ToInt32(datas.Split(',')[0]);            //计划ID
//model.Sn = datas.Split(',')[1];                                 //电站标识
//model.PlanReceiver = strPlanReceiver;                       //接收人,获取多选框值
//model.PlanReceiveMethod = strPlanReceiveMethod;                       //接收人,获取多选框值
//model.PlanBeginTime = Convert.ToDateTime(datas.Split(',')[4]);  //开始时间
//model.PlanEndTime = Convert.ToDateTime(datas.Split(',')[5]);    //结束时间
//model.PlanInterval = datas.Split(',')[6];                       //时间间隔

else
{
int t = syMan.ModifyPlanData(model);    //批量保存
if (t > 0)
{
//插入系统日志
SysLogModel sysModel = new SysLogModel()
{
Action = "计划配置——批量保存",
Content = "操作成功",
ModuleCode = "XTGL-XT-JHRW"
};
Syslog.InsertSYSLog(sysModel);

return Content("ok");
}
else
{ return Content("计划配置,批量保存操作失败!"); }
}
#endregion
}

//删除
[HttpPost]
public ContentResult PlanBatchDelete(int id)
{
int result = syMan.DeletePlan(id);
if (result > 0)
{  //插入系统日志
SysLogModel sysModel = new SysLogModel()
{
Action = "计划配置——批量删除",
Content = "删除成功",
ModuleCode = "XTGL-XT-JHRW"
};
Syslog.InsertSYSLog(sysModel);

return Content("ok");
}
else
{
return Content("");
}
}

//开始推送
[HttpPost]
public ContentResult PlanStartSend(string ids)
{
#region
//string result = "OK";
//try
//{
//    //AlertTaskManager.Task.Start();

//    if (!string.IsNullOrEmpty(ids))
//    {
//        //遍历计划执行
//        string[] arrStr = ids.Split(',');
//        for (int i = 0; i < arrStr.Length; i++)
//        {
//            PlanModel planModel = syMan.GetPlanDataByID(arrStr[i]);//根据计划PlanID获取计划详细信息,用于执行
//            AlertTaskManager.Task.Start(planModel.PlanID.ToString(), planModel.PlanInterval); //执行线程
//        }
//    }
//}
//catch (Exception)
//{
//    result = "Error";
//}
//SysLogModel sysModel = new SysLogModel()
//{
//    Action = "开启消息推送",
//    Content = result == "OK" ? "开启成功" : "开启失败",
//    ModuleCode = "XTGL-XT-JHRW"
//};
//Syslog.InsertSYSLog(sysModel);
//return Content(result);
#endregion

#region
string result = "OK";
try
{
//AlertTaskManager.Task.Start();

if (!string.IsNullOrEmpty(ids))
{
int Result = syMan.ModifyPlanExecuteStatus(1, ids); //修改Plan执行状态,为Task();线程获取执行数据源做准备
if (Result != 1)
{
result = "Error";
}
}
}
catch (Exception)
{
result = "Error";
}
SysLogModel sysModel = new SysLogModel()
{
Action = "开启消息推送",
Content = result == "OK" ? "开启成功" : "开启失败",
ModuleCode = "XTGL-XT-JHRW"
};
Syslog.InsertSYSLog(sysModel);
return Content(result);
#endregion
}

////停止推送
//[HttpPost]
//public ContentResult PlanStopSend()
//{
//    string result = "OK";
//    try
//    {
//        AlertTaskManager.Task.Stop();
//    }
//    catch (Exception)
//    {
//        result = "Error";
//    }
//    SysLogModel sysModel = new SysLogModel()
//    {
//        Action = "停止消息推送",
//        Content = result == "OK" ? "停止成功" : "停止失败",
//        ModuleCode = "XTGL-XT-JHRW"
//    };
//    Syslog.InsertSYSLog(sysModel);
//    return Content(result);
//}

[HttpPost]
public ContentResult PlanStopSend(string ids)
{
string result = "OK";
try
{
AlertTaskManager.Task.Stop();   //停止线程

if (!string.IsNullOrEmpty(ids))
{
int Result = syMan.ModifyPlanExecuteStatus(0, ids); //修改Plan执行状态,为Task();线程获取执行数据源做准备
if (Result != 1)
{
result = "Error";
}
}
}
catch (Exception)
{
result = "Error";
}
SysLogModel sysModel = new SysLogModel()
{
Action = "停止消息推送",
Content = result == "OK" ? "停止成功" : "停止失败",
ModuleCode = "XTGL-XT-JHRW"
};
Syslog.InsertSYSLog(sysModel);
return Content(result);
}
#endregion

#endregion
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: