using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using GThinking.N_MISPRO.Utility; using GThinking.N_MISPRO.Data; using GThinking.N_MISPRO; using GThinking.N_MODEL.ModelBase; using GThinking.N_MISPROAS.Web.AjaxServices; using GThinking.N_MISPROAS; using GThinking.N_MISPROAS.Services; using System.Collections.Generic; using GThinking.N_MISPRO.Caching; namespace GThinking.N_XLXSBJ { public class XSJGBTJService : ServiceBase { [AjaxMethod] public static void AsyncDoJGBTJ(JGBTJXX objJGB) { LogicContext lgc = LogicContext.Current; CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); TDatabase DBERP = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(DBERP); sql.Clear(); sql.Add("update XLXSJGB set XLXSJGB_TJZT='J',");//J|计算中 sql.Add(" XLXSJGB_TJKSSJ=:pTJKSSJ"); sql.Add(" where XLXSJGB_MXBH=:pMXBH"); sql.Add(" and XLXSJGB_JGBID=:pJGBID"); sql.Add(" and isnull(XLXSJGB_TJZT,' ')='W'");//W|等待 sql.ParamByName("pMXBH").Value = objJGB.MXBH; sql.ParamByName("pJGBID").Value = objJGB.JGBID; sql.ParamByName("pTJKSSJ").Value = MISproUtils.GetServerTime(); DBERP.ExecSQL(sql); bool bSuccess = true; try { DBERP.BeginTrans(); string sMessage = ""; if (objJGB.JJLY.Equals("D")) { XLJGB_CLJGTZList.DoCPJJ(DBERP, objJGB.MXBH, objJGB.JGBID, false, objJGB.XSWS, objJGB.JSBLFS, tSession.UserId, tSession.UserName, objJGB.sBJU003); } else { if (objJGB.bUpdateByJCZB) XLJGB_CLJGTZList.DoCLCB(DBERP, objJGB.MXBH, objJGB.JGBID, tSession.UserId, tSession.UserName, objJGB.JGCZBID, objJGB.JGCZBBBID, objJGB.XSWS, objJGB.JSBLFS, objJGB.sBJU003); else XLJGB_CLJGTZList.DoCLCB(DBERP, objJGB.MXBH, objJGB.JGBID, tSession.UserId, tSession.UserName, objJGB.XSWS, objJGB.JSBLFS, objJGB.sBJU003); } if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGBMX where XLXSJGBMX_SYXH<>0 and XLXSJGBMX_JGBID={0}", objJGB.JGBID))) XLJGB_JGBMXList.XHJDDZKC_TJYS1(DBERP, sql, objJGB.JGBID, objJGB.JSBLFS, objJGB.XSWS.ToString(), tSession.UserName, tSession.UserId, ref sMessage, objJGB.XLJGU007); if (objJGB.bNeedTB && objJGB.dicJGB2 != null)//需要同步区域价 { foreach (string sKey in objJGB.dicJGB2.Keys) { XLJGB_CLJGTZList.TBCLCB_2(DBERP, objJGB.MXBH, sKey, objJGB.dicJGB2[sKey], objJGB.XSWS, objJGB.JSBLFS, tSession.UserId, tSession.UserName, objJGB.sBJU003); } } DBERP.CommitTrans(); if (!sMessage.Equals("")) { string sMsg = "同步完成!" + sMessage; Mac.MacLog.TraceFormat(string.Format("价格表{0}:{1}", objJGB.JGBID, sMsg)); } } catch (Exception ex) { bSuccess = false; Mac.MacLog.TraceFormat(string.Format("价格表{0}调价_异常:{1}", objJGB.JGBID, ex.Message)); DBERP.RollbackTrans(); } finally { if (bSuccess) { sql.Clear(); sql.Add("update XLXSJGB set XLXSJGB_TJZT='S',");//S|完成 sql.Add(" XLXSJGB_TJWCSJ=:pTJWCSJ"); sql.Add(" where XLXSJGB_MXBH=:pMXBH"); sql.Add(" and XLXSJGB_JGBID=:pJGBID"); sql.ParamByName("pMXBH").Value = objJGB.MXBH; sql.ParamByName("pJGBID").Value = objJGB.JGBID; sql.ParamByName("pTJWCSJ").Value = MISproUtils.GetServerTime(); DBERP.ExecSQL(sql); } else { sql.Clear(); sql.Add("update XLXSJGB set XLXSJGB_TJZT='F'");//F|失败 sql.Add(" where XLXSJGB_MXBH=:pMXBH"); sql.Add(" and XLXSJGB_JGBID=:pJGBID"); sql.ParamByName("pMXBH").Value = objJGB.MXBH; sql.ParamByName("pJGBID").Value = objJGB.JGBID; DBERP.ExecSQL(sql); } } CacheNotify.TableIsUpdated("DBERP", "XLXSJGB"); } } public class JGBTJXX { public JGBTJXX() { } private string _JGBID;//价格表ID public string JGBID { get { return _JGBID; } set { _JGBID = value; } } private string _MXBH; public string MXBH { get { return _MXBH; } set { _MXBH = value; } } private string _JJLY;//基价来源 public string JJLY { get { return _JJLY; } set { _JJLY = value; } } private int _XSWS;//小数位数 public int XSWS { get { return _XSWS; } set { _XSWS = value; } } private string _JGCZBID;//结构尺重表ID public string JGCZBID { get { return _JGCZBID; } set { _JGCZBID = value; } } private string _JGCZBBBID;//结构尺重表版本ID public string JGCZBBBID { get { return _JGCZBBBID; } set { _JGCZBBBID = value; } } private string _JSBLFS;//计算保留方式 public string JSBLFS { get { return _JSBLFS; } set { _JSBLFS = value; } } private Dictionary _dicJGB2;//区域价价格表 public Dictionary dicJGB2 { get { return _dicJGB2; } set { _dicJGB2 = value; } } private bool _bUpdateByJCZB;//按尺重表同步 public bool bUpdateByJCZB { get { return _bUpdateByJCZB; } set { _bUpdateByJCZB = value; } } private bool _bNeedTB;//是否同步区域价 public bool bNeedTB { get { return _bNeedTB; } set { _bNeedTB = value; } } private string _XLJGU007; public string XLJGU007 { get { return _XLJGU007; } set { _XLJGU007 = value; } } private string _sBJU003; public string sBJU003 { get { return _sBJU003; } set { _sBJU003 = value; } } } }