| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using Dongke.IBOSS.PRD.Basics.DataAccess;
- using Dongke.IBOSS.PRD.Service.SAPHegiiDataService;
- using Dongke.IBOSS.PRD.Service.SAPHegiiDataService.HGSAPDK_ZPPFM008;
- using Dongke.IBOSS.PRD.Service.SAPHegiiDataService.HGSAPDK_ZPPFM010;
- using Dongke.IBOSS.PRD.WCF.DataModels;
- using Oracle.ManagedDataAccess.Client;
- namespace SAPTest
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- // 潮州1厂
- //DataManager.ConnectionString = string.Format(DataManager.ConnectionStringFormat, "172.19.22.61", "1521", "hgcz1", "hgcz1", "dongke" );
- // 潮州2厂
- DataManager.ConnectionString = string.Format(DataManager.ConnectionStringFormat, "172.19.22.61", "1521", "hgcz2", "hgcz2", "dongke");
- }
- private void button1_Click(object sender, EventArgs e)
- {
- try
- {
- //开始时间
- string dateString = "2022-09-25 00:00:00";
- DateTime dt = DateTime.ParseExact(dateString, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.CurrentCulture);
- string dateString2 = "2022-10-02 13:00:00";
- //结束时间
- DateTime ndt = DateTime.ParseExact(dateString2, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.CurrentCulture);
- //跨车间
- //SAPDataLogic.CrossWorkshopToSAP_test(dt, ndt);
- //报工移库
- //SAPDataLogic.BGYKToSAP_TEST(dt, ndt);
- //报工
- SAPDataLogic.SyncSap5000(ndt, "10");
- SAPDataLogic.SyncSap5000(ndt, "20");
- SAPDataLogic.SyncSap5000(ndt, "30");
- SAPDataLogic.SyncSap5000(ndt, "40");
- SAPDataLogic.SyncSap5000(ndt, "50");
- SAPDataLogic.SyncSap5000(ndt, "60");
- //报工-60节点-暂废
- //string dateString60 = "2022-09-29 00:00:00";
- //DateTime dt60 = DateTime.ParseExact(dateString60, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.CurrentCulture);
- //SAPDataLogic.SyncSap5000_60_BSJ(dt60);
- // 记得换地址---正式--post中的密码
- //4号补数据专用
- //报工60节点
- //SAPDataLogic.SyncSap5000_test_jj(dt,"60", ndt);
- //跨车间
- //SAPDataLogic.CrossWorkshopToSAP(dt, ndt);
- MessageBox.Show("OK");
- }
- catch (Exception ex)
- {
- }
- }
- #region 手动调用同步SAP,补系统异常造成的SAP数据同步错误
- /// <summary>
- /// 撤销整板交接
- /// </summary>
- /// <param name="orderid"></param>
- /// <param name="dtData"></param>
- /// <param name="sUserInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity BackFinishedHandover()
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- string sql = string.Empty;
- OracleParameter[] Paras = null;
- oracleTrConn.Connect();
- #region 同步SAP
- #region 取相关数据
- object isExists;
- string sqlString = string.Empty;
- OracleParameter[] oracleParameter = null;
- int r = 0;
- // 条码串
- //string fifter = " AND (bar.barcode = '";
- //foreach (DataRow row in dtData.Rows)
- //{
- // fifter += row["barcode"] + "' OR bar.barcode = '";
- //}
- //fifter = fifter.Substring(0, fifter.Length - 18) + ")";
- DateTime date = DateTime.Now;
- string yyyymmdd = date.ToString("yyyyMMdd");
- sqlString = "select workcode from tp_mst_account where rownum = 1";
- string workcode = oracleTrConn.GetSqlResultToStr(sqlString);
- //DateTime datebegin = date.Date;
- //DateTime dateend = date.Date.AddDays(1);
- sqlString =
- "SELECT :yyyymmdd AS yyyymmdd\n" +
- " ,SYSDATE AS createtime\n" +
- " ,tt.goodscode\n" +
- " ,tt.sapcode\n" +
- " ,tt.usercode\n" +
- " ,tt.ordercode\n" +
- " ,tt.orderitem\n" +
- " ,tt.zscs\n" +
- " ,to_char(tt.outputnum) AS outputnum\n" +
- " ,to_char(tt.recoverynum) AS recoverynum\n" +
- " FROM (SELECT t.goodscode\n" +
- " ,t.sapcode\n" +
- " ,t.usercode\n" +
- " ,t.ordercode\n" +
- " ,t.orderitem\n" +
- " ,t.zscs\n" +
- " ,0 - SUM(decode(t.recyclingflag, '1', 0, decode(t.datatype, 51, 1, -1))) outputnum\n" +
- " ,0 - SUM(decode(t.recyclingflag, '0', 0, decode(t.datatype, 51, 1, -1))) recoverynum\n" +
- " FROM (SELECT gh.goodscode\n" +
- " ,gh.sapcode\n" +
- " ,u.usercode\n" +
- " ,o.orderno\n" +
- " ,bar.recyclingflag\n" +
- " ,gh.datatype\n" +
- " ,'' zscs\n" +
- //" ,case when g.goods_line_type = 1 or gl.highpressureflag = '1' then 'G' else 'L' end zscs\n" +
- " ,CASE\n" +
- " WHEN o.orderid IS NULL\n" +
- " OR o.orderno LIKE 'HEGII%' THEN\n" +
- " ' '\n" +
- " WHEN instr(o.orderno, '/') = 0 THEN\n" +
- " to_char(o.orderno)\n" +
- " ELSE\n" +
- " to_char(substr(o.orderno, 1, instr(o.orderno, '/') - 1))\n" +
- " END ordercode -- 销售凭证\n" +
- " ,CASE\n" +
- " WHEN o.orderid IS NULL\n" +
- " OR o.orderno LIKE 'HEGII%'\n" +
- " OR instr(o.orderno, '/') = 0 THEN\n" +
- " '0'\n" +
- " WHEN instr(o.orderno, '#') = 0 THEN\n" +
- " to_char(substr(o.orderno, instr(o.orderno, '/') + 1))\n" +
- " ELSE\n" +
- " to_char(substr(o.orderno\n" +
- " ,instr(o.orderno, '/') + 1\n" +
- " ,instr(o.orderno, '#') - instr(o.orderno, '/') - 1))\n" +
- " END orderitem -- 销售凭证项目\n" +
- " FROM (SELECT gch.goodscode\n" +
- " ,gch.sapcode\n" +
- " ,decode(gch.datatype, 53, 51, gch.datatype) datatype\n" +
- " ,gch.userid\n" +
- " ,gch.groutingdailydetailid\n" +
- " ,gch.otherid\n" +
- " FROM tp_pm_goodschangehistory gch\n" +
- " WHERE gch.datatype IN (51, 53)\n" +
- //" WHERE gch.datatype IN (51, 52, 53)\n" +
- " UNION ALL\n" +
- " SELECT gch.goodscode\n" +
- " ,gch.sapcode\n" +
- " ,52 datatype\n" +
- " ,gch.userid\n" +
- " ,gch.groutingdailydetailid\n" +
- " ,gch.goodsidafter\n" +
- " FROM tp_pm_goodschangehistory gch\n" +
- " WHERE gch.datatype = 53) gh\n" +
- " INNER JOIN tp_mst_user u\n" +
- " ON u.userid = gh.userid\n" +
- " INNER JOIN tp_pm_groutingdailydetail bar\n" +
- " ON bar.groutingdailydetailid = gh.groutingdailydetailid\n" +
- @" AND (bar.barcode = '80000975390' OR bar.barcode = '80000988487' OR bar.barcode = '80000983841' OR bar.barcode = '80000975382' OR bar.barcode = '80000960940' OR bar.barcode = '80000885561' OR bar.barcode = '80000874073' OR bar.barcode = '80000785446' OR bar.barcode = '80000802029' OR bar.barcode = '80000983400' OR bar.barcode = '80000975368' OR bar.barcode = '80000895382' OR bar.barcode = '80000975395' OR bar.barcode = '80000988905' OR bar.barcode = '80000988481' OR bar.barcode = '80000874563' OR bar.barcode = '80000983091'
- or bar.barcode = '80000901455' OR bar.barcode = '80000942388' OR bar.barcode = '80000983531' OR bar.barcode = '80000942155' OR bar.barcode = '80000798305' OR bar.barcode = '80000808142' OR bar.barcode = '80000983516' OR bar.barcode = '80000983497' )
- " +
- " INNER JOIN tp_pc_groutingline gl\n" +
- " ON gl.groutinglineid = bar.groutinglineid\n" +
- " INNER JOIN tp_mst_goods g\n" +
- " ON g.goodsid = bar.goodsid\n" +
- " LEFT JOIN tp_pm_order o\n" +
- " ON o.orderid = gh.otherid) t\n" +
- " GROUP BY t.goodscode\n" +
- " ,t.sapcode\n" +
- " ,t.usercode\n" +
- " ,t.ordercode\n" +
- " ,t.orderitem,t.zscs) tt\n" +
- " WHERE tt.outputnum <> 0\n" +
- " OR tt.recoverynum <> 0\n" +
- " ORDER BY tt.goodscode\n" +
- " ,tt.sapcode\n" +
- " ,tt.usercode\n" +
- " ,tt.ordercode\n" +
- " ,tt.orderitem,tt.zscs";
- oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":yyyymmdd", yyyymmdd)
- };
- DataTable workData = oracleTrConn.GetSqlResultToDt(sqlString, oracleParameter);
- string logid = oracleTrConn.GetSqlResultToStr("select SEQ_SAP_HEGII_DataLog_ID.Nextval from dual");
- string msg = $"整板撤销[{logid}]:80000901455,80000975390" ;
- sqlString = "insert into tsap_hegii_datalog\n" +
- " (LogID\n" +
- " ,LogType\n" +
- " ,BeginTime\n" +
- " ,YYYYMMDD\n" +
- " ,WorkCode\n" +
- " ,DataCode\n" +
- " ,DataStuts\n" +
- " ,DataMSG\n" +
- " ,CreateUserID\n" +
- " ,DataLogID)\n" +
- "values\n" +
- " (:LogID\n" +
- " ,'2'\n" +
- " ,sysdate\n" +
- " ,:YYYYMMDD\n" +
- " ,:WorkCode\n" +
- " ,'60'\n" +
- " ,'S'\n" +
- " ,:DataMSG\n" +
- " ,:CreateUserID\n" +
- " ,:LogID)";
- oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":LogID",OracleDbType.Int32, logid, ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32, 4, ParameterDirection.Input),
- new OracleParameter(":YYYYMMDD",OracleDbType.Varchar2, yyyymmdd, ParameterDirection.Input),
- new OracleParameter(":WorkCode",OracleDbType.Varchar2, workcode, ParameterDirection.Input),
- new OracleParameter(":DataMSG",OracleDbType.Varchar2, msg, ParameterDirection.Input),
- };
- r = oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
- #endregion
- #region 同步条码明细(注销)
- sqlString =
- "select bar.yyyymmdd\n" +
- " ,bar.workcode\n" +
- " ,bar.barcode\n" +
- " ,bar.outcode\n" +
- " ,bar.goodscode\n" +
- " ,bar.sapcode\n" +
- " ,bar.sapflbatchno\n" +
- " ,bar.sapfhundoflag\n" +
- " ,bar.ordercode\n" +
- " ,bar.orderitem\n" +
- // 保留条码同步履历 2020-10-14 by chenxy ztype = 'S'
- //" from tsap_hegii_finishedproduct bar where 1 = 1" + fifter +
- " from tsap_hegii_finishedproduct bar where ztype = 'S' "
- +
- @" AND (bar.barcode = '80000975390' OR bar.barcode = '80000988487' OR bar.barcode = '80000983841' OR bar.barcode = '80000975382' OR bar.barcode = '80000960940' OR bar.barcode = '80000885561' OR bar.barcode = '80000874073' OR bar.barcode = '80000785446' OR bar.barcode = '80000802029' OR bar.barcode = '80000983400' OR bar.barcode = '80000975368' OR bar.barcode = '80000895382' OR bar.barcode = '80000975395' OR bar.barcode = '80000988905' OR bar.barcode = '80000988481' OR bar.barcode = '80000874563' OR bar.barcode = '80000983091'
- or bar.barcode = '80000901455' OR bar.barcode = '80000942388' OR bar.barcode = '80000983531' OR bar.barcode = '80000942155' OR bar.barcode = '80000798305' OR bar.barcode = '80000808142' OR bar.barcode = '80000983516' OR bar.barcode = '80000983497' )
- " +
- " order by bar.sapflbatchno, bar.barcode";
- DataTable fpData = oracleTrConn.GetSqlResultToDt(sqlString, oracleParameter);
- // 单次传输最大条数
- int maxCount = 100000;
- List<Zppfm010> sapParameterList = new List<Zppfm010>();
- if (fpData != null && fpData.Rows.Count > 0)
- {
- int index = 0;
- //Zppfm010 sapParameter = new Zppfm010();
- //sapParameter.Zsum = maxCount;
- //sapParameter.TableIn = new Zspp110[sapParameter.Zsum];
- List<ZSPP110> tableInList = new List<ZSPP110>();
- foreach (DataRow item in fpData.Rows)
- {
- if (index >= maxCount)
- {
- Zppfm010 sapItem = new Zppfm010();
- sapItem.ZSUM = tableInList.Count;
- sapItem.TABLE_IN = tableInList.ToArray();
- sapParameterList.Add(sapItem);
- index = 0;
- tableInList.Clear();
- }
- ZSPP110 info110 = new ZSPP110();
- // 时间戳
- info110.ZSCNU = yyyymmdd;
- // 工厂
- info110.WERKS = workcode;
- // 生产条码
- info110.ZSCTM = item["barcode"].ToString();
- // 包装条码
- info110.ZBZTM = item["outcode"].ToString();
- // 产品编码
- info110.ZCPBM = item["goodscode"].ToString();
- // 物料编号
- info110.MATNR = item["sapcode"].ToString();
- // 包装整板标识
- info110.ZBZBS = item["sapflbatchno"].ToString();
- // 重新绑定标识
- info110.ZCXBD = "X";
- // 销售凭证
- info110.KDAUF = item["ordercode"].ToString();
- // 销售凭证项目
- info110.KDPOS = item["orderitem"].ToString();
- info110.UZEIT = date.ToString("HH:mm:ss");
- info110.ZCODEN = "";
- info110.ZCODEYZM = "";
- //if (info110.WERKS == "5011" && info110.ZCPBM == "K047L")
- //{
- // continue;
- //}
- tableInList.Add(info110);
- index++;
- }
- Zppfm010 sapParameter010 = new Zppfm010();
- sapParameter010.ZSUM = tableInList.Count;
- sapParameter010.TABLE_IN = tableInList.ToArray();
- sapParameterList.Add(sapParameter010);
- index = 0;
- tableInList.Clear();
- }
- else
- {
- Zppfm010 sapParameter010 = new Zppfm010();
- sapParameter010.ZSUM = 0;
- sapParameter010.TABLE_IN = new ZSPP110[sapParameter010.ZSUM];
- sapParameterList.Add(sapParameter010);
- }
- foreach (Zppfm010 sapParameter010 in sapParameterList)
- {
- ZPPFM010Response result010 = SAPDataLogic.HGSAPDK_ZPPFM010(sapParameter010, yyyymmdd);
- //sre.Message = result010.ZMSG;
- sre.Message = $"{result010.ZMSG}({sapParameter010.ZSUM})";
- sre.Result = result010.ZTYPE;
- if (result010.TABLE_OUT != null && result010.TABLE_OUT.Length > 0)
- {
- // 保留条码同步履历 2020-10-14 by chenxy ztype = 'S'
- //sqlString = "update tsap_hegii_finishedproduct t set t.ZTime =sysdate, ZTYPE = nvl(:ZTYPE,'S'), ZMSG = :ZMSG where barcode=:barcode and sapflbatchno=:sapflbatchno";
- sqlString = "update tsap_hegii_finishedproduct t set t.ZTime =sysdate, ZTYPE = 'D', ZMSG = :ZMSG where barcode=:barcode and ztype = 'S' and sapflbatchno=:sapflbatchno";
- foreach (ZSPP110 item in result010.TABLE_OUT)
- {
- oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":ZTYPE",OracleDbType.Varchar2, item.ZTYPE, ParameterDirection.Input),
- new OracleParameter(":ZMSG",OracleDbType.Varchar2, item.ZMSG, ParameterDirection.Input),
- new OracleParameter(":barcode",OracleDbType.Varchar2, item.ZSCTM, ParameterDirection.Input),
- new OracleParameter(":sapflbatchno",OracleDbType.Varchar2, item.ZBZBS, ParameterDirection.Input),
- };
- r = oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
- }
- }
- if (result010.ZTYPE != "S")
- {
- sre.Result = -2;
- sre.Message = "同步条码失败," + result010.ZMSG;
- return sre;
- }
- }
- // 删除已同步条码
- // 保留条码同步履历 2020-10-14 by chenxy ztype = 'S'
- //sql = "Delete from tsap_hegii_finishedproduct bar where 1 = 1" + fifter;
- //r = oracleTrConn.ExecuteNonQuery(sql);
- #endregion
- #region 同步产量
- // 潮州 暂时不同步产量 2020-10-25 chenxy
- Zppfm008 sapParameter = new Zppfm008();
- if (workData != null && workData.Rows.Count > 0)
- {
- sapParameter.ZSUM = workData.Rows.Count;
- sapParameter.TABLE_IN = new ZSPP100[sapParameter.ZSUM];
- sqlString = "insert into TSAP_HEGII_WorkData\n" +
- " (YYYYMMDD\n" +
- " ,WorkCode\n" +
- " ,DataCode\n" +
- " ,GoodsCode\n" +
- " ,SAPCode\n" +
- " ,UserCode\n" +
- " ,OutputNum\n" +
- " ,RECOVERYNUM\n" +
- " ,ORDERCODE\n" +
- " ,ORDERITEM\n" +
- " ,zscs\n" +
- " ,LogID,createtime)\n" +
- "values\n" +
- " ('" + yyyymmdd + "'\n" +
- " ,'" + workcode + "'\n" +
- " ,'60'\n" +
- " ,:GoodsCode\n" +
- " ,:SAPCode\n" +
- " ,:UserCode\n" +
- " ,:OutputNum\n" +
- " ,:RECOVERYNUM\n" +
- " ,:ORDERCODE\n" +
- " ,:ORDERITEM\n" +
- " ,:zscs\n" +
- " ," + logid + ",:createtime)";
- int index = 0;
- DateTime now = DateTime.Now;
- foreach (DataRow item in workData.Rows)
- {
- ZSPP100 info100 = new ZSPP100();
- // 工厂
- info100.WERKS = workcode;
- // 型号
- info100.GROES = item["GoodsCode"].ToString();
- // 物料编号
- info100.MATNR = item["SAPCode"].ToString();
- // 生产工号
- info100.ZGHNU = item["UserCode"].ToString();
- // 数据节点
- info100.ZJDNU = "60";
- // 时间戳
- info100.ZSCNU = yyyymmdd;
- // 销售凭证
- info100.VBELN = item["ORDERCODE"].ToString().Trim();
- // 销售凭证项目
- info100.POSNR = item["ORDERITEM"].ToString();
- // 产量
- info100.ZCLNG = item["OutputNum"].ToString();
- // 损坯
- info100.ZSPNG = "0";
- // 清除
- info100.ZQCNG = "0";
- // 回收
- info100.ZHSNG = item["RECOVERYNUM"].ToString();
- // 干补
- info100.ZGBNG = "0";
- // 注浆类型 G高压 L普通
- info100.ZSCS = item["ZSCS"].ToString();
- info100.ZKSSJ = now.ToString("HHmmss");
- info100.ZJSRQ = Convert.ToDecimal(now.ToString("yyyyMMddHHmmss"));
- oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":GoodsCode",OracleDbType.Varchar2, item["GoodsCode"], ParameterDirection.Input),
- new OracleParameter(":SAPCode",OracleDbType.Varchar2, item["SAPCode"], ParameterDirection.Input),
- new OracleParameter(":UserCode",OracleDbType.Varchar2, item["UserCode"], ParameterDirection.Input),
- new OracleParameter(":OutputNum",OracleDbType.Varchar2, item["OutputNum"], ParameterDirection.Input),
- new OracleParameter(":RECOVERYNUM",OracleDbType.Varchar2, item["RECOVERYNUM"], ParameterDirection.Input),
- new OracleParameter(":ORDERCODE",OracleDbType.Varchar2, item["ORDERCODE"], ParameterDirection.Input),
- new OracleParameter(":ORDERITEM",OracleDbType.Varchar2, item["ORDERITEM"], ParameterDirection.Input),
- new OracleParameter(":ZSCS",OracleDbType.Varchar2, item["ZSCS"], ParameterDirection.Input),
- new OracleParameter(":createtime",OracleDbType.Date, item["createtime"], ParameterDirection.Input),
- };
- r = oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
- sapParameter.TABLE_IN[index++] = info100;
- }
- }
- else
- {
- sapParameter.ZSUM = 0;
- sapParameter.TABLE_IN = new ZSPP100[sapParameter.ZSUM];
- }
- ZPPFM008Response result = SAPDataLogic.HGSAPDK_ZPPFM008(sapParameter, yyyymmdd, "60");
- //if (result.Ztype == "E")
- //{
- // sqlString = "update tsap_hegii_datalog t set t.EndTime = sysdate, DataStuts = 'E', DataMSG = DataMSG||:msg where logid = :logid";
- // oracleParameter = new OracleParameter[]
- // {
- // new OracleParameter(":msg",OracleDbType.Varchar2, result.Zmsg, ParameterDirection.Input),
- // new OracleParameter(":logid",OracleDbType.Int32, logid, ParameterDirection.Input),
- // };
- // r = oracleConn.ExecuteNonQuery(sqlString, oracleParameter);
- //}
- //else
- if (result.TABLE_OUT != null && result.TABLE_OUT.Length > 0)
- {
- sqlString = "update TSAP_HEGII_WorkData t set t.ZTime =sysdate, ZTYPE = :ZTYPE, ZMSG = :ZMSG where logid = " + logid +
- " \n and YYYYMMDD='" + yyyymmdd + "' and WorkCode='" + workcode +
- "' and DataCode='60' and GoodsCode=:GoodsCode and SAPCode=:SAPCode and UserCode=:UserCode \n" +
- "and OrderCode=:OrderCode and OrderItem=:OrderItem";
- foreach (ZSPP100 item in result.TABLE_OUT)
- {
- string posnr = item.POSNR.TrimStart('0');
- oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":ZTYPE",OracleDbType.Varchar2, item.ZTYPE, ParameterDirection.Input),
- new OracleParameter(":ZMSG",OracleDbType.Varchar2, item.ZMSG, ParameterDirection.Input),
- new OracleParameter(":GoodsCode",OracleDbType.Varchar2, item.GROES, ParameterDirection.Input),
- new OracleParameter(":SAPCode",OracleDbType.Varchar2, item.MATNR, ParameterDirection.Input),
- new OracleParameter(":UserCode",OracleDbType.Varchar2, item.ZGHNU, ParameterDirection.Input),
- new OracleParameter(":OrderCode",OracleDbType.Varchar2, (string.IsNullOrEmpty(item.VBELN) ? " " : item.VBELN), ParameterDirection.Input),
- new OracleParameter(":OrderItem",OracleDbType.Varchar2, (string.IsNullOrEmpty(posnr) ? "0" : posnr), ParameterDirection.Input),
- };
- r = oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
- }
- //:msg||chr(13)||DataMSG
- result.ZMSG = $"{result.ZMSG}({sapParameter.ZSUM})";
- sqlString = "update tsap_hegii_datalog t set t.EndTime = sysdate, DataStuts = :DataStuts, DataMSG =nvl2(:msg,:msg||' '||chr(13)||DataMSG,DataMSG) where logid = :logid";
- oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":DataStuts",OracleDbType.Varchar2, result.ZTYPE, ParameterDirection.Input),
- new OracleParameter(":msg",OracleDbType.Varchar2, result.ZMSG, ParameterDirection.Input),
- new OracleParameter(":logid",OracleDbType.Int32, logid, ParameterDirection.Input),
- };
- r = oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
- }
- if (result.ZTYPE != "S")
- {
- sre.Result = -2;
- sre.Message = "同步产量失败," + result.ZMSG;
- return sre;
- }
- //sqlString =
- //"UPDATE tp_pm_groutingdailydetail bar\n" +
- //" SET bar.issync = NULL\n" +
- //" WHERE 1 = 1" + fifter;
- //r = oracleTrConn.ExecuteNonQuery(sqlString);
- //*/
- #endregion
- #endregion
- sre.Result = 1;
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return sre;
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- }
- #endregion
- }
- }
|