@@ -0,0 +1,424 @@ | |||||
数字化智慧校园3.0 | |||||
部署手册 | |||||
版本号:V1.3 | |||||
修订记录 | |||||
修订时间 | |||||
修订人 | |||||
版本号 | |||||
变更 | |||||
2019-03-19 | |||||
梁坤 | |||||
V1.0 | |||||
新建V1.0 | |||||
2019-05-10 | |||||
梁坤 | |||||
V1.1 | |||||
新增系统流程配置说明和飞星上传目录要求说明 | |||||
2019-07-04 | |||||
梁坤 | |||||
V1.2 | |||||
新增飞星部署说明,统一身份认证部署说明 | |||||
2020-09-09 | |||||
梁坤 | |||||
V1.3 | |||||
1.新增力软706框架升级部署说明 | |||||
2.新增海康考勤机连接部署说明 | |||||
3.修改授权验证功能说明 | |||||
4.修改系统要求软件环境部分 | |||||
概述 | |||||
数字化智慧校园3.0基于.NETMVC技术开发,数据库使用SQL Server,部署在Windows Server系统之上,需要IIS支持。 | |||||
系统要求 | |||||
硬件 | |||||
8GB及以上内存,4核心及以上CPU主频不低于2.0GHz,硬盘空间不低于500GB,其中系统盘剩余空间不低于50GB | |||||
操作系统 | |||||
Windows Server2008R2及以上 | |||||
软件环境 | |||||
.NET FrameWork 4.5及以上(力软705版本开始升级到4.6.1及以上) | |||||
SQL Server2012及以上 | |||||
IIS基础模块 | |||||
Redis 3.2.100及以上 | |||||
系统部署 | |||||
数据库配置 | |||||
第一步 | |||||
新建数据库adms7ultimate2和CollegeMISFor30 | |||||
存储路径修改至较大剩余空间硬盘 | |||||
第二步 | |||||
还原数据库,备份文件如下图 | |||||
分别还原至对应数据库 | |||||
还原路径一定要选对 | |||||
选项如下图: | |||||
第三步 | |||||
修改数据库adms7ultimate2中LR_Base_DatabaseLink表内数据,内有连接字符串修改正确。 | |||||
LR_Base_User表内数据只保留system帐号,其余做删除处理: | |||||
LR_Base_Module表中F_UrlAddress地址替换成后续部署mis系统的端口和ip: | |||||
Sql语句:update LR_Base_Module set F_UrlAddress=replace(F_UrlAddress,'192.168.1.126:9000','192.168.60.128:8082') | |||||
Sql语句按实际情况修改 | |||||
第四步 | |||||
同步学校基础数据到CollegeMISFor30中(使用系统导入、数据库导入功能均可) | |||||
常用表: | |||||
排课数据ArrangeLessonTerm | |||||
系CdDept | |||||
专业CdMajor | |||||
课程分类CdLessonSort,CdLessonSortDetail | |||||
课程LessonInfo | |||||
班级ClassInfo | |||||
教学楼ClassroomBuilding | |||||
教室ClassroomInfo | |||||
班主任ClassInfoDiredctor | |||||
教师EmpInfo | |||||
学生StuInfoBasic | |||||
注意:学生和教师表内,checkmark必须是true才能生成帐号 | |||||
性别1男0女,旧系统一般是1男2女,注意修改数据 | |||||
教师表中F_CompanyId和F_DepartmentId分别对应adms7ultimate2库的LR_Base_Company表(学校校区表)的对应id,LR_Base_Department(部门)的对应id | |||||
学生表中F_SchoolId对应adms7ultimate2库的LR_Base_Company表(学校校区表)的对应id,DeptNo对应CollegeMIS库的系CdDept 的DeptNo,否则生成帐号会生成出错! | |||||
IIS配置 | |||||
网站组成 | |||||
全部系统需要部署4个网站如下图: | |||||
分别对应:高职20190311web、WebPublish、WebAPIPublish、www四个压缩包。 | |||||
网站程序池配置 | |||||
Mis系统需要选择2.0集成,且启用32位,图: | |||||
其余三个系统需要4.0集成,同样启用32位。 | |||||
注意:有时还需要配置文件目录权限如下图: | |||||
配置文件修改 | |||||
网站数据库配置: | |||||
新增定时库配置 | |||||
<add name="hangfireString" connectionString="Server=192.168.2.126;Initial Catalog=Hangfire;User ID=sa;Password=bjqj@2015!" providerName="System.Data.SqlClient" /> | |||||
Mis系统修改三处Web.config中,如下图: | |||||
以下网站修改xmlconfig目录下的database.config配置: | |||||
和system.config配置: | |||||
workflowapi修改为对应的服务器ip地址,跳转地址指向mis系统ip和端口。 | |||||
AnnexesFile 修改为部署服务器的Resource文件夹下,否则会影响飞星。 | |||||
手机h5网站即站,修改config下config.js文件: | |||||
Webapi指向api站,web指向主网站 | |||||
系统流程使用配置 | |||||
系统流程是为了配合框架中个人办公-》我的任务-》代办任务中(即工作流)实现一些提交审核数据的功能,系统开发时已经内置了默认的流程,如需修改配套的流程,请详细阅读并按照下面的步骤谨慎修改。 | |||||
第一步:了解使用系统流程的功能和对应的路径如如下: | |||||
采购申请 | |||||
入库申请 | |||||
出库申请 | |||||
公文下发 | |||||
第二步:编辑对应的index.js最下方代码,如图: | |||||
修改红圈处模板编号为系统中对应的流程模板编号,流程功能如下图: | |||||
新建系统调用流程时,要注意选择系统流程,模板编号要和index.js相对应,否则会造成工作流功能工作不稳定甚至紊乱。 | |||||
第三步:配置各节点的表单,如下图所示: | |||||
开始节点和中间审批节点添加表单,类型选择系统表单,地址填写对应的功能目录的FormView。 | |||||
最后审批节点需要额外配置【绑定方法】,如下图: | |||||
绑定方法见下表:(大小写区分且不能有空格) | |||||
系统功能 | |||||
绑定方法 | |||||
备注 | |||||
采购申请 | |||||
Ass_PurchaseApplyMethod | |||||
入库申请 | |||||
Ass_AssetsInfoApplyMethod | |||||
出库申请 | |||||
Ass_AssetsOutApplyMethod | |||||
公文下发 | |||||
Sys_SendFileMethod | |||||
应用程序配置 | |||||
配置文件 | |||||
WorkFlow下Learun.Application.WorkFlowServer.exe.config文件修改: | |||||
管理员方式运行Learun.Application.WorkFlowServer.exe开启服务。 | |||||
统一身份认证配置 | |||||
<!-- ================== 统一身份认证公钥密钥 ================== --> | |||||
<add key="SSOPublicSecret" value="bjquanjiang" /> | |||||
<add key="SSOUserSecret" value="123456789" /> | |||||
一般情况,公钥不做修改,私钥在对接系统端进行配置。 | |||||
统一身份认证工作机制说明 | |||||
第一步,在系统中配置统一身份认证的接入系统地址 | |||||
第二步,给系统中的用户授权统一认证系统使用权限 | |||||
第三步,配置用户接入统一认证系统的用户名、密码 | |||||
第四步,系统根据用户填写的信息,使用公钥、密钥双层AES加密后,发送到接入端比对,成功后即可自动登录对接系统。 | |||||
图中数字化校园统一应用管理模块中私钥应和接入系统私钥匹配。 | |||||
飞星推送配置 | |||||
<add key="CommunicationServeraddress" value="http://127.0.0.1:8866/ChatConnection" /> | |||||
数字化校园会自动推送未读邮件消息、公告通知消息到飞星端,需要配置本地址到飞星服务端。 | |||||
排课、排考,考试系统数据对接配置 | |||||
<!--排课接口--> | |||||
<add key="ArrangeLessonAPI" value="http://demo.bjquanjiang.com:9090/interface/paike/paike" /> | |||||
<!--异动排课接口--> | |||||
<add key="ModifyArrangeLessonAPI" value="http://demo.bjquanjiang.com:9090/interface/paike/updatePaike" /> | |||||
<!--开课计划接口--> | |||||
<add key="OpenLessonPlanAPI" value="http://demo.bjquanjiang.com:9090/interface/paike/majorInterface" /> | |||||
<!--选修排课接口--> | |||||
<add key="ArrangeLessonOfElectiveAPI" value="http://demo.bjquanjiang.com:9090/interface/paike/xuanxiupaike" /> | |||||
<!--更新选修排课接口--> | |||||
<add key="ModifyArrangeLessonOfElectiveAPI" value="http://demo.bjquanjiang.com:9090/interface/paike/updateXuanXiuPaike" /> | |||||
<!--排考接口--> | |||||
<add key="ArrangeExamAPI" value="http://demo.bjquanjiang.com:9090/interface/paikao/paikao" /> | |||||
<!--选修排考接口--> | |||||
<add key="ArrangeExamOfElectiveAPI" value="http://demo.bjquanjiang.com:9090/interface/paikao/xuanxiupaikao" /> | |||||
<!--排考结构接口--> | |||||
<add key="ArrangeExamStructureAPI" value="http://demo.bjquanjiang.com:9090/interface/paikao/geitime" /> | |||||
<!--考试成绩接口--> | |||||
<add key="ExamScoreAPI" value="http://123.57.209.16:12203/jeeplus/app/stuScore" /> | |||||
<!--考试系统学生端--> | |||||
<add key="kaoshisystemurl" value="http://ks.bjquanjiang.com/RereClientConnector" /> | |||||
青桔课堂对接配置 | |||||
<add key="QingJuurl" value="http://xy.bjquanjiang.com/Student/LoginForSSOHandler.ashx" /> | |||||
<add key="QingJuRegisterurl" value="http://xy.bjquanjiang.com/Service/ServiceStudent.ashx" /> | |||||
自动备份数据库路径配置 | |||||
<add key="dbbackuppath" value="D:\数字化校园\lr7test\Publish\Resource\DataBaseBackup"/> | |||||
将本路径配置指向数字化校园主站根目录下\Resource\DataBaseBackup | |||||
Webapi配置变更 | |||||
<!-- ==================注意附件上传地址 修改到主网站部署目录下的Resource要不然飞星会报错================== --> | |||||
<add key="AnnexesFile" value="E: \数字化校园\Web\Resource" /> | |||||
<!-- ================== 数字化校园主站地址 ================== --> | |||||
<add key="webrootpath" value="http://localhost:20873" /> | |||||
有两处需要注意的地方,都需要指向主站。 | |||||
力软705版本升级注意 | |||||
第一步,首先更新版本程序 | |||||
第二步,使用Quanjiang.DigitalScholl.DataSync.exe数据库同步工具同步客户数据库到最新(由于数据库操作风险巨大,具体使用时联系开发人员配合同步) | |||||
第三步,参照最新程序修改XmlConfig下system.config、ioc.config,根目录下Web.config文件 | |||||
第四步,如果出现授权验证失败,需要重新进行授权。 | |||||
飞星部署 | |||||
服务端 | |||||
飞星服务端属于exe可执行文件,运行前先配置配置文件GoChat.Server.exe.config: | |||||
<add key="serverAddress" value="*:8866" />(一般情况不要动) | |||||
然后以管理员身份运行GoChat.Server.exe后,如下图: | |||||
点击服务控制,切换到该选项卡,点击启动即可 | |||||
客户端 | |||||
最新客户端安装包,请到公司群文件里下载,注意下载最新版本号的 飞星客户端.exe | |||||
安装后,需要先配置服务器,点击登录界面右上角设置按钮,如下图: | |||||
通信服务器内网(外网)地址:运行飞星服务端程序的服务器ip地址+端口号,例如: | |||||
123.57.209.16:8866 127.0.0.1:8866 | |||||
通信服务器数据地址:数字化校园API网站地址+端口号,例如:123.57.209.16:31173 192.168.2.126:8083 | |||||
请务必注意配置正确,否则无法正常登录飞星。 | |||||
配置完成后,输入数字化校园教师帐号密码即可登录。 | |||||
软件授权 | |||||
泉江授权程序 | |||||
程序名称Quanjiang.DigitalScholl.License.exe | |||||
本程序为可执行文件,无需配置 | |||||
授权成功后,会在客户机主网站bin目录下,生成后缀为.bjqj的加密授权文件,授权分为永久授权和限时授权,不勾选是否限时即为永久授权。 | |||||
说明: | |||||
1.首先部署好数字化校园3.0主程序,浏览器打开:http://部署地址/ShowRegister | |||||
2.运行授权器,将上一步得到的机器码填写至注册器机器码文本框内。 | |||||
3.如果有使用期限,选择好到期时间,如果没有使用期限,请将限时复选框去掉。 | |||||
4.点击授权按钮,将生成的注册码复制到部署机器的http://部署地址/ShowRegister界面注册码内,并点击授权按钮。 | |||||
5.重新运行部署的数字化校园。 | |||||
6.!!!!严重警告!!!!此软件禁止放在部署机上!!!!此软件严禁外传!!!! | |||||
7. 在力软705版本后增加了网络授权验证,客户机除了要进行上述的本地授权外,还需要进行网络授权 | |||||
步骤1:打开授权网站http://123.57.209.16:8061/ 用户名:联系泉江获取 密码:联系泉江获取 并登录。 | |||||
步骤2:打开功能并新增授权 | |||||
步骤3:填写相关信息并保存(机器码即运行数校http://部署地址/ShowRegister获得的机器码) | |||||
步骤4:重新访问数字化智慧校园系统验证授权是否正确。 | |||||
定时服务部署 | |||||
部署 | |||||
本程序为Windows服务,即运行在系统底层的程序,可随系统启动,安装后需要手动启动,设置为自动运行,程序名称Quanjiang.DigitalScholl.JobService.exe | |||||
先修改配置文件 | |||||
Quanjiang.DigitalScholl.JobService.exe.config中的连接字符串到部署服务器 | |||||
<add name="BaseDb" connectionString="Server=192.168.2.126;Initial Catalog=adms7ultimate2;User ID=sa;Password=bjqj@2015!" providerName="System.Data.SqlClient" /> | |||||
<add name="CollegeMIS" connectionString="Server=192.168.2.126;Initial Catalog=CollegeMIS;User ID=sa;Password=bjqj@2015!" providerName="System.Data.SqlClient" /> | |||||
<add name="HangfireConnString" connectionString="Server=192.168.2.126;Initial Catalog=Hangfire;User ID=sa;Password=bjqj@2015!" providerName="System.Data.SqlClient" /> | |||||
备份文件存放路径配置: | |||||
<add key="dbbackuppath" value="主网站部署地址\Resource\DataBaseBackup" /> | |||||
如需要部署海康考勤机还需要配置: | |||||
<add key="AttendancePhotoPath" value="主网站部署地址\Resource\AttendancePhoto" /> | |||||
部署方法: | |||||
第一步,以管理员身份运行cmd | |||||
第二步,进入服务程序路劲 cd 盘符\目录\Quanjiang.DigitalScholl.JobService\bin\Debug回车 | |||||
第三步,盘符 回车 | |||||
第四步,%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe Quanjiang.DigitalScholl.JobService.exe 回车,提示安装成功。 | |||||
第五步,打开Windows服务,找到安装的服务 | |||||
并点击启动 | |||||
看到下图证明成功运行 | |||||
服务的卸载: | |||||
运行cmd,进入服务程序目录,执行 %SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe /u Quanjiang.DigitalScholl.JobService.exe 回车 | |||||
卸载后,刷新Windows服务 应看不到本服务程序说明卸载成功,否则需要重启。 | |||||
海康考勤机部署要求 | |||||
首先确保数字化校园主站运行正常。 | |||||
步骤1 配置考勤机参数。打开功能【考勤设备管理】 | |||||
步骤2 配置考勤机参数,系统仅对启用设备进行连接操作 | |||||
步骤3 部署【DigitalSchoolApi】网站,并保证正常运行。 | |||||
步骤4 复制【海康考勤机必须文件】下的所有文件、文件夹到Quanjiang.DigitalScholl.JobService.exe所在目录。 | |||||
步骤5 复制DigitalSchoolApi内三个文件到Quanjiang.DigitalScholl.JobService.exe所在目录。 | |||||
步骤6 运行服务 | |||||
检查是否部署 | |||||
运行数字化校园主网站ip+端口/hangfire | |||||
查看服务器 | |||||
显示上图即为服务正常,否则服务没运行正常。 | |||||
DigitalSchoolApi部署 | |||||
部署 | |||||
本程序为Web应用程序,部署方式同数字化智慧校园系统。 | |||||
对接考勤机的客户需要修改Web.config下【AttendancePhotoPath】配置节到数字化智慧校园网站根目录下Resource目录(同步修改【定时服务程序下】Quanjiang.DigitalScholl.JobService.exe.config文件的对应配置) | |||||
<add key="AttendancePhotoPath" value="数字化智慧校园网站根目录\Resource\AttendancePhoto"/> | |||||
程序实现了定时任务的新增,是配合【定时服务】运行的必要系统,程序包含如下图所示的功能: | |||||
1.监控功能:部署地址/hangfire | |||||
2.任务操作功能:部署地址/swagger | |||||
School基础接口包含了几个教务所需的接口,可对外提供使用。 | |||||
YKT接口包含西昌学校门禁一卡通、图书馆系统数据同步定时同步任务,金隅学校一卡通消费记录定时同步任务,海康考勤机连接任务等,可根据不同学校需求具体操作。 | |||||
海康考勤机连接 | |||||
第一步,单击展开: | |||||
第二步,点击按钮: | |||||
第三步,点击执行: | |||||
第四步,查看结果:显示返回200 OK即为成功 | |||||
第五步,确认是否加入定时服务,转到 【DigitalSchoolApi】部署地址/hangfire 查看【周期性作业】 | |||||
确认作业【HKAttendance】存在部署完成。 | |||||
第六步,启动【定时服务】 | |||||
第七步,查看数字化智慧校园系统中的考勤设备管理列表,是否布防和最后通讯时间,确认布防状态(是),最后通讯时间接近当前时间为连接成功,否则说明链接设备出现问题 | |||||
考勤机连接日志 | |||||
连接日志存储与CollegeMIS数据库,ADR_DeviceLog表中,查看该表数据可以快速判定考勤机部署连接过程中出现的错误、问题。 | |||||
@@ -161,7 +161,7 @@ var bootstrap = function ($, learun) { | |||||
], | ], | ||||
mainId: 'ID', | mainId: 'ID', | ||||
isPage: true, | isPage: true, | ||||
sidx: "UserNo,ADYear,ADMonth,ADDay,ADTime", | |||||
sidx: "UserNo,ADYear,ADMonth,ADDay,ClockTime", | |||||
}); | }); | ||||
}, | }, | ||||
search: function (param) { | search: function (param) { | ||||
@@ -0,0 +1,147 @@ | |||||
using Learun.Util; | |||||
using System.Data; | |||||
using Learun.Application.TwoDevelopment.PersonnelManagement; | |||||
using System.Web.Mvc; | |||||
using Learun.Application.TwoDevelopment.LR_CodeDemo; | |||||
using System.Collections.Generic; | |||||
using Learun.Application.Base.SystemModule; | |||||
namespace Learun.Application.Web.Areas.PersonnelManagement.Controllers | |||||
{ | |||||
/// <summary> | |||||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||||
/// 创 建:超级管理员 | |||||
/// 日 期:2020-09-09 16:23 | |||||
/// 描 述:补卡申请 | |||||
/// </summary> | |||||
public class ADR_AddApplyController : MvcControllerBase | |||||
{ | |||||
private ADR_AddApplyIBLL aDR_AddApplyIBLL = new ADR_AddApplyBLL(); | |||||
private CodeRuleIBLL codeRuleIBLL = new CodeRuleBLL(); | |||||
#region 视图功能 | |||||
/// <summary> | |||||
/// 主页面 | |||||
/// <summary> | |||||
/// <returns></returns> | |||||
[HttpGet] | |||||
public ActionResult Index() | |||||
{ | |||||
return View(); | |||||
} | |||||
/// <summary> | |||||
/// 表单页 | |||||
/// <summary> | |||||
/// <returns></returns> | |||||
[HttpGet] | |||||
public ActionResult Form() | |||||
{ | |||||
return View(); | |||||
} | |||||
#endregion | |||||
#region 获取数据 | |||||
/// <summary> | |||||
/// 获取页面显示列表数据 | |||||
/// </summary> | |||||
/// <param name="pagination">分页参数</param> | |||||
/// <param name="queryJson">查询参数</param> | |||||
/// <returns></returns> | |||||
[HttpGet] | |||||
[AjaxOnly] | |||||
public ActionResult GetPageList(string pagination, string queryJson) | |||||
{ | |||||
Pagination paginationobj = pagination.ToObject<Pagination>(); | |||||
var data = aDR_AddApplyIBLL.GetPageList(paginationobj, queryJson); | |||||
var jsonData = new | |||||
{ | |||||
rows = data, | |||||
total = paginationobj.total, | |||||
page = paginationobj.page, | |||||
records = paginationobj.records | |||||
}; | |||||
return Success(jsonData); | |||||
} | |||||
/// <summary> | |||||
/// 获取表单数据 | |||||
/// </summary> | |||||
/// <param name="keyValue">主键</param> | |||||
/// <returns></returns> | |||||
[HttpGet] | |||||
[AjaxOnly] | |||||
public ActionResult GetFormData(string keyValue) | |||||
{ | |||||
var ADR_AddApplyData = aDR_AddApplyIBLL.GetADR_AddApplyEntity( keyValue ); | |||||
var jsonData = new { | |||||
ADR_AddApply = ADR_AddApplyData, | |||||
}; | |||||
return Success(jsonData); | |||||
} | |||||
/// <summary> | |||||
/// 获取表单数据 | |||||
/// </summary> | |||||
/// <param name="processId">流程实例主键</param> | |||||
/// <returns></returns> | |||||
[HttpGet] | |||||
[AjaxOnly] | |||||
public ActionResult GetFormDataByProcessId(string processId) | |||||
{ | |||||
var ADR_AddApplyData = aDR_AddApplyIBLL.GetEntityByProcessId( processId ); | |||||
var jsonData = new { | |||||
ADR_AddApply = ADR_AddApplyData, | |||||
}; | |||||
return Success(jsonData); | |||||
} | |||||
#endregion | |||||
#region 提交数据 | |||||
/// <summary> | |||||
/// 删除实体数据 | |||||
/// </summary> | |||||
/// <param name="keyValue">主键</param> | |||||
/// <returns></returns> | |||||
[HttpPost] | |||||
[AjaxOnly] | |||||
public ActionResult DeleteForm(string keyValue) | |||||
{ | |||||
aDR_AddApplyIBLL.DeleteEntity(keyValue); | |||||
return Success("删除成功!"); | |||||
} | |||||
/// <summary> | |||||
/// 修改审批状态 | |||||
/// </summary> | |||||
/// <param name="keyValue">主键</param> | |||||
/// <returns></returns> | |||||
[HttpPost] | |||||
[AjaxOnly] | |||||
public ActionResult ChangeStatusById(string keyValue,string processId) | |||||
{ | |||||
aDR_AddApplyIBLL.ChangeStatusById(keyValue,processId); | |||||
return Success("提交成功!"); | |||||
} | |||||
/// <summary> | |||||
/// 保存实体数据(新增、修改) | |||||
/// </summary> | |||||
/// <param name="keyValue">主键</param> | |||||
/// <param name="strEntity">实体</param> | |||||
/// <returns></returns> | |||||
[HttpPost] | |||||
[ValidateAntiForgeryToken] | |||||
[AjaxOnly] | |||||
public ActionResult SaveForm(string keyValue, string strEntity) | |||||
{ | |||||
ADR_AddApplyEntity entity = strEntity.ToObject<ADR_AddApplyEntity>(); | |||||
aDR_AddApplyIBLL.SaveEntity(keyValue,entity); | |||||
if (string.IsNullOrEmpty(keyValue)) | |||||
{ | |||||
} | |||||
return Success("保存成功!"); | |||||
} | |||||
#endregion | |||||
} | |||||
} |
@@ -0,0 +1,23 @@ | |||||
@{ | |||||
ViewBag.Title = "补卡申请"; | |||||
Layout = "~/Views/Shared/_Form.cshtml"; | |||||
} | |||||
<div class="lr-form-wrap" id="form"> | |||||
<div class="col-xs-12 lr-form-item" data-table="ADR_AddApply" > | |||||
<div class="lr-form-item-title">申请人</div> | |||||
<div id="UserNo" ></div> | |||||
</div> | |||||
<div class="col-xs-12 lr-form-item" data-table="ADR_AddApply" > | |||||
<div class="lr-form-item-title">考勤类型</div> | |||||
<div id="ADType" ></div> | |||||
</div> | |||||
<div class="col-xs-12 lr-form-item" data-table="ADR_AddApply" > | |||||
<div class="lr-form-item-title">补卡时间</div> | |||||
<input id="AddTime" type="text" class="form-control lr-input-wdatepicker" onfocus="WdatePicker({ dateFmt:'yyyy-MM-dd',onpicked: function () { $('#AddTime').trigger('change'); } })" /> | |||||
</div> | |||||
<div class="col-xs-12 lr-form-item" data-table="ADR_AddApply" > | |||||
<div class="lr-form-item-title">原因</div> | |||||
<input id="Remark" type="text" class="form-control" /> | |||||
</div> | |||||
</div> | |||||
@Html.AppendJsFile("/Areas/PersonnelManagement/Views/ADR_AddApply/Form.js") |
@@ -0,0 +1,112 @@ | |||||
/* * 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架(http://www.learun.cn) | |||||
* Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||||
* 创建人:超级管理员 | |||||
* 日 期:2020-09-09 16:23 | |||||
* 描 述:补卡申请 | |||||
*/ | |||||
var acceptClick; | |||||
var keyValue = request('keyValue'); | |||||
// 设置权限 | |||||
var setAuthorize; | |||||
// 设置表单数据 | |||||
var setFormData; | |||||
// 验证数据是否填写完整 | |||||
var isUpdate; | |||||
var validForm; | |||||
// 保存数据 | |||||
var save; | |||||
var bootstrap = function ($, learun) { | |||||
"use strict"; | |||||
// 设置权限 | |||||
setAuthorize = function (data) { | |||||
if (!!data) { | |||||
for (var field in data) { | |||||
if (data[field].isLook != 1) {// 如果没有查看权限就直接移除 | |||||
$('#' + data[field].fieldId).parent().remove(); | |||||
} | |||||
else { | |||||
if (data[field].isEdit != 1) { | |||||
$('#' + data[field].fieldId).attr('disabled', 'disabled'); | |||||
if ($('#' + data[field].fieldId).hasClass('lrUploader-wrap')) { | |||||
$('#' + data[field].fieldId).css({ 'padding-right': '58px' }); | |||||
$('#' + data[field].fieldId).find('.btn-success').remove(); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} | |||||
}; | |||||
var page = { | |||||
init: function () { | |||||
$('.lr-form-wrap').lrscroll(); | |||||
page.bind(); | |||||
page.initData(); | |||||
}, | |||||
bind: function () { | |||||
$('#UserNo').lrformselect({ | |||||
layerUrl: top.$.rootUrl + '/LR_OrganizationModule/User/SelectOnlyForm', | |||||
layerUrlW: 400, | |||||
layerUrlH: 300, | |||||
dataUrl: top.$.rootUrl + '/LR_OrganizationModule/User/GetListByUserIds' | |||||
}); | |||||
$('#ADType').lrDataItemSelect({ code: 'ADType' }); | |||||
}, | |||||
initData: function () { | |||||
if (!!keyValue) { | |||||
$.lrSetForm(top.$.rootUrl + '/PersonnelManagement/ADR_AddApply/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]); | |||||
} | |||||
} | |||||
}); | |||||
} | |||||
} | |||||
}; | |||||
// 设置表单数据 | |||||
setFormData = function (processId, param, callback) { | |||||
if (!!processId) { | |||||
$.lrSetForm(top.$.rootUrl + '/PersonnelManagement/ADR_AddApply/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 == 'ADR_AddApply' && data[id]) { | |||||
keyValue = data[id].ID; | |||||
} | |||||
$('[data-table="' + id + '"]').lrSetFormData(data[id]); | |||||
} | |||||
} | |||||
}); | |||||
} | |||||
callback && callback(); | |||||
} | |||||
// 验证数据是否填写完整 | |||||
validForm = function () { | |||||
if (!$('body').lrValidform()) { | |||||
return false; | |||||
} | |||||
return true; | |||||
}; | |||||
// 保存数据 | |||||
save = function (processId, callBack, i) { | |||||
var formData = $('body').lrGetFormData(); | |||||
if (!!processId) { | |||||
formData.ProcessId = processId; | |||||
} | |||||
var postData = { | |||||
strEntity: JSON.stringify(formData) | |||||
}; | |||||
$.lrSaveForm(top.$.rootUrl + '/PersonnelManagement/ADR_AddApply/SaveForm?keyValue=' + keyValue, postData, function (res) { | |||||
// 保存成功后才回调 | |||||
if (!!callBack) { | |||||
callBack(res, i); | |||||
} | |||||
}); | |||||
}; | |||||
page.init(); | |||||
} |
@@ -0,0 +1,44 @@ | |||||
@{ | |||||
ViewBag.Title = "补卡申请"; | |||||
Layout = "~/Views/Shared/_Index.cshtml"; | |||||
} | |||||
<div class="lr-layout " > | |||||
<div class="lr-layout-center"> | |||||
<div class="lr-layout-wrap lr-layout-wrap-notitle "> | |||||
<div class="lr-layout-tool"> | |||||
<div class="lr-layout-tool-left"> | |||||
<div class="lr-layout-tool-item"> | |||||
<div id="datesearch"></div> | |||||
</div> | |||||
<div class="lr-layout-tool-item"> | |||||
<div id="multiple_condition_query"> | |||||
<div class="lr-query-formcontent"> | |||||
<div class="col-xs-12 lr-form-item"> | |||||
<div class="lr-form-item-title">申请人</div> | |||||
<div id="UserNo"></div> | |||||
</div> | |||||
<div class="col-xs-12 lr-form-item"> | |||||
<div class="lr-form-item-title">考勤类型</div> | |||||
<div id="ADType"></div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<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> | |||||
</div> | |||||
<div class=" btn-group btn-group-sm" learun-authorize="yes"> | |||||
<a id="lr_add" class="btn btn-default"><i class="fa fa-plus"></i> 新增</a> | |||||
<a id="lr_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i> 编辑</a> | |||||
<a id="lr_delete" class="btn btn-default"><i class="fa fa-trash-o"></i> 删除</a> | |||||
<a id="lr_submit" class="btn btn-default"><i class="fa fa-plus"></i> 提交</a> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="lr-layout-body" id="gridtable"></div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
@Html.AppendJsFile("/Areas/PersonnelManagement/Views/ADR_AddApply/Index.js") |
@@ -0,0 +1,219 @@ | |||||
/* * 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架(http://www.learun.cn) | |||||
* Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||||
* 创建人:超级管理员 | |||||
* 日 期:2020-09-09 16:23 | |||||
* 描 述:补卡申请 | |||||
*/ | |||||
var refreshGirdData; | |||||
var bootstrap = function ($, learun) { | |||||
"use strict"; | |||||
var startTime; | |||||
var endTime; | |||||
var processId = ''; | |||||
var page = { | |||||
init: function () { | |||||
page.initGird(); | |||||
page.bind(); | |||||
}, | |||||
bind: function () { | |||||
// 时间搜索框 | |||||
$('#datesearch').lrdate({ | |||||
dfdata: [ | |||||
{ name: '今天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00') }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, | |||||
{ name: '近7天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'd', -6) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, | |||||
{ name: '近1个月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -1) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }, | |||||
{ name: '近3个月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -3) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } } | |||||
], | |||||
// 月 | |||||
mShow: false, | |||||
premShow: false, | |||||
// 季度 | |||||
jShow: false, | |||||
prejShow: false, | |||||
// 年 | |||||
ysShow: false, | |||||
yxShow: false, | |||||
preyShow: false, | |||||
yShow: false, | |||||
// 默认 | |||||
dfvalue: '1', | |||||
selectfn: function (begin, end) { | |||||
startTime = begin; | |||||
endTime = end; | |||||
page.search(); | |||||
} | |||||
}); | |||||
$('#multiple_condition_query').lrMultipleQuery(function (queryJson) { | |||||
page.search(queryJson); | |||||
}, 220, 400); | |||||
$('#UserNo').lrUserSelect(0); | |||||
$('#ADType').lrDataItemSelect({ code: 'ADType' }); | |||||
// 刷新 | |||||
$('#lr_refresh').on('click', function () { | |||||
location.reload(); | |||||
}); | |||||
// 新增 | |||||
$('#lr_add').on('click', function () { | |||||
learun.layerForm({ | |||||
id: 'form', | |||||
title: '新增', | |||||
url: top.$.rootUrl + '/PersonnelManagement/ADR_AddApply/Form', | |||||
width: 600, | |||||
height: 400, | |||||
callBack: function (id) { | |||||
var res = false; | |||||
// 验证数据 | |||||
res = top[id].validForm(); | |||||
// 保存数据 | |||||
if (res) { | |||||
//processId = learun.newGuid(); | |||||
//res = top[id].save(processId, refreshGirdData); | |||||
res = top[id].save('', function () { | |||||
page.search(); | |||||
}); | |||||
} | |||||
return res; | |||||
} | |||||
}); | |||||
}); | |||||
// 编辑 | |||||
$('#lr_edit').on('click', function () { | |||||
var keyValue = $('#gridtable').jfGridValue('ID'); | |||||
var PStatus = $('#gridtable').jfGridValue('PStatus'); | |||||
if (PStatus != 0) { | |||||
learun.alert.warning("申请已经提交,不能修改"); | |||||
return; | |||||
} | |||||
if (learun.checkrow(keyValue)) { | |||||
learun.layerForm({ | |||||
id: 'form', | |||||
title: '编辑', | |||||
url: top.$.rootUrl + '/PersonnelManagement/ADR_AddApply/Form?keyValue=' + keyValue, | |||||
width: 600, | |||||
height: 400, | |||||
callBack: function (id) { | |||||
var res = false; | |||||
// 验证数据 | |||||
res = top[id].validForm(); | |||||
// 保存数据 | |||||
if (res) { | |||||
res = top[id].save('', function () { | |||||
page.search(); | |||||
}); | |||||
} | |||||
return res; | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
// 删除 | |||||
$('#lr_delete').on('click', function () { | |||||
var keyValue = $('#gridtable').jfGridValue('ID'); | |||||
var PStatus = $('#gridtable').jfGridValue('PStatus'); | |||||
if (PStatus != 0) { | |||||
learun.alert.warning("申请已经提交,不能修改"); | |||||
return; | |||||
} | |||||
if (learun.checkrow(keyValue)) { | |||||
learun.layerConfirm('是否确认删除该项!', function (res) { | |||||
if (res) { | |||||
learun.deleteForm(top.$.rootUrl + '/PersonnelManagement/ADR_AddApply/DeleteForm', { keyValue: keyValue }, function () { | |||||
refreshGirdData(); | |||||
}); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
// 提交审核 | |||||
$('#lr_submit').on('click', function () { | |||||
var keyValue = $('#gridtable').jfGridValue('ID'); | |||||
var PStatus = $('#gridtable').jfGridValue('PStatus'); | |||||
if (PStatus != 0) { | |||||
learun.alert.warning("申请已经提交"); | |||||
return; | |||||
} | |||||
if (learun.checkrow(keyValue)) { | |||||
learun.layerConfirm('是否确认提交!', function (res) { | |||||
if (res) { | |||||
processId = learun.newGuid(); | |||||
learun.postForm(top.$.rootUrl + '/PersonnelManagement/ADR_AddApply/ChangeStatusById', { keyValue: keyValue, processId: processId }, function (res2) { | |||||
refreshGirdData(res2, {}); | |||||
}); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
}, | |||||
// 初始化列表 | |||||
initGird: function () { | |||||
$('#gridtable').lrAuthorizeJfGrid({ | |||||
url: top.$.rootUrl + '/PersonnelManagement/ADR_AddApply/GetPageList', | |||||
headData: [ | |||||
{ | |||||
label: "申请人", name: "UserNo", width: 100, align: "left", | |||||
formatterAsync: function (callback, value, row, op, $cell) { | |||||
learun.clientdata.getAsync('user', { | |||||
key: value, | |||||
callback: function (_data) { | |||||
callback(_data.name); | |||||
} | |||||
}); | |||||
} | |||||
}, | |||||
{ | |||||
label: "考勤类型", name: "ADType", width: 100, align: "left", | |||||
formatterAsync: function (callback, value, row, op, $cell) { | |||||
learun.clientdata.getAsync('dataItem', { | |||||
key: value, | |||||
code: 'ADType', | |||||
callback: function (_data) { | |||||
callback(_data.text); | |||||
} | |||||
}); | |||||
} | |||||
}, | |||||
{ label: "补卡时间", name: "AddTime", width: 100, align: "left" }, | |||||
{ | |||||
label: "状态", name: "PStatus", width: 100, align: "left", formatter: function (cellvalue) { | |||||
if (cellvalue === 1) { | |||||
return '<span class=\"label label-warning\">审批中</span>'; | |||||
} else if (cellvalue === 2) { | |||||
return '<span class=\"label label-success\">审批通过</span>'; | |||||
} else { | |||||
return '<span class=\"label label-default\" >草稿</span>'; | |||||
} | |||||
} | |||||
}, | |||||
{ label: "原因", name: "Remark", width: 100, align: "left" }, | |||||
], | |||||
mainId: 'ID', | |||||
isPage: true | |||||
}); | |||||
}, | |||||
search: function (param) { | |||||
param = param || {}; | |||||
param.StartTime = startTime; | |||||
param.EndTime = endTime; | |||||
$('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(param) }); | |||||
} | |||||
}; | |||||
refreshGirdData = function (res, postData) { | |||||
if (!!res) { | |||||
if (res.code == 200) { | |||||
// 发起流程 | |||||
var postData = { | |||||
schemeCode: 'ADR_AddApply',// 填写流程对应模板编号 | |||||
processId: processId, | |||||
level: '1', | |||||
}; | |||||
learun.httpAsync('Post', top.$.rootUrl + '/LR_NewWorkFlow/NWFProcess/CreateFlow', postData, function (data) { | |||||
learun.loading(false); | |||||
}); | |||||
} | |||||
page.search(); | |||||
} | |||||
}; | |||||
page.init(); | |||||
} |
@@ -802,6 +802,7 @@ | |||||
<Compile Include="Areas\EducationalAdministration\Controllers\ADR_DeviceController.cs" /> | <Compile Include="Areas\EducationalAdministration\Controllers\ADR_DeviceController.cs" /> | ||||
<Compile Include="Areas\EducationalAdministration\Controllers\ADR_DeviceLogController.cs" /> | <Compile Include="Areas\EducationalAdministration\Controllers\ADR_DeviceLogController.cs" /> | ||||
<Compile Include="Areas\PersonnelManagement\Controllers\ADR_RestrictionController.cs" /> | <Compile Include="Areas\PersonnelManagement\Controllers\ADR_RestrictionController.cs" /> | ||||
<Compile Include="Areas\PersonnelManagement\Controllers\ADR_AddApplyController.cs" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<Content Include="Areas\AdmissionsPlatform\Views\AP_OnlineUserInfo\RegistrateForm.js" /> | <Content Include="Areas\AdmissionsPlatform\Views\AP_OnlineUserInfo\RegistrateForm.js" /> | ||||
@@ -6063,6 +6064,10 @@ | |||||
<Content Include="Areas\PersonnelManagement\Views\ADR_Restriction\Index.js" /> | <Content Include="Areas\PersonnelManagement\Views\ADR_Restriction\Index.js" /> | ||||
<Content Include="Areas\PersonnelManagement\Views\ADR_Restriction\Form.cshtml" /> | <Content Include="Areas\PersonnelManagement\Views\ADR_Restriction\Form.cshtml" /> | ||||
<Content Include="Areas\PersonnelManagement\Views\ADR_Restriction\Form.js" /> | <Content Include="Areas\PersonnelManagement\Views\ADR_Restriction\Form.js" /> | ||||
<Content Include="Areas\PersonnelManagement\Views\ADR_AddApply\Index.cshtml" /> | |||||
<Content Include="Areas\PersonnelManagement\Views\ADR_AddApply\Index.js" /> | |||||
<Content Include="Areas\PersonnelManagement\Views\ADR_AddApply\Form.cshtml" /> | |||||
<Content Include="Areas\PersonnelManagement\Views\ADR_AddApply\Form.js" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<Folder Include="Areas\LR_Desktop\Models\" /> | <Folder Include="Areas\LR_Desktop\Models\" /> | ||||
@@ -24,6 +24,7 @@ | |||||
<typeAlias alias="SW_Ask_StudentMainMethod" type="Learun.Application.WorkFlow.SW_Ask_StudentMainMethod,Learun.Application.WorkFlow" /> | <typeAlias alias="SW_Ask_StudentMainMethod" type="Learun.Application.WorkFlow.SW_Ask_StudentMainMethod,Learun.Application.WorkFlow" /> | ||||
<typeAlias alias="Sys_SendFilePartyMethod" type="Learun.Application.WorkFlow.Sys_SendFilePartyMethod,Learun.Application.WorkFlow" /> | <typeAlias alias="Sys_SendFilePartyMethod" type="Learun.Application.WorkFlow.Sys_SendFilePartyMethod,Learun.Application.WorkFlow" /> | ||||
<typeAlias alias="Ass_ReceiveMethod" type="Learun.Application.WorkFlow.Ass_ReceiveMethod,Learun.Application.WorkFlow" /> | <typeAlias alias="Ass_ReceiveMethod" type="Learun.Application.WorkFlow.Ass_ReceiveMethod,Learun.Application.WorkFlow" /> | ||||
<typeAlias alias="ADR_AddApplyMethod" type="Learun.Application.WorkFlow.ADR_AddApplyMethod,Learun.Application.WorkFlow" /> | |||||
<!--任务调度器--> | <!--任务调度器--> | ||||
<typeAlias alias="ITSMethod" type="Learun.Application.Extention.TaskScheduling.ITsMethod,Learun.Application.Extention" /> | <typeAlias alias="ITSMethod" type="Learun.Application.Extention.TaskScheduling.ITsMethod,Learun.Application.Extention" /> | ||||
@@ -57,6 +58,7 @@ | |||||
<type type="IWorkFlowMethod" mapTo="SW_Ask_StudentMainMethod" name="SW_Ask_StudentMainMethod"></type> | <type type="IWorkFlowMethod" mapTo="SW_Ask_StudentMainMethod" name="SW_Ask_StudentMainMethod"></type> | ||||
<type type="IWorkFlowMethod" mapTo="Sys_SendFilePartyMethod" name="Sys_SendFilePartyMethod"></type> | <type type="IWorkFlowMethod" mapTo="Sys_SendFilePartyMethod" name="Sys_SendFilePartyMethod"></type> | ||||
<type type="IWorkFlowMethod" mapTo="Ass_ReceiveMethod" name="Ass_ReceiveMethod"></type> | <type type="IWorkFlowMethod" mapTo="Ass_ReceiveMethod" name="Ass_ReceiveMethod"></type> | ||||
<type type="IWorkFlowMethod" mapTo="ADR_AddApplyMethod" name="ADR_AddApplyMethod"></type> | |||||
<type type="IWorkFlowMethod" mapTo="WFFileRelease" name="wfFileRelease"></type> | <type type="IWorkFlowMethod" mapTo="WFFileRelease" name="wfFileRelease"></type> | ||||
</container> | </container> | ||||
@@ -537,6 +537,7 @@ | |||||
<Compile Include="EducationalAdministration\ADR_DeviceMap.cs" /> | <Compile Include="EducationalAdministration\ADR_DeviceMap.cs" /> | ||||
<Compile Include="EducationalAdministration\ADR_DeviceLogMap.cs" /> | <Compile Include="EducationalAdministration\ADR_DeviceLogMap.cs" /> | ||||
<Compile Include="PersonnelManagement\ADR_RestrictionMap.cs" /> | <Compile Include="PersonnelManagement\ADR_RestrictionMap.cs" /> | ||||
<Compile Include="PersonnelManagement\ADR_AddApplyMap.cs" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<ProjectReference Include="..\..\..\Learun.Application.Organization\Learun.Application.Organization.csproj"> | <ProjectReference Include="..\..\..\Learun.Application.Organization\Learun.Application.Organization.csproj"> | ||||
@@ -0,0 +1,29 @@ | |||||
using Learun.Application.TwoDevelopment.PersonnelManagement; | |||||
using System.Data.Entity.ModelConfiguration; | |||||
namespace Learun.Application.Mapping | |||||
{ | |||||
/// <summary> | |||||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||||
/// 创 建:超级管理员 | |||||
/// 日 期:2020-09-09 16:23 | |||||
/// 描 述:补卡申请 | |||||
/// </summary> | |||||
public class ADR_AddApplyMap : EntityTypeConfiguration<ADR_AddApplyEntity> | |||||
{ | |||||
public ADR_AddApplyMap() | |||||
{ | |||||
#region 表、主键 | |||||
//表 | |||||
this.ToTable("ADR_ADDAPPLY"); | |||||
//主键 | |||||
this.HasKey(t => t.ID); | |||||
#endregion | |||||
#region 配置关系 | |||||
#endregion | |||||
} | |||||
} | |||||
} | |||||
@@ -1568,6 +1568,10 @@ | |||||
<Compile Include="PersonnelManagement\ADR_Restriction\ADR_RestrictionService.cs" /> | <Compile Include="PersonnelManagement\ADR_Restriction\ADR_RestrictionService.cs" /> | ||||
<Compile Include="PersonnelManagement\ADR_Restriction\ADR_RestrictionBLL.cs" /> | <Compile Include="PersonnelManagement\ADR_Restriction\ADR_RestrictionBLL.cs" /> | ||||
<Compile Include="PersonnelManagement\ADR_Restriction\ADR_RestrictionIBLL.cs" /> | <Compile Include="PersonnelManagement\ADR_Restriction\ADR_RestrictionIBLL.cs" /> | ||||
<Compile Include="PersonnelManagement\ADR_AddApply\ADR_AddApplyEntity.cs" /> | |||||
<Compile Include="PersonnelManagement\ADR_AddApply\ADR_AddApplyService.cs" /> | |||||
<Compile Include="PersonnelManagement\ADR_AddApply\ADR_AddApplyBLL.cs" /> | |||||
<Compile Include="PersonnelManagement\ADR_AddApply\ADR_AddApplyIBLL.cs" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<ProjectReference Include="..\..\..\Learun.Application.Organization\Learun.Application.Organization.csproj"> | <ProjectReference Include="..\..\..\Learun.Application.Organization\Learun.Application.Organization.csproj"> | ||||
@@ -0,0 +1,191 @@ | |||||
using Learun.Util; | |||||
using System; | |||||
using System.Data; | |||||
using System.Collections.Generic; | |||||
namespace Learun.Application.TwoDevelopment.PersonnelManagement | |||||
{ | |||||
/// <summary> | |||||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||||
/// 创 建:超级管理员 | |||||
/// 日 期:2020-09-09 16:23 | |||||
/// 描 述:补卡申请 | |||||
/// </summary> | |||||
public class ADR_AddApplyBLL : ADR_AddApplyIBLL | |||||
{ | |||||
private ADR_AddApplyService aDR_AddApplyService = new ADR_AddApplyService(); | |||||
#region 获取数据 | |||||
/// <summary> | |||||
/// 获取页面显示列表数据 | |||||
/// </summary> | |||||
/// <param name="pagination">分页参数</param> | |||||
/// <param name="queryJson">查询参数</param> | |||||
/// <returns></returns> | |||||
public IEnumerable<ADR_AddApplyEntity> GetPageList(Pagination pagination, string queryJson) | |||||
{ | |||||
try | |||||
{ | |||||
return aDR_AddApplyService.GetPageList(pagination, queryJson); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowBusinessException(ex); | |||||
} | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 获取ADR_AddApply表实体数据 | |||||
/// </summary> | |||||
/// <param name="keyValue">主键</param> | |||||
/// <returns></returns> | |||||
public ADR_AddApplyEntity GetADR_AddApplyEntity(string keyValue) | |||||
{ | |||||
try | |||||
{ | |||||
return aDR_AddApplyService.GetADR_AddApplyEntity(keyValue); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowBusinessException(ex); | |||||
} | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 获取主表实体数据 | |||||
/// </summary> | |||||
/// <param name="processId">流程实例ID</param> | |||||
/// <returns></returns> | |||||
public ADR_AddApplyEntity GetEntityByProcessId(string processId) | |||||
{ | |||||
try | |||||
{ | |||||
return aDR_AddApplyService.GetEntityByProcessId(processId); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowBusinessException(ex); | |||||
} | |||||
} | |||||
} | |||||
#endregion | |||||
#region 提交数据 | |||||
/// <summary> | |||||
/// 删除实体数据 | |||||
/// </summary> | |||||
/// <param name="keyValue">主键</param> | |||||
public void DeleteEntity(string keyValue) | |||||
{ | |||||
try | |||||
{ | |||||
aDR_AddApplyService.DeleteEntity(keyValue); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowBusinessException(ex); | |||||
} | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 保存实体数据(新增、修改) | |||||
/// </summary> | |||||
/// <param name="keyValue">主键</param> | |||||
/// <param name="entity">实体</param> | |||||
public void SaveEntity(string keyValue, ADR_AddApplyEntity entity) | |||||
{ | |||||
try | |||||
{ | |||||
aDR_AddApplyService.SaveEntity(keyValue, entity); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowBusinessException(ex); | |||||
} | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 流程审批处理 | |||||
/// </summary> | |||||
/// <param name="keyValue">主键</param> | |||||
/// <param name="entity">实体</param> | |||||
public void ChangeStatusByProcessId(string processId, int status) | |||||
{ | |||||
try | |||||
{ | |||||
aDR_AddApplyService.ChangeStatusByProcessId(processId, status); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowBusinessException(ex); | |||||
} | |||||
} | |||||
} | |||||
public void ChangeStatusById(string keyValue, string processId) | |||||
{ | |||||
try | |||||
{ | |||||
aDR_AddApplyService.ChangeStatusById(keyValue, processId); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowBusinessException(ex); | |||||
} | |||||
} | |||||
} | |||||
#endregion | |||||
} | |||||
} |
@@ -0,0 +1,76 @@ | |||||
using Learun.Util; | |||||
using System; | |||||
using System.ComponentModel.DataAnnotations.Schema; | |||||
namespace Learun.Application.TwoDevelopment.PersonnelManagement | |||||
{ | |||||
/// <summary> | |||||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||||
/// 创 建:超级管理员 | |||||
/// 日 期:2020-09-09 16:23 | |||||
/// 描 述:补卡申请 | |||||
/// </summary> | |||||
public class ADR_AddApplyEntity | |||||
{ | |||||
#region 实体成员 | |||||
/// <summary> | |||||
/// 编号 | |||||
/// </summary> | |||||
[Column("ID")] | |||||
public string ID { get; set; } | |||||
/// <summary> | |||||
/// 补卡时间 | |||||
/// </summary> | |||||
[Column("ADDTIME")] | |||||
public DateTime? AddTime { get; set; } | |||||
/// <summary> | |||||
/// 申请人 | |||||
/// </summary> | |||||
[Column("USERNO")] | |||||
public string UserNo { get; set; } | |||||
/// <summary> | |||||
/// 流程id | |||||
/// </summary> | |||||
[Column("PROCESSID")] | |||||
public string ProcessId { get; set; } | |||||
/// <summary> | |||||
/// 流程状态 | |||||
/// </summary> | |||||
[Column("PSTATUS")] | |||||
public int? PStatus { get; set; } | |||||
/// <summary> | |||||
/// 理由 | |||||
/// </summary> | |||||
[Column("REMARK")] | |||||
public string Remark { get; set; } | |||||
/// <summary> | |||||
/// 考勤类型 | |||||
/// </summary> | |||||
[Column("ADTYPE")] | |||||
public string ADType { get; set; } | |||||
#endregion | |||||
#region 扩展操作 | |||||
/// <summary> | |||||
/// 新增调用 | |||||
/// </summary> | |||||
public void Create() | |||||
{ | |||||
this.ID = Guid.NewGuid().ToString(); | |||||
this.PStatus = 0; | |||||
} | |||||
/// <summary> | |||||
/// 编辑调用 | |||||
/// </summary> | |||||
/// <param name="keyValue"></param> | |||||
public void Modify(string keyValue) | |||||
{ | |||||
this.ID = keyValue; | |||||
} | |||||
#endregion | |||||
#region 扩展字段 | |||||
#endregion | |||||
} | |||||
} | |||||
@@ -0,0 +1,61 @@ | |||||
using Learun.Util; | |||||
using System.Data; | |||||
using System.Collections.Generic; | |||||
namespace Learun.Application.TwoDevelopment.PersonnelManagement | |||||
{ | |||||
/// <summary> | |||||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||||
/// 创 建:超级管理员 | |||||
/// 日 期:2020-09-09 16:23 | |||||
/// 描 述:补卡申请 | |||||
/// </summary> | |||||
public interface ADR_AddApplyIBLL | |||||
{ | |||||
#region 获取数据 | |||||
/// <summary> | |||||
/// 获取页面显示列表数据 | |||||
/// </summary> | |||||
/// <param name="pagination">分页参数</param> | |||||
/// <param name="queryJson">查询参数</param> | |||||
/// <returns></returns> | |||||
IEnumerable<ADR_AddApplyEntity> GetPageList(Pagination pagination, string queryJson); | |||||
/// <summary> | |||||
/// 获取ADR_AddApply表实体数据 | |||||
/// </summary> | |||||
/// <param name="keyValue">主键</param> | |||||
/// <returns></returns> | |||||
ADR_AddApplyEntity GetADR_AddApplyEntity(string keyValue); | |||||
/// <summary> | |||||
/// 获取主表实体数据 | |||||
/// </summary> | |||||
/// <param name="processId">流程实例ID</param> | |||||
/// <returns></returns> | |||||
ADR_AddApplyEntity GetEntityByProcessId(string processId); | |||||
#endregion | |||||
#region 提交数据 | |||||
/// <summary> | |||||
/// 删除实体数据 | |||||
/// </summary> | |||||
/// <param name="keyValue">主键</param> | |||||
void DeleteEntity(string keyValue); | |||||
/// <summary> | |||||
/// 保存实体数据(新增、修改) | |||||
/// </summary> | |||||
/// <param name="keyValue">主键</param> | |||||
/// <param name="entity">实体</param> | |||||
void SaveEntity(string keyValue, ADR_AddApplyEntity entity); | |||||
void ChangeStatusByProcessId(string processId, int status); | |||||
#endregion | |||||
/// <summary> | |||||
/// 修改审批状态 | |||||
/// </summary> | |||||
/// <param name="keyValue"></param> | |||||
/// <param name="processId"></param> | |||||
void ChangeStatusById(string keyValue, string processId); | |||||
} | |||||
} |
@@ -0,0 +1,259 @@ | |||||
using Dapper; | |||||
using Learun.DataBase.Repository; | |||||
using Learun.Util; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Data; | |||||
using System.Text; | |||||
using Learun.Application.TwoDevelopment.LogisticsManagement; | |||||
namespace Learun.Application.TwoDevelopment.PersonnelManagement | |||||
{ | |||||
/// <summary> | |||||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||||
/// 创 建:超级管理员 | |||||
/// 日 期:2020-09-09 16:23 | |||||
/// 描 述:补卡申请 | |||||
/// </summary> | |||||
public class ADR_AddApplyService : RepositoryFactory | |||||
{ | |||||
#region 获取数据 | |||||
/// <summary> | |||||
/// 获取页面显示列表数据 | |||||
/// </summary> | |||||
/// <param name="pagination">分页参数</param> | |||||
/// <param name="queryJson">查询参数</param> | |||||
/// <returns></returns> | |||||
public IEnumerable<ADR_AddApplyEntity> GetPageList(Pagination pagination, string queryJson) | |||||
{ | |||||
try | |||||
{ | |||||
var strSql = new StringBuilder(); | |||||
strSql.Append("SELECT "); | |||||
strSql.Append(@" | |||||
t.ID, | |||||
t.UserNo, | |||||
t.ADType, | |||||
t.AddTime, | |||||
t.PStatus, | |||||
t.Remark | |||||
"); | |||||
strSql.Append(" FROM ADR_AddApply t "); | |||||
strSql.Append(" WHERE 1=1 "); | |||||
var queryParam = queryJson.ToJObject(); | |||||
// 虚拟参数 | |||||
var dp = new DynamicParameters(new { }); | |||||
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) | |||||
{ | |||||
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime); | |||||
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime); | |||||
strSql.Append(" AND ( t.AddTime >= @startTime AND t.AddTime <= @endTime ) "); | |||||
} | |||||
if (!queryParam["UserNo"].IsEmpty()) | |||||
{ | |||||
dp.Add("UserNo", queryParam["UserNo"].ToString(), DbType.String); | |||||
strSql.Append(" AND t.UserNo = @UserNo "); | |||||
} | |||||
if (!queryParam["ADType"].IsEmpty()) | |||||
{ | |||||
dp.Add("ADType", queryParam["ADType"].ToString(), DbType.String); | |||||
strSql.Append(" AND t.ADType = @ADType "); | |||||
} | |||||
return this.BaseRepository("CollegeMIS").FindList<ADR_AddApplyEntity>(strSql.ToString(), dp, pagination); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowServiceException(ex); | |||||
} | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 获取ADR_AddApply表实体数据 | |||||
/// </summary> | |||||
/// <param name="keyValue">主键</param> | |||||
/// <returns></returns> | |||||
public ADR_AddApplyEntity GetADR_AddApplyEntity(string keyValue) | |||||
{ | |||||
try | |||||
{ | |||||
return this.BaseRepository("CollegeMIS").FindEntity<ADR_AddApplyEntity>(keyValue); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowServiceException(ex); | |||||
} | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 获取主表实体数据 | |||||
/// </summary> | |||||
/// <param name="processId">流程实例ID</param> | |||||
/// <returns></returns> | |||||
public ADR_AddApplyEntity GetEntityByProcessId(string processId) | |||||
{ | |||||
try | |||||
{ | |||||
return this.BaseRepository("CollegeMIS").FindEntity<ADR_AddApplyEntity>(t => t.ProcessId == processId); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowServiceException(ex); | |||||
} | |||||
} | |||||
} | |||||
#endregion | |||||
#region 提交数据 | |||||
/// <summary> | |||||
/// 删除实体数据 | |||||
/// </summary> | |||||
/// <param name="keyValue">主键</param> | |||||
public void DeleteEntity(string keyValue) | |||||
{ | |||||
try | |||||
{ | |||||
this.BaseRepository("CollegeMIS").Delete<ADR_AddApplyEntity>(t => t.ID == keyValue); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowServiceException(ex); | |||||
} | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 保存实体数据(新增、修改) | |||||
/// </summary> | |||||
/// <param name="keyValue">主键</param> | |||||
/// <param name="entity">实体</param> | |||||
/// <returns></returns> | |||||
public void SaveEntity(string keyValue, ADR_AddApplyEntity entity) | |||||
{ | |||||
try | |||||
{ | |||||
if (!string.IsNullOrEmpty(keyValue)) | |||||
{ | |||||
entity.Modify(keyValue); | |||||
this.BaseRepository("CollegeMIS").Update(entity); | |||||
} | |||||
else | |||||
{ | |||||
entity.Create(); | |||||
this.BaseRepository("CollegeMIS").Insert(entity); | |||||
} | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowServiceException(ex); | |||||
} | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 流程审批处理 | |||||
/// </summary> | |||||
/// <param name="processId">流程id</param> | |||||
/// <param name="status">处理状态 2 通过 0 未通过</param> | |||||
/// <returns></returns> | |||||
public void ChangeStatusByProcessId(string processId, int status) | |||||
{ | |||||
var db = this.BaseRepository("CollegeMIS").BeginTrans(); | |||||
try | |||||
{ | |||||
var addEntity = db.FindEntity<ADR_AddApplyEntity>(a => a.ProcessId == processId); | |||||
if (null != addEntity) | |||||
{ | |||||
var AddTime = addEntity.AddTime.ToDate(); | |||||
var recordEntity = new ADR_RecordEntity() | |||||
{ | |||||
ADYear = AddTime.Year.ToString(), | |||||
ADMonth = AddTime.Month.ToString(), | |||||
ADDay = AddTime.Day.ToString(), | |||||
ClockTime = AddTime, | |||||
ADTime = AddTime, | |||||
ADType = addEntity.ADType, | |||||
UserNo = addEntity.UserNo, | |||||
ClockStatus = "1", | |||||
}; | |||||
recordEntity.Create(); | |||||
addEntity.PStatus = status; | |||||
db.Insert(recordEntity); | |||||
db.Update(addEntity); | |||||
db.Commit(); | |||||
} | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
db.Rollback(); | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowServiceException(ex); | |||||
} | |||||
} | |||||
} | |||||
#endregion | |||||
public void ChangeStatusById(string keyValue, string processId) | |||||
{ | |||||
try | |||||
{ | |||||
var addEntity = this.BaseRepository("CollegeMIS").FindEntity<ADR_AddApplyEntity>(a => a.ID == keyValue); | |||||
addEntity.ProcessId = processId; | |||||
addEntity.PStatus = 1; | |||||
this.BaseRepository("CollegeMIS").Update(addEntity); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
if (ex is ExceptionEx) | |||||
{ | |||||
throw; | |||||
} | |||||
else | |||||
{ | |||||
throw ExceptionEx.ThrowServiceException(ex); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} |
@@ -94,6 +94,7 @@ | |||||
<Compile Include="Delegate\NWFDelegateRuleEntity.cs" /> | <Compile Include="Delegate\NWFDelegateRuleEntity.cs" /> | ||||
<Compile Include="Delegate\NWFDelegateService.cs" /> | <Compile Include="Delegate\NWFDelegateService.cs" /> | ||||
<Compile Include="NodeMethod\ArrangeLessonTermAttemperMethod.cs" /> | <Compile Include="NodeMethod\ArrangeLessonTermAttemperMethod.cs" /> | ||||
<Compile Include="NodeMethod\ADR_AddApplyMethod.cs" /> | |||||
<Compile Include="NodeMethod\Ass_ReceiveMethod.cs" /> | <Compile Include="NodeMethod\Ass_ReceiveMethod.cs" /> | ||||
<Compile Include="NodeMethod\SW_Ask_StudentMainMethod.cs" /> | <Compile Include="NodeMethod\SW_Ask_StudentMainMethod.cs" /> | ||||
<Compile Include="NodeMethod\SW_Ask_TypeMethod.cs" /> | <Compile Include="NodeMethod\SW_Ask_TypeMethod.cs" /> | ||||
@@ -0,0 +1,28 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Text; | |||||
using System.Threading.Tasks; | |||||
using Learun.Application.TwoDevelopment.AssetManagementSystem; | |||||
using Learun.Application.TwoDevelopment.PersonnelManagement; | |||||
namespace Learun.Application.WorkFlow | |||||
{ | |||||
public class ADR_AddApplyMethod : IWorkFlowMethod | |||||
{ | |||||
ADR_AddApplyIBLL asset = new ADR_AddApplyBLL(); | |||||
public void Execute(WfMethodParameter parameter) | |||||
{ | |||||
if (parameter.code == "agree") | |||||
{ | |||||
asset.ChangeStatusByProcessId(parameter.processId, 2); | |||||
} | |||||
else | |||||
{ | |||||
asset.ChangeStatusByProcessId(parameter.processId, 0); | |||||
} | |||||
} | |||||
} | |||||
} |
@@ -128,5 +128,15 @@ | |||||
<Analyzer Include="..\packages\Microsoft.DependencyValidation.Analyzers.0.10.0\analyzers\dotnet\cs\Microsoft.DependencyValidation.Analyzers.resources.dll" /> | <Analyzer Include="..\packages\Microsoft.DependencyValidation.Analyzers.0.10.0\analyzers\dotnet\cs\Microsoft.DependencyValidation.Analyzers.resources.dll" /> | ||||
<Analyzer Include="..\packages\Microsoft.DependencyValidation.Analyzers.0.10.0\analyzers\dotnet\Microsoft.DependencyValidation.Analyzers.dll" /> | <Analyzer Include="..\packages\Microsoft.DependencyValidation.Analyzers.0.10.0\analyzers\dotnet\Microsoft.DependencyValidation.Analyzers.dll" /> | ||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | |||||
<ProjectReference Include="..\Learun.Framework.Module\Learun.Db\Learun.DataBase.EF.Sqlserver\Learun.DataBase.SqlServer.csproj"> | |||||
<Project>{890532f8-5205-4ee9-965c-84500cad24de}</Project> | |||||
<Name>Learun.DataBase.SqlServer</Name> | |||||
</ProjectReference> | |||||
<ProjectReference Include="..\Learun.Framework.Module\Learun.Db\Learun.DataBase\Learun.DataBase.csproj"> | |||||
<Project>{c329f9e1-4327-4769-9d08-07e6fec41005}</Project> | |||||
<Name>Learun.DataBase</Name> | |||||
</ProjectReference> | |||||
</ItemGroup> | |||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> | <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> | ||||
</Project> | </Project> |
@@ -110,6 +110,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Learun.Application.Message" | |||||
EndProject | EndProject | ||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "05 Doc文档", "05 Doc文档", "{78B470D3-19E2-474B-B3E1-DFCEE1329F87}" | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "05 Doc文档", "05 Doc文档", "{78B470D3-19E2-474B-B3E1-DFCEE1329F87}" | ||||
ProjectSection(SolutionItems) = preProject | ProjectSection(SolutionItems) = preProject | ||||
Doc文档\数字化智慧校园3.0部署手册V1.3.docx = Doc文档\数字化智慧校园3.0部署手册V1.3.docx | |||||
Doc文档\数字化智慧校园基础信息接口V1.0.docx = Doc文档\数字化智慧校园基础信息接口V1.0.docx | Doc文档\数字化智慧校园基础信息接口V1.0.docx = Doc文档\数字化智慧校园基础信息接口V1.0.docx | ||||
Doc文档\数字化智慧校园统一身份认证对接说明V1.0.docx = Doc文档\数字化智慧校园统一身份认证对接说明V1.0.docx | Doc文档\数字化智慧校园统一身份认证对接说明V1.0.docx = Doc文档\数字化智慧校园统一身份认证对接说明V1.0.docx | ||||
EndProjectSection | EndProjectSection | ||||
@@ -1595,10 +1596,6 @@ Global | |||||
{36083FBB-CE7F-4EE0-8459-C4B60A2DD070} = {16DDB25D-3101-47A2-BDC8-161954FD77FA} | {36083FBB-CE7F-4EE0-8459-C4B60A2DD070} = {16DDB25D-3101-47A2-BDC8-161954FD77FA} | ||||
{DBB22F9E-ED75-40EB-A091-717D42C65A9B} = {29DFF52B-8455-4EA1-8798-3AEE210D9372} | {DBB22F9E-ED75-40EB-A091-717D42C65A9B} = {29DFF52B-8455-4EA1-8798-3AEE210D9372} | ||||
EndGlobalSection | EndGlobalSection | ||||
GlobalSection(ExtensibilityGlobals) = postSolution | |||||
EnterpriseLibraryConfigurationToolBinariesPath = packages\Unity.2.1.505.0\lib\NET35 | |||||
SolutionGuid = {968C278F-4142-4DFF-96B0-B3D70A649451} | |||||
EndGlobalSection | |||||
GlobalSection(ExtensibilityGlobals) = postSolution | GlobalSection(ExtensibilityGlobals) = postSolution | ||||
SolutionGuid = {968C278F-4142-4DFF-96B0-B3D70A649451} | SolutionGuid = {968C278F-4142-4DFF-96B0-B3D70A649451} | ||||
EnterpriseLibraryConfigurationToolBinariesPath = packages\Unity.2.1.505.0\lib\NET35 | EnterpriseLibraryConfigurationToolBinariesPath = packages\Unity.2.1.505.0\lib\NET35 | ||||