Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        /// <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);
            }
        }
Пример #4
0
        /// <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);
            }
        }
Пример #5
0
        /// <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);
        }
Пример #6
0
        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);
            }
        }
Пример #7
0
        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);
        }
Пример #8
0
        /// <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);
        }