| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269 |
-
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.IO;
- using System.Linq;
- using System.Net;
- using System.Reflection;
- using System.Text;
- using Dongke.IBOSS.PRD.Basics.BaseResources;
- using Dongke.IBOSS.PRD.Basics.DataAccess;
- using Dongke.IBOSS.PRD.Basics.Library;
- using Dongke.IBOSS.PRD.WCF.DataModels;
- using Newtonsoft.Json.Linq;
- using Oracle.ManagedDataAccess.Client;
- namespace Dongke.IBOSS.PRD.Service.SAPHegiiDataService
- {
- public partial class SAPDataLogic
- {
- #region 跨车间作业
- /// <summary>
- /// 同步SAP数据(自动)
- /// </summary>
- /// <param name="date"></param>
- public static void CrossWorkshopToSAP(DateTime date, DateTime ndate)
- {
- IDBTransaction oracleConn = null;
- ServiceResultEntity sre = new ServiceResultEntity();
- OracleParameter[] paras = null;
- int logid = 0;
- string message = string.Empty;
- string sqlString = string.Empty;
- try
- {
- #region 生成日志
- paras = new OracleParameter[]
- {
- new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
- new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
- new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
- };
- oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- DataSet ds = oracleConn.ExecStoredProcedure("pro_sap_hegii_workdata_kcjzy", paras);
- int.TryParse(paras[1].Value + "", out logid);
- message = paras[2].Value + "";
- oracleConn.Commit();
- #endregion
- #region 同步SAP
- // 手动推
- //logid = 28;
- oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- sqlString = @"
- SELECT TO_CHAR(B.EXECUTEDATEBEGIN, 'yyyymmddhh24miss') AS ZYWKS,
- TO_CHAR(B.EXECUTEDATEEND - 1 / 24 / 60 / 60, 'yyyymmddhh24miss') AS ZYWJS,
- TO_CHAR(SYSDATE, 'yyyymmddhh24miss') AS ZMONT,
- A.WORKCODE AS WERKS,
- A.SAPCODE AS MATNR,
- A.GOODSCODE AS GROES,
- A.WORKSHOP AS ZSCCJ,
- A.WORKSHOP AS ZSSCJ,
- A.DATACODE AS ZJDNU,
- A.ITEM AS ZZYLX,
- A.NUM AS MENGE,
- 'T' AS ZSCS,
- CASE WHEN A.TESTMOULDFLAG = 1 THEN 'Y' ELSE 'C' END AS ZSCMS,
- '' AS ZTYPE1,
- '' AS ZMSG1
- FROM TSAP_HEGII_WORKDATA_KCJZY A
- INNER JOIN TSAP_HEGII_DATALOG_KCJZY B
- ON B.LOGID = A.LOGID
- WHERE A.LOGID = :LOGID ";
- paras = new OracleParameter[]
- {
- new OracleParameter(":LOGID", OracleDbType.Int32, logid, ParameterDirection.Input),
- };
- DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
- //sqlString = "select SAP_INI_BG from TP_SYS_SAPCONFIG";
- //string SAP_ING_NEW = oracleConn.GetSqlResultToStr(sqlString);
- if (workData != null && workData.Rows.Count > 0)
- {
- string postString = "{\"IT_INPUT\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<CrossWorkShopToSAP>.ConvertToModel(workData)) + "}}";
- // 配置文件
- INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
- string url033 = ini.ReadIniData("SAP_NEW_INFO", "Url033");
- // 测试
- //string url033 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM033";
- // 正式
- //string url033 = "http://hgs4powd1.hegii.com:8000/RESTAdapter/DKMES/ZPPFM033";
-
- string ztype, msg = string.Empty;
- try
- {
- string result = PostData(url033, postString, "POST");
- ztype = JObject.Parse(result)["ZTYPE"].ToString();
- msg = JObject.Parse(result)["ZMSG"].ToString();
- }
- catch (Exception ex)
- {
- ztype = "E";
- msg = ex.Message;
- }
- sqlString = "update TSAP_HEGII_DATALOG_KCJZY t set t.EndTime = sysdate, DataStuts = :DataStuts, DataMSG =:msg where logid = :logid";
- paras = new OracleParameter[]
- {
- new OracleParameter(":logid", OracleDbType.Varchar2, logid, ParameterDirection.Input),
- new OracleParameter(":DataStuts", OracleDbType.Varchar2, ztype, ParameterDirection.Input),
- new OracleParameter(":msg", OracleDbType.Varchar2, msg, ParameterDirection.Input),
- };
- oracleConn.ExecuteNonQuery(sqlString, paras);
- oracleConn.Commit();
- }
- #endregion
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "CrossWorkshopToSAP",
- "跨车间作业量" + date.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- }
- }
- public static void CrossWorkshopToSAP_test(DateTime date, DateTime ndate)
- {
- IDBTransaction oracleConn = null;
- ServiceResultEntity sre = new ServiceResultEntity();
- int logid = 0;
- string message = string.Empty;
- string sqlString = string.Empty;
- try
- {
- #region 同步SAP
- oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- //sqlString = "select workcode from tp_mst_account where rownum = 1";
- //string workcode = oracleConn.GetSqlResultToStr(sqlString);
- //workcode = "5000";
- sqlString = @"SELECT
- to_char(:v_datebegin, 'yyyymmddhh24miss') AS ZYWKS,
- to_char(:in_dateend, 'yyyymmddhh24miss') AS ZYWJS,
- to_char(SYSDATE,'yyyymmddhh24miss') AS ZMONT,
- '5000' AS WERKS,
- MATERIALCODE AS MATNR,
- GOODSCODE AS GROES,
- to_char(WORKSHOP) AS ZSCCJ,
- to_char(DATACODE) AS ZJDNU,
- to_char(ITEM) AS ZZYLX,
- to_char(count( * )) AS MENGE,
- 'T' AS ZSCS,
- CASE WHEN TESTMOULDFLAG = 1 THEN 'Y' ELSE 'C' END AS ZSCMS,
- '' AS ZTYPE1,
- '' AS ZMSG1
- FROM
- (--产量
- SELECT
- GDD.MATERIALCODE,
- gdd.goodscode,
- HGDI.WORKSHOP,
- HGDI.DATACODE,
- 1 AS ITEM,
- GDD.TESTMOULDFLAG,
- G.GOODS_LINE_CODE AS ZSCS
- FROM
- TP_PM_PRODUCTIONDATA PD
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON PD.GOODSID = G.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
- AND HGDI.ITEMTYPE = 1
- AND HGDI.ITEMID = PD.PROCEDUREID
- AND(HGDI.ITEMID <> 104 OR(PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1'))
- WHERE
- PD.VALUEFLAG = 1
- AND PD.CREATETIME >= :v_datebegin
- AND PD.CREATETIME < :in_dateend
- AND(
- (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
- OR(
- HGDI.WORKSHOP = 3
- AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- )
- )
- AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1
- UNION ALL
- --产量撤销
- SELECT
- GDD.MATERIALCODE,
- GDD.goodscode,
- HGDI.WORKSHOP,
- HGDI.DATACODE AS DATACODE,
- 2 AS ITEM,
- GDD.TESTMOULDFLAG,
- G.GOODS_LINE_CODE AS ZSCS
- FROM
- TP_PM_PRODUCTIONDATA PD
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON PD.GOODSID = G.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
- AND HGDI.ITEMID = PD.PROCEDUREID
- AND(HGDI.ITEMID <> 104 OR(PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1'))
- WHERE
- PD.VALUEFLAG = 0
- AND PD.BACKOUTTIME >= :v_datebegin
- AND PD.BACKOUTTIME < :in_dateend
- AND(
- (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
- OR(
- HGDI.WORKSHOP = 3
- AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- )
- )
- AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1-- 工序报损
- UNION ALL
- SELECT
- GDD.MATERIALCODE,
- GDD.goodscode,
- HGDI.WORKSHOP,
- HGDI.DATACODE AS DATACODE,
- 3 AS ITEM,
- GDD.TESTMOULDFLAG,
- G.GOODS_LINE_CODE AS ZSCS
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN tp_pm_productiondata pd ON pd.productiondataid = sp.productiondataid
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON PD.GOODSID = G.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = PD.PROCEDUREID
- AND(HGDI.ITEMID <> 104 OR(PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1'))
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.AUDITDATE >= :v_datebegin
- AND SP.AUDITDATE < :in_dateend
- AND(
- (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
- OR(
- HGDI.WORKSHOP = 3
- AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- )
- )
- AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1-- 工序报损撤销
- UNION ALL
- SELECT
- GDD.MATERIALCODE,
- GDD.goodscode,
- HGDI.WORKSHOP,
- HGDI.DATACODE AS DATACODE,
- 4 AS ITEM,
- GDD.TESTMOULDFLAG,
- G.GOODS_LINE_CODE AS ZSCS
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN tp_pm_productiondata pd ON pd.productiondataid = sp.productiondataid
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON PD.GOODSID = G.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = PD.PROCEDUREID
- AND(HGDI.ITEMID <> 104 OR(PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1'))
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.VALUEFLAG = '0'
- AND SP.BACKOUTTIME >= :v_datebegin
- AND SP.BACKOUTTIME < :in_dateend
- AND(
- (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
- OR(
- HGDI.WORKSHOP = 3
- AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- )
- )
- AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1-- 盘点清除
- UNION ALL
- SELECT
- GDD.MATERIALCODE,
- GDD.GOODSCODE,
- HGDI.WORKSHOP,
- HGDI.DATACODE,
- 5 AS ITEM,
- GDD.TESTMOULDFLAG ,
- G.GOODS_LINE_CODE AS ZSCS
- FROM
- TP_PM_GOODSCHANGEHISTORY GH
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = GH.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON GH.GOODSID = G.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = GH.OTHERID
- WHERE
- GH.CREATETIME >= :v_datebegin
- AND GH.CREATETIME < :in_dateend
- AND GH.DATATYPE IN( 11, 12 )
- AND(
- (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
- OR(
- HGDI.WORKSHOP = 3
- AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- )
- )
- AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1-- 干补
- UNION ALL
- SELECT
- GDD.MATERIALCODE,
- GDD.GOODSCODE,
- HGDI.WORKSHOP,
- HGDI.DATACODE,
- 6 AS ITEM,
- GDD.TESTMOULDFLAG,
- G.GOODS_LINE_CODE AS ZSCS
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON SP.GOODSID = G.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.VALUEFLAG = '1'
- AND SP.GOODSLEVELTYPEID = 9
- AND SP.SPECIALREPAIRTIME >= :v_datebegin
- AND SP.SPECIALREPAIRTIME < :in_dateend
- AND(
- (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
- OR(
- HGDI.WORKSHOP = 3
- AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- )
- )
- AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1-- 回收
- UNION ALL
- SELECT
- GDD.MATERIALCODE,
- GDD.GOODSCODE,
- HGDI.WORKSHOP,
- HGDI.DATACODE,
- 7 AS ITEM,
- GDD.TESTMOULDFLAG,
- G.GOODS_LINE_CODE AS ZSCS
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON SP.GOODSID = G.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON(HGDI.DATACODE = '30' OR HGDI.DATACODE = '40' OR HGDI.DATACODE = '50')
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.VALUEFLAG = '1'
- AND SP.RECYCLINGFLAG = '1'
- AND SP.RECYCLINGTIME >= :v_datebegin
- AND SP.RECYCLINGTIME < :in_dateend
- AND(
- (HGDI.WORKSHOP = 2 AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1)
- OR(
- HGDI.WORKSHOP = 3
- AND(INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- )
- )
- AND INSTR(GT.GOODSTYPECODE, '001001' ) = 1
- )
- GROUP BY
- MATERIALCODE,
- GOODSCODE,
- WORKSHOP,
- DATACODE,
- ITEM,
- TESTMOULDFLAG,
- ZSCS
- ORDER BY
- DATACODE,
- ITEM,
- WORKSHOP";
- OracleParameter[] paras = new OracleParameter[]
- {
- new OracleParameter(":v_datebegin", OracleDbType.Date, date, ParameterDirection.Input),
- new OracleParameter(":in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
- };
- DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
- sqlString = "select SAP_INI_BG from TP_SYS_SAPCONFIG";
- string SAP_ING_NEW = oracleConn.GetSqlResultToStr(sqlString);
- if (workData != null && workData.Rows.Count > 0 && SAP_ING_NEW == "0")
- {
- string postString = "{\"IT_INPUT\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<CrossWorkShopToSAP>.ConvertToModel(workData)) + "}}";
- //INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
- //string url033 = ini.ReadIniData("SAP_NEW_INFO", "Url033");
- string url033 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM033";
- string result = PostData(url033, postString, "POST");
- string ztype = JObject.Parse(result)["ZTYPE"].ToString();
- string msg = JObject.Parse(result)["ZMSG"].ToString();
- //sqlString = "update TSAP_HEGII_DATALOG_KCJZY t set t.EndTime = sysdate, DataStuts = :DataStuts, DataMSG =:msg where logid = :logid";
- //paras = new OracleParameter[]
- //{
- // new OracleParameter(":logid", OracleDbType.Varchar2, logid, ParameterDirection.Input),
- // new OracleParameter(":DataStuts", OracleDbType.Varchar2, ztype, ParameterDirection.Input),
- // new OracleParameter(":msg", OracleDbType.Varchar2, msg, ParameterDirection.Input),
- //};
- //oracleConn.ExecuteNonQuery(sqlString, paras);
- oracleConn.Commit();
- }
- #endregion
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "CrossWorkshopToSAP",
- "跨车间作业量" + date.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- }
- }
- /// <summary>
- /// 查询跨车间作业同步日志
- /// </summary>
- /// <param name="cre"></param>
- /// <param name="userInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetDataLog_kczzy(ClientRequestEntity cre)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- string sqlString = "SELECT\n" +
- " dl.logid,\n" +
- " dl.begintime,\n" +
- " dl.endtime,\n" +
- " dl.yyyymmdd,\n" +
- " dl.workcode,\n" +
- " dl.datastuts,\n" +
- " dl.datamsg,\n" +
- " dl.executedatebegin,\n" +
- " dl.executedateend,\n" +
- " u.usercode synusercode\n" +
- "FROM\n" +
- " tsap_hegii_datalog_kcjzy dl\n" +
- " LEFT JOIN tp_mst_user u ON u.userid = dl.createuserid \n" +
- "WHERE\n" +
- " dl.EXECUTEDATEBEGIN >= :datebegin \n" +
- " AND dl.EXECUTEDATEEND <= :dateend \n";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":datebegin",OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
- new OracleParameter(":dateend",OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
- };
- string datastuts = cre.Properties["datastuts"] + "";
- if (!string.IsNullOrEmpty(datastuts))
- {
- sqlString += " and dl.datastuts in (" + datastuts + ")\n";
- }
- sqlString += "ORDER BY dl.logid DESC\n";
- sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
- return sre;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 查询同步明细
- /// </summary>
- /// <param name="logid"></param>
- /// <param name="userInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetWorkData_kczzy(ClientRequestEntity cre)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- int logid = Convert.ToInt32(cre.Request);
- string sqlString = "\n" +
- "select wd.workshop\n" +
- " ,case when wd.workshop = 2 then '二车间' when wd.workshop = 3 then '三车间' else '-' end workshopname\n " +
- " ,case when wd.item = 1 then '产量' when wd.item = 2 then '产量撤销' when wd.item = 3 then '工序报损' when wd.item = 4 then '工序报损撤销' \n" +
- " when wd.item = 5 then '盘点清除' when wd.item = 6 then '干补' when wd.item = 7 then '回收' else '-' end as itemname\n" +
- " ,item\n" +
- " ,wd.datacode\n" +
- " ,dc.datacodename\n" +
- " ,wd.goodscode\n" +
- " ,wd.sapcode\n" +
- " ,wd.num\n" +
- " ,wd.createtime\n" +
- " ,wd.testmouldflag\n" +
- " ,wd.zscs\n" +
- " ,case when wd.zscs = 'L' then '立浇【L】' when wd.zscs = 'G' then '高压【G】' when wd.zscs = 'M' then '粘接高压(三水厂)【M】' when wd.zscs = 'Q' then '吊装线【Q】' else '-' end as zscsname\n" +
- " ,wd.logid\n" +
- " from tsap_hegii_workdata_kcjzy wd\n" +
- " inner join tsap_hegii_datacode dc\n" +
- " on dc.datacode = wd.datacode\n";
- if (logid > 0)
- {
- sqlString += " where wd.logid = :logid \n";
- }
- else
- {
- sqlString += " inner join tsap_hegii_datalog_kcjzy dl\n" +
- " on wd.logid=dl.logid \n" +
- " where dl.EXECUTEDATEBEGIN>= :datebegin \n" +
- " and dl.EXECUTEDATEEND<= :dateend \n";
- }
- sqlString += " order by wd.datacode,wd.item,wd.workshop \n";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":logid",OracleDbType.Int32, logid, ParameterDirection.Input),
- new OracleParameter(":datebegin",OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
- new OracleParameter(":dateend",OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
- };
- sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
- return sre;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- #endregion
- #region 报工
- ///// <summary>
- ///// 同步SAP数据(自动)
- ///// </summary>
- ///// <param name="date"></param>
- //public static void AutoWorkDataToSAP5000(DateTime date, string funCode)
- //{
- // if (string.IsNullOrWhiteSpace(funCode))
- // {
- // //return;
- // funCode = "ALL";
- // }
- // funCode = "," + funCode + ",";
- // ServiceResultEntity sre = null;
- // // 10 模具
- // if (funCode == ",ALL," || funCode.Contains(",10,"))
- // {
- // try
- // {
- // sre = SetWorkData10_50(date, "10", 0);
- // if (sre.Status != Constant.ServiceResultStatus.Success ||
- // "S" != sre.Result + "")
- // {
- // OutputLog.TraceLog(LogPriority.Warning,
- // "AutoWorkDataToSAP",
- // "10 模具 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // JsonHelper.ToJson(sre),
- // LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- // }
- // }
- // catch (Exception ex)
- // {
- // OutputLog.TraceLog(LogPriority.Error,
- // "AutoWorkDataToSAP",
- // "10 模具 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // ex.ToString(),
- // LocalPath.LogExePath + "SAP_HEGII\\Error_");
- // }
- // }
- // // 20 湿坯
- // if (funCode == ",ALL," || funCode.Contains(",20,"))
- // {
- // try
- // {
- // sre = SetWorkData10_50(date, "20", 0);
- // if (sre.Status != Constant.ServiceResultStatus.Success ||
- // "S" != sre.Result + "")
- // {
- // OutputLog.TraceLog(LogPriority.Warning,
- // "AutoWorkDataToSAP",
- // "20 湿坯 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // JsonHelper.ToJson(sre),
- // LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- // }
- // }
- // catch (Exception ex)
- // {
- // OutputLog.TraceLog(LogPriority.Error,
- // "AutoWorkDataToSAP",
- // "20 湿坯 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // ex.ToString(),
- // LocalPath.LogExePath + "SAP_HEGII\\Error_");
- // }
- // }
- // // 30 精坯
- // if (funCode == ",ALL," || funCode.Contains(",30,"))
- // {
- // try
- // {
- // sre = SetWorkData10_50(date, "30", 0);
- // if (sre.Status != Constant.ServiceResultStatus.Success ||
- // "S" != sre.Result + "")
- // {
- // OutputLog.TraceLog(LogPriority.Warning,
- // "AutoWorkDataToSAP",
- // "30 精坯 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // JsonHelper.ToJson(sre),
- // LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- // }
- // }
- // catch (Exception ex)
- // {
- // OutputLog.TraceLog(LogPriority.Error,
- // "AutoWorkDataToSAP",
- // "30 精坯 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // ex.ToString(),
- // LocalPath.LogExePath + "SAP_HEGII\\Error_");
- // }
- // }
- // // 40 釉坯
- // if (funCode == ",ALL," || funCode.Contains(",40,"))
- // {
- // try
- // {
- // sre = SetWorkData10_50(date, "40", 0);
- // if (sre.Status != Constant.ServiceResultStatus.Success ||
- // "S" != sre.Result + "")
- // {
- // OutputLog.TraceLog(LogPriority.Warning,
- // "AutoWorkDataToSAP",
- // "40 釉坯 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // JsonHelper.ToJson(sre),
- // LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- // }
- // }
- // catch (Exception ex)
- // {
- // OutputLog.TraceLog(LogPriority.Error,
- // "AutoWorkDataToSAP",
- // "40 釉坯 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // ex.ToString(),
- // LocalPath.LogExePath + "SAP_HEGII\\Error_");
- // }
- // }
- // // 50 烧成
- // if (funCode == ",ALL," || funCode.Contains(",50,"))
- // {
- // try
- // {
- // sre = SetWorkData10_50(date, "50", 0);
- // if (sre.Status != Constant.ServiceResultStatus.Success ||
- // "S" != sre.Result + "")
- // {
- // OutputLog.TraceLog(LogPriority.Warning,
- // "AutoWorkDataToSAP",
- // "50 烧成 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // JsonHelper.ToJson(sre),
- // LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- // }
- // }
- // catch (Exception ex)
- // {
- // OutputLog.TraceLog(LogPriority.Error,
- // "AutoWorkDataToSAP",
- // "50 烧成 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // ex.ToString(),
- // LocalPath.LogExePath + "SAP_HEGII\\Error_");
- // }
- // }
- // //// 6001 成品明细
- // //if (funCode == ",ALL," || funCode.Contains(",6001,"))
- // //{
- // // try
- // // {
- // // sre = SetFP6001(date, 0);
- // // if (sre.Status != Constant.ServiceResultStatus.Success ||
- // // "S" != sre.Result + "")
- // // {
- // // OutputLog.TraceLog(LogPriority.Warning,
- // // "AutoWorkDataToSAP",
- // // "6001 成品明细 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // // JsonHelper.ToJson(sre),
- // // LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- // // }
- // // }
- // // catch (Exception ex)
- // // {
- // // OutputLog.TraceLog(LogPriority.Error,
- // // "AutoWorkDataToSAP",
- // // "6001 成品明细 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // // ex.ToString(),
- // // LocalPath.LogExePath + "SAP_HEGII\\Error_");
- // // }
- // //}
- // //// 6001 成品明细(小时)-20分钟
- // //if (funCode == ",6002,")
- // //{
- // // try
- // // {
- // // sre = SetFP6002(date, 0);
- // // if (sre.Status != Constant.ServiceResultStatus.Success ||
- // // "S" != sre.Result + "")
- // // {
- // // OutputLog.TraceLog(LogPriority.Warning,
- // // "AutoWorkDataToSAP",
- // // "6002 成品明细(小时) " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // // JsonHelper.ToJson(sre),
- // // LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- // // }
- // // }
- // // catch (Exception ex)
- // // {
- // // OutputLog.TraceLog(LogPriority.Error,
- // // "AutoWorkDataToSAP",
- // // "6002 成品明细(小时) " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // // ex.ToString(),
- // // LocalPath.LogExePath + "SAP_HEGII\\Error_");
- // // }
- // //}
- //}
- /// <summary>
- /// 同步SAP数据(自动)(重载)
- /// </summary>
- /// <param name="date">当前时间</param>
- /// <param name="funCode">工序码</param>
- /// <param name="ndate">本次要执行到的时间</param>
- public static void AutoWorkDataToSAP5000(string funCode, DateTime ndate)
- {
- if (string.IsNullOrWhiteSpace(funCode))
- {
- //return;
- funCode = "ALL";
- }
- funCode = "," + funCode + ",";
- ServiceResultEntity sre = null;
- // 10 模具
- if (funCode == ",ALL," || funCode.Contains(",10,"))
- {
- try
- {
- sre = SetWorkData10_50_5000("10", ndate);
- if (sre.Status != Constant.ServiceResultStatus.Success ||
- "S" != sre.Result + "")
- {
- OutputLog.TraceLog(LogPriority.Warning,
- "AutoWorkDataToSAP5000",
- "10 模具 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- JsonHelper.ToJson(sre),
- LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- }
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "AutoWorkDataToSAP5000",
- "10 模具 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- }
- }
- // 20 湿坯
- if (funCode == ",ALL," || funCode.Contains(",20,"))
- {
- try
- {
- sre = SetWorkData10_50_5000("20", ndate);
- if (sre.Status != Constant.ServiceResultStatus.Success ||
- "S" != sre.Result + "")
- {
- OutputLog.TraceLog(LogPriority.Warning,
- "AutoWorkDataToSAP5000",
- "20 湿坯 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- JsonHelper.ToJson(sre),
- LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- }
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "AutoWorkDataToSAP5000",
- "20 湿坯 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- }
- }
- // 30 精坯
- if (funCode == ",ALL," || funCode.Contains(",30,"))
- {
- try
- {
- sre = SetWorkData10_50_5000("30", ndate);
- if (sre.Status != Constant.ServiceResultStatus.Success ||
- "S" != sre.Result + "")
- {
- OutputLog.TraceLog(LogPriority.Warning,
- "AutoWorkDataToSAP5000",
- "30 精坯 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- JsonHelper.ToJson(sre),
- LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- }
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "AutoWorkDataToSAP5000",
- "30 精坯 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- }
- }
- // 40 釉坯
- if (funCode == ",ALL," || funCode.Contains(",40,"))
- {
- try
- {
- sre = SetWorkData10_50_5000("40", ndate);
- if (sre.Status != Constant.ServiceResultStatus.Success ||
- "S" != sre.Result + "")
- {
- OutputLog.TraceLog(LogPriority.Warning,
- "AutoWorkDataToSAP5000",
- "40 釉坯 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- JsonHelper.ToJson(sre),
- LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- }
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "AutoWorkDataToSAP5000",
- "40 釉坯 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- }
- }
- // 50 烧成
- if (funCode == ",ALL," || funCode.Contains(",50,"))
- {
- try
- {
- sre = SetWorkData10_50_5000("50", ndate);
- if (sre.Status != Constant.ServiceResultStatus.Success ||
- "S" != sre.Result + "")
- {
- OutputLog.TraceLog(LogPriority.Warning,
- "AutoWorkDataToSAP5000",
- "50 烧成 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- JsonHelper.ToJson(sre),
- LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- }
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "AutoWorkDataToSAP5000",
- "50 烧成 " + ndate.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- }
- }
- }
- /// <summary>
- /// 执行与推送
- /// </summary>
- /// <param name="datacode"></param>
- /// <param name="ndate"></param>
- /// <returns></returns>
- public static ServiceResultEntity SetWorkData10_50_5000(string datacode, DateTime ndate)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- IDBTransaction oracleConn = null;
- try
- {
- #region 事务1,执行存储过程
- OracleParameter[] paras = null;
- int logid = 0;
- string message = string.Empty;
- // 10 模具
- if ("10".Equals(datacode))
- {
- paras = new OracleParameter[]
- {
- new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
- new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
- new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
- };
- oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BG10", paras);
- int.TryParse(paras[1].Value + "", out logid);
- message = paras[2].Value + "";
- oracleConn.Commit();
- }
- // 20 湿坯
- else if ("20".Equals(datacode))
- {
- paras = new OracleParameter[]
- {
- new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
- new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
- new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
- };
- oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BG20", paras);
- int.TryParse(paras[1].Value + "", out logid);
- message = paras[2].Value + "";
- oracleConn.Commit();
- }
- // 30 精坯、40 釉坯
- else if ("30".Equals(datacode) || "40".Equals(datacode))
- {
- paras = new OracleParameter[]
- {
- new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
- new OracleParameter("in_datacode", OracleDbType.Varchar2, datacode, ParameterDirection.Input),
- new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
- new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
- };
- oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BG", paras);
- int.TryParse(paras[2].Value + "", out logid);
- message = paras[3].Value + "";
- oracleConn.Commit();
- }
- // 50 烧成
- else if ("50".Equals(datacode))
- {
- paras = new OracleParameter[]
- {
- new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
- new OracleParameter("in_datacode", OracleDbType.Varchar2, datacode, ParameterDirection.Input),
- new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
- new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
- };
- oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BG50", paras);
- int.TryParse(paras[2].Value + "", out logid);
- message = paras[3].Value + "";
- oracleConn.Commit();
- }
- // 如果logid为0,则数据没有生成
- if (logid == 0)
- {
- sre.Status = Constant.ServiceResultStatus.Other;
- sre.Message = message;
- return sre;
- }
- #endregion
- // 事物2,同步SAP接口
- string sqlString = "select SAP_INI_BG from TP_SYS_SAPCONFIG";
- string SAP_ING_NEW = oracleConn.GetSqlResultToStr(sqlString);
- if (SAP_ING_NEW == "1")
- {
- sre = SyncSap5000(ndate, datacode);
- }
- return sre;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- if (oracleConn != null &&
- oracleConn.ConnState == ConnectionState.Open)
- {
- oracleConn.Disconnect();
- }
- }
- }
- /// <summary>
- /// 同步SAP接口5000端口新
- /// </summary>
- /// <param name="date"></param>
- /// <param name="datacode"></param>
- /// <param name="userid"></param>
- /// <param name="logid"></param>
- /// <returns></returns>
- public static ServiceResultEntity SyncSap5000(DateTime date, string datacode)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- IDBTransaction oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- OracleParameter[] paras = null;
- int r = 0;
- // 查询当前节点所有不为S的日志
- string sqlString = @"
- SELECT DL.LOGID
- FROM TSAP_HEGII_DATALOG_BG DL
- WHERE 1 = 1
- AND DL.DATASTUTS = 'F'
- AND DL.LOGID > 6
- AND DL.DATACODE = :DATACODE ";
- paras = new OracleParameter[]
- {
- new OracleParameter(":DATACODE", datacode),
- };
- DataTable dtLogID = oracleConn.GetSqlResultToDt(sqlString, paras);
- string logIDs = "," + string.Join(",", dtLogID.AsEnumerable().Select(d => d.Field<decimal>("LOGID")).ToArray()) + ",";
- sqlString = @"
- SELECT TO_CHAR(WD.YYYYMMDD) YYYYMMDD,
- WD.WORKCODE AS WERKS,
- TO_CHAR(WD.GOODSCODE) GROES,
- TO_CHAR(WD.SAPCODE) MATNR,
- TO_CHAR(WD.USERCODE) ZGHNU,
- TO_CHAR(WD.DATACODE) ZJDNU,
- TO_CHAR(WD.YYYYMMDD) ZSCNU,
- TO_CHAR(DL.EXECUTEDATEBEGIN, 'HH24MISS') ZKSSJ,
- TO_CHAR(DL.EXECUTEDATEEND, 'YYYYMMDDHH24MISS') ZJSRQ,
- TO_CHAR(WD.ORDERCODE) VBELN,
- TO_CHAR(WD.ORDERITEM) POSNR,
- TO_CHAR(WD.OUTPUTNUM) ZCLNG,
- TO_CHAR(WD.SCRAPNUM) ZSPNG,
- TO_CHAR(WD.CLEANUPNUM) ZQCNG,
- TO_CHAR(WD.RECOVERYNUM) ZHSNG,
- TO_CHAR(WD.REPAIRNUM) ZGBNG,
- TO_CHAR(WD.TESTMOULDFLAG) ZSCMS,
- DECODE(:DATACODE, 20, TO_CHAR(WD.ZSCS), 'T') AS ZSCS,
- TO_CHAR(WD.WORKSHOP) ZSCCJ,
- WD.CHARG,
- TO_CHAR(:DATACODE) DATACODE,
- WD.WORKCODE || WD.CHARG || LPAD(DL.LOGID, 10,'0') AS ZID
- FROM TSAP_HEGII_WORKDATA_BG WD
- INNER JOIN TSAP_HEGII_DATALOG_BG DL
- ON WD.LOGID = DL.LOGID
- WHERE INSTR(:LOGIDS, ',' || WD.LOGID || ',') > 0 ";
- paras = new OracleParameter[]
- {
- new OracleParameter(":DATACODE",datacode),
- new OracleParameter(":LOGIDS", OracleDbType.Varchar2, logIDs, ParameterDirection.Input),
- };
- DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
- int num = workData.Rows.Count;
- // 调用SAP接口
- string postString = "{\"ZSUM\":" + num.ToString() + ",\"TABLE_IN\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<BGToSAP>.ConvertToModel(workData)) + "}}";
- INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
- // 配置文件
- string url030 = ini.ReadIniData("SAP_NEW_INFO", "Url030");
- // 测试
- // string url030 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM030";
- // 正式
- //string url030 = "http://hgs4powd1.hegii.com:8000/RESTAdapter/DKMES/ZPPFM030";
- string result = PostData(url030, postString, "POST");
- sqlString = @"
- UPDATE TSAP_HEGII_DATALOG_BG T
- SET T.ENDTIME = SYSDATE,
- DATASTUTS = :DATASTUTS,
- DATAMSG = :MSG
- WHERE INSTR(:LOGIDS, ',' || LOGID || ',') > 0 ";
- paras = new OracleParameter[]
- {
- new OracleParameter(":DATASTUTS",OracleDbType.Varchar2, JObject.Parse(result)["ZTYPE"].ToString(), ParameterDirection.Input),
- new OracleParameter(":MSG",OracleDbType.Varchar2, JObject.Parse(result)["ZMSG"].ToString(), ParameterDirection.Input),
- new OracleParameter(":LOGIDS", OracleDbType.Varchar2, logIDs, ParameterDirection.Input),
- };
- r = oracleConn.ExecuteNonQuery(sqlString, paras);
- oracleConn.Commit();
- sre.Message = JObject.Parse(result)["ZMSG"].ToString();
- sre.Result = JObject.Parse(result)["ZTYPE"].ToString();
- return sre;
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "BGToSAP",
- "报工" + date.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- throw ex;
- }
- finally
- {
- if (oracleConn != null &&
- oracleConn.ConnState == ConnectionState.Open)
- {
- oracleConn.Disconnect();
- }
- }
- }
- /// <summary>
- /// 查询同步日志
- /// </summary>
- /// <param name="cre"></param>
- /// <param name="userInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetDataLog_BG(ClientRequestEntity cre)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- string sqlString =
- "select dl.logid\n" +
- " ,dl.logtype\n" +
- " ,dl.begintime\n" +
- " ,dl.endtime\n" +
- " ,dl.yyyymmdd\n" +
- " ,dl.workcode\n" +
- " ,dl.datacode\n" +
- " ,dc.datacodename\n" +
- " ,dl.datastuts\n" +
- " ,dl.datamsg\n" +
- " ,dl.datalogid\n" +
- " ,dl.executedatebegin\n" +
- " ,dl.executedateend\n" +
- " ,u.usercode synusercode\n" +
- " from TSAP_HEGII_DATALOG_BG dl\n" +
- " inner join tsap_hegii_datacode dc\n" +
- " on dc.datacode = dl.datacode\n" +
- " left join tp_mst_user u\n" +
- " on u.userid = dl.createuserid\n" +
- " where dl.logtype IN('2','3')\n" +
- " and dl.executedatebegin >= :DATEBEGIN\n" +
- " and dl.executedateend < :DATEEND\n" +
- " and (-1= :DATACODE or dl.datacode=:DATACODE )";//add xiacm 2022-10-12
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":DATEBEGIN",OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
- new OracleParameter(":DATEEND",OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
- new OracleParameter(":DATACODE",OracleDbType.Varchar2, cre.Properties["datacode"], ParameterDirection.Input),
- };
- sqlString += "ORDER BY dl.logid DESC\n";
- sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
- return sre;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 查询同步明细
- /// </summary>
- /// <param name="logid"></param>
- /// <param name="userInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetWorkData_BG(ClientRequestEntity cre)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- int logid = Convert.ToInt32(cre.Request);
- string sqlString = "\n" +
- "select wd.yyyymmdd\n" +
- " ,wd.workcode\n" +
- " ,wd.datacode\n" +
- " ,dc.datacodename\n" +
- " ,wd.goodscode\n" +
- " ,wd.sapcode\n" +
- " ,wd.usercode\n" +
- " ,wd.ordercode\n" +
- " ,wd.orderitem\n" +
- " ,to_number(wd.outputnum) outputnum\n" +
- " ,to_number(wd.scrapnum) scrapnum\n" +
- " ,to_number(wd.cleanupnum) cleanupnum\n" +
- " ,to_number(wd.recoverynum) recoverynum\n" +
- " ,to_number(wd.repairnum) repairnum\n" +
- " ,wd.createtime\n" +
- " ,wd.ztype\n" +
- " ,wd.zmsg\n" +
- " ,wd.ztime\n" +
- " ,wd.testmouldflag\n" +
- " ,wd.zscs\n" +
- " ,wd.logid\n" +
- " from tsap_hegii_workdata_BG wd\n" +
- " inner join TSAP_HEGII_DATALOG_BG dl\n" +
- " on dl.logid = wd.logid\n" +
- " inner join tsap_hegii_datacode dc\n" +
- " on dc.datacode = wd.datacode\n";
- //update xiacm 2022-10-12
- if (logid > 0)
- {
- sqlString += " where wd.logid = :logid \n";
- }
- else
- {
- sqlString += " where dl.executedatebegin >= :DATEBEGIN and dl.executedateend < :DATEEND";
- sqlString += " and (-1= :DATACODE OR wd.datacode = :DATACODE)";
- }
- sqlString += " order by wd.goodscode,wd.sapcode,wd.usercode,wd.ordercode,wd.outputnum \n";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":logid",OracleDbType.Int32, logid, ParameterDirection.Input),
- new OracleParameter(":DATEBEGIN",OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
- new OracleParameter(":DATEEND",OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
- new OracleParameter(":DATACODE",OracleDbType.Varchar2, cre.Properties["datacode"], ParameterDirection.Input),
- };
- sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
- return sre;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 报工汇总 add xiacm 2022-10-12
- /// </summary>
- /// <param name="cre"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetDataLogTotal_BG(ClientRequestEntity cre)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- string sqlString = @"
- SELECT T1.DATACODE,
- T1.ACTUALOUTPUT,
- T2.OUTPUT,
- T2.SCRAPNUM,
- T2.CLEANNUPNUM,
- T2.RECOVERYNUM,
- T2.REPAIRNUM,
- T3.DRCXFDRJJDCCP,
- T4.DRJJBQTRCXDCCP,
- T1.ACTUALOUTPUT + NVL(T4.DRJJBQTRCXDCCP, 0) - NVL(T3.DRCXFDRJJDCCP, 0) -
- (T2.OUTPUT + T2.RECOVERYNUM) AS DIFFER
- FROM (
- -- 业务数据汇总
- -- 10
- SELECT '10' AS DATACODE,
- SUM(DECODE(MHH.OPERATIONTYPE, 1, M.STANDARDGROUTINGSUM, 0)) AS ACTUALOUTPUT
- FROM (SELECT MH.GOODSID,
- MH.MOULDID,
- MH.OPERATIONTYPE,
- MH.GROUTINGNUM
- FROM TP_PC_MOULDCHANGEHISTORY MH
- WHERE MH.OPERATIONTYPE IN (1, 2, 3, 9, 11, -1)
- AND MH.CREATETIME >= :DATEBEGIN
- AND MH.CREATETIME < :DATEEND
- UNION ALL
- SELECT MH.GOODSIDAFTER,
- MH.MOULDID,
- 0,
- MH.GROUTINGNUM
- FROM TP_PC_MOULDCHANGEHISTORY MH
- WHERE MH.OPERATIONTYPE = -1
- AND MH.CREATETIME >= :DATEBEGIN
- AND MH.CREATETIME < :DATEEND) MHH
- INNER JOIN TP_PC_MOULD M
- ON M.MOULDID = MHH.MOULDID
- UNION ALL
- -- 20
- SELECT '20' AS DATACODE,
- SUM(DECODE(GH.DATATYPE, 1, 1, -1)) BUSINESSOUTPUT
- FROM TP_PM_GOODSCHANGEHISTORY GH
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = GH.GOODSID
- WHERE GH.CREATETIME >= :DATEBEGIN
- AND GH.CREATETIME < :DATEEND
- AND GH.DATATYPE IN (1, 2)
- AND G.SCRAPSUMFLAG = '1'
- UNION ALL
- -- 30
- SELECT '30' AS DATACODE,
- SUM(T1.CC) AS BUSINESSOUTPUT
- FROM (SELECT 1 AS CC
- FROM TP_PM_PRODUCTIONDATA P
- WHERE P.PROCEDUREID IN (53, 97)
- AND P.CREATETIME >= :DATEBEGIN
- AND P.CREATETIME < :DATEEND
- UNION ALL
- SELECT -1 AS CC
- FROM TP_PM_PRODUCTIONDATA P
- WHERE P.PROCEDUREID IN (53, 97)
- AND P.VALUEFLAG = '0'
- AND P.BACKOUTTIME >= :DATEBEGIN
- AND P.BACKOUTTIME < :DATEEND) T1
- UNION ALL
- -- 40
- SELECT '40' AS DATACODE,
- SUM(T1.CC) AS BUSINESSOUTPUT
- FROM (SELECT 1 AS CC
- FROM TP_PM_PRODUCTIONDATA P
- WHERE P.PROCEDUREID IN (65, 99)
- AND P.CREATETIME >= :DATEBEGIN
- AND P.CREATETIME < :DATEEND
- UNION ALL
- SELECT -1 AS CC
- FROM TP_PM_PRODUCTIONDATA P
- WHERE P.PROCEDUREID IN (65, 99)
- AND P.VALUEFLAG = '0'
- AND P.BACKOUTTIME >= :DATEBEGIN
- AND P.BACKOUTTIME < :DATEEND) T1
- UNION ALL
- -- 50
- SELECT '50' AS DATACODE,
- SUM(T1.CC) AS BUSINESSOUTPUT
- FROM (SELECT COUNT(DISTINCT P.BARCODE) AS CC
- FROM TP_PM_PRODUCTIONDATA P
- WHERE P.PROCEDUREID IN (11, 104)
- AND ((P.PROCEDUREID <> 104 AND P.VALUEFLAG = '1') OR
- (P.PROCEDUREID = 104 AND P.ISREFIRE = '0' AND P.CHECKFLAG = '1'))
- AND P.CREATETIME >= :DATEBEGIN
- AND P.CREATETIME < :DATEEND
- UNION ALL
- SELECT -1 AS CC
- FROM TP_PM_PRODUCTIONDATA P
- WHERE P.PROCEDUREID IN (11, 104)
- AND P.VALUEFLAG = '0'
- AND P.PROCEDUREID <> 104
- AND P.ISREFIRE = '0'
- AND P.BACKOUTTIME >= :DATEBEGIN
- AND P.BACKOUTTIME < :DATEEND) T1
- UNION ALL
- -- 60
- SELECT '60' AS DATACODE,
- COUNT(1) AS BUSINESSOUTPUT
- FROM TP_PM_FINISHEDPRODUCT GH
- WHERE GH.FHTIME >= :DATEBEGIN
- AND GH.FHTIME < :DATEEND) T1
- LEFT JOIN (
- -- 当日推送日志数据汇总
- SELECT DATACODE AS DATACODETD,
- SUM(TO_NUMBER(OUTPUTNUM)) AS OUTPUT,
- SUM(TO_NUMBER(SCRAPNUM)) AS SCRAPNUM,
- SUM(TO_NUMBER(CLEANUPNUM)) AS CLEANNUPNUM,
- SUM(TO_NUMBER(RECOVERYNUM)) AS RECOVERYNUM,
- SUM(TO_NUMBER(REPAIRNUM)) AS REPAIRNUM
- FROM TSAP_HEGII_WORKDATA_BG
- WHERE LOGID IN (SELECT LOGID
- FROM TSAP_HEGII_DATALOG_BG T
- WHERE DATASTUTS = 'S'
- AND EXECUTEDATEBEGIN >= :DATEBEGIN
- AND EXECUTEDATEEND <= :DATEEND)
- GROUP BY DATACODE
- ORDER BY DATACODE) T2
- ON T2.DATACODETD = T1.DATACODE
- LEFT JOIN (
- -- 当日撤销非当日交接的产成品
- SELECT '60' AS DATACODE,
- COUNT(WL.CODEI) AS DRCXFDRJJDCCP
- FROM TP_WMS_LOG WL
- WHERE LOGTYPE = 2
- AND EXISTS (SELECT 1
- FROM TP_WMS_LOG WL1
- WHERE WL1.CODEI = WL.CODEI
- AND WL1.LOGTYPE = 1
- AND TRUNC(WL1.CREATETIME) < TRUNC(WL.CREATETIME))
- AND WL.CREATETIME >= :DATEBEGIN
- AND WL.CREATETIME < :DATEEND) T3
- ON T3.DATACODE = T1.DATACODE
- LEFT JOIN (
- -- 当日交接被其他日撤销的产成品
- SELECT '60' AS DATACODE,
- COUNT(WL.CODEI) AS DRJJBQTRCXDCCP
- FROM TP_WMS_LOG WL
- WHERE LOGTYPE = 1
- AND EXISTS (SELECT 1
- FROM TP_WMS_LOG WL1
- WHERE WL1.CODEI = WL.CODEI
- AND WL1.LOGTYPE = 2
- AND TRUNC(WL1.CREATETIME) > TRUNC(WL.CREATETIME))
- AND WL.CREATETIME >= :DATEBEGIN
- AND WL.CREATETIME < :DATEEND) T4
- ON T4.DATACODE = T1.DATACODE
- WHERE (-1 = :DATACODE OR T1.DATACODE = :DATACODE)
- ORDER BY T1.DATACODE ";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":DATEBEGIN",OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
- new OracleParameter(":DATEEND",OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
- new OracleParameter(":DATACODE",OracleDbType.Varchar2, cre.Properties["datacode"], ParameterDirection.Input),
- };
- sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
- return sre;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 半成品库存 add xiacm 2022-11-09
- /// </summary>
- /// <param name="cre"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetDataIVITotal_BC(ClientRequestEntity cre)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- string sqlString = @"SELECT semi.DATACODE ,
- semi.WORKSHOP ,
- semi.MATERIALCODE ,
- semi.GOODSCODE ,
- semi.GOODSNAME ,
- COUNT(1) AS INVENTORYQUANTITY,
- SYSDATE AS CREATETIME
- FROM (
- --配置表里的所有工序
- SELECT DI.DATACODE,
- CASE
- WHEN DI.WORKSHOP = 0
- AND DI.ITEMTYPE = 1
- AND IP.KILNCODE = 'SK1' THEN
- 1
- WHEN DI.WORKSHOP = 0
- AND DI.ITEMTYPE = 1
- AND IP.KILNCODE = 'SK2' THEN
- 2
- WHEN DI.WORKSHOP = 0
- AND DI.ITEMTYPE = 1
- AND IP.KILNCODE = 'SK3' THEN
- 3
- WHEN DI.WORKSHOP = 2
- AND DI.ITEMTYPE = 1
- AND IP.KILNCODE = 'TK1' THEN
- 1
- WHEN DI.WORKSHOP = 2
- AND DI.ITEMTYPE = 1
- AND IP.KILNCODE = 'TK2' THEN
- 2
- WHEN DI.WORKSHOP = 2
- AND DI.ITEMTYPE = 2
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN
- 2
- WHEN DI.WORKSHOP = 2
- AND DI.ITEMTYPE = 2
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN
- 1
- WHEN DI.WORKSHOP = 3 THEN
- 3
- ELSE
- 0
- END WORKSHOP,
- GDD.MATERIALCODE,
- G.GOODSCODE,
- G.GOODSNAME
- FROM TP_PM_INPRODUCTION IP
- INNER JOIN TSAP_HEGII_DATAITEM_SSKC DI
- ON IP.PROCEDUREID = DI.ITEMID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON IP.BARCODE = GDD.BARCODE
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON GT.GOODSTYPEID = G.GOODSTYPEID
- UNION ALL
- --10-0干补
- SELECT DI.DATACODE,
- CASE
- WHEN DI.WORKSHOP = 0
- AND DI.ITEMTYPE = 1
- AND IP.KILNCODE = 'SK1' THEN
- 1
- WHEN DI.WORKSHOP = 0
- AND DI.ITEMTYPE = 1
- AND IP.KILNCODE = 'SK2' THEN
- 2
- WHEN DI.WORKSHOP = 0
- AND DI.ITEMTYPE = 1
- AND IP.KILNCODE = 'SK3' THEN
- 3
- WHEN DI.WORKSHOP = 2
- AND DI.ITEMTYPE = 1
- AND IP.KILNCODE = 'TK1' THEN
- 1
- WHEN DI.WORKSHOP = 2
- AND DI.ITEMTYPE = 1
- AND IP.KILNCODE = 'TK2' THEN
- 2
- WHEN DI.WORKSHOP = 2
- AND DI.ITEMTYPE = 2
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN
- 2
- WHEN DI.WORKSHOP = 2
- AND DI.ITEMTYPE = 2
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN
- 1
- WHEN DI.WORKSHOP = 3 THEN
- 3
- ELSE
- 0
- END WORKSHOP,
- GDD.MATERIALCODE,
- G.GOODSCODE,
- G.GOODSNAME
- FROM TP_PM_INPRODUCTION IP
- INNER JOIN TSAP_HEGII_DATAITEM_SSKC DI
- ON IP.FLOWPROCEDUREID = DI.ITEMID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON IP.BARCODE = GDD.BARCODE
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON GT.GOODSTYPEID = G.GOODSTYPEID
- WHERE PROCEDUREID = 18
- UNION ALL
- --未交坯
- SELECT '20' DATACODE,
- CASE
- WHEN INSTR(GT.GOODSTYPECODE, '001001') = 1
- AND
- (INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1) THEN
- 2
- WHEN INSTR(GT.GOODSTYPECODE, '001002') = 1
- AND
- (INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1) THEN
- 1
- WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN
- 3
- ELSE
- 0
- END WORKSHOP,
- GDD.MATERIALCODE,
- G.GOODSCODE,
- G.GOODSNAME
- FROM TP_PM_GROUTINGDAILYDETAIL GDD
- INNER JOIN TP_MST_GOODS G
- ON GDD.GOODSID = G.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON GT.GOODSTYPEID = G.GOODSTYPEID
- WHERE GDD.VALUEFLAG = 1
- AND GDD.BARCODE IS NOT NULL
- AND GDD.BEGINNINGFLAG = 0
- AND GDD.DELIVERFLAG = 0
- AND GDD.SCRAPFLAG = 0) semi
- where (:DATACODE is null or :DATACODE ='' or :DATACODE ='-1' or instr(','||:DATACODE||',',','||semi.DATACODE||',')>0)
- and (:WORKSHOP is null or :WORKSHOP = '' or instr(','||:WORKSHOP||',',','||semi.WORKSHOP||',')>0)
- and (:MATERIALCODE is null or :MATERIALCODE = '' or instr(','||:MATERIALCODE||',',','||semi.MATERIALCODE||',')>0)
- GROUP BY DATACODE,
- WORKSHOP,
- MATERIALCODE,
- GOODSCODE,
- GOODSNAME
- ORDER BY DATACODE,
- WORKSHOP,
- MATERIALCODE,
- GOODSCODE,
- GOODSNAME";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":WORKSHOP",OracleDbType.Varchar2, cre.Properties["WORKSHOP"], ParameterDirection.Input),
- new OracleParameter(":MATERIALCODE",OracleDbType.Varchar2, cre.Properties["MATERIALCODE"], ParameterDirection.Input),
- new OracleParameter(":DATACODE",OracleDbType.Varchar2, cre.Properties["datacode"], ParameterDirection.Input),
- };
- sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
- return sre;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- #endregion
- #region 报工移库
- /// <summary>
- /// 报工移库_同步SAP数据(自动)
- /// </summary>
- /// <param name="date"></param>
- public static void BGYKToSAP(DateTime date, DateTime ndate)
- {
- IDBTransaction oracleConn = null;
- ServiceResultEntity sre = new ServiceResultEntity();
- int logid = 0;
- string message = string.Empty;
- string sqlString = string.Empty;
- try
- {
- #region 生成日志
- OracleParameter[] paras = new OracleParameter[]
- {
- new OracleParameter("in_dateend", OracleDbType.Date, ndate, ParameterDirection.Input),
- new OracleParameter("out_logid", OracleDbType.Int32, null, ParameterDirection.Output),
- new OracleParameter("out_msg", OracleDbType.NVarchar2, 500, null, ParameterDirection.Output)
- };
- oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- DataSet ds = oracleConn.ExecStoredProcedure("PRO_SAP_HEGII_WORKDATA_BGYK", paras);
- int.TryParse(paras[1].Value + "", out logid);
- message = paras[2].Value + "";
- oracleConn.Commit();
- #endregion
- #region 同步SAP
- oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- //2022年9月8日11:38:51 更改 by fy
- //sqlString = @"
- //SELECT WERKS,
- // MATNR,
- // ZJDNU,
- // ZSCS,
- // ZSCCJ,
- // ZSCMS,
- // CHARG,
- // MENGE,
- // ZMLID
- // FROM TSAP_HEGII_WORKDATA_BGYK
- // WHERE LOGID = :LOGID ";
- sqlString = @"SELECT
- A.WERKS,
- A.MATNR,
- A.ZJDNU,
- -- A.ZSCS,
- 'T' AS ZSCS,
- A.ZSCCJ,
- A.ZSCMS,
- A.CHARG,
- A.MENGE,
- A.ZMLID,
- to_char(B.EXECUTEDATEBEGIN, 'yyyymmddhh24miss') AS ZYWKS,
- to_char(B.EXECUTEDATEEND, 'yyyymmddhh24miss' ) AS ZYWJS,
- to_char(SYSDATE, 'yyyymmdd' ) AS ZBUDAT,
- to_char(SYSDATE, 'yyyymmddhh24miss' ) AS ZMONT,
- '' AS ZTYPE1,
- '' AS ZMSG1
- FROM
- TSAP_HEGII_WORKDATA_BGYK A
- INNER JOIN TSAP_HEGII_DATALOG_BGYK B ON B.LOGID = A.LOGID
- WHERE
- A.LOGID = :LOGID";
- paras = new OracleParameter[]
- {
- new OracleParameter(":LOGID", OracleDbType.Int32, logid, ParameterDirection.Input),
- };
- DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
- //获取报工SAP接口是否开启
- sqlString = "select SAP_INI_BG from TP_SYS_SAPCONFIG";
- string SAP_ING_NEW = oracleConn.GetSqlResultToStr(sqlString);
- if (workData != null && workData.Rows.Count > 0 && SAP_ING_NEW == "1")
- {
- string postString = "{\"IT_INPUT\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<BGYKToSAP>.ConvertToModel(workData)) + "}}";
- INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
- string url034 = ini.ReadIniData("SAP_NEW_INFO", "Url034");
- //url034 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM034";
- string result = PostData(url034, postString, "POST");
- string ztype = JObject.Parse(result)["ZTYPE"].ToString();
- string zmsg = JObject.Parse(result)["ZMSG"].ToString();
- sqlString = "update TSAP_HEGII_DATALOG_BGYK t set t.EndTime = sysdate, ZTYPE = :ZTYPE, ZMSG =:ZMSG where logid = :logid";
- paras = new OracleParameter[]
- {
- new OracleParameter(":logid", OracleDbType.Varchar2, logid, ParameterDirection.Input),
- new OracleParameter(":ZTYPE", OracleDbType.Varchar2, ztype, ParameterDirection.Input),
- new OracleParameter(":ZMSG", OracleDbType.Varchar2, zmsg, ParameterDirection.Input),
- };
- oracleConn.ExecuteNonQuery(sqlString, paras);
- oracleConn.Commit();
- }
- #endregion
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "BGYKToSAP",
- "报工移库" + date.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- }
- }
- public static void BGYKToSAP_TEST(DateTime date, DateTime ndate)
- {
- IDBTransaction oracleConn = null;
- ServiceResultEntity sre = new ServiceResultEntity();
- int logid = 0;
- string message = string.Empty;
- string sqlString = string.Empty;
- try
- {
- #region 同步SAP
- oracleConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- //2022年9月8日11:38:51 更改 by fy
- //sqlString = @"
- //SELECT WERKS,
- // MATNR,
- // ZJDNU,
- // ZSCS,
- // ZSCCJ,
- // ZSCMS,
- // CHARG,
- // MENGE,
- // ZMLID
- // FROM TSAP_HEGII_WORKDATA_BGYK
- // WHERE LOGID = :LOGID ";
- sqlString = @"SELECT '5000' WERKS,MATNR,to_char(ZJDNU) ZJDNU,'T' AS ZSCS,to_char(ZSCCJ) ZSCCJ,to_char(ZSCMS) ZSCMS,to_char(CHARG)CHARG,
- to_char(MENGE) MENGE,to_char(ZMLID) ZMLID,
- to_char(:V_DATEBEGIN, 'yyyymmddhh24miss') AS ZYWKS,
- to_char(:IN_DATEEND, 'yyyymmddhh24miss' ) AS ZYWJS,
- to_char(SYSDATE, 'yyyymmdd' ) AS ZBUDAT,
- to_char(SYSDATE, 'yyyymmddhh24miss' ) AS ZMONT FROM (
- SELECT
- T.MATNR,
- '30' AS ZJDNU,
- G.GOODS_LINE_CODE AS ZSCS,
- '2' AS ZSCCJ,
- T.ZSCMS,
- TO_CHAR( SYSDATE, 'yyyymm' ) AS CHARG,
- SUM( T.MENGE ) AS MENGE,
- '3' AS ZMLID
- FROM
- (-- 3-3线上施釉(3)到3#刮登(99)
- SELECT
- GDD.GOODSID,
- GDD.MATERIALCODE AS MATNR,
- DECODE( GDD.TESTMOULDFLAG, '1', 'Y', 'C' ) AS ZSCMS,
- COUNT( 1 ) AS MENGE
- FROM
- TP_PM_PRODUCTIONDATA PD1
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
- WHERE
- PD1.CREATETIME >= :V_DATEBEGIN
- AND PD1.CREATETIME < :IN_DATEEND
- AND PD1.PROCEDUREID = 99
- AND PD1.VALUEFLAG = '1'
- AND EXISTS ( SELECT 1 FROM TP_PM_PRODUCTIONDATA PD2 WHERE PD2.BARCODE = PD1.BARCODE AND PD2.PROCEDUREID = 3 )
- GROUP BY
- GDD.GOODSID,
- GDD.MATERIALCODE,
- GDD.TESTMOULDFLAG UNION ALL-- 3-3线上施釉(3)到3#刮登(99)撤销了的
- SELECT
- GDD.GOODSID,
- GDD.MATERIALCODE AS MATNR,
- DECODE( GDD.TESTMOULDFLAG, '1', 'Y', 'C' ) AS ZSCMS,
- - COUNT( 1 ) AS MENGE
- FROM
- TP_PM_PRODUCTIONDATA PD1
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
- WHERE
- PD1.BACKOUTTIME >= :V_DATEBEGIN
- AND PD1.BACKOUTTIME < :IN_DATEEND
- AND PD1.PROCEDUREID = 99
- AND PD1.VALUEFLAG = '0'
- AND EXISTS ( SELECT 1 FROM TP_PM_PRODUCTIONDATA PD2 WHERE PD2.BARCODE = PD1.BARCODE AND PD2.PROCEDUREID = 3 )
- GROUP BY
- GDD.GOODSID,
- GDD.MATERIALCODE,
- GDD.TESTMOULDFLAG
- ) T
- LEFT JOIN TP_MST_GOODS G ON G.GOODSID = T.GOODSID
- GROUP BY
- T.MATNR,
- T.ZSCMS,
- G.GOODS_LINE_CODE UNION ALL
- SELECT
- T.MATNR,
- '40' AS ZJDNU,
- G.GOODS_LINE_CODE AS ZSCS,
- '2' AS ZSCCJ,
- T.ZSCMS,
- TO_CHAR( SYSDATE, 'yyyymm' ) AS CHARG,
- SUM( T.MENGE ) AS MENGE,
- '3' AS ZMLID
- FROM
- (-- 3#卸窑(103)到7-1成检出窑交接(11)
- SELECT
- GDD.GOODSID,
- GDD.MATERIALCODE AS MATNR,
- DECODE( GDD.TESTMOULDFLAG, '1', 'Y', 'C' ) AS ZSCMS,
- COUNT( 1 ) AS MENGE
- FROM
- TP_PM_PRODUCTIONDATA PD1
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
- WHERE
- PD1.CREATETIME >= :V_DATEBEGIN
- AND PD1.CREATETIME < :IN_DATEEND
- AND PD1.PROCEDUREID = 11
- AND PD1.VALUEFLAG = '1'
- AND EXISTS ( SELECT 1 FROM TP_PM_PRODUCTIONDATA PD2 WHERE PD2.BARCODE = PD1.BARCODE AND PD2.PROCEDUREID = 103 )
- GROUP BY
- GDD.GOODSID,
- GDD.MATERIALCODE,
- GDD.TESTMOULDFLAG UNION ALL-- 3-3线上施釉(3)到3#刮登(99)撤销了的
- SELECT
- GDD.GOODSID,
- GDD.MATERIALCODE AS MATNR,
- DECODE( GDD.TESTMOULDFLAG, '1', 'Y', 'C' ) AS ZSCMS,
- - COUNT( 1 ) AS MENGE
- FROM
- TP_PM_PRODUCTIONDATA PD1
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
- WHERE
- PD1.BACKOUTTIME >= :V_DATEBEGIN
- AND PD1.BACKOUTTIME < :IN_DATEEND
- AND PD1.PROCEDUREID = 11
- AND PD1.VALUEFLAG = '0'
- AND EXISTS ( SELECT 1 FROM TP_PM_PRODUCTIONDATA PD2 WHERE PD2.BARCODE = PD1.BARCODE AND PD2.PROCEDUREID = 103 )
- GROUP BY
- GDD.GOODSID,
- GDD.MATERIALCODE,
- GDD.TESTMOULDFLAG
- ) T
- LEFT JOIN TP_MST_GOODS G ON G.GOODSID = T.GOODSID
- GROUP BY
- T.MATNR,
- T.ZSCMS,
- G.GOODS_LINE_CODE UNION ALL
- SELECT
- T.MATNR,
- '40' AS ZJDNU,
- G.GOODS_LINE_CODE AS ZSCS,
- '3' AS ZSCCJ,
- T.ZSCMS,
- TO_CHAR( SYSDATE, 'yyyymm' ) AS CHARG,
- SUM( T.MENGE ) AS MENGE,
- '2' AS ZMLID
- FROM
- (-- 6-1卸窑(10)到3#成检交接(104)
- SELECT
- GDD.GOODSID,
- GDD.MATERIALCODE AS MATNR,
- DECODE( GDD.TESTMOULDFLAG, '1', 'Y', 'C' ) AS ZSCMS,
- COUNT( 1 ) AS MENGE
- FROM
- TP_PM_PRODUCTIONDATA PD1
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
- WHERE
- PD1.CREATETIME >= :V_DATEBEGIN
- AND PD1.CREATETIME < :IN_DATEEND
- AND PD1.PROCEDUREID = 104
- AND PD1.VALUEFLAG = '1'
- AND EXISTS ( SELECT 1 FROM TP_PM_PRODUCTIONDATA PD2 WHERE PD2.BARCODE = PD1.BARCODE AND PD2.PROCEDUREID = 10 )
- GROUP BY
- GDD.GOODSID,
- GDD.MATERIALCODE,
- GDD.TESTMOULDFLAG UNION ALL-- 6-1卸窑(10)到3#成检交接(104)撤销了的
- SELECT
- GDD.GOODSID,
- GDD.MATERIALCODE AS MATNR,
- DECODE( GDD.TESTMOULDFLAG, '1', 'Y', 'C' ) AS ZSCMS,
- - COUNT( 1 ) AS MENGE
- FROM
- TP_PM_PRODUCTIONDATA PD1
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
- WHERE
- PD1.BACKOUTTIME >= :V_DATEBEGIN
- AND PD1.BACKOUTTIME < :IN_DATEEND
- AND PD1.PROCEDUREID = 104
- AND PD1.VALUEFLAG = '0'
- AND EXISTS ( SELECT 1 FROM TP_PM_PRODUCTIONDATA PD2 WHERE PD2.BARCODE = PD1.BARCODE AND PD2.PROCEDUREID = 10 )
- GROUP BY
- GDD.GOODSID,
- GDD.MATERIALCODE,
- GDD.TESTMOULDFLAG
- ) T
- LEFT JOIN TP_MST_GOODS G ON G.GOODSID = T.GOODSID
- GROUP BY
- T.MATNR,
- T.ZSCMS,
- G.GOODS_LINE_CODE
- ) WHERE MENGE > 0";
- OracleParameter[] paras = new OracleParameter[]
- {
- new OracleParameter(":V_DATEBEGIN",OracleDbType.Date, date, ParameterDirection.Input),
- new OracleParameter(":IN_DATEEND",OracleDbType.Date, ndate, ParameterDirection.Input),
- };
- DataTable workData = oracleConn.GetSqlResultToDt(sqlString, paras);
- //获取报工SAP接口是否开启
- sqlString = "select SAP_INI_BG from TP_SYS_SAPCONFIG";
- string SAP_ING_NEW = oracleConn.GetSqlResultToStr(sqlString);
- if (workData != null && workData.Rows.Count > 0 && SAP_ING_NEW == "0")
- {
- string postString = "{\"IT_INPUT\":{\"item\":" + JsonHelper.ToJson(ModelConvertHelper<BGYKToSAP>.ConvertToModel(workData)) + "}}";
- //INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
- //string url034 = ini.ReadIniData("SAP_NEW_INFO", "Url034");
- string url034 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM034";
- string result = PostData(url034, postString, "POST");
- string ztype = JObject.Parse(result)["ZTYPE"].ToString();
- string zmsg = JObject.Parse(result)["ZMSG"].ToString();
- //sqlString = "update TSAP_HEGII_DATALOG_BGYK t set t.EndTime = sysdate, ZTYPE = :ZTYPE, ZMSG =:ZMSG where logid = :logid";
- //paras = new OracleParameter[]
- //{
- // new OracleParameter(":logid", OracleDbType.Varchar2, logid, ParameterDirection.Input),
- // new OracleParameter(":ZTYPE", OracleDbType.Varchar2, ztype, ParameterDirection.Input),
- // new OracleParameter(":ZMSG", OracleDbType.Varchar2, zmsg, ParameterDirection.Input),
- //};
- //oracleConn.ExecuteNonQuery(sqlString, paras);
- oracleConn.Commit();
- }
- #endregion
- }
- catch (Exception ex)
- {
- OutputLog.TraceLog(LogPriority.Error,
- "BGYKToSAP",
- "报工移库" + date.ToString("yyyy-MM-dd HH:mm:ss"),
- ex.ToString(),
- LocalPath.LogExePath + "SAP_HEGII\\Error_");
- }
- }
- /// <summary>
- /// 查询同步日志
- /// </summary>
- /// <param name="cre"></param>
- /// <param name="userInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetDataLog_BGYK(ClientRequestEntity cre)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- string sqlString = @"
- SELECT DL.LOGID,
- DL.BEGINTIME,
- DL.ENDTIME,
- DL.YYYYMMDD,
- DL.ZTYPE,
- DL.ZMSG,
- U.USERCODE SYNUSERCODE
- FROM TSAP_HEGII_DATALOG_BGYK DL
- LEFT JOIN TP_MST_USER U
- ON U.USERID = DL.CREATEUSERID
- WHERE DL.EXECUTEDATEBEGIN >= :DATEBEGIN
- AND DL.EXECUTEDATEEND <= :DATEEND ";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":DATEBEGIN",OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
- new OracleParameter(":DATEEND",OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
- };
- sqlString += "ORDER BY dl.logid DESC\n";
- sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
- return sre;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// 查询同步明细
- /// </summary>
- /// <param name="logid"></param>
- /// <param name="userInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetWorkData_BGYK(ClientRequestEntity cre)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- //add xiacm 2022-10-21
- int logid = Convert.ToInt32(cre.Request);
- string sqlString = @"
- SELECT WERKS,
- MATNR,
- ZJDNU,
- ZSCS,
- ZSCCJ,
- ZSCMS,
- CHARG,
- MENGE,
- ZMLID
- FROM TSAP_HEGII_WORKDATA_BGYK WD ";
- if (logid > 0)
- {
- sqlString += "WHERE WD.LOGID = :LOGID ";
- }
- else
- {
- sqlString += @" INNER JOIN TSAP_HEGII_DATALOG_BGYK DL
- ON WD.LOGID = DL.LOGID
- WHERE DL.EXECUTEDATEBEGIN >= :DATEBEGIN
- AND DL.EXECUTEDATEEND <= :DATEEND ";
- }
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":LOGID",OracleDbType.Int32, logid, ParameterDirection.Input),
- new OracleParameter(":DATEBEGIN",OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
- new OracleParameter(":DATEEND",OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
- };
- sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
- return sre;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- #endregion
- #region PostData 请求
- public 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.MaximumAutomaticRedirections = 1;
- myRequest.AllowAutoRedirect = true;
- //UTF8标准转码加密
- INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
- // 配置文件
- string userName = ini.ReadIniData("SAP_NEW_INFO", "userName");
- // 测试
- //string userName = "hgsapdk:Sapdk#240";
- // 正式
- //string userName = "PODKMES:Sapdk#800";
- string base64Header = Convert.ToBase64String(Encoding.UTF8.GetBytes(userName));
- myRequest.Headers.Add("Authorization", "Basic " + base64Header);
- //发送请求
- 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();
- // 结果
- OutputLog.TraceLog(LogPriority.Information,
- "报工030", method, data,
- LocalPath.LogExePath + "SAP_HEGII\\Info_030");
- return returnXml;
- }
- #endregion
- #region 转换
- public class ModelConvertHelper<T> where T : new()
- {
- public static List<T> ConvertToModel(DataTable dt)
- {
- // 定义集合
- List<T> ts = new List<T>();
- // 获得此模型的类型
- Type type = typeof(T);
- string tempName = "";
- foreach (DataRow dr in dt.Rows)
- {
- T t = new T();
- // 获得此模型的公共属性
- PropertyInfo[] propertys = t.GetType().GetProperties();
- foreach (PropertyInfo pi in propertys)
- {
- tempName = pi.Name;
- // 检查DataTable是否包含此列
- if (dt.Columns.Contains(tempName))
- {
- // 判断此属性是否有Setter
- if (!pi.CanWrite) continue;
- object value = dr[tempName];
- if (value != DBNull.Value)
- pi.SetValue(t, value, null);
- }
- }
- ts.Add(t);
- }
- return ts;
- }
- }
- #endregion
- }
- }
|