| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Data;
- using System.IO;
- using System.Net;
- using System.Runtime.Serialization.Json;
- using System.Text;
- using System.Web.Script.Serialization;
- using System.Xml;
- using System.Xml.Serialization;
- using Dongke.IBOSS.PRD.Basics.BaseResources;
- using Dongke.IBOSS.PRD.Basics.DataAccess;
- using Dongke.IBOSS.PRD.Basics.Library;
- using Dongke.IBOSS.PRD.Service.BPMDataService.BPMWebService;
- using Dongke.IBOSS.PRD.Service.DataModels;
- using Dongke.IBOSS.PRD.WCF.DataModels;
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- using Oracle.ManagedDataAccess.Client;
- namespace Dongke.IBOSS.PRD.Service.BPMDataService
- {
- public class BPMDataLogic
- {
- /// <summary>
- /// 查询报损数据
- /// </summary>
- /// <param name="cre"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetDataBARCODEIDNRKSCRAP(ClientRequestEntity cre, SUserInfo userInfo)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- string sqlString = @"SELECT 0 as check1
- ,bis.scrapid
- ,bis.barcode
- ,bis.matnr
- ,bis.idnrk
- ,bis.meins
- ,bis.menge
- ,bis.idnrkname
- ,bis.idnrkonlycode
- ,bis.charg
- ,bis.lgort
- ,CASE
- WHEN bis.scraptype = 1 THEN
- '报损'
- ELSE
- '撤销报损'
- END scraptypename ,case WHEN bis.checkflag = 0 THEN '未确认' ELSE '已确认' END checkflagname
- ,bis.checktime
- ,CASE
- WHEN bis.syncflag = 0 THEN
- '未同步'
- WHEN bis.syncflag = 1 THEN
- '已同步'
- when bis.syncflag = 2 THEN
- 'BPM系统审批不通过'
- when bis.syncflag = 3 THEN
- 'BPM系统审批通过'
- END syncflagname
- ,mu.username createusername
- ,bis.createtime
- ,bis.costcenter
- ,bis.costcentername
- ,bis.incident
- ,bis.documentno
- ,bis.errormessage
- ,mdd.remarks meinsname
- ,bis.scrapreason
- FROM tp_pm_barcodeidnrkscrap bis
- LEFT JOIN tp_mst_user mu
- ON mu.userid = bis.createuserid
- LEFT JOIN tp_mst_datadictionary mdd
- on mdd.dictionaryvalue = bis.meins and mdd.dictionarytype = 'TPC012'
- WHERE bis.createtime >= :dateagin
- AND bis.createtime < :dateend
- AND bis.valueflag = 1
- AND bis.accountid =:accountid
- AND (:checkflag is null or :checkflag = '-1' OR instr(',' || :checkflag || ',', ',' || bis.checkflag || ',') > 0)
- AND (:syncflag is null or :syncflag = '-1' OR instr(',' || :syncflag || ',', ',' || bis.syncflag || ',') > 0)
- Order by bis.createtime desc";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":dateagin",OracleDbType.Date, cre.Properties["dateagin"], ParameterDirection.Input),
- new OracleParameter(":dateend",OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
- new OracleParameter(":checkflag",OracleDbType.Varchar2, cre.Properties["CheckFlag"], ParameterDirection.Input),
- new OracleParameter(":syncflag",OracleDbType.Varchar2, cre.Properties["SyncFlag"], ParameterDirection.Input),
- new OracleParameter(":accountid",OracleDbType.Int32,userInfo.AccountID, ParameterDirection.Input),
- };
- sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
- return sre;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 确认组件报损
- /// </summary>
- /// <param name="cre"></param>
- /// <returns></returns>
- public static ServiceResultEntity SaveConfirmIdnrkScrap(ClientRequestEntity cre, SUserInfo userInfo)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- DataTable IdnrkScrapDt = cre.Data.Tables[0];
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- if (IdnrkScrapDt != null && IdnrkScrapDt.Rows.Count > 0)
- {
- foreach (DataRow item in IdnrkScrapDt.Rows)
- {
- string sqlString = @"select 1 from tp_pm_barcodeidnrkscrap bis
- where bis.scraptype=1
- and bis.checkflag = 0
- AND bis.valueflag = 1
- and bis.syncflag = 0
- and bis.scrapid = :scrapid";
- OracleParameter[] Paras = new OracleParameter[] {
- new OracleParameter(":scrapid",OracleDbType.Int32,Convert.ToInt32( item["SCRAPID"]),ParameterDirection.Input),
- };
- DataTable dt = oracleTrConn.GetSqlResultToDt(sqlString, Paras);
- if (dt == null || dt.Rows.Count == 0)
- {
- sre.Message = "数据状态已改变!";
- sre.OtherStatus = -999;
- return sre;
- }
- sqlString = @"UPDATE tp_pm_barcodeidnrkscrap
- SET checkflag = 1
- ,updateuserid = :userid
- ,checktime = SYSDATE
- ,updatetime = SYSDATE
- WHERE scrapid = :scrapid
- AND scraptype = 1";
- Paras = new OracleParameter[] {
- new OracleParameter(":scrapid",OracleDbType.Int32,Convert.ToInt32( item["SCRAPID"]),ParameterDirection.Input),
- new OracleParameter(":userid",OracleDbType.Int32,userInfo.UserID,ParameterDirection.Input),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlString, Paras);
- }
- }
- sre.OtherStatus = returnRows;
- oracleTrConn.Commit();
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return sre;
- }
- /// <summary>
- /// 撤销确认组件报损
- /// </summary>
- /// <param name="cre"></param>
- /// <returns></returns>
- public static ServiceResultEntity SaveUNConfirmIdnrkScrap(ClientRequestEntity cre, SUserInfo userInfo)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- DataTable IdnrkScrapDt = cre.Data.Tables[0];
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- if (IdnrkScrapDt != null && IdnrkScrapDt.Rows.Count > 0)
- {
- foreach (DataRow item in IdnrkScrapDt.Rows)
- {
- string sqlString = @"UPDATE tp_pm_barcodeidnrkscrap
- SET checkflag = 0
- ,updateuserid = :userid
- ,checktime = null
- ,updatetime = SYSDATE
- WHERE scrapid = :scrapid
- AND scraptype = 1";
- OracleParameter[] Paras = new OracleParameter[] {
- new OracleParameter(":scrapid",OracleDbType.Int32,Convert.ToInt32( item["SCRAPID"]),ParameterDirection.Input),
- new OracleParameter(":userid",OracleDbType.Int32,userInfo.UserID,ParameterDirection.Input),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlString, Paras);
- }
- }
- sre.OtherStatus = returnRows;
- oracleTrConn.Commit();
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return sre;
- }
- /// <summary>
- /// 校验同一BPM流程实例报损是否全部勾选
- /// </summary>
- /// <param name="cre"></param>
- /// <param name="userInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity CheckScrap(ClientRequestEntity cre, SUserInfo userInfo)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- string sqlString = @"SELECT 1
- FROM tp_pm_barcodeidnrkscrap bis
- INNER JOIN (SELECT bs.incident
- FROM tp_pm_barcodeidnrkscrap bs
- WHERE instr( :scrapids , ',' || bs.scrapid || ',') > 0
- AND bs.valueflag = 1
- ) t
- ON bis.incident = t.incident
- WHERE bis.valueflag = 1
- AND bis.accountid = :accountid
- AND instr( :scrapids , ',' || bis.scrapid || ',') <= 0";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":scrapids",OracleDbType.Varchar2, cre.Properties["SCRAPIDs"], ParameterDirection.Input),
- new OracleParameter(":accountid",OracleDbType.Int32, userInfo.AccountID, ParameterDirection.Input),
- };
- sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
- return sre;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 同步bpm
- /// </summary>
- /// <param name="cre"></param>
- /// <param name="userInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity SynIdnrkScrap(ClientRequestEntity cre, SUserInfo userInfo)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- DataTable IdnrkScrapDt = cre.Data.Tables[0];
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- #region 首次推送
- DataRow[] drs = IdnrkScrapDt.Select("INCIDENT is null");
- if (drs.Length > 0)
- {
- string scrapids = ",";
- foreach (DataRow item in IdnrkScrapDt.Rows)
- {
- scrapids += item["SCRAPID"].ToString() + ",";
- }
- //校验是否存在状态改变数据
- string sqlString = @"SELECT 1
- FROM tp_pm_barcodeidnrkscrap bis
- WHERE instr(:scrapid,',' || bis.scrapid || ',') > 0
- AND bis.accountid = :accountid
- AND (valueflag = 0 OR checkflag = 0 OR bis.syncflag =1 OR bis.scraptype = 2 OR
- bis.incident IS NOT NULL)";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":accountid",OracleDbType.Int32, userInfo.AccountID, ParameterDirection.Input),
- new OracleParameter(":scrapid",OracleDbType.NVarchar2, scrapids, ParameterDirection.Input),
- };
- DataTable NoneDt = oracleTrConn.GetSqlResultToDt(sqlString, oracleParameter);
- if (NoneDt != null && NoneDt.Rows.Count > 0)
- {
- sre.Status = Constant.ServiceResultStatus.DataChanged;
- sre.Message = "数据状态已被修改!";
- return sre;
- }
- //生成推送数据
- sqlString = @"
- SELECT WMSYS.WM_CONCAT(BIS.SCRAPID) SCRAPIDS,
- BIS.IDNRK,
- BIS.IDNRKNAME,
- SUM(MENGE) MENGE,
- BIS.MEINS,
- MDD.REMARKS MEINSNAME,
- BIS.LGORT,
- BIS.CHARG,
- BIS.INCIDENT,
- BIS.COSTCENTER,
- BIS.COSTCENTERNAME
- FROM TP_PM_BARCODEIDNRKSCRAP BIS
- LEFT JOIN TP_MST_DATADICTIONARY MDD
- ON MDD.DICTIONARYVALUE = BIS.MEINS
- AND MDD.DICTIONARYTYPE = 'TPC012'
- WHERE INSTR(:SCRAPIDS, ',' || BIS.SCRAPID || ',') > 0
- AND BIS.VALUEFLAG = 1
- GROUP BY BIS.IDNRK,
- BIS.IDNRKNAME,
- MEINS,
- MDD.REMARKS,
- BIS.LGORT,
- BIS.INCIDENT,
- BIS.CHARG,
- BIS.COSTCENTER,
- BIS.COSTCENTERNAME ";
- oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":SCRAPIDS",OracleDbType.NVarchar2, scrapids, ParameterDirection.Input),
- };
- DataTable dtNoneInfo = oracleTrConn.GetSqlResultToDt(sqlString, oracleParameter);
- if (dtNoneInfo != null && dtNoneInfo.Rows.Count > 0)
- {
- string strResult = PushBPM(dtNoneInfo);
- Dictionary<string, object> data = JsonConvert.DeserializeObject<Dictionary<string, object>>(strResult);
- string isSeccess = "0";//bpm 同步失败
- if (data["Result"].ToString() == "1")
- {
- isSeccess = "1";
- //更新报损履历
- sqlString = @" UPDATE tp_pm_barcodeidnrkscrap
- SET syncflag = :syncflag
- ,errormessage = :message
- ,documentno = :documentno
- ,incident = :incident
- WHERE instr(',' || :scrapids || ',',',' || scrapid || ',') > 0";
- foreach (DataRow item in dtNoneInfo.Rows)
- {
- oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":scrapids",OracleDbType.NVarchar2, item["scrapids"].ToString(), ParameterDirection.Input),
- new OracleParameter(":syncflag",OracleDbType.NVarchar2, isSeccess,ParameterDirection.Input),
- new OracleParameter(":message",OracleDbType.NVarchar2, data["ErrorMessage"].ToString(),ParameterDirection.Input),
- new OracleParameter(":documentno",OracleDbType.NVarchar2, data["DOCUMENTNO"].ToString(),ParameterDirection.Input),
- new OracleParameter(":incident",OracleDbType.NVarchar2, data["Incident"].ToString(),ParameterDirection.Input),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
- }
- }
- else
- {
- // //更新报损履历
- // sqlString = @" UPDATE tp_pm_barcodeidnrkscrap
- //SET syncflag = :syncflag
- // ,errormessage = :message
- // ,incident = :incident
- // WHERE instr( ',' || :scrapids || ',',',' || scrapid || ',') > 0";
- // foreach (DataRow item in dtNoneInfo.Rows)
- // {
- // oracleParameter = new OracleParameter[]
- // {
- // new OracleParameter(":scrapids",OracleDbType.NVarchar2, item["scrapids"].ToString(), ParameterDirection.Input),
- // new OracleParameter(":syncflag",OracleDbType.NVarchar2, isSeccess,ParameterDirection.Input),
- // new OracleParameter(":message",OracleDbType.NVarchar2, data["ErrorMessage"].ToString(),ParameterDirection.Input),
- // new OracleParameter(":incident",OracleDbType.NVarchar2, data["Incident"].ToString(),ParameterDirection.Input),
- // };
- // returnRows += oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
- // }
- sre.OtherStatus = -1;
- sre.Message = data["ErrorMessage"].ToString();
- return sre;
- }
- }
- }
- #endregion
- #region 再次推送
- DataRow[] pushagin = IdnrkScrapDt.Select("INCIDENT is not null");
- if (pushagin.Length > 0)
- {
- string scrapids = ",";
- foreach (DataRow item in IdnrkScrapDt.Rows)
- {
- scrapids += item["SCRAPID"].ToString() + ",";
- }
- //校验是否存在状态改变数据
- string sqlString = @"SELECT 1
- FROM tp_pm_barcodeidnrkscrap bis
- WHERE instr(:scrapid,',' || bis.scrapid || ',') > 0
- AND bis.accountid = :accountid
- AND (valueflag = 0 OR checkflag = 0 OR bis.syncflag = 1 OR bis.scraptype = 2 OR
- bis.incident IS NULL)";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":accountid",OracleDbType.Int32, userInfo.AccountID, ParameterDirection.Input),
- new OracleParameter(":scrapid",OracleDbType.NVarchar2, scrapids, ParameterDirection.Input),
- };
- DataTable NoneDt = oracleTrConn.GetSqlResultToDt(sqlString, oracleParameter);
- if (NoneDt != null && NoneDt.Rows.Count > 0)
- {
- sre.Status = Constant.ServiceResultStatus.DataChanged;
- sre.Message = "数据状态已被修改!";
- return sre;
- }
- //获取推送数据
- sqlString = @"
- SELECT WMSYS.WM_CONCAT(BIS.SCRAPID) SCRAPIDS,
- BIS.IDNRK,
- BIS.IDNRKNAME,
- SUM(MENGE) MENGE,
- BIS.MEINS,
- MDD.REMARKS MEINSNAME,
- BIS.LGORT,
- BIS.CHARG,
- BIS.INCIDENT,
- BIS.COSTCENTER,
- BIS.COSTCENTERNAME
- FROM TP_PM_BARCODEIDNRKSCRAP BIS
- LEFT JOIN TP_MST_DATADICTIONARY MDD
- ON MDD.DICTIONARYVALUE = BIS.MEINS
- AND MDD.DICTIONARYTYPE = 'TPC012'
- WHERE INSTR(:SCRAPIDS, ',' || BIS.SCRAPID || ',') > 0
- AND BIS.VALUEFLAG = 1
- GROUP BY BIS.IDNRK,
- BIS.IDNRKNAME,
- MEINS,
- MDD.REMARKS,
- BIS.LGORT,
- BIS.INCIDENT,
- BIS.CHARG,
- BIS.COSTCENTER,
- BIS.COSTCENTERNAME ";
- oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":SCRAPIDS",OracleDbType.NVarchar2, scrapids, ParameterDirection.Input),
- };
- DataTable dtNoneInfo = oracleTrConn.GetSqlResultToDt(sqlString, oracleParameter);
- if (dtNoneInfo != null && dtNoneInfo.Rows.Count > 0)
- {
- string strResult = PushBPM(dtNoneInfo);
- Dictionary<string, object> data = JsonConvert.DeserializeObject<Dictionary<string, object>>(strResult);
- string isSeccess = "0";//bpm 审批不通过
- if (data["Result"].ToString() == "1")
- {
- isSeccess = "1";
- //更新报损履历
- sqlString = @" UPDATE tp_pm_barcodeidnrkscrap
- SET syncflag = :syncflag
- ,errormessage = :message
- ,documentno = :documentno
- ,incident = :incident
- WHERE instr( ',' || :scrapids || ',',',' || scrapid || ',') > 0";
- foreach (DataRow item in dtNoneInfo.Rows)
- {
- oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":scrapids",OracleDbType.NVarchar2, item["scrapids"].ToString(), ParameterDirection.Input),
- new OracleParameter(":syncflag",OracleDbType.NVarchar2, isSeccess,ParameterDirection.Input),
- new OracleParameter(":message",OracleDbType.NVarchar2, data["ErrorMessage"].ToString(),ParameterDirection.Input),
- new OracleParameter(":documentno",OracleDbType.NVarchar2, data["DOCUMENTNO"].ToString(),ParameterDirection.Input),
- new OracleParameter(":incident",OracleDbType.NVarchar2, data["Incident"].ToString(),ParameterDirection.Input),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
- }
- }
- else
- {
- // //更新报损履历
- // sqlString = @" UPDATE tp_pm_barcodeidnrkscrap
- //SET syncflag = :syncflag
- // ,errormessage = :message
- // ,incident = :incident
- // WHERE instr( ',' || :scrapids || ',',',' || scrapid || ',') > 0";
- // oracleParameter = new OracleParameter[]
- // {
- // new OracleParameter(":scrapids",OracleDbType.NVarchar2, item["scrapids"].ToString(), ParameterDirection.Input),
- // new OracleParameter(":syncflag",OracleDbType.NVarchar2, isSeccess,ParameterDirection.Input),
- // new OracleParameter(":message",OracleDbType.NVarchar2, data["ErrorMessage"].ToString(),ParameterDirection.Input),
- // new OracleParameter(":incident",OracleDbType.NVarchar2, data["Incident"].ToString(),ParameterDirection.Input),
- // };
- sre.OtherStatus = -1;
- sre.Message = data["ErrorMessage"].ToString();
- return sre;
- }
- }
- }
- #endregion
- sre.OtherStatus = returnRows;
- oracleTrConn.Commit();
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return sre;
- }
- /// <summary>
- /// 撤销bpm同步数据
- /// </summary>
- /// <param name="cre"></param>
- /// <param name="userInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity CancelSynIdnrkScrap(ClientRequestEntity cre, SUserInfo userInfo)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- DataTable IdnrkScrapDt = cre.Data.Tables[0];
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- string scrapids = ",";
- foreach (DataRow item in IdnrkScrapDt.Rows)
- {
- scrapids += item["SCRAPID"].ToString() + ",";
- }
- //获取待撤销bpm 实例号
- string sqlString = @"SELECT wmsys.wm_concat(bis.scrapid) scrapids
- ,bis.incident
- FROM tp_pm_barcodeidnrkscrap bis
- WHERE instr( :scrapids ,',' || bis.scrapid || ',') > 0
- AND bis.valueflag = 1
- AND bis.syncflag = 1
- group by incident";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":scrapids",OracleDbType.NVarchar2, scrapids, ParameterDirection.Input),
- };
- DataTable Info = oracleTrConn.GetSqlResultToDt(sqlString, oracleParameter);
- if (Info != null && Info.Rows.Count > 0)
- {
- foreach (DataRow item in Info.Rows)
- {
- string strResult = CancelPushBPM(Convert.ToInt32(item["incident"]));
- Dictionary<string, object> data = JsonConvert.DeserializeObject<Dictionary<string, object>>(strResult);
- string isSeccess = "0";//bpm 审批不通过
- if (data["Result"].ToString() == "1")
- {
- isSeccess = "0";
- //更新报损履历
- sqlString = @" UPDATE tp_pm_barcodeidnrkscrap
- SET syncflag = :syncflag
- ,errormessage = :message
- ,incident = :incident
- WHERE instr( ',' || :scrapids || ',', ',' || scrapid || ',' ) > 0";
- oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":scrapids",OracleDbType.NVarchar2, item["scrapids"].ToString(), ParameterDirection.Input),
- new OracleParameter(":syncflag",OracleDbType.NVarchar2, isSeccess,ParameterDirection.Input),
- new OracleParameter(":message",OracleDbType.NVarchar2, data["ErrorMessage"].ToString(),ParameterDirection.Input),
- new OracleParameter(":incident",OracleDbType.NVarchar2, data["Incident"].ToString(),ParameterDirection.Input),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
- }
- else
- {
- //更新报损履历
- sqlString = @" UPDATE tp_pm_barcodeidnrkscrap
- SET
- errormessage = :message
- ,incident = :incident
- WHERE instr( ',' || :scrapids || ',', ',' || scrapid || ',' ) > 0";
- oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":scrapids",OracleDbType.NVarchar2, item["scrapids"].ToString(), ParameterDirection.Input),
- new OracleParameter(":message",OracleDbType.NVarchar2, data["ErrorMessage"].ToString(),ParameterDirection.Input),
- new OracleParameter(":incident",OracleDbType.NVarchar2, data["Incident"].ToString(),ParameterDirection.Input),
- };
- oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
- sre.Message = data["ErrorMessage"].ToString();
- sre.OtherStatus = -999;
- }
- }
- }
- sre.OtherStatus = returnRows;
- oracleTrConn.Commit();
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return sre;
- }
- /// <summary>
- /// 查询成本中心(BPM)
- /// </summary>
- /// <param name="cre"></param>
- /// <param name="userInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetCostCenter(ClientRequestEntity cre, SUserInfo userInfo)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- string sqlString = @"SELECT 0 check1
- ,t.dictionaryvalue COSTCENTER
- ,t.remarks COSTCENTERNAME
- FROM tp_mst_datadictionary t
- WHERE t.valueflag = 1
- AND t.dictionarytype = 'TPC013'
- AND t.accountid = :accountid
- AND (:dictionaryvalue IS NULL OR :dictionaryvalue = '' OR
- instr(t.dictionaryvalue, :dictionaryvalue) > 0)
- AND (:remark IS NULL OR :remark = '' OR instr(t.remarks, :remark) > 0)";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":accountid",OracleDbType.Int32, userInfo.AccountID, ParameterDirection.Input),
- new OracleParameter(":dictionaryvalue",OracleDbType.Varchar2, cre.Properties["CostCenter"], ParameterDirection.Input),
- new OracleParameter(":remark",OracleDbType.Varchar2, cre.Properties["CostcenterName"], ParameterDirection.Input),
- };
- sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
- return sre;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 保存报损履历成本中心
- /// </summary>
- /// <param name="cre"></param>
- /// <param name="userInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity SaveCostCenter(ClientRequestEntity cre, SUserInfo userInfo)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- string sqlString = string.Empty;
- try
- {
- string CostCenter = cre.Properties["CostCenter"].ToString();
- string CostCenterName = cre.Properties["CostCenterName"].ToString();
- DataTable data = cre.Data.Tables[0];
- DataRow[] rows = data.Select("INCIDENT is null");
- if (rows.Length > 0)
- {
- foreach (DataRow item in rows)
- {
- sqlString = @"update TP_PM_BARCODEIDNRKSCRAP
- set COSTCENTERNAME =:COSTCENTERNAME
- ,costcenter = :costcenter
- where SCRAPID = :SCRAPID";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":SCRAPID",OracleDbType.Int32, item["SCRAPID"], ParameterDirection.Input),
- new OracleParameter(":COSTCENTERNAME",OracleDbType.Varchar2, CostCenterName, ParameterDirection.Input),
- new OracleParameter(":costcenter",OracleDbType.Varchar2, CostCenter, ParameterDirection.Input),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
- }
- }
- //BPM流程实例,相同实例数据同时更新
- DataRow[] drs = data.Select("INCIDENT is not null");
- if (drs.Length > 0)
- {
- string SCRAPIDs = ",";
- //传入拼接报损履历主键id
- foreach (DataRow item in drs)
- {
- SCRAPIDs += item["SCRAPID"].ToString() + ",";
- }
- //查询报损履历数据
- sqlString = @"SELECT bs.scrapid
- ,bs.idnrk
- ,bs.incident
- FROM tp_pm_barcodeidnrkscrap bs
- INNER JOIN (SELECT bis.idnrk
- ,bis.incident
- FROM tp_pm_barcodeidnrkscrap bis
- WHERE instr( ',' || :scrapids || ',', ',' || bis.scrapid || ',') > 0
- GROUP BY bis.idnrk
- ,bis.incident) t
- ON bs.idnrk = t.idnrk
- AND bs.incident = t.incident";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":scrapids",OracleDbType.Int32, SCRAPIDs, ParameterDirection.Input),
- };
- DataTable bsdt = oracleTrConn.GetSqlResultToDt(sqlString, oracleParameter);
- if (bsdt != null && bsdt.Rows.Count > 0)
- {
- foreach (DataRow item in bsdt.Rows)
- {
- sqlString = @"update TP_PM_BARCODEIDNRKSCRAP
- set COSTCENTERNAME =:COSTCENTERNAME
- ,costcenter = :costcenter
- where SCRAPID = :SCRAPID";
- oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":SCRAPID",OracleDbType.Int32, item["SCRAPID"], ParameterDirection.Input),
- new OracleParameter(":COSTCENTERNAME",OracleDbType.Varchar2, CostCenterName, ParameterDirection.Input),
- new OracleParameter(":costcenter",OracleDbType.Varchar2, CostCenter, ParameterDirection.Input),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
- }
- }
- }
- sre.OtherStatus = returnRows;
- oracleTrConn.Commit();
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return sre;
- }
- /// <summary>
- /// 新建报损履历
- /// </summary>
- /// <param name="cre"></param>
- /// <param name="userInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity AddIDNRKScrap(ClientRequestEntity cre, SUserInfo userInfo)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- string sqlString = string.Empty;
- try
- {
- string IDNRK = cre.Properties["IDNRK"].ToString();//组件编码
- string MEINS = cre.Properties["MEINS"].ToString();//组件单位
- decimal MENGE = Convert.ToDecimal(cre.Properties["MENGE"]);//报损数量
- string IDNRKNAME = cre.Properties["IDNRKNAME"].ToString();//组件名称
- string LGORT = cre.Properties["LGORT"].ToString();//库存点
- string BARCODE = cre.Properties["BARCODE"].ToString();//产品条码
- string MATNR = cre.Properties["MATNR"].ToString();//物料编码
- string IDNRKONLYCODE = cre.Properties["IDNRKONLYCODE"].ToString();//唯一编码
- string CHARG = cre.Properties["CHARG"].ToString();//批次
- sqlString = @"
- INSERT INTO tp_pm_barcodeidnrkscrap
- (
- barcode
- ,matnr
- ,idnrk
- ,meins
- ,menge
- ,idnrkname
- ,idnrkonlycode
- ,charg
- ,lgort
- ,accountid
- ,procedureid
- ,createuserid
- ,updateuserid)
- VALUES
- (
- :barcode
- ,:matnr
- ,:idnrk
- ,:meins
- ,:menge
- ,:idnrkname
- ,:idnrkonlycode
- ,:charg
- ,:lgort
- ,:accountid
- ,-1
- ,:createuserid
- ,:updateuserid)";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":barcode",OracleDbType.NVarchar2, BARCODE, ParameterDirection.Input),
- new OracleParameter(":matnr",OracleDbType.NVarchar2, MATNR, ParameterDirection.Input),
- new OracleParameter(":idnrk",OracleDbType.NVarchar2, IDNRK, ParameterDirection.Input),
- new OracleParameter(":meins",OracleDbType.NVarchar2, MEINS, ParameterDirection.Input),
- new OracleParameter(":menge",OracleDbType.Decimal, MENGE, ParameterDirection.Input),
- new OracleParameter(":idnrkname",OracleDbType.NVarchar2, IDNRKNAME, ParameterDirection.Input),
- new OracleParameter(":idnrkonlycode",OracleDbType.NVarchar2, IDNRKONLYCODE, ParameterDirection.Input),
- new OracleParameter(":charg",OracleDbType.NVarchar2, CHARG, ParameterDirection.Input),
- new OracleParameter(":lgort",OracleDbType.NVarchar2, LGORT, ParameterDirection.Input),
- new OracleParameter(":accountid",OracleDbType.Int32, userInfo.AccountID, ParameterDirection.Input),
- new OracleParameter(":createuserid",OracleDbType.Int32, userInfo.UserID, ParameterDirection.Input),
- new OracleParameter(":updateuserid",OracleDbType.Int32, userInfo.UserID, ParameterDirection.Input),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
- sre.OtherStatus = returnRows;
- oracleTrConn.Commit();
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return sre;
- }
- /// <summary>
- /// 查询编辑报损数据信息
- /// </summary>
- /// <param name="cre"></param>
- /// <param name="userInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetIDNRKScrap(ClientRequestEntity cre, SUserInfo userInfo)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- int scrapid = Convert.ToInt32(cre.Properties["scrapid"]);
- string sqlString = @" SELECT bis.scrapid
- ,bis.barcode
- ,bis.matnr
- ,bis.idnrk
- ,bis.meins
- ,bis.menge
- ,bis.idnrkname
- ,bis.idnrkonlycode
- ,bis.charg
- ,bis.lgort
- FROM tp_pm_barcodeidnrkscrap bis
- where bis.scrapid =:scrapid";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":scrapid",OracleDbType.NVarchar2, scrapid, ParameterDirection.Input),
- };
- sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
- }
- catch (Exception ex)
- {
- throw ex;
- }
- return sre;
- }
- /// <summary>
- /// 查询组件编码信息
- /// </summary>
- /// <param name="cre"></param>
- /// <param name="userInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetIdnrkCode(ClientRequestEntity cre, SUserInfo userInfo)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- string sqlString = @"SELECT pb.IDNRK
- ,pb.MEINS
- ,pb.name IDNRKNAME
- FROM tp_mst_packingbomdetail pb
- WHERE pb.valueflag = 1
- AND pb.accountid = :accountid
- AND (:idnrk is null or :idnrk='' or instr(pb.idnrk,:idnrk)>0)
- AND (:idnrkname is null or :idnrkname='' or instr(pb.name,:idnrkname)>0)
- GROUP BY pb.idnrk
- ,pb.meins
- ,pb.name";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":accountid",OracleDbType.NVarchar2, userInfo.AccountID, ParameterDirection.Input),
- new OracleParameter(":idnrk",OracleDbType.NVarchar2, cre.Properties["IDNRK"], ParameterDirection.Input),
- new OracleParameter(":idnrkname",OracleDbType.NVarchar2, cre.Properties["IDNRKNAME"], ParameterDirection.Input),
- };
- sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
- }
- catch (Exception ex)
- {
- throw ex;
- }
- return sre;
- }
- /// <summary>
- /// 编辑报损履历
- /// </summary>
- /// <param name="cre"></param>
- /// <param name="userInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity UpdateIDNRKScrap(ClientRequestEntity cre, SUserInfo userInfo)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- string sqlString = string.Empty;
- try
- {
- int scrapid = Convert.ToInt32(cre.Properties["scrapid"]);
- string IDNRK = cre.Properties["IDNRK"].ToString();//组件编码
- string MEINS = cre.Properties["MEINS"].ToString();//单位
- decimal MENGE = Convert.ToDecimal(cre.Properties["MENGE"]);//数量
- string IDNRKNAME = cre.Properties["IDNRKNAME"].ToString();//组件名称
- string IDNRKONLYCODE = cre.Properties["IDNRKONLYCODE"].ToString();//组件唯一编码
- string CHARG = cre.Properties["CHARG"].ToString();//批次
- string LGORT = cre.Properties["LGORT"].ToString();//库存地点
- string BARCODE = cre.Properties["BARCODE"].ToString();//产品条码
- string MATNR = cre.Properties["MATNR"].ToString();//物料编码
- //校验数据状态是否改变
- sqlString = @"SELECT bis.checkflag
- FROM tp_pm_barcodeidnrkscrap bis
- WHERE bis.scrapid = :scrapid
- AND bis.valueflag = 1";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":scrapid",OracleDbType.NVarchar2, scrapid, ParameterDirection.Input),
- };
- DataTable checkDt = oracleTrConn.GetSqlResultToDt(sqlString, oracleParameter);
- if (checkDt != null && checkDt.Rows.Count > 0)
- {
- if (checkDt.Rows[0]["checkflag"].ToString() == "1")
- {
- sre.Message = "报损数据状态已改变!";
- sre.OtherStatus = -999;
- return sre;
- }
- }
- else
- {
- sre.Message = "报损数据状态已改变!";
- sre.OtherStatus = -999;
- return sre;
- }
- //编辑
- sqlString = @" UPDATE tp_pm_barcodeidnrkscrap
- SET barcode = :barcode
- ,matnr = :matnr
- ,idnrk = :idnrk
- ,meins = :meins
- ,menge = :menge
- ,idnrkname = :idnrkname
- ,idnrkonlycode = :idnrkonlycode
- ,charg = :charg
- ,lgort = :lgort
- ,updateuserid = :updateuserid
- ,updatetime = SYSDATE
- WHERE scrapid = :scrapid";
- oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":barcode",OracleDbType.NVarchar2, BARCODE, ParameterDirection.Input),
- new OracleParameter(":matnr",OracleDbType.NVarchar2, MATNR, ParameterDirection.Input),
- new OracleParameter(":scrapid",OracleDbType.Int32, scrapid, ParameterDirection.Input),
- new OracleParameter(":idnrk",OracleDbType.NVarchar2, IDNRK, ParameterDirection.Input),
- new OracleParameter(":meins",OracleDbType.NVarchar2, MEINS, ParameterDirection.Input),
- new OracleParameter(":menge",OracleDbType.Decimal, MENGE, ParameterDirection.Input),
- new OracleParameter(":idnrkname",OracleDbType.NVarchar2, IDNRKNAME, ParameterDirection.Input),
- new OracleParameter(":idnrkonlycode",OracleDbType.NVarchar2, IDNRKONLYCODE, ParameterDirection.Input),
- new OracleParameter(":charg",OracleDbType.NVarchar2, CHARG, ParameterDirection.Input),
- new OracleParameter(":lgort",OracleDbType.NVarchar2, LGORT, ParameterDirection.Input),
- new OracleParameter(":updateuserid",OracleDbType.Int32, userInfo.UserID, ParameterDirection.Input),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
- sre.OtherStatus = returnRows;
- oracleTrConn.Commit();
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return sre;
- }
- /// <summary>
- /// 删除报损履历
- /// </summary>
- /// <param name="cre"></param>
- /// <param name="userInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity DeleteIDNRKScrap(ClientRequestEntity cre, SUserInfo userInfo)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- string sqlString = string.Empty;
- try
- {
- DataTable dt = cre.Data.Tables[0];
- foreach (DataRow item in dt.Rows)
- {
- int scrapid = Convert.ToInt32(item["scrapid"]);
- //校验数据状态是否改变
- sqlString = @"SELECT bis.checkflag
- FROM tp_pm_barcodeidnrkscrap bis
- WHERE bis.scrapid = :scrapid
- AND bis.valueflag = 1";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":scrapid",OracleDbType.NVarchar2, scrapid, ParameterDirection.Input),
- };
- DataTable checkDt = oracleTrConn.GetSqlResultToDt(sqlString, oracleParameter);
- if (checkDt != null && checkDt.Rows.Count > 0)
- {
- if (checkDt.Rows[0]["checkflag"].ToString() == "1")
- {
- sre.Message = "报损数据状态已改变!";
- sre.OtherStatus = -999;
- return sre;
- }
- }
- else
- {
- sre.Message = "报损数据状态已改变!";
- sre.OtherStatus = -999;
- return sre;
- }
- //删除
- sqlString = @"UPDATE tp_pm_barcodeidnrkscrap
- SET valueflag = 0
- WHERE scrapid = :scrapid";
- returnRows += oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
- }
- sre.OtherStatus = returnRows;
- oracleTrConn.Commit();
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return sre;
- }
- /// <summary>
- /// 查询中台日志
- /// </summary>
- /// <param name="cre"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetZhongTaiDataLog(ClientRequestEntity cre, SUserInfo userInfo)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- List<OracleParameter> paras = new List<OracleParameter>();
- try
- {
- string sqlString = @"
- SELECT FP.BARCODE,
- GDD.MATERIALCODE,
- GDD.OUTLABELCODE,
- GDD.FIRSTFHDATE,
- GDD.FIRSTFHNO,
- FP.FHTIME,
- FP.TOZHONGTAIFLAG,
- FP.TOZHONGTAITIME,
- FP.ZHONGTAIMSG
- FROM TP_PM_FINISHEDPRODUCT FP
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = FP.GROUTINGDAILYDETAILID
- WHERE FP.accountid = :ACCOUNTID
- AND FP.FHTIME >= :FHTIMEBEGIN
- AND FP.FHTIME < :FHTIMEEND ";
- paras.Add(new OracleParameter(":ACCOUNTID", OracleDbType.Int32, userInfo.AccountID, ParameterDirection.Input));
- paras.Add(new OracleParameter(":FHTIMEBEGIN", OracleDbType.Date, cre.Properties["FhtimeBegin"], ParameterDirection.Input));
- paras.Add(new OracleParameter(":FHTIMEEND", OracleDbType.Date, cre.Properties["FhtimeEnd"], ParameterDirection.Input));
- if (!string.IsNullOrEmpty(cre.Properties["ToZhongTaiFlag"] + ""))
- {
- sqlString += " AND FP.TOZHONGTAIFLAG = :TOZHONGTAIFLAG ";
- paras.Add(new OracleParameter(":TOZHONGTAIFLAG", OracleDbType.Varchar2, cre.Properties["ToZhongTaiFlag"], ParameterDirection.Input));
- }
- if (!string.IsNullOrEmpty(cre.Properties["ZhongTaiMsg"] + ""))
- {
- sqlString += " AND FP.ZHONGTAIMSG LIKE :ZHONGTAIMSG ";
- paras.Add(new OracleParameter(":ZHONGTAIMSG", OracleDbType.NVarchar2, "%" + cre.Properties["ZhongTaiMsg"] + "%", ParameterDirection.Input));
- }
- sqlString += " ORDER BY FP.FHTIME, FP.BARCODE ";
- sre.Data = oracleConn.GetSqlResultToDs(sqlString, paras.ToArray());
- return sre;
- }
- catch (Exception ex)
- {
- sre.OtherStatus = -1;
- sre.Message = ex.Message;
- return sre;
- }
- }
- /// <summary>
- /// 同步中台日志
- /// </summary>
- /// <param name="cre"></param>
- /// <returns></returns>
- public static ServiceResultEntity SyncZhongTaiData(ClientRequestEntity cre)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- INIUtility ini = INIUtility.Instance(INIUtility.IniFile.Config);
- string urlZhongTai = ini.ReadIniData("ZhongTai", "urlZhongTai");
- //string urlZhongTai = "http://localhost:62172/api/ZhongTai/ashxSyncZhongTai.ashx";
- string syncDate = cre.Properties["SyncDate"].ToString();
- string result = PostData(urlZhongTai, "{\"SyncDate\": \""+ syncDate + "\"}", "POST");
- JObject obj = JObject.Parse(result);
- sre.OtherStatus = 1;
- sre.Message = "同步结果," + obj["message"].ToString();
- return sre;
- }
- catch (Exception ex)
- {
- sre.Result = -2;
- sre.Message = "同步失败," + ex.Message;
- return sre;
- }
- }
- /// <summary>
- /// 查询昆船WMS日志
- /// </summary>
- /// <param name="cre"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetKunChuanDataLog(ClientRequestEntity cre, SUserInfo userInfo)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- List<OracleParameter> paras = new List<OracleParameter>();
- try
- {
- string sqlString = @"
- SELECT FP.YYYYMMDD,
- FP.BARCODE,
- FP.SAPCODE,
- FP.OUTCODE,
- FP.CREATETIME,
- NVL(FP.BANMA, FP.SAPFLBATCHNO) AS BANMA,
- FP.ORDERCODE,
- FP.ORDERITEM,
- FP.SECURITYCODE,
- FP.TOKUNCHUANFLAG,
- FP.KUNCHUANMSG,
- FP.TOKUNCHUANTIME
- FROM TSAP_HEGII_FINISHEDPRODUCT FP
- WHERE FP.ZTYPE = 'S'
- AND FP.CREATETIME >= :FHTIMEBEGIN
- AND FP.CREATETIME < :FHTIMEEND ";
- paras.Add(new OracleParameter(":FHTIMEBEGIN", OracleDbType.Date, cre.Properties["FhtimeBegin"], ParameterDirection.Input));
- paras.Add(new OracleParameter(":FHTIMEEND", OracleDbType.Date, cre.Properties["FhtimeEnd"], ParameterDirection.Input));
- if (!string.IsNullOrEmpty(cre.Properties["ToKunChuanFlag"] + ""))
- {
- sqlString += " AND FP.TOKUNCHUANFLAG = :TOKUNCHUANFLAG ";
- paras.Add(new OracleParameter(":TOKUNCHUANFLAG", OracleDbType.Varchar2, cre.Properties["ToKunChuanFlag"], ParameterDirection.Input));
- }
- if (!string.IsNullOrEmpty(cre.Properties["KunChuanMsg"] + ""))
- {
- sqlString += " AND FP.KUNCHUANMSG LIKE :KUNCHUANMSG ";
- paras.Add(new OracleParameter(":KUNCHUANMSG", OracleDbType.NVarchar2, "%" + cre.Properties["KunChuanMsg"] + "%", ParameterDirection.Input));
- }
- sqlString += " ORDER BY FP.SAPFLBATCHNO, FP.OUTCODE ";
- sre.Data = oracleConn.GetSqlResultToDs(sqlString, paras.ToArray());
- return sre;
- }
- catch (Exception ex)
- {
- sre.OtherStatus = -1;
- sre.Message = ex.Message;
- return sre;
- }
- }
- /// <summary>
- /// 同步昆船WMS日志
- /// </summary>
- /// <param name="cre"></param>
- /// <returns></returns>
- public static ServiceResultEntity SyncKunChuanData(ClientRequestEntity cre)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- INIUtility ini = INIUtility.Instance(INIUtility.IniFile.Config);
- string urlKunChuan = ini.ReadIniData("KunChuan", "urlKunChuan");
- //string urlKunChuan = "http://localhost:62172/api/KunChuan/ashxSyncKunChuan.ashx";
- string syncDate = cre.Properties["SyncDate"].ToString();
- string result = PostData(urlKunChuan, "{\"SyncDate\": \"" + syncDate + "\"}", "POST");
- JObject obj = JObject.Parse(result);
- sre.OtherStatus = 1;
- sre.Message = "同步结果," + obj["message"].ToString();
- return sre;
- }
- catch (Exception ex)
- {
- sre.Result = -2;
- sre.Message = "同步失败," + ex.Message;
- return sre;
- }
- }
- #region 私有方法
- /// <summary>
- /// 同步BPM系统条码
- /// </summary>
- /// <returns></returns>
- private static string PushBPM(DataTable dtNoneInfo)
- {
- //INIUtility ini = INIUtility.Instance(INIUtility.IniFile.Config);
- //string endPointConfigurationName = ini.ReadIniData("BPM_INFO", "EndPointConfigurationName");
- try
- {
- using (ProcessServiceSoapClient bpmClient = new ProcessServiceSoapClient("ProcessServiceSoap"))
- {
- string token = "HEGIITOKEN";
- string userAccount = "MES001";
- string Processname = "Inventory Material Scrap And Adjustment Process";
- int Incident = 0;
- if (!string.IsNullOrEmpty(dtNoneInfo.Rows[0]["Incident"] + ""))
- {
- Incident = Convert.ToInt32(dtNoneInfo.Rows[0]["Incident"]);
- }
- BPMDetailOneEntity pars1 = new BPMDetailOneEntity();
- pars1.REQUESTDATE = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
- pars1.DOCUMENTTYPE = "报废及回收";
- pars1.COMPANYNUMBER = "5000";
- pars1.REMARK = "";
- pars1.APPLICATEMPNO = "MES001";
- pars1.APPLICANTEMPNAME = "MES001";
- pars1.EFFECTIVEDATE = DateTime.Now.Date.ToString("yyyy/MM/dd");
- //pars1.Add("REQUESTDATE", DateTime.Now);
- //pars1.Add("DOCUMENTTYPE", "报废及回收");
- //pars1.Add("COMPANYNUMBER", "5000");
- //pars1.Add("REMARK", "");
- //pars1.Add("APPLICATEMPNO", "MES001");
- //pars1.Add("APPLICANTEMPNAME", "MES001");
- //pars1.Add("EFFECTIVEDATE", DateTime.Now.Date);
- List<PROC_FINANCE_INVENTORYMATERIAL_SCRAP_AND_ADJUSTMENT_DT> listPars2 = new List<PROC_FINANCE_INVENTORYMATERIAL_SCRAP_AND_ADJUSTMENT_DT>();
- PROC_FINANCE_INVENTORYMATERIAL_SCRAP_AND_ADJUSTMENT_DT pars2 = null;
- for (int i = 0; i < dtNoneInfo.Rows.Count; i++)
- {
- pars2 = new PROC_FINANCE_INVENTORYMATERIAL_SCRAP_AND_ADJUSTMENT_DT();
- pars2.ROWID = i + 1;
- pars2.PROCESSINGTYPE = "551";
- pars2.STDMODE = dtNoneInfo.Rows[i]["IDNRK"].ToString();
- pars2.PRODUCTNAME = dtNoneInfo.Rows[i]["IDNRKNAME"].ToString();
- pars2.QUANTITY = Convert.ToDecimal(dtNoneInfo.Rows[i]["MENGE"]);
- pars2.UNIT = dtNoneInfo.Rows[i]["MEINS"].ToString();
- pars2.UNITNAME = dtNoneInfo.Rows[i]["meinsname"].ToString();
- pars2.FACTORY = "5000";
- pars2.STORAGELOCATION = dtNoneInfo.Rows[i]["LGORT"].ToString();
- pars2.SALENUMBER = "";
- pars2.ITEMNUMBER = "";
- pars2.BATCHNUMBER = dtNoneInfo.Rows[i]["CHARG"].ToString();
- pars2.COSTCENTERNAME = dtNoneInfo.Rows[i]["COSTCENTERNAME"].ToString();
- pars2.COSTCENTER = dtNoneInfo.Rows[i]["COSTCENTER"].ToString();
- pars2.REMARK = "";
- //pars2.Add("ROWID", i + 1);
- //pars2.Add("PROCESSINGTYPE", "551"); //处理类型
- //pars2.Add("STDMODE", dtNoneInfo.Rows[i]["IDNRK"].ToString()); //物料编码(组件编码)
- //pars2.Add("PRODUCTNAME", dtNoneInfo.Rows[i]["IDNRKNAME"].ToString()); //物料描述(组件名称)
- //pars2.Add("QUANTITY", Convert.ToDecimal(dtNoneInfo.Rows[i]["MENGE"])); //数量
- //pars2.Add("UNIT", dtNoneInfo.Rows[i]["MEINS"].ToString()); //单位
- //pars2.Add("UNITNAME", dtNoneInfo.Rows[i]["meinsname"].ToString()); //单位名称
- //pars2.Add("FACTORY", "5000");
- //pars2.Add("STORAGELOCATION", dtNoneInfo.Rows[i]["LGORT"].ToString()); //存放库位(线边仓位号)
- //pars2.Add("SALENUMBER", "");
- //pars2.Add("ITEMNUMBER", "");
- //pars2.Add("BATCHNUMBER", dtNoneInfo.Rows[i]["CHARG"].ToString()); //批次号
- //pars2.Add("COSTCENTERNAME", "");
- //pars2.Add("COSTCENTER", "");
- //pars2.Add("REMARK", "");
- listPars2.Add(pars2);
- }
- BPMDetailThreeEntity pars3 = new BPMDetailThreeEntity();
- pars3.ROWID = "";
- pars3.FILEURL = "";
- pars3.FILENAME = "";
- //pars3.Add("ROWID", "");
- //pars3.Add("FILEURL", "");
- //pars3.Add("FILENAME", "");
- BPMEntity body = new BPMEntity();
- body.PROC_FINANCE_INVENTORYMATERIAL_SCRAP_AND_ADJUSTMENT = pars1;
- body.XXXXXXXXX = listPars2;
- body.PROC_FINANCE_INVENTORYMATERIAL_SCRAP_AND_ADJUSTMENT_ATTACT_DT = pars3;
- //body.Add("PROC_FINANCE_INVENTORYMATERIAL_SCRAP_AND_ADJUSTMENT", pars1);
- //body.Add("PROC_FINANCE_INVENTORYMATERIAL_SCRAP_AND_ADJUSTMENT_DT", listPars2.ToArray());
- //body.Add("PROC_FINANCE_INVENTORYMATERIAL_SCRAP_AND_ADJUSTMENT_ATTACT_DT", pars3);
- //Hashtable ds = new Hashtable();
- //ds.Add("NewDataSet", body);
- string mm = JsonHelper.ToJson(body);
- //string XmlData = Json2Xml(mm).OuterXml;
- string XmlData = ObjectToXml(body).Replace("<XXXXXXXXX>", "").Replace("</XXXXXXXXX>", "");
-
- // 参数
- string result = bpmClient.SubmitProcess(token, userAccount, XmlData, Processname, Incident);
- return result;
- }
- }
- catch (Exception ex)
- {
- return "同步失败:" + ex.Message;
- }
- }
- /// <summary>
- /// 撤销BPM系统同步数据
- /// </summary>
- /// <param name="Incident"></param>
- /// <returns></returns>
- private static string CancelPushBPM(int Incident)
- {
- //INIUtility ini = INIUtility.Instance(INIUtility.IniFile.Config);
- //string endPointConfigurationName = ini.ReadIniData("BPM_INFO", "EndPointConfigurationName");
- try
- {
- using (ProcessServiceSoapClient bpmClient = new ProcessServiceSoapClient("ProcessServiceSoap"))
- {
- string token = "HEGIITOKEN";
- string userAccount = "MES001";
- string Processname = "Inventory Material Scrap And Adjustment Process";
- // 参数
- string result = bpmClient.ReturnProcess(token, userAccount, Processname, Incident);
- return result;
- }
- }
- catch (Exception ex)
- {
- return "同步失败:" + ex.Message;
- }
- }
- ///// <summary>
- ///// json字符串转换为Xml对象
- ///// </summary>
- ///// <param name="sJson"></param>
- ///// <returns></returns>
- //private static XmlDocument Json2Xml(string sJson)
- //{
- // //XmlDictionaryReader reader = JsonReaderWriterFactory.CreateJsonReader(Encoding.UTF8.GetBytes(sJson), XmlDictionaryReaderQuotas.Max);
- // //XmlDocument doc = new XmlDocument();
- // //doc.Load(reader);
- // try
- // {
- // JavaScriptSerializer oSerializer = new JavaScriptSerializer();
- // Dictionary<string, object> Dic = (Dictionary<string, object>)oSerializer.DeserializeObject(sJson);
- // XmlDocument doc = new XmlDocument();
- // XmlDeclaration xmlDec;
- // xmlDec = doc.CreateXmlDeclaration("1.0", "gb2312", "yes");
- // doc.InsertBefore(xmlDec, doc.DocumentElement);
- // XmlElement nRoot = doc.CreateElement("NewDataSet");
- // doc.AppendChild(nRoot);
- // foreach (KeyValuePair<string, object> item in Dic)
- // {
- // XmlElement element = doc.CreateElement(item.Key);
- // KeyValue2Xml(element, item);
- // nRoot.AppendChild(element);
- // }
- // return doc;
- // }
- // catch (Exception ex)
- // {
- // throw ex;
- // }
- //}
- //private static void KeyValue2Xml(XmlElement node, KeyValuePair<string, object> Source)
- //{
- // try
- // {
- // object kValue = Source.Value;
- // if (kValue.GetType() == typeof(Dictionary<string, object>))
- // {
- // foreach (KeyValuePair<string, object> item in kValue as Dictionary<string, object>)
- // {
- // XmlElement element = node.OwnerDocument.CreateElement(item.Key);
- // KeyValue2Xml(element, item);
- // node.AppendChild(element);
- // }
- // }
- // else if (kValue.GetType() == typeof(object[]))
- // {
- // object[] o = kValue as object[];
- // for (int i = 0; i < o.Length; i++)
- // {
- // XmlElement xitem = node.OwnerDocument.CreateElement("Item");
- // KeyValuePair<string, object> item = new KeyValuePair<string, object>("Item", o);
- // KeyValue2Xml(xitem, item);
- // node.AppendChild(xitem);
- // }
- // }
- // else
- // {
- // XmlText text = node.OwnerDocument.CreateTextNode(kValue.ToString());
- // node.AppendChild(text);
- // }
- // }
- // catch (Exception ex)
- // {
- // throw ex;
- // }
- //}
- /// <summary>
- /// 泛型对象转换成xml
- /// </summary>
- /// <param name="obj">对象</param>
- /// <returns></returns>
- private static string ObjectToXml<T>(T obj)
- {
- if (obj == null)
- {
- return "";
- }
- using (MemoryStream stream = new MemoryStream())
- {
- XmlSerializer xml = new XmlSerializer(obj.GetType());
- xml.Serialize(stream, obj);
- stream.Position = 0;
- StreamReader sr = new StreamReader(stream);
- string str = sr.ReadToEnd();
- return str;
- }
- }
- ///// <summary>
- ///// Json转Xml格式
- ///// </summary>
- ///// <param name="strJson"></param>
- ///// <returns></returns>
- //private static string JsonToXml(string json)
- //{
- // string xml = string.Empty;
- // XmlDocument xmlDoc = new XmlDocument();
- // try
- // {
- // XmlDictionaryReader xmlReader = JsonReaderWriterFactory.CreateJsonReader(Encoding.UTF8.GetBytes(json), XmlDictionaryReaderQuotas.Max);
- // xmlDoc.Load(xmlReader);
- // //json转xml
- // XmlDeclaration xmlDec = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", "no");
- // //创建xml声明
- // xmlDoc.InsertBefore(xmlDec, xmlDoc.DocumentElement); //插入xml声明
- // //xmlDoc.AppendChild(xmlDec);
- // //添加xml声明
- // }
- // catch (Exception ex)
- // {
- // //
- // }
- // return xmlDoc.OuterXml; //xml转string
- //}
- /// <summary>
- /// POST数据
- /// </summary>
- /// <param name="url"></param>
- /// <param name="data"></param>
- /// <param name="method"></param>
- /// <returns></returns>
- private static string PostData(string url, string data, string method)
- {
- //将单引号转义成双引号
- data = data.Replace("'", "\"");
- //创建Web访问对象
- HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);
- //把用户传过来的数据转成“UTF-8”的字节流
- byte[] buf = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(data);
- myRequest.Method = method;
- myRequest.ContentLength = buf.Length;
- myRequest.ContentType = "application/json;charset=UTF-8";
- myRequest.AllowAutoRedirect = true;
- //发送请求
- Stream stream = myRequest.GetRequestStream();
- stream.Write(buf, 0, buf.Length);
- stream.Close();
- //获取接口返回值
- //通过Web访问对象获取响应内容
- HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
- //通过响应内容流创建StreamReader对象,因为StreamReader更高级更快
- StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
- //string returnXml = HttpUtility.UrlDecode(reader.ReadToEnd());//如果有编码问题就用这个方法
- string returnXml = reader.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾
- reader.Close();
- myResponse.Close();
- return returnXml;
- }
- #endregion
- }
- }
|