using DapperORMCore.Context.DataContext;
using DapperORMCore.Model.CoreModel;
using DapperORMCore.Repository.IRepositorys;
using Microsoft.Extensions.Configuration;
using NXWMS.IService.NXWMS;
using NXWMS.IService.NXWMS.Instock;
using NXWMS.Model.AppModels.Condition.Instock;
using NXWMS.Model.AppModels.Result.Balance;
using NXWMS.Model.AppModels.Result.Base;
using NXWMS.Model.AppModels.Result.Common;
using NXWMS.Model.AppModels.Result.Instock;
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.Instock
{
///
/// 上架单服务
///
[AutoInject(typeof(IWmsInPutawayService), InjectType.Scope)]
public class WmsInPutawayService : ServiceBase, IWmsInPutawayService
{
#region 全局变量、构造注入
///
/// 系统操作仓储中转
///
private IDataRepositoryContext _dataContext;
///
/// SQL节点仓储
///
private ISQLNodeRepository _iSQLNodeRepository;
///
/// 配置
///
private IConfiguration _configuration;
private IERPServer _eRPServer;
///
/// 构造注入
///
///
///
///
public WmsInPutawayService(IDataRepositoryContext dataRepositoryContext, IConfiguration configuration, ISQLNodeRepository iSQLNodeRepository, IERPServer eRPServer)
{
this._dataContext = dataRepositoryContext;
this._configuration = configuration;
this._iSQLNodeRepository = iSQLNodeRepository;
this._eRPServer = eRPServer;
}
#endregion
///
/// 分页查询上架单主表数据
///
/// 上架单查询条件实体类对象
///
public OperateResultInfo> GetWmsInPutAwayListForPage(WmsInPutAwaySearchMd putawaySearchMd)
{
try
{
#region SQL语句生成
StringBuilder sqlCondition = new StringBuilder();
if (!string.IsNullOrEmpty(putawaySearchMd.PutawayNoMsg))
{
sqlCondition.Append($" AND PUTAWAY_NO = '{putawaySearchMd.PutawayNoMsg}'");
}
if (!string.IsNullOrEmpty(putawaySearchMd.PalletNoMsg))
{
sqlCondition.Append($" AND PALLET_CODE like '%{putawaySearchMd.PalletNoMsg}%'");
}
if (!string.IsNullOrEmpty(putawaySearchMd.TargetBinMsg))
{
sqlCondition.Append($" AND EBIN_CODE = '{putawaySearchMd.TargetBinMsg}'");
}
if (!string.IsNullOrEmpty(putawaySearchMd.PutawayTypeMsg))
{
sqlCondition.Append($" AND PUTAWAY_TYPE = '{putawaySearchMd.PutawayTypeMsg}'");
}
if (!string.IsNullOrEmpty(putawaySearchMd.PutawayStatusMsg))
{
sqlCondition.Append($" AND PUTAWAY_STATUS = '{putawaySearchMd.PutawayStatusMsg}'");
}
if (!string.IsNullOrEmpty(putawaySearchMd.BatchNoMsg))
{
sqlCondition.Append($" AND PUTAWAY_ID IN (SELECT PUTAWAY_ID FROM VW_WMS_IN_PUTAWAY_DTL WHERE BATCH_NO = '{putawaySearchMd.BatchNoMsg}')");
}
if (!string.IsNullOrEmpty(putawaySearchMd.MaterielMsg))
{
sqlCondition.Append($" AND PUTAWAY_ID IN (SELECT PUTAWAY_ID FROM VW_WMS_IN_PUTAWAY_DTL WHERE MATERIEL_CODE LIKE '%{putawaySearchMd.MaterielMsg}%' OR MATERIEL_NAME LIKE '%{putawaySearchMd.MaterielMsg}%' OR MATERIEL_BARCODE LIKE '%{putawaySearchMd.MaterielMsg}%')");
}
if (!string.IsNullOrEmpty(putawaySearchMd.SupplierMsg))
{
sqlCondition.Append($" AND PUTAWAY_ID IN (SELECT PUTAWAY_ID FROM VW_WMS_IN_PUTAWAY_DTL WHERE SUPPLIER_CODE LIKE '%{putawaySearchMd.SupplierMsg}%' OR SUPPLIER_NAME LIKE '%{putawaySearchMd.SupplierMsg}%')");
}
if (!string.IsNullOrEmpty(putawaySearchMd.StartCreatTimeMsg))
{
sqlCondition.Append($" AND CREATE_TIME >= '{putawaySearchMd.StartCreatTimeMsg}'");
}
if (!string.IsNullOrEmpty(putawaySearchMd.EndCreatTimeMsg))
{
sqlCondition.Append($" AND CREATE_TIME <= '{putawaySearchMd.EndCreatTimeMsg}'");
}
StringBuilder sqlCountPutAwayData = new StringBuilder($@"SELECT COUNT(1) FROM VW_WMS_IN_PUTAWAY WHERE 1=1");
sqlCountPutAwayData.Append(sqlCondition.ToString());
int pageStartIndex = (putawaySearchMd.PageNum - 1) * putawaySearchMd.EveryPageQty;
int pageEndIndex = putawaySearchMd.PageNum * putawaySearchMd.EveryPageQty;
StringBuilder sqlQueryPutAwayData = new StringBuilder($@"
SELECT
PUTAWAY_ID,
PUTAWAY_NO,
SOURCE_NO,
PUTAWAY_TYPE,
PUTAWAY_TYPE_NAME,
TRAY_CODE,
PALLET_CODE,
SBIN_CODE,
EBIN_CODE,
PUTAWAY_PRIORITY,
PUTAWAY_STATUS,
PUTAWAY_STATUS_NAME,
[DESCRIBE],
CREATE_BY,
CREATE_NAME,
CREATE_TIME,
UPDATE_BY,
UPDATE_NAME,
UPDATE_TIME
FROM
VW_WMS_IN_PUTAWAY
WHERE
1=1
{sqlCondition}
ORDER BY UPDATE_TIME DESC,CREATE_TIME DESC
OFFSET {pageStartIndex} ROWS
FETCH NEXT {putawaySearchMd.EveryPageQty} ROWS ONLY
");
#endregion
int dataCount = Convert.ToInt32(new DataRepository(_dataContext).ExecuteScalar(sqlCountPutAwayData.ToString()));
List resultList = new DataRepository(_dataContext).Query(sqlQueryPutAwayData.ToString()).ToList();
OperateResultInfo> retDataMsg = SuccessStatus(resultList);
retDataMsg.DataCount = dataCount;
return retDataMsg;
}
catch (Exception ex)
{
return FailMessageStatus>($"查询上架单数据发生异常,【{ex.Message}】", null);
}
}
///
/// 根据上架单主键Id查询上架单明细数据
///
/// 上架单对象
///
public OperateResultInfo GetWmsInPutAwayDtlListForID(WmsInPutAwayResult wmsInPutAway)
{
try
{
#region SQL语句生成
string sqlQueryWmsInPutAway = $@"
SELECT
PUTAWAY_ID,
PUTAWAY_NO,
SOURCE_NO,
PUTAWAY_TYPE,
PUTAWAY_TYPE_NAME,
TRAY_CODE,
PALLET_CODE,
SBIN_CODE,
EBIN_CODE,
PUTAWAY_PRIORITY,
PUTAWAY_STATUS,
PUTAWAY_STATUS_NAME,
[DESCRIBE],
CREATE_BY,
CREATE_NAME,
CREATE_TIME,
UPDATE_BY,
UPDATE_NAME,
UPDATE_TIME
FROM
VW_WMS_IN_PUTAWAY
WHERE
PUTAWAY_ID = '{wmsInPutAway.PutawayId}'
";
string strWhere = string.Empty;
if (wmsInPutAway.Remarks1 == "查询已删除明细数据")
{
strWhere = "1=1";
}
else
{
strWhere = "PUTAWAY_DTL_STATUS < 111";
}
string sqlQueryWmsPutAwayDtl = $@"
SELECT
*
FROM
VW_WMS_IN_PUTAWAY_DTL
WHERE
PUTAWAY_ID = '{wmsInPutAway.PutawayId}'
AND {strWhere}
ORDER BY PUTAWAY_DTL_STATUS,PUTAWAY_DTL_ID
";
#endregion
List resultList = new DataRepository(_dataContext).Query(sqlQueryWmsInPutAway).ToList();
List resultDtlList = new DataRepository(_dataContext).Query(sqlQueryWmsPutAwayDtl).ToList();
wmsInPutAway = resultList[0];
wmsInPutAway.WmsInPutAwayDtlList = resultDtlList;
OperateResultInfo retDataMsg = SuccessStatus(wmsInPutAway);
return retDataMsg;
}
catch (Exception ex)
{
return FailMessageStatus($"查询上架单明细数据发生异常,【{ex.Message}】", null);
}
}
///
/// 新增上架单数据
///
/// 上架单主表对象
///
public OperateResultInfo AddWmsInPutAwayData(WmsInPutAwayResult wmsInPutAway)
{
try
{
#region SQL语句生成
List sqlList = new List();
wmsInPutAway.PutawayId = Convert.ToInt32(new DataRepository(_dataContext).GetSequenceMsg("InPutaway_Id"));
wmsInPutAway.PutawayNo = new DataRepository(_dataContext).GetSequenceMsg("InPutaway_No");
wmsInPutAway.PutawayStatus = 0;
StringBuilder sqlAddWmsPutAway = new StringBuilder();
sqlAddWmsPutAway.Append($@"
INSERT INTO [WMS_IN_PUTAWAY] (
[PUTAWAY_ID],
[PUTAWAY_NO],
[SOURCE_NO],
[PUTAWAY_TYPE],
[TRAY_CODE],
[PALLET_CODE],
[SBIN_CODE],
[EBIN_CODE],
[PUTAWAY_PRIORITY],
[PUTAWAY_STATUS],
[DESCRIBE],
[CREATE_BY],
[CREATE_TIME],
[UPDATE_BY],
[UPDATE_TIME],
[DATA_VERSION],
[REMARKS1],
[REMARKS2],
[REMARKS3],
[REMARKS4],
[REMARKS5]
)
VALUES
(
'{wmsInPutAway.PutawayId}',
'{wmsInPutAway.PutawayNo}',
'{wmsInPutAway.SourceNo}',
'{wmsInPutAway.PutawayType}',
'{wmsInPutAway.TrayCode}',
'{wmsInPutAway.PalletCode}',
'{wmsInPutAway.SbinCode}',
'{wmsInPutAway.EbinCode}',
'{wmsInPutAway.PutawayPriority}',
'0',
'{wmsInPutAway.Describe}',
'{wmsInPutAway.CreateBy}',
getdate(),
'{wmsInPutAway.UpdateBy}',
getdate(),
0,
NULL,
NULL,
NULL,
NULL,
NULL
);
");
sqlList.Add(sqlAddWmsPutAway.ToString());
foreach (WmsInPutAwayDtlResult item in wmsInPutAway.WmsInPutAwayDtlList)
{
StringBuilder sqlAddWmsInPutAwayDtl = new StringBuilder();
item.PUTAWAY_DTL_ID = Convert.ToInt32(new DataRepository(_dataContext).GetSequenceMsg("InPutaway_Dtl_Id"));
item.PUTAWAY_ID = wmsInPutAway.PutawayId;
item.PUTAWAY_DTL_STATUS = 0;
sqlAddWmsInPutAwayDtl.Append($@"
INSERT INTO [WMS_IN_PUTAWAY_DTL] (
[PUTAWAY_DTL_ID],
[PUTAWAY_ID],
[MATERIEL_CODE],
[MATERIEL_NAME],
[MATERIEL_BARCODE],
[MATERIEL_SPEC],
[BATCH_NO],
[PACKAGE_CODE],
[UNIT_CODE],
[PUTAWAY_QTY],
[SUPPLIER_CODE],
[SUPPLIER_NAME],
[PRODUCT_DATE],
[EXP_DATE],
[PUTAWAY_DTL_STATUS],
[INSPECTION_RESULT],
[ITEM_STATUS],
[DESCRIBE],
[CREATE_BY],
[CREATE_TIME],
[UPDATE_BY],
[UPDATE_TIME],
[DATA_VERSION],
[REMARKS1],
[REMARKS2],
[REMARKS3],
[REMARKS4],
[REMARKS5]
)
VALUES
(
'{item.PUTAWAY_DTL_ID}',
'{item.PUTAWAY_ID}',
'{item.MATERIEL_CODE}',
'{item.MATERIEL_NAME}',
'{item.MATERIEL_BARCODE}',
'{item.MATERIEL_SPEC}',
'{item.BATCH_NO}',
'{item.PACKAGE_CODE}',
'{item.UNIT_CODE}',
'{item.PUTAWAY_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(sqlAddWmsInPutAwayDtl.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 EditWmsInPutAwayData(WmsInPutAwayResult wmsInPutAway)
{
try
{
#region SQL语句生成
List sqlList = new List();
string sqlUpdateWmsInPutAway = $@"
UPDATE [WMS_IN_PUTAWAY]
SET
[PUTAWAY_NO] = '{wmsInPutAway.PutawayNo}',
[SOURCE_NO] = '{wmsInPutAway.SourceNo}',
[PUTAWAY_TYPE] = '{wmsInPutAway.PutawayType}',
[TRAY_CODE] = '{wmsInPutAway.TrayCode}',
[PALLET_CODE] = '{wmsInPutAway.PalletCode}',
[SBIN_CODE] = '{wmsInPutAway.SbinCode}',
[EBIN_CODE] = '{wmsInPutAway.EbinCode}',
[PUTAWAY_PRIORITY] = '{wmsInPutAway.PutawayPriority}',
[PUTAWAY_STATUS] = '{wmsInPutAway.PutawayStatus}',
[DESCRIBE] = '{wmsInPutAway.Describe}',
[UPDATE_BY] = '{wmsInPutAway.UpdateBy}',
[UPDATE_TIME] = GETDATE(),
[DATA_VERSION] = [DATA_VERSION] + 1
WHERE
[PUTAWAY_ID] = '{wmsInPutAway.PutawayId}';
";
sqlList.Add(sqlUpdateWmsInPutAway);
foreach (WmsInPutAwayDtlResult item in wmsInPutAway.WmsInPutAwayDtlList)
{
if (item.REMARKS1 == "更新" || item.REMARKS1 == "删除")
{
string sqlUpdateWmsInPutAwayDtl = $@"
UPDATE [WMS_IN_PUTAWAY_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}',
[PUTAWAY_QTY] = '{item.PUTAWAY_QTY}',
[SUPPLIER_CODE] = '{item.SUPPLIER_CODE}',
[SUPPLIER_NAME] = '{item.SUPPLIER_CODE}',
[PRODUCT_DATE] = '{item.PRODUCT_DATE}',
[EXP_DATE] = '{item.EXP_DATE}',
[PUTAWAY_DTL_STATUS] = '{item.PUTAWAY_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
[PUTAWAY_DTL_ID] = '{item.PUTAWAY_DTL_ID}'
AND [PUTAWAY_ID] = '{wmsInPutAway.PutawayId}';
";
sqlList.Add(sqlUpdateWmsInPutAwayDtl);
}
if (item.REMARKS1 == "添加")
{
StringBuilder sqlAddWmsInPutAwayDtl = new StringBuilder();
item.PUTAWAY_DTL_ID = Convert.ToInt32(new DataRepository(_dataContext).GetSequenceMsg("InPutaway_Dtl_Id"));
item.PUTAWAY_ID = wmsInPutAway.PutawayId;
item.PUTAWAY_DTL_STATUS = 0;
sqlAddWmsInPutAwayDtl.Append($@"
INSERT INTO [WMS_IN_PUTAWAY_DTL] (
[PUTAWAY_DTL_ID],
[PUTAWAY_ID],
[MATERIEL_CODE],
[MATERIEL_NAME],
[MATERIEL_BARCODE],
[MATERIEL_SPEC],
[BATCH_NO],
[PACKAGE_CODE],
[UNIT_CODE],
[PUTAWAY_QTY],
[SUPPLIER_CODE],
[SUPPLIER_NAME],
[PRODUCT_DATE],
[EXP_DATE],
[PUTAWAY_DTL_STATUS],
[INSPECTION_RESULT],
[ITEM_STATUS],
[DESCRIBE],
[CREATE_BY],
[CREATE_TIME],
[UPDATE_BY],
[UPDATE_TIME],
[DATA_VERSION],
[REMARKS1],
[REMARKS2],
[REMARKS3],
[REMARKS4],
[REMARKS5]
)
VALUES
(
'{item.PUTAWAY_DTL_ID}',
'{item.PUTAWAY_ID}',
'{item.MATERIEL_CODE}',
'{item.MATERIEL_NAME}',
'{item.MATERIEL_BARCODE}',
'{item.MATERIEL_SPEC}',
'{item.BATCH_NO}',
'{item.PACKAGE_CODE}',
'{item.UNIT_CODE}',
'{item.PUTAWAY_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(sqlAddWmsInPutAwayDtl.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 DeleteWmsInPutAwayData(WmsInPutAwayResult wmsInPutAway)
{
try
{
#region SQL语句生成
string[] putawayIdList = wmsInPutAway.PutawayNo.Split(',');
List sqlList = new List();
foreach (string item in putawayIdList)
{
string sqlDeleteWmsPutAway = $@"
UPDATE WMS_IN_PUTAWAY
SET PUTAWAY_STATUS = '111',
UPDATE_BY = '{wmsInPutAway.UpdateBy}',
UPDATE_TIME = GETDATE(),
DATA_VERSION = DATA_VERSION + 1
WHERE
PUTAWAY_ID = '{item}';
";
string sqlDeleteWmsInPutAwayDtl = $@"
UPDATE WMS_IN_PUTAWAY_DTL
SET PUTAWAY_DTL_STATUS = '111',
UPDATE_BY = '{wmsInPutAway.UpdateBy}',
UPDATE_TIME = GETDATE(),
DATA_VERSION = DATA_VERSION + 1
WHERE
PUTAWAY_ID = '{item}';
";
sqlList.Add(sqlDeleteWmsPutAway);
sqlList.Add(sqlDeleteWmsInPutAwayDtl);
/*
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> GetPutAwayPalletMsgList()
{
try
{
string sql = $@"SELECT * FROM VW_WMS_IN_PUTAWAY_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 ManualPutAwayPallet(WmsInPutAwayResult wmsInPutAway, PutAwayMethodsEnum 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 = '{wmsInPutAway.EbinCode}'";
List resultBinList = new DataRepository(_dataContext).Query(sqlQueryRetreatRegionBinMsg).ToList();
if (resultBinList.Count <= 0)
{
return FailMessageStatus($"上架库位【{wmsInPutAway.EbinCode}】不存在,请重新输入或扫描。");
}
WmsInPutAwayResult wmsInPutAwayInDataBase;
if (methodsEnum == PutAwayMethodsEnum.WMS手动上架 || methodsEnum == PutAwayMethodsEnum.PDA手动上架)
{
string sqlQueryWmsInPutAway = $@"
SELECT
PUTAWAY_ID,
PUTAWAY_NO,
SOURCE_NO,
PUTAWAY_TYPE,
PUTAWAY_TYPE_NAME,
TRAY_CODE,
PALLET_CODE,
SBIN_CODE,
EBIN_CODE,
PUTAWAY_PRIORITY,
PUTAWAY_STATUS,
PUTAWAY_STATUS_NAME,
[DESCRIBE],
CREATE_BY,
CREATE_NAME,
CREATE_TIME,
UPDATE_BY,
UPDATE_NAME,
UPDATE_TIME
FROM
VW_WMS_IN_PUTAWAY
WHERE
TRAY_CODE = '{wmsInPutAway.TrayCode}'
AND PALLET_CODE = '{wmsInPutAway.PalletCode}'
AND PUTAWAY_STATUS < 99
";
List resultPuatAwayList = new DataRepository(_dataContext).Query(sqlQueryWmsInPutAway).ToList();
wmsInPutAwayInDataBase = resultPuatAwayList[0];
}
else
{
wmsInPutAwayInDataBase = wmsInPutAway;
}
string sqlUpdatePutAway = $@"
UPDATE WMS_IN_PUTAWAY
SET PUTAWAY_STATUS = 99,
UPDATE_BY = '{wmsInPutAway.UpdateBy}',
UPDATE_TIME = GETDATE(),
DATA_VERSION = DATA_VERSION + 1
WHERE
PUTAWAY_ID = '{wmsInPutAwayInDataBase.PutawayId}'
";
sqlList.Add(sqlUpdatePutAway);
string sqlUpdatePutAwayDtl = $@"
UPDATE WMS_IN_PUTAWAY_DTL
SET PUTAWAY_DTL_STATUS = 99,
UPDATE_BY = '{wmsInPutAway.UpdateBy}',
UPDATE_TIME = GETDATE(),
DATA_VERSION = DATA_VERSION + 1
WHERE
PUTAWAY_ID = '{wmsInPutAwayInDataBase.PutawayId}'
";
sqlList.Add(sqlUpdatePutAwayDtl);
string sqlQueryWmsPutAwayDtl = $@"
SELECT
*
FROM
VW_WMS_IN_PUTAWAY_DTL
WHERE
PUTAWAY_NO = '{wmsInPutAwayInDataBase.PutawayNo}';
";
List resultDtlList = new DataRepository(_dataContext).Query(sqlQueryWmsPutAwayDtl).ToList();
#region 孙亚龙 20210515 舍弃代码
//foreach (WmsInPutAwayDtlResult item in resultDtlList)
//{
// if (wmsInPutAway.PutawayType == 1)
// {
// string sqlQueryReceiptRecord = $@"SELECT * FROM VW_WMS_IN_RECEIPT_RECORD WHERE TRAY_CODE = '{wmsInPutAway.TrayCode}' AND PALLET_CODE = '{wmsInPutAway.PalletCode}' AND RECEIPT_RECORD_STATUS = 0";
// List resultReceiptRecordList = new DataRepository(_dataContext).Query(sqlQueryReceiptRecord).ToList();
// WmsInReceiptRecordResult recRecordMd = resultReceiptRecordList.Find(x => x.MATERIEL_CODE == item.MATERIEL_CODE && x.BATCH_NO == item.BATCH_NO);
// string sqlQueryWmsReceiptDtl = $@"
// SELECT
// *
// FROM
// VW_WMS_IN_RECEIPT_DTL
// WHERE
// RECEIPT_DTL_ID = '{recRecordMd.RECEIPT_DTL_ID}'
// ";
// List resultRetreatDtlList = new DataRepository(_dataContext).Query(sqlQueryWmsReceiptDtl).ToList();
// if (resultRetreatDtlList[0].PUTAWAY_QTY == 0)
// {
// string sqlUpdateReceiptDtl = $@"
// UPDATE WMS_IN_RECEIPT_DTL
// SET PUTAWAY_QTY = PUTAWAY_QTY + '{item.PUTAWAY_QTY}',
// UPDATE_BY = '{wmsInPutAway.UpdateBy}',
// UPDATE_TIME = GETDATE(),
// DATA_VERSION = DATA_VERSION + 1
// WHERE
// RECEIPT_DTL_ID = '{recRecordMd.RECEIPT_DTL_ID}';
// ";
// sqlList.Add(sqlUpdateReceiptDtl);
// string sqlUpdateReceiptDtl1 = $@"
// IF NOT EXISTS (
// SELECT
// 1
// FROM
// WMS_IN_RECEIPT_DTL
// WHERE
// RECEIPT_DTL_QTY < PUTAWAY_QTY
// AND RECEIPT_DTL_ID = '{recRecordMd.RECEIPT_DTL_ID}'
// ) UPDATE WMS_IN_RECEIPT_DTL
// SET RECEIPT_DTL_STATUS = 99
// WHERE
// RECEIPT_DTL_ID = '{recRecordMd.RECEIPT_DTL_ID}';
// ";
// sqlList.Add(sqlUpdateReceiptDtl1);
// }
// else
// {
// string sqlUpdateReceiptDtl = $@"
// IF NOT EXISTS (
// SELECT
// 1
// FROM
// WMS_IN_RECEIPT_DTL
// WHERE
// RECEIPT_DTL_QTY < PUTAWAY_QTY
// AND RECEIPT_DTL_ID = '{recRecordMd.RECEIPT_DTL_ID}'
// ) UPDATE WMS_IN_RECEIPT_DTL
// SET PUTAWAY_QTY = PUTAWAY_QTY + '{item.PUTAWAY_QTY}',
// RECEIPT_DTL_STATUS = 99,
// UPDATE_BY = '{wmsInPutAway.UpdateBy}',
// UPDATE_TIME = GETDATE(),
// DATA_VERSION = DATA_VERSION + 1
// WHERE
// RECEIPT_DTL_ID = '{recRecordMd.RECEIPT_DTL_ID}' ;
// ELSE
// UPDATE WMS_IN_RECEIPT_DTL
// SET PUTAWAY_QTY = PUTAWAY_QTY + '{item.PUTAWAY_QTY}',
// UPDATE_BY = '{wmsInPutAway.UpdateBy}',
// UPDATE_TIME = GETDATE(),
// DATA_VERSION = DATA_VERSION + 1
// WHERE
// RECEIPT_DTL_ID = '{recRecordMd.RECEIPT_DTL_ID}';
// ";
// sqlList.Add(sqlUpdateReceiptDtl);
// }
// }
// else if (wmsInPutAway.PutawayType == 2)
// {
// string sqlQueryRetreatRecord = $@"SELECT * FROM VW_WMS_IN_RETREAT_RECORD WHERE TRAY_CODE = '{wmsInPutAway.TrayCode}' AND PALLET_CODE = '{wmsInPutAway.PalletCode}' AND RETREAT_RECORD_STATUS = 0";
// List resultRetreatRecordList = new DataRepository(_dataContext).Query(sqlQueryRetreatRecord).ToList();
// WmsInRetreatRecordResult retRecordMd = resultRetreatRecordList.Find(x => x.MATERIEL_CODE == item.MATERIEL_CODE && x.BATCH_NO == item.BATCH_NO);
// string sqlQueryWmsReceiptDtl = $@"
// SELECT
// *
// FROM
// VW_WMS_IN_RETREAT_DTL
// WHERE
// RETREAT_DTL_ID = '{retRecordMd.RETREAT_DTL_ID}'
// ";
// List resultRetreatDtlList = new DataRepository(_dataContext).Query(sqlQueryWmsReceiptDtl).ToList();
// if (resultRetreatDtlList[0].PUTAWAY_QTY == 0)
// {
// string sqlUpdateReceiptDtl = $@"
// UPDATE WMS_IN_RETREAT_DTL
// SET PUTAWAY_QTY = PUTAWAY_QTY + '{item.PUTAWAY_QTY}',
// UPDATE_BY = '{wmsInPutAway.UpdateBy}',
// UPDATE_TIME = GETDATE(),
// DATA_VERSION = DATA_VERSION + 1
// WHERE
// RETREAT_DTL_ID = '{retRecordMd.RETREAT_DTL_ID}';
// ";
// sqlList.Add(sqlUpdateReceiptDtl);
// }
// else
// {
// string sqlUpdateReceiptDtl = $@"
// IF NOT EXISTS (
// SELECT
// 1
// FROM
// WMS_IN_RETREAT_DTL
// WHERE
// RETREAT_QTY < PUTAWAY_QTY
// AND RETREAT_DTL_ID = '{retRecordMd.RETREAT_DTL_ID}'
// ) UPDATE WMS_IN_RETREAT_DTL
// SET PUTAWAY_QTY = PUTAWAY_QTY + '{item.PUTAWAY_QTY}',
// RETREAT_DTL_STATUS = 99,
// UPDATE_BY = '{wmsInPutAway.UpdateBy}',
// UPDATE_TIME = GETDATE(),
// DATA_VERSION = DATA_VERSION + 1
// WHERE
// RETREAT_DTL_ID = '{retRecordMd.RETREAT_DTL_ID}' ;
// ELSE
// UPDATE WMS_IN_RETREAT_DTL
// SET PUTAWAY_QTY = PUTAWAY_QTY + '{item.PUTAWAY_QTY}',
// UPDATE_BY = '{wmsInPutAway.UpdateBy}',
// UPDATE_TIME = GETDATE(),
// DATA_VERSION = DATA_VERSION + 1
// WHERE
// RETREAT_DTL_ID = '{retRecordMd.RETREAT_DTL_ID}';
// ";
// sqlList.Add(sqlUpdateReceiptDtl);
// }
// }
// else if (wmsInPutAway.PutawayType == 6)
// {
// }
// else
// {
// return FailMessageStatus($"上架单类型暂时不能手动上架。");
// }
//}
#endregion
string status = string.Empty;
if (wmsInPutAway.PutawayType == 1)
{
string sqlQueryReceiptRecord = $@"SELECT * FROM VW_WMS_IN_RECEIPT_RECORD WHERE TRAY_CODE = '{wmsInPutAway.TrayCode}' AND PALLET_CODE = '{wmsInPutAway.PalletCode}' AND RECEIPT_RECORD_STATUS = 0";
List resultReceiptRecordList = new DataRepository(_dataContext).Query(sqlQueryReceiptRecord).ToList();
List tmpReceiptIdLst = new List();
foreach (WmsInReceiptRecordResult recRecordMd in resultReceiptRecordList)
{
//WmsInReceiptRecordResult recRecordMd = resultReceiptRecordList.Find(x => x.MATERIEL_CODE == item.MATERIEL_CODE && x.BATCH_NO == item.BATCH_NO);
int receiptId = tmpReceiptIdLst.FirstOrDefault(x => x == recRecordMd.RECEIPT_ID);
if (receiptId <= 0)
{
tmpReceiptIdLst.Add(recRecordMd.RECEIPT_ID);
}
string sqlQueryWmsReceiptDtl = $@"
SELECT
*
FROM
VW_WMS_IN_RECEIPT_DTL
WHERE
RECEIPT_DTL_ID = '{recRecordMd.RECEIPT_DTL_ID}'
";
List resultRetreatDtlList = new DataRepository(_dataContext).Query(sqlQueryWmsReceiptDtl).ToList();
if (resultRetreatDtlList[0].PutawayQty == 0)
{
string sqlUpdateReceiptDtl = $@"
UPDATE WMS_IN_RECEIPT_DTL
SET PUTAWAY_QTY = PUTAWAY_QTY + '{recRecordMd.RECEIPT_QTY}',
UPDATE_BY = '{wmsInPutAway.UpdateBy}',
UPDATE_TIME = GETDATE(),
DATA_VERSION = DATA_VERSION + 1
WHERE
RECEIPT_DTL_ID = '{recRecordMd.RECEIPT_DTL_ID}';
";
sqlList.Add(sqlUpdateReceiptDtl);
string sqlUpdateReceiptDtl1 = $@"
IF NOT EXISTS (
SELECT
1
FROM
WMS_IN_RECEIPT_DTL
WHERE
RECEIPT_DTL_QTY < PUTAWAY_QTY
AND RECEIPT_DTL_ID = '{recRecordMd.RECEIPT_DTL_ID}'
) UPDATE WMS_IN_RECEIPT_DTL
SET RECEIPT_DTL_STATUS = 99
WHERE
RECEIPT_DTL_ID = '{recRecordMd.RECEIPT_DTL_ID}';
";
sqlList.Add(sqlUpdateReceiptDtl1);
}
else
{
string sqlUpdateReceiptDtl = $@"
IF NOT EXISTS (
SELECT
1
FROM
WMS_IN_RECEIPT_DTL
WHERE
RECEIPT_DTL_QTY < PUTAWAY_QTY
AND RECEIPT_DTL_ID = '{recRecordMd.RECEIPT_DTL_ID}'
) UPDATE WMS_IN_RECEIPT_DTL
SET PUTAWAY_QTY = PUTAWAY_QTY + '{recRecordMd.RECEIPT_QTY}',
RECEIPT_DTL_STATUS = 99,
UPDATE_BY = '{wmsInPutAway.UpdateBy}',
UPDATE_TIME = GETDATE(),
DATA_VERSION = DATA_VERSION + 1
WHERE
RECEIPT_DTL_ID = '{recRecordMd.RECEIPT_DTL_ID}' ;
ELSE
UPDATE WMS_IN_RECEIPT_DTL
SET PUTAWAY_QTY = PUTAWAY_QTY + '{recRecordMd.RECEIPT_QTY}',
UPDATE_BY = '{wmsInPutAway.UpdateBy}',
UPDATE_TIME = GETDATE(),
DATA_VERSION = DATA_VERSION + 1
WHERE
RECEIPT_DTL_ID = '{recRecordMd.RECEIPT_DTL_ID}';
";
sqlList.Add(sqlUpdateReceiptDtl);
}
}
status = "55";
foreach (int item in tmpReceiptIdLst)
{
string sqlUpdateReceipt = $@"
IF NOT EXISTS (
SELECT
1
FROM
VW_WMS_IN_RECEIPT_DTL
WHERE
RECEIPT_ID = '{item}'
AND RECEIPT_DTL_STATUS < 99
) UPDATE WMS_IN_RECEIPT
SET RECEIPT_STATUS = 99,
UPDATE_BY = '{wmsInPutAway.UpdateBy}',
UPDATE_TIME = GETDATE(),
DATA_VERSION = DATA_VERSION + 1
WHERE
RECEIPT_ID = '{item}'
";
sqlList.Add(sqlUpdateReceipt);
}
string sqlUpdateReceiptRecord = $@"
UPDATE WMS_IN_RECEIPT_RECORD
SET RECEIPT_RECORD_STATUS = 1,
UPDATE_BY = '{wmsInPutAway.UpdateBy}',
UPDATE_TIME = GETDATE(),
BIN_CODE='{wmsInPutAway.EbinCode}',
DATA_VERSION = DATA_VERSION + 1
WHERE
TRAY_CODE = '{wmsInPutAway.TrayCode}'
AND PALLET_CODE = '{wmsInPutAway.PalletCode}'
AND RECEIPT_RECORD_STATUS = 0;
";// 收货组盘完成
sqlList.Add(sqlUpdateReceiptRecord);
}
else if (wmsInPutAway.PutawayType == 2)
{
string sqlQueryRetreatRecord = $@"SELECT * FROM VW_WMS_IN_RETREAT_RECORD WHERE TRAY_CODE = '{wmsInPutAway.TrayCode}' AND PALLET_CODE = '{wmsInPutAway.PalletCode}' AND RETREAT_RECORD_STATUS = 0";
List resultRetreatRecordList = new DataRepository(_dataContext).Query(sqlQueryRetreatRecord).ToList();
List tmpRetreatIdLst = new List();
foreach (WmsInRetreatRecordResult retRecordMd in resultRetreatRecordList)
{
//WmsInRetreatRecordResult retRecordMd = resultRetreatRecordList.Find(x => x.MATERIEL_CODE == item.MATERIEL_CODE && x.BATCH_NO == item.BATCH_NO);
int receiptId = tmpRetreatIdLst.FirstOrDefault(x => x == retRecordMd.RETREAT_ID);
if (receiptId <= 0)
{
tmpRetreatIdLst.Add(retRecordMd.RETREAT_ID);
}
string sqlQueryWmsReceiptDtl = $@"
SELECT
*
FROM
VW_WMS_IN_RETREAT_DTL
WHERE
RETREAT_DTL_ID = '{retRecordMd.RETREAT_DTL_ID}'
";
List resultRetreatDtlList = new DataRepository(_dataContext).Query(sqlQueryWmsReceiptDtl).ToList();
if (resultRetreatDtlList[0].PUTAWAY_QTY == 0)
{
string sqlUpdateReceiptDtl = $@"
UPDATE WMS_IN_RETREAT_DTL
SET PUTAWAY_QTY = PUTAWAY_QTY + '{retRecordMd.RETREAT_QTY}',
UPDATE_BY = '{wmsInPutAway.UpdateBy}',
UPDATE_TIME = GETDATE(),
DATA_VERSION = DATA_VERSION + 1
WHERE
RETREAT_DTL_ID = '{retRecordMd.RETREAT_DTL_ID}';
";
sqlList.Add(sqlUpdateReceiptDtl);
}
else
{
string sqlUpdateReceiptDtl = $@"
IF NOT EXISTS (
SELECT
1
FROM
WMS_IN_RETREAT_DTL
WHERE
RETREAT_QTY < PUTAWAY_QTY
AND RETREAT_DTL_ID = '{retRecordMd.RETREAT_DTL_ID}'
) UPDATE WMS_IN_RETREAT_DTL
SET PUTAWAY_QTY = PUTAWAY_QTY + '{retRecordMd.RETREAT_QTY}',
RETREAT_DTL_STATUS = 99,
UPDATE_BY = '{wmsInPutAway.UpdateBy}',
UPDATE_TIME = GETDATE(),
DATA_VERSION = DATA_VERSION + 1
WHERE
RETREAT_DTL_ID = '{retRecordMd.RETREAT_DTL_ID}' ;
ELSE
UPDATE WMS_IN_RETREAT_DTL
SET PUTAWAY_QTY = PUTAWAY_QTY + '{retRecordMd.RETREAT_QTY}',
UPDATE_BY = '{wmsInPutAway.UpdateBy}',
UPDATE_TIME = GETDATE(),
DATA_VERSION = DATA_VERSION + 1
WHERE
RETREAT_DTL_ID = '{retRecordMd.RETREAT_DTL_ID}';
";
sqlList.Add(sqlUpdateReceiptDtl);
}
}
status = "55";
foreach (int item in tmpRetreatIdLst)
{
string sqlUpdateReceipt = $@"
IF NOT EXISTS (
SELECT
1
FROM
VW_WMS_IN_RETREAT_DTL
WHERE
RETREAT_ID = '{item}'
AND RETREAT_DTL_STATUS < 99
) UPDATE WMS_IN_RETREAT
SET RETREAT_STATUS = 99,
UPDATE_BY = '{wmsInPutAway.UpdateBy}',
UPDATE_TIME = GETDATE(),
DATA_VERSION = DATA_VERSION + 1
WHERE
RETREAT_ID = '{item}'
";
sqlList.Add(sqlUpdateReceipt);
}
string sqlUpdateReceiptRecord = $@"
UPDATE WMS_IN_RETREAT_RECORD
SET RETREAT_RECORD_STATUS = 1,
UPDATE_BY = '{wmsInPutAway.UpdateBy}',
UPDATE_TIME = GETDATE(),
DATA_VERSION = DATA_VERSION + 1
WHERE
TRAY_CODE = '{wmsInPutAway.TrayCode}'
AND PALLET_CODE = '{wmsInPutAway.PalletCode}'
AND RETREAT_RECORD_STATUS = 0;
";
sqlList.Add(sqlUpdateReceiptRecord);
}
else if (wmsInPutAway.PutawayType == 6)
{
status = "54";
}
else
{
return FailMessageStatus($"上架单类型暂时不能手动上架。");
}
string sqlUpdateWmsStkTray = $@"
UPDATE WMS_STK_TRAY
SET TRAY_STATUS = '{status}',
UPDATE_BY = '{wmsInPutAway.UpdateBy}',
UPDATE_TIME = GETDATE(),
DATA_VERSION = DATA_VERSION + 1
WHERE
TRAY_CODE = '{wmsInPutAway.TrayCode}';
";
string sqlUpdateWmsStkTrayDtl = $@"
UPDATE WMS_STK_TRAY_DTL
SET TRAY_DTL_STATUS = '{status}',
UPDATE_BY = '{wmsInPutAway.UpdateBy}',
UPDATE_TIME = GETDATE(),
DATA_VERSION = DATA_VERSION + 1
WHERE
TRAY_ID IN (
SELECT
TRAY_ID
FROM
WMS_STK_TRAY
WHERE
TRAY_CODE = '{wmsInPutAway.TrayCode}'
);
";
string sqlQueryWmsStkTray = $@"SELECT * FROM VW_WMS_STK_TRAY WHERE TRAY_CODE = '{wmsInPutAway.TrayCode}' AND TRAY_STATUS < 99";
List resultWmsStkTrayList = new DataRepository(_dataContext).Query(sqlQueryWmsStkTray).ToList();
string sqlAddWmsStkBalance = $@"
INSERT INTO [WMS_STK_BALANCE] (
[BALANCE_ID],
[AREA_CODE],
[AREA_NAME],
[WAREHOUSE_CODE],
[WAREHOUSE_NAME],
[REGION_CODE],
[REGION_NAME],
[BIN_CODE],
[BIN_NAME],
[TRAY_ID],
[TRAY_CODE],
[PALLET_CODE],
[INWH_TIME],
[BALANCE_STATUS],
[DESCRIBE],
[CREATE_BY],
[CREATE_TIME],
[UPDATE_BY],
[UPDATE_TIME],
[DATA_VERSION],
[REMARKS1],
[REMARKS2],
[REMARKS3],
[REMARKS4],
[REMARKS5]
)
VALUES
(
'{Convert.ToInt32(new DataRepository(_dataContext).GetSequenceMsg("Balance_Id"))}',
'AreaTest1',
'区域测试1',
'WarehouseTest1',
'仓库测试1',
'{resultBinList[0].REGION_CODE}',
'{resultBinList[0].REGION_NAME}',
'{resultBinList[0].BIN_CODE}',
'{resultBinList[0].BIN_NAME}',
'{resultWmsStkTrayList[0].TRAY_ID}',
'{wmsInPutAway.TrayCode}',
'{wmsInPutAway.PalletCode}',
getdate(),
'55',
'{wmsInPutAwayInDataBase.Describe}',
'{wmsInPutAway.CreateBy}',
getdate(),
'{wmsInPutAway.UpdateBy}',
getdate(),
0,
NULL,
NULL,
NULL,
NULL,
NULL
);
";
sqlList.Add($@"update WMS_STK_BALANCE set BALANCE_STATUS = 99,UPDATE_BY = '{wmsInPutAway.UpdateBy}',UPDATE_TIME = getdate(),DATA_VERSION = DATA_VERSION + 1 where TRAY_CODE = '{wmsInPutAway.TrayCode}'");
sqlList.Add(sqlUpdateWmsStkTray);
sqlList.Add(sqlUpdateWmsStkTrayDtl);
if (wmsInPutAway.PutawayType == 6)
{
sqlList.Add($"update WMS_STK_BALANCE set BALANCE_STATUS = '{status}',UPDATE_BY = '{wmsInPutAway.UpdateBy}',UPDATE_TIME = getdate(),DATA_VERSION = DATA_VERSION + 1 where TRAY_CODE in (select TRAY_CODE from WMS_STK_INVENTORY_DTL where TRAY_CODE = '{wmsInPutAway.TrayCode}')");
}
else
{
sqlList.Add(sqlAddWmsStkBalance);
}
sqlList.Add($@"
UPDATE WMS_TSK_TASK
SET CLOC_CODE = ELOC_CODE,
UPDATE_BY = '{wmsInPutAway.UpdateBy}',
UPDATE_TIME = GETDATE(),
DATA_VERSION = DATA_VERSION + 1,
TASK_STATUS = 99,
TASK_MSG = '【{methodsEnum}】-- 更新WMS大任务为:【任务完成】状态'
WHERE
TRAY_CODE = '{wmsInPutAway.TrayCode}'
AND TASK_STATUS < 99
");
#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 2021 0224 孙亚龙新增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 sqlQueryWmsInPutAway = $@"
SELECT
PUTAWAY_ID,
PUTAWAY_NO,
SOURCE_NO,
PUTAWAY_TYPE,
PUTAWAY_TYPE_NAME,
TRAY_CODE,
PALLET_CODE,
SBIN_CODE,
EBIN_CODE,
PUTAWAY_PRIORITY,
PUTAWAY_STATUS,
PUTAWAY_STATUS_NAME,
[DESCRIBE],
CREATE_BY,
CREATE_NAME,
CREATE_TIME,
UPDATE_BY,
UPDATE_NAME,
UPDATE_TIME
FROM
VW_WMS_IN_PUTAWAY
WHERE
TRAY_CODE = '{parm.TrayCode}' AND PUTAWAY_STATUS < 99
";
List resultPuatAwayList = new DataRepository(_dataContext).Query(sqlQueryWmsInPutAway).ToList();
if (resultPuatAwayList == null || resultPuatAwayList.Count <= 0)
{
return FailMessageStatus($"WCS上报托盘运行状态的参数错误,无法获取托盘上架单信息!");
}
WmsTaskResult wmsTaskResultDataBase = resultList[0];
WmsInPutAwayResult wmsInPutAwayInDataBase = resultPuatAwayList[0];
if (parm.palletCurrRunStatus == PalletTaskRunStatusEnum.托盘入库执行中)
{
List sqlList = new List();
string sqlUpdatePutAway = $@"
UPDATE WMS_IN_PUTAWAY
SET PUTAWAY_STATUS = 55,
SBIN_CODE = '{wmsTaskResultDataBase.SBIN_CODE}',
EBIN_CODE = '{wmsTaskResultDataBase.EBIN_CODE}',
UPDATE_BY = '{parm.OperateUserId}',
UPDATE_TIME = GETDATE(),
DATA_VERSION = DATA_VERSION + 1
WHERE
PUTAWAY_ID = '{wmsInPutAwayInDataBase.PutawayId}'
";
sqlList.Add(sqlUpdatePutAway);
string sqlUpdatePutAwayDtl = $@"
UPDATE WMS_IN_PUTAWAY_DTL
SET PUTAWAY_DTL_STATUS = 55,
UPDATE_BY = '{parm.OperateUserId}',
UPDATE_TIME = GETDATE(),
DATA_VERSION = DATA_VERSION + 1
WHERE
PUTAWAY_ID = '{wmsInPutAwayInDataBase.PutawayId}'
";
sqlList.Add(sqlUpdatePutAwayDtl);
int row = new DataRepository(_dataContext).ExecSqlListTran(sqlList);
if (row > 0)
{
return SuccessMessageStatus("WCS上报托盘运行状态成功!", row);
}
else
{
return FailMessageStatus("WCS上报托盘运行状态失败!", row);
}
}
else
{
return ManualPutAwayPallet(wmsInPutAwayInDataBase, PutAwayMethodsEnum.WCS自动上架);
}
}
catch (Exception ex)
{
return FailMessageStatus($"WCS上报托盘运行状态函数发生异常:【{ex.Message}】");
}
}
#endregion
}
}