using System;
using Learun.Util;
using System.Data;
using Learun.Application.TwoDevelopment.EducationalAdministration;
using System.Web.Mvc;
using Learun.Application.TwoDevelopment.LR_CodeDemo;
using System.Collections.Generic;
using Learun.Application.WorkFlow;
using Learun.Application.Base.SystemModule;
using System.Linq;
using DocumentFormat.OpenXml.EMMA;
using Learun.Application.Organization;
//using Learun.Application.TwoDevelopment.LR_Desktop;
namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers
{
///
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
/// 创 建:超级管理员
/// 日 期:2021-06-01 11:49
/// 描 述:收文报告
///
public class DispatchController : MvcControllerBase
{
private DispatchIBLL dispatchIBLL = new DispatchBLL();
private NWFTaskIBLL nWFTaskIBLL = new NWFTaskBLL();
private AnnexesFileIBLL annexesFileIBLL = new AnnexesFileBLL();
private DataItemIBLL dataItemIBLL = new DataItemBLL();
private DispatchAuditIBLL dispatchAuditIBLL = new DispatchAuditBLL();
#region 视图功能
///
/// 主页面党建
///
///
[HttpGet]
public ActionResult Index()
{
return View();
}
///
/// 校方
///
///
public ActionResult IndexXF()
{
return View("IndexXF");
}
public ActionResult ReadIndex()
{
var userInfo = LoginUserInfo.Get();
ViewBag.userId = userInfo.userId;
ViewBag.realname = userInfo.realName;
return View();
}
///
/// 表单页
///
///
[HttpGet]
public ActionResult Form()
{
return View();
}
///
/// 流程
///
///
[HttpGet]
public ActionResult FormView()
{
return View();
}
[HttpGet]
public ActionResult ReadForm()
{
return View();
}
[HttpGet]
public ActionResult SelectForm()
{
return View();
}
#endregion
#region 获取数据
///
/// 获取页面显示列表数据
///
/// 分页参数
/// 查询参数
///
[HttpGet]
[AjaxOnly]
public ActionResult GetPageList(string pagination, string queryJson)
{
Pagination paginationobj = pagination.ToObject();
var data = dispatchIBLL.GetPageList(paginationobj, queryJson);
foreach (var item in data)
{
if (item.FlowNo != "0")
{
var NewList = nWFTaskIBLL.GetLogList(item.processId).OrderBy(o => o.F_CreateDate).ToList();
if (NewList.Count > 0)
{
item.CreateTime = NewList.First().F_CreateDate;
item.CreateUser = NewList.First().F_CreateUserName;
}
}
}
var jsonData = new
{
rows = data,
total = paginationobj.total,
page = paginationobj.page,
records = paginationobj.records
};
return Success(jsonData);
}
///
/// 获取表单数据
///
/// 主键
///
[HttpGet]
[AjaxOnly]
public ActionResult GetFormData(string keyValue)
{
var DispatchData = dispatchIBLL.GetDispatchEntity(keyValue);
var jsonData = new
{
Dispatch = DispatchData,
};
return Success(jsonData);
}
///
/// 获取表单数据
///
/// 流程实例主键
///
[HttpGet]
[AjaxOnly]
public ActionResult GetFormDataByProcessId(string processId)
{
var DispatchData = dispatchIBLL.GetEntityByProcessId(processId);
var jsonData = new
{
Dispatch = DispatchData,
};
return Success(jsonData);
}
#endregion
#region 提交数据
///
/// 删除实体数据
///
/// 主键
///
[HttpPost]
[AjaxOnly]
public ActionResult DeleteForm(string keyValue)
{
dispatchIBLL.DeleteEntity(keyValue);
return Success("删除成功!");
}
///
/// 保存实体数据(新增、修改)
///
/// 主键
/// 实体
///
[HttpPost]
[ValidateAntiForgeryToken]
[AjaxOnly]
public ActionResult SaveForm(string keyValue, string strEntity)
{
DispatchEntity entity = strEntity.ToObject();
entity.FlowNo = "0";
entity.Reasons = entity.AttachmentName;
if (entity.DisOffice == "1")
{
entity.WorkName = "1";
}
else
{
entity.WorkName = "2";
}
dispatchIBLL.SaveEntity(keyValue, entity);
if (string.IsNullOrEmpty(keyValue))
{
}
return Success("保存成功!");
}
#endregion
#region 扩展数据
///
/// 提交单子
///
/// 表主键
/// 审核状态
/// 流程Id
///
public ActionResult ModifyStatus(string keyValue, int pastatus, string processId)
{
//var userInfo = LoginUserInfo.Get();
//var RealName = userInfo.realName;
dispatchIBLL.ModifyStatus(keyValue, pastatus, processId);
return Success("提交成功!");
}
///
/// 打印
///
///
[HttpGet]
public ActionResult Print(string keyValue)
{
var dispatchEntity = dispatchIBLL.GetDispatchEntity(keyValue);
if (dispatchEntity == null)
{
return View(new DispatchEntity());
}
#region 获取附件名称
if (dispatchEntity.AttachmentName != null)
{
string str = "";
string[] array = annexesFileIBLL.GetFileNames(dispatchEntity.AttachmentName).Split(',');
if (array.Length > 0)
{
for (int i = 0; i < array.Length; i++)
{
if (array[i].Trim() != "")
{
str += array[i].Substring(0, array[i].IndexOf(".")) + ",";
}
}
str.TrimEnd(',');
}
dispatchEntity.Reasons = str;
}
#endregion
#region 读取标题和办公室
if (dispatchEntity.DisTitle != null)
{
var modelTitle = dataItemIBLL.GetDetailList("DisPatch");
foreach (var item in modelTitle)
{
if (!string.IsNullOrEmpty(dispatchEntity.DisTitle) && item.F_ItemValue == dispatchEntity.DisTitle)
{
dispatchEntity.DisTitle = item.F_ItemName;
}
}
}
if (dispatchEntity.DisOffice != null)
{
var modelOffice = dataItemIBLL.GetDetailList("DisOffice");
foreach (var item in modelOffice)
{
if (!string.IsNullOrEmpty(dispatchEntity.DisOffice) && item.F_ItemValue == dispatchEntity.DisOffice)
{
dispatchEntity.DisOffice = item.F_ItemName;
}
}
}
#endregion
#region 获取校长的签名盖章+ 批示+时间+阅
//var listTaskLog = nWFTaskIBLL.GetLogList(dispatchEntity.processId);
var firstList = nWFTaskIBLL.GetLogList(dispatchEntity.processId).OrderBy(o => o.F_CreateDate).ToList();
for (int i = 1; i < firstList.Count; i++)
{
if (i == 1)
{
dispatchEntity.Render = firstList[i].F_Des;
ViewBag.pSList += firstList[i].F_CreateUserName + firstList[i].F_CreateDate + "阅" + "&";
}
}
var PrintList = nWFTaskIBLL.GetLogList(dispatchEntity.processId).GroupBy(o => o.F_CreateUserName).Select(o => new
{
F_CreateDate = o.FirstOrDefault().F_CreateDate,
F_CreateUserName = o.FirstOrDefault().F_CreateUserName,
});
var newList = PrintList.Where(s => PrintList.Select(mo => mo.F_CreateDate).Contains(s.F_CreateDate)).OrderBy(s => s.F_CreateDate).ToList();
for (int i = 1; i < newList.Count; i++)
{
if (!ViewBag.pSList.Contains(newList[i].F_CreateUserName))
{
ViewBag.pSList += newList[i].F_CreateUserName + newList[i].F_CreateDate + "阅" + "&";
}
}
ViewBag.pSList = ViewBag.pSList.TrimEnd('&');
ViewBag.pSList = new List(ViewBag.pSList.Split('&'));
#endregion
return View(dispatchEntity);
}
#region 查阅
///
/// 查阅
///
///
///
[HttpPost]
[AjaxOnly]
public ActionResult Read(string keyValue)
{
var userInfo = LoginUserInfo.Get();
var model = dispatchAuditIBLL.Repetition(keyValue, userInfo.realName);
if (model != null)
{
return Fail("请勿重复批阅!");
}
else
{
var dispatchEntity = dispatchIBLL.GetDispatchEntity(keyValue);
var printList = nWFTaskIBLL.GetLogList(dispatchEntity.processId).Select(x => x.F_CreateUserName);
if (printList.Contains(userInfo.realName))
{
return Fail("请勿重复批阅!");
}
else
{
DispatchAuditEntity entityaudit = new DispatchAuditEntity();
entityaudit.DisId = keyValue;
entityaudit.AuditTime = DateTime.Now;
entityaudit.AuditUser = userInfo.userId;
entityaudit.AuditName = userInfo.realName;
dispatchAuditIBLL.SaveEntity("", entityaudit);
dispatchIBLL.SaveEntity(keyValue, dispatchEntity);
return Success("查阅完成!");
}
}
}
#endregion
#region 设置传阅人
[HttpPost]
[ValidateAntiForgeryToken]
[AjaxOnly]
public ActionResult SetRead(string objectId, string userIds)
{
var model = dispatchIBLL.GetDispatchEntity(objectId);
if (!string.IsNullOrEmpty(model.Reader))
{
return Fail("请勿重复设置传阅人!");
}
else
{
model.Reader = userIds;
dispatchIBLL.SaveEntity(objectId, model);
//var userInfo = LoginUserInfo.Get();
//foreach (var item in userIds)
//{
// MessageRemindEntity entity = new MessageRemindEntity
// {
// ReceiptId = item.ToString(),
// ReceiptName = userInfo.realName,
// SenderId = userInfo.userId,
// SenderName = userInfo.realName,
// TheTitle = "查阅提醒",
// TheContent = model.DisTitle,
// //entity.InstanceId = item.F_ScheduleId;
// ConnectionUrl = "/EducationalAdministration/Dispatch/ReadIndex?keyValue=",
// SendTime = DateTime.Now,
// ReadSigns = false
// };
// messageRindIBLL.SaveEntity("", entity);
//}
return Success("设置成功!");
}
}
#endregion
#region 查阅
///
/// 查阅
///
///
///
[HttpPost]
[AjaxOnly]
public ActionResult ReadLD(string keyValue)
{
var userInfo = LoginUserInfo.Get();
var dispatchEntity = dispatchIBLL.GetDispatchEntity(keyValue);
var printList = nWFTaskIBLL.GetLogList(dispatchEntity.processId).Select(x => x.F_CreateUserName);
if (printList.Contains(userInfo.realName))
{
return Fail("请勿重复阅读!");
}
else
{
DispatchAuditEntity entityaudit = new DispatchAuditEntity();
entityaudit.DisId = keyValue;
entityaudit.AuditTime = DateTime.Now;
entityaudit.AuditUser = userInfo.userId;
entityaudit.AuditName = userInfo.realName;
dispatchAuditIBLL.SaveEntity("", entityaudit);
return Success("阅读成功!");
}
}
#endregion
#endregion
}
}