diff --git a/SGGL/BLL/BLL.csproj b/SGGL/BLL/BLL.csproj index f1ac53d2..5edb7082 100644 --- a/SGGL/BLL/BLL.csproj +++ b/SGGL/BLL/BLL.csproj @@ -315,6 +315,7 @@ + diff --git a/SGGL/BLL/DataShare/CQMS/APICheckControlSyncService.cs b/SGGL/BLL/DataShare/CQMS/APICheckControlSyncService.cs new file mode 100644 index 00000000..f427d26a --- /dev/null +++ b/SGGL/BLL/DataShare/CQMS/APICheckControlSyncService.cs @@ -0,0 +1,538 @@ +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Configuration; +using System.IO; +using System.Net.Http; +using System.Threading.Tasks; +using Model; +using Newtonsoft.Json; +using RestSharp; +using System.Net; + + +namespace BLL +{ + /// + /// 质量巡检同步服务 + /// + public class APICheckControlSyncService + { + #region 根据项目、单位获取质量巡检列表 + /// + /// 根据项目、单位获取质量巡检列表 + /// + /// 项目ID + /// 单位ID + /// 数据ID(可选,用于单条数据同步) + /// 质量巡检数据列表 + public static List GetCheckControlListsByProjectIdUnitIdPage( + string projectId, string unitId, string dataId = "") + { + using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) + { + var list = from x in db.Check_CheckControl + where x.ProjectId == projectId + select x; + + if (!string.IsNullOrEmpty(unitId)) + { + list = list.Where(x => x.UnitId == unitId); + } + + if (!string.IsNullOrEmpty(dataId)) + { + list = list.Where(x => x.CheckControlCode == dataId); + } + + var dataList = (from x in list + join unit in db.Base_Unit on x.UnitId equals unit.UnitId into unitTemp + from unit in unitTemp.DefaultIfEmpty() + join pro in db.Base_CNProfessional on x.CNProfessionalCode equals pro.CNProfessionalId into proTemp + from pro in proTemp.DefaultIfEmpty() + join uw in db.WBS_UnitWork on x.UnitWorkId equals uw.UnitWorkId into uwTemp + from uw in uwTemp.DefaultIfEmpty() + join qqt in db.Base_QualityQuestionType on x.QuestionType equals qqt.QualityQuestionTypeId into qqtTemp + from qqt in qqtTemp.DefaultIfEmpty() + join u1 in db.Sys_User on x.CheckMan equals u1.UserId into u1Temp + from u1 in u1Temp.DefaultIfEmpty() + join u2 in db.Sys_User on x.SubmitMan equals u2.UserId into u2Temp + from u2 in u2Temp.DefaultIfEmpty() + join pu in db.Base_Unit on x.ProposeUnitId equals pu.UnitId into puTemp + from pu in puTemp.DefaultIfEmpty() + join att in db.AttachFile on x.CheckControlCode equals att.ToKeyId into attTemp + from att in attTemp.DefaultIfEmpty() + join attRe in db.AttachFile on x.CheckControlCode + "r" equals attRe.ToKeyId into attReTemp + from attRe in attReTemp.DefaultIfEmpty() + select new CheckControlSyncItem + { + CheckControlCode = x.CheckControlCode, + ProjectId = x.ProjectId, + UnitWorkId = x.UnitWorkId, + UnitWorkName = uw.UnitWorkName, + UnitId = x.UnitId, + UnitName = unit.UnitName, + CheckDate = x.CheckDate, + CheckMan = x.CheckMan, + CheckManName = u1.UserName, + CheckSite = x.CheckSite, + DocCode = x.DocCode, + CNProfessionalCode = x.CNProfessionalCode, + CNProfessionalName = pro.ProfessionalName, + QuestionType = x.QuestionType, + QuestionTypeName = qqt.QualityQuestionType, + QuestionDef = x.QuestionDef, + RectifyOpinion = x.RectifyOpinion, + LimitDate = x.LimitDate, + AttachUrl = att.AttachUrl, + HandleWay = x.HandleWay, + RectifyDate = x.RectifyDate, + ReAttachUrl = attRe.AttachUrl, + State = x.State, + IsSubmit = x.IsSubmit, + SubmitMan = x.SubmitMan, + SubmitManName = u2.UserName, + IsOK = x.IsOK, + ProposeUnitId = x.ProposeUnitId, + ProposeUnitName = pu.UnitName, + SaveHandleMan = x.SaveHandleMan, + DataSource = "1" + }).ToList(); + + return dataList; + } + } + + #endregion + + + #region 拉取质量巡检数据 + + /// + /// 拉取质量巡检数据 + /// + /// 处理结果消息 + public static string getCheckControlLists(string projectId = "") + { + int code = 0; + string message = ""; + try + { + string CollCropCode = string.Empty; + string unitId = string.Empty; + var thisUnit = CommonService.GetIsThisUnit(); //当前单位 + if (thisUnit != null) + { + CollCropCode = thisUnit.CollCropCode; //社会统一信用代码 + unitId = thisUnit.UnitId; + } + + var ProjectList = (from x in Funs.DB.Base_Project + where (x.IsDelete == null || x.IsDelete == false) && + x.SubjectUnit != null && x.SubjectProject != null + select x).ToList(); + if (!string.IsNullOrEmpty(projectId)) + { + ProjectList = ProjectList.Where(x => x.ProjectId == projectId).ToList(); + } + if (ProjectList.Count > 0) + { + foreach (var project in ProjectList) + { + string SubjectUnitId = project.SubjectUnit; //集团的单位id + string SubjectProjectId = project.SubjectProject; //集团的项目id + + //获取对应单位的apiurl地址 + var Url = BLL.UnitService.getUnitApiUrlByUnitId(SubjectUnitId); + var ApiUrl = ""; + var WebUrl = ""; + if (!string.IsNullOrEmpty(Url)) + { + var urls = Url.Split(','); + ApiUrl = urls[0]; + if (urls.Length > 1) + { + WebUrl = urls[1]; + } + } + + string url = "/api/CheckControlSync/getCheckControlListByProjectIdAndCollCropCode?projectId=" + + SubjectProjectId + "&collCropCode=" + CollCropCode; + string baseurl = ApiUrl + url; + string contenttype = "application/json;charset=unicode"; + var strJosn = APIGetHttpService.Http(baseurl, "GET", contenttype, null, null); + + if (!string.IsNullOrEmpty(strJosn)) + { + JObject obj = JObject.Parse(strJosn); + code = Funs.GetNewIntOrZero(obj["code"].ToString()); + message = obj["message"].ToString(); + + if (code == 1) + { + var getData = JsonConvert.DeserializeObject>(obj["data"].ToString()); + if (getData.Count() > 0) + { + ProcessCheckControlData(getData, project.ProjectId, unitId, WebUrl, "pull"); + } + message = "获取成功:同步质量巡检数" + getData.Count().ToString() + "条"; + } + } + } + } + } + catch (Exception ex) + { + message = "获取失败:" + ex.Message; + ErrLogInfo.WriteLog("质量巡检获取!", ex); + } + + return message; + } + + #endregion + + + #region 推送质量巡检数据 + + /// + /// 推送质量巡检数据 + /// + /// 项目ID + /// 数据ID(可选,用于单条数据推送) + /// 推送结果 + public static ReturnData pushCheckControlLists(string projectId, string dataId = "") + { + Model.ReturnData responeData = new Model.ReturnData(); + responeData.code = 0; + responeData.message = string.Empty; + var project = Funs.DB.Base_Project.FirstOrDefault(x => x.ProjectId == projectId); + + try + { + if (project != null) + { + //获取质量巡检数据 + var items = GetCheckControlListsByProjectIdUnitIdPage(projectId, "", dataId); + + if (items.Count() > 0) + { + var thisUnit = CommonService.GetIsThisUnit(); //当前单位 + var apiurl = "/api/CheckControlSync/SaveCheckControlSyncData"; + + //总包单位接口地址 + var Url = BLL.UnitService.getUnitApiUrlByUnitId(project.SubjectUnit); + var ApiUrl = ""; + var WebUrl = ""; + + if (!string.IsNullOrEmpty(Url)) + { + var urls = Url.Split(','); + ApiUrl = urls[0]; + if (urls.Length > 1) + { + WebUrl = urls[1]; + } + } + + var pushData = new CheckControlSyncData + { + CollCropCode = thisUnit.CollCropCode, //分包单位社会统一信用码 + ProjectId = project.SubjectProject, //主包项目Id + UnitDomain = Funs.SGGLUrl, //分包单位域名地址【文件存储地址】 + Items = items //质量巡检数据 + }; + + var pushContent = JsonConvert.SerializeObject(pushData); + string baseurl = ApiUrl + apiurl; + string contenttype = "application/json;charset=unicode"; + var returndata = APIGetHttpService.Http(baseurl, "Post", contenttype, null, pushContent); + + if (!string.IsNullOrEmpty(returndata)) + { + JObject obj = JObject.Parse(returndata); + string code = obj["code"].ToString(); + string message = obj["message"].ToString(); + responeData.code = int.Parse(code); + responeData.message = message; + } + } + else + { + responeData.code = 0; + responeData.message = "当前没有质量巡检数据"; + } + } + } + catch (Exception ex) + { + responeData.message = "同步到总包单位失败!"; + ErrLogInfo.WriteLog("【质量巡检】同步到总包单位失败!", ex); + } + + return responeData; + } + + #endregion + + + #region 接收保存质量巡检数据 + + /// + /// 接收保存质量巡检数据 + /// + /// 质量巡检同步数据 + /// 处理结果消息 + public static string SaveCheckControlSyncData(Model.CheckControlSyncData items) + { + int code = 0; + string message = ""; + try + { + if (items.Items.Count > 0 || items.Items.Count > 0) + { + var CollCropCode = items.CollCropCode; //分包单位社会统一信用码 + var ProjectId = items.ProjectId; //总包项目Id + var UnitDomain = items.UnitDomain; //分包单位域名地址【文件存储地址】 + + var unit = Funs.DB.Base_Unit.FirstOrDefault(x => x.CollCropCode == CollCropCode); //根据CollCropCode获取单位id + if (unit == null) + { + message = "总包单位不存在本单位,请登录总包系统检查维护本单位信息!"; + } + else + { + //判断主包项目是否存在 + var porject = BLL.ProjectService.GetProjectByProjectId(ProjectId); + if (porject == null) + { + message = "总包单位不存在本项目,请检查总包项目关联是否正确!"; + } + else + { + ProcessCheckControlData(items.Items, ProjectId, unit.UnitId, UnitDomain, "push"); + message = "数据推送成功!"; + } + } + } + else + { + message = "暂无质量巡检数据!"; + } + } + catch (Exception ex) + { + throw ex; + } + + return message; + } + + #endregion + + + #region 处理质量巡检数据的新增或更新逻辑 + + /// + /// 处理质量巡检数据的新增或更新逻辑 + /// + /// 质量巡检数据列表 + /// 项目id + /// 单位ID + /// Web地址 + /// + private static void ProcessCheckControlData( + List getData, + string projectId, + string unitId, + string WebUrl, string type) + { + using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) + { + foreach (var item in getData) + { + Model.Check_CheckControl model = db.Check_CheckControl.FirstOrDefault(x => x.CheckControlCode == item.CheckControlCode); + + if (model == null) + { + //新增 + Model.Check_CheckControl newModel = new Model.Check_CheckControl + { + CheckControlCode = item.CheckControlCode, + ProjectId = projectId, + UnitWorkId = APIDataShareSyncService.getUnitWorkId(item.UnitWorkName, projectId), + UnitId = getUnitIdByUnitName(item.UnitName) ?? unitId, + CheckDate = item.CheckDate, + CheckMan = APIDataShareSyncService.getUserId(item.CheckManName), + CheckSite = item.CheckSite, + DocCode = item.DocCode, + CNProfessionalCode = getCNProfessionalId(item.CNProfessionalName), + QuestionType = getQualityQuestionTypeId(item.QuestionTypeName, projectId), + QuestionDef = item.QuestionDef, + RectifyOpinion = item.RectifyOpinion, + LimitDate = item.LimitDate, + AttachUrl = item.AttachUrl, + HandleWay = item.HandleWay, + RectifyDate = item.RectifyDate, + ReAttachUrl = item.ReAttachUrl, + State = item.State, + IsSubmit = item.IsSubmit, + SubmitMan = APIDataShareSyncService.getUserId(item.SubmitManName), + IsOK = item.IsOK, + ProposeUnitId = getUnitIdByUnitName(item.ProposeUnitName), + SaveHandleMan = item.SaveHandleMan + }; + if (type == "pull") + { + newModel.DataSource = item.DataSource; + } + db.Check_CheckControl.InsertOnSubmit(newModel); + db.SubmitChanges(); + } + else + { + //更新 + model.ProjectId = projectId; + model.UnitWorkId = APIDataShareSyncService.getUnitWorkId(item.UnitWorkName, projectId); + model.UnitId = getUnitIdByUnitName(item.UnitName) ?? unitId; + model.CheckDate = item.CheckDate; + model.CheckMan = APIDataShareSyncService.getUserId(item.CheckManName); + model.CheckSite = item.CheckSite; + model.DocCode = item.DocCode; + model.CNProfessionalCode = getCNProfessionalId(item.CNProfessionalName); + model.QuestionType = getQualityQuestionTypeId(item.QuestionTypeName, projectId); + model.QuestionDef = item.QuestionDef; + model.RectifyOpinion = item.RectifyOpinion; + model.LimitDate = item.LimitDate; + model.AttachUrl = item.AttachUrl; + model.HandleWay = item.HandleWay; + model.RectifyDate = item.RectifyDate; + model.ReAttachUrl = item.ReAttachUrl; + model.State = item.State; + model.IsSubmit = item.IsSubmit; + model.SubmitMan = APIDataShareSyncService.getUserId(item.SubmitManName); + model.IsOK = item.IsOK; + model.ProposeUnitId = getUnitIdByUnitName(item.ProposeUnitName); + model.SaveHandleMan = item.SaveHandleMan; + if (type == "pull") + { + model.DataSource = item.DataSource; + } + db.SubmitChanges(); + } + + //处理整改前附件 + if (!string.IsNullOrEmpty(item.AttachUrl)) + { + APIDataShareSyncService.OperationAttachFile(WebUrl, item.CheckControlCode, + BLL.Const.CheckListMenuId, item.AttachUrl); + } + + //处理整改后附件 + if (!string.IsNullOrEmpty(item.ReAttachUrl)) + { + APIDataShareSyncService.OperationAttachFile(WebUrl, item.CheckControlCode + "R", + BLL.Const.CheckListMenuId, item.ReAttachUrl); + } + } + } + } + + #endregion + + + #region 辅助映射方法 + + /// + /// 获取质量问题类型ID(不存在则创建) + /// + /// 问题类型名称 + /// 项目ID + /// 问题类型ID + private static string getQualityQuestionTypeId(string questionTypeName, string projectId) + { + string questionTypeId = null; + if (!string.IsNullOrEmpty(questionTypeName)) + { + var qqt = Funs.DB.Base_QualityQuestionType.FirstOrDefault(x => x.QualityQuestionType == questionTypeName); + if (qqt == null) + { + //不存在则创建 + Model.Base_QualityQuestionType newQqt = new Model.Base_QualityQuestionType + { + QualityQuestionTypeId = SQLHelper.GetNewID(typeof(Model.Base_QualityQuestionType)), + QualityQuestionType = questionTypeName + }; + QualityQuestionTypeService.AddQualityQuestionType(newQqt); + questionTypeId = newQqt.QualityQuestionTypeId; + } + else + { + questionTypeId = qqt.QualityQuestionTypeId; + } + } + return questionTypeId; + } + + /// + /// 获取专业ID(不存在则创建) + /// + /// + /// + /// + private static string getCNProfessionalId(string ProfessionalName) + { + string Id = null; + if (!string.IsNullOrEmpty(ProfessionalName)) + { + var names = ProfessionalName.Split(','); + List IdList = new List(); + foreach (var name in names) + { + var cnProfessional = Funs.DB.Base_CNProfessional.Where(x => + x.ProfessionalName == name).ToList(); + if (cnProfessional.Count == 0) + { + Model.Base_CNProfessional newCnProfessional = new Model.Base_CNProfessional + { + CNProfessionalId = SQLHelper.GetNewID(typeof(Model.WBS_UnitWork)), + ProfessionalName = name, + }; + CNProfessionalService.AddCNProfessional(newCnProfessional); + IdList.Add(newCnProfessional.CNProfessionalId); + } + else + { + IdList.Add(cnProfessional.FirstOrDefault().CNProfessionalId); + } + } + + Id = string.Join(",", IdList); + } + + return Id; + } + + /// + /// 获取单位ID(根据名称) + /// + /// 单位名称 + /// 单位ID + private static string getUnitIdByUnitName(string unitName) + { + string unitId = null; + if (!string.IsNullOrEmpty(unitName)) + { + var unit = Funs.DB.Base_Unit.FirstOrDefault(x => x.UnitName == unitName); + if (unit != null) + { + unitId = unit.UnitId; + } + } + return unitId; + } + + #endregion + } +} diff --git a/SGGL/Model/DataShare/CheckControlSyncData.cs b/SGGL/Model/DataShare/CheckControlSyncData.cs new file mode 100644 index 00000000..90d74540 --- /dev/null +++ b/SGGL/Model/DataShare/CheckControlSyncData.cs @@ -0,0 +1,192 @@ +using System.Collections.Generic; +using System; + +namespace Model +{ + /// + /// 质量巡检同步数据容器 + /// + public class CheckControlSyncData + { + /// + /// 公司社会统一信用代码 + /// + public string CollCropCode { get; set; } + + /// + /// 项目id + /// + public string ProjectId { get; set; } + + /// + /// 分包单位程序访问地址 + /// + public string UnitDomain { get; set; } + + /// + /// 质量巡检数据列表 + /// + public List Items { get; set; } + } + + /// + /// 质量巡检数据项 + /// + public class CheckControlSyncItem + { + /// + /// 主键 + /// + public string CheckControlCode { get; set; } + + /// + /// 项目ID + /// + public string ProjectId { get; set; } + + /// + /// 单位工程ID + /// + public string UnitWorkId { get; set; } + + /// + /// 单位工程名称 + /// + public string UnitWorkName { get; set; } + + /// + /// 单位ID + /// + public string UnitId { get; set; } + + /// + /// 单位名称 + /// + public string UnitName { get; set; } + + /// + /// 检查日期 + /// + public DateTime? CheckDate { get; set; } + + /// + /// 检查人ID + /// + public string CheckMan { get; set; } + + /// + /// 检查人姓名 + /// + public string CheckManName { get; set; } + + /// + /// 检查部位 + /// + public string CheckSite { get; set; } + + /// + /// 单据编号 + /// + public string DocCode { get; set; } + + /// + /// 专业代码 + /// + public string CNProfessionalCode { get; set; } + + /// + /// 专业名称 + /// + public string CNProfessionalName { get; set; } + + /// + /// 问题类型ID + /// + public string QuestionType { get; set; } + + /// + /// 问题类型名称 + /// + public string QuestionTypeName { get; set; } + + /// + /// 问题描述 + /// + public string QuestionDef { get; set; } + + /// + /// 整改意见 + /// + public string RectifyOpinion { get; set; } + + /// + /// 限期整改日期 + /// + public DateTime? LimitDate { get; set; } + + /// + /// 整改前附件URL + /// + public string AttachUrl { get; set; } + + /// + /// 处理方式 + /// + public string HandleWay { get; set; } + + /// + /// 整改日期 + /// + public DateTime? RectifyDate { get; set; } + + /// + /// 整改后附件URL + /// + public string ReAttachUrl { get; set; } + + /// + /// 流程状态(0-重新编制,1-总包编制,...,7-审批完成) + /// + public string State { get; set; } + + /// + /// 是否提交 + /// + public bool? IsSubmit { get; set; } + + /// + /// 提交人ID + /// + public string SubmitMan { get; set; } + + /// + /// 提交人姓名 + /// + public string SubmitManName { get; set; } + + /// + /// 是否合格 + /// + public bool? IsOK { get; set; } + + /// + /// 提出单位ID + /// + public string ProposeUnitId { get; set; } + + /// + /// 提出单位名称 + /// + public string ProposeUnitName { get; set; } + + /// + /// 保存处理人 + /// + public string SaveHandleMan { get; set; } + + /// + /// 数据来源(1-同步数据) + /// + public string DataSource { get; set; } + } +} diff --git a/SGGL/Model/DataShare/CqmsMeetingSyncData.cs b/SGGL/Model/DataShare/CqmsMeetingSyncData.cs new file mode 100644 index 00000000..b9b57b3f --- /dev/null +++ b/SGGL/Model/DataShare/CqmsMeetingSyncData.cs @@ -0,0 +1,142 @@ +using System; +using System.Collections.Generic; + +namespace Model +{ + /// + /// 质量会议同步数据容器 + /// + public class CqmsMeetingSyncData + { + /// + /// 公司社会统一信用代码 + /// + public string CollCropCode { get; set; } + + /// + /// 项目id + /// + public string ProjectId { get; set; } + + /// + /// 分包单位程序访问地址 + /// + public string UnitDomain { get; set; } + + /// + /// 质量会议数据列表 + /// + public List Items { get; set; } + } + + /// + /// 质量会议数据项 + /// + public class CqmsMeetingSyncItem + { + /// + /// 主键 + /// + public string MeetingId { get; set; } + + /// + /// 会议编码 + /// + public string MeetingCode { get; set; } + + /// + /// 会议名称 + /// + public string MeetingName { get; set; } + + /// + /// 项目ID + /// + public string ProjectId { get; set; } + + /// + /// 单位ID + /// + public string UnitId { get; set; } + + /// + /// 单位名称 + /// + public string UnitName { get; set; } + + /// + /// 会议日期 + /// + public DateTime? MeetingDate { get; set; } + + /// + /// 会议时长 + /// + public decimal? MeetingHours { get; set; } + + /// + /// 会议地点 + /// + public string MeetingPlace { get; set; } + + /// + /// 主持人ID + /// + public string MeetingHostMan { get; set; } + + /// + /// 主持人姓名 + /// + public string MeetingHostManName { get; set; } + + /// + /// 其他主持人 + /// + public string MeetingHostManOther { get; set; } + + /// + /// 参会人数 + /// + public int? AttentPersonNum { get; set; } + + /// + /// 参会人员(姓名列表,逗号分隔) + /// + public string AttentPerson { get; set; } + + /// + /// 参会人员ID(ID列表,逗号分隔) + /// + public string AttentPersonIds { get; set; } + + /// + /// 会议内容(HTML编码) + /// + public string MeetingContents { get; set; } + + /// + /// 编制人ID + /// + public string CompileMan { get; set; } + + /// + /// 编制人姓名 + /// + public string CompileManName { get; set; } + + /// + /// 编制日期 + /// + public DateTime? CompileDate { get; set; } + + /// + /// 状态(整数,2表示完成) + /// + public string States { get; set; } + + /// + /// 数据来源(1-同步数据) + /// + public string DataSource { get; set; } + } +} diff --git a/SGGL/Model/DataShare/InspectionMachineSyncData.cs b/SGGL/Model/DataShare/InspectionMachineSyncData.cs new file mode 100644 index 00000000..f680b522 --- /dev/null +++ b/SGGL/Model/DataShare/InspectionMachineSyncData.cs @@ -0,0 +1,162 @@ +using System; +using System.Collections.Generic; + +namespace Model +{ + /// + /// 质量计量器具同步数据容器 + /// + public class InspectionMachineSyncData + { + /// + /// 公司社会统一信用代码 + /// + public string CollCropCode { get; set; } + + /// + /// 项目id + /// + public string ProjectId { get; set; } + + /// + /// 分包单位程序访问地址 + /// + public string UnitDomain { get; set; } + + /// + /// 质量计量器具数据列表 + /// + public List Items { get; set; } + } + + /// + /// 质量计量器具数据项 + /// + public class InspectionMachineSyncItem + { + /// + /// 主键 + /// + public string InspectionMachineId { get; set; } + + /// + /// 计量器具编码 + /// + public string InspectionMachineCode { get; set; } + + /// + /// 计量器具名称 + /// + public string InspectionMachineName { get; set; } + + /// + /// 规格型号 + /// + public string SpecificationModel { get; set; } + + /// + /// 数量 + /// + public int? UnitsCount { get; set; } + + /// + /// 类别 + /// + public string SType { get; set; } + + /// + /// 检验类型 + /// + public string InspectionType { get; set; } + + /// + /// 检验日期 + /// + public DateTime? InspectionDate { get; set; } + + /// + /// 下次检验日期 + /// + public DateTime? NextTestDate { get; set; } + + /// + /// 检验周期 + /// + public string TestCycle { get; set; } + + /// + /// 是否校验合格 + /// + public bool? IsCheckOK { get; set; } + + /// + /// 是否在校验期内 + /// + public bool? IsVerification { get; set; } + + /// + /// 审批状态 + /// + public string Status { get; set; } + + /// + /// 是否在场 + /// + public bool? IsOnSite { get; set; } + + /// + /// 离场日期 + /// + public DateTime? LeaveDate { get; set; } + + /// + /// 单位ID + /// + public string UnitId { get; set; } + + /// + /// 单位名称 + /// + public string UnitName { get; set; } + + /// + /// 专业ID + /// + public string CNProfessionalId { get; set; } + + /// + /// 专业名称 + /// + public string CNProfessionalName { get; set; } + + /// + /// 编制人ID + /// + public string CompileMan { get; set; } + + /// + /// 编制人姓名 + /// + public string CompileManName { get; set; } + + /// + /// 编制日期 + /// + public DateTime? CompileDate { get; set; } + + /// + /// 附件URL + /// + public string AttachUrl { get; set; } + + /// + /// 项目ID + /// + public string ProjectId { get; set; } + + /// + /// 数据来源(1-同步数据) + /// + public string DataSource { get; set; } + } +} diff --git a/SGGL/Model/Model.cs b/SGGL/Model/Model.cs index d6b5c2da..403ea306 100644 --- a/SGGL/Model/Model.cs +++ b/SGGL/Model/Model.cs @@ -57635,6 +57635,8 @@ namespace Model private string _ReasonAnalysis; + private string _DataSource; + private EntityRef _Base_Project; private EntityRef _Sys_User; @@ -57697,6 +57699,8 @@ namespace Model partial void OnIsUpdateChanged(); partial void OnReasonAnalysisChanging(string value); partial void OnReasonAnalysisChanged(); + partial void OnDataSourceChanging(string value); + partial void OnDataSourceChanged(); #endregion public Check_CheckControl() @@ -58235,6 +58239,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DataSource", DbType="Char(1)")] + public string DataSource + { + get + { + return this._DataSource; + } + set + { + if ((this._DataSource != value)) + { + this.OnDataSourceChanging(value); + this.SendPropertyChanging(); + this._DataSource = value; + this.SendPropertyChanged("DataSource"); + this.OnDataSourceChanged(); + } + } + } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_Check_CheckControl_Base_Project", Storage="_Base_Project", ThisKey="ProjectId", OtherKey="ProjectId", IsForeignKey=true)] public Base_Project Base_Project { diff --git a/SGGL/Model/Model.csproj b/SGGL/Model/Model.csproj index 4e409fe3..a2cebe6a 100644 --- a/SGGL/Model/Model.csproj +++ b/SGGL/Model/Model.csproj @@ -219,9 +219,12 @@ + + + diff --git a/SGGL/WebAPI/Controllers/DataShare/CQMS/CheckControlSyncController.cs b/SGGL/WebAPI/Controllers/DataShare/CQMS/CheckControlSyncController.cs new file mode 100644 index 00000000..a9ef8191 --- /dev/null +++ b/SGGL/WebAPI/Controllers/DataShare/CQMS/CheckControlSyncController.cs @@ -0,0 +1,136 @@ +using BLL; +using System; +using System.Linq; +using System.Web.Http; +using System.Threading.Tasks; + +namespace WebAPI.Controllers +{ + /// + /// 质量巡检同步控制器 + /// + public class CheckControlSyncController : ApiController + { + #region 拉取质量巡检数据 + + /// + /// 拉取质量巡检数据 + /// + /// 响应数据 + [HttpGet] + public Model.ResponeData getCheckControlLists() + { + var responeData = new Model.ResponeData(); + try + { + responeData.code = 1; + responeData.data = APICheckControlSyncService.getCheckControlLists(); + } + catch (Exception ex) + { + responeData.code = 0; + responeData.message = ex.Message; + } + + return responeData; + } + + #endregion + + + #region 获取质量巡检数据根据项目id和单位统一社会代码 + + /// + /// 获取质量巡检数据根据项目id和单位统一社会代码 + /// + /// 项目ID + /// 单位社会统一信用代码 + /// 响应数据 + [HttpGet] + public Model.ResponeData getCheckControlListByProjectIdAndCollCropCode(string projectId, string collCropCode) + { + var responeData = new Model.ResponeData(); + try + { + responeData.code = 1; + var unit = BLL.Funs.DB.Base_Unit.FirstOrDefault(x => x.CollCropCode == collCropCode); + if (unit != null) + { + responeData.data = APICheckControlSyncService.GetCheckControlListsByProjectIdUnitIdPage(projectId, unit.UnitId); + } + else + { + responeData.code = 0; + responeData.message = "未找到对应单位"; + } + } + catch (Exception ex) + { + responeData.code = 0; + responeData.message = ex.Message; + } + + return responeData; + } + + #endregion + + + #region 推送质量巡检数据 + + /// + /// 推送质量巡检数据 + /// + /// 项目ID + /// 数据ID(可选) + /// 响应数据 + [HttpPost] + public Model.ResponeData pushCheckControlLists(string projectId, string dataId) + { + var responeData = new Model.ResponeData(); + try + { + var returndata = APICheckControlSyncService.pushCheckControlLists(projectId, dataId); + responeData.code = returndata.code; + responeData.message = returndata.message; + } + catch (Exception ex) + { + responeData.code = 0; + responeData.message = ex.Message; + } + + return responeData; + } + + #endregion + + + #region 接收保存质量巡检数据 + + /// + /// 接收保存质量巡检数据 + /// + /// 质量巡检同步数据 + /// 响应数据 + [HttpPost] + public Model.ResponeData SaveCheckControlSyncData([FromBody] Model.CheckControlSyncData newItem) + { + var responeData = new Model.ResponeData(); + try + { + responeData.code = 1; + responeData.message = APICheckControlSyncService.SaveCheckControlSyncData(newItem); + } + catch (Exception ex) + { + responeData.code = 0; + responeData.message = ex.Message; + } + + return responeData; + } + + #endregion + } +} diff --git a/SGGL/WebAPI/Web.config b/SGGL/WebAPI/Web.config index 85d2a6d1..7eaa0002 100644 --- a/SGGL/WebAPI/Web.config +++ b/SGGL/WebAPI/Web.config @@ -10,7 +10,7 @@ - + diff --git a/SGGL/WebAPI/WebAPI.csproj b/SGGL/WebAPI/WebAPI.csproj index 44cdfc76..e682cec8 100644 --- a/SGGL/WebAPI/WebAPI.csproj +++ b/SGGL/WebAPI/WebAPI.csproj @@ -156,6 +156,7 @@ +