public string ruleID = string.Empty;//编码ID public CodingRule(SYSModel.DataSources.EnumProjectType enumProjectType) { string opName = "获取" + SYSModel.DataSources.GetDescription(enumProjectType) + "的编码生成规则"; ruleID = Convert.ToInt16(enumProjectType).ToString(); string where = string.Format("bill_code_rule_id='{0}'", ruleID); DataTable dt = DBHelper.GetTable("",GlobalStaticObj_Server.DbPrefix+ GlobalStaticObj_Server.Instance.MainAccCode, "sys_bill_code_rule", "*", where, "", ""); string billCode = dt.Rows[0]["bill_code"].ToString(); string codeMethod = dt.Rows[0]["code_method"].ToString(); string delimiter = dt.Rows[0]["delimiter"].ToString(); startNum = dt.Rows[0]["start_num"].ToString(); lastBillNo = dt.Rows[0]["last_bill_no"].ToString(); newPrefix = GetPrefix(billCode, codeMethod, delimiter); }
/// <summary> 获取新项目编码 /// </summary> /// <param name="opName">操作名称</param> /// <param name="startStr">单据前缀</param> /// <param name="tableName">表名</param> /// <param name="field">字段</param> /// <returns></returns> public static string GetNewNo(SYSModel.DataSources.EnumProjectType enumProjectType) { string opName = "获取" + SYSModel.DataSources.GetDescription(enumProjectType) + "的编码生成规则"; string ruleID = Convert.ToInt16(enumProjectType).ToString(); string where = string.Format("bill_code_rule_id='{0}'", ruleID); DataTable dt = DBHelper.GetTable("", GlobalStaticObj_Server.DbPrefix + GlobalStaticObj_Server.CommAccCode, "sys_bill_code_rule", "*", where, "", ""); string billCode = dt.Rows[0]["bill_code"].ToString(); string codeMethod = dt.Rows[0]["code_method"].ToString(); string delimiter = dt.Rows[0]["delimiter"].ToString(); string startNum = dt.Rows[0]["start_num"].ToString(); string lastBillNo = dt.Rows[0]["last_bill_no"].ToString(); string newBillNo = string.Empty; string newPrefix = GetPrefix(billCode, codeMethod, delimiter); if (string.IsNullOrEmpty(lastBillNo)) { newBillNo = newPrefix + startNum; } else { string oldPrefix = lastBillNo.Substring(0, newPrefix.Length); if (newPrefix != oldPrefix) { newBillNo = newPrefix + startNum; } else { string newNum = (Convert.ToInt32(lastBillNo.Replace(oldPrefix, "")) + 1).ToString().PadLeft(startNum.Length, '0'); newBillNo = newPrefix + newNum; } } Dictionary<string, string> dicValue = new Dictionary<string, string>(); dicValue.Add("last_bill_no", newBillNo); bool flag = DBHelper.Submit_AddOrEdit("", GlobalStaticObj_Server.DbPrefix + GlobalStaticObj_Server.CommAccCode, "sys_bill_code_rule", "bill_code_rule_id", ruleID, dicValue); if (!flag) { throw new Exception("获取新项目编码失败"); } return newBillNo; }
/// <summary> 根据EnumWebServFunName枚举,调用WebService方法名称 /// </summary> /// <param name="funcName">WebService方法名称</param> /// <param name="funcObject">WebService参数对象</param> /// <returns>返回约定内容</returns> public static SYSModel.RespFunStruct WebServHandler(SYSModel.EnumWebServFunName enumFunName, object funcObject) { SYSModel.RespFunStruct resp = new SYSModel.RespFunStruct(); string msg = string.Empty;//错误消息 switch (enumFunName) { #region 基础数据 case SYSModel.EnumWebServFunName.UpLoadCcontact: { tb_contacts_ex model = Newtonsoft.Json.JsonConvert.DeserializeObject<tb_contacts_ex>(funcObject.ToString()); string result = WebServ_YT_BasicData.UpLoadCcontact(model); resp = HandleErr(string.IsNullOrEmpty(result) ? "1" : "0", result); break; } case SYSModel.EnumWebServFunName.UpLoadCustomer: { tb_customer model = Newtonsoft.Json.JsonConvert.DeserializeObject<tb_customer>(funcObject.ToString()); string result = WebServ_YT_BasicData.UpLoadCustomer(model); resp = HandleErr(string.IsNullOrEmpty(result) ? "1" : "0", result); break; } case SYSModel.EnumWebServFunName.UpLoadSercicePartStock: { Dictionary<string, int> dic = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, int>>(funcObject.ToString()); bool flag = WebServ_YT_BasicData.UpLoadSercicePartStock(dic); resp = HandleErr(flag ? "1" : "0", flag.ToString()); break; } case SYSModel.EnumWebServFunName.SearchContact: { DataTable dt = WebServ_YT_BasicData.SearchContact(); if (dt == null || dt.Rows.Count == 0) { resp.IsSuccess = "0"; } else { resp.IsSuccess = "1"; } resp.Msg = ""; resp.ReturnObject = Newtonsoft.Json.JsonConvert.SerializeObject(dt); break; } #endregion #region 业务数据 case SYSModel.EnumWebServFunName.UpLoadPartSale: { bool flag = WebServ_YT_BusiData.UpLoadPartSale(funcObject.ToString()); resp = HandleErr(flag ? "1" : "0", flag.ToString()); break; } case SYSModel.EnumWebServFunName.UpLoadServiceOrder: { bool flag = WebServ_YT_BusiData.UpLoadServiceOrder(funcObject.ToString()); resp = HandleErr(flag ? "1" : "0", flag.ToString()); break; } case SYSModel.EnumWebServFunName.UpLoadRepairBill: { bool flag = WebServ_YT_BusiData.UpLoadRepairBill(funcObject.ToString()); resp = HandleErr(flag ? "1" : "0", flag.ToString()); break; } case SYSModel.EnumWebServFunName.UpLoadPartPurchase: { bool flag = WebServ_YT_BusiData.UpLoadPartPurchase(funcObject.ToString()); resp = HandleErr(flag ? "1" : "0", flag.ToString()); break; } case SYSModel.EnumWebServFunName.UpLoadPartPutStore: { bool flag = WebServ_YT_BusiData.UpLoadPartPutStore(funcObject.ToString()); resp = HandleErr(flag ? "1" : "0", flag.ToString()); break; } case SYSModel.EnumWebServFunName.LoadOrderStatus: { bool flag = WebServ_YT_BusiData.LoadOrderStatus(funcObject.ToString()); resp = HandleErr(flag ? "1" : "0", flag.ToString()); break; } case SYSModel.EnumWebServFunName.LoadPartInStore: { bool flag = WebServ_YT_BusiData.LoadPartInStore(funcObject.ToString()); resp = HandleErr(flag ? "1" : "0", flag.ToString()); break; } case SYSModel.EnumWebServFunName.LoadPartPurchaseStauts: { bool flag = WebServ_YT_BusiData.LoadPartPurchaseStauts(funcObject.ToString()); resp = HandleErr(flag ? "1" : "0", flag.ToString()); break; } case SYSModel.EnumWebServFunName.LoadStoreCenter: { bool flag = WebServ_YT_BusiData.LoadStoreCenter(funcObject.ToString()); resp = HandleErr(flag ?"1":"0", flag.ToString()); break; } case SYSModel.EnumWebServFunName.QuerySettleAccounts: { bool flag = WebServ_YT_BusiData.QuerySettleAccounts(funcObject.ToString()); resp = HandleErr(flag ? "1" : "0", flag.ToString()); break; } case SYSModel.EnumWebServFunName.LoadServiceSettleStatus: { bool flag = WebServ_YT_BusiData.LoadServiceSettleStatus(funcObject.ToString()); resp = HandleErr(flag ? "1" : "0", flag.ToString()); break; } case SYSModel.EnumWebServFunName.UpPartReturnCreate: { bool flag = WebServ_YT_BusiData.UpPartReturnCreate(funcObject.ToString()); resp = HandleErr(flag ? "1" : "0", flag.ToString()); break; } case SYSModel.EnumWebServFunName.LoadPartRetureStatus: { bool flag = WebServ_YT_BusiData.LoadPartRetureStatus(funcObject.ToString()); resp = HandleErr(flag ? "1" : "0", flag.ToString()); break; } case SYSModel.EnumWebServFunName.UpPartRetureUpdate: { bool flag = WebServ_YT_BusiData.UpPartRetureUpdate(funcObject.ToString()); resp = HandleErr(flag ? "1" : "0", flag.ToString()); break; } case EnumWebServFunName.SearchOrderStatus: { string status = WebServ_YT_BusiData.SearchOrderStatus(funcObject.ToString()); resp = HandleErr(string.IsNullOrEmpty(status) ? "0" : "1", status); break; } case EnumWebServFunName.UpLoadServiceSettleStatus: { bool flag = WebServ_YT_BusiData.UpLoadServiceSettleStatus(funcObject.ToString()); resp = HandleErr(flag ? "1" : "0", flag.ToString()); break; } #endregion default: { resp.IsSuccess = "0"; resp.Msg = "找不到对应的Wcf方法"; break; } } return resp; }
/// <summary>调用webService方法 /// </summary> /// <param name="opName">操作名</param> /// <param name="enumFuncName">调用webService方法的枚举</param> /// <param name="webServFuncObj">调用Webservice传递对象,参考枚举描述</param> /// <returns>调用服务返回的对象,如果为空,怎调用失败</returns> public static string WebServHandlerByObj(string opName, SYSModel.EnumWebServFunName enumFuncName, object webServFuncObj) { RespFunStruct resp = WebServHandlerByFun(opName, enumFuncName, webServFuncObj); if (resp.IsSuccess == "0") { return null; } return resp.ReturnObject; }
/// <summary> 调用webService方法 /// </summary> /// <param name="funcName">调用webService方法的枚举</param> /// <param name="funcObject">调用Webservice传递对象,参考枚举描述</param> /// <returns>返回错信息,如果错误信息为空则为执行成功</returns> public static RespFunStruct WebServHandlerByFun(string opName, SYSModel.EnumWebServFunName enumFuncName, object webServFuncObj) { ReqeFunStruct_WebServ reqeFunStruct = new ReqeFunStruct_WebServ(); reqeFunStruct.FunName = enumFuncName; reqeFunStruct.AccCode = GlobalStaticObj.CurrAccCode; reqeFunStruct.userIDOP.UserID = GlobalStaticObj.UserID; reqeFunStruct.userIDOP.OPName = opName; reqeFunStruct.PCClientCookieStr = GlobalStaticObj.CookieStr; reqeFunStruct.FunObject = webServFuncObj; string jsonStr = HXCCommon.DotNetEncrypt.DESEncrypt.Encrypt(Newtonsoft.Json.JsonConvert.SerializeObject(reqeFunStruct)); if (!WCFClientProxy.TestDataProxy()) { throw new Exception("未能建立同服务器连接!"); } RespFunStruct resp = new RespFunStruct(); try { string resultStr = GlobalStaticObj.proxy.HandleWebServ(jsonStr); if (string.IsNullOrEmpty(resultStr)) { throw new Exception("调用webservice失败!"); } string Str = HXCCommon.DotNetEncrypt.DESEncrypt.Decrypt(resultStr); resp = JsonConvert.DeserializeObject<RespFunStruct>(Str); return resp; } catch (TimeoutException te) { WebServiceLogService.WriteLog(te); resp.IsSuccess = "0"; resp.Msg = "操作超时"; } catch (Exception e) { WebServiceLogService.WriteLog(e); resp.IsSuccess = "0"; resp.Msg = "调用webservice出错!"; } return resp; }
/// <summary> 获取编码方式 /// </summary> /// <param name="enumBillCodeMethod">枚举:编码方式</param> /// <returns>返回编码方式串</returns> private string GetStrByCodeMethod(SYSModel.DataSources.EnumBillCodeMethod enumBillCodeMethod) { if (enumBillCodeMethod == SYSModel.DataSources.EnumBillCodeMethod.NONE) { return ""; } if (enumBillCodeMethod == SYSModel.DataSources.EnumBillCodeMethod.MMDDHH) { return GlobalStaticObj_Server.Instance.CurrentDateTime.ToString("MMddhh"); } if (enumBillCodeMethod == SYSModel.DataSources.EnumBillCodeMethod.YYYYMMDD) { return GlobalStaticObj_Server.Instance.CurrentDateTime.ToString("yyyyMMdd"); } return ""; }