作业票

This commit is contained in:
夏菊 2026-03-05 15:18:57 +08:00
parent bdf83e0509
commit 170f26497c
25 changed files with 886 additions and 359 deletions

View File

@ -0,0 +1,71 @@
--稿
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'License_LicenseManager' AND COLUMN_NAME = 'SourceDes')
BEGIN
ALTER TABLE License_LicenseManager ADD SourceDes nvarchar(500);
END
GO
----稿
--IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'License_LicenseManager' AND COLUMN_NAME = 'LicenseCodes')
--BEGIN
-- ALTER TABLE License_LicenseManager ADD LicenseCodes nvarchar(50);
--END
--GO
ALTER VIEW [dbo].[View_License_LicenseManager]
AS
/*现场安全许可证*/
SELECT LicenseManager.LicenseManagerId,
LicenseManager.ProjectId,
LicenseManager.LicenseTypeId,
LicenseManager.LicenseManagerCode,
LicenseManager.LicenseManageName,
LicenseManager.UnitId,
LicenseManager.LicenseManageContents,
LicenseManager.CompileMan,
LicenseManager.CompileDate,
LicenseManager.States,
Project.ProjectCode,
Project.ProjectName,
LicenseType.LicenseTypeName,
Unit.UnitName,
UnitType.UnitTypeId,
UnitType.UnitTypeName,
Users.UserName,
LicenseManager.WorkAreaId,
--WorkArea.WorkAreaName,
LicenseManager.StartDate,
LicenseManager.EndDate,
LicenseManager.ApplicantMan,
LicenseManager.IsHighRisk,
LicenseManager.WorkStates,
LicenseManager.IsUpdate,
LicenseManager.SourceDes,
case LicenseManager.WorkStates when '1' then '待开工'
when '2' then '作业中'
when '3' then '已关闭'
when '-1' then '已取消'
else '' end as WorkStatesStr,
WorkAreaName = STUFF(( SELECT ',' + UnitWorkName FROM WBS_UnitWork
where PATINDEX('%,' + RTRIM(WBS_UnitWork.UnitWorkId) + ',%',',' + LicenseManager.WorkAreaId + ',')>0
ORDER BY PATINDEX('%,' + RTRIM(LicenseManager.WorkAreaId) + ',%',',' + LicenseManager.WorkAreaId + ',')
FOR XML PATH('')), 1, 1,'')
FROM dbo.License_LicenseManager AS LicenseManager
LEFT JOIN dbo.Base_Project AS Project ON Project.ProjectId = LicenseManager.ProjectId
LEFT JOIN dbo.Base_LicenseType AS LicenseType ON LicenseType.LicenseTypeId = LicenseManager.LicenseTypeId
LEFT JOIN dbo.Base_Unit AS Unit ON Unit.UnitId = LicenseManager.UnitId
LEFT JOIN dbo.Sys_User AS Users ON Users.UserId = LicenseManager.CompileMan
LEFT JOIN dbo.WBS_UnitWork AS WorkArea ON WorkArea.UnitWorkId = LicenseManager.WorkAreaId
LEFT JOIN dbo.Base_UnitType as UnitType ON UnitType.UnitTypeId=Unit.UnitTypeId
GO

View File

@ -317,6 +317,7 @@
<Compile Include="DataShare\APIDataShareSyncService.cs" />
<Compile Include="DataShare\HSSE\APICheckSpecialSyncService.cs" />
<Compile Include="DataShare\HSSE\APIHazardRegisterSyncService.cs" />
<Compile Include="DataShare\HSSE\APILicenseSyncService.cs" />
<Compile Include="DataShare\HSSE\APIMeetingSyncService.cs" />
<Compile Include="DataShare\HSSE\APIPersonSyncService.cs" />
<Compile Include="DCGL\ServerCheck\DCGLCheckNoticeItemService.cs" />

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectView>ShowAllFiles</ProjectView>
<ProjectView>ProjectFiles</ProjectView>
</PropertyGroup>
</Project>

View File

@ -1,8 +1,8 @@
using System.Linq;
using System;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Threading.Tasks;
@ -37,7 +37,7 @@ namespace BLL
ProjectId = projectId,
UnitId = unitId,
TeamGroupName = TeamGroupName,
Remark = "导入"
Remark = "分包数据同步导入"
};
TeamGroupService.AddTeamGroup(newTeamGroup);
TeamGroupId = newTeamGroup.TeamGroupId;
@ -53,6 +53,49 @@ namespace BLL
#endregion
#region
/// <summary>
/// 获取作业票许可证类型Id
/// </summary>
/// <param name="LicenseTypeId"></param>
/// <param name="LicenseTypeCode"></param>
/// <param name="LicenseTypeName"></param>
/// <returns></returns>
public static string GetLicenseTypeId(string LicenseTypeId, string LicenseTypeCode, string LicenseTypeName)
{
string Id = null;
if (!string.IsNullOrEmpty(LicenseTypeName))
{
var obj = Funs.DB.Base_LicenseType.Where(x => x.LicenseTypeName == LicenseTypeName).ToList();
if (obj.Count == 0)
{
string newId = LicenseTypeId;
var type = Funs.DB.Base_LicenseType.Where(x => x.LicenseTypeId == LicenseTypeId).FirstOrDefault();
if (type == null)
{
newId = SQLHelper.GetNewID(typeof(Model.Base_LicenseType));
}
Model.Base_LicenseType newModel = new Model.Base_LicenseType
{
LicenseTypeId = newId,
LicenseTypeCode = LicenseTypeCode,
LicenseTypeName = LicenseTypeName,
Remark = "分包数据同步导入"
};
LicenseTypeService.AddLicenseType(newModel);
Id = newId;
}
else
{
Id = obj.FirstOrDefault().LicenseTypeId;
}
}
return Id;
}
#endregion
#region

View File

