Files
N_XLXSBJ----MX/XSJGBTJService.cs
T
2026-08-21 17:03:02 +08:00

207 lines
6.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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<string, string> _dicJGB2;//区域价价格表<JGBID,JGBIDS>
public Dictionary<string, string> 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; }
}
}
}