1
0

2 Incheckningar 681408a863 ... 12b03388a8

Upphovsman SHA1 Meddelande Datum
  lxl 12b03388a8 . 1 år sedan
  lxl c201a1e72b 广东警官学院资源文件 1 år sedan
42 ändrade filer med 2876 tillägg och 35 borttagningar
  1. 1 0
      .gitignore
  2. 360 0
      EMIS.ResourcesGDJG/DataAnnotations/Label.Designer.cs
  3. 219 0
      EMIS.ResourcesGDJG/DataAnnotations/Label.resx
  4. 98 0
      EMIS.ResourcesGDJG/EMIS.ResourcesGDJG.csproj
  5. 73 0
      EMIS.ResourcesGDJG/Images/Images.Designer.cs
  6. 127 0
      EMIS.ResourcesGDJG/Images/Images.resx
  7. 36 0
      EMIS.ResourcesGDJG/Properties/AssemblyInfo.cs
  8. BIN
      EMIS.ResourcesGDJG/Resources/login_02.png
  9. BIN
      EMIS.ResourcesGDJG/Resources/login_02.psd
  10. BIN
      EMIS.ResourcesGDJG/Resources/logo.png
  11. BIN
      EMIS.ResourcesGDJG/Resources/logo.psd
  12. 99 0
      EMIS.ResourcesGDJG/Strings.Designer.cs
  13. 132 0
      EMIS.ResourcesGDJG/Strings.resx
  14. BIN
      EMIS.ResourcesTest/Resources/login_02.png
  15. BIN
      EMIS.ResourcesTest/Resources/logo.PNG
  16. 1 0
      EMIS.Web/EMIS.Web.csproj
  17. 8 0
      EMIS.Web/Scripts/Business/Studentfile/Student.js
  18. 12 12
      EMIS.Web/Web.config
  19. 30 12
      NewEMIS.sln
  20. 41 0
      学校扩展文件/EMIS.ExtensionLogic.GDJG/DataLogic/ExaminationManage/RoomSettingDAL.cs
  21. 112 0
      学校扩展文件/EMIS.ExtensionLogic.GDJG/EMIS.ExtensionLogic.GDJG.csproj
  22. 36 0
      学校扩展文件/EMIS.ExtensionLogic.GDJG/Properties/AssemblyInfo.cs
  23. 60 0
      学校扩展文件/EMIS.ExtensionLogic.GDJG/ServiceLogic/DegreeManage/DegreeListServices.cs
  24. 677 0
      学校扩展文件/EMIS.ExtensionLogic.GDJG/ServiceLogic/EnrollManage/NewStudentCollegeServices.cs
  25. 419 0
      学校扩展文件/EMIS.ExtensionLogic.GDJG/ServiceLogic/EnrollManage/RecruitSpecialtyServices.cs
  26. 55 0
      学校扩展文件/EMIS.ExtensionLogic.GDJG/ServiceLogic/GraduationManage/GraduationApplyServices.cs
  27. 71 0
      学校扩展文件/EMIS.ExtensionLogic.GDJG/ServiceLogic/GraduationManage/GraduationListServices.cs
  28. 128 0
      学校扩展文件/EMIS.ExtensionLogic.GDJG/ServiceLogic/SystemManage/UserServices.cs
  29. 40 0
      学校扩展文件/EMIS.ExtensionLogic.GDJG/ViewModel/EducationManage/EducationMissionClassViewMetadataType.cs
  30. 19 0
      学校扩展文件/EMIS.ExtensionLogic.GDJG/ViewModel/StaffViewMetadataType.cs
  31. 11 0
      学校扩展文件/EMIS.ExtensionLogic.GDJG/app.config
  32. 0 0
      学校扩展文件/EMIS.ExtensionLogic.LCNX/App.config
  33. 0 0
      学校扩展文件/EMIS.ExtensionLogic.LCNX/DataLogic/ExaminationManage/ExaminationPLanDAL.cs
  34. 11 11
      EMIS.ExtensionLogic.LCNX/EMIS.ExtensionLogic.LCNX.csproj
  35. 0 0
      学校扩展文件/EMIS.ExtensionLogic.LCNX/Properties/AssemblyInfo.cs
  36. 0 0
      学校扩展文件/EMIS.ExtensionLogic.LCNX/ServiceLogic/DegreeManage/DegreeListServices.cs
  37. 0 0
      学校扩展文件/EMIS.ExtensionLogic.LCNX/ServiceLogic/EnrollManage/NewStudentCollegeServices.cs
  38. 0 0
      学校扩展文件/EMIS.ExtensionLogic.LCNX/ServiceLogic/EnrollManage/RecruitSpecialtyServices.cs
  39. 0 0
      学校扩展文件/EMIS.ExtensionLogic.LCNX/ServiceLogic/ExaminationManage/ExaminationPlanServices.cs
  40. 0 0
      学校扩展文件/EMIS.ExtensionLogic.LCNX/ServiceLogic/GraduationManage/GraduationApplyServices.cs
  41. 0 0
      学校扩展文件/EMIS.ExtensionLogic.LCNX/ServiceLogic/GraduationManage/GraduationListServices.cs
  42. 0 0
      学校扩展文件/EMIS.ExtensionLogic.LCNX/ServiceLogic/StudentManage/StudentServices.cs

+ 1 - 0
.gitignore

@@ -55,3 +55,4 @@
 /EMIS.ResourcesGDSS/bin/Release
 /EMIS.ResourcesTest/bin/Release
 /EMIS.Services/bin/Release
+/EMIS.ResourcesGDJG/obj

+ 360 - 0
EMIS.ResourcesGDJG/DataAnnotations/Label.Designer.cs