@ -0,0 +1,262 @@
using Model;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections;
using System.Linq;
using System.Runtime.InteropServices.ComTypes;
namespace BLL
{
/// <summary>
/// 作业票数据共享互通
/// </summary>
public class APILicenseSyncService
{
#region
/// <summary>
/// 推送分包作业票定稿数据
/// </summary>
/// <param name="projectId">项目Id</param>
/// <param name="dataId">作业票定稿数据Id为空的时候推送全部</param>
/// <returns></returns>
public static ReturnData PushLicenseManagerLists(string projectId, string dataId = "")
{
Model.ReturnData responeData = new Model.ReturnData();
responeData.code = 0;
responeData.message = string.Empty;
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
try
{
var list = from x in db.View_License_LicenseManager where x.ProjectId == projectId select x;
if (!string.IsNullOrWhiteSpace(dataId))
{
list = list.Where(x => x.LicenseManagerId == dataId);
}
var dataList = (from x in list
join blt in db.Base_LicenseType on x.LicenseTypeId equals blt.LicenseTypeId into bltGroup
from blt in bltGroup.DefaultIfEmpty()
join su in db.Sys_User on x.CompileMan equals su.UserId into sUser
from su in sUser.DefaultIfEmpty()
//join uw in db.WBS_UnitWork on x.WorkAreaId equals uw.UnitWorkId into uwGroup
//from uw in uwGroup.DefaultIfEmpty()
join att in db.AttachFile on x.LicenseManagerId equals att.ToKeyId into attTemp
from att in attTemp.DefaultIfEmpty()
join att1 in db.AttachFile on (x.LicenseManagerId + "_GB") equals att1.ToKeyId into att1Temp
from att1 in att1Temp.DefaultIfEmpty()
orderby x.CompileDate descending
select new LicenseManagerItem
{
ProjectId = x.ProjectId,
UnitId = x.UnitId,
LicenseManagerId = x.LicenseManagerId,
LicenseManagerCode = x.LicenseManagerCode,
LicenseManageName = x.LicenseManageName,
LicenseTypeId = x.LicenseTypeId,
LicenseTypeCode = blt.LicenseTypeCode,
LicenseTypeName = blt.LicenseTypeName,
LicenseManageContents = x.LicenseManageContents,
CompileMan = x.CompileMan,
CompileManName = su.UserName,
CompileDate = x.CompileDate,
States = x.States,
WorkAreaId = x.WorkAreaId,
//UnitWorkCode = uw.UnitWorkCode,
//UnitWorkName = uw.UnitWorkName,
UnitWorkName = x.WorkAreaName,
StartDate = x.StartDate,
EndDate = x.EndDate,
ApplicantMan = x.ApplicantMan,
WorkStates = x.WorkStates,
IsHighRisk = x.IsHighRisk,
//LicenseCodes = x.LicenseCodes,
SourceDes = x.SourceDes,
//AttachUrl = AttachFileService.getFileUrl(x.LicenseManagerId),//附件
//AttachUrl1 = AttachFileService.getFileUrl(x.LicenseManagerId + "_GB"),//关闭附件
AttachFileId = att.AttachFileId,
ToKeyId = att.ToKeyId,
AttachSource = att.AttachSource,
AttachUrl = att.AttachUrl,
AttachFileId1 = att1.AttachFileId,
ToKeyId1 = att1.ToKeyId,
AttachSource1 = att1.AttachSource,
AttachUrl1 = att1.AttachUrl,
}).ToList();
if (dataList.Count() > 0)
{
var thisUnit = CommonService.GetIsThisUnit();
var porject = BLL.ProjectService.GetProjectByProjectId(projectId);
var pushData = new LicenseManagerData
{
CollCropCode = thisUnit.CollCropCode,//分包单位社会统一信用码
UnitId = thisUnit.UnitId,//分包单位Id
UnitName = thisUnit.UnitName,//分包单位名称
ShortUnitName = thisUnit.ShortUnitName,//分包单位简称
UnitDomain = Funs.SGGLUrl,//分包单位域名地址【文件存储地址】
SubjectUnit = porject.SubjectUnit,//主包单位Id
SubjectProject = porject.SubjectProject,//主包项目Id
Items = dataList//数据
};
var pushContent = JsonConvert.SerializeObject(pushData);
//获取总包单位接口apiurl地址
var Url = BLL.UnitService.getUnitApiUrlByUnitId(porject.SubjectUnit);
var ApiUrl = string.Empty;
var WebUrl = string.Empty;
if (Url != null)
{
var urls = Url.Split(',');
ApiUrl = urls[0];
if (urls.Length > 1)
{
WebUrl = urls[1];
}
}
var baseurl = $"{ApiUrl}/api/LicenseSync/ReceiveSaveProjectLicenseManagerData";
string contenttype = "application/json;charset=unicode";
//Hashtable newToken = new Hashtable
//{
// { "token", ServerService.GetToken().Token }
//};
var returndata = APIGetHttpService.Http(baseurl, "Post", contenttype, null, pushContent);
if (!string.IsNullOrEmpty(returndata))
{
JObject obj = JObject.Parse(returndata);
string mess = obj["message"].ToString();
string code = obj["code"].ToString();
}
}
else
{
responeData.message = "当前项目没有作业票定稿数据";
}
}
catch (Exception ex)
{
responeData.message = "同步到总包单位失败!";
ErrLogInfo.WriteLog("【作业票定稿】同步到总包单位失败!", ex);
}
}
return responeData;
}
#endregion
#region
/// <summary>
/// 总包单位接收保存分包单位推送的作业票定稿数据
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static string ReceiveSaveProjectLicenseManagerData(LicenseManagerData data)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
string result = string.Empty;
if (data.Items.Count() > 0)
{
//var jsonData = JsonConvert.SerializeObject(data);
//ErrLogInfo.WriteLog($"【作业票定稿接收数据】{jsonData}");
//1、判断分包单位是否存在
var unit = UnitService.getUnitByCollCropCodeUnitName(data.CollCropCode, data.UnitName);
if (unit == null)
{
result = "总包单位不存在本单位,请登录总包系统检查维护本单位信息!";
}
else
{
//2、判断主包项目是否存在
var porject = BLL.ProjectService.GetProjectByProjectId(data.SubjectProject);
if (porject == null)
{
result = "总包单位不存在本项目,请检查总包项目关联是否正确!";
}
else
{
int succ = 0;
//3、保存数据
foreach (var item in data.Items)
{
try
{
var model= db.License_LicenseManager.FirstOrDefault(e => e.LicenseManagerId == item.LicenseManagerId);
if (model != null)
{//编辑
model.ProjectId = data.SubjectProject;
model.UnitId = unit.UnitId;
model.LicenseManagerCode = item.LicenseManagerCode;
model.LicenseManageName = item.LicenseManageName;
//model.LicenseTypeId = item.LicenseTypeId;
model.LicenseTypeId = APIDataShareSyncService.GetLicenseTypeId(item.LicenseTypeId, item.LicenseTypeCode, item.LicenseTypeName);
//model.LicenseManageContents = HttpUtility.HtmlEncode(item.LicenseManageContents);
model.LicenseManageContents = item.LicenseManageContents;
model.States = item.States;
model.StartDate = item.StartDate;
model.EndDate = item.EndDate;
model.ApplicantMan = item.ApplicantMan;
model.IsHighRisk = item.IsHighRisk;
model.WorkStates = item.WorkStates;
model.SourceDes = $"{(!string.IsNullOrWhiteSpace(data.ShortUnitName) ? data.ShortUnitName : data.UnitName)}#{item.CompileManName}#单位工程:{item.UnitWorkName}";
model.CompileDate = item.CompileDate;
//model.CompileMan = item.CompileMan;
db.SubmitChanges();
}
else
{//新增
Model.License_LicenseManager newModel = new Model.License_LicenseManager();
newModel.LicenseManagerId = item.LicenseManagerId;
newModel.ProjectId = data.SubjectProject;
newModel.UnitId = unit.UnitId;
newModel.LicenseManagerCode = item.LicenseManagerCode;
newModel.LicenseManageName = item.LicenseManageName;
//newModel.LicenseTypeId = item.LicenseTypeId;
newModel.LicenseTypeId = APIDataShareSyncService.GetLicenseTypeId(item.LicenseTypeId, item.LicenseTypeCode, item.LicenseTypeName);
//newModel.LicenseManageContents = HttpUtility.HtmlEncode(item.LicenseManageContents);
newModel.LicenseManageContents = item.LicenseManageContents;
newModel.States = item.States;
newModel.StartDate = item.StartDate;
newModel.EndDate = item.EndDate;
newModel.ApplicantMan = item.ApplicantMan;
newModel.IsHighRisk = item.IsHighRisk;
newModel.WorkStates = item.WorkStates;
newModel.SourceDes = $"{(!string.IsNullOrWhiteSpace(data.ShortUnitName) ? data.ShortUnitName : data.UnitName)}#{item.CompileManName}#单位工程:{item.UnitWorkName}";
newModel.CompileDate = item.CompileDate;
//newModel.CompileMan = item.CompileMan;
db.License_LicenseManager.InsertOnSubmit(newModel);
db.SubmitChanges();
}
succ++;
//ErrLogInfo.WriteLog($"【作业票定稿接收数据——内容附件】UnitDomain{data.UnitDomain}AttachFileId{item.AttachFileId}ToKeyId{item.ToKeyId}AttachSource{item.AttachSource}AttachUrl{item.AttachUrl}");
//附件处理:附件
BLL.FileInsertService.SaveAttachFileRecords(data.UnitDomain, item.AttachFileId, item.ToKeyId, item.AttachSource, item.AttachUrl);
//附件处理:关闭附件
BLL.FileInsertService.SaveAttachFileRecords(data.UnitDomain, item.AttachFileId1, item.ToKeyId1, item.AttachSource1, item.AttachUrl1);
}
catch (Exception ex)
{
BLL.ErrLogInfo.WriteLog($"【{porject.ProjectName}】作业票定稿数据推送总包失败", ex.Message);
continue;
}
}
result = $"推送成功:总数{data.Items.Count()}条,成功{succ}条";
}
}
}
else
{
result = "推送数据对象为空!";
}
return result;
}
}
#endregion
}
}

View File

