| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Data;
- using System.IO;
- 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 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;
- }
- #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
- //}
- #endregion
- }
- }
|