public bool SAPLoadData(ClsSAPDataParameter p_para) { bool Result = true; m_Conn = ClsUtility.GetConn(); string m_time = p_para.Sap_AEDAT.Substring(0, 6); #region 查询主表信息 ZC025 strZC025 = new ZC025(); DataTable dtZC025 = new DataTable(); try { StringBuilder sbSqlZC025 = new StringBuilder(); sbSqlZC025.Append(" select"); sbSqlZC025.Append(" a.RSNUM,a.RSDAT,a.CPUTM,a.ZJHLX0,a.ZJHLX0T,a.WERKS,a.ZJHLX1,a.ZJHLX1T,a.ZJHLX2,a.ZJHLX2T,"); sbSqlZC025.Append(" b.XMH,'' as MATNR,'' as MAKTX"); sbSqlZC025.Append(" from ZC10MMDG025 a ,(select count(RSPOS) XMH,RSNUM from RESB group by RSNUM) b"); sbSqlZC025.Append(" where b.RSNUM = a.RSNUM and substr(replace(a.rsdat,'.',''),0,6)='" + m_time + "'"); sbSqlZC025.Append(" union all "); sbSqlZC025.Append(" select"); sbSqlZC025.Append(" a.RSNUM,a.RSDAT,a.CPUTM,a.ZJHLX0,a.ZJHLX0T,a.WERKS,a.ZJHLX1,a.ZJHLX1T,a.ZJHLX2,a.ZJHLX2T,"); sbSqlZC025.Append(" b.XMH,'' as MATNR,'' as MAKTX"); sbSqlZC025.Append(" from ZC10MMDG025 a ,(select count(POSNR) XMH,vbeln from VBAP group by vbeln) b"); sbSqlZC025.Append(" where b.vbeln = a.RSNUM and substr(replace(a.rsdat,'.',''),0,6)='" + m_time + "'"); dtZC025 = m_Conn.GetSqlResultToDt(sbSqlZC025.ToString()); } catch (Exception exception) { Result = false; ClsErrorLogInfo.WriteSapLog("1", "cg", "ALL", p_para.Sap_AEDAT, "插入hb_wzcg表过程中查询ZC10MMDG025表发生异常:\t\n" + exception); return(Result); } DataTable dtZC025B = new DataTable(); try { string sbSqlZC025B = " select"; sbSqlZC025B += " REQ_NUM,BDTER,CPUTM,count(REQ_ITEM) as REQ_ITEM,ZJHLX0,WERKS,ZJHLX1,ZJHLX2 "; sbSqlZC025B += " from ZC10MMDG025B WHERE (XLOEK<>'X' or XLOEK IS NULL) and substr(replace(BDTER, '.', ''), 0, 6) = '" + m_time + "'"; sbSqlZC025B += " group by REQ_NUM,BDTER,CPUTM,ZJHLX0,WERKS,ZJHLX1,ZJHLX2"; dtZC025B = m_Conn.GetSqlResultToDt(sbSqlZC025B); } catch (Exception exception) { Result = false; ClsErrorLogInfo.WriteSapLog("1", "cg", "ALL", p_para.Sap_AEDAT, "插入hb_wzcg表过程中查询ZC10MMDG025B表发生异常:\t\n" + exception); return(Result); } DataRow drZC025 = null; foreach (DataRow subRowZC025B in dtZC025B.Rows) { drZC025 = dtZC025.NewRow(); drZC025["RSNUM"] = subRowZC025B["REQ_NUM"].ToString(); //需求计划号 drZC025["XMH"] = subRowZC025B["REQ_ITEM"].ToString(); //需求项目号 drZC025["ZJHLX0"] = subRowZC025B["ZJHLX0"].ToString(); //需求计划类型 drZC025["ZJHLX0T"] = string.Empty; //需求计划文本 drZC025["ZJHLX1"] = subRowZC025B["ZJHLX1"].ToString(); //需求计划类型1 drZC025["ZJHLX1T"] = string.Empty; //需求计划文本1 drZC025["ZJHLX2"] = subRowZC025B["ZJHLX2"].ToString(); //需求计划类型2 drZC025["ZJHLX2T"] = string.Empty; //需求计划文本2 drZC025["RSDAT"] = subRowZC025B["BDTER"].ToString(); //需求计划提报日期 drZC025["CPUTM"] = subRowZC025B["CPUTM"].ToString(); //需求计划提报时间 drZC025["WERKS"] = subRowZC025B["WERKS"].ToString(); //工厂 drZC025["MATNR"] = string.Empty; //物料号 drZC025["MAKTX"] = string.Empty; //物料描述 dtZC025.Rows.Add(drZC025); } #endregion DataTable dtGC = new DataTable(); try { string sbGC = " select * from T001W"; dtGC = m_Conn.GetSqlResultToDt(sbGC); } catch (Exception exception) { Result = false; ClsErrorLogInfo.WriteSapLog("1", "cg", "ALL", p_para.Sap_AEDAT, "插入hb_wzcg表过程中查询ZC10MMDG025B表发生异常:\t\n" + exception); return(Result); } int commitcount = 0; int commitMax = 10; strBuilder.Length = 0; strBuilder.Append(" Begin "); //开始执行SQL foreach (DataRow subRowZC025 in dtZC025.Rows) { strBuilder.Append(" DELETE FROM HB_WZCG WHERE WL_JHH='" + subRowZC025["RSNUM"].ToString() + "';"); strZC025.strRSNUM = subRowZC025["RSNUM"].ToString(); //需求计划号 strZC025.strRSPOS = subRowZC025["XMH"].ToString(); //需求项目号 strZC025.strZJHLXO = subRowZC025["ZJHLX0"].ToString(); //需求计划类型 strZC025.strZJHLX0T = subRowZC025["ZJHLX0T"].ToString(); //需求计划文本 strZC025.strZJHLX1 = subRowZC025["ZJHLX1"].ToString(); //需求计划类型1 strZC025.strZJHLX1T = subRowZC025["ZJHLX1T"].ToString(); //需求计划文本1 strZC025.strZJHLX2 = subRowZC025["ZJHLX2"].ToString(); //需求计划类型2 strZC025.strZJHLX2T = subRowZC025["ZJHLX2T"].ToString(); //需求计划文本2 strZC025.strRSDAT = subRowZC025["RSDAT"].ToString(); //需求计划提报日期 strZC025.strCPUTM = subRowZC025["CPUTM"].ToString(); //需求计划提报时间 strZC025.strWERKS = subRowZC025["WERKS"].ToString(); //工厂 strZC025.strWERKSTXT = dtGC.Select("WERKS='" + subRowZC025["WERKS"].ToString() + "'")[0]["NAME1"].ToString(); //工厂 strZC025.strMATNR = subRowZC025["MATNR"].ToString(); //物料号 strZC025.strMAKTX = subRowZC025["MAKTX"].ToString(); //物料描述 //if (!string.IsNullOrEmpty(strZC025.strWERKS)) //{ // try // { // //按RSNUM汇总预计采购金额 // string strSqlT001 = "SELECT T.BUTXT FROM T001 T WHERE T.BUKRS='" + strZC025.strWERKS + "' "; // strZC025.strWERKSTXT = m_Conn.GetSqlResultToStr(strSqlT001); // } // catch (Exception exception2) // { // Result = false; // ClsErrorLogInfo.WriteSapLog("1", "cg", "ALL", p_para.Sap_AEDAT, "插入hb_wzcg表过程中查询T001表发生异常:\t\n" + exception2); // return Result; // } //} #region 026公司级取数 OtherData otherdata026 = new OtherData(); string strSqlZC026 = string.Empty; try { //按RSNUM汇总预计采购金额 strSqlZC026 = "select sum(Z_BRTWR) as Z_BRTWR from ZC10MMDG026 "; strSqlZC026 += " where RSNUM='" + strZC025.strRSNUM + "'"; otherdata026.strYBRTWR = m_Conn.GetSqlResultToStr(strSqlZC026); } catch (Exception exception2) { Result = false; ClsErrorLogInfo.WriteSapLog("1", "cg", "ALL", p_para.Sap_AEDAT, "插入hb_wzcg表过程中查询ZC10MMDG026表发生异常:\t\n" + exception2); return(Result); } try { //完成采购条数 strSqlZC026 = "select count(1) Z_BRTWR from ZC10MMDG026 "; strSqlZC026 += " where RSNUM='" + strZC025.strRSNUM + "' and zebeln is not null"; otherdata026.strEBELNCount = m_Conn.GetSqlResultToStr(strSqlZC026); } catch (Exception exception2) { Result = false; ClsErrorLogInfo.WriteSapLog("1", "cg", "ALL", p_para.Sap_AEDAT, "插入hb_wzcg表过程中查询ZC10MMDG026表发生异常:\t\n" + exception2); return(Result); } try { //汇总BRTWR,输出(完成采购金额) string strSqlEKPO = "SELECT SUM(B.BRTWR) FROM ZC10MMDG026 A ,EKPO B WHERE A.ZEBELN=B.EBELN AND A.ZEBELP=B.EBELP"; strSqlEKPO += " AND A.RSNUM='" + strZC025.strRSNUM + "'"; otherdata026.strBRTWR = m_Conn.GetSqlResultToStr(strSqlEKPO); } catch (Exception exception2) { Result = false; ClsErrorLogInfo.WriteSapLog("1", "cg", "ALL", p_para.Sap_AEDAT, "插入hb_wzcg表过程中查询ZC10MMDG026表发生异常:\t\n" + exception2); return(Result); } #endregion #region 203_HZ二级单位 OtherData otherdata203 = new OtherData(); try { //汇总PREIS 输出(预计采购金额) string strSqlZP203_HZ = "select SUM(B.PREIS* MENGE)"; strSqlZP203_HZ += " from ZP10MMDG203_HZ A ,EBAN B"; strSqlZP203_HZ += " WHERE A.BANFN=B.BANFN AND A.BNFPO=B.BNFPO "; strSqlZP203_HZ += " and A.RSNUM='" + strZC025.strRSNUM + "'"; otherdata203.strYBRTWR = m_Conn.GetSqlResultToStr(strSqlZP203_HZ); } catch (Exception exception2) { Result = false; ClsErrorLogInfo.WriteSapLog("1", "cg", "ALL", p_para.Sap_AEDAT, "插入hb_wzcg表过程中查询EBAN表发生异常:\t\n" + exception2); return(Result); } try { //汇总BRTWR,输出(完成采购金额) string strSqlEKPO = "select SUM(B.BRTWR)"; strSqlEKPO += " from ZP10MMDG203_HZ A ,EKPO B"; strSqlEKPO += " WHERE A.BNFPO=B.BNFPO AND A.BANFN=B.BANFN"; strSqlEKPO += " and A.RSNUM='" + strZC025.strRSNUM + "'"; otherdata203.strBRTWR = m_Conn.GetSqlResultToStr(strSqlEKPO); } catch (Exception exception2) { Result = false; ClsErrorLogInfo.WriteSapLog("1", "cg", "ALL", p_para.Sap_AEDAT, "插入hb_wzcg表过程中查询EKPO表发生异常:\t\n" + exception2); return(Result); } try { //汇总EBELP条数,输出(完成采购条数) string strSqlEKPO = "select COUNT(1)"; strSqlEKPO += " from ZP10MMDG203_HZ A ,EKPO B"; strSqlEKPO += " WHERE A.BNFPO=B.BNFPO AND A.BANFN=B.BANFN"; strSqlEKPO += " and A.RSNUM='" + strZC025.strRSNUM + "'"; otherdata203.strEBELNCount = m_Conn.GetSqlResultToStr(strSqlEKPO); } catch (Exception exception2) { Result = false; ClsErrorLogInfo.WriteSapLog("1", "cg", "ALL", p_para.Sap_AEDAT, "插入hb_wzcg表过程中查询EKPO表发生异常:\t\n" + exception2); return(Result); } #endregion OtherData otherdata = new OtherData(); DataTable dtOther = new DataTable(); try { //汇总EBELP条数,输出(完成采购条数) StringBuilder sb = new StringBuilder(); sb.Append(" SELECT SUM(TS) TS, SUM(DMBTR) DMBTR"); sb.Append(" FROM (select COUNT(1) AS TS, SUM(C.DMBTR) AS DMBTR"); sb.Append(" from ZP10MMDG203_HZ A, EKPO B, MSEG C"); sb.Append(" WHERE A.BNFPO = B.BNFPO"); sb.Append(" AND A.BANFN = B.BANFN"); sb.Append(" AND B.EBELN = C.EBELN"); sb.Append(" AND B.EBELP = C.EBELP"); sb.Append(" AND (C.BWART='101' OR C.BWART='105') "); sb.Append(" AND A.RSNUM='" + strZC025.strRSNUM + "'"); sb.Append(" UNION ALL"); sb.Append(" SELECT COUNT(1) AS TS, SUM(B.DMBTR) AS DMBTR"); sb.Append(" FROM ZC10MMDG026 A, MSEG B "); sb.Append(" WHERE A.ZEBELN = B.EBELN"); sb.Append(" AND A.ZEBELP = B.EBELP"); sb.Append(" AND (B.BWART ='101' OR B.BWART ='105')"); sb.Append(" AND A.RSNUM='" + strZC025.strRSNUM + "')"); dtOther = m_Conn.GetSqlResultToDt(sb.ToString()); } catch (Exception exception2) { Result = false; ClsErrorLogInfo.WriteSapLog("1", "cg", "ALL", p_para.Sap_AEDAT, "插入hb_wzcg表过程中查询MSEG表发生异常:\t\n" + exception2); return(Result); } decimal YBRTWR026 = Convert.ToDecimal(string.IsNullOrEmpty(otherdata026.strYBRTWR) ? "0" : otherdata026.strYBRTWR); decimal YBRTWR203 = Convert.ToDecimal(string.IsNullOrEmpty(otherdata203.strYBRTWR) ? "0" : otherdata203.strYBRTWR); otherdata.strYBRTWR = (YBRTWR026 + YBRTWR203).ToString("F2"); //预计采购金额 decimal EBELNCount026 = Convert.ToDecimal(string.IsNullOrEmpty(otherdata026.strEBELNCount) ? "0" : otherdata026.strEBELNCount); decimal EBELNCount203 = Convert.ToDecimal(string.IsNullOrEmpty(otherdata203.strEBELNCount) ? "0" : otherdata203.strEBELNCount); otherdata.strEBELNCount = (EBELNCount026 + EBELNCount203).ToString("F0"); //采购凭证条数 decimal BRTWR026 = Convert.ToDecimal(string.IsNullOrEmpty(otherdata026.strBRTWR) ? "0" : otherdata026.strBRTWR); decimal BRTWR203 = Convert.ToDecimal(string.IsNullOrEmpty(otherdata203.strBRTWR) ? "0" : otherdata203.strBRTWR); otherdata.strBRTWR = (BRTWR026 + BRTWR203).ToString("F2"); //采购订单总价 if (dtOther != null && dtOther.Rows.Count > 0) { otherdata.strEBELPCount = (dtOther.Rows[0]["TS"] ?? "0").ToString(); //采购订单行项目条数 otherdata.strDMBTR = (dtOther.Rows[0]["DMBTR"] ?? "0").ToString(); //本位币金额 } #region 插入sql strBuilder.Append(" INSERT INTO HB_WZCG"); strBuilder.Append(" (WL_ID,WL_JHH,WL_XMH,WL_LX ,WL_WB ,WL_LX1,WL_WB1,WL_LX2,WL_WB2,"); strBuilder.Append(" WL_JHTBRQ,WL_JHTBSJ,WL_GC,WL_GCMC,WL_WL,WL_WLMS,WL_YJCGJE,"); strBuilder.Append(" WL_CGPZTS,WL_CGDDZJ,WL_BWBJE,WL_CGDDTS"); strBuilder.Append(" ) VALUES("); strBuilder.Append("SQ_WZCG.NEXTVAL,"); strBuilder.Append("'" + strZC025.strRSNUM + "',"); //需求计划号 strBuilder.Append("'" + strZC025.strRSPOS + "',"); //需求项目号 strBuilder.Append("'" + strZC025.strZJHLXO + "',"); //需求计划类型 strBuilder.Append("'" + strZC025.strZJHLX0T + "',"); //需求计划文本 strBuilder.Append("'" + strZC025.strZJHLX1 + "',"); //需求计划类型1 strBuilder.Append("'" + strZC025.strZJHLX1T + "',"); //需求计划文本1 strBuilder.Append("'" + strZC025.strZJHLX2 + "',"); //需求计划类型2 strBuilder.Append("'" + strZC025.strZJHLX2T + "',"); //需求计划文本2 strBuilder.Append("'" + strZC025.strRSDAT.Replace(".", "") + "',"); //需求计划提报日期 strBuilder.Append("'" + strZC025.strCPUTM + "',"); //需求计划提报时间 strBuilder.Append("'" + strZC025.strWERKS + "',"); //工厂 strBuilder.Append("'" + strZC025.strWERKSTXT + "',"); //工厂 strBuilder.Append("'" + strZC025.strMATNR + "',"); //物料号 strBuilder.Append("'" + strZC025.strMAKTX + "',"); //物料描述 strBuilder.Append("'" + otherdata.strYBRTWR + "',"); //预计采购金额 strBuilder.Append("'" + otherdata.strEBELNCount + "',"); //采购凭证条数 strBuilder.Append("'" + otherdata.strBRTWR + "',"); //采购订单总价 strBuilder.Append("'" + otherdata.strDMBTR + "',"); //本位币金额 strBuilder.Append("'" + otherdata.strEBELPCount + "'"); //采购订单行项目条数 strBuilder.Append(");"); #endregion commitcount++; if (commitcount % commitMax == 0) { strBuilder.Append(" End;"); //SQL完成 try { //数据提交 Result = ClsUtility.ExecuteSqlToDb(strBuilder.ToString()); strBuilder.Clear(); strBuilder.Append(" Begin "); //开始执行SQL } catch (Exception exception5) { Result = false; ClsErrorLogInfo.WriteSapLog("1", "cgsj", "ALL", p_para.Sap_AEDAT, "插入hb_wzcgsj表发生异常:" + exception5); } } } //SQL完成 try { if (strBuilder.ToString().Length < 14) { return(true); } strBuilder.Append(" End;"); //数据提交 Result = ClsUtility.ExecuteSqlToDb(strBuilder.ToString()); } catch (Exception exception5) { Result = false; ClsErrorLogInfo.WriteSapLog("1", "cgsj", "ALL", p_para.Sap_AEDAT, "插入hb_wzcgsj表发生异常:" + exception5); } return(Result); }
public bool SAPLoadData(ClsSAPDataParameter p_para) { bool Result = true; m_Conn = ClsUtility.GetConn(); #region 查询主表信息 ZC025 strZC025 = new ZC025(); DataTable dtZC025 = new DataTable(); try { StringBuilder sbSqlZC025 = new StringBuilder(); sbSqlZC025.Append(" select"); sbSqlZC025.Append(" a.RSNUM,a.RSDAT,a.CPUTM,a.ZJHLX0,a.ZJHLX0T,a.WERKS,"); sbSqlZC025.Append(" to_number(b.RSPOS) as XMH,b.MATNR,'' MAKTX,'' MATKL,'' WGBEZ,'' ERDAT,'' ERZET"); sbSqlZC025.Append(" from ZC10MMDG025 a ,RESB b where a.RSNUM=b.RSNUM and a.DLDATE='" + p_para.Sap_AEDAT + "'"); sbSqlZC025.Append(" union all "); sbSqlZC025.Append(" select"); sbSqlZC025.Append(" a.RSNUM,a.RSDAT,a.CPUTM,a.ZJHLX0,a.ZJHLX0T,a.WERKS,"); sbSqlZC025.Append(" to_number(b.POSNR) as XMH,b.MATNR,b.ARKTX MAKTX,'' MATKL,'' WGBEZ,b.ERDAT,b.ERZET"); sbSqlZC025.Append(" from ZC10MMDG025 a ,VBAP b where a.RSNUM=b.vbeln and a.DLDATE='" + p_para.Sap_AEDAT + "'"); sbSqlZC025.Append(" union "); sbSqlZC025.Append(" select"); sbSqlZC025.Append(" a.RSNUM,a.RSDAT,a.CPUTM,a.ZJHLX0,a.ZJHLX0T,a.WERKS,"); sbSqlZC025.Append(" to_number(b.RSPOS)as XMH,b.MATNR,'' MAKTX,'' MATKL,'' WGBEZ,'' ERDAT,'' ERZET"); sbSqlZC025.Append(" from ZC10MMDG025 a ,ZC10MMDG026 b where a.RSNUM=b.RSNUM and a.DLDATE='" + p_para.Sap_AEDAT + "'"); sbSqlZC025.Append(" union "); sbSqlZC025.Append(" select"); sbSqlZC025.Append(" a.RSNUM,a.RSDAT,a.CPUTM,a.ZJHLX0,a.ZJHLX0T,a.WERKS,"); sbSqlZC025.Append(" to_number(b.RSPOS) as XMH,b.MATNR,'' MAKTX,'' MATKL,'' WGBEZ,'' ERDAT,'' ERZET"); sbSqlZC025.Append(" from ZC10MMDG025 a ,ZP10MMDG203_HZ b where a.RSNUM=b.RSNUM and a.DLDATE='" + p_para.Sap_AEDAT + "'"); dtZC025 = m_Conn.GetSqlResultToDt(sbSqlZC025.ToString()); } catch (Exception exception) { Result = false; ClsErrorLogInfo.WriteSapLog("1", "cgsj", "ALL", p_para.Sap_AEDAT, "插入hb_wz表过程中查询ZC10MMDG025表发生异常:\t\n" + exception); return(Result); } DataTable dtZC025B = new DataTable(); try { string sbSqlZC025B = " select"; sbSqlZC025B += " REQ_NUM,BDTER,CPUTM,REQ_ITEM,MATNR,ZJHLX0,WERKS,MAKTX,MATKL,WGBEZ,ZJHLX1,ZJHLX2,BWART"; sbSqlZC025B += " from ZC10MMDG025B WHERE REQ_NUM IS NOT NULL and DLDATE='" + p_para.Sap_AEDAT + "'"; dtZC025B = m_Conn.GetSqlResultToDt(sbSqlZC025B); } catch (Exception exception) { Result = false; ClsErrorLogInfo.WriteSapLog("1", "cgsj", "ALL", p_para.Sap_AEDAT, "插入hb_wz表过程中查询ZC10MMDG025B表发生异常:\t\n" + exception); return(Result); } DataRow drZC025 = null; foreach (DataRow subRowZC025B in dtZC025B.Rows) { drZC025 = dtZC025.NewRow(); drZC025["RSNUM"] = subRowZC025B["REQ_NUM"].ToString(); //需求计划号 drZC025["RSDAT"] = subRowZC025B["BDTER"].ToString(); //需求计划提报日期 drZC025["CPUTM"] = subRowZC025B["CPUTM"].ToString(); //需求计划提报时间 drZC025["ZJHLX0"] = subRowZC025B["ZJHLX0"].ToString(); //需求计划类型 drZC025["ZJHLX0T"] = string.Empty; //需求计划文本 drZC025["WERKS"] = subRowZC025B["WERKS"].ToString(); //工厂 drZC025["XMH"] = subRowZC025B["REQ_ITEM"].ToString(); //需求项目号 drZC025["MATNR"] = subRowZC025B["MATNR"].ToString(); //物料号 drZC025["MAKTX"] = subRowZC025B["MAKTX"].ToString(); //物料描述 drZC025["MATKL"] = subRowZC025B["MATKL"].ToString(); //物料组 drZC025["WGBEZ"] = subRowZC025B["WGBEZ"].ToString(); //物料组描述 drZC025["ERDAT"] = string.Empty; //创建日期 drZC025["ERZET"] = string.Empty; //创建时间 dtZC025.Rows.Add(drZC025); } #endregion int commitcount = 0; int commitMax = 500; strBuilder.Length = 0; strBuilder.Append(" Begin "); //开始执行SQL List <string> ls = new List <string>(); foreach (DataRow subRowZC025 in dtZC025.Rows) { if (!ls.Contains(subRowZC025["RSNUM"].ToString())) { strBuilder.Append(" DELETE FROM HB_WZ WHERE WL_JHH='" + subRowZC025["RSNUM"].ToString() + "';"); ls.Add(subRowZC025["RSNUM"].ToString()); } strZC025.strRSNUM = subRowZC025["RSNUM"].ToString(); //需求计划号 strZC025.strRSDAT = subRowZC025["RSDAT"].ToString().Replace(".", ""); //需求计划提报日期 strZC025.strCPUTM = subRowZC025["CPUTM"].ToString(); //需求计划提报时间 strZC025.strZJHLXO = subRowZC025["ZJHLX0"].ToString(); //需求计划类型 strZC025.strZJHLX0T = subRowZC025["ZJHLX0T"].ToString(); //需求计划文本 strZC025.strWERKS = subRowZC025["WERKS"].ToString(); //工厂 strZC025.strRSPOS = subRowZC025["XMH"].ToString(); //需求项目号 strZC025.strMATNR = subRowZC025["MATNR"].ToString(); //物料号 strZC025.strARKTX = subRowZC025["MAKTX"].ToString(); //物料描述 strZC025.strMATKL = subRowZC025["MATKL"].ToString(); //物料组 strZC025.strWGBEZ = subRowZC025["WGBEZ"].ToString(); //物料组描述 strZC025.strERDAT = subRowZC025["ERDAT"].ToString(); //创建日期 strZC025.strERZET = subRowZC025["ERZET"].ToString(); //创建时间 //工厂名称 DataTable dtGC = new DataTable(); try { string sbGC = " select name1 from T001W where WERKS='" + strZC025.strWERKS + "'"; dtGC = m_Conn.GetSqlResultToDt(sbGC); } catch (Exception exception) { Result = false; ClsErrorLogInfo.WriteSapLog("1", "cg", "ALL", p_para.Sap_AEDAT, "插入hb_wzcg表过程中查询ZC10MMDG025B表发生异常:\t\n" + exception); return(Result); } if (dtGC != null && dtGC.Rows.Count > 0) { strZC025.strWNAME = (dtGC.Rows[0]["NAME1"] ?? string.Empty).ToString(); } #region 采购 DataTable dtZC026 = new DataTable(); try { string strSqlZC026 = "select RSNUM,RSPOS,AEDAT,MATNR,MAKTX,MATKL,"; strSqlZC026 += " WGBEZ,ZEBELN,ZEBELP"; strSqlZC026 += " from ZC10MMDG026"; strSqlZC026 += " where RSNUM='" + strZC025.strRSNUM + "' and TO_NUMBER(RSPOS)=" + Convert.ToInt16(strZC025.strRSPOS).ToString(); dtZC026 = m_Conn.GetSqlResultToDt(strSqlZC026); } catch (Exception exception2) { Result = false; ClsErrorLogInfo.WriteSapLog("1", "cgsj", "ALL", p_para.Sap_AEDAT, "插入hb_wz表过程中查询ZC10MMDG026表发生异常:\t\n" + exception2); return(Result); } //二级单位 DataTable dtZP203_HZ = new DataTable(); try { string strSqlZP203_HZ = "select BANFN,BNFPO,AEDAT,MATNR,MATKL,EBELN,EBELP"; strSqlZP203_HZ += " from ZP10MMDG203_HZ"; strSqlZP203_HZ += " where RSNUM='" + strZC025.strRSNUM + "' and TO_NUMBER(RSPOS)=" + Convert.ToInt16(strZC025.strRSPOS); strSqlZP203_HZ += " and MATNR='" + strZC025.strMATNR + "'"; dtZP203_HZ = m_Conn.GetSqlResultToDt(strSqlZP203_HZ); } catch (Exception exception2) { Result = false; ClsErrorLogInfo.WriteSapLog("1", "cgsj", "ALL", p_para.Sap_AEDAT, "插入hb_wz表过程中查询ZP10MMDG203_HZ表发生异常:\t\n" + exception2); return(Result); } //二级单位和公司级合并数据 if (dtZP203_HZ != null && dtZP203_HZ.Rows.Count > 0) { DataRow drZC026 = null; foreach (DataRow subRowZP203 in dtZP203_HZ.Rows) { drZC026 = dtZC026.NewRow(); drZC026["RSNUM"] = subRowZP203["BANFN"].ToString(); //采购申请号 drZC026["RSPOS"] = subRowZP203["BNFPO"].ToString(); //采购申请行项目号 drZC026["AEDAT"] = subRowZP203["AEDAT"].ToString(); //采购申请生成日期 drZC026["MATNR"] = subRowZP203["MATNR"].ToString(); //采购物料号 drZC026["MAKTX"] = string.Empty; //采购物料描述 drZC026["MATKL"] = subRowZP203["MATKL"].ToString(); //采购物料组 drZC026["WGBEZ"] = string.Empty; //采购物料组描述 drZC026["ZEBELN"] = subRowZP203["EBELN"].ToString(); //采购订单 drZC026["ZEBELP"] = subRowZP203["EBELP"].ToString(); //采购订单项目号 dtZC026.Rows.Add(drZC026); } } #endregion ZC026 strZC026 = new ZC026(); foreach (DataRow subRowZC026 in dtZC026.Rows) { strZC026.strZCGJHNUM = subRowZC026["RSNUM"].ToString(); //采购计划号 strZC026.strZCGJHPOS = subRowZC026["RSPOS"].ToString(); //采购计划项目 strZC026.strAEDAT = subRowZC026["AEDAT"].ToString(); //采购申请生成日期 strZC026.strMATNR = subRowZC026["MATNR"].ToString(); //采购物料号 strZC026.strMAKTX = subRowZC026["MAKTX"].ToString(); //采购物料描述 strZC026.strMATKL = subRowZC026["MATKL"].ToString(); //采购物料组 strZC026.strWGBEZ = subRowZC026["WGBEZ"].ToString(); //采购物料组描述 strZC026.strZEBELN = subRowZC026["ZEBELN"].ToString(); //采购订单 strZC026.strZEBELP = subRowZC026["ZEBELP"].ToString(); //采购订单项目号 DataTable dtEKPO = new DataTable(); if (strZC026.strZEBELN != null && strZC026.strZEBELN != "") { try { string strSqlEKPO = "select EBELN,EBELP,BUKRS,AEDAT,NETPR,MENGE,NETWR,MEINS from EKPO"; strSqlEKPO += " where EBELN='" + strZC026.strZEBELN + "' and EBELP ='" + strZC026.strZEBELP + "'"; strSqlEKPO += " and (LOEKZ<>'L' or LOEKZ IS NULL)"; dtEKPO = m_Conn.GetSqlResultToDt(strSqlEKPO); } catch (Exception exception2) { Result = false; ClsErrorLogInfo.WriteSapLog("1", "cgsj", "ALL", p_para.Sap_AEDAT, "插入hb_wz表过程中查询EKPO表发生异常:\t\n" + exception2); return(Result); } } else { try { string strSqlEKPO = "select EBELN,EBELP,BUKRS,AEDAT,NETPR,MENGE,NETWR,MEINS from EKPO"; strSqlEKPO += " where BANFN='" + strZC026.strZCGJHNUM + "' and TO_NUMBER(BNFPO)=" + Convert.ToInt16(strZC026.strZCGJHPOS); strSqlEKPO += " and (LOEKZ<>'L' or LOEKZ IS NULL)"; dtEKPO = m_Conn.GetSqlResultToDt(strSqlEKPO); } catch (Exception exception2) { Result = false; ClsErrorLogInfo.WriteSapLog("1", "cgsj", "ALL", p_para.Sap_AEDAT, "插入hb_wz表过程中查询EKPO表发生异常:\t\n" + exception2); } } if (dtEKPO != null && dtEKPO.Rows.Count > 0) { strZC026.strZEBELN = (dtEKPO.Rows[0]["EBELN"] ?? string.Empty).ToString(); //采购订单 strZC026.strZEBELP = (dtEKPO.Rows[0]["EBELP"] ?? string.Empty).ToString(); //采购订单项目号 } #region 采购订单生成 if (dtEKPO != null && dtEKPO.Rows.Count > 0) { foreach (DataRow subRowEKPO in dtEKPO.Rows) { #region EKKO数据查询 EKKPO strEKKPO = new EKKPO(); strEKKPO.strMENGE = subRowEKPO["MENGE"].ToString(); strEKKPO.strNETWR = subRowEKPO["NETWR"].ToString(); strEKKPO.strNETPR = subRowEKPO["NETPR"].ToString(); strEKKPO.strMEINS = subRowEKPO["MEINS"].ToString(); DataTable dtEKKO = new DataTable(); try { string strSqlEKKO = "select a.AEDAT,a.LIFNR,b.NAME1 from EKKO a,LFA1 b ";//ERP1.0取数方式 strSqlEKKO += " where a.EBELN='" + subRowEKPO["EBELN"].ToString() + "'"; strSqlEKKO += " and a.LIFNR=b.LIFNR"; dtEKKO = m_Conn.GetSqlResultToDt(strSqlEKKO); } catch (Exception exception2) { Result = false; ClsErrorLogInfo.WriteSapLog("1", "cgsj", "ALL", p_para.Sap_AEDAT, "插入hb_wz表过程中查询EKPO表发生异常:\t\n" + exception2); return(Result); } if (dtEKKO != null && dtEKKO.Rows.Count > 0) { strEKKPO.strAEDAT = (dtEKKO.Rows[0]["AEDAT"] ?? string.Empty).ToString(); strEKKPO.strLIFNR = (dtEKKO.Rows[0]["LIFNR"] ?? string.Empty).ToString(); strEKKPO.strNAME1 = (dtEKKO.Rows[0]["NAME1"] ?? string.Empty).ToString(); } #endregion #region 插入sql strBuilder.Append(" INSERT INTO HB_WZ"); strBuilder.Append(" (WL_ID,WL_JHH,WL_JHLX,WL_JHLXWB,WL_GC,WL_GCMC,WL_XMH"); strBuilder.Append(",WL_WL,WL_WLMS,WL_WLZ,WL_WLZMS,WL_JHCJRQ,WL_CGDD,WL_CGDDXMH"); strBuilder.Append(",WL_GYS,WL_GYSMC,WL_CGSL,WL_JLDW,WL_CGDJ,WL_CGZJ,WL_CGDDRQ)"); strBuilder.Append(" VALUES("); strBuilder.Append("SQ_WZCGSJ.NEXTVAL,"); strBuilder.Append("'" + strZC025.strRSNUM + "',"); //需求计划号 strBuilder.Append("'" + strZC025.strZJHLXO + "',"); //需求计划类型 strBuilder.Append("'" + strZC025.strZJHLX0T + "',"); //需求计划文本 strBuilder.Append("'" + strZC025.strWERKS + "',"); //工厂 strBuilder.Append("'" + strZC025.strWNAME + "',"); //工厂名称 strBuilder.Append("'" + strZC025.strRSPOS + "',"); //需求项目号 strBuilder.Append("'" + strZC026.strMATNR + "',"); //采购物料号 strBuilder.Append("'" + strZC026.strMAKTX + "',"); //采购物料描述 strBuilder.Append("'" + strZC026.strMATKL + "',"); //采购物料组 strBuilder.Append("'" + strZC026.strWGBEZ + "',"); //采购物料组描述 strBuilder.Append("'" + strZC025.strRSDAT + "',"); //需求计划提报日期 strBuilder.Append("'" + strZC026.strZEBELN + "',"); //采购订单 strBuilder.Append("'" + strZC026.strZEBELP + "',"); //采购订单项目号 strBuilder.Append("'" + strEKKPO.strLIFNR + "',"); //供应商 strBuilder.Append("'" + strEKKPO.strNAME1 + "',"); //供应商名称 strBuilder.Append("'" + strEKKPO.strMENGE + "',"); //采购数量 strBuilder.Append("'" + strEKKPO.strMEINS + "',"); //采购数量 strBuilder.Append("'" + strEKKPO.strNETPR + "',"); //采购单价 strBuilder.Append("'" + strEKKPO.strNETWR + "',"); //采购总价 strBuilder.Append("'" + strEKKPO.strAEDAT + "'"); //采购订单创建日期 strBuilder.Append(");"); #endregion #region 提交sql commitcount++; if (commitcount % commitMax == 0) { strBuilder.Append(" End;"); //SQL完成 try { if (strBuilder.ToString().Length < 14) { strBuilder.Length = 0; strBuilder.Append(" Begin "); //开始执行SQL continue; } //数据提交 Result = ClsUtility.ExecuteSqlToDb(strBuilder.ToString()); strBuilder.Length = 0; strBuilder.Append(" Begin "); //开始执行SQL } catch (Exception exception5) { Result = false; ClsErrorLogInfo.WriteSapLog("1", "cgsj", "ALL", p_para.Sap_AEDAT, "插入hb_wz表发生异常:" + exception5); } } #endregion #endregion } } } } strBuilder.Append(" End;"); //SQL完成 try { if (strBuilder.ToString().Length < 14) { return(true); } //数据提交 Result = ClsUtility.ExecuteSqlToDb(strBuilder.ToString()); } catch (Exception exception5) { Result = false; ClsErrorLogInfo.WriteSapLog("1", "cgsj", "ALL", p_para.Sap_AEDAT, "插入hb_wz表发生异常:" + exception5); } return(Result); }