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
}
}