using FineUIPro; using Microsoft.SqlServer.Dts.Runtime; using Model; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using NPOI.SS.Formula.Functions; using System; using System.Collections; using System.Collections.Generic; using System.Linq; namespace BLL { /// /// 项目现场亮点照片收集 /// public class ProjectHighlightsSiteService { #region 项目现场亮点类型 #region 获取集团项目现场亮点类型 /// /// 获取项目现场亮点类型 /// /// public static Model.ResponeData GetProjectHighlightsSiteTypeFromGroup() { var responeData = new Model.ResponeData(); try { string unitId = CommonService.GetThisUnitId(); string baseurl = $"{SysConstSetService.CNCECPath}/api/CQMSData/getProjectHighlightsSiteType?unitId=" + unitId; string contenttype = "application/json;charset=unicode"; Hashtable newToken = new Hashtable { { "token", ServerService.GetToken().Token } }; var strJosn = APIGetHttpService.Http(baseurl, "GET", contenttype, newToken, null); if (!string.IsNullOrEmpty(strJosn)) { JObject obj = JObject.Parse(strJosn); responeData.code = Funs.GetNewIntOrZero(obj["code"].ToString()); responeData.message = obj["message"].ToString(); if (responeData.code == 1) { JArray getData = JArray.Parse(obj["data"].ToString()); if (getData.Count() > 0) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { List ids = new List(); foreach (var item in getData) { string Id = item["Id"].ToString(); var model = db.Base_ProjectHighlightsSiteType.FirstOrDefault(e => e.Id == Id); if (model == null) { Model.Base_ProjectHighlightsSiteType newModel = new Model.Base_ProjectHighlightsSiteType { Id = item["Id"].ToString(), MainType = int.Parse(item["MainType"].ToString()), MainTypeName = item["MainTypeName"].ToString(), SubType = item["SubType"].ToString(), Remark = item["Remark"].ToString(), CompileMan = item["CompileMan"].ToString(), CompileManName = item["CompileManName"].ToString(), CompileDate = DateTime.Now }; db.Base_ProjectHighlightsSiteType.InsertOnSubmit(newModel); db.SubmitChanges(); } else { model.MainType = int.Parse(item["MainType"].ToString()); model.MainTypeName = item["MainTypeName"].ToString(); model.SubType = item["SubType"].ToString(); model.Remark = item["Remark"].ToString(); model.CompileMan = item["CompileMan"].ToString(); model.CompileManName = item["CompileManName"].ToString(); model.CompileDate = DateTime.Now; db.SubmitChanges(); } } } } responeData.message = "获取成功:项目现场亮点类型" + getData.Count().ToString() + "条"; } } } catch (Exception ex) { responeData.code = 0; responeData.message = "获取失败:" + ex.Message; ErrLogInfo.WriteLog("获取集团项目现场亮点类型!", ex); } return responeData; } #endregion /// /// 项目现场亮点类型下拉 /// /// /// public static void InitProjectHighlightsSiteTypeNameDropDownList(DropDownList dropName, bool isShowPlease) { dropName.DataValueField = "string"; dropName.DataTextField = "string"; dropName.DataSource = GetProjectHighlightsSiteTypeDropDownList(); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 项目现场亮点类型下拉 /// /// public static List GetProjectHighlightsSiteTypeDropDownList() { return (from x in (from x in Funs.DB.Base_ProjectHighlightsSiteType select new { x.MainType, x.MainTypeName }).Distinct() orderby x.MainType select x.MainTypeName).ToList(); } #endregion #region 项目现场亮点照片收集 /// /// 项目亮点 /// /// /// public static Model.CQMS_ProjectHighlightsSitePic GetProjectHighlightsSiteById(string Id) { return Funs.DB.CQMS_ProjectHighlightsSitePic.FirstOrDefault(e => e.Id == Id); } /// /// 修改项目亮点 /// /// public static void UpdateProjectHighlightsSite(Model.CQMS_ProjectHighlightsSitePic model) { Model.SGGLDB db = Funs.DB; Model.CQMS_ProjectHighlightsSitePic newModel = db.CQMS_ProjectHighlightsSitePic.FirstOrDefault(e => e.Id == model.Id); if (newModel != null) { newModel.IsReport = false;//维护项目亮点后,状态自动改为未上报 newModel.Resume = model.Resume; newModel.PicUrl = model.PicUrl; newModel.CompileMan = model.CompileMan; newModel.CompileManName = model.CompileManName; newModel.CompileDate = model.CompileDate; db.SubmitChanges(); } } /// /// 根据主键Id重置项目亮点描述和照片信息 /// /// public static void ResetProjectHighlightsSitePicById(string Id) { Model.SGGLDB db = Funs.DB; Model.CQMS_ProjectHighlightsSitePic model = db.CQMS_ProjectHighlightsSitePic.FirstOrDefault(e => e.Id == Id); if (model != null) { //删除亮点照片 BLL.CommonService.DeleteAttachFileById(Id); model.PicUrl = null; model.IsReport = false; model.Resume = string.Empty; db.SubmitChanges(); } } /// /// 更新项目亮点类型 /// /// /// public static bool UpdateProjectHighlightsSiteTypeFromGroup(string projectId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var lstBaseType = db.Base_ProjectHighlightsSiteType.ToList(); var lstProPic = db.CQMS_ProjectHighlightsSitePic.Where(e => e.ProjectId == projectId); //var oldProPicList = db.CQMS_ProjectHighlightsSitePic.Where(x=> lstBaseType.Contains()); foreach (var item in lstProPic) { if (!lstBaseType.Where(e => e.Id == item.TypeId).Any()) {//项目亮点类型不存在集团项目亮点类型库中时,删除冗余数据 //删除亮点照片 BLL.CommonService.DeleteAttachFileById(item.Id); //删除冗余数据 db.CQMS_ProjectHighlightsSitePic.DeleteOnSubmit(item); db.SubmitChanges(); } } lstProPic = db.CQMS_ProjectHighlightsSitePic.Where(e => e.ProjectId == projectId); foreach (var item in lstBaseType) { var model = lstProPic.FirstOrDefault(e => e.TypeId == item.Id); if (model == null) { Model.CQMS_ProjectHighlightsSitePic newModel = new Model.CQMS_ProjectHighlightsSitePic { Id = SQLHelper.GetNewID(), ProjectId = projectId, TypeId = item.Id, MainType = item.MainType, MainTypeName = item.MainTypeName, SubType = item.SubType, Remark = item.Remark }; db.CQMS_ProjectHighlightsSitePic.InsertOnSubmit(newModel); db.SubmitChanges(); } else { model.MainType = item.MainType; model.MainTypeName = item.MainTypeName; model.SubType = item.SubType; model.Remark = item.Remark; db.SubmitChanges(); } } return true; } } #endregion #region 上报项目现场亮点信息到集团 /// /// 上报项目现场亮点信息到集团 /// /// /// /// public static Model.ResponeData ReportProjectHighlightsSiteTypeToGroup(string projectId, Sys_User currUser) { var responeData = new Model.ResponeData(); var db = Funs.DB; try { var lstPic = (from x in db.CQMS_ProjectHighlightsSitePic //where x.IsReport == false orderby x.MainType, x.SubType select x).ToList(); if (!string.IsNullOrWhiteSpace(projectId)) { lstPic = lstPic.Where(x => x.ProjectId == projectId).ToList(); } if (lstPic.Any()) { var thisUnit = CommonService.GetIsThisUnit(); var newItem = new { CollCropCode = thisUnit.CollCropCode, ProjectId = projectId, Items = lstPic }; string baseurl = $"{SysConstSetService.CNCECPath}/api/CQMSData/ReportProjectHighlightsSiteTypeToGroup"; string contenttype = "application/json;charset=unicode"; Hashtable newToken = new Hashtable { { "token", ServerService.GetToken().Token } }; var pushContent = JsonConvert.SerializeObject(newItem); var strJosn = APIGetHttpService.Http(baseurl, "Post", contenttype, newToken, pushContent); if (!string.IsNullOrEmpty(strJosn)) {//推送成功后,修改数据状态 JObject obj = JObject.Parse(strJosn); string code = obj["code"].ToString(); string message = obj["message"].ToString(); responeData.message = message; if (code == "1") { var ReportDate = DateTime.Now; foreach (var item in lstPic) { Model.CQMS_ProjectHighlightsSitePic model = db.CQMS_ProjectHighlightsSitePic.FirstOrDefault(e => e.Id == item.Id); if (model != null) { model.IsReport = true; model.ReportMan = currUser.UserId; model.ReportManName = currUser.UserName; model.ReportDate = ReportDate; db.SubmitChanges(); } } } else { responeData.code = 0; } } else { responeData.code = 0; responeData.message = "上报失败,请稍候再试!"; } } else { responeData.code = 0; responeData.message = "当前没有未上报数据"; } } catch (Exception ex) { responeData.code = 0; responeData.message = "上报失败:" + ex.Message; ErrLogInfo.WriteLog("上报项目现场亮点信息到集团!", ex); } return responeData; } #endregion } }