/// <summary> /// 保存在ReportC目录下的文档 /// </summary> /// <param name="saveName"></param> public void Save(string saveName) { var dic = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "JCBG", "WordExport"); if (!Directory.Exists(dic)) { Directory.CreateDirectory(dic); } //删除文件 try { DirectoryInfo di = new DirectoryInfo(dic); FileInfo[] files = di.GetFiles(); foreach (FileInfo file in files) { file.Delete(); } } catch (Exception ex) { SystemLogger.getLogger().Error(ex.ToString()); throw ex; } string fileName = saveName + ".doc"; this.SavePath = Path.Combine(dic, fileName); builder.Document.Save(this.SavePath); this.SavePath = $@"JCBG/{fileName}"; }
public string UpdateData(string jsonStr, string funId, string heritageId) { try { SystemLogger.getLogger().Info(string.Format("遗产地ID为{2},funId为:{1},修改时间{3},遗产地数据Json为:{0},", jsonStr, funId, heritageId, DateTime.Now)); var businseeService = new DockBaseService(jsonStr, funId, heritageId); return(businseeService.UpdateData()); } catch (Exception ex) { } return(""); }
public virtual bool UpdateBase(string strJson) { //Session验证 try { var ent = JsonConvert.DeserializeObject <T>(strJson); return(base.Update(ent)); } catch (Exception ex) { SystemLogger.getLogger().Error(ex.Message.ToString()); return(false); } }
public virtual string ReceiveFile(byte[] fileInfo, string fileNmae, string businessFunID, string heritageId) { //遗产地 + 大类+ 功能 +文件 //var ftpUserID = System.Configuration.ConfigurationManager.AppSettings["ftpUser"]; //var ftpPassword = System.Configuration.ConfigurationManager.AppSettings["ftpPassword"]; SystemLogger.getLogger().Info(DateTime.Now + "访问bug"); var ftpAddress = System.Configuration.ConfigurationManager.AppSettings["Address"]; var rPath = ""; var filePath = CommonBusiness.GetFileTempPath(businessFunID, heritageId, ftpAddress, out rPath); var fileNewGuid = Guid.NewGuid().ToString(); var filePathAll = Path.Combine(filePath, fileNewGuid + "." + fileNmae.GetExtensioName()); if (!System.IO.Directory.Exists(filePath)) { SystemLogger.getLogger().Info(DateTime.Now + "创建目录"); System.IO.Directory.CreateDirectory(filePath); } FileStream fstream = File.Create(filePathAll, fileInfo.Length); fstream.Write(fileInfo, 0, fileInfo.Length); // SystemLogger.getLogger().Info(DateTime.Now + "创建目录正常"); try { var dbContext = DBHelperPool.Instance.GetDbHelper(); if (dbContext == null) { return(JsonHelper.SerializeObject(ToolResult.Failure("数据连接异常!"))); } var sql = @"INSERT INTO `HPF_TEMP_FILE` (`ID`,`WJMC`,`WJLX`,`WJLJ`) VALUES ('{0}','{1}','{2}','{3}')"; SystemLogger.getLogger().Info(DateTime.Now + "访问bug1"); var iResult = dbContext.execute(string.Format(sql, fileNewGuid, fileNmae, fileNmae.GetExtensioName(), rPath + fileNewGuid + "." + fileNmae.GetExtensioName())); SystemLogger.getLogger().Info(DateTime.Now + "访问bug2"); SystemLogger.getLogger().Info("返回结果:" + iResult); return(iResult > 0 ? fileNewGuid : ""); } catch (Exception ex) { var strErr = string.Format("遗产地对接文件类数据错误,参数:{0}#{1}#{2},具体错误:{3}", fileNmae, businessFunID, heritageId, ex.Message); SystemLogger.getLogger().Error(strErr); } finally { fstream.Close(); } SystemLogger.getLogger().Info(DateTime.Now + "访问bug4"); return(fileNewGuid); }
/// <summary> /// 内部连接数据库 /// </summary> /// <param name="dbtool"></param> /// <returns></returns> private static IDBHelper InitDb(DBToolModel dbtool) { if (dbtool == null) { return(null); } try { //是否达到队列上限 if (dbtool.dbHelperQueue.Count == dbtool.queueNum) { return(dbtool.dbHelperQueue.Dequeue()); } if (dbtool.assembly == null) { string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin", dbtool.dbDLLPath); Assembly assembly = Assembly.LoadFile(filePath); //保存 dbtool.assembly = assembly; } //连接数据库 IDBHelper dbHelper = (IDBHelper)dbtool.assembly.CreateInstance(dbtool.providerName); dbHelper.initConnectString(dbtool.dbConnString); SystemLogger.getLogger().Info(dbtool.name + "数据库初始化成功"); if (dbHelper != null) { dbtool.dbHelperQueue.Enqueue(dbHelper); } return(dbHelper); } catch (Exception ex) { SystemLogger.getLogger().Error("反射初始化数据库失败!", ex); } return(null); }
public override string ReceiveData() { string ResultInfo = ""; bool CHJZTResult = false; bool JBTPResult = false; var heritageId = this.HeritageId; var funId = this.FunId; var jsonStr = this.BusinessJsonStr; try { var listSqlStr = new List <string>(); var listYSJID = new List <string>(); var xmlConfig = CommonBusiness.GetMornitorConfig(heritageId); var funList = xmlConfig.GetFunctionalModules(); var ent = JsonHelper.DeserializeJsonToObject <ResultYCJCXX4DockModel>(jsonStr); var dbContext = DBHelperPool.Instance.GetDbHelper(); #region 遗产要素单体或局部测绘基准图 string funId_chjzt = funId + "01"; var funModel = funList.FirstOrDefault(e => e.ID == funId_chjzt); if (ent.DATADETAIL == null || ent.DATA == null) { return(JsonHelper.SerializeObject(new ResultModel(false, "对接主表或子表数据为空,对接失败"))); } foreach (var item in ent.DATA) { var nameToValue = item.GetNameToValueDic(); if (nameToValue.ContainsKey("GLYCBTID")) { nameToValue["GLYCBTID"] = heritageId; } if (nameToValue.ContainsKey("ID")) { nameToValue["ID"] = Guid.NewGuid(); } else { nameToValue.Add("ID", Guid.NewGuid()); } var yscid = nameToValue["YCDSJID"] + ""; if (!string.IsNullOrEmpty(yscid))//有可能对接过来就是 统计过得数据 例如景点日游客量 { listYSJID.Add(yscid); } listSqlStr.Add(dbContext.insertByParamsReturnSQL(funModel.TableName, nameToValue)); } try { if (!CheckIsDock(listSqlStr, listYSJID, funModel.TableName, dbContext)) { ResultInfo = "已经存在对接的【遗产要素单体或局部测绘基准图】数据" + "\r\n"; CHJZTResult = false; } else { dbContext.executeTransactionSQLList(listSqlStr); ResultInfo = "【遗产要素单体或局部测绘基准图】数据对接成功" + "\r\n"; CHJZTResult = true; } } catch (Exception ex) { var strErr = string.Format("遗产地对接数据类【遗产要素单体或局部测绘基准图】数据错误,参数:{0}#{1}#{2},具体错误:{3}", jsonStr, funId, heritageId, ex.Message); SystemLogger.getLogger().Error(strErr); CHJZTResult = false; return(JsonHelper.SerializeObject(new ResultModel(false, ex.Message))); } #endregion #region 遗产要素单体或局部图片 string funId_jbtp = funId + "02"; var funModel_jbtp = funList.FirstOrDefault(e => e.ID == funId_jbtp); listSqlStr = new List <string>(); foreach (var item in ent.DATADETAIL) { var nameToValue = item.GetNameToValueDic(); if (nameToValue.ContainsKey("GLYCBTID")) { nameToValue["GLYCBTID"] = heritageId; } if (nameToValue.ContainsKey("ID")) { nameToValue["ID"] = Guid.NewGuid(); } else { nameToValue.Add("ID", Guid.NewGuid()); } var yscid = nameToValue["YCDSJID"] + ""; if (!string.IsNullOrEmpty(yscid))//有可能对接过来就是 统计过得数据 例如景点日游客量 { listYSJID.Add(yscid); } listSqlStr.Add(dbContext.insertByParamsReturnSQL(funModel.TableName, nameToValue)); } try { if (!CheckIsDock(listSqlStr, listYSJID, funModel.TableName, dbContext)) { ResultInfo = "已经存在对接的【遗产要素单体或局部图片】数据" + "\r\n"; JBTPResult = false; } else { dbContext.executeTransactionSQLList(listSqlStr); ResultInfo = "【遗产要素单体或局部图片】数据对接成功" + "\r\n"; JBTPResult = true; } } catch (Exception ex) { var strErr = string.Format("遗产地对接数据类【遗产要素单体或局部图片】数据错误,参数:{0}#{1}#{2},具体错误:{3}", jsonStr, funId, heritageId, ex.Message); SystemLogger.getLogger().Error(strErr); JBTPResult = false; ResultInfo = ResultInfo + ex.Message; } #endregion if (CHJZTResult == true && JBTPResult == true) { return(JsonHelper.SerializeObject(new ResultModel(true, ResultInfo))); } else { var strSql = string.Format("delete from " + funModel.TableName + " where YCDSJID='{0}' and GLYCBTID='{1}' ", ent.DATADETAIL[0].YCDSJID, heritageId); dbContext.execute(strSql); strSql = string.Format("delete from " + funModel_jbtp.TableName + " where YCDSJID='{0}' and GLYCBTID='{1}' ", ent.DATADETAIL[0].YCDSJID, heritageId); dbContext.execute(strSql); return(JsonHelper.SerializeObject(new ResultModel(false, "数据对接失败"))); } } catch (Exception ex) { var strErr = string.Format("遗产地对接数据类数据错误,参数:{0}#{1}#{2},具体错误:{3}", jsonStr, funId, heritageId, ex.Message); SystemLogger.getLogger().Error(strErr); return(JsonHelper.SerializeObject(new ResultModel(false, ex.Message))); } }
public override string ReceiveData() { var dockBTYZTBHStructInitClass = GetTableName(FunId); var funModel = this.FindFunModel(HeritageId, FunId); if (funModel == null) { return(JsonHelper.SerializeObject(new ResultModel(false, "找不到该功能对应的配置信息"))); } //通过xml配置的表名 找到类的路径 反射成 list类 对象 var cListType = MethodHelper.GetTypeListFileEx(GetModelName(funModel.TableName)); //GCHeritagePlatform.Services.PublicMornitor.Model.HPF_RCXC_RCXCYCJL; var ent = JsonHelper.DeserializeJsonToDynamicObject(BusinessJsonStr, cListType); //遗产地发过来的字符串(json格式)的项与我们在model中建的功能类的属性是一一对应的,这里进行赋值 var entBHList = ent.DATA as IList; var entPathList = ent.FILEPATHLIST as List <FileInfoEx>; var listSqlStr = new List <string>(); var listYSJID = new List <string>();//遗产地数据ID var dicFileRelatedID = new Dictionary <string, Guid>(); var dbContext = DBHelperPool.Instance.GetDbHelper(); if (dbContext == null) { return(JsonHelper.SerializeObject(ToolResult.Failure("数据连接异常!"))); } foreach (var item in entBHList)//因为要将接收过来的数据写到总平台数据库中,所以需要添加ID,以及进行遗产地数据ID进行检查,防止重复插入 { var nameToValue = item.GetNameToValueDic(); if (nameToValue.ContainsKey("GLYCBTID")) { nameToValue["GLYCBTID"] = HeritageId; } var guid = Guid.NewGuid(); nameToValue["ID"] = guid; var ysjid = nameToValue["YCDSJID"].ToString() + ""; if (!string.IsNullOrEmpty(ysjid)) //有可能对接过来就是 统计过得数据 例如景点日游客量 { listYSJID.Add(ysjid); //防止重复对接 } dicFileRelatedID.Add(ysjid, guid); listSqlStr.Add(dbContext.insertByParamsReturnSQL(GetModelName(funModel.TableName), nameToValue)); } //附件 if (entPathList != null) { var fileIds = entPathList.Select(e => e.FILEID).ToList(); var fileInfoList = CommonBusiness.GetFileListByFileID(fileIds); if (fileInfoList != null) { if (fileInfoList.Count > 0 && fileInfoList.Count != fileIds.Count) { SystemLogger.getLogger().Info(FunId + "#" + HeritageId + "文件对接信息不对应"); return(JsonHelper.SerializeObject(new ResultModel(false, "文件信息不对应"))); } foreach (var item in fileInfoList) { var entFile = entPathList.FirstOrDefault(e => e.FILEID == item.FILEID); //由于StructInitClass结构体构造方法的重载方法限制,故这里的SubordinateTableName实际为RelatedZPTableName,RelatedID实际为RelatedJLID var sql = string.Format("insert into {0} (ID,MC,LJ,{1},GS,RKSJ,LX) values ('{2}','{3}','{4}','{5}','{6}','{7}','{8}')", dockBTYZTBHStructInitClass.SubordinateTableName, dockBTYZTBHStructInitClass.RelatedID, Guid.NewGuid(), item.FILENAME, item.RELATIVEPATH, dicFileRelatedID[entFile.YCDSJID], item.FILETYPE, DateTime.Now.ToString(), entFile.LX); listSqlStr.Add(sql); } } } if (!CheckIsDock(listSqlStr, listYSJID, funModel.TableName, dbContext)) { return(JsonHelper.SerializeObject(new ResultModel(false, "已经存在对接的数据"))); } return(GetExeListSQL(dbContext, listSqlStr)); }
public override string ReceiveData() { var heritageId = this.HeritageId; var funId = this.FunId; var jsonStr = this.BusinessJsonStr; try { var xmlConfig = CommonBusiness.GetMornitorConfig(heritageId); var funList = xmlConfig.GetFunctionalModules(); var ent = JsonHelper.DeserializeJsonToObject <ResultYCYSDT2DockModel>(jsonStr); var dbContext = DBHelperPool.Instance.GetDbHelper(); var funModel = funList.FirstOrDefault(e => e.ID == funId); var listSqlStr = new List <string>(); var listYSJID = new List <string>(); foreach (var item in ent.DATA) { var nameToValue = item.GetNameToValueDic(); if (nameToValue.ContainsKey("GLYCBTID")) { nameToValue["GLYCBTID"] = heritageId; } if (nameToValue.ContainsKey("ID")) { nameToValue["ID"] = Guid.NewGuid(); } else { nameToValue.Add("ID", Guid.NewGuid()); } var yscid = nameToValue["YCDSJID"] + ""; listYSJID.Add(yscid); foreach (var fitem in ent.FILEPATHLIST) { var fnameToValue = fitem.GetNameToValueDic(); if (fnameToValue.ContainsKey("YCDSJID") == nameToValue.ContainsKey("YCDSJID")) { FileInfoEx ReceiveFileInfo = CommonBusiness.GetFileNameByFileID(fnameToValue["FileID"] as string); if (!string.IsNullOrEmpty(yscid))//有可能对接过来就是 统计过得数据 例如景点日游客量 { } } } ////if (nameToValue.ContainsKey("TPMC")) ////{ //// nameToValue["TPMC"] = ReceiveFileInfo.FILENAME; ////} ////else ////{ //// nameToValue.Add("TPMC", ReceiveFileInfo.FILENAME); ////} //if (nameToValue.ContainsKey("TPLJ")) //{ // nameToValue["TPLJ"] = ReceiveFileInfo.RELATIVEPATH; //} //else //{ // nameToValue.Add("TPLJ", ReceiveFileInfo.RELATIVEPATH); //} //if (nameToValue.ContainsKey("TPLX")) //{ // nameToValue["TPLX"] = ReceiveFileInfo.FILETYPE; //} //else //{ // nameToValue.Add("TPLX", ReceiveFileInfo.FILETYPE); //} listSqlStr.Add(dbContext.insertByParamsReturnSQL(funModel.TableName, nameToValue)); // } //} //} //listSqlStr.Add(dbContext.insertByParamsReturnSQL(funModel.TableName, nameToValue)); //HPF_YSDT_YCYSDTHJBCHTJLB } if (!CheckIsDock(listSqlStr, listYSJID, funModel.TableName, dbContext)) { return(JsonHelper.SerializeObject(new ResultModel(false, "已经存在对接的数据"))); } else { if (dbContext.executeTransactionSQLList(listSqlStr)) { return(JsonHelper.SerializeObject(new ResultModel(true, "对接成功"))); } else { return(JsonHelper.SerializeObject(new ResultModel(false, "对接失败"))); } } } catch (Exception ex) { var strErr = string.Format("遗产地对接数据类【遗产要素单体或局部影像及遗产要素现状记录】数据错误,参数:{0}#{1}#{2},具体错误:{3}", jsonStr, funId, heritageId, ex.Message); SystemLogger.getLogger().Error(strErr); return(JsonHelper.SerializeObject(new ResultModel(false, ex.Message))); } }
public override string ReceiveData() { var heritageId = this.HeritageId; var funId = this.FunId; var jsonStr = this.BusinessJsonStr; var cListType = MethodHelper.GetTypeList(ClassName); var entList = JsonHelper.DeserializeJsonToObject(jsonStr, cListType) as IList; //var entList = JsonHelper.DeserializeJsonToObject<List<HPF_ZRHJ_TFLJXX>>(jsonStr) ; var dbContext = DBHelperPool.Instance.GetDbHelper(); var listSqlStr = new List <string>(); foreach (var item in entList) { var nameToValue = item.GetNameToValueDic(); if (nameToValue.ContainsKey("GLYCBTID")) { nameToValue["GLYCBTID"] = heritageId; } if (nameToValue.ContainsKey("ID")) { nameToValue["ID"] = Guid.NewGuid(); } else { nameToValue.Add("ID", Guid.NewGuid()); } //台风信息和对接数据有关联 var strSql = ""; if (funId == "8020403") { strSql = string.Format("select ID from HPF_ZRHJ_TF where YCDSJID='{0}' and GLYCBTID='{1}' ", nameToValue["PID"], heritageId); } else { strSql = string.Format("select ID from HPF_ZRHJ_TFLJXX where YCDSJID='{0}' and GLYCBTID='{1}' ", nameToValue["PID"], heritageId); } var dtMain = dbContext.getDataTableResult(strSql); if (dtMain == null || dtMain.Rows.Count == 0) { return(JsonHelper.SerializeObject(new ResultModel(false, "请先对接台风信息!"))); } //如果有改变PID的属性信息 nameToValue["PID"] = dtMain.Rows[0][0].ToString(); listSqlStr.Add(dbContext.insertByParamsReturnSQL(ClassName, nameToValue)); } try { if (!CheckIsDock(listSqlStr, listSqlStr, ClassName, dbContext)) { return(JsonHelper.SerializeObject(new ResultModel(false, "已经存在对接的数据"))); } dbContext.executeTransactionSQLList(listSqlStr); return(JsonHelper.SerializeObject(new ResultModel(true, "对接成功"))); } catch (Exception ex) { var strErr = string.Format("遗产地对接数据类数据【自然环境 台风路径或台风预估点】错误,参数:{0}#{1}#{2},具体错误:{3}", jsonStr, funId, heritageId, ex.Message); SystemLogger.getLogger().Error(strErr); return(JsonHelper.SerializeObject(new ResultModel(false, ex.Message))); } }
private static void Service_OnSendError(Exception e, HproseContext context) { SystemLogger.getLogger().Debug(e.Message); }
public virtual string ReceiveData(string jsonStr, string funId, string heritageId) { var beforeVerifyStr = VerifyBaseData(jsonStr, funId, heritageId); if (!string.IsNullOrEmpty(beforeVerifyStr)) { return(beforeVerifyStr); } SystemLogger.getLogger().Info(string.Format("遗产地ID为{2},funId为:{1},时间{3},遗产地数据Json为:{0},", jsonStr, funId, heritageId, DateTime.Now)); IDockBaseService businseeService = null; //各个逻辑 对外同一接口 不同逻辑处理方式不同 switch (funId) { case "101": //申遗承诺事项进展 businseeService = new DockSYCNServices(jsonStr, funId, heritageId); break; case "20101": //保护管理机构 case "202": //专项保护管理法规、规章 case "1302": //安防消防 管理制度和应急预案记录 businseeService = new DockBHGLJG_Service(jsonStr, funId, heritageId); break; case "304": //遗产要素单体或局部测绘基准图和标志性影像 businseeService = new DockYCJCXX_YSDTServices(jsonStr, funId, heritageId, ""); break; case "601": //遗产要素单体或局部测绘图及遗产要素现状记录 businseeService = new DockYCYSDT_JCeSJServices(jsonStr, funId, heritageId, "HPF_YCYSDT_YCYSDTHJBXZT"); break; case "602": //遗产要素单体或局部影像及遗产要素现状记录 businseeService = new DockYCYSDT_JCeSJServices(jsonStr, funId, heritageId, "HPF_YCYSDT_YCYSDTHJBTP"); break; case "702": //病害调查监测工作情况记录(附件未实现,不知存到哪个表中) businseeService = new DockFileBaseService(jsonStr, funId, heritageId); break; case "70301": //裂缝_文档类 case "70303": //沉降_文档类 //case "70304"://变形_文档类 case "70307": //糟朽 case "70308": //白蚁 case "70309": //钢筋锈蚀 case "70310": //植物根系 case "70311": //渗漏水 case "70312": //脱落 businseeService = new DockBTYZTBHService(jsonStr, funId, heritageId); break; case "70302": //裂缝数值类 businseeService = new DockBTYZTBHValueService(jsonStr, funId, heritageId, "HPF_BTYZTBH_LF", "LFID"); break; case "70305": //水平位移数值类 businseeService = new DockBTYZTBHValueService(jsonStr, funId, heritageId, "HPF_BTYZTBH_SPWY", "SPWYID"); break; case "70306": //沉降数值类(设备监测) businseeService = new DockBTYZTBHValueService(jsonStr, funId, heritageId, "HPF_BTYZTBH_CJ", "CJID"); break; case "70501": //移动采集端通用文档类的对接接口 businseeService = new DockTyWd(jsonStr, funId, heritageId, "HPF_BTYZTBH_WDLBHTYBZP", "WDID"); break; case "70502": //移动采集端通用照片类的对接接口 businseeService = new DockTyZp(jsonStr, funId, heritageId); break; case "70503": //移动采集端通用测项的对接接口 businseeService = new DockCeXiangTable(jsonStr, funId, heritageId); break; case "70504": //移动采集端通用病害采集记录表的对接接口 businseeService = new DockTyjlTable(jsonStr, funId, heritageId); break; case "8020403": //台风路径信息 businseeService = new DockZRHJ_TFLJService(jsonStr, funId, heritageId, "HPF_ZRHJ_TFLJXX"); break; case "8020404": //台风预估点信息 businseeService = new DockZRHJ_TFLJService(jsonStr, funId, heritageId, "HPF_ZRHJ_TFYGDXX"); break; //case "90201"://新建项目记录(新建项目记录走基类,带附件的项目范围图(鼓浪屿除外,鼓浪屿使用的超擎的矢量)和现场环境照片走这里。) case "90202": //带附件的项目范围图(鼓浪屿除外,鼓浪屿使用的超擎的矢量)。 case "90203": //新建项目现场环境照片 businseeService = new DockJSKZService(jsonStr, funId, heritageId); break; case "1101": //日游客容量限制值 case "1102": //瞬时游客容量限制值 case "1103": //日游客量 case "1104": //瞬时游客量 case "1105": //客流高峰时段现场照片 businseeService = new DockLYYYKGLService(jsonStr, funId, heritageId); break; case "1401": //考古报告信息 case "1403": //考古发掘现场照片 businseeService = new DockKGFJ_KGFileServices(jsonStr, funId, heritageId); break; case "1402": //考古发掘记录(其中有已发表的简报文件的对接文件,没有的不对) // case "1402"://考古发掘工作(8月1日改后,已经走了基类new DockBaseService) businseeService = new DockKGFJService(jsonStr, funId, heritageId); break; //case "150103"://保护工程工程方案文档,总平台不要 case "1503": //保护现场照片 businseeService = new DockBHGC_XCZPServices(jsonStr, funId, heritageId); break; case "1501": //保护展示与环境整治工程记录 businseeService = new DockProtectDERPRService(jsonStr, funId, heritageId); break; case "1601": //保护管理规划编制记录 businseeService = new DockBHGLGHService(jsonStr, funId, heritageId); break; case "1602": //现行保护管理规划执行情况 businseeService = new DockXXGHZXQKJL(jsonStr, funId, heritageId); break; default: businseeService = new DockBaseService(jsonStr, funId, heritageId); //base为只存数据,无附件的基类 break; } return(businseeService.ReceiveData()); }