| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989 |
- /*******************************************************************************
- * Copyright(c) 2019 DongkeSoft All rights reserved. / Confidential
- * 类的信息:
- * 1.程序名称:PDAModuleLogicWorkShop3.cs
- * 2.功能描述:PDA相关处理(三车间专用)。
- * 编辑履历:
- * 作者 日期 版本 修改内容
- * 徐伟 2019/11/05 1.00 新建
- *******************************************************************************/
- using Dongke.IBOSS.PRD.Basics.BaseResources;
- using Dongke.IBOSS.PRD.Basics.DataAccess;
- using Dongke.IBOSS.PRD.Service.DataModels;
- using Dongke.IBOSS.PRD.WCF.DataModels;
- using System;
- using System.Data;
- namespace Dongke.IBOSS.PRD.Service.PDAModuleLogic
- {
- /// <summary>
- /// 三车间专用接口
- /// </summary>
- public partial class PDAModuleLogic
- {
- #region feiyue add 2022-07-20 装板接口
- /// <summary>
- /// 生产工号装具操作权限
- /// </summary>
- /// <param name="groutingLineNo"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity CheckEntruckUser(string functionCode, string currentUserCode, 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
- TMUR.FunctionCode
- FROM
- TP_MST_UserRight TMUR
- INNER JOIN TP_MST_USER U ON U.USERID = TMUR.USERID
- WHERE
- TMUR.FunctionCode = '{functionCode}'
- AND u.USERCODE = '{currentUserCode}'
- AND u.accountID = {sUser.AccountID}
- ";
- DataTable dt = conn.GetSqlResultToDt(sqlStr);
- if (dt.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoFunRight;
- sre.Message = "工号" + currentUserCode + "无该操作权限!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- /// <summary>
- /// 获取装具的使用状态
- /// </summary>
- /// <param name="entruckingCode"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetTruckStatus(string entruckingCode, 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
- TPE.STATUS
- FROM TP_PM_ENTRUCKING TPE
- WHERE TPE.VALUEFLAG = '1'
- AND TPE.ENTRUCKINGCODE = '{entruckingCode}'
- ";
- DataTable dt = conn.GetSqlResultToDt(sqlStr);
- sre.Data.Tables.Add(dt);
- if (dt.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>
- /// 验证产品条码有效性,及产品与装具的绑定状态
- /// </summary>
- /// <param name="barCode"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity CheckTruckBarCode(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 1 from TP_PM_GroutingDailyDetail where barcode='{barCode}' and valueflag=1";
- DataTable dt = conn.GetSqlResultToDt(sqlStr);
- if (dt.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "无效条码!";
- }
- else
- {
- //产品与装具的绑定状态
- sqlStr = $@"
- SELECT
- TPE.EntruckingCode,TPED.DOFUNCTION
- FROM
- TP_PM_ENTRUCKING TPE
- INNER JOIN TP_PM_EntruckingDetail TPED ON TPE.EntruckingCode = TPED.EntruckingCode
- AND TPE.Batch = TPED.Batch
- WHERE
- TPE.Status = 1 AND
- TPED.BARCODE = '{barCode}'
- ORDER BY TPED.CREATETIME DESC";
- dt = conn.GetSqlResultToDt(sqlStr);
- if (dt.Rows.Count > 0 && (dt.Rows[0]["DOFUNCTION"].Equals("1") || dt.Rows[0]["DOFUNCTION"].Equals("3")))
- {
- sre.Status = Constant.ServiceResultStatus.Other;
- sre.Message = "产品" + barCode + "已在装具" + dt.Rows[0]["EntruckingCode"] + "上"; ;
- }
- else
- {
- sqlStr = $@"
- SELECT
- GDD.BARCODE,
- G.GOODSCODE,
- DECODE(P.PROCEDURENAME,NULL,'成型',P.PROCEDURENAME) PROCEDURENAME,
- DECODE(U.USERCODE,NULL,GDD.USERCODE,U.USERCODE) USERCODE
- FROM
- TP_PM_GROUTINGDAILYDETAIL GDD
- LEFT JOIN TP_PM_INPRODUCTION IP ON IP.BARCODE = GDD.BARCODE
- LEFT JOIN TP_PC_PROCEDURE P ON P.PROCEDUREID = IP.PROCEDUREID
- LEFT JOIN TP_MST_USER U ON U.USERID = IP.USERID
- LEFT JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- WHERE
- GDD.BARCODE = '{barCode}'";
- dt = conn.GetSqlResultToDt(sqlStr);
- dt.TableName = "goodsinfo";
- sre.Data.Tables.Add(dt);
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- }
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- /// <summary>
- /// 绑定装具
- /// </summary>
- /// <param name="barcodes"></param>
- /// <param name="entruckingCode"></param>
- /// <param name="currentUserCode"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity AddTruckBarCodes(string barCodes, string entruckingCode, string currentUserCode, 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 execute = 0;
- try
- {
- conn.Connect();
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- //获取最大批次
- sqlStr = $@"SELECT
- TPE.BATCH,TPE.STATUS
- FROM TP_PM_ENTRUCKING TPE
- WHERE TPE.VALUEFLAG = '1'
- AND TPE.ENTRUCKINGCODE = '{entruckingCode}'";
- DataTable dt = conn.GetSqlResultToDt(sqlStr);
- if (dt.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "无效装具条码!";
- }
- else if (dt.Rows[0]["STATUS"].ToString().Equals("0"))
- {
- int batch = Convert.ToInt32(dt.Rows[0]["BATCH"]) + 1;
- string[] barcodeStr = barCodes.Split(',');
- for (int i = 0; i < barcodeStr.Length; i++)
- {
- //获取产品条码当前工序
- sqlStr = $@"
- select PROCEDUREID from TP_PM_INPRODUCTION where barcode = '{barcodeStr[i]}'
- ";
- string procedureid = conn.GetSqlResultToStr(sqlStr);
- //插入装具明细
- sqlStr = $@"
- INSERT INTO TP_PM_EntruckingDetail (
- ENTRUCKINGCODE,
- BARCODE,
- BATCH,
- DOFUNCTION,
- PROCEDUREID,
- REMARKS,
- ACCOUNTID,
- USERID,
- USERCODE,
- VALUEFLAG,
- CREATEUSERID,
- UPDATEUSERID )
- SELECT
- '{entruckingCode}',
- '{barcodeStr[i]}',
- '{batch}',
- 1,
- '{procedureid}',
- '',
- '{sUser.AccountID}',
- USERID,
- '{currentUserCode}',
- 1,
- '{sUser.UserID}',
- '{sUser.UserID}'
- FROM TP_MST_USER WHERE USERCODE = '{currentUserCode}'
- ";
- execute = conn.ExecuteNonQuery(sqlStr);
- }
- //修改装具状态
- if (execute > 0)
- {
- sqlStr = $@"UPDATE TP_PM_ENTRUCKING SET STATUS = 1,BATCH = '{batch}' WHERE ENTRUCKINGCODE = '{entruckingCode}' ";
- execute = conn.ExecuteNonQuery(sqlStr);
- if (execute > 0)
- {
- conn.Commit();
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作完成!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoModifyData;
- sre.Message = "操作失败,没有更新任何数据!";
- }
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoModifyData;
- sre.Message = "操作失败,没有更新任何数据!";
- }
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "装具不可用!";
- }
- }
- }
- catch (Exception ex)
- {
- conn.Rollback();
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- /// <summary>
- /// 获取装具上的产品信息
- /// </summary>
- /// <param name="entruckingCode"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetTruckBarCodes(string entruckingCode, 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
- TPE.STATUS,TPE.BATCH
- FROM TP_PM_ENTRUCKING TPE
- WHERE TPE.VALUEFLAG = '1'
- AND TPE.ENTRUCKINGCODE = '{entruckingCode}'
- ";
- DataTable dt = conn.GetSqlResultToDt(sqlStr);
- sre.Data.Tables.Add(dt);
- if (dt.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "无效装具条码!";
- }
- else if (dt.Rows[0]["STATUS"].Equals("1"))
- {
- sqlStr = $@"
- SELECT
- TT.ENTRUCKINGCODE,
- TT.BARCODE,
- TT.GOODSCODE,
- TT.USERCODE,
- TT.PROCEDURENAME,
- TT.PROCEDUREID
- FROM
- (
- SELECT
- ROW_NUMBER ( ) OVER ( PARTITION BY TD.BARCODE ORDER BY TD.CREATETIME DESC ) RN,
- TD.ENTRUCKINGCODE,
- TD.BARCODE,
- G.GOODSCODE,
- DECODE(U.USERCODE,NULL,GDD.USERCODE,U.USERCODE) USERCODE,
- DECODE(P.PROCEDURENAME,NULL,'成型',P.PROCEDURENAME) PROCEDURENAME,P.PROCEDUREID,
- TD.DOFUNCTION
- FROM
- TP_PM_ENTRUCKINGDETAIL TD
- INNER JOIN TP_PM_ENTRUCKING T ON T.ENTRUCKINGCODE = TD.ENTRUCKINGCODE
- AND T.BATCH = TD.BATCH
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.BARCODE = TD.BARCODE
- LEFT JOIN TP_PM_INPRODUCTION IP ON IP.BARCODE = TD.BARCODE
- LEFT JOIN TP_PC_PROCEDURE P ON P.PROCEDUREID = IP.PROCEDUREID
- LEFT JOIN TP_MST_USER U ON U.USERID = IP.USERID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- WHERE
- TD.ENTRUCKINGCODE = '{entruckingCode}'
- AND T.STATUS = '1'
- ) TT
- WHERE
- TT.RN = 1
- AND ( TT.DOFUNCTION = '1' OR TT.DOFUNCTION = '3' )
- ";
- dt = conn.GetSqlResultToDt(sqlStr);
- sre.Data.Tables.Add(dt);
- if (dt.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.Other;
- sre.Message = "装具上无产品!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- }
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- /// <summary>
- /// 获取装具上的产品信息
- /// </summary>
- /// <param name="entruckingCode"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity GetTruckBarCodeses(string entruckingCode, SUserInfo sUser, string addFlag)
- {
- 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
- TPE.STATUS,TPE.BATCH
- FROM TP_PM_ENTRUCKING TPE
- WHERE TPE.VALUEFLAG = '1'
- AND TPE.ENTRUCKINGCODE = '{entruckingCode}'
- ";
- DataTable dt = conn.GetSqlResultToDt(sqlStr);
- sre.Data.Tables.Add(dt);
- if (dt.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "无效装具条码!";
- }
- else if (dt.Rows[0]["STATUS"].Equals("1"))
- {
- sqlStr = $@"
- SELECT
- TT.ENTRUCKINGCODE,
- TT.BARCODE,
- TT.GOODSCODE,
- TT.USERCODE,
- TT.PROCEDURENAME,
- TT.PROCEDUREID
- FROM
- (
- SELECT
- ROW_NUMBER ( ) OVER ( PARTITION BY TD.BARCODE ORDER BY TD.CREATETIME DESC ) RN,
- TD.ENTRUCKINGCODE,
- TD.BARCODE,
- G.GOODSCODE,
- DECODE(U.USERCODE,NULL,GDD.USERCODE,U.USERCODE) USERCODE,
- DECODE(P.PROCEDURENAME,NULL,'成型',P.PROCEDURENAME) PROCEDURENAME,P.PROCEDUREID,
- TD.DOFUNCTION
- FROM
- TP_PM_ENTRUCKINGDETAIL TD
- INNER JOIN TP_PM_ENTRUCKING T ON T.ENTRUCKINGCODE = TD.ENTRUCKINGCODE
- AND T.BATCH = TD.BATCH
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.BARCODE = TD.BARCODE
- LEFT JOIN TP_PM_INPRODUCTION IP ON IP.BARCODE = TD.BARCODE
- LEFT JOIN TP_PC_PROCEDURE P ON P.PROCEDUREID = IP.PROCEDUREID
- LEFT JOIN TP_MST_USER U ON U.USERID = IP.USERID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- WHERE
- TD.ENTRUCKINGCODE = '{entruckingCode}'
- AND T.STATUS = '1'
- ) TT
- WHERE
- TT.RN = 1
- AND ( TT.DOFUNCTION = '1' OR TT.DOFUNCTION = '3' )
- ";
- dt = conn.GetSqlResultToDt(sqlStr);
- sre.Data.Tables.Add(dt);
- if (dt.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.Other;
- sre.Message = "装具上无产品!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- }
- else
- {
- if (addFlag == "1")
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.Other;
- sre.Message = "装具未使用";
- }
- }
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- /// <summary>
- /// 解绑
- /// </summary>
- /// <param name="entruckingCode"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity UnbindTruckBarCodes(string entruckingCode, string currentUserCode, 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
- TPE.STATUS
- FROM TP_PM_ENTRUCKING TPE
- WHERE TPE.VALUEFLAG = '1'
- AND TPE.ENTRUCKINGCODE = '{entruckingCode}'
- ";
- DataTable dt = conn.GetSqlResultToDt(sqlStr);
- sre.Data.Tables.Add(dt);
- if (dt.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "无效装具条码!";
- }
- else if (dt.Rows[0]["STATUS"].Equals("1"))
- {
- //插入装具明细
- sqlStr = $@"
- INSERT INTO TP_PM_EntruckingDetail (
- ENTRUCKINGCODE,
- BARCODE,
- BATCH,
- DOFUNCTION,
- PROCEDUREID,
- REMARKS,
- ACCOUNTID,
- USERID,
- USERCODE,
- VALUEFLAG,
- CREATEUSERID,
- UPDATEUSERID )
- SELECT
- '{entruckingCode}',
- TD.BARCODE,
- TD.BATCH,
- 2,
- IP.PROCEDUREID,
- '',
- {sUser.AccountID},
- CU.USERID,
- '{currentUserCode}',
- '1',
- {sUser.UserID},
- {sUser.UserID}
- FROM
- TP_PM_ENTRUCKINGDETAIL TD
- INNER JOIN TP_PM_ENTRUCKING T ON T.ENTRUCKINGCODE = TD.ENTRUCKINGCODE AND T.BATCH = TD.BATCH
- LEFT JOIN TP_PM_INPRODUCTION IP ON IP.BARCODE = TD.BARCODE
- INNER JOIN TP_MST_USER CU ON CU.USERCODE = '{currentUserCode}' AND CU.VALUEFLAG = '1'
- WHERE
- TD.ENTRUCKINGCODE = '{entruckingCode}'
- AND T.STATUS = '1'
- AND (TD.DOFUNCTION = '1' OR TD.DOFUNCTION = '3')
- ";
- int execute = conn.ExecuteNonQuery(sqlStr);
- //修改装具状态
- sqlStr = $@"UPDATE TP_PM_ENTRUCKING SET STATUS = '0' WHERE ENTRUCKINGCODE = '{entruckingCode}' ";
- execute = conn.ExecuteNonQuery(sqlStr);
- if (execute > 0)
- {
- conn.Commit();
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作完成!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoModifyData;
- 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>
- /// <param name="entruckingCode"></param>
- /// <param name="currentUserCode"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity AddTruckBarCode(string barCode, string entruckingCode, string currentUserCode, 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 addFlag = "1";
- string oldprocedureid = string.Empty;
- int execute = 0;
- try
- {
- conn.Connect();
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- ServiceResultEntity srOld = GetTruckBarCodeses(entruckingCode, sUser, addFlag);
- if (srOld.Status == Constant.ServiceResultStatus.Success)
- {
- int batch = Convert.ToInt32(srOld.Data.Tables[0].Rows[0]["BATCH"]);
- //获取产品条码当前工序
- sqlStr = $@"
- select PROCEDUREID from TP_PM_INPRODUCTION where barcode = '{barCode}'
- ";
- string procedureid = conn.GetSqlResultToStr(sqlStr);
- #region 载具增补修改载具总表的使用状态
- // 2023.04.18 fenglinyong ADD
- sqlStr = $@"UPDATE TP_PM_ENTRUCKING SET STATUS = 1 WHERE ENTRUCKINGCODE ='{entruckingCode}'";
- execute = conn.ExecuteNonQuery(sqlStr);
- if (execute > 0)
- {
- if (srOld.Data != null && srOld.Data.Tables.Count > 1 && srOld.Data.Tables[1] != null)
- {
- //必须验证产品在同一工序,才允许绑定
- oldprocedureid = srOld.Data.Tables[1].Rows[0]["PROCEDUREID"] + "";
- }
- //插入装具明细
- sqlStr = $@"
- INSERT INTO TP_PM_EntruckingDetail (
- ENTRUCKINGCODE,
- BARCODE,
- BATCH,
- DOFUNCTION,
- PROCEDUREID,
- REMARKS,
- ACCOUNTID,
- USERID,
- USERCODE,
- VALUEFLAG,
- CREATEUSERID,
- UPDATEUSERID )
- SELECT
- '{entruckingCode}',
- '{barCode}',
- '{batch}',
- 3,
- '{procedureid}',
- '',
- '{sUser.AccountID}',
- USERID,
- '{currentUserCode}',
- 1,
- '{sUser.UserID}',
- '{sUser.UserID}'
- FROM TP_MST_USER WHERE USERCODE = '{currentUserCode}'
- ";
- execute = conn.ExecuteNonQuery(sqlStr);
- if (execute > 0)
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作完成!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoModifyData;
- sre.Message = "操作失败,没有更新任何数据!";
- }
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoModifyData;
- sre.Message = "操作失败,没有更新任何数据!";
- }
- #endregion
- }
- else
- {
- sre.Status = srOld.Status;
- sre.Message = srOld.Message;
- }
- conn.Commit();
- }
- }
- catch (Exception ex)
- {
- conn.Rollback();
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- /// <summary>
- /// 拆减产品
- /// </summary>
- /// <param name="entruckingCode"></param>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity UnbindTruckBarCode(string barCode, string entruckingCode, string currentUserCode, 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
- TPE.STATUS
- FROM TP_PM_ENTRUCKING TPE
- WHERE TPE.VALUEFLAG = '1'
- AND TPE.ENTRUCKINGCODE = '{entruckingCode}'
- ";
- DataTable dt = conn.GetSqlResultToDt(sqlStr);
- if (dt.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "无效装具条码!";
- }
- else if (dt.Rows[0]["STATUS"].Equals("1"))
- {
- //插入装具明细
- sqlStr = $@"
- INSERT INTO TP_PM_EntruckingDetail (
- ENTRUCKINGCODE,
- BARCODE,
- BATCH,
- DOFUNCTION,
- PROCEDUREID,
- REMARKS,
- ACCOUNTID,
- USERID,
- USERCODE,
- VALUEFLAG,
- CREATEUSERID,
- UPDATEUSERID )
- SELECT
- '{entruckingCode}',
- TD.BARCODE,
- TD.BATCH,
- 4,
- IP.PROCEDUREID,
- '',
- {sUser.AccountID},
- CU.USERID,
- '{currentUserCode}',
- '1',
- {sUser.UserID},
- {sUser.UserID}
- FROM
- TP_PM_ENTRUCKINGDETAIL TD
- INNER JOIN TP_PM_ENTRUCKING T ON T.ENTRUCKINGCODE = TD.ENTRUCKINGCODE AND T.BATCH = TD.BATCH
- LEFT JOIN TP_PM_INPRODUCTION IP ON IP.BARCODE = TD.BARCODE
- INNER JOIN TP_MST_USER CU ON CU.USERCODE = '{currentUserCode}' AND CU.VALUEFLAG = '1'
- WHERE
- TD.ENTRUCKINGCODE = '{entruckingCode}'
- AND TD.BARCODE = '{barCode}'
- AND T.STATUS = '1'
- ";
- int execute = conn.ExecuteNonQuery(sqlStr);
- //查看装具是否有产品,若已无产品,装具自动解绑
- sqlStr = $@"
- SELECT
- TT.ENTRUCKINGCODE,
- TT.BARCODE,
- TT.GOODSCODE,
- TT.USERCODE,
- TT.PROCEDURENAME
- FROM
- (
- SELECT
- ROW_NUMBER ( ) OVER ( PARTITION BY TD.BARCODE ORDER BY TD.CREATETIME DESC ) RN,
- TD.ENTRUCKINGCODE,
- TD.BARCODE,
- G.GOODSCODE,
- DECODE(U.USERCODE,NULL,GDD.USERCODE,U.USERCODE) USERCODE,
- DECODE(P.PROCEDURENAME,NULL,'成型',P.PROCEDURENAME) PROCEDURENAME,
- TD.DOFUNCTION
- FROM
- TP_PM_ENTRUCKINGDETAIL TD
- INNER JOIN TP_PM_ENTRUCKING T ON T.ENTRUCKINGCODE = TD.ENTRUCKINGCODE
- AND T.BATCH = TD.BATCH
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.BARCODE = TD.BARCODE
- LEFT JOIN TP_PM_INPRODUCTION IP ON IP.BARCODE = TD.BARCODE
- LEFT JOIN TP_PC_PROCEDURE P ON P.PROCEDUREID = IP.PROCEDUREID
- LEFT JOIN TP_MST_USER U ON U.USERID = IP.USERID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- WHERE
- TD.ENTRUCKINGCODE = '{entruckingCode}'
- AND T.STATUS = '1'
- ) TT
- WHERE
- TT.RN = 1
- AND ( TT.DOFUNCTION = '1' OR TT.DOFUNCTION = '3' )
- ";
- dt = conn.GetSqlResultToDt(sqlStr);
- if (dt.Rows.Count == 0)
- {
- //装具自动解绑
- sqlStr = $@"UPDATE TP_PM_ENTRUCKING SET STATUS = '0' WHERE ENTRUCKINGCODE = '{entruckingCode}' ";
- execute = conn.ExecuteNonQuery(sqlStr);
- }
- if (execute > 0)
- {
- conn.Commit();
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- 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>
- /// <param name="sUser"></param>
- /// <returns></returns>
- public static ServiceResultEntity CheckTruckBarCodeForUnbind(string barCode, string entruckingCode, 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 1 from TP_PM_GroutingDailyDetail where barcode = '{barCode}' and valueflag=1";
- DataTable dt = conn.GetSqlResultToDt(sqlStr);
- if (dt.Rows.Count == 0)
- {
- sre.Status = Constant.ServiceResultStatus.NoSearchResults;
- sre.Message = "无效条码!";
- }
- else
- {
- //产品与装具的绑定状态
- sqlStr = $@"
- SELECT
- TPE.EntruckingCode,TPED.DOFUNCTION
- FROM TP_PM_ENTRUCKING TPE
- INNER JOIN TP_PM_EntruckingDetail TPED
- ON TPE.EntruckingCode = TPED.EntruckingCode
- AND TPE.Batch = TPED.Batch
- WHERE TPE.Status = 1
- AND TPED.BARCODE = '{barCode}'
- AND TPED.ENTRUCKINGCODE = '{entruckingCode}'
- ORDER BY TPED.CREATETIME DESC";
- dt = conn.GetSqlResultToDt(sqlStr);
- if (dt.Rows.Count > 0 && (dt.Rows[0]["DOFUNCTION"].Equals("1") || dt.Rows[0]["DOFUNCTION"].Equals("3")))
- {
- sqlStr = $@"
- SELECT
- GDD.BARCODE,
- G.GOODSCODE,
- DECODE(U.USERCODE,NULL,GDD.USERCODE,U.USERCODE) USERCODE,
- DECODE(P.PROCEDURENAME,NULL,'成型',P.PROCEDURENAME) PROCEDURENAME
- FROM
- TP_PM_GROUTINGDAILYDETAIL GDD
- LEFT JOIN TP_PM_INPRODUCTION IP ON IP.BARCODE = GDD.BARCODE
- LEFT JOIN TP_PC_PROCEDURE P ON P.PROCEDUREID = IP.PROCEDUREID
- LEFT JOIN TP_MST_USER U ON U.USERID = IP.USERID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- WHERE
- GDD.BARCODE = '{barCode}'";
- dt = conn.GetSqlResultToDt(sqlStr);
- dt.TableName = "goodsinfo";
- sre.Data.Tables.Add(dt);
- sre.Status = Constant.ServiceResultStatus.Success;
- sre.Message = "操作成功!";
- }
- else
- {
- sre.Status = Constant.ServiceResultStatus.Other;
- sre.Message = "产品" + barCode + "不在装具" + entruckingCode + "上";
- }
- }
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Disconnect();
- }
- //返回数据
- return sre;
- }
- #endregion
- }
- }
|