CNCEC_SUBQHSE_WUHUAN/SGGL/BLL/TestRun/DriverSub/DriverSubService.cs

295 lines
15 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

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

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Aspose.Words;
namespace BLL
{
/// <summary>
/// 开车分包管理
/// </summary>
public static class DriverSubService
{
/// <summary>
/// 根据主键获取开车分包管理信息
/// </summary>
/// <param name="DriverSubId"></param>
/// <returns></returns>
public static Model.DriverSub_DriverSub GetDriverSubById(string DriverSubId)
{
return Funs.DB.DriverSub_DriverSub.FirstOrDefault(e => e.DriverSubId == DriverSubId);
}
/// <summary>
/// 根据分包计划和分包商获取开车分包管理信息
/// </summary>
/// <param name="DriverSubPlanId"></param>
/// <param name="DriverSubContractorsId"></param>
/// <returns></returns>
public static Model.DriverSub_DriverSub GetDriverSubBySubPlanIdAndTractorsId(string DriverSubPlanId,
string DriverSubContractorsId)
{
return Funs.DB.DriverSub_DriverSub.FirstOrDefault(e => e.DriverSubPlanId == DriverSubPlanId&& e.DriverSubContractorsId==DriverSubContractorsId);
}
/// <summary>
/// DriverSubPlanId和DriverSubContractorsId 获取对象的EvaluationData信息将json数据EvaluationData 转换成List
/// </summary>
/// <param name="DriverSubPlanId"></param>
/// <param name="DriverSubContractorsId"></param>
/// <returns></returns>
public static List<Model.DriverSubEvaluationData> GetDriverSubEvaluationData(string DriverSubPlanId,
string DriverSubContractorsId)
{
List<Model.DriverSubEvaluationData> list = new List<Model.DriverSubEvaluationData>();
Model.DriverSub_DriverSub data = Funs.DB.DriverSub_DriverSub.FirstOrDefault(e => e.DriverSubPlanId == DriverSubPlanId && e.DriverSubContractorsId == DriverSubContractorsId);
if (data != null)
{
list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.DriverSubEvaluationData>>(data.EvaluationData);
}
return list;
}
/// <summary>
/// 将List DriverSubEvaluationData转换成json数据
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
public static string GetDriverSubEvaluationDataJson(List<Model.DriverSubEvaluationData> list)
{
return Newtonsoft.Json.JsonConvert.SerializeObject(list);
}
/// <summary>
/// 根据分包类别获取初始化数据List
/// </summary>
/// <returns></returns>
public static List<Model.DriverSubEvaluationData> GetDriverSubEvaluationData(string type )
{
List<Model.DriverSubEvaluationData> list = new List<Model.DriverSubEvaluationData>();
switch (type)
{
case "1"://催化剂装填
list.Add(new Model.DriverSubEvaluationData() { Number = 1, Matter = "方案编制", Grade = "" });
list.Add(new Model.DriverSubEvaluationData() { Number = 2, Matter = "催化剂装填准备", Grade = "" });
list.Add(new Model.DriverSubEvaluationData() { Number = 3, Matter = "人员配合", Grade = "" });
list.Add(new Model.DriverSubEvaluationData() { Number = 4, Matter = "催化剂装填实施", Grade = "" });
list.Add(new Model.DriverSubEvaluationData() { Number = 5, Matter = "装填结果认定", Grade = "" });
list.Add(new Model.DriverSubEvaluationData() { Number = 6, Matter = "收尾处理", Grade = "" });
// list.Add(new Model.DriverSubEvaluationData() { Number = 7, Matter = "其他", Grade = "" });
break;
case "2"://烘炉
list.Add(new Model.DriverSubEvaluationData() { Number = 1, Matter = "方案编制", Grade = "" });
list.Add(new Model.DriverSubEvaluationData() { Number = 2, Matter = "烘炉准备", Grade = "" });
list.Add(new Model.DriverSubEvaluationData() { Number = 3, Matter = "人员配合", Grade = "" });
list.Add(new Model.DriverSubEvaluationData() { Number = 4, Matter = "烘炉实施", Grade = "" });
list.Add(new Model.DriverSubEvaluationData() { Number = 5, Matter = "烘炉结果认定", Grade = "" });
list.Add(new Model.DriverSubEvaluationData() { Number = 6, Matter = "收尾处理", Grade = "" });
// list.Add(new Model.DriverSubEvaluationData() { Number = 7, Matter = "其他", Grade = "" });
break;
case "3"://化学清洗
list.Add(new Model.DriverSubEvaluationData() { Number = 1, Matter = "方案编制", Grade = "" });
list.Add(new Model.DriverSubEvaluationData() { Number = 2, Matter = "化学清洗准备", Grade = "" });
list.Add(new Model.DriverSubEvaluationData() { Number = 3, Matter = "人员配合", Grade = "" });
list.Add(new Model.DriverSubEvaluationData() { Number = 4, Matter = "化学清洗实施", Grade = "" });
list.Add(new Model.DriverSubEvaluationData() { Number = 5, Matter = "清洗结果认定", Grade = "" });
list.Add(new Model.DriverSubEvaluationData() { Number = 6, Matter = "收尾处理", Grade = "" });
// list.Add(new Model.DriverSubEvaluationData() { Number = 7, Matter = "其他", Grade = "" });
break;
case "4"://开车队
list.Add(new Model.DriverSubEvaluationData() { Number = 1, Matter = "业主人员培训", Grade = "" });
list.Add(new Model.DriverSubEvaluationData() { Number = 2, Matter = "编制技术方案", Grade = "" });
list.Add(new Model.DriverSubEvaluationData() { Number = 3, Matter = "预试车", Grade = "" });
list.Add(new Model.DriverSubEvaluationData() { Number = 4, Matter = "联动试车", Grade = "" });
list.Add(new Model.DriverSubEvaluationData() { Number = 5, Matter = "投料试车", Grade = "" });
list.Add(new Model.DriverSubEvaluationData() { Number = 6, Matter = "生产试运行", Grade = "" });
list.Add(new Model.DriverSubEvaluationData() { Number = 7, Matter = "性能考核", Grade = "" });
list.Add(new Model.DriverSubEvaluationData() { Number = 8, Matter = "生产安全", Grade = "" });
list.Add(new Model.DriverSubEvaluationData() { Number = 9, Matter = "试车进度", Grade = "" });
// list.Add(new Model.DriverSubEvaluationData() { Number = 10, Matter = "其他", Grade = "" });
break;
}
return list;
}
/// <summary>
/// 添加开车分包管理信息
/// </summary>
/// <param name="DriverSub"></param>
public static void AddDriverSub(Model.DriverSub_DriverSub DriverSub)
{
Model.DriverSub_DriverSub newDriverSub = new Model.DriverSub_DriverSub();
newDriverSub.DriverSubId = DriverSub.DriverSubId;
newDriverSub.ProjectId = DriverSub.ProjectId;
newDriverSub.Code = DriverSub.Code;
newDriverSub.Remark = DriverSub.Remark;
newDriverSub.DriverSubPlanId= DriverSub.DriverSubPlanId;
newDriverSub.DriverSubContractorsId = DriverSub.DriverSubContractorsId;
newDriverSub.EvaluationData = DriverSub.EvaluationData;
newDriverSub.DriverContractCode= DriverSub.DriverContractCode;
newDriverSub.SubContractName = DriverSub.SubContractName;
newDriverSub.Evaluator= DriverSub.Evaluator;
Funs.DB.DriverSub_DriverSub.InsertOnSubmit(newDriverSub);
Funs.DB.SubmitChanges();
}
/// <summary>
/// 修改开车分包管理
/// </summary>
/// <param name="DriverSub"></param>
public static void UpdateDriverSub(Model.DriverSub_DriverSub DriverSub)
{
Model.DriverSub_DriverSub newDriverSub = Funs.DB.DriverSub_DriverSub.FirstOrDefault(e => e.DriverSubId == DriverSub.DriverSubId);
if (newDriverSub != null)
{
newDriverSub.Code = DriverSub.Code;
newDriverSub.Remark = DriverSub.Remark;
newDriverSub.DriverSubPlanId = DriverSub.DriverSubPlanId;
newDriverSub.DriverSubContractorsId = DriverSub.DriverSubContractorsId;
newDriverSub.EvaluationData = DriverSub.EvaluationData;
newDriverSub.DriverContractCode = DriverSub.DriverContractCode;
newDriverSub.SubContractName = DriverSub.SubContractName;
newDriverSub.Evaluator = DriverSub.Evaluator;
Funs.DB.SubmitChanges();
}
}
public static Document Print(string driverSubPlanId, string driverSubContractorsId)
{
string rootPath = Funs.RootPath;
string initTemplatePath = string.Empty;
string uploadfilepath = string.Empty;
string newUrl = string.Empty;
initTemplatePath = "File\\Word\\TestRun\\履约情况评价表.doc";
uploadfilepath = rootPath + initTemplatePath;
newUrl = uploadfilepath.Replace(".doc", string.Format("{0:yyyy-MM}", DateTime.Now) + ".doc");
if (File.Exists(newUrl))
{
File.Delete(newUrl);
}
File.Copy(uploadfilepath, newUrl);
//定义实体
var model = GetDriverSubBySubPlanIdAndTractorsId(driverSubPlanId,driverSubContractorsId);//分包管理实体
var subContractorsModel = DriversubcontractorsService.GetDriverSub_DriverSubContractorsById(driverSubContractorsId);//分包商实体
var evaluationData = GetDriverSubEvaluationData(driverSubPlanId, driverSubContractorsId);//打分数据
var projectModel = ProjectService.GetProjectByProjectId(model.ProjectId);//项目实体
string subcontractingType = BLL.DriverSubPlanService.GetSubcontractingTypeNames(subContractorsModel.SubcontractingType);//分包类别名称
//打分数数据绑定
DataTable tb= Funs.LINQToDataTable(evaluationData);
tb.TableName = "Table";
Document doc = new Aspose.Words.Document(newUrl);
doc.MailMerge.ExecuteWithRegions(tb);
Dictionary<string, object> Dic_File = new Dictionary<string, object>();
Dic_File.Add("txtSubcontractingType", subcontractingType);
Dic_File.Add("txtProjectCode", projectModel.ProjectCode);
Dic_File.Add("txtSubContractName", model.SubContractName);
Dic_File.Add("txtDriverContractCode", model.DriverContractCode);
Dic_File.Add("txtSubUnitName",subContractorsModel.SubUnitName);
Dic_File.Add("txtEvaluator", model.Evaluator);
foreach (var item in Dic_File)
{
string[] key = { item.Key };
object[] value = { item.Value };
doc.MailMerge.Execute(key, value);
}
doc.Save(newUrl);
Document doc1 = new Aspose.Words.Document(newUrl);
File.Delete(newUrl);
return doc1;
}
public static void PrintFile(string driverSubPlanId, string driverSubContractorsId)
{
string rootPath = Funs.RootPath;
string newUrl = string.Empty;
newUrl = rootPath + "File\\Word\\TestRun\\履约情况评价表.doc";
newUrl = newUrl.Replace(".doc", string.Format("{0:yyyy-MM}", DateTime.Now) + ".doc");
if (File.Exists(newUrl))
{
File.Delete(newUrl);
}
var doc = Print(driverSubPlanId,driverSubContractorsId);
doc.Save(newUrl);
//验证参数
if (doc == null) { throw new Exception("Word文件无效"); }
string fileName = Path.GetFileName(newUrl);
FileInfo info = new FileInfo(newUrl);
long fileSize = info.Length;
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.ContentType = "application/x-zip-compressed";
System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
System.Web.HttpContext.Current.Response.AddHeader("Content-Length", fileSize.ToString());
System.Web.HttpContext.Current.Response.TransmitFile(newUrl, 0, fileSize);
System.Web.HttpContext.Current.Response.Flush();
System.Web.HttpContext.Current.Response.Close();
File.Delete(newUrl);
}
/// <summary>
/// 根据主键删除开车分包管理
/// </summary>
/// <param name="DriverSubId"></param>
public static void DeleteDriverSub(string DriverSubId)
{
Model.DriverSub_DriverSub DriverSub = Funs.DB.DriverSub_DriverSub.FirstOrDefault(e => e.DriverSubId == DriverSubId);
if (DriverSub != null)
{
Funs.DB.DriverSub_DriverSub.DeleteOnSubmit(DriverSub);
Funs.DB.SubmitChanges();
}
}
/// <summary>
/// DriverSubPlanId和DriverSubContractorsId 删除数据
/// </summary>
/// <param name="DriverSubPlanId"></param>
/// <param name="DriverSubContractorsId"></param>
public static void DeleteDriverSubEvaluationData(string DriverSubPlanId, string DriverSubContractorsId)
{
Model.DriverSub_DriverSub data = Funs.DB.DriverSub_DriverSub.FirstOrDefault(e => e.DriverSubPlanId == DriverSubPlanId && e.DriverSubContractorsId == DriverSubContractorsId);
if (data != null)
{
data.EvaluationData = "";
Funs.DB.SubmitChanges();
}
}
/// <summary>
/// 根据DriverSubPlanId删除实体
/// </summary>
/// <param name="DriverSubPlanId"></param>
public static void DeleteDriverSubByDriverSubPlanId(string DriverSubPlanId)
{
var list = Funs.DB.DriverSub_DriverSub.Where(e => e.DriverSubPlanId == DriverSubPlanId).ToList();
//先删除对应附件
foreach (var item in list)
{
if (!string.IsNullOrEmpty(item.DriverSubId))
{
AttachFileService.DeleteAttachFile(Funs.RootPath, item.DriverSubId, Const.DriverSubMenuId);//删除附件
}
}
if (list.Count > 0)
{
Funs.DB.DriverSub_DriverSub.DeleteAllOnSubmit(list);
Funs.DB.SubmitChanges();
}
}
}
}