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 { /// /// 开车分包管理 /// public static class DriverSubService { /// /// 根据主键获取开车分包管理信息 /// /// /// public static Model.DriverSub_DriverSub GetDriverSubById(string DriverSubId) { return Funs.DB.DriverSub_DriverSub.FirstOrDefault(e => e.DriverSubId == DriverSubId); } /// /// 根据分包计划和分包商获取开车分包管理信息 /// /// /// /// public static Model.DriverSub_DriverSub GetDriverSubBySubPlanIdAndTractorsId(string DriverSubPlanId, string DriverSubContractorsId) { return Funs.DB.DriverSub_DriverSub.FirstOrDefault(e => e.DriverSubPlanId == DriverSubPlanId&& e.DriverSubContractorsId==DriverSubContractorsId); } /// /// DriverSubPlanId和DriverSubContractorsId 获取对象的EvaluationData信息,将json数据EvaluationData 转换成List /// /// /// /// public static List GetDriverSubEvaluationData(string DriverSubPlanId, string DriverSubContractorsId) { List list = new List(); Model.DriverSub_DriverSub data = Funs.DB.DriverSub_DriverSub.FirstOrDefault(e => e.DriverSubPlanId == DriverSubPlanId && e.DriverSubContractorsId == DriverSubContractorsId); if (data != null) { list = Newtonsoft.Json.JsonConvert.DeserializeObject>(data.EvaluationData); } return list; } /// /// 将List DriverSubEvaluationData转换成json数据 /// /// /// public static string GetDriverSubEvaluationDataJson(List list) { return Newtonsoft.Json.JsonConvert.SerializeObject(list); } /// /// 根据分包类别获取初始化数据List /// /// public static List GetDriverSubEvaluationData(string type ) { List list = new List(); 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; } /// /// 添加开车分包管理信息 /// /// 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(); } /// /// 修改开车分包管理 /// /// 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 Dic_File = new Dictionary(); 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); } /// /// 根据主键删除开车分包管理 /// /// 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(); } } /// /// DriverSubPlanId和DriverSubContractorsId 删除数据 /// /// /// 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(); } } /// /// 根据DriverSubPlanId删除实体 /// /// 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(); } } } }