/// <summary> /// 获取订单设置 /// </summary> /// <param name="Name">设置名称</param> /// <param name="CompID">核心企业ID</param> /// <returns>0、不审核,1、审核</returns> public static string rdoOrderAudit(string Name, int CompID) { List <Hi.Model.SYS_SysName> sl = new Hi.BLL.SYS_SysName().GetList("", " CompID=" + CompID + " and Name='" + Name + "' and dr=0", ""); if (sl != null && sl.Count > 0) { return(sl[0].Value); } return("0"); }
/// <summary> /// 订单完成节点设置 /// </summary> /// <param name="CompID">核心企业</param> /// <returns></returns> public int OstateAudit(int CompID) { int OAduit = 0; try { List <Hi.Model.SYS_SysName> sl = new Hi.BLL.SYS_SysName().GetList("", " CompID=" + CompID + " and Name='订单完成节点设置' and dr=0", ""); if (sl != null && sl.Count > 0) { OAduit = Convert.ToInt32(sl[0].Value); } } catch (Exception ex) { return(0); } return(OAduit); }
/// <summary> /// 已发货超时未签收的订单 自动签收 /// </summary> /// <returns></returns> public static string SendShip() { try { //系统自动签收天数 int Sign = System.Configuration.ConfigurationManager.AppSettings["Sign"] != null?Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["Sign"].ToString()) : 10; List <Hi.Model.BD_Company> coml = new Hi.BLL.BD_Company().GetList("ID", " isnull(dr,0)=0 and isnull(IsEnabled,0)=1 and AuditState=2", ""); //执行sql string str = string.Empty; if (coml != null && coml.Count > 0) { foreach (var icom in coml) { //获取核心企业设置自动签收天数 List <Hi.Model.SYS_SysName> sl = new Hi.BLL.SYS_SysName().GetList("", "Name='订单自动签收' and CompID=" + icom.ID, ""); if (sl != null && sl.Count > 0) { Sign = Convert.ToInt32(sl[0].Value); } //当前时间 DateTime now = DateTime.Now; DateTime oldTime = now.AddDays(-Sign); //用户名ID、Name int UserID = 0; string userName = string.Empty; //Common.GetUserName(UserID); //查询超过签收天数条件 string signstr = " CompID=" + icom.ID + " and isnull(IsSign,0)=0 and SendDate<='" + oldTime + "'"; //查询超过签收天数未签收的订单 List <Hi.Model.DIS_OrderOut> outl = new Hi.BLL.DIS_OrderOut().GetList("", signstr, ""); if (outl == null && outl.Count == 0) { return(""); } foreach (Hi.Model.DIS_OrderOut item in outl) { Hi.Model.DIS_Order OrderModel = new Hi.BLL.DIS_Order().GetModel(item.OrderID); List <Hi.Model.DIS_OrderDetail> od = new Hi.BLL.DIS_OrderDetail().GetList("", "OrderID=" + item.OrderID, ""); //查询该订单已发货的发货单 List <Hi.Model.DIS_OrderOut> lo = new Hi.BLL.DIS_OrderOut().GetList("", " OrderID=" + item.OrderID, ""); //订单明细商品总数量 decimal goodsnum = 0; //订单商品总数 if (od != null && od.Count > 0) { foreach (var item0 in od) { goodsnum += item0.GoodsNum; } } decimal outnum = 0; //已发货商品数量 if (lo != null && lo.Count > 0) { var idstr = ""; foreach (var item1 in lo) { idstr += item1.ID + ","; } if (idstr.Length > 0) { idstr = idstr.Substring(0, idstr.Length - 1); } List <Hi.Model.DIS_OrderOutDetail> lod = new Hi.BLL.DIS_OrderOutDetail().GetList("", " OrderOutID in(" + idstr + ")", ""); if (lod != null && lod.Count > 0) { foreach (var item2 in lod) { outnum += item2.OutNum; } } } int IsOutState = (int)Enums.IsOutState.全部到货; int OState = (int)Enums.OrderState.已到货; //订单 //到货签收修改订单状态 if (OrderModel.IsOutState == (int)Enums.IsOutState.全部发货) { //已发货数量等于订单商品数量 ==全部到货 if (outnum == goodsnum) { IsOutState = (int)Enums.IsOutState.全部到货; OState = (int)Enums.OrderState.已到货; } else { IsOutState = (int)Enums.IsOutState.全部发货; OState = (int)Enums.OrderState.已到货; } } else if (OrderModel.IsOutState == (int)Enums.IsOutState.部分发货 || OrderModel.IsOutState == (int)Enums.IsOutState.部分到货) { IsOutState = (int)Enums.IsOutState.部分到货; OState = (int)Enums.OrderState.已发货; } //本次签收商品数量 List <Hi.Model.DIS_OrderOutDetail> lodd = new Hi.BLL.DIS_OrderOutDetail().GetList("", " OrderOutID=" + item.ID, ""); if (lodd != null && lodd.Count > 0 && OrderModel.IsOutState == (int)Enums.IsOutState.全部发货) { foreach (var item3 in lodd) { str += "update DIS_OrderOutDetail set SignNum=OutNum where OrderOutID=" + item.ID + " and ID=" + item3.ID + ";"; } } userName = GetUserName(OrderModel.DisUserID); UserID = OrderModel.DisUserID; //判断订单状态 if (OrderModel.OState >= (int)Enums.OrderState.已发货 && OrderModel.IsOutState == (int)Enums.IsOutState.全部发货 && (OrderModel.ReturnState == (int)Enums.ReturnState.未退货 || OrderModel.ReturnState == (int)Enums.ReturnState.拒绝退货)) { //订单状态 str += " update Dis_Order set OState=" + OState + ",IsOutState=" + IsOutState + ",modifyuser="******",ts='" + DateTime.Now + "' where ID=" + item.OrderID + ";"; //签收状态 str += " update Dis_OrderOut set SignDate='" + DateTime.Now + "',SignUser='******',SignUserId=" + UserID + ",IsSign=1,modifyuser="******",ts='" + DateTime.Now + "' where ID=" + item.ID + ";"; //自动签收日志 str += string.Format("INSERT INTO SYS_SysBusinessLog VALUES({0},'{1}',{2},'{3}','{4}',{5},'{6}','{7}','{8}',{9},{10});", icom.ID, "Order", item.OrderID, "订单自动签收", DateTime.Now, UserID, userName, "", DateTime.Now, 0, UserID); } else { continue; } } } } SqlTransaction TranSaction = null; SqlConnection Connection = new SqlConnection(SqlHelper.LocalSqlServer); Connection.Open(); TranSaction = Connection.BeginTransaction(); try { SqlCommand cmd = new SqlCommand(str.ToString(), Connection, TranSaction); cmd.CommandType = CommandType.Text; int rowsAffected = SqlHelper.GetInt(cmd.ExecuteNonQuery().ToString()); if (rowsAffected > 0) { TranSaction.Commit(); return("1"); } else { TranSaction.Rollback(); return(""); } } catch (Exception ex) { TranSaction.Rollback(); Console.WriteLine(ex.Message); return(""); } finally { Connection.Dispose(); } } catch (Exception ex) { //错误日志 string strPath = @"../autoOrder/"; strPath = strPath + "\\" + DateTime.Now.ToString("yyyyMMhh") + "_服务错误日志" + ".txt"; StreamWriter fs = new StreamWriter(strPath, false, System.Text.Encoding.Default); fs.WriteLine(ex.Message); fs.WriteLine(ex.Source + "::" + ex.InnerException + "::" + ex.TargetSite); fs.WriteLine("**************************************"); fs.Close(); } return("1"); }
/// <summary> /// 超时未付款自动作废订单 自动取消 /// </summary> /// <param name="CompID">核心企业ID</param> /// <returns></returns> public static string OffShip() { try { int off = 30; List <Hi.Model.BD_Company> coml = new Hi.BLL.BD_Company().GetList("ID", " isnull(dr,0)=0 and isnull(IsEnabled,0)=1 and AuditState=2", ""); //执行sql string str = string.Empty; if (coml != null && coml.Count > 0) { foreach (var icomp in coml) { //获取核心企业设置自动签收天数 List <Hi.Model.SYS_SysName> sl = new Hi.BLL.SYS_SysName().GetList("", "Name='超时未付款自动作废订单' and CompID=" + icomp.ID, ""); if (sl != null && sl.Count > 0) { off = Convert.ToInt32(sl[0].Value); } //当前时间 DateTime now = DateTime.Now; DateTime oldTime = now.AddDays(-off); //用户名ID、Name int UserID = 0; string userName = string.Empty; //Common.GetUserName(UserID); //查询超时未付款自动作废订单条件 待审核,已审核未支付的订单取消 string offstr = " CompID=" + icomp.ID + "and OState in(1,2) and PayState=0 and ts<='" + oldTime + "'"; //查询超时未付款自动作废订单的订单 List <Hi.Model.DIS_Order> ol = new Hi.BLL.DIS_Order().GetList("", offstr, ""); if (ol == null && ol.Count == 0) { return(""); } foreach (Hi.Model.DIS_Order item in ol) { userName = GetUserName(item.DisUserID); UserID = item.DisUserID; //判断订单状态 if ((item.OState == (int)Enums.OrderState.待审核 || item.OState == (int)Enums.OrderState.已审) && item.PayState == (int)Enums.PayState.未支付) { //订单状态 str += " update Dis_Order set OState=" + (int)Enums.OrderState.已作废 + ",modifyuser="******",ts='" + DateTime.Now + "' where ID=" + item.ID + ";"; //超时未付款自动取消 str += string.Format("INSERT INTO SYS_SysBusinessLog VALUES({0},'{1}',{2},'{3}','{4}',{5},'{6}','{7}','{8}',{9},{10});", icomp.ID, "Order", item.ID, "超时未付款自动作废", DateTime.Now, UserID, userName, "", DateTime.Now, 0, UserID); } else { continue; } } } SqlTransaction TranSaction = null; SqlConnection Connection = new SqlConnection(SqlHelper.LocalSqlServer); Connection.Open(); TranSaction = Connection.BeginTransaction(); try { SqlCommand cmd = new SqlCommand(str.ToString(), Connection, TranSaction); cmd.CommandType = CommandType.Text; int rowsAffected = SqlHelper.GetInt(cmd.ExecuteNonQuery().ToString()); if (rowsAffected > 0) { TranSaction.Commit(); return("1"); } else { TranSaction.Rollback(); return(""); } } catch (Exception ex) { TranSaction.Rollback(); Console.WriteLine(ex.Message); return(""); } finally { Connection.Dispose(); } } } catch (Exception ex) { //错误日志 string strPath = @"../autoOrder/"; strPath = strPath + "\\" + DateTime.Now.ToString("yyyyMMhh") + "_服务错误日志" + ".txt"; StreamWriter fs = new StreamWriter(strPath, false, System.Text.Encoding.Default); fs.WriteLine(ex.Message); fs.WriteLine(ex.Source + "::" + ex.InnerException + "::" + ex.TargetSite); fs.WriteLine("**************************************"); fs.Close(); } return("1"); }