@@ -0,0 +1,360 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     此代码由工具生成。
+//     运行时版本:4.0.30319.42000
+//
+//     对此文件的更改可能会导致不正确的行为,并且如果
+//     重新生成代码,这些更改将会丢失。
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace EMIS.Resources.DataAnnotations {
+    using System;
+    
+    
+    /// <summary>
+    ///   一个强类型的资源类,用于查找本地化的字符串等。
+    /// </summary>
+    // 此类是由 StronglyTypedResourceBuilder
+    // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
+    // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
+    // (以 /str 作为命令选项),或重新生成 VS 项目。
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    public class Label {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Label() {
+        }
+        
+        /// <summary>
+        ///   返回此类使用的缓存的 ResourceManager 实例。
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        public static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EMIS.Resources.DataAnnotations.Label", typeof(Label).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   重写当前线程的 CurrentUICulture 属性,对
+        ///   使用此强类型资源类的所有资源查找执行重写。
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        public static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 校区 的本地化字符串。
+        /// </summary>
+        public static string Campus {
+            get {
+                return ResourceManager.GetString("Campus", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 校区代码 的本地化字符串。
+        /// </summary>
+        public static string CampusCode {
+            get {
+                return ResourceManager.GetString("CampusCode", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 校区ID 的本地化字符串。
+        /// </summary>
+        public static string CampusID {
+            get {
+                return ResourceManager.GetString("CampusID", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 校区名称 的本地化字符串。
+        /// </summary>
+        public static string CampusName {
+            get {
+                return ResourceManager.GetString("CampusName", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 校区简称 的本地化字符串。
+        /// </summary>
+        public static string CampusSimpleName {
+            get {
+                return ResourceManager.GetString("CampusSimpleName", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 教学点 的本地化字符串。
+        /// </summary>
+        public static string College {
+            get {
+                return ResourceManager.GetString("College", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 教学点代码 的本地化字符串。
+        /// </summary>
+        public static string CollegeCode {
+            get {
+                return ResourceManager.GetString("CollegeCode", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 教学点数 的本地化字符串。
+        /// </summary>
+        public static string CollegeCount {
+            get {
+                return ResourceManager.GetString("CollegeCount", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 教学点ID 的本地化字符串。
+        /// </summary>
+        public static string CollegeID {
+            get {
+                return ResourceManager.GetString("CollegeID", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 教学点名称 的本地化字符串。
+        /// </summary>
+        public static string CollegeName {
+            get {
+                return ResourceManager.GetString("CollegeName", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 教学点排名 的本地化字符串。
+        /// </summary>
+        public static string CollegeRanking {
+            get {
+                return ResourceManager.GetString("CollegeRanking", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 开课校区 的本地化字符串。
+        /// </summary>
+        public static string CourseCampus {
+            get {
+                return ResourceManager.GetString("CourseCampus", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 开课校区ID 的本地化字符串。
+        /// </summary>
+        public static string CourseCampusID {
+            get {
+                return ResourceManager.GetString("CourseCampusID", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 开课校区代码 的本地化字符串。
+        /// </summary>
+        public static string CourseCampusNo {
+            get {
+                return ResourceManager.GetString("CourseCampusNo", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 开课教学点 的本地化字符串。
+        /// </summary>
+        public static string CourseCollege {
+            get {
+                return ResourceManager.GetString("CourseCollege", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 开课教学点ID 的本地化字符串。
+        /// </summary>
+        public static string CourseCollegeID {
+            get {
+                return ResourceManager.GetString("CourseCollegeID", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 开课教学点代码 的本地化字符串。
+        /// </summary>
+        public static string CourseCollegeNo {
+            get {
+                return ResourceManager.GetString("CourseCollegeNo", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 培养层次 的本地化字符串。
+        /// </summary>
+        public static string CultureModel {
+            get {
+                return ResourceManager.GetString("CultureModel", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 培养层次 的本地化字符串。
+        /// </summary>
+        public static string CultureModelName {
+            get {
+                return ResourceManager.GetString("CultureModelName", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 培养层次 的本地化字符串。
+        /// </summary>
+        public static string EducationID {
+            get {
+                return ResourceManager.GetString("EducationID", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 培养层次 的本地化字符串。
+        /// </summary>
+        public static string EducationName {
+            get {
+                return ResourceManager.GetString("EducationName", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 院系评分 的本地化字符串。
+        /// </summary>
+        public static string EvaluationCollegeScore {
+            get {
+                return ResourceManager.GetString("EvaluationCollegeScore", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 学生评分 的本地化字符串。
+        /// </summary>
+        public static string EvaluationStudentScore {
+            get {
+                return ResourceManager.GetString("EvaluationStudentScore", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 是否必修课 的本地化字符串。
+        /// </summary>
+        public static string IsRequired {
+            get {
+                return ResourceManager.GetString("IsRequired", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 地址: 的本地化字符串。
+        /// </summary>
+        public static string LoginBottomLine1 {
+            get {
+                return ResourceManager.GetString("LoginBottomLine1", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Copyright  © 广东警官学院 All Rights Reserved 的本地化字符串。
+        /// </summary>
+        public static string LoginBottomLine2 {
+            get {
+                return ResourceManager.GetString("LoginBottomLine2", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 平时成绩 的本地化字符串。
+        /// </summary>
+        public static string Peacetime {
+            get {
+                return ResourceManager.GetString("Peacetime", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 实验成绩 的本地化字符串。
+        /// </summary>
+        public static string Technique {
+            get {
+                return ResourceManager.GetString("Technique", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 期末成绩 的本地化字符串。
+        /// </summary>
+        public static string Theoretical {
+            get {
+                return ResourceManager.GetString("Theoretical", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 广东警官学院继续教育学院教务综合管理平台 的本地化字符串。
+        /// </summary>
+        public static string Title {
+            get {
+                return ResourceManager.GetString("Title", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 广东警官学院继续教育学院 的本地化字符串。
+        /// </summary>
+        public static string UniversityInscribe {
+            get {
+                return ResourceManager.GetString("UniversityInscribe", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 广东警官学院继续教育学院 的本地化字符串。
+        /// </summary>
+        public static string UniversityName {
+            get {
+                return ResourceManager.GetString("UniversityName", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 使用教学点 的本地化字符串。
+        /// </summary>
+        public static string UsingCollege {
+            get {
+                return ResourceManager.GetString("UsingCollege", resourceCulture);
+            }
+        }
+    }
+}

+ 219 - 0
EMIS.ResourcesGDJG/DataAnnotations/Label.resx

@@ -0,0 +1,219 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="Campus" xml:space="preserve">
+    <value>校区</value>
+  </data>
+  <data name="CampusCode" xml:space="preserve">
+    <value>校区代码</value>
+  </data>
+  <data name="CampusID" xml:space="preserve">
+    <value>校区ID</value>
+  </data>
+  <data name="CampusName" xml:space="preserve">
+    <value>校区名称</value>
+  </data>
+  <data name="CampusSimpleName" xml:space="preserve">
+    <value>校区简称</value>
+  </data>
+  <data name="College" xml:space="preserve">
+    <value>教学点</value>
+  </data>
+  <data name="CollegeCode" xml:space="preserve">
+    <value>教学点代码</value>
+  </data>
+  <data name="CollegeCount" xml:space="preserve">
+    <value>教学点数</value>
+  </data>
+  <data name="CollegeID" xml:space="preserve">
+    <value>教学点ID</value>
+  </data>
+  <data name="CollegeName" xml:space="preserve">
+    <value>教学点名称</value>
+  </data>
+  <data name="CollegeRanking" xml:space="preserve">
+    <value>教学点排名</value>
+  </data>
+  <data name="CourseCampus" xml:space="preserve">
+    <value>开课校区</value>
+  </data>
+  <data name="CourseCampusID" xml:space="preserve">
+    <value>开课校区ID</value>
+  </data>
+  <data name="CourseCampusNo" xml:space="preserve">
+    <value>开课校区代码</value>
+  </data>
+  <data name="CourseCollege" xml:space="preserve">
+    <value>开课教学点</value>
+  </data>
+  <data name="CourseCollegeID" xml:space="preserve">
+    <value>开课教学点ID</value>
+  </data>
+  <data name="CourseCollegeNo" xml:space="preserve">
+    <value>开课教学点代码</value>
+  </data>
+  <data name="CultureModel" xml:space="preserve">
+    <value>培养层次</value>
+  </data>
+  <data name="CultureModelName" xml:space="preserve">
+    <value>培养层次</value>
+  </data>
+  <data name="EducationID" xml:space="preserve">
+    <value>培养层次</value>
+  </data>
+  <data name="EducationName" xml:space="preserve">
+    <value>培养层次</value>
+  </data>
+  <data name="EvaluationCollegeScore" xml:space="preserve">
+    <value>院系评分</value>
+  </data>
+  <data name="EvaluationStudentScore" xml:space="preserve">
+    <value>学生评分</value>
+  </data>
+  <data name="IsRequired" xml:space="preserve">
+    <value>是否必修课</value>
+  </data>
+  <data name="LoginBottomLine1" xml:space="preserve">
+    <value>地址:</value>
+  </data>
+  <data name="LoginBottomLine2" xml:space="preserve">
+    <value>Copyright  © 广东警官学院 All Rights Reserved</value>
+  </data>
+  <data name="Peacetime" xml:space="preserve">
+    <value>平时成绩</value>
+  </data>
+  <data name="Technique" xml:space="preserve">
+    <value>实验成绩</value>
+  </data>
+  <data name="Theoretical" xml:space="preserve">
+    <value>期末成绩</value>
+  </data>
+  <data name="Title" xml:space="preserve">
+    <value>广东警官学院继续教育学院教务综合管理平台</value>
+  </data>
+  <data name="UniversityInscribe" xml:space="preserve">
+    <value>广东警官学院继续教育学院</value>
+  </data>
+  <data name="UniversityName" xml:space="preserve">
+    <value>广东警官学院继续教育学院</value>
+  </data>
+  <data name="UsingCollege" xml:space="preserve">
+    <value>使用教学点</value>
+  </data>
+</root>

+ 98 - 0
EMIS.ResourcesGDJG/EMIS.ResourcesGDJG.csproj

@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{0CFF1257-CBE5-4865-8DA7-BE9338085DD8}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>EMIS.Resources</RootNamespace>
+    <AssemblyName>EMIS.Resources</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <SccProjectName>
+    </SccProjectName>
+    <SccLocalPath>
+    </SccLocalPath>
+    <SccAuxPath>
+    </SccAuxPath>
+    <SccProvider>
+    </SccProvider>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>..\EMIS.Web\bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <PlatformTarget>AnyCPU</PlatformTarget>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="DataAnnotations\Label.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Label.resx</DependentUpon>
+    </Compile>
+    <Compile Include="Images\Images.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Images.resx</DependentUpon>
+    </Compile>
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="Strings.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Strings.resx</DependentUpon>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="DataAnnotations\Label.resx">
+      <Generator>PublicResXFileCodeGenerator</Generator>
+      <LastGenOutput>Label.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Images\Images.resx">
+      <Generator>PublicResXFileCodeGenerator</Generator>
+      <LastGenOutput>Images.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Strings.resx">
+      <Generator>PublicResXFileCodeGenerator</Generator>
+      <LastGenOutput>Strings.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\login_02.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="Resources\logo.png" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

+ 73 - 0
EMIS.ResourcesGDJG/Images/Images.Designer.cs

@@ -0,0 +1,73 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     此代码由工具生成。
+//     运行时版本:4.0.30319.42000
+//
+//     对此文件的更改可能会导致不正确的行为,并且如果
+//     重新生成代码,这些更改将会丢失。
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace EMIS.Resources.Images {
+    using System;
+    
+    
+    /// <summary>
+    ///   一个强类型的资源类,用于查找本地化的字符串等。
+    /// </summary>
+    // 此类是由 StronglyTypedResourceBuilder
+    // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
+    // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
+    // (以 /str 作为命令选项),或重新生成 VS 项目。
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    public class Images {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Images() {
+        }
+        
+        /// <summary>
+        ///   返回此类使用的缓存的 ResourceManager 实例。
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        public static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EMIS.Resources.Images.Images", typeof(Images).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   使用此强类型资源类,为所有资源查找
+        ///   重写当前线程的 CurrentUICulture 属性。
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        public static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        public static System.Drawing.Bitmap LoginLogo {
+            get {
+                object obj = ResourceManager.GetObject("LoginLogo", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+    }
+}

+ 127 - 0
EMIS.ResourcesGDJG/Images/Images.resx

@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="HomeLogo" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\logo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="LoginLogo" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\login_02.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+</root>

+ 36 - 0
EMIS.ResourcesGDJG/Properties/AssemblyInfo.cs

@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 有关程序集的常规信息通过以下
+// 特性集控制。更改这些特性值可修改
+// 与程序集关联的信息。
+[assembly: AssemblyTitle("EMIS.ResourcesGDJG")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("EMIS.ResourcesGDJG")]
+[assembly: AssemblyCopyright("Copyright ©  2018")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 将 ComVisible 设置为 false 使此程序集中的类型
+// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
+// 则将该类型上的 ComVisible 特性设置为 true。
+[assembly: ComVisible(false)]
+
+// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
+[assembly: Guid("27AC0D6F-9C72-4C0D-A140-B34474D2D811")]
+
+// 程序集的版本信息由下面四个值组成:
+//
+//      主版本
+//      次版本 
+//      内部版本号
+//      修订号
+//
+// 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值,
+// 方法是按如下所示使用“*”:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

BIN
EMIS.ResourcesGDJG/Resources/login_02.png


BIN
EMIS.ResourcesGDJG/Resources/login_02.psd


BIN
EMIS.ResourcesGDJG/Resources/logo.png


BIN
EMIS.ResourcesGDJG/Resources/logo.psd


+ 99 - 0
EMIS.ResourcesGDJG/Strings.Designer.cs

@@ -0,0 +1,99 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     此代码由工具生成。
+//     运行时版本:4.0.30319.17929
+//
+//     对此文件的更改可能会导致不正确的行为,并且如果
+//     重新生成代码,这些更改将会丢失。
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace EMIS.Resources {
+    using System;
+    
+    
+    /// <summary>
+    ///   一个强类型的资源类,用于查找本地化的字符串等。
+    /// </summary>
+    // 此类是由 StronglyTypedResourceBuilder
+    // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
+    // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
+    // (以 /str 作为命令选项),或重新生成 VS 项目。
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    public class Strings {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Strings() {
+        }
+        
+        /// <summary>
+        ///   返回此类使用的缓存的 ResourceManager 实例。
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        public static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EMIS.Resources.Strings", typeof(Strings).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   使用此强类型资源类,为所有资源查找
+        ///   重写当前线程的 CurrentUICulture 属性。
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        public static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 注:请选择命名方式,考生号方式可以考生号或“F”或“Z”+考生号命名,并且使用zip或rar压缩进行上传(支持jpg/jpeg/png/bmp格式的图片)。 的本地化字符串。
+        /// </summary>
+        public static string NEWSTUDENT_PICIMPORT_TIPS {
+            get {
+                return ResourceManager.GetString("NEWSTUDENT_PICIMPORT_TIPS", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 注:请选择命名方式,并且使用zip或rar压缩进行上传(支持jpg/jpeg/png/bmp格式的图片)。 的本地化字符串。
+        /// </summary>
+        public static string STAFF_PICIMPORT_TIPS {
+            get {
+                return ResourceManager.GetString("STAFF_PICIMPORT_TIPS", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 注:请选择命名方式,考生号方式可以考生号或“F”或“Z”+考生号命名,并且使用zip或rar压缩进行上传(支持jpg/jpeg/png/bmp格式的图片)。 的本地化字符串。
+        /// </summary>
+        public static string STUDENT_GRAPICIMPORT_TIPS {
+            get {
+                return ResourceManager.GetString("STUDENT_GRAPICIMPORT_TIPS", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 注:请选择命名方式,考生号方式可以考生号或“F”或“Z”+考生号命名,并且使用zip或rar压缩进行上传(支持jpg/jpeg/png/bmp格式的图片)。 的本地化字符串。
+        /// </summary>
+        public static string STUDENT_PICIMPORT_TIPS {
+            get {
+                return ResourceManager.GetString("STUDENT_PICIMPORT_TIPS", resourceCulture);
+            }
+        }
+    }
+}

+ 132 - 0
EMIS.ResourcesGDJG/Strings.resx

@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="NEWSTUDENT_PICIMPORT_TIPS" xml:space="preserve">
+    <value>注:请选择命名方式,考生号方式可以考生号或“F”或“Z”+考生号命名,并且使用zip或rar压缩进行上传(支持jpg/jpeg/png/bmp格式的图片)。</value>
+  </data>
+  <data name="STAFF_PICIMPORT_TIPS" xml:space="preserve">
+    <value>注:请选择命名方式,并且使用zip或rar压缩进行上传(支持jpg/jpeg/png/bmp格式的图片)。</value>
+  </data>
+  <data name="STUDENT_GRAPICIMPORT_TIPS" xml:space="preserve">
+    <value>注:请选择命名方式,考生号方式可以考生号或“F”或“Z”+考生号命名,并且使用zip或rar压缩进行上传(支持jpg/jpeg/png/bmp格式的图片)。</value>
+  </data>
+  <data name="STUDENT_PICIMPORT_TIPS" xml:space="preserve">
+    <value>注:请选择命名方式,考生号方式可以考生号或“F”或“Z”+考生号命名,并且使用zip或rar压缩进行上传(支持jpg/jpeg/png/bmp格式的图片)。</value>
+  </data>
+</root>

BIN
EMIS.ResourcesTest/Resources/login_02.png


BIN
EMIS.ResourcesTest/Resources/logo.PNG


+ 1 - 0
EMIS.Web/EMIS.Web.csproj

@@ -431,6 +431,7 @@
     <Compile Include="Controllers\MinorManage\MinorSetting\MinorStandardSettingController.cs" />
     <Compile Include="Controllers\MinorManage\MinorSpecialtyCourseManage\MinorSpecialtyCourseController.cs" />
     <Compile Include="Controllers\MinorManage\MinorSetting\MinorControlController.cs" />
+    <Compile Include="Controllers\NewReports\ExaminationClassStudentStatisticsController.cs" />
     <Compile Include="Controllers\PaymentManage\LearningformRateController.cs" />
     <Compile Include="Controllers\PaymentManage\LevelStandardController.cs" />
     <Compile Include="Controllers\PaymentManage\PaymentController.cs" />

+ 8 - 0
EMIS.Web/Scripts/Business/Studentfile/Student.js

@@ -381,3 +381,11 @@ function StudentCardReport() {
     });
 }
 
+//上报导出
+function Student_ReportExport() {
+    var userIDs = validChoose().join(',');
+    var dgStudentList = $.getDataGridParams("dgStudentList");
+    var redirectTo = CMS_SystemConfig.VirtualDirectoryPath + "/Student/ReportExport?userIDs=" + userIDs + "&MNU=" + mnu;
+    $.popupTopWindow('上报导出', redirectTo, 880, 580, null, dgStudentList);
+}
+

+ 12 - 12
EMIS.Web/Web.config

@@ -15,7 +15,7 @@
     <!--成教开发环境-->
     <!--<add name="EMISNewContext" providerName="System.Data.SqlClient" connectionString="Data Source=192.168.0.29\sql2008;Initial Catalog=ssEMISNewDGLG1128;Persist Security Info=True;User ID=sa;Password=1;Pooling=True;Max Pool Size=10000;" />-->
     <!--松山测试环境-->
-    <add name="EMISNewContext" providerName="System.Data.SqlClient" connectionString="Data Source=192.168.0.66\EMISGDSS;Initial Catalog=Gdss.Emis;Persist Security Info=True;User ID=sa;Password=1;Pooling=True;Max Pool Size=10000;" />
+    <add name="EMISNewContext" providerName="System.Data.SqlClient" connectionString="Data Source=.;Initial Catalog=Gdss.Emis202204081055;Persist Security Info=True;User ID=sa;Password=1;Pooling=True;Max Pool Size=10000;" />
     <!--广体测试环境-->
     <!--<add name="EMISNewContext" providerName="System.Data.SqlClient" connectionString="Data Source=192.168.0.66\EmisGzty;Initial Catalog=Gzty.Emis;Persist Security Info=True;User ID=sa;Password=1;Pooling=True;Max Pool Size=10000;" />-->
     <!--广中医测试环境-->
@@ -31,8 +31,8 @@
 
     <!--本地测试环境-->
     <!--<add name="EMISNewContext" providerName="System.Data.SqlClient" connectionString="Data Source=.;Initial Catalog=Hbgd.Emis;Persist Security Info=True;User ID=sa;Password=1;Pooling=True;Max Pool Size=10000;" />-->
-    <add name="HRServiceContextContainer" providerName="System.Data.SqlClient" connectionString="Data Source=192.168.0.66\EMISGDSS;Initial Catalog=Emis.HRService;Persist Security Info=True;User ID=sa;Password=1;Pooling=True;Max Pool Size=10000;" />
-    <add name="EMISNewLogContext" providerName="System.Data.SqlClient" connectionString="Data Source=192.168.0.66\EMISGDSS;Initial Catalog=Gdss.EmisLog;Persist Security Info=True;User ID=sa;Password=1;Pooling=True;Max Pool Size=10000;" />
+    <add name="HRServiceContextContainer" providerName="System.Data.SqlClient" connectionString="Data Source=.;Initial Catalog=Emis.HRService;Persist Security Info=True;User ID=sa;Password=1;Pooling=True;Max Pool Size=10000;" />
+    <add name="EMISNewLogContext" providerName="System.Data.SqlClient" connectionString="Data Source=.;Initial Catalog=Gdss.EmisLog;Persist Security Info=True;User ID=sa;Password=1;Pooling=True;Max Pool Size=10000;" />
   </connectionStrings>
   <appSettings>
     <!--MVC组件配置begin-->
@@ -86,15 +86,15 @@
 
     <!--配置登出系统后的跳转地址begin-->
     <!--通用-->
-    <!--<add key="LogOffUrl" value="~/Account/Login" />-->
+    <add key="LogOffUrl" value="~/Account/Login" />
 
     <!--广中医-->
     <!--<add key="LogOffUrl" value="~/Account/GZZYLogin" />
     <add key="LoginAction" value="GZZYLogin" />-->
     
     <!--河北工大-->
-    <add key="LogOffUrl" value="~/Account/HBGDLogin" />
-    <add key="LoginAction" value="HBGDLogin" />
+    <!--<add key="LogOffUrl" value="~/Account/HBGDLogin" />
+    <add key="LoginAction" value="HBGDLogin" />-->
     
     <!--河北科大-->
     <!--<add key="LogOffUrl" value="~/Account/NewLogin" />
@@ -120,9 +120,9 @@
     <add key="ReportServerPass" value="Bow1n" />-->
 
     <!--本地测试环境-->
-    <add key="ReportServerUrl" value="http://localhost:8014/ReportServer" />
-    <add key="ReportServerUser" value="Windows" />
-    <add key="ReportServerPass" value="890217" />
+    <add key="ReportServerUrl" value="http://win-gmo6nuas8pi/ReportServer" />
+    <add key="ReportServerUser" value="administrator" />
+    <add key="ReportServerPass" value="Bow1n" />
 
     <!--松山开发环境-->
     <!--<add key="ReportServerUrl" value="http://192.168.0.66:8201/reportserver" />
@@ -195,13 +195,13 @@
     <authentication mode="Forms">
       <!--配置登入系统后的跳转地址begin-->
       <!--通用-->
-      <!--<forms loginUrl="~/Account/Login" timeout="2880" enableCrossAppRedirects="true" />-->
+      <forms loginUrl="~/Account/Login" timeout="2880" enableCrossAppRedirects="true" />
 
       <!--广中医-->
       <!--<forms loginUrl="~/Account/GZZYLogin" timeout="2880" enableCrossAppRedirects="true" />-->
       
       <!--河北工大-->
-      <forms loginUrl="~/Account/HBGDLogin" timeout="2880" enableCrossAppRedirects="true" />
+      <!--<forms loginUrl="~/Account/HBGDLogin" timeout="2880" enableCrossAppRedirects="true" />-->
       
       <!--河北科大-->
       <!--<forms loginUrl="~/Account/NewLogin" timeout="2880" enableCrossAppRedirects="true" />-->
@@ -365,7 +365,7 @@
       <!--成教开发环境-->
       <!--<endpoint address="http://192.168.0.28:8014/entree.asmx" binding="basicHttpBinding" behaviorConfiguration="clientBehavior" bindingConfiguration="entreeSoap" contract="PlugworkflowServices.entreeSoap" name="entreeSoap" />-->
       <!--本地测试环境-->
-      <endpoint address="http://localhost:8013/entree.asmx" binding="basicHttpBinding" behaviorConfiguration="clientBehavior" bindingConfiguration="entreeSoap" contract="PlugworkflowServices.entreeSoap" name="entreeSoap" />
+      <endpoint address="http://localhost:8033/entree.asmx" binding="basicHttpBinding" behaviorConfiguration="clientBehavior" bindingConfiguration="entreeSoap" contract="PlugworkflowServices.entreeSoap" name="entreeSoap" />
       <!--松山测试环境-->
       <!--<endpoint address="http://192.168.0.66:8101/entree.asmx" binding="basicHttpBinding" behaviorConfiguration="clientBehavior" bindingConfiguration="entreeSoap" contract="PlugworkflowServices.entreeSoap" name="entreeSoap" />-->
       <!--广体测试环境-->

+ 30 - 12
NewEMIS.sln

@@ -90,8 +90,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EMIS.ResourcesGZMS", "EMIS.
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EMIS.ResourcesLCNX", "EMIS.ResourcesLCNX\EMIS.ResourcesLCNX.csproj", "{17F0513A-C1EC-4150-9388-A20CAAE226C9}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EMIS.ExtensionLogic.LCNX", "EMIS.ExtensionLogic.LCNX\EMIS.ExtensionLogic.LCNX.csproj", "{4F5005F6-BFA0-44DD-92FA-075435D01553}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bowin.Common", "Framework\Bowin.Common\Bowin.Common.csproj", "{8A4C1C47-63BA-481B-B1FF-8175A91B2D32}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bowin.Common.Mvc", "Framework\Bowin.Common.Mvc\Bowin.Common.Mvc.csproj", "{CE305378-83CB-41CF-9CDB-3536F84E3447}"
@@ -100,6 +98,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bowin.Web.Controls.Mvc", "F
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EMIS.Entities.Log", "EMIS.Entities.Log\EMIS.Entities.Log.csproj", "{DB95178F-587B-4F96-88DA-D4FD8EF75BFF}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EMIS.ResourcesGDJG", "EMIS.ResourcesGDJG\EMIS.ResourcesGDJG.csproj", "{0CFF1257-CBE5-4865-8DA7-BE9338085DD8}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EMIS.ExtensionLogic.LCNX", "学校扩展文件\EMIS.ExtensionLogic.LCNX\EMIS.ExtensionLogic.LCNX.csproj", "{4F5005F6-BFA0-44DD-92FA-075435D01553}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -380,15 +382,6 @@ Global
 		{17F0513A-C1EC-4150-9388-A20CAAE226C9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
 		{17F0513A-C1EC-4150-9388-A20CAAE226C9}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{17F0513A-C1EC-4150-9388-A20CAAE226C9}.Release|x86.ActiveCfg = Release|Any CPU
-		{4F5005F6-BFA0-44DD-92FA-075435D01553}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{4F5005F6-BFA0-44DD-92FA-075435D01553}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{4F5005F6-BFA0-44DD-92FA-075435D01553}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{4F5005F6-BFA0-44DD-92FA-075435D01553}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{4F5005F6-BFA0-44DD-92FA-075435D01553}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{4F5005F6-BFA0-44DD-92FA-075435D01553}.Release|Any CPU.Build.0 = Release|Any CPU
-		{4F5005F6-BFA0-44DD-92FA-075435D01553}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{4F5005F6-BFA0-44DD-92FA-075435D01553}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{4F5005F6-BFA0-44DD-92FA-075435D01553}.Release|x86.ActiveCfg = Release|Any CPU
 		{8A4C1C47-63BA-481B-B1FF-8175A91B2D32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{8A4C1C47-63BA-481B-B1FF-8175A91B2D32}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{8A4C1C47-63BA-481B-B1FF-8175A91B2D32}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
@@ -437,6 +430,30 @@ Global
 		{DB95178F-587B-4F96-88DA-D4FD8EF75BFF}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{DB95178F-587B-4F96-88DA-D4FD8EF75BFF}.Release|x86.ActiveCfg = Release|Any CPU
 		{DB95178F-587B-4F96-88DA-D4FD8EF75BFF}.Release|x86.Build.0 = Release|Any CPU
+		{0CFF1257-CBE5-4865-8DA7-BE9338085DD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{0CFF1257-CBE5-4865-8DA7-BE9338085DD8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{0CFF1257-CBE5-4865-8DA7-BE9338085DD8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{0CFF1257-CBE5-4865-8DA7-BE9338085DD8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{0CFF1257-CBE5-4865-8DA7-BE9338085DD8}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{0CFF1257-CBE5-4865-8DA7-BE9338085DD8}.Debug|x86.Build.0 = Debug|Any CPU
+		{0CFF1257-CBE5-4865-8DA7-BE9338085DD8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{0CFF1257-CBE5-4865-8DA7-BE9338085DD8}.Release|Any CPU.Build.0 = Release|Any CPU
+		{0CFF1257-CBE5-4865-8DA7-BE9338085DD8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{0CFF1257-CBE5-4865-8DA7-BE9338085DD8}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{0CFF1257-CBE5-4865-8DA7-BE9338085DD8}.Release|x86.ActiveCfg = Release|Any CPU
+		{0CFF1257-CBE5-4865-8DA7-BE9338085DD8}.Release|x86.Build.0 = Release|Any CPU
+		{4F5005F6-BFA0-44DD-92FA-075435D01553}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{4F5005F6-BFA0-44DD-92FA-075435D01553}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{4F5005F6-BFA0-44DD-92FA-075435D01553}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{4F5005F6-BFA0-44DD-92FA-075435D01553}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{4F5005F6-BFA0-44DD-92FA-075435D01553}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{4F5005F6-BFA0-44DD-92FA-075435D01553}.Debug|x86.Build.0 = Debug|Any CPU
+		{4F5005F6-BFA0-44DD-92FA-075435D01553}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{4F5005F6-BFA0-44DD-92FA-075435D01553}.Release|Any CPU.Build.0 = Release|Any CPU
+		{4F5005F6-BFA0-44DD-92FA-075435D01553}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{4F5005F6-BFA0-44DD-92FA-075435D01553}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{4F5005F6-BFA0-44DD-92FA-075435D01553}.Release|x86.ActiveCfg = Release|Any CPU
+		{4F5005F6-BFA0-44DD-92FA-075435D01553}.Release|x86.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -468,11 +485,12 @@ Global
 		{3F8CFA37-BC7F-4B21-857D-7B986ACC8160} = {346F415C-C1E6-4589-B9BD-05918A1C96D9}
 		{C3904747-86A0-46BB-8AD2-E1063FB04B44} = {57EAD09D-3B94-408F-AAC3-C58AD125741B}
 		{17F0513A-C1EC-4150-9388-A20CAAE226C9} = {57EAD09D-3B94-408F-AAC3-C58AD125741B}
-		{4F5005F6-BFA0-44DD-92FA-075435D01553} = {346F415C-C1E6-4589-B9BD-05918A1C96D9}
 		{8A4C1C47-63BA-481B-B1FF-8175A91B2D32} = {A77466DE-2CEE-4204-ACE7-D4711BD556E3}
 		{CE305378-83CB-41CF-9CDB-3536F84E3447} = {A77466DE-2CEE-4204-ACE7-D4711BD556E3}
 		{45FCE04F-75CF-4B22-AF0A-BD0EBE109617} = {A77466DE-2CEE-4204-ACE7-D4711BD556E3}
 		{DB95178F-587B-4F96-88DA-D4FD8EF75BFF} = {D5377F2D-8644-4428-8A18-54D28A7856E0}
+		{0CFF1257-CBE5-4865-8DA7-BE9338085DD8} = {57EAD09D-3B94-408F-AAC3-C58AD125741B}
+		{4F5005F6-BFA0-44DD-92FA-075435D01553} = {346F415C-C1E6-4589-B9BD-05918A1C96D9}
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
 		SolutionGuid = {278E45C4-9C89-4EEA-A0B9-3E79CE973684}

+ 41 - 0
学校扩展文件/EMIS.ExtensionLogic.GDJG/DataLogic/ExaminationManage/RoomSettingDAL.cs

@@ -0,0 +1,41 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using EMIS.DataLogic.Repositories;
+
+namespace EMIS.ExtensionLogic.DataLogic.ExaminationManage
+{
+    public class RoomSettingDAL : EMIS.DataLogic.ExaminationManage.RoomSettingDAL
+    {
+        //public EducationMissionRepository EducationMissionRepository { get; set; }
+        //public InSchoolSettingRepository InSchoolSettingRepository { get; set; }
+
+        //public override IQueryable<EMIS.ViewModel.FieldResour.ClassroomView> GetAvailableClassroomView(System.Linq.Expressions.Expression<Func<Entities.EX_ExaminationPlan, bool>> examinationPlanExp, System.Linq.Expressions.Expression<Func<Entities.EX_ExaminationRoomLayout, bool>> examinationRoomLayoutExp, System.Linq.Expressions.Expression<Func<Entities.CF_Classroom, bool>> classroomExp)
+        //{
+        //    var inschool = InSchoolSettingRepository.Entities.Where(x => x.IsSelected == true).Select(x => x.InSchoolStatusID);
+        //    var q = (from c in ClassroomDAL.Value.GetClassroomQueryable(classroomExp)
+        //             join cid in
+        //                 (
+        //                     (from ers in ExaminationRoomSettingRepository.Entities
+        //                      join nas in
+        //                          (
+        //                              from ep in ExaminationPlanRepository.GetList(examinationPlanExp)
+        //                              join erl in ExaminationRoomLayoutRepository.Entities on true equals true
+        //                              where erl.EX_ExaminationPlan.ExaminationDate == ep.ExaminationDate
+        //                                  && erl.EX_ExaminationPlan.EndTime >= ep.StartTime && erl.EX_ExaminationPlan.StartTime <= ep.EndTime
+        //                              select erl
+        //                              ) on ers.ClassroomID equals nas.ClassroomID into dnas
+        //                      from enas in dnas.DefaultIfEmpty()
+        //                      where enas.ClassroomID == null
+        //                      select ers.ClassroomID
+        //                     ).Concat(
+        //                     from erl in ExaminationRoomLayoutRepository.GetList(examinationRoomLayoutExp)
+        //                     select erl.ClassroomID)
+        //                     ) on c.ClassroomID equals cid
+        //             select c);
+
+        //    return q;
+        //}
+    }
+}

+ 112 - 0
学校扩展文件/EMIS.ExtensionLogic.GDJG/EMIS.ExtensionLogic.GDJG.csproj

@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{D3AD308D-E1FF-418B-9CE5-6658493FC7FF}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>EMIS.ExtensionLogic</RootNamespace>
+    <AssemblyName>EMIS.ExtensionLogic.DGLG</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <SccProjectName>
+    </SccProjectName>
+    <SccLocalPath>
+    </SccLocalPath>
+    <SccAuxPath>
+    </SccAuxPath>
+    <SccProvider>
+    </SccProvider>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>..\..\EMIS.Web\bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Bowin.Common">
+      <HintPath>..\..\Lib\Bowin.Common.dll</HintPath>
+    </Reference>
+    <Reference Include="EntityFramework">
+      <HintPath>..\..\packages\EntityFramework.6.1.3\lib\net40\EntityFramework.dll</HintPath>
+    </Reference>
+    <Reference Include="EntityFramework.SqlServer">
+      <HintPath>..\..\packages\EntityFramework.6.1.3\lib\net40\EntityFramework.SqlServer.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.ComponentModel.DataAnnotations" />
+    <Reference Include="System.configuration" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Transactions" />
+    <Reference Include="System.Web" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="DataLogic\ExaminationManage\RoomSettingDAL.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="ServiceLogic\DegreeManage\DegreeListServices.cs" />
+    <Compile Include="ServiceLogic\EnrollManage\NewStudentCollegeServices.cs" />
+    <Compile Include="ServiceLogic\EnrollManage\RecruitSpecialtyServices.cs" />
+    <Compile Include="ServiceLogic\GraduationManage\GraduationApplyServices.cs" />
+    <Compile Include="ServiceLogic\GraduationManage\GraduationListServices.cs" />
+    <Compile Include="ServiceLogic\SystemManage\UserServices.cs" />
+    <Compile Include="ViewModel\EducationManage\EducationMissionClassViewMetadataType.cs" />
+    <Compile Include="ViewModel\StaffViewMetadataType.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\EMiS.DataLogic\EMIS.DataLogic.csproj">
+      <Project>{D9B77877-BBB9-4E90-96B6-32AA6C43C3A1}</Project>
+      <Name>EMIS.DataLogic</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\EMIS.Entities\EMIS.Entities.csproj">
+      <Project>{37E0EAA8-4A6E-46C4-86EF-0745373B1080}</Project>
+      <Name>EMIS.Entities</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\EMIS.Utility\EMIS.Utility.csproj">
+      <Project>{E23364FA-480A-4A5D-95A4-ECBEDFDE03B4}</Project>
+      <Name>EMIS.Utility</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\EMIS.ViewModel\EMIS.ViewModel.csproj">
+      <Project>{885CA886-40C2-480E-9576-E771C8F6032E}</Project>
+      <Name>EMIS.ViewModel</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\ServiceLogic\EMIS.CommonLogic\EMIS.CommonLogic.csproj">
+      <Project>{3F1264D0-C66F-4F85-A0C6-F4E43FEE616A}</Project>
+      <Name>EMIS.CommonLogic</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\ServiceLogic\EMIS.ICommonLogic\EMIS.ICommonLogic.csproj">
+      <Project>{5CE392A4-CCF8-437F-AC8D-C7BDD4F1731A}</Project>
+      <Name>EMIS.ICommonLogic</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="app.config" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

+ 36 - 0
学校扩展文件/EMIS.ExtensionLogic.GDJG/Properties/AssemblyInfo.cs

@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 有关程序集的常规信息通过以下
+// 特性集控制。更改这些特性值可修改
+// 与程序集关联的信息。
+[assembly: AssemblyTitle("EMIS.ExtensionLogic.GDJG")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("EMIS.ExtensionLogic.GDJG")]
+[assembly: AssemblyCopyright("Copyright ©  2017")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 将 ComVisible 设置为 false 使此程序集中的类型
+// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
+// 则将该类型上的 ComVisible 特性设置为 true。
+[assembly: ComVisible(false)]
+
+// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
+[assembly: Guid("974E32CC-5F8E-4A38-82A5-0E0CF48D34B9")]
+
+// 程序集的版本信息由下面四个值组成:
+//
+//      主版本
+//      次版本 
+//      内部版本号
+//      修订号
+//
+// 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值,
+// 方法是按如下所示使用“*”:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 60 - 0
学校扩展文件/EMIS.ExtensionLogic.GDJG/ServiceLogic/DegreeManage/DegreeListServices.cs

@@ -0,0 +1,60 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using EMIS.Entities;
+using EMIS.CommonLogic.SystemServices;
+
+namespace EMIS.ExtensionLogic.ServiceLogic.DegreeManage
+{
+    public class DegreeListServices : EMIS.CommonLogic.DegreeManage.DegreeManage.DegreeListServices
+    {
+        /// <summary>
+        /// 流水号生成Services
+        /// </summary>
+        public Lazy<ISerialNumberServices> SerialNumberServices { get; set; }
+
+        /// <summary>
+        /// 流程结束跳转函数(工作流平台中配置)
+        /// 注:学位审核通过需对学位证书编号进行生成(东莞理工学院)
+        /// 生成规则:学校代码+学位级别(1位,博士为2,硕士为3,学士为4)+毕业年份+6位流水号(9+5位流水号)
+        /// 例如:学校代码+学位级别(学士)+毕业年份+6位流水号(9+5位流水号),11819+4+2016+900001
+        /// </summary>
+        /// <param name="degreeApplyIDList"></param>
+        /// <param name="userID"></param>
+        public override void OnApproveEnd(List<Guid> degreeApplyIDList, Guid? userID)
+        {
+            ////更新对应的学生信息(如:学位状态)
+            //base.OnApproveEnd(degreeApplyIDList, userID);
+
+            //查询对应的学位申请信息List
+            var degreeApplyList = DegreeApplyDAL.DegreeApplyRepository
+                    .GetList(x => degreeApplyIDList.Contains(x.DegreeApplyID), (x => x.ER_GraduationApply.CF_Student)).ToList();
+            //查询对应的学位申请信息ViewList
+            var degreeApplyViewList = DegreeApplyDAL
+                    .GetDegreeApplyViewQueryable(x => degreeApplyIDList.Contains(x.DegreeApplyID)).ToList();
+            //更新对应的学生信息(如:学位状态、学位证书编号)
+            List<CF_Student> studentUpList = new List<CF_Student>();
+            List<ER_DegreeApply> degreeApplyUpList = new List<ER_DegreeApply>();
+            foreach (var degreeApply in degreeApplyList)
+            {
+                degreeApply.ER_GraduationApply.CF_Student.DegreeStatus = true;
+                this.SetModifyStatus(degreeApply.ER_GraduationApply.CF_Student);
+                studentUpList.Add(degreeApply.ER_GraduationApply.CF_Student);
+
+                //查询对应的学位申请信息View
+                var degreeApplyView = degreeApplyViewList
+                        .Where(x => x.DegreeApplyID == degreeApply.DegreeApplyID).SingleOrDefault();
+                //学位证书编号生成(学校代码+学位级别(学士)+毕业年份+6位流水号(9+5位流水号))
+                var degreeNoPrefix = string.Format("{0}{1}{2}{3}", degreeApplyView.UniversityCode, 4, 
+                        degreeApplyView.GraduationYear ?? null, 9);
+                degreeApply.DegreeNo = SerialNumberServices.Value.SetSN(degreeNoPrefix, 5);
+                degreeApplyUpList.Add(degreeApply);
+            }
+
+            this.UnitOfWork.BatchUpdate(studentUpList);
+            this.UnitOfWork.BatchUpdate(degreeApplyUpList);
+        }
+
+    }
+}

+ 677 - 0
学校扩展文件/EMIS.ExtensionLogic.GDJG/ServiceLogic/EnrollManage/NewStudentCollegeServices.cs

@@ -0,0 +1,677 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Transactions;
+using Bowin.Common.Utility;
+using EMIS.Entities;
+using EMIS.ViewModel;
+using EMIS.ViewModel.CacheManage;
+using EMIS.ViewModel.EnrollManage.NewStudentManage;
+
+namespace EMIS.ExtensionLogic.ServiceLogic.EnrollManage
+{
+    public class NewStudentCollegeServices : EMIS.CommonLogic.EnrollManage.NewStudentManage.NewStudentCollegeServices
+    {
+        /// <summary>
+        /// 招生信息Excel导入(预分配,需根据省招专业相关信息进行匹配--个性化)
+        /// 此为东莞理工版本
+        /// </summary>
+        /// <param name="cellheader"></param>
+        /// <param name="inCount"></param>
+        /// <param name="upCount"></param>
+        /// <param name="errdataList"></param>
+        /// <param name="errCount"></param>
+        /// <param name="sourcePhysicalPath"></param>
+        public override void NewStudentCollegeImport(Dictionary<string, string> cellheader, out int? inCount, out int? upCount, out List<NewStudentView> errdataList, out int? errCount, string sourcePhysicalPath)
+        {
+            /// 招生信息Excel导入(预分配,需根据省招专业相关信息进行匹配--东莞理工版本)
+            /// 匹配规则:根据Excel文件中录取专业(取后四位)与省招专业信息中省招代码进行匹配
+            try
+            {
+                StringBuilder errorMsg = new StringBuilder(); // 错误信息
+                List<NewStudentView> errList = new List<NewStudentView>();
+                // 1.1解析文件,存放到一个List集合里
+                cellheader.Remove("ErrorMessage");//移除“未导入原因”列(ErrorMessage)
+                List<NewStudentView> enlist = NpoiExcelHelper.ExcelToEntityList<NewStudentView>(cellheader, sourcePhysicalPath, out errorMsg, out errList);
+                cellheader.Add("ErrorMessage", "未导入原因");
+
+                //对List集合进行有效性校验
+                if (enlist.Count() <= 0)
+                {
+                    throw new Exception("Excel文件数据为空,请检查。");
+                }
+                Regex reg = null; //正则表达式
+                DateTime result; //用于返回判断日期字段格式
+                int isInt; //用于返回判断int列格式
+                inCount = 0; //导入个数
+                upCount = 0; //更新个数
+                errCount = 0; //失败个数
+                string errorMsgStr = ""; //错误信息
+
+                List<CF_NewStudent> newStudentInList = new List<CF_NewStudent>(); //新生信息insert实体List
+                List<CF_NewStudent> newStudentUpList = new List<CF_NewStudent>(); //新生信息update实体List
+                //将循环中相关数据库查询统一查询出来进行匹配(尽量避免在循环中进行数据库查询)
+                //性别
+                var sexList = IdNameExt.GetDictionaryItem(DictionaryItem.CF_Sex).ToList();
+                //民族
+                var nationList = IdNameExt.GetDictionaryItem(DictionaryItem.CF_Nation).ToList();
+                //政治面貌
+                var politicsList = IdNameExt.GetDictionaryItem(DictionaryItem.CF_Politics).ToList();
+                //考生号
+                var examineeNumList = enlist.Where(x => !string.IsNullOrEmpty(x.ExamineeNum)).Select(x => x.ExamineeNum.Trim()).ToList();
+                ////准考证号
+                //var admissionTicketNoList = enlist.Where(x => !string.IsNullOrEmpty(x.AdmissionTicketNo)).Select(x => x.AdmissionTicketNo.Trim()).ToList();
+                ////身份证号
+                //var iDNumberList = enlist.Where(x => !string.IsNullOrEmpty(x.IDNumber)).Select(x => x.IDNumber.Trim()).ToList();
+                //录取专业(省招代码),取后4位
+                var customStandardCodeList = enlist.Where(x => !string.IsNullOrEmpty(x.Code)).Select(x => x.Code.Trim().Remove(0, x.Code.Length > 4 ? x.Code.Length - 4 : 0)).ToList();
+                //新生名单
+                var newStudentAllList = NewStudentDAL.NewStudentRepository.GetList(x => true).ToList();
+                //对比后的newStudentList
+                var newStudentList = newStudentAllList.Where(x => examineeNumList.Contains(x.ExamineeNum)).ToList();
+                //省招专业(注:省招代码唯一或学年、学期、院系所ID、专业信息唯一)
+                var customStandardList = NewStudentDAL.CustomStandardSettingRepository.GetList(x => customStandardCodeList.Contains(x.Code)).ToList();
+                //专业信息
+                var specialtyList = NewStudentDAL.SpecialtyRepository.GetList(x => true).ToList();
+
+                //循环检测数据列,对各数据列进行验证(必填、字典项验证、数据格式等)
+                for (int i = 0; i < enlist.Count; i++)
+                {
+                    NewStudentView en = enlist[i]; //Excel表数据视图
+                    CF_NewStudent newStudent = new CF_NewStudent(); //新生信息实体
+                    //考生号
+                    if (string.IsNullOrEmpty(en.ExamineeNum))
+                    {
+                        errCount++;
+                        errorMsgStr = "ksh(考生号)不能为空";
+                        en.ErrorMessage = errorMsgStr;
+                        errList.Add(en);
+                        errorMsg.AppendLine(errorMsgStr);
+                        continue;
+                    }
+                    else
+                    {
+                        reg = new Regex(@"^[A-Za-z0-9]+$"); //考生号正则表达式
+                        if (!reg.IsMatch(en.ExamineeNum.Trim()))
+                        {
+                            errCount++;
+                            errorMsgStr = "ksh(考生号)格式不正确,请检查";
+                            en.ErrorMessage = errorMsgStr;
+                            errList.Add(en);
+                            errorMsg.AppendLine(errorMsgStr);
+                            continue;
+                        }
+                        else
+                        {
+                            //考生号
+                            newStudent.ExamineeNum = en.ExamineeNum.Trim();
+                        }
+                    }
+                    //准考证号
+                    if (string.IsNullOrEmpty(en.AdmissionTicketNo))
+                    {
+                        errCount++;
+                        errorMsgStr = "zkzh(准考证号)不能为空";
+                        en.ErrorMessage = errorMsgStr;
+                        errList.Add(en);
+                        errorMsg.AppendLine(errorMsgStr);
+                        continue;
+                    }
+                    else
+                    {
+                        reg = new Regex(@"^[A-Za-z0-9]+$"); //准考证号正则表达式
+                        if (!reg.IsMatch(en.AdmissionTicketNo.Trim()))
+                        {
+                            errCount++;
+                            errorMsgStr = "zkzh(准考证号)格式不正确,请检查";
+                            en.ErrorMessage = errorMsgStr;
+                            errList.Add(en);
+                            errorMsg.AppendLine(errorMsgStr);
+                            continue;
+                        }
+                        else
+                        {
+                            //准考证号
+                            newStudent.AdmissionTicketNo = en.AdmissionTicketNo.Trim();
+                        }
+                    }
+                    //姓名
+                    if (string.IsNullOrEmpty(en.Name))
+                    {
+                        errCount++;
+                        errorMsgStr = "xm(姓名)不能为空";
+                        en.ErrorMessage = errorMsgStr;
+                        errList.Add(en);
+                        errorMsg.AppendLine(errorMsgStr);
+                        continue;
+                    }
+                    else
+                    {
+                        //姓名
+                        newStudent.Name = en.Name.Trim();
+                    }
+                    //性别
+                    if (string.IsNullOrEmpty(en.SexStr))
+                    {
+                        errCount++;
+                        errorMsgStr = "性别不能为空";
+                        en.ErrorMessage = errorMsgStr;
+                        errList.Add(en);
+                        errorMsg.AppendLine(errorMsgStr);
+                        continue;
+                    }
+                    else
+                    {
+                        if (!int.TryParse(en.SexStr.Trim(), out isInt))
+                        {
+                            errCount++;
+                            errorMsgStr = "xbdm(性别代码)格式不正确,请检查";
+                            en.ErrorMessage = errorMsgStr;
+                            errList.Add(en);
+                            errorMsg.AppendLine(errorMsgStr);
+                            continue;
+                        }
+                        else
+                        {
+                            //性别代码
+                            var sex = sexList.Where(x => x.Value == Convert.ToInt32(en.SexStr.Trim())).SingleOrDefault();
+                            if (sex == null)
+                            {
+                                errCount++;
+                                errorMsgStr = "xbdm(性别代码)不存在,请检查";
+                                en.ErrorMessage = errorMsgStr;
+                                errList.Add(en);
+                                errorMsg.AppendLine(errorMsgStr);
+                                continue;
+                            }
+                            else
+                            {
+                                //性别
+                                newStudent.SexID = sex.Value;
+                            }
+                        }
+                    }
+                    //民族
+                    if (!string.IsNullOrEmpty(en.NationStr))
+                    {
+                        if (!int.TryParse(en.NationStr.Trim(), out isInt))
+                        {
+                            errCount++;
+                            errorMsgStr = "mzdm(民族代码)格式不正确,请检查";
+                            en.ErrorMessage = errorMsgStr;
+                            errList.Add(en);
+                            errorMsg.AppendLine(errorMsgStr);
+                            continue;
+                        }
+                        else
+                        {
+                            var nation = nationList.Where(x => x.Value == Convert.ToInt32(en.NationStr.Trim())).SingleOrDefault();
+                            if (nation == null)
+                            {
+                                errCount++;
+                                errorMsgStr = "mzdm(民族代码)不存在,请检查";
+                                en.ErrorMessage = errorMsgStr;
+                                errList.Add(en);
+                                errorMsg.AppendLine(errorMsgStr);
+                                continue;
+                            }
+                            else
+                            {
+                                //民族
+                                newStudent.NationID = nation.Value;
+                            }
+                        }
+                    }
+                    else
+                    {
+                        //为空
+                    }
+                    //政治面貌
+                    if (!string.IsNullOrEmpty(en.PoliticsStr))
+                    {
+                        if (!int.TryParse(en.PoliticsStr.Trim(), out isInt))
+                        {
+                            errCount++;
+                            errorMsgStr = "zzmmdm(政治面貌代码)格式不正确,请检查";
+                            en.ErrorMessage = errorMsgStr;
+                            errList.Add(en);
+                            errorMsg.AppendLine(errorMsgStr);
+                            continue;
+                        }
+                        else
+                        {
+                            var politics = politicsList.Where(x => x.Value == Convert.ToInt32(en.PoliticsStr.Trim())).SingleOrDefault();
+                            if (politics == null)
+                            {
+                                errCount++;
+                                errorMsgStr = "zzmmdm(政治面貌代码)不存在,请检查";
+                                en.ErrorMessage = errorMsgStr;
+                                errList.Add(en);
+                                errorMsg.AppendLine(errorMsgStr);
+                                continue;
+                            }
+                            else
+                            {
+                                //政治面貌
+                                newStudent.PoliticsID = politics.Value;
+                            }
+                        }
+                    }
+                    else
+                    {
+                        //为空
+                    }
+                    //出生日期
+                    if (!string.IsNullOrEmpty(en.BirthDateStr))
+                    {
+                        //reg = new Regex(@"(\d{4})-(\d{1,2})-(\d{1,2})"); //日期正则表达式,2017-12-28
+                        if (!DateTime.TryParse(en.BirthDateStr.Trim(), out result))
+                        {
+                            errCount++;
+                            errorMsgStr = "csrq(出生日期)格式不正确,请检查";
+                            en.ErrorMessage = errorMsgStr;
+                            errList.Add(en);
+                            errorMsg.AppendLine(errorMsgStr);
+                            continue;
+                        }
+                        else
+                        {
+                            //出生日期
+                            newStudent.BirthDate = Convert.ToDateTime(en.BirthDateStr.Trim());
+                        }
+                    }
+                    else
+                    {
+                        //为空
+                    }
+                    //考生特征
+                    if (!string.IsNullOrEmpty(en.FeaturesStr))
+                    {
+                        if (!int.TryParse(en.FeaturesStr.Trim(), out isInt))
+                        {
+                            errCount++;
+                            errorMsgStr = "kstzbz(考生特征标记)格式不正确,请检查";
+                            en.ErrorMessage = errorMsgStr;
+                            errList.Add(en);
+                            errorMsg.AppendLine(errorMsgStr);
+                            continue;
+                        }
+                        else
+                        {
+                            //考生特征标记
+                            newStudent.FeaturesID = Convert.ToInt32(en.FeaturesStr.Trim());
+                        }
+                    }
+                    else
+                    {
+                        //为空
+                    }
+                    //身份证号
+                    if (string.IsNullOrEmpty(en.IDNumber))
+                    {
+                        errCount++;
+                        errorMsgStr = "sfzh(身份证号)不能为空";
+                        en.ErrorMessage = errorMsgStr;
+                        errList.Add(en);
+                        errorMsg.AppendLine(errorMsgStr);
+                        continue;
+                    }
+                    else
+                    {
+                        //reg = new Regex(@"^[A-Za-z0-9]+$"); //身份证号正则表达式
+                        //if (!reg.IsMatch(en.IDNumber.Trim()))
+                        //{
+                        //    errCount++;
+                        //    errorMsgStr = "sfzh(身份证号)格式不正确,请检查";
+                        //    en.ErrorMessage = errorMsgStr;
+                        //    errList.Add(en);
+                        //    errorMsg.AppendLine(errorMsgStr);
+                        //    continue;
+                        //}
+                        //else
+                        //{
+                        //    //身份证号
+                        //    newStudent.IDNumber = en.IDNumber.Trim();
+                        //}
+
+                        newStudent.IDNumber = en.IDNumber.Trim();
+                    }
+                    //邮政编码
+                    newStudent.ZIPCode = en.ZIPCode;
+                    //联系电话
+                    newStudent.Telephone = en.Telephone;
+                    //通讯地址
+                    newStudent.Address = en.Address;
+                    //行政区划代码
+                    if (!string.IsNullOrEmpty(en.TerritorialStr))
+                    {
+                        if (!int.TryParse(en.TerritorialStr.Trim(), out isInt))
+                        {
+                            errCount++;
+                            errorMsgStr = "xzqhdm(行政区划代码)格式不正确,请检查";
+                            en.ErrorMessage = errorMsgStr;
+                            errList.Add(en);
+                            errorMsg.AppendLine(errorMsgStr);
+                            continue;
+                        }
+                        else
+                        {
+                            //行政区划代码
+                            newStudent.TerritorialID = Convert.ToInt32(en.TerritorialStr.Trim());
+                        }
+                    }
+                    else
+                    {
+                        //为空
+                    }
+                    //总分
+                    if (!string.IsNullOrEmpty(en.ScoreStr))
+                    {
+                        reg = new Regex(@"^[0-9]+([.]{1}[0-9]+){0,1}$"); //数字正则表达式
+                        if (!reg.IsMatch(en.ScoreStr.Trim()))
+                        {
+                            errCount++;
+                            errorMsgStr = "zf(总分)格式不正确,请检查";
+                            en.ErrorMessage = errorMsgStr;
+                            errList.Add(en);
+                            errorMsg.AppendLine(errorMsgStr);
+                            continue;
+                        }
+                        else
+                        {
+                            //总分
+                            newStudent.Score = Convert.ToDecimal(en.ScoreStr.Trim());
+                        }
+                    }
+                    else
+                    {
+                        //为空
+                    }
+                    //录取专业(省招代码,取后4位)
+                    if (string.IsNullOrEmpty(en.Code))
+                    {
+                        errCount++;
+                        errorMsgStr = "lqzy(录取专业)不能为空";
+                        en.ErrorMessage = errorMsgStr;
+                        errList.Add(en);
+                        errorMsg.AppendLine(errorMsgStr);
+                        continue;
+                    }
+                    else
+                    {
+                        reg = new Regex(@"^[0-9]*$"); //数字正则表达式
+                        if (!reg.IsMatch(en.Code.Trim()))
+                        {
+                            errCount++;
+                            errorMsgStr = "lqzy(录取专业)格式不正确,请检查";
+                            en.ErrorMessage = errorMsgStr;
+                            errList.Add(en);
+                            errorMsg.AppendLine(errorMsgStr);
+                            continue;
+                        }
+                        else
+                        {
+                            //录取专业(省招代码,取后4位)
+                            var customStandardCode = en.Code.Trim().Remove(0, en.Code.Length > 4 ? en.Code.Length - 4 : 0);
+                            var customStandard = customStandardList.Where(x => x.Code == customStandardCode).SingleOrDefault();
+                            if (customStandard == null)
+                            {
+                                errCount++;
+                                errorMsgStr = "对应的省招代码不存在(取lqzy录取专业后四位进行匹配),请检查";
+                                en.ErrorMessage = errorMsgStr;
+                                errList.Add(en);
+                                errorMsg.AppendLine(errorMsgStr);
+                                continue;
+                            }
+                            else
+                            {
+                                var specialty = specialtyList.Where(x => x.SpecialtyID == customStandard.SpecialtyID).SingleOrDefault();
+                                if (specialty == null)
+                                {
+                                    errCount++;
+                                    errorMsgStr = "省招专业对应的专业信息不存在,请检查";
+                                    en.ErrorMessage = errorMsgStr;
+                                    errList.Add(en);
+                                    errorMsg.AppendLine(errorMsgStr);
+                                    continue;
+                                }
+                                else
+                                {
+                                    newStudent.SpecialtyID = specialty.SpecialtyID;
+                                    newStudent.GradeID = customStandard.YearID;
+                                    newStudent.SemesterID = customStandard.SemesterID;
+                                    newStudent.CollegeID = customStandard.CollegeID;
+                                }
+                            }
+                        }
+                    }
+                    //备注
+                    newStudent.Remark = en.Remark;
+
+                    ////Excel表重复性验证(注:当数据表中没有此记录,但是Excel中有重复数据时的去掉)
+                    //for (int j = i + 1; j < enlist.Count; j++)
+                    //{
+                    //    NewStudentView enA = enlist[j];
+
+                    //    //根据Excel表中的业务主键进行去重(考生号唯一)
+                    //    if (en.ExamineeNum == enA.ExamineeNum)
+                    //    {
+                    //        //用于标识Excel表中的重复记录(由于是批量进行插入数据表)
+
+                    //    }
+                    //}
+
+                    //由于新生管理模块中存在新生分配的业务,在进行新生信息新增时,
+                    //需要对新生名单、录取名单中的信息进行提示性验证(业务主键:考生号唯一)
+                    //处理方法:进行Excel导入时,对新生名单更新、录取名单中的信息提示性验证(当错误信息抛出)
+                    //注:(未分配-1,预分配-2,已分配-3)
+
+                    //数据表重复性验证(考生号唯一)
+                    var examineeNumVerify = newStudentList.Where(x => x.ExamineeNum == newStudent.ExamineeNum).SingleOrDefault();
+                    if (examineeNumVerify == null)
+                    {
+                        //if (!string.IsNullOrEmpty(newStudent.AdmissionTicketNo))
+                        //{
+                        //    if (!newStudentUpList.Any(x => x.AdmissionTicketNo == newStudent.AdmissionTicketNo))
+                        //    {
+                        //        if (!newStudentInList.Any(x => x.AdmissionTicketNo == newStudent.AdmissionTicketNo))
+                        //        {
+                        //            var admissionTicketNoVerify = newStudentList.Where(x => x.AdmissionTicketNo == newStudent.AdmissionTicketNo).SingleOrDefault();
+                        //            if (admissionTicketNoVerify != null)
+                        //            {
+                        //                if (admissionTicketNoVerify.AssignStatus == (int)CF_AssignStatus.PreAssigned)
+                        //                {
+                        //                    errCount++;
+                        //                    errorMsgStr = "已存在相同的准考证号(准考证号重复),请核查";
+                        //                    en.ErrorMessage = errorMsgStr;
+                        //                    errList.Add(en);
+                        //                    errorMsg.AppendLine(errorMsgStr);
+                        //                    continue;
+                        //                }
+                        //                else if (admissionTicketNoVerify.AssignStatus == (int)CF_AssignStatus.Assigned)
+                        //                {
+                        //                    errCount++;
+                        //                    errorMsgStr = "录取名单信息中已存在此准考证号(准考证号重复),请核查";
+                        //                    en.ErrorMessage = errorMsgStr;
+                        //                    errList.Add(en);
+                        //                    errorMsg.AppendLine(errorMsgStr);
+                        //                    continue;
+                        //                }
+                        //                else
+                        //                {
+                        //                    errCount++;
+                        //                    errorMsgStr = "新生名单信息中已存在此准考证号(准考证号重复),请核查";
+                        //                    en.ErrorMessage = errorMsgStr;
+                        //                    errList.Add(en);
+                        //                    errorMsg.AppendLine(errorMsgStr);
+                        //                    continue;
+                        //                }
+                        //            }
+                        //        }
+                        //        else
+                        //        {
+                        //            errCount++;
+                        //            errorMsgStr = "准考证号重复(Excel中),请检查";
+                        //            en.ErrorMessage = errorMsgStr;
+                        //            errList.Add(en);
+                        //            errorMsg.AppendLine(errorMsgStr);
+                        //            continue;
+                        //        }
+                        //    }
+                        //    else
+                        //    {
+                        //        errCount++;
+                        //        errorMsgStr = "准考证号重复(Excel中),请检查";
+                        //        en.ErrorMessage = errorMsgStr;
+                        //        errList.Add(en);
+                        //        errorMsg.AppendLine(errorMsgStr);
+                        //        continue;
+                        //    }
+                        //}
+                        //新增
+                        if (!newStudentInList.Any(x => x.ExamineeNum == newStudent.ExamineeNum))
+                        {
+                            newStudent.NewStudentID = Guid.NewGuid();
+                            newStudent.CertificatesType = (int)CF_CertificatesType.IdCrad;
+                            newStudent.IsDoubt = false;
+                            newStudent.AssignStatus = (int)CF_AssignStatus.PreAssigned;
+                            SetNewStatus(newStudent, (int)CF_NewStudentEnterStatus.NotSubmitted);
+                            newStudentInList.Add(newStudent);
+                            inCount++;
+                        }
+                        else
+                        {
+                            //Excel表重复性验证
+                            //(注:当数据表中没有此记录,但是Excel中有重复数据,可在此处进行抛出到失败数据文件中)
+                            errCount++;
+                            errorMsgStr = "考生号重复(Excel中),请检查";
+                            en.ErrorMessage = errorMsgStr;
+                            errList.Add(en);
+                            errorMsg.AppendLine(errorMsgStr);
+                            continue;
+                        }
+                    }
+                    else
+                    {
+                        //由于新生管理模块中存在新生分配的业务,只更新分配状态为:未分配-1、预分配-2
+                        if (examineeNumVerify.AssignStatus == (int)CF_AssignStatus.Assigned)
+                        {
+                            errCount++;
+                            errorMsgStr = "导入失败,录取名单信息中已存在此考生号(考生号重复)";
+                            en.ErrorMessage = errorMsgStr;
+                            errList.Add(en);
+                            errorMsg.AppendLine(errorMsgStr);
+                            continue;
+                        }
+                        else
+                        {
+                            //更新(Excel有重复时,以最后一条记录的更新为准)
+                            //if (!string.IsNullOrEmpty(newStudent.AdmissionTicketNo))
+                            //{
+                            //    if (!newStudentInList.Any(x => x.AdmissionTicketNo == newStudent.AdmissionTicketNo))
+                            //    {
+                            //        if (!newStudentUpList.Any(x => x.AdmissionTicketNo == newStudent.AdmissionTicketNo))
+                            //        {
+                            //            var admissionTicketNoVerify = newStudentList.Where(x => x.AdmissionTicketNo == newStudent.AdmissionTicketNo).SingleOrDefault();
+                            //            if (admissionTicketNoVerify != null)
+                            //            {
+                            //                if (admissionTicketNoVerify.AssignStatus == (int)CF_AssignStatus.PreAssigned)
+                            //                {
+                            //                    errCount++;
+                            //                    errorMsgStr = "已存在相同的准考证号(准考证号重复),请核查";
+                            //                    en.ErrorMessage = errorMsgStr;
+                            //                    errList.Add(en);
+                            //                    errorMsg.AppendLine(errorMsgStr);
+                            //                    continue;
+                            //                }
+                            //                else if (admissionTicketNoVerify.AssignStatus == (int)CF_AssignStatus.Assigned)
+                            //                {
+                            //                    errCount++;
+                            //                    errorMsgStr = "录取名单信息中已存在此准考证号(准考证号重复),请核查";
+                            //                    en.ErrorMessage = errorMsgStr;
+                            //                    errList.Add(en);
+                            //                    errorMsg.AppendLine(errorMsgStr);
+                            //                    continue;
+                            //                }
+                            //                else
+                            //                {
+                            //                    errCount++;
+                            //                    errorMsgStr = "新生名单信息中已存在此准考证号(准考证号重复),请核查";
+                            //                    en.ErrorMessage = errorMsgStr;
+                            //                    errList.Add(en);
+                            //                    errorMsg.AppendLine(errorMsgStr);
+                            //                    continue;
+                            //                }
+                            //            }
+                            //        }
+                            //        else
+                            //        {
+                            //            errCount++;
+                            //            errorMsgStr = "准考证号重复(Excel中),请检查";
+                            //            en.ErrorMessage = errorMsgStr;
+                            //            errList.Add(en);
+                            //            errorMsg.AppendLine(errorMsgStr);
+                            //            continue;
+                            //        }
+                            //    }
+                            //    else
+                            //    {
+                            //        errCount++;
+                            //        errorMsgStr = "准考证号重复(Excel中),请检查";
+                            //        en.ErrorMessage = errorMsgStr;
+                            //        errList.Add(en);
+                            //        errorMsg.AppendLine(errorMsgStr);
+                            //        continue;
+                            //    }
+                            //}
+                            examineeNumVerify.ExamineeNum = newStudent.ExamineeNum;
+                            examineeNumVerify.AdmissionTicketNo = newStudent.AdmissionTicketNo;
+                            examineeNumVerify.Name = newStudent.Name;
+                            examineeNumVerify.SexID = newStudent.SexID;
+                            examineeNumVerify.NationID = newStudent.NationID;
+                            examineeNumVerify.PoliticsID = newStudent.PoliticsID;
+                            examineeNumVerify.BirthDate = newStudent.BirthDate;
+                            //examineeNumVerify.CertificatesType = newStudent.CertificatesType;
+                            examineeNumVerify.IDNumber = newStudent.IDNumber;
+                            examineeNumVerify.GradeID = newStudent.GradeID;
+                            examineeNumVerify.SemesterID = newStudent.SemesterID;
+                            examineeNumVerify.SpecialtyID = newStudent.SpecialtyID;
+                            //examineeNumVerify.EntranceDate = newStudent.EntranceDate;
+                            examineeNumVerify.Score = newStudent.Score;
+                            examineeNumVerify.Telephone = newStudent.Telephone;
+                            examineeNumVerify.ZIPCode = newStudent.ZIPCode;
+                            //examineeNumVerify.EntranceWayID = newStudent.EntranceWayID;
+                            examineeNumVerify.FeaturesID = newStudent.FeaturesID;
+                            examineeNumVerify.TerritorialID = newStudent.TerritorialID;
+                            examineeNumVerify.Address = newStudent.Address;
+                            //examineeNumVerify.Dormitory = newStudent.Dormitory;
+                            examineeNumVerify.AssignStatus = (int)CF_AssignStatus.PreAssigned;
+                            examineeNumVerify.CollegeID = newStudent.CollegeID;
+                            examineeNumVerify.Remark = newStudent.Remark;
+                            SetModifyStatus(examineeNumVerify);
+                            newStudentUpList.Add(examineeNumVerify);
+                            upCount++;
+                        }
+                    }
+                }
+                using (TransactionScope ts = new TransactionScope())
+                {
+                    UnitOfWork.BulkInsert(newStudentInList);
+                    if (newStudentUpList != null && newStudentUpList.Count() > 0)
+                    {
+                        UnitOfWork.BatchUpdate(newStudentUpList);
+                    }
+                    ts.Complete();
+                }
+                errdataList = errList.Distinct().ToList();
+            }
+            catch (Exception)
+            {
+                throw;
+            }
+        }
+
+    }
+}

+ 419 - 0
学校扩展文件/EMIS.ExtensionLogic.GDJG/ServiceLogic/EnrollManage/RecruitSpecialtyServices.cs

@@ -0,0 +1,419 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Transactions;
+using EMIS.Entities;
+using EMIS.ViewModel;
+using EMIS.ViewModel.CacheManage;
+using EMIS.CommonLogic.SystemServices;
+
+namespace EMIS.ExtensionLogic.ServiceLogic.EnrollManage
+{
+    public class RecruitSpecialtyServices : EMIS.CommonLogic.EnrollManage.SpecialtyManage.RecruitSpecialtyServices
+    {
+        /// <summary>
+        /// 流水号生成Services
+        /// </summary>
+        public ISerialNumberServices SerialNumberServices { get; set; }
+
+        /// <summary>
+        /// 东莞理工专业班级生成规则(此版本生成规则,暂时这么处理,专业分方向不支持生成)
+        /// </summary>
+        /// <param name="recruitSpecialtyIDs"></param>
+        /// <returns></returns>
+        public override string GenerateClass(List<Guid?> recruitSpecialtyIDs)
+        {
+            //生成规则如下:
+            //院系编码:院系所编号+学习形式Value+培养层次Value+6位专业代码,拼出来,如:0112030101
+            //院系名称:院系所简称+"-"+专业名称+学习形式+培养层次,如:莞城-法学业余专升本
+
+            //年级专业编码:年级后两位+院系所编号+学习形式Value+培养层次Value+6位专业代码,拼出来,如:170112030101
+            //年级专业名称:年级+院系所简称+"-"+专业名称+学习形式+培养层次,如:2017莞城-法学业余专升本
+
+            //班级编码:年级+3位流水号,拼出来,如:2017001
+            //班级名称(区分本专科):
+            //本科:年级后两位+专业名称+"本科"+学习形式+"班"+"("+院系所简称+")"
+            //专科:年级后两位+专业名称+学习形式+"班"+"("+院系所简称+")"
+
+            try
+            {
+                //查询招生专业信息
+                var recruitSpecialtyList = recruitSpecialtyDAL.recruitSpecialtyRepository.GetList(x => recruitSpecialtyIDs.Contains(x.RecruitSpecialtyID)).ToList();
+                //年级ID
+                var gradeIDList = recruitSpecialtyList.Where(x => !string.IsNullOrEmpty(x.GradeID.ToString())).Select(x => x.GradeID).ToList();
+                //专业信息ID
+                var specialtyIDList = recruitSpecialtyList.Where(x => !string.IsNullOrEmpty(x.SpecialtyID.ToString())).Select(x => x.SpecialtyID).ToList();
+                //院系所ID
+                var collegeIDList = recruitSpecialtyList.Where(x => !string.IsNullOrEmpty(x.CollegeID.ToString())).Select(x => x.CollegeID).ToList();
+                //查询专业信息
+                var specialtyList = recruitSpecialtyDAL.specialtyRepository.GetList(x => specialtyIDList.Contains(x.SpecialtyID)).ToList();
+                //查询院系所信息
+                var collegeList = recruitSpecialtyDAL.collegeRepository.Entities.Where(x => collegeIDList.Contains(x.CollegeID)).ToList();
+                //年级
+                var gradeList = IdNameExt.GetDictionaryItem(DictionaryItem.CF_Grade).ToList();
+                //专业代码、专业名称、专业ID(Value)
+                var standardList = IdNameExt.GetDictionaryItem(DictionaryItem.CF_Standard).ToList();
+                //培养层次(所修学历)
+                var educationList = IdNameExt.GetDictionaryItem(DictionaryItem.CF_Education).ToList();
+                //学习形式
+                var learningFormList = IdNameExt.GetDictionaryItem(DictionaryItem.CF_Learningform).ToList();
+                //查询对应的院系专业信息
+                var facultyMajorList = recruitSpecialtyDAL.GetFacultymajorByRecruitSpecialty(x => recruitSpecialtyIDs.Contains(x.RecruitSpecialtyID)).ToList();
+                //院系专业ID
+                var facultyMajorIDList = facultyMajorList.Where(x => !string.IsNullOrEmpty(x.FacultymajorID.ToString())).Select(x => x.FacultymajorID).ToList();
+                //查询对应的年级专业信息
+                var gradeMajorList = recruitSpecialtyDAL.GetGrademajorByRecruitSpecialty(x => recruitSpecialtyIDs.Contains(x.RecruitSpecialtyID), x => facultyMajorIDList.Contains(x.FacultymajorID)).ToList();
+                //年级专业ID
+                var gradeMajorIDList = gradeMajorList.Where(x => !string.IsNullOrEmpty(x.GrademajorID.ToString())).Select(x => x.GrademajorID).ToList();
+                //查询对应的班级信息
+                var classMajorList = recruitSpecialtyDAL.GetClassmajorByRecruitSpecialty(x => recruitSpecialtyIDs.Contains(x.RecruitSpecialtyID), x => facultyMajorIDList.Contains(x.FacultymajorID), x => gradeMajorIDList.Contains(x.GrademajorID)).ToList();
+                //班级信息ID
+                var classMajorIDList = classMajorList.Where(x => !string.IsNullOrEmpty(x.ClassmajorID.ToString())).Select(x => x.ClassmajorID).ToList();
+                //查询学年学期信息
+                var schoolyearList = recruitSpecialtyDAL.schoolyearRepository.GetList(x => true).ToList();
+                //培养层次类型(区分本科、专科)
+                var educationTypeList = IdNameExt.GetDictionaryItem(DictionaryItem.CF_EducationType).ToList();
+                //查询培养类型设置信息
+                var educationTypeSettingList = recruitSpecialtyDAL.educationTypeSettingRepository.GetList(x => true).ToList();
+                //判断培养类型设置信息
+                if (educationTypeSettingList == null || educationTypeSettingList.Count() <= 0)
+                {
+                    throw new Exception("培养类型设置信息未配置,请检查。");
+                }
+                var facultymajorCode = "";
+                var facultymajorName = "";
+                var grademajorCode = "";
+                var grademajorName = "";
+                var classmajorCode = "";
+                var classmajorName = "";
+                int facultyMajorfail = 0;
+                int gradeMajorfail = 0;
+                int classMajorfail = 0;
+                int fail = 0;
+                int success = 0;
+                string classNoSerialNumber = null;
+                string tipMessage = null;
+                List<CF_RecruitSpecialty> recruitSpecialtyUpList = new List<CF_RecruitSpecialty>();
+                List<CF_Facultymajor> facultymajorInList = new List<CF_Facultymajor>();
+                List<CF_Grademajor> grademajorInList = new List<CF_Grademajor>();
+                List<CF_Classmajor> classmajorInList = new List<CF_Classmajor>();
+                foreach (var recruitSpecialty in recruitSpecialtyList)
+                {
+
+                    //目前只处理招生专业与专业班级一对一的情况(已存在的情况下,不做处理)
+                    //由于存在专业分方向、同一年级专业有多个班的情况(后期可在此处进行扩展:普教版本存在此类情况)
+                    //查询对应的院系所信息
+                    var college = collegeList.Where(x => x.CollegeID == recruitSpecialty.CollegeID).SingleOrDefault();
+                    //查询对应的专业信息
+                    var specialty = specialtyList.Where(x => x.SpecialtyID == recruitSpecialty.SpecialtyID).SingleOrDefault();
+                    //专业名称数据字典
+                    var standard = standardList.Where(x => x.Value == specialty.StandardID).SingleOrDefault();
+                    //培养层次(所修学历)
+                    var education = educationList.Where(x => x.Value == specialty.EducationID).SingleOrDefault();
+                    //学习形式
+                    var learningForm = learningFormList.Where(x => x.Value == specialty.LearningformID).SingleOrDefault();
+                    //查询培养类型设置对应的信息
+                    var educationTypeSetting = educationTypeSettingList.Where(x => x.EducationID == specialty.EducationID).SingleOrDefault();
+                    //查询对应的培养层次类型
+                    var educationType = educationTypeList.Where(x => x.Value == educationTypeSetting.EducationTypeID).SingleOrDefault();
+                    //计算毕业学年学期Value
+                    var graduateSchoolyearValue = (recruitSpecialty.GradeID * 2) - 1 + (recruitSpecialty.SemesterID - 1) 
+                            + Convert.ToInt32(Math.Ceiling(specialty.LearnSystem.Value * 2 - 1));
+                    //查询对应的学年学期信息
+                    var graduateSchoolyear = schoolyearList.Where(x => x.Value == graduateSchoolyearValue).SingleOrDefault();
+                    //院系专业编号(处理6位专业代码的问题)
+                    if (standard.Code.Length > 6)
+                    {
+                        //院系所编号+学习形式Value+培养层次Value+6位专业代码
+                        facultymajorCode = college.No.Trim() + specialty.LearningformID.ToString().Trim() + specialty.EducationID.ToString().Trim() 
+                                + standard.Code.Substring(0, 6);
+                    }
+                    else
+                    {
+                        //院系所编号+学习形式Value+培养层次Value+6位专业代码
+                        facultymajorCode = college.No.Trim() + specialty.LearningformID.ToString().Trim() + specialty.EducationID.ToString().Trim() + standard.Code.PadLeft(6, '0');
+                    }
+                    //院系专业名称(院系所简称+"-"+专业名称+学习形式+培养层次)
+                    if (string.IsNullOrEmpty(college.SimpleName))
+                    {
+                        facultymajorName = college.Name.Trim() + "-" + standard.Name.Trim() + learningForm.Name.Trim() + education.Name.Trim();
+                    }
+                    else
+                    {
+                        facultymajorName = college.SimpleName.Trim() + "-" + standard.Name.Trim() + learningForm.Name.Trim() + education.Name.Trim();
+                    }
+                    //年级专业编号(年级后两位+院系所编号+学习形式Value+培养层次Value+6位专业代码)
+                    grademajorCode = recruitSpecialty.GradeID.ToString().Substring(recruitSpecialty.GradeID.ToString().Length - 2) + facultymajorCode;
+                    //年级专业名称(年级+院系所简称+"-"+专业名称+学习形式+培养层次)
+                    grademajorName = recruitSpecialty.GradeID.ToString() + facultymajorName;
+                    //班级编号(年级+3位流水号,注:先获取,再存储)
+                    classNoSerialNumber = SerialNumberServices.GetSN("Const.CF_CLASSMAJOR_NO_PREFIX" + recruitSpecialty.GradeID.ToString(), 3);
+                    classmajorCode = classNoSerialNumber.Replace("Const.CF_CLASSMAJOR_NO_PREFIX", " ").Trim();
+                    //班级名称(区分本专科):
+                    //本科:年级后两位+专业名称+"本科"+学习形式+"班"+"("+院系所简称+")"
+                    //专科:年级后两位+专业名称+学习形式+"班"+"("+院系所简称+")"
+                    if (educationType.Value == (int)CF_EducationType.UnderGraduate)
+                    {
+                        //表示本科
+                        if (string.IsNullOrEmpty(college.SimpleName.Trim()))
+                        {
+                            classmajorName = recruitSpecialty.GradeID.ToString().Substring(recruitSpecialty.GradeID.ToString().Length - 2) 
+                                    + standard.Name.Trim() + educationType.Name.Trim() + learningForm.Name.Trim() + "班" + "(" + college.Name + ")";
+                        }
+                        else
+                        {
+                            classmajorName = recruitSpecialty.GradeID.ToString().Substring(recruitSpecialty.GradeID.ToString().Length - 2) 
+                                    + standard.Name.Trim() + educationType.Name.Trim() + learningForm.Name.Trim() + "班" + "(" + college.SimpleName + ")";
+                        }
+                    }
+                    else if (educationType.Value == (int)CF_EducationType.Special)
+                    {
+                        //表示专科
+                        if (string.IsNullOrEmpty(college.SimpleName.Trim()))
+                        {
+                            classmajorName = recruitSpecialty.GradeID.ToString().Substring(recruitSpecialty.GradeID.ToString().Length - 2)
+                                    + standard.Name.Trim() + learningForm.Name.Trim() + "班" + "(" + college.Name + ")";
+                        }
+                        else
+                        {
+                            classmajorName = recruitSpecialty.GradeID.ToString().Substring(recruitSpecialty.GradeID.ToString().Length - 2)
+                                    + standard.Name.Trim() + learningForm.Name.Trim() + "班" + "(" + college.SimpleName + ")";
+                        }
+                    }
+                    else
+                    {
+                        //表示无法根据培养层次类型表定位时,默认此规则(由于是基础数据配置暂时不考虑抛出错误)
+                        classmajorName = recruitSpecialty.GradeID.ToString().Substring(recruitSpecialty.GradeID.ToString().Length - 2)
+                                + standard.Name.Trim() + learningForm.Name.Trim() + education.Name.Trim() + "班" + "(" + college.SimpleName + ")";
+                    }
+                    var facultymajor = new CF_Facultymajor();
+                    var grademajor = new CF_Grademajor();
+                    var classmajor = new CF_Classmajor();
+                    //查询院系专业
+                    var facultyMajorVerify = facultyMajorList.Where(x => x.RecruitSpecialtyID == recruitSpecialty.RecruitSpecialtyID).ToList();
+                    //判断对应的院系专业
+                    if (facultyMajorVerify != null && facultyMajorVerify.Count() > 0)
+                    {
+                        //表示对应的院系专业信息已存在(可在此处,做更新处理:需准确定位院系专业)
+                        if (facultyMajorVerify.Count() == 1)
+                        {
+                            //查询对应的院系专业(只有一条院系专业可在此处做更新处理)
+                            var facultyMajorEntity = facultyMajorVerify.Where(x => x.RecruitSpecialtyID == recruitSpecialty.RecruitSpecialtyID).SingleOrDefault();
+                            //查询年级专业
+                            var gradeMajorVerify = gradeMajorList.Where(x => x.RecruitSpecialtyID == recruitSpecialty.RecruitSpecialtyID).ToList();
+                            //判断对应的年级专业
+                            if (gradeMajorVerify != null && gradeMajorVerify.Count() > 0)
+                            {
+                                //表示对应的年级专业信息已存在(可在此处,做更新处理:需准确定位院系专业)
+                                if (gradeMajorVerify.Count() == 1)
+                                {
+                                    //查询对应的年级专业(只有一条年级专业可在此处做更新处理)
+                                    var gradeMajorEntity = gradeMajorVerify.Where(x => x.RecruitSpecialtyID == recruitSpecialty.RecruitSpecialtyID).SingleOrDefault();
+                                    //查询班级信息
+                                    var classMajorVerify = classMajorList.Where(x => x.RecruitSpecialtyID == recruitSpecialty.RecruitSpecialtyID).ToList();
+                                    //判断对应的班级信息
+                                    if (classMajorVerify != null && classMajorVerify.Count() > 0)
+                                    {
+                                        //表示对应的班级信息已存在(可在此处,做更新处理:需准确定位院系专业)
+                                        if (classMajorVerify.Count() == 1)
+                                        {
+                                            //查询对应的班级信息(只有一条班级信息可在此处做更新处理)
+                                            var classMajorEntity = classMajorVerify.Where(x => x.RecruitSpecialtyID == recruitSpecialty.RecruitSpecialtyID).SingleOrDefault();
+                                            //(暂时不做更新处理)
+
+                                            //更新招生专业信息生成状态
+                                            recruitSpecialty.isGenerated = true;
+                                            recruitSpecialtyUpList.Add(recruitSpecialty);
+                                            success++;
+                                        }
+                                        else
+                                        {
+                                            //在此处进行处理特殊情况(存在专业分方向、同一年级专业有多个班的情况)
+                                            classMajorfail++;
+                                            continue;
+                                        }
+                                    }
+                                    else
+                                    {
+                                        //表示对应的班级信息不存在
+                                        classmajor.ClassmajorID = Guid.NewGuid();
+                                        classmajor.GrademajorID = gradeMajorEntity.GrademajorID;
+                                        classmajor.No = classmajorCode;
+                                        classmajor.Name = classmajorName;
+                                        classmajor.Abbreviation = classmajor.Name;
+                                        classmajor.ClassNum = 1;
+                                        SetNewStatus(classmajor, (int)SYS_STATUS.USABLE);
+                                        classmajorInList.Add(classmajor);
+                                        //存储序列号
+                                        SerialNumberServices.SetSN("Const.CF_CLASSMAJOR_NO_PREFIX" + recruitSpecialty.GradeID.ToString(), 3);
+                                        //更新招生专业信息生成状态
+                                        recruitSpecialty.isGenerated = true;
+                                        recruitSpecialtyUpList.Add(recruitSpecialty);
+                                        success++;
+                                    }
+                                }
+                                else
+                                {
+                                    //在此处进行处理特殊情况(存在专业分方向、同一年级专业有多个班的情况)
+                                    gradeMajorfail++;
+                                    continue;
+                                }
+                            }
+                            else
+                            {
+                                //表示对应的年级专业信息不存在
+                                grademajor.GrademajorID = Guid.NewGuid();
+                                grademajor.Code = grademajorCode;
+                                grademajor.Name = grademajorName;
+                                grademajor.Abbreviation = grademajor.Name;
+                                grademajor.GradeID = recruitSpecialty.GradeID;
+                                grademajor.SemesterID = recruitSpecialty.SemesterID;
+                                grademajor.FacultymajorID = facultyMajorEntity.FacultymajorID;
+                                if (graduateSchoolyear == null)
+                                {
+                                    //表示年级专业对应的毕业学期,在学年学期信息中不存在
+                                    fail++;
+                                    continue;
+                                }
+                                else
+                                {
+                                    grademajor.GraduateSchoolyearID = graduateSchoolyear.SchoolyearID;
+                                }
+                                SetNewStatus(grademajor, (int)SYS_STATUS.USABLE);
+                                //表示对应的班级信息不存在
+                                classmajor.ClassmajorID = Guid.NewGuid();
+                                classmajor.GrademajorID = grademajor.GrademajorID;
+                                classmajor.No = classmajorCode;
+                                classmajor.Name = classmajorName;
+                                classmajor.Abbreviation = classmajor.Name;
+                                classmajor.ClassNum = 1;
+                                SetNewStatus(classmajor, (int)SYS_STATUS.USABLE);
+                                grademajorInList.Add(grademajor);
+                                classmajorInList.Add(classmajor);
+                                //存储序列号
+                                SerialNumberServices.SetSN("Const.CF_CLASSMAJOR_NO_PREFIX" + recruitSpecialty.GradeID.ToString(), 3);
+                                //更新招生专业信息生成状态
+                                recruitSpecialty.isGenerated = true;
+                                recruitSpecialtyUpList.Add(recruitSpecialty);
+                                success++;
+                            }
+                        }
+                        else
+                        {
+                            //在此处进行处理特殊情况(存在专业分方向、同一年级专业有多个班的情况)
+                            facultyMajorfail++;
+                            continue;
+                        }
+                    }
+                    else
+                    {
+                        //表示对应的院系专业信息不存在
+                        facultymajor.FacultymajorID = Guid.NewGuid();
+                        facultymajor.CollegeID = recruitSpecialty.CollegeID;
+                        facultymajor.Code = facultymajorCode;
+                        facultymajor.Name = facultymajorName;
+                        facultymajor.Abbreviation = facultymajor.Name;
+                        facultymajor.StandardID = specialty.StandardID;
+                        facultymajor.EducationID = specialty.EducationID;
+                        facultymajor.LearningformID = specialty.LearningformID;
+                        facultymajor.LearnSystem = specialty.LearnSystem;
+                        SetNewStatus(facultymajor, (int)SYS_STATUS.USABLE);
+                        //表示对应的年级专业信息不存在
+                        grademajor.GrademajorID = Guid.NewGuid();
+                        grademajor.Code = grademajorCode;
+                        grademajor.Name = grademajorName;
+                        grademajor.Abbreviation = grademajor.Name;
+                        grademajor.GradeID = recruitSpecialty.GradeID;
+                        grademajor.SemesterID = recruitSpecialty.SemesterID;
+                        grademajor.FacultymajorID = facultymajor.FacultymajorID;
+                        if (graduateSchoolyear == null)
+                        {
+                            //表示年级专业对应的毕业学期,在学年学期信息中不存在
+                            fail++;
+                            continue;
+                        }
+                        else
+                        {
+                            grademajor.GraduateSchoolyearID = graduateSchoolyear.SchoolyearID;
+                        }
+                        SetNewStatus(grademajor, (int)SYS_STATUS.USABLE);
+                        //表示对应的班级信息不存在
+                        classmajor.ClassmajorID = Guid.NewGuid();
+                        classmajor.GrademajorID = grademajor.GrademajorID;
+                        classmajor.No = classmajorCode;
+                        classmajor.Name = classmajorName;
+                        classmajor.Abbreviation = classmajor.Name;
+                        classmajor.ClassNum = 1;
+                        SetNewStatus(classmajor, (int)SYS_STATUS.USABLE);
+                        facultymajorInList.Add(facultymajor);
+                        grademajorInList.Add(grademajor);
+                        classmajorInList.Add(classmajor);
+                        //存储序列号
+                        SerialNumberServices.SetSN("Const.CF_CLASSMAJOR_NO_PREFIX" + recruitSpecialty.GradeID.ToString(), 3);
+                        //更新招生专业信息生成状态
+                        recruitSpecialty.isGenerated = true;
+                        recruitSpecialtyUpList.Add(recruitSpecialty);
+                        success++;
+                    }
+                }
+                using (TransactionScope ts = new TransactionScope())
+                {
+                    if (facultymajorInList != null && facultymajorInList.Count() > 0)
+                    {
+                        UnitOfWork.BulkInsert(facultymajorInList);
+                    }
+                    if (grademajorInList != null && grademajorInList.Count() > 0)
+                    {
+                        UnitOfWork.BulkInsert(grademajorInList);
+                    }
+                    if (classmajorInList != null && classmajorInList.Count() > 0)
+                    {
+                        UnitOfWork.BulkInsert(classmajorInList);
+                    }
+                    if (recruitSpecialtyUpList != null && recruitSpecialtyUpList.Count() > 0)
+                    {
+                        UnitOfWork.BatchUpdate(recruitSpecialtyUpList);
+                    }
+                    ts.Complete();
+                }
+                if (facultyMajorfail <= 0 && gradeMajorfail <= 0 && classMajorfail <= 0 && fail <= 0)
+                {
+                    tipMessage = success + "条专业班级的信息";
+                }
+                else
+                {
+                    if (facultyMajorfail <= 0 && gradeMajorfail <= 0 && classMajorfail <= 0 && fail > 0)
+                    {
+                        tipMessage = success + "条专业班级的信息,失败" + fail + "条,原因:年级专业对应的毕业学期不存在,请核查";
+                    }
+                    else if (facultyMajorfail > 0 && gradeMajorfail <= 0 && classMajorfail <= 0 && fail <= 0)
+                    {
+                        tipMessage = success + "条专业班级的信息," + facultyMajorfail + "条由于院系专业信息的原因无法生成,请核查";
+                    }
+                    else if (facultyMajorfail <= 0 && gradeMajorfail > 0 && classMajorfail <= 0 && fail <= 0)
+                    {
+                        tipMessage = success + "条专业班级的信息," + gradeMajorfail + "条由于年级专业信息的原因无法生成,请核查";
+                    }
+                    else if (facultyMajorfail <= 0 && gradeMajorfail <= 0 && classMajorfail > 0 && fail <= 0)
+                    {
+                        tipMessage = success + "条专业班级的信息," + classMajorfail + "条由于班级信息的原因无法生成,请核查";
+                    }
+                    else
+                    {
+                        tipMessage = success + "条专业班级的信息," + fail + "条由于年级专业对应的毕业学期不存在的原因无法生成," 
+                                + facultyMajorfail + "条由于院系专业信息的原因无法生成," + gradeMajorfail + "条由于年级专业信息的原因无法生成," 
+                                + classMajorfail + "条由于班级信息的原因无法生成,请核查";
+                    }
+                }
+
+                return tipMessage;
+            }
+            catch (Exception ex)
+            {
+                throw new Exception(ex.Message);
+            }
+        }
+
+    }
+}

+ 55 - 0
学校扩展文件/EMIS.ExtensionLogic.GDJG/ServiceLogic/GraduationManage/GraduationApplyServices.cs

@@ -0,0 +1,55 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using EMIS.CommonLogic.SystemServices;
+
+namespace EMIS.ExtensionLogic.ServiceLogic.GraduationManage
+{
+    public class GraduationApplyServices : EMIS.CommonLogic.GraduationManage.GraduationManage.GraduationApplyServices
+    {
+        /// <summary>
+        /// 流水号生成Services
+        /// </summary>
+        public Lazy<ISerialNumberServices> SerialNumberServices { get; set; }
+
+        /// <summary>
+        /// 结业
+        /// 注:结业通过需对结业证书编号进行生成(东莞理工学院)
+        /// 生成规则:学校代码+办学类型Value(1位)+毕业年份+培养层次类型Code(2位)+6位流水号
+        /// 例如:学校代码+成人高等继续教育+毕业年份+专科或本科+6位流水号,11819+2+2016+05或06+000001
+        /// </summary>
+        /// <param name="graduationApplyIDList"></param>
+        public override void GraduationApplyCompletion(List<Guid?> graduationApplyIDList)
+        {
+            //更新毕业申请信息、学生信息
+            base.GraduationApplyCompletion(graduationApplyIDList);
+
+            //查询对应的毕业申请信息List
+            var graduationApplyList = GraduationApplyDAL.GraduationApplyRepository
+                    .GetList(x => graduationApplyIDList.Contains(x.GraduationApplyID), (x => x.CF_Student)).ToList();
+            //查询对应的毕业申请信息ViewList
+            var graduationApplyViewList = GraduationApplyDAL
+                    .GetGraduationApplyViewQueryable(x => graduationApplyIDList.Contains(x.GraduationApplyID)).ToList();
+
+            //更新对应的学生信息(结业证书编号)
+            foreach (var graduationApply in graduationApplyList)
+            {
+                //查询对应的毕业申请信息View
+                var graduationApplyView = graduationApplyViewList
+                        .Where(x => x.GraduationApplyID == graduationApply.GraduationApplyID).SingleOrDefault();
+                //结业证书编号生成(学校代码+办学类型Value(1位)+毕业年份+培养层次类型Code(2位)+6位流水号)
+                var graduateCardNoPrefix = string.Format("{0}{1}{2}{3}", graduationApplyView.UniversityCode,
+                        graduationApplyView.SchoolTypeID ?? null,
+                        graduationApplyView.GraduationYear ?? null,
+                        graduationApplyView.EducationCode ?? null);
+                graduationApply.CF_Student.GraduateCardNo = SerialNumberServices.Value.SetSN(graduateCardNoPrefix, 6);
+
+                this.SetModifyStatus(graduationApply.CF_Student);
+            }
+            var updateStudentList = graduationApplyList.Select(x => x.CF_Student).ToList();
+            this.UnitOfWork.BatchUpdate(updateStudentList);
+        }
+
+    }
+}

+ 71 - 0
学校扩展文件/EMIS.ExtensionLogic.GDJG/ServiceLogic/GraduationManage/GraduationListServices.cs

@@ -0,0 +1,71 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using EMIS.CommonLogic.SystemServices;
+using EMIS.ViewModel;
+
+namespace EMIS.ExtensionLogic.ServiceLogic.GraduationManage
+{
+    public class GraduationListServices : EMIS.CommonLogic.GraduationManage.GraduationManage.GraduationListServices
+    {
+        /// <summary>
+        /// 流水号生成Services
+        /// </summary>
+        public Lazy<ISerialNumberServices> SerialNumberServices { get; set; }
+
+        /// <summary>
+        /// 流程结束跳转函数(工作流平台中配置)
+        /// 注:毕业审核通过需对毕业证书编号进行生成(东莞理工学院)
+        /// 生成规则:学校代码+办学类型Value(1位)+毕业年份+培养层次类型Code(2位)+6位流水号
+        /// 例如:学校代码+成人高等继续教育+毕业年份+专科或本科+6位流水号,11819+2+2016+05或06+000001
+        /// </summary>
+        /// <param name="graduationApplyIDList"></param>
+        /// <param name="userID"></param>
+        public override void OnApproveEnd(List<Guid> graduationApplyIDList, Guid? userID)
+        {
+            ////更新对应的学生信息(如:在校状态、学籍状态、毕业日期)
+            //base.OnApproveEnd(graduationApplyIDList, userID);
+            
+            //查询对应的毕业申请信息List
+            var graduationApplyList = GraduationApplyDAL.GraduationApplyRepository
+                    .GetList(x => graduationApplyIDList.Contains(x.GraduationApplyID), (x => x.CF_Student)).ToList();
+            //查询对应的毕业申请信息ViewList
+            var graduationApplyViewList = GraduationApplyDAL
+                    .GetGraduationApplyViewQueryable(x => graduationApplyIDList.Contains(x.GraduationApplyID)).ToList();
+            //查询毕业学期对应的毕业学期信息List
+            var graduatingSemesterIDList = graduationApplyList.Select(x => x.GraduatingSemesterID).ToList();
+            var graduateSchoolyearList = GraduationApplyDAL.GraduateSchoolyearRepository
+                    .GetList(x => graduatingSemesterIDList.Contains(x.SchoolyearID)).ToList();
+
+            //更新对应的学生信息(如:在校状态、学籍状态、毕业日期、毕业证书编号)
+            foreach (var graduationApply in graduationApplyList)
+            {
+                graduationApply.CF_Student.InSchoolStatusID = (int)CF_InschoolStatus.Graduation;
+                graduationApply.CF_Student.StudentStatus = (int)CF_StudentStatus.Graduation;
+                //查询对应的毕业申请信息View
+                var graduationApplyView = graduationApplyViewList
+                        .Where(x => x.GraduationApplyID == graduationApply.GraduationApplyID).SingleOrDefault();
+                //毕业证书编号生成(学校代码+办学类型Value(1位)+毕业年份+培养层次类型Code(2位)+6位流水号)
+                var graduateCardNoPrefix = string.Format("{0}{1}{2}{3}", graduationApplyView.UniversityCode,
+                        graduationApplyView.SchoolTypeID ?? null,
+                        graduationApplyView.GraduationYear ?? null,
+                        graduationApplyView.EducationCode ?? null);
+                graduationApply.CF_Student.GraduateCardNo = SerialNumberServices.Value.SetSN(graduateCardNoPrefix, 6);
+                //毕业日期
+                foreach (var graduateSchoolyear in graduateSchoolyearList)
+                {
+                    if (graduationApply.GraduatingSemesterID == graduateSchoolyear.SchoolyearID)
+                    {
+                        graduationApply.CF_Student.GraduateDate = graduateSchoolyear.GraduateDate;
+                    }
+                }
+
+                this.SetModifyStatus(graduationApply.CF_Student);
+            }
+            var updateStudentList = graduationApplyList.Select(x => x.CF_Student).ToList();
+            this.UnitOfWork.BatchUpdate(updateStudentList);
+        }
+
+    }
+}

+ 128 - 0
学校扩展文件/EMIS.ExtensionLogic.GDJG/ServiceLogic/SystemManage/UserServices.cs

@@ -0,0 +1,128 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using EMIS.Utility;
+using System.Net;
+using System.Web;
+using System.IO;
+using Bowin.Common.JSON;
+using System.Security.Cryptography.X509Certificates;
+using System.Net.Security;
+
+namespace EMIS.ExtensionLogic.ServiceLogic.SystemManage
+{
+    public class UserServices : EMIS.CommonLogic.SystemServices.UserServices
+    {
+        private string ssoUrl = Const.SSO_HOST;
+        private string appID = System.Configuration.ConfigurationManager.AppSettings["SSOAPPID"];
+        private string appSecret = System.Configuration.ConfigurationManager.AppSettings["SSOSecret"];
+
+        public UserServices()
+        {
+            ServicePointManager.ServerCertificateValidationCallback += delegate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
+            {
+                return true;
+            };
+        }
+
+        public override string SSOLogin()
+        {
+            var accessToken = this.CheckToken();
+
+            return this.GetUser(accessToken);
+        }
+
+        private SSOCheckTokenData CheckToken()
+        {
+            var token = HttpContext.Current.Request["token"];
+            var url = ssoUrl + "/ssoapi/v2/checkToken";
+            var jsonData = "";
+            SSOCheckTokenData checkTokenData;
+            var parameters = "token=" + token + "&appid=" + appID + "&appsecret=" + appSecret + "&userip=" + ApplicationClientHelper.GetIP();
+            var paraDatas = Encoding.UTF8.GetBytes(parameters);
+            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
+            request.Method = "POST";
+            request.ContentType = "application/x-www-form-urlencoded";
+            request.ContentLength = paraDatas.Length;
+            using (Stream requestStream = request.GetRequestStream())
+            {
+                requestStream.Write(paraDatas, 0, paraDatas.Length);
+                requestStream.Close();
+            }
+            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
+            {
+                using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
+                {
+                    jsonData = reader.ReadToEnd().ToString();
+                }
+
+                checkTokenData = jsonData.JsonToObject<SSOCheckTokenData>();
+            }
+
+            if (checkTokenData.error != 0)
+            {
+                throw new Exception("登录失败,认证平台无法识别登录票据:" + checkTokenData.message);
+            }
+            else
+            {
+                return checkTokenData;
+            }
+        }
+
+        private string GetUser(SSOCheckTokenData accessToken)
+        {
+            var url = ssoUrl + "/oauth/getUserInfo";
+            var jsonData = "";
+            SSOAuthData authData;
+            var parameters = "access_token=" + accessToken.access_token + "&openid=" + accessToken.openid;
+            var paraDatas = Encoding.UTF8.GetBytes(parameters);
+            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
+            request.Method = "POST";
+            request.ContentType = "application/x-www-form-urlencoded";
+            request.ContentLength = paraDatas.Length;
+            using (Stream requestStream = request.GetRequestStream())
+            {
+                requestStream.Write(paraDatas, 0, paraDatas.Length);
+                requestStream.Close();
+            }
+            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
+            {
+                using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
+                {
+                    jsonData = reader.ReadToEnd().ToString();
+                }
+
+                authData = jsonData.JsonToObject<SSOAuthData>();
+            }
+
+            if (authData.error != 0)
+            {
+                throw new Exception("登录失败,认证平台无法识别登录票据:" + authData.message);
+            }
+            else
+            {
+                return authData.username;
+            }
+        }
+    }
+
+    internal class SSOCheckTokenData
+    {
+        public int error { get; set; }
+        public string message { get; set; }
+        public string openid { get; set; }
+        public string access_token { get; set; }
+    }
+
+    internal class SSOAuthData
+    {
+        public int error { get; set; }
+        public string message { get; set; }
+        public string username { get; set; }
+        public string name { get; set; }
+        public string group { get; set; }
+        public string openid { get; set; }
+        public string wx_openid { get; set; }
+    }
+}

+ 40 - 0
学校扩展文件/EMIS.ExtensionLogic.GDJG/ViewModel/EducationManage/EducationMissionClassViewMetadataType.cs

@@ -0,0 +1,40 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using EMIS.ViewModel.CacheManage;
+using EMIS.ViewModel;
+using System.ComponentModel.DataAnnotations;
+
+namespace EMIS.ExtensionLogic.ViewModel.EducationManage
+{
+    public class EducationMissionClassViewMetadataType
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        [ScaffoldColumn(true)]
+        public int CourseTimeID { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        [ScaffoldColumn(true)]
+        public string CourseTimeDesc
+        {
+            get
+            {
+                return IdNameExt.GetDictionaryItem(DictionaryItem.CF_TimesSegment.ToString())
+                .Where(x => x.Value == CourseTimeID)
+                .Select(x => x.Name).FirstOrDefault();
+            }
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        [ScaffoldColumn(true)]
+        public Guid? TimeID { get; set; }
+
+    }
+}

+ 19 - 0
学校扩展文件/EMIS.ExtensionLogic.GDJG/ViewModel/StaffViewMetadataType.cs

@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel;
+
+namespace EMIS.ExtensionLogic.ViewModel
+{
+    public class StaffViewMetadataType
+    {
+        /// <summary>
+        /// 职称
+        /// </summary>
+        [Required]
+        [DisplayName("职称")]
+        public int? TitleID { get; set; }
+    }
+}

+ 11 - 0
学校扩展文件/EMIS.ExtensionLogic.GDJG/app.config

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+  <runtime>
+    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+      <dependentAssembly>
+        <assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-3.5.0.0" newVersion="3.5.0.0" />
+      </dependentAssembly>
+    </assemblyBinding>
+  </runtime>
+</configuration>

EMIS.ExtensionLogic.LCNX/App.config → 学校扩展文件/EMIS.ExtensionLogic.LCNX/App.config


EMIS.ExtensionLogic.LCNX/DataLogic/ExaminationManage/ExaminationPLanDAL.cs → 学校扩展文件/EMIS.ExtensionLogic.LCNX/DataLogic/ExaminationManage/ExaminationPLanDAL.cs


+ 11 - 11
EMIS.ExtensionLogic.LCNX/EMIS.ExtensionLogic.LCNX.csproj

@@ -32,19 +32,19 @@
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="AutoMapper">
-      <HintPath>..\Lib\AutoMapper.dll</HintPath>
+      <HintPath>..\..\Lib\AutoMapper.dll</HintPath>
     </Reference>
     <Reference Include="Bowin.Common">
-      <HintPath>..\Lib\Bowin.Common.dll</HintPath>
+      <HintPath>..\..\Lib\Bowin.Common.dll</HintPath>
     </Reference>
     <Reference Include="EntityFramework">
-      <HintPath>..\Lib\EntityFramework.dll</HintPath>
+      <HintPath>..\..\Lib\EntityFramework.dll</HintPath>
     </Reference>
     <Reference Include="EntityFramework.Extended">
-      <HintPath>..\Lib\EntityFramework.Extended.dll</HintPath>
+      <HintPath>..\..\Lib\EntityFramework.Extended.dll</HintPath>
     </Reference>
     <Reference Include="EntityFramework.SqlServer">
-      <HintPath>..\Lib\EntityFramework.SqlServer.dll</HintPath>
+      <HintPath>..\..\Lib\EntityFramework.SqlServer.dll</HintPath>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
@@ -71,27 +71,27 @@
   </ItemGroup>
   <ItemGroup />
   <ItemGroup>
-    <ProjectReference Include="..\EMiS.DataLogic\EMIS.DataLogic.csproj">
+    <ProjectReference Include="..\..\EMiS.DataLogic\EMIS.DataLogic.csproj">
       <Project>{d9b77877-bbb9-4e90-96b6-32aa6c43c3a1}</Project>
       <Name>EMIS.DataLogic</Name>
     </ProjectReference>
-    <ProjectReference Include="..\EMIS.Entities\EMIS.Entities.csproj">
+    <ProjectReference Include="..\..\EMIS.Entities\EMIS.Entities.csproj">
       <Project>{37e0eaa8-4a6e-46c4-86ef-0745373b1080}</Project>
       <Name>EMIS.Entities</Name>
     </ProjectReference>
-    <ProjectReference Include="..\EMIS.Utility\EMIS.Utility.csproj">
+    <ProjectReference Include="..\..\EMIS.Utility\EMIS.Utility.csproj">
       <Project>{e23364fa-480a-4a5d-95a4-ecbedfde03b4}</Project>
       <Name>EMIS.Utility</Name>
     </ProjectReference>
-    <ProjectReference Include="..\EMIS.ViewModel\EMIS.ViewModel.csproj">
+    <ProjectReference Include="..\..\EMIS.ViewModel\EMIS.ViewModel.csproj">
       <Project>{885ca886-40c2-480e-9576-e771c8f6032e}</Project>
       <Name>EMIS.ViewModel</Name>
     </ProjectReference>
-    <ProjectReference Include="..\ServiceLogic\EMIS.CommonLogic\EMIS.CommonLogic.csproj">
+    <ProjectReference Include="..\..\ServiceLogic\EMIS.CommonLogic\EMIS.CommonLogic.csproj">
       <Project>{3f1264d0-c66f-4f85-a0c6-f4e43fee616a}</Project>
       <Name>EMIS.CommonLogic</Name>
     </ProjectReference>
-    <ProjectReference Include="..\ServiceLogic\EMIS.ICommonLogic\EMIS.ICommonLogic.csproj">
+    <ProjectReference Include="..\..\ServiceLogic\EMIS.ICommonLogic\EMIS.ICommonLogic.csproj">
       <Project>{5ce392a4-ccf8-437f-ac8d-c7bdd4f1731a}</Project>
       <Name>EMIS.ICommonLogic</Name>
     </ProjectReference>

EMIS.ExtensionLogic.LCNX/Properties/AssemblyInfo.cs → 学校扩展文件/EMIS.ExtensionLogic.LCNX/Properties/AssemblyInfo.cs


EMIS.ExtensionLogic.LCNX/ServiceLogic/DegreeManage/DegreeListServices.cs → 学校扩展文件/EMIS.ExtensionLogic.LCNX/ServiceLogic/DegreeManage/DegreeListServices.cs


EMIS.ExtensionLogic.LCNX/ServiceLogic/EnrollManage/NewStudentCollegeServices.cs → 学校扩展文件/EMIS.ExtensionLogic.LCNX/ServiceLogic/EnrollManage/NewStudentCollegeServices.cs


EMIS.ExtensionLogic.LCNX/ServiceLogic/EnrollManage/RecruitSpecialtyServices.cs → 学校扩展文件/EMIS.ExtensionLogic.LCNX/ServiceLogic/EnrollManage/RecruitSpecialtyServices.cs


EMIS.ExtensionLogic.LCNX/ServiceLogic/ExaminationManage/ExaminationPlanServices.cs → 学校扩展文件/EMIS.ExtensionLogic.LCNX/ServiceLogic/ExaminationManage/ExaminationPlanServices.cs


EMIS.ExtensionLogic.LCNX/ServiceLogic/GraduationManage/GraduationApplyServices.cs → 学校扩展文件/EMIS.ExtensionLogic.LCNX/ServiceLogic/GraduationManage/GraduationApplyServices.cs


EMIS.ExtensionLogic.LCNX/ServiceLogic/GraduationManage/GraduationListServices.cs → 学校扩展文件/EMIS.ExtensionLogic.LCNX/ServiceLogic/GraduationManage/GraduationListServices.cs


EMIS.ExtensionLogic.LCNX/ServiceLogic/StudentManage/StudentServices.cs → 学校扩展文件/EMIS.ExtensionLogic.LCNX/ServiceLogic/StudentManage/StudentServices.cs