123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758 |
- 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.Common;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.ServiceProcess;
- //using System.Runtime.InteropServices.WindowsRuntime;
- using System.Text;
- using System.Threading.Tasks;
- using WestDistance.DapperORM.Repository.Repositorys;
- namespace NXWMS.Service.NXWMS.Instock
- {
- /// <summary>
- /// 到货通知单服务
- /// </summary>
- [AutoInject(typeof(IWmsInArrivalService), InjectType.Scope)]
- public class WmsInArrivalService : ServiceBase, IWmsInArrivalService
- {
- #region 全局变量、构造注入
- /// <summary>
- /// 系统操作仓储中转
- /// </summary>
- private IDataRepositoryContext _dataContext;
- /// <summary>
- /// SQL节点仓储
- /// </summary>
- private ISQLNodeRepository _iSQLNodeRepository;
- /// <summary>
- /// 配置
- /// </summary>
- private IConfiguration _configuration;
- private IErpSyncServer _syncServer;
- /// <summary>
- /// 构造注入
- /// </summary>
- /// <param name="dataRepositoryContext"></param>
- /// <param name="configuration"></param>
- /// <param name="iSQLNodeRepository"></param>
- public WmsInArrivalService(IDataRepositoryContext dataRepositoryContext, IConfiguration configuration, ISQLNodeRepository iSQLNodeRepository, IErpSyncServer erpSyncServer)
- {
- this._dataContext = dataRepositoryContext;
- this._configuration = configuration;
- this._iSQLNodeRepository = iSQLNodeRepository;
- this._syncServer = erpSyncServer;
- }
- #endregion
- #region 到货通知单主表
- /// <summary>
- /// 分页查询到货通知单主表数据
- /// </summary>
- /// <param name="arrivalSearchMd">到货通知单查询条件实体类对象</param>
- /// <returns></returns>
- public OperateResultInfo<List<WmsInArrivalResult>> GetWmsInArrivalListForPage(WmsInArrivalSearchMd arrivalSearchMd)
- {
- try
- {
- #region SQL语句生成
- StringBuilder sqlCondition = new StringBuilder();
- if (!string.IsNullOrEmpty(arrivalSearchMd.ArrivalNoMsg))
- {
- sqlCondition.Append($" AND ARRIVAL_NO = '{arrivalSearchMd.ArrivalNoMsg}'");
- }
- if (!string.IsNullOrEmpty(arrivalSearchMd.SourceNoMsg))
- {
- sqlCondition.Append($" AND SOURCE_BILL_NO = '{arrivalSearchMd.SourceNoMsg}'");
- }
- if (!string.IsNullOrEmpty(arrivalSearchMd.WarehouseMsg))
- {
- sqlCondition.Append($" AND WAREHOUSE_CODE = '{arrivalSearchMd.WarehouseMsg}'");
- }
- if (!string.IsNullOrEmpty(arrivalSearchMd.PurchaseStaffMsg))
- {
- sqlCondition.Append($" AND PURCHASE_STAFF = '{arrivalSearchMd.PurchaseStaffMsg}'");
- }
- if (!string.IsNullOrEmpty(arrivalSearchMd.ArrivalTypeMsg))
- {
- sqlCondition.Append($" AND ARRIVAL_TYPE = '{arrivalSearchMd.ArrivalTypeMsg}'");
- }
- if (!string.IsNullOrEmpty(arrivalSearchMd.ArrivalStatus))
- {
- sqlCondition.Append($" AND ARRIVAL_STATUS = '{arrivalSearchMd.ArrivalStatus}'");
- }
- if (!string.IsNullOrEmpty(arrivalSearchMd.MaterialMsg))
- {
- sqlCondition.Append($" AND ARRIVAL_ID IN (SELECT ARRIVAL_ID FROM VW_WMS_IN_ARRIVAL_DTL WHERE MATERIEL_CODE LIKE '%{arrivalSearchMd.MaterialMsg}%' OR MATERIEL_NAME LIKE '%{arrivalSearchMd.MaterialMsg}%' OR MATERIEL_BARCODE LIKE '%{arrivalSearchMd.MaterialMsg}%')");
- }
- if (!string.IsNullOrEmpty(arrivalSearchMd.SupplierMsg))
- {
- sqlCondition.Append($" AND ARRIVAL_ID IN (SELECT ARRIVAL_ID FROM VW_WMS_IN_ARRIVAL_DTL WHERE SUPPLIER_CODE LIKE '%{arrivalSearchMd.SupplierMsg}%' OR SUPPLIER_NAME LIKE '%{arrivalSearchMd.SupplierMsg}%')");
- }
- if (!string.IsNullOrEmpty(arrivalSearchMd.StartCreateTime))
- {
- sqlCondition.Append($" AND CREATE_TIME >= '{arrivalSearchMd.StartCreateTime}'");
- }
- if (!string.IsNullOrEmpty(arrivalSearchMd.EndCreateTime))
- {
- sqlCondition.Append($" AND CREATE_TIME <= '{arrivalSearchMd.EndCreateTime}'");
- }
- //StringBuilder sqlCountArrivalData = new StringBuilder($@"SELECT COUNT(1) FROM VW_WMS_IN_ARRIVAL WHERE 1=1");
- //sqlCountArrivalData.Append(sqlCondition.ToString());
- int pageStartIndex = (arrivalSearchMd.PageNum - 1) * arrivalSearchMd.EveryPageQty;
- int pageEndIndex = arrivalSearchMd.PageNum * arrivalSearchMd.EveryPageQty;
- //StringBuilder sqlQueryArrivalData = new StringBuilder($@"
- // SELECT
- // ARRIVAL_ID,
- // ARRIVAL_NO,
- // SOURCE_BILL_NO,
- // ARRIVAL_TYPE,
- // ARRIVAL_TYPE_NAME,
- // PURCHASE_ORDER_NO,
- // PURCHASE_STAFF,
- // PURCHASE_TIME,
- // WAREHOUSE_CODE,
- // WAREHOUSE_NAME,
- // ARRIVAL_STATUS,
- // ARRIVAL_STATUS_NAME,
- // EXPECT_ARRIVAL_TIME,
- // ACTUAL_ARRIVAL_TIME,
- // DESCRIBE,
- // CREATE_BY,
- // CREATE_NAME,
- // CREATE_TIME,
- // UPDATE_BY,
- // UPDATE_NAME,
- // UPDATE_TIME
- // FROM
- // VW_WMS_IN_ARRIVAL
- // WHERE
- // 1=1
- // {sqlCondition}
- // ORDER BY UPDATE_TIME DESC,CREATE_TIME DESC
- // OFFSET {pageStartIndex} ROWS
- // FETCH NEXT {arrivalSearchMd.EveryPageQty} ROWS ONLY
- // ");
- StringBuilder sqlQueryArrivalData = new StringBuilder($@"
- SELECT
- ARRIVAL_ID,
- ARRIVAL_NO,
- SOURCE_BILL_NO,
- ARRIVAL_TYPE,
- ARRIVAL_TYPE_NAME,
- PURCHASE_ORDER_NO,
- PURCHASE_STAFF,
- PURCHASE_TIME,
- WAREHOUSE_CODE,
- WAREHOUSE_NAME,
- ARRIVAL_STATUS,
- ARRIVAL_STATUS_NAME,
- EXPECT_ARRIVAL_TIME,
- ACTUAL_ARRIVAL_TIME,
- DESCRIBE,
- CREATE_BY,
- CREATE_NAME,
- CREATE_TIME,
- UPDATE_BY,
- UPDATE_NAME,
- UPDATE_TIME
- FROM
- VW_WMS_IN_ARRIVAL
- WHERE
- 1=1
- {sqlCondition}
-
-
- ");
- #endregion
- //int dataCount = Convert.ToInt32(new DataRepository<object>(_dataContext).ExecuteScalar(sqlCountArrivalData.ToString()));
- //List<WmsInArrivalResult> resultList = new DataRepository<WmsInArrivalResult>(_dataContext).Query(sqlQueryArrivalData.ToString()).ToList();
- (var count, var data) = new DataRepository<WmsInArrivalResult>(_dataContext).QueryPageByCount(sqlQueryArrivalData.ToString(), " UPDATE_TIME DESC,CREATE_TIME", arrivalSearchMd.EveryPageQty, arrivalSearchMd.PageNum, true);
- OperateResultInfo<List<WmsInArrivalResult>> retDataMsg = SuccessStatus(data.ToList());
- retDataMsg.DataCount = count;
- return retDataMsg;
- }
- catch (Exception ex)
- {
- return FailMessageStatus<List<WmsInArrivalResult>>($"查询到货通知单数据发生异常,【{ex.Message}】", null);
- }
- }
- /// <summary>
- /// 获取未完成的到货通知单数据
- /// </summary>
- /// <returns></returns>
- public OperateResultInfo<List<WmsInArrivalResult>> GetWmsInArrivalList_InComplete()
- {
- try
- {
- StringBuilder sqlQueryArrivalData = new StringBuilder($@"
- SELECT
- ARRIVAL_ID,
- ARRIVAL_NO,
- SOURCE_BILL_NO,
- ARRIVAL_TYPE,
- ARRIVAL_TYPE_NAME,
- PURCHASE_ORDER_NO,
- PURCHASE_STAFF,
- PURCHASE_TIME,
- WAREHOUSE_CODE,
- WAREHOUSE_NAME,
- ARRIVAL_STATUS,
- ARRIVAL_STATUS_NAME,
- EXPECT_ARRIVAL_TIME,
- ACTUAL_ARRIVAL_TIME,
- DESCRIBE,
- CREATE_BY,
- CREATE_NAME,
- CREATE_TIME,
- UPDATE_BY,
- UPDATE_NAME,
- UPDATE_TIME
- FROM
- VW_WMS_IN_ARRIVAL
- WHERE
- 1=1
- AND ARRIVAL_STATUS < 99
- AND ARRIVAL_ID IN (SELECT ARRIVAL_ID FROM VW_WMS_IN_ARRIVAL_DTL WHERE ARRIVAL_DTL_STATUS < 99 AND RECEIPT_QTY < ARRIVAL_QTY)
- ORDER BY UPDATE_TIME DESC,CREATE_TIME DESC; ");
- List<WmsInArrivalResult> resultList = new DataRepository<WmsInArrivalResult>(_dataContext).Query(sqlQueryArrivalData.ToString()).ToList();
- OperateResultInfo<List<WmsInArrivalResult>> retDataMsg = SuccessStatus(resultList);
- return retDataMsg;
- }
- catch (Exception ex)
- {
- return FailMessageStatus<List<WmsInArrivalResult>>($"查询为完成的到货通知单数据发生异常,【{ex.Message}】", null);
- }
- }
- /// <summary>
- /// 根据到货通知单主键Id查询到货通知单明细数据
- /// </summary>
- /// <param name="wmsInArrival">到货通知单实体类对象</param>
- /// <returns></returns>
- public OperateResultInfo<WmsInArrivalResult> GetWmsInArrivalDtlListForID(WmsInArrivalResult wmsInArrival)
- {
- try
- {
- #region SQL语句生成
- string sqlQueryWmsInArrival = $@"
- SELECT
- ARRIVAL_ID,
- ARRIVAL_NO,
- SOURCE_BILL_NO,
- ARRIVAL_TYPE,
- ARRIVAL_TYPE_NAME,
- PURCHASE_ORDER_NO,
- PURCHASE_STAFF,
- PURCHASE_TIME,
- WAREHOUSE_CODE,
- WAREHOUSE_NAME,
- ARRIVAL_STATUS,
- ARRIVAL_STATUS_NAME,
- EXPECT_ARRIVAL_TIME,
- ACTUAL_ARRIVAL_TIME,
- DESCRIBE,
- CREATE_BY,
- CREATE_NAME,
- CREATE_TIME,
- UPDATE_BY,
- UPDATE_NAME,
- UPDATE_TIME
- FROM
- VW_WMS_IN_ARRIVAL
- WHERE
- ARRIVAL_ID = '{wmsInArrival.ArrivalId}'
- ";
- string strWhere = string.Empty;
- if (wmsInArrival.Remarks1 == "查询已删除明细数据")
- {
- strWhere = "1=1";
- }
- else
- {
- strWhere = "ARRIVAL_DTL_STATUS < 99";
- }
- string sqlQueryWmsInArivalDtl = $@"
- SELECT
- *
- FROM
- VW_WMS_IN_ARRIVAL_DTL
- WHERE
- ARRIVAL_ID = '{wmsInArrival.ArrivalId}'
- AND {strWhere}
- ORDER BY ARRIVAL_DTL_STATUS,ARRIVAL_DTL_ID
- ";
- #endregion
- List<WmsInArrivalResult> resultList = new DataRepository<WmsInArrivalResult>(_dataContext).Query(sqlQueryWmsInArrival).ToList();
- List<WmsInArrivalDtlResult> resultDtlList = new DataRepository<WmsInArrivalDtlResult>(_dataContext).Query(sqlQueryWmsInArivalDtl).ToList();
- wmsInArrival = resultList[0];
- wmsInArrival.WmsInArrivalDtlList = resultDtlList;
- OperateResultInfo<WmsInArrivalResult> retDataMsg = SuccessStatus(wmsInArrival);
- return retDataMsg;
- }
- catch (Exception ex)
- {
- return FailMessageStatus<WmsInArrivalResult>($"查询到货通知单明细数据发生异常,【{ex.Message}】", null);
- }
- }
- /// <summary>
- /// 根据到货通知单号查询到货通知单明细数据
- /// </summary>
- /// <param name="wmsInArrival">到货通知单实体类对象</param>
- /// <returns></returns>
- public async Task<OperateResultInfo<List<WmsInArrivalDtlResult>>> GetWmsInArrivalDtlDataForNo(WmsInArrivalResult wmsInArrival)
- {
-
-
- try
- {
- var info = await this._syncServer.UpdateArrival(wmsInArrival.ArrivalNo);
- string sqlCondition = $" AND RECEIPT_QTY < ARRIVAL_QTY";
- if (wmsInArrival.Remarks1 == "编辑收货单")
- {
- sqlCondition = "";
- }
- string sqlQueryWmsInArivalDtl = $@"
- SELECT
- *
- FROM
- VW_WMS_IN_ARRIVAL_DTL
- WHERE
- ARRIVAL_NO = '{wmsInArrival.ArrivalNo}'
- {sqlCondition}
- AND ARRIVAL_DTL_STATUS < 99
- AND INSPECTION_RESULT = 'OK'
- ";
- List<WmsInArrivalDtlResult> resultDtlList = new DataRepository<WmsInArrivalDtlResult>(_dataContext).Query(sqlQueryWmsInArivalDtl).ToList();
- OperateResultInfo<List<WmsInArrivalDtlResult>> retDataMsg = SuccessStatus(resultDtlList);
- return retDataMsg;
- }
- catch (Exception ex)
- {
- return FailMessageStatus<List<WmsInArrivalDtlResult>>($"查询到货通知单明细数据发生异常,【{ex.Message}】", null);
- }
- }
- /// <summary>
- /// 查询待检验的到货通知单数据
- /// </summary>
- /// <returns></returns>
- public OperateResultInfo<List<WmsInArrivalDtlResult>> GetAllWaitForQaArrivalDtlData()
- {
- try
- {
- string sqlQueryWaitQaReceiptDtl = "SELECT * FROM VW_WMS_IN_ARRIVAL_DTL WHERE ARRIVAL_DTL_STATUS = 0 AND INSPECTION_RESULT = 'Wait'";
- List<WmsInArrivalDtlResult> resultList = new DataRepository<WmsInArrivalDtlResult>(_dataContext).Query(sqlQueryWaitQaReceiptDtl).ToList();
- OperateResultInfo<List<WmsInArrivalDtlResult>> retDataMsg = SuccessStatus(resultList);
- return retDataMsg;
- }
- catch (Exception ex)
- {
- return FailMessageStatus<List<WmsInArrivalDtlResult>>($"查询待检验的到货通知单数据发生异常,【{ex.Message}】", null);
- }
- }
- /// <summary>
- /// 新增到货通知单数据
- /// </summary>
- /// <param name="wmsInArrival">到货通知单主表对象</param>
- /// <returns></returns>
- public OperateResultInfo AddWmsInArrivalData(WmsInArrivalResult wmsInArrival)
- {
- try
- {
- #region SQL语句生成
- List<string> sqlList = new List<string>();
- wmsInArrival.ArrivalId = Convert.ToInt32(new DataRepository<object>(_dataContext).GetSequenceMsg("Arrival_Id"));
- wmsInArrival.ArrivalNo = new DataRepository<object>(_dataContext).GetSequenceMsg("Arrival_No");
- wmsInArrival.ArrivalStatus = 0;
- StringBuilder sqlAddWmsInArrival = new StringBuilder();
- string purchaseTime = DateTime.Compare(wmsInArrival.PurchaseTime, new DateTime()) == 0 ? "NULL" : $"'{wmsInArrival.PurchaseTime}'";
- string expectArrTime = DateTime.Compare(wmsInArrival.ExpectArrivalTime, new DateTime()) == 0 ? "NULL" : $"'{wmsInArrival.ExpectArrivalTime}'";
- sqlAddWmsInArrival.Append($@"
- INSERT INTO [WMS_IN_ARRIVAL] (
- [ARRIVAL_ID],
- [ARRIVAL_NO],
- [SOURCE_BILL_NO],
- [ARRIVAL_TYPE],
- [PURCHASE_ORDER_NO],
- [PURCHASE_TIME],
- [PURCHASE_STAFF],
- [WAREHOUSE_CODE],
- [WAREHOUSE_NAME],
- [ARRIVAL_STATUS],
- [EXPECT_ARRIVAL_TIME],
- [ACTUAL_ARRIVAL_TIME],
- [DESCRIBE],
- [CREATE_BY],
- [CREATE_TIME],
- [UPDATE_BY],
- [UPDATE_TIME],
- [DATA_VERSION],
- [REMARKS1],
- [REMARKS2],
- [REMARKS3],
- [REMARKS4],
- [REMARKS5]
- )
- VALUES
- (
- '{wmsInArrival.ArrivalId}',
- '{wmsInArrival.ArrivalNo}',
- '{wmsInArrival.SourceBillNo}',
- '{wmsInArrival.ArrivalType}',
- '{wmsInArrival.PurchaseOrderNo}',
- {purchaseTime},
- '{wmsInArrival.PurchaseStaff}',
- '{wmsInArrival.WarehouseCode}',
- '{wmsInArrival.WarehouseName}',
- '{wmsInArrival.ArrivalStatus}',
- {expectArrTime},
- NULL,
- '{wmsInArrival.Describe}',
- '{wmsInArrival.CreateBy}',
- GETDATE(),
- '{wmsInArrival.UpdateBy}',
- GETDATE(),
- '0',
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- );
- ");
- sqlList.Add(sqlAddWmsInArrival.ToString());
- foreach (WmsInArrivalDtlResult item in wmsInArrival.WmsInArrivalDtlList)
- {
- StringBuilder sqlAddWmsInArrivalDtl = new StringBuilder();
- item.ArrivalDtlId = Convert.ToInt32(new DataRepository<object>(_dataContext).GetSequenceMsg("Arrival_Dtl_Id"));
- item.ArrivalId = wmsInArrival.ArrivalId;
- item.ArrivalDtlStatus = 0;
- sqlAddWmsInArrivalDtl.Append($@"
- INSERT INTO [WMS_IN_ARRIVAL_DTL] (
- [ARRIVAL_DTL_ID],
- [ARRIVAL_ID],
- [MATERIEL_CODE],
- [MATERIEL_NAME],
- [MATERIEL_BARCODE],
- [BATCH_NO],
- [PACKAGE_CODE],
- [UNIT_CODE],
- [ARRIVAL_QTY],
- [RECEIPT_QTY],
- [SUPPLIER_CODE],
- [SUPPLIER_NAME],
- [PRODUCT_DATE],
- [EXP_DATE],
- [ARRIVAL_DTL_STATUS],
- [INSPECTION_RESULT],
- [SOURCE_BILL_DTL_IDX],
- [PURCHASE_ORDER_DTL_IDX],
- [PURCHASE_ORDER_DTL_STATUS],
- [DESCRIBE],
- [CREATE_BY],
- [CREATE_TIME],
- [UPDATE_BY],
- [UPDATE_TIME],
- [DATA_VERSION],
- [REMARKS1],
- [REMARKS2],
- [REMARKS3],
- [REMARKS4],
- [REMARKS5]
- )
- VALUES
- (
- '{item.ArrivalDtlId}',
- '{item.ArrivalId}',
- '{item.MaterielCode}',
- '{item.MaterielName}',
- '{item.MaterielBarcode}',
- '{item.BatchNo}',
- '{item.PackageCode}',
- '{item.UnitCode}',
- '{item.ArrivalQty}',
- 0,
- '{item.SupplierCode}',
- '{item.SupplierName}',
- '{item.ProductDate}',
- '{item.ExpDate}',
- '{item.ArrivalDtlStatus}',
- 'OK',
- NULL,
- NULL,
- NULL,
- '{item.Describe}',
- '{item.CreateBy}',
- GETDATE(),
- '{item.UpdateBy}',
- GETDATE(),
- '0',
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- );
- ");
- sqlList.Add(sqlAddWmsInArrivalDtl.ToString());
- }
- #endregion
- int row = new DataRepository<object>(_dataContext).ExecSqlListTran(sqlList);
- if (row > 0)
- {
- return SuccessMessageStatus("新增到货通知单数据成功!", row);
- }
- else
- {
- return FailMessageStatus("新增到货通知单数据失败!", row);
- }
- }
- catch (Exception ex)
- {
- return FailMessageStatus($"新增到货通知单数据发生异常,【{ex.Message}】");
- }
- }
- /// <summary>
- /// 修改到货通知单数据
- /// </summary>
- /// <param name="wmsInArrival">到货通知单主表对象</param>
- /// <returns></returns>
- public OperateResultInfo EditWmsInArrivalData(WmsInArrivalResult wmsInArrival)
- {
- try
- {
- #region SQL语句生成
- List<string> sqlList = new List<string>();
- string actualArrTime = DateTime.Compare(wmsInArrival.ActualArrivalTime, new DateTime()) == 0 ? "NULL" : $"'{wmsInArrival.ActualArrivalTime}'";
- string expectArrTime = DateTime.Compare(wmsInArrival.ExpectArrivalTime, new DateTime()) == 0 ? "NULL" : $"'{wmsInArrival.ExpectArrivalTime}'";
- string purchaseTime = DateTime.Compare(wmsInArrival.PurchaseTime, new DateTime()) == 0 ? "NULL" : $"'{wmsInArrival.PurchaseTime}'";
- string sqlUpdateWmsInArrival = $@"
- UPDATE [WMS_IN_ARRIVAL]
- SET
- [ARRIVAL_NO] = '{wmsInArrival.ArrivalNo}',
- [SOURCE_BILL_NO] = '{wmsInArrival.SourceBillNo}',
- [ARRIVAL_TYPE] = '{wmsInArrival.ArrivalType}',
- [PURCHASE_ORDER_NO] = '{wmsInArrival.PurchaseOrderNo}',
- [PURCHASE_TIME] = {purchaseTime},
- [PURCHASE_STAFF] = '{wmsInArrival.PurchaseStaff}',
- [WAREHOUSE_CODE] = '{wmsInArrival.WarehouseCode}',
- [WAREHOUSE_NAME] = '{wmsInArrival.WarehouseName}',
- [ARRIVAL_STATUS] = '{wmsInArrival.ArrivalStatus}',
- [EXPECT_ARRIVAL_TIME] = {expectArrTime},
- [ACTUAL_ARRIVAL_TIME] = {actualArrTime},
- [DESCRIBE] = '{wmsInArrival.Describe}',
- [UPDATE_BY] = '{wmsInArrival.UpdateBy}',
- [UPDATE_TIME] = GETDATE(),
- [DATA_VERSION] = [DATA_VERSION] + 1
- WHERE
- [ARRIVAL_ID] = '{wmsInArrival.ArrivalId}';
- ";
- sqlList.Add(sqlUpdateWmsInArrival);
- foreach (WmsInArrivalDtlResult item in wmsInArrival.WmsInArrivalDtlList)
- {
- if (item.Remarks1 == "更新" || item.Remarks1 == "删除")
- {
- string sqlUpdateWmsInArrivalDtl = $@"
- UPDATE [WMS_IN_ARRIVAL_DTL]
- SET
- [MATERIEL_CODE] = '{item.MaterielCode}',
- [MATERIEL_NAME] = '{item.MaterielName}',
- [MATERIEL_BARCODE] = '{item.MaterielBarcode}',
- [BATCH_NO] = '{item.BatchNo}',
- [PACKAGE_CODE] = '{item.PackageCode}',
- [UNIT_CODE] = '{item.UnitCode}',
- [ARRIVAL_QTY] = '{item.ArrivalQty}',
- [RECEIPT_QTY] = '{item.ReceiptQty}',
- [SUPPLIER_CODE] = '{item.SupplierCode}',
- [SUPPLIER_NAME] = '{item.SupplierName}',
- [PRODUCT_DATE] = '{item.ProductDate}',
- [EXP_DATE] = '{item.ExpDate}',
- [ARRIVAL_DTL_STATUS] = '{item.ArrivalDtlStatus}',
- [DESCRIBE] = '{item.Describe}',
- [UPDATE_BY] = '{item.UpdateBy}',
- [UPDATE_TIME] = GETDATE(),
- [DATA_VERSION] = [DATA_VERSION] + 1
- WHERE
- [ARRIVAL_DTL_ID] = '{item.ArrivalDtlId}'
- AND [ARRIVAL_ID] = '{wmsInArrival.ArrivalId}';
- ";
- sqlList.Add(sqlUpdateWmsInArrivalDtl);
- }
- if (item.Remarks1 == "添加")
- {
- StringBuilder sqlAddWmsInArrivalDtl = new StringBuilder();
- item.ArrivalDtlId = Convert.ToInt32(new DataRepository<object>(_dataContext).GetSequenceMsg("Arrival_Dtl_Id"));
- item.ArrivalId = wmsInArrival.ArrivalId;
- item.ArrivalDtlStatus = 0;
- sqlAddWmsInArrivalDtl.Append($@"
- INSERT INTO [WMS_IN_ARRIVAL_DTL] (
- [ARRIVAL_DTL_ID],
- [ARRIVAL_ID],
- [MATERIEL_CODE],
- [MATERIEL_NAME],
- [MATERIEL_BARCODE],
- [BATCH_NO],
- [PACKAGE_CODE],
- [UNIT_CODE],
- [ARRIVAL_QTY],
- [RECEIPT_QTY],
- [SUPPLIER_CODE],
- [SUPPLIER_NAME],
- [PRODUCT_DATE],
- [EXP_DATE],
- [ARRIVAL_DTL_STATUS],
- [INSPECTION_RESULT],
- [SOURCE_BILL_DTL_IDX],
- [PURCHASE_ORDER_DTL_IDX],
- [PURCHASE_ORDER_DTL_STATUS],
- [DESCRIBE],
- [CREATE_BY],
- [CREATE_TIME],
- [UPDATE_BY],
- [UPDATE_TIME],
- [DATA_VERSION],
- [REMARKS1],
- [REMARKS2],
- [REMARKS3],
- [REMARKS4],
- [REMARKS5]
- )
- VALUES
- (
- '{item.ArrivalDtlId}',
- '{item.ArrivalId}',
- '{item.MaterielCode}',
- '{item.MaterielName}',
- '{item.MaterielBarcode}',
- '{item.BatchNo}',
- '{item.PackageCode}',
- '{item.UnitCode}',
- '{item.ArrivalQty}',
- 0,
- '{item.SupplierCode}',
- '{item.SupplierName}',
- '{item.ProductDate}',
- '{item.ExpDate}',
- '{item.ArrivalDtlStatus}',
- 'OK',
- NULL,
- NULL,
- NULL,
- '{item.Describe}',
- '{item.CreateBy}',
- GETDATE(),
- '{item.UpdateBy}',
- GETDATE(),
- '0',
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- );
- ");
- sqlList.Add(sqlAddWmsInArrivalDtl.ToString());
- }
- }
- #endregion
- int row = new DataRepository<object>(_dataContext).ExecSqlListTran(sqlList);
- if (row > 0)
- {
- return SuccessMessageStatus("修改到货通知单数据成功!", row);
- }
- else
- {
- return FailMessageStatus("修改到货通知单数据失败!", row);
- }
- }
- catch (Exception ex)
- {
- return FailMessageStatus($"修改到货通知单数据发生异常,【{ex.Message}】");
- }
- }
- /// <summary>
- /// 删除到货通知单数据
- /// </summary>
- /// <param name="wmsInArrival">到货通知单主表对象</param>
- /// <returns></returns>
- public OperateResultInfo DeleteWmsInArrivalData(WmsInArrivalResult wmsInArrival)
- {
- try
- {
- #region SQL语句生成
- string[] arrivalIdList = wmsInArrival.ArrivalNo.Split(',');
- List<string> sqlList = new List<string>();
- foreach (string item in arrivalIdList)
- {
- string sqlDeleteWmsInArrival = $@"
- UPDATE WMS_IN_ARRIVAL
- SET ARRIVAL_STATUS = '111',
- UPDATE_BY = '{wmsInArrival.UpdateBy}',
- UPDATE_TIME = GETDATE(),
- DATA_VERSION = DATA_VERSION + 1
- WHERE
- ARRIVAL_ID = '{item}';
- ";
- string sqlDeleteWmsInArrivalDtl = $@"
- UPDATE WMS_IN_ARRIVAL_DTL
- SET ARRIVAL_DTL_STATUS = '111',
- UPDATE_BY = '{wmsInArrival.UpdateBy}',
- UPDATE_TIME = GETDATE(),
- DATA_VERSION = DATA_VERSION + 1
- WHERE
- ARRIVAL_ID = '{item}';
- ";
- sqlList.Add(sqlDeleteWmsInArrival);
- sqlList.Add(sqlDeleteWmsInArrivalDtl);
- /*
- ToDo: 后续增加删除移至历史表中。
- */
- }
- #endregion
- int row = new DataRepository<object>(_dataContext).ExecSqlListTran(sqlList);
- if (row > 0)
- {
- return SuccessMessageStatus("删除到货通知单数据成功!", row);
- }
- else
- {
- return FailMessageStatus("删除到货通知单数据失败!", row);
- }
- }
- catch (Exception ex)
- {
- return FailMessageStatus($"删除到货通知单数据发生异常,【{ex.Message}】");
- }
- }
- #endregion
- }
- }
|