using DapperORMCore.Context.DataContext; using DapperORMCore.Model.CoreModel; using DapperORMCore.Repository.IRepositorys; using Microsoft.Extensions.Configuration; using NXWMS.IService.NXWMS.OutStock; using NXWMS.Model.AppModels.Condition.OutStock; using NXWMS.Model.AppModels.Result.Base; using NXWMS.Model.AppModels.Result.Common; using NXWMS.Model.AppModels.Result.OutStock; using NXWMS.Model.AppModels.Result.WmsTask; using NXWMS.Model.Common; using NXWMS.String.Enums; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WestDistance.DapperORM.Repository.Repositorys; namespace NXWMS.Service.NXWMS.OutStock { /// /// 下架单服务 /// [AutoInject(typeof(IWmsOutPutDownService), InjectType.Scope)] public class WmsOutPutDownService : ServiceBase, IWmsOutPutDownService { #region 全局变量、构造注入 /// /// 系统操作仓储中转 /// private IDataRepositoryContext _dataContext; /// /// SQL节点仓储 /// private ISQLNodeRepository _iSQLNodeRepository; /// /// 配置 /// private IConfiguration _configuration; /// /// 构造注入 /// /// /// /// public WmsOutPutDownService(IDataRepositoryContext dataRepositoryContext, IConfiguration configuration, ISQLNodeRepository iSQLNodeRepository) { this._dataContext = dataRepositoryContext; this._configuration = configuration; this._iSQLNodeRepository = iSQLNodeRepository; } #endregion /// /// 分页查询下架单主表数据 /// /// 下架单查询条件实体类对象 /// public OperateResultInfo> GetWmsOutPutDownListForPage(WmsOutPutDownSearchMd putdownSearchMd) { try { #region SQL语句生成 StringBuilder sqlCondition = new StringBuilder(); if (!string.IsNullOrEmpty(putdownSearchMd.PutdownNoMsg)) { sqlCondition.Append($" AND PUTDOWN_NO = '{putdownSearchMd.PutdownNoMsg}'"); } if (!string.IsNullOrEmpty(putdownSearchMd.PalletNoMsg)) { sqlCondition.Append($" AND PALLET_CODE like '%{putdownSearchMd.PalletNoMsg}%'"); } if (!string.IsNullOrEmpty(putdownSearchMd.SBinMsg)) { sqlCondition.Append($" AND SBIN_CODE = '{putdownSearchMd.SBinMsg}'"); } if (!string.IsNullOrEmpty(putdownSearchMd.PutdownTypeMsg)) { sqlCondition.Append($" AND PUTDOWN_TYPE = '{putdownSearchMd.PutdownTypeMsg}'"); } if (!string.IsNullOrEmpty(putdownSearchMd.PutdownStatusMsg)) { sqlCondition.Append($" AND PUTDOWN_STATUS = '{putdownSearchMd.PutdownStatusMsg}'"); } if (!string.IsNullOrEmpty(putdownSearchMd.BatchNoMsg)) { sqlCondition.Append($" AND PUTDOWN_ID IN (SELECT PUTDOWN_ID FROM VW_WMS_OUT_PUTDOWN_DTL WHERE BATCH_NO = '{putdownSearchMd.BatchNoMsg}')"); } if (!string.IsNullOrEmpty(putdownSearchMd.MaterielMsg)) { sqlCondition.Append($" AND PUTDOWN_ID IN (SELECT PUTDOWN_ID FROM VW_WMS_OUT_PUTDOWN_DTL WHERE MATERIEL_CODE LIKE '%{putdownSearchMd.MaterielMsg}%' OR MATERIEL_NAME LIKE '%{putdownSearchMd.MaterielMsg}%' OR MATERIEL_BARCODE LIKE '%{putdownSearchMd.MaterielMsg}%')"); } if (!string.IsNullOrEmpty(putdownSearchMd.SupplierMsg)) { sqlCondition.Append($" AND PUTDOWN_ID IN (SELECT PUTDOWN_ID FROM VW_WMS_OUT_PUTDOWN_DTL WHERE SUPPLIER_CODE LIKE '%{putdownSearchMd.SupplierMsg}%' OR SUPPLIER_NAME LIKE '%{putdownSearchMd.SupplierMsg}%')"); } if (!string.IsNullOrEmpty(putdownSearchMd.StartCreatTimeMsg)) { sqlCondition.Append($" AND CREATE_TIME >= '{putdownSearchMd.StartCreatTimeMsg}'"); } if (!string.IsNullOrEmpty(putdownSearchMd.EndCreatTimeMsg)) { sqlCondition.Append($" AND CREATE_TIME <= '{putdownSearchMd.EndCreatTimeMsg}'"); } StringBuilder sqlCountPutDownData = new StringBuilder($@"SELECT COUNT(1) FROM VW_WMS_OUT_PUTDOWN WHERE 1=1"); sqlCountPutDownData.Append(sqlCondition.ToString()); int pageStartIndex = (putdownSearchMd.PageNum - 1) * putdownSearchMd.EveryPageQty; int pageEndIndex = putdownSearchMd.PageNum * putdownSearchMd.EveryPageQty; StringBuilder sqlQueryPutDownData = new StringBuilder($@" SELECT PUTDOWN_ID, PUTDOWN_NO, SOURCE_NO, PUTDOWN_TYPE, PUTDOWN_TYPE_NAME, TRAY_CODE, PALLET_CODE, SBIN_CODE, EBIN_CODE, PUTDOWN_PRIORITY, PUTDOWN_STATUS, PUTDOWN_STATUS_NAME, [DESCRIBE], CREATE_BY, CREATE_NAME, CREATE_TIME, UPDATE_BY, UPDATE_NAME, UPDATE_TIME FROM VW_WMS_OUT_PUTDOWN WHERE 1=1 {sqlCondition} ORDER BY UPDATE_TIME DESC,CREATE_TIME DESC OFFSET {pageStartIndex} ROWS FETCH NEXT {putdownSearchMd.EveryPageQty} ROWS ONLY "); #endregion int dataCount = Convert.ToInt32(new DataRepository(_dataContext).ExecuteScalar(sqlCountPutDownData.ToString())); List resultList = new DataRepository(_dataContext).Query(sqlQueryPutDownData.ToString()).ToList(); OperateResultInfo> retDataMsg = SuccessStatus(resultList); retDataMsg.DataCount = dataCount; return retDataMsg; } catch (Exception ex) { return FailMessageStatus>($"查询下架单数据发生异常,【{ex.Message}】", null); } } /// /// 根据下架单No查询下架单明细数据 /// /// 下架单对象 /// public OperateResultInfo GetWmsOutPutDownDtlListForNo(string No,bool byDelete=false) { try { #region SQL语句生成 string sqlQueryWmsOutPutDown = $@" SELECT PUTDOWN_ID, PUTDOWN_NO, SOURCE_NO, PUTDOWN_TYPE, PUTDOWN_TYPE_NAME, TRAY_CODE, PALLET_CODE, SBIN_CODE, EBIN_CODE, PUTDOWN_PRIORITY, PUTDOWN_STATUS, PUTDOWN_STATUS_NAME, [DESCRIBE], CREATE_BY, CREATE_NAME, CREATE_TIME, UPDATE_BY, UPDATE_NAME, UPDATE_TIME FROM VW_WMS_OUT_PUTDOWN WHERE PUTDOWN_NO = '{No}' "; string strWhere = string.Empty; if (byDelete) { strWhere = "1=1"; } else { strWhere = "PUTDOWN_DTL_STATUS < 111"; } string sqlQueryWmsPutDownDtl = $@" SELECT * FROM VW_WMS_OUT_PUTDOWN_DTL WHERE PUTDOWN_NO = '{No}' AND {strWhere} ORDER BY PUTDOWN_DTL_STATUS,PUTDOWN_DTL_ID "; #endregion List resultList = new DataRepository(_dataContext).Query(sqlQueryWmsOutPutDown).ToList(); List resultDtlList = new DataRepository(_dataContext).Query(sqlQueryWmsPutDownDtl).ToList(); var result = resultList[0]; result.WmsOutPutDownDtlList = resultDtlList; OperateResultInfo retDataMsg = SuccessStatus(result); return retDataMsg; } catch (Exception ex) { return FailMessageStatus($"查询下架单明细数据发生异常,【{ex.Message}】", null); } } /// /// 根据下架单主键Id查询下架单明细数据 /// /// 下架单对象 /// public OperateResultInfo GetWmsOutPutDownDtlListForID(WmsOutPutDownResult wmsOutPutDown) { try { #region SQL语句生成 string sqlQueryWmsOutPutDown = $@" SELECT PUTDOWN_ID, PUTDOWN_NO, SOURCE_NO, PUTDOWN_TYPE, PUTDOWN_TYPE_NAME, TRAY_CODE, PALLET_CODE, SBIN_CODE, EBIN_CODE, PUTDOWN_PRIORITY, PUTDOWN_STATUS, PUTDOWN_STATUS_NAME, [DESCRIBE], CREATE_BY, CREATE_NAME, CREATE_TIME, UPDATE_BY, UPDATE_NAME, UPDATE_TIME FROM VW_WMS_OUT_PUTDOWN WHERE PUTDOWN_ID = '{wmsOutPutDown.PUTDOWN_ID}' "; string strWhere = string.Empty; if (wmsOutPutDown.REMARKS1 == "查询已删除明细数据") { strWhere = "1=1"; } else { strWhere = "PUTDOWN_DTL_STATUS < 111"; } string sqlQueryWmsPutDownDtl = $@" SELECT * FROM VW_WMS_OUT_PUTDOWN_DTL WHERE PUTDOWN_ID = '{wmsOutPutDown.PUTDOWN_ID}' AND {strWhere} ORDER BY PUTDOWN_DTL_STATUS,PUTDOWN_DTL_ID "; #endregion List resultList = new DataRepository(_dataContext).Query(sqlQueryWmsOutPutDown).ToList(); List resultDtlList = new DataRepository(_dataContext).Query(sqlQueryWmsPutDownDtl).ToList(); wmsOutPutDown = resultList[0]; wmsOutPutDown.WmsOutPutDownDtlList = resultDtlList; OperateResultInfo retDataMsg = SuccessStatus(wmsOutPutDown); return retDataMsg; } catch (Exception ex) { return FailMessageStatus($"查询下架单明细数据发生异常,【{ex.Message}】", null); } } /// /// 新增下架单数据 /// /// 下架单主表对象 /// public OperateResultInfo AddWmsOutPutDownData(WmsOutPutDownResult wmsOutPutDown) { try { #region SQL语句生成 List sqlList = new List(); wmsOutPutDown.PUTDOWN_ID = Convert.ToInt32(new DataRepository(_dataContext).GetSequenceMsg("OutPutdown_Id")); wmsOutPutDown.PUTDOWN_NO = new DataRepository(_dataContext).GetSequenceMsg("OutPutdown_No"); wmsOutPutDown.PUTDOWN_STATUS = 0; StringBuilder sqlAddWmsPutDown = new StringBuilder(); sqlAddWmsPutDown.Append($@" INSERT INTO [WMS_OUT_PUTDOWN] ( [PUTDOWN_ID], [PUTDOWN_NO], [SOURCE_NO], [PUTDOWN_TYPE], [TRAY_CODE], [PALLET_CODE], [SBIN_CODE], [EBIN_CODE], [PUTDOWN_PRIORITY], [PUTDOWN_STATUS], [DESCRIBE], [CREATE_BY], [CREATE_TIME], [UPDATE_BY], [UPDATE_TIME], [DATA_VERSION], [REMARKS1], [REMARKS2], [REMARKS3], [REMARKS4], [REMARKS5] ) VALUES ( '{wmsOutPutDown.PUTDOWN_ID}', '{wmsOutPutDown.PUTDOWN_NO}', '{wmsOutPutDown.SOURCE_NO}', '{wmsOutPutDown.PUTDOWN_TYPE}', '{wmsOutPutDown.TRAY_CODE}', '{wmsOutPutDown.PALLET_CODE}', '{wmsOutPutDown.SBIN_CODE}', '{wmsOutPutDown.EBIN_CODE}', '{wmsOutPutDown.PUTDOWN_PRIORITY}', '0', '{wmsOutPutDown.DESCRIBE}', '{wmsOutPutDown.CREATE_BY}', getdate(), '{wmsOutPutDown.UPDATE_BY}', getdate(), 0, NULL, NULL, NULL, NULL, NULL ); "); sqlList.Add(sqlAddWmsPutDown.ToString()); foreach (WmsOutPutDownDtlResult item in wmsOutPutDown.WmsOutPutDownDtlList) { StringBuilder sqlAddWmsOutPutDownDtl = new StringBuilder(); item.PUTDOWN_DTL_ID = Convert.ToInt32(new DataRepository(_dataContext).GetSequenceMsg("OutPutdown_Dtl_Id")); item.PUTDOWN_ID = wmsOutPutDown.PUTDOWN_ID; item.PUTDOWN_DTL_STATUS = 0; sqlAddWmsOutPutDownDtl.Append($@" INSERT INTO [WMS_OUT_PUTDOWN_DTL] ( [PUTDOWN_DTL_ID], [PUTDOWN_ID], [MATERIEL_CODE], [MATERIEL_NAME], [MATERIEL_BARCODE], [MATERIEL_SPEC], [BATCH_NO], [PACKAGE_CODE], [UNIT_CODE], [PUTDOWN_QTY], [SUPPLIER_CODE], [SUPPLIER_NAME], [PRODUCT_DATE], [EXP_DATE], [PUTDOWN_DTL_STATUS], [INSPECTION_RESULT], [ITEM_STATUS], [DESCRIBE], [CREATE_BY], [CREATE_TIME], [UPDATE_BY], [UPDATE_TIME], [DATA_VERSION], [REMARKS1], [REMARKS2], [REMARKS3], [REMARKS4], [REMARKS5] ) VALUES ( '{item.PUTDOWN_DTL_ID}', '{item.PUTDOWN_ID}', '{item.MATERIEL_CODE}', '{item.MATERIEL_NAME}', '{item.MATERIEL_BARCODE}', '{item.MATERIEL_SPEC}', '{item.BATCH_NO}', '{item.PACKAGE_CODE}', '{item.UNIT_CODE}', '{item.PUTDOWN_QTY}', '{item.SUPPLIER_CODE}', '{item.SUPPLIER_NAME}', '{item.PRODUCT_DATE}', '{item.EXP_DATE}', '0', 'Wait', '1', '{item.DESCRIBE}', '{item.CREATE_BY}', getdate(), '{item.UPDATE_BY}', getdate(), 0, NULL, NULL, NULL, NULL, NULL ); "); sqlList.Add(sqlAddWmsOutPutDownDtl.ToString()); } #endregion int row = new DataRepository(_dataContext).ExecSqlListTran(sqlList); if (row > 0) { return SuccessMessageStatus("新增下架单数据成功!", row); } else { return FailMessageStatus("新增下架单数据失败!", row); } } catch (Exception ex) { return FailMessageStatus($"新增下架单数据发生异常,【{ex.Message}】"); } } /// /// 修改下架单数据 /// /// 下架主表对象 /// public OperateResultInfo EditWmsOutPutDownData(WmsOutPutDownResult wmsOutPutDown) { try { #region SQL语句生成 List sqlList = new List(); string sqlUpdateWmsOutPutDown = $@" UPDATE [WMS_OUT_PUTDOWN] SET [PUTDOWN_NO] = '{wmsOutPutDown.PUTDOWN_NO}', [SOURCE_NO] = '{wmsOutPutDown.SOURCE_NO}', [PUTDOWN_TYPE] = '{wmsOutPutDown.PUTDOWN_TYPE}', [TRAY_CODE] = '{wmsOutPutDown.TRAY_CODE}', [PALLET_CODE] = '{wmsOutPutDown.PALLET_CODE}', [SBIN_CODE] = '{wmsOutPutDown.SBIN_CODE}', [EBIN_CODE] = '{wmsOutPutDown.EBIN_CODE}', [PUTDOWN_PRIORITY] = '{wmsOutPutDown.PUTDOWN_PRIORITY}', [PUTDOWN_STATUS] = '{wmsOutPutDown.PUTDOWN_STATUS}', [DESCRIBE] = '{wmsOutPutDown.DESCRIBE}', [UPDATE_BY] = '{wmsOutPutDown.UPDATE_BY}', [UPDATE_TIME] = GETDATE(), [DATA_VERSION] = [DATA_VERSION] + 1 WHERE [PUTDOWN_ID] = '{wmsOutPutDown.PUTDOWN_ID}'; "; sqlList.Add(sqlUpdateWmsOutPutDown); foreach (WmsOutPutDownDtlResult item in wmsOutPutDown.WmsOutPutDownDtlList) { if (item.REMARKS1 == "更新" || item.REMARKS1 == "删除") { string sqlUpdateWmsOutPutDownDtl = $@" UPDATE [WMS_OUT_PUTDOWN_DTL] SET [MATERIEL_CODE] = '{item.MATERIEL_CODE}', [MATERIEL_NAME] = '{item.MATERIEL_NAME}', [MATERIEL_BARCODE] = '{item.MATERIEL_BARCODE}', [MATERIEL_SPEC] = '{item.MATERIEL_SPEC}', [BATCH_NO] = '{item.BATCH_NO}', [PACKAGE_CODE] = '{item.PACKAGE_CODE}', [UNIT_CODE] = '{item.UNIT_CODE}', [PUTDOWN_QTY] = '{item.PUTDOWN_QTY}', [SUPPLIER_CODE] = '{item.SUPPLIER_CODE}', [SUPPLIER_NAME] = '{item.SUPPLIER_CODE}', [PRODUCT_DATE] = '{item.PRODUCT_DATE}', [EXP_DATE] = '{item.EXP_DATE}', [PUTDOWN_DTL_STATUS] = '{item.PUTDOWN_DTL_STATUS}', [INSPECTION_RESULT] = '{item.INSPECTION_RESULT}', [ITEM_STATUS] = '{item.ITEM_STATUS}', [DESCRIBE] = '{item.DESCRIBE}', [UPDATE_BY] = '{item.UPDATE_BY}', [UPDATE_TIME] = getdate(), [DATA_VERSION] = [DATA_VERSION] + 1 WHERE [PUTDOWN_DTL_ID] = '{item.PUTDOWN_DTL_ID}' AND [PUTDOWN_ID] = '{wmsOutPutDown.PUTDOWN_ID}'; "; sqlList.Add(sqlUpdateWmsOutPutDownDtl); } if (item.REMARKS1 == "添加") { StringBuilder sqlAddWmsOutPutDownDtl = new StringBuilder(); item.PUTDOWN_DTL_ID = Convert.ToInt32(new DataRepository(_dataContext).GetSequenceMsg("InPutaway_Dtl_Id")); item.PUTDOWN_ID = wmsOutPutDown.PUTDOWN_ID; item.PUTDOWN_DTL_STATUS = 0; sqlAddWmsOutPutDownDtl.Append($@" INSERT INTO [WMS_OUT_PUTDOWN_DTL] ( [PUTDOWN_DTL_ID], [PUTDOWN_ID], [MATERIEL_CODE], [MATERIEL_NAME], [MATERIEL_BARCODE], [MATERIEL_SPEC], [BATCH_NO], [PACKAGE_CODE], [UNIT_CODE], [PUTDOWN_QTY], [SUPPLIER_CODE], [SUPPLIER_NAME], [PRODUCT_DATE], [EXP_DATE], [PUTDOWN_DTL_STATUS], [INSPECTION_RESULT], [ITEM_STATUS], [DESCRIBE], [CREATE_BY], [CREATE_TIME], [UPDATE_BY], [UPDATE_TIME], [DATA_VERSION], [REMARKS1], [REMARKS2], [REMARKS3], [REMARKS4], [REMARKS5] ) VALUES ( '{item.PUTDOWN_DTL_ID}', '{item.PUTDOWN_ID}', '{item.MATERIEL_CODE}', '{item.MATERIEL_NAME}', '{item.MATERIEL_BARCODE}', '{item.MATERIEL_SPEC}', '{item.BATCH_NO}', '{item.PACKAGE_CODE}', '{item.UNIT_CODE}', '{item.PUTDOWN_QTY}', '{item.SUPPLIER_CODE}', '{item.SUPPLIER_NAME}', '{item.PRODUCT_DATE}', '{item.EXP_DATE}', '0', 'Wait', '1', '{item.DESCRIBE}', '{item.CREATE_BY}', getdate(), '{item.UPDATE_BY}', getdate(), 0, NULL, NULL, NULL, NULL, NULL ); "); sqlList.Add(sqlAddWmsOutPutDownDtl.ToString()); } } #endregion int row = new DataRepository(_dataContext).ExecSqlListTran(sqlList); if (row > 0) { return SuccessMessageStatus("修改下架单数据成功!", row); } else { return FailMessageStatus("修改下架单数据失败!", row); } } catch (Exception ex) { return FailMessageStatus($"修改下架单数据发生异常,【{ex.Message}】"); } } /// /// 删除下架单数据 /// /// 下架单主表对象 /// public OperateResultInfo DeleteWmsOutPutDownData(WmsOutPutDownResult wmsOutPutDown) { try { #region SQL语句生成 string[] putdownIdList = wmsOutPutDown.PUTDOWN_NO.Split(','); List sqlList = new List(); foreach (string item in putdownIdList) { string sqlDeleteWmsPutDown = $@" UPDATE WMS_OUT_PUTDOWN SET PUTDOWN_STATUS = '111', UPDATE_BY = '{wmsOutPutDown.UPDATE_BY}', UPDATE_TIME = GETDATE(), DATA_VERSION = DATA_VERSION + 1 WHERE PUTDOWN_ID = '{item}'; "; string sqlDeleteWmsOutPutDownDtl = $@" UPDATE WMS_OUT_PUTDOWN_DTL SET PUTDOWN_DTL_STATUS = '111', UPDATE_BY = '{wmsOutPutDown.UPDATE_BY}', UPDATE_TIME = GETDATE(), DATA_VERSION = DATA_VERSION + 1 WHERE PUTDOWN_ID = '{item}'; "; sqlList.Add(sqlDeleteWmsPutDown); sqlList.Add(sqlDeleteWmsOutPutDownDtl); /* ToDo: 后续增加删除移至历史表中。 */ } #endregion int row = new DataRepository(_dataContext).ExecSqlListTran(sqlList); if (row > 0) { return SuccessMessageStatus("删除下架单数据成功!", row); } else { return FailMessageStatus("删除下架单数据失败!", row); } } catch (Exception ex) { return FailMessageStatus($"删除下架单数据发生异常,【{ex.Message}】"); } } /// /// 获取待下架托盘信息 /// /// public OperateResultInfo> GetPutDownPalletMsgList() { try { string sql = $@"SELECT * FROM VW_WMS_OUT_PUTDOWN_PALLET_MSG"; List resultList = new DataRepository(_dataContext).Query(sql).ToList(); OperateResultInfo> retDataMsg = SuccessStatus(resultList); return retDataMsg; } catch (Exception ex) { return FailMessageStatus>($"查询待下架托盘数据发生异常,【{ex.Message}】", null); } } /// /// 手动下架 /// /// 下架单主表实体类对象 /// public OperateResultInfo ManualPutDownPallet(WmsOutPutDownResult wmsOutPutDown, PutDownMethodsEnum methodsEnum) { try { #region SQL语句生成 List sqlList = new List(); string sqlQueryRetreatRegionBinMsg = $@" SELECT A.*, B.USER_NAME Create_Name, C.USER_NAME Update_Name 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.BIN_CODE = '{wmsOutPutDown.SBIN_CODE}' "; List resultBinList = new DataRepository(_dataContext).Query(sqlQueryRetreatRegionBinMsg).ToList(); if (resultBinList.Count <= 0) { return FailMessageStatus($"下架库位【{wmsOutPutDown.SBIN_CODE}】不存在,请重新输入或扫描。"); } int status = 55; string sqlUpdatePutDown = $@" UPDATE WMS_OUT_PUTDOWN SET PUTDOWN_STATUS = '{status}', UPDATE_BY = '{wmsOutPutDown.UPDATE_BY}', UPDATE_TIME = GETDATE(), DATA_VERSION = DATA_VERSION + 1 WHERE PUTDOWN_ID = '{wmsOutPutDown.PUTDOWN_ID}'; "; sqlList.Add(sqlUpdatePutDown); string sqlUpdatePutDownDtl = $@" UPDATE WMS_OUT_PUTDOWN_DTL SET PUTDOWN_DTL_STATUS = '{status}', UPDATE_BY = '{wmsOutPutDown.UPDATE_BY}', UPDATE_TIME = GETDATE(), DATA_VERSION = DATA_VERSION + 1 WHERE PUTDOWN_ID = '{wmsOutPutDown.PUTDOWN_ID}'; "; sqlList.Add(sqlUpdatePutDownDtl); if (wmsOutPutDown.PUTDOWN_TYPE != 5) { foreach (WmsOutPutDownDtlResult item in wmsOutPutDown.WmsOutPutDownDtlList) { string sqlQueryInvoiceRecord = $@"SELECT * FROM VW_WMS_OUT_INVOICE_RECORD WHERE TRAY_CODE = '{wmsOutPutDown.TRAY_CODE}' AND PALLET_CODE = '{wmsOutPutDown.PALLET_CODE}' AND INVOICE_RECORD_STATUS = 0"; List resultInvoiceRecordList = new DataRepository(_dataContext).Query(sqlQueryInvoiceRecord).ToList(); WmsOutInvoiceRecordResult invRecordMd = resultInvoiceRecordList.Find(x => x.MATERIEL_CODE == item.MATERIEL_CODE && x.BATCH_NO == item.BATCH_NO); string sqlUpdateInvoiceDtl = $@" UPDATE WMS_OUT_INVOICE_DTL SET PUTDOWN_QTY = PUTDOWN_QTY + '{item.PUTDOWN_QTY}', INVOICE_DTL_STATUS = 55, UPDATE_BY = '{wmsOutPutDown.UPDATE_BY}', UPDATE_TIME = GETDATE(), DATA_VERSION = DATA_VERSION + 1 WHERE INVOICE_DTL_ID = '{invRecordMd.INVOICE_DTL_ID}' ; "; sqlList.Add(sqlUpdateInvoiceDtl); } string sqlUpdateInvoice = $@" UPDATE WMS_OUT_INVOICE SET INVOICE_STATUS = 55, UPDATE_BY = '{wmsOutPutDown.UPDATE_BY}', UPDATE_TIME = GETDATE(), DATA_VERSION = DATA_VERSION + 1 WHERE INVOICE_NO = '{wmsOutPutDown.SOURCE_NO}' "; string sqlUpdateInvoiceRecord = $@" UPDATE WMS_OUT_INVOICE_RECORD SET INVOICE_RECORD_STATUS = 1, UPDATE_BY = '{wmsOutPutDown.UPDATE_BY}', UPDATE_TIME = GETDATE(), DATA_VERSION = DATA_VERSION + 1 WHERE TRAY_CODE = '{wmsOutPutDown.TRAY_CODE}' AND PALLET_CODE = '{wmsOutPutDown.PALLET_CODE}' AND INVOICE_RECORD_STATUS = 0; "; sqlList.Add(sqlUpdateInvoiceRecord); sqlList.Add(sqlUpdateInvoice); string sqlUpdateWmsStkTray = $@" UPDATE WMS_STK_TRAY SET TRAY_STATUS = 66, UPDATE_BY = '{wmsOutPutDown.UPDATE_BY}', UPDATE_TIME = GETDATE(), DATA_VERSION = DATA_VERSION + 1 WHERE TRAY_CODE = '{wmsOutPutDown.TRAY_CODE}'; "; string sqlUpdateWmsStkTrayDtl = $@" UPDATE WMS_STK_TRAY_DTL SET TRAY_DTL_STATUS = 66, UPDATE_BY = '{wmsOutPutDown.UPDATE_BY}', UPDATE_TIME = GETDATE(), DATA_VERSION = DATA_VERSION + 1 WHERE TRAY_ID IN ( SELECT TRAY_ID FROM WMS_STK_TRAY WHERE TRAY_CODE = '{wmsOutPutDown.TRAY_CODE}' ); "; string sqlUpdateWmsStkBalance = $@" UPDATE WMS_STK_BALANCE SET BALANCE_STATUS = 66, UPDATE_BY = '{wmsOutPutDown.UPDATE_BY}', UPDATE_TIME = GETDATE(), DATA_VERSION = DATA_VERSION + 1 WHERE TRAY_CODE = '{wmsOutPutDown.TRAY_CODE}'; "; sqlList.Add(sqlUpdateWmsStkTray); sqlList.Add(sqlUpdateWmsStkTrayDtl); sqlList.Add(sqlUpdateWmsStkBalance); } #region ToDo : 更新WMS大任务 string sqlUpdateWmsTask = $@" UPDATE WMS_TSK_TASK SET CLOC_CODE = ELOC_CODE, UPDATE_BY = '{wmsOutPutDown.UPDATE_BY}', UPDATE_TIME = GETDATE(), DATA_VERSION = DATA_VERSION + 1, TASK_STATUS = 77, TASK_MSG = '【{methodsEnum}】-- 更新WMS大任务为:【托盘到目标】状态' WHERE TRAY_CODE = '{wmsOutPutDown.TRAY_CODE}' AND TASK_STATUS < 77 "; sqlList.Add(sqlUpdateWmsTask); #endregion #endregion int row = new DataRepository(_dataContext).ExecSqlListTran(sqlList); if (row > 0) { return SuccessMessageStatus($"【{methodsEnum}】-- 操作成功!", row); } else { return FailMessageStatus($"【{methodsEnum}】-- 操作失败!", row); } } catch (Exception ex) { return FailMessageStatus($"【{methodsEnum}】-- 操作发生异常,【{ex.Message}】"); } } #region 20210224 孙亚龙新增WCS上报托盘运行状态 public OperateResultInfo UploadPalletRunStatus(NoticeWmsPalletStatus parm) { try { int wmsTaskStatus; if (parm.palletCurrRunStatus == PalletTaskRunStatusEnum.托盘出库执行中) { wmsTaskStatus = 55; } else { wmsTaskStatus = 77; } string sqlQueryWmsTask = $@" SELECT * FROM VW_WMS_TSK_TASK WHERE TASK_NO = '{parm.TaskNo}' AND TASK_STATUS = '{wmsTaskStatus}' "; List resultList = new DataRepository(_dataContext).Query(sqlQueryWmsTask).ToList(); if (resultList == null || resultList.Count <= 0) { return FailMessageStatus($"WCS上报托盘运行状态的参数错误,无法获取WMS大任务信息!"); } string sqlQueryWmsOutPutDown = $@" SELECT PUTDOWN_ID, PUTDOWN_NO, SOURCE_NO, PUTDOWN_TYPE, PUTDOWN_TYPE_NAME, TRAY_CODE, PALLET_CODE, SBIN_CODE, EBIN_CODE, PUTDOWN_PRIORITY, PUTDOWN_STATUS, PUTDOWN_STATUS_NAME, [DESCRIBE], CREATE_BY, CREATE_NAME, CREATE_TIME, UPDATE_BY, UPDATE_NAME, UPDATE_TIME FROM VW_WMS_OUT_PUTDOWN WHERE TRAY_CODE = '{parm.TrayCode}' AND PUTDOWN_STATUS < 99 "; List resultPutDownList = new DataRepository(_dataContext).Query(sqlQueryWmsOutPutDown).ToList(); if (resultPutDownList == null || resultPutDownList.Count <= 0) { return FailMessageStatus($"WCS上报托盘运行状态的参数错误,无法获取托盘下架单信息!"); } WmsTaskResult wmsTaskResultDataBase = resultList[0]; WmsOutPutDownResult wmsOutPutDownInDataBase = resultPutDownList[0]; if (parm.palletCurrRunStatus == PalletTaskRunStatusEnum.托盘出库执行中) { List sqlList = new List(); int status = 55; string sqlUpdatePutDown = $@" UPDATE WMS_OUT_PUTDOWN SET PUTDOWN_STATUS = '{status}', UPDATE_BY = '{parm.OperateUserId}', UPDATE_TIME = GETDATE(), DATA_VERSION = DATA_VERSION + 1 WHERE PUTDOWN_ID = '{wmsOutPutDownInDataBase.PUTDOWN_ID}'; "; sqlList.Add(sqlUpdatePutDown); string sqlUpdatePutDownDtl = $@" UPDATE WMS_OUT_PUTDOWN_DTL SET PUTDOWN_DTL_STATUS = '{status}', UPDATE_BY = '{parm.OperateUserId}', UPDATE_TIME = GETDATE(), DATA_VERSION = DATA_VERSION + 1 WHERE PUTDOWN_ID = '{wmsOutPutDownInDataBase.PUTDOWN_ID}'; "; sqlList.Add(sqlUpdatePutDownDtl); int row = new DataRepository(_dataContext).ExecSqlListTran(sqlList); if (row > 0) { return SuccessMessageStatus("WCS上报托盘运行状态成功!", row); } else { return FailMessageStatus("WCS上报托盘运行状态失败!", row); } } else { string sqlQueryWmsPutDownDtl = $@" SELECT * FROM VW_WMS_OUT_PUTDOWN_DTL WHERE PUTDOWN_ID = '{wmsOutPutDownInDataBase.PUTDOWN_ID}' "; List resultDtlList = new DataRepository(_dataContext).Query(sqlQueryWmsPutDownDtl).ToList(); wmsOutPutDownInDataBase.WmsOutPutDownDtlList = resultDtlList; return ManualPutDownPallet(wmsOutPutDownInDataBase, PutDownMethodsEnum.WCS自动下架); } } catch (Exception ex) { return FailMessageStatus($"WCS上报托盘运行状态函数发生异常:【{ex.Message}】"); } } #endregion } }