HJGL_DS/HJGL_DS/FineUIPro.Web/Global.asax.cs

729 lines
34 KiB
C#
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

namespace FineUIPro.Web
{
using System;
using System.Configuration;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.Linq;
using System.IO;
using System.Net;
using System.Text;
using System.Threading;
using System.Web;
using BLL;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
public class Global : System.Web.HttpApplication
{
/// <summary>
/// 自动启用插件标志文件路径
/// </summary>
private static string applicationActiveFlagFilePhysicalPath = String.Empty;
protected void Application_Start(object sender, EventArgs e)
{
Application["OnlineUserCount"] = 0;
try
{
Funs.RootPath = Server.MapPath("~/");
// 日志文件所在目录
ErrLogInfo.DefaultErrLogFullPath = Server.MapPath("~/ErrLog.txt");
Funs.ConnString = ConfigurationManager.AppSettings["ConnectionString"];
Funs.SystemName = ConfigurationManager.AppSettings["SystemName"];
Funs.ADomainUrl = ConfigurationManager.AppSettings["ADomainUrl"];
Funs.APPUrl = ConfigurationManager.AppSettings["APPUrl"];
Funs.SystemCode = ConfigurationManager.AppSettings["SystemCode"];
Funs.HJGLUrl = ConfigurationManager.AppSettings["HJGLUrl"];
}
catch (Exception ex)
{
ErrLogInfo.WriteLog(ex);
AppDomain.Unload(AppDomain.CurrentDomain);
}
// 开启线程
System.Threading.Thread LoadServiceData = new System.Threading.Thread(new System.Threading.ThreadStart(WelderIsSync));
LoadServiceData.Start();
}
private void WelderIsSync()
{
//定义一个定时器,并开启和配置相关属性
System.Timers.Timer Wtimer = new System.Timers.Timer();
//执行任务的周期 ,20分钟
Wtimer.Interval = 1000 * 60 * 60;
Wtimer.Enabled = true;
Wtimer.Start();
Wtimer.Elapsed += new System.Timers.ElapsedEventHandler(Wtimer_Elapsed);
}
void Wtimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
// 得到 hour minute second 如果等于某个值就开始执行某个程序。
int intHour = e.SignalTime.Hour;
int intMinute = e.SignalTime.Minute;
// 要执行的代码
var welders = from x in Funs.DB.OAM_User where (x.IsSync == null || x.IsSync == false) && x.MID_Code != null && x.MID_Code != string.Empty select x;
var quas = from x in Funs.DB.OAM_UesrQualified where (x.IsSync == null || x.IsSync == false) && (x.IsDelete == false || x.IsDelete == null) select x;
foreach (var q in welders)
{
var s = from x in Funs.DB.HJGL_BS_Welder where x.IdentityCard == q.MID_IdentityCard select x;
var u = BLL.Base_UnitService.GetUnit2(q.MID_Unit);
if (u != null)
{
Model.HJGL_BS_Welder newWelder = new Model.HJGL_BS_Welder();
newWelder.WED_Code = q.MID_Code;
newWelder.WED_Name = q.MID_Name;
newWelder.WED_Unit = u.UnitId;
newWelder.WED_Sex = q.MID_Sex;
newWelder.IdentityCard = q.MID_IdentityCard;
newWelder.WED_WorkCode = q.MID_WordCode;
newWelder.WED_IfOnGuard = q.MID_IfOnGuard;
newWelder.WED_Remark = q.MID_Remark;
newWelder.MaxHanTiao = q.MID_HanTiao;
newWelder.MaxWeldingWire = q.MID_WeldingWire;
newWelder.IsOAM = true;
if (s.Count() > 0)
{
newWelder.WED_ID = s.First().WED_ID;
BLL.HJGL_PersonManageService.UpdateBSWelder(newWelder);
}
else
{
BLL.HJGL_PersonManageService.AddBSWelder(newWelder);
}
// 回写表OAM_User
string identityCard = q.MID_IdentityCard;
bool isSync = true;
BLL.HJGL_WelderQualifiedProjectService.UpdateOAWelder(identityCard, isSync);
}
}
//更新单位变更情况
var allWelders = from x in Funs.DB.OAM_User select x;
foreach (var q in allWelders)
{
var u = BLL.Base_UnitService.GetUnit2(q.MID_Unit);
var w = BLL.HJGL_PersonManageService.GetWelderByIdentityCard(q.MID_IdentityCard);
if (u != null && w != null)
{
w.WED_Unit = u.UnitId;
w.WED_IfOnGuard = q.IsUsed;
BLL.HJGL_PersonManageService.UpdateBSWelder(w);
}
}
foreach (var q in quas)
{
var s = from x in Funs.DB.HJGL_BS_Welder where x.WED_Code == q.MIDWelder_Code select x;
if (s.Count() > 0)
{
if (!string.IsNullOrEmpty(q.MIDWelder_QualifiedProjectCode))
{
if (q.MIDWelder_QualifiedProjectCode.Contains("+"))
{
string[] codes = q.MIDWelder_QualifiedProjectCode.Split('+');
foreach (string c in codes)
{
var oldCode = from x in Funs.DB.HJGL_BS_WelderQualifiedProject where x.WED_ID == s.First().WED_ID && x.QualifiedProjectCode == c && x.LimitDate.Value.Date == q.MIDWelder_LimitDate.Value.Date select x;
if (oldCode.Count() == 0)
{
Model.HJGL_BS_WelderQualifiedProject welderQualifiedProject = new Model.HJGL_BS_WelderQualifiedProject();
welderQualifiedProject.WelderQualifiedProjectId = SQLHelper.GetNewID(typeof(Model.HJGL_BS_WelderQualifiedProject));
welderQualifiedProject.WED_ID = s.First().WED_ID;
welderQualifiedProject.QualifiedProjectCode = c;
welderQualifiedProject.LimitDate = q.MIDWelder_LimitDate;
welderQualifiedProject.IsSteelStru = q.MIDWelder_sfxgjgbl;
welderQualifiedProject.IsDemoteUse = q.MIDWelder_jjsybl;
welderQualifiedProject.DemoteUseSteelType = q.MIDWelder_jjsy;
BLL.HJGL_WelderQualifiedProjectService.AddWelderQualifiedProject(welderQualifiedProject);
}
else
{
string welderQualifiedProjectId = oldCode.First().WelderQualifiedProjectId;
DateTime? limitDate = q.MIDWelder_LimitDate;
BLL.HJGL_WelderQualifiedProjectService.UpdateWelderQualifiedLimitDate(welderQualifiedProjectId, limitDate, q.MIDWelder_sfxgjgbl, q.MIDWelder_jjsybl, q.MIDWelder_jjsy);
}
}
}
else
{
var oldCode = from x in Funs.DB.HJGL_BS_WelderQualifiedProject where x.WED_ID == s.First().WED_ID && x.QualifiedProjectCode == q.MIDWelder_QualifiedProjectCode && x.LimitDate.Value.Date == q.MIDWelder_LimitDate.Value.Date select x;
if (oldCode.Count() == 0)
{
Model.HJGL_BS_WelderQualifiedProject welderQualifiedProject = new Model.HJGL_BS_WelderQualifiedProject();
welderQualifiedProject.WelderQualifiedProjectId = SQLHelper.GetNewID(typeof(Model.HJGL_BS_WelderQualifiedProject));
welderQualifiedProject.WED_ID = s.First().WED_ID;
welderQualifiedProject.QualifiedProjectCode = q.MIDWelder_QualifiedProjectCode;
welderQualifiedProject.LimitDate = q.MIDWelder_LimitDate;
welderQualifiedProject.IsSteelStru = q.MIDWelder_sfxgjgbl;
welderQualifiedProject.IsDemoteUse = q.MIDWelder_jjsybl;
welderQualifiedProject.DemoteUseSteelType = q.MIDWelder_jjsy;
BLL.HJGL_WelderQualifiedProjectService.AddWelderQualifiedProject(welderQualifiedProject);
}
else
{
string welderQualifiedProjectId = oldCode.First().WelderQualifiedProjectId;
DateTime? limitDate = q.MIDWelder_LimitDate;
BLL.HJGL_WelderQualifiedProjectService.UpdateWelderQualifiedLimitDate(welderQualifiedProjectId, limitDate, q.MIDWelder_sfxgjgbl, q.MIDWelder_jjsybl, q.MIDWelder_jjsy);
}
}
// 回写表OAM_UesrQualified
long welder_ID = q.MIDWelder_ID;
bool isSync = true;
BLL.HJGL_WelderQualifiedProjectService.UpdateOAWelderQue(welder_ID, isSync);
}
}
}
//更新资质删除情况
var allDeleteQuas = from x in Funs.DB.OAM_UesrQualified where x.IsDelete == true select x;
var allWelders2 = from x in Funs.DB.HJGL_BS_Welder select x;
foreach (var q in allDeleteQuas)
{
var s = allWelders2.FirstOrDefault(x => x.WED_Code == q.MIDWelder_Code);
if (s != null)
{
if (!string.IsNullOrEmpty(q.MIDWelder_QualifiedProjectCode))
{
if (q.MIDWelder_QualifiedProjectCode.Contains("+"))
{
string[] codes = q.MIDWelder_QualifiedProjectCode.Split('+');
foreach (string c in codes)
{
var oldCode = (from x in Funs.DB.HJGL_BS_WelderQualifiedProject where x.WED_ID == s.WED_ID && x.QualifiedProjectCode == c && x.LimitDate.Value.Date == q.MIDWelder_LimitDate.Value.Date select x).FirstOrDefault();
if (oldCode != null)
{
BLL.HJGL_WelderQualifiedProjectService.DeleteWelderQualifiedProjectByWelderQualifiedProjectId(oldCode.WelderQualifiedProjectId);
}
}
}
else
{
var oldCode = (from x in Funs.DB.HJGL_BS_WelderQualifiedProject where x.WED_ID == s.WED_ID && x.QualifiedProjectCode == q.MIDWelder_QualifiedProjectCode && x.LimitDate.Value.Date == q.MIDWelder_LimitDate.Value.Date select x).FirstOrDefault();
if (oldCode != null)
{
BLL.HJGL_WelderQualifiedProjectService.DeleteWelderQualifiedProjectByWelderQualifiedProjectId(oldCode.WelderQualifiedProjectId);
}
}
}
}
}
var que = from x in Funs.DB.HJGL_BS_WelderQualifiedProject select x;
if (que.Count() > 0)
{
foreach (var q in que)
{
string weldMethod = string.Empty;
string materialType = string.Empty;
string location = string.Empty;
string weldType = string.Empty;
decimal thicknessMax = 0; // 0表示不限
decimal sizesMin = 0; // 0表示不限
string materialTypeName = string.Empty;
string[] queProject = q.QualifiedProjectCode.Split('-');
// 焊接方法和钢材类型
weldMethod = queProject[0].Trim();
if (queProject.Count() > 1)
{
if (q.IsDemoteUse == true)
{
string[] demoteUseSteelType = q.DemoteUseSteelType.Split(',');
if (demoteUseSteelType.Count() > 0)
{
foreach (string type in demoteUseSteelType)
{
if (type == "FeIV" || type == "FeⅣ")
{
materialType = materialType + "FeⅣ" + ",";
materialTypeName = materialTypeName + "铬钼钢" + ",";
}
if (type == "FeIII" || type == "FeⅢ")
{
materialType = materialType + "FeⅢ" + ",";
materialTypeName = materialTypeName + "合金钢" + ",";
}
if (type == "FeII" || type == "FeⅡ")
{
materialType = materialType + "FeⅡ" + ",";
materialTypeName = materialTypeName + "不锈钢" + ",";
}
if (type == "FeI" || type == "Fe")
{
materialType = materialType + "Fe" + ",";
materialTypeName = materialTypeName + "碳钢" + ",";
}
}
if (materialType.Length > 0 && materialTypeName.Length > 0)
{
materialType = materialType.Substring(0, materialType.Length - 1);
materialTypeName = materialTypeName.Substring(0, materialTypeName.Length - 1);
}
}
}
else
{
if (weldMethod.Contains("GTAW") || weldMethod.Contains("SAW"))
{
if (queProject[1].Trim() == ("FeI") || queProject[1].Trim() == ("Fe"))
{
materialType = "Fe";
materialTypeName = "碳钢";
}
else if (queProject[1].Trim() == ("FeII") || queProject[1].Trim() == ("FeⅡ"))
{
materialType = "FeⅡ,Fe";
materialTypeName = "不锈钢,碳钢";
}
else if (queProject[1].Trim() == ("FeIII") || queProject[1].Trim() == ("FeⅢ"))
{
materialType = "FeⅢ";
materialTypeName = "合金钢";
}
else if (queProject[1].Trim() == ("FeIV") || queProject[1].Trim() == ("FeⅣ"))
{
materialType = "FeⅣ";
materialTypeName = "铬钼钢";
}
else if (queProject[1].Trim().Contains("Ni"))
{
materialType = "Ni,NiⅣ,NiⅢ,NiⅡ,Ni";
materialTypeName = "镍基合金";
}
else if (queProject[1].Trim().Contains("P61"))
{
materialType = "Zr3";
materialTypeName = "其它";
}
else if (queProject[1].Trim().Contains("P62"))
{
materialType = "Zr5";
materialTypeName = "其它";
}
else if (queProject[1].Trim().Contains("TiⅡ"))
{
materialType = "TiⅡ,Ti";
materialTypeName = "钛合金";
}
else if (queProject[1].Trim().Contains("Ti"))
{
materialType = "Ti";
materialTypeName = "钛合金";
}
else
{
materialType = "FeⅣ,FeⅢ,FeⅡ,Fe";
materialTypeName = "其它";
}
}
else if (weldMethod.Contains("SMAW") || weldMethod.Contains("GMAW") || weldMethod.Contains("FCAW"))
{
if (queProject[1].Trim() == ("FeI") || queProject[1].Trim() == ("Fe"))
{
materialType = "Fe";
materialTypeName = "碳钢";
}
else if (queProject[1].Trim() == ("FeII") || queProject[1].Trim() == ("FeⅡ"))
{
materialType = "FeⅡ,Fe";
materialTypeName = "不锈钢,碳钢";
}
else if (queProject[1].Trim() == ("FeIII") || queProject[1].Trim() == ("FeⅢ"))
{
materialType = "FeⅢ,FeⅡ,Fe";
materialTypeName = "合金钢,不锈钢,碳钢";
}
else if (queProject[1].Trim() == ("FeIV") || queProject[1].Trim() == ("FeⅣ"))
{
materialType = "FeⅣ";
materialTypeName = "铬钼钢";
}
else if (queProject[1].Trim().Contains("Ni"))
{
materialType = "Ni,NiⅣ,NiⅢ,NiⅡ,Ni";
materialTypeName = "镍基合金";
}
else if (queProject[1].Trim().Contains("P61"))
{
materialType = "Zr3";
materialTypeName = "其它";
}
else if (queProject[1].Trim().Contains("P62"))
{
materialType = "Zr5";
materialTypeName = "其它";
}
else if (queProject[1].Trim().Contains("TiⅡ"))
{
materialType = "TiⅡ,Ti";
materialTypeName = "钛合金";
}
else if (queProject[1].Trim().Contains("Ti"))
{
materialType = "Ti";
materialTypeName = "钛合金";
}
else
{
materialType = queProject[1].Trim();
materialTypeName = "其它";
}
}
else
{
if (queProject[1].Trim().Contains("Ni"))
{
materialType = "Ni,NiⅣ,NiⅢ,NiⅡ,Ni";
materialTypeName = "镍基合金";
}
else if (queProject[1].Trim().Contains("P61"))
{
materialType = "Zr3";
materialTypeName = "其它";
}
else if (queProject[1].Trim().Contains("P62"))
{
materialType = "Zr5";
materialTypeName = "其它";
}
else if (queProject[1].Trim().Contains("TiⅡ"))
{
materialType = "TiⅡ,Ti";
materialTypeName = "钛合金";
}
else if (queProject[1].Trim().Contains("Ti"))
{
materialType = "Ti";
materialTypeName = "钛合金";
}
else
{
materialType = queProject[1].Trim();
materialTypeName = "其它";
}
}
}
}
if (queProject.Count() > 2)
{
// 焊接位置
if (queProject[2].Contains("6G"))
{
location = "ALL";
}
else if (queProject[2].Contains("2G"))
{
location = "1G,2G";
}
else if (queProject[2].Contains("3G"))
{
location = "1G,2G,3G";
}
else if (queProject[2].Contains("4G"))
{
location = "1G,3G,4G";
}
else if (queProject[2].Contains("5G"))
{
location = "1G,2G,3G,5G";
}
else if (queProject[2].Contains("6FG"))
{
location = "ALL";
}
else if (queProject[2].Contains("5FG"))
{
location = "2FG,5FG";
}
else if (queProject[2].Contains("4FG"))
{
location = "2FG,4FG";
}
else
{
location = queProject[2].Trim();
if (weldMethod.Contains("GTAW") || weldMethod.Contains("SAW"))
{
location = queProject[1].Trim();
}
}
// 1-对接2-角焊缝3-支管连接焊缝
if (queProject[2].Contains("FG"))
{
weldType = "2,3";
}
else
{
weldType = "1,2";
}
}
if (queProject.Count() > 3)
{
// 壁厚和外径
string[] thickSize = queProject[3].Split('/');
if (thickSize.Count() == 2)
{
double t = 0.0;
double s = 0.0;
if (double.TryParse(thickSize[0], out t))
{
decimal thick = Convert.ToDecimal(t);
if (thick < 12)
{
//thicknessMax = "≤" + thick * 2;
thicknessMax = thick * 2;
}
else
{
thicknessMax = 0;
}
}
if (double.TryParse(thickSize[1], out s))
{
decimal size = Convert.ToDecimal(s);
if (size < 25)
{
//sizesMin = "≥" + size;
sizesMin = size;
}
else if (size >= 25 && size < 76)
{
//sizesMin = "≥25";
sizesMin = 25;
}
else
{
//sizesMin = "≥76";
sizesMin = 76;
}
}
}
else if (thickSize.Count() == 1)
{
thicknessMax = 0;
//sizesMin = "≥76";
sizesMin = 76;
}
}
if (queProject.Count() > 4)
{
if (queProject[4].Contains("Ni"))
{
materialType = "Ni,NiⅣ,NiⅢ,NiⅡ,Ni";
materialTypeName = "镍基合金";
}
}
Model.HJGL_BS_WelderQualifiedProject updateQue = new Model.HJGL_BS_WelderQualifiedProject();
updateQue.WelderQualifiedProjectId = q.WelderQualifiedProjectId;
updateQue.WED_ID = q.WED_ID;
updateQue.QualifiedProjectCode = q.QualifiedProjectCode;
updateQue.LimitDate = q.LimitDate;
updateQue.WeldingMethodId = weldMethod;
updateQue.MaterialType = materialType;
updateQue.WeldingLocationId = location;
updateQue.WeldType = weldType;
updateQue.ThicknessMax = thicknessMax;
updateQue.SizesMin = sizesMin;
updateQue.MaterialTypeName = materialTypeName;
BLL.HJGL_WelderQualifiedProjectService.UpdateWelderQualifiedProject(updateQue);
}
}
bool b = false;
string orderTime = string.Empty;
if (intHour == 8)
{
orderTime = "7:00 - 8:00";
}
else if (intHour == 9)
{
orderTime = "8:00 - 9:00";
}
else if (intHour == 10)
{
orderTime = "9:00 - 10:00";
}
else if (intHour == 11)
{
orderTime = "10:00 - 11:00";
}
else if (intHour == 12)
{
orderTime = "11:00 - 12:00";
}
else if (intHour == 13)
{
orderTime = "12:00 - 13:00";
}
else if (intHour == 14)
{
orderTime = "13:00 - 14:00";
}
else if (intHour == 15)
{
orderTime = "14:00 - 15:00";
}
else if (intHour == 16)
{
orderTime = "15:00 - 16:00";
}
else if (intHour == 17)
{
orderTime = "16:00 - 17:00";
}
else if (intHour == 18)
{
orderTime = "17:00 - 18:00";
}
else if (intHour == 19)
{
orderTime = "18:00 - 19:00";
}
else if (intHour == 20)
{
orderTime = "19:00 - 20:00";
}
else if (intHour == 21)
{
orderTime = "20:00 - 21:00";
}
if (!string.IsNullOrEmpty(orderTime))
{
b = true;
}
if (b)
{
string lastPlan = @"SELECT p.UsingPlanId FROM dbo.Weld_UsingPlan p
WHERE p.OrderDate<CONVERT(char(10),GetDate(),120)
AND p.IsCancel=0 AND OrderTime=@OrderTime
AND (SELECT COUNT(*) FROM dbo.Weld_UsingMat u WHERE u.UsingPlanId=p.UsingPlanId)=0";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@OrderTime", orderTime));
SqlParameter[] parameter = listStr.ToArray();
DataTable dt = SQLHelper.GetDataTableRunText(lastPlan, parameter);
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
string usingPlanId = dt.Rows[i]["UsingPlanId"].ToString();
BLL.UsingPlanService.UpdateIsCancel(usingPlanId, "超时未领用");
}
}
}
}
protected void Session_Start(object sender, EventArgs e)
{
Session.Timeout = 36000;
// 这种统计在线人数的做法会有一定的误差
Application.Lock();
Application["OnlineUserCount"] = (int)Application["OnlineUserCount"] + 1;
Application.UnLock();
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
}
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
}
protected void Application_Error(object sender, EventArgs e)
{
StringBuilder errLog = null;
Exception ex = null;
try
{
// 获取错误类
ex = Server.GetLastError().InnerException;
if (ex == null)
{
ex = Server.GetLastError().GetBaseException();
}
errLog = new StringBuilder();
errLog.Append(String.Format(CultureInfo.InvariantCulture, "出错文件:{0}\r\n", Request.Url.AbsoluteUri));
if (Request.UserHostAddress != null)
{
errLog.Append(String.Format(CultureInfo.InvariantCulture, "IP地址:{0}\r\n", Request.UserHostAddress));
}
if (Session != null && Session["CurrUser"] != null)
{
errLog.Append(String.Format(CultureInfo.InvariantCulture, "操作人员:{0}\r\n", BLL.Sys_UserService.GetUsersByUserId(((Model.Sys_User)Session["CurrUser"]).UserId).UserName));
}
else
{
PageBase.ZXRefresh(Request.ApplicationPath + "/LogOff.aspx");
}
if (ex is HttpRequestValidationException)
{
PageBase.ZXRefresh(Request.ApplicationPath + "/Wrong.aspx?Message=0");
}
else if (ex is FriendlyException)
{
PageBase.ZXRefresh(Request.ApplicationPath + "/Wrong.aspx?MessageText=" + ex.Message);
}
}
catch
{
try
{
PageBase.ZXRefresh(Request.ApplicationPath + "/OperationError.aspx");
}
catch
{
}
}
finally
{
ErrLogInfo.WriteLog(ex, errLog == null ? null : errLog.ToString());
Server.ClearError();
PageBase.ZXRefresh(Request.ApplicationPath + "/OperationError.aspx");
}
}
protected void Session_End(object sender, EventArgs e)
{
}
protected void Application_End(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(1000);
string RequestURL = "http://hjgl.izpje.com:88/";
//这里设置你的web地址可以随便指向你的任意一个aspx页面甚至不存在的页面目的是要激发Application_Start
HttpWebRequest __HttpWebRequest = (HttpWebRequest)WebRequest.Create(RequestURL);
HttpWebResponse __HttpWebResponse = (HttpWebResponse)__HttpWebRequest.GetResponse();
Stream __rStream = __HttpWebResponse.GetResponseStream();//得到回写的字节流
//当不再需要计时器时,请使用 Dispose 方法释放计时器持有的资源。
__rStream.Close();
__rStream.Dispose();
}
}
}