@ -118,12 +118,11 @@ namespace BLL
}
var baseurl = $"{ApiUrl}/api/MeetingSync/ReceiveSaveProjectClassMeetingData";
string contenttype = "application/json;charset=unicode";
Hashtable newToken = new Hashtable
{
{ "token", ServerService.GetToken().Token }
};
//var returndata = APIGetHttpService.Http(baseurl, "Post", contenttype, newToken, pushContent);
var returndata = "";
//Hashtable newToken = new Hashtable
//{
// { "token", ServerService.GetToken().Token }
//};
var returndata = APIGetHttpService.Http(baseurl, "Post", contenttype, null, pushContent);
if (!string.IsNullOrEmpty(returndata))
{
JObject obj = JObject.Parse(returndata);
@ -161,8 +160,8 @@ namespace BLL
string result = string.Empty;
if (data.Items.Count() > 0)
{
var jsonData = JsonConvert.SerializeObject(data);
ErrLogInfo.WriteLog($"【班前会接收数据】{jsonData}");
//var jsonData = JsonConvert.SerializeObject(data);
//ErrLogInfo.WriteLog($"【班前会接收数据】{jsonData}");
//1、判断分包单位是否存在
var unit = UnitService.getUnitByCollCropCodeUnitName(data.CollCropCode, data.UnitName);
if (unit == null)
@ -185,7 +184,7 @@ namespace BLL
{
try
{
var model = ClassMeetingService.GetClassMeetingById(item.ClassMeetingId);
var model = db.Meeting_ClassMeeting.FirstOrDefault(e => e.ClassMeetingId == item.ClassMeetingId);
if (model != null)
{//编辑
model.ProjectId = data.SubjectProject;

View File

@ -266,14 +266,14 @@ namespace BLL
/// </summary>
public static void InsertAttachFilesRecord(string attachFileId, string dataId, string attachSource, string attachUrl, List<byte[]> fileContext)
{
BLL.ErrLogInfo.WriteLog($"数据和附件插入到多附件表1");
//BLL.ErrLogInfo.WriteLog($"数据和附件插入到多附件表1");
if (!string.IsNullOrEmpty(attachFileId))
{
//多附件
var attachFile = Funs.DB.AttachFile.FirstOrDefault(x => x.ToKeyId == dataId);
if (attachFile == null)
{
BLL.ErrLogInfo.WriteLog($"数据和附件插入到多附件表2attachFile == null");
//BLL.ErrLogInfo.WriteLog($"数据和附件插入到多附件表2attachFile == null");
////插入附件文件
BLL.FileInsertService.FileMoreInsert(fileContext, attachUrl);
@ -289,10 +289,10 @@ namespace BLL
}
else
{
BLL.ErrLogInfo.WriteLog($"数据和附件插入到多附件表2attachFile != null");
//BLL.ErrLogInfo.WriteLog($"数据和附件插入到多附件表2attachFile != null");
if (attachFile.AttachUrl != attachUrl)
{
BLL.ErrLogInfo.WriteLog($"数据和附件插入到多附件表2attachFile != null attachFile.AttachUrl != attachUrl");
//BLL.ErrLogInfo.WriteLog($"数据和附件插入到多附件表2attachFile != null attachFile.AttachUrl != attachUrl");
/////删除附件文件
//BLL.UploadAttachmentService.DeleteFile(ConfigurationManager.AppSettings["localRoot"], attachFile.AttachUrl);
////插入附件文件

View File

@ -9,125 +9,139 @@
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
<f:Panel ID="Panel1" runat="server" Margin="5px" BodyPadding="5px" ShowBorder="false"
ShowHeader="false" Layout="VBox" BoxConfigAlign="Stretch">
<Items>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" Title="现场作业许可证" EnableCollapse="true"
runat="server" BoxFlex="1" DataKeyNames="LicenseManagerId" DataIDField="LicenseManagerId" AllowSorting="true"
SortField="LicenseManagerCode" SortDirection="DESC" EnableColumnLines="true" OnSort="Grid1_Sort" AllowPaging="true"
IsDatabasePaging="true" PageSize="10" OnPageIndexChange="Grid1_PageIndexChange" ForceFit="true"
EnableRowDoubleClickEvent="true" OnRowDoubleClick="Grid1_RowDoubleClick" EnableTextSelection="True">
<Toolbars>
<f:Toolbar ID="Toolbar2" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
<f:DropDownList runat="server" Label="类型" ID="drpLicenseType" EnableEdit="true"
AutoPostBack="true" OnSelectedIndexChanged="TextBox_TextChanged" Width="220px" LabelWidth="50px"
LabelAlign="right">
</f:DropDownList>
<f:DropDownList ID="drpUnit" runat="server" Label="单位" Width="260px" LabelWidth="50px"
EnableEdit="true" AutoPostBack="true" OnSelectedIndexChanged="TextBox_TextChanged">
</f:DropDownList>
<f:DropDownList ID="drpUnitType" runat="server" Label="单位类型" Width="180px" LabelWidth="80px"
EnableEdit="true" AutoPostBack="true" OnSelectedIndexChanged="TextBox_TextChanged">
</f:DropDownList>
<f:DatePicker ID="txtStartDate" runat="server" Label="许可证时间" AutoPostBack="true" OnTextChanged="TextBox_TextChanged"
Width="220px" EmptyText="开始时间" LabelAlign="Right" EnableEdit="true" LabelWidth="90px">
</f:DatePicker>
<f:Label ID="lblTo" runat="server" Text="至">
</f:Label>
<f:DatePicker ID="txtEndDate" runat="server" AutoPostBack="true" OnTextChanged="TextBox_TextChanged"
Width="150px" EmptyText="结束时间" LabelWidth="80px">
</f:DatePicker>
<f:ToolbarFill ID="ToolbarFill1" runat="server">
</f:ToolbarFill>
<f:Button ID="btnNew" ToolTip="新增" Icon="Add" EnablePostBack="false" Hidden="true" Text="新增"
runat="server">
</f:Button>
<f:Button ID="btnOut" OnClick="btnOut_Click" runat="server" ToolTip="导出" Icon="FolderUp" Text="导出"
EnableAjax="false" DisableControlBeforePostBack="false">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:TemplateField ColumnID="tfNumber" Width="55px" HeaderText="序号" HeaderTextAlign="Center"
TextAlign="Center">
<ItemTemplate>
<asp:Label ID="lblNumber" runat="server" Text='<%# Grid1.PageIndex * Grid1.PageSize + Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField Width="90px" ColumnID="LicenseManagerCode" DataField="LicenseManagerCode"
SortField="LicenseManagerCode" FieldType="String" HeaderText="编号" HeaderTextAlign="Center"
TextAlign="Left">
</f:RenderField>
<f:RenderField Width="125px" ColumnID="LicenseTypeName" DataField="LicenseTypeName"
SortField="LicenseTypeName" FieldType="String" HeaderText="类型" HeaderTextAlign="Center"
TextAlign="Left">
</f:RenderField>
<f:RenderField Width="240px" ColumnID="UnitName" DataField="UnitName" SortField="UnitName"
FieldType="String" HeaderText="申请单位" HeaderTextAlign="Center" TextAlign="Left" >
</f:RenderField>
<f:RenderField Width="125px" ColumnID="UnitTypeName" DataField="UnitTypeName" SortField="UnitTypeName"
FieldType="String" HeaderText="单位类型" HeaderTextAlign="Center" TextAlign="Left" >
</f:RenderField>
<f:RenderField Width="140px" ColumnID="WorkAreaName" DataField="WorkAreaName" SortField="WorkAreaName"
FieldType="String" HeaderText="单位工程" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:CheckBoxField Width="100px" SortField="IsHighRisk" RenderAsStaticField="true" DataField="IsHighRisk"
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
<f:Panel ID="Panel1" runat="server" Margin="5px" BodyPadding="5px" ShowBorder="false"
ShowHeader="false" Layout="VBox" BoxConfigAlign="Stretch">
<Items>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" Title="现场作业许可证" EnableCollapse="true"
runat="server" BoxFlex="1" DataKeyNames="LicenseManagerId" DataIDField="LicenseManagerId" AllowSorting="true"
SortField="LicenseManagerCode" SortDirection="DESC" EnableColumnLines="true" OnSort="Grid1_Sort" AllowPaging="true"
IsDatabasePaging="true" PageSize="10" OnPageIndexChange="Grid1_PageIndexChange" ForceFit="true"
EnableRowDoubleClickEvent="true" OnRowDoubleClick="Grid1_RowDoubleClick" EnableTextSelection="True">
<Toolbars>
<f:Toolbar ID="Toolbar2" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
<f:DropDownList runat="server" Label="类型" ID="drpLicenseType" EnableEdit="true"
AutoPostBack="true" OnSelectedIndexChanged="TextBox_TextChanged" Width="220px" LabelWidth="50px"
LabelAlign="right">
</f:DropDownList>
<f:DropDownList ID="drpUnit" runat="server" Label="单位" Width="260px" LabelWidth="50px"
EnableEdit="true" AutoPostBack="true" OnSelectedIndexChanged="TextBox_TextChanged">
</f:DropDownList>
<f:DropDownList ID="drpUnitType" runat="server" Label="单位类型" Width="180px" LabelWidth="80px"
EnableEdit="true" AutoPostBack="true" OnSelectedIndexChanged="TextBox_TextChanged">
</f:DropDownList>
<f:DatePicker ID="txtStartDate" runat="server" Label="许可证时间" AutoPostBack="true" OnTextChanged="TextBox_TextChanged"
Width="220px" EmptyText="开始时间" LabelAlign="Right" EnableEdit="true" LabelWidth="90px">
</f:DatePicker>
<f:Label ID="lblTo" runat="server" Text="至">
</f:Label>
<f:DatePicker ID="txtEndDate" runat="server" AutoPostBack="true" OnTextChanged="TextBox_TextChanged"
Width="150px" EmptyText="结束时间" LabelWidth="80px">
</f:DatePicker>
<f:DropDownList ID="drpStates" runat="server" Label="状态" LabelAlign="Right" AutoPostBack="true" OnSelectedIndexChanged="TextBox_TextChanged">
<f:ListItem Text="待开工" Value="1" />
<f:ListItem Text="作业中" Value="2" />
<f:ListItem Text="已关闭" Value="3" />
<f:ListItem Text="已取消" Value="-1" />
</f:DropDownList>
<f:RadioButtonList runat="server" ID="rbSource" Width="220px" Label="来源" LabelWidth="50px"
AutoPostBack="true" OnSelectedIndexChanged="TextBox_TextChanged" AutoColumnWidth="true">
<f:RadioItem Text="全部" Value="0" Selected="true" />
<f:RadioItem Text="系统内单位" Value="1" />
</f:RadioButtonList>
<f:ToolbarFill ID="ToolbarFill1" runat="server">
</f:ToolbarFill>
<f:Button ID="btnNew" ToolTip="新增" Icon="Add" EnablePostBack="false" Hidden="true" Text="新增"
runat="server">
</f:Button>
<f:Button ID="btnOut" OnClick="btnOut_Click" runat="server" ToolTip="导出" Icon="FolderUp" Text="导出"
EnableAjax="false" DisableControlBeforePostBack="false">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:TemplateField ColumnID="tfNumber" Width="55px" HeaderText="序号" HeaderTextAlign="Center"
TextAlign="Center">
<ItemTemplate>
<asp:Label ID="lblNumber" runat="server" Text='<%# Grid1.PageIndex * Grid1.PageSize + Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField Width="90px" ColumnID="LicenseManagerCode" DataField="LicenseManagerCode"
SortField="LicenseManagerCode" FieldType="String" HeaderText="编号" HeaderTextAlign="Center"
TextAlign="Left">
</f:RenderField>
<f:RenderField Width="125px" ColumnID="LicenseTypeName" DataField="LicenseTypeName"
SortField="LicenseTypeName" FieldType="String" HeaderText="类型" HeaderTextAlign="Center"
TextAlign="Left">
</f:RenderField>
<f:RenderField Width="240px" ColumnID="UnitName" DataField="UnitName" SortField="UnitName"
FieldType="String" HeaderText="申请单位" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="125px" ColumnID="UnitTypeName" DataField="UnitTypeName" SortField="UnitTypeName"
FieldType="String" HeaderText="单位类型" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="140px" ColumnID="WorkAreaName" DataField="WorkAreaName" SortField="WorkAreaName"
FieldType="String" HeaderText="单位工程" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:CheckBoxField Width="100px" SortField="IsHighRisk" RenderAsStaticField="true" DataField="IsHighRisk"
HeaderText="高风险作业" HeaderTextAlign="Center" TextAlign="Center">
</f:CheckBoxField>
<f:RenderField Width="100px" ColumnID="CompileDate" DataField="CompileDate" SortField="CompileDate"
FieldType="Date" Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="申请日期"
HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="StartDate" DataField="StartDate" SortField="StartDate"
FieldType="Date" Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="开始时间"
HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="EndDate" DataField="EndDate" SortField="EndDate"
FieldType="Date" Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="结束时间"
HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="WorkStatesStr" DataField="WorkStatesStr" SortField="WorkStatesStr"
FieldType="String" HeaderText="状态" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<%-- <f:WindowField TextAlign="Left" Width="60px" WindowID="WindowAtt" HeaderText="附件"
<f:RenderField Width="100px" ColumnID="CompileDate" DataField="CompileDate" SortField="CompileDate"
FieldType="Date" Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="申请日期"
HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="StartDate" DataField="StartDate" SortField="StartDate"
FieldType="Date" Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="开始时间"
HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="EndDate" DataField="EndDate" SortField="EndDate"
FieldType="Date" Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="结束时间"
HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="WorkStatesStr" DataField="WorkStatesStr" SortField="WorkStatesStr"
FieldType="String" HeaderText="状态" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="120px" ColumnID="SourceDes" DataField="SourceDes"
FieldType="String" HeaderText="来源说明" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<%-- <f:WindowField TextAlign="Left" Width="60px" WindowID="WindowAtt" HeaderText="附件"
Text="详细" ToolTip="附件上传查看" DataIFrameUrlFields="LicenseManagerId" DataIFrameUrlFormatString="~/AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/LicenseManagerAttachUrl&menuId=0E9B7084-D021-4CA3-B9D2-9CBAA27A571B"
HeaderTextAlign="Center" />--%>
</Columns>
<Listeners>
<f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" />
</Listeners>
<PageItems>
<f:ToolbarSeparator ID="ToolbarSeparator1" runat="server">
</f:ToolbarSeparator>
<f:ToolbarText ID="ToolbarText1" runat="server" Text="每页记录数:">
</f:ToolbarText>
<f:DropDownList runat="server" ID="ddlPageSize" Width="80px" AutoPostBack="true"
OnSelectedIndexChanged="ddlPageSize_SelectedIndexChanged">
</f:DropDownList>
</PageItems>
</f:Grid>
</Items>
</f:Panel>
<f:Window ID="Window1" Title="现场作业许可证" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" OnClose="Window1_Close" IsModal="true"
Width="1100px" Height="640px">
</f:Window>
<f:Window ID="WindowAtt" Title="附件" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true" Width="700px"
Height="500px">
</f:Window>
<f:Menu ID="Menu1" runat="server">
<f:MenuButton ID="btnMenuEdit" OnClick="btnMenuEdit_Click" Icon="Pencil" EnablePostBack="true"
Hidden="true" runat="server" Text="编辑">
</f:MenuButton>
<f:MenuButton ID="btnMenuDelete" OnClick="btnMenuDelete_Click" EnablePostBack="true"
Hidden="true" Icon="Delete" ConfirmText="删除选中行?" ConfirmTarget="Parent" runat="server"
Text="删除">
</f:MenuButton>
</f:Menu>
</Columns>
<Listeners>
<f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" />
</Listeners>
<PageItems>
<f:ToolbarSeparator ID="ToolbarSeparator1" runat="server">
</f:ToolbarSeparator>
<f:ToolbarText ID="ToolbarText1" runat="server" Text="每页记录数:">
</f:ToolbarText>
<f:DropDownList runat="server" ID="ddlPageSize" Width="80px" AutoPostBack="true"
OnSelectedIndexChanged="ddlPageSize_SelectedIndexChanged">
</f:DropDownList>
</PageItems>
</f:Grid>
</Items>
</f:Panel>
<f:Window ID="Window1" Title="现场作业许可证" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" OnClose="Window1_Close" IsModal="true"
Width="1100px" Height="640px">
</f:Window>
<f:Window ID="WindowAtt" Title="附件" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true" Width="700px"
Height="500px">
</f:Window>
<f:Menu ID="Menu1" runat="server">
<f:MenuButton ID="btnMenuEdit" OnClick="btnMenuEdit_Click" Icon="Pencil" EnablePostBack="true"
Hidden="true" runat="server" Text="编辑">
</f:MenuButton>
<f:MenuButton ID="btnMenuDelete" OnClick="btnMenuDelete_Click" EnablePostBack="true"
Hidden="true" Icon="Delete" ConfirmText="删除选中行?" ConfirmTarget="Parent" runat="server"
Text="删除">
</f:MenuButton>
</f:Menu>
</form>
<script type="text/javascript">
var menuID = '<%= Menu1.ClientID %>';

View File

@ -69,10 +69,10 @@ namespace FineUIPro.Web.HSSE.License
/// </summary>
private void BindGrid()
{
string strSql = "SELECT LicenseManager.LicenseManagerId,LicenseManager.ProjectId,LicenseManager.WorkStatesStr,LicenseManager.LicenseTypeId,CodeRecords.Code AS LicenseManagerCode,LicenseManager.IsHighRisk,LicenseManager.LicenseManageName,LicenseManager.UnitId,LicenseManager.LicenseManageContents,LicenseManager.CompileMan,LicenseManager.CompileDate,LicenseManager.States,LicenseManager.ProjectCode,LicenseManager.ProjectName,LicenseManager.LicenseTypeName,LicenseManager.UnitName,LicenseManager.UnitTypeName,LicenseManager.UserName,LicenseManager.WorkAreaName,LicenseManager.StartDate,LicenseManager.EndDate"
string strSql = "SELECT LicenseManager.LicenseManagerId,LicenseManager.ProjectId,LicenseManager.WorkStatesStr,LicenseManager.LicenseTypeId,LicenseManager.LicenseManagerCode,LicenseManager.IsHighRisk,LicenseManager.LicenseManageName,LicenseManager.UnitId,LicenseManager.LicenseManageContents,LicenseManager.CompileMan,LicenseManager.CompileDate,LicenseManager.States,LicenseManager.ProjectCode,LicenseManager.ProjectName,LicenseManager.LicenseTypeName,LicenseManager.UnitName,LicenseManager.UnitTypeName,LicenseManager.UserName,LicenseManager.WorkAreaName,LicenseManager.StartDate,LicenseManager.EndDate,LicenseManager.SourceDes"
+ @" ,(CASE WHEN LicenseManager.States = " + BLL.Const.State_0 + " OR LicenseManager.States IS NULL THEN '待['+OperateUser.UserName+']提交' WHEN LicenseManager.States = " + BLL.Const.State_2 + " THEN '审核/审批完成' ELSE '待['+OperateUser.UserName+']办理' END) AS FlowOperateName"
+ @" FROM View_License_LicenseManager AS LicenseManager "
+ @" LEFT JOIN Sys_CodeRecords AS CodeRecords ON LicenseManager.LicenseManagerId=CodeRecords.DataId "
//+ @" LEFT JOIN Sys_CodeRecords AS CodeRecords ON LicenseManager.LicenseManagerId=CodeRecords.DataId "
+ @" LEFT JOIN Sys_FlowOperate AS FlowOperate ON LicenseManager.LicenseManagerId=FlowOperate.DataId AND FlowOperate.IsClosed <> 1"
+ @" LEFT JOIN Sys_User AS OperateUser ON FlowOperate.OperaterId=OperateUser.UserId"
+ @" WHERE 1=1 ";
@ -88,6 +88,16 @@ namespace FineUIPro.Web.HSSE.License
{
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
}
if (this.rbSource.SelectedValue == "1")
{
strSql += " AND LicenseManager.SourceDes LIKE @SourceDes ";
listStr.Add(new SqlParameter("@SourceDes", "%#%"));
}
if (!string.IsNullOrEmpty(this.drpStates.SelectedValue) && this.drpStates.SelectedValue != BLL.Const._Null)
{
strSql += " AND LicenseManager.WorkStates = @States";
listStr.Add(new SqlParameter("@States", this.drpStates.SelectedValue));
}
if (BLL.ProjectUnitService.GetProjectUnitTypeByProjectIdUnitId(this.ProjectId, this.CurrUser.UnitId))
{
strSql += " AND LicenseManager.UnitId = @UnitId"; ///状态为已完成

View File

@ -113,6 +113,24 @@ namespace FineUIPro.Web.HSSE.License
/// </remarks>
protected global::FineUIPro.DatePicker txtEndDate;
/// <summary>
/// drpStates 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList drpStates;
/// <summary>
/// rbSource 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.RadioButtonList rbSource;
/// <summary>
/// ToolbarFill1 控件。
/// </summary>

View File

@ -70,6 +70,9 @@
<f:Button ID="btnAttachUrl" Text="附件" ToolTip="附件上传及查看" Icon="TableCell" runat="server"
OnClick="btnAttachUrl_Click" ValidateForms="SimpleForm1">
</f:Button>
<f:Button ID="btnAttachUrlGB" Text="关闭附件" ToolTip="附件上传及查看" Icon="TableCell" runat="server"
OnClick="btnAttachUrlGB_Click" ValidateForms="SimpleForm1">
</f:Button>
<f:ToolbarFill ID="ToolbarFill1" runat="server">
</f:ToolbarFill>
<f:Button ID="btnSave" Icon="SystemSave" runat="server" ToolTip="保存" ValidateForms="SimpleForm1" Text="保存"

View File

@ -61,7 +61,8 @@ namespace FineUIPro.Web.HSSE.License
{
this.InitDropDownList();
}
this.txtLicenseManagerCode.Text = BLL.CodeRecordsService.ReturnCodeByDataId(this.LicenseManagerId);
this.txtLicenseManagerCode.Text = licenseManager.LicenseManagerCode;
//this.txtLicenseManagerCode.Text = BLL.CodeRecordsService.ReturnCodeByDataId(this.LicenseManagerId);
//this.txtLicenseManageName.Text = licenseManager.LicenseManageName;
if (!string.IsNullOrEmpty(licenseManager.UnitId))
{
@ -125,6 +126,11 @@ namespace FineUIPro.Web.HSSE.License
protected void btnSave_Click(object sender, EventArgs e)
{
this.SaveData(BLL.Const.BtnSave);
var porject = BLL.ProjectService.GetProjectByProjectId(this.ProjectId);
if (!string.IsNullOrWhiteSpace(porject.SubjectUnit) && !string.IsNullOrWhiteSpace(porject.SubjectProject))
{//项目关联了总包单位项目,保存成功后自动推送至总包单位
BLL.APILicenseSyncService.PushLicenseManagerLists(this.ProjectId, this.LicenseManagerId);
}
PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
}
@ -203,6 +209,7 @@ namespace FineUIPro.Web.HSSE.License
#endregion
#region
/// <summary>
/// 上传附件
/// </summary>
@ -216,6 +223,21 @@ namespace FineUIPro.Web.HSSE.License
}
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("~/AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/LicenseManagerAttachUrl&menuId={1}", LicenseManagerId, BLL.Const.ProjectLicenseManagerMenuId)));
}
/// <summary>
/// 上传附件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAttachUrlGB_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(this.LicenseManagerId))
{
this.SaveData(BLL.Const.BtnSave);
}
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("~/AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/LicenseManagerAttachUrl&menuId={1}", LicenseManagerId + "_GB", BLL.Const.ProjectLicenseManagerMenuId)));
}
#endregion
#region

View File

@ -7,10 +7,12 @@
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.HSSE.License {
namespace FineUIPro.Web.HSSE.License
{
public partial class LicenseManagerEdit {
public partial class LicenseManagerEdit
{
/// <summary>
/// form1 控件。
@ -165,6 +167,15 @@ namespace FineUIPro.Web.HSSE.License {
/// </remarks>
protected global::FineUIPro.Button btnAttachUrl;
/// <summary>
/// btnAttachUrlGB 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnAttachUrlGB;
/// <summary>
/// ToolbarFill1 控件。
/// </summary>

View File

@ -70,6 +70,9 @@
</f:Label>
<f:Button ID="btnAttachUrl" Text="附件" ToolTip="附件上传及查看" Icon="TableCell" runat="server"
OnClick="btnAttachUrl_Click" ValidateForms="SimpleForm1">
</f:Button>
<f:Button ID="btnAttachUrlGB" Text="关闭附件" ToolTip="附件上传及查看" Icon="TableCell" runat="server"
OnClick="btnAttachUrlGB_Click" ValidateForms="SimpleForm1">
</f:Button>
<f:ToolbarFill ID="ToolbarFill1" runat="server">
</f:ToolbarFill>

View File

@ -39,7 +39,8 @@ namespace FineUIPro.Web.HSSE.License
Model.License_LicenseManager licenseManager = BLL.LicenseManagerService.GetLicenseManagerById(this.LicenseManagerId);
if (licenseManager != null)
{
this.txtLicenseManagerCode.Text = BLL.CodeRecordsService.ReturnCodeByDataId(this.LicenseManagerId);
this.txtLicenseManagerCode.Text = licenseManager.LicenseManagerCode;
//this.txtLicenseManagerCode.Text = BLL.CodeRecordsService.ReturnCodeByDataId(this.LicenseManagerId);
if (!string.IsNullOrEmpty(licenseManager.UnitId))
{
var unit = BLL.UnitService.GetUnitByUnitId(licenseManager.UnitId);
@ -104,6 +105,20 @@ namespace FineUIPro.Web.HSSE.License
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("~/AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/LicenseManagerAttachUrl&menuId={1}&type=-1", LicenseManagerId, BLL.Const.ProjectLicenseManagerMenuId)));
}
}
/// <summary>
/// 上传关闭附件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAttachUrlGB_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(this.LicenseManagerId))
{
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("~/AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/LicenseManagerAttachUrl&menuId={1}&type=-1", LicenseManagerId + "_GB", BLL.Const.ProjectLicenseManagerMenuId)));
}
}
#endregion
}
}

View File

@ -7,10 +7,12 @@
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.HSSE.License {
namespace FineUIPro.Web.HSSE.License
{
public partial class LicenseManagerView {
public partial class LicenseManagerView
{
/// <summary>
/// form1 控件。
@ -183,6 +185,15 @@ namespace FineUIPro.Web.HSSE.License {
/// </remarks>
protected global::FineUIPro.Button btnAttachUrl;
/// <summary>
/// btnAttachUrlGB 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnAttachUrlGB;
/// <summary>
/// ToolbarFill1 控件。
/// </summary>

View File

@ -0,0 +1,94 @@
using System;
using System.Collections.Generic;
namespace Model
{
/// <summary>
/// 作业票定稿接收数据
/// </summary>
public class LicenseManagerData
{
/// <summary>
/// 分包单位社会统一信用码
/// </summary>
public string CollCropCode { get; set; }
/// <summary>
/// 分包单位Id
/// </summary>
public string UnitId { get; set; }
/// <summary>
/// 分包单位名称
/// </summary>
public string UnitName { get; set; }
/// <summary>
/// 分包单位简称
/// </summary>
public string ShortUnitName { get; set; }
/// <summary>
/// 分包单位域名
/// </summary>
public string UnitDomain { get; set; }
/// <summary>
/// 总包单位Id
/// </summary>
public string SubjectUnit { get; set; }
/// <summary>
/// 总包单位项目Id
/// </summary>
public string SubjectProject { get; set; }
/// <summary>
/// 作业票定稿数据集合
/// </summary>
public List<LicenseManagerItem> Items { get; set; }
}
/// <summary>
/// 作业票定稿数据
/// </summary>
public class LicenseManagerItem
{
public string ProjectId { get; set; }
public string UnitId { get; set; }
public string LicenseManagerId { get; set; }
public string LicenseManagerCode { get; set; }
public string LicenseManageName { get; set; }
public string LicenseTypeId { get; set; }
public string LicenseTypeCode { get; set; }
public string LicenseTypeName { get; set; }
public string LicenseManageContents { get; set; }
public string CompileMan { get; set; }
public string CompileManName { get; set; }
public DateTime? CompileDate { get; set; }
public string States { get; set; }
public string WorkAreaId { get; set; }
public string UnitWorkCode { get; set; }
public string UnitWorkName { get; set; }
public DateTime? StartDate { get; set; }
public DateTime? EndDate { get; set; }
public string ApplicantMan { get; set; }
public string WorkStates { get; set; }
public bool? IsHighRisk { get; set; }
public string LicenseCodes { get; set; }
/// <summary>
/// 来源说明
/// </summary>
public string SourceDes { get; set; }
/// <summary>
/// 附件
/// </summary>
public string AttachFileId { get; set; }
public string ToKeyId { get; set; }
public string AttachSource { get; set; }
public string AttachUrl { get; set; }
/// <summary>
/// 关闭附件
/// </summary>
public string AttachFileId1 { get; set; }
public string ToKeyId1 { get; set; }
public string AttachSource1 { get; set; }
public string AttachUrl1 { get; set; }
}
}

View File

@ -243778,6 +243778,8 @@ namespace Model
private System.Nullable<bool> _IsUpdate;
private string _SourceDes;
private EntityRef<Base_LicenseType> _Base_LicenseType;
private EntityRef<Base_Project> _Base_Project;
@ -243826,6 +243828,8 @@ namespace Model
partial void OnIsHighRiskChanged();
partial void OnIsUpdateChanging(System.Nullable<bool> value);
partial void OnIsUpdateChanged();
partial void OnSourceDesChanging(string value);
partial void OnSourceDesChanged();
#endregion
public License_LicenseManager()
@ -244213,6 +244217,26 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SourceDes", DbType="NVarChar(500)")]
public string SourceDes
{
get
{
return this._SourceDes;
}
set
{
if ((this._SourceDes != value))
{
this.OnSourceDesChanging(value);
this.SendPropertyChanging();
this._SourceDes = value;
this.SendPropertyChanged("SourceDes");
this.OnSourceDesChanged();
}
}
}
[global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_License_LicenseManager_Base_LicenseType", Storage="_Base_LicenseType", ThisKey="LicenseTypeId", OtherKey="LicenseTypeId", IsForeignKey=true)]
public Base_LicenseType Base_LicenseType
{
@ -354783,8 +354807,6 @@ namespace Model
private EntityRef<Base_Project> _Base_Project;
private EntityRef<SitePerson_Person> _SitePerson_Person;
#region
partial void OnLoaded();
partial void OnValidate(System.Data.Linq.ChangeAction action);
@ -354822,7 +354844,6 @@ namespace Model
public SitePerson_Checking()
{
this._Base_Project = default(EntityRef<Base_Project>);
this._SitePerson_Person = default(EntityRef<SitePerson_Person>);
OnCreated();
}
@ -355021,10 +355042,6 @@ namespace Model
{
if ((this._PersonId != value))
{
if (this._SitePerson_Person.HasLoadedOrAssignedValue)
{
throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
}
this.OnPersonIdChanging(value);
this.SendPropertyChanging();
this._PersonId = value;
@ -355148,40 +355165,6 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_SitePerson_Checking_SitePerson_Person", Storage="_SitePerson_Person", ThisKey="PersonId", OtherKey="PersonId", IsForeignKey=true)]
public SitePerson_Person SitePerson_Person
{
get
{
return this._SitePerson_Person.Entity;
}
set
{
SitePerson_Person previousValue = this._SitePerson_Person.Entity;
if (((previousValue != value)
|| (this._SitePerson_Person.HasLoadedOrAssignedValue == false)))
{
this.SendPropertyChanging();
if ((previousValue != null))
{
this._SitePerson_Person.Entity = null;
previousValue.SitePerson_Checking.Remove(this);
}
this._SitePerson_Person.Entity = value;
if ((value != null))
{
value.SitePerson_Checking.Add(this);
this._PersonId = value.PersonId;
}
else
{
this._PersonId = default(string);
}
this.SendPropertyChanged("SitePerson_Person");
}
}
}
public event PropertyChangingEventHandler PropertyChanging;
public event PropertyChangedEventHandler PropertyChanged;
@ -357688,8 +357671,6 @@ namespace Model
private EntitySet<QualityAudit_SafePersonQuality> _QualityAudit_SafePersonQuality;
private EntitySet<SitePerson_Checking> _SitePerson_Checking;
private EntityRef<Base_Depart> _Base_Depart;
private EntityRef<Base_Position> _Base_Position;
@ -357706,8 +357687,6 @@ namespace Model
private EntityRef<Sys_User> _Sys_User;
private EntitySet<SitePerson_PersonInOut> _SitePerson_PersonInOut;
private EntitySet<Training_Task> _Training_Task;
private EntitySet<Training_TaskItem> _Training_TaskItem;
@ -357865,7 +357844,6 @@ namespace Model
this._QualityAudit_EquipmentPersonQuality = new EntitySet<QualityAudit_EquipmentPersonQuality>(new Action<QualityAudit_EquipmentPersonQuality>(this.attach_QualityAudit_EquipmentPersonQuality), new Action<QualityAudit_EquipmentPersonQuality>(this.detach_QualityAudit_EquipmentPersonQuality));
this._QualityAudit_PersonQuality = new EntitySet<QualityAudit_PersonQuality>(new Action<QualityAudit_PersonQuality>(this.attach_QualityAudit_PersonQuality), new Action<QualityAudit_PersonQuality>(this.detach_QualityAudit_PersonQuality));
this._QualityAudit_SafePersonQuality = new EntitySet<QualityAudit_SafePersonQuality>(new Action<QualityAudit_SafePersonQuality>(this.attach_QualityAudit_SafePersonQuality), new Action<QualityAudit_SafePersonQuality>(this.detach_QualityAudit_SafePersonQuality));
this._SitePerson_Checking = new EntitySet<SitePerson_Checking>(new Action<SitePerson_Checking>(this.attach_SitePerson_Checking), new Action<SitePerson_Checking>(this.detach_SitePerson_Checking));
this._Base_Depart = default(EntityRef<Base_Depart>);
this._Base_Position = default(EntityRef<Base_Position>);
this._Base_PostTitle = default(EntityRef<Base_PostTitle>);
@ -357874,7 +357852,6 @@ namespace Model
this._Base_WorkPost = default(EntityRef<Base_WorkPost>);
this._ProjectData_TeamGroup = default(EntityRef<ProjectData_TeamGroup>);
this._Sys_User = default(EntityRef<Sys_User>);
this._SitePerson_PersonInOut = new EntitySet<SitePerson_PersonInOut>(new Action<SitePerson_PersonInOut>(this.attach_SitePerson_PersonInOut), new Action<SitePerson_PersonInOut>(this.detach_SitePerson_PersonInOut));
this._Training_Task = new EntitySet<Training_Task>(new Action<Training_Task>(this.attach_Training_Task), new Action<Training_Task>(this.detach_Training_Task));
this._Training_TaskItem = new EntitySet<Training_TaskItem>(new Action<Training_TaskItem>(this.attach_Training_TaskItem), new Action<Training_TaskItem>(this.detach_Training_TaskItem));
this._Training_TestRecord = new EntitySet<Training_TestRecord>(new Action<Training_TestRecord>(this.attach_Training_TestRecord), new Action<Training_TestRecord>(this.detach_Training_TestRecord));
@ -359369,19 +359346,6 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_SitePerson_Checking_SitePerson_Person", Storage="_SitePerson_Checking", ThisKey="PersonId", OtherKey="PersonId", DeleteRule="NO ACTION")]
public EntitySet<SitePerson_Checking> SitePerson_Checking
{
get
{
return this._SitePerson_Checking;
}
set
{
this._SitePerson_Checking.Assign(value);
}
}
[global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_SitePerson_Person_Base_Depart", Storage="_Base_Depart", ThisKey="DepartId", OtherKey="DepartId", IsForeignKey=true)]
public Base_Depart Base_Depart
{
@ -359654,19 +359618,6 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_SitePerson_PersonInOut_SitePerson_Person", Storage="_SitePerson_PersonInOut", ThisKey="PersonId", OtherKey="PersonId", DeleteRule="NO ACTION")]
public EntitySet<SitePerson_PersonInOut> SitePerson_PersonInOut
{
get
{
return this._SitePerson_PersonInOut;
}
set
{
this._SitePerson_PersonInOut.Assign(value);
}
}
[global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_Training_Task_SitePerson_Person", Storage="_Training_Task", ThisKey="PersonId", OtherKey="UserId", DeleteRule="NO ACTION")]
public EntitySet<Training_Task> Training_Task
{
@ -359919,30 +359870,6 @@ namespace Model
entity.SitePerson_Person = null;
}
private void attach_SitePerson_Checking(SitePerson_Checking entity)
{
this.SendPropertyChanging();
entity.SitePerson_Person = this;
}
private void detach_SitePerson_Checking(SitePerson_Checking entity)
{
this.SendPropertyChanging();
entity.SitePerson_Person = null;
}
private void attach_SitePerson_PersonInOut(SitePerson_PersonInOut entity)
{
this.SendPropertyChanging();
entity.SitePerson_Person = this;
}
private void detach_SitePerson_PersonInOut(SitePerson_PersonInOut entity)
{
this.SendPropertyChanging();
entity.SitePerson_Person = null;
}
private void attach_Training_Task(Training_Task entity)
{
this.SendPropertyChanging();
@ -361097,8 +361024,6 @@ namespace Model
private EntityRef<Base_Unit> _Base_Unit;
private EntityRef<SitePerson_Person> _SitePerson_Person;
#region
partial void OnLoaded();
partial void OnValidate(System.Data.Linq.ChangeAction action);
@ -361133,7 +361058,6 @@ namespace Model
{
this._Base_Project = default(EntityRef<Base_Project>);
this._Base_Unit = default(EntityRef<Base_Unit>);
this._SitePerson_Person = default(EntityRef<SitePerson_Person>);
OnCreated();
}
@ -361216,10 +361140,6 @@ namespace Model
{
if ((this._PersonId != value))
{
if (this._SitePerson_Person.HasLoadedOrAssignedValue)
{
throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
}
this.OnPersonIdChanging(value);
this.SendPropertyChanging();
this._PersonId = value;
@ -361457,40 +361377,6 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_SitePerson_PersonInOut_SitePerson_Person", Storage="_SitePerson_Person", ThisKey="PersonId", OtherKey="PersonId", IsForeignKey=true)]
public SitePerson_Person SitePerson_Person
{
get
{
return this._SitePerson_Person.Entity;
}
set
{
SitePerson_Person previousValue = this._SitePerson_Person.Entity;
if (((previousValue != value)
|| (this._SitePerson_Person.HasLoadedOrAssignedValue == false)))
{
this.SendPropertyChanging();
if ((previousValue != null))
{
this._SitePerson_Person.Entity = null;
previousValue.SitePerson_PersonInOut.Remove(this);
}
this._SitePerson_Person.Entity = value;
if ((value != null))
{
value.SitePerson_PersonInOut.Add(this);
this._PersonId = value.PersonId;
}
else
{
this._PersonId = default(string);
}
this.SendPropertyChanged("SitePerson_Person");
}
}
}
public event PropertyChangingEventHandler PropertyChanging;
public event PropertyChangedEventHandler PropertyChanged;
@ -431042,7 +430928,7 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Name="riskLevel", Storage="_RiskLevel", DbType="VarChar(50)")]
[global::System.Data.Linq.Mapping.ColumnAttribute(Name="riskLevel", Storage="_RiskLevel", DbType="VarChar(4) NOT NULL", CanBeNull=false)]
public string RiskLevel
{
get
@ -454995,6 +454881,8 @@ namespace Model
private System.Nullable<bool> _IsUpdate;
private string _SourceDes;
private string _WorkStatesStr;
private string _WorkAreaName;
@ -455387,6 +455275,22 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SourceDes", DbType="NVarChar(500)")]
public string SourceDes
{
get
{
return this._SourceDes;
}
set
{
if ((this._SourceDes != value))
{
this._SourceDes = value;
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkStatesStr", DbType="VarChar(6) NOT NULL", CanBeNull=false)]
public string WorkStatesStr
{

View File

@ -222,6 +222,7 @@
<Compile Include="DataShare\CheckSpecialSyncData.cs" />
<Compile Include="DataShare\ClassMeetingData.cs" />
<Compile Include="DataShare\HazardRegisterSyncData.cs" />
<Compile Include="DataShare\LicenseManagerData.cs" />
<Compile Include="DataShare\PersonSyncData.cs" />
<Compile Include="DoorServer\AbsenceDutyItem.cs" />
<Compile Include="DoorServer\attendanceItem.cs" />

View File

@ -0,0 +1,64 @@
using BLL;
using Model;
using System;
using System.Threading.Tasks;
using System.Web.Http;
namespace WebAPI.Controllers
{
/// <summary>
/// 作业票定稿
/// </summary>
public class LicenseSyncController : ApiController
{
#region
/// <summary>
/// 推送项目作业票定稿数据
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<Model.ResponeData> PushLicenseManagerLists()
{
var responeData = new Model.ResponeData();
try
{
var returndata = APILicenseSyncService.PushLicenseManagerLists("");
responeData.code = returndata.code;
responeData.message = returndata.message;
}
catch (Exception ex)
{
responeData.code = 0;
responeData.message = ex.Message;
}
return responeData;
}
#endregion
#region
/// <summary>
/// 总包单位接收分包单位推送的作业票定稿数据
/// </summary>
/// <param name="data">作业票定稿数据</param>
/// <returns></returns>
[HttpPost]
public Model.ResponeData ReceiveSaveProjectLicenseManagerData([FromBody] LicenseManagerData data)
{
var responeData = new Model.ResponeData();
try
{
responeData.message = APILicenseSyncService.ReceiveSaveProjectLicenseManagerData(data);
}
catch (Exception ex)
{
responeData.code = 0;
responeData.message = ex.Message;
}
return responeData;
}
#endregion
}
}

View File

@ -1,21 +0,0 @@
错误信息开始=====>
错误类型:FormatException
错误信息:指定字符串与电子邮件地址所要求的形式不符。
错误堆栈:
在 System.Net.Mail.MailAddressParser.ReadCfwsAndThrowIfIncomplete(String data, Int32 index)
在 System.Net.Mail.MailAddressParser.ParseDomain(String data, Int32& index)
在 System.Net.Mail.MailAddressParser.ParseAddress(String data, Boolean expectMultipleAddresses, Int32& index)
在 System.Net.Mail.MailAddressParser.ParseMultipleAddresses(String data)
在 System.Net.Mail.MailAddressCollection.ParseValue(String addresses)
在 BLL.GJSXMonitorService.OverdueWarningSendEmail() 位置 G:\公司项目\五环\SGGL\BLL\PZHGL\GJSX\GJSXMonitorService.cs:行号 508
出错时间:11/19/2025 19:20:26
出错时间:11/19/2025 19:20:26
【邮箱提醒异常】张小松邮箱1784m时间2025-11-19 19:46:42异常信息指定字符串与电子邮件地址所要求的形式不符。
附件【FileUpload/ClassMeetingAttachUrl/2026-02/】获取异常!
附件【FileUpload/ClassMeetingAttachUrl/2026-02/】获取异常!
附件【FileUpload/ClassMeetingAttachUrl/2026-02/】获取异常!
附件【FileUpload/ClassMeetingAttachUrl/2026-02/】获取异常!
附件【FileUpload/ClassMeetingAttachUrl/2026-02/】获取异常!
附件【FileUpload/ClassMeetingAttachUrl/2026-02/】获取异常!

View File

@ -107,6 +107,7 @@ namespace WebAPI.Filter
"AIAlarmEvent*alarmEvent",
"SGManPower*getSGPersonWarningStatistics",
"MeetingSync*ReceiveSaveProjectClassMeetingData",
"LicenseSync*ReceiveSaveProjectLicenseManagerData",
"PersonSync*getPersonLists"
,"PersonSync*pushPersonLists"
,"HazardRegisterSync*getHazardRegisterLists"

View File

@ -6,7 +6,7 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PublishTargetUrl>G:\发布\五环WebApi</_PublishTargetUrl>
<History>True|2026-03-01T08:45:09.4172340Z||;True|2026-03-01T14:50:18.5222913+08:00||;True|2026-02-28T17:34:46.4778856+08:00||;True|2026-02-28T15:29:45.4981175+08:00||;True|2026-02-28T15:22:44.8350431+08:00||;True|2026-02-28T15:16:49.0265188+08:00||;True|2026-02-28T15:01:52.0489798+08:00||;True|2026-02-28T14:40:09.1723344+08:00||;True|2026-02-28T09:47:26.7601751+08:00||;True|2026-01-24T15:12:59.9025754+08:00||;True|2026-01-19T14:30:45.4370000+08:00||;True|2025-12-24T19:02:35.3684081+08:00||;True|2025-12-18T09:29:13.2909255+08:00||;True|2025-11-25T10:18:00.9729814+08:00||;True|2025-11-25T10:14:14.6947178+08:00||;True|2025-11-25T10:06:29.1167142+08:00||;True|2025-11-25T09:25:18.3566779+08:00||;True|2025-11-24T16:07:37.5433070+08:00||;True|2025-11-19T19:50:54.0090859+08:00||;True|2025-11-19T19:29:28.5861506+08:00||;True|2025-11-19T19:14:02.6887533+08:00||;True|2025-11-19T19:08:28.7856694+08:00||;True|2025-11-17T14:41:29.0529618+08:00||;True|2025-11-17T12:28:22.9224307+08:00||;True|2025-11-17T11:17:50.1481769+08:00||;True|2025-11-07T14:46:56.1446809+08:00||;True|2025-11-05T09:32:06.4998794+08:00||;True|2025-11-04T16:39:28.2175670+08:00||;True|2025-11-04T16:39:02.3610432+08:00||;True|2025-11-04T15:44:06.1295264+08:00||;True|2025-10-31T16:41:11.6570385+08:00||;True|2025-10-30T15:58:05.2014433+08:00||;True|2025-10-29T16:22:27.7866967+08:00||;True|2025-10-29T11:19:32.1187038+08:00||;True|2025-10-24T15:59:19.4176668+08:00||;True|2025-10-23T10:17:32.2384443+08:00||;True|2025-10-23T10:09:35.0601937+08:00||;True|2025-10-23T09:59:27.2018799+08:00||;True|2025-09-29T15:39:36.8617347+08:00||;True|2025-09-29T11:28:10.9193152+08:00||;True|2025-09-29T10:59:58.2893583+08:00||;True|2025-09-23T16:56:39.6344263+08:00||;True|2025-09-23T16:44:57.4175593+08:00||;True|2025-09-23T16:44:35.0478492+08:00||;True|2025-09-23T16:06:50.5843534+08:00||;True|2025-09-22T20:54:35.9805610+08:00||;True|2025-09-22T20:45:58.7044128+08:00||;True|2025-09-22T20:40:46.7449595+08:00||;True|2025-09-22T15:14:22.9602725+08:00||;True|2025-09-22T15:08:27.5989706+08:00||;True|2025-09-22T14:54:19.5237685+08:00||;True|2025-09-18T09:53:17.9300539+08:00||;True|2025-09-16T19:11:12.4383069+08:00||;True|2025-09-02T11:14:00.9580707+08:00||;True|2025-09-02T10:52:20.0445598+08:00||;True|2025-08-29T17:56:01.6245615+08:00||;True|2025-08-29T17:55:41.2802685+08:00||;True|2025-08-09T21:27:40.2103961+08:00||;True|2025-08-06T15:31:52.1166645+08:00||;True|2025-08-04T18:56:13.9675910+08:00||;True|2025-07-23T11:12:18.0134770+08:00||;True|2025-07-23T10:36:09.9990536+08:00||;True|2025-07-23T10:35:51.8814789+08:00||;True|2025-07-21T17:46:45.4620710+08:00||;True|2025-07-21T17:40:43.9871097+08:00||;True|2025-07-21T17:29:11.9275869+08:00||;True|2025-07-21T17:05:21.7763763+08:00||;True|2025-07-18T17:55:59.4892329+08:00||;True|2025-07-18T11:08:56.2628896+08:00||;True|2025-07-18T10:53:44.2534260+08:00||;True|2025-07-18T10:27:52.6751668+08:00||;True|2025-07-18T10:03:09.1785776+08:00||;True|2025-07-18T10:02:38.1252107+08:00||;True|2025-07-17T18:19:07.5837609+08:00||;True|2025-07-17T15:40:11.9126705+08:00||;True|2025-07-11T17:54:03.0298703+08:00||;True|2025-07-11T16:19:50.3283029+08:00||;True|2025-07-11T15:49:22.5920473+08:00||;True|2025-07-02T14:39:27.0436873+08:00||;True|2025-07-02T11:18:29.1208369+08:00||;True|2025-07-01T15:52:16.6767496+08:00||;True|2025-07-01T10:14:59.0471052+08:00||;True|2025-06-28T11:40:36.0544739+08:00||;True|2025-06-27T15:10:24.4628086+08:00||;True|2025-06-27T10:31:14.8332810+08:00||;True|2025-06-27T10:13:13.3022394+08:00||;True|2025-06-26T23:51:04.1304509+08:00||;True|2025-06-26T23:34:06.4223762+08:00||;True|2025-06-26T22:42:08.9018138+08:00||;True|2025-06-26T22:16:01.8954571+08:00||;True|2025-06-26T21:19:42.2638204+08:00||;True|2025-06-25T23:22:39.7267591+08:00||;True|2025-06-25T23:19:33.2378458+08:00||;True|2025-06-25T22:18:16.2863303+08:00||;True|2025-06-25T22:10:29.2540175+08:00||;True|2025-06-25T22:00:58.5212166+08:00||;True|2025-06-25T22:00:31.2531214+08:00||;True|2025-06-25T18:33:01.5770030+08:00||;True|2025-06-25T17:47:33.7779622+08:00||;True|2025-06-25T17:40:26.9905954+08:00||;</History>
<History>True|2026-03-04T11:14:37.2772043Z||;True|2026-03-01T17:32:51.9305697+08:00||;True|2026-03-01T16:45:09.4172340+08:00||;True|2026-03-01T14:50:18.5222913+08:00||;True|2026-02-28T17:34:46.4778856+08:00||;True|2026-02-28T15:29:45.4981175+08:00||;True|2026-02-28T15:22:44.8350431+08:00||;True|2026-02-28T15:16:49.0265188+08:00||;True|2026-02-28T15:01:52.0489798+08:00||;True|2026-02-28T14:40:09.1723344+08:00||;True|2026-02-28T09:47:26.7601751+08:00||;True|2026-01-24T15:12:59.9025754+08:00||;True|2026-01-19T14:30:45.4370000+08:00||;True|2025-12-24T19:02:35.3684081+08:00||;True|2025-12-18T09:29:13.2909255+08:00||;True|2025-11-25T10:18:00.9729814+08:00||;True|2025-11-25T10:14:14.6947178+08:00||;True|2025-11-25T10:06:29.1167142+08:00||;True|2025-11-25T09:25:18.3566779+08:00||;True|2025-11-24T16:07:37.5433070+08:00||;True|2025-11-19T19:50:54.0090859+08:00||;True|2025-11-19T19:29:28.5861506+08:00||;True|2025-11-19T19:14:02.6887533+08:00||;True|2025-11-19T19:08:28.7856694+08:00||;True|2025-11-17T14:41:29.0529618+08:00||;True|2025-11-17T12:28:22.9224307+08:00||;True|2025-11-17T11:17:50.1481769+08:00||;True|2025-11-07T14:46:56.1446809+08:00||;True|2025-11-05T09:32:06.4998794+08:00||;True|2025-11-04T16:39:28.2175670+08:00||;True|2025-11-04T16:39:02.3610432+08:00||;True|2025-11-04T15:44:06.1295264+08:00||;True|2025-10-31T16:41:11.6570385+08:00||;True|2025-10-30T15:58:05.2014433+08:00||;True|2025-10-29T16:22:27.7866967+08:00||;True|2025-10-29T11:19:32.1187038+08:00||;True|2025-10-24T15:59:19.4176668+08:00||;True|2025-10-23T10:17:32.2384443+08:00||;True|2025-10-23T10:09:35.0601937+08:00||;True|2025-10-23T09:59:27.2018799+08:00||;True|2025-09-29T15:39:36.8617347+08:00||;True|2025-09-29T11:28:10.9193152+08:00||;True|2025-09-29T10:59:58.2893583+08:00||;True|2025-09-23T16:56:39.6344263+08:00||;True|2025-09-23T16:44:57.4175593+08:00||;True|2025-09-23T16:44:35.0478492+08:00||;True|2025-09-23T16:06:50.5843534+08:00||;True|2025-09-22T20:54:35.9805610+08:00||;True|2025-09-22T20:45:58.7044128+08:00||;True|2025-09-22T20:40:46.7449595+08:00||;True|2025-09-22T15:14:22.9602725+08:00||;True|2025-09-22T15:08:27.5989706+08:00||;True|2025-09-22T14:54:19.5237685+08:00||;True|2025-09-18T09:53:17.9300539+08:00||;True|2025-09-16T19:11:12.4383069+08:00||;True|2025-09-02T11:14:00.9580707+08:00||;True|2025-09-02T10:52:20.0445598+08:00||;True|2025-08-29T17:56:01.6245615+08:00||;True|2025-08-29T17:55:41.2802685+08:00||;True|2025-08-09T21:27:40.2103961+08:00||;True|2025-08-06T15:31:52.1166645+08:00||;True|2025-08-04T18:56:13.9675910+08:00||;True|2025-07-23T11:12:18.0134770+08:00||;True|2025-07-23T10:36:09.9990536+08:00||;True|2025-07-23T10:35:51.8814789+08:00||;True|2025-07-21T17:46:45.4620710+08:00||;True|2025-07-21T17:40:43.9871097+08:00||;True|2025-07-21T17:29:11.9275869+08:00||;True|2025-07-21T17:05:21.7763763+08:00||;True|2025-07-18T17:55:59.4892329+08:00||;True|2025-07-18T11:08:56.2628896+08:00||;True|2025-07-18T10:53:44.2534260+08:00||;True|2025-07-18T10:27:52.6751668+08:00||;True|2025-07-18T10:03:09.1785776+08:00||;True|2025-07-18T10:02:38.1252107+08:00||;True|2025-07-17T18:19:07.5837609+08:00||;True|2025-07-17T15:40:11.9126705+08:00||;True|2025-07-11T17:54:03.0298703+08:00||;True|2025-07-11T16:19:50.3283029+08:00||;True|2025-07-11T15:49:22.5920473+08:00||;True|2025-07-02T14:39:27.0436873+08:00||;True|2025-07-02T11:18:29.1208369+08:00||;True|2025-07-01T15:52:16.6767496+08:00||;True|2025-07-01T10:14:59.0471052+08:00||;True|2025-06-28T11:40:36.0544739+08:00||;True|2025-06-27T15:10:24.4628086+08:00||;True|2025-06-27T10:31:14.8332810+08:00||;True|2025-06-27T10:13:13.3022394+08:00||;True|2025-06-26T23:51:04.1304509+08:00||;True|2025-06-26T23:34:06.4223762+08:00||;True|2025-06-26T22:42:08.9018138+08:00||;True|2025-06-26T22:16:01.8954571+08:00||;True|2025-06-26T21:19:42.2638204+08:00||;True|2025-06-25T23:22:39.7267591+08:00||;True|2025-06-25T23:19:33.2378458+08:00||;True|2025-06-25T22:18:16.2863303+08:00||;True|2025-06-25T22:10:29.2540175+08:00||;True|2025-06-25T22:00:58.5212166+08:00||;True|2025-06-25T22:00:31.2531214+08:00||;True|2025-06-25T18:33:01.5770030+08:00||;</History>
<LastFailureDetails />
</PropertyGroup>
<ItemGroup>
@ -86,22 +86,22 @@
<publishTime>10/28/2024 14:02:50</publishTime>
</File>
<File Include="bin/App_global.asax.compiled">
<publishTime>03/01/2026 16:45:08</publishTime>
<publishTime>03/04/2026 19:14:36</publishTime>
</File>
<File Include="bin/App_global.asax.dll">
<publishTime>03/01/2026 16:45:08</publishTime>
<publishTime>03/04/2026 19:14:36</publishTime>
</File>
<File Include="bin/Aspose.Words.dll">
<publishTime>12/06/2024 20:13:58</publishTime>
</File>
<File Include="bin/BLL.dll">
<publishTime>03/01/2026 16:44:43</publishTime>
<publishTime>03/04/2026 19:14:15</publishTime>
</File>
<File Include="bin/BLL.dll.config">
<publishTime>12/26/2024 09:46:52</publishTime>
</File>
<File Include="bin/BLL.pdb">
<publishTime>03/01/2026 16:44:43</publishTime>
<publishTime>03/04/2026 19:14:15</publishTime>
</File>
<File Include="bin/BouncyCastle.Crypto.dll">
<publishTime>12/18/2020 05:32:28</publishTime>
@ -128,10 +128,10 @@
<publishTime>07/25/2012 19:48:56</publishTime>
</File>
<File Include="bin/Model.dll">
<publishTime>02/28/2026 09:46:57</publishTime>
<publishTime>03/04/2026 19:14:07</publishTime>
</File>
<File Include="bin/Model.pdb">
<publishTime>02/28/2026 09:46:57</publishTime>
<publishTime>03/04/2026 19:14:07</publishTime>
</File>
<File Include="bin/netstandard.dll">
<publishTime>02/12/2026 19:18:36</publishTime>
@ -389,13 +389,13 @@
<publishTime>02/09/2013 00:42:28</publishTime>
</File>
<File Include="bin/WebAPI.dll">
<publishTime>03/01/2026 16:44:45</publishTime>
<publishTime>03/04/2026 19:14:16</publishTime>
</File>
<File Include="bin/WebAPI.pdb">
<publishTime>03/01/2026 16:44:45</publishTime>
<publishTime>03/04/2026 19:14:16</publishTime>
</File>
<File Include="bin/WebAPI.xml">
<publishTime>03/01/2026 16:44:45</publishTime>
<publishTime>03/04/2026 19:14:16</publishTime>
</File>
<File Include="bin/WebGrease.dll">
<publishTime>01/23/2014 21:57:34</publishTime>
@ -479,7 +479,7 @@
<publishTime>10/28/2024 14:02:50</publishTime>
</File>
<File Include="PrecompiledApp.config">
<publishTime>03/01/2026 16:44:46</publishTime>
<publishTime>03/04/2026 19:14:17</publishTime>
</File>
<File Include="Scripts/bootstrap.js">
<publishTime>10/28/2024 14:02:50</publishTime>

View File

@ -158,6 +158,7 @@
<Compile Include="Controllers\CQMS\WBSController.cs" />
<Compile Include="Controllers\DataShare\HSSE\CheckSpecialSyncController.cs" />
<Compile Include="Controllers\DataShare\HSSE\HazardRegisterSyncController.cs" />
<Compile Include="Controllers\DataShare\HSSE\LicenseSyncController.cs" />
<Compile Include="Controllers\DataShare\HSSE\MeetingSyncController.cs" />
<Compile Include="Controllers\DataShare\HSSE\PersonSyncController.cs" />
<Compile Include="Controllers\DataSync\CNCECServerController.cs" />

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<LastActiveSolutionConfig>Release|Any CPU</LastActiveSolutionConfig>
<LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
<UseIISExpress>true</UseIISExpress>
<Use64BitIISExpress />
<IISExpressSSLPort />