Переглянути джерело

1、流程审批中不同意后流程终止,状态显示:“中止”

2、流程审批中审批人加签后加签人如没有做审批动作,审批人可以撤销审核
3、流程中撤销审核按键在后面的审批人操作以后不在作显示
中职版本
zhichao lei 4 роки тому
джерело
коміт
f284727d8e
40 змінених файлів з 1409 додано та 514 видалено
  1. +25
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/Sys_ReceiveFileController.cs
  2. +52
    -30
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/Sys_SendFileController.cs
  3. +1
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_ReceiveFile/Index.cshtml
  4. +40
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_ReceiveFile/Index.js
  5. +11
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_ReceiveFile/SpecifyReceiverForm.cshtml
  6. +54
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_ReceiveFile/SpecifyReceiverForm.js
  7. +6
    -18
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_SendFile/Form.cshtml
  8. +2
    -192
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_SendFile/Form.js
  9. +8
    -12
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_SendFile/FormView.cshtml
  10. +19
    -13
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_SendFile/FormView.js
  11. +2
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_SendFile/Index.cshtml
  12. +74
    -12
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_SendFile/Index.js
  13. +11
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_SendFile/IssueForm.cshtml
  14. +96
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_SendFile/IssueForm.js
  15. +1
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_SendFile/ReadList.cshtml
  16. +68
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_SendFile/ReadList.js
  17. +1
    -1
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_NewWorkFlow/Views/NWFProcess/Index.cshtml
  18. +8
    -3
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_NewWorkFlow/Views/NWFProcess/Index.js
  19. +15
    -11
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_OrganizationModule/Views/User/SelectForm.js
  20. +447
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LogisticsManagement/Views/ADR_Record/Report - 副本.mrt
  21. +5
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Views/LR_Content/plugin/formselect/lr-formselect.js
  22. +38
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Views/LR_Content/plugin/select/lr-select.js
  23. +14
    -1
      Learun.Framework.Ultimate V7/Learun.Application.Web/Views/LR_Content/script/lr-clientdata.js
  24. +22
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Sys_ReceiveFile/Sys_IssueEntity.cs
  25. +19
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Sys_ReceiveFile/Sys_ReceiveFileBLL.cs
  26. +10
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Sys_ReceiveFile/Sys_ReceiveFileEntity.cs
  27. +1
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Sys_ReceiveFile/Sys_ReceiveFileIBLL.cs
  28. +147
    -1
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Sys_ReceiveFile/Sys_ReceiveFileService.cs
  29. +19
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Sys_SendFile/Sys_SendFileBLL.cs
  30. +10
    -1
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Sys_SendFile/Sys_SendFileEntity.cs
  31. +1
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Sys_SendFile/Sys_SendFileIBLL.cs
  32. +37
    -153
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Sys_SendFile/Sys_SendFileService.cs
  33. +1
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/Learun.Application.TwoDevelopment.csproj
  34. +11
    -1
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.WorkFlow/Process/NWFProcessBLL.cs
  35. +12
    -1
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.WorkFlow/Process/NWFProcessEntity.cs
  36. +14
    -2
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.WorkFlow/Process/NWFProcessSerivce.cs
  37. +100
    -55
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Workflow/Learun.Workflow.Engine/NWFEngine.cs
  38. +2
    -2
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Workflow/Learun.Workflow.Engine/NWFIEngine.cs
  39. +1
    -1
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/config.js
  40. +4
    -4
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/login.vue

+ 25
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/Sys_ReceiveFileController.cs Переглянути файл

@@ -44,6 +44,15 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers
return View();
}
/// <summary>
/// 指定接收人表单页
/// </summary>
/// <returns></returns>
[HttpGet]
public ActionResult SpecifyReceiverForm()
{
return View();
}
/// <summary>
/// 主页面【党政公文查阅】
/// </summary>
/// <returns></returns>
@@ -211,6 +220,22 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers
sys_ReceiveFileIBLL.SaveEntity(keyValue, entity);
return Success("保存成功!");
}


/// <summary>
/// 保存实体数据(新增、修改)
/// <param name="keyValue">主键</param>
/// <summary>
/// <returns></returns>
[HttpPost]
[ValidateAntiForgeryToken]
[AjaxOnly]
public ActionResult Issue(string strEntity)
{
Sys_IssueEntity entity = strEntity.ToObject<Sys_IssueEntity>();
sys_ReceiveFileIBLL.Issue(entity);
return Success("保存成功!");
}
/// <summary>
/// 查看实体数据
/// <param name="keyValue">主键</param>


+ 52
- 30
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/Sys_SendFileController.cs Переглянути файл

@@ -30,12 +30,22 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers
[HttpGet]
public ActionResult Index()
{
return View();
return View();
}
[HttpGet]
public ActionResult IndexDocument()
{
return View();
return View();
}

/// <summary>
/// 公文下发表单页
/// </summary>
/// <returns></returns>
[HttpGet]
public ActionResult IssueForm()
{
return View();
}
/// <summary>
/// 主页面【党政公文下发】
@@ -49,7 +59,7 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers
[HttpGet]
public ActionResult FormDocument()
{
return View();
return View();
}
/// <summary>
/// 表单页
@@ -58,7 +68,7 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers
[HttpGet]
public ActionResult Form()
{
return View();
return View();
}
/// <summary>
/// 表单页【党政公文下发】
@@ -73,13 +83,13 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers
[HttpGet]
public ActionResult FormView()
{
return View();
return View();
}

[HttpGet]
public ActionResult FormDocumentView()
{
return View();
return View();
}
/// <summary>
/// 【党政公文下发】
@@ -93,7 +103,7 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers
[HttpGet]
public ActionResult ReadList()
{
return View();
return View();
}

