From 87af4f2233828a3415fa6792f0719c42013f4c7d Mon Sep 17 00:00:00 2001
From: wangwei <1163568462@qq.com>
Date: Fri, 28 Aug 2026 16:38:07 +0800
Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?=
=?UTF-8?q?=E3=80=8C/=E3=80=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
BatchUpdateXLJXMX 的批�更新�构
---
XLBJJXDRService.cs | 3726 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 3726 insertions(+)
create mode 100644 XLBJJXDRService.cs
diff --git a/XLBJJXDRService.cs b/XLBJJXDRService.cs
new file mode 100644
index 0000000..4c6c116
--- /dev/null
+++ b/XLBJJXDRService.cs
@@ -0,0 +1,3726 @@
+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_MISPROAS.Web.AjaxServices;
+using GThinking.N_MISPROAS.Data;
+using System.Collections.Generic;
+using GThinking.N_MISPRO.Data;
+using GThinking.N_MISPRO.Utility;
+using N_PUBLIC2;
+using System.Text.RegularExpressions;
+using System.Text;
+using System.IO;
+using GThinking.N_MISPRO;
+using GThinking.N_XLXSBJ;
+using GThinking.N_PUBLIC2;
+using System.Web.Script.Serialization;
+using System.Net;
+using GThinking.N_MISPROAS.SysData;
+
+namespace GThinking.S_XLXSBJ
+{
+ #region ʵÌåÀà
+
+ public class XLJXMX
+ {
+ public string XLJXDJ = "";
+ public string XLJXDH = "";
+ public string XLJXMXH = "0";
+ public string XLBSC = "";
+ public string XLJXGZXH = "0";
+ public string JXXLXHID = "";
+ public string XLXHID = "";
+ public string JXXLGGID = "";
+ public string XLGGID = "";
+ public string JXDYDJID = "";
+ public string DYDJID = "";
+ public string XLBZID = "";
+ public string JXXLBZID = "";
+ public string XLYSID = "";
+ public string JXXLYSID = "";
+ public string WHR = "";
+ public string WHRID = "";
+ public string WHSJ = "";
+ public string DCZT = "N";
+ public string DX = "";
+ public string JLDW = "";
+ public string SL = "0";
+ public string FBH = "";
+ public string JSGFID = "";
+ }
+
+ ///
+ /// Ïß·ÏàËÆ±¨¼Ûµ¥Ã÷ϸÅúÁ¿²åÈëʵÌå¡£
+ ///
+ public class XLXSBJDMXEntity
+ {
+ private string _BJDID;
+ [DbColumn("XLXSBJDMX_BJDID")]
+ public string BJDID
+ {
+ get { return _BJDID; }
+ set { _BJDID = value; }
+ }
+
+ private int _XH;
+ [DbColumn("XLXSBJDMX_XH")]
+ public int XH
+ {
+ get { return _XH; }
+ set { _XH = value; }
+ }
+
+ private int _XSSX;
+ [DbColumn("XLXSBJDMX_XSSX")]
+ public int XSSX
+ {
+ get { return _XSSX; }
+ set { _XSSX = value; }
+ }
+
+ private string _BJCP;
+ [DbColumn("XLXSBJDMX_BJCP")]
+ public string BJCP
+ {
+ get { return _BJCP; }
+ set { _BJCP = value; }
+ }
+
+ private string _JLDW;
+ [DbColumn("XLXSBJDMX_JLDW")]
+ public string JLDW
+ {
+ get { return _JLDW; }
+ set { _JLDW = value; }
+ }
+
+ private string _XLXHID;
+ [DbColumn("XLXSBJDMX_XLXHID")]
+ public string XLXHID
+ {
+ get { return _XLXHID; }
+ set { _XLXHID = value; }
+ }
+
+ private string _XDXLXHID;
+ [DbColumn("XLXSBJDMX_XDXLXHID")]
+ public string XDXLXHID
+ {
+ get { return _XDXLXHID; }
+ set { _XDXLXHID = value; }
+ }
+
+ private string _XLGGID;
+ [DbColumn("XLXSBJDMX_XLGGID")]
+ public string XLGGID
+ {
+ get { return _XLGGID; }
+ set { _XLGGID = value; }
+ }
+
+ private string _XLBZID;
+ [DbColumn("XLXSBJDMX_XLBZID")]
+ public string XLBZID
+ {
+ get { return _XLBZID; }
+ set { _XLBZID = value; }
+ }
+
+ private string _XDXLBZID;
+ [DbColumn("XLXSBJDMX_XDXLBZID")]
+ public string XDXLBZID
+ {
+ get { return _XDXLBZID; }
+ set { _XDXLBZID = value; }
+ }
+
+ private string _DYDJID;
+ [DbColumn("XLXSBJDMX_DYDJID")]
+ public string DYDJID
+ {
+ get { return _DYDJID; }
+ set { _DYDJID = value; }
+ }
+
+ private string _XLYSID;
+ [DbColumn("XLXSBJDMX_XLYSID")]
+ public string XLYSID
+ {
+ get { return _XLYSID; }
+ set { _XLYSID = value; }
+ }
+
+ private string _WHR;
+ [DbColumn("XLXSBJDMX_WHR")]
+ public string WHR
+ {
+ get { return _WHR; }
+ set { _WHR = value; }
+ }
+
+ private string _WHRID;
+ [DbColumn("XLXSBJDMX_WHRID")]
+ public string WHRID
+ {
+ get { return _WHRID; }
+ set { _WHRID = value; }
+ }
+
+ private DateTime _WHSJ;
+ [DbColumn("XLXSBJDMX_WHSJ")]
+ public DateTime WHSJ
+ {
+ get { return _WHSJ; }
+ set { _WHSJ = value; }
+ }
+
+ private double _BJSL;
+ [DbColumn("XLXSBJDMX_BJSL")]
+ public double BJSL
+ {
+ get { return _BJSL; }
+ set { _BJSL = value; }
+ }
+
+ private string _FBH;
+ [DbColumn("XLXSBJDMX_FBH")]
+ public string FBH
+ {
+ get { return _FBH; }
+ set { _FBH = value; }
+ }
+
+ private string _JSGFSID;
+ [DbColumn("XLXSBJDMX_JSGFSID")]
+ public string JSGFSID
+ {
+ get { return _JSGFSID; }
+ set { _JSGFSID = value; }
+ }
+
+ private int _DRHH;
+ [DbColumn("XLXSBJDMX_DRHH")]
+ public int DRHH
+ {
+ get { return _DRHH; }
+ set { _DRHH = value; }
+ }
+ }
+
+ public class XLJXGZ
+ {
+ public string XLJXDJ = "";
+ public string XLJXDH = "";
+ public string XLJXGZXH = "0";
+ public string XLJXGZC = "";
+ public string WHR = "";
+ public string WHRID = "";
+ public string WHSJ = "";
+ public string XLXHYFC = "";
+ public string XLGGYFC = "";
+ public string DYDJYFC = "";
+ public string XLBZYFC = "";
+ public string XLYSYFC = "";
+
+ }
+
+
+ public class JXPZInfo
+ {
+ public string XLJXGZC = "";
+ public string XLXHYFC = "";
+ public string XLGGYFC = "";
+ public string DYDJYFC = "";
+ public string XLBZYFC = "";
+ public string XLYSYFC = "";
+ public string XLXH = "";
+ public string XLGG = "";
+ public string DYDJ = "";
+ public string XLBZ = "";
+
+ }
+
+
+ public class XLJXJG
+ {
+ public string XLXH = "";
+ public string XLGG = "";
+ public string DYDJ = "";
+ public string XLBZ = "";
+ }
+
+ public class Result
+ {
+ public bool success = true;
+ public string msg = "";
+ }
+
+ public class CodeClass
+ {
+ public string code = "";
+ public string message = "";
+ }
+
+ public class XJDInfo
+ {
+ public string userName = "";
+
+ public List quoteList = new List();
+
+ }
+ public class XJDMX
+ {
+ public string XLWBBJDMX_DRHH = "";
+ public string XLWBBJDMX_XLXHID = "";
+ public string XLWBBJDMX_XLGGID = "";
+ public string XLWBBJDMX_DYDJID = "";
+ public string XLWBBJDMX_XLBZID = "";
+ public string XLWBBJDMX_JLDW = "";
+ public string XLWBBJDMX_YS = "";
+ public string XLWBBJDMX_BJDH = "";
+ public string YSCP = "";
+ public double XLWBBJDMX_BJSL = 0;
+ }
+
+ public class ResultData
+ {
+
+ private string _code = string.Empty;
+ public string code
+ {
+ get { return _code; }
+ set { _code = value; }
+ }
+ private string _msg = string.Empty;
+ public string msg
+ {
+ get { return _msg; }
+ set { _msg = value; }
+ }
+
+
+ private string _data = string.Empty;
+ public string data
+ {
+ get { return _data; }
+ set { _data = value; }
+ }
+ }
+ #endregion
+
+ public class XLBJJXDRService
+ {
+
+ #region ·þÎñ·½·¨
+
+ [AjaxMethod(AuthRequried = false)]
+ public static List GetXLJXMXList(string XLJXDJ, string XLJXDH, string sXLJXGZXH, string sDCZT, string sBJCP, string sXLXH, string sXLGG, string sXLBZ, string sDYDJID, string sQSYS)
+ {
+ TDatabase dberp = null;
+ try
+ {
+ dberp = TContextDatabases.GetDatabase("DBERP");
+ List resultList = new List();
+
+ // ¹¹½¨²éѯÓï¾ä
+ TSQL sSQL = new TSQL(dberp);
+ sSQL.Clear();
+ sSQL.Add(@"SELECT XLJXMX_XLJXDJ,XLJXMX_XLJXDH,XLJXMX_XLJXMXH,XLJXMX_XLBSC,XLJXMX_XLJXGZXH,XLJXMX_JXXLXHID,XLJXMX_XLXHID,
+ XLJXMX_JXXLGGID,XLJXMX_XLGGID,XLJXMX_JXDYDJID,XLJXMX_DYDJID,XLJXMX_XLBZID,XLJXMX_JXXLBZID,XLJXMX_XLYSID,
+ XLJXMX_JXXLYSID,XLJXMX_WHR,XLJXMX_WHRID,XLJXMX_WHSJ,XLJXMX_DCZT,XLJXMX_JLDW,XLJXMX_SL,XLJXMX_FBH,XLJXMX_JSGFSID
+ FROM XLJXMX
+ WHERE XLJXMX_XLJXDJ = :XLJXDJ AND XLJXMX_XLJXDH = :XLJXDH ");
+ if (!string.IsNullOrEmpty(sDCZT.Trim()))
+ {
+ sSQL.Add(" AND XLJXMX_DCZT = :DCZT ");
+ sSQL.ParamByName("DCZT").Value = sDCZT;
+ }
+ if (sXLJXGZXH=="-1")
+ sSQL.Add(" AND XLJXMX_XLJXGZXH>0 ");
+ else if (sXLJXGZXH != "-2")
+ {
+ sSQL.Add(" AND XLJXMX_XLJXGZXH = :XLJXGZXH");
+ sSQL.ParamByName("XLJXGZXH").Value = sXLJXGZXH;
+ }
+
+ if (!string.IsNullOrEmpty(sBJCP))
+ {
+ sSQL.Add(" AND XLJXMX_XLBSC like :BJCP ");
+ sSQL.ParamByName("BJCP").Value ="%"+sBJCP+"%";
+ }
+
+ if (!string.IsNullOrEmpty(sXLXH))
+ {
+ sSQL.Add(" AND XLJXMX_JXXLXHID like :XLXH ");
+ sSQL.ParamByName("XLXH").Value = "%" + sXLXH + "%";
+ }
+
+ if (!string.IsNullOrEmpty(sXLGG))
+ {
+ sSQL.Add(" AND XLJXMX_JXXLGGID like :XLGG ");
+ sSQL.ParamByName("XLGG").Value = "%" + sXLGG + "%";
+ }
+
+
+
+ if (!string.IsNullOrEmpty(sXLBZ))
+ {
+ if (sXLBZ == "¿Õ")
+ {
+ sSQL.Add(" AND isnull(XLJXMX_JXXLBZID,' ') =' ' ");
+ }
+ else
+ {
+ sSQL.Add(" AND XLJXMX_JXXLBZID = :XLBZ ");
+ sSQL.ParamByName("XLBZ").Value = sXLBZ;
+ }
+
+ }
+
+ if (!string.IsNullOrEmpty(sDYDJID))
+ {
+ if (sDYDJID == "¿Õ")
+ {
+ sSQL.Add(" AND isnull(XLJXMX_JXDYDJID,' ') =' ' ");
+ }
+ else
+ {
+ sSQL.Add(" AND XLJXMX_JXDYDJID = :DYDJ ");
+ sSQL.ParamByName("DYDJ").Value = sDYDJID;
+ }
+
+ }
+
+ AppendMissingElementFilter(sSQL, sQSYS);
+
+ // Ìí¼Ó²éѯ²ÎÊý
+ sSQL.ParamByName("XLJXDJ").Value = XLJXDJ;
+ sSQL.ParamByName("XLJXDH").Value = XLJXDH;
+
+ sSQL.Add(" order by len(XLJXMX_XLJXMXH),XLJXMX_XLJXMXH");
+
+
+ DataSet ds = dberp.OpenDataSet(sSQL);
+ if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
+ {
+ foreach (DataRow row in ds.Tables[0].Rows)
+ {
+ // ʹÓô«Í³¸³Öµ·½Ê½£¨±ÜÃâ¶ÔÏó³õʼ»¯Æ÷£©
+ XLJXMX item = new XLJXMX();
+ item.XLJXDJ = SafeTrim(row["XLJXMX_XLJXDJ"]);
+ item.XLJXDH = SafeTrim(row["XLJXMX_XLJXDH"]);
+ item.XLJXMXH = SafeTrim(row["XLJXMX_XLJXMXH"]);
+ item.XLBSC = SafeTrim(row["XLJXMX_XLBSC"]);
+ item.XLJXGZXH = SafeTrim(row["XLJXMX_XLJXGZXH"]);
+ item.JXXLXHID = SafeTrim(row["XLJXMX_JXXLXHID"]);
+ item.XLXHID = SafeTrim(row["XLJXMX_XLXHID"]);
+ item.JXXLGGID = SafeTrim(row["XLJXMX_JXXLGGID"]);
+ item.XLGGID = SafeTrim(row["XLJXMX_XLGGID"]);
+ item.JXDYDJID = SafeTrim(row["XLJXMX_JXDYDJID"]);
+ item.DYDJID = SafeTrim(row["XLJXMX_DYDJID"]);
+ item.XLBZID = SafeTrim(row["XLJXMX_XLBZID"]);
+ item.JXXLBZID = SafeTrim(row["XLJXMX_JXXLBZID"]);
+ item.XLYSID = SafeTrim(row["XLJXMX_XLYSID"]);
+ item.JXXLYSID = SafeTrim(row["XLJXMX_JXXLYSID"]);
+ item.WHR = SafeTrim(row["XLJXMX_WHR"]);
+ item.WHRID = SafeTrim(row["XLJXMX_WHRID"]);
+ item.WHSJ = SafeTrim(row["XLJXMX_WHSJ"]);
+ item.DCZT = SafeTrim(row["XLJXMX_DCZT"]);
+ item.JLDW = SafeTrim(row["XLJXMX_JLDW"]);
+ item.SL = SafeTrim(row["XLJXMX_SL"]);
+ item.FBH = SafeTrim(row["XLJXMX_FBH"]);
+ item.JSGFID = SafeTrim(row["XLJXMX_JSGFSID"]);
+
+ if (!string.IsNullOrEmpty(item.XLXHID) && !string.IsNullOrEmpty(item.JXXLXHID))
+ {
+ if (item.XLXHID != item.JXXLXHID)
+ item.DX += "ÐͺÅ,";
+ }
+ if (!string.IsNullOrEmpty(item.XLGGID) && !string.IsNullOrEmpty(item.JXXLGGID))
+ {
+ if (item.XLGGID != item.JXXLGGID)
+ item.DX += "¹æ¸ñ,";
+ }
+ if (!string.IsNullOrEmpty(item.DYDJID) && !string.IsNullOrEmpty(item.JXDYDJID))
+ {
+ if (item.DYDJID != item.JXDYDJID)
+ item.DX += "µçѹµÈ¼¶,";
+ }
+ item.DX = item.DX.TrimEnd(',');
+
+
+ resultList.Add(item);
+ }
+ }
+ return resultList;
+ }
+ catch (Exception ex)
+ {
+ return new List(); // ·µ»Ø¿Õ¼¯ºÏ
+ }
+ finally
+ {
+
+ }
+ }
+
+
+ [AjaxMethod(AuthRequried = false)]
+ public static Result DeleteXLJXMX(string XLJXDJ, string XLJXDH, string sXLJXGZXH, string sDCZT, string sBJCP, string sXLXH, string sXLGG, string sXLBZ, string sDYDJID, string sQSYS)
+ {
+ TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
+
+ List resultList = new List();
+
+ // ¹¹½¨²éѯÓï¾ä
+ TSQL sSQL = new TSQL(dberp);
+ sSQL.Add(@"DELETE FROM XLJXMX WHERE XLJXMX_XLJXDJ = :XLJXDJ AND XLJXMX_XLJXDH = :XLJXDH");
+ if (!string.IsNullOrEmpty(sDCZT.Trim()))
+ {
+ sSQL.Add(" AND XLJXMX_DCZT = :DCZT ");
+ sSQL.ParamByName("DCZT").Value = sDCZT;
+ }
+ if (sXLJXGZXH == "-1")
+ sSQL.Add(" AND XLJXMX_XLJXGZXH>0 ");
+ else if (sXLJXGZXH != "-2")
+ {
+ sSQL.Add(" AND XLJXMX_XLJXGZXH = :XLJXGZXH");
+ sSQL.ParamByName("XLJXGZXH").Value = sXLJXGZXH;
+ }
+ if (!string.IsNullOrEmpty(sBJCP))
+ {
+ sSQL.Add(" AND XLJXMX_XLBSC like :BJCP ");
+ sSQL.ParamByName("BJCP").Value = "%" + sBJCP + "%";
+ }
+
+ if (!string.IsNullOrEmpty(sXLXH))
+ {
+ sSQL.Add(" AND XLJXMX_JXXLXHID like :XLXH ");
+ sSQL.ParamByName("XLXH").Value = "%" + sXLXH + "%";
+ }
+
+ if (!string.IsNullOrEmpty(sXLGG))
+ {
+ sSQL.Add(" AND XLJXMX_JXXLGGID like :XLGG ");
+ sSQL.ParamByName("XLGG").Value = "%" + sXLGG + "%";
+ }
+
+
+
+ if (!string.IsNullOrEmpty(sXLBZ))
+ {
+ sSQL.Add(" AND XLJXMX_JXXLBZID = :XLBZ ");
+ sSQL.ParamByName("XLBZ").Value = sXLBZ;
+ }
+
+ if (!string.IsNullOrEmpty(sDYDJID))
+ {
+ sSQL.Add(" AND XLJXMX_JXDYDJID = :DYDJ ");
+ sSQL.ParamByName("DYDJ").Value = sDYDJID;
+ }
+
+ AppendMissingElementFilter(sSQL, sQSYS);
+
+ // Ìí¼Ó²éѯ²ÎÊý
+ sSQL.ParamByName("XLJXDJ").Value = XLJXDJ;
+ sSQL.ParamByName("XLJXDH").Value = XLJXDH;
+
+ dberp.ExecSQL(sSQL);
+
+ Result res = new Result();
+ res.success = true;
+ return res;
+ }
+
+
+ [AjaxMethod(AuthRequried = false)]
+ public static List GetXLJXGZList(string XLJXDJ, string XLJXDH)
+ {
+ TDatabase dberp = null;
+ try
+ {
+ dberp = TContextDatabases.GetDatabase("DBERP");
+ List resultList = new List();
+
+ // ¹¹½¨²éѯÓï¾ä
+ TSQL sSQL = new TSQL(dberp);
+ sSQL.Clear();
+ sSQL.Add(@"SELECT
+ XLJXGZ_XLJXDJ,
+ XLJXGZ_XLJXDH,
+ XLJXGZ_XLJXGZXH,
+ XLJXGZ_XLJXGZC,
+ XLJXGZ_WHRID,
+ XLJXGZ_WHR,
+ XLJXGZ_WHSJ,
+ XLJXGZ_XLXHYFC,
+ XLJXGZ_XLGGYFC,
+ XLJXGZ_DYDJYFC,
+ XLJXGZ_XLBZYFC,
+ XLJXGZ_XLYSYFC
+ FROM XLJXGZ
+ WHERE XLJXGZ_XLJXDJ = :XLJXDJ
+ AND (XLJXGZ_XLJXDH = :XLJXDH )");
+
+ // Ìí¼Ó²éѯ²ÎÊý
+ sSQL.ParamByName("XLJXDJ").Value = XLJXDJ;
+ sSQL.ParamByName("XLJXDH").Value = XLJXDH;
+
+ DataSet ds = dberp.OpenDataSet(sSQL);
+ if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
+ {
+ foreach (DataRow row in ds.Tables[0].Rows)
+ {
+ // ʹÓô«Í³¸³Öµ·½Ê½£¨±ÜÃâ¶ÔÏó³õʼ»¯Æ÷£©
+ XLJXGZ item = new XLJXGZ();
+ item.XLJXDJ = SafeTrim(row["XLJXGZ_XLJXDJ"]);
+ item.XLJXDH = SafeTrim(row["XLJXGZ_XLJXDH"]);
+ item.XLJXGZXH = SafeTrim(row["XLJXGZ_XLJXGZXH"]);
+ item.XLJXGZC = SafeTrim(row["XLJXGZ_XLJXGZC"]);
+ item.WHRID = SafeTrim(row["XLJXGZ_WHRID"]);
+ item.WHR = SafeTrim(row["XLJXGZ_WHR"]);
+ item.WHSJ = SafeTrim(row["XLJXGZ_WHSJ"]);
+ item.XLXHYFC = SafeTrim(row["XLJXGZ_XLXHYFC"]);
+ item.XLGGYFC = SafeTrim(row["XLJXGZ_XLGGYFC"]);
+ item.DYDJYFC = SafeTrim(row["XLJXGZ_DYDJYFC"]);
+ item.XLBZYFC = SafeTrim(row["XLJXGZ_XLBZYFC"]);
+ item.XLYSYFC = SafeTrim(row["XLJXGZ_XLYSYFC"]);
+
+ resultList.Add(item);
+ }
+ }
+ return resultList;
+ }
+ catch (Exception ex)
+ {
+ return new List(); // ·µ»Ø¿Õ¼¯ºÏ
+ }
+ finally
+ {
+
+ }
+ }
+
+ [AjaxMethod(AuthRequried = false)]
+ public static List GetTYXLJXGZList(string XLJXDJ, string XLJXDH)
+ {
+ TDatabase dberp = null;
+ try
+ {
+ dberp = TContextDatabases.GetDatabase("DBERP");
+ List resultList = new List();
+
+ // ¹¹½¨²éѯÓï¾ä
+ TSQL sSQL = new TSQL(dberp);
+ sSQL.Clear();
+ sSQL.Add(@"SELECT
+ XLJXGZ_XLJXDJ,
+ XLJXGZ_XLJXDH,
+ XLJXGZ_XLJXGZXH,
+ XLJXGZ_XLJXGZC,
+ XLJXGZ_WHRID,
+ XLJXGZ_WHR,
+ XLJXGZ_WHSJ,
+ XLJXGZ_XLXHYFC,
+ XLJXGZ_XLGGYFC,
+ XLJXGZ_DYDJYFC,
+ XLJXGZ_XLBZYFC,
+ XLJXGZ_XLYSYFC
+ FROM XLJXGZ
+ WHERE XLJXGZ_XLJXDJ = :XLJXDJ
+ AND (XLJXGZ_XLJXDH = :XLJXDH )");
+
+ // Ìí¼Ó²éѯ²ÎÊý
+ sSQL.ParamByName("XLJXDJ").Value = XLJXDJ;
+ sSQL.ParamByName("XLJXDH").Value = ' ';
+
+ DataSet ds = dberp.OpenDataSet(sSQL);
+ if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
+ {
+ foreach (DataRow row in ds.Tables[0].Rows)
+ {
+ // ʹÓô«Í³¸³Öµ·½Ê½£¨±ÜÃâ¶ÔÏó³õʼ»¯Æ÷£©
+ XLJXGZ item = new XLJXGZ();
+ item.XLJXDJ = SafeTrim(row["XLJXGZ_XLJXDJ"]);
+ item.XLJXDH = SafeTrim(row["XLJXGZ_XLJXDH"]);
+ item.XLJXGZXH = SafeTrim(row["XLJXGZ_XLJXGZXH"]);
+ item.XLJXGZC = SafeTrim(row["XLJXGZ_XLJXGZC"]);
+ item.WHRID = SafeTrim(row["XLJXGZ_WHRID"]);
+ item.WHR = SafeTrim(row["XLJXGZ_WHR"]);
+ item.WHSJ = SafeTrim(row["XLJXGZ_WHSJ"]);
+ item.XLXHYFC = SafeTrim(row["XLJXGZ_XLXHYFC"]);
+ item.XLGGYFC = SafeTrim(row["XLJXGZ_XLGGYFC"]);
+ item.DYDJYFC = SafeTrim(row["XLJXGZ_DYDJYFC"]);
+ item.XLBZYFC = SafeTrim(row["XLJXGZ_XLBZYFC"]);
+ item.XLYSYFC = SafeTrim(row["XLJXGZ_XLYSYFC"]);
+
+ resultList.Add(item);
+ }
+ }
+ return resultList;
+ }
+ catch (Exception ex)
+ {
+ return new List(); // ·µ»Ø¿Õ¼¯ºÏ
+ }
+ finally
+ {
+
+ }
+ }
+
+
+ [AjaxMethod(AuthRequried = false)]
+ public Result DeleteXLJXGZ(string XLJXDH, string sXLJXGZXH)
+ {
+ Result result = new Result();
+ TDatabase dberp = dberp = TContextDatabases.GetDatabase("DBERP");
+ TSQL sSQL = new TSQL(dberp);
+ sSQL.Clear();
+ sSQL.Add("delete from XLJXGZ where XLJXGZ_XLJXDJ = :XLJXDJ and XLJXGZ_XLJXDH = :XLJXDH and XLJXGZ_XLJXGZXH = :XLJXGZXH ");
+ sSQL.ParamByName("XLJXDJ").Value = "XSBJ";
+ sSQL.ParamByName("XLJXDH").Value = XLJXDH;
+ sSQL.ParamByName("XLJXGZXH").Value = sXLJXGZXH;
+ dberp.ExecSQL(sSQL);
+ result.success = true;
+ return result;
+
+ }
+
+ [AjaxMethod(AuthRequried = false)]
+ public static XLJXGZ GetXLJXGZ(string XLJXDJ, string XLJXDH, string XLJXGZXH)
+ {
+ TDatabase dberp = null;
+ try
+ {
+ dberp = TContextDatabases.GetDatabase("DBERP");
+ List resultList = new List();
+
+ // ¹¹½¨²éѯÓï¾ä
+ TSQL sSQL = new TSQL(dberp);
+ sSQL.Add(@"SELECT
+ XLJXGZ_XLJXDJ,
+ XLJXGZ_XLJXDH,
+ XLJXGZ_XLJXGZXH,
+ XLJXGZ_XLJXGZC,
+ XLJXGZ_WHRID,
+ XLJXGZ_WHR,
+ XLJXGZ_WHSJ,
+ XLJXGZ_XLXHYFC,
+ XLJXGZ_XLGGYFC,
+ XLJXGZ_DYDJYFC,
+ XLJXGZ_XLBZYFC,
+ XLJXGZ_XLYSYFC
+ FROM XLJXGZ
+ WHERE XLJXGZ_XLJXDJ = :XLJXDJ
+ AND XLJXGZ_XLJXDH = :XLJXDH
+ AND XLJXGZ_XLJXGZXH = :XLJXGZXH ");
+
+ // Ìí¼Ó²éѯ²ÎÊý
+ sSQL.ParamByName("XLJXDJ").Value = XLJXDJ;
+ sSQL.ParamByName("XLJXDH").Value = XLJXDH;
+ sSQL.ParamByName("XLJXGZXH").Value = XLJXGZXH;
+
+ DataSet ds = dberp.OpenDataSet(sSQL);
+ XLJXGZ item = new XLJXGZ();
+ if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
+ {
+ foreach (DataRow row in ds.Tables[0].Rows)
+ {
+ // ʹÓô«Í³¸³Öµ·½Ê½£¨±ÜÃâ¶ÔÏó³õʼ»¯Æ÷£©
+
+ item.XLJXDJ = SafeTrim(row["XLJXGZ_XLJXDJ"]);
+ item.XLJXDH = SafeTrim(row["XLJXGZ_XLJXDH"]);
+ item.XLJXGZXH = SafeTrim(row["XLJXGZ_XLJXGZXH"]);
+ item.XLJXGZC = SafeTrim(row["XLJXGZ_XLJXGZC"]);
+ item.WHRID = SafeTrim(row["XLJXGZ_WHRID"]);
+ item.WHR = SafeTrim(row["XLJXGZ_WHR"]);
+ item.WHSJ = SafeTrim(row["XLJXGZ_WHSJ"]);
+ item.XLXHYFC = SafeTrim(row["XLJXGZ_XLXHYFC"]);
+ item.XLGGYFC = SafeTrim(row["XLJXGZ_XLGGYFC"]);
+ item.DYDJYFC = SafeTrim(row["XLJXGZ_DYDJYFC"]);
+ item.XLBZYFC = SafeTrim(row["XLJXGZ_XLBZYFC"]);
+ item.XLYSYFC = SafeTrim(row["XLJXGZ_XLYSYFC"]);
+
+
+ }
+ }
+ else
+ {
+ sSQL.ParamByName("XLJXDJ").Value = XLJXDJ;
+ sSQL.ParamByName("XLJXDH").Value = ' ';
+ sSQL.ParamByName("XLJXGZXH").Value = XLJXGZXH;
+ ds = dberp.OpenDataSet(sSQL);
+ if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
+ {
+ foreach (DataRow row in ds.Tables[0].Rows)
+ {
+ // ʹÓô«Í³¸³Öµ·½Ê½£¨±ÜÃâ¶ÔÏó³õʼ»¯Æ÷£©
+
+ item.XLJXDJ = SafeTrim(row["XLJXGZ_XLJXDJ"]);
+ item.XLJXDH = SafeTrim(row["XLJXGZ_XLJXDH"]);
+ item.XLJXGZXH = SafeTrim(row["XLJXGZ_XLJXGZXH"]);
+ item.XLJXGZC = SafeTrim(row["XLJXGZ_XLJXGZC"]);
+ item.WHRID = SafeTrim(row["XLJXGZ_WHRID"]);
+ item.WHR = SafeTrim(row["XLJXGZ_WHR"]);
+ item.WHSJ = SafeTrim(row["XLJXGZ_WHSJ"]);
+ item.XLXHYFC = SafeTrim(row["XLJXGZ_XLXHYFC"]);
+ item.XLGGYFC = SafeTrim(row["XLJXGZ_XLGGYFC"]);
+ item.DYDJYFC = SafeTrim(row["XLJXGZ_DYDJYFC"]);
+ item.XLBZYFC = SafeTrim(row["XLJXGZ_XLBZYFC"]);
+ item.XLYSYFC = SafeTrim(row["XLJXGZ_XLYSYFC"]);
+
+
+ }
+ }
+ }
+ return item;
+ }
+ catch (Exception ex)
+ {
+ return new XLJXGZ(); // ·µ»Ø¿Õ¼¯ºÏ
+ }
+ finally
+ {
+
+ }
+ }
+
+ [AjaxMethod(AuthRequried = false)]
+ public static Result InsertXLJXMX(XLJXMX item)
+ {
+ CMISproSession tSession = CMISproSessionManager.GetCurrentSession();
+ TDatabase dberp = null;
+ Result result = new Result();
+ try
+ {
+ dberp = TContextDatabases.GetDatabase("DBERP");
+ dberp.BeginTrans(); // ¿ªÆôÊÂÎñ
+
+ // ¹¹½¨²åÈëÓï¾ä
+ TSQL sSQL = new TSQL(dberp);
+ sSQL.Add(@"INSERT INTO XLJXMX (XLJXMX_XLJXDJ,XLJXMX_XLJXDH,XLJXMX_XLJXMXH,XLJXMX_XLBSC,XLJXMX_XLJXGZXH,
+ XLJXMX_JXXLXHID,XLJXMX_XLXHID,XLJXMX_JXXLGGID,XLJXMX_XLGGID,XLJXMX_JXDYDJID,
+ XLJXMX_DYDJID,XLJXMX_XLBZID,XLJXMX_JXXLBZID,XLJXMX_XLYSID,XLJXMX_JXXLYSID,XLJXMX_WHR,XLJXMX_WHRID,
+ XLJXMX_WHSJ,XLJXMX_DCZT,XLJXMX_JLDW,XLJXMX_SL,XLJXMX_FBH,XLJXMX_JSGFSID
+ ) VALUES (:XLJXDJ,:XLJXDH,:XLJXMXH,:XLBSC,:XLJXGZXH,:JXXLXHID,:XLXHID,:JXXLGGID,:XLGGID,
+ :JXDYDJID,:DYDJID,:XLBZID,:JXXLBZID,:XLYSID,:JXXLYSID,:WHR,:WHRID,:WHSJ,:DCZT,:JLDW,:SL,:FBH,:JSGFSID)");
+
+ // Ìí¼Ó²ÎÊý£¨È·±£¿Õֵת»»ÎªDBNull£©
+ sSQL.ParamByName("XLJXDJ").Value = item.XLJXDJ;
+ sSQL.ParamByName("XLJXDH").Value = item.XLJXDH;
+ sSQL.ParamByName("XLJXMXH").Value = GetNextXLJXMXH(dberp, item.XLJXDH);
+ sSQL.ParamByName("XLBSC").Value = GetSafeValue(item.XLBSC);
+ sSQL.ParamByName("XLJXGZXH").Value = 0;
+ sSQL.ParamByName("JXXLXHID").Value = GetSafeValue(item.JXXLXHID);
+ sSQL.ParamByName("XLXHID").Value = GetSafeValue(item.XLXHID);
+ sSQL.ParamByName("JXXLGGID").Value = GetSafeValue(item.JXXLGGID);
+ sSQL.ParamByName("XLGGID").Value = GetSafeValue(item.XLGGID);
+ sSQL.ParamByName("JXDYDJID").Value = GetSafeValue(item.JXDYDJID);
+ sSQL.ParamByName("DYDJID").Value = GetSafeValue(item.DYDJID);
+ sSQL.ParamByName("XLBZID").Value = GetSafeValue(item.XLBZID);
+ sSQL.ParamByName("JXXLBZID").Value = GetSafeValue(item.JXXLBZID);
+ sSQL.ParamByName("XLYSID").Value = GetSafeValue(item.XLYSID);
+ sSQL.ParamByName("JXXLYSID").Value = GetSafeValue(item.JXXLYSID);
+ sSQL.ParamByName("WHR").Value = tSession.UserName;
+ sSQL.ParamByName("WHRID").Value =tSession.UserId;
+ sSQL.ParamByName("WHSJ").Value = DateTime.Now;
+ sSQL.ParamByName("DCZT").Value = "N";
+ sSQL.ParamByName("JLDW").Value = item.JLDW;
+ sSQL.ParamByName("SL").Value = CMISproConvert.StrToFloat(item.SL);
+ sSQL.ParamByName("FBH").Value = item.FBH;
+ sSQL.ParamByName("JSGFSID").Value = item.JSGFID;
+ // Ö´ÐвåÈë
+ int affectedRows = dberp.ExecSQL(sSQL);
+
+ dberp.CommitTrans();
+
+ result.success = true;
+ result.msg = sSQL.ParamByName("XLJXDH").Value.ToString();
+ return result;
+ }
+ catch (Exception ex)
+ {
+ // ·¢ÉúÒ쳣ʱ»Ø¹öÊÂÎñ
+ if (dberp != null && dberp.InTransaction)
+ {
+ dberp.RollbackTrans();
+ }
+
+ // ¼Ç¼´íÎóÈÕÖ¾
+
+ result.success = false;
+ result.msg = "Êý¾Ý²åÈëʧ°Ü: " + ex.Message;
+ return result;
+ }
+ finally
+ {
+
+ }
+ }
+
+
+ [AjaxMethod(AuthRequried = false)]
+ public static Result InsertXLJXMXList(List items)
+ {
+ CMISproSession tSession = CMISproSessionManager.GetCurrentSession();
+ TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
+ TSQL sSQL = new TSQL(dberp);
+ Result result = new Result();
+ try
+ {
+
+ dberp.BeginTrans(); // ¿ªÆôÊÂÎñ
+
+ // ´´½¨×ÖµäÓÃÓÚ°´XLJXDH·Ö×é
+ Dictionary> groupedItems = new Dictionary>();
+
+ // °´XLJXDH·Ö×é
+ foreach (XLJXMX item in items)
+ {
+ string key = item.XLJXDH;
+ if (!groupedItems.ContainsKey(key))
+ {
+ groupedItems[key] = new List();
+ }
+ groupedItems[key].Add(item);
+ }
+
+ // ´¦Àíÿ¸ö·Ö×é
+ foreach (string key in groupedItems.Keys)
+ {
+ List group = groupedItems[key];
+
+ int sequence = GetNextXLJXMXH(dberp, key);
+
+ // ´¦Àí×éÄÚÿ¸öÏîÄ¿
+ foreach (XLJXMX item in group)
+ {
+ // ¹¹½¨²åÈëÓï¾ä
+ sSQL.Clear();
+ sSQL.Add(@"INSERT INTO XLJXMX (XLJXMX_XLJXDJ,XLJXMX_XLJXDH,XLJXMX_XLJXMXH,XLJXMX_XLBSC,XLJXMX_XLJXGZXH,
+ XLJXMX_JXXLXHID,XLJXMX_XLXHID,XLJXMX_JXXLGGID,XLJXMX_XLGGID,XLJXMX_JXDYDJID,
+ XLJXMX_DYDJID,XLJXMX_XLBZID,XLJXMX_JXXLBZID,XLJXMX_XLYSID,XLJXMX_JXXLYSID,
+ XLJXMX_WHR,XLJXMX_WHRID,XLJXMX_WHSJ,XLJXMX_DCZT,XLJXMX_JLDW,XLJXMX_SL,XLJXMX_FBH,XLJXMX_JSGFSID
+ ) VALUES (:XLJXDJ,:XLJXDH,:XLJXMXH,:XLBSC,:XLJXGZXH,:JXXLXHID,:XLXHID,
+ :JXXLGGID,:XLGGID,:JXDYDJID,:DYDJID,:XLBZID,:JXXLBZID,:XLYSID,
+ :JXXLYSID,:WHR,:WHRID,:WHSJ,:DCZT,:JLDW,:SL,:FBH,:JSGFSID)");
+
+ // Ìí¼Ó²ÎÊý
+ sSQL.ParamByName("XLJXDJ").Value = item.XLJXDJ;
+ sSQL.ParamByName("XLJXDH").Value = item.XLJXDH;
+ sSQL.ParamByName("XLJXMXH").Value = sequence++;
+ sSQL.ParamByName("XLBSC").Value = GetSafeValue(item.XLBSC);
+ sSQL.ParamByName("XLJXGZXH").Value = 0;
+ sSQL.ParamByName("JXXLXHID").Value = GetSafeValue(item.JXXLXHID);
+ sSQL.ParamByName("XLXHID").Value = GetSafeValue(item.XLXHID);
+ sSQL.ParamByName("JXXLGGID").Value = GetSafeValue(item.JXXLGGID);
+ sSQL.ParamByName("XLGGID").Value = GetSafeValue(item.XLGGID);
+ sSQL.ParamByName("JXDYDJID").Value = GetSafeValue(item.JXDYDJID);
+ sSQL.ParamByName("DYDJID").Value = GetSafeValue(item.DYDJID);
+ sSQL.ParamByName("XLBZID").Value = GetSafeValue(item.XLBZID);
+ sSQL.ParamByName("JXXLBZID").Value = GetSafeValue(item.JXXLBZID);
+ sSQL.ParamByName("XLYSID").Value = GetSafeValue(item.XLYSID);
+ sSQL.ParamByName("JXXLYSID").Value = GetSafeValue(item.JXXLYSID);
+ sSQL.ParamByName("WHR").Value = tSession.UserName;
+ sSQL.ParamByName("WHRID").Value = tSession.UserId;
+ sSQL.ParamByName("WHSJ").Value = DateTime.Now;
+ sSQL.ParamByName("DCZT").Value = "N";
+ sSQL.ParamByName("JLDW").Value = item.JLDW;
+ sSQL.ParamByName("SL").Value =CMISproConvert.StrToFloat( item.SL);
+ sSQL.ParamByName("FBH").Value = item.FBH;
+ sSQL.ParamByName("JSGFSID").Value = item.JSGFID;
+ // Ö´ÐвåÈë
+ dberp.ExecSQL(sSQL);
+ }
+ }
+
+ dberp.CommitTrans();
+
+ result.success = true;
+ result.msg = "³É¹¦²åÈë" + items.Count + "ÌõÊý¾Ý";
+ return result;
+ }
+ catch (Exception ex)
+ {
+ // ·¢ÉúÒ쳣ʱ»Ø¹öÊÂÎñ
+ if (dberp != null && dberp.InTransaction)
+ {
+ dberp.RollbackTrans();
+ }
+
+ result.success = false;
+ result.msg = "Êý¾ÝÅúÁ¿²åÈëʧ°Ü: " + ex.Message;
+ return result;
+ }
+ finally
+ {
+
+ }
+ }
+
+
+ [AjaxMethod(AuthRequried = false)]
+ public static Result UpdateXLJXMXList(List items)
+ {
+ CMISproSession tSession = CMISproSessionManager.GetCurrentSession();
+ TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
+ TSQL sSQL = new TSQL(dberp);
+ Result result = new Result();
+ try
+ {
+
+ dberp.BeginTrans(); // ¿ªÆôÊÂÎñ
+
+ // ´´½¨×ÖµäÓÃÓÚ°´XLJXDH·Ö×é
+ Dictionary> groupedItems = new Dictionary>();
+
+ // °´XLJXDH·Ö×é
+ foreach (XLJXMX item in items)
+ {
+ string key = item.XLJXDH;
+ if (!groupedItems.ContainsKey(key))
+ {
+ groupedItems[key] = new List();
+ }
+ groupedItems[key].Add(item);
+ }
+
+ // ´¦Àíÿ¸ö·Ö×é
+ foreach (string key in groupedItems.Keys)
+ {
+ List group = groupedItems[key];
+
+ // ´¦Àí×éÄÚÿ¸öÏîÄ¿
+ foreach (XLJXMX item in group)
+ {
+ // ¹¹½¨²åÈëÓï¾ä
+ sSQL.Clear();
+ sSQL.Add(@"update XLJXMX set XLJXMX_JXXLXHID=:JXXLXHID,XLJXMX_JXXLGGID=:JXXLGGID,XLJXMX_JXXLBZID=:JXXLBZID,XLJXMX_JXDYDJID=:JXDYDJID
+ where XLJXMX_XLJXDJ=:XLJXDJ and XLJXMX_XLJXDH=:XLJXDH and XLJXMX_XLJXMXH=:XLJXMXH");
+
+ // Ìí¼Ó²ÎÊý
+ sSQL.ParamByName("XLJXDJ").Value = item.XLJXDJ;
+ sSQL.ParamByName("XLJXDH").Value = item.XLJXDH;
+ sSQL.ParamByName("XLJXMXH").Value = item.XLJXMXH;
+ sSQL.ParamByName("JXXLXHID").Value = GetSafeValue(item.JXXLXHID);
+ sSQL.ParamByName("JXXLGGID").Value = GetSafeValue(item.JXXLGGID);
+ sSQL.ParamByName("JXDYDJID").Value = GetSafeValue(item.JXDYDJID);
+ sSQL.ParamByName("JXXLBZID").Value = GetSafeValue(item.JXXLBZID);
+ // Ö´ÐвåÈë
+ dberp.ExecSQL(sSQL);
+ }
+ }
+
+ dberp.CommitTrans();
+
+ result.success = true;
+ result.msg = "³É¹¦¸üÐÂ" + items.Count + "ÌõÊý¾Ý";
+ return result;
+ }
+ catch (Exception ex)
+ {
+ // ·¢ÉúÒ쳣ʱ»Ø¹öÊÂÎñ
+ if (dberp != null && dberp.InTransaction)
+ {
+ dberp.RollbackTrans();
+ }
+
+ result.success = false;
+ result.msg = "Êý¾ÝÅúÁ¿¸üÐÂʧ°Ü: " + ex.Message;
+ return result;
+ }
+ finally
+ {
+
+ }
+ }
+
+
+ #region ½âÎö¹«¹²ºËÐÄ
+
+ ///
+ /// Ê״γɹ¦½âÎöʱµÄ»Øµ÷ίÍУ¬·µ»ØÒªÓ¦ÓõĹæÔòÐòºÅ
+ ///
+ private delegate string OnFirstSuccessfulParseDelegate();
+
+ ///
+ /// ¼ÓÔØµÈÐ§Ìæ»»¹æÔò
+ ///
+ private static DataSet LoadReplaceRules(TDatabase dberp)
+ {
+ TSQL sSQL = new TSQL(dberp);
+ sSQL.Clear();
+ sSQL.Add("select XLXSBJDXTHDZQD_THLX,XLXSBJDXTHDZQD_THQXHZF,XLXSBJDXTHDZQD_THHXHZF,XLXSBJDXTHDZQD_THQGGZF,XLXSBJDXTHDZQD_THHGGZF,");
+ sSQL.Add(" XLXSBJDXTHDZQD_THQDYDJZF,XLXSBJDXTHDZQD_THHDYDJZF from XLXSBJDXTHDZQD order by XLXSBJDXTHDZQD_THYXJ desc,XLXSBJDXTHDZQD_XH ");
+ return dberp.OpenDataSet(sSQL);
+ }
+
+ ///
+ /// ¸ù¾Ý XLXSBJDXTHDZQD ÅäÖöԽâÎö½á¹û½øÐеÈÐ§Ìæ»»
+ ///
+ private static void ApplyReplaceRules(
+ DataSet dsTHGZ,
+ ref string sDXHXLXH,
+ ref string sDXHXLGG,
+ ref string sDXHXLBZ,
+ ref string sDXHDYDJ)
+ {
+ if (dsTHGZ == null || dsTHGZ.Tables.Count == 0 || dsTHGZ.Tables[0].Rows.Count == 0)
+ return;
+
+ bool bXHGGJQTH = false;
+ bool bXHZZDYDJJQTHDYDJ = false;
+ bool bXHDYDJJQTH = false;
+
+ for (int j = 0; j < dsTHGZ.Tables[0].Rows.Count; j++)
+ {
+ string sTHLX = dsTHGZ.Tables[0].Rows[j]["XLXSBJDXTHDZQD_THLX"].ToString().Trim();
+ string sTHQXHZF = dsTHGZ.Tables[0].Rows[j]["XLXSBJDXTHDZQD_THQXHZF"].ToString().Trim();
+ string sTHHXHZF = dsTHGZ.Tables[0].Rows[j]["XLXSBJDXTHDZQD_THHXHZF"].ToString().Trim();
+ string sTHQGGZF = dsTHGZ.Tables[0].Rows[j]["XLXSBJDXTHDZQD_THQGGZF"].ToString().Trim();
+ string sTHHGGZF = dsTHGZ.Tables[0].Rows[j]["XLXSBJDXTHDZQD_THHGGZF"].ToString().Trim();
+ string sTHQDYDJZF = dsTHGZ.Tables[0].Rows[j]["XLXSBJDXTHDZQD_THQDYDJZF"].ToString().Trim();
+ string sTHHDYDJZF = dsTHGZ.Tables[0].Rows[j]["XLXSBJDXTHDZQD_THHDYDJZF"].ToString().Trim();
+
+ if (sTHLX.Equals("XHJQTH") && !bXHGGJQTH)
+ {
+ if (sDXHXLXH.Equals(sTHQXHZF))
+ {
+ sDXHXLXH = sTHHXHZF;
+ break;
+ }
+ }
+ else if (sTHLX.Equals("XHZZTH") && !bXHGGJQTH)
+ {
+ if (Regex.IsMatch(sDXHXLXH, sTHQXHZF))
+ {
+ sDXHXLXH = Regex.Replace(sDXHXLXH, sTHQXHZF, sTHHXHZF);
+ break;
+ }
+ }
+ else if (sTHLX.Equals("DYDJJQTH") && !bXHZZDYDJJQTHDYDJ && !bXHDYDJJQTH)
+ {
+ if (sDXHDYDJ.Equals(sTHQDYDJZF))
+ {
+ sDXHDYDJ = sTHHDYDJZF;
+ }
+ }
+ else if (sTHLX.Equals("XHZZDYDJJQTHDYDJ") && !bXHDYDJJQTH)
+ {
+ if (Regex.IsMatch(sDXHXLXH, sTHQXHZF) && sDXHDYDJ == sTHQDYDJZF)
+ {
+ sDXHDYDJ = sTHHDYDJZF;
+ bXHZZDYDJJQTHDYDJ = true;
+ }
+ }
+ else if (sTHLX.Equals("XHGGJQTH"))
+ {
+ if (sDXHXLXH == sTHQXHZF && sDXHXLGG == sTHQGGZF)
+ {
+ sDXHXLXH = sTHHXHZF;
+ sDXHXLGG = sTHHGGZF;
+ bXHGGJQTH = true;
+ }
+ }
+ else if (sTHLX.Equals("XHGGDYDJJQTH"))
+ {
+ if (sDXHXLXH == sTHQXHZF &&
+ sDXHXLGG == sTHQGGZF &&
+ sDXHDYDJ == sTHQDYDJZF)
+ {
+ sDXHXLXH = sTHHXHZF;
+ sDXHXLGG = sTHHGGZF;
+ sDXHDYDJ = sTHHDYDJZF;
+ break;
+ }
+ }
+ else if (sTHLX.Equals("XHDYDJJQTH"))
+ {
+ if (sDXHXLXH == sTHQXHZF && sDXHDYDJ == sTHQDYDJZF)
+ {
+ sDXHXLXH = sTHHXHZF;
+ sDXHDYDJ = sTHHDYDJZF;
+ bXHDYDJJQTH = true;
+ break;
+ }
+ }
+ }
+ }
+
+ ///
+ /// ½âÎöµ¥Ìõ²úÆ·×Ö·û´®£¬·µ»Ø½âÎö½á¹û¼°µÈÐ§Ìæ»»ºóµÄ½á¹û
+ ///
+ private static bool TryParseProduct(
+ string sXLBSC,
+ XLJXGZ rule,
+ DataSet dsTHGZ,
+ out string aXLXH,
+ out string aXLGG,
+ out string aDYDJ,
+ out string aXLBZ,
+ out string aXLYS,
+ out string sDXHXLXH,
+ out string sDXHXLGG,
+ out string sDXHDYDJ,
+ out string sDXHXLBZ)
+ {
+ aXLXH = aXLGG = aDYDJ = aXLBZ = aXLYS = string.Empty;
+ sDXHXLXH = sDXHXLGG = sDXHDYDJ = sDXHXLBZ = string.Empty;
+
+ string sXLJXGZ = rule.XLJXGZC;
+ string sYFXH = rule.XLXHYFC.Replace("ÐͺÅÂë", "A").Replace("ǰ׺Âë", "B").Replace("ºó׺Âë", "C");
+ string sYFGG = rule.XLGGYFC.Replace("½ØÃæ", "A").Replace("оÊý", "B").Replace("Ïß¶ÔÊý", "C").Replace("Ïß×éÊý", "D");
+ string sYFDYDJ = rule.DYDJYFC.Replace("Ïàµçѹ", "A").Replace("Ïßµçѹ", "B").Replace("µçѹµ¥Î»", "C").Replace("Ïß×éÊý", "D");
+ string sYFBZ = rule.XLBZYFC.Replace("±ê×¼Ãû", "A");
+
+ TXLJXGZ xljxgz = new TXLJXGZ();
+ if (!xljxgz.LoadGZ(sXLJXGZ, sYFXH, sYFGG, sYFDYDJ, sYFBZ, ""))
+ return false;
+
+ if (!xljxgz.XLYSJX(sXLBSC, out aXLXH, out aXLGG, out aDYDJ, out aXLBZ, out aXLYS))
+ return false;
+
+ if (string.IsNullOrEmpty(aXLXH.Trim().Replace("-", "").Replace("/", "").Replace("(", "").Replace(")", "")))
+ return false;
+
+ sDXHXLXH = aXLXH;
+ sDXHXLGG = aXLGG;
+ sDXHXLBZ = aXLBZ;
+ sDXHDYDJ = aDYDJ;
+
+ ApplyReplaceRules(dsTHGZ, ref sDXHXLXH, ref sDXHXLGG, ref sDXHXLBZ, ref sDXHDYDJ);
+
+ return true;
+ }
+
+ ///
+ /// ½«½âÎö½á¹û¸üе½ XLJXMX µ¥Ìõ¼Ç¼
+ ///
+ private static void UpdateXLJXMXWithParseResult(
+ TDatabase dberp,
+ TSQL sSQL,
+ string sXLJXDJ,
+ string sXLJXDH,
+ string sXLJXMXH,
+ string sXLJXGZXH,
+ string aXLXH,
+ string aXLGG,
+ string aDYDJ,
+ string aXLBZ,
+ string aXLYS,
+ string sDXHXLXH,
+ string sDXHXLGG,
+ string sDXHDYDJ,
+ string sDXHXLBZ)
+ {
+ sSQL.Clear();
+ sSQL.Add("UPDATE XLJXMX SET ");
+ sSQL.Add(" XLJXMX_XLJXGZXH=:pXLJXGZXH, ");
+ sSQL.Add(" XLJXMX_XLXHID=:pXLXHID, ");
+ sSQL.Add(" XLJXMX_DYDJID=:pDYDJID, ");
+ sSQL.Add(" XLJXMX_XLGGID=:pXLGGID, ");
+ sSQL.Add(" XLJXMX_XLBZID=:pXLBZID, ");
+ sSQL.Add(" XLJXMX_XLYSID=:pXLYSID, ");
+ sSQL.Add(" XLJXMX_JXXLXHID=:pDXXLXHID, ");
+ sSQL.Add(" XLJXMX_JXDYDJID=:pDXDYDJID, ");
+ sSQL.Add(" XLJXMX_JXXLGGID=:pDXXLGGID, ");
+ sSQL.Add(" XLJXMX_JXXLBZID=:pDXXLBZID, ");
+ sSQL.Add(" XLJXMX_JXXLYSID=:pXLYSID ");
+ sSQL.Add(" WHERE XLJXMX_XLJXDJ=:pXLJXDJ ");
+ sSQL.Add(" AND XLJXMX_XLJXDH=:pXLJXDH ");
+ sSQL.Add(" AND XLJXMX_XLJXMXH=:pXLJXMXH ");
+ sSQL.ParamByName("pXLJXDJ").Value = sXLJXDJ;
+ sSQL.ParamByName("pXLJXDH").Value = sXLJXDH;
+ sSQL.ParamByName("pXLJXMXH").Value = sXLJXMXH;
+ sSQL.ParamByName("pXLJXGZXH").Value = sXLJXGZXH;
+ sSQL.ParamByName("pXLXHID").Value = aXLXH.Substring(0, Math.Min(aXLXH.Length, 40));
+ sSQL.ParamByName("pXLGGID").Value = aXLGG.Substring(0, Math.Min(aXLGG.Length, 60));
+ sSQL.ParamByName("pDYDJID").Value = aDYDJ.Substring(0, Math.Min(aDYDJ.Length, 20));
+ sSQL.ParamByName("pXLBZID").Value = aXLBZ.Substring(0, Math.Min(aXLBZ.Length, 10));
+ sSQL.ParamByName("pXLYSID").Value = aXLYS.Substring(0, Math.Min(aXLYS.Length, 10));
+ sSQL.ParamByName("pDXXLXHID").Value = sDXHXLXH.Substring(0, Math.Min(sDXHXLXH.Length, 40));
+ sSQL.ParamByName("pDXXLGGID").Value = sDXHXLGG.Substring(0, Math.Min(sDXHXLGG.Length, 60));
+ sSQL.ParamByName("pDXDYDJID").Value = sDXHDYDJ.Substring(0, Math.Min(sDXHDYDJ.Length, 20));
+ sSQL.ParamByName("pDXXLBZID").Value = sDXHXLBZ.Substring(0, Math.Min(sDXHXLBZ.Length, 10));
+ dberp.ExecSQL(sSQL);
+ }
+
+ ///
+ /// ±£´æ»ò¸üнâÎö¹æÔòµ½ XLJXGZ£¬·µ»Ø¹æÔòÐòºÅ
+ ///
+ private static double SaveOrUpdateRule(
+ TDatabase dberp,
+ TSQL sSQL,
+ XLJXGZ rule,
+ string IsCommon,
+ string sYGZC,
+ CMISproSession tSession)
+ {
+ string space = " ";
+ string sXLJXGZ = rule.XLJXGZC;
+ string sYFXH = rule.XLXHYFC.Replace("ÐͺÅÂë", "A").Replace("ǰ׺Âë", "B").Replace("ºó׺Âë", "C");
+ string sYFGG = rule.XLGGYFC.Replace("½ØÃæ", "A").Replace("оÊý", "B").Replace("Ïß¶ÔÊý", "C").Replace("Ïß×éÊý", "D");
+ string sYFDYDJ = rule.DYDJYFC.Replace("Ïàµçѹ", "A").Replace("Ïßµçѹ", "B").Replace("µçѹµ¥Î»", "C").Replace("Ïß×éÊý", "D");
+ string sYFBZ = rule.XLBZYFC.Replace("±ê×¼Ãû", "A");
+ double fNewXLJXGZXH = 0;
+
+ sSQL.Clear();
+ sSQL.Add("select XLJXGZ_XLJXGZXH from XLJXGZ where XLJXGZ_XLJXDJ=:pXLJXDJ and XLJXGZ_XLJXDH=:pXLJXDH and XLJXGZ_XLJXGZC =:pXLJXGZC ");
+ sSQL.ParamByName("pXLJXDJ").Value = rule.XLJXDJ;
+ if (IsCommon.Equals("Y"))
+ sSQL.ParamByName("pXLJXDH").Value = space;
+ else
+ sSQL.ParamByName("pXLJXDH").Value = rule.XLJXDH;
+ sSQL.ParamByName("pXLJXGZC").Value = sYGZC;
+ DataSet dsXLJXGZ = dberp.OpenDataSet(sSQL);
+
+ if (dsXLJXGZ.Tables[0].Rows.Count > 0)
+ {
+ fNewXLJXGZXH = CMISproConvert.StrToFloat(dsXLJXGZ.Tables[0].Rows[0][0].ToString().Trim());
+ sSQL.Clear();
+ sSQL.Add(" update XLJXGZ ");
+ sSQL.Add(" set XLJXGZ_XLJXGZC =:pXLJXGZC,XLJXGZ_XLXHYFC=:pXLXHYFC, ");
+ sSQL.Add(" XLJXGZ_XLGGYFC=:pXLGGYFC, ");
+ sSQL.Add(" XLJXGZ_DYDJYFC=:pDYDJYFC, ");
+ sSQL.Add(" XLJXGZ_XLBZYFC=:pXLBZYFC, ");
+ sSQL.Add(" XLJXGZ_XLYSYFC=:pXLYSYFC, ");
+ sSQL.Add(" XLJXGZ_WHRID=:pWHRID, ");
+ sSQL.Add(" XLJXGZ_WHR=:pWHR, ");
+ sSQL.Add(" XLJXGZ_WHSJ=:pWHSJ ");
+ sSQL.Add(" where XLJXGZ_XLJXDJ=:pXLJXDJ and XLJXGZ_XLJXDH=:pXLJXDH and XLJXGZ_XLJXGZXH=:pXLJXGZXH ");
+ sSQL.ParamByName("pXLXHYFC").Value = sYFXH;
+ sSQL.ParamByName("pXLGGYFC").Value = sYFGG;
+ sSQL.ParamByName("pDYDJYFC").Value = sYFDYDJ;
+ sSQL.ParamByName("pXLBZYFC").Value = sYFBZ;
+ sSQL.ParamByName("pXLYSYFC").Value = "";
+ sSQL.ParamByName("pWHRID").Value = tSession.UserId;
+ sSQL.ParamByName("pWHR").Value = tSession.UserName;
+ sSQL.ParamByName("pWHSJ").Value = DateTime.Now;
+ sSQL.ParamByName("pXLJXDJ").Value = rule.XLJXDJ;
+ if (IsCommon.Equals("Y"))
+ sSQL.ParamByName("pXLJXDH").Value = space;
+ else
+ sSQL.ParamByName("pXLJXDH").Value = rule.XLJXDH;
+ sSQL.ParamByName("pXLJXGZXH").Value = fNewXLJXGZXH;
+ sSQL.ParamByName("pXLJXGZC").Value = sXLJXGZ;
+ dberp.ExecSQL(sSQL);
+ }
+ else
+ {
+ if (IsCommon.Equals("Y"))
+ fNewXLJXGZXH = CMISproDataBase.GetMaxXH("DBERP", "XLJXGZ", "XLJXGZ_XLJXGZXH",
+ string.Format("XLJXGZ_XLJXDJ='{0}' and XLJXGZ_XLJXDH ='{1}'", rule.XLJXDJ, space)) + 1;
+ else
+ fNewXLJXGZXH = CMISproDataBase.GetMaxXH("DBERP", "XLJXGZ", "XLJXGZ_XLJXGZXH",
+ string.Format("XLJXGZ_XLJXDJ='{0}' and XLJXGZ_XLJXDH ='{1}'", rule.XLJXDJ, rule.XLJXDH)) + 1;
+
+ sSQL.Clear();
+ sSQL.Add(" insert into XLJXGZ ");
+ sSQL.Add(" (XLJXGZ_XLJXDJ,XLJXGZ_XLJXDH,XLJXGZ_XLJXGZXH,XLJXGZ_XLJXGZC,XLJXGZ_WHRID,XLJXGZ_WHR,XLJXGZ_WHSJ, ");
+ sSQL.Add(" XLJXGZ_XLXHYFC,XLJXGZ_XLGGYFC,XLJXGZ_DYDJYFC,XLJXGZ_XLBZYFC,XLJXGZ_XLYSYFC) ");
+ sSQL.Add(" values ");
+ sSQL.Add(" (:pXLJXDJ,:pXLJXDH,:pXLJXGZXH,:pXLJXGZC,:pWHRID,:pWHR,:pWHSJ, ");
+ sSQL.Add(" :pXLXHYFC,:pXLGGYFC,:pDYDJYFC,:pXLBZYFC,:pXLYSYFC) ");
+ sSQL.ParamByName("pXLXHYFC").Value = sYFXH;
+ sSQL.ParamByName("pXLGGYFC").Value = sYFGG;
+ sSQL.ParamByName("pDYDJYFC").Value = sYFDYDJ;
+ sSQL.ParamByName("pXLBZYFC").Value = sYFBZ;
+ sSQL.ParamByName("pXLYSYFC").Value = "";
+ sSQL.ParamByName("pWHRID").Value = tSession.UserId;
+ sSQL.ParamByName("pWHR").Value = tSession.UserName;
+ sSQL.ParamByName("pWHSJ").Value = DateTime.Now;
+ sSQL.ParamByName("pXLJXDJ").Value = rule.XLJXDJ;
+ if (IsCommon.Equals("Y"))
+ sSQL.ParamByName("pXLJXDH").Value = space;
+ else
+ sSQL.ParamByName("pXLJXDH").Value = rule.XLJXDH;
+ sSQL.ParamByName("pXLJXGZXH").Value = fNewXLJXGZXH;
+ sSQL.ParamByName("pXLJXGZC").Value = sXLJXGZ;
+ dberp.ExecSQL(sSQL);
+ }
+
+ return fNewXLJXGZXH;
+ }
+
+ ///
+ /// ά»¤ XLYFGZ Óï·¨¿â
+ ///
+ private static void SaveSyntaxToXLYFGZ(
+ TDatabase dberp,
+ TSQL sSQL,
+ XLJXGZ rule,
+ CMISproSession tSession)
+ {
+ string sBSC = GetBSC(rule.XLJXGZC);
+ string sYFXH = rule.XLXHYFC.Replace("ÐͺÅÂë", "A").Replace("ǰ׺Âë", "B").Replace("ºó׺Âë", "C");
+ string sYFGG = rule.XLGGYFC.Replace("½ØÃæ", "A").Replace("оÊý", "B").Replace("Ïß¶ÔÊý", "C").Replace("Ïß×éÊý", "D");
+ string sYFDYDJ = rule.DYDJYFC.Replace("Ïàµçѹ", "A").Replace("Ïßµçѹ", "B").Replace("µçѹµ¥Î»", "C").Replace("Ïß×éÊý", "D");
+ string sYFBZ = rule.XLBZYFC.Replace("±ê×¼Ãû", "A");
+
+ if (!string.IsNullOrEmpty(sYFXH) && sYFXH.Trim() != "")
+ IntoXLYFGZ(dberp, sSQL, "1", XLYSJXUtils.ProdCPH_XLXH(sBSC), XLYSJXUtils.ProdCXH_XLXH(sBSC), sYFXH);
+ if (!string.IsNullOrEmpty(sYFGG) && sYFGG.Trim() != "")
+ IntoXLYFGZ(dberp, sSQL, "2", XLYSJXUtils.ProdCPH_XLGG(sBSC), XLYSJXUtils.ProdCXH_XLGG(sBSC), sYFGG);
+ if (!string.IsNullOrEmpty(sYFDYDJ) && sYFDYDJ.Trim() != "")
+ IntoXLYFGZ(dberp, sSQL, "3", XLYSJXUtils.ProdCPH_DYDJ(sBSC), XLYSJXUtils.ProdCXH_DYDJ(sBSC), sYFDYDJ);
+ if (!string.IsNullOrEmpty(sYFBZ) && sYFBZ.Trim() != "")
+ IntoXLYFGZ(dberp, sSQL, "4", XLYSJXUtils.ProdCPH_XLBZ(sBSC), XLYSJXUtils.ProdCXH_XLBZ(sBSC), sYFBZ);
+ }
+
+ ///
+ /// ½«ÒýÓÃÖ¸¶¨¹æÔòµÄ XLJXMX Ã÷Ï¸ÖØÖÃΪδ½âÎö״̬
+ ///
+ private static void ResetMXByRuleNo(
+ TDatabase dberp,
+ TSQL sSQL,
+ string sXLJXDJ,
+ string sXLJXDH,
+ string sXLJXGZXH)
+ {
+ sSQL.Clear();
+ sSQL.Add(" update XLJXMX set XLJXMX_XLJXGZXH=0 ");
+ sSQL.Add(" where XLJXMX_XLJXDJ=:pXLJXDJ ");
+ sSQL.Add(" and XLJXMX_XLJXDH=:pXLJXDH ");
+ sSQL.Add(" and XLJXMX_XLJXGZXH=:pXLJXGZXH ");
+ sSQL.ParamByName("pXLJXDJ").Value = sXLJXDJ;
+ sSQL.ParamByName("pXLJXDH").Value = sXLJXDH;
+ sSQL.ParamByName("pXLJXGZXH").Value = sXLJXGZXH;
+ dberp.ExecSQL(sSQL);
+ }
+
+ ///
+ /// ½«Ö¸¶¨½âÎö¹æÔòÓ¦Óõ½Ä¿±ê±¨¼Ûµ¥ÏÂËùÓÐ XLJXGZXH=0 µÄÃ÷ϸÐÐ
+ ///
+ /// Ê״γɹ¦½âÎöʱµÄ»Øµ÷£¬·µ»ØÒªÓ¦ÓõĹæÔòÐòºÅ£»·µ»Ø¿ÕÔòÌø¹ý¸ÃÐÐ
+ /// ³É¹¦½âÎö²¢¸üеÄÐÐÊý
+ private static int ApplyRuleToMXRows(
+ TDatabase dberp,
+ TSQL sSQL,
+ XLJXGZ rule,
+ DataSet dsTHGZ,
+ string targetBJDID,
+ string targetXLJXDJ,
+ string ruleNoToApply,
+ OnFirstSuccessfulParseDelegate onFirstSuccessfulParse)
+ {
+ int parsedCount = 0;
+ string currentRuleNo = ruleNoToApply;
+ bool firstParseHandled = false;
+
+ sSQL.Clear();
+ sSQL.Add(" SELECT XLJXMX_XLJXMXH as XLJXMXH, XLJXMX_XLBSC as XLBSC ");
+ sSQL.Add(" FROM XLJXMX ");
+ sSQL.Add(" WHERE XLJXMX_XLJXDJ = :pXLJXDJ ");
+ sSQL.Add(" AND XLJXMX_XLJXDH = :pXLJXDH ");
+ sSQL.Add(" AND XLJXMX_XLJXGZXH = 0 ");
+ sSQL.Add(" ORDER BY XLJXMX_XLJXMXH ");
+ sSQL.ParamByName("pXLJXDJ").Value = targetXLJXDJ;
+ sSQL.ParamByName("pXLJXDH").Value = targetBJDID;
+
+ DataSet ds = dberp.OpenDataSet(sSQL);
+
+ for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
+ {
+ string sXLJXMXH = ds.Tables[0].Rows[i]["XLJXMXH"].ToString().Trim();
+ string sXLBSC = ds.Tables[0].Rows[i]["XLBSC"].ToString().Trim();
+
+ string aXLXH, aXLGG, aDYDJ, aXLBZ, aXLYS;
+ string sDXHXLXH, sDXHXLGG, sDXHDYDJ, sDXHXLBZ;
+
+ if (!TryParseProduct(sXLBSC, rule, dsTHGZ,
+ out aXLXH, out aXLGG, out aDYDJ, out aXLBZ, out aXLYS,
+ out sDXHXLXH, out sDXHXLGG, out sDXHDYDJ, out sDXHXLBZ))
+ continue;
+
+ if (!firstParseHandled && onFirstSuccessfulParse != null)
+ {
+ string savedRuleNo = onFirstSuccessfulParse();
+ if (!string.IsNullOrEmpty(savedRuleNo))
+ currentRuleNo = savedRuleNo;
+ firstParseHandled = true;
+ }
+
+ UpdateXLJXMXWithParseResult(dberp, sSQL,
+ targetXLJXDJ, targetBJDID, sXLJXMXH, currentRuleNo,
+ aXLXH, aXLGG, aDYDJ, aXLBZ, aXLYS,
+ sDXHXLXH, sDXHXLGG, sDXHDYDJ, sDXHXLBZ);
+
+ parsedCount++;
+ }
+
+ return parsedCount;
+ }
+
+ #endregion
+
+ [AjaxMethod(AuthRequried = false)]
+ public static Result InsertXLJXGZ(XLJXGZ item, string IsCommon)
+ {
+ CMISproSession tSession = CMISproSessionManager.GetCurrentSession();
+ TDatabase dberp = null;
+ Result result = new Result();
+ string space = " ";
+ try
+ {
+ dberp = TContextDatabases.GetDatabase("DBERP");
+ dberp.BeginTrans(); // ¿ªÆôÊÂÎñ
+
+ TSQL sSQL = new TSQL(dberp);
+
+ // ¼ÓÔØµÈÐ§Ìæ»»¹æÔò
+ DataSet dsTHGZ = LoadReplaceRules(dberp);
+
+ // »ñÈ¡ÔÓйæÔò´®£¨ÓÃÓÚ²éѯÊÇ·ñÒÑ´æÔÚ£©
+ string sYGZC = string.Empty;
+ if (CMISproConvert.StrToFloat(item.XLJXGZXH) > 0)
+ {
+ sSQL.Clear();
+ sSQL.Add(" select XLJXGZ_XLJXGZC from XLJXGZ ");
+ sSQL.Add(" where XLJXGZ_XLJXDJ=:pXLJXDJ and XLJXGZ_XLJXDH=:pXLJXDH and XLJXGZ_XLJXGZXH=:pXLJXGZXH ");
+ sSQL.ParamByName("pXLJXDJ").Value = item.XLJXDJ;
+ if (IsCommon.Equals("Y"))
+ sSQL.ParamByName("pXLJXDH").Value = space;
+ else
+ sSQL.ParamByName("pXLJXDH").Value = item.XLJXDH;
+ sSQL.ParamByName("pXLJXGZXH").Value = item.XLJXGZXH;
+ DataSet dsGZC = dberp.OpenDataSet(sSQL);
+ if (dsGZC.Tables[0].Rows.Count > 0)
+ sYGZC = dsGZC.Tables[0].Rows[0][0].ToString().Trim();
+
+ // ÈôÊǸüÐÂÒÑÓйæÔò£¬ÏȽ«ÒýÓøùæÔòµÄÃ÷Ï¸ÖØÖÃΪδ½âÎö
+ ResetMXByRuleNo(dberp, sSQL, item.XLJXDJ, item.XLJXDH, item.XLJXGZXH);
+ }
+
+ // Ó¦ÓùæÔòµ½ËùÓÐδ½âÎöÐУ»Ê״γɹ¦½âÎöʱ²Å±£´æ¹æÔò
+ string ruleNoToApply = item.XLJXGZXH;
+ double fNewXLJXGZXH = 0;
+ ApplyRuleToMXRows(dberp, sSQL, item, dsTHGZ, item.XLJXDH, item.XLJXDJ, ruleNoToApply, delegate {
+ fNewXLJXGZXH = SaveOrUpdateRule(dberp, sSQL, item, IsCommon, sYGZC, tSession);
+ SaveSyntaxToXLYFGZ(dberp, sSQL, item, tSession);
+ return fNewXLJXGZXH > 0 ? fNewXLJXGZXH.ToString() : item.XLJXGZXH;
+ });
+
+ dberp.CommitTrans();
+
+ result.success = true;
+ result.msg = fNewXLJXGZXH.ToString();
+ return result;
+ }
+ catch (Exception ex)
+ {
+ // ·¢ÉúÒ쳣ʱ»Ø¹öÊÂÎñ
+ if (dberp != null && dberp.InTransaction)
+ {
+ dberp.RollbackTrans();
+ }
+
+ // ¼Ç¼´íÎóÈÕÖ¾
+
+ result.success = false;
+ result.msg = "½âÎöʧ°Ü: " + ex.Message;
+ return result;
+ }
+ finally
+ {
+
+ }
+ }
+ [AjaxMethod(AuthRequried = false)]
+ public static Result commonParse(string BJDID)
+ {
+ TDatabase dberp = null;
+ Result result = new Result();
+ try
+ {
+ dberp = TContextDatabases.GetDatabase("DBERP");
+ dberp.BeginTrans(); // ¿ªÆôÊÂÎñ
+
+ TSQL sSQL = new TSQL(dberp);
+
+ // ¼ÓÔØµÈÐ§Ìæ»»¹æÔò
+ DataSet dsTHGZ = LoadReplaceRules(dberp);
+
+ // ¼ÓÔØÍ¨ÓùæÔò + µ±Ç°±¨¼Ûµ¥¹æÔò
+ List xljxgzList = new List();
+ xljxgzList.AddRange(GetXLJXGZList("XSBJ", " "));
+ xljxgzList.AddRange(GetXLJXGZList("XSBJ", BJDID));
+
+ // ÒÀ´ÎÓ¦ÓÃÿÌõ¹æÔò
+ foreach (XLJXGZ item in xljxgzList)
+ {
+ ApplyRuleToMXRows(dberp, sSQL, item, dsTHGZ, BJDID, "XSBJ", item.XLJXGZXH, null);
+ }
+
+ dberp.CommitTrans();
+ result.msg = "-1";
+ result.success = true;
+
+ return result;
+ }
+ catch (Exception ex)
+ {
+ // ·¢ÉúÒ쳣ʱ»Ø¹öÊÂÎñ
+ if (dberp != null && dberp.InTransaction)
+ {
+ dberp.RollbackTrans();
+ }
+
+ // ¼Ç¼´íÎóÈÕÖ¾
+
+ result.success = false;
+ result.msg = "½âÎöʧ°Ü: " + ex.Message;
+ return result;
+ }
+ finally
+ {
+
+ }
+ }
+
+
+ [AjaxMethod(AuthRequried = false)]
+ public static XLJXJG XLYSTZJX(XLJXGZ item, string sXLBSC)
+ {
+ XLJXJG jxjg = new XLJXJG();
+
+ string aXLXH = "";
+ string aXLGG = "";
+ string aDYDJ = "";
+ string aXLBZ = "";
+ string aXLYS = "";
+
+ string sXLJXGZ = item.XLJXGZC;
+ string sYFXH = item.XLXHYFC.Replace("ÐͺÅÂë", "A").Replace("ǰ׺Âë", "B").Replace("ºó׺Âë", "C");
+ string sYFGG = item.XLGGYFC.Replace("½ØÃæ", "A").Replace("оÊý", "B").Replace("Ïß¶ÔÊý", "C").Replace("Ïß×éÊý", "D");
+ string sYFDYDJ = item.DYDJYFC.Replace("Ïàµçѹ", "A").Replace("Ïßµçѹ", "B").Replace("µçѹµ¥Î»", "C").Replace("Ïß×éÊý", "D");
+ string sYFBZ = item.XLBZYFC.Replace("±ê×¼Ãû", "A");
+ TXLJXGZ xljxgz = new TXLJXGZ();
+ if (xljxgz.LoadGZ(sXLJXGZ, sYFXH, sYFGG, sYFDYDJ, sYFBZ, ""))
+ {
+ if (xljxgz.XLYSJX(sXLBSC, out aXLXH, out aXLGG, out aDYDJ, out aXLBZ, out aXLYS))
+ {
+ jxjg.XLXH = aXLXH;
+ jxjg.XLGG = aXLGG;
+ jxjg.XLBZ = aXLBZ;
+ jxjg.DYDJ = aDYDJ;
+ }
+ }
+
+ return jxjg;
+ }
+
+ [AjaxMethod(AuthRequried = false)]
+ public static JXPZInfo GetJXPZ(XLJXMX item)
+ {
+ JXPZInfo jxjg = new JXPZInfo();
+
+ XLJXGZ jxgz = GetXLJXGZ(item.XLJXDJ, item.XLJXDH, item.XLJXGZXH);
+ string aXLXH = item.XLXHID;
+ string aXLGG = item.XLGGID;
+ string aDYDJ = item.DYDJID;
+ string aXLBZ = item.XLBZID;
+
+ string sXLJXGZ = jxgz.XLJXGZC;
+ string sYFXH = jxgz.XLXHYFC;
+ string sYFGG = jxgz.XLGGYFC;
+ string sYFDYDJ = jxgz.DYDJYFC;
+ string sYFBZ = jxgz.XLBZYFC;
+ string sNewJXGZ = string.Empty;
+ if (CMISproConvert.StrToFloat(item.XLJXGZXH) == 0 || string.IsNullOrEmpty(sXLJXGZ))
+ {
+ jxjg.XLJXGZC = item.XLBSC;
+ }
+ else
+ {
+ TXLJXGZ xljxgz = new TXLJXGZ();
+
+ if (xljxgz.LoadGZ(sXLJXGZ, sYFXH, sYFGG, sYFDYDJ, sYFBZ, ""))
+ {
+ sNewJXGZ = xljxgz.ProdGZC(item.XLBSC);
+ if (string.IsNullOrEmpty(sNewJXGZ))
+ {
+ jxjg.XLJXGZC = sXLJXGZ;
+ }
+ else
+ jxjg.XLJXGZC = sNewJXGZ;
+ }
+ }
+ jxjg.XLXHYFC = sYFXH.Replace("A", "ÐͺÅÂë").Replace("B", "ǰ׺Âë").Replace("C", "ºó׺Âë");
+ jxjg.XLGGYFC = sYFGG.Replace("A", "½ØÃæ").Replace("B", "оÊý").Replace("C", "Ïß¶ÔÊý").Replace("D", "Ïß×éÊý");
+ jxjg.XLBZYFC = sYFBZ.Replace("A", "±ê×¼Ãû");
+ jxjg.DYDJYFC = sYFDYDJ.Replace("A", "Ïàµçѹ").Replace("B", "Ïßµçѹ").Replace("C", "µçѹµ¥Î»");
+
+ jxjg.XLXH = aXLXH;
+
+ jxjg.XLGG = aXLGG;
+ jxjg.XLBZ = aXLBZ;
+ jxjg.DYDJ = aDYDJ;
+ return jxjg;
+ }
+
+
+ private static int GetMaxDRHHForBJD(TDatabase dberp, string sBJDID)
+ {
+ TSQL sSQL = new TSQL(dberp);
+ sSQL.Clear();
+ sSQL.Add("select isnull(max(XLXSBJDMX_DRHH),0) as MAXDRHH from XLXSBJDMX where XLXSBJDMX_BJDID=:pBJDID");
+ sSQL.ParamByName("pBJDID").Value = sBJDID;
+ DataSet ds = dberp.OpenDataSet(sSQL);
+ if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
+ return CMISproConvert.StrToInt(ds.Tables[0].Rows[0]["MAXDRHH"].ToString().Trim(), 0);
+ return 0;
+ }
+
+ private static int GetNextXLJXMXH(TDatabase dberp, string sBJDID)
+ {
+ int maxJXMXH = 0;
+ TSQL sSQL = new TSQL(dberp);
+ sSQL.Clear();
+ sSQL.Add("select top 1 XLJXMX_XLJXMXH as MAXJXMXH from XLJXMX");
+ sSQL.Add(" where XLJXMX_XLJXDJ='XSBJ' and XLJXMX_XLJXDH=:pBJDID");
+ sSQL.Add(" order by len(XLJXMX_XLJXMXH) desc, XLJXMX_XLJXMXH desc");
+ sSQL.ParamByName("pBJDID").Value = sBJDID;
+ DataSet ds = dberp.OpenDataSet(sSQL);
+ if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
+ maxJXMXH = CMISproConvert.StrToInt(SafeTrim(ds.Tables[0].Rows[0]["MAXJXMXH"]), 0);
+ int maxDRHH = GetMaxDRHHForBJD(dberp, sBJDID);
+ return Math.Max(maxJXMXH, maxDRHH) + 1;
+ }
+
+ private static int GetBJDMXXHByDRHH(TDatabase dberp, string sBJDID, int iDRHH)
+ {
+ if (iDRHH <= 0)
+ return -1;
+ TSQL sSQL = new TSQL(dberp);
+ sSQL.Clear();
+ sSQL.Add("select XLXSBJDMX_XH from XLXSBJDMX where XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_DRHH=:pDRHH");
+ sSQL.ParamByName("pBJDID").Value = sBJDID;
+ sSQL.ParamByName("pDRHH").Value = iDRHH;
+ DataSet ds = dberp.OpenDataSet(sSQL);
+ if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
+ return CMISproConvert.StrToInt(ds.Tables[0].Rows[0]["XLXSBJDMX_XH"].ToString().Trim(), -1);
+ return -1;
+ }
+
+ private static string ResolveJXXLBZID(XLJXMX item, Dictionary dicBZ)
+ {
+ if (dicBZ.ContainsKey(item.JXXLBZID))
+ return dicBZ[item.JXXLBZID];
+ if (!string.IsNullOrEmpty(item.JXXLBZID))
+ {
+ string sBZID = GetBZID(item.JXXLBZID);
+ dicBZ.Add(item.JXXLBZID, sBZID);
+ return sBZID;
+ }
+ return " ";
+ }
+
+ private static void MarkXLJXMXImported(TDatabase dberp, TSQL sSQL, XLJXMX item)
+ {
+ sSQL.Clear();
+ sSQL.Add(@" update XLJXMX set XLJXMX_DCZT='Y'
+ WHERE XLJXMX_XLJXDJ=:pXLJXDJ and XLJXMX_XLJXDH=:pXLJXDH and XLJXMX_XLJXMXH=:pXLJXMXH ");
+ sSQL.ParamByName("pXLJXDJ").Value = item.XLJXDJ;
+ sSQL.ParamByName("pXLJXDH").Value = item.XLJXDH;
+ sSQL.ParamByName("pXLJXMXH").Value = item.XLJXMXH;
+ dberp.ExecSQL(sSQL);
+ }
+
+ [AjaxMethod(AuthRequried = false)]
+ public static Result InsertBJDMX(List items, string sBJDID)
+ {
+ //Ô¶³ÌµçÀÂ
+ if (SystemUtils.GetSysId().Equals("0510011201"))
+ {
+ return YCDLService.InsertBJDMX(items, sBJDID);
+ }
+ CMISproSession tSession = CMISproSessionManager.GetCurrentSession();
+ string sURL = tSession.GetOption(102855002, "BJAI001");
+
+ if (SystemUtils.GetSysId().Equals("0769000102") && !string.IsNullOrEmpty(sURL) && sURL != "ÎÞ")
+ {
+ return GenJNXJD(sURL, items, tSession.UserId, sBJDID);
+ }
+
+ TDatabase dberp = null;
+ BJXX bjd = GetBJDXX(sBJDID);
+ dberp = TContextDatabases.GetDatabase("DBERP");
+ Result result = new Result();
+ TSQL sSQL = new TSQL(dberp);
+ Dictionary dicBZ = new Dictionary();
+ try
+ {
+ if (items == null || items.Count == 0)
+ {
+ result.success = false;
+ result.msg = "ûÓпɵ¼ÈëµÄÊý¾Ý";
+ return result;
+ }
+
+ Dictionary seenJXMXH = new Dictionary();
+ foreach (XLJXMX item in items)
+ {
+ string sJXMXH = SafeTrim(item.XLJXMXH);
+ if (string.IsNullOrEmpty(sJXMXH))
+ {
+ result.success = false;
+ result.msg = "´æÔڿյĽâÎöÐòºÅ£¬ÎÞ·¨µ¼Èë";
+ return result;
+ }
+ if (seenJXMXH.ContainsKey(sJXMXH))
+ {
+ result.success = false;
+ result.msg = "½âÎöÐòºÅÖØ¸´£º" + sJXMXH + "£¬Çë¼ì²éºóÖØÊÔ";
+ return result;
+ }
+ seenJXMXH[sJXMXH] = true;
+ }
+
+ int maxXH = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XH",
+ " XLXSBJDMX_BJDID='" + sBJDID + "'");
+ int sequence = maxXH + 1;
+ int insertCount = 0;
+ int updateCount = 0;
+ int minCalcXH = int.MaxValue;
+
+ List insertMXEntityList = new List();
+ List insertMXList = new List();
+ Dictionary dicYSID = new Dictionary();
+
+ foreach (XLJXMX item in items)
+ {
+ int iDRHH = CMISproConvert.StrToInt(SafeTrim(item.XLJXMXH), 0);
+ if (iDRHH <= 0)
+ throw new Exception("ÎÞЧµÄ½âÎöÐòºÅ£º" + item.XLJXMXH);
+
+ string sXLBZID = ResolveJXXLBZID(item, dicBZ);
+ string sBJCP = XLBJDUtils.GroupBJCPXX(item.JXXLXHID, item.JXXLGGID.Replace("¡Á", "*"), item.JXDYDJID);
+ string sXLXHID = SafeTrim(item.JXXLXHID);
+ if (string.IsNullOrEmpty(sXLXHID)) sXLXHID = " ";
+ string sXLGGID = SafeTrim(item.JXXLGGID.Replace("¡Á", "*"));
+ if (string.IsNullOrEmpty(sXLGGID)) sXLGGID = " ";
+ string sDYDJID = SafeTrim(item.JXDYDJID);
+ if (string.IsNullOrEmpty(sDYDJID)) sDYDJID = " ";
+ string sJLDW = string.IsNullOrEmpty(item.JLDW) ? tSession.GetOption(100860000, "BJU003") : item.JLDW;
+ double fBJSL = CMISproConvert.StrToFloat(item.SL);
+
+ string sYSID;
+ if (!dicYSID.TryGetValue(sXLXHID, out sYSID))
+ {
+ sYSID = GetDefaultYSID(item.JXXLXHID, "", "");
+ dicYSID[sXLXHID] = sYSID;
+ }
+
+ bool isReimport = SafeTrim(item.DCZT).Equals("Y");
+ int existingXH = -1;
+ if (isReimport)
+ existingXH = GetBJDMXXHByDRHH(dberp, sBJDID, iDRHH);
+ if (isReimport && existingXH > 0)
+ {
+ sSQL.Clear();
+ sSQL.Add(@" update XLXSBJDMX set ");
+ sSQL.Add(" XLXSBJDMX_BJCP=:pBJCP, ");
+ sSQL.Add(" XLXSBJDMX_JLDW=:pJLDW, ");
+ sSQL.Add(" XLXSBJDMX_XLXHID=:pXLXHID, ");
+ sSQL.Add(" XLXSBJDMX_XDXLXHID=:pXLXHID, ");
+ sSQL.Add(" XLXSBJDMX_XLGGID=:pXLGGID, ");
+ sSQL.Add(" XLXSBJDMX_XLBZID=:pXLBZID, ");
+ sSQL.Add(" XLXSBJDMX_XDXLBZID=:pXLBZID, ");
+ sSQL.Add(" XLXSBJDMX_DYDJID=:pDYDJID, ");
+ sSQL.Add(" XLXSBJDMX_XLYSID=:pYSID, ");
+ sSQL.Add(" XLXSBJDMX_BJSL=:pBJSL, ");
+ sSQL.Add(" XLXSBJDMX_FBH=:FBH, ");
+ sSQL.Add(" XLXSBJDMX_JSGFSID=:JSGFSID, ");
+ sSQL.Add(" XLXSBJDMX_DRHH=:pDRHH, ");
+ sSQL.Add(" XLXSBJDMX_WHR=:WHR, ");
+ sSQL.Add(" XLXSBJDMX_WHRID=:WHRID, ");
+ sSQL.Add(" XLXSBJDMX_WHSJ=:WHSJ ");
+ sSQL.Add(" where XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_XH=:pXH ");
+ sSQL.ParamByName("pBJDID").Value = sBJDID;
+ sSQL.ParamByName("pXH").Value = existingXH;
+ sSQL.ParamByName("pDRHH").Value = iDRHH;
+ sSQL.ParamByName("pBJCP").Value = sBJCP;
+ sSQL.ParamByName("pJLDW").Value = sJLDW;
+ sSQL.ParamByName("pXLXHID").Value = sXLXHID;
+ sSQL.ParamByName("pXLGGID").Value = sXLGGID;
+ sSQL.ParamByName("pXLBZID").Value = sXLBZID;
+ sSQL.ParamByName("pDYDJID").Value = sDYDJID;
+ sSQL.ParamByName("pYSID").Value = sYSID;
+ sSQL.ParamByName("pBJSL").Value = fBJSL;
+ sSQL.ParamByName("FBH").Value = item.FBH;
+ sSQL.ParamByName("JSGFSID").Value = item.JSGFID;
+ sSQL.ParamByName("WHR").Value = tSession.UserName;
+ sSQL.ParamByName("WHRID").Value = tSession.UserId;
+ sSQL.ParamByName("WHSJ").Value = DateTime.Now;
+ dberp.ExecSQL(sSQL);
+ updateCount++;
+ if (existingXH < minCalcXH)
+ minCalcXH = existingXH;
+
+ MarkXLJXMXImported(dberp, sSQL, item);
+ }
+ else
+ {
+ int newXH = sequence;
+ XLXSBJDMXEntity mxEntity = new XLXSBJDMXEntity();
+ mxEntity.BJDID = sBJDID;
+ mxEntity.XH = newXH;
+ mxEntity.XSSX = sequence;
+ mxEntity.BJCP = sBJCP;
+ mxEntity.JLDW = sJLDW;
+ mxEntity.XLXHID = sXLXHID;
+ mxEntity.XDXLXHID = sXLXHID;
+ mxEntity.XLGGID = sXLGGID;
+ mxEntity.XLBZID = sXLBZID;
+ mxEntity.XDXLBZID = sXLBZID;
+ mxEntity.DYDJID = sDYDJID;
+ mxEntity.XLYSID = sYSID;
+ mxEntity.WHR = tSession.UserName;
+ mxEntity.WHRID = tSession.UserId;
+ mxEntity.WHSJ = DateTime.Now;
+ mxEntity.BJSL = fBJSL;
+ mxEntity.FBH = item.FBH;
+ mxEntity.JSGFSID = item.JSGFID;
+ mxEntity.DRHH = iDRHH;
+ insertMXEntityList.Add(mxEntity);
+ insertMXList.Add(item);
+ sequence++;
+ insertCount++;
+ if (newXH < minCalcXH)
+ minCalcXH = newXH;
+ }
+ }
+
+ if (insertMXEntityList.Count > 0)
+ {
+ dberp.BulkInsertByReader(insertMXEntityList, "XLXSBJDMX");
+
+ foreach (XLJXMX item in insertMXList)
+ {
+ MarkXLJXMXImported(dberp, sSQL, item);
+ }
+ }
+
+ if (insertCount == 0 && updateCount == 0)
+ {
+ result.success = false;
+ result.msg = "ûÓпɵ¼ÈëµÄÓÐЧÊý¾Ý";
+ return result;
+ }
+
+ dberp.BeginTrans();
+ XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLXSBJDMX_Batch(dberp, tSession, sBJDID);
+ MatchForXLBZIDAndDYDJID(dberp, sSQL, bjd.JGBID, sBJDID, tSession);
+ string sErrorNum = string.Empty;
+ if (minCalcXH != int.MaxValue)
+ {
+ XLBJDCalcUtils.CalcBJDMXAfterIns(dberp, sSQL, sBJDID, minCalcXH, tSession.GetOption(100860000, "BJU002"), tSession.GetOption(100860000, "BJU003"), tSession.GetOption(100860000, "BJU018"), tSession.UserId, tSession.UserName, ref sErrorNum);
+ }
+ if (!string.IsNullOrEmpty(sErrorNum))
+ throw new Exception(sErrorNum);
+
+ dberp.CommitTrans();
+
+ result.success = true;
+ result.msg = string.Format("³É¹¦µ¼È룺ÐÂÔö{0}Ìõ£¬¸²¸Ç{1}Ìõ", insertCount, updateCount);
+ return result;
+ }
+ catch (Exception ex)
+ {
+ if (dberp != null && dberp.InTransaction)
+ {
+ dberp.RollbackTrans();
+ }
+
+ result.success = false;
+ result.msg = "µ¼È뱨¼Ûµ¥Ã÷ϸʧ°Ü: " + ex.Message;
+ return result;
+ }
+ finally
+ {
+
+ }
+ }
+
+
+ public static Result GenJNXJD(string sURL, List items, string sUSERGH, string sBJDID)
+ {
+ Result rs = new Result();
+ XJDInfo xjd = new XJDInfo();
+ xjd.userName = sUSERGH;
+ string sEEOR = string.Empty;
+ foreach (XLJXMX info in items)
+ {
+ XJDMX mx = new XJDMX();
+ mx.XLWBBJDMX_XLXHID = info.JXXLXHID;
+ mx.XLWBBJDMX_XLGGID = info.JXXLGGID;
+ mx.XLWBBJDMX_DYDJID = info.JXDYDJID;
+ mx.XLWBBJDMX_XLBZID = info.JXXLBZID;
+ mx.XLWBBJDMX_YS = info.JXXLYSID;
+ mx.XLWBBJDMX_JLDW = info.JLDW;
+ mx.XLWBBJDMX_BJDH = sBJDID;
+ mx.YSCP = info.XLBSC;
+ mx.XLWBBJDMX_DRHH = info.XLJXMXH;
+ mx.XLWBBJDMX_BJSL = CMISproConvert.StrToFloat(info.SL);
+
+
+
+ xjd.quoteList.Add(mx);
+
+ }
+ JavaScriptSerializer jsConvert = new JavaScriptSerializer();
+ string sParams = jsConvert.Serialize(xjd);
+ //·¢ÆðÇëÇó
+ Uri uri = new Uri(sURL);
+ WebRequest webRequest = WebRequest.Create(uri);
+ webRequest.ContentType = "application/json;charset=utf-8";
+ webRequest.Method = "POST";
+ using (Stream requestStream = webRequest.GetRequestStream())
+ {
+ byte[] paramBytes = Encoding.UTF8.GetBytes(sParams.ToString());
+ requestStream.Write(paramBytes, 0, paramBytes.Length);
+ }
+ string result = string.Empty;
+ WebResponse webResponse = webRequest.GetResponse();
+ using (StreamReader myStreamReader = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8))
+ {
+ result = myStreamReader.ReadToEnd();
+ }
+ ResultData resultObj = jsConvert.Deserialize(result);
+ if (resultObj.code == "200")
+ {
+ rs.success = true;
+ rs.msg = resultObj.msg;
+ return rs;
+ }
+ else
+ {
+ rs.success = false;
+ rs.msg = "µ¼Èëѯ¼Ûµ¥Ê§°Ü£¬ÔÒò£º" + resultObj.msg;
+ return rs;
+ }
+ }
+
+ [AjaxMethod(AuthRequried = false)]
+ public static List GetXLXHYFList(string sXLJXGZC)
+ {
+ List list = new List();
+ TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
+ TSQL sSQL = new TSQL(dberp);
+ string sBSC = GetBSC(sXLJXGZC);
+ // »ñÈ¡ÐͺŹæÔòÊý¾Ý
+ sSQL.Clear();
+ sSQL.Add("select replace(replace(replace(XLYFGZ_XLYFYFC,'[A','[ÐͺÅÂë'),'[B','[ǰ׺Âë'),'[C','[ºó׺Âë') as XLYFYFC ");
+ sSQL.Add("from XLYFGZ where XLYFGZ_XLYFFL='1' ");
+ sSQL.Add("and XLYFGZ_XLYFCPH='" + XLYSJXUtils.ProdCPH_XLXH(sBSC) + "' ");
+ sSQL.Add("and XLYFGZ_XLYFCXH='" + XLYSJXUtils.ProdCXH_XLXH(sBSC) + "' ");
+ sSQL.Add("order by XLYFGZ_XH,XLYFGZ_XLYFYFC");
+
+ DataSet ds = dberp.OpenDataSet(sSQL);
+ if (ds.Tables[0].Rows.Count > 0)
+ {
+ for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
+ {
+ CodeClass code = new CodeClass();
+ code.code = ds.Tables[0].Rows[i]["XLYFYFC"].ToString().Trim();
+ code.message = ds.Tables[0].Rows[i]["XLYFYFC"].ToString().Trim();
+ list.Add(code);
+ }
+ }
+
+ // Ìí¼ÓĬÈÏÐͺŹæÔò
+ string sMRYFC = GetMRYFC("XLXH", XLYSJXUtils.ProdCPH_XLXH(sBSC), XLYSJXUtils.ProdCXH_XLXH(sBSC));
+ if (!string.IsNullOrEmpty(sMRYFC.Trim()))
+ {
+ CodeClass code = new CodeClass();
+ code.code = sMRYFC.Trim();
+ code.message = sMRYFC.Trim();
+ list.Insert(0, code);
+ }
+
+ return list;
+ }
+
+ [AjaxMethod(AuthRequried = false)]
+ public static List GetXLGGYFList(string sXLJXGZC)
+ {
+ List list = new List();
+ TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
+ TSQL sSQL = new TSQL(dberp);
+ string sBSC = GetBSC(sXLJXGZC);
+
+ sSQL.Clear();
+ sSQL.Add("select replace(replace(replace(replace(XLYFGZ_XLYFYFC,'[A','[½ØÃæ'),'[B','[оÊý'),'[C','[Ïß¶ÔÊý'),'[D','[Ïß×éÊý') as XLYFYFC ");
+ sSQL.Add("from XLYFGZ where XLYFGZ_XLYFFL='2' ");
+ sSQL.Add("and XLYFGZ_XLYFCPH='" + XLYSJXUtils.ProdCPH_XLGG(sBSC) + "' ");
+ sSQL.Add("and XLYFGZ_XLYFCXH='" + XLYSJXUtils.ProdCXH_XLGG(sBSC) + "' ");
+ sSQL.Add("order by XLYFGZ_XH,XLYFGZ_XLYFYFC");
+
+ DataSet ds = dberp.OpenDataSet(sSQL);
+ if (ds.Tables[0].Rows.Count > 0)
+ {
+ for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
+ {
+ CodeClass code = new CodeClass();
+ code.code = ds.Tables[0].Rows[i]["XLYFYFC"].ToString().Trim();
+ code.message = ds.Tables[0].Rows[i]["XLYFYFC"].ToString().Trim();
+ list.Add(code);
+ }
+ }
+
+ string sMRYFC = GetMRYFC("XLGG", XLYSJXUtils.ProdCPH_XLGG(sBSC), XLYSJXUtils.ProdCXH_XLGG(sBSC));
+ if (!string.IsNullOrEmpty(sMRYFC.Trim()))
+ {
+ CodeClass code = new CodeClass();
+ code.code = sMRYFC.Trim();
+ code.message = sMRYFC.Trim();
+ list.Insert(0, code);
+ }
+
+ return list;
+ }
+
+ [AjaxMethod(AuthRequried = false)]
+ public static List GetDYDJYFList(string sXLJXGZC)
+ {
+ List list = new List();
+ TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
+ TSQL sSQL = new TSQL(dberp);
+ string sBSC = GetBSC(sXLJXGZC);
+
+ sSQL.Clear();
+ sSQL.Add("select replace(replace(replace(XLYFGZ_XLYFYFC,'[A','[Ïàµçѹ'),'[B','[Ïßµçѹ'),'[C','[µçѹµ¥Î»') as XLYFYFC ");
+ sSQL.Add("from XLYFGZ where XLYFGZ_XLYFFL='3' ");
+ sSQL.Add("and XLYFGZ_XLYFCPH='" + XLYSJXUtils.ProdCPH_DYDJ(sBSC) + "' ");
+ sSQL.Add("and XLYFGZ_XLYFCXH='" + XLYSJXUtils.ProdCXH_DYDJ(sBSC) + "' ");
+ sSQL.Add("order by XLYFGZ_XH,XLYFGZ_XLYFYFC");
+
+ DataSet ds = dberp.OpenDataSet(sSQL);
+ if (ds.Tables[0].Rows.Count > 0)
+ {
+ for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
+ {
+ CodeClass code = new CodeClass();
+ code.code = ds.Tables[0].Rows[i]["XLYFYFC"].ToString().Trim();
+ code.message = ds.Tables[0].Rows[i]["XLYFYFC"].ToString().Trim();
+ list.Add(code);
+ }
+ }
+
+ string sMRYFC = GetMRYFC("DYDJ", XLYSJXUtils.ProdCPH_DYDJ(sBSC), XLYSJXUtils.ProdCXH_DYDJ(sBSC));
+ if (!string.IsNullOrEmpty(sMRYFC.Trim()))
+ {
+ CodeClass code = new CodeClass();
+ code.code = sMRYFC.Trim();
+ code.message = sMRYFC.Trim();
+ list.Insert(0, code);
+ }
+
+ return list;
+ }
+
+ [AjaxMethod(AuthRequried = false)]
+ public static List GetXLBZYFList(string sXLJXGZC)
+ {
+ List list = new List();
+ TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
+ TSQL sSQL = new TSQL(dberp);
+ string sBSC = GetBSC(sXLJXGZC);
+
+ sSQL.Clear();
+ sSQL.Add("select replace(XLYFGZ_XLYFYFC,'[A','[±ê×¼Ãû') as XLYFYFC ");
+ sSQL.Add("from XLYFGZ where XLYFGZ_XLYFFL='4' ");
+ sSQL.Add("and XLYFGZ_XLYFCPH='" + XLYSJXUtils.ProdCPH_XLBZ(sBSC) + "' ");
+ sSQL.Add("and XLYFGZ_XLYFCXH='" + XLYSJXUtils.ProdCXH_XLBZ(sBSC) + "' ");
+ sSQL.Add("order by XLYFGZ_XH,XLYFGZ_XLYFYFC");
+
+ DataSet ds = dberp.OpenDataSet(sSQL);
+ if (ds.Tables[0].Rows.Count > 0)
+ {
+ for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
+ {
+ CodeClass code = new CodeClass();
+ code.code = ds.Tables[0].Rows[i]["XLYFYFC"].ToString().Trim();
+ code.message = ds.Tables[0].Rows[i]["XLYFYFC"].ToString().Trim();
+ list.Add(code);
+ }
+ }
+
+ string sMRYFC = GetMRYFC("XLBZ", XLYSJXUtils.ProdCPH_XLBZ(sBSC), XLYSJXUtils.ProdCXH_XLBZ(sBSC));
+ if (!string.IsNullOrEmpty(sMRYFC.Trim()))
+ {
+ CodeClass code = new CodeClass();
+ code.code = sMRYFC.Trim();
+ code.message = sMRYFC.Trim();
+ list.Insert(0, code);
+ }
+
+ return list;
+ }
+
+ [AjaxMethod(AuthRequried = false)]
+ public static string GetXHFGF()
+ {
+ CMISproSession tSession = CMISproSessionManager.GetCurrentSession();
+ return tSession.GetOption(100860140, "BJU041");
+ }
+
+ [AjaxMethod(AuthRequried = false)]
+ public static Result BatchUpdateXLJXMX(List items, string updateType, string updateValue)
+ {
+ CMISproSession tSession = CMISproSessionManager.GetCurrentSession();
+ TDatabase dberp = null;
+ Result result = new Result();
+
+ try
+ {
+ if (items == null || items.Count == 0)
+ {
+ result.success = false;
+ result.msg = "ûÓпɸüеļǼ";
+ return result;
+ }
+
+ string safeUpdateType = SafeTrim(updateType);
+ if (string.IsNullOrEmpty(safeUpdateType))
+ {
+ result.success = false;
+ result.msg = "¸üÐÂÀàÐÍÎÞЧ";
+ return result;
+ }
+
+ string safeUpdateValue = SafeTrim(updateValue);
+ if (string.IsNullOrEmpty(safeUpdateValue))
+ {
+ result.success = false;
+ result.msg = "µ÷ÕûÖµ²»ÄÜΪ¿Õ";
+ return result;
+ }
+
+ if (safeUpdateType == "spec")
+ {
+ safeUpdateValue = safeUpdateValue.Replace("¡Á", "*");
+ }
+
+ string setColumns;
+ if (safeUpdateType == "standard")
+ {
+ setColumns = "XLJXMX_XLBZID = :XLBZID, XLJXMX_JXXLBZID = :JXXLBZID, ";
+ }
+ else if (safeUpdateType == "voltage")
+ {
+ setColumns = "XLJXMX_DYDJID = :DYDJID, XLJXMX_JXDYDJID = :JXDYDJID, ";
+ }
+ else if (safeUpdateType == "model")
+ {
+ setColumns = "XLJXMX_JXXLXHID = :JXXLXHID, XLJXMX_XLXHID = :XLXHID, ";
+ }
+ else if (safeUpdateType == "spec")
+ {
+ setColumns = "XLJXMX_JXXLGGID = :JXXLGGID, XLJXMX_XLGGID = :XLGGID, ";
+ }
+ else
+ {
+ result.success = false;
+ result.msg = "²»Ö§³ÖµÄ¸üÐÂÀàÐÍ: " + safeUpdateType;
+ return result;
+ }
+
+ // °´ XLJXDJ/XLJXDH ·Ö×飬ͬһ·Ö×éÄÚÓà XLJXMXH IN (...) ÅúÁ¿¸üÐÂ
+ Dictionary> groups = new Dictionary>();
+ foreach (XLJXMX item in items)
+ {
+ string key = string.Format("{0}|{1}", GetSafeValue(item.XLJXDJ), GetSafeValue(item.XLJXDH));
+ if (!groups.ContainsKey(key))
+ {
+ groups[key] = new List();
+ }
+ groups[key].Add(item);
+ }
+
+ dberp = TContextDatabases.GetDatabase("DBERP");
+ dberp.BeginTrans();
+
+ int totalAffectedRows = 0;
+ const int MaxInListSize = 1000;
+
+ foreach (KeyValuePair> group in groups)
+ {
+ string[] keyParts = group.Key.Split('|');
+ string dj = keyParts[0] as string;
+ string dh = keyParts[1] as string;
+ List groupItems = group.Value;
+
+ for (int chunkStart = 0; chunkStart < groupItems.Count; chunkStart += MaxInListSize)
+ {
+ int chunkSize = Math.Min(MaxInListSize, groupItems.Count - chunkStart);
+
+ TSQL sSQL = new TSQL(dberp);
+ sSQL.Add(@"UPDATE XLJXMX SET ");
+ sSQL.Add(setColumns);
+ sSQL.Add("XLJXMX_WHR = :WHR, ");
+ sSQL.Add("XLJXMX_WHRID = :WHRID, ");
+ sSQL.Add("XLJXMX_WHSJ = :WHSJ ");
+ sSQL.Add("WHERE XLJXMX_XLJXDJ = :XLJXDJ ");
+ sSQL.Add("AND XLJXMX_XLJXDH = :XLJXDH ");
+ sSQL.Add("AND XLJXMX_XLJXMXH IN (");
+
+ StringBuilder inParams = new StringBuilder();
+ for (int i = 0; i < chunkSize; i++)
+ {
+ string paramName = "pMXH" + i.ToString();
+ if (i > 0)
+ {
+ inParams.Append(", ");
+ }
+ inParams.Append(":").Append(paramName);
+ sSQL.ParamByName(paramName).Value = GetSafeValue(groupItems[chunkStart + i].XLJXMXH);
+ }
+ sSQL.Add(inParams.ToString());
+ sSQL.Add(")");
+
+ if (safeUpdateType == "standard")
+ {
+ sSQL.ParamByName("XLBZID").Value = GetSafeValue(safeUpdateValue);
+ sSQL.ParamByName("JXXLBZID").Value = GetSafeValue(safeUpdateValue);
+ }
+ else if (safeUpdateType == "voltage")
+ {
+ sSQL.ParamByName("DYDJID").Value = GetSafeValue(safeUpdateValue);
+ sSQL.ParamByName("JXDYDJID").Value = GetSafeValue(safeUpdateValue);
+ }
+ else if (safeUpdateType == "model")
+ {
+ sSQL.ParamByName("JXXLXHID").Value = GetSafeValue(safeUpdateValue);
+ sSQL.ParamByName("XLXHID").Value = GetSafeValue(safeUpdateValue);
+ }
+ else if (safeUpdateType == "spec")
+ {
+ sSQL.ParamByName("JXXLGGID").Value = GetSafeValue(safeUpdateValue);
+ sSQL.ParamByName("XLGGID").Value = GetSafeValue(safeUpdateValue);
+ }
+
+ sSQL.ParamByName("WHR").Value = tSession.UserName;
+ sSQL.ParamByName("WHRID").Value = tSession.UserId;
+ sSQL.ParamByName("WHSJ").Value = DateTime.Now;
+ sSQL.ParamByName("XLJXDJ").Value = dj;
+ sSQL.ParamByName("XLJXDH").Value = dh;
+
+ totalAffectedRows += dberp.ExecSQL(sSQL);
+ }
+ }
+
+ if (totalAffectedRows == 0)
+ {
+ dberp.RollbackTrans();
+ result.success = false;
+ result.msg = "δ¸üÐÂÈκμǼ£¬ÇëÈ·ÈÏÒÑÑ¡ÖÐÓÐЧÊý¾Ý";
+ return result;
+ }
+
+ dberp.CommitTrans();
+
+ result.success = true;
+ result.msg = string.Format("³É¹¦¸üР{0} Ìõ¼Ç¼", totalAffectedRows.ToString());
+ return result;
+ }
+ catch (Exception ex)
+ {
+ if (dberp != null && dberp.InTransaction)
+ {
+ dberp.RollbackTrans();
+ }
+
+ result.success = false;
+ result.msg = "ÅúÁ¿¸üÐÂʧ°Ü: " + ex.Message;
+ return result;
+ }
+ finally
+ {
+ if (dberp != null)
+ {
+ dberp.Dispose();
+ }
+ }
+ }
+
+ #endregion
+
+
+ #region ¸¨Öú·½·¨
+
+
+ public static string GetDefaultYSID(string sXLXHID, string sXLGGID, string sXLYSID)
+ {
+ if (string.IsNullOrEmpty(sXLYSID))
+ sXLYSID = "BK";
+ CMISproSession tSession = CMISproSessionManager.GetCurrentSession();
+ TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
+ TSQL SQL = new TSQL(dberp);
+ if (tSession.GetOption(102577000, "BJU052") == "2")
+ {
+ if (!sXLXHID.Equals(""))
+ {
+ SQL.Add("select XLXSBJCPYS_XLYSID,XLXSBJCPYS_XHBBH ");
+ SQL.Add(" from XLXSBJCPYS");
+ SQL.Add(" where :pXLXH like '%'||rtrim(XLXSBJCPYS_XLJBXHID)||'%' ");
+ SQL.ParamByName("pXLXH").Value = "%" + sXLXHID + "%";
+ DataSet ds = dberp.OpenDataSet(SQL);
+ if (ds.Tables[0].Rows.Count > 0)
+ {
+ for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
+ {
+ string sXHBBH = ds.Tables[0].Rows[i]["XLXSBJCPYS_XHBBH"].ToString().Trim();
+ if (sXHBBH.Equals("") || !sXLXHID.Contains(sXHBBH))
+ sXLYSID = ds.Tables[0].Rows[i]["XLXSBJCPYS_XLYSID"].ToString().Trim();
+ }
+ }
+ }
+ }
+ else
+ {
+ if (!sXLXHID.Equals(""))
+ {
+ Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID);
+ SQL.Add("select XLXSBJCPYS_XLYSID,");
+ SQL.Add(" case WHEN XLXSBJCPYS_XLJBXHID<>' ' and XLXSBJCPYS_XXJGID<>' ' and XLXSBJCPYS_XXJGID=:pXXJGID then 1");
+ SQL.Add(" WHEN XLXSBJCPYS_XLJBXHID<>' ' and XLXSBJCPYS_XXJGID=' ' then 2");
+ SQL.Add(" WHEN XLXSBJCPYS_XLJBXHID=' ' and XLXSBJCPYS_XXJGID=' ' then 3");
+ SQL.Add(" else 9999 END AS PX,");
+ SQL.Add(" XLXSBJCPYS_XLJBXHID,XLXSBJCPYS_XXJGID");
+ SQL.Add(" from XLXSBJCPYS");
+ SQL.Add(" where 1=1");
+ SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=:pXLXHID and XLXHB_CPYT=XLXSBJCPYS_CPYT)");
+ SQL.Add(" and (XLXSBJCPYS_XLJBXHID =' '");
+ SQL.Add(" or exists(select 1 from XLXHB where XLXHB_XLXHID=:pXLXHID and XLXHB_XLJBXHID=XLXSBJCPYS_XLJBXHID)) ");
+ SQL.Add(" order by PX,XLXSBJCPYS_XLJBXHID,XLXSBJCPYS_XXJGID ");
+ SQL.ParamByName("pXLXHID").Value = sXLXHID;
+ SQL.ParamByName("pXXJGID").Value = dicXLGGB["XXJGID"];
+ DataSet ds = dberp.OpenDataSet(SQL);
+ if (ds.Tables[0].Rows.Count > 0)
+ {
+ if (!ds.Tables[0].Rows[0]["PX"].ToString().Trim().Equals("9999"))
+ {
+ sXLYSID = ds.Tables[0].Rows[0]["XLXSBJCPYS_XLYSID"].ToString().Trim();
+ }
+ }
+ }
+ }
+
+
+ return sXLYSID;
+ }
+
+
+ // ¸¨Öú·½·¨£º´¦Àí¿ÕÖµ
+ public static object GetSafeValue(string value)
+ {
+ return string.IsNullOrEmpty(value) ? " " : (object)value;
+ }
+
+ private static string GetBSC(string input)
+ {
+ if (string.IsNullOrEmpty(input))
+ return "";
+
+ StringBuilder result = new StringBuilder();
+ string pattern = @"\[([^\]=]+)=[^\]]+\]";
+
+ foreach (Match match in Regex.Matches(input, pattern))
+ {
+ // »ñÈ¡µÈºÅǰµÄ²¿·Ö²¢Ìí¼Ó·½À¨ºÅ
+ string content = match.Groups[1].Value;
+ result.AppendFormat("[{0}]", content);
+ }
+
+ return result.ToString();
+ }
+
+ private static void IntoXLYFGZ(TDatabase dberp, TSQL sSQL, string sXLYFFL, string sCPH, string sCXH, string sYFC)
+ {
+ CMISproSession tSession = CMISproSessionManager.GetCurrentSession();
+ sSQL.Clear();
+ sSQL.Add(" MERGE INTO XLYFGZ USING ");
+ sSQL.Add(" ( ");
+ sSQL.Add(" SELECT :XLYFFL AS XLYFFL, ");
+ sSQL.Add(" :XLYFCPH AS XLYFCPH, ");
+ sSQL.Add(" :XLYFCXH AS XLYFCXH, ");
+ sSQL.Add(" CONVERT(FLOAT,0) AS XH, ");
+ sSQL.Add(" :XLYFYFC AS XLYFYFC, ");
+ sSQL.Add(" :WHRID AS WHRID, ");
+ sSQL.Add(" :WHR AS WHR, ");
+ sSQL.Add(" :WHSJ AS WHSJ ");
+ sSQL.Add(" FROM IDX ");
+ sSQL.Add(" WHERE IDX_ID=1 ");
+ sSQL.Add(" ) A ");
+ sSQL.Add(" ON (XLYFGZ_XLYFFL=A.XLYFFL ");
+ sSQL.Add(" AND XLYFGZ_XLYFCPH=A.XLYFCPH ");
+ sSQL.Add(" AND XLYFGZ_XLYFCXH=A.XLYFCXH ");
+ sSQL.Add(" AND XLYFGZ_XLYFYFC=A.XLYFYFC) ");
+ sSQL.Add(" WHEN MATCHED THEN UPDATE SET ");
+ sSQL.Add(" XLYFGZ_WHRID=A.WHRID, ");
+ sSQL.Add(" XLYFGZ_WHR=A.WHR, ");
+ sSQL.Add(" XLYFGZ_WHSJ=A.WHSJ ");
+ sSQL.Add(" WHEN NOT MATCHED THEN INSERT ");
+ sSQL.Add(" ( ");
+ sSQL.Add(" XLYFGZ_XLYFFL, ");
+ sSQL.Add(" XLYFGZ_XLYFCPH, ");
+ sSQL.Add(" XLYFGZ_XLYFCXH, ");
+ sSQL.Add(" XLYFGZ_XH, ");
+ sSQL.Add(" XLYFGZ_XLYFYFC, ");
+ sSQL.Add(" XLYFGZ_WHRID, ");
+ sSQL.Add(" XLYFGZ_WHR, ");
+ sSQL.Add(" XLYFGZ_WHSJ ");
+ sSQL.Add(" ) ");
+ sSQL.Add(" VALUES ");
+ sSQL.Add(" ( ");
+ sSQL.Add(" A.XLYFFL, ");
+ sSQL.Add(" A.XLYFCPH, ");
+ sSQL.Add(" A.XLYFCXH, ");
+ sSQL.Add(" A.XH, ");
+ sSQL.Add(" A.XLYFYFC, ");
+ sSQL.Add(" A.WHRID, ");
+ sSQL.Add(" A.WHR, ");
+ sSQL.Add(" A.WHSJ ");
+ sSQL.Add(" ) ");
+ sSQL.ParamByName("XLYFFL").Value = sXLYFFL;
+ sSQL.ParamByName("XLYFCPH").Value = sCPH;
+ sSQL.ParamByName("XLYFCXH").Value = sCXH;
+ sSQL.ParamByName("XLYFYFC").Value = sYFC;
+ sSQL.ParamByName("WHR").Value = tSession.UserName;
+ sSQL.ParamByName("WHRID").Value = tSession.UserId;
+ sSQL.ParamByName("WHSJ").Value = DateTime.Now;
+ dberp.ExecSQL(sSQL);
+
+ }
+
+ private static bool IsAlphanumeric(string sBJLX, string sBJZ)
+ {
+ bool result = true;
+ if (sBJLX == "ÐͺÅÂë" || sBJLX == "ǰ׺Âë" || sBJLX == "ºó׺Âë")
+ {
+ for (int i = 0; i < sBJZ.Length; i++)
+ {
+ if (!(((sBJZ[i] >= '0') && (sBJZ[i] <= '9')) ||
+ ((sBJZ[i] >= 'a') && (sBJZ[i] <= 'z')) ||
+ ((sBJZ[i] >= 'A') && (sBJZ[i] <= 'Z'))))
+ {
+ result = false;
+ break;
+ }
+ }
+ }
+ if (sBJLX == "оÊý" || sBJLX == "Ïß¶ÔÊý" || sBJLX == "Ïß×éÊý")
+ {
+ for (int i = 0; i < sBJZ.Length; i++)
+ {
+ if (!((sBJZ[i] >= '0') && (sBJZ[i] <= '9')))
+ {
+ result = false;
+ break;
+ }
+ }
+ }
+ if (sBJLX == "½ØÃæ" || sBJLX == "Ïàµçѹ" || sBJLX == "Ïßµçѹ")
+ {
+ for (int i = 0; i < sBJZ.Length; i++)
+ {
+ if (!(((sBJZ[i] >= '0') && (sBJZ[i] <= '9')) || (sBJZ[i] == '.')))
+ {
+ result = false;
+ break;
+ }
+ }
+ }
+ if (sBJLX == "µçѹµ¥Î»")
+ {
+ for (int i = 0; i < sBJZ.Length; i++)
+ {
+ if (!(((sBJZ[i] >= 'a') && (sBJZ[i] <= 'z')) ||
+ ((sBJZ[i] >= 'A') && (sBJZ[i] <= 'Z'))))
+ {
+ result = false;
+ break;
+ }
+ }
+ }
+ return result;
+ }
+
+ public static bool BJZJY(string sBJLX, string sBJZ)
+ {
+ bool result = true;
+ if (sBJLX == "±ê×¼Ãû")
+ {
+ System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"^[\u4e00-\u9fa5a-zA-Z0-9]+$");
+ for (int i = 0; i < sBJZ.Length; i++)
+ {
+ if (!regex.IsMatch(sBJZ[i].ToString()))
+ {
+ result = false;
+ break;
+ }
+ }
+ }
+ if (sBJLX == "ÑÕÉ«Ãû")
+ {
+ System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"^[\u4e00-\u9fa5]+$");
+ for (int i = 0; i < sBJZ.Length; i++)
+ {
+ if (!regex.IsMatch(sBJZ[i].ToString()))
+ {
+ result = false;
+ break;
+ }
+ }
+ }
+ return result;
+ }
+
+ public static string GetMRYFC(string sYFLX, string sCPH, string sCXH)
+ {
+ string sYFC = "";
+ string sCXH_TMP = sCXH;
+ string sCXH_TMP2 = "";
+ string sCXH_TMP3 = "";
+
+ if (sYFLX.Trim() == "XLXH")
+ {
+ sYFC = "";
+ sCXH_TMP = sCXH;
+ while (sCXH_TMP.IndexOf("B") >= 0)
+ {
+ sYFC += "[" + sCXH_TMP.Substring(sCXH_TMP.IndexOf("B"), 2).Replace("B", "ǰ׺Âë") + "]";
+ sCXH_TMP = sCXH_TMP.Substring(sCXH_TMP.IndexOf("B") + 2);
+ }
+ sCXH_TMP = sCXH;
+ while (sCXH_TMP.IndexOf("A") >= 0)
+ {
+ sYFC += "[" + sCXH_TMP.Substring(sCXH_TMP.IndexOf("A"), 2).Replace("A", "ÐͺÅÂë") + "]";
+ sCXH_TMP = sCXH_TMP.Substring(sCXH_TMP.IndexOf("A") + 2);
+ }
+ sCXH_TMP = sCXH;
+ while (sCXH_TMP.IndexOf("C") >= 0)
+ {
+ sYFC += "[" + sCXH_TMP.Substring(sCXH_TMP.IndexOf("C"), 2).Replace("C", "ºó׺Âë") + "]";
+ sCXH_TMP = sCXH_TMP.Substring(sCXH_TMP.IndexOf("C") + 2);
+ }
+
+ return sYFC;
+ }
+ else if (sYFLX.Trim() == "XLGG")
+ {
+ sYFC = "";
+ sCXH_TMP = sCXH;
+ if (sCPH == "A1")
+ {
+ if (sCXH_TMP.IndexOf("A") >= 0)
+ sYFC = "[½ØÃæa]";
+ }
+ else if (sCPH == "A2")
+ {
+ if (sCXH_TMP.IndexOf("A") >= 0)
+ sYFC = "[½ØÃæa]/[½ØÃæb]";
+ }
+ else if (sCPH == "A1B1")
+ {
+ if ((sCXH_TMP.IndexOf("B") >= 0) && (sCXH_TMP.IndexOf("A") >= 0))
+ sYFC = "[" + sCXH_TMP.Substring(sCXH_TMP.IndexOf("B"), 2).Replace("B", "оÊý") + "]*[" + sCXH_TMP.Substring(sCXH_TMP.IndexOf("A"), 2).Replace("A", "½ØÃæ") + "]";
+ }
+ else if (sCPH == "A1B2")
+ {
+ sCXH_TMP2 = sCXH_TMP.Substring(sCXH_TMP.IndexOf("A") + 2);
+ if ((sCXH_TMP.IndexOf("B") >= 0) && (sCXH_TMP.IndexOf("A") >= 0) && (sCXH_TMP2.IndexOf("A") >= 0))
+ sYFC = "[" + sCXH_TMP.Substring(sCXH_TMP.IndexOf("B"), 2).Replace("B", "оÊý") + "]*[" + sCXH_TMP.Substring(sCXH_TMP.IndexOf("A"), 2).Replace("A", "½ØÃæ") + "]"
+ + "+[" + sCXH_TMP.Substring(sCXH_TMP.IndexOf("B"), 2).Replace("B", "оÊý") + "]*[" + sCXH_TMP2.Substring(sCXH_TMP2.IndexOf("A"), 2).Replace("A", "½ØÃæ") + "]";
+ }
+ else if (sCPH == "A2B2")
+ {
+ sCXH_TMP2 = sCXH_TMP.Substring(sCXH_TMP.IndexOf("A") + 2);
+ sCXH_TMP3 = sCXH_TMP.Substring(sCXH_TMP.IndexOf("B") + 2);
+ if ((sCXH_TMP.IndexOf("B") >= 0) && (sCXH_TMP.IndexOf("A") >= 0) && (sCXH_TMP3.IndexOf("B") >= 0) && (sCXH_TMP2.IndexOf("A") >= 0))
+ sYFC = "[" + sCXH_TMP.Substring(sCXH_TMP.IndexOf("B"), 2).Replace("B", "оÊý") + "]*[" + sCXH_TMP.Substring(sCXH_TMP.IndexOf("A"), 2).Replace("A", "½ØÃæ") + "]"
+ + "+[" + sCXH_TMP3.Substring(sCXH_TMP3.IndexOf("B"), 2).Replace("B", "оÊý") + "]*[" + sCXH_TMP2.Substring(sCXH_TMP2.IndexOf("A"), 2).Replace("A", "½ØÃæ") + "]";
+ }
+ else if (sCPH == "A1B1C1")
+ {
+ if ((sCXH_TMP.IndexOf("A") >= 0) && (sCXH_TMP.IndexOf("B") >= 0) && (sCXH_TMP.IndexOf("C") >= 0))
+ sYFC = "[" + sCXH_TMP.Substring(sCXH_TMP.IndexOf("C"), 2).Replace("C", "Ïß¶ÔÊý") + "]*[" + sCXH_TMP.Substring(sCXH_TMP.IndexOf("B"), 2).Replace("B", "оÊý") + "]"
+ + "*[" + sCXH_TMP.Substring(sCXH_TMP.IndexOf("A"), 2).Replace("A", "½ØÃæ") + "]";
+ }
+ else if (sCPH == "A1B1D1")
+ {
+ if ((sCXH_TMP.IndexOf("A") >= 0) && (sCXH_TMP.IndexOf("B") >= 0) && (sCXH_TMP.IndexOf("D") >= 0))
+ sYFC = "[" + sCXH_TMP.Substring(sCXH_TMP.IndexOf("D"), 2).Replace("D", "Ïß×éÊý") + "]*[" + sCXH_TMP.Substring(sCXH_TMP.IndexOf("B"), 2).Replace("B", "оÊý") + "]"
+ + "*[" + sCXH_TMP.Substring(sCXH_TMP.IndexOf("A"), 2).Replace("A", "½ØÃæ") + "]";
+ }
+ if ((sYFC.Trim() == "") && (sCXH.Trim() != ""))
+ {
+ sCXH_TMP = sCXH;
+ sYFC = sCXH_TMP.Replace("A", "][½ØÃæ").Replace("B", "][оÊý").Replace("C", "][Ïß¶ÔÊý").Replace("D", "][Ïß×éÊý");
+ sYFC = sYFC.Substring(1) + "]";
+ }
+
+ return sYFC;
+ }
+ else if (sYFLX.Trim() == "DYDJ")
+ {
+ sYFC = "";
+ sCXH_TMP = sCXH;
+ if (sCPH == "A1")
+ {
+ if (sCXH_TMP.IndexOf("A") >= 0)
+ sYFC = "[Ïàµçѹa]";
+ }
+ else if (sCPH == "B1")
+ {
+ if (sCXH_TMP.IndexOf("B") >= 0)
+ sYFC = "[Ïßµçѹa]";
+ }
+ else if (sCPH == "A1B1")
+ {
+ if ((sCXH_TMP.IndexOf("A") >= 0) && (sCXH_TMP.IndexOf("B") >= 0))
+ sYFC = "[" + sCXH_TMP.Substring(sCXH_TMP.IndexOf("A"), 2).Replace("A", "Ïàµçѹ") + "]/[" + sCXH_TMP.Substring(sCXH_TMP.IndexOf("B"), 2).Replace("B", "Ïßµçѹ") + "]";
+ }
+ else if (sCPH == "B1C1")
+ {
+ if ((sCXH_TMP.IndexOf("B") >= 0) && (sCXH_TMP.IndexOf("C") >= 0))
+ sYFC = "[" + sCXH_TMP.Substring(sCXH_TMP.IndexOf("B"), 2).Replace("B", "Ïßµçѹ") + "][" + sCXH_TMP.Substring(sCXH_TMP.IndexOf("C"), 2).Replace("C", "µçѹµ¥Î»") + "]";
+ }
+ else if (sCPH == "A1B1C1")
+ {
+ if ((sCXH_TMP.IndexOf("A") >= 0) && (sCXH_TMP.IndexOf("B") >= 0) && (sCXH_TMP.IndexOf("C") >= 0))
+ sYFC = "[" + sCXH_TMP.Substring(sCXH_TMP.IndexOf("A"), 2).Replace("A", "Ïàµçѹ") + "]/[" + sCXH_TMP.Substring(sCXH_TMP.IndexOf("B"), 2).Replace("B", "Ïßµçѹ") + "]"
+ + "[" + sCXH_TMP.Substring(sCXH_TMP.IndexOf("C"), 2).Replace("C", "µçѹµ¥Î»") + "]";
+ }
+
+ if ((sYFC.Trim() == "") && (sCXH.Trim() != ""))
+ {
+ sCXH_TMP = sCXH;
+ sYFC = sCXH_TMP.Replace("A", "][Ïàµçѹ").Replace("B", "][Ïßµçѹ").Replace("C", "][µçѹµ¥Î»");
+ sYFC = sYFC.Substring(1) + "]";
+ }
+
+ return sYFC;
+ }
+ else if (sYFLX.Trim() == "XLBZ")
+ {
+ sYFC = "";
+ sCXH_TMP = sCXH;
+ if (sCPH == "A1")
+ {
+ if (sCXH_TMP.IndexOf("A") >= 0)
+ sYFC = "[±ê×¼Ãûa]";
+ }
+
+ if ((sYFC.Trim() == "") && (sCXH.Trim() != ""))
+ {
+ sCXH_TMP = sCXH;
+ sYFC = sCXH_TMP.Replace("A", "][±ê×¼Ãû");
+ sYFC = sYFC.Substring(1) + "]";
+ }
+
+ return sYFC;
+ }
+ else if (sYFLX.Trim() == "XLYS")
+ {
+ sYFC = "";
+ sCXH_TMP = sCXH;
+ if (sCPH == "A1")
+ {
+ if (sCXH_TMP.IndexOf("A") >= 0)
+ sYFC = "[ÑÕÉ«Ãûa]";
+ }
+ else if (sCPH == "A2")
+ {
+ if (sCXH_TMP.IndexOf("A") >= 0)
+ sYFC = "[ÑÕÉ«Ãûa][ÑÕÉ«Ãûb]";
+ }
+
+ if ((sYFC.Trim() == "") && (sCXH.Trim() != ""))
+ {
+ sCXH_TMP = sCXH;
+ sYFC = sCXH_TMP.Replace("A", "][ÑÕÉ«Ãû");
+ sYFC = sYFC.Substring(1) + "]";
+ }
+
+ return sYFC;
+ }
+
+ return "";
+ }
+
+ // °²È«µÄTrim´¦Àíº¯Êý
+ ///
+ /// È±Ê§ÒªËØ¶àѡɸѡ£ºXLXH=ÏßÀÂÐͺŠXLGG=ÏßÀ¹æ¸ñ XLBZ=ÏßÀ±ê×¼ DYDJ=µçѹµÈ¼¶£¬¶àѡΪ OR ¹ØÏµ
+ ///
+ private static void AppendMissingElementFilter(TSQL sSQL, string sQSYS)
+ {
+ if (string.IsNullOrEmpty(sQSYS))
+ return;
+
+ List conditions = new List();
+ string[] items = sQSYS.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
+ foreach (string raw in items)
+ {
+ switch (raw.Trim())
+ {
+ case "XLXH":
+ conditions.Add("isnull(XLJXMX_JXXLXHID,' ') = ' '");
+ break;
+ case "XLGG":
+ conditions.Add("isnull(XLJXMX_JXXLGGID,' ') = ' '");
+ break;
+ case "XLBZ":
+ conditions.Add("isnull(XLJXMX_JXXLBZID,' ') = ' '");
+ break;
+ case "DYDJ":
+ conditions.Add("isnull(XLJXMX_JXDYDJID,' ') = ' '");
+ break;
+ }
+ }
+
+ if (conditions.Count > 0)
+ sSQL.Add(" AND (" + string.Join(" and ", conditions.ToArray()) + ") ");
+ }
+
+ private static string SafeTrim(object value)
+ {
+ if (value == null || value == DBNull.Value)
+ {
+ return string.Empty;
+ }
+ return value.ToString().Trim();
+ }
+
+ public static string GetBZID(string sMC)
+ {
+ TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
+ TSQL SQL = new TSQL(dberp);
+ SQL.Clear();
+ SQL.Clear();
+ SQL.Add(" select XLBZ_XLBZID,XLBZ_XLBZLXMC from XLBZ ");
+ SQL.Add(" where 1=1 and XLBZ_XLBZLXMC=:pXLBZ_XLBZID order by XLBZ_XLBZID");
+ SQL.ParamByName("pXLBZ_XLBZID").Value = sMC;
+ DataSet ds = dberp.OpenDataSet(SQL);
+ if (ds.Tables[0].Rows.Count > 0)
+ {
+ return ds.Tables[0].Rows[0]["XLBZ_XLBZID"].ToString().Trim();
+ }
+ else
+ {
+ return sMC;
+ }
+
+ }
+
+ public static BJXX GetBJDXX(string sBJDID)
+ {
+ TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
+ TSQL SQL = new TSQL(dberp);
+
+ BJXX bjdxx = new BJXX();
+
+ SQL.Clear();
+ SQL.Add(" select XLXSBJD_JGBID,XLXSBJD_BJRQ,XLXSBJD_BJFLID from XLXSBJD ");
+ SQL.Add(" where XLXSBJD_BJDID=:pBJDID ");
+ SQL.ParamByName("pBJDID").Value = sBJDID;
+
+ DataSet ds = dberp.OpenDataSet(SQL);
+ if (ds.Tables[0].Rows.Count > 0)
+ {
+ bjdxx.JGBID = ds.Tables[0].Rows[0]["XLXSBJD_JGBID"].ToString().Trim();
+ bjdxx.BJRQ = ds.Tables[0].Rows[0]["XLXSBJD_BJRQ"].ToString().Trim();
+ bjdxx.BJFLID = ds.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim();
+
+ }
+ else
+ {
+ bjdxx.JGBID = "";
+ bjdxx.BJRQ = "";
+ bjdxx.BJFLID = "";
+ }
+ return bjdxx;
+ }
+
+ public static bool IsJGE(string sJGBID)
+ {
+ if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGB where XLXSJGB_JGBID='{0}' and XLXSJGB_MXBH='JGB'", sJGBID.Trim())))
+ return false;
+ else
+ return true;
+ }
+
+ public static void MatchForXLBZIDAndDYDJID(TDatabase dberp, TSQL SQL, string sJGBID, string sSELBJDID, CMISproSession CurSession)
+ {
+ //bool bBPPDY = XLBJDUtils.GetXLXSBJPZXX(100860043).XLXSBJPZ_BZDPPDY.Trim().Equals("Y");
+ bool bBPPDY = false;
+ //Çå¿Õµçѹ&±ê×¼ºóÆ¥Å䣬»áÖ±½Ó½«ËùÑ¡¼Ç¼Ðͺţ¬¹æ¸ñ²»Îª¿ÕµÄ±ê×¼ºÍµçѹµÈ¼¶È«²¿ÖÿÕ
+ //ÐͺŹæ¸ñ ¿ÉÒÔ»ñȡΨһֵ£¬µã»÷Æ¥Åä°´Å¥»áÖ±½ÓÆ¥ÅäÉϱê×¼ºÍµçѹµÈ¼¶¡£
+ //ÐͺŹæ¸ñ±ê×¼ ¿ÉÒÔ»ñȡΨһֵ£¬µã»÷Æ¥Åä°´Å¥»áÖ±½ÓÆ¥ÅäÉϵçѹµÈ¼¶¡£
+ //ÐͺŹæ¸ñµçѹµÈ¼¶¿ÉÒÔ»ñȡΨһֵ£¬µã»÷Æ¥Åä°´Å¥»áÖ±½ÓÆ¥ÅäÉϱê×¼¡£
+ //-----------------------------------------------------------------
+
+
+ SQL.Clear();
+ SQL.Add("update XLXSBJDMX set XLXSBJDMX_WHR=:pFlag");
+ SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID");
+ SQL.Add(" and XLXSBJDMX_DYDJID = ' '");
+
+ SQL.ParamByName("pFlag").Value = "DY";
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ //ÏÈÆ¥ÅäÐͺÅÏàͬ£¬¹æ¸ñΪ¿ÕµÄ¼Ç¼¸üÐÂÍⲿ±¨¼Ûµ¥Ã÷ϸ
+ SQL.Clear();
+ SQL.Add("merge into XLXSBJDMX tar ");
+ SQL.Add(" using XLXSBJCPMRBZDY sor ");
+ SQL.Add(" on(XLXSBJCPMRBZDY_XLXHID=XLXSBJDMX_XLXHID and XLXSBJCPMRBZDY_XLGGID=' ' ");
+ SQL.Add(" and XLXSBJDMX_WHR='DY'");
+
+ SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID ) ");
+ SQL.Add(" when matched then update set ");
+ SQL.Add(" XLXSBJDMX_XLBZID=isnull(XLXSBJCPMRBZDY_XLBZID,' ') ");
+ if (!bBPPDY)
+ SQL.Add(" ,XLXSBJDMX_DYDJID=isnull(XLXSBJCPMRBZDY_DYDJID,' ') ");
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ //ºóÆ¥ÅäÐͺ𢹿¸ñÏàµÈµÄ¼Ç¼¸üÐÂÍⲿ±¨¼Ûµ¥Ã÷ϸ
+ SQL.Clear();
+ SQL.Add("merge into XLXSBJDMX tar ");
+ SQL.Add(" using XLXSBJCPMRBZDY sor ");
+ SQL.Add(" on(XLXSBJCPMRBZDY_XLXHID=XLXSBJDMX_XLXHID and XLXSBJCPMRBZDY_XLGGID=XLXSBJDMX_XLGGID ");
+ SQL.Add(" and XLXSBJDMX_WHR='DY'");
+
+ SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID ) ");
+ SQL.Add(" when matched then update set ");
+ SQL.Add(" XLXSBJDMX_XLBZID=isnull(XLXSBJCPMRBZDY_XLBZID,' ') ");
+ if (!bBPPDY)
+ SQL.Add(" ,XLXSBJDMX_DYDJID=isnull(XLXSBJCPMRBZDY_DYDJID,' ') ");
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+
+
+ SQL.Clear();
+ SQL.Add("update XLXSBJDMX set XLXSBJDMX_WHR=:pWHR");
+ SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID");
+ SQL.Add(" and XLXSBJDMX_WHR='DY' ");
+
+ SQL.ParamByName("pWHR").Value = CurSession.UserName;
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+
+ SQL.Clear();
+ SQL.Add("update XLXSBJDMX set XLXSBJDMX_WHR=:pFlag");
+ SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID");
+ SQL.Add(" and XLXSBJDMX_XLBZID = ' ' and ISNULL(XLXSBJDMX_DYDJID,' ') <> ' ' ");
+
+ SQL.ParamByName("pFlag").Value = "BZ";
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+
+ //ÔÙÆ¥ÅäÐͺ𢹿¸ñ¡¢µçѹÏàµÈµÄ¼Ç¼¸üе½Íⲿ±¨¼Ûµ¥Ã÷ϸ
+ SQL.Clear();
+ SQL.Add("merge into XLXSBJDMX tar ");
+ SQL.Add(" using XLXSBJCPMRBZDY sor ");
+ SQL.Add(" on(XLXSBJCPMRBZDY_XLXHID=XLXSBJDMX_XLXHID and XLXSBJCPMRBZDY_XLGGID=XLXSBJDMX_XLGGID and XLXSBJCPMRBZDY_DYDJID=XLXSBJDMX_DYDJID ");
+ SQL.Add(" and XLXSBJDMX_WHR='BZ'");
+
+ SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID ) ");
+ SQL.Add(" when matched then update set ");
+ SQL.Add(" XLXSBJDMX_XLBZID=isnull(XLXSBJCPMRBZDY_XLBZID,' ') ");
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ SQL.Clear();
+ SQL.Add("update XLXSBJDMX set XLXSBJDMX_WHR=:pWHR");
+ SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID");
+ SQL.Add(" and XLXSBJDMX_WHR='BZ' ");
+
+ SQL.ParamByName("pWHR").Value = CurSession.UserName;
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ string sWBPPZXSX = "D";
+
+ //string sWBPPZXSX = "A";
+ N_XLXSBJ.XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860043);
+ //if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_WBPPZXSX))
+ // sWBPPZXSX = pzxx.XLXSBJPZ_WBPPZXSX;
+
+ string sDefXLBZID = "";
+ string sDefDYDJID = "";
+
+ pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000);
+ if (!string.IsNullOrEmpty(XLBJDUtils.GetXLXSBJPZXX(100860140).XLXSBJPZ_MRXLBZID))
+ sDefXLBZID = XLBJDUtils.GetXLXSBJPZXX(100860140).XLXSBJPZ_MRXLBZID;
+
+ if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_MRDYDJ))
+ sDefDYDJID = pzxx.XLXSBJPZ_MRDYDJ;
+ if (!sDefXLBZID.Equals("FirstBZ"))
+ {
+ SQL.Clear();
+ SQL.Add("update XLXSBJDMX set XLXSBJDMX_XLBZID=:pFlag,XLXSBJDMX_XDXLBZID=:pFlag ");
+ SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID");
+ SQL.Add(" and isnull(XLXSBJDMX_XLBZID,' ') = ' '");
+ SQL.ParamByName("pFlag").Value = sDefXLBZID;
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ }
+ /*
+ A£ºÏßÀÂÏúÊÛ²ÄÁÏÇåµ¥
+ B£ºÏßÀÂÏúÊÛ¼Û¸ñ±í
+ C£ºÏȲÄÁÏÇåµ¥ÔÙ¼Û¸ñ±í
+ D£ºÏȼ۸ñ±íÔÙ²ÄÁÏÇåµ¥
+ */
+ string ErrorNo = "";
+ try
+ {
+ if (sWBPPZXSX.Equals("B") || sWBPPZXSX.Equals("D"))
+ {
+ MatchForXLXSJGBMX(dberp, SQL, sJGBID, sSELBJDID, sDefXLBZID, sDefDYDJID, ref ErrorNo, CurSession);
+ if (sWBPPZXSX.Equals("D"))
+ {
+ MatchForXLXSCLQD(dberp, SQL, sJGBID, sSELBJDID, sDefXLBZID, sDefDYDJID, ref ErrorNo, CurSession);
+ }
+ }
+ else
+ {
+ MatchForXLXSCLQD(dberp, SQL, sJGBID, sSELBJDID, sDefXLBZID, sDefDYDJID, ref ErrorNo, CurSession);
+ if (sWBPPZXSX.Equals("C"))
+ {
+ MatchForXLXSJGBMX(dberp, SQL, sJGBID, sSELBJDID, sDefXLBZID, sDefDYDJID, ref ErrorNo, CurSession);
+ }
+ }
+
+
+
+
+ }
+ catch (Exception ex)
+ {
+
+ }
+ }
+ public static void MatchForXLXSJGBMX(TDatabase dberp, TSQL SQL, string sJGBID, string sSELBJDID, string sDefXLBZID, string sDefDYDJID, ref string ErrorNo, CMISproSession CurSession)
+ {
+ bool bBPPDY = XLBJDUtils.GetXLXSBJPZXX(100860043).XLXSBJPZ_BZDPPDY.Trim().Equals("Y");
+ //string sJGFID = XLBJDUtils.GetJGFID(PageParam.GetRTrimString("BJRQ"));
+ //if (!sJGFID.Equals(""))
+ //{
+ // if (!sJGBID.Equals(""))
+ // {
+ // sJGBID += "," + sJGFID;
+ // }
+ // else
+ // {
+ // sJGBID = sJGFID;
+ // }
+ //}
+
+ if (dberp.DriverName == "ORACLE")//OracleÏÂmerge intoÓï·¨±»¸üеÄ×ֶβ»ÄÜ×÷Ϊ¹ØÁªÌõ¼þʹÓã¬×¨ÃÅ´¦Àí
+ {
+ SQL.Clear();
+ SQL.Add("update XLXSBJDMX set XLXSBJDMX_WHR=:pFlag");
+ SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID");
+ SQL.Add(" and XLXSBJDMX_XLBZID = ' ' and XLXSBJDMX_DYDJID = ' '");
+
+ SQL.ParamByName("pFlag").Value = "BZ_DY";
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ }
+
+ //ʹÓü۸ñ±íÃ÷ϸ
+ /*
+ merge into Ä¿±ê±í tar
+ using Ô´±í sor
+ on(a.Ìõ¼þ×Ö¶Î1=b.Ìõ¼þ×Ö¶Î1 and tar.Ìõ¼þ×Ö¶Î2=b.Ìõ¼þ×Ö¶Î2 ¡¡)
+ when matched then update set a.¸üÐÂ×Ö¶Î=b.×Ö¶Î
+ when not matched then insert into a(×Ö¶Î1,×Ö¶Î2¡¡)values(Öµ1,Öµ2¡¡)
+ */
+ if (sDefXLBZID.Equals(""))
+ {
+ ErrorNo = "1.1";
+ #region ¸ù¾ÝÐͺ𢹿¸ñ£¬Æ¥ÅäΨһ±ê×¼¡¢µçѹµÈ¼¶
+ SQL.Clear();
+ SQL.Add("merge into XLXSBJDMX tar ");
+ SQL.Add(" using ( ");
+ SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID, XLXSJGBMX_XLBZID as XLBZID, XLXSJGBMX_DYDJID as DYDJID ");
+ SQL.Add(" from XLXSJGBMX b ");
+ SQL.Add(" where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID));
+ //ËõС¼Û¸ñ±íÃ÷ϸµÄ·¶Î§
+ SQL.Add(" and exists(select 1 from XLXSBJDMX tmp where XLXSBJDMX_BJDID=:pBJDID ");
+ SQL.Add(" and XLXSBJDMX_XLXHID=b.XLXSJGBMX_XLXHID");
+ SQL.Add(" and XLXSBJDMX_XLGGID=b.XLXSJGBMX_XLGGID");
+ SQL.Add(" )");
+ //¸ù¾ÝÐͺ𢹿¸ñ¾ÍÄÜΨһȷ¶¨²úÆ·µÄ¼Û¸ñ±íÃ÷ϸ¼Ç¼
+ SQL.Add(" and exists ( ");
+ SQL.Add(" select a.XLXHID, a.XLGGID from ");
+ SQL.Add(" ( ");
+ SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID ");
+ SQL.Add(" from XLXSJGBMX");
+ SQL.Add(" where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID));
+ //ËõС¼Û¸ñ±íÃ÷ϸµÄ·¶Î§
+ SQL.Add(" and exists(select 1 from XLXSBJDMX tmp where XLXSBJDMX_BJDID=:pBJDID ");
+ SQL.Add(" and XLXSBJDMX_XLXHID=XLXSJGBMX_XLXHID");
+ SQL.Add(" and XLXSBJDMX_XLGGID=XLXSJGBMX_XLGGID");
+ SQL.Add(" )");
+ SQL.Add(" group by XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID ");
+ SQL.Add(" having (count(XLXSJGBMX_XLXHID) + count(XLXSJGBMX_XLGGID)) = 2 ");
+ SQL.Add(" ) a where 1=1 and a.XLXHID = b.XLXSJGBMX_XLXHID and a.XLGGID =b.XLXSJGBMX_XLGGID ");
+ SQL.Add(" ) ");
+ SQL.Add(" ) sor ");
+ SQL.Add(" on( ");
+ SQL.Add(" tar.XLXSBJDMX_XLXHID = sor.XLXHID ");
+ SQL.Add(" and tar.XLXSBJDMX_XLGGID = sor.XLGGID ");
+ SQL.Add(" and tar.XLXSBJDMX_XLXHID <> ' ' and tar.XLXSBJDMX_XLGGID <> ' ' ");
+ if (dberp.DriverName == "ORACLE")//OracleÏÂmerge intoÓï·¨±»¸üеÄ×ֶβ»ÄÜ×÷Ϊ¹ØÁªÌõ¼þʹÓã¬×¨ÃÅ´¦Àí
+ SQL.Add(" and tar.XLXSBJDMX_WHR = 'BZ_DY' ");
+ else
+ SQL.Add(" and tar.XLXSBJDMX_XLBZID = ' ' and tar.XLXSBJDMX_DYDJID = ' ' ");
+ SQL.Add(" and tar.XLXSBJDMX_BJDID=:pBJDID ");
+
+ SQL.Add(" ) ");
+ SQL.Add(" when matched then update set ");
+ SQL.Add(" tar.XLXSBJDMX_XLBZID =sor.XLBZID,tar.XLXSBJDMX_XDXLBZID=sor.XLBZID ");
+ if (!bBPPDY)
+ SQL.Add(", tar.XLXSBJDMX_DYDJID=sor.DYDJID ");
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ #endregion
+ }
+ else if (sDefXLBZID.Equals("FirstBZ"))
+ {
+ ErrorNo = "1.2";
+ #region ¸ù¾ÝÐͺ𢹿¸ñ£¬Æ¥ÅäµÚÒ»¸ö±ê×¼
+ SQL.Clear();
+ SQL.Add("merge into XLXSBJDMX tar ");
+ SQL.Add(" using ( ");
+ SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID,isnull(XLBZ_XLBZID,' ') as XLBZID");
+ SQL.Add(" from");
+ SQL.Add(" (");
+ SQL.Add(" select XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID, min(isnull(XLBZPX,0)) as minXLBZPX ");
+ SQL.Add(" from XLXSJGBMX b ");
+ SQL.Add(" left join (select row_number()over(order by XLBZ_DZSC,XLBZ_PX,XLBZ_XLBZID) as XLBZPX,XLBZ_XLBZID from XLBZ where 1=1) tmpXLBZ on XLBZ_XLBZID=XLXSJGBMX_XLBZID");
+ SQL.Add(" where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID));
+ //ËõС¼Û¸ñ±íÃ÷ϸµÄ·¶Î§
+ SQL.Add(" and exists(select 1 from XLXSBJDMX tmp where XLXSBJDMX_BJDID=:pBJDID ");
+ SQL.Add(" and XLXSBJDMX_XLXHID=b.XLXSJGBMX_XLXHID");
+ SQL.Add(" and XLXSBJDMX_XLGGID=b.XLXSJGBMX_XLGGID");
+ SQL.Add(" )");
+ SQL.Add(" group by XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID");
+ SQL.Add(" ) jgbmx");
+ SQL.Add(" left join (select row_number()over(order by XLBZ_DZSC,XLBZ_PX,XLBZ_XLBZID) as XLBZPX,XLBZ_XLBZID from XLBZ where 1=1) tmpXLBZ on XLBZPX=minXLBZPX");
+ SQL.Add(" where 1=1");
+ SQL.Add(" ) sor ");
+ SQL.Add(" on( ");
+ SQL.Add(" tar.XLXSBJDMX_XLXHID = sor.XLXHID ");
+ SQL.Add(" and tar.XLXSBJDMX_XLGGID = sor.XLGGID ");
+ SQL.Add(" and tar.XLXSBJDMX_XLXHID <> ' ' and tar.XLXSBJDMX_XLGGID <> ' ' ");
+ if (dberp.DriverName == "ORACLE")//OracleÏÂmerge intoÓï·¨±»¸üеÄ×ֶβ»ÄÜ×÷Ϊ¹ØÁªÌõ¼þʹÓã¬×¨ÃÅ´¦Àí
+ SQL.Add(" and tar.XLXSBJDMX_WHR = 'BZ_DY' ");
+ else
+ SQL.Add(" and tar.XLXSBJDMX_XLBZID = ' ' and tar.XLXSBJDMX_DYDJID = ' ' ");
+ SQL.Add(" and tar.XLXSBJDMX_BJDID=:pBJDID ");
+
+ SQL.Add(" ) ");
+ SQL.Add(" when matched then update set ");
+ SQL.Add(" tar.XLXSBJDMX_XLBZID =sor.XLBZID,tar.XLXSBJDMX_XDXLBZID=sor.XLBZID ");
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ #endregion
+ }
+ if (dberp.DriverName == "ORACLE")//OracleÏÂmerge intoÓï·¨±»¸üеÄ×ֶβ»ÄÜ×÷Ϊ¹ØÁªÌõ¼þʹÓã¬×¨ÃÅ´¦Àí
+ {
+ SQL.Clear();
+ SQL.Add("update XLXSBJDMX set XLXSBJDMX_WHR=:pFlag");
+ SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID");
+ SQL.Add(" and XLXSBJDMX_XLBZID <> ' ' and XLXSBJDMX_DYDJID = ' '");
+
+ SQL.ParamByName("pFlag").Value = "DY";
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ }
+ if (!bBPPDY)
+ {
+ if (sDefDYDJID.Equals("minDY"))
+ {
+ ErrorNo = "2.1";
+ #region ¸ù¾ÝÐͺ𢹿¸ñ¡¢±ê×¼£¬Æ¥ÅäµÚÒ»¸öµçѹµÈ¼¶
+ SQL.Clear();
+ SQL.Add("merge into XLXSBJDMX tar ");
+ SQL.Add(" using (");
+ SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID, XLXSJGBMX_XLBZID as XLBZID, isnull(XLDYDJB_DYDJID,' ') as DYDJID, PPSL ");
+ SQL.Add(" from");
+ SQL.Add(" (");
+ SQL.Add(" select XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID, XLXSJGBMX_XLBZID,min(isnull(DYDJPX,0)) as minDYDJPX,sum(1) as PPSL ");//Æ¥ÅäÊýÁ¿µÈÓÚ1Ôò±íʾΨһƥÅä
+ SQL.Add(" from XLXSJGBMX b ");
+ SQL.Add(" left join (select row_number()over(order by XLDYDJB_XH,XLDYDJB_DYDJID) as DYDJPX,XLDYDJB_DYDJID from XLDYDJB where 1=1) tmpXLDY on XLDYDJB_DYDJID=XLXSJGBMX_DYDJID");
+ SQL.Add(" where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID));
+ //ËõС¼Û¸ñ±íÃ÷ϸµÄ·¶Î§
+ SQL.Add(" and exists(select 1 from XLXSBJDMX tmp where XLXSBJDMX_BJDID=:pBJDID ");
+ SQL.Add(" and XLXSBJDMX_XLXHID=b.XLXSJGBMX_XLXHID");
+ SQL.Add(" and XLXSBJDMX_XLGGID=b.XLXSJGBMX_XLGGID");
+ SQL.Add(" and XLXSBJDMX_XLBZID=b.XLXSJGBMX_XLBZID");
+ SQL.Add(" )");
+ SQL.Add(" group by XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID");
+ SQL.Add(" ) jgbmx");
+ SQL.Add(" left join (select row_number()over(order by XLDYDJB_XH,XLDYDJB_DYDJID) as DYDJPX,XLDYDJB_DYDJID from XLDYDJB where 1=1) DYDJ on DYDJ.DYDJPX=minDYDJPX");
+ SQL.Add(" where 1=1");
+ SQL.Add(" ) sor ");
+ SQL.Add(" on( ");
+ SQL.Add(" tar.XLXSBJDMX_XLXHID = sor.XLXHID ");
+ SQL.Add(" and tar.XLXSBJDMX_XLGGID = sor.XLGGID ");
+ SQL.Add(" and tar.XLXSBJDMX_XLBZID = sor.XLBZID ");
+ SQL.Add(" and tar.XLXSBJDMX_XLXHID <> ' ' and tar.XLXSBJDMX_XLGGID <> ' ' and sor.PPSL >=1 ");//Æ¥ÅäÊýÁ¿µÈÓÚ1±íʾΨһƥÅä,ÎÞÐ迼ÂÇXLXSBJDMX_BJCPDYDJID
+ if (dberp.DriverName == "ORACLE")//OracleÏÂmerge intoÓï·¨±»¸üеÄ×ֶβ»ÄÜ×÷Ϊ¹ØÁªÌõ¼þʹÓã¬×¨ÃÅ´¦Àí
+ SQL.Add(" and tar.XLXSBJDMX_WHR = 'DY' ");
+ else
+ SQL.Add(" and tar.XLXSBJDMX_XLBZID <> ' ' and tar.XLXSBJDMX_DYDJID = ' ' ");
+ SQL.Add(" and tar.XLXSBJDMX_BJDID=:pBJDID ");
+
+ SQL.Add(" ) ");
+ SQL.Add(" when matched then update set ");
+ SQL.Add(" tar.XLXSBJDMX_DYDJID=sor.DYDJID ");
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ #endregion
+ }
+
+ else
+ {
+ ErrorNo = "2.2";
+ #region ¸ù¾ÝÐͺ𢹿¸ñ¡¢±ê×¼£¬Æ¥ÅäΨһµçѹµÈ¼¶
+ SQL.Clear();
+ SQL.Add("merge into XLXSBJDMX tar ");
+ SQL.Add(" using ( ");
+ SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID, XLXSJGBMX_XLBZID as XLBZID, XLXSJGBMX_DYDJID as DYDJID ");
+ SQL.Add(" from XLXSJGBMX b ");
+ SQL.Add(" where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID));
+ //ËõС¼Û¸ñ±íÃ÷ϸµÄ·¶Î§
+ SQL.Add(" and exists(select 1 from XLXSBJDMX tmp where XLXSBJDMX_BJDID=:pBJDID ");
+ SQL.Add(" and XLXSBJDMX_XLXHID=b.XLXSJGBMX_XLXHID");
+ SQL.Add(" and XLXSBJDMX_XLGGID=b.XLXSJGBMX_XLGGID");
+ SQL.Add(" and XLXSBJDMX_XLBZID=b.XLXSJGBMX_XLBZID");
+ SQL.Add(" )");
+ //¸ù¾ÝÐͺ𢹿¸ñ¡¢±ê×¼¾ÍÄÜΨһȷ¶¨²úÆ·µÄ¼Û¸ñ±íÃ÷ϸ¼Ç¼
+ SQL.Add(" and exists ( ");
+ SQL.Add(" select a.XLXHID, a.XLGGID from ");
+ SQL.Add(" ( ");
+ SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID, XLXSJGBMX_XLBZID as XLBZID ");
+ SQL.Add(" from XLXSJGBMX");
+ SQL.Add(" where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID));
+ //ËõС¼Û¸ñ±íÃ÷ϸµÄ·¶Î§
+ SQL.Add(" and exists(select 1 from XLXSBJDMX tmp where XLXSBJDMX_BJDID=:pBJDID ");
+ SQL.Add(" and XLXSBJDMX_XLXHID=XLXSJGBMX_XLXHID");
+ SQL.Add(" and XLXSBJDMX_XLGGID=XLXSJGBMX_XLGGID");
+ SQL.Add(" and XLXSBJDMX_XLBZID=XLXSJGBMX_XLBZID");
+ SQL.Add(" )");
+ SQL.Add(" group by XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID, XLXSJGBMX_XLBZID ");
+ SQL.Add(" having (count(XLXSJGBMX_XLXHID) + count(XLXSJGBMX_XLGGID) + count(XLXSJGBMX_XLBZID)) = 3 ");
+ SQL.Add(" ) a where 1=1 and a.XLXHID = b.XLXSJGBMX_XLXHID and a.XLGGID =b.XLXSJGBMX_XLGGID and a.XLBZID = b.XLXSJGBMX_XLBZID ");
+ SQL.Add(" ) ");
+ SQL.Add(" ) sor ");
+ SQL.Add(" on( ");
+ SQL.Add(" tar.XLXSBJDMX_XLXHID = sor.XLXHID ");
+ SQL.Add(" and tar.XLXSBJDMX_XLGGID = sor.XLGGID ");
+ SQL.Add(" and tar.XLXSBJDMX_XLBZID = sor.XLBZID ");
+ SQL.Add(" and tar.XLXSBJDMX_XLXHID <> ' ' and tar.XLXSBJDMX_XLGGID <> ' ' ");
+ if (dberp.DriverName == "ORACLE")//OracleÏÂmerge intoÓï·¨±»¸üеÄ×ֶβ»ÄÜ×÷Ϊ¹ØÁªÌõ¼þʹÓã¬×¨ÃÅ´¦Àí
+ SQL.Add(" and tar.XLXSBJDMX_WHR = 'DY' ");
+ else
+ SQL.Add(" and tar.XLXSBJDMX_XLBZID <> ' ' and tar.XLXSBJDMX_DYDJID = ' ' ");
+ SQL.Add(" and tar.XLXSBJDMX_BJDID=:pBJDID ");
+
+ SQL.Add(" ) ");
+ SQL.Add(" when matched then update set ");
+ SQL.Add(" tar.XLXSBJDMX_DYDJID=sor.DYDJID ");
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ #endregion
+ }
+ }
+ if (dberp.DriverName == "ORACLE")//OracleÏÂmerge intoÓï·¨±»¸üеÄ×ֶβ»ÄÜ×÷Ϊ¹ØÁªÌõ¼þʹÓã¬×¨ÃÅ´¦Àí
+ {
+ SQL.Clear();
+ SQL.Add("update XLXSBJDMX set XLXSBJDMX_WHR=:pFlag");
+ SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID");
+ SQL.Add(" and XLXSBJDMX_XLBZID = ' ' and XLXSBJDMX_DYDJID <> ' '");
+
+ SQL.ParamByName("pFlag").Value = "BZ";
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ }
+
+ if (sDefXLBZID.Equals(""))
+ {
+ ErrorNo = "3.1";
+ #region ¸ù¾ÝÐͺ𢹿¸ñ¡¢µçѹµÈ¼¶£¬Æ¥ÅäΨһ±ê×¼
+ SQL.Clear();
+ SQL.Add("merge into XLXSBJDMX tar ");
+ SQL.Add(" using ( ");
+ SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID, XLXSJGBMX_XLBZID as XLBZID, XLXSJGBMX_DYDJID as DYDJID ");
+ SQL.Add(" from XLXSJGBMX b ");
+ SQL.Add(" where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID));
+ //ËõС¼Û¸ñ±íÃ÷ϸµÄ·¶Î§
+ SQL.Add(" and exists(select 1 from XLXSBJDMX tmp where XLXSBJDMX_BJDID=:pBJDID ");
+ SQL.Add(" and XLXSBJDMX_XLXHID=b.XLXSJGBMX_XLXHID");
+ SQL.Add(" and XLXSBJDMX_XLGGID=b.XLXSJGBMX_XLGGID");
+ SQL.Add(" and XLXSBJDMX_DYDJID=b.XLXSJGBMX_DYDJID");
+ SQL.Add(" )");
+ //¸ù¾ÝÐͺ𢹿¸ñ¡¢±ê×¼¾ÍÄÜΨһȷ¶¨²úÆ·µÄ¼Û¸ñ±íÃ÷ϸ¼Ç¼
+ SQL.Add(" and exists ( ");
+ SQL.Add(" select a.XLXHID, a.XLGGID from ");
+ SQL.Add(" ( ");
+ SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID, XLXSJGBMX_DYDJID as DYDJID ");
+ SQL.Add(" from XLXSJGBMX");
+ SQL.Add(" where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID));
+ //ËõС¼Û¸ñ±íÃ÷ϸµÄ·¶Î§
+ SQL.Add(" and exists(select 1 from XLXSBJDMX tmp where XLXSBJDMX_BJDID=:pBJDID ");
+ SQL.Add(" and XLXSBJDMX_XLXHID=XLXSJGBMX_XLXHID");
+ SQL.Add(" and XLXSBJDMX_XLGGID=XLXSJGBMX_XLGGID");
+ SQL.Add(" and XLXSBJDMX_DYDJID=XLXSJGBMX_DYDJID");
+ SQL.Add(" )");
+ SQL.Add(" group by XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID, XLXSJGBMX_DYDJID ");
+ SQL.Add(" having (count(XLXSJGBMX_XLXHID) + count(XLXSJGBMX_XLGGID) + count(XLXSJGBMX_DYDJID)) = 3 ");
+ SQL.Add(" ) a where 1=1 and a.XLXHID = b.XLXSJGBMX_XLXHID and a.XLGGID =b.XLXSJGBMX_XLGGID and a.DYDJID = b.XLXSJGBMX_DYDJID ");
+ SQL.Add(" ) ");
+ SQL.Add(" ) sor ");
+ SQL.Add(" on( ");
+ SQL.Add(" tar.XLXSBJDMX_XLXHID = sor.XLXHID ");
+ SQL.Add(" and tar.XLXSBJDMX_XLGGID = sor.XLGGID ");
+ SQL.Add(" and tar.XLXSBJDMX_DYDJID=sor.DYDJID ");
+ SQL.Add(" and tar.XLXSBJDMX_XLXHID <> ' ' and tar.XLXSBJDMX_XLGGID <> ' ' ");
+ if (dberp.DriverName == "ORACLE")//OracleÏÂmerge intoÓï·¨±»¸üеÄ×ֶβ»ÄÜ×÷Ϊ¹ØÁªÌõ¼þʹÓã¬×¨ÃÅ´¦Àí
+ SQL.Add(" and tar.XLXSBJDMX_WHR = 'BZ' ");
+ else
+ SQL.Add(" and tar.XLXSBJDMX_XLBZID = ' ' and tar.XLXSBJDMX_DYDJID <> ' ' ");
+ SQL.Add(" and tar.XLXSBJDMX_BJDID=:pBJDID ");
+
+ SQL.Add(" ) ");
+ SQL.Add(" when matched then update set ");
+ SQL.Add(" tar.XLXSBJDMX_XLBZID =sor.XLBZID,tar.XLXSBJDMX_XDXLBZID=sor.XLBZID ");
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ #endregion
+ }
+ else if (sDefXLBZID.Equals("FirstBZ"))
+ {
+ ErrorNo = "3.2";
+ #region ¸ù¾ÝÐͺ𢹿¸ñ¡¢µçѹµÈ¼¶£¬Æ¥ÅäµÚÒ»¸ö±ê×¼
+ SQL.Clear();
+ SQL.Add("merge into XLXSBJDMX tar ");
+ SQL.Add(" using ( ");
+ SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID,XLXSJGBMX_DYDJID as DYDJID,isnull(XLBZ_XLBZID,' ') as XLBZID");
+ SQL.Add(" from");
+ SQL.Add(" (");
+ SQL.Add(" select XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_DYDJID, min(isnull(XLBZPX,0)) as minXLBZPX ");
+ SQL.Add(" from XLXSJGBMX b ");
+ SQL.Add(" left join (select row_number()over(order by XLBZ_DZSC,XLBZ_PX,XLBZ_XLBZID) as XLBZPX,XLBZ_XLBZID from XLBZ where 1=1) tmpXLBZ on XLBZ_XLBZID=XLXSJGBMX_XLBZID");
+ SQL.Add(" where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID));
+ //ËõС¼Û¸ñ±íÃ÷ϸµÄ·¶Î§
+ SQL.Add(" and exists(select 1 from XLXSBJDMX tmp where XLXSBJDMX_BJDID=:pBJDID ");
+ SQL.Add(" and XLXSBJDMX_XLXHID=b.XLXSJGBMX_XLXHID");
+ SQL.Add(" and XLXSBJDMX_XLGGID=b.XLXSJGBMX_XLGGID");
+ SQL.Add(" and XLXSBJDMX_DYDJID=b.XLXSJGBMX_DYDJID");
+ SQL.Add(" )");
+ SQL.Add(" group by XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_DYDJID");
+ SQL.Add(" ) jgbmx");
+ SQL.Add(" left join (select row_number()over(order by XLBZ_DZSC,XLBZ_PX,XLBZ_XLBZID) as XLBZPX,XLBZ_XLBZID from XLBZ where 1=1) tmpXLBZ on XLBZPX=minXLBZPX");
+ SQL.Add(" where 1=1");
+ SQL.Add(" ) sor ");
+ SQL.Add(" on( ");
+ SQL.Add(" tar.XLXSBJDMX_XLXHID = sor.XLXHID ");
+ SQL.Add(" and tar.XLXSBJDMX_XLGGID = sor.XLGGID ");
+ SQL.Add(" and tar.XLXSBJDMX_DYDJID=sor.DYDJID ");
+ SQL.Add(" and tar.XLXSBJDMX_XLXHID <> ' ' and tar.XLXSBJDMX_XLGGID <> ' ' ");
+ if (dberp.DriverName == "ORACLE")//OracleÏÂmerge intoÓï·¨±»¸üеÄ×ֶβ»ÄÜ×÷Ϊ¹ØÁªÌõ¼þʹÓã¬×¨ÃÅ´¦Àí
+ SQL.Add(" and tar.XLXSBJDMX_WHR = 'BZ' ");
+ else
+ SQL.Add(" and tar.XLXSBJDMX_XLBZID = ' ' and tar.XLXSBJDMX_DYDJID <> ' ' ");
+ SQL.Add(" and tar.XLXSBJDMX_BJDID=:pBJDID ");
+
+ SQL.Add(" ) ");
+ SQL.Add(" when matched then update set ");
+ SQL.Add(" tar.XLXSBJDMX_XLBZID =sor.XLBZID,tar.XLXSBJDMX_XDXLBZID=sor.XLBZID ");
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ #endregion
+ }
+
+ if (dberp.DriverName == "ORACLE")//OracleÏÂmerge intoÓï·¨±»¸üеÄ×ֶβ»ÄÜ×÷Ϊ¹ØÁªÌõ¼þʹÓã¬×¨ÃÅ´¦Àí
+ {
+ SQL.Clear();
+ SQL.Add("update XLXSBJDMX set XLXSBJDMX_WHR=:pWHR");
+ SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID");
+ SQL.Add(" and (XLXSBJDMX_WHR='BZ_DY' or XLXSBJDMX_WHR='DY' or XLXSBJDMX_WHR='BZ')");
+
+ SQL.ParamByName("pWHR").Value = CurSession.UserName;
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ }
+ }
+ public static void MatchForXLXSCLQD(TDatabase dberp, TSQL SQL, string sJGBID, string sSELBJDID, string sDefXLBZID, string sDefDYDJID, ref string ErrorNo, CMISproSession CurSession)
+ {
+ bool bBPPDY = XLBJDUtils.GetXLXSBJPZXX(100860043).XLXSBJPZ_BZDPPDY.Trim().Equals("Y");
+ if (dberp.DriverName == "ORACLE")//OracleÏÂmerge intoÓï·¨±»¸üеÄ×ֶβ»ÄÜ×÷Ϊ¹ØÁªÌõ¼þʹÓã¬×¨ÃÅ´¦Àí
+ {
+ SQL.Clear();
+ SQL.Add("update XLXSBJDMX set XLXSBJDMX_WHR=:pFlag");
+ SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID");
+ SQL.Add(" and XLXSBJDMX_XLBZID = ' ' and XLXSBJDMX_DYDJID = ' '");
+
+ SQL.ParamByName("pFlag").Value = "BZ_DY";
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ }
+ //ʹÓòÄÁÏÇ嵥ƥÅä
+ if (sDefXLBZID.Equals(""))
+ {
+ ErrorNo = "4.1";
+ #region ¸ù¾ÝÐͺ𢹿¸ñ£¬Æ¥ÅäΨһ±ê×¼¡¢µçѹµÈ¼¶
+ SQL.Clear();
+ SQL.Add(" merge into XLXSBJDMX tag");
+ SQL.Add(" using ");
+ SQL.Add(" ( ");
+ SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID FROM XLXSCLQD a ");
+ SQL.Add(" where XLXSCLQD_WPID = 'ZZZZ' ");
+ SQL.Add(" and exists ( ");
+ SQL.Add(" SELECT XLXSCLQD_XLXHID,XLXSCLQD_XLGGID FROM XLXSCLQD b ");
+ SQL.Add(" WHERE a.XLXSCLQD_XLXHID = b.XLXSCLQD_XLXHID and a.XLXSCLQD_XLGGID = b.XLXSCLQD_XLGGID ");
+ SQL.Add(" and b.XLXSCLQD_WPID = 'ZZZZ' and exists( ");
+ SQL.Add(" select XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID from XLXSBJDMX WHERE XLXSBJDMX_XLXHID = XLXSCLQD_XLXHID ");
+ SQL.Add(" and XLXSBJDMX_XLGGID= XLXSCLQD_XLGGID ");
+ SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID ");
+ SQL.Add(" ) ");
+ SQL.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID ");
+ SQL.Add(" having (count(XLXSCLQD_XLXHID) + count(XLXSCLQD_XLGGID)) = 2 ");
+ SQL.Add(" ) ");
+ SQL.Add(" ) c ");
+ SQL.Add(" on ( XLXSBJDMX_XLXHID <> ' ' and XLXSBJDMX_XLGGID <> ' ' ");
+ if (dberp.DriverName == "ORACLE")//OracleÏÂmerge intoÓï·¨±»¸üеÄ×ֶβ»ÄÜ×÷Ϊ¹ØÁªÌõ¼þʹÓã¬×¨ÃÅ´¦Àí
+ SQL.Add(" and XLXSBJDMX_WHR = 'BZ_DY' ");
+ else
+ SQL.Add(" and XLXSBJDMX_XLBZID = ' ' and XLXSBJDMX_DYDJID = ' ' ");
+ SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID ");
+
+ SQL.Add(" and c.XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID and c.XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID ) ");
+ SQL.Add(" when matched then update set XLXSBJDMX_XLBZID =c.XLXSCLQD_XLBZID,XLXSBJDMX_XDXLBZID=c.XLXSCLQD_XLBZID ");
+ if (!bBPPDY)
+ SQL.Add(" , XLXSBJDMX_DYDJID=c.XLXSCLQD_DYDJID ");
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ #endregion
+ }
+ else if (sDefXLBZID.Equals("FirstBZ"))
+ {
+ ErrorNo = "4.2";
+ #region ¸ù¾ÝÐͺ𢹿¸ñ£¬Æ¥ÅäµÚÒ»¸ö±ê×¼
+ SQL.Clear();
+ SQL.Add(" merge into XLXSBJDMX tag");
+ SQL.Add(" using ");
+ SQL.Add(" ( ");
+ SQL.Add(" select XLXSCLQD_XLXHID as XLXHID,XLXSCLQD_XLGGID as XLGGID,isnull(XLBZ_XLBZID,' ') as XLBZID");
+ SQL.Add(" from");
+ SQL.Add(" (");
+ SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,min(isnull(XLBZPX,0)) as minXLBZPX FROM XLXSCLQD ");
+ SQL.Add(" left join (select row_number()over(order by XLBZ_DZSC,XLBZ_PX,XLBZ_XLBZID) as XLBZPX,XLBZ_XLBZID from XLBZ where 1=1) tmpXLBZ on XLBZ_XLBZID=XLXSCLQD_XLBZID");
+ SQL.Add(" where XLXSCLQD_WPID = 'ZZZZ' ");
+ SQL.Add(" and exists( ");
+ SQL.Add(" select 1 from XLXSBJDMX WHERE XLXSBJDMX_XLXHID = XLXSCLQD_XLXHID ");
+ SQL.Add(" and XLXSBJDMX_XLGGID= XLXSCLQD_XLGGID ");
+ SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID ");
+ SQL.Add(" ) ");
+ SQL.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID");
+ SQL.Add(" ) clqd");
+ SQL.Add(" left join (select row_number()over(order by XLBZ_DZSC,XLBZ_PX,XLBZ_XLBZID) as XLBZPX,XLBZ_XLBZID from XLBZ where 1=1) tmpXLBZ on XLBZPX=minXLBZPX");
+ SQL.Add(" where 1=1");
+ SQL.Add(" ) c ");
+ SQL.Add(" on( XLXSBJDMX_XLXHID <> ' ' and XLXSBJDMX_XLGGID <> ' ' ");
+ if (dberp.DriverName == "ORACLE")//OracleÏÂmerge intoÓï·¨±»¸üеÄ×ֶβ»ÄÜ×÷Ϊ¹ØÁªÌõ¼þʹÓã¬×¨ÃÅ´¦Àí
+ SQL.Add(" and XLXSBJDMX_WHR = 'BZ_DY' ");
+ else
+ SQL.Add(" and XLXSBJDMX_XLBZID = ' ' and XLXSBJDMX_DYDJID = ' ' ");
+ SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID ");
+
+ SQL.Add(" and c.XLXHID =XLXSBJDMX_XLXHID and c.XLGGID=XLXSBJDMX_XLGGID ) ");
+ SQL.Add(" when matched then update set XLXSBJDMX_XLBZID =c.XLBZID,XLXSBJDMX_XDXLBZID=c.XLBZID ");
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ #endregion
+ }
+
+ if (dberp.DriverName == "ORACLE")//OracleÏÂmerge intoÓï·¨±»¸üеÄ×ֶβ»ÄÜ×÷Ϊ¹ØÁªÌõ¼þʹÓã¬×¨ÃÅ´¦Àí
+ {
+ SQL.Clear();
+ SQL.Add("update XLXSBJDMX set XLXSBJDMX_WHR=:pFlag");
+ SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID");
+ SQL.Add(" and XLXSBJDMX_XLBZID <> ' ' and XLXSBJDMX_DYDJID = ' '");
+
+ SQL.ParamByName("pFlag").Value = "DY";
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ }
+ if (!bBPPDY)
+ {
+ if (sDefDYDJID.Equals("minDY"))
+ {
+ ErrorNo = "5.1";
+ #region ¸ù¾ÝÐͺ𢹿¸ñ¡¢±ê×¼£¬Æ¥ÅäµÚÒ»¸öµçѹµÈ¼¶
+ SQL.Clear();
+ SQL.Add(" merge into XLXSBJDMX tag ");
+ SQL.Add(" using ");
+ SQL.Add(" ( ");
+ SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID, isnull(XLDYDJB_DYDJID,' ') as XLDYDJB_DYDJID,PPSL");
+ SQL.Add(" from");
+ SQL.Add(" (");
+ SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,min(isnull(DYDJPX,0)) as minDYDJPX,sum(1) as PPSL FROM XLXSCLQD ");//Æ¥ÅäÊýÁ¿µÈÓÚ1Ôò±íʾΨһƥÅä
+ SQL.Add(" left join (select row_number()over(order by XLDYDJB_XH,XLDYDJB_DYDJID) as DYDJPX,XLDYDJB_DYDJID from XLDYDJB where 1=1) tmpDYDJ on tmpDYDJ.XLDYDJB_DYDJID=XLXSCLQD_DYDJID");
+ SQL.Add(" where XLXSCLQD_WPID = 'ZZZZ' ");
+ SQL.Add(" and exists( ");
+ SQL.Add(" select 1 from XLXSBJDMX WHERE XLXSBJDMX_XLXHID = XLXSCLQD_XLXHID ");
+ SQL.Add(" and XLXSBJDMX_XLGGID= XLXSCLQD_XLGGID ");
+ SQL.Add(" and XLXSBJDMX_XLBZID= XLXSCLQD_XLBZID ");
+ SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID ");
+ SQL.Add(" ) ");
+ SQL.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID");
+ SQL.Add(" ) clqd");
+ SQL.Add(" left join (select row_number()over(order by XLDYDJB_XH,XLDYDJB_DYDJID) as DYDJPX,XLDYDJB_DYDJID from XLDYDJB where 1=1) DYDJ on DYDJ.DYDJPX=minDYDJPX");
+ SQL.Add(" where 1=1");
+ SQL.Add(" ) c ");
+ SQL.Add(" on ( XLXSBJDMX_XLXHID <> ' ' and XLXSBJDMX_XLGGID <> ' ' ");
+ if (dberp.DriverName == "ORACLE")//OracleÏÂmerge intoÓï·¨±»¸üеÄ×ֶβ»ÄÜ×÷Ϊ¹ØÁªÌõ¼þʹÓã¬×¨ÃÅ´¦Àí
+ SQL.Add(" and XLXSBJDMX_WHR = 'DY' ");
+ else
+ SQL.Add(" and XLXSBJDMX_XLBZID <> ' ' and XLXSBJDMX_DYDJID = ' ' and c.PPSL >= 1 ");//Æ¥ÅäÊýÁ¿µÈÓÚ1±íʾΨһƥÅä,ÎÞÐ迼ÂÇXLXSBJDMX_BJCPDYDJID
+ SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID ");
+
+ SQL.Add(" and c.XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID and c.XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and c.XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID ) ");
+ SQL.Add(" when matched then update set XLXSBJDMX_DYDJID =c.XLDYDJB_DYDJID ");
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ #endregion
+ }
+ else
+ {
+ ErrorNo = "5.2";
+ #region ¸ù¾ÝÐͺ𢹿¸ñ¡¢±ê×¼£¬Æ¥ÅäΨһµçѹµÈ¼¶
+ SQL.Clear();
+ SQL.Add(" merge into XLXSBJDMX tag ");
+ SQL.Add(" using ");
+ SQL.Add(" ( ");
+ SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID FROM XLXSCLQD a ");
+ SQL.Add(" where 1 = 1 and XLXSCLQD_WPID = 'ZZZZ' ");
+ SQL.Add(" and exists ( ");
+ SQL.Add(" SELECT XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID FROM XLXSCLQD b ");
+ SQL.Add(" WHERE 1 = 1 and a.XLXSCLQD_XLXHID = b.XLXSCLQD_XLXHID and a.XLXSCLQD_XLGGID = b.XLXSCLQD_XLGGID ");
+ SQL.Add(" and a.XLXSCLQD_XLBZID = b.XLXSCLQD_XLBZID");
+ SQL.Add(" and b.XLXSCLQD_WPID = 'ZZZZ' and exists( ");
+ SQL.Add(" select XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID from XLXSBJDMX WHERE XLXSBJDMX_XLXHID = XLXSCLQD_XLXHID ");
+ SQL.Add(" and XLXSBJDMX_XLGGID= XLXSCLQD_XLGGID ");
+ SQL.Add(" and XLXSBJDMX_XLBZID=XLXSCLQD_XLBZID");
+ SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID ");
+ SQL.Add(" ) ");
+ SQL.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID ");
+ SQL.Add(" having (count(XLXSCLQD_XLXHID) + count(XLXSCLQD_XLGGID) + count(XLXSCLQD_XLBZID)) = 3 ");
+ SQL.Add(" ) ");
+ SQL.Add(" ) c ");
+ SQL.Add(" on ( XLXSBJDMX_XLXHID <> ' ' and XLXSBJDMX_XLGGID <> ' ' ");
+ if (dberp.DriverName == "ORACLE")//OracleÏÂmerge intoÓï·¨±»¸üеÄ×ֶβ»ÄÜ×÷Ϊ¹ØÁªÌõ¼þʹÓã¬×¨ÃÅ´¦Àí
+ SQL.Add(" and XLXSBJDMX_WHR = 'DY' ");
+ else
+ SQL.Add(" and XLXSBJDMX_XLBZID <> ' ' and XLXSBJDMX_DYDJID = ' ' ");
+ SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID ");
+
+ SQL.Add(" and c.XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID and c.XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and c.XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID ) ");
+ SQL.Add(" when matched then update set XLXSBJDMX_DYDJID =c.XLXSCLQD_DYDJID ");
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ #endregion
+ }
+ }
+
+ if (dberp.DriverName == "ORACLE")//OracleÏÂmerge intoÓï·¨±»¸üеÄ×ֶβ»ÄÜ×÷Ϊ¹ØÁªÌõ¼þʹÓã¬×¨ÃÅ´¦Àí
+ {
+ SQL.Clear();
+ SQL.Add("update XLXSBJDMX set XLXSBJDMX_WHR=:pFlag");
+ SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID");
+ SQL.Add(" and XLXSBJDMX_XLBZID = ' ' and XLXSBJDMX_DYDJID <> ' '");
+
+ SQL.ParamByName("pFlag").Value = "BZ";
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ }
+ if (sDefXLBZID.Equals(""))
+ {
+ ErrorNo = "6.1";
+ #region ¸ù¾ÝÐͺ𢹿¸ñ¡¢µçѹµÈ¼¶£¬Æ¥ÅäΨһ±ê×¼
+ SQL.Clear();
+ SQL.Add(" merge into XLXSBJDMX tag ");
+ SQL.Add(" using ");
+ SQL.Add(" ( ");
+ SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID FROM XLXSCLQD a ");
+ SQL.Add(" where 1 = 1 and XLXSCLQD_WPID = 'ZZZZ' ");
+ SQL.Add(" and exists ( ");
+ SQL.Add(" SELECT XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_DYDJID FROM XLXSCLQD b ");
+ SQL.Add(" WHERE 1 = 1 and a.XLXSCLQD_XLXHID = b.XLXSCLQD_XLXHID and a.XLXSCLQD_XLGGID = b.XLXSCLQD_XLGGID ");
+ SQL.Add(" and a.XLXSCLQD_DYDJID = b.XLXSCLQD_DYDJID ");
+ SQL.Add(" and b.XLXSCLQD_WPID = 'ZZZZ' and exists( ");
+ SQL.Add(" select XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID,XLXSCLQD_DYDJID from XLXSBJDMX WHERE XLXSBJDMX_XLXHID = XLXSCLQD_XLXHID ");
+ SQL.Add(" and XLXSBJDMX_XLGGID= XLXSCLQD_XLGGID");
+ SQL.Add(" and XLXSBJDMX_DYDJID=XLXSCLQD_DYDJID");
+ SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID ");
+ SQL.Add(" ) ");
+ SQL.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_DYDJID ");
+ SQL.Add(" having (count(XLXSCLQD_XLXHID) + count(XLXSCLQD_XLGGID) + count(XLXSCLQD_DYDJID)) = 3 ");
+ SQL.Add(" ) ");
+ SQL.Add(" ) c ");
+ SQL.Add(" on ( XLXSBJDMX_XLXHID <> ' ' and XLXSBJDMX_XLGGID <> ' ' ");
+ if (dberp.DriverName == "ORACLE")//OracleÏÂmerge intoÓï·¨±»¸üеÄ×ֶβ»ÄÜ×÷Ϊ¹ØÁªÌõ¼þʹÓã¬×¨ÃÅ´¦Àí
+ SQL.Add(" and XLXSBJDMX_WHR = 'BZ' ");
+ else
+ SQL.Add(" and XLXSBJDMX_XLBZID = ' ' and XLXSBJDMX_DYDJID <> ' ' ");
+ SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID ");
+
+ SQL.Add(" and c.XLXSCLQD_XLXHID =XLXSBJDMX_XLXHID and c.XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and c.XLXSCLQD_DYDJID=XLXSBJDMX_DYDJID ) ");
+ SQL.Add(" when matched then update set XLXSBJDMX_XLBZID =c.XLXSCLQD_XLBZID,XLXSBJDMX_XDXLBZID=c.XLXSCLQD_XLBZID ");
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ #endregion
+ }
+ else if (sDefXLBZID.Equals("FirstBZ"))
+ {
+ ErrorNo = "6.2";
+ #region ¸ù¾ÝÐͺ𢹿¸ñ¡¢µçѹµÈ¼¶£¬Æ¥ÅäµÚÒ»¸ö±ê×¼
+ SQL.Clear();
+ SQL.Add(" merge into XLXSBJDMX tag ");
+ SQL.Add(" using ");
+ SQL.Add(" ( ");
+ SQL.Add(" select XLXSCLQD_XLXHID as XLXHID,XLXSCLQD_XLGGID as XLGGID,XLXSCLQD_DYDJID as DYDJID,isnull(XLBZ_XLBZID,' ') as XLBZID");
+ SQL.Add(" from");
+ SQL.Add(" (");
+ SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_DYDJID,min(isnull(XLBZPX,0)) as minXLBZPX FROM XLXSCLQD ");
+ SQL.Add(" left join (select row_number()over(order by XLBZ_DZSC,XLBZ_PX,XLBZ_XLBZID) as XLBZPX,XLBZ_XLBZID from XLBZ where 1=1) tmpXLBZ on XLBZ_XLBZID=XLXSCLQD_XLBZID");
+ SQL.Add(" where XLXSCLQD_WPID = 'ZZZZ' ");
+ SQL.Add(" and exists( ");
+ SQL.Add(" select 1 from XLXSBJDMX WHERE XLXSBJDMX_XLXHID = XLXSCLQD_XLXHID ");
+ SQL.Add(" and XLXSBJDMX_XLGGID= XLXSCLQD_XLGGID ");
+ SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID ");
+ SQL.Add(" ) ");
+ SQL.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_DYDJID");
+ SQL.Add(" ) clqd");
+ SQL.Add(" left join (select row_number()over(order by XLBZ_DZSC,XLBZ_PX,XLBZ_XLBZID) as XLBZPX,XLBZ_XLBZID from XLBZ where 1=1) tmpXLBZ on XLBZPX=minXLBZPX");
+ SQL.Add(" where 1=1");
+ SQL.Add(" ) c ");
+ SQL.Add(" on( XLXSBJDMX_XLXHID <> ' ' and XLXSBJDMX_XLGGID <> ' ' ");
+ if (dberp.DriverName == "ORACLE")//OracleÏÂmerge intoÓï·¨±»¸üеÄ×ֶβ»ÄÜ×÷Ϊ¹ØÁªÌõ¼þʹÓã¬×¨ÃÅ´¦Àí
+ SQL.Add(" and XLXSBJDMX_WHR = 'BZ' ");
+ else
+ SQL.Add(" and XLXSBJDMX_XLBZID = ' ' and XLXSBJDMX_DYDJID <> ' ' ");
+ SQL.Add(" and XLXSBJDMX_BJDID=:pBJDID ");
+
+ SQL.Add(" and c.XLXHID =XLXSBJDMX_XLXHID and c.XLGGID=XLXSBJDMX_XLGGID and c.DYDJID=XLXSBJDMX_DYDJID ) ");
+ SQL.Add(" when matched then update set XLXSBJDMX_XLBZID =c.XLBZID,XLXSBJDMX_XDXLBZID=c.XLBZID ");
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ #endregion
+ }
+
+ if (dberp.DriverName == "ORACLE")//OracleÏÂmerge intoÓï·¨±»¸üеÄ×ֶβ»ÄÜ×÷Ϊ¹ØÁªÌõ¼þʹÓã¬×¨ÃÅ´¦Àí
+ {
+ SQL.Clear();
+ SQL.Add("update XLXSBJDMX set XLXSBJDMX_WHR=:pWHR");
+ SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID");
+
+ SQL.Add(" and (XLXSBJDMX_WHR='BZ_DY' or XLXSBJDMX_WHR='DY' or XLXSBJDMX_WHR='BZ')");
+ SQL.ParamByName("pWHR").Value = CurSession.UserName;
+
+ SQL.ParamByName("pBJDID").Value = sSELBJDID;
+ dberp.ExecSQL(SQL);
+ }
+
+
+
+
+ }
+
+
+ #endregion
+
+
+
+
+ }
+
+ public class XLBZ
+ {
+ private string xlbzid="";
+ private string xlbzmc="";
+ public string XLBZID
+ {
+ get { return xlbzid; }
+ set { xlbzid = value; }
+ }
+ public string XLBZMC
+ {
+ get { return xlbzmc; }
+ set { xlbzmc = value; }
+ }
+ }
+
+ public class BJXX
+ {
+ private string jgbid;
+ private string bjrq;
+ private string bjflid;
+
+ public string JGBID
+ {
+ get { return jgbid; }
+ set { jgbid = value; }
+ }
+
+ public string BJRQ
+ {
+ get { return bjrq; }
+ set { bjrq = value; }
+ }
+
+ public string BJFLID
+ {
+ get { return bjflid; }
+ set { bjflid = value; }
+ }
+
+ }
+}