| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423 |
- /*******************************************************************************
- * Copyright(c) 2019 DongkeSoft All rights reserved. / Confidential
- * 类的信息:
- * 1.程序名称:PDAModuleLogicWorkShop3.cs
- * 2.功能描述:PDA相关处理(三车间专用)。
- * 编辑履历:
- * 作者 日期 版本 修改内容
- * 徐伟 2019/11/05 1.00 新建
- *******************************************************************************/
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Drawing;
- using System.Drawing.Imaging;
- using System.IO;
- 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.Service.DataModels;
- using Dongke.IBOSS.PRD.WCF.DataModels;
- using Dongke.IBOSS.PRD.WCF.DataModels.HRModule;
- using Dongke.IBOSS.PRD.WCF.DataModels.PCModule;
- using Dongke.IBOSS.PRD.WCF.DataModels.PMModule;
- using Oracle.ManagedDataAccess.Client;
- using Newtonsoft.Json.Linq;
- using Dongke.IBOSS.PRD.Service.CMNModuleService;
- using Dongke.IBOSS.PRD.Service.PMModuleService;
- using System.Collections;
- using System.Linq;
- namespace Dongke.IBOSS.PRD.Service.PDAModuleLogic
- {
- /// <summary>
- /// 三车间专用接口
- /// </summary>
- public partial class PDAModuleLogic
- {
- #region xuwei add 2019-10-28 三车间接口
- /// <summary>
- /// 用于方法互调,并且附加返回结果
- /// </summary>
- /// <param name="sre">原SRE</param>
- /// <param name="addSre">添加SRE</param>
- public static void AddServiceResultEntity(ServiceResultEntity sre, ServiceResultEntity addSre)
- {
- for (int i = 0; i < addSre.Data.Tables.Count; i++)
- sre.Data.Tables.Add(addSre.Data.Tables[i].Copy());
- sre.Status = addSre.Status;
- sre.Message = addSre.Message;
- }
- /// <summary>
- /// 替换成型线的当前生产工号 查询方法 ok
- /// </summary>
- /// <param name="groutingLineNo"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetGroutingLineUserCode(string groutingLineCode, SUserInfo sUser)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- sre.Data = new DataSet();
- sre.Status = Constant.ServiceResultStatus.Success;
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- string sqlStr = "";
- try
- {
- conn.Connect();
- //检查成型线是否存在
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- SELECT
- l.GROUTINGLINECODE, -- AS 成型线编码,
- c.USERCODE -- AS 用户编码
- FROM
- TP_PC_GROUTINGLINE l
- LEFT JOIN TP_MST_USER c ON l.USERID = c.USERID
- WHERE
- l.VALUEFLAG = '1'
- AND l.ACCOUNTID = {sUser.AccountID}
- AND l.GROUTINGLINECODE = '{groutingLineCode}'
- ";
- DataTable groutingLine = conn.GetSqlResultToDt(sqlStr);
- groutingLine.TableName = "GroutingLine";
- sre.Data.Tables.Add(groutingLine);
- if (groutingLine.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "没有查询结果!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- }
- //检查成型线是否包含当前登录的成型工号
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- SELECT
- l.GROUTINGLINECODE, -- AS 成型线编码,
- c.USERCODE -- AS 用户编码
- FROM
- TP_PC_GROUTINGLINE l
- INNER JOIN TP_PC_GROUTINGUSER u ON l.GROUTINGLINEID = u.GROUTINGLINEID
- LEFT JOIN TP_MST_USER c ON u.USERID = c.USERID
- WHERE
- l.VALUEFLAG = '1'
- AND l.ACCOUNTID = {sUser.AccountID}
- AND l.GROUTINGLINECODE = '{groutingLineCode}'
- ";
- DataTable groutingLineUser = conn.GetSqlResultToDt(sqlStr);
- groutingLineUser.TableName = "GroutingLineUser";
- sre.Data.Tables.Add(groutingLineUser);
- bool isUser = false;
- for (int i = 0; i < groutingLineUser.Rows.Count; i++)
- if (groutingLineUser.Rows[i]["USERCODE"].ToString() == sUser.UserCode)
- isUser = true;
- if (groutingLineUser.Rows.Count == 0 || !isUser)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "成型线不包含当前生产工号!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- /// <summary>
- /// 替换成型线的当前生产工号 替换方法 ok
- /// </summary>
- /// <param name="groutingLineCode"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity SetGroutingLineUserCode(string groutingLineCode, SUserInfo sUser)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- sre.Data = new DataSet();
- sre.Status = Constant.ServiceResultStatus.Success;
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- string sqlStr = "";
- try
- {
- conn.Connect();
- //校验替换合法性
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- AddServiceResultEntity(sre, GetGroutingLineUserCode(groutingLineCode, sUser));
- }
- //替换成型线当前的成型工号
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- UPDATE
- TP_PC_GROUTINGLINE
- SET
- USERID = {sUser.UserID}
- WHERE
- GROUTINGLINECODE = '{groutingLineCode}'
- AND ACCOUNTID = {sUser.AccountID}
- ";
- int execute = conn.ExecuteNonQuery(sqlStr);
- if (execute > 0)
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作完成!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoModifyData;
- sre.Message = "操作失败,没有更新任何数据!";
- }
- conn.Commit();
- }
- }
- catch (Exception ex)
- {
- conn.Rollback();
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- /// <summary>
- /// 成型线注浆批次查询 ok
- /// </summary>
- /// <param name="groutingLineCode"></param>
- /// <param name="groutingDay"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetGroutingLineBatchNo(string groutingLineCode, string groutingDay, SUserInfo sUser)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- sre.Data = new DataSet();
- sre.Status = Constant.ServiceResultStatus.Success;
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- string sqlStr = "";
- try
- {
- conn.Connect();
- //成型线注浆批次查询
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- SELECT DISTINCT
- d.GROUTINGBATCHNO --AS 注浆批次
- FROM
- TP_PM_GROUTINGDAILY d
- WHERE
- d.VALUEFLAG = '1'
- AND d.ACCOUNTID = {sUser.AccountID}
- AND d.GROUTINGLINECODE = '{groutingLineCode}'
- AND d.GROUTINGDATE = date'{groutingDay}'
- ORDER BY
- d.GROUTINGBATCHNO
- ";
- DataTable GroutingLineBatchNo = conn.GetSqlResultToDt(sqlStr);
- GroutingLineBatchNo.TableName = "GroutingLineBatchNo";
- sre.Data.Tables.Add(GroutingLineBatchNo);
- if (GroutingLineBatchNo.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "没有查询结果!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- /// <summary>
- /// 成型线信息查询 ok
- /// </summary>
- /// <param name="groutingLineCode"></param>
- /// <param name="groutingDay"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetGroutingLineInfo(string groutingLineCode, string groutingDay, SUserInfo sUser)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- sre.Data = new DataSet();
- sre.Status = Constant.ServiceResultStatus.Success;
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- string sqlStr = "";
- string sqlStrNext = "";
- try
- {
- conn.Connect();
- //成型线注浆查询
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- SELECT
- 1
- FROM
- TP_MST_USERPURVIEW p
- INNER JOIN tp_mst_user u ON u.USERID = p.USERID
- WHERE
- p.PURVIEWTYPE = '6'
- AND ( p.PURVIEWID = - 1 OR p.PURVIEWID = ( SELECT GROUTINGLINEID FROM TP_PC_GROUTINGLINE WHERE GROUTINGLINECODE = :groutingLineCode ) )
- AND u.USERCODE = :usercode
- ";
- OracleParameter[] Paras = new OracleParameter[] {
- new OracleParameter(":groutingLineCode",OracleDbType.Varchar2, groutingLineCode,ParameterDirection.Input),
- new OracleParameter(":usercode",OracleDbType.Varchar2, sUser.UserCode,ParameterDirection.Input),
- };
- DataTable purview = conn.GetSqlResultToDt(sqlStr, Paras);
- //purview.TableName = "UserPurview";
- //sre.Data.Tables.Add(purview);
- if (purview.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "成型线信息不正确或用户无权限操作该成型线!";
- }
- else
- {
- sqlStrNext = $@"
- SELECT
- l.GROUTINGLINECODE ,-- AS 成型线号,
- l.LASTGROUTINGDATE ,-- AS 已注浆日期,
- l.LASTGROUTINGBATCHNO ,-- AS 已注浆批次,
- u.USERCODE ,-- AS 成型工号,
- m.USERCODE AS MONITORUSERCODE,-- AS 成型班长,
- l.MOULDQUANTITY, -- AS 模具数量,
- t.CANMANYTIMES -- AS 允许多次注浆
- FROM
- TP_PC_GROUTINGLINE l
- LEFT JOIN TP_MST_USER u ON l.USERID = u.USERID
- LEFT JOIN TP_MST_USER m ON l.USERID = m.USERID
- LEFT JOIN TP_MST_GMOULDTYPE t ON l.GMOULDTYPEID = t.GMOULDTYPEID
- WHERE
- l.VALUEFLAG = '1' --有效标识
- AND l.ACCOUNTID = :ACCOUNTID
- AND l.GMOULDSTATUS = 1 --成型线正常状态
- AND t.CANMANYTIMES = '1' --允许多次注浆
- AND EXISTS ( SELECT 1 FROM TP_PC_GROUTINGLINEDETAIL d WHERE l.GROUTINGLINEID = d.GROUTINGLINEID AND d.VALUEFLAG = '1' AND d.GMOULDSTATUS = 1 ) --有正常状态的模具
- AND l.GROUTINGLINECODE = :groutingLineCode
- ";
- OracleParameter[] par = new OracleParameter[] {
- new OracleParameter(":groutingLineCode",OracleDbType.Varchar2, groutingLineCode,ParameterDirection.Input),
- new OracleParameter(":ACCOUNTID",OracleDbType.Varchar2, sUser.AccountID,ParameterDirection.Input),
- };
- DataTable groutingLine = conn.GetSqlResultToDt(sqlStrNext, par);
- groutingLine.TableName = "GroutingLine";
- sre.Data.Tables.Add(groutingLine);
- if (groutingLine.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "没有查询结果!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- }
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- /// <summary>
- /// 成型线模具查询方法 E37 2#0101 2019-08-12 应用于 注浆登记
- /// </summary>
- /// <param name="groutingLineCode"></param>
- /// <param name="groutingDay"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetGroutingLineDetail(string groutingLineCode, string groutingDay, SUserInfo sUser)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- sre.Data = new DataSet();
- sre.Status = Constant.ServiceResultStatus.Success;
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- string sqlStr = "";
- try
- {
- conn.Connect();
- //查找成型线
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- //if (!string.IsNullOrWhiteSpace(groutingLineCode) && groutingLineCode.Contains("'"))
- //{
- // sre.Status = Constant.ServiceResultStatus.Other;
- // sre.OtherStatus = -1;
- // sre.Message = "成型线输入错误,包含其他字符,请核对!";
- // return sre;
- //}
- AddServiceResultEntity(sre, GetGroutingLineInfo(groutingLineCode, groutingDay, sUser));
- }
- //校验注浆日期 允许多次注浆:>= 最后注浆日期 不允许多次 > 最后注浆日期 同时小于等于今天
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- SELECT
- l.LASTGROUTINGDATE,
- t.CANMANYTIMES
- FROM
- TP_PC_GROUTINGLINE l
- LEFT JOIN TP_MST_GMOULDTYPE t ON l.GMOULDTYPEID = t.GMOULDTYPEID
- WHERE
- l.VALUEFLAG = '1'
- AND l.ACCOUNTID = {sUser.AccountID}
- AND l.GROUTINGLINECODE = '{groutingLineCode}'
- ";
- DataTable groutingLine = conn.GetSqlResultToDt(sqlStr);
- if (groutingLine.Rows.Count>0 && !string.IsNullOrEmpty(groutingLine.Rows[0]["LASTGROUTINGDATE"].ToString()))
- {
- DateTime groutingDate = Convert.ToDateTime(groutingDay);
- DateTime lastGroutingDate = Convert.ToDateTime(groutingLine.Rows[0]["LASTGROUTINGDATE"].ToString());
- string canManyTimes = groutingLine.Rows[0]["CANMANYTIMES"].ToString();
- if (!(
- groutingDate >= lastGroutingDate && canManyTimes == "1" && groutingDate <= DateTime.Now.Date
- || groutingDate > lastGroutingDate && canManyTimes == "0" && groutingDate <= DateTime.Now.Date
- ))
- {
- sre.Status = Constant.ServiceResultStatus.Other;
- sre.OtherStatus = -1;
- sre.Message = "当前日期不允许注浆!";
- }
- }
- }
- //检查注浆限制天数 'S_PM_021'
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- SELECT
- NVL(SETTINGVALUE,'0')
- FROM
- TP_MST_SYSTEMSETTING
- WHERE
- SETTINGCODE = 'S_PM_021'
- AND ACCOUNTID = {sUser.AccountID}
- ";
- int day = Convert.ToInt32(conn.GetSqlResultToStr(sqlStr));
- if (day != 0)
- {
- DateTime groutingDate = Convert.ToDateTime(groutingDay);
- DateTime beginDay = DateTime.Now.Date;
- DateTime endDay = beginDay.AddDays(1 - day);
- if (groutingDate < endDay || groutingDate > beginDay)
- {
- sre.Status = Constant.ServiceResultStatus.Other;
- sre.OtherStatus = -1;
- sre.Message = string.Format("允许注浆登记的日期范围【{0:yyyy-MM-dd}】-【{1:yyyy-MM-dd}】", endDay, beginDay);
- }
- }
- }
- //成型线模具查询
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- SELECT
- l.GROUTINGLINECODE,--AS 生产线编号,
- d.GROUTINGMOULDCODE,--AS 模具编号,
- g.GOODSCODE,--AS 产品编码,
- --o.LOGONAME--AS 产品商标
- CASE WHEN d.LOGOID IS NULL THEN o.LOGONAME
- ELSE (SELECT LOGONAME FROM TP_MST_LOGO WHERE LOGOID=d.LOGOID ) END AS LOGONAME --AS 产品商标
- FROM
- TP_PC_GROUTINGLINEDETAIL d
- LEFT JOIN TP_PC_GROUTINGLINE l ON l.GROUTINGLINEID = d.GROUTINGLINEID
- LEFT JOIN TP_MST_GOODS g ON g.GOODSID = d.GOODSID
- LEFT JOIN TP_MST_LOGO o ON o.LOGOID = g.LOGOID
- WHERE
- d.VALUEFLAG = '1'
- AND l.ACCOUNTID = {sUser.AccountID}
- AND d.GMOULDSTATUS = 1
- AND l.GROUTINGLINECODE = '{groutingLineCode}'
- ORDER BY
- d.GROUTINGMOULDCODE
- ";
- DataTable groutingLineDetail = conn.GetSqlResultToDt(sqlStr);
- groutingLineDetail.TableName = "GroutingLineDetail";
- sre.Data.Tables.Add(groutingLineDetail);
- if (groutingLineDetail.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "没有查询结果!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- /// <summary>
- /// 成型线注浆查询方法 ok 应用于 注浆编辑
- /// </summary>
- /// <param name="groutingLineCode"></param>
- /// <param name="groutingDay"></param>
- /// <param name="groutingBatchNo"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetGroutingLineGrouting(string groutingLineCode, string groutingDay, string groutingBatchNo, SUserInfo sUser)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- sre.Data = new DataSet();
- sre.Status = Constant.ServiceResultStatus.Success;
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- string sqlStr = "";
- try
- {
- conn.Connect();
- //查找成型线
- if(sre.Status == Constant.ServiceResultStatus.Success)
- {
- //if (!string.IsNullOrWhiteSpace(groutingLineCode) && groutingLineCode.Contains("'"))
- //{
- // sre.Status = Constant.ServiceResultStatus.Other;
- // sre.OtherStatus = -1;
- // sre.Message = "成型线输入错误,包含其他字符,请核对!";
- // return sre;
- // }
- AddServiceResultEntity(sre, GetGroutingLineInfo(groutingLineCode, groutingDay, sUser));
- }
- //检查注浆限制天数 'S_PM_022'
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- SELECT
- NVL(SETTINGVALUE,'0')
- FROM
- TP_MST_SYSTEMSETTING
- WHERE
- SETTINGCODE = 'S_PM_022'
- AND ACCOUNTID = {sUser.AccountID}
- ";
- int day = Convert.ToInt32(conn.GetSqlResultToStr(sqlStr));
- if (day != 0)
- {
- DateTime groutingDate = Convert.ToDateTime(groutingDay);
- DateTime beginDay = DateTime.Now.Date;
- DateTime endDay = beginDay.AddDays(1 - day);
- if (groutingDate < endDay || groutingDate > beginDay)
- {
- sre.Status = Constant.ServiceResultStatus.Other;
- sre.OtherStatus = -1;
- sre.Message = string.Format("允许注浆编辑的日期范围【{0:yyyy-MM-dd}】-【{1:yyyy-MM-dd}】", endDay, beginDay);
- }
- }
- }
- //成型线模具查询
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- SELECT
- d.GROUTINGDAILYID,-- AS 注浆ID,
- d.GROUTINGDAILYDETAILID, -- AS 注浆日报明细ID
- l.GROUTINGLINECODE,-- AS 生产线编号,
- l.LASTGROUTINGDATE,-- AS 最后注浆日期,
- l.LASTGROUTINGBATCHNO,-- AS 最后注浆批次,
- d.GROUTINGMOULDCODE,-- AS 模具编号,
- g.GOODSCODE,-- AS 产品编码,
- o.LOGONAME,-- AS 产品商标,
- d.GROUTINGFLAG,-- AS 注浆标识,
- d.NOGROUTINGRREASON AS NOGROUTINGRREASONID, -- 未注浆原因ID
- y.DICTIONARYVALUE AS NOGROUTINGRREASON, -- AS 未注浆原因
- d.BARCODE,-- AS 绑定条码,
- d.SCRAPFLAG -- AS 损坯标识
- FROM
- TP_PM_GROUTINGDAILYDETAIL d
- LEFT JOIN TP_MST_GOODS g ON g.GOODSID = d.GOODSID
- LEFT JOIN TP_MST_LOGO o ON o.LOGOID = d.LOGOID
- LEFT JOIN TP_PC_GROUTINGLINE l on l.GROUTINGLINEID = d.GROUTINGLINEID
- LEFT JOIN TP_MST_DATADICTIONARY y ON y.DICTIONARYID = d.NOGROUTINGRREASON
- WHERE
- d.VALUEFLAG = '1'
- AND d.ACCOUNTID = {sUser.AccountID}
- AND d.GROUTINGLINECODE = '{groutingLineCode}'
- AND d.GROUTINGDATE = DATE '{groutingDay}'
- AND d.GROUTINGBATCHNO = {groutingBatchNo}
- ORDER BY
- d.GROUTINGMOULDCODE
- ";
- DataTable groutingLineDetail = conn.GetSqlResultToDt(sqlStr);
- groutingLineDetail.TableName = "GroutingLineDetail";
- sre.Data.Tables.Add(groutingLineDetail);
- if (groutingLineDetail.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "没有查询结果!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- /// <summary>
- /// 未注浆原因查询方法 TP_MST_DataDictionary.DictionaryType = TPC004 ok
- /// </summary>
- /// <param name="groutingLineCode"></param>
- /// <param name="groutingDay"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetGroutingNoGroutingReason(SUserInfo sUser)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- sre.Data = new DataSet();
- sre.Status = Constant.ServiceResultStatus.Success;
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- string sqlStr = "";
- try
- {
- conn.Connect();
- //成型线注浆批次查询
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- SELECT
- DICTIONARYID,
- DISPLAYNO,
- DICTIONARYVALUE
- FROM
- TP_MST_DATADICTIONARY
- WHERE
- VALUEFLAG = '1'
- AND ACCOUNTID = {sUser.AccountID}
- AND DICTIONARYTYPE = 'TPC004'
- ORDER BY
- DISPLAYNO
- ";
- DataTable GroutingNoGroutingReason = conn.GetSqlResultToDt(sqlStr);
- GroutingNoGroutingReason.TableName = "GroutingNoGroutingReason";
- sre.Data.Tables.Add(GroutingNoGroutingReason);
- if (GroutingNoGroutingReason.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "没有查询结果!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- /// <summary>
- /// 注浆登记保存 ok
- /// </summary>
- /// <param name="groutingData">
- /*
- "groutingData": {
- "GROUTINGDATE": "注浆日期",
- "GROUTINGLINECODE": "成型线号",
- "GROUTINGTIMES": "注浆次数",
- "GROUTINGLINEDETAIL": [
- {
- "GROUTINGMOULDCODE": "注浆模具编1号",
- "GROUTINGFLAG": "注浆标识1",
- "NOGROUTINGRREASON": "未注浆原因1"
- },
- {
- "GROUTINGMOULDCODE": "注浆模具编号2",
- "GROUTINGFLAG": "注浆标识2",
- "NOGROUTINGRREASON": "未注浆原因2"
- }
- ]
- }
- */
- /// </param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity SetGroutingLineDetail(string groutingData, SUserInfo sUser)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- sre.Data = new DataSet();
- sre.Status = Constant.ServiceResultStatus.Success;
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- string sqlStr = "";
- int result = -1;
- int classesSettingId = -1;
- string groutingBatchNoBegin = "";
- try
- {
- conn.Connect();
- #region 多条成型线绑定注浆(成型线组) 20260313
- int spm33value = PMModuleLogic.getSystemSet(conn, "S_PM_033", sUser);
- // 创建列表存储 【主线 + 辅线】 的所有独立 JSON
- List<string> allGroutingJsons = new List<string>();
- // 先把【原始主线JSON】加入列表(结构完全不变)
- allGroutingJsons.Add(groutingData);
- if (spm33value == 1)
- {
- // 解析原始主线 JSON
- JObject mainJson = JObject.Parse(groutingData);
- string mainLineCode = mainJson["GROUTINGLINECODE"].ToString();
- JArray mainDetail = (JArray)mainJson["GROUTINGLINEDETAIL"];
-
- // 根据主线编码 → 查询数据库 → 拿到 2 条辅成型线编码
- DataTable slaveLines = conn.GetSqlResultToDt($@"
- SELECT GroutingLineCode ,GroutingLineID
- FROM TP_PC_GroutingLine
- WHERE H_LINECODE = '{mainLineCode}'
- AND ValueFlag = 1 AND GroutingLineCode <> H_LINECODE
- ");
- // 给每条辅线生成【结构完全一样】的独立 JSON
- foreach (DataRow row in slaveLines.Rows)
- {
- // 查询辅成型线模具明细(校验用)
- DataTable hlinedetaildt = conn.GetSqlResultToDt($@"
- SELECT * FROM TP_PC_GROUTINGLINEDETAIL
- WHERE VALUEFLAG = 1 AND GMouldStatus = '1' AND GROUTINGLINEID = {row["GROUTINGLINEID"]}
- ");
- // 模具个数校验(和主线明细数量对比)
- if (hlinedetaildt == null || hlinedetaildt.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = $"注浆失败:辅注浆成型线【{row["GroutingLineCode"]}】无正常模具";
- }
- // ldetaildt 是主线的正常模具数量,你原来的逻辑
- if (hlinedetaildt.Rows.Count != mainDetail.Count)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = $"注浆失败,请联系管理员核实【辅注浆成型线正常模具个数】是否准确-【{row["GroutingLineCode"]}】";
- }
- string slaveLineCode = row["GroutingLineCode"].ToString();
- // 克隆主线 JSON(深度克隆,结构100%一致)
- JObject slaveJson = JObject.Parse(mainJson.ToString());
- // 只改 成型线编码
- slaveJson["GROUTINGLINECODE"] = slaveLineCode;
- // 模具编码自动替换:C05A02-001 → 辅线编码-001
- JArray slaveDetail = (JArray)slaveJson["GROUTINGLINEDETAIL"];
- //查询辅线模具编码是否与主线一致
- foreach (JObject item in slaveDetail)
- {
- string mouldCode = item["GROUTINGMOULDCODE"].ToString();
- string suffix = mouldCode.Trim().Split('-').Last();
- DataRow[] drows = hlinedetaildt.Select("GROUTINGMOULDCODE='" + slaveLineCode + "-" + suffix + "'");
- if (drows == null)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = $"注浆失败:辅线{slaveLineCode}模具未匹配主成型线模具位置";
- }
- item["MAINGROUTINGFLAG"] = mouldCode; // 主线模具号
- item["MAINGROUTINGDAILYDETAILID"] = 0; // 默认为0
- item["GROUTINGMOULDCODE"] = $"{slaveLineCode}-{suffix}";
- }
- // 加入列表 → 得到独立的、可直接使用的辅线 JSON
- allGroutingJsons.Add(slaveJson.ToString());
- }
- }
- #endregion
- //foreach (string allGroutingJson in allGroutingJsons)
- for (int z = 0; z < allGroutingJsons.Count; z++)
- {
- string allGroutingJson = allGroutingJsons[z];
- JObject jsonL = JObject.Parse(allGroutingJson);
- //jsonL["GROUTINGDATE"].ToString(); 注浆日期
- //jsonL["GROUTINGLINECODE"].ToString();成型线号
- //jsonL["GROUTINGTIMES"].ToString();注浆次数
- //注浆批次处理 当注浆日期 等于 当前日期 时 注浆批次 为最后注浆批次 加1 处理
- //当注浆日期 不等于 当前日期 时 注浆批数 从0开始 加1 处理
- //if (DateTime.Now.ToString("yyyy-MM-dd") == jsonL["GROUTINGDATE"].ToString())
- // groutingBatchNoBegin = "l.LASTGROUTINGBATCHNO";
- //else
- // groutingBatchNoBegin = "0";
- sqlStr = $@"
- SELECT
- LASTGROUTINGBATCHNO
- FROM
- TP_PC_GROUTINGLINE l
- WHERE
- l.VALUEFLAG = '1'
- AND l.ACCOUNTID = {sUser.AccountID}
- AND l.LASTGROUTINGDATE = DATE '{jsonL["GROUTINGDATE"].ToString()}'
- AND l.GROUTINGLINECODE = '{jsonL["GROUTINGLINECODE"].ToString()}'
- ";
- object obj = conn.GetSqlResultToObj(sqlStr);
- //result = Convert.ToInt32(conn.GetSqlResultToStr(sqlStr));
- if (obj == null || obj == DBNull.Value || Convert.ToInt32(obj) == 0)
- {
- groutingBatchNoBegin = "0";
- }
- else
- {
- groutingBatchNoBegin = "l.LASTGROUTINGBATCHNO";
- }
- // TODO 高压自动注浆不验证成型工号
- /*
- //校验工号 成型线工号配置的工号 必须包含当前用户
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- SELECT
- COUNT(c.USERID)
- FROM
- TP_PC_GROUTINGLINE l
- INNER JOIN TP_PC_GROUTINGUSER u ON l.GROUTINGLINEID = u.GROUTINGLINEID
- LEFT JOIN TP_MST_USER c ON u.USERID = c.USERID
- WHERE
- l.VALUEFLAG = '1'
- AND l.ACCOUNTID = {sUser.AccountID}
- AND l.GROUTINGLINECODE = '{jsonL["GROUTINGLINECODE"].ToString()}'
- AND c.USERCODE = '{sUser.UserCode}'
- ";
- obj = conn.GetSqlResultToObj(sqlStr);
- //result = Convert.ToInt32(conn.GetSqlResultToStr(sqlStr));
- if (obj == null || obj == DBNull.Value || Convert.ToInt32(obj) == 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "当前成型线没有配置当前员工!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- }
- */
- //-----------------------------------------------------------------------
- // 校验是否需要半成品卡控及卡控数量是否允许注浆操作 add by qq 20251216
- #region 校验是否需要半成品卡控及卡控数量是否允许注浆操作
- int systemSetvalue = PMModuleLogic.getSystemSet(conn, "S_PC_003", sUser);
- #region 无论是否需要校验,都需要此表,注浆成功后需要反写计划表中的实际注浆量
- string groutingMouldCodes = "";
- JArray detailsarray = JArray.Parse(jsonL["GROUTINGLINEDETAIL"].ToString());
- for (int i= 0; i < detailsarray.Count; i++)
- {
- if (detailsarray[i]["GROUTINGFLAG"].ToString() == "1")
- {
- groutingMouldCodes += "'" + detailsarray[i]["GROUTINGMOULDCODE"].ToString() + "',";
- }
- }
- string groutingdailyDetailsql = $@"SELECT G.GOODSCODE, O.LOGOID , COUNT(D.GROUTINGLINEDETAILID)*{jsonL["GROUTINGTIMES"]} COUNT ,'' MAT20,0 PRODPLANID
- FROM TP_PC_GROUTINGLINEDETAIL D
- LEFT JOIN TP_PC_GROUTINGLINE L ON L.GROUTINGLINEID = D.GROUTINGLINEID
- LEFT JOIN TP_MST_GOODS G ON G.GOODSID = D.GOODSID
- LEFT JOIN TP_MST_LOGO O ON O.LOGOID = G.LOGOID
- WHERE
- D.ACCOUNTID = { sUser.AccountID}
- AND D.VALUEFLAG = '1'
- AND D.GMOULDSTATUS = 1
- AND L.GROUTINGLINECODE = '{jsonL["GROUTINGLINECODE"]}'
- AND D.GROUTINGMOULDCODE IN ({ groutingMouldCodes.Substring(0,groutingMouldCodes.Length -1) })
- AND G.SCRAPSUMFLAG = 1
- GROUP BY G.GOODSCODE,O.LOGOID ";
- DataTable resultTable = conn.GetSqlResultToDt(groutingdailyDetailsql);
- #endregion
- //S_PC_003为1时,需要校验当月该半成品物料的计划数量
- if (systemSetvalue == 1)
- {
- for (int i = 0; i < resultTable.Rows.Count; i++)
- {
- //查询对应半成品物料(根据注浆的产品及商标)
- string mat20 = PMModuleLogic.getmaterialcodeMat20(conn, resultTable.Rows[i]["GOODSCODE"].ToString(), Convert.ToInt32(resultTable.Rows[i]["LOGOID"]));
- if (!string.IsNullOrWhiteSpace(mat20))
- {
- resultTable.Rows[i]["MAT20"] = mat20;
- //查询半成品物料当月对应的计划数量
- DataTable planTabel = PMModuleLogic.getPlanDetail(conn, 1, mat20, Convert.ToDateTime(jsonL["GROUTINGDATE"].ToString()));
- if (planTabel != null && planTabel.Rows.Count > 0)
- {
- resultTable.Rows[i]["PRODPLANID"] = Convert.ToInt32(planTabel.Rows[0]["PRODPLANID"]);
- //有计划,计划数量
- decimal planCount = Convert.ToDecimal(planTabel.Rows[0]["PLANCOUNT"]);
- //已完成数量
- decimal completedCount = 0;
- if (!string.IsNullOrWhiteSpace(planTabel.Rows[0]["COMPLETEDCOUNT"].ToString()))
- {
- completedCount = Convert.ToDecimal(planTabel.Rows[0]["COMPLETEDCOUNT"]);
- }
- if (Convert.ToDecimal(resultTable.Rows[i]["Count"]) > planCount - completedCount)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "无法注浆:此次注浆超过产销卡控计划注浆数量,请核实。";
- }
- }
- else
- {
- //无计划,无法注浆
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "无法注浆:该物料无产销计划,请核实。";
- }
- }
- }
- }
- #region 创建表存储每个新建的注浆明细ID
- DataTable gddIDTable = new DataTable();
- gddIDTable.Columns.Add("GOODSCODE", typeof(string));
- gddIDTable.Columns.Add("LOGOID", typeof(int));
- gddIDTable.Columns.Add("GROUTINGDAILYDETAILID", typeof(int));
- gddIDTable.Columns.Add("GROUTINGFLAG", typeof(int));
- #endregion
- #endregion
- //-----------------------------------------------------------------------
- //获取是否有班次 设置 classesSettingId
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- SELECT
- NVL(MAX(CLASSESSETTINGID),0) AS CLASSESSETTINGID
- FROM
- TP_PC_CLASSESSETTING
- WHERE
- ACCOUNTID = {sUser.AccountID}
- AND VALUEFLAG = '1'
- AND ACCOUNTDATE = DATE '{jsonL["GROUTINGDATE"].ToString()}'
- AND USERCODE = '{sUser.UserCode}'
- ";
- obj = conn.GetSqlResultToObj(sqlStr);
- if (obj == null || obj == DBNull.Value || Convert.ToInt32(obj) == 0)
- {
- classesSettingId = 0;
- }
- else
- {
- classesSettingId = Convert.ToInt32(obj);
- }
- if (classesSettingId > 0)
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "没有班次配置!";
- }
- }
- //没有班次的 自动配置班次
- if (classesSettingId == 0)
- {
- try
- {
- //从序列中生成新的班次ID
- classesSettingId = Convert.ToInt32(
- conn.GetSqlResultToStr("SELECT SEQ_PC_ClASSESSETTING_ID.NEXTVAL FROM DUAL"));
- sqlStr = "BEGIN";
- //插入班次SQL
- sqlStr += $@"
- INSERT INTO TP_PC_CLASSESSETTING
- (
- CLASSESSETTINGID, ACCOUNTDATE, USERID, USERCODE,
- ACCOUNTID, CREATEUSERID, UPDATEUSERID
- )
- VALUES
- (
- {classesSettingId},-- CLASSESSETTINGID select SEQ_PC_ClASSESSETTING_ID.Nextval FROM DUAL;
- to_date('{jsonL["GROUTINGDATE"].ToString()}','yyyy-mm-dd'),-- ACCOUNTDATE
- {sUser.UserID},--USERID
- '{sUser.UserCode}',-- USERCODE
- {sUser.AccountID},--ACCOUNTID
- {sUser.UserID},--CREATEUSERID
- {sUser.UserID} --UPDATEUSERID
- );
- ";
- //插入班次详细SQL
- sqlStr += $@"
- INSERT INTO TP_PC_CLASSESDETAIL (
- CLASSESSETTINGID,ACCOUNTDATE,
- USERID,USERCODE,STAFFID,STAFFSTATUS,ACCOUNTID,
- VALUEFLAG,CREATEUSERID,UPDATEUSERID,
- UJOBSID,SJOBSID,UJOBSNUM
- )
- SELECT
- {classesSettingId},--CLASSESSETTINGID 班次ID
- to_date('{jsonL["GROUTINGDATE"].ToString()}','yyyy-mm-dd'),-- ACCOUNTDATE
- {sUser.UserID},--USERID
- '{sUser.UserCode}',--USERCODE
- s.STAFFID,--STAFFID
- h.STAFFSTATUS,--STAFFSTATUS 员工状态
- {sUser.AccountID},--ACCOUNTID
- '1',--VALUEFLAG
- {sUser.UserID},--CREATEUSERID
- {sUser.UserID},--UPDATEUSERID
- s.UJOBSID,--UJOBSID 工号工种ID
- h.JOBS,--SJOBSID 员工工种ID
- ( SELECT COUNT( DISTINCT UJOBSID ) FROM TP_MST_USERSTAFF WHERE USERID = '{sUser.UserID}' ) -- UJOBSNUM 工号工种个数
- FROM
- TP_MST_USERSTAFF s
- LEFT JOIN TP_HR_STAFF h ON h.STAFFID = s.STAFFID
- WHERE
- s.USERID = {sUser.UserID}
- ;
- ";
- sqlStr += "END;";
- conn.ExecuteNonQuery(sqlStr);
- //多条语句执行,只返回-1,不报异常就是执行成功
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- catch (Exception ex)
- {
- sre.Status = Constant.ServiceResultStatus.SystemError;
- sre.Message = "自动配置班次失败!";
- }
- }
- //插入 注浆记录
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- try
- {
- sqlStr = "BEGIN";
- string proSql = "";
- //按注浆次数循环 保存注浆记录
- for (int i = 0; i < Convert.ToInt32(jsonL["GROUTINGTIMES"].ToString()); i++)
- {
- //获取注浆ID
- int groutingDailyId = Convert.ToInt32(
- conn.GetSqlResultToStr(@"SELECT SEQ_PM_GROUTINGDAILY_ID.NEXTVAL FROM DUAL"));
- //插入注浆记录 TP_PM_GROUTINGDAILY
- sqlStr += $@"
- INSERT INTO TP_PM_GROUTINGDAILY (
- GROUTINGDAILYID,
- GROUTINGLINEID,GROUTINGLINECODE,GROUTINGLINENAME,GROUTINGDATE,
- USERID,MOULDQUANTITY,GMOULDTYPEID,CANMANYTIMES,ACCOUNTID,VALUEFLAG,
- CREATEUSERID,UPDATEUSERID,USERCODE,GMOULDSTATUS,
- CLASSESSETTINGID,GROUTINGBATCHNO,MONITORID,MONITORCODE,HIGHPRESSUREFLAG
- )
- SELECT
- {groutingDailyId},
- l.GROUTINGLINEID,
- l.GROUTINGLINECODE,
- l.GROUTINGLINENAME,
- DATE '{jsonL["GROUTINGDATE"].ToString()}',-- GROUTINGDATE 注浆日期
- {sUser.UserID},-- USERID 用户ID
- l.MOULDQUANTITY,
- l.GMOULDTYPEID,
- t.CANMANYTIMES, -- CANMANYTIMES 关联 TP_MST_GMOULDTYPE 查询
- {sUser.AccountID},-- ACCOUNTID
- '1',--VALUEFLAG
- {sUser.UserID},--CREATEUSERID
- {sUser.UserID},--UPDATEUSERID
- '{sUser.UserCode}',-- USERCODE
- l.GMOULDSTATUS,
- {classesSettingId}, -- 从 CLASSESSETTINGID 查询
- {groutingBatchNoBegin} + {i} + 1, --LASTGROUTINGBATCHNO 批次号 每注一次加1
- l.MONITORID,
- m.USERCODE AS MONITORCODE, --MONITORCODE 关联 TP_MST_USER 查询
- l.HIGHPRESSUREFLAG
- FROM
- TP_PC_GROUTINGLINE l
- LEFT JOIN TP_MST_GMOULDTYPE t ON l.GMOULDTYPEID = t.GMOULDTYPEID
- LEFT JOIN TP_MST_USER m ON l.MONITORID = m.USERID
- WHERE
- GROUTINGLINECODE = '{jsonL["GROUTINGLINECODE"].ToString()}' --成型线号
- AND l.VALUEFLAG = '1'
- AND l.GMOULDSTATUS = 1
- ;";
- //按成型线模具循环插入注浆记录明细 TP_PM_GROUTINGDAILYDETAIL
- JArray jsonM = JArray.Parse(jsonL["GROUTINGLINEDETAIL"].ToString());
- for (int j = 0; j < jsonM.Count; j++)
- {
- //jsonM[j]["GROUTINGMOULDCODE"].ToString(); 注浆模具编号
- //jsonM[j]["GROUTINGFLAG"].ToString(); 注浆标识
- //jsonM[j]["NOGROUTINGRREASON"].ToString(); 未注浆原因
- //验证注浆原因,如果没给数据,置为空
- if (!(jsonM[j]["NOGROUTINGRREASON"] is object))
- jsonM[j]["NOGROUTINGRREASON"] = "null";
-
- //注浆明细ID
- int seqGroutingDailyDetailID = Convert.ToInt32( conn.GetSqlResultToStr(@"SELECT SEQ_PM_GroutingDailyD_ID.Nextval FROM DUAL"));
- //插入注浆记录明细
- sqlStr += $@"
- INSERT INTO TP_PM_GROUTINGDAILYDETAIL (
- GROUTINGDAILYID,GROUTINGDAILYDETAILID,GROUTINGLINEID,GROUTINGLINECODE,GROUTINGLINENAME,GROUTINGLINEDETAILID,
- GROUTINGDATE,GROUTINGMOULDCODE,MOULDCODE,GOODSID,GOODSCODE,GOODSNAME,GMOULDSTATUS,
- GROUTINGCOUNT,GROUTINGFLAG,NOGROUTINGRREASON,ACCOUNTID,VALUEFLAG,CREATEUSERID,
- UPDATEUSERID,USERID,USERCODE,SCRAPFLAG,SPECIALREPAIRFLAG,BARCODE,CLASSESSETTINGID,
- ISPUBLICBODY,DELIVERFLAG,GMOULDTYPEID,CANMANYTIMES,GROUTINGBATCHNO,LOGOID,glazetypeid,
- SCRAPTIME,SCRAPUSER,SCRAPREASONID,SCRAPREASON,MOULDID,SREASONID,SCRAPTYPE,BEGINNINGFLAG
- -- 20220308 add 记录光瓷重量
- ,LUSTERWAREWEIGHT
- -- 20220308 add 记录光瓷重量 end
- -- 20220325 by feiy add 试验线
- ,TESTFLAG
- -- 20220325 by feiy add 试验线 end
- -- 20220812 by LSQ add 模具试验标识
- ,TESTMOULDFLAG
- -- 20220812 by LSQ add 模具试验标识 end
- ) SELECT
- {groutingDailyId},--GROUTINGDAILYID
- {seqGroutingDailyDetailID},--GROUTINGDAILYDETAILID
- d.GROUTINGLINEID,--GROUTINGLINEID
- l.GROUTINGLINECODE,--GROUTINGLINECODE
- l.GROUTINGLINENAME,--GROUTINGLINENAME
- d.GROUTINGLINEDETAILID,--GROUTINGLINEDETAILID
- to_date( '{jsonL["GROUTINGDATE"].ToString()}', 'yyyy-mm-dd' ),--GROUTINGDATE
- d.GROUTINGMOULDCODE,--GROUTINGMOULDCODE
- d.MOULDCODE,--MOULDCODE
- d.GOODSID,--GOODSID
- g.GOODSCODE,--GOODSCODE
- g.GOODSNAME,--GOODSNAME
- d.GMOULDSTATUS,--GMOULDSTATUS
- d.GROUTINGCOUNT + {jsonM[j]["GROUTINGFLAG"].ToString()},--GROUTINGCOUNT
- '{jsonM[j]["GROUTINGFLAG"].ToString()}',--GROUTINGFLAG
- {jsonM[j]["NOGROUTINGRREASON"].ToString()}, --NOGROUTINGRREASON 未注浆原因
- {sUser.AccountID},--ACCOUNTID
- '1',--VALUEFLAG
- {sUser.UserID},--CREATEUSERID
- {sUser.UserID},--UPDATEUSERID
- {sUser.UserID},--USERID
- '{sUser.UserCode}',--USERCODE
- '0',--SCRAPFLAG
- '0',--SPECIALREPAIRFLAG
- null,--BARCODE
- {classesSettingId},--CLASSESSETTINGID
- '0',--ISPUBLICBODY
- '0',--DELIVERFLAG
- l.GMOULDTYPEID,--GMOULDTYPEID
- t.CANMANYTIMES,--CANMANYTIMES
- {groutingBatchNoBegin} + {i} + 1, --LASTGROUTINGBATCHNO 批次号 每注一次加1
- o.LOGOID,--LOGOID
- g.glazetypeid,
- NULL,--SCRAPTIME
- NULL,--SCRAPUSER
- NULL,--SCRAPREASONID
- NULL,--SCRAPREASON
- d.MOULDID,--MOULDID
- NULL,--SREASONID
- NULL,--SCRAPTYPE
- '0' --BEGINNINGFLAG
- -- 20220308 add 记录光瓷重量
- ,NVL(g.LUSTERWAREWEIGHT,0)
- -- 20220308 add 记录光瓷重量 end
- -- 20220325 by feiy add 试验线
- ,l.TESTFLAG
- -- 20220325 by feiy add 试验线 end
- -- 20220812 by LSQ add 模具试验标识
- ,M.TESTMOULDFLAG
- -- 20220812 by LSQ add 模具试验标识 end
- FROM
- TP_PC_GROUTINGLINEDETAIL d
- LEFT JOIN TP_PC_GROUTINGLINE l ON l.GROUTINGLINEID = d.GROUTINGLINEID
- LEFT JOIN TP_PC_MOULD M ON d.MOULDID = M.MOULDID
- LEFT JOIN TP_MST_GOODS g ON g.GOODSID = d.GOODSID
- LEFT JOIN TP_MST_LOGO o ON o.LOGOID = g.LOGOID
- LEFT JOIN TP_MST_GMOULDTYPE t ON t.GMOULDTYPEID = l.GMOULDTYPEID
- WHERE
- d.ACCOUNTID = {sUser.AccountID}
- AND d.VALUEFLAG = '1'
- AND d.GMOULDSTATUS = 1
- AND l.GROUTINGLINECODE = '{jsonL["GROUTINGLINECODE"].ToString()}' --成型线号
- AND d.GROUTINGMOULDCODE = '{jsonM[j]["GROUTINGMOULDCODE"].ToString()}'
- ;";
- //更新注浆次数
- //sqlStr += $@"
- //UPDATE
- // TP_PC_GROUTINGLINEDETAIL
- //SET
- // GROUTINGCOUNT = GROUTINGCOUNT + {jsonM[j]["GROUTINGFLAG"].ToString()}
- //WHERE
- // ACCOUNTID = {sUser.AccountID}
- // AND VALUEFLAG = '1'
- // AND GMOULDSTATUS = 1
- // --AND GROUTINGLINECODE = '{jsonL["GROUTINGLINECODE"].ToString()}' --成型线号
- // AND GROUTINGMOULDCODE = '{jsonM[j]["GROUTINGMOULDCODE"].ToString()}'
- //;";
- #region 有主线标识并且没有数据的 为绑定注浆里的主注浆线 20260313
- // 生成的 主线明细ID
- int mainGroutingDailyDetailID = Convert.ToInt32(seqGroutingDailyDetailID);
- //绑定注浆
- if (allGroutingJsons.Count > 1)
- {
- //主线的明细,MAINGROUTINGFLAG值为空
- if (!allGroutingJson.Contains("MAINGROUTINGFLAG"))
- {
- // 找到所有辅线,更新主线ID
- for (int m = 1; m < allGroutingJsons.Count; m++) // 跳过主线,从第2条开始(辅线)
- {
- // 取出来
- string jsonStr = allGroutingJsons[m];
- JObject jObj = JObject.Parse(jsonStr);
- JArray detail = (JArray)jObj["GROUTINGLINEDETAIL"];
- // 查找匹配项
- JObject matchItem = detail.FirstOrDefault(d =>
- d["MAINGROUTINGFLAG"]?.ToString() == jsonM[j]["GROUTINGMOULDCODE"]?.ToString()
- ) as JObject;
- if (matchItem != null)
- {
- // 修改 如果找到,直接更新主线ID
- matchItem["MAINGROUTINGDAILYDETAILID"] = mainGroutingDailyDetailID;
- }
- // 👇 关键:把改完的 JSON 重新放回列表里
- allGroutingJsons[m] = jObj.ToString();
- }
- }
- else
- {
- //辅成型线,更新MAINGROUTINGDAILYDETAILID 为主成型线注浆明细ID
- proSql += $@"UPDATE TP_PM_GroutingDailyDetail SET MAINGROUTINGDAILYDETAILID = {Convert.ToInt32(jsonM[j]["MAINGROUTINGDAILYDETAILID"])} WHERE GROUTINGDAILYDETAILID = {seqGroutingDailyDetailID};";
- //OracleParameter[] proParas = new OracleParameter[]
- //{
- // new OracleParameter(":MAINGROUTINGDAILYDETAILID", OracleDbType.Int32, Convert.ToInt32(jsonM[j]["MAINGROUTINGDAILYDETAILID"]), ParameterDirection.Input),
- // new OracleParameter(":GROUTINGDAILYDETAILID", OracleDbType.Int32, seqGroutingDailyDetailID, ParameterDirection.Input),
- //};
- //conn.ExecuteNonQuery(proSql, proParas);
- }
- }
- #endregion
- #region 插入注浆ID表
- groutingdailyDetailsql = $@"SELECT G.GOODSCODE, O.LOGOID
- FROM TP_PC_GROUTINGLINEDETAIL D
- LEFT JOIN TP_PC_GROUTINGLINE L ON L.GROUTINGLINEID = D.GROUTINGLINEID
- LEFT JOIN TP_MST_GOODS G ON G.GOODSID = D.GOODSID
- LEFT JOIN TP_MST_LOGO O ON O.LOGOID = G.LOGOID
- WHERE
- D.ACCOUNTID = { sUser.AccountID}
- AND D.VALUEFLAG = '1'
- AND D.GMOULDSTATUS = 1
- AND L.GROUTINGLINECODE = '{jsonL["GROUTINGLINECODE"]}'
- AND D.GROUTINGMOULDCODE = '{jsonM[j]["GROUTINGMOULDCODE"]}'
- GROUP BY G.GOODSCODE,O.LOGOID ";
- DataTable goodsTable = conn.GetSqlResultToDt(groutingdailyDetailsql);
- if (goodsTable != null && goodsTable.Rows.Count > 0)
- {
- DataRow newRow = gddIDTable.NewRow();
- newRow["GOODSCODE"] = goodsTable.Rows[0]["GOODSCODE"].ToString();
- newRow["LOGOID"] = Convert.ToInt32(goodsTable.Rows[0]["LOGOID"]);
- newRow["GROUTINGDAILYDETAILID"] = Convert.ToInt32(seqGroutingDailyDetailID);
- newRow["GROUTINGFLAG"] = Convert.ToInt32(jsonM[j]["GROUTINGFLAG"].ToString());
- gddIDTable.Rows.Add(newRow);
- }
- #endregion
- }
- sre.Result = groutingDailyId;
- }
- sqlStr += "END;";
- result = conn.ExecuteNonQuery(sqlStr);
- if (!string.IsNullOrWhiteSpace(proSql))
- {
- result += conn.ExecuteNonQuery("BEGIN " +proSql+ " END;");
- }
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- //2022年8月24日09:32:29 注浆次数
- sqlStr = "BEGIN";
- for (int i = 0; i < Convert.ToInt32(jsonL["GROUTINGTIMES"].ToString()); i++)
- {
- JArray jsonM = JArray.Parse(jsonL["GROUTINGLINEDETAIL"].ToString());
- for (int j = 0; j < jsonM.Count; j++)
- {
- //更新注浆次数
- sqlStr += $@"
- UPDATE
- TP_PC_GROUTINGLINEDETAIL
- SET
- GROUTINGCOUNT = GROUTINGCOUNT + {jsonM[j]["GROUTINGFLAG"].ToString()}
- WHERE
- ACCOUNTID = {sUser.AccountID}
- AND VALUEFLAG = '1'
- AND GMOULDSTATUS = 1
- --AND GROUTINGLINECODE = '{jsonL["GROUTINGLINECODE"].ToString()}' --成型线号
- AND GROUTINGMOULDCODE = '{jsonM[j]["GROUTINGMOULDCODE"].ToString()}'
- ;";
- }
- }
- sqlStr += "END;";
-
- result = conn.ExecuteNonQuery(sqlStr);
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- //2022年8月24日09:32:48 结束
- }
- catch (Exception ex)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "注浆记录写入失败!";
- }
- }
- //更新 成型线 最后注浆日期 注浆批次
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- UPDATE
- TP_PC_GROUTINGLINE l
- SET
- l.LASTGROUTINGDATE = DATE '{jsonL["GROUTINGDATE"].ToString()}',
- l.LASTGROUTINGBATCHNO = {groutingBatchNoBegin} + {jsonL["GROUTINGTIMES"].ToString()},
- l.H_BatchIndex = l.H_BatchIndex+1
- WHERE
- l.GROUTINGLINECODE = '{jsonL["GROUTINGLINECODE"].ToString()}'
- ";
- result = conn.ExecuteNonQuery(sqlStr);
- if (result > 0)
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "成型线最后注浆日期和注浆批次更新失败!";
- }
- }
- #region 注浆之后反写半成品卡控计划物料计划数量
- for (int i = 0; i < resultTable.Rows.Count; i++)
- {
- int proPlanID = 0;
- //S_PC_003为0时,需要查找每个产品对应的当月该半成品物料的计划ID
- //为1时,校验时已经查询过,无须再查
- if (systemSetvalue == 0)
- {
- //查询对应半成品物料(根据注浆的产品及商标)
- string mat20 = PMModuleLogic.getmaterialcodeMat20(conn, resultTable.Rows[i]["GOODSCODE"].ToString(), Convert.ToInt32(resultTable.Rows[i]["LOGOID"]));
- if (!string.IsNullOrWhiteSpace(mat20))
- {
- resultTable.Rows[i]["MAT20"] = mat20;
- //查询半成品物料当月对应的计划数量
- DataTable planTabel = PMModuleLogic.getPlanDetail(conn, 1, mat20, Convert.ToDateTime(jsonL["GROUTINGDATE"].ToString()));
- if (planTabel != null && planTabel.Rows.Count > 0)
- {
- //有计划,计划ID
- proPlanID = Convert.ToInt32(planTabel.Rows[0]["PRODPLANID"]);
- }
- }
- }
- else
- {
- if (!string.IsNullOrWhiteSpace(resultTable.Rows[i]["PRODPLANID"].ToString()))
- {
- proPlanID = Convert.ToInt32(resultTable.Rows[i]["PRODPLANID"]);
- }
- }
- if (proPlanID > 0)
- {
- string proSql = "UPDATE TP_SEMIFINISHED_PRODPLAN SET COMPLETEDCOUNT = COMPLETEDCOUNT + :PLANCOUNT WHERE PRODPLANID = :PRODPLANID AND MATERIALCODE = :MAT20";
- OracleParameter[] proParas = new OracleParameter[]
- {
- new OracleParameter(":PLANCOUNT", OracleDbType.Int32, Convert.ToInt32(resultTable.Rows[i]["Count"]), ParameterDirection.Input),
- new OracleParameter(":PRODPLANID", OracleDbType.Int32, proPlanID, ParameterDirection.Input),
- new OracleParameter(":MAT20", OracleDbType.Varchar2, resultTable.Rows[i]["MAT20"].ToString(), ParameterDirection.Input),
- };
- int executeResult = conn.ExecuteNonQuery(proSql, proParas);
- //查找注浆明细中该产品商标都有哪些,插入关联表
- DataRow[] groutingDailyDetailRows = gddIDTable.Select("GOODSCODE = '" + resultTable.Rows[i]["GOODSCODE"].ToString()
- + "' and LOGOID = " + resultTable.Rows[i]["LOGOID"].ToString() + " and GROUTINGFLAG = 1");
- foreach (DataRow dailydetailDataRow in groutingDailyDetailRows)
- {
- proSql = "INSERT INTO TP_SEMIFINISHED_PRODPLANBAR (PRODPLANID,GROUTINGDAILYDETAILID,ACCOUNTID,CREATEUSERID) VALUES(:PRODPLANID,:GROUTINGDAILYDETAILID,:ACCOUNTID,:CREATEUSERID)";
- proParas = new OracleParameter[]
- {
- new OracleParameter(":PRODPLANID", OracleDbType.Int32, proPlanID, ParameterDirection.Input),
- new OracleParameter(":GROUTINGDAILYDETAILID", OracleDbType.Int32, Convert.ToInt32( dailydetailDataRow["GROUTINGDAILYDETAILID"]), ParameterDirection.Input),
- new OracleParameter(":ACCOUNTID", OracleDbType.Int32, sUser.AccountID, ParameterDirection.Input),
- new OracleParameter(":CREATEUSERID", OracleDbType.Int32, sUser.UserID, ParameterDirection.Input),
- };
- executeResult = conn.ExecuteNonQuery(proSql, proParas);
- }
- }
- }
- #endregion
- }
- //提交
- if (sre.Status == Constant.ServiceResultStatus.Success)
- conn.Commit();
- else
- conn.Rollback();
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- /// <summary>
- /// 编辑注浆记录保存 ok
- /// </summary>
- /// <param name="groutingData">
- /*
- "groutingData": [
- {
- "GROUTINGDAILYDETAILID": "注浆日报ID1",
- "GROUTINGFLAG": "注浆标识1",
- "NOGROUTINGRREASON": "未注浆原因1"
- },
- {
- "GROUTINGDAILYDETAILID": "注浆日报ID2",
- "GROUTINGFLAG": "注浆标识2",
- "NOGROUTINGRREASON": "未注浆原因2"
- }
- ]
- */
- /// </param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity SetGroutingLineGrouting(string groutingData, SUserInfo sUser)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- sre.Data = new DataSet();
- sre.Status = Constant.ServiceResultStatus.Success;
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- string sqlStr = "";
- int result = 0;
- try
- {
- conn.Connect();
- //一定要先更新注浆次数 如果先更新的注浆记录 将无法分辨 注浆标识
- //更新 成型线明细 注浆日报明细 注浆次数
- if (sre.Status == Constant.ServiceResultStatus.Success && groutingData != "")
- {
- try
- {
- JArray json = JArray.Parse(groutingData);
- string updateOne = $@"
- UPDATE TP_PC_GROUTINGLINEDETAIL
- SET GROUTINGCOUNT = GROUTINGCOUNT + :GROUTINGCOUNT
- WHERE GROUTINGLINEDETAILID IN (
- SELECT GroutingLineDetailID
- FROM tp_pm_groutingdailydetail
- WHERE GROUTINGDAILYDETAILID = :GROUTINGDAILYDETAILID
- UNION
- SELECT GroutingLineDetailID
- FROM tp_pm_groutingdailydetail
- WHERE MAINGROUTINGDAILYDETAILID = :GROUTINGDAILYDETAILID ) ;
- UPDATE TP_PM_GROUTINGDAILYDETAIL
- SET GROUTINGCOUNT = GROUTINGCOUNT + :GROUTINGCOUNT
- WHERE (GROUTINGDAILYDETAILID = :GROUTINGDAILYDETAILID
- OR MAINGROUTINGDAILYDETAILID = :GROUTINGDAILYDETAILID ) ;
- ";
- sqlStr = "BEGIN";
- DataTable dt = new DataTable();
- for (int i = 0; i < json.Count; i++)
- {
- //读取原注浆记录进行比对,原来 注浆标识 为1 现在 注浆标识 为0 要-1 反之加1
- dt = conn.GetSqlResultToDt($@"
- SELECT
- GROUTINGDAILYDETAILID,
- GROUTINGLINEDETAILID,
- GROUTINGFLAG
- FROM
- TP_PM_GROUTINGDAILYDETAIL
- WHERE
- GROUTINGDAILYDETAILID = {json[i]["GROUTINGDAILYDETAILID"].ToString()}
- ");
- string groutingCount = "";
- //注浆标识改变 才更新 注浆次数
- if (json[i]["GROUTINGFLAG"].ToString() != dt.Rows[0]["GROUTINGFLAG"].ToString())
- {
- groutingCount = json[i]["GROUTINGFLAG"].ToString() == "1" ? "1" : "-1";
- sqlStr += updateOne
- .Replace(":GROUTINGCOUNT", groutingCount)
- .Replace(":GROUTINGLINEDETAILID", dt.Rows[0]["GROUTINGLINEDETAILID"].ToString())
- .Replace(":GROUTINGDAILYDETAILID", dt.Rows[0]["GROUTINGDAILYDETAILID"].ToString());
- }
- }
- sqlStr += "END;";
- result = conn.ExecuteNonQuery(sqlStr);
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- for (int i = 0; i < json.Count; i++)
- {
- object date = CMNModuleLogic.GetAccountDate(conn, sUser);
- DateTime groutingDate = Convert.ToDateTime(date).Date;
- #region 编辑时,取消注浆对应减去计划中实际注浆数及关联数据,修改为注浆对应判断是否允许注浆,允许时对应计划增加实际注浆数 20251216
- //读取原注浆记录进行比对,原来 注浆标识 为1 现在 注浆标识 为0 要-1 反之加1
- dt = conn.GetSqlResultToDt($@"
- SELECT
- GDD.GROUTINGDAILYDETAILID,
- GDD.GROUTINGLINEDETAILID,
- GDD.GOODSCODE,
- GDD.LOGOID,
- GDD.GROUTINGDATE,
- GDD.GROUTINGFLAG
- FROM
- TP_PM_GROUTINGDAILYDETAIL GDD
- LEFT JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- WHERE G.SCRAPSUMFLAG = 1 AND
- GDD.GROUTINGDAILYDETAILID = {json[i]["GROUTINGDAILYDETAILID"].ToString()}
- ");
-
- if (json[i]["GROUTINGFLAG"].ToString() != dt.Rows[0]["GROUTINGFLAG"].ToString())
- {
- if (json[i]["GROUTINGFLAG"].ToString() == "0")
- {
- //取消注浆
- //查询对应半成品物料(根据注浆的产品及商标)
- string mat20 = PMModuleLogic.getmaterialcodeMat20(conn, dt.Rows[0]["GOODSCODE"].ToString(), Convert.ToInt32(dt.Rows[0]["LOGOID"]));
- int proPlanID = 0;
- if (!string.IsNullOrWhiteSpace(mat20))
- {
- //查询半成品物料当月对应的计划数量
- DataTable planTabel = PMModuleLogic.getPlanDetail(conn, 1, mat20, groutingDate);
- if (planTabel != null && planTabel.Rows.Count > 0)
- {
- proPlanID = Convert.ToInt32(planTabel.Rows[0]["PRODPLANID"]);
- }
- }
- if (proPlanID > 0)
- {
- string proSql = "DELETE FROM TP_SEMIFINISHED_PRODPLANBAR WHERE PRODPLANID = :PRODPLANID and GROUTINGDAILYDETAILID = :GROUTINGDAILYDETAILID";
- OracleParameter[] proParas = new OracleParameter[]
- {
- new OracleParameter(":PRODPLANID", OracleDbType.Int32, proPlanID, ParameterDirection.Input),
- new OracleParameter(":GROUTINGDAILYDETAILID", OracleDbType.Int32, Convert.ToInt32( dt.Rows[0]["GROUTINGDAILYDETAILID"]), ParameterDirection.Input),
- new OracleParameter(":ACCOUNTID", OracleDbType.Int32, sUser.AccountID, ParameterDirection.Input),
- new OracleParameter(":CREATEUSERID", OracleDbType.Int32, sUser.UserID, ParameterDirection.Input),
- };
- int executeResult = conn.ExecuteNonQuery(proSql, proParas);
- //确保之前的注浆数据绑定在该月计划单上
- if (executeResult > 0)
- {
- proSql = "UPDATE TP_SEMIFINISHED_PRODPLAN SET COMPLETEDCOUNT = COMPLETEDCOUNT - :PLANCOUNT WHERE PRODPLANID = :PRODPLANID ";
- proParas = new OracleParameter[]
- {
- new OracleParameter(":PLANCOUNT", OracleDbType.Int32, 1, ParameterDirection.Input),
- new OracleParameter(":PRODPLANID", OracleDbType.Int32, proPlanID, ParameterDirection.Input),
- };
- executeResult = conn.ExecuteNonQuery(proSql, proParas);
- }
- }
-
- }
- else
- {
- //注浆
- int systemSetvalue = PMModuleLogic.getSystemSet(conn, "S_PC_003", sUser);
- int proPlanID = 0;
- //查询对应半成品物料(根据注浆的产品及商标)
- string mat20 = PMModuleLogic.getmaterialcodeMat20(conn, dt.Rows[0]["GOODSCODE"].ToString(), Convert.ToInt32(dt.Rows[0]["LOGOID"]));
- if (!string.IsNullOrWhiteSpace(mat20))
- {
- //查询半成品物料当月对应的计划数量
- DataTable planTabel = PMModuleLogic.getPlanDetail(conn, 1, mat20, groutingDate);
- if (planTabel != null && planTabel.Rows.Count > 0)
- {
- proPlanID = Convert.ToInt32(planTabel.Rows[0]["PRODPLANID"]);
- //有计划,计划数量
- decimal planCount = Convert.ToDecimal(planTabel.Rows[0]["PLANCOUNT"]);
- //已完成数量
- decimal completedCount = 0;
- if (!string.IsNullOrWhiteSpace(planTabel.Rows[0]["COMPLETEDCOUNT"].ToString()))
- {
- completedCount = Convert.ToDecimal(planTabel.Rows[0]["COMPLETEDCOUNT"]);
- }
- if (systemSetvalue == 1 && 1 > planCount - completedCount)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "无法注浆:此次编辑注浆超过产销卡控计划注浆数量,请核实。";
- break;
- }
- }
- else
- {
- if (systemSetvalue == 1)
- {
- //无计划,无法注浆
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "无法注浆:该物料无产销计划,请核实。";
- }
- }
- }
- if (proPlanID > 0)
- {
- string proSql = "UPDATE TP_SEMIFINISHED_PRODPLAN SET COMPLETEDCOUNT = COMPLETEDCOUNT + :PLANCOUNT WHERE PRODPLANID = :PRODPLANID ";
- OracleParameter[] proParas = new OracleParameter[]
- {
- new OracleParameter(":PLANCOUNT", OracleDbType.Int32, 1, ParameterDirection.Input),
- new OracleParameter(":PRODPLANID", OracleDbType.Int32, proPlanID, ParameterDirection.Input),
- };
- int executeResult = conn.ExecuteNonQuery(proSql, proParas);
- proSql = "INSERT INTO TP_SEMIFINISHED_PRODPLANBAR (PRODPLANID,GROUTINGDAILYDETAILID,ACCOUNTID,CREATEUSERID) VALUES(:PRODPLANID,:GROUTINGDAILYDETAILID,:ACCOUNTID,:CREATEUSERID)";
- proParas = new OracleParameter[]
- {
- new OracleParameter(":PRODPLANID", OracleDbType.Int32, proPlanID, ParameterDirection.Input),
- new OracleParameter(":GROUTINGDAILYDETAILID", OracleDbType.Int32, Convert.ToInt32( dt.Rows[0]["GROUTINGDAILYDETAILID"]), ParameterDirection.Input),
- new OracleParameter(":ACCOUNTID", OracleDbType.Int32, sUser.AccountID, ParameterDirection.Input),
- new OracleParameter(":CREATEUSERID", OracleDbType.Int32, sUser.UserID, ParameterDirection.Input),
- };
- executeResult = conn.ExecuteNonQuery(proSql, proParas);
- }
- }
- }
- #endregion
- }
- }
- catch
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "注浆次数更新失败!";
- }
- }
- //更新注浆记录数据 不可以在更新 注浆次数 之前 执行
- if (sre.Status == Constant.ServiceResultStatus.Success && groutingData != "")
- {
- try
- {
- JArray json = JArray.Parse(groutingData);
- string updateOne = $@"
- UPDATE
- TP_PM_GROUTINGDAILYDETAIL
- SET
- GROUTINGFLAG = ':GROUTINGFLAG',
- NOGROUTINGRREASON = :NOGROUTINGRREASON
- WHERE
- ( GROUTINGDAILYDETAILID = :GROUTINGDAILYDETAILID OR MAINGROUTINGDAILYDETAILID = :GROUTINGDAILYDETAILID )
- ;
- ";
- sqlStr = "BEGIN";
- for (int i=0;i<json.Count;i++)
- {
- //验证注浆原因,如果没给数据,置为空
- if (!(json[i]["NOGROUTINGRREASON"] is object))
- json[i]["NOGROUTINGRREASON"] = "null";
- sqlStr += updateOne
- .Replace(":GROUTINGFLAG", json[i]["GROUTINGFLAG"].ToString())
- .Replace(":NOGROUTINGRREASON", json[i]["NOGROUTINGRREASON"].ToString())
- .Replace(":GROUTINGDAILYDETAILID", json[i]["GROUTINGDAILYDETAILID"].ToString());
- //sqlStr += ";";
- }
- sqlStr += "END;";
- result = conn.ExecuteNonQuery(sqlStr);
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- catch
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "注浆记录保存失败!";
- }
- }
- //提交
- if (sre.Status == Constant.ServiceResultStatus.Success)
- conn.Commit();
- else
- conn.Rollback();
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- /// <summary>
- /// 模具注浆批次查询 ok
- /// </summary>
- /// <param name="groutingMouldCode"></param>
- /// <param name="groutingDay"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetGroutingMouldBatchNo(string groutingMouldCode, string groutingDay, SUserInfo sUser)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- sre.Data = new DataSet();
- sre.Status = Constant.ServiceResultStatus.Success;
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- string sqlStr = "";
- try
- {
- conn.Connect();
- //成型线注浆批次查询
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- SELECT DISTINCT
- d.GROUTINGBATCHNO --AS 注浆批次
- FROM
- TP_PM_GROUTINGDAILYDETAIL d
- WHERE
- d.VALUEFLAG = '1'
- AND d.ACCOUNTID = {sUser.AccountID}
- AND d.GROUTINGMOULDCODE = '{groutingMouldCode}'
- AND d.GROUTINGDATE = DATE '{groutingDay}'
- ORDER BY
- d.GROUTINGBATCHNO DESC
- ";
- DataTable GroutingMouldBatchNo = conn.GetSqlResultToDt(sqlStr);
- GroutingMouldBatchNo.TableName = "GroutingMouldBatchNo";
- sre.Data.Tables.Add(GroutingMouldBatchNo);
- if (GroutingMouldBatchNo.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "没有查询结果!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- /// <summary>
- /// 模具注浆查询 ok
- /// </summary>
- /// <param name="groutingMouldCode"></param>
- /// <param name="groutingDay"></param>
- /// <param name="groutingBatchNo"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetGroutingMouldGrouting(string groutingMouldCode, string groutingDay, string groutingBatchNo, SUserInfo sUser)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- sre.Data = new DataSet();
- sre.Status = Constant.ServiceResultStatus.Success;
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- string sqlStr = "";
- try
- {
- conn.Connect();
- //模具注浆查询
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- SELECT
- d.GROUTINGDAILYID , --AS 注浆ID,
- d.GROUTINGDAILYDETAILID, -- AS 注浆日报明细ID
- d.GROUTINGBATCHNO ,-- AS 注浆批次,
- m.USERCODE ,-- AS 成型工号,
- m.MONITORCODE ,-- AS 成型班长,
- d.GROUTINGMOULDCODE,-- AS 模具编号,
- g.GOODSCODE,-- AS 产品编码,
- o.LOGONAME,-- AS 产品商标,
- d.GROUTINGFLAG,-- AS 注浆标识,
- d.NOGROUTINGRREASON AS NOGROUTINGRREASONID, -- 未注浆原因ID
- y.DICTIONARYVALUE AS NOGROUTINGRREASON, -- AS 未注浆原因
- d.BARCODE,-- AS 绑定条码,
- d.SCRAPFLAG,-- AS 损坯标识,
- d.BEGINNINGFLAG -- AS 在产标识
- FROM
- TP_PM_GROUTINGDAILYDETAIL d
- LEFT JOIN TP_MST_GOODS g ON g.GOODSID = d.GOODSID
- LEFT JOIN TP_MST_LOGO o ON o.LOGOID = d.LOGOID
- LEFT JOIN TP_PM_GROUTINGDAILY m ON m.GROUTINGDAILYID = d.GROUTINGDAILYID
- LEFT JOIN TP_MST_DATADICTIONARY y ON y.DICTIONARYID = d.NOGROUTINGRREASON
- WHERE
- d.VALUEFLAG = '1'
- AND d.ACCOUNTID = {sUser.AccountID}
- AND d.GROUTINGMOULDCODE = '{groutingMouldCode}'
- AND d.GROUTINGDATE = DATE '{groutingDay}'
- ";
- //如果指定批次号查询指定批次
- if (!string.IsNullOrEmpty(groutingBatchNo)) sqlStr += $@" AND d.GROUTINGBATCHNO = {groutingBatchNo}";
- DataTable GroutingMouldDetail = conn.GetSqlResultToDt(sqlStr);
- GroutingMouldDetail.TableName = "GroutingMouldDetail";
- sre.Data.Tables.Add(GroutingMouldDetail);
- if (GroutingMouldDetail.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "没有查询结果!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- /// <summary>
- /// 读取下一个模具注浆信息 ok
- /// </summary>
- /// <param name="groutingMouldCode"></param>
- /// <param name="groutingDay"></param>
- /// <param name="groutingBatchNo"></param>
- /// <param name="groutingMouldCode"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetGroutingMouldGroutingNext(string groutingMouldCode, string groutingDay, string groutingBatchNo, SUserInfo sUser)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- sre.Data = new DataSet();
- sre.Status = Constant.ServiceResultStatus.Success;
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- //string sqlStr = "";
- string groutingMouldCodeNext = ""; //下一个模具号
- try
- {
- conn.Connect();
- //读取模具批次列表
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- AddServiceResultEntity(sre, GetGroutingMouldBatchNo(groutingMouldCode, groutingDay, sUser));
- }
- //读取模具列表 记录下一个模具号 读最后一个时 返回第一个
- //读取条件 注浆的 未报损的 无码的
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- //sqlStr = $@"
- // SELECT
- // d.GROUTINGMOULDCODE -- AS 模具编号
- // FROM
- // TP_PM_GROUTINGDAILYDETAIL d
- // LEFT JOIN TP_PC_GROUTINGLINE l ON l.GROUTINGLINEID = d.GROUTINGLINEID
- // WHERE
- // d.VALUEFLAG = '1'
- // AND d.ACCOUNTID = {sUser.AccountID}
- // AND d.GROUTINGLINECODE = ( SELECT GROUTINGLINECODE FROM TP_PM_GROUTINGDAILYDETAIL WHERE GROUTINGMOULDCODE = '{groutingMouldCode}' AND GROUTINGDATE = DATE '{groutingDay}' AND GROUTINGBATCHNO = {groutingBatchNo} and valueflag = '1' )
- // AND d.GROUTINGDATE = DATE '{groutingDay}'
- // AND d.GROUTINGBATCHNO = {groutingBatchNo}
- // AND d.GROUTINGFLAG = '1' -- 注浆标识
- // AND d.SCRAPFLAG = '0' -- 损坯标识
- // AND d.BARCODE is null
- // ";
- string sqlString = "SELECT D.GROUTINGMOULDCODE -- AS 模具编号\n" +
- " FROM TP_PM_GROUTINGDAILYDETAIL D\n" +
- " LEFT JOIN TP_PC_GROUTINGLINE L\n" +
- " ON L.GROUTINGLINEID = D.GROUTINGLINEID\n" +
- " WHERE D.VALUEFLAG = '1'\n" +
- " AND D.ACCOUNTID = :ACCOUNTID\n" +
- " AND D.GROUTINGLINEID = (SELECT MAX(GROUTINGLINEID)\n" +
- " FROM TP_PC_GROUTINGLINEDETAIL GL\n" +
- " WHERE GL.GROUTINGMOULDCODE = :GROUTINGMOULDCODE\n" +
- " AND GL.VALUEFLAG = '1')\n" +
- " AND D.GROUTINGDATE = :GROUTINGDATE\n" +
- " AND D.GROUTINGBATCHNO = :GROUTINGBATCHNO\n" +
- " AND D.GROUTINGFLAG = '1' -- 注浆标识\n" +
- " AND D.SCRAPFLAG = '0' -- 损坯标识\n" +
- " AND D.BARCODE IS NULL\n" +
- " ORDER BY D.GROUTINGMOULDCODE";
- OracleParameter[] ps = new OracleParameter[]
- {
- new OracleParameter("ACCOUNTID", sUser.AccountID),
- new OracleParameter("GROUTINGMOULDCODE", groutingMouldCode),
- new OracleParameter("GROUTINGDATE", Convert.ToDateTime(groutingDay)),
- new OracleParameter("GROUTINGBATCHNO", Convert.ToInt32(groutingBatchNo)),
- };
- DataTable GroutingMouldCodeList = conn.GetSqlResultToDt(sqlString, ps);
- //GroutingMouldCodeList.TableName = "GroutingMouldCodeList";
- //sre.Data.Tables.Add(GroutingMouldCodeList);
- if (GroutingMouldCodeList.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "没有查询结果!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- //查找下一个模具号
- groutingMouldCodeNext = GroutingMouldCodeList.Rows[0]["GROUTINGMOULDCODE"].ToString();
- for (int i = 0; i < GroutingMouldCodeList.Rows.Count; i++)
- {
- if (string.Compare(GroutingMouldCodeList.Rows[i]["GROUTINGMOULDCODE"].ToString(), groutingMouldCode) > 0)
- {
- groutingMouldCodeNext = GroutingMouldCodeList.Rows[i]["GROUTINGMOULDCODE"].ToString();
- break;
- }
- }
- }
- }
- //读取下一个模具信息
- if (sre.Status == Constant.ServiceResultStatus.Success && groutingMouldCodeNext != "")
- {
- //读取模具信息
- AddServiceResultEntity(sre, GetGroutingMouldGrouting(groutingMouldCodeNext, groutingDay, groutingBatchNo, sUser));
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- /// <summary>
- /// 绑定条码 id 26219 barcode 8000027063
- /// </summary>
- /// <param name="groutingDailyDetailId"></param>
- /// <param name="barCode"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity BindGroutingBarCode(string groutingDailyDetailId, string barCode, SUserInfo sUser)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- sre.Data = new DataSet();
- sre.Status = Constant.ServiceResultStatus.Success;
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- string sqlStr = "";
- int result = -1;
- try
- {
- conn.Connect();
- int gl_id = Convert.ToInt32(conn.GetSqlResultToStr($"select g.groutinglineid from tp_pm_groutingdailydetail g where g.GROUTINGDAILYDETAILID = {groutingDailyDetailId}"));
- //检查注浆限制天数 'S_PM_023'
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- //读取注浆日期
- sqlStr = $@"
- SELECT
- to_char( GROUTINGDATE, 'yyyy-mm-dd' )
- FROM
- TP_PM_GROUTINGDAILYDETAIL
- WHERE
- GROUTINGDAILYDETAILID = {groutingDailyDetailId}
- ";
- string groutingDay = conn.GetSqlResultToStr(sqlStr);
- //读取限定日期
- sqlStr = $@"
- SELECT
- NVL(SETTINGVALUE,'0')
- FROM
- TP_MST_SYSTEMSETTING
- WHERE
- SETTINGCODE = 'S_PM_023'
- AND ACCOUNTID = {sUser.AccountID}
- ";
- int day = Convert.ToInt32(conn.GetSqlResultToStr(sqlStr));
- if (day != 0)
- {
- DateTime groutingDate = Convert.ToDateTime(groutingDay);
- DateTime beginDay = DateTime.Now.Date;
- DateTime endDay = beginDay.AddDays(1 - day);
- if (groutingDate < endDay || groutingDate > beginDay)
- {
- sre.Status = Constant.ServiceResultStatus.Other;
- sre.OtherStatus = -1;
- sre.Message = string.Format("允许绑码的日期范围【{0:yyyy-MM-dd}】-【{1:yyyy-MM-dd}】", endDay, beginDay);
- }
- }
- }
- //验证条码是否被使用
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- SELECT
- count( BARCODE )
- FROM
- TP_PM_USEDBARCODE
- WHERE
- ACCOUNTID = {sUser.AccountID}
- AND BARCODE = '{barCode}'
- ";
- result = Convert.ToInt32(conn.GetSqlResultToStr(sqlStr));
- if (result == 0)
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.ValidationFailed;
- sre.Message = "条码已被使用!";
- }
- }
- //绑定条码处理 写入注浆表 有条码必须先解绑 绑定条件 无码 已注浆 未报损
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- UPDATE
- TP_PM_GROUTINGDAILYDETAIL
- SET
- BARCODE = '{barCode}'
- WHERE
- ACCOUNTID = {sUser.AccountID}
- AND GROUTINGDAILYDETAILID = {groutingDailyDetailId}
- AND SCRAPFLAG = '0' -- 损坯不允许绑码
- AND GROUTINGFLAG = '1' --只有注浆的才可以绑码
- AND BARCODE IS NULL
- ";
- result = conn.ExecuteNonQuery(sqlStr);
- if (result == 1)
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoModifyData;
- sre.Message = "条码绑定失败!条码重复/未注浆/损坯 不可以绑码!";
- }
- }
- //绑定条码处理 写入条码使用记录
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- INSERT INTO TP_PM_USEDBARCODE
- (BARCODE,
- ACCOUNTID,
- CREATETIME,
- CREATEUSERID,
- GROUTINGDAILYDETAILID,
- BARCODESTATUS,
- CLEARFLAG)
- VALUES
- (
- '{barCode}', --条码
- {sUser.AccountID}, --账套
- DATE'{DateTime.Now.ToString("yyyy-MM-dd")}', --创建时间
- {sUser.UserID}, --创建人
- {groutingDailyDetailId}, --注浆ID
- 1, --注浆
- 0 --正常
- )
- ";
- result = conn.ExecuteNonQuery(sqlStr);
- if (result == 1)
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoModifyData;
- sre.Message = "条码使用记录写入失败!";
- }
- }
- //提交
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- conn.Commit();
- }
- else
- {
- conn.Rollback();
- return sre;
- }
- // 写入放行PLC
- Hashtable plcPara = new Hashtable();
- plcPara.Add("finishflag", 1);
- ServiceResultEntity sre_plc = PLCModuleLogic.PlcWrite_GL(3501, gl_id, plcPara, sUser.UserCode);
- }
- catch (Exception ex)
- {
- conn.Rollback();
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- /// <summary>
- /// 解绑条码 id 26219 barcode 8000027063
- /// </summary>
- /// <param name="groutingDailyDetailId"></param>
- /// <param name="barCode"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity UnBindGroutingBarCode(string groutingDailyDetailId, string barCode, SUserInfo sUser)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- sre.Data = new DataSet();
- sre.Status = Constant.ServiceResultStatus.Success;
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- string sqlStr = "";
- int result = -1;
- try
- {
- conn.Connect();
- //判断条码产品是否在产
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- SELECT
- COUNT(GROUTINGDAILYDETAILID)
- FROM
- TP_PM_GROUTINGDAILYDETAIL
- WHERE
- ACCOUNTID = {sUser.AccountID}
- AND BEGINNINGFLAG = '1'
- AND GROUTINGDAILYDETAILID = {groutingDailyDetailId}
- ";
- result = Convert.ToInt32(conn.GetSqlResultToStr(sqlStr));
- if(result == 0)
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.ValidationFailed;
- sre.Message = "在产状态的条码不允许解绑!";
- }
- }
- //解绑条码处理 更新 注资日报表
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- //条码写入注浆表
- sqlStr = $@"
- UPDATE
- TP_PM_GROUTINGDAILYDETAIL
- SET
- BARCODE = null
- WHERE
- ACCOUNTID = {sUser.AccountID}
- AND GROUTINGDAILYDETAILID = {groutingDailyDetailId}
- ";
- result = conn.ExecuteNonQuery(sqlStr);
- if (result == 1)
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoModifyData;
- sre.Message = "条码更新失败!";
- }
- }
- //解绑条码处理 删除 条码使用记录
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- DELETE
- TP_PM_USEDBARCODE
- WHERE
- ACCOUNTID = {sUser.AccountID}
- AND BARCODE = '{barCode}'
- AND GROUTINGDAILYDETAILID = {groutingDailyDetailId}
- ";
- result = conn.ExecuteNonQuery(sqlStr);
- //严谨的逻辑是 result == 1 才对 偶尔存在错误数据,没找到原因,为调试方便改为>=0
- if (result >= 0)
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoModifyData;
- sre.Message = "条码使用记录删除失败!";
- }
- }
- //提交
- if (sre.Status == Constant.ServiceResultStatus.Success)
- conn.Commit();
- else
- conn.Rollback();
- }
- catch (Exception ex)
- {
- conn.Rollback();
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- /// <summary>
- /// 整条成型线解绑条码
- /// </summary>
- /// <param name="groutingLineCode"></param>
- /// <param name="groutingDay"></param>
- /// <param name="groutingBatchNo"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity UnBindGroutingLineBarCode(string groutingLineCode, string groutingDay, string groutingBatchNo, SUserInfo sUser)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- sre.Data = new DataSet();
- sre.Status = Constant.ServiceResultStatus.Success;
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- string sqlStr = "";
- int result = -1;
- DataTable groutingTable=new DataTable();
- try
- {
- conn.Connect();
- //读取全线注浆记录,并判定是否有在产产品
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- SELECT
- GROUTINGDAILYID, -- AS 注浆ID,
- GROUTINGDAILYDETAILID, -- AS 注浆日报明细ID
- BARCODE, -- AS 产品条码,
- BEGINNINGFLAG -- AS 在产标识
- FROM
- TP_PM_GROUTINGDAILYDETAIL
- WHERE
- VALUEFLAG = '1'
- AND ACCOUNTID = {sUser.AccountID}
- AND GROUTINGLINECODE = '{groutingLineCode}'
- AND GROUTINGDATE = DATE '{groutingDay}'
- AND GROUTINGBATCHNO = {groutingBatchNo}
- ORDER BY
- GROUTINGMOULDCODE
- ";
- groutingTable = conn.GetSqlResultToDt(sqlStr);
- if (groutingTable.Rows.Count > 0)
- {
- //判断是否有在产标识的记录
- if(groutingTable.Select(" BEGINNINGFLAG = '1' ").Length==0)
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.ValidationFailed;
- sre.Message = "成型线中有在产产品!";
- }
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.ValidationFailed;
- sre.Message = "成型线没找到注浆记录!";
- }
- }
- //全线解绑条码处理 更新 注资日报表
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- //条码写入注浆表
- sqlStr = $@"
- UPDATE
- TP_PM_GROUTINGDAILYDETAIL
- SET
- BARCODE = null
- WHERE
- ACCOUNTID = {sUser.AccountID}
- AND GROUTINGLINECODE = '{groutingLineCode}'
- AND GROUTINGDATE = DATE '{groutingDay}'
- AND GROUTINGBATCHNO = {groutingBatchNo}
- ";
- result = conn.ExecuteNonQuery(sqlStr);
- if (result == groutingTable.Rows.Count)
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoModifyData;
- sre.Message = "条码更新失败!";
- }
- }
- //解绑条码处理 删除 条码使用记录
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- string barCodes = "";
- string groutingDailyDetailIds = "";
- for (int i = 0; i < groutingTable.Rows.Count; i++)
- {
- if (i > 0)
- {
- barCodes += ",";
- groutingDailyDetailIds += ",";
- };
- barCodes += "'" + groutingTable.Rows[i]["BARCODE"].ToString() + "'";
- groutingDailyDetailIds += groutingTable.Rows[i]["GROUTINGDAILYDETAILID"].ToString();
- }
- sqlStr = $@"
- DELETE
- TP_PM_USEDBARCODE
- WHERE
- ACCOUNTID = {sUser.AccountID}
- AND BARCODE IN ({barCodes})
- AND GROUTINGDAILYDETAILID IN ({groutingDailyDetailIds})
- ";
- result = conn.ExecuteNonQuery(sqlStr);
- //有条码的解码,允许存在没绑码的记录
- if (result > 0)
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoModifyData;
- sre.Message = "条码使用记录删除失败!";
- }
- }
- //提交
- if (sre.Status == Constant.ServiceResultStatus.Success)
- conn.Commit();
- else
- conn.Rollback();
- }
- catch (Exception ex)
- {
- conn.Rollback();
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- /// <summary>
- /// 报损/取消报损处理
- /// </summary>
- /// <param name="groutingDailyDetailId"></param>
- /// <param name="scrapFlag"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity SetGroutingScrap(string groutingDailyDetailId, string scrapFlag, SUserInfo sUser)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- sre.Data = new DataSet();
- sre.Status = Constant.ServiceResultStatus.Success;
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- string sqlStr = "";
- int result = -1;
- try
- {
- conn.Connect();
- int gl_id = Convert.ToInt32(conn.GetSqlResultToStr($"select g.groutinglineid from tp_pm_groutingdailydetail g where g.GROUTINGDAILYDETAILID = {groutingDailyDetailId}"));
- //未注浆/在产/已报损(不能重复操作)/撤销报损(不能重复操作) xuwei modify 2019-11-25
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- SELECT
- COUNT(GROUTINGDAILYDETAILID)
- FROM
- TP_PM_GROUTINGDAILYDETAIL
- WHERE
- ACCOUNTID = {sUser.AccountID}
- AND (BEGINNINGFLAG = '1' OR SCRAPFlAG = '{scrapFlag}' OR GROUTINGFLAG = '0' )
- AND GROUTINGDAILYDETAILID = {groutingDailyDetailId}
- ";
- result = Convert.ToInt32(conn.GetSqlResultToStr(sqlStr));
- if (result == 0)
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.ValidationFailed;
- sre.Message = "未注浆/在产/报损/的产品不能操作!";
- }
- }
- //更新条码使用表
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- //报损 BARCODESTATUS = 2 撤销报损 BARCODESTATUS = 1
- int barCodeStatus = scrapFlag == "1" ? 2 : 1;
- sqlStr = $@"
- UPDATE
- TP_PM_USEDBARCODE
- SET
- BARCODESTATUS = {barCodeStatus}
- WHERE
- ACCOUNTID = {sUser.AccountID}
- AND BARCODESTATUS <> -1
- AND GROUTINGDAILYDETAILID = {groutingDailyDetailId}
- ";
- result = conn.ExecuteNonQuery(sqlStr);
- //result=1 是绑定条码的产品,result=0 是没绑条码的产品
- if (result == 1 || result == 0)
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoModifyData;
- sre.Message = "条码使用记录更新失败!";
- }
- }
- //更新注浆表的SCRAPFlAG 损坯标记 SCRAPTYPE 损坏类型 0 开模损 null 正常
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- string scrapType = scrapFlag == "1" ? "'0'" : "null";
- string ScrapTime = scrapFlag == "1" ? "sysdate" : "null";
- sqlStr = $@"
- UPDATE
- TP_PM_GROUTINGDAILYDETAIL
- SET
- SCRAPFlAG = '{scrapFlag}',
- SCRAPTYPE = {scrapType},
- ScrapTime = {ScrapTime}
- WHERE
- ACCOUNTID = {sUser.AccountID}
- AND GROUTINGDAILYDETAILID = {groutingDailyDetailId}
- ";
- result = conn.ExecuteNonQuery(sqlStr);
- if (result == 1)
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoModifyData;
- sre.Message = "没有更新任何数据!";
- }
- }
- //提交
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- conn.Commit();
- }
- else
- {
- conn.Rollback();
- return sre;
- }
- // 写入放行PLC
- if (scrapFlag == "1")
- {
- Hashtable plcPara = new Hashtable();
- plcPara.Add("finishflag", 1);
- ServiceResultEntity sre_plc = PLCModuleLogic.PlcWrite_GL(3501, gl_id, plcPara, sUser.UserCode);
- }
- }
- catch (Exception ex)
- {
- conn.Rollback();
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- /// <summary>
- /// 按条码查询注浆日报详细信息
- /// </summary>
- /// <param name="barCode"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetGroutingDailyDetail(string barCode,SUserInfo sUser)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- sre.Data = new DataSet();
- sre.Status = Constant.ServiceResultStatus.Success;
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- string sqlStr = "";
- try
- {
- conn.Connect();
- //成型线注浆查询
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- SELECT
- d.GROUTINGLINECODE, --AS 成型线编码,
- d.GROUTINGDATE, --AS 注浆日期,
- d.GROUTINGDAILYID , --AS 注浆ID,
- d.GROUTINGDAILYDETAILID, -- AS 注浆日报明细ID
- d.GROUTINGBATCHNO ,-- AS 注浆批次,
- m.USERCODE ,-- AS 成型工号,
- m.MONITORCODE ,-- AS 成型班长,
- d.GROUTINGMOULDCODE,-- AS 模具编号,
- g.GOODSCODE,-- AS 产品编码,
- o.LOGONAME,-- AS 产品商标,
- d.GROUTINGFLAG,-- AS 注浆标识,
- d.NOGROUTINGRREASON AS NOGROUTINGRREASONID, -- 未注浆原因ID
- y.DICTIONARYVALUE AS NOGROUTINGRREASON, -- AS 未注浆原因
- d.BARCODE,-- AS 绑定条码,
- d.SCRAPFLAG,-- AS 损坯标识,
- d.BEGINNINGFLAG -- AS 在产标识
- FROM
- TP_PM_GROUTINGDAILYDETAIL d
- LEFT JOIN TP_MST_GOODS g ON g.GOODSID = d.GOODSID
- LEFT JOIN TP_MST_LOGO o ON o.LOGOID = d.LOGOID
- LEFT JOIN TP_PM_GROUTINGDAILY m ON m.GROUTINGDAILYID = d.GROUTINGDAILYID
- LEFT JOIN TP_MST_DATADICTIONARY y ON y.DICTIONARYID = d.NOGROUTINGRREASON
- WHERE
- d.VALUEFLAG = '1'
- AND d.ACCOUNTID = {sUser.AccountID}
- AND d.BARCODE = '{barCode}'
- ";
- DataTable GroutingDailyDetail = conn.GetSqlResultToDt(sqlStr);
- GroutingDailyDetail.TableName = "GroutingDailyDetail";
- sre.Data.Tables.Add(GroutingDailyDetail);
- if (GroutingDailyDetail.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "没有查询结果!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- }
- //成型线信息查询 查询参数使用了sre.data中的GroutingDailyDetail表中的数据
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- string groutingLineCode = sre.Data.Tables["GroutingDailyDetail"].Rows[0]["GROUTINGLINECODE"].ToString();
- sqlStr = $@"
- SELECT
- l.GROUTINGLINECODE ,-- AS 成型线号,
- l.LASTGROUTINGDATE ,-- AS 已注浆日期,
- l.LASTGROUTINGBATCHNO ,-- AS 已注浆批次,
- u.USERCODE ,-- AS 成型工号,
- m.USERCODE AS MONITORUSERCODE,-- AS 成型班长,
- l.MOULDQUANTITY, -- AS 模具数量,
- t.CANMANYTIMES -- AS 允许多次注浆
- FROM
- TP_PC_GROUTINGLINE l
- LEFT JOIN TP_MST_USER u ON l.USERID = u.USERID
- LEFT JOIN TP_MST_USER m ON l.USERID = m.USERID
- LEFT JOIN TP_MST_GMOULDTYPE t ON l.GMOULDTYPEID = t.GMOULDTYPEID
- WHERE
- l.VALUEFLAG = '1' --有效标识
- AND l.ACCOUNTID = {sUser.AccountID}
- AND l.GROUTINGLINECODE = '{groutingLineCode}'
- ";
- DataTable groutingLine = conn.GetSqlResultToDt(sqlStr);
- groutingLine.TableName = "GroutingLine";
- sre.Data.Tables.Add(groutingLine);
- if (groutingLine.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "没有查询结果!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- /// <summary>
- /// 按条码查询成检交接信息 2020-06-26 xuwei
- /// </summary>
- /// <param name="barCode"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetPreProductCheck(string barCode, SUserInfo sUser)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- sre.Data = new DataSet();
- sre.Status = Constant.ServiceResultStatus.Success;
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- string sqlStr = "";
- try
- {
- conn.Connect();
- //成型线注浆查询
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- sqlStr = $@"
- SELECT
- i.GOODSLEVELTYPEID,
- i.REWORKPROCEDUREID
- FROM
- TP_PM_INPRODUCTION i
- WHERE
- i.BARCODE = {barCode}
- AND i.MODELTYPE = -4
- ";
- DataTable PreProductCheck = conn.GetSqlResultToDt(sqlStr);
- PreProductCheck.TableName = "PreProductCheck";
- sre.Data.Tables.Add(PreProductCheck);
- if (PreProductCheck.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "没有查询结果!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- /// <summary>
- /// 读取旧的防伪码 xuwei edit 2021-09-11 多读取一些产品信息
- /// </summary>
- /// <param name="barCode">产品条码</param>ram>
- /// 陈强 2021-08-9 新建
- /// <returns>int</returns>
- public static ServiceResultEntity GetSecurityCodeByBarcode(string barCode, SUserInfo sUser)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- sre.Data = new DataSet();
- sre.Status = Constant.ServiceResultStatus.Success;
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- conn.Connect();
- //读取防伪码
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- string sqlString = @"
- SELECT
- GD.BARCODE,
- GD.SECURITYCODE,
- GD.GOODSCODE,
- GT.GOODSTYPECODE
- FROM
- TP_PM_GROUTINGDAILYDETAIL GD
- LEFT JOIN TP_MST_GOODS G ON GD.GOODSID = G.GOODSID
- LEFT JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- WHERE
- GD.BARCODE =:BARCODE
- AND GD.VALUEFLAG =1
- ";
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter(":BARCODE",OracleDbType.Varchar2, barCode,ParameterDirection.Input),
- };
- DataTable data = conn.GetSqlResultToDt(sqlString, paras);
- data.TableName = "Data";
- sre.Data.Tables.Add(data);
- if (data != null && data.Rows.Count > 0 && data.Rows[0]["SecurityCode"].ToString() != "")
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "防伪码读取成功!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "没有查询结果!";
- }
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- return sre;
- }
- /// <summary>
- /// 绑定防伪码
- /// </summary>
- /// <param name="barcode">产品条码</param>ram>
- /// <param name="procedureID">工序ID</param>ram>
- /// <param name="securityCode">防伪码</param>
- /// 2021-08-9 新建
- /// <returns>int</returns>
- public static ServiceResultEntity UpdateSecurityCodeByBarcode(string barCode, string securityCode, string procedureID, SUserInfo sUser)
- {
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- int retnrnRows = 0;
- int retnrnRows2 = 0;
- string sqlString = null;
- bool b = true;//true 有防伪码 false 无防伪码
- try
- {
- oracleTrConn.Connect();
- //防伪码位数校验
- if (!string.IsNullOrEmpty(securityCode) ) {
- if (securityCode.Length != 12)
- {
- sre.Status = Constant.ServiceResultStatus.NoModifyData;
- sre.Message = "防伪码位数不对!";
- return sre;
- }
- };
- #region 查此件原来有没有防伪码
- sqlString = @"SELECT
- SECURITYCODE
- FROM
- TP_PM_GROUTINGDAILYDETAIL
- WHERE
- BARCODE =:BARCODE
- AND VALUEFLAG =1";
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter(":BARCODE",OracleDbType.Varchar2, barCode,ParameterDirection.Input)
- };
- DataTable SecurityCode = oracleTrConn.GetSqlResultToDt(sqlString, paras);
- if (SecurityCode != null && SecurityCode.Rows.Count > 0 && SecurityCode.Rows[0]["SecurityCode"].ToString() != "")
- {
- //有防伪码 —— 防伪码变更
- b = true;
- }
- else {
- //无防伪码 —— 防伪码绑定
- b = false;
- }
- #region 检验输入的防伪码是否被使用过
- sqlString = @"SELECT
- 1
- FROM
- TP_PM_GROUTINGDAILYDETAIL
- WHERE
- VALUEFLAG = 1
- AND SECURITYCODE = :SECURITYCODE";
- paras = new OracleParameter[]{
- new OracleParameter(":SECURITYCODE",OracleDbType.Varchar2, securityCode,ParameterDirection.Input),
- };
- DataTable dt = oracleTrConn.GetSqlResultToDt(sqlString, paras);
- // 被使用过则不能被再次使用
- if (dt != null && dt.Rows.Count > 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoModifyData;
- sre.Message = "防伪码被使用过!";
- return sre;
- }
- #endregion
- #region 写防伪码(变更和绑定都走这个)
- sqlString = @"UPDATE
- TP_PM_GROUTINGDAILYDETAIL
- SET
- SECURITYCODE = :SECURITYCODE
- WHERE
- BARCODE =:BARCODE
- AND VALUEFLAG =1";
- paras = new OracleParameter[]{
- new OracleParameter(":BARCODE",OracleDbType.Varchar2, barCode,ParameterDirection.Input),
- new OracleParameter(":SECURITYCODE",OracleDbType.Varchar2, securityCode,ParameterDirection.Input),
- };
- retnrnRows = oracleTrConn.ExecuteNonQuery(sqlString, paras);
- #endregion
- #endregion
- // 防伪码变更
- if (b)
- {
- #region 记录变更日志
- // 成功
- if (retnrnRows > 0)
- {
- sqlString = @"INSERT INTO TP_MST_SECURITYCODELOG
- ( USERID, BARCODE, OLDSECURITYCODE, NEWSECURITYCODE, CREATETIME, OPERATION, REMARKS, PROCEDUREID )
- VALUES (:USERID, :BARCODE, :OLDSECURITYCODE, :NEWSECURITYCODE, SYSDATE, :OPERATION, :REMARKS, :PROCEDUREID )";
- paras = new OracleParameter[]{
- new OracleParameter(":USERID",OracleDbType.Int32, sUser.UserID,ParameterDirection.Input),
- new OracleParameter(":BARCODE",OracleDbType.Varchar2, barCode,ParameterDirection.Input),
- new OracleParameter(":OLDSECURITYCODE",OracleDbType.Varchar2, null,ParameterDirection.Input),
- new OracleParameter(":NEWSECURITYCODE",OracleDbType.Varchar2, securityCode,ParameterDirection.Input),
- new OracleParameter(":OPERATION",OracleDbType.Int32, 2,ParameterDirection.Input),
- new OracleParameter(":REMARKS",OracleDbType.Varchar2," 【时间】 "+DateTime.Now.ToString() + " 【用户】 " + sUser.UserName+ " 【操作条码】 "+ barCode +" 【变更防伪码】 "+ SecurityCode.Rows [ 0 ][ "SecurityCode" ] + " 更改为 " + securityCode ,ParameterDirection.Input),
- new OracleParameter(":PROCEDUREID",OracleDbType.Int32, Convert.ToInt32(procedureID) ,ParameterDirection.Input)
- };
- retnrnRows2 = oracleTrConn.ExecuteNonQuery(sqlString, paras);
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "防伪码变更成功!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoModifyData;
- sre.Message = "防伪码变更失败!";
- }
- }
- //防伪码绑定
- else {
- #region 记录操作日志
- // 成功
- if (retnrnRows > 0)
- {
- sqlString = @"INSERT INTO TP_MST_SECURITYCODELOG
- ( USERID, BARCODE, OLDSECURITYCODE, NEWSECURITYCODE, CREATETIME, OPERATION, REMARKS, PROCEDUREID )
- VALUES (:USERID, :BARCODE, :OLDSECURITYCODE, :NEWSECURITYCODE, SYSDATE, :OPERATION, :REMARKS, :PROCEDUREID )";
- paras = new OracleParameter[]{
- new OracleParameter(":USERID",OracleDbType.Int32, sUser.UserID,ParameterDirection.Input),
- new OracleParameter(":BARCODE",OracleDbType.Varchar2, barCode,ParameterDirection.Input),
- new OracleParameter(":OLDSECURITYCODE",OracleDbType.Varchar2, null,ParameterDirection.Input),
- new OracleParameter(":NEWSECURITYCODE",OracleDbType.Varchar2, securityCode,ParameterDirection.Input),
- new OracleParameter(":OPERATION",OracleDbType.Int32, 1,ParameterDirection.Input),
- new OracleParameter(":REMARKS",OracleDbType.Varchar2," 【时间】 "+DateTime.Now.ToString() + " 【用户】 " + sUser.UserName+ " 【操作条码】 "+ barCode +" 【绑定防伪码】 "+ securityCode ,ParameterDirection.Input),
- new OracleParameter(":PROCEDUREID",OracleDbType.Int32, Convert.ToInt32(procedureID) ,ParameterDirection.Input),
- };
- retnrnRows2 = oracleTrConn.ExecuteNonQuery(sqlString, paras);
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "防伪码绑定成功!";
- }
- #endregion
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoModifyData;
- sre.Message = "防伪码绑定失败!";
- }
- }
- #endregion
-
- oracleTrConn.Commit();
- }
- catch (Exception ex)
- {
- oracleTrConn.Rollback();
- throw ex;
- }
- finally
- {
- // 释放资源
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return sre;
- }
- /// <summary>
- /// 校验防伪码
- /// </summary>
- /// <param name="barCode">产品条码</param>
- /// <param name="securityCode">防伪码</param>
- /// 陈强 2021-08-11 新建
- /// <returns>int</returns>
- public static ServiceResultEntity CheckSecurityCodeByBarcode(string barCode, string securityCode, SUserInfo sUser)
- {
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- string sqlString = null;
- try
- {
- conn.Connect();
- #region 验证防伪码处理
- sqlString = @" SELECT
- 1
- FROM
- TP_PM_GROUTINGDAILYDETAIL
- WHERE
- BARCODE = :BARCODE
- AND VALUEFLAG = 1
- AND SECURITYCODE = :SECURITYCODE";
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter(":BARCODE",OracleDbType.Varchar2, barCode,ParameterDirection.Input),
- new OracleParameter(":SECURITYCODE",OracleDbType.Varchar2, securityCode,ParameterDirection.Input),
- };
- DataTable dt = conn.GetSqlResultToDt(sqlString, paras);
-
- if (dt !=null && dt.Rows.Count>0 )
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "防伪码验证成功!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoModifyData;
- sre.Message = "防伪码验证失败!";
- }
- #endregion
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- return sre;
- }
- /// <summary>
- /// 读取防伪码设置 xuwei add 2021-09-10
- /// </summary>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetSecurityCodeSetting(SUserInfo sUser)
- {
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- string sqlString = null;
- try
- {
- conn.Connect();
- #region 读系统参数
- sqlString = @"
- SELECT
- T1.BINDPROCEDUREID,
- T1.CHECKROCEDUREID,
- T1.GOODSTYPECODE,
- T2.GOODSLISTBIND,
- T3.GOODSLISTCHECK
- FROM
- (
- SELECT
- B.SETTINGVALUE AS BINDPROCEDUREID,
- C.SETTINGVALUE AS CHECKROCEDUREID,
- V.SETTINGVALUE AS GOODSTYPECODE,
- 1 AS WJ
- FROM
- TP_MST_SYSTEMSETTING V
- LEFT JOIN TP_MST_SYSTEMSETTING B ON B.SETTINGCODE = 'S_PM_030'
- LEFT JOIN TP_MST_SYSTEMSETTING C ON C.SETTINGCODE = 'S_PM_031'
- WHERE
- V.SETTINGCODE = 'S_PM_032'
- ) T1
- INNER JOIN (
- SELECT
- 1 AS WJ,
- SECURITYCODEBINDFLAG,
- LISTAGG ( TO_CHAR(GOODSCODE), ',' ) WITHIN GROUP ( ORDER BY GOODSID ) AS GOODSLISTBIND
- FROM
- TP_MST_GOODS
- WHERE
- SECURITYCODEBINDFLAG = 1
- GROUP BY
- SECURITYCODEBINDFLAG
- ) T2 ON T1.WJ = T2.WJ
- LEFT JOIN (
- SELECT
- 1 AS WJ,
- SECURITYCODECHECKFLAG,
- LISTAGG ( TO_CHAR(GOODSCODE), ',' ) WITHIN GROUP ( ORDER BY GOODSID ) AS GOODSLISTCHECK
- FROM
- TP_MST_GOODS
- WHERE
- SECURITYCODECHECKFLAG = 1
- GROUP BY
- SECURITYCODECHECKFLAG
- ) T3 ON T1.WJ = T3.WJ
- ";
- DataTable dt = conn.GetSqlResultToDt(sqlString);
- dt.TableName = "SETTING";
- if (dt.Rows.Count > 0)
- {
- sre.Data = new DataSet();
- sre.Data.Tables.Add(dt);
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "系统参数读取成功!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.SystemError;
- sre.Message = "系统参数不存在!";
- }
- #endregion
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- return sre;
- }
- /// <summary>
- /// 通过条码和工序判断是绑定、验证还是普通处理
- /// </summary>
- /// <param name="barCode">产品条码</param>ram>
- /// <param name="procedureID">工序ID</param>ram>
- /// lsq 2021-11-22
- /// <returns>int</returns>
- public static ServiceResultEntity GetStatusByBarcode(string barCode, string procedureID, SUserInfo sUser){
- ServiceResultEntity sre = new ServiceResultEntity();
- sre.Data = new DataSet();
- sre.Status = Constant.ServiceResultStatus.Success;
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- conn.Connect();
- //读取防伪码
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- string sqlString = @"
- SELECT
- CASE
- WHEN
- INSTR( ',' || T2.GOODSLISTBIND || ',', ',' || T0.GOODSCODE || ',' ) > 0
- AND INSTR( ',' || T1.BINDPROCEDUREID || ',', ',' || :PROCEDUREID || ',' ) > 0
- AND T4.COLLECTTYPE = 2
- AND T4.MODELTYPE = 0
- THEN
- 1
- WHEN
- INSTR( ',' || T3.GOODSLISTCHECK || ',', ',' || T0.GOODSCODE || ',' ) > 0
- AND INSTR( ',' || T1.CHECKROCEDUREID || ',', ',' || :PROCEDUREID || ',' ) > 0
- AND T4.COLLECTTYPE = 2
- AND T4.MODELTYPE = 0
- -- AND EXISTS(SELECT 1 FROM TP_PM_PRODUCTIONDATA WHERE VALUEFLAG = 1 AND PROCEDUREID = 3 AND BARCODE = :BARCODE AND CREATETIME >= TO_DATE('2021-12-16 11:00:00', 'YYYY-MM-DD HH24:MI:SS'))
- THEN
- 2
- ELSE
- 0
- END AS STATUS
- FROM
- (
- SELECT
- GD.GOODSCODE,
- 1 AS WJ
- FROM
- TP_PM_GROUTINGDAILYDETAIL GD
- LEFT JOIN TP_MST_GOODS G ON GD.GOODSID = G.GOODSID
- WHERE
- GD.BARCODE = :BARCODE
- AND GD.VALUEFLAG = 1
- ) T0
- INNER JOIN (
- SELECT
- B.SETTINGVALUE AS BINDPROCEDUREID,
- C.SETTINGVALUE AS CHECKROCEDUREID,
- 1 AS WJ
- FROM
- TP_MST_SYSTEMSETTING B
- LEFT JOIN TP_MST_SYSTEMSETTING C ON C.SETTINGCODE = 'S_PM_031'
- WHERE
- B.SETTINGCODE = 'S_PM_030'
- ) T1 ON T0.WJ = T1.WJ
- INNER JOIN (
- SELECT
- 1 AS WJ,
- SECURITYCODEBINDFLAG,
- LISTAGG ( TO_CHAR( GOODSCODE ), ',' ) WITHIN GROUP ( ORDER BY GOODSID ) AS GOODSLISTBIND
- FROM
- TP_MST_GOODS
- WHERE
- SECURITYCODEBINDFLAG = 1
- GROUP BY
- SECURITYCODEBINDFLAG
- ) T2 ON T1.WJ = T2.WJ
- LEFT JOIN (
- SELECT
- 1 AS WJ,
- SECURITYCODECHECKFLAG,
- LISTAGG ( TO_CHAR( GOODSCODE ), ',' ) WITHIN GROUP ( ORDER BY GOODSID ) AS GOODSLISTCHECK
- FROM
- TP_MST_GOODS
- WHERE
- SECURITYCODECHECKFLAG = 1
- GROUP BY
- SECURITYCODECHECKFLAG
- ) T3 ON T1.WJ = T3.WJ
- INNER JOIN (
- SELECT
- 1 AS WJ,
- COLLECTTYPE,
- MODELTYPE
- FROM
- TP_PC_PROCEDURE
- WHERE
- PROCEDUREID = :PROCEDUREID
- ) T4 ON T1.WJ = T4.WJ
- ";
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter(":BARCODE",OracleDbType.Varchar2, barCode,ParameterDirection.Input),
- new OracleParameter(":PROCEDUREID",OracleDbType.Int32, Convert.ToInt32(procedureID),ParameterDirection.Input),
- };
- DataTable dt = conn.GetSqlResultToDt(sqlString, paras);
- dt.TableName = "data";
- sre.Data.Tables.Add(dt);
- if (dt.Rows.Count > 0)
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "读取成功!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "没有查询结果!";
- }
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- return sre;
- }
- /// <summary>
- /// pda端注浆登记验证工号的注浆权限
- /// </summary>
- /// <param name="groutingData">注浆信息</param>
- /// lsq 2021-08-25 新建
- /// <returns>int</returns>
- public static ServiceResultEntity CheckGroutingPower(string groutingData, SUserInfo sUser)
- {
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- ServiceResultEntity sre1 = new ServiceResultEntity();
- string sqlString = null;
- try
- {
- conn.Connect();
- JObject jsonL = JObject.Parse(groutingData);
- #region pda端注浆登记验证工号的注浆权限
- sqlString = $@" SELECT
- 1
- FROM
- TP_PC_GROUTINGLINE GL
- INNER JOIN
- TP_PC_GROUTINGUSER GU
- ON
- GL.GROUTINGLINEID = GU.GROUTINGLINEID
- WHERE
- GL.ACCOUNTID = {sUser.AccountID}
- AND GU.USERID = {sUser.UserID}
- AND GL.VALUEFLAG = 1
- AND GL.GROUTINGLINECODE = '{jsonL["GROUTINGLINECODE"].ToString()}'
- ";
- string str = conn.GetSqlResultToStr(sqlString);
- if (str == "1" )
- {
- sre1 = SetGroutingLineDetail(groutingData, sUser);
- sre.Status = sre1.Status;
- sre.Message = sre1.Message;
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoModifyData;
- sre.Message = "无注浆权限!";
- }
- #endregion
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- return sre;
- }
- /// <summary>
- /// 通用读取系统设置参数方法 xuwei add 2021-09-11
- /// </summary>
- /// <param name="SettingCode"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetSystemSetting(string SettingCode, SUserInfo sUser)
- {
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- ServiceResultEntity sre = new ServiceResultEntity();
- sre.Data = new DataSet();
- string sqlString = null;
- try
- {
- conn.Connect();
- #region 读系统参数
- sqlString = @"
- SELECT
- *
- FROM
- TP_MST_SYSTEMSETTING
- WHERE
- SETTINGCODE = :SETTINGCODE
- ";
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter(":SETTINGCODE",OracleDbType.Varchar2, SettingCode,ParameterDirection.Input),
- };
- DataTable dt = conn.GetSqlResultToDt(sqlString, paras);
- dt.TableName = "SETTING";
- if (dt.Rows.Count > 0)
- {
- sre.Data.Tables.Add(dt);
- sre.Result = dt.Rows[0]["SETTINGVALUE"].ToString();
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "系统参数读取成功!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.SystemError;
- sre.Message = "系统参数不存在!";
- }
- #endregion
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- return sre;
- }
- /// <summary>
- /// 通用读取产品信息方法 xuwei add 2021-09-14
- /// barCode可以接受防伪码进行查询 xuwei modi 2021-09-15
- /// </summary>
- /// <param name="barCode"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetGoodsByBarcode(string barCode, SUserInfo sUser)
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- sre.Data = new DataSet();
- sre.Status = Constant.ServiceResultStatus.Success;
- IDBTransaction conn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- conn.Connect();
- //读取防伪码
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- string sqlString = @"
- SELECT
- GD.BARCODE,
- GD.SECURITYCODE,
- GD.GOODSCODE,
- GT.GOODSTYPECODE
- FROM
- TP_PM_GROUTINGDAILYDETAIL GD
- LEFT JOIN TP_MST_GOODS G ON GD.GOODSID = G.GOODSID
- LEFT JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- WHERE
- (GD.BARCODE =:BARCODE OR GD.SECURITYCODE =:BARCODE )
- AND GD.VALUEFLAG =1
- ";
- OracleParameter[] paras = new OracleParameter[]{
- new OracleParameter(":BARCODE",OracleDbType.Varchar2, barCode,ParameterDirection.Input),
- };
- DataTable dt = conn.GetSqlResultToDt(sqlString, paras);
- dt.TableName = "Goods";
- sre.Data.Tables.Add(dt);
- if (dt.Rows.Count>0)
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "产品信息读取成功!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "没有查询结果!";
- }
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- return sre;
- }
- #endregion
- }
- }
|