[HttpGet]
@@ -124,7 +134,7 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers
public ActionResult GetPageList(string pagination, string queryJson)
{
Pagination paginationobj = pagination.ToObject<Pagination>();
var data = sys_SendFileIBLL.GetPageList(paginationobj, queryJson).Where(m=>m.STypeId==1);
var data = sys_SendFileIBLL.GetPageList(paginationobj, queryJson).Where(m => m.STypeId == 1);
var jsonData = new
{
rows = data,
@@ -172,9 +182,10 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers
[AjaxOnly]
public ActionResult GetFormData(string keyValue)
{
var Sys_SendFileData = sys_SendFileIBLL.GetSys_SendFileEntity( keyValue );
var Sys_SendFileData = sys_SendFileIBLL.GetSys_SendFileEntity(keyValue);
Sys_SendFileData.Contents = HttpUtility.HtmlDecode(Sys_SendFileData.Contents);
var jsonData = new {
var jsonData = new
{
Sys_SendFile = Sys_SendFileData,
};
return Success(jsonData);
@@ -199,8 +210,9 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers
[AjaxOnly]
public ActionResult GetFormDataByProcessId(string processId)
{
var Sys_SendFileData = sys_SendFileIBLL.GetEntityByProcessId( processId );
var jsonData = new {
var Sys_SendFileData = sys_SendFileIBLL.GetEntityByProcessId(processId);
var jsonData = new
{
Sys_SendFile = Sys_SendFileData,
};
return Success(jsonData);
@@ -233,12 +245,11 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers
public ActionResult SaveForm(string keyValue, string strEntity)
{
Sys_SendFileEntity entity = strEntity.ToObject<Sys_SendFileEntity>();
entity.DelFlag = false;
entity.SendFlag = 0;
entity.SenderId = LoginUserInfo.Get().userId;
entity.Sender = LoginUserInfo.Get().realName;
entity.STypeId = 1;
sys_SendFileIBLL.SaveEntity(keyValue,entity);
if (string.IsNullOrEmpty(keyValue))
{
entity.STypeId = 1;
}
sys_SendFileIBLL.SaveEntity(keyValue, entity);
return Success("保存成功!");
}

@@ -249,12 +260,11 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers
public ActionResult SaveFormDocument(string keyValue, string strEntity)
{
Sys_SendFileEntity entity = strEntity.ToObject<Sys_SendFileEntity>();
entity.DelFlag = false;
entity.SendFlag = 0;
entity.SenderId = LoginUserInfo.Get().userId;
entity.Sender = LoginUserInfo.Get().realName;
entity.STypeId = 2;
sys_SendFileIBLL.SaveEntity(keyValue,entity);
if (string.IsNullOrEmpty(keyValue))
{
entity.STypeId = 2;
}
sys_SendFileIBLL.SaveEntity(keyValue, entity);
return Success("保存成功!");
}

@@ -265,11 +275,10 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers
public ActionResult SaveFormParty(string keyValue, string strEntity)
{
Sys_SendFileEntity entity = strEntity.ToObject<Sys_SendFileEntity>();
entity.DelFlag = false;
entity.SendFlag = 0;
entity.SenderId = LoginUserInfo.Get().userId;
entity.Sender = LoginUserInfo.Get().realName;
entity.STypeId = 3;
if (string.IsNullOrEmpty(keyValue))
{
entity.STypeId = 3;
}
sys_SendFileIBLL.SaveEntity(keyValue, entity);
return Success("保存成功!");
}
@@ -291,9 +300,22 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers
{
string guid = Guid.NewGuid().ToString();
sys_SendFileIBLL.ChangeStatusById(keyValue, 2, guid);
sys_SendFileIBLL.ChangeStatusByProcessId(guid,2);
sys_SendFileIBLL.ChangeStatusByProcessId(guid, 2);
return Success("操作成功!");
}
/// <summary>
/// 结束下发
/// </summary>
/// <param name="keyValue"></param>
/// <returns></returns>
[HttpPost]
[AjaxOnly]
public ActionResult OverIssue(string keyValue)
{
string guid = Guid.NewGuid().ToString();
sys_SendFileIBLL.OverIssue(keyValue);
return Success("下发成功!");
}
#endregion

}


+ 1
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_ReceiveFile/Index.cshtml Переглянути файл

@@ -27,6 +27,7 @@
</div>
<div class=" btn-group btn-group-sm" learun-authorize="yes">
<a id="lr_Read" class="btn btn-default"><i class="fa fa-plus"></i>&nbsp;查阅</a>
<a id="lr_SpecifyReceiver" class="btn btn-default"><i class="fa fa-plus"></i>&nbsp;指定接收人</a>
<a id="lr_delete" class="btn btn-default"><i class="fa fa-trash-o"></i>&nbsp;删除</a>
</div>
</div>


+ 40
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_ReceiveFile/Index.js Переглянути файл

@@ -79,6 +79,22 @@ var bootstrap = function ($, learun) {
});
}
});
// 指定接收人
$('#lr_SpecifyReceiver').on('click', function () {
var keyValue = $('#gridtable').jfGridValue('RFileId');
if (learun.checkrow(keyValue)) {
learun.layerForm({
id: 'formSys_ReceiveFile',
title: '指定接收人',
url: top.$.rootUrl + '/EducationalAdministration/Sys_ReceiveFile/SpecifyReceiverForm?keyValue=' + keyValue,
width: 600,
height: 400,
callBack: function (id) {
return top[id].acceptClick(refreshGirdData);
}
});
}
});
// 删除
$('#lr_delete').on('click', function () {
var keyValue = $('#gridtable').jfGridValue('RFileId');
@@ -152,6 +168,30 @@ var bootstrap = function ($, learun) {
});
}
},
{
label: "指定接收人", name: "SpecifyReceiver", width: 150, align: "left", formatterAsync:
function (callback, value, row, op, $cell) {
learun.clientdata.getAsync('user',
{
key: value,
callback: function (_data) {
if (_data.length > 0) {
var text = '';
$.each(_data,
function (i, item) {
if (item) {
text += item.name + ',';
}
});
text = text.substring(0, text.lastIndexOf(','));
callback(text);
} else {
callback(_data.name);
}
}
});
}
},
{
label: "状态", name: "ReadFlag", width: 100, align: "left",
formatter: function (cellvalue, row) {


+ 11
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_ReceiveFile/SpecifyReceiverForm.cshtml Переглянути файл

@@ -0,0 +1,11 @@
@{
ViewBag.Title = "公文收发";
Layout = "~/Views/Shared/_Form.cshtml";
}
<div class="lr-form-wrap">
<div class="col-xs-12 lr-form-item" data-table="Sys_ReceiveFile">
<div class="lr-form-item-title">发送人</div>
<div id="SpecifyReceiver" class="form-control"></div>
</div>
</div>
@Html.AppendJsFile("/Areas/EducationalAdministration/Views/Sys_ReceiveFile/SpecifyReceiverForm.js")

+ 54
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_ReceiveFile/SpecifyReceiverForm.js Переглянути файл

@@ -0,0 +1,54 @@
/* * 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园(http://www.learun.cn)
* Copyright (c) 2013-2018 北京泉江科技有限公司
* 创建人:超级管理员
* 日 期:2019-04-11 10:08
* 描 述:公文收发
*/
var acceptClick;
var keyValue = request('keyValue');
var bootstrap = function ($, learun) {
"use strict";
var selectedRow = learun.frameTab.currentIframe().selectedRow;
var page = {
init: function () {
$('.lr-form-wrap').lrscroll();
page.bind();
page.initData();
},
bind: function () {
$('#SpecifyReceiver').lrUserSelect({ type: '1' });
},
initData: function () {
if (!!keyValue) {
$.lrSetForm(top.$.rootUrl + '/EducationalAdministration/Sys_ReceiveFile/GetFormData?keyValue=' + keyValue, function (data) {
for (var id in data) {
if (!!data[id].length && data[id].length > 0) {
$('#' + id).jfGridSet('refreshdata', data[id]);
}
else {
$('[data-table="' + id + '"]').lrSetFormData(data[id]);
$('#Contents').html(data[id].Contents);
}
}
$("#lrUploader_uploadBtn_Url").hide();
});
}
}
};
// 保存数据
acceptClick = function (callBack) {
if (!$('body').lrValidform()) {
return false;
}
var postData = {
strEntity: JSON.stringify($('body').lrGetFormData())
};
$.lrSaveForm(top.$.rootUrl + '/EducationalAdministration/Sys_ReceiveFile/SaveForm?keyValue=' + keyValue, postData, function (res) {
// 保存成功后才回调
if (!!callBack) {
callBack();
}
});
};
page.init();
}

+ 6
- 18
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_SendFile/Form.cshtml Переглянути файл

@@ -7,26 +7,14 @@
<div class="lr-form-item-title">主题<font face="宋体">*</font></div>
<input id="Title" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" />
</div>
<div class="col-xs-12 lr-form-item" data-table="Sys_SendFile" >
<div class="lr-form-item-title">接收对象<font face="宋体">*</font></div>
<div id="SendType" isvalid="yes" checkexpession="NotNull" ></div>
@*<div class="col-xs-12 lr-form-item" data-table="Sys_SendFile" id="ReceiverIddiv">
<div class="lr-form-item-title">已接收人<font face="宋体">*</font></div>
<div id="ReceiverId" ></div>
</div>
<div class="col-xs-12 lr-form-item" data-table="Sys_SendFile" id="ReceiverIddiv">
<div class="lr-form-item-title">接收人<font face="宋体">*</font></div>
<div id="ReceiverUserId" ></div>
</div>
<div class="col-xs-12 lr-form-item" data-table="Sys_SendFile" id="DeptIddiv">
<div class="lr-form-item-title">接收部门<font face="宋体">*</font></div>
<div id="DeptId" ></div>
</div>
<div class="col-xs-12 lr-form-item" data-table="Sys_SendFile" id="PostIddiv">
<div class="lr-form-item-title">接收岗位<font face="宋体">*</font></div>
<div id="PostId" ></div>
</div>
<div class="col-xs-12 lr-form-item" data-table="Sys_SendFile" id="CompanyIddiv">
<div class="lr-form-item-title">接收校区<font face="宋体">*</font></div>
<div id="CompanyId" ></div>
</div>
<div class="lr-form-item-title">未接收人<font face="宋体">*</font></div>
<div id="NoReceiver" ></div>
</div>*@
<div class="col-xs-12 lr-form-item" data-table="Sys_SendFile" >
<div class="lr-form-item-title">文件</div>
<div id="Url" ></div>


+ 2
- 192
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_SendFile/Form.js Переглянути файл

@@ -26,70 +26,8 @@ var bootstrap = function ($, learun) {
page.initData();
},
bind: function () {
$('#CompanyId').lrCompanySelect({ type: 'multiple' });
$('#DeptId').lrDepartmentSelect({ type: 'treemultiple' });
$('#PostId').lrPostSelect({ type: 'treemultiple' });
$('#ReceiverUserId').lrUserSelect({ type: '1' });
$('#SendType').lrDataItemSelect({
code: 'FileSendType', select: function (item) {
if (item != null && item != undefined) {
if (item.id === 1 || item.id === "1") {
$("#CompanyIddiv").show();
$("#CompanyId").attr("isvalid", "yes");
$("#CompanyId").attr("checkexpession", "NotNull");
$("#DeptIddiv").hide();
$("#DeptId").removeAttr("isvalid");
$("#DeptId").removeAttr("NotNull");
$("#ReceiverIddiv").hide();
$("#ReceiverUserId").removeAttr("isvalid");
$("#ReceiverUserId").removeAttr("NotNull");
$("#PostIddiv").hide();
$("#PostId").removeAttr("isvalid");
$("#PostId").removeAttr("NotNull");
} else if (item.id === 2 || item.id === "2") {
$("#CompanyIddiv").hide();
$("#CompanyId").removeAttr("isvalid");
$("#CompanyId").removeAttr("NotNull");
$("#DeptIddiv").show();
$("#DeptId").attr("isvalid", "yes");
$("#DeptId").attr("checkexpession", "NotNull");
$("#ReceiverIddiv").hide();
$("#ReceiverUserId").removeAttr("isvalid");
$("#ReceiverUserId").removeAttr("NotNull");
$("#PostIddiv").hide();
$("#PostId").removeAttr("isvalid");
$("#PostId").removeAttr("NotNull");
} else if (item.id === 3 || item.id === "3") {
$("#CompanyIddiv").hide();
$("#CompanyId").removeAttr("isvalid");
$("#CompanyId").removeAttr("NotNull");
$("#DeptIddiv").hide();
$("#DeptId").removeAttr("isvalid");
$("#DeptId").removeAttr("NotNull");
$("#ReceiverIddiv").hide();
$("#ReceiverUserId").removeAttr("isvalid");
$("#ReceiverUserId").removeAttr("NotNull");
$("#PostIddiv").show();
$("#PostId").attr("isvalid", "yes");
$("#PostId").attr("checkexpession", "NotNull");
} else {
$("#CompanyIddiv").hide();
$("#CompanyId").removeAttr("isvalid");
$("#CompanyId").removeAttr("NotNull");
$("#DeptIddiv").hide();
$("#DeptId").removeAttr("isvalid");
$("#DeptId").removeAttr("NotNull");
$("#ReceiverIddiv").show();
$("#ReceiverUserId").attr("isvalid", "yes");
$("#ReceiverUserId").attr("checkexpession", "NotNull");
$("#PostIddiv").hide();
$("#PostId").removeAttr("isvalid");
$("#PostId").removeAttr("NotNull");
}
}
}
});
$('#SendType').lrselectSet("1");
//$('#ReceiverId').lrUserSelect({ type: '1' });
//$('#NoReceiver').lrUserSelect({ type: '1' });
$('#Url').lrUploader();
var ContentsUE = UE.getEditor('Contents');
$('#Contents')[0].ue = ContentsUE;
@@ -103,63 +41,6 @@ var bootstrap = function ($, learun) {
}
else {
$('[data-table="' + id + '"]').lrSetFormData(data[id]);
if (data[id].SendType === 1 || data[id].SendType == "1") {
$("#CompanyIddiv").show();
$("#CompanyId").attr("isvalid", "yes");
$("#CompanyId").attr("checkexpession", "NotNull");
$("#DeptIddiv").hide();
$("#DeptId").removeAttr("isvalid");
$("#DeptId").removeAttr("NotNull");
$("#ReceiverIddiv").hide();
$("#ReceiverUserId").removeAttr("isvalid");
$("#ReceiverUserId").removeAttr("NotNull");
$("#PostIddiv").hide();
$("#PostId").removeAttr("isvalid");
$("#PostId").removeAttr("NotNull");
$("#CompanyId").lrselectSet(data[id].ReceiverId);
} else if (data[id].SendType === 2 || data[id].SendType == "2") {
$("#CompanyIddiv").hide();
$("#CompanyId").removeAttr("isvalid");
$("#CompanyId").removeAttr("NotNull");
$("#DeptIddiv").show();
$("#DeptId").attr("isvalid", "yes");
$("#DeptId").attr("checkexpession", "NotNull");
$("#ReceiverIddiv").hide();
$("#ReceiverUserId").removeAttr("isvalid");
$("#ReceiverUserId").removeAttr("NotNull");
$("#PostIddiv").hide();
$("#PostId").removeAttr("isvalid");
$("#PostId").removeAttr("NotNull");
$("#DeptId").lrselectSet(data[id].ReceiverId);
} else if (data[id].SendType === 3 || data[id].SendType === "3") {
$("#CompanyIddiv").hide();
$("#CompanyId").removeAttr("isvalid");
$("#CompanyId").removeAttr("NotNull");
$("#DeptIddiv").hide();
$("#DeptId").removeAttr("isvalid");
$("#DeptId").removeAttr("NotNull");
$("#ReceiverIddiv").hide();
$("#ReceiverUserId").removeAttr("isvalid");
$("#ReceiverUserId").removeAttr("NotNull");
$("#PostIddiv").show();
$("#PostId").attr("isvalid", "yes");
$("#PostId").attr("checkexpession", "NotNull");
$("#PostId").lrselectSet(data[id].ReceiverId);
} else {
$("#CompanyIddiv").hide();
$("#CompanyId").removeAttr("isvalid");
$("#CompanyId").removeAttr("NotNull");
$("#DeptIddiv").hide();
$("#DeptId").removeAttr("isvalid");
$("#DeptId").removeAttr("NotNull");
$("#ReceiverIddiv").show();
$("#ReceiverUserId").attr("isvalid", "yes");
$("#ReceiverUserId").attr("checkexpession", "NotNull");
$("#PostIddiv").hide();
$("#PostId").removeAttr("isvalid");
$("#PostId").removeAttr("NotNull");
$("#ReceiverUserId").lrformselectSet(data[id].ReceiverId);
}
}
}

@@ -180,63 +61,6 @@ var bootstrap = function ($, learun) {
keyValue = data[id].SFileId;
}
$('[data-table="' + id + '"]').lrSetFormData(data[id]);
if (data[id].SendType === 1 || data[id].SendType == "1") {
$("#CompanyIddiv").show();
$("#CompanyId").attr("isvalid", "yes");
$("#CompanyId").attr("checkexpession", "NotNull");
$("#DeptIddiv").hide();
$("#DeptId").removeAttr("isvalid");
$("#DeptId").removeAttr("NotNull");
$("#ReceiverIddiv").hide();
$("#ReceiverUserId").removeAttr("isvalid");
$("#ReceiverUserId").removeAttr("NotNull");
$("#PostIddiv").hide();
$("#PostId").removeAttr("isvalid");
$("#PostId").removeAttr("NotNull");
$("#CompanyId").lrselectSet(data[id].ReceiverId);
} else if (data[id].SendType === 2 || data[id].SendType == "2") {
$("#CompanyIddiv").hide();
$("#CompanyId").removeAttr("isvalid");
$("#CompanyId").removeAttr("NotNull");
$("#DeptIddiv").show();
$("#DeptId").attr("isvalid", "yes");
$("#DeptId").attr("checkexpession", "NotNull");
$("#ReceiverIddiv").hide();
$("#ReceiverUserId").removeAttr("isvalid");
$("#ReceiverUserId").removeAttr("NotNull");
$("#PostIddiv").hide();
$("#PostId").removeAttr("isvalid");
$("#PostId").removeAttr("NotNull");
$("#DeptId").lrselectSet(data[id].ReceiverId);
} else if (data[id].SendType === 3 || data[id].SendType === "3") {
$("#CompanyIddiv").hide();
$("#CompanyId").removeAttr("isvalid");
$("#CompanyId").removeAttr("NotNull");
$("#DeptIddiv").hide();
$("#DeptId").removeAttr("isvalid");
$("#DeptId").removeAttr("NotNull");
$("#ReceiverIddiv").hide();
$("#ReceiverUserId").removeAttr("isvalid");
$("#ReceiverUserId").removeAttr("NotNull");
$("#PostIddiv").show();
$("#PostId").attr("isvalid", "yes");
$("#PostId").attr("checkexpession", "NotNull");
$("#PostId").lrselectSet(data[id].ReceiverId);
} else {
$("#CompanyIddiv").hide();
$("#CompanyId").removeAttr("isvalid");
$("#CompanyId").removeAttr("NotNull");
$("#DeptIddiv").hide();
$("#DeptId").removeAttr("isvalid");
$("#DeptId").removeAttr("NotNull");
$("#ReceiverIddiv").show();
$("#ReceiverUserId").attr("isvalid", "yes");
$("#ReceiverUserId").attr("checkexpession", "NotNull");
$("#PostIddiv").hide();
$("#PostId").removeAttr("isvalid");
$("#PostId").removeAttr("NotNull");
$("#ReceiverUserId").lrformselectSet(data[id].ReceiverId);
}
}
}
});
@@ -252,20 +76,6 @@ var bootstrap = function ($, learun) {
// 保存数据
save = function (processId, callBack, i) {
var formData = $('body').lrGetFormData();
var sendtype = $('#SendType').lrselectGet();
if (sendtype == "1") {
formData.ReceiverId = $("#CompanyId").lrselectGet();
formData.Receiver = $("#CompanyId").find(".lr-select-placeholder").text();
} else if (sendtype == "2") {
formData.ReceiverId = $("#DeptId").lrselectGet();
formData.Receiver = $("#DeptId").find(".lr-select-placeholder").text();
} else if (sendtype == "3") {
formData.ReceiverId = $("#PostId").lrselectGet();
formData.Receiver = $("#PostId").find(".lr-select-placeholder").text();
} else {
formData.ReceiverId = $("#ReceiverUserId").lrformselectGet();
formData.Receiver = $("#ReceiverUserId").find("span").text();
}
if (!!processId) {
formData.SProcessId = processId;
}


+ 8
- 12
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_SendFile/FormView.cshtml Переглянути файл

@@ -3,23 +3,19 @@
Layout = "~/Views/Shared/_Form.cshtml";
}
<div class="lr-form-wrap" id="form">
<div class="col-xs-12 lr-form-item" data-table="Sys_SendFile" >
<div class="col-xs-12 lr-form-item" data-table="Sys_SendFile">
<div class="lr-form-item-title">主题<font face="宋体">*</font></div>
<input id="Title" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" readonly="readonly" />
<input id="Title" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" />
</div>
<div class="col-xs-12 lr-form-item" data-table="Sys_SendFile" >
<div class="lr-form-item-title">接收对象<font face="宋体">*</font></div>
<div id="SendType" isvalid="yes" checkexpession="NotNull" readonly="readonly" ></div>
<div class="col-xs-12 lr-form-item" data-table="Sys_SendFile" id="ReceiverIddiv">
<div class="lr-form-item-title">指定接收人<font face="宋体">*</font></div>
<div id="SpecifyReceiver" isvalid="yes" checkexpession="NotNull"></div>
</div>
<div class="col-xs-12 lr-form-item" data-table="Sys_SendFile" id="ReceiverIddiv">
<div class="lr-form-item-title">接收人<font face="宋体">*</font></div>
<input id="Receiver" type="text" class="form-control" readonly="readonly" />
</div>
<div class="col-xs-12 lr-form-item" data-table="Sys_SendFile" >
<div class="col-xs-12 lr-form-item" data-table="Sys_SendFile">
<div class="lr-form-item-title">文件</div>
<div id="Url" readonly="readonly" style="padding-right: 60px;"></div>
<div id="Url" readonly="readonly" style="padding-right: 60px;"></div>
</div>
<div class="col-xs-12 lr-form-item" data-table="Sys_SendFile" >
<div class="col-xs-12 lr-form-item" data-table="Sys_SendFile">
<div class="lr-form-item-title">正文</div>
<div id="Contents" style="height:300px; margin-top: 6px;"></div>
</div>


+ 19
- 13
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_SendFile/FormView.js Переглянути файл

@@ -27,9 +27,7 @@ var bootstrap = function ($, learun) {
page.initData();
},
bind: function () {
$('#SendType').lrDataItemSelect({
code: 'FileSendType'
});
$('#SpecifyReceiver').lrUserSelect({ type: '1' });
$('#Url').lrUploader();
var ContentsUE = UE.getEditor('Contents');
$('#Contents')[0].ue = ContentsUE;
@@ -44,7 +42,7 @@ var bootstrap = function ($, learun) {
else {
$('[data-table="' + id + '"]').lrSetFormData(data[id]);
$("#lrUploader_uploadBtn_Url").hide();
// $('#Contents').html(data[id].Contents);
// $('#Contents').html(data[id].Contents);
}
}
});
@@ -52,7 +50,7 @@ var bootstrap = function ($, learun) {
}
};
// 设置表单数据
setFormData = function (processId,param,callback) {
setFormData = function (processId, param, callback) {
if (!!processId) {
$.lrSetForm(top.$.rootUrl + '/EducationalAdministration/Sys_SendFile/GetFormDataByProcessId?processId=' + processId, function (data) {
for (var id in data) {
@@ -70,7 +68,7 @@ var bootstrap = function ($, learun) {
}
});
}
callback && callback();
callback && callback();
}
// 验证数据是否填写完整
validForm = function () {
@@ -81,13 +79,21 @@ var bootstrap = function ($, learun) {
};
// 保存数据
save = function (processId, callBack, i) {
var formData = {};
var res = {};
res.code = 200;
if (!!processId) {
formData.SProcessId = processId;
}
callBack(res, i);

var formData = $('body').lrGetFormData();
var postData = {
strEntity: JSON.stringify(formData)
};
$.lrSaveForm(top.$.rootUrl + '/EducationalAdministration/Sys_SendFile/SaveForm?keyValue=' + keyValue, postData, function (res) {
// 保存成功后才回调
if (!!callBack) {
callBack(res, i);
}
});




};
page.init();
}

+ 2
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_SendFile/Index.cshtml Переглянути файл

@@ -30,6 +30,8 @@
<div class=" btn-group btn-group-sm" learun-authorize="yes">
<a id="lr_submit" class="btn btn-default"><i class="fa fa-plus"></i>&nbsp; 提交</a>
<a id="lr_view" class="btn btn-default"><i class="fa fa-pencil-square-o"></i>&nbsp; 查看</a>
<a id="lr_IssueSpecifyReceiver" class="btn btn-default"><i class="fa fa-pencil-square-o"></i>&nbsp;下发审批指定接收人</a>
<a id="lr_OverIssue" class="btn btn-default"><i class="fa fa-pencil-square-o"></i>&nbsp;结束下发</a>
<a id="lr_read" class="btn btn-default"><i class="fa fa-pencil-square-o"></i>&nbsp; 查阅情况</a>
</div>
</div>


+ 74
- 12
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_SendFile/Index.js Переглянути файл

@@ -138,6 +138,52 @@ var bootstrap = function ($, learun) {
});
}
});

