295 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			295 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			C#
		
	
	
	
| 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();
 | ||
|             }
 | ||
|         }
 | ||
|     }
 | ||
| }
 |