123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014 |
- using NX_CommonClassLibrary;
- using NX_DbClassLibrary;
- using NX_JsonClassLibrary;
- using NX_LogClassLibrary;
- using NX_ModelClassLibrary.BaseModel;
- using NX_ModelClassLibrary.Common;
- using NX_ModelClassLibrary.CrnModel;
- using NX_ModelClassLibrary.CustomEnum;
- using NX_ModelClassLibrary.TranModel;
- using NX_ModelClassLibrary.WcsDispatch;
- using NX_ModelClassLibrary.WmsTask;
- using NX_WcsDal.CommonBusiness;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace NX_WcsDal.WcsDispatch
- {
- public class TaskRequest_Dal
- {
- #region 单例模式
- /// <summary>
- /// 单例模式对象
- /// </summary>
- private static TaskRequest_Dal _instance = null;
- private static readonly object lockObj = new object();
- /// <summary>
- /// 单例模式方法
- /// </summary>
- public static TaskRequest_Dal Instance
- {
- get
- {
- if (_instance == null)
- {
- lock (lockObj)
- {
- if (_instance == null)
- {
- _instance = new TaskRequest_Dal();
- }
- }
- }
- return _instance;
- }
- }
- #endregion
- public WmsTskTaskMd GetUnfinishWmsTaskOfPalletCode(string palletCode)
- {
- try
- {
- string sqlGetUnfinishWmsTask = $@"
- SELECT
- TOP 1
- A.TASK_ID,
- A.NEWID,
- A.WAREHOUSE_CODE,
- A.WAREHOUSE_NAME,
- A.TASK_NO,
- A.TRAY_CODE,
- A.PALLET_CODE,
- A.TRAY_LOADED_TYPE,
- A.SLOC_CODE,
- A.ELOC_CODE,
- A.CLOC_CODE,
- A.TASK_TYPE,
- A.TASK_MSG,
- A.ERR_FLAG,
- A.TASK_PRIORITY,
- A.TASK_STATUS,
- A.SBIN_CODE,
- A.EBIN_CODE,
- A.CMD_NO,
- A.ROUTE_CODE,
- A.CREATE_BY,
- B.USER_CODE CreateCode,
- B.USER_NAME CreateName,
- A.CREATE_TIME,
- A.UPDATE_BY,
- C.USER_CODE UpdateCode,
- C.USER_NAME UpdateName,
- A.UPDATE_TIME,
- A.DATA_VERSION,
- A.REMARKS1,
- A.REMARKS2,
- A.REMARKS3,
- A.REMARKS4,
- A.REMARKS5
- FROM
- WMS_TSK_TASK A
- LEFT JOIN SYS_USER B ON A.CREATE_BY = B.USER_ID
- LEFT JOIN SYS_USER C ON A.UPDATE_BY = C.USER_ID
- WHERE
- A.PALLET_CODE = '{palletCode}'
- AND A.TASK_STATUS < '{(int)WmsTaskStatusEnum.任务完成}'
- ";
- DataTable dtGetUnfinishWmsTask = LeadDbHelperSQLServer.Query(sqlGetUnfinishWmsTask).Tables[0];
- if (dtGetUnfinishWmsTask != null && dtGetUnfinishWmsTask.Rows.Count > 0)
- {
- DataRow item = dtGetUnfinishWmsTask.Rows[0];
- WmsTskTaskMd retMd = ColumnToClassPropertyHelper.ColumnToClassProperty<WmsTskTaskMd>(dtGetUnfinishWmsTask.Columns, item);
- return retMd;
- }
- else
- {
- return null;
- }
- }
- catch (Exception ex)
- {
- LogHelper.WriteLog($"根据托盘号获取WMS未完成的大任务数据发生异常!【{ex.Message}】", LogTypeEnum.Err);
- return null;
- }
- }
- public BasWcsDevMd GetCrnDevMsg(string shelfCode)
- {
- try
- {
- string sql = $@"
- SELECT
- *
- FROM
- WCS_BAS_DEV
- WHERE
- DEV_CODE = (
- SELECT
- DEV_CODE
- FROM
- BAS_SHELF
- WHERE
- SHELF_CODE = '{shelfCode}'
- )
- ";
- DataTable dt = LeadDbHelperSQLServer.Query(sql).Tables[0];
- if (dt != null && dt.Rows.Count > 0)
- {
- DataRow item = dt.Rows[0];
- BasWcsDevMd retMd = ColumnToClassPropertyHelper.ColumnToClassProperty<BasWcsDevMd>(dt.Columns, item);
- return retMd;
- }
- else
- {
- return null;
- }
- }
- catch (Exception ex)
- {
- LogHelper.WriteLog($"获取堆垛机设备信息发生异常!【{ex.Message}】", LogTypeEnum.Err);
- return null;
- }
- }
- public WcsCrnCmdMd GetUnfinishWcsCrnCmdOfPalletCode(string palletCode)
- {
- try
- {
- string sqlQueryCrnUnFinishedCmd = $@"
- SELECT
- TOP 1
- A.CRN_CMD_ID,
- A.NEWID,
- A.TASK_NO,
- A.CMD_NO,
- A.TRAY_CODE,
- A.PALLET_CODE,
- A.TRAY_STATUS,
- A.CRN_DEV_NO,
- A.CRN_FORK_DEV_NO,
- A.SBIN_NO,
- A.SBIN_ROW,
- A.SBIN_COL,
- A.SBIN_LAYER,
- A.S_EXTENSION_GROUP,
- A.S_EXTENSION_IDX,
- A.EBIN_NO,
- A.EBIN_ROW,
- A.EBIN_COL,
- A.EBIN_LAYER,
- A.E_EXTENSION_GROUP,
- A.E_EXTENSION_IDX,
- A.CMD_TYPE,
- A.ACTIVE_TYPE,
- A.CMD_PRIORITY,
- A.CMD_STATUS,
- A.CMD_LOG,
- A.ERR_FLAG,
- A.ERR_LOG,
- A.CREATE_BY,
- B.USER_CODE CreateCode,
- B.USER_NAME CreateName,
- A.CREATE_TIME,
- A.EXECUTE_TIME,
- A.FINISH_TIME,
- A.UPDATE_BY,
- C.USER_CODE UpdateCode,
- C.USER_NAME UpdateName,
- A.UPDATE_TIME,
- A.DATA_VERSION,
- A.REMARKS1,
- A.REMARKS2,
- A.REMARKS3,
- A.REMARKS4,
- A.REMARKS5
- FROM
- WCS_CRN_CMD A
- LEFT JOIN SYS_USER B ON A.CREATE_BY = B.USER_ID
- LEFT JOIN SYS_USER C ON A.UPDATE_BY = C.USER_ID
- WHERE A.PALLET_CODE = '{palletCode}' AND A.CMD_STATUS < '{(int)CrnCmdStatusEnum.完成}'
- ";
- DataTable dt = LeadDbHelperSQLServer.Query(sqlQueryCrnUnFinishedCmd).Tables[0];
- if (dt != null && dt.Rows.Count > 0)
- {
- DataRow item = dt.Rows[0];
- WcsCrnCmdMd retMd = ColumnToClassPropertyHelper.ColumnToClassProperty<WcsCrnCmdMd>(dt.Columns, item);
- return retMd;
- }
- else
- {
- return null;
- }
- }
- catch (Exception ex)
- {
- LogHelper.WriteLog($"根据托盘号获取未完成的堆垛机指令数据发生异常!【{ex.Message}】", LogTypeEnum.Err);
- return null;
- }
- }
- public WcsTranCmdMd GetUnfinishWcsTranCmdOfPalletCode(string palletCode)
- {
- try
- {
- string sqlQueryCrnUnFinishedCmd = $@"
- SELECT
- TOP 1
- A.TRAN_CMD_ID,
- A.NEWID,
- A.TASK_NO,
- A.CMD_NO,
- A.TRAY_CODE,
- A.PALLET_CODE,
- A.TRAY_STATUS,
- A.TRAN_DEV_NO,
- A.SLOC_NO,
- A.SPLC_NO,
- A.ELOC_NO,
- A.EPLC_NO,
- A.CMD_TYPE,
- A.ACTIVE_TYPE,
- A.CMD_PRIORITY,
- A.CMD_STATUS,
- A.CMD_LOG,
- A.ERR_FLAG,
- A.ERR_LOG,
- A.CREATE_BY,
- B.USER_CODE CreateCode,
- B.USER_NAME CreateName,
- A.CREATE_TIME,
- A.EXECUTE_TIME,
- A.FINISH_TIME,
- A.UPDATE_BY,
- C.USER_CODE UpdateCode,
- C.USER_NAME UpdateName,
- A.UPDATE_TIME,
- A.DATA_VERSION,
- A.REMARKS1,
- A.REMARKS2,
- A.REMARKS3,
- A.REMARKS4,
- A.REMARKS5
- FROM
- WCS_TRAN_CMD A
- LEFT JOIN SYS_USER B ON A.CREATE_BY = B.USER_ID
- LEFT JOIN SYS_USER C ON A.UPDATE_BY = C.USER_ID
- WHERE A.PALLET_CODE = '{palletCode}' AND A.CMD_STATUS < '{(int)TranCmdStatusEnum.完成}'
- ";
- DataTable dt = LeadDbHelperSQLServer.Query(sqlQueryCrnUnFinishedCmd).Tables[0];
- if (dt != null && dt.Rows.Count > 0)
- {
- DataRow item = dt.Rows[0];
- WcsTranCmdMd tmpMd = ColumnToClassPropertyHelper.ColumnToClassProperty<WcsTranCmdMd>(dt.Columns, item);
- return tmpMd;
- }
- else
- {
- return null;
- }
- }
- catch (Exception ex)
- {
- LogHelper.WriteLog($"根据托盘号获取未完成的堆垛机指令数据发生异常!【{ex.Message}】", LogTypeEnum.Err);
- return null;
- }
- }
- public bool VerifyTrayMsgAndBalanceMsg(string palletCode,out string trayCode)
- {
- try
- {
- string sqlVerifyTrayAndBalanceMsg = $@"
- SELECT
- A.TRAY_CODE
- FROM
- WMS_STK_BALANCE A
- LEFT JOIN WMS_STK_TRAY B ON A.TRAY_ID = B.TRAY_ID
- WHERE
- A.PALLET_CODE = '{palletCode}'
- AND A.REGION_CODE = 'SHDJ_Region'
- AND A.BALANCE_STATUS = '55'
- AND B.TRAY_STATUS = '55'
- ";
- DataTable dt = LeadDbHelperSQLServer.Query(sqlVerifyTrayAndBalanceMsg).Tables[0];
- if (dt != null && dt.Rows.Count > 0)
- {
- trayCode = dt.Rows[0][0].ToString();
- return true;
- }
- else
- {
- trayCode = null;
- return false;
- }
- }
- catch (Exception ex)
- {
- LogHelper.WriteLog($"校验托盘号库存和组盘信息发生异常!【{ex.Message}】", LogTypeEnum.Err);
- trayCode = null;
- return false;
- }
- }
- public BasRegionMd GetRegionMd(string regionCode)
- {
- try
- {
- string sql = $@"select * from BAS_REGION where REGION_CODE = '{regionCode}'";
- DataTable dt = LeadDbHelperSQLServer.Query(sql).Tables[0];
- if (dt != null && dt.Rows.Count > 0)
- {
- DataRow item = dt.Rows[0];
- BasRegionMd retMd = ColumnToClassPropertyHelper.ColumnToClassProperty<BasRegionMd>(dt.Columns, item);
- return retMd;
- }
- else
- {
- return null;
- }
- }
- catch (Exception ex)
- {
- LogHelper.WriteLog($"获取库区信息发生异常!{ex.Message}", LogTypeEnum.Err);
- return null;
- }
- }
- public BasNextLocRouteMd GetRouteMsg(BasWcsLocMd sLocNo, BasWcsLocMd eLocNo)
- {
- try
- {
- string sqlGetRoute = $@"SELECT * FROM dbo.FN_GetAllNextRoute('{sLocNo.LocCode}','{eLocNo.LocCode}')";
- DataTable dt = LeadDbHelperSQLServer.Query(sqlGetRoute).Tables[0];
- if (dt != null && dt.Rows.Count > 0)
- {
- DataRow item = dt.Rows[0];
- BasNextLocRouteMd nextLocRouteMd = ColumnToClassPropertyHelper.ColumnToClassProperty<BasNextLocRouteMd>(dt.Columns, item);
- return nextLocRouteMd;
- }
- else
- {
- return null;
- }
- }
- catch (Exception ex)
- {
- LogHelper.WriteLog($"获取起点站台:【{sLocNo.LocCode}】到终点站台:【{eLocNo.LocCode}】的路径信息发生异常!【{ex.Message}】", LogTypeEnum.Err);
- return null;
- }
- }
- public int InsertWmsTaskData(TaskRequestMd taskRequestMd, BasWcsLocMd eLocNo, string trayCode, BasNextLocRouteMd basNextLocRouteMd, BasRegionMd regionMd)
- {
- try
- {
- string taskNo = BasCommon_Dal.Instance.GetSysSequence("Task_No");
- string sqlInsertWmsTask = $@"
- INSERT INTO [dbo].[WMS_TSK_TASK] (
- [WAREHOUSE_CODE],
- [WAREHOUSE_NAME],
- [REGION_CODE],
- [TASK_NO],
- [TRAY_CODE],
- [PALLET_CODE],
- [TRAY_LOADED_TYPE],
- [SLOC_CODE],
- [ELOC_CODE],
- [CLOC_CODE],
- [TASK_TYPE],
- [TASK_MSG],
- [ERR_FLAG],
- [TASK_PRIORITY],
- [TASK_STATUS],
- [SBIN_CODE],
- [EBIN_CODE],
- [CMD_NO],
- [ROUTE_CODE],
- [CREATE_BY],
- [CREATE_TIME],
- [UPDATE_BY],
- [UPDATE_TIME],
- [DATA_VERSION],
- [REMARKS1],
- [REMARKS2],
- [REMARKS3],
- [REMARKS4],
- [REMARKS5]
- )
- VALUES
- (
- '{regionMd.WarehouseCode}',
- '{regionMd.WarehouseName}',
- '{regionMd.RegionCode}',
- '{taskNo}',
- '{trayCode}',
- '{taskRequestMd.PalletCode}',
- '{(int)TrayStatusEnum.满盘}',
- '{taskRequestMd.CurrentLocNo}',
- '{eLocNo.LocCode}',
- '{taskRequestMd.CurrentLocNo}',
- '{(int)WmsTaskTypeEnum.正常收货入库}',
- NULL,
- '{(int)WcsCmdErrFlagEnum.正常}',
- '{100}',
- '{(int)WmsTaskStatusEnum.初始创建}',
- NULL,
- NULL,
- NULL,
- '{basNextLocRouteMd.SectionNo}',
- 1,
- getdate(),
- 1,
- getdate(),
- 0,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- );
- ";
- return LeadDbHelperSQLServer.ExecuteSql(sqlInsertWmsTask);
- }
- catch (Exception ex)
- {
- LogHelper.WriteLog($"插入WMS大任务数据发生异常!【{ex.Message}】请求参数:【{JsonHelper.ToJson(taskRequestMd)}】终点站台:【{JsonHelper.ToJson(eLocNo)}】", LogTypeEnum.Err);
- return 0;
- }
- }
- public int GetRuningWmsTaskNum()
- {
- try
- {
- string sqlGetUnfinishWmsTaskNum = $@"
- SELECT
- COUNT (1)
- FROM
- WMS_TSK_TASK
- WHERE
- TASK_STATUS > '{(int)WmsTaskStatusEnum.初始创建}'
- AND TASK_STATUS < '{(int)WmsTaskStatusEnum.任务完成}'
- ";
- object obj = LeadDbHelperSQLServer.GetSingle(sqlGetUnfinishWmsTaskNum);
- if (obj == null)
- {
- return 0;
- }
- else
- {
- return Convert.ToInt32(obj);
- }
- }
- catch (Exception ex)
- {
- LogHelper.WriteLog($"获取正在执行的WMS大任务总数发生异常!【{ex.Message}】", LogTypeEnum.Err);
- return 0;
- }
- }
- public WmsTskTaskMd GetWmsTaskOriginalState(string regionCode)
- {
- try
- {
- string sqlGetUnfinishWmsTask = $@"
- SELECT
- TOP 1
- A.TASK_ID,
- A.NEWID,
- A.WAREHOUSE_CODE,
- A.WAREHOUSE_NAME,
- A.TASK_NO,
- A.TRAY_CODE,
- A.PALLET_CODE,
- A.TRAY_LOADED_TYPE,
- A.SLOC_CODE,
- A.ELOC_CODE,
- A.CLOC_CODE,
- A.TASK_TYPE,
- A.TASK_MSG,
- A.ERR_FLAG,
- A.TASK_PRIORITY,
- A.TASK_STATUS,
- A.SBIN_CODE,
- A.EBIN_CODE,
- A.CMD_NO,
- A.ROUTE_CODE,
- A.CREATE_BY,
- B.USER_CODE CreateCode,
- B.USER_NAME CreateName,
- A.CREATE_TIME,
- A.UPDATE_BY,
- C.USER_CODE UpdateCode,
- C.USER_NAME UpdateName,
- A.UPDATE_TIME,
- A.DATA_VERSION,
- A.REMARKS1,
- A.REMARKS2,
- A.REMARKS3,
- A.REMARKS4,
- A.REMARKS5
- FROM
- WMS_TSK_TASK A
- LEFT JOIN SYS_USER B ON A.CREATE_BY = B.USER_ID
- LEFT JOIN SYS_USER C ON A.UPDATE_BY = C.USER_ID
- WHERE
- 1=1
- AND A.TASK_STATUS = '{(int)WmsTaskStatusEnum.初始创建}'
- AND A.REGION_CODE = '{regionCode}'
- ORDER BY A.TASK_PRIORITY,A.TASK_TYPE,A.CREATE_TIME
- ";
- DataTable dtGetUnfinishWmsTask = LeadDbHelperSQLServer.Query(sqlGetUnfinishWmsTask).Tables[0];
- if (dtGetUnfinishWmsTask != null && dtGetUnfinishWmsTask.Rows.Count > 0)
- {
- DataRow item = dtGetUnfinishWmsTask.Rows[0];
- WmsTskTaskMd retMd = ColumnToClassPropertyHelper.ColumnToClassProperty<WmsTskTaskMd>(dtGetUnfinishWmsTask.Columns, item);
- return retMd;
- }
- else
- {
- return null;
- }
- }
- catch (Exception ex)
- {
- LogHelper.WriteLog($"获取初始创建的WMS大任务数据发生异常!【{ex.Message}】", LogTypeEnum.Err);
- return null;
- }
- }
- public WmsTskTaskMd InsertTranCmdAndUpdateWmsTask(WmsTskTaskMd wmsTskTaskMd, BasWcsLocMd sLocNo, BasWcsLocMd eLocNo, BasNextLocRouteMd locRouteMd)
- {
- try
- {
- string cmdNo = BasCommon_Dal.Instance.GetSysSequence("Cmd_No");
- string sqlInsertTranCmd = $@"
- INSERT INTO [dbo].[WCS_TRAN_CMD] (
- [TASK_NO],
- [CMD_NO],
- [TRAY_CODE],
- [PALLET_CODE],
- [TRAY_STATUS],
- [TRAN_DEV_NO],
- [SLOC_NO],
- [SPLC_NO],
- [ELOC_NO],
- [EPLC_NO],
- [CMD_TYPE],
- [ACTIVE_TYPE],
- [CMD_PRIORITY],
- [CMD_STATUS],
- [CMD_LOG],
- [ERR_FLAG],
- [ERR_LOG],
- [CREATE_BY],
- [CREATE_TIME],
- [UPDATE_BY],
- [UPDATE_TIME],
- [DATA_VERSION],
- [REMARKS1],
- [REMARKS2],
- [REMARKS3],
- [REMARKS4],
- [REMARKS5]
- )
- VALUES
- (
- '{wmsTskTaskMd.TaskNo}',
- '{cmdNo}',
- '{wmsTskTaskMd.TrayCode}',
- '{wmsTskTaskMd.PalletCode}',
- '{(int)wmsTskTaskMd.TrayLoadedType}',
- '{locRouteMd.DevNo}',
- '{sLocNo.LocCode}',
- '{sLocNo.LocCode}',
- '{eLocNo.LocCode}',
- '{eLocNo.LocCode}',
- '{(int)TranCmdTypeEnum.TRANSFER}',
- '{(int)TranActiveTypeEnum.直行}',
- 100,
- '{(int)TranCmdStatusEnum.初始创建}',
- NULL,
- '{(int)WcsCmdErrFlagEnum.正常}',
- NULL,
- '{wmsTskTaskMd.UpdateBy}',
- getdate(),
- {wmsTskTaskMd.UpdateBy},
- getdate(),
- 0,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- );
- ";
- string sqlUpdateWmsTask = $@"
- UPDATE WMS_TSK_TASK
- SET CLOC_CODE = '{locRouteMd.SlocNo}',
- CMD_NO = '{cmdNo}',
- ROUTE_CODE = '{locRouteMd.SectionNo}',
- TASK_STATUS = '{(int)WmsTaskStatusEnum.指令下发}',
- UPDATE_TIME = GETDATE()
- WHERE
- TASK_ID = '{wmsTskTaskMd.TaskId}'
- ";
- List<string> sqlLst = new List<string>
- {
- sqlUpdateWmsTask,
- sqlInsertTranCmd
- };
- int row = LeadDbHelperSQLServer.ExecuteSqlTran(sqlLst);
- if (row > 0)
- {
- wmsTskTaskMd.ClocCode = locRouteMd.SlocNo;
- wmsTskTaskMd.CmdNo = Convert.ToInt32(cmdNo);
- wmsTskTaskMd.RouteCode = locRouteMd.SectionNo;
- wmsTskTaskMd.TaskStatus = WmsTaskStatusEnum.指令下发;
- wmsTskTaskMd.UpdateTime = DateTime.Now;
- return wmsTskTaskMd;
- }
- else
- {
- return null;
- }
- }
- catch (Exception ex)
- {
- LogHelper.WriteLog($"修改WMS大任务状态、新增输送线指令数据发生异常!【{ex.Message}】", LogTypeEnum.Err);
- return null;
- }
- }
- public BasBinMd GetBinMdOfCode(string binCode)
- {
- try
- {
- string sqlGetBinMdOfCodeAndType = $@"
- SELECT
- TOP 1 A.*, B.USER_CODE CreateCode,
- B.USER_NAME CreateName,
- C.USER_CODE UpdateCode,
- C.USER_NAME UpdateName
- FROM
- BAS_BIN A
- LEFT JOIN SYS_USER B ON A.CREATE_BY = B.USER_ID
- LEFT JOIN SYS_USER C ON A.UPDATE_BY = C.USER_ID
- WHERE
- A.USED_FLAG = 1
- AND A.DEL_FLAG = 0
- AND A.BIN_CODE = '{binCode}'
- ";
- DataTable dt = LeadDbHelperSQLServer.Query(sqlGetBinMdOfCodeAndType).Tables[0];
- if (dt != null && dt.Rows.Count > 0)
- {
- DataRow item = dt.Rows[0];
- BasBinMd retMd = ColumnToClassPropertyHelper.ColumnToClassProperty<BasBinMd>(dt.Columns, item);
- return retMd;
- }
- else
- {
- return null;
- }
- }
- catch (Exception ex)
- {
- LogHelper.WriteLog($"获取库位号:【{binCode}】的详细库位信息发生异常!【{ex.Message}】", LogTypeEnum.Err);
- return null;
- }
- }
- public WmsTskTaskMd InsertCrnCmdAndUpdateWmsTask(WmsTskTaskMd wmsTskTaskMd, BasBinMd sBinMd, BasBinMd eBinMd, BasWcsDevMd devMd)
- {
- try
- {
- string cmdNo = BasCommon_Dal.Instance.GetSysSequence("Cmd_No");
- string sqlInsertCrnCmd = $@"
- INSERT INTO [dbo].[WCS_CRN_CMD] (
- [TASK_NO],
- [CMD_NO],
- [TRAY_CODE],
- [PALLET_CODE],
- [TRAY_STATUS],
- [CRN_DEV_NO],
- [CRN_FORK_DEV_NO],
- [SBIN_NO],
- [SBIN_ROW],
- [SBIN_COL],
- [SBIN_LAYER],
- [S_EXTENSION_GROUP],
- [S_EXTENSION_IDX],
- [EBIN_NO],
- [EBIN_ROW],
- [EBIN_COL],
- [EBIN_LAYER],
- [E_EXTENSION_GROUP],
- [E_EXTENSION_IDX],
- [CMD_TYPE],
- [ACTIVE_TYPE],
- [CMD_PRIORITY],
- [CMD_STATUS],
- [CMD_LOG],
- [ERR_FLAG],
- [ERR_LOG],
- [CREATE_BY],
- [CREATE_TIME],
- [UPDATE_BY],
- [UPDATE_TIME],
- [DATA_VERSION],
- [REMARKS1],
- [REMARKS2],
- [REMARKS3],
- [REMARKS4],
- [REMARKS5]
- )
- VALUES
- (
- '{wmsTskTaskMd.TaskNo}',
- '{cmdNo}',
- '{wmsTskTaskMd.TrayCode}',
- '{wmsTskTaskMd.PalletCode}',
- '{(int)wmsTskTaskMd.TrayLoadedType}',
- '{devMd.DevCode}',
- '{devMd.DevCode}',
- '{sBinMd.BinCode}',
- '{sBinMd.BinRow}',
- '{sBinMd.BinColumn}',
- '{sBinMd.BinLayer}',
- '{sBinMd.EXTENSION_GROUP}',
- '{sBinMd.EXTENSION_IDX}',
- '{eBinMd.BinCode}',
- '{eBinMd.BinRow}',
- '{eBinMd.BinColumn}',
- '{eBinMd.BinLayer}',
- '{eBinMd.EXTENSION_GROUP}',
- '{eBinMd.EXTENSION_IDX}',
- '{CrnCmdTypeEnum.MOVE}',
- '{(int)CrnActiveTypeEnum.取放货}',
- 1,
- '{(int)CrnCmdStatusEnum.初始创建}',
- NULL,
- '{(int)WcsCmdErrFlagEnum.正常}',
- NULL,
- '{wmsTskTaskMd.UpdateBy}',
- getdate(),
- '{wmsTskTaskMd.UpdateBy}',
- getdate(),
- 0,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- );
- ";
- string sqlUpdateWmsTask = $@"
- UPDATE WMS_TSK_TASK
- SET CLOC_CODE = '{wmsTskTaskMd.SlocCode}',
- CMD_NO = '{cmdNo}',
- ROUTE_CODE = '',
- TASK_STATUS = '{(int)WmsTaskStatusEnum.指令下发}',
- UPDATE_TIME = GETDATE()
- WHERE
- TASK_ID = '{wmsTskTaskMd.TaskId}'
- ";
- List<string> sqlLst = new List<string>
- {
- sqlUpdateWmsTask,
- sqlInsertCrnCmd
- };
- int row = LeadDbHelperSQLServer.ExecuteSqlTran(sqlLst);
- if (row > 0)
- {
- wmsTskTaskMd.ClocCode = wmsTskTaskMd.SlocCode;
- wmsTskTaskMd.CmdNo = Convert.ToInt32(cmdNo);
- wmsTskTaskMd.RouteCode = "";
- wmsTskTaskMd.TaskStatus = WmsTaskStatusEnum.指令下发;
- wmsTskTaskMd.UpdateTime = DateTime.Now;
- return wmsTskTaskMd;
- }
- else
- {
- return null;
- }
- }
- catch (Exception ex)
- {
- LogHelper.WriteLog($"修改WMS大任务状态、新增堆垛机指令数据发生异常!【{ex.Message}】", LogTypeEnum.Err);
- return null;
- }
- }
- public WmsTskTaskMd InsertCrnCmdAndUpdateWmsTask(WmsTskTaskMd wmsTskTaskMd, BasBinMd sBinMd, BasBinMd eBinMd, BasNextLocRouteMd locRouteMd)
- {
- try
- {
- string cmdNo = BasCommon_Dal.Instance.GetSysSequence("Cmd_No");
- string sqlInsertCrnCmd = $@"
- INSERT INTO [dbo].[WCS_CRN_CMD] (
- [TASK_NO],
- [CMD_NO],
- [TRAY_CODE],
- [PALLET_CODE],
- [TRAY_STATUS],
- [CRN_DEV_NO],
- [CRN_FORK_DEV_NO],
- [SBIN_NO],
- [SBIN_ROW],
- [SBIN_COL],
- [SBIN_LAYER],
- [S_EXTENSION_GROUP],
- [S_EXTENSION_IDX],
- [EBIN_NO],
- [EBIN_ROW],
- [EBIN_COL],
- [EBIN_LAYER],
- [E_EXTENSION_GROUP],
- [E_EXTENSION_IDX],
- [CMD_TYPE],
- [ACTIVE_TYPE],
- [CMD_PRIORITY],
- [CMD_STATUS],
- [CMD_LOG],
- [ERR_FLAG],
- [ERR_LOG],
- [CREATE_BY],
- [CREATE_TIME],
- [UPDATE_BY],
- [UPDATE_TIME],
- [DATA_VERSION],
- [REMARKS1],
- [REMARKS2],
- [REMARKS3],
- [REMARKS4],
- [REMARKS5]
- )
- VALUES
- (
- '{wmsTskTaskMd.TaskNo}',
- '{cmdNo}',
- '{wmsTskTaskMd.TrayCode}',
- '{wmsTskTaskMd.PalletCode}',
- '{(int)wmsTskTaskMd.TrayLoadedType}',
- '{locRouteMd.DevNo}',
- '{locRouteMd.DevNo}',
- '{sBinMd.BinCode}',
- '{sBinMd.BinRow}',
- '{sBinMd.BinColumn}',
- '{sBinMd.BinLayer}',
- '{sBinMd.EXTENSION_GROUP}',
- '{sBinMd.EXTENSION_IDX}',
- '{eBinMd.BinCode}',
- '{eBinMd.BinRow}',
- '{eBinMd.BinColumn}',
- '{eBinMd.BinLayer}',
- '{eBinMd.EXTENSION_GROUP}',
- '{eBinMd.EXTENSION_IDX}',
- '{CrnCmdTypeEnum.IN}',
- '{(int)CrnActiveTypeEnum.取放货}',
- '{wmsTskTaskMd.TaskPriority}',
- '{(int)CrnCmdStatusEnum.初始创建}',
- NULL,
- '{(int)WcsCmdErrFlagEnum.正常}',
- NULL,
- '{wmsTskTaskMd.UpdateBy}',
- getdate(),
- '{wmsTskTaskMd.UpdateBy}',
- getdate(),
- 0,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- );
- ";
- string sqlUpdateWmsTask = $@"
- UPDATE WMS_TSK_TASK
- SET CLOC_CODE = '{locRouteMd.SlocNo}',
- CMD_NO = '{cmdNo}',
- ROUTE_CODE = '{locRouteMd.SectionNo}',
- TASK_STATUS = '{(int)WmsTaskStatusEnum.指令下发}',
- UPDATE_TIME = GETDATE()
- WHERE
- TASK_ID = '{wmsTskTaskMd.TaskId}'
- ";
- List<string> sqlLst = new List<string>
- {
- sqlUpdateWmsTask,
- sqlInsertCrnCmd
- };
- int row = LeadDbHelperSQLServer.ExecuteSqlTran(sqlLst);
- if (row > 0)
- {
- wmsTskTaskMd.ClocCode = locRouteMd.SlocNo;
- wmsTskTaskMd.CmdNo = Convert.ToInt32(cmdNo);
- wmsTskTaskMd.RouteCode = locRouteMd.SectionNo;
- wmsTskTaskMd.TaskStatus = WmsTaskStatusEnum.指令下发;
- wmsTskTaskMd.UpdateTime = DateTime.Now;
- return wmsTskTaskMd;
- }
- else
- {
- return null;
- }
- }
- catch (Exception ex)
- {
- LogHelper.WriteLog($"修改WMS大任务状态、新增堆垛机指令数据发生异常!【{ex.Message}】", LogTypeEnum.Err);
- return null;
- }
- }
- public int GetLimitWmsTaskNum(string val)
- {
- try
- {
- string sql = $@"SELECT PARAMETER_VALUE FROM SYS_PARAMETER WHERE PARAMETER_CODE = '{val}'";
- DataTable dt = LeadDbHelperSQLServer.Query(sql).Tables[0];
- if (dt != null && dt.Rows.Count > 0)
- {
- return Convert.ToInt32(dt.Rows[0][0]);
- }
- else
- {
- return 0;
- }
- }
- catch (Exception ex)
- {
- LogHelper.WriteLog($"获取参数信息数据发生异常!【{ex.Message}】", LogTypeEnum.Err);
- return 0;
- }
- }
- public int GetRuningWmsInstockTaskNum()
- {
- try
- {
- string sql = $@"SELECT COUNT(1) FROM WMS_TSK_TASK WHERE TASK_TYPE IN (1,2,3,4,5) AND TASK_STATUS < 99";
- DataTable dt = LeadDbHelperSQLServer.Query(sql).Tables[0];
- if (dt != null && dt.Rows.Count > 0)
- {
- return Convert.ToInt32(dt.Rows[0][0]);
- }
- else
- {
- return 0;
- }
- }
- catch (Exception ex)
- {
- LogHelper.WriteLog($"获取正在作业的入库大任务统计数据发生异常!【{ex.Message}】", LogTypeEnum.Err);
- return 0;
- }
- }
- public int GetRuningWmsOutstockTaskNum()
- {
- try
- {
- string sql = $@"SELECT COUNT(1) FROM WMS_TSK_TASK WHERE TASK_TYPE IN (6,7,8,9) AND TASK_STATUS < 99";
- DataTable dt = LeadDbHelperSQLServer.Query(sql).Tables[0];
- if (dt != null && dt.Rows.Count > 0)
- {
- return Convert.ToInt32(dt.Rows[0][0]);
- }
- else
- {
- return 0;
- }
- }
- catch (Exception ex)
- {
- LogHelper.WriteLog($"获取正在作业的入库大任务统计数据发生异常!【{ex.Message}】", LogTypeEnum.Err);
- return 0;
- }
- }
- }
- }
|