// 下发审批指定接收人
$('#lr_IssueSpecifyReceiver').on('click', function () {
var keyValue = $('#gridtable').jfGridValue('SFileId');
var specifyReceiver = $('#gridtable').jfGridValue('SpecifyReceiver');
if (learun.checkrow(keyValue)) {
learun.layerForm({
id: 'form',
title: '下发审批指定接收人',
url: top.$.rootUrl + '/EducationalAdministration/Sys_SendFile/IssueForm?keyValue=' + keyValue + '&specifyReceiver=' + specifyReceiver,
width: 800,
height: 200,
callBack: function (id) {
var res = false;
// 验证数据
res = top[id].validForm();
// 保存数据
if (res) {
res = top[id].save('', function () {
page.search();
});
}
return res;
}
});
}
});
// 结束
$('#lr_OverIssue').on('click', function () {
var keyValue = $('#gridtable').jfGridValue('SFileId');
if (learun.checkrow(keyValue)) {
var SendFlag = $('#gridtable').jfGridValue('SendFlag');
if (SendFlag !== 2) {
learun.alert.warning("当前公文未审批通过,请耐心等待审批!");
return;
}
learun.layerConfirm('是否结束下发!', function (res) {
if (res) {
processId = learun.newGuid();
learun.postForm(top.$.rootUrl + '/EducationalAdministration/Sys_SendFile/OverIssue', { keyValue: keyValue, }, function (res) {
refreshGirdData(res, {});
});
}
});
}
});
},
// 初始化列表
initGird: function () {
@@ -146,19 +192,31 @@ var bootstrap = function ($, learun) {
headData: [
{ label: "主题", name: "Title", width: 300, align: "left" },
{
label: "接收对象", name: "SendType", width: 100, align: "left",
formatterAsync: function (callback, value, row, op, $cell) {
learun.clientdata.getAsync('dataItem', {
key: value,
code: 'FileSendType',
callback: function (_data) {
callback(_data.text);
}
});
}
label: "已接收", name: "Receiver", width: 300, align: "left"
},
{
label: "接收人", name: "Receiver", width: 300, align: "left"
label: "审批指定接收人", name: "SpecifyReceiver", width: 150, align: "left", formatterAsync:
function (callback, value, row, op, $cell) {
learun.clientdata.getAsync('user',
{
key: value,
callback: function (_data) {
if (_data.length > 0) {
var text = '';
$.each(_data,
function (i, item) {
if (item) {
text += item.name + ',';
}
});
text = text.substring(0, text.lastIndexOf(','));
callback(text);
} else {
callback(_data.name);
}
}
});
}
},
{
label: "下发人", name: "Sender", width: 100, align: "left"
@@ -172,7 +230,11 @@ var bootstrap = function ($, learun) {
if (cellvalue === 1) {
return '<span class=\"label label-warning\">审批中</span>';
} else if (cellvalue === 2) {
return '<span class=\"label label-success\">已下发</span>';
return '<span class=\"label label-info\">审批通过</span>';
} else if (cellvalue === 3) {
return '<span class=\"label label-danger\" >审批失败</span>';
} else if (cellvalue === 4) {
return '<span class=\"label label-success\" >下发完毕</span>';
} else {
return '<span class=\"label label-default\" >草稿</span>';
}


+ 11
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_SendFile/IssueForm.cshtml Переглянути файл

@@ -0,0 +1,11 @@
@{
ViewBag.Title = "公文发送";
Layout = "~/Views/Shared/_Form.cshtml";
}
<div class="lr-form-wrap" id="form">
<div class="col-xs-12 lr-form-item" data-table="Sys_SendFile" id="ReceiverIddiv">
<div class="lr-form-item-title">接收人<font face="宋体">*</font></div>
<div id="SpecifyReceiver" isvalid="yes" checkexpession="NotNull" ></div>
</div>
</div>
@Html.AppendJsFile("/Areas/EducationalAdministration/Views/Sys_SendFile/IssueForm.js")

+ 96
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_SendFile/IssueForm.js Переглянути файл

@@ -0,0 +1,96 @@
/* * 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园(http://www.learun.cn)
* Copyright (c) 2013-2018 北京泉江科技有限公司
* 创建人:超级管理员
* 日 期:2019-04-11 10:31
* 描 述:公文发送
*/
var acceptClick;
var keyValue = request('keyValue');
var rFileId = request('rFileId');
var specifyReceiver = request('specifyReceiver');
// 设置权限
var setAuthorize;
// 设置表单数据
var setFormData;
// 验证数据是否填写完整
var validForm;
// 保存数据
var save;
var bootstrap = function ($, learun) {
"use strict";
// 设置权限
setAuthorize = function (data) {
};
var page = {
init: function () {
$('.lr-form-wrap').lrscroll();
page.bind();
page.initData();
},
bind: function () {
$('#SpecifyReceiver').lrUserSelect({ type: '1' });
},
initData: function () {
if (!!keyValue) {
$.lrSetForm(top.$.rootUrl + '/EducationalAdministration/Sys_SendFile/GetFormData?keyValue=' + keyValue, function (data) {
for (var id in data) {
if (!!data[id].length && data[id].length > 0) {
$('#' + id).jfGridSet('refreshdata', data[id]);
}
else {
if (rFileId) {
$('#SpecifyReceiver').lrformselectSet(specifyReceiver);
} else {

$('[data-table="' + id + '"]').lrSetFormData(data[id]);
}

}
}

});
}
}
};
// 设置表单数据
setFormData = function (processId) {
if (!!processId) {
$.lrSetForm(top.$.rootUrl + '/EducationalAdministration/Sys_SendFile/GetFormDataByProcessId?processId=' + processId, function (data) {
for (var id in data) {
if (!!data[id] && data[id].length > 0) {
$('#' + id).jfGridSet('refreshdata', data[id]);
}
else {
if (id == 'Sys_SendFile') {
keyValue = data[id].SFileId;
}
$('[data-table="' + id + '"]').lrSetFormData(data[id]);
}
}
});
}
}
// 验证数据是否填写完整
validForm = function () {
if (!$('#form').lrValidform()) {
return false;
}
return true;
};
// 保存数据
save = function (processId, callBack, i) {
var formData = $('body').lrGetFormData();
formData.RFileId = rFileId;
formData.SFileId = keyValue;
var postData = {
strEntity: JSON.stringify(formData)
};
$.lrSaveForm(top.$.rootUrl + '/EducationalAdministration/Sys_ReceiveFile/Issue', postData, function (res) {
// 保存成功后才回调
if (!!callBack) {
callBack(res, formData, i);
}
});
};
page.init();
}

+ 1
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_SendFile/ReadList.cshtml Переглянути файл

@@ -17,6 +17,7 @@
<div class="lr-layout-tool-right">
<div class=" btn-group btn-group-sm">
<a id="lr_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a>
<a id="lr_Issue" class="btn btn-default"><i class="fa fa-pencil-square-o"></i>&nbsp;下发</a>
</div>

</div>


+ 68
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/Sys_SendFile/ReadList.js Переглянути файл

@@ -24,6 +24,40 @@ var bootstrap = function ($, learun) {
$('#lr_refresh').on('click', function () {
location.reload();
});

$('#lr_Issue').on('click',
function () {
var keyValue = $('#gridtable').jfGridValue('SFileId');
var rFileId = $('#gridtable').jfGridValue('RFileId');
var specifyReceiver = $('#gridtable').jfGridValue('SpecifyReceiver');
if (learun.checkrow(rFileId)) {
var SendStatus = $('#gridtable').jfGridValue('SendStatus');
if (SendStatus) {
learun.alert.warning("已下发!");
return;
}
learun.layerForm({
id: 'formIssue',
title: '下发',
url: top.$.rootUrl + '/EducationalAdministration/Sys_SendFile/IssueForm?keyValue=' + keyValue + '&rFileId=' + rFileId + '&specifyReceiver=' + specifyReceiver,
width: 500,
height: 500,
callBack: function (id) {
var res = false;
// 验证数据
res = top[id].validForm();
// 保存数据
if (res) {
res = top[id].save('', function () {
page.search();
});
}
return res;
}
});
}

});
},
// 初始化列表
initGird: function () {
@@ -36,6 +70,30 @@ var bootstrap = function ($, learun) {
{
label: "查阅时间", name: "ReadTime", width: 150, align: "left"
},
{
label: "指定接收人", name: "SpecifyReceiver", width: 150, align: "left", formatterAsync:
function (callback, value, row, op, $cell) {
learun.clientdata.getAsync('user',
{
key: value,
callback: function (_data) {
if (_data.length > 0) {
var text = '';
$.each(_data,
function (i, item) {
if (item) {
text += item.name + ',';
}
});
text = text.substring(0, text.lastIndexOf(','));
callback(text);
} else {
callback(_data.name);
}
}
});
}
},
{
label: "状态", name: "ReadFlag", width: 100, align: "left",
formatter: function (cellvalue, row) {
@@ -45,6 +103,16 @@ var bootstrap = function ($, learun) {
return '<span class=\"label label-warning\">未读</span>';
}
}
},
{
label: "下发状态", name: "SendStatus", width: 100, align: "left",
formatter: function (cellvalue, row) {
if (cellvalue === true) {
return '<span class=\"label label-success\">已下发</span>';
} else {
return '<span class=\"label label-warning\">未下发</span>';
}
}
}
],
mainId: 'RFileId',


+ 1
- 1
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_NewWorkFlow/Views/NWFProcess/Index.cshtml Переглянути файл

@@ -9,7 +9,7 @@
<ul class="lr-left-list" id="lr_left_list">
<li data-value="2" class="lrlg active">待办任务</li>
<li data-value="3" class="lrlg">已办任务</li>
<li class="lrlg" data-value="1">我的流程</li>
<li data-value="1" class="lrlg">我的流程</li>
</ul>
</div>
</div>


+ 8
- 3
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_NewWorkFlow/Views/NWFProcess/Index.js Переглянути файл

@@ -252,7 +252,7 @@ var bootstrap = function ($, learun) {
}


if (categoryId == '3' && row.F_TaskType == 1 && row.F_IsFinished == 0) {// 已完成任务,添加一个撤销按钮
if (categoryId == '3' && row.F_TaskType == 1 && row.F_IsFinished == 0 && !row.NextNodeIsAudited) {// 已完成任务,添加一个撤销按钮
cellvalue = '<span class="label label-warning revoke2" style="margin-left:5px;margin-right:5px;" title="撤销审核" >撤销审核</span>' + cellvalue;

$cell.on('click', '.revoke2', function () {// 删除
@@ -324,12 +324,17 @@ var bootstrap = function ($, learun) {
return "<span class=\"label label-success\">运行中</span>";
} else if (cellvalue == 2) {
return "<span class=\"label label-primary\">草稿</span>";
} else {
}
else {
return "<span class=\"label label-danger\">作废</span>";
}
}
else {
return "<span class=\"label label-warning\">结束</span>";
if (cellvalue == 4) {
return "<span class=\"label label-default\">终止</span>";
} else {
return "<span class=\"label label-warning\">结束</span>";
}
}

}


+ 15
- 11
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_OrganizationModule/Views/User/SelectForm.js Переглянути файл

@@ -7,6 +7,9 @@
*/
var dfopid = request('dfopid');
var selectValue = request('selectValue');
if (selectValue == "null") {
selectValue = null;
}

var acceptClick;
var bootstrap = function ($, learun) {
@@ -45,7 +48,7 @@ var bootstrap = function ($, learun) {
$warp.append($cardbox);
learun.clientdata.getAsync('department', {
key: item.F_DepartmentId,
callback: function (_data,op) {
callback: function (_data, op) {
$warp.find('[data-id="' + op.key + '"]').text(_data.name);
}
});
@@ -82,8 +85,7 @@ var bootstrap = function ($, learun) {
$('#user_list').find('[data-value="' + userid + '"]').removeClass('active');
}
});
if (!!selectValue)
{
if (!!selectValue) {
learun.httpAsync('GET', top.$.rootUrl + '/LR_OrganizationModule/User/GetEntityListByUserIds', { keyValue: selectValue }, function (data) {
if (!!data) {
$.each(data, function (id, item) {
@@ -100,13 +102,13 @@ var bootstrap = function ($, learun) {
$warp.append($(_html));
learun.clientdata.getAsync('department', {
key: item.F_DepartmentId,
callback: function (_data,op) {
callback: function (_data, op) {
$warp.find('[data-id="' + op.key + '"]').text(_data.name);
}
});
learun.clientdata.getAsync('company', {
key: item.F_CompanyId,
callback: function (_data,op) {
callback: function (_data, op) {
$warp.find('[data-id="' + op.key + '"]').text(_data.name);
}
});
@@ -114,7 +116,7 @@ var bootstrap = function ($, learun) {
}
});
}
};
function addUser(useritem) {
var $warp = $('#selected_user_list');
@@ -126,13 +128,13 @@ var bootstrap = function ($, learun) {
$warp.append(_html);
learun.clientdata.getAsync('department', {
key: useritem.F_DepartmentId,
callback: function (_data,op) {
callback: function (_data, op) {
$warp.find('[data-id="' + op.key + '"]').text(_data.name);
}
});
learun.clientdata.getAsync('company', {
key: useritem.F_CompanyId,
callback: function (_data,op) {
callback: function (_data, op) {
$warp.find('[data-id="' + op.key + '"]').text(_data.name);
}
});
@@ -172,7 +174,7 @@ var bootstrap = function ($, learun) {
$('#department_tree').lrtreeSet('refresh', {
url: top.$.rootUrl + '/LR_OrganizationModule/Department/GetTree',
// 访问数据接口参数
param: { companyId: companyId},
param: { companyId: companyId },
});
});

@@ -198,7 +200,7 @@ var bootstrap = function ($, learun) {
}
}
})

// 滚动条
$('#user_list_warp').lrscroll();
@@ -229,7 +231,9 @@ var bootstrap = function ($, learun) {
if (postitem.text != "") {
postitem.text += ",";
}
postitem.text += userlistselectedobj[userlistselected[i]].F_RealName;
if (userlistselected[i] != 'null') {
postitem.text += userlistselectedobj[userlistselected[i]].F_RealName;
}
}
callBack(postitem, dfopid);
return true;


+ 447
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LogisticsManagement/Views/ADR_Record/Report - 副本.mrt Переглянути файл

@@ -0,0 +1,447 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<StiSerializer version="1.02" type="Net" application="StiReport">
<Dictionary Ref="1" type="Dictionary" isKey="true">
<BusinessObjects isList="true" count="0" />
<Databases isList="true" count="0" />
<DataSources isList="true" count="1">
<数据源1 Ref="2" type="DataTableSource" isKey="true">
<Alias>数据源1</Alias>
<Columns isList="true" count="7">
<value>UserName,System.String</value>
<value>Department,System.String</value>
<value>ADType,System.String</value>
<value>ADTime,System.DateTime</value>
<value>ClockTime,System.DateTime</value>
<value>ClockStatus,System.String</value>
<value>ClockPlace,System.String</value>
</Columns>
<Dictionary isRef="1" />
<Key>7291a4d177ac43eeba3521446487f520</Key>
<Name>数据源1</Name>
<NameInSource>ADR_Record</NameInSource>
</数据源1>
</DataSources>
<Relations isList="true" count="0" />
<Report isRef="0" />
<Resources isList="true" count="0" />
<Variables isList="true" count="1">
<value>,Monday,Monday,Monday,System.String,,True,False,False,False</value>
</Variables>
</Dictionary>
<EngineVersion>EngineV2</EngineVersion>
<GlobalizationStrings isList="true" count="0" />
<Key>60b550cbd9f1400a90a18ac579ad7cd0</Key>
<MetaTags isList="true" count="0" />
<Pages isList="true" count="1">
<Page1 Ref="3" type="Page" isKey="true">
<Border>None;Black;2;Solid;False;4;Black</Border>
<Brush>Transparent</Brush>
<Components isList="true" count="10">
<PageHeaderBand1 Ref="4" type="PageHeaderBand" isKey="true">
<Border>All;Black;1;Solid;False;4;Black</Border>
<Brush>Transparent</Brush>
<ClientRectangle>0,0.4,19,2</ClientRectangle>
<Components isList="true" count="23">
<Shape3 Ref="5" type="Shape" isKey="true">
<BorderColor>Black</BorderColor>
<Brush>Transparent</Brush>
<ClientRectangle>2.8,0,2.2,2</ClientRectangle>
<Conditions isList="true" count="0" />
<Name>Shape3</Name>
<Page isRef="3" />
<Parent isRef="4" />
<ShapeType Ref="6" type="Stimulsoft.Report.Components.ShapeTypes.StiDiagonalDownLineShapeType" isKey="true" />
</Shape3>
<Text4 Ref="7" type="Text" isKey="true">
<Brush>Transparent</Brush>
<ClientRectangle>3.8,0.2,1,1</ClientRectangle>
<Conditions isList="true" count="0" />
<Font>Arial,10</Font>
<Margins>0,0,0,0</Margins>
<Name>Text4</Name>
<Page isRef="3" />
<Parent isRef="4" />
<Text>日 期</Text>
<TextBrush>Black</TextBrush>
<TextOptions>,,,,,Angle=-50</TextOptions>
<Type>Expression</Type>
</Text4>
<Text3 Ref="8" type="Text" isKey="true">
<Brush>Transparent</Brush>
<ClientRectangle>1.8,0.2,2.2,1</ClientRectangle>
<Conditions isList="true" count="0" />
<Font>Arial,10</Font>
<Margins>0,0,0,0</Margins>
<Name>Text3</Name>
<Page isRef="3" />
<Parent isRef="4" />
<Text>打卡结果</Text>
<TextBrush>Black</TextBrush>
<TextOptions>,,,,,Angle=-30</TextOptions>
<Type>Expression</Type>
</Text3>
<Text1 Ref="9" type="Text" isKey="true">
<Brush>Transparent</Brush>
<ClientRectangle>0.6,1.55,1.6,0.4</ClientRectangle>
<Conditions isList="true" count="0" />
<Font>Arial,10</Font>
<Margins>0,0,0,0</Margins>
<Name>Text1</Name>
<Page isRef="3" />
<Parent isRef="4" />
<Text>人 员</Text>
<TextBrush>Black</TextBrush>
<Type>Expression</Type>
</Text1>
<Shape2 Ref="10" type="Shape" isKey="true">
<BorderColor>Black</BorderColor>
<Brush>EmptyBrush</Brush>
<ClientRectangle>0.2,0,4.8,2</ClientRectangle>
<Conditions isList="true" count="0" />
<Name>Shape2</Name>
<Page isRef="3" />
<Parent isRef="4" />
<ShapeType Ref="11" type="Stimulsoft.Report.Components.ShapeTypes.StiDiagonalDownLineShapeType" isKey="true" />
</Shape2>
<Shape1 Ref="12" type="Shape" isKey="true">
<BorderColor>Black</BorderColor>
<Brush>Transparent</Brush>
<ClientRectangle>2.2,1,2.8,1</ClientRectangle>
<Conditions isList="true" count="0" />
<Name>Shape1</Name>
<Page isRef="3" />
<Parent isRef="4" />
<ShapeType Ref="13" type="Stimulsoft.Report.Components.ShapeTypes.StiDiagonalDownLineShapeType" isKey="true" />
</Shape1>
<Text2 Ref="14" type="Text" isKey="true">
<Brush>Transparent</Brush>
<ClientRectangle>0.56,0.07,1.2,0.8</ClientRectangle>
<Conditions isList="true" count="0" />
<Font>Arial,10</Font>
<Margins>0,0,0,0</Margins>
<Name>Text2</Name>
<Page isRef="3" />
<Parent isRef="4" />
<Text>考勤类型</Text>
<TextBrush>Black</TextBrush>
<TextOptions>,,,,,Angle=-28</TextOptions>
<Type>Expression</Type>
</Text2>
<StartPointPrimitive1 Ref="15" type="Stimulsoft.Report.Components.StiStartPointPrimitive" isKey="true">
<ClientRectangle>5,0,0,0</ClientRectangle>
<Conditions isList="true" count="0" />
<Name>StartPointPrimitive1</Name>
<Page isRef="3" />
<Parent isRef="4" />
<ReferenceToGuid>6f1bc255e6204946825c21d6e7a14efa</ReferenceToGuid>
</StartPointPrimitive1>
<EndPointPrimitive1 Ref="16" type="Stimulsoft.Report.Components.StiEndPointPrimitive" isKey="true">
<ClientRectangle>5,2,0,0</ClientRectangle>
<Conditions isList="true" count="0" />
<Name>EndPointPrimitive1</Name>
<Page isRef="3" />
<Parent isRef="4" />
<ReferenceToGuid>6f1bc255e6204946825c21d6e7a14efa</ReferenceToGuid>
</EndPointPrimitive1>
<StartPointPrimitive8 Ref="17" type="Stimulsoft.Report.Components.StiStartPointPrimitive" isKey="true">
<ClientRectangle>17,0,0,0</ClientRectangle>
<Conditions isList="true" count="0" />
<Name>StartPointPrimitive8</Name>
<Page isRef="3" />
<Parent isRef="4" />
<ReferenceToGuid>ef3e0b0ec7af4e37bfe8a43076b7cd30</ReferenceToGuid>
</StartPointPrimitive8>
<EndPointPrimitive8 Ref="18" type="Stimulsoft.Report.Components.StiEndPointPrimitive" isKey="true">
<ClientRectangle>19,2,0,0</ClientRectangle>
<Conditions isList="true" count="0" />
<Name>EndPointPrimitive8</Name>
<Page isRef="3" />
<Parent isRef="4" />
<ReferenceToGuid>ef3e0b0ec7af4e37bfe8a43076b7cd30</ReferenceToGuid>
</EndPointPrimitive8>
<StartPointPrimitive7 Ref="19" type="Stimulsoft.Report.Components.StiStartPointPrimitive" isKey="true">
<ClientRectangle>15,0,0,0</ClientRectangle>
<Conditions isList="true" count="0" />
<Name>StartPointPrimitive7</Name>
<Page isRef="3" />
<Parent isRef="4" />
<ReferenceToGuid>2d746f4748134ce0a58f133581ce35de</ReferenceToGuid>
</StartPointPrimitive7>
<EndPointPrimitive7 Ref="20" type="Stimulsoft.Report.Components.StiEndPointPrimitive" isKey="true">
<ClientRectangle>17,2,0,0</ClientRectangle>
<Conditions isList="true" count="0" />
<Name>EndPointPrimitive7</Name>
<Page isRef="3" />
<Parent isRef="4" />
<ReferenceToGuid>2d746f4748134ce0a58f133581ce35de</ReferenceToGuid>
</EndPointPrimitive7>
<StartPointPrimitive6 Ref="21" type="Stimulsoft.Report.Components.StiStartPointPrimitive" isKey="true">
<ClientRectangle>13,0,0,0</ClientRectangle>
<Conditions isList="true" count="0" />
<Name>StartPointPrimitive6</Name>
<Page isRef="3" />
<Parent isRef="4" />
<ReferenceToGuid>3ea18cee2e5845f2bffa9729b80e5f29</ReferenceToGuid>
</StartPointPrimitive6>
<EndPointPrimitive6 Ref="22" type="Stimulsoft.Report.Components.StiEndPointPrimitive" isKey="true">
<ClientRectangle>15,2,0,0</ClientRectangle>
<Conditions isList="true" count="0" />
<Name>EndPointPrimitive6</Name>
<Page isRef="3" />
<Parent isRef="4" />
<ReferenceToGuid>3ea18cee2e5845f2bffa9729b80e5f29</ReferenceToGuid>
</EndPointPrimitive6>
<StartPointPrimitive5 Ref="23" type="Stimulsoft.Report.Components.StiStartPointPrimitive" isKey="true">
<ClientRectangle>11,0,0,0</ClientRectangle>
<Conditions isList="true" count="0" />
<Name>StartPointPrimitive5</Name>
<Page isRef="3" />
<Parent isRef="4" />
<ReferenceToGuid>d1cab23d65cb4cbf87889dc2f5fb4900</ReferenceToGuid>
</StartPointPrimitive5>
<EndPointPrimitive5 Ref="24" type="Stimulsoft.Report.Components.StiEndPointPrimitive" isKey="true">
<ClientRectangle>13,2,0,0</ClientRectangle>
<Conditions isList="true" count="0" />
<Name>EndPointPrimitive5</Name>
<Page isRef="3" />
<Parent isRef="4" />
<ReferenceToGuid>d1cab23d65cb4cbf87889dc2f5fb4900</ReferenceToGuid>
</EndPointPrimitive5>
<StartPointPrimitive4 Ref="25" type="Stimulsoft.Report.Components.StiStartPointPrimitive" isKey="true">
<ClientRectangle>9,0,0,0</ClientRectangle>
<Conditions isList="true" count="0" />
<Name>StartPointPrimitive4</Name>
<Page isRef="3" />
<Parent isRef="4" />
<ReferenceToGuid>82a36abe322c4390958d192e59591218</ReferenceToGuid>
</StartPointPrimitive4>
<EndPointPrimitive4 Ref="26" type="Stimulsoft.Report.Components.StiEndPointPrimitive" isKey="true">
<ClientRectangle>11,2,0,0</ClientRectangle>
<Conditions isList="true" count="0" />
<Name>EndPointPrimitive4</Name>
<Page isRef="3" />
<Parent isRef="4" />
<ReferenceToGuid>82a36abe322c4390958d192e59591218</ReferenceToGuid>
</EndPointPrimitive4>
<StartPointPrimitive3 Ref="27" type="Stimulsoft.Report.Components.StiStartPointPrimitive" isKey="true">
<ClientRectangle>7,0,0,0</ClientRectangle>
<Conditions isList="true" count="0" />
<Name>StartPointPrimitive3</Name>
<Page isRef="3" />
<Parent isRef="4" />
<ReferenceToGuid>3b9fa7de8f11436484b1a16553af09c9</ReferenceToGuid>
</StartPointPrimitive3>
<EndPointPrimitive3 Ref="28" type="Stimulsoft.Report.Components.StiEndPointPrimitive" isKey="true">
<ClientRectangle>9,2,0,0</ClientRectangle>
<Conditions isList="true" count="0" />
<Name>EndPointPrimitive3</Name>
<Page isRef="3" />
<Parent isRef="4" />
<ReferenceToGuid>3b9fa7de8f11436484b1a16553af09c9</ReferenceToGuid>
</EndPointPrimitive3>
<StartPointPrimitive2 Ref="29" type="Stimulsoft.Report.Components.StiStartPointPrimitive" isKey="true">
<ClientRectangle>5,0,0,0</ClientRectangle>
<Conditions isList="true" count="0" />
<Name>StartPointPrimitive2</Name>
<Page isRef="3" />
<Parent isRef="4" />
<ReferenceToGuid>85559f8f8dd547cf9f94f6bcba15184e</ReferenceToGuid>
</StartPointPrimitive2>
<EndPointPrimitive2 Ref="30" type="Stimulsoft.Report.Components.StiEndPointPrimitive" isKey="true">
<ClientRectangle>7,2,0,0</ClientRectangle>
<Conditions isList="true" count="0" />
<Name>EndPointPrimitive2</Name>
<Page isRef="3" />
<Parent isRef="4" />
<ReferenceToGuid>85559f8f8dd547cf9f94f6bcba15184e</ReferenceToGuid>
</EndPointPrimitive2>
</Components>
<Conditions isList="true" count="0" />
<Name>PageHeaderBand1</Name>
<Page isRef="3" />
<Parent isRef="3" />
</PageHeaderBand1>
<DataBand1 Ref="31" type="DataBand" isKey="true">
<Brush>Transparent</Brush>
<BusinessObjectGuid isNull="true" />
<ClientRectangle>0,3.2,19,0.8</ClientRectangle>
<Components isList="true" count="3">
<Text5 Ref="32" type="Text" isKey="true">
<Brush>Transparent</Brush>
<ClientRectangle>0,0,1.6,0.6</ClientRectangle>
<Conditions isList="true" count="0" />
<Font>Arial,8</Font>
<Margins>0,0,0,0</Margins>
<Name>Text5</Name>
<Page isRef="3" />
<Parent isRef="31" />
<Text>{数据源1.UserName}</Text>
<TextBrush>Black</TextBrush>
</Text5>
<Text6 Ref="33" type="Text" isKey="true">
<Brush>Transparent</Brush>
<ClientRectangle>1.8,0,1.6,0.6</ClientRectangle>
<Conditions isList="true" count="0" />
<Font>Arial,8</Font>
<Margins>0,0,0,0</Margins>
<Name>Text6</Name>
<Page isRef="3" />
<Parent isRef="31" />
<Text>{数据源1.Department}</Text>
<TextBrush>Black</TextBrush>
</Text6>
<Text7 Ref="34" type="Text" isKey="true">
<Brush>Transparent</Brush>
<ClientRectangle>3.6,0,1.6,0.6</ClientRectangle>
<Conditions isList="true" count="0" />
<Font>Arial,8</Font>
<Margins>0,0,0,0</Margins>
<Name>Text7</Name>
<Page isRef="3" />
<Parent isRef="31" />
<Text>{数据源1.ADType}</Text>
<TextBrush>Black</TextBrush>
</Text7>
</Components>
<Conditions isList="true" count="0" />
<DataRelationName isNull="true" />
<DataSourceName>数据源1</DataSourceName>
<Filters isList="true" count="0" />
<Name>DataBand1</Name>
<Page isRef="3" />
<Parent isRef="3" />
<Sort isList="true" count="0" />
</DataBand1>
<VerticalLinePrimitive1 Ref="35" type="VerticalLinePrimitive" isKey="true">
<ClientRectangle>5,0.4,0.0254,2</ClientRectangle>
<Color>Black</Color>
<Conditions isList="true" count="0" />
<EndCap Ref="36" type="Cap" isKey="true">
<Color>Black</Color>
</EndCap>
<Guid>6f1bc255e6204946825c21d6e7a14efa</Guid>
<Name>VerticalLinePrimitive1</Name>
<Page isRef="3" />
<Parent isRef="3" />
<StartCap Ref="37" type="Cap" isKey="true">
<Color>Black</Color>
</StartCap>
</VerticalLinePrimitive1>
<RectanglePrimitive7 Ref="38" type="RectanglePrimitive" isKey="true">
<ClientRectangle>17,0.4,2,2</ClientRectangle>
<Color>Black</Color>
<Conditions isList="true" count="0" />
<Guid>ef3e0b0ec7af4e37bfe8a43076b7cd30</Guid>
<Name>RectanglePrimitive7</Name>
<Page isRef="3" />
<Parent isRef="3" />
</RectanglePrimitive7>
<RectanglePrimitive6 Ref="39" type="RectanglePrimitive" isKey="true">
<ClientRectangle>15,0.4,2,2</ClientRectangle>
<Color>Black</Color>
<Conditions isList="true" count="0" />
<Guid>2d746f4748134ce0a58f133581ce35de</Guid>
<Name>RectanglePrimitive6</Name>
<Page isRef="3" />
<Parent isRef="3" />
</RectanglePrimitive6>
<RectanglePrimitive5 Ref="40" type="RectanglePrimitive" isKey="true">
<ClientRectangle>13,0.4,2,2</ClientRectangle>
<Color>Black</Color>
<Conditions isList="true" count="0" />
<Guid>3ea18cee2e5845f2bffa9729b80e5f29</Guid>
<Name>RectanglePrimitive5</Name>
<Page isRef="3" />
<Parent isRef="3" />
</RectanglePrimitive5>
<RectanglePrimitive4 Ref="41" type="RectanglePrimitive" isKey="true">
<ClientRectangle>11,0.4,2,2</ClientRectangle>
<Color>Black</Color>
<Conditions isList="true" count="0" />
<Guid>d1cab23d65cb4cbf87889dc2f5fb4900</Guid>
<Name>RectanglePrimitive4</Name>
<Page isRef="3" />
<Parent isRef="3" />
</RectanglePrimitive4>
<RectanglePrimitive3 Ref="42" type="RectanglePrimitive" isKey="true">
<ClientRectangle>9,0.4,2,2</ClientRectangle>
<Color>Black</Color>
<Conditions isList="true" count="0" />
<Guid>82a36abe322c4390958d192e59591218</Guid>
<Name>RectanglePrimitive3</Name>
<Page isRef="3" />
<Parent isRef="3" />
</RectanglePrimitive3>
<RectanglePrimitive2 Ref="43" type="RectanglePrimitive" isKey="true">
<ClientRectangle>7,0.4,2,2</ClientRectangle>
<Color>Black</Color>
<Conditions isList="true" count="0" />
<Guid>3b9fa7de8f11436484b1a16553af09c9</Guid>
<Name>RectanglePrimitive2</Name>
<Page isRef="3" />
<Parent isRef="3" />
</RectanglePrimitive2>
<RectanglePrimitive1 Ref="44" type="RectanglePrimitive" isKey="true">
<ClientRectangle>5,0.4,2,2</ClientRectangle>
<Color>Black</Color>
<Conditions isList="true" count="0" />
<Guid>85559f8f8dd547cf9f94f6bcba15184e</Guid>
<Name>RectanglePrimitive1</Name>
<Page isRef="3" />
<Parent isRef="3" />
</RectanglePrimitive1>
</Components>
<Conditions isList="true" count="0" />
<Guid>403b1f2049dd4a979599f69c93987a2d</Guid>
<Margins>1,1,1,1</Margins>
<Name>Page1</Name>
<PageHeight>29.7</PageHeight>
<PageWidth>21</PageWidth>
<PaperSize>A4</PaperSize>
<Report isRef="0" />
</Page1>
</Pages>
<ReferencedAssemblies isList="true" count="8">
<value>System.Dll</value>
<value>System.Drawing.Dll</value>
<value>System.Windows.Forms.Dll</value>
<value>System.Data.Dll</value>
<value>System.Xml.Dll</value>
<value>Stimulsoft.Controls.Dll</value>
<value>Stimulsoft.Base.Dll</value>
<value>Stimulsoft.Report.Dll</value>
</ReferencedAssemblies>
<ReportAlias>Report</ReportAlias>
<ReportChanged>9/16/2020 12:03:28 PM</ReportChanged>
<ReportCreated>9/15/2020 2:53:21 PM</ReportCreated>
<ReportFile>D:\gitLocalRepositories\DigitalScholl\Learun.Framework.Ultimate V7\Learun.Application.Web\Areas\LogisticsManagement\Views\ADR_Record\Report.mrt</ReportFile>
<ReportGuid>2f0af1b2cf104a0dbe8b6b7c1a035f6a</ReportGuid>
<ReportName>Report</ReportName>
<ReportUnit>Centimeters</ReportUnit>
<ReportVersion>2020.2.1.0</ReportVersion>
<Script>using System;
using System.Drawing;
using System.Windows.Forms;
using System.Data;
using Stimulsoft.Controls;
using Stimulsoft.Base.Drawing;
using Stimulsoft.Report;
using Stimulsoft.Report.Dialogs;
using Stimulsoft.Report.Components;

namespace Reports
{
public class Report : Stimulsoft.Report.StiReport
{
public Report() {
this.InitializeComponent();
}

#region StiReport Designer generated code - do not modify
#endregion StiReport Designer generated code - do not modify
}
}
</Script>
<ScriptLanguage>CSharp</ScriptLanguage>
<Styles isList="true" count="0" />
</StiSerializer>

+ 5
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Views/LR_Content/plugin/formselect/lr-formselect.js Переглянути файл

@@ -120,6 +120,11 @@
var dfop = $self[0]._lrformselect.dfop;
return dfop._itemValue ? dfop._itemValue.value : "";
};
$.fn.lrformselectGetText = function () {
var $self = $(this);
var dfop = $self[0]._lrformselect.dfop;
return dfop._itemValue ? dfop._itemValue.text : "";
};
$.fn.lrformselectSet = function (value) {
var $self = $(this);
var dfop = $self[0]._lrformselect.dfop;


+ 38
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Views/LR_Content/plugin/select/lr-select.js Переглянути файл

@@ -610,6 +610,44 @@
}
return value;
};
$.fn.lrselectGetText = function () {
var $this = $(this);
if ($this.length == 0) {
return $this;
}
var dfop = $this[0]._lrselect.dfop;
var value = '';
switch (dfop.type) {
case 'default':
if (dfop.data[dfop._index]) {
value = dfop.data[dfop._index][dfop.text];
}
break;
case 'tree':
if (dfop.currtentItem) {
value = dfop.currtentItem[dfop.text];
}
break;
case 'treemultiple':
if (dfop.currtentItems) {
for (var i = 0, l = dfop.currtentItems.length; i < l; i++) {
if (value != "") {
value += ",";
}
value += dfop.currtentItems[i][dfop.text];
}
}
break;
case 'gird':
break;
case 'multiple':
dfop.multipleValue = dfop.multipleValue || [];
return String(dfop.multipleValue);
default:
break;
}
return value;
};

$.fn.lrselectSet = function (value) {
// 设置数据的值


+ 14
- 1
Learun.Framework.Ultimate V7/Learun.Application.Web/Views/LR_Content/script/lr-clientdata.js Переглянути файл

@@ -297,7 +297,20 @@
}
else {
var data = storage.get("userData").data || {};
op.callback(data[op.key] || {}, op);
var keys = op.key.split(',');
var array=new Array();
if (keys.length > 0) {
$.each(keys,
function (i, item) {

array.push(data[item]);
})
op.callback(array || {}, op);

} else {

op.callback(data[op.key] || {}, op);
}
}
},
getAll: function (op) {


+ 22
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Sys_ReceiveFile/Sys_IssueEntity.cs Переглянути файл

@@ -0,0 +1,22 @@
using Learun.Util;
using System;
using System.ComponentModel.DataAnnotations.Schema;

namespace Learun.Application.TwoDevelopment.EducationalAdministration
{
/// <summary>
/// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
/// Copyright (c) 2013-2018 北京泉江科技有限公司
/// 创 建:超级管理员
/// 日 期:2019-04-11 10:08
/// 描 述:公文收发
/// </summary>
public class Sys_IssueEntity
{

public string RFileId { get; set; }
public string SFileId { get; set; }
public string SpecifyReceiver { get; set; }
}
}


+ 19
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Sys_ReceiveFile/Sys_ReceiveFileBLL.cs Переглянути файл

@@ -239,6 +239,25 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
}
}

public void Issue(Sys_IssueEntity entity)
{
try
{
sys_ReceiveFileService.Issue(entity);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowBusinessException(ex);
}
}
}

#endregion

}


+ 10
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Sys_ReceiveFile/Sys_ReceiveFileEntity.cs Переглянути файл

@@ -45,6 +45,16 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
[Column("RECEIVER")]
public string Receiver { get; set; }
/// <summary>
/// 指定接收人
/// </summary>
[Column("SPECIFYRECEIVER")]
public string SpecifyReceiver { get; set; }
/// <summary>
/// 指定接收人的下发状态
/// </summary>
[Column("SENDSTATUS")]
public bool? SendStatus { get; set; }
/// <summary>
/// 标题
/// </summary>
[Column("TITLE")]


+ 1
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Sys_ReceiveFile/Sys_ReceiveFileIBLL.cs Переглянути файл

@@ -77,5 +77,6 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration

#endregion

void Issue(Sys_IssueEntity entity);
}
}

+ 147
- 1
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Sys_ReceiveFile/Sys_ReceiveFileService.cs Переглянути файл

@@ -3,8 +3,16 @@ using Learun.DataBase.Repository;
using Learun.Util;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using Learun.Application.Organization;
using Learun.Application.TwoDevelopment.LR_Desktop;
using Microsoft.AspNet.SignalR.Client;
using Newtonsoft.Json;

namespace Learun.Application.TwoDevelopment.EducationalAdministration
{
@@ -226,7 +234,8 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
var oldentity = GetSys_ReceiveFileEntity(keyValue);
oldentity.RUrl = entity.RUrl;
oldentity.ReplyFlag = true;
oldentity.ReplyTime=DateTime.Now;
oldentity.ReplyTime = DateTime.Now;
oldentity.SpecifyReceiver = entity.SpecifyReceiver;
this.BaseRepository().Update(oldentity);
}
else
@@ -330,5 +339,142 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration

#endregion

public void Issue(Sys_IssueEntity entity)
{
var db = this.BaseRepository().BeginTrans();
try
{
//从‘查阅情况’ 列表中跳转 将发送情况改变
if (!string.IsNullOrEmpty(entity.RFileId))
{
var rEntity = db.FindEntity<Sys_ReceiveFileEntity>(a => a.RFileId == entity.RFileId);
rEntity.SendStatus = true;
db.Update(rEntity);
}
var Sys_SendFile = db.FindEntity<Sys_SendFileEntity>(a => a.SFileId == entity.SFileId);
var teacherlist = db.FindList<UserEntity>(a => entity.SpecifyReceiver.Contains(a.F_UserId)).ToList();

foreach (var tEntity in teacherlist)
{
Sys_ReceiveFileEntity receiveFile = new Sys_ReceiveFileEntity();
receiveFile.Create();
receiveFile.SFileId = Sys_SendFile.SFileId;
receiveFile.SenderId = Sys_SendFile.SenderId;
receiveFile.Sender = Sys_SendFile.Sender;
receiveFile.ReceiverId = tEntity.F_UserId;
receiveFile.Receiver = tEntity.F_RealName;
receiveFile.Title = Sys_SendFile.Title;
receiveFile.Contents = Sys_SendFile.Contents;
receiveFile.Url = Sys_SendFile.Url;
receiveFile.ReadFlag = false;
receiveFile.SendTime = DateTime.Now;
receiveFile.SendType = Sys_SendFile.SendType;
receiveFile.DelFlag = false;
receiveFile.STypeId = Sys_SendFile.STypeId;
receiveFile.ReplyFlag = false;
receiveFile.SLastDate = Sys_SendFile.SLastDate;
receiveFile.RUrl = Guid.NewGuid().ToString();
db.Insert(receiveFile);
}
Sys_SendFile.SendTime = DateTime.Now;
var listReceive = Sys_SendFile.ReceiverId?.Split(',').ToList();
if (listReceive == null)
{
listReceive = new List<string>();
}
foreach (var item in teacherlist)
{
if (listReceive?.Contains(item.F_Account) != true)
{
listReceive.Add(item.F_Account);
Sys_SendFile.Receiver += "," + item.F_RealName;
}

}


Sys_SendFile.Receiver = Sys_SendFile.Receiver.TrimStart(',');
StringBuilder stringBuilder = new StringBuilder();
foreach (var item in listReceive)
{
stringBuilder.Append(item + ",");
}

Sys_SendFile.ReceiverId = stringBuilder.ToString().TrimEnd(',');
db.Update(Sys_SendFile);
db.Commit();
//微信推送
try
{
PushWeixin(teacherlist, Sys_SendFile.Title);
}
catch (Exception e)
{
}
//飞星推送
Task.Run(async () =>
{
using (var hubConnection = new HubConnection(ConfigurationManager.AppSettings["CommunicationServeraddress"]))
{
var hubProxy = hubConnection.CreateHubProxy("SignalRHub");
await hubConnection.Start();
await hubProxy.Invoke("PushAnnouncement", Sys_SendFile.SenderId, Sys_SendFile.Title, Util.Str.ReplaceHtml(HttpUtility.HtmlDecode(Sys_SendFile.Contents)).Length < 20 ? Util.Str.ReplaceHtml(HttpUtility.HtmlDecode(Sys_SendFile.Contents)) : Util.Str.ReplaceHtml(HttpUtility.HtmlDecode(Sys_SendFile.Contents)).Substring(0, 20), "sendfile", string.Join(",", teacherlist.Select(m => m.F_UserId)), "");
}
});
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}

public void PushWeixin(List<UserEntity> needpostuserlist, string title)
{
var WeChatConfigentity = BaseRepository().FindEntity<WeChatConfigEntity>(m => m.IsEnable == true);
string appid = WeChatConfigentity.APPId;
string secret = WeChatConfigentity.secret;
var wechatemplete = BaseRepository()
.FindEntity<WeChatTemplateEntity>(m => m.WeID == WeChatConfigentity.ID && m.TCode == "task");
string weixintaskurl = wechatemplete.TUrl;
string weixintasktempid = wechatemplete.TempId;
var responsejson = Util.HttpMethods.HttpGet("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appid + "&secret=" + secret);
foreach (UserEntity userinfo in needpostuserlist)
{
if (userinfo != null && !string.IsNullOrEmpty(userinfo.OpenIdForWeixin))
{
//执行推送任务
if (!string.IsNullOrEmpty(appid) && !string.IsNullOrEmpty(secret) && !string.IsNullOrEmpty(weixintaskurl) && !string.IsNullOrEmpty(weixintasktempid))
{
if (!string.IsNullOrEmpty(responsejson))
{
var weixintokenobj = JsonConvert.DeserializeObject<dynamic>(responsejson);
if (string.IsNullOrEmpty(weixintokenobj.errcode))
{
string access_token = weixintokenobj.access_token;
string jsondata = "{\"touser\":\"" + userinfo.OpenIdForWeixin + "\"," +
"\"template_id\":\"" + weixintasktempid + "\"," +
"\"url\":\"" + weixintaskurl + "\"," +
"\"data\":{" +
"\"first\": {\"value\":\"您有新的公文需要查阅\",\"color\":\"#173177\"}," +
"\"keyword1\":{\"value\":\"公文下发\",\"color\":\"#173177\"}," +
"\"keyword2\": {\"value\":\"" + title + "\",\"color\":\"#173177\"}," +
"\"keyword3\": {\"value\":\"待查阅\",\"color\":\"#173177\"}," +
"\"keyword4\": {\"value\":\"您有新的公文需要查阅【" + title + "】\",\"color\":\"#173177\"}" +
"}" +
"}";
string pushresult = Util.HttpMethods.HttpPost("https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + access_token, jsondata);
}
}
}
}
}
}
}
}

+ 19
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Sys_SendFile/Sys_SendFileBLL.cs Переглянути файл

@@ -204,6 +204,25 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
}
}

public void OverIssue(string keyValue)
{
try
{
sys_SendFileService.OverIssue(keyValue);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowBusinessException(ex);
}
}
}

#endregion

}


+ 10
- 1
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Sys_SendFile/Sys_SendFileEntity.cs Переглянути файл

@@ -11,7 +11,7 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
/// 日 期:2019-04-11 10:31
/// 描 述:公文发送
/// </summary>
public class Sys_SendFileEntity
public class Sys_SendFileEntity
{
#region 实体成员
/// <summary>
@@ -35,6 +35,11 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
[Column("RECEIVERID")]
public string ReceiverId { get; set; }
/// <summary>
/// 流程审批指定接收人
/// </summary>
[Column("SPECIFYRECEIVER")]
public string SpecifyReceiver { get; set; }
/// <summary>
/// Receiver
/// </summary>
[Column("RECEIVER")]
@@ -88,6 +93,10 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
public void Create()
{
this.SFileId = Guid.NewGuid().ToString();
this.DelFlag = false;
this.SendFlag = 0;
this.SenderId = LoginUserInfo.Get().userId;
this.Sender = LoginUserInfo.Get().realName;
}
/// <summary>
/// 编辑调用


+ 1
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Sys_SendFile/Sys_SendFileIBLL.cs Переглянути файл

@@ -58,5 +58,6 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration

#endregion

void OverIssue(string keyValue);
}
}

+ 37
- 153
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/Sys_SendFile/Sys_SendFileService.cs Переглянути файл

@@ -228,163 +228,22 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
/// <param name="status"></param>
public void ChangeStatusByProcessId(string processId, int status)
{
if (status == 2)
var db = BaseRepository().BeginTrans();
try
{
var db = BaseRepository().BeginTrans();
try
var Sys_SendFile = db.FindEntity<Sys_SendFileEntity>(m => m.SProcessId == processId);
Sys_SendFile.SendFlag = status;
if (status == 2)
{
var needpostuserlist = new List<UserEntity>();
var Sys_SendFile = db.FindEntity<Sys_SendFileEntity>(m => m.SProcessId == processId);
if (Sys_SendFile.SendType == "1")
{
var teacherlist = db.FindList<UserEntity>(m =>
m.F_DeleteMark != 1 && m.F_EnabledMark == 1 && m.F_Description == "教师" &&
m.F_CompanyId == Sys_SendFile.ReceiverId);
needpostuserlist = teacherlist.ToList();
foreach (var tEntity in teacherlist)
{
Sys_ReceiveFileEntity receiveFile = new Sys_ReceiveFileEntity();
receiveFile.Create();
receiveFile.SFileId = Sys_SendFile.SFileId;
receiveFile.SenderId = Sys_SendFile.SenderId;
receiveFile.Sender = Sys_SendFile.Sender;
receiveFile.ReceiverId = tEntity.F_UserId;
receiveFile.Receiver = tEntity.F_RealName;
receiveFile.Title = Sys_SendFile.Title;
receiveFile.Contents = Sys_SendFile.Contents;
receiveFile.Url = Sys_SendFile.Url;
receiveFile.ReadFlag = false;
receiveFile.SendTime = DateTime.Now;
receiveFile.SendType = Sys_SendFile.SendType;
receiveFile.DelFlag = false;
receiveFile.STypeId = Sys_SendFile.STypeId;
receiveFile.ReplyFlag = false;
receiveFile.SLastDate = Sys_SendFile.SLastDate;
receiveFile.RUrl = Guid.NewGuid().ToString();
db.Insert(receiveFile);
}
}
else if (Sys_SendFile.SendType == "2")
{
var teacherlist = db.FindList<UserEntity>(m =>
m.F_DeleteMark != 1 && m.F_EnabledMark == 1 && m.F_Description == "教师" &&
Sys_SendFile.ReceiverId.Contains(m.F_DepartmentId));
needpostuserlist = teacherlist.ToList();
foreach (var tEntity in teacherlist)
{
Sys_ReceiveFileEntity receiveFile = new Sys_ReceiveFileEntity();
receiveFile.Create();
receiveFile.SFileId = Sys_SendFile.SFileId;
receiveFile.SenderId = Sys_SendFile.SenderId;
receiveFile.Sender = Sys_SendFile.Sender;
receiveFile.ReceiverId = tEntity.F_UserId;
receiveFile.Receiver = tEntity.F_RealName;
receiveFile.Title = Sys_SendFile.Title;
receiveFile.Contents = Sys_SendFile.Contents;
receiveFile.Url = Sys_SendFile.Url;
receiveFile.ReadFlag = false;
receiveFile.SendTime = DateTime.Now;
receiveFile.SendType = Sys_SendFile.SendType;
receiveFile.DelFlag = false;
receiveFile.STypeId = Sys_SendFile.STypeId;
receiveFile.ReplyFlag = false;
receiveFile.SLastDate = Sys_SendFile.SLastDate;
receiveFile.RUrl = Guid.NewGuid().ToString();
db.Insert(receiveFile);
}
}
else if (Sys_SendFile.SendType == "3")
{
List<string> ppostid = Sys_SendFile.ReceiverId.Split(',').ToList();
for (int i = 0; i < ppostid.Count; i++)
{
ppostid[i] = "'" + ppostid[i] + "'";
}

var teacherlist = db.FindList<UserEntity>(
@"select distinct a.* from [dbo].[LR_Base_User] a left join [dbo].[LR_Base_UserRelation] b
on a.F_UserId=b.F_UserId where b.F_ObjectId in(" + string.Join(",", ppostid) +
") and a.F_DeleteMark<>1 and a.F_EnabledMark=1 and a.F_Description='教师'");
needpostuserlist = teacherlist.ToList();
foreach (var tEntity in teacherlist)
{
Sys_ReceiveFileEntity receiveFile = new Sys_ReceiveFileEntity();
receiveFile.Create();
receiveFile.SFileId = Sys_SendFile.SFileId;
receiveFile.SenderId = Sys_SendFile.SenderId;
receiveFile.Sender = Sys_SendFile.Sender;
receiveFile.ReceiverId = tEntity.F_UserId;
receiveFile.Receiver = tEntity.F_RealName;
receiveFile.Title = Sys_SendFile.Title;
receiveFile.Contents = Sys_SendFile.Contents;
receiveFile.Url = Sys_SendFile.Url;
receiveFile.ReadFlag = false;
receiveFile.SendTime = DateTime.Now;
receiveFile.SendType = Sys_SendFile.SendType;
receiveFile.DelFlag = false;
receiveFile.STypeId = Sys_SendFile.STypeId;
receiveFile.ReplyFlag = false;
receiveFile.SLastDate = Sys_SendFile.SLastDate;
receiveFile.RUrl = Guid.NewGuid().ToString();
db.Insert(receiveFile);
}
}
else
{
var teacherlist = db.FindList<UserEntity>(m =>
m.F_DeleteMark != 1 && m.F_EnabledMark == 1 && m.F_Description == "教师" &&
Sys_SendFile.ReceiverId.Contains(m.F_UserId));
needpostuserlist = teacherlist.ToList();
foreach (var tEntity in teacherlist)
{
Sys_ReceiveFileEntity receiveFile = new Sys_ReceiveFileEntity();
receiveFile.Create();
receiveFile.SFileId = Sys_SendFile.SFileId;
receiveFile.SenderId = Sys_SendFile.SenderId;
receiveFile.Sender = Sys_SendFile.Sender;
receiveFile.ReceiverId = tEntity.F_UserId;
receiveFile.Receiver = tEntity.F_RealName;
receiveFile.Title = Sys_SendFile.Title;
receiveFile.Contents = Sys_SendFile.Contents;
receiveFile.Url = Sys_SendFile.Url;
receiveFile.ReadFlag = false;
receiveFile.SendTime = DateTime.Now;
receiveFile.SendType = Sys_SendFile.SendType;
receiveFile.DelFlag = false;
receiveFile.STypeId = Sys_SendFile.STypeId;
receiveFile.ReplyFlag = false;
receiveFile.SLastDate = Sys_SendFile.SLastDate;
receiveFile.RUrl = Guid.NewGuid().ToString();
db.Insert(receiveFile);
}
}
Sys_SendFile.SendFlag = 2;
Sys_SendFile.SendTime = DateTime.Now;
db.Update(Sys_SendFile);
db.Commit();
//微信推送
try
{
PushWeixin(needpostuserlist, Sys_SendFile.Title);
}
catch (Exception e)
{
}
//飞星推送
Task.Run(async () =>
{
using (var hubConnection = new HubConnection(ConfigurationManager.AppSettings["CommunicationServeraddress"]))
{
var hubProxy = hubConnection.CreateHubProxy("SignalRHub");
await hubConnection.Start();
await hubProxy.Invoke("PushAnnouncement", Sys_SendFile.SenderId, Sys_SendFile.Title, Util.Str.ReplaceHtml(HttpUtility.HtmlDecode(Sys_SendFile.Contents)).Length < 20 ? Util.Str.ReplaceHtml(HttpUtility.HtmlDecode(Sys_SendFile.Contents)) : Util.Str.ReplaceHtml(HttpUtility.HtmlDecode(Sys_SendFile.Contents)).Substring(0, 20), "sendfile", string.Join(",", needpostuserlist.Select(m => m.F_UserId)), "");
}
});
}
catch (Exception ex)
{
db.Rollback();
}
db.Update(Sys_SendFile);
db.Commit();

}
catch (Exception ex)
{
db.Rollback();
}
}

@@ -429,6 +288,31 @@ on a.F_UserId=b.F_UserId where b.F_ObjectId in(" + string.Join(",", ppostid) +
}
}
}

public void OverIssue(string keyValue)
{
try
{
var entity = this.BaseRepository().FindEntity<Sys_SendFileEntity>(a => a.SFileId == keyValue);
if (null != entity)
{
entity.SendFlag = 4;
}

this.BaseRepository().Update(entity);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
}
#endregion
}

+ 1
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/Learun.Application.TwoDevelopment.csproj Переглянути файл

@@ -196,6 +196,7 @@
<Compile Include="EducationalAdministration\Sys_ReceiveDocument\Sys_ReceiveDocumentIBLL.cs" />
<Compile Include="EducationalAdministration\Sys_ReceiveDocument\Sys_ReceiveDocumentService.cs" />
<Compile Include="EducationalAdministration\Sys_ReceiveFile\Sys_ReceiveFileBLL.cs" />
<Compile Include="EducationalAdministration\Sys_ReceiveFile\Sys_IssueEntity.cs" />
<Compile Include="EducationalAdministration\Sys_ReceiveFile\Sys_ReceiveFileEntity.cs" />
<Compile Include="EducationalAdministration\Sys_ReceiveFile\Sys_ReceiveFileIBLL.cs" />
<Compile Include="EducationalAdministration\Sys_ReceiveFile\Sys_ReceiveFileService.cs" />


+ 11
- 1
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.WorkFlow/Process/NWFProcessBLL.cs Переглянути файл

@@ -2013,6 +2013,9 @@ namespace Learun.Application.WorkFlow
NWFEngineParamConfig nWFEngineParamConfig = nWFIEngine.GetConfig();
nWFEngineParamConfig.Auditers = auditors;

//overFW 任一审核者不同意 即流程任务结束
bool overFW = false;

// 获取任务实体
var taskEntiy = nWFTaskIBLL.GetEntity(taskId);
if (taskEntiy == null)
@@ -2181,6 +2184,7 @@ namespace Learun.Application.WorkFlow
else if (operationCode == "disagree")
{
nWFTaskRelationEntity.F_Result = 2;
overFW = true;
}
else
{
@@ -2190,7 +2194,7 @@ namespace Learun.Application.WorkFlow

// 获取下一节点信息
List<NWFLineInfo> lineList = new List<NWFLineInfo>();
List<NWFNodeInfo> list = nWFIEngine.GetNextTaskNode(nodeInfo, operationCode, false, lineList);
List<NWFNodeInfo> list = nWFIEngine.GetNextTaskNode(nodeInfo, operationCode, false, lineList, overFW);

// 会签处理
int state = 0;
@@ -2221,6 +2225,12 @@ namespace Learun.Application.WorkFlow
nWFProcessEntity.F_IsFinished = 1;
}

// 如果任一审核者不同意,即流程结束(终止)
if (overFW)
{
nWFProcessEntity.F_EnabledMark = 4;//终止
}

List<NWFLineInfo> pLineList = new List<NWFLineInfo>();
List<NWFTaskEntity> pTaskList = new List<NWFTaskEntity>();
List<NWFTaskMsgEntity> pTaskMsgList = new List<NWFTaskMsgEntity>();


+ 12
- 1
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.WorkFlow/Process/NWFProcessEntity.cs Переглянути файл

@@ -50,7 +50,7 @@ namespace Learun.Application.WorkFlow
[Column("F_LEVEL")]
public int? F_Level { get; set; }
/// <summary>
/// 流程进程有效标志 1正常2草稿3作废
/// 流程进程有效标志 1正常2草稿3作废4终止
/// </summary>
/// <returns></returns>
[Column("F_ENABLEDMARK")]
@@ -157,6 +157,17 @@ namespace Learun.Application.WorkFlow
[NotMapped]
public int? F_TaskType { get; set; }

/// <summary>
/// 当前任务NodeID
/// </summary>
[NotMapped]
public string F_NodeId { get; set; }

/// <summary>
/// 下一任务节点是否审核
/// </summary>
[NotMapped]
public bool? NextNodeIsAudited { get; set; }
/// <summary>
/// 是否被催办 1 被催办了
/// </summary>


+ 14
- 2
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.WorkFlow/Process/NWFProcessSerivce.cs Переглянути файл

@@ -537,7 +537,8 @@ namespace Learun.Application.WorkFlow
p.F_ParentProcessId,
p.F_CreateUserId,
p.F_CreateUserName,
p.F_IsStart
p.F_IsStart,
t.F_NodeId
FROM
LR_NWF_Task t
LEFT JOIN LR_NWF_TaskRelation r on r.F_TaskId = t.F_Id
@@ -567,7 +568,18 @@ namespace Learun.Application.WorkFlow
strSql.Append(" AND p.F_SchemeCode = @schemeCode ");
}

return this.BaseRepository().FindList<NWFProcessEntity>(strSql.ToString(), new { userInfo.userId, startTime, endTime, keyword, schemeCode }, pagination);
var data = this.BaseRepository().FindList<NWFProcessEntity>(strSql.ToString(), new { userInfo.userId, startTime, endTime, keyword, schemeCode }, pagination);
foreach (var item in data)
{
var nextNode = this.BaseRepository().FindEntity<NWFTaskLogEntity>(a =>
a.F_ProcessId == item.F_Id && a.F_PrevNodeId == item.F_NodeId);
if (null != nextNode)
{
item.NextNodeIsAudited = true;
}
}

return data;
}
catch (Exception ex)
{


+ 100
- 55
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Workflow/Learun.Workflow.Engine/NWFEngine.cs Переглянути файл

@@ -2,6 +2,7 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;

namespace Learun.Workflow.Engine
{
@@ -32,6 +33,11 @@ namespace Learun.Workflow.Engine
{
startNode = node;
}

if (node.type == "endround")
{
endNode = node;
}
}
}
#endregion
@@ -41,6 +47,7 @@ namespace Learun.Workflow.Engine
private NWFScheme wfScheme = null;
private Dictionary<string, NWFNodeInfo> nodesMap = null;
private NWFNodeInfo startNode = null;
private NWFNodeInfo endNode = null;
#endregion

