| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652 |
-
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.IO;
- 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();
- 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_kcjzy", paras);
- int.TryParse(paras[1].Value + "", out logid);
- message = paras[2].Value + "";
- oracleConn.Commit();
- #endregion
- #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\n" +
- " to_char(B.EXECUTEDATEBEGIN,'yyyymmddhh24miss') AS ZYWKS,\n" +
- " to_char(B.EXECUTEDATEEND,'yyyymmddhh24miss') AS ZYWJS,\n" +
- " to_char(SYSDATE,'yyyymmddhh24miss') AS ZMONT,\n" +
- " A.WORKCODE AS WERKS,\n" +
- " A.SAPCODE AS MATNR,\n" +
- " A.GOODSCODE AS GROES,\n" +
- " A.WORKSHOP AS ZSCCJ,\n" +
- " A.WORKSHOP AS ZSSCJ,\n" +
- " A.DATACODE AS ZJDNU,\n" +
- " A.ITEM AS ZZYLX,\n" +
- " A.NUM AS MENGE,\n" +
- //" A.ZSCS,\n" +
- " 'T' AS ZSCS,\n" +
- " CASE WHEN A.TESTMOULDFLAG = 1 THEN 'Y' ELSE 'C' END AS ZSCMS, \n" +
- " '' AS ZTYPE1, \n" +
- " '' AS ZMSG1 \n" +
- "FROM\n" +
- " TSAP_HEGII_WORKDATA_KCJZY A\n" +
- " INNER JOIN TSAP_HEGII_DATALOG_KCJZY B ON B.LOGID = A.LOGID\n" +
- "WHERE\n" +
- " 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 && SAP_ING_NEW == "1")
- {
- 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");
- //url033 = "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_");
- }
- }
- 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.yyyymmdd >= :datebegin \n" +
- " AND dl.yyyymmdd <= :dateend \n";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":datebegin",OracleDbType.Varchar2, cre.Properties["datebegin"], ParameterDirection.Input),
- new OracleParameter(":dateend",OracleDbType.Varchar2, 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(int logid)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- 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" +
- " where wd.logid = :logid \n" +
- " order by wd.datacode,wd.item,wd.workshop \n";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":logid",OracleDbType.Int32, logid, 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(DateTime date, 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", 0, 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", 0, 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", 0, 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", 0, 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 釉坯 " + 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_5000("50", 0, 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_");
- }
- }
- // 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,
- // "AutoWorkDataToSAP5000",
- // "6001 成品明细 " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // JsonHelper.ToJson(sre),
- // LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- // }
- // }
- // catch (Exception ex)
- // {
- // OutputLog.TraceLog(LogPriority.Error,
- // "AutoWorkDataToSAP5000",
- // "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,
- // "AutoWorkDataToSAP5000",
- // "6002 成品明细(小时) " + date.ToString("yyyy-MM-dd HH:mm:ss"),
- // JsonHelper.ToJson(sre),
- // LocalPath.LogExePath + "SAP_HEGII\\Warn_");
- // }
- // }
- // catch (Exception ex)
- // {
- // OutputLog.TraceLog(LogPriority.Error,
- // "AutoWorkDataToSAP5000",
- // "6002 成品明细(小时) " + 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_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.yyyymmdd >= :DATEBEGIN\n" +
- " and dl.yyyymmdd <= :DATEEND\n";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":DATEBEGIN",OracleDbType.Varchar2, cre.Properties["datebegin"], ParameterDirection.Input),
- new OracleParameter(":DATEEND",OracleDbType.Varchar2, 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_BG(int logid)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- 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_datacode dc\n" +
- " on dc.datacode = wd.datacode\n" +
- " where wd.logid = :logid \n" +
- " 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),
- };
- 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.YYYYMMDD >= :DATEBEGIN
- AND DL.YYYYMMDD <= :DATEEND ";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":DATEBEGIN",OracleDbType.Varchar2, cre.Properties["datebegin"], ParameterDirection.Input),
- new OracleParameter(":DATEEND",OracleDbType.Varchar2, 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(int logid)
- {
- IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- try
- {
- string sqlString = @"
- SELECT WERKS,
- MATNR,
- ZJDNU,
- ZSCS,
- ZSCCJ,
- ZSCMS,
- CHARG,
- MENGE,
- ZMLID
- FROM TSAP_HEGII_WORKDATA_BGYK
- WHERE LOGID = :LOGID ";
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":LOGID",OracleDbType.Int32, logid, 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
- }
- }
|