/// <summary> /// 货代单证删除方法 /// </summary> /// <param name="ywbh">业务编号</param> /// <param name="strErr">错误日志</param> /// <param name="eid">失败日志id</param> /// <returns></returns> public static bool DelHddz(s_log_errEntity le, out string strErr) { bool flag = false; strErr = string.Empty; try { HddzIF serv = new HddzIF(); flag = serv.DelHddz(le.mainid); serv.LogInfo.SaveLog(); le.errmsg += serv.LogInfo.Log; } catch (Exception ex) { le.errmsg += DateTime.Now.ToString() + ":" + ex.Message; strErr = ex.Message; } try { le.sccssj = DateTime.Now; le.sfcg = flag ? 1 : 0; le.cscs++; Service.BaseService.UpdateErrLog(le); } catch (Exception ex) { strErr += ex.Message; } return(flag); }
/// <summary> /// 货代单证删除方法 /// </summary> /// <param name="tableName">表名</param> /// <param name="ywbh">业务编号</param> /// <param name="strErr">错误日志</param> /// <returns></returns> public static bool DelHddz(string tableName, string ywbh, out string strErr) { bool flag = false; try { strErr = string.Empty; s_log_errEntity le = new s_log_errEntity(); le.eid = Guid.NewGuid().ToString(); le.tablename = tableName; le.mainid = ywbh; le.changecols = ""; le.cjsj = DateTime.Now; le.funname = "DelHddz"; Service.BaseService.SaveErrLog(le); //禁用未同步的接口设置sfcg 2 Service.BaseService.UpdateLogList(le.mainid); flag = true; } catch (Exception ex) { strErr = ex.Message; flag = false; } return(flag); }
/// <summary> /// 保存同步失败的参数 /// </summary> /// <param name="model"></param> public static void SaveErrLog(s_log_errEntity model) { using (var con = ConnectionFactory.CreateConnection()) { if (con.State == System.Data.ConnectionState.Closed) { con.Open(); } string sql = SqlFactory.GetInsertSql(model); con.Execute(sql, model); } }
/// <summary> /// 获取失败记录对象 /// </summary> /// <returns></returns> public static s_log_errEntity Getle(string eid) { using (var con = ConnectionFactory.CreateConnection()) { if (con.State == System.Data.ConnectionState.Closed) { con.Open(); } string sql = "select * from s_log_err where eid=@eid"; s_log_errEntity model = con.Query <s_log_errEntity>(sql, new { eid = eid }).FirstOrDefault(); return(model); } }
/// <summary> /// 保存数据到日志 /// </summary> /// <param name="tableName">更新的表名 不能为空</param> /// <param name="changeCols">更新的字段(分隔符为,半角逗号) 当该参数为空或null时 同步所有字段,当模式为新增时该值为空</param> /// <param name="ID">主键值 不能为空。如果更新的是子表,传递主表的主键(例如集装箱信息)</param> /// <param name="strErr">执行日志</param> /// <param name="parameters">其他可选参数</param> /// <returns>是否执行成功</returns> public bool SaveOpLog(string tableName, string changeCols, string ID, out string strErr, string[] parameters = null) { strErr = string.Empty; bool flag = false; s_log_errEntity le = new s_log_errEntity(); #region 记录日志 等待windows服务调用 //flag = false; if (changeCols == "null") { changeCols = null; } try//执行失败 记录接口调用日志 把参数保存下来 { le = new s_log_errEntity(); le.eid = Guid.NewGuid().ToString(); le.tablename = tableName; le.changecols = changeCols; le.cjsj = DateTime.Now; le.funname = "DataToFreshPort"; le.mainid = ID; if (parameters != null) { le.parameters = string.Join(",", parameters); } Service.BaseService.SaveErrLog(le); flag = true; } catch (Exception ex) { flag = false; strErr = ex.Message; //throw ex; } #endregion End: return(flag); }
public void UpdateWlgzCmd(yw_hddz_wlgz_cmdEntity model) { using (conn = ConnectionFactory.CreateConnection()) { if (conn.State == ConnectionState.Closed) { conn.Open(); } StringBuilder sql = new StringBuilder(); sql.Append("update yw_hddz_wlgz_cmd set "); string strWhere = ""; if (model.jrdzwlsj != null) { sql.Append("jrdzwlsj =@jrdzwlsj,jdzwlsj_lrsj=@jdzwlsj_lrsj,jdzwlsj_czry='北斗' "); strWhere = " and jrdzwlsj is null"; } else if (model.cdzwlsj != null) { sql.Append("cdzwlsj =@cdzwlsj,cdzwlsj_lrsj=@cdzwlsj_lrsj,cdzwlsj_czry='北斗' "); strWhere = " and cdzwlsj is null"; } else { throw new Exception("进出电子围栏时间必须有一个不能为空"); } sql.Append(" where rwbh=@rwbh and wlxh=@wlxh"); sql.Append(strWhere); conn.Execute(sql.ToString(), model); conn.Execute("p_hywlgz", new { ywbh = model.ywbh, cxh = model.hddz_cxh }, null, null, CommandType.StoredProcedure); s_log_errEntity log = new s_log_errEntity(); log.eid = "dzwl_" + Guid.NewGuid().ToString(); log.cjsj = DateTime.Now; log.cscs = 0; log.funname = "DataToFreshPort"; log.mainid = model.ywbh; log.parameters = model.hddz_cxh.ToString(); log.changecols = "gq_sj,gq_cp,gq_sjlxfs,gq_rwbh,gq_c_rwbh,hgcyd_sj,hgcyd_cp,hgcyd_sjlxfs,hgcyd_rwbh,hgcyd_c_rwbh,jyd_sj,jyd_cp,jyd_sjlxfs,jyd_rwbh,jyd_c_rwbh," + "sc_sj,sc_cp,sc_sjlxfs,sc_rwbh,sc_c_rwbh,zjfscwld_sj,zjfscwld_cp,zjfscwld_sjlxfs,zjfscwld_rwbh,zjfscwld_c_rwbh,jschfscwld_sj,jschfscwld_cp," + "jschfscwld_sjlxfs,jschfscwld_rwbh,jschfscwld_c_rwbh,fscwld3_sj,fscwld3_cp,fscwld3_sjlxfs,fscwld3_rwbh,fscwld3_c_rwbh,fscwld4_sj,fscwld4_cp," + "fscwld4_sjlxfs,fscwld4_rwbh,fscwld4_c_rwbh,dc_sj,dc_cp,dc_sjlxfs,dc_rwbh,cgqsj,rscsj,djydsj,tgjysj,cscsj,hdcsj,fscwl_ddsj,fscwl_lksj,fscwl2_ddsj," + "fscwl2_lksj,fscwl3_ddsj,fscwl3_lksj,fscwl4_ddsj,fscwl4_lksj"; log.sfcg = 0; log.tablename = "yw_hddz_jzxxx"; s_log_errEntity log1 = new s_log_errEntity(); log1.eid = "dzwl_" + Guid.NewGuid().ToString(); log1.cjsj = DateTime.Now; log1.cscs = 0; log1.funname = "DataToFreshPort"; log1.mainid = model.ywbh; log1.parameters = model.hddz_cxh.ToString(); log1.changecols = ""; log1.sfcg = 0; log1.tablename = "yw_hddz_wlgz"; List <s_log_errEntity> list = new List <s_log_errEntity>(); list.Add(log); list.Add(log1); string logsql = SqlFactory.GetInsertSql(log); conn.Execute(logsql, list); } }
public static bool DataToFreshPort(s_log_errEntity log, out string strErr) { HddzIF serv = new HddzIF(); string tableName = log.tablename; string changeCols = log.changecols; string ID = log.mainid; string[] parameters = log.parameters == null ? null : log.parameters.Split(','); bool flag = false; //字段集合 List <interfieldEntity> colslist = new List <interfieldEntity>(); //接口集合 //List<string> interNames = new List<string>(); try { if (!string.IsNullOrEmpty(changeCols)) { colslist = Service.BaseService.GetField(tableName, changeCols.Split(',')); // interNames = GetIFlist(colslist); } //根据表名分别调用接口 switch (tableName) { case "yw_hddz": //货代单证 case "yw_hddz_jzxxx": //集装箱 case "yw_hddz_dzyq": //单证 yw_hddzEntity model = new Service.HddzService().GetModel(ID); if (model == null) { throw new Exception("表" + tableName + "没有找到主键为" + ID + "的货代单证"); } flag = HddzInterface(colslist, tableName, model, GetParameter(parameters, 0), serv); break; case "yw_hddz_sdzpgl_cmd": //运费 case "yw_hddz_sdzpgl": flag = serv.SynInternational(ID); break; case "yw_hddz_fksqd_cmd": //超期费+国际运费 case "yw_hddz_fksqd": yw_hddz_fksqdEntity fksqd = new Service.HddzService().GetFksqd(ID); if (fksqd == null) { throw new Exception("表" + tableName + "没有找到主键为" + ID + "的数据"); } flag = fksqdInterface(fksqd, serv); break; case "yw_hddz_ycyy": flag = serv.SynAbnormal(ID, GetParameter(parameters, 0), GetParameter(parameters, 1)); break; case "yw_hddz_kycd": //空运配货 cdphbm flag = serv.SynAirDistribution(ID); break; case "yw_hddz_tpcdxx": //空运配货分录 cdphbm flag = serv.SynAirDistributionItem(ID); break; case "yw_hddz_wlgz": //传入ywbh flag = serv.SynSeaBLByWlgz(ID, GetParameter(parameters, 0)); break; case "yw_hddz_yshdfygj_cmd": //case "yw_hddz_qtysk_cmd"://传入ywbh yw_hddzEntity hddz = new Service.HddzService().GetModel(ID); if (hddz == null) { throw new Exception("表" + tableName + "没有找到主键为" + ID + "的货代单证"); } flag = serv.SynFreightCosts(hddz, GetParameter(parameters, 0)); break; case "yw_hddz_sjzf": //报关税金 传入ywbh flag = serv.SynCustomsduty(ID); break; default: throw new Exception("没有找到" + tableName + "对应接口"); //break; } serv.LogInfo.SaveLogToDb(); strErr = serv.LogInfo.buildLogStr(); } catch (Exception ex) { strErr = ex.Message; flag = false; } try { log.sccssj = DateTime.Now; log.sfcg = flag ? 1 : 0; log.cscs++; log.errmsg = serv.LogInfo.buildLogStr(); Service.BaseService.UpdateErrLog(log); } catch (Exception ex) { strErr += "保存日志时出现异常:" + ex.Message; } return(flag); }
/// <summary> /// 数据同步到生鲜港(基于表更新) /// </summary> /// <param name="tableName">更新的表名 不能为空</param> /// <param name="changeCols">更新的字段(分隔符为,半角逗号) 当该参数为空或null时 同步所有字段,当模式为新增时该值为空</param> /// <param name="ID">主键值 不能为空。如果更新的是子表,传递主表的主键(例如集装箱信息)</param> /// <param name="strErr">执行日志</param> /// <param name="parameters">其他可选参数</param> /// <returns>是否执行成功</returns> public static bool DataToFreshPort(string tableName, string changeCols, string ID, out string strErr, string[] parameters = null) { strErr = string.Empty; bool flag = false; s_log_errEntity le = new s_log_errEntity(); #region 记录日志 等待windows服务调用 //flag = false; if (changeCols == "null") { changeCols = null; } try//执行失败 记录接口调用日志 把参数保存下来 { var list = new Service.HddzService().GetLogerrListByTableName(tableName, ID, parameters, 10); if (list.FirstOrDefault(p => string.IsNullOrEmpty(p.changecols)) != null)//判断是否有更新所有字段的 { flag = true; goto End; } le = list.FirstOrDefault(); if (le == null) { le = new s_log_errEntity(); le.eid = Guid.NewGuid().ToString(); le.tablename = tableName; le.changecols = changeCols; le.cjsj = DateTime.Now; le.funname = "DataToFreshPort"; le.mainid = ID; if (parameters != null) { le.parameters = string.Join(",", parameters); } Service.BaseService.SaveErrLog(le); } else { string cols = le.changecols.TrimEnd(','); string[] strs = le.changecols.Split(','); foreach (string str in strs) { if (cols.IndexOf(str) == -1) { cols += "," + str; } } if (le.changecols != cols)//字段发生变化 需要修改 { le.changecols = cols; le.cjsj = DateTime.Now; Service.BaseService.UpdateErrLog(le); } } flag = true; } catch (Exception ex) { flag = false; strErr = ex.Message; //throw ex; } #endregion End: return(flag); }