#region 私有方法
@@ -49,7 +56,8 @@ namespace Learun.Workflow.Engine
/// </summary>
/// <param name="node">节点信息</param>
/// <returns></returns>
private bool CalcCondition(NWFNodeInfo node) {
private bool CalcCondition(NWFNodeInfo node)
{
bool res = true;
if (node.conditions.Count > 0)
{
@@ -63,7 +71,8 @@ namespace Learun.Workflow.Engine
if (dataTable.Rows.Count > 0)
{
string value = dataTable.Rows[0][0].ToString();
if (string.IsNullOrEmpty(value)) {
if (string.IsNullOrEmpty(value))
{
return false;
}

@@ -131,11 +140,13 @@ namespace Learun.Workflow.Engine
break;
}
}
else {
else
{
res = false;
}
}
if (!res) {
if (!res)
{
break;
}
}
@@ -151,7 +162,8 @@ namespace Learun.Workflow.Engine
conditionSql = conditionSql.Replace("{companyId}", "@companyId");
conditionSql = conditionSql.Replace("{departmentId}", "@departmentId");

var param = new {
var param = new
{
processId = config.ParamConfig.ProcessId,
userId = config.ParamConfig.CreateUser.Id,
userAccount = config.ParamConfig.CreateUser.Account,
@@ -234,7 +246,8 @@ namespace Learun.Workflow.Engine
/// 获取流程模板
/// </summary>
/// <returns></returns>
public string GetScheme() {
public string GetScheme()
{
return config.ParamConfig.Scheme;
}
/// <summary>
@@ -264,10 +277,11 @@ namespace Learun.Workflow.Engine
{
return nodesMap[nodeId];
}
else {
else
{
return null;
}
}
/// <summary>
/// 获取下一节点
@@ -275,60 +289,82 @@ namespace Learun.Workflow.Engine
/// <param name="nodeId">当前节点Id</param>
/// <param name="code">节点操作码 agree 同意 disagree 不同意 lrtimeout 超时</param>
/// <returns>节点信息列表</returns>
public List<NWFNodeInfo> GetNextNodes(string nodeId, string code, List<NWFLineInfo> lineList)
public List<NWFNodeInfo> GetNextNodes(string nodeId, string code, List<NWFLineInfo> lineList, bool overFW = false)
{


List<NWFNodeInfo> nextNodes = new List<NWFNodeInfo>();
// 找到与当前节点相连的线条
foreach (var line in wfScheme.lines)
NWFLineInfo line = null;
//如果lastNode 不为空,直接执行最后一条线的绑定方法 并终止任务
if (overFW)
{
if (line.from == nodeId)
line = wfScheme.lines.Last();
}
else
{
line = wfScheme.lines.FirstOrDefault(a => a.from == nodeId);
}


bool isOk = false;
if (string.IsNullOrEmpty(line.strategy) || line.strategy == "1")
{
isOk = true;
}
else
{
var codeList = line.agreeList.Split(',');
foreach (string _code in codeList)
{
bool isOk = false;
if (string.IsNullOrEmpty(line.strategy) || line.strategy == "1")
if (_code == code)
{
isOk = true;
break;
}
else {
var codeList = line.agreeList.Split(',');
foreach (string _code in codeList) {
if (_code == code) {
isOk = true;
break;
}
}
}
}
if (isOk)
{
if (nodesMap.ContainsKey(line.to))
{
//如果lastNode 不为空,直接执行最后一条线的绑定方法 并终止任务
if (overFW)
{
nextNodes.Add(endNode);
}
if (isOk)
else
{
if (nodesMap.ContainsKey(line.to))
{
nextNodes.Add(nodesMap[line.to]);
nextNodes.Add(nodesMap[line.to]);
}

switch (line.operationType) {// 绑定的操作类型
case "sql": // sql 语句
if (!string.IsNullOrEmpty(line.dbId) && !string.IsNullOrEmpty(line.strSql))
{
lineList.Add(line);
}
break;
case "interface": // interface 接口
if (!string.IsNullOrEmpty(line.strInterface))
{
lineList.Add(line);
}
break;
case "ioc": // 依赖注入
if (!string.IsNullOrEmpty(line.iocName))
{
lineList.Add(line);
}
break;
switch (line.operationType)
{// 绑定的操作类型
case "sql": // sql 语句
if (!string.IsNullOrEmpty(line.dbId) && !string.IsNullOrEmpty(line.strSql))
{
lineList.Add(line);
}

}
break;
case "interface": // interface 接口
if (!string.IsNullOrEmpty(line.strInterface))
{
lineList.Add(line);
}
break;
case "ioc": // 依赖注入
if (!string.IsNullOrEmpty(line.iocName))
{
lineList.Add(line);
}
break;
}

}
}

return nextNodes;

}
/// <summary>
/// 获取上一节点列表
@@ -392,7 +428,8 @@ namespace Learun.Workflow.Engine
/// 获取配置参数信息
/// </summary>
/// <returns></returns>
public NWFEngineParamConfig GetConfig() {
public NWFEngineParamConfig GetConfig()
{
return config.ParamConfig;
}
/// <summary>
@@ -403,9 +440,12 @@ namespace Learun.Workflow.Engine
/// <param name="isGetAuditors">是否获取下一节点审核人</param>
/// <param name="lineList">经过的线段需要执行操作的</param>
/// <returns></returns>
public List<NWFNodeInfo> GetNextTaskNode(NWFNodeInfo beginNode,string code,bool isGetAuditors, List<NWFLineInfo> lineList) {
public List<NWFNodeInfo> GetNextTaskNode(NWFNodeInfo beginNode, string code, bool isGetAuditors, List<NWFLineInfo> lineList, bool overWF = false)
{
List<NWFNodeInfo> list = new List<NWFNodeInfo>();
List<NWFNodeInfo> nextNodeList = GetNextNodes(beginNode.id, code, lineList);
List<NWFNodeInfo> nextNodeList = new List<NWFNodeInfo>();

nextNodeList = GetNextNodes(beginNode.id, code, lineList, overWF);

Dictionary<string, string> auditers = null;
if (!string.IsNullOrEmpty(config.ParamConfig.Auditers))
@@ -419,13 +459,15 @@ namespace Learun.Workflow.Engine
if (auditers != null && auditers.ContainsKey(node.id))
{
node.auditors = new List<NWFAuditor>();
node.auditors.Add(new NWFAuditor() {
node.auditors.Add(new NWFAuditor()
{
type = 3,
auditorId = auditers[node.id]
});
}

switch (node.type) {
switch (node.type)
{
case "conditionnode": // 条件节点
if (!isGetAuditors)
{
@@ -438,13 +480,15 @@ namespace Learun.Workflow.Engine
list.AddRange(GetNextTaskNode(node, "disagree", isGetAuditors, lineList));
}
}
else {
else
{
list.AddRange(GetNextTaskNode(node, "agree", isGetAuditors, lineList));
list.AddRange(GetNextTaskNode(node, "disagree", isGetAuditors, lineList));
}
break;
case "confluencenode":// 会签节点
if (!isGetAuditors) {
if (!isGetAuditors)
{
int confluenceRes;
if (code == "agree")
{
@@ -471,8 +515,9 @@ namespace Learun.Workflow.Engine
break;
case "childwfnode":// 子流程节点
list.Add(node);
if (node.childType == "2") { // 异步的情况下直接往下走
list.AddRange(GetNextTaskNode(node, "agree", isGetAuditors,lineList));
if (node.childType == "2")
{ // 异步的情况下直接往下走
list.AddRange(GetNextTaskNode(node, "agree", isGetAuditors, lineList));
}
break;
case "startround":// 开始节点 需要重新审核


+ 2
- 2
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Workflow/Learun.Workflow.Engine/NWFIEngine.cs Переглянути файл

@@ -39,7 +39,7 @@ namespace Learun.Workflow.Engine
/// <param name="nodeId">当前节点Id</param>
/// <param name="code">节点操作码 agree 同意 disagree 不同意 lrtimeout 超时</param>
/// <returns>节点信息列表</returns>
List<NWFNodeInfo> GetNextNodes(string nodeId, string code, List<NWFLineInfo> lineList);
List<NWFNodeInfo> GetNextNodes(string nodeId, string code, List<NWFLineInfo> lineList, bool overFW = false);
/// <summary>
/// 获取上一节点列表
/// </summary>
@@ -69,7 +69,7 @@ namespace Learun.Workflow.Engine
/// <param name="isGetAuditors">是否获取下一节点审核人</param>
/// <param name="lineList">经过的线段需要执行操作的</param>
/// <returns></returns>
List<NWFNodeInfo> GetNextTaskNode(NWFNodeInfo beginNode, string code, bool isGetAuditors, List<NWFLineInfo> lineList);
List<NWFNodeInfo> GetNextTaskNode(NWFNodeInfo beginNode, string code, bool isGetAuditors, List<NWFLineInfo> lineList, bool overWF = false);
#endregion
}
}

+ 1
- 1
Learun.Framework.Ultimate V7/LearunApp-2.2.0/config.js Переглянути файл

@@ -7,7 +7,7 @@ export default {
"enableSignUp": true,
// 请求数据的接口地址;可以配置多个,开发环境下登录页会出现选择菜单供您选择
"apiHost": [
"http://123.57.209.16:31173/learun/adms"
"https://oa.bjquanjiang.com/learun/adms"
],
// "apiHost": [
// "http://192.168.2.94:31173/learun/adms"


+ 4
- 4
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/login.vue Переглянути файл

@@ -13,13 +13,13 @@
<view mode="aspectFit" class="logo"></view>

<!-- 【仅生产环境】使用账号的原因,无此项则微信审核通不过 -->
<view v-if="DEV" class="intro">
<!-- <view v-if="!DEV" class="intro">
<view class="intro">注册登录智慧校园账号后,您将可以体验力软框架产品中的所有功能与业务</view>
<view class="intro">OA · 进销存 · 工作流审批 · 数据可视化</view>
<view class="intro text-gray" style="font-size: 0.9em;">
如果您之前已在智慧校园 PC 端中注册过体验账号,可以直接使用原账号登录,无需另行注册
</view>
</view>
</view> -->
</view>

<!-- 账户密码表单 -->
@@ -30,9 +30,9 @@
<l-icon slot="title" type="lock" />
</l-input>
<l-button @click="login(null)" size="lg" color="blue" class="margin-top-sm block" block>登 录</l-button>
<l-button v-if="enableSignUp" @click="signUp" size="lg" line="blue" class="margin-top-sm block" block>
<!-- <l-button v-if="enableSignUp" @click="signUp" size="lg" line="blue" class="margin-top-sm block" block>
教师注册
</l-button>
</l-button> -->

<!-- 【仅小程序】一键登录按钮 -->
<!-- #ifdef MP -->


Завантаження…
Відмінити
Зберегти