123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911 |
- using DapperORMCore.Context.DataContext;
- using DapperORMCore.Model.CoreModel;
- using DapperORMCore.Repository.IRepositorys;
- using Microsoft.Extensions.Configuration;
- using NXWMS.DataAccess.Entity;
- 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.Instock;
- using NXWMS.Model.AppModels.Result.OutStock;
- using NXWMS.Model.AppModels.Result.WmsTask;
- using NXWMS.Model.Common;
- 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
- {
- /// <summary>
- /// 收货单服务
- /// </summary>
- [AutoInject(typeof(IWmsInReceiptService), InjectType.Scope)]
- public class WmsInReceiptService : ServiceBase, IWmsInReceiptService
- {
- #region 全局变量、构造注入
- /// <summary>
- /// 系统操作仓储中转
- /// </summary>
- private IDataRepositoryContext _dataContext;
- /// <summary>
- /// SQL节点仓储
- /// </summary>
- private ISQLNodeRepository _iSQLNodeRepository;
- /// <summary>
- /// 配置
- /// </summary>
- private IConfiguration _configuration;
- private IERPServer _eRPServer;
- /// <summary>
- /// 构造注入
- /// </summary>
- /// <param name="dataRepositoryContext"></param>
- /// <param name="configuration"></param>
- /// <param name="iSQLNodeRepository"></param>
- public WmsInReceiptService(IDataRepositoryContext dataRepositoryContext, IConfiguration configuration, ISQLNodeRepository iSQLNodeRepository, IERPServer eRPServer)
- {
- this._dataContext = dataRepositoryContext;
- this._configuration = configuration;
- this._iSQLNodeRepository = iSQLNodeRepository;
- this._eRPServer = eRPServer;
- }
- #endregion
- /// <summary>
- /// 分页查询收货单主表数据
- /// </summary>
- /// <param name="receiptSearchMd">收货单查询条件实体类对象</param>
- /// <returns></returns>
- public OperateResultInfo<List<WmsInReceiptResult>> GetWmsInReceiptListForPage(WmsInReceiptSearchMd receiptSearchMd)
- {
- try
- {
- #region SQL语句生成
- StringBuilder sqlCondition = new StringBuilder();
- if (!string.IsNullOrEmpty(receiptSearchMd.ReceiptNoMsg))
- {
- sqlCondition.Append($" AND RECEIPT_NO = '{receiptSearchMd.ReceiptNoMsg}'");
- }
- if (!string.IsNullOrEmpty(receiptSearchMd.ArrivalNoMsg))
- {
- sqlCondition.Append($" AND ARRIVAL_NO = '{receiptSearchMd.ArrivalNoMsg}'");
- }
- if (!string.IsNullOrEmpty(receiptSearchMd.ReceipterMsg))
- {
- sqlCondition.Append($" AND RECEIPTER = '{receiptSearchMd.ReceipterMsg}'");
- }
- if (!string.IsNullOrEmpty(receiptSearchMd.ReceiptType))
- {
- sqlCondition.Append($" AND RECEIPT_TYPE = '{receiptSearchMd.ReceiptType}'");
- }
- if (!string.IsNullOrEmpty(receiptSearchMd.ReceiptStatus))
- {
- sqlCondition.Append($" AND RECEIPT_STATUS = '{receiptSearchMd.ReceiptStatus}'");
- }
- if (!string.IsNullOrEmpty(receiptSearchMd.BatchNoMsg))
- {
- sqlCondition.Append($" AND RECEIPT_ID IN (SELECT RECEIPT_ID FROM VW_WMS_IN_RECEIPT_DTL WHERE BATCH_NO = '{receiptSearchMd.BatchNoMsg}')");
- }
- if (!string.IsNullOrEmpty(receiptSearchMd.MaterielMsg))
- {
- sqlCondition.Append($" AND RECEIPT_ID IN (SELECT RECEIPT_ID FROM VW_WMS_IN_RECEIPT_DTL WHERE MATERIEL_CODE LIKE '%{receiptSearchMd.MaterielMsg}%' OR MATERIEL_NAME LIKE '%{receiptSearchMd.MaterielMsg}%' OR MATERIEL_BARCODE LIKE '%{receiptSearchMd.MaterielMsg}%')");
- }
- if (!string.IsNullOrEmpty(receiptSearchMd.SupplierMsg))
- {
- sqlCondition.Append($" AND RECEIPT_ID IN (SELECT RECEIPT_ID FROM VW_WMS_IN_RECEIPT_DTL WHERE SUPPLIER_CODE LIKE '%{receiptSearchMd.SupplierMsg}%' OR SUPPLIER_NAME LIKE '%{receiptSearchMd.SupplierMsg}%')");
- }
- if (!string.IsNullOrEmpty(receiptSearchMd.StartCreateTime))
- {
- sqlCondition.Append($" AND CREATE_TIME >= '{receiptSearchMd.StartCreateTime}'");
- }
- if (!string.IsNullOrEmpty(receiptSearchMd.EndCreateTime))
- {
- sqlCondition.Append($" AND CREATE_TIME <= '{receiptSearchMd.EndCreateTime}'");
- }
- if (!string.IsNullOrEmpty(receiptSearchMd.StartProductTime))
- {
- sqlCondition.Append($" AND RECEIPT_ID IN (SELECT RECEIPT_ID FROM VW_WMS_IN_RECEIPT_DTL WHERE PRODUCT_DATE >= '{receiptSearchMd.StartProductTime}')");
- }
- if (!string.IsNullOrEmpty(receiptSearchMd.EndProductTime))
- {
- sqlCondition.Append($" AND RECEIPT_ID IN (SELECT RECEIPT_ID FROM VW_WMS_IN_RECEIPT_DTL WHERE PRODUCT_DATE <= '{receiptSearchMd.EndProductTime}')");
- }
- if (!string.IsNullOrEmpty(receiptSearchMd.StartExpTime))
- {
- sqlCondition.Append($" AND RECEIPT_ID IN (SELECT RECEIPT_ID FROM VW_WMS_IN_RECEIPT_DTL WHERE EXP_DATE >= '{receiptSearchMd.StartExpTime}')");
- }
- if (!string.IsNullOrEmpty(receiptSearchMd.EndExpTime))
- {
- sqlCondition.Append($" AND RECEIPT_ID IN (SELECT RECEIPT_ID FROM VW_WMS_IN_RECEIPT_DTL WHERE EXP_DATE <= '{receiptSearchMd.EndExpTime}')");
- }
- StringBuilder sqlCountReceiptData = new StringBuilder($@"SELECT COUNT(1) FROM VW_WMS_IN_RECEIPT WHERE 1=1");
- sqlCountReceiptData.Append(sqlCondition.ToString());
- int pageStartIndex = (receiptSearchMd.PageNum - 1) * receiptSearchMd.EveryPageQty;
- int pageEndIndex = receiptSearchMd.PageNum * receiptSearchMd.EveryPageQty;
- StringBuilder sqlQueryReceiptData = new StringBuilder($@"
- SELECT
- RECEIPT_ID,
- RECEIPT_NO,
- ARRIVAL_NO,
- RECEIPT_TYPE,
- RECEIPT_TYPE_NAME,
- RECEIPT_TIME,
- RECEIPTER,
- RECEIPT_STATUS,
- RECEIPT_STATUS_NAME,
- [DESCRIBE],
- CREATE_BY,
- CREATE_NAME,
- CREATE_TIME,
- UPDATE_BY,
- UPDATE_NAME,
- UPDATE_TIME
- FROM
- VW_WMS_IN_RECEIPT
- WHERE
- 1=1
- {sqlCondition}
- ORDER BY UPDATE_TIME DESC,CREATE_TIME DESC
- OFFSET {pageStartIndex} ROWS
- FETCH NEXT {receiptSearchMd.EveryPageQty} ROWS ONLY
-
- ");
- #endregion
- int dataCount = Convert.ToInt32(new DataRepository<object>(_dataContext).ExecuteScalar(sqlCountReceiptData.ToString()));
- List<WmsInReceiptResult> resultList = new DataRepository<WmsInReceiptResult>(_dataContext).Query(sqlQueryReceiptData.ToString()).ToList();
- OperateResultInfo<List<WmsInReceiptResult>> retDataMsg = SuccessStatus(resultList);
- retDataMsg.DataCount = dataCount;
- return retDataMsg;
- }
- catch (Exception ex)
- {
- return FailMessageStatus<List<WmsInReceiptResult>>($"查询收货单数据发生异常,【{ex.Message}】", null);
- }
- }
- /// <summary>
- /// 根据收货单主键Id查询收货单明细数据
- /// </summary>
- /// <param name="wmsInReceipt">收货单对象</param>
- /// <returns></returns>
- public OperateResultInfo<WmsInReceiptResult> GetWmsInReceiptDtlListForID(WmsInReceiptResult wmsInReceipt)
- {
- try
- {
- #region SQL语句生成
- string sqlQueryWmsInReceipt = $@"
- SELECT
- RECEIPT_ID,
- RECEIPT_NO,
- ARRIVAL_NO,
- RECEIPT_TYPE,
- RECEIPT_TYPE_NAME,
- RECEIPT_TIME,
- RECEIPTER,
- RECEIPT_STATUS,
- RECEIPT_STATUS_NAME,
- [DESCRIBE],
- CREATE_BY,
- CREATE_NAME,
- CREATE_TIME,
- UPDATE_BY,
- UPDATE_NAME,
- UPDATE_TIME
- FROM
- VW_WMS_IN_RECEIPT
- WHERE
- RECEIPT_ID = '{wmsInReceipt.ReceiptId}'
- ";
- string strWhere = string.Empty;
- if (wmsInReceipt.Remarks1 == "查询已删除明细数据")
- {
- strWhere = "1=1";
- }
- else if (wmsInReceipt.Remarks1 == "查询未组盘完成的收货单明细")
- {
- strWhere = "RECEIPT_DTL_STATUS < 99 AND RECEIPT_TRAY_QTY < RECEIPT_DTL_QTY";
- //2021 0223 孙亚龙 修改质检流程
- // AND INSPECTION_RESULT = 'OK'
- }
- else
- {
- strWhere = "RECEIPT_DTL_STATUS < 111";
- }
- string sqlQueryWmsReceiptDtl = $@"
- SELECT
- *
- FROM
- VW_WMS_IN_RECEIPT_DTL
- WHERE
- RECEIPT_ID = '{wmsInReceipt.ReceiptId}'
- AND {strWhere}
- ORDER BY RECEIPT_DTL_STATUS,RECEIPT_DTL_ID
- ";
- #endregion
- List<WmsInReceiptResult> resultList = new DataRepository<WmsInReceiptResult>(_dataContext).Query(sqlQueryWmsInReceipt).ToList();
- List<WmsInReceiptDtlResult> resultDtlList = new DataRepository<WmsInReceiptDtlResult>(_dataContext).Query(sqlQueryWmsReceiptDtl).ToList();
- wmsInReceipt = resultList[0];
- wmsInReceipt.WmsInReceiptDtlList = resultDtlList;
- OperateResultInfo<WmsInReceiptResult> retDataMsg = SuccessStatus(wmsInReceipt);
- return retDataMsg;
- }
- catch (Exception ex)
- {
- return FailMessageStatus<WmsInReceiptResult>($"查询收货单明细数据发生异常,【{ex.Message}】", null);
- }
- }
- /// <summary>
- /// 查询组盘未完成的收货单明细数据
- /// </summary>
- /// <returns></returns>
- public OperateResultInfo<List<WmsInReceiptResult>> GetWmsInReceiptDtl_UnFinishedTray()
- {
- try
- {
- string sqlQueryWmsInReceipt = $@"
- SELECT
- RECEIPT_ID,
- RECEIPT_NO,
- ARRIVAL_NO,
- RECEIPT_TYPE,
- RECEIPT_TYPE_NAME,
- RECEIPT_TIME,
- RECEIPTER,
- RECEIPT_STATUS,
- RECEIPT_STATUS_NAME,
- [DESCRIBE],
- CREATE_BY,
- CREATE_NAME,
- CREATE_TIME,
- UPDATE_BY,
- UPDATE_NAME,
- UPDATE_TIME
- FROM
- VW_WMS_IN_RECEIPT
- WHERE
- RECEIPT_ID IN (
- SELECT
- RECEIPT_ID
- FROM
- VW_WMS_IN_RECEIPT_DTL
- WHERE
- RECEIPT_DTL_STATUS < 99
- AND RECEIPT_TRAY_QTY < RECEIPT_DTL_QTY)
- ORDER BY RECEIPT_ID
- ";
- string sqlQueryWmsReceiptDtlUnFinishedTray = $@"
- SELECT
- *
- FROM
- VW_WMS_IN_RECEIPT_DTL
- WHERE
- RECEIPT_DTL_STATUS < 99
- AND RECEIPT_TRAY_QTY < RECEIPT_DTL_QTY
- ORDER BY
- RECEIPT_ID,
- RECEIPT_DTL_ID
- ";
- List<WmsInReceiptResult> resultList = new DataRepository<WmsInReceiptResult>(_dataContext).Query(sqlQueryWmsInReceipt).ToList();
- List<WmsInReceiptDtlResult> resultDtlList = new DataRepository<WmsInReceiptDtlResult>(_dataContext).Query(sqlQueryWmsReceiptDtlUnFinishedTray).ToList();
- foreach (WmsInReceiptResult item in resultList)
- {
- List<WmsInReceiptDtlResult> tmpLst = resultDtlList.FindAll(x=>x.ReceiptId == item.ReceiptId);
- if (tmpLst != null && tmpLst.Count > 0)
- {
- item.WmsInReceiptDtlList = tmpLst;
- }
- }
- return SuccessStatus(resultList);
- }
- catch (Exception ex)
- {
- return FailMessageStatus<List<WmsInReceiptResult>>($"查询未组盘完成的收货单明细数据发生异常,【{ex.Message}】", null);
- }
- }
- /// <summary>
- /// 新增收货单数据
- /// </summary>
- /// <param name="wmsInReceipt">收货单主表对象</param>
- /// <returns></returns>
- public OperateResultInfo AddWmsInReceiptData(WmsInReceiptResult wmsInReceipt)
- {
- try
- {
- #region SQL语句生成
- List<string> sqlList = new List<string>();
- wmsInReceipt.ReceiptId = Convert.ToInt32(new DataRepository<object>(_dataContext).GetSequenceMsg("Receipt_Id"));
- wmsInReceipt.ReceiptNo = new DataRepository<object>(_dataContext).GetSequenceMsg("Receipt_No");
- wmsInReceipt.ReceiptStatus = 0;
- StringBuilder sqlAddWmsReceipt = new StringBuilder();
- string receiptTime = DateTime.Compare(wmsInReceipt.ReceiptTime, new DateTime()) == 0 ? "NULL" : $"'{wmsInReceipt.ReceiptTime}'";
- sqlAddWmsReceipt.Append($@"
- INSERT INTO [WMS_IN_RECEIPT] (
- [RECEIPT_ID],
- [RECEIPT_NO],
- [RECEIPTER],
- [RECEIPT_TYPE],
- [RECEIPT_TIME],
- [ARRIVAL_NO],
- [RECEIPT_STATUS],
- [DESCRIBE],
- [CREATE_BY],
- [CREATE_TIME],
- [UPDATE_BY],
- [UPDATE_TIME],
- [DATA_VERSION],
- [REMARKS1],
- [REMARKS2],
- [REMARKS3],
- [REMARKS4],
- [REMARKS5]
- )
- VALUES
- (
- '{wmsInReceipt.ReceiptId}',
- '{wmsInReceipt.ReceiptNo}',
- '{wmsInReceipt.Receipter}',
- '{wmsInReceipt.ReceiptType}',
- {receiptTime},
- '{wmsInReceipt.ArrivalNo}',
- '{wmsInReceipt.ReceiptStatus}',
- '{wmsInReceipt.Describe}',
- '{wmsInReceipt.CreateBy}',
- getdate(),
- '{wmsInReceipt.UpdateBy}',
- getdate(),
- 0,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- );
- ");
- sqlList.Add(sqlAddWmsReceipt.ToString());
- List<WmsInArrivalDtlResult> arrivalDtlList = new List<WmsInArrivalDtlResult>();
- if (!string.IsNullOrEmpty(wmsInReceipt.ArrivalNo))
- {
- string sqlQueryWmsInArivalDtl = $@"
- SELECT
- *
- FROM
- VW_WMS_IN_ARRIVAL_DTL
- WHERE
- ARRIVAL_NO = '{wmsInReceipt.ArrivalNo}'
- AND RECEIPT_QTY < ARRIVAL_QTY
- AND ARRIVAL_DTL_STATUS < 99
- ";
- arrivalDtlList = new DataRepository<WmsInArrivalDtlResult>(_dataContext).Query(sqlQueryWmsInArivalDtl).ToList();
- if (arrivalDtlList.Count == 0)
- {
- return FailMessageStatus("到货通知单明细已经全部生成收货单,本次新增收货单操作失败!", 0);
- }
- }
- foreach (WmsInReceiptDtlResult item in wmsInReceipt.WmsInReceiptDtlList)
- {
- StringBuilder sqlAddWmsInReceiptDtl = new StringBuilder();
- item.ReceiptDtlId = Convert.ToInt32(new DataRepository<object>(_dataContext).GetSequenceMsg("Receipt_Dtl_Id"));
- item.ReceiptId = wmsInReceipt.ReceiptId;
- item.ReceiptDtlStatus = 0;
- // item.MaterielBarcode = new DataRepository<object>(_dataContext).GetSequenceMsg("Materiel_Barcode");
- sqlAddWmsInReceiptDtl.Append($@"
- INSERT INTO [WMS_IN_RECEIPT_DTL] (
- [RECEIPT_DTL_ID],
- [RECEIPT_ID],
- [MATERIEL_CODE],
- [MATERIEL_NAME],
- [MATERIEL_BARCODE],
- [MATERIEL_SPEC],
- [BATCH_NO],
- [PACKAGE_CODE],
- [UNIT_CODE],
- [ARRIVAL_QTY],
- [RECEIPT_DTL_QTY],
- [RECEIPT_TRAY_QTY],
- [PUTAWAY_QTY],
- [REJECT_QTY],
- [REJECT_REASON],
- [SUPPLIER_CODE],
- [SUPPLIER_NAME],
- [PRODUCT_DATE],
- [EXP_DATE],
- [RECEIPT_DTL_STATUS],
- [INSPECTION_RESULT],
- [ITEM_STATUS],
- [ARRIVAL_DTL_ID],
- [DESCRIBE],
- [CREATE_BY],
- [CREATE_TIME],
- [UPDATE_BY],
- [UPDATE_TIME],
- [DATA_VERSION],
- [REMARKS1],
- [REMARKS2],
- [REMARKS3],
- [REMARKS4],
- [REMARKS5]
- )
- VALUES
- (
- '{item.ReceiptDtlId}',
- '{item.ReceiptId}',
- '{item.MaterielCode}',
- '{item.MaterielName}',
- '{item.MaterielBarcode}',
- '{item.MaterielSpec}',
- '{item.BatchNo}',
- '{item.PackageCode}',
- '{item.UnitCode}',
- '{item.ArrivalQty}',
- '{item.ReceiptDtlQty}',
- '{0}',
- '{0}',
- '{item.RejectQty}',
- '{item.RejectReason}',
- '{item.SupplierCode}',
- '{item.SupplierName}',
- '{item.ProductDate}',
- '{item.ExpDate}',
- '0',
- 'Wait',
- '1',
- '{item.ArrivalDtlId}',
- '{item.Describe}',
- '{item.CreateBy}',
- getdate(),
- '{item.UpdateBy}',
- getdate(),
- 0,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- );
- ");
- sqlList.Add(sqlAddWmsInReceiptDtl.ToString());
- if (!string.IsNullOrEmpty(wmsInReceipt.ArrivalNo) && item.ArrivalDtlId != 0)
- {
- WmsInArrivalDtlResult temArrDtlMd = arrivalDtlList.Find(x => x.ArrivalDtlId == item.ArrivalDtlId);
- if (temArrDtlMd == null)
- {
- return FailMessageStatus($"到货通知单明细行(物料编码:【{item.MaterielCode}】物料名称:【{item.MaterielName}】批次号:【{item.BatchNo}】到货明细ID:【{item.ArrivalDtlId}】)信息发生变动,本次新增收货单操作失败!", 0);
- }
- else
- {
- if ((item.ReceiptDtlQty + temArrDtlMd.ReceiptQty) > temArrDtlMd.ArrivalQty)
- {
- return FailMessageStatus($"到货通知单明细行(物料编码:【{item.MaterielCode}】物料名称:【{item.MaterielName}】批次号:【{item.BatchNo}】到货明细ID:【{item.ArrivalDtlId}】)已收货数量不能大于到货数量,本次新增收货单操作失败!", 0);
- }
- else
- {
- string sqlUpdateArrivalDtlStatus = $@"
- UPDATE WMS_IN_ARRIVAL_DTL
- SET RECEIPT_QTY = '{item.ReceiptDtlQty + temArrDtlMd.ReceiptQty}',
- UPDATE_BY = '{item.UpdateBy}',
- UPDATE_TIME = GETDATE(),
- ARRIVAL_DTL_STATUS = 11,
- DATA_VERSION = DATA_VERSION + 1
- WHERE
- ARRIVAL_DTL_ID = '{item.ArrivalDtlId}';
- ";
- sqlList.Add(sqlUpdateArrivalDtlStatus);
- }
- }
- }
- }
- if (!string.IsNullOrEmpty(wmsInReceipt.ArrivalNo))
- {
- string sqlUpdateArrivalStatus = $@"
- IF NOT EXISTS (
- SELECT
- 1
- FROM
- WMS_IN_ARRIVAL
- WHERE
- ARRIVAL_ID = '{arrivalDtlList[0].ArrivalId}'
- AND ARRIVAL_STATUS > 0
- AND ARRIVAL_STATUS < 99
- ) UPDATE WMS_IN_ARRIVAL
- SET ARRIVAL_STATUS = 11,
- UPDATE_BY = '{wmsInReceipt.UpdateBy}',
- UPDATE_TIME = GETDATE(),
- DATA_VERSION = DATA_VERSION + 1
- WHERE
- ARRIVAL_ID = '{arrivalDtlList[0].ArrivalId}' ;
- ";
- sqlList.Add(sqlUpdateArrivalStatus);
- }
- #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="wmsInReceipt">收货单主表对象</param>
- /// <returns></returns>
- public OperateResultInfo EditWmsInReceiptData(WmsInReceiptResult wmsInReceipt)
- {
- try
- {
- #region SQL语句生成
- List<string> sqlList = new List<string>();
- string receiptTime = DateTime.Compare(wmsInReceipt.ReceiptTime, new DateTime()) == 0 ? "NULL" : $"'{wmsInReceipt.ReceiptTime}'";
- string sqlUpdateWmsInReceipt = $@"
- UPDATE [WMS_IN_RECEIPT]
- SET
- [RECEIPT_NO] = '{wmsInReceipt.ReceiptNo}',
- [RECEIPTER] = '{wmsInReceipt.Receipter}',
- [RECEIPT_TYPE] = '{wmsInReceipt.ReceiptType}',
- [RECEIPT_TIME] = {receiptTime},
- [ARRIVAL_NO] = '{wmsInReceipt.ArrivalNo}',
- [RECEIPT_STATUS] = '{wmsInReceipt.ReceiptStatus}',
- [DESCRIBE] = '{wmsInReceipt.Describe}',
- [UPDATE_BY] = '{wmsInReceipt.UpdateBy}',
- [UPDATE_TIME] = GETDATE(),
- [DATA_VERSION] = [DATA_VERSION] + 1
- WHERE
- [RECEIPT_ID] = '{wmsInReceipt.ReceiptId}';
- ";
- sqlList.Add(sqlUpdateWmsInReceipt);
- List<WmsInArrivalDtlResult> arrivalDtlList = new List<WmsInArrivalDtlResult>();
- if (!string.IsNullOrEmpty(wmsInReceipt.ArrivalNo))
- {
- string sqlQueryWmsInArivalDtl = $@"
- SELECT
- *
- FROM
- VW_WMS_IN_ARRIVAL_DTL
- WHERE
- ARRIVAL_NO = '{wmsInReceipt.ArrivalNo}'
- AND RECEIPT_QTY < ARRIVAL_QTY
- AND ARRIVAL_DTL_STATUS < 99
- ";
- arrivalDtlList = new DataRepository<WmsInArrivalDtlResult>(_dataContext).Query(sqlQueryWmsInArivalDtl).ToList();
- if (arrivalDtlList.Count == 0)
- {
- return FailMessageStatus("到货通知单明细已经全部生成收货单,本次新增收货单操作失败!", 0);
- }
- }
- foreach (WmsInReceiptDtlResult item in wmsInReceipt.WmsInReceiptDtlList)
- {
- if (item.Remarks1 == "更新" || item.Remarks1 == "删除")
- {
- string sqlUpdateWmsInReceiptDtl = $@"
- UPDATE [WMS_IN_RECEIPT_DTL]
- SET
- [MATERIEL_CODE] = '{item.MaterielCode}',
- [MATERIEL_NAME] = '{item.MaterielName}',
- [MATERIEL_BARCODE] = '{item.MaterielBarcode}',
- [MATERIEL_SPEC] = '{item.MaterielSpec}',
- [BATCH_NO] = '{item.BatchNo}',
- [PACKAGE_CODE] = '{item.PackageCode}',
- [UNIT_CODE] = '{item.UnitCode}',
- [ARRIVAL_QTY] = '{item.ArrivalQty}',
- [RECEIPT_DTL_QTY] = '{item.ReceiptDtlQty}',
- [RECEIPT_TRAY_QTY] = '{item.ReceiptTrayQty}',
- [PUTAWAY_QTY] = '{item.PutawayQty}',
- [REJECT_QTY] = '{item.RejectQty}',
- [REJECT_REASON] = '{item.RejectReason}',
- [SUPPLIER_CODE] = '{item.SupplierCode}',
- [SUPPLIER_NAME] = '{item.SupplierCode}',
- [PRODUCT_DATE] = '{item.ProductDate}',
- [EXP_DATE] = '{item.ExpDate}',
- [RECEIPT_DTL_STATUS] = '{item.ReceiptDtlStatus}',
- [INSPECTION_RESULT] = '{item.InspectionResult}',
- [ITEM_STATUS] = '{item.ItemStatus}',
- [ARRIVAL_DTL_ID] = '{item.ArrivalDtlId}',
- [DESCRIBE] = '{item.Describe}',
- [UPDATE_BY] = '{item.UpdateBy}',
- [UPDATE_TIME] = getdate(),
- [DATA_VERSION] = [DATA_VERSION] + 1
- WHERE
- [RECEIPT_DTL_ID] = '{item.ReceiptDtlId}'
- AND [RECEIPT_ID] = '{wmsInReceipt.ReceiptId}';
- ";
- sqlList.Add(sqlUpdateWmsInReceiptDtl);
- }
- if (item.Remarks1 == "添加")
- {
- StringBuilder sqlAddWmsInReceiptDtl = new StringBuilder();
- item.ReceiptDtlId = Convert.ToInt32(new DataRepository<object>(_dataContext).GetSequenceMsg("Receipt_Dtl_Id"));
- item.ReceiptId = wmsInReceipt.ReceiptId;
- item.ReceiptDtlStatus = 0;
- item.MaterielBarcode = new DataRepository<object>(_dataContext).GetSequenceMsg("Materiel_Barcode");
- sqlAddWmsInReceiptDtl.Append($@"
- INSERT INTO [WMS_IN_RECEIPT_DTL] (
- [RECEIPT_DTL_ID],
- [RECEIPT_ID],
- [MATERIEL_CODE],
- [MATERIEL_NAME],
- [MATERIEL_BARCODE],
- [MATERIEL_SPEC],
- [BATCH_NO],
- [PACKAGE_CODE],
- [UNIT_CODE],
- [ARRIVAL_QTY],
- [RECEIPT_DTL_QTY],
- [RECEIPT_TRAY_QTY],
- [PUTAWAY_QTY],
- [REJECT_QTY],
- [REJECT_REASON],
- [SUPPLIER_CODE],
- [SUPPLIER_NAME],
- [PRODUCT_DATE],
- [EXP_DATE],
- [RECEIPT_DTL_STATUS],
- [INSPECTION_RESULT],
- [ITEM_STATUS],
- [ARRIVAL_DTL_ID],
- [DESCRIBE],
- [CREATE_BY],
- [CREATE_TIME],
- [UPDATE_BY],
- [UPDATE_TIME],
- [DATA_VERSION],
- [REMARKS1],
- [REMARKS2],
- [REMARKS3],
- [REMARKS4],
- [REMARKS5]
- )
- VALUES
- (
- '{item.ReceiptDtlId}',
- '{item.ReceiptId}',
- '{item.MaterielCode}',
- '{item.MaterielName}',
- '{item.MaterielBarcode}',
- '{item.MaterielSpec}',
- '{item.BatchNo}',
- '{item.PackageCode}',
- '{item.UnitCode}',
- '{item.ArrivalQty}',
- '{item.ReceiptDtlQty}',
- '{0}',
- '{0}',
- '{item.RejectQty}',
- '{item.RejectReason}',
- '{item.SupplierCode}',
- '{item.SupplierName}',
- '{item.ProductDate}',
- '{item.ExpDate}',
- '0',
- 'Wait',
- '1',
- '{item.ArrivalDtlId}',
- '{item.Describe}',
- '{item.CreateBy}',
- getdate(),
- '{item.UpdateBy}',
- getdate(),
- 0,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- );
- ");
- sqlList.Add(sqlAddWmsInReceiptDtl.ToString());
- }
- if (!string.IsNullOrEmpty(wmsInReceipt.ArrivalNo) && item.ArrivalDtlId != 0)
- {
- if (item.Remarks1 != "删除")
- {
- WmsInArrivalDtlResult temArrDtlMd = arrivalDtlList.Find(x => x.ArrivalDtlId == item.ArrivalDtlId);
- if (temArrDtlMd == null)
- {
- return FailMessageStatus($"到货通知单明细行(物料编码:【{item.MaterielCode}】物料名称:【{item.MaterielName}】批次号:【{item.BatchNo}】到货明细ID:【{item.ArrivalDtlId}】)信息发生变动,本次新增收货单操作失败!", 0);
- }
- else
- {
- if ((item.ReceiptDtlQty + temArrDtlMd.ReceiptQty) > temArrDtlMd.ArrivalQty)
- {
- return FailMessageStatus($"到货通知单明细行(物料编码:【{item.MaterielCode}】物料名称:【{item.MaterielName}】批次号:【{item.BatchNo}】到货明细ID:【{item.ArrivalDtlId}】)已收货数量不能大于到货数量,本次新增收货单操作失败!", 0);
- }
- else
- {
- string sqlUpdateArrivalDtlStatus = $@"
- UPDATE WMS_IN_ARRIVAL_DTL
- SET RECEIPT_QTY = '{item.ReceiptDtlQty + temArrDtlMd.ReceiptQty}',
- UPDATE_BY = '{item.UpdateBy}',
- UPDATE_TIME = GETDATE(),
- ARRIVAL_DTL_STATUS = 11,
- DATA_VERSION = DATA_VERSION + 1
- WHERE
- ARRIVAL_DTL_ID = '{item.ArrivalDtlId}'
- ";
- sqlList.Add(sqlUpdateArrivalDtlStatus);
- }
- }
- }
- else
- {
- string sqlRollBackArrivalData = $@"
- IF NOT EXISTS (
- SELECT
- 1
- FROM
- WMS_IN_ARRIVAL_DTL
- WHERE
- RECEIPT_QTY - '{item.ReceiptDtlQty}' = 0
- ) UPDATE WMS_IN_ARRIVAL_DTL
- SET RECEIPT_QTY = RECEIPT_QTY - '{item.ReceiptDtlQty}',
- UPDATE_BY = '{wmsInReceipt.UpdateBy}',
- UPDATE_TIME = GETDATE(),
- DATA_VERSION = DATA_VERSION + 1
- WHERE
- ARRIVAL_DTL_ID = '{item.ArrivalDtlId}'
- ELSE
- UPDATE WMS_IN_ARRIVAL_DTL
- SET RECEIPT_QTY = RECEIPT_QTY - '{item.ReceiptDtlQty}',
- ARRIVAL_DTL_STATUS = '0',
- UPDATE_BY = '{wmsInReceipt.UpdateBy}',
- UPDATE_TIME = GETDATE(),
- DATA_VERSION = DATA_VERSION + 1
- WHERE
- ARRIVAL_DTL_ID = '{item.ArrivalDtlId}';
- ";
- sqlList.Add(sqlRollBackArrivalData);
- decimal oldArrReceiptQty = arrivalDtlList.Find(x => x.ArrivalDtlId == item.ArrivalDtlId).ReceiptQty;
- arrivalDtlList.Find(x => x.ArrivalDtlId == item.ArrivalDtlId).ReceiptQty = oldArrReceiptQty - item.ReceiptDtlQty;
- }
- }
- }
- if (!string.IsNullOrEmpty(wmsInReceipt.ArrivalNo))
- {
- string sqlUpdateArrivalStatus = $@"
- IF NOT EXISTS (
- SELECT
- 1
- FROM
- WMS_IN_ARRIVAL
- WHERE
- ARRIVAL_ID = '{arrivalDtlList[0].ArrivalId}'
- AND ARRIVAL_STATUS > 0
- AND ARRIVAL_STATUS < 99
- ) UPDATE WMS_IN_ARRIVAL
- SET ARRIVAL_STATUS = 11,
- UPDATE_BY = '{wmsInReceipt.UpdateBy}',
- UPDATE_TIME = GETDATE(),
- DATA_VERSION = DATA_VERSION + 1
- WHERE
- ARRIVAL_ID = '{arrivalDtlList[0].ArrivalId}' ;
- ";
- sqlList.Add(sqlUpdateArrivalStatus);
- }
- #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="wmsInReceipt">收货单主表对象</param>
- /// <returns></returns>
- public OperateResultInfo DeleteWmsInReceiptData(WmsInReceiptResult wmsInReceipt)
- {
- try
- {
- #region SQL语句生成
- string[] receiptIdList = wmsInReceipt.ReceiptNo.Split(',');
- List<string> sqlList = new List<string>();
- foreach (string item in receiptIdList)
- {
- string sqlDeleteWmsReceipt = $@"
- UPDATE WMS_IN_RECEIPT
- SET RECEIPT_STATUS = '111',
- UPDATE_BY = '{wmsInReceipt.UpdateBy}',
- UPDATE_TIME = GETDATE(),
- DATA_VERSION = DATA_VERSION + 1
- WHERE
- RECEIPT_ID = '{item}';
- ";
- string sqlDeleteWmsInReceiptDtl = $@"
- UPDATE WMS_IN_RECEIPT_DTL
- SET RECEIPT_DTL_STATUS = '111',
- UPDATE_BY = '{wmsInReceipt.UpdateBy}',
- UPDATE_TIME = GETDATE(),
- DATA_VERSION = DATA_VERSION + 1
- WHERE
- RECEIPT_ID = '{item}';
- ";
- sqlList.Add(sqlDeleteWmsReceipt);
- sqlList.Add(sqlDeleteWmsInReceiptDtl);
- /*
- ToDo: 后续增加删除移至历史表中。
- */
- string sqlQueryWmsReceiptDtlData = $@"
- SELECT
- *
- FROM
- VW_WMS_IN_RECEIPT_DTL
- WHERE
- RECEIPT_ID = '{item}'
- AND RECEIPT_DTL_STATUS = 0
- ORDER BY RECEIPT_DTL_STATUS,RECEIPT_DTL_ID
- ";
- List<WmsInReceiptDtlResult> resultDtlList = new DataRepository<WmsInReceiptDtlResult>(_dataContext).Query(sqlQueryWmsReceiptDtlData).ToList();
- if (resultDtlList.Count > 0)
- {
- foreach (WmsInReceiptDtlResult mdDtl in resultDtlList)
- {
- if (mdDtl.ArrivalDtlId != 0)
- {
- string sqlRollBackArrivaldDtlData = $@"
- IF NOT EXISTS (
- SELECT
- 1
- FROM
- WMS_IN_ARRIVAL_DTL
- WHERE
- RECEIPT_QTY - '{mdDtl.ReceiptDtlQty}' = 0
- ) UPDATE WMS_IN_ARRIVAL_DTL
- SET RECEIPT_QTY = RECEIPT_QTY - '{mdDtl.ReceiptDtlQty}',
- UPDATE_BY = '{wmsInReceipt.UpdateBy}',
- UPDATE_TIME = GETDATE(),
- DATA_VERSION = DATA_VERSION + 1
- WHERE
- ARRIVAL_DTL_ID = '{mdDtl.ArrivalDtlId}'
- ELSE
- UPDATE WMS_IN_ARRIVAL_DTL
- SET RECEIPT_QTY = RECEIPT_QTY - '{mdDtl.ReceiptDtlQty}',
- ARRIVAL_DTL_STATUS = '0',
- UPDATE_BY = '{wmsInReceipt.UpdateBy}',
- UPDATE_TIME = GETDATE(),
- DATA_VERSION = DATA_VERSION + 1
- WHERE
- ARRIVAL_DTL_ID = '{mdDtl.ArrivalDtlId}';
- ";
- sqlList.Add(sqlRollBackArrivaldDtlData);
- string sqlRollBackArrivalData = $@"
- IF NOT EXISTS (
- SELECT
- 1
- FROM
- WMS_IN_ARRIVAL_DTL
- WHERE
- ARRIVAL_ID IN (
- SELECT
- ARRIVAL_ID
- FROM
- WMS_IN_ARRIVAL_DTL
- WHERE
- ARRIVAL_DTL_ID = '{mdDtl.ArrivalDtlId}'
- )
- AND ARRIVAL_DTL_STATUS > 0
- AND ARRIVAL_DTL_STATUS < 99
- ) UPDATE WMS_IN_ARRIVAL
- SET ARRIVAL_STATUS = '0',
- UPDATE_BY = '{wmsInReceipt.UpdateBy}',
- UPDATE_TIME = GETDATE(),
- DATA_VERSION = DATA_VERSION + 1
- WHERE
- ARRIVAL_ID = (
- SELECT
- ARRIVAL_ID
- FROM
- WMS_IN_ARRIVAL_DTL
- WHERE
- ARRIVAL_DTL_ID = '{mdDtl.ArrivalDtlId}'
- );
- ";
- sqlList.Add(sqlRollBackArrivalData);
- }
- }
- }
- }
- #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="receiptRecordSearchMd">收货记录查询条件实体类对象</param>
- /// <returns></returns>
- public OperateResultInfo<List<WmsInReceiptRecordResult>> GetWmsInReceiptRecordListForPage(WmsInReceiptRecordSearchMd receiptRecordSearchMd)
- {
- try
- {
- #region SQL语句生成
- StringBuilder sqlCondition = new StringBuilder();
- if (!string.IsNullOrEmpty(receiptRecordSearchMd.ReceiptNoMsg))
- {
- sqlCondition.Append($" AND RECEIPT_NO = '{receiptRecordSearchMd.ReceiptNoMsg}'");
- }
- if (!string.IsNullOrEmpty(receiptRecordSearchMd.ArrivalNoMsg))
- {
- sqlCondition.Append($" AND ARRIVAL_NO = '{receiptRecordSearchMd.ArrivalNoMsg}'");
- }
- if (!string.IsNullOrEmpty(receiptRecordSearchMd.RegionNoMsg))
- {
- sqlCondition.Append($" AND REGION_CODE = '{receiptRecordSearchMd.RegionNoMsg}'");
- }
- if (!string.IsNullOrEmpty(receiptRecordSearchMd.BinNoMsg))
- {
- sqlCondition.Append($" AND (BIN_CODE like '%{receiptRecordSearchMd.BinNoMsg}%' OR BIN_NAME like '%{receiptRecordSearchMd.BinNoMsg}%')");
- }
- if (!string.IsNullOrEmpty(receiptRecordSearchMd.PalletNoMsg))
- {
- sqlCondition.Append($" AND PALLET_CODE = '{receiptRecordSearchMd.PalletNoMsg}'");
- }
- if (!string.IsNullOrEmpty(receiptRecordSearchMd.ReceipterMsg))
- {
- sqlCondition.Append($" AND RECEIPTER = '{receiptRecordSearchMd.ReceipterMsg}'");
- }
- if (!string.IsNullOrEmpty(receiptRecordSearchMd.MaterielMsg))
- {
- sqlCondition.Append($" AND (MATERIEL_CODE like '%{receiptRecordSearchMd.MaterielMsg}%' OR MATERIEL_NAME = '%{receiptRecordSearchMd.MaterielMsg}%')");
- }
- if (!string.IsNullOrEmpty(receiptRecordSearchMd.MaterielTypeMsg))
- {
- sqlCondition.Append($" AND (MATERIEL_TYPE_CODE = '%{receiptRecordSearchMd.MaterielTypeMsg}%' OR MATERIEL_TYPE_NAME = '%{receiptRecordSearchMd.MaterielTypeMsg}%')");
- }
- if (!string.IsNullOrEmpty(receiptRecordSearchMd.SupplierMsg))
- {
- sqlCondition.Append($" AND SUPPLIER_CODE = '{receiptRecordSearchMd.SupplierMsg}'");
- }
- if (!string.IsNullOrEmpty(receiptRecordSearchMd.BatchNoMsg))
- {
- sqlCondition.Append($" AND BATCH_NO = '{receiptRecordSearchMd.SupplierMsg}'");
- }
- if (!string.IsNullOrEmpty(receiptRecordSearchMd.ItemStatusMsg))
- {
- sqlCondition.Append($" AND ITEM_STATUS = '{receiptRecordSearchMd.ItemStatusMsg}'");
- }
- if (!string.IsNullOrEmpty(receiptRecordSearchMd.InspectionResultMsg))
- {
- sqlCondition.Append($" AND INSPECTION_RESULT = '{receiptRecordSearchMd.InspectionResultMsg}'");
- }
- if (!string.IsNullOrEmpty(receiptRecordSearchMd.ReceiptRecordStatus))
- {
- sqlCondition.Append($" AND RECEIPT_RECORD_STATUS = '{receiptRecordSearchMd.ReceiptRecordStatus}'");
- }
- if (!string.IsNullOrEmpty(receiptRecordSearchMd.StartReceiptTime))
- {
- sqlCondition.Append($" AND RECEIPT_TIME >= '{receiptRecordSearchMd.StartReceiptTime}'");
- }
- if (!string.IsNullOrEmpty(receiptRecordSearchMd.EndReceiptTime))
- {
- sqlCondition.Append($" AND RECEIPT_TIME <= '{receiptRecordSearchMd.EndReceiptTime}'");
- }
- if (!string.IsNullOrEmpty(receiptRecordSearchMd.StartProductTime))
- {
- sqlCondition.Append($" AND PRODUCT_DATE >= '{receiptRecordSearchMd.StartProductTime}'");
- }
- if (!string.IsNullOrEmpty(receiptRecordSearchMd.EndProductTime))
- {
- sqlCondition.Append($" AND PRODUCT_DATE <= '{receiptRecordSearchMd.EndProductTime}'");
- }
- if (!string.IsNullOrEmpty(receiptRecordSearchMd.StartExpTime))
- {
- sqlCondition.Append($" AND EXP_DATE >= '{receiptRecordSearchMd.StartExpTime}'");
- }
- if (!string.IsNullOrEmpty(receiptRecordSearchMd.EndExpTime))
- {
- sqlCondition.Append($" AND EXP_DATE <= '{receiptRecordSearchMd.EndExpTime}'");
- }
- StringBuilder sqlCountReceiptData = new StringBuilder($@"SELECT COUNT(1) FROM VW_WMS_IN_RECEIPT_RECORD WHERE 1=1");
- sqlCountReceiptData.Append(sqlCondition.ToString());
- int pageStartIndex = (receiptRecordSearchMd.PageNum - 1) * receiptRecordSearchMd.EveryPageQty;
- int pageEndIndex = receiptRecordSearchMd.PageNum * receiptRecordSearchMd.EveryPageQty;
- StringBuilder sqlQueryReceiptData = new StringBuilder($@"
- SELECT
- RECEIPT_RECORD_ID,
- NEWID,
- RECEIPT_ID,
- RECEIPT_NO,
- RECEIPT_DTL_ID,
- ARRIVAL_NO,
- REGION_CODE,
- REGION_NAME,
- BIN_CODE,
- BIN_NAME,
- TRAY_CODE,
- PALLET_CODE,
- RECEIPT_TIME,
- RECEIPTER,
- MATERIEL_TYPE_CODE,
- MATERIEL_TYPE_NAME,
- MATERIEL_CODE,
- MATERIEL_NAME,
- MATERIEL_BARCODE,
- MATERIEL_SPEC,
- SUPPLIER_CODE,
- SUPPLIER_NAME,
- BATCH_NO,
- PACKAGE_CODE,
- UNIT_CODE,
- RECEIPT_QTY,
- REJECTION_QTY,
- REJECTION_REASON,
- PRODUCT_DATE,
- EXP_DATE,
- RECEIPT_RECORD_STATUS,
- RECEIPT_RECORD_STATUS_NAME,
- INSPECTION_RESULT,
- INSPECTION_RESULT_NAME,
- ITEM_STATUS,
- ITEM_STATUS_NAME,
- [DESCRIBE],
- CREATE_BY,
- CREATE_NAME,
- CREATE_TIME,
- UPDATE_BY,
- UPDATE_NAME,
- UPDATE_TIME,
- DATA_VERSION,
- REMARKS1,
- REMARKS2,
- REMARKS3,
- REMARKS4,
- REMARKS5
- FROM
- VW_WMS_IN_RECEIPT_RECORD
- WHERE
- 1=1
- {sqlCondition}
- ORDER BY UPDATE_TIME DESC,CREATE_TIME DESC
- OFFSET {pageStartIndex} ROWS
- FETCH NEXT {receiptRecordSearchMd.EveryPageQty} ROWS ONLY
-
- ");
- #endregion
- int dataCount = Convert.ToInt32(new DataRepository<object>(_dataContext).ExecuteScalar(sqlCountReceiptData.ToString()));
- List<WmsInReceiptRecordResult> resultList = new DataRepository<WmsInReceiptRecordResult>(_dataContext).Query(sqlQueryReceiptData.ToString()).ToList();
- OperateResultInfo<List<WmsInReceiptRecordResult>> retDataMsg = SuccessStatus(resultList);
- retDataMsg.DataCount = dataCount;
- return retDataMsg;
- }
- catch (Exception ex)
- {
- return FailMessageStatus<List<WmsInReceiptRecordResult>>($"查询收货记录数据发生异常,【{ex.Message}】", null);
- }
- }
- /// <summary>
- /// 添加收货组盘数据
- /// </summary>
- /// <param name="wmsStkTrayResult">组盘信息实体类对象</param>
- /// <returns></returns>
- public OperateResultInfo AddWmsInReceiptTrayData(WmsStkTrayResult wmsStkTrayResult)
- {
- try
- {
- OperateResultInfo checkRetMsg = CheckPalletValidity(wmsStkTrayResult.PALLET_CODE);
- if (checkRetMsg.Status != OperateStatus.Success)
- {
- return checkRetMsg;
- }
- if (wmsStkTrayResult.WmsStkTrayDtlList.Count > 0)
- {
- #region SQL语句生成
- //分配货位暂时这么写
- List<string> sqlList = new List<string>();
- string sqlQueryReceiptRegionBinMsg = $@"
- 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.REGION_CODE = 'SHDJ_Region'
- ";
- List<BinResult> resultList = new DataRepository<BinResult>(_dataContext).Query(sqlQueryReceiptRegionBinMsg).ToList();
- BinResult binMd = resultList[0];
- wmsStkTrayResult.TRAY_ID = Convert.ToInt32(new DataRepository<object>(_dataContext).GetSequenceMsg("Tray_Id"));
- wmsStkTrayResult.TRAY_CODE = new DataRepository<object>(_dataContext).GetSequenceMsg("Tray_Code");
- string sqlAddWmsStkTray = $@"
- INSERT INTO [WMS_STK_TRAY] (
- [TRAY_ID],
- [TRAY_CODE],
- [PALLET_CODE],
- [WEIGHT],
- [HEIGHT],
- [TRAYS_TYPE],
- [TRAY_LOADED_TYPE],
- [TRAY_STATUS],
- [DESCRIBE],
- [CREATE_BY],
- [CREATE_TIME],
- [UPDATE_BY],
- [UPDATE_TIME],
- [DATA_VERSION],
- [REMARKS1],
- [REMARKS2],
- [REMARKS3],
- [REMARKS4],
- [REMARKS5]
- )
- VALUES
- (
- '{wmsStkTrayResult.TRAY_ID}',
- '{wmsStkTrayResult.TRAY_CODE}',
- '{wmsStkTrayResult.PALLET_CODE}',
- '{wmsStkTrayResult.WEIGHT}',
- '{wmsStkTrayResult.HEIGHT}',
- '{wmsStkTrayResult.TRAYS_TYPE}',
- '{wmsStkTrayResult.TRAY_LOADED_TYPE}',
- '{wmsStkTrayResult.TRAY_STATUS}',
- '{wmsStkTrayResult.DESCRIBE}',
- '{wmsStkTrayResult.CREATE_BY}',
- getdate(),
- '{wmsStkTrayResult.UPDATE_BY}',
- getdate(),
- 0,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- );
- ";
- sqlList.Add(sqlAddWmsStkTray);
- int putawayId = Convert.ToInt32(new DataRepository<object>(_dataContext).GetSequenceMsg("InPutaway_Id"));
- string puawayNo = new DataRepository<object>(_dataContext).GetSequenceMsg("InPutaway_No");
- string sqlAddWmsInPutAway = $@"
- INSERT INTO [WMS_IN_PUTAWAY] (
- [PUTAWAY_ID],
- [PUTAWAY_NO],
- [SOURCE_NO],
- [PUTAWAY_TYPE],
- [TRAY_CODE],
- [PALLET_CODE],
- [SBIN_CODE],
- [PUTAWAY_PRIORITY],
- [PUTAWAY_STATUS],
- [DESCRIBE],
- [CREATE_BY],
- [CREATE_TIME],
- [UPDATE_BY],
- [UPDATE_TIME],
- [DATA_VERSION],
- [REMARKS1],
- [REMARKS2],
- [REMARKS3],
- [REMARKS4],
- [REMARKS5]
- )
- VALUES
- (
- '{putawayId}',
- '{puawayNo}',
- '{wmsStkTrayResult.WmsStkTrayDtlList[0].WmsInReceiptRecord.RECEIPT_NO}',
- '{1}',
- '{wmsStkTrayResult.TRAY_CODE}',
- '{wmsStkTrayResult.PALLET_CODE}',
- '{binMd.BIN_CODE}',
- '{100}',
- '{0}',
- '{wmsStkTrayResult.DESCRIBE}',
- '{wmsStkTrayResult.CREATE_BY}',
- getdate(),
- '{wmsStkTrayResult.UPDATE_BY}',
- getdate(),
- 0,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- );
- ";
- sqlList.Add(sqlAddWmsInPutAway);
- 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<object>(_dataContext).GetSequenceMsg("Balance_Id"))}',
- 'AreaTest1',
- '区域测试1',
- 'WarehouseTest1',
- '仓库测试1',
- '{binMd.REGION_CODE}',
- '{binMd.REGION_NAME}',
- '{binMd.BIN_CODE}',
- '{binMd.BIN_NAME}',
- '{wmsStkTrayResult.TRAY_ID}',
- '{wmsStkTrayResult.TRAY_CODE}',
- '{wmsStkTrayResult.PALLET_CODE}',
- getdate(),
- '55',
- '{wmsStkTrayResult.DESCRIBE}',
- '{wmsStkTrayResult.CREATE_BY}',
- getdate(),
- '{wmsStkTrayResult.CREATE_BY}',
- getdate(),
- 0,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- );
- ";
- sqlList.Add(sqlAddWmsStkBalance);
- List<WmsStkTrayDtlResult> tmpTrayDtlMergeLst= new List<WmsStkTrayDtlResult>();
- List<int> tmpReceiptIdLst = new List<int>();
- List<string> sqlList_ReceiprRecordAndPutAway = new List<string>();
- foreach (WmsStkTrayDtlResult item in wmsStkTrayResult.WmsStkTrayDtlList)
- {
- item.TRAY_ID = wmsStkTrayResult.TRAY_ID;
- WmsStkTrayDtlExtResult trayDtlExtMd = item.WmsStkTrayDtlExtMd;
- WmsInReceiptRecordResult receiptRecordMd = item.WmsInReceiptRecord;
- var tmpResult = tmpTrayDtlMergeLst.FirstOrDefault(x => x.MATERIEL_CODE == item.MATERIEL_CODE && x.WmsStkTrayDtlExtMd.BATCH_NO == trayDtlExtMd.BATCH_NO);
- if (tmpResult != null)
- {
- tmpResult.QTY += item.QTY;
- }
- else
- {
- tmpTrayDtlMergeLst.Add(item);
- }
- int receiptId = tmpReceiptIdLst.FirstOrDefault(x => x == receiptRecordMd.RECEIPT_ID);
- if (receiptId <= 0)
- {
- tmpReceiptIdLst.Add(receiptRecordMd.RECEIPT_ID);
- }
- receiptRecordMd.RECEIPT_RECORD_ID = Convert.ToInt32(new DataRepository<object>(_dataContext).GetSequenceMsg("Receipt_Record_Id"));
- int putawayDtlId = Convert.ToInt32(new DataRepository<object>(_dataContext).GetSequenceMsg("InPutaway_Dtl_Id"));
- receiptRecordMd.TRAY_CODE = wmsStkTrayResult.TRAY_CODE;
- receiptRecordMd.REGION_CODE = binMd.REGION_CODE;
- receiptRecordMd.REGION_NAME = binMd.REGION_NAME;
- receiptRecordMd.BIN_CODE = binMd.BIN_CODE;
- receiptRecordMd.BIN_NAME = binMd.BIN_NAME;
- string receiptTime = string.Empty;
- if (receiptRecordMd.RECEIPT_TIME == new DateTime())
- {
- receiptTime = "NULL";
- }
- else
- {
- receiptTime = $"'{receiptRecordMd.RECEIPT_TIME}'";
- }
- string sqlAddWmsInReceiptRecord = $@"
- INSERT INTO [WMS_IN_RECEIPT_RECORD] (
- [RECEIPT_RECORD_ID],
- [RECEIPT_ID],
- [RECEIPT_NO],
- [RECEIPT_DTL_ID],
- [ARRIVAL_NO],
- [REGION_CODE],
- [REGION_NAME],
- [BIN_CODE],
- [BIN_NAME],
- [TRAY_CODE],
- [PALLET_CODE],
- [RECEIPT_TIME],
- [RECEIPTER],
- [MATERIEL_CODE],
- [MATERIEL_NAME],
- [MATERIEL_BARCODE],
- [MATERIEL_SPEC],
- [SUPPLIER_CODE],
- [SUPPLIER_NAME],
- [BATCH_NO],
- [PACKAGE_CODE],
- [UNIT_CODE],
- [RECEIPT_QTY],
- [REJECTION_QTY],
- [REJECTION_REASON],
- [PRODUCT_DATE],
- [EXP_DATE],
- [RECEIPT_RECORD_STATUS],
- [INSPECTION_RESULT],
- [ITEM_STATUS],
- [DESCRIBE],
- [CREATE_BY],
- [CREATE_TIME],
- [UPDATE_BY],
- [UPDATE_TIME],
- [DATA_VERSION],
- [REMARKS1],
- [REMARKS2],
- [REMARKS3],
- [REMARKS4],
- [REMARKS5]
- )
- VALUES
- (
- '{receiptRecordMd.RECEIPT_RECORD_ID}',
- '{receiptRecordMd.RECEIPT_ID}',
- '{receiptRecordMd.RECEIPT_NO}',
- '{receiptRecordMd.RECEIPT_DTL_ID}',
- '{receiptRecordMd.ARRIVAL_NO}',
- '{receiptRecordMd.REGION_CODE}',
- '{receiptRecordMd.REGION_NAME}',
- '{receiptRecordMd.BIN_CODE}',
- '{receiptRecordMd.BIN_NAME}',
- '{receiptRecordMd.TRAY_CODE}',
- '{receiptRecordMd.PALLET_CODE}',
- {receiptTime},
- '{receiptRecordMd.RECEIPTER}',
- '{receiptRecordMd.MATERIEL_CODE}',
- '{receiptRecordMd.MATERIEL_NAME}',
- '{receiptRecordMd.MATERIEL_BARCODE}',
- '{receiptRecordMd.MATERIEL_SPEC}',
- '{receiptRecordMd.SUPPLIER_CODE}',
- '{receiptRecordMd.SUPPLIER_NAME}',
- '{receiptRecordMd.BATCH_NO}',
- '{receiptRecordMd.PACKAGE_CODE}',
- '{receiptRecordMd.UNIT_CODE}',
- '{receiptRecordMd.RECEIPT_QTY}',
- '{receiptRecordMd.REJECTION_QTY}',
- '{receiptRecordMd.REJECTION_REASON}',
- '{receiptRecordMd.PRODUCT_DATE}',
- '{receiptRecordMd.EXP_DATE}',
- '{receiptRecordMd.RECEIPT_RECORD_STATUS}',
- '{receiptRecordMd.INSPECTION_RESULT}',
- '{receiptRecordMd.ITEM_STATUS}',
- '{receiptRecordMd.DESCRIBE}',
- '{receiptRecordMd.CREATE_BY}',
- getdate(),
- '{receiptRecordMd.UPDATE_BY}',
- getdate(),
- 0,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- );
- ";
- string sqlAddWmsInPutAwayDtl = $@"
- 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],
- [INSPECTION_RESULT],
- [PUTAWAY_DTL_STATUS],
- [ITEM_STATUS],
- [DESCRIBE],
- [CREATE_BY],
- [CREATE_TIME],
- [UPDATE_BY],
- [UPDATE_TIME],
- [DATA_VERSION],
- [REMARKS1],
- [REMARKS2],
- [REMARKS3],
- [REMARKS4],
- [REMARKS5]
- )
- VALUES
- (
- '{putawayDtlId}',
- '{putawayId}',
- '{item.MATERIEL_CODE}',
- '{item.MATERIEL_NAME}',
- '{item.MATERIEL_BARCODE}',
- '{trayDtlExtMd.MATERIEL_SPEC}',
- '{trayDtlExtMd.BATCH_NO}',
- '{trayDtlExtMd.PACKAGE_CODE}',
- '{trayDtlExtMd.UNIT_CODE}',
- '{item.QTY}',
- '{trayDtlExtMd.SUPPLIER_CODE}',
- '{trayDtlExtMd.SUPPLIER_NAME}',
- '{trayDtlExtMd.PRODUCT_DATE.ToString("yyyy-MM-dd hh:mm:ss")}',
- '{trayDtlExtMd.EXP_DATE.ToString("yyyy-MM-dd hh:mm:ss")}',
- '{trayDtlExtMd.INSPECTION_RESULT}',
- '{0}',
- '{trayDtlExtMd.ITEM_STATUS}',
- '{item.DESCRIBE}',
- '{trayDtlExtMd.CREATE_BY}',
- getdate(),
- '{trayDtlExtMd.UPDATE_BY}',
- getdate(),
- 0,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- );
- ";
- sqlList_ReceiprRecordAndPutAway.Add(sqlAddWmsInReceiptRecord);
- sqlList_ReceiprRecordAndPutAway.Add(sqlAddWmsInPutAwayDtl);
- string sqlUpdateWmsInReceiptDtl = $@"
- UPDATE WMS_IN_RECEIPT_DTL
- SET
- RECEIPT_TRAY_QTY = RECEIPT_TRAY_QTY + '{item.QTY}',
- RECEIPT_DTL_STATUS = '{55}',
- UPDATE_BY = '{wmsStkTrayResult.UPDATE_BY}',
- UPDATE_TIME = GETDATE(),
- DATA_VERSION = DATA_VERSION + 1
- WHERE
- RECEIPT_DTL_ID = '{receiptRecordMd.RECEIPT_DTL_ID}'
- AND RECEIPT_ID = '{receiptRecordMd.RECEIPT_ID}'
- ";
- sqlList_ReceiprRecordAndPutAway.Add(sqlUpdateWmsInReceiptDtl);
- }
- List<string> sqlList_TrayDtlAndExt = new List<string>();
- foreach (WmsStkTrayDtlResult item in tmpTrayDtlMergeLst)
- {
- item.TRAY_ID = wmsStkTrayResult.TRAY_ID;
- WmsStkTrayDtlExtResult trayDtlExtMd = item.WmsStkTrayDtlExtMd;
- item.TRAY_DTL_ID = Convert.ToInt32(new DataRepository<object>(_dataContext).GetSequenceMsg("Tray_Dtl_Id"));
- trayDtlExtMd.TRAY_DTL_EXT_ID = Convert.ToInt32(new DataRepository<object>(_dataContext).GetSequenceMsg("Tray_Dtl_Ext_Id"));
- trayDtlExtMd.TRAY_DTL_ID = item.TRAY_DTL_ID;
- trayDtlExtMd.TRAY_ID = wmsStkTrayResult.TRAY_ID;
- string sqlAddWmsStkTrayDtl = $@"
- INSERT INTO [WMS_STK_TRAY_DTL] (
- [TRAY_DTL_ID],
- [TRAY_ID],
- [MATERIEL_ID],
- [MATERIEL_CODE],
- [MATERIEL_NAME],
- [MATERIEL_BARCODE],
- [QTY],
- [TRAY_DTL_STATUS],
- [DESCRIBE],
- [CREATE_BY],
- [CREATE_TIME],
- [UPDATE_BY],
- [UPDATE_TIME],
- [DATA_VERSION],
- [REMARKS1],
- [REMARKS2],
- [REMARKS3],
- [REMARKS4],
- [REMARKS5]
- )
- VALUES
- (
- '{item.TRAY_DTL_ID}',
- '{item.TRAY_ID}',
- '{item.MATERIEL_ID}',
- '{item.MATERIEL_CODE}',
- '{item.MATERIEL_NAME}',
- '{item.MATERIEL_BARCODE}',
- '{item.QTY}',
- '{55}',
- '{item.DESCRIBE}',
- '{item.CREATE_BY}',
- getdate(),
- '{item.UPDATE_BY}',
- getdate(),
- 0,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- );
- ";
- string sqlAddWmsStkTrayDtlExt = $@"
- INSERT INTO [WMS_STK_TRAY_DTL_EXT] (
- [TRAY_DTL_EXT_ID],
- [TRAY_DTL_ID],
- [MATERIEL_SPEC],
- [PACKAGE_CODE],
- [UNIT_CODE],
- [BATCH_NO],
- [SUPPLIER_CODE],
- [SUPPLIER_NAME],
- [PRODUCT_DATE],
- [EXP_DATE],
- [INSPECTION_RESULT],
- [LOCK_FLAG],
- [MIN_PKG_QTY],
- [ECTEND_TIME_LEN],
- [SUPPLIER_BATCH],
- [ITEM_STATUS],
- [DESCRIBE],
- [CREATE_BY],
- [CREATE_TIME],
- [UPDATE_BY],
- [UPDATE_TIME],
- [DATA_VERSION],
- [REMARKS1],
- [REMARKS2],
- [REMARKS3],
- [REMARKS4],
- [REMARKS5]
- )
- VALUES
- (
- '{trayDtlExtMd.TRAY_DTL_EXT_ID}',
- '{trayDtlExtMd.TRAY_DTL_ID}',
- '{trayDtlExtMd.MATERIEL_SPEC}',
- '{trayDtlExtMd.PACKAGE_CODE}',
- '{trayDtlExtMd.UNIT_CODE}',
- '{trayDtlExtMd.BATCH_NO}',
- '{trayDtlExtMd.SUPPLIER_CODE}',
- '{trayDtlExtMd.SUPPLIER_NAME}',
- '{trayDtlExtMd.PRODUCT_DATE}',
- '{trayDtlExtMd.EXP_DATE}',
- '{trayDtlExtMd.INSPECTION_RESULT}',
- '{0}',
- '{trayDtlExtMd.MIN_PKG_QTY}',
- '{trayDtlExtMd.ECTEND_TIME_LEN}',
- '{trayDtlExtMd.SUPPLIER_BATCH}',
- '{trayDtlExtMd.ITEM_STATUS}',
- '{trayDtlExtMd.DESCRIBE}',
- '{trayDtlExtMd.CREATE_BY}',
- getdate(),
- '{trayDtlExtMd.UPDATE_BY}',
- getdate(),
- 0,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- );
- ";
- sqlList_TrayDtlAndExt.Add(sqlAddWmsStkTrayDtl);
- sqlList_TrayDtlAndExt.Add(sqlAddWmsStkTrayDtlExt);
- }
- sqlList.AddRange(sqlList_TrayDtlAndExt);
- sqlList.AddRange(sqlList_ReceiprRecordAndPutAway);
- foreach (int item in tmpReceiptIdLst)
- {
- string sqlUpdateWmsInReceipt = $@"
- IF EXISTS (
- SELECT
- 1
- FROM
- WMS_IN_RECEIPT_DTL
- WHERE
- RECEIPT_DTL_STATUS = 55
- AND RECEIPT_ID = '{item}'
- ) UPDATE WMS_IN_RECEIPT
- SET RECEIPT_STATUS = 55,
- UPDATE_BY = '{wmsStkTrayResult.UPDATE_BY}',
- UPDATE_TIME = GETDATE(),
- DATA_VERSION = DATA_VERSION + 1
- WHERE
- RECEIPT_ID = '{item}' ;
- ";
- sqlList.Add(sqlUpdateWmsInReceipt);
- }
-
- #endregion
- int row = new DataRepository<object>(_dataContext).ExecSqlListTran(sqlList);
- if (row > 0)
- {
- return SuccessMessageStatus("新增收货组盘数据成功!", row);
- }
- else
- {
- return FailMessageStatus("新增收货组盘数据失败!", row);
- }
- }
- else
- {
- return FailMessageStatus($"传入数据不存在组盘明细数据!");
- }
- }
- catch (Exception ex)
- {
- return FailMessageStatus($"添加收货组盘数据发生异常,【{ex.Message}】");
- }
- }
- public OperateResultInfo CheckPalletValidity(string palletCode)
- {
- try
- {
- string sqlQueryBasPallet = $@"
- SELECT
- *
- FROM
- BAS_PALLET
- WHERE
- PALLET_CODE = '{palletCode}'
- ";
- List<PalletResult> palletList = new DataRepository<PalletResult>(_dataContext).Query(sqlQueryBasPallet).ToList();
- if (palletList == null && palletList.Count <= 0)
- {
- return FailMessageStatus($"托盘号:【{palletCode}】没有在基础托盘表维护数据,请先在维护托盘基础数据!");
- }
- string sqlQueryPutAway = $@"
- 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
- PALLET_CODE = '{palletCode}' AND PUTAWAY_STATUS < 99
- ";
- List<WmsInPutAwayResult> putawayList = new DataRepository<WmsInPutAwayResult>(_dataContext).Query(sqlQueryPutAway).ToList();
- if (putawayList != null && putawayList.Count > 0)
- {
- return FailMessageStatus($"托盘号:【{palletCode}】正在已存在未完成的上架单数据,无法再次进行组盘!");
- }
- string sqlQueryPutDown = $@"
- 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
- PALLET_CODE = '{palletCode}' AND PUTDOWN_STATUS < 99
- ";
- List<WmsOutPutDownResult> putdownList = new DataRepository<WmsOutPutDownResult>(_dataContext).Query(sqlQueryPutDown).ToList();
- if (putdownList != null && putdownList.Count > 0)
- {
- return FailMessageStatus($"托盘号:【{palletCode}】正在已存在未完成的下架单数据,无法再次进行组盘!");
- }
- string sqlQueryWmsTask = $@"
- SELECT
- *
- FROM
- VW_WMS_TSK_TASK
- WHERE
- PALLET_CODE = '{palletCode}' AND TASK_STATUS < 99
- ";
- List<WmsTaskResult> wmstaskList = new DataRepository<WmsTaskResult>(_dataContext).Query(sqlQueryWmsTask).ToList();
- if (wmstaskList != null && wmstaskList.Count > 0)
- {
- return FailMessageStatus($"托盘号:【{palletCode}】正在已存在未完成的WMS大任务数据,无法再次进行组盘!");
- }
- string sqlQueryCrnCmd = $@"
- SELECT
- *
- FROM
- VW_WCS_CRN_CMD
- WHERE
- PALLET_CODE = '{palletCode}' AND CMD_STATUS < 99
- ";
- List<WcsCrnCmdResult> crncmdList = new DataRepository<WcsCrnCmdResult>(_dataContext).Query(sqlQueryCrnCmd).ToList();
- if (crncmdList != null && crncmdList.Count > 0)
- {
- return FailMessageStatus($"托盘号:【{palletCode}】正在已存在未完成的堆垛机指令数据,无法再次进行组盘!");
- }
- string sqlQueryTranCmd = $@"
- SELECT
- *
- FROM
- VW_WCS_TRAN_CMD
- WHERE
- PALLET_CODE = '{palletCode}' AND CMD_STATUS < 99
- ";
- List<WcsTranCmdResult> trancmdList = new DataRepository<WcsTranCmdResult>(_dataContext).Query(sqlQueryTranCmd).ToList();
- if (trancmdList != null && trancmdList.Count > 0)
- {
- return FailMessageStatus($"托盘号:【{palletCode}】正在已存在未完成的输送线指令数据,无法再次进行组盘!");
- }
- string sqlQueryBalance = $@"
- SELECT
- *
- FROM
- VW_WMS_STK_BALANCE
- WHERE
- PALLET_CODE = '{palletCode}' AND BALANCE_STATUS < 99
- ";
- List<WmsStkBalanceResult> balanceList = new DataRepository<WmsStkBalanceResult>(_dataContext).Query(sqlQueryBalance).ToList();
- if (balanceList != null && balanceList.Count > 0)
- {
- return FailMessageStatus($"托盘号:【{palletCode}】正在已存在库存数据,无法再次进行组盘!");
- }
- string sqlQueryWmsStkTray = $@"SELECT * FROM VW_WMS_STK_TRAY WHERE PALLET_CODE = '{palletCode}' AND TRAY_STATUS < 99";
- List<WmsStkTrayResult> resultWmsStkTrayList = new DataRepository<WmsStkTrayResult>(_dataContext).Query(sqlQueryWmsStkTray).ToList();
- if (balanceList != null && balanceList.Count > 0)
- {
- return FailMessageStatus($"托盘号:【{palletCode}】正在已存在组盘数据,无法再次进行组盘!");
- }
- return SuccessStatus();
- }
- catch (Exception ex)
- {
- return FailMessageStatus($"托盘号:【{palletCode}】合法性校验发生异常:{ex.Message}");
- }
- }
- /// <summary>
- /// 查询待检验的收货单数据
- /// </summary>
- /// <returns></returns>
- public OperateResultInfo<List<WmsInReceiptDtlResult>> GetAllWaitForQaReceiptDtlData()
- {
- try
- {
- string sqlQueryWaitQaReceiptDtl = "SELECT * FROM VW_WMS_IN_RECEIPT_DTL WHERE RECEIPT_DTL_STATUS = 0 AND INSPECTION_RESULT = 'Wait'";
- List<WmsInReceiptDtlResult> resultList = new DataRepository<WmsInReceiptDtlResult>(_dataContext).Query(sqlQueryWaitQaReceiptDtl).ToList();
- OperateResultInfo<List<WmsInReceiptDtlResult>> retDataMsg = SuccessStatus(resultList);
- return retDataMsg;
- }
- catch (Exception ex)
- {
- return FailMessageStatus<List<WmsInReceiptDtlResult>>($"查询待检验的收货单数据发生异常,【{ex.Message}】", null);
- }
- }
- /// <summary>
- /// 同步ERP
- /// </summary>
- /// <param name="wmsInPutAway"></param>
- /// <returns>Erp生成的入库单号</returns>
- public int AsyncErp(string ReceiptNo)
- {
- //获取入库单
- var Receipt = new DataRepository<DataAccess.Entity.WMS_IN_RECEIPT>(this._dataContext).QueryFirst(" RECEIPT_NO=@ReceiptNo", new { ReceiptNo });
- var RecepipRecord = new DataRepository<DataAccess.Entity.WMS_IN_RECEIPT_RECORD>(this._dataContext).Query(" RECEIPT_NO=@ReceiptNo", new { ReceiptNo });
- var RecepipDetails = new DataRepository<DataAccess.Entity.WMS_IN_RECEIPT_DTL>(this._dataContext).Query("RECEIPT_ID=@ReceiptId", new { ReceiptId = Receipt.RECEIPT_ID });
- //查询对应到货单信息
- var Arrival = new DataRepository<DataAccess.Entity.WMS_IN_ARRIVAL>(this._dataContext).QueryFirst("ARRIVAL_NO=@ArrivalNo", new { ArrivalNo = Receipt.ARRIVAL_NO });
- var ArrivalDetails = new DataRepository<DataAccess.Entity.WMS_IN_ARRIVAL_DTL>(this._dataContext).Query("ARRIVAL_ID=@ArrivalId", new { ArrivalId = Arrival.ARRIVAL_ID });
- //构造查询对象
- var lookupRecepipDetails = RecepipDetails.ToDictionary(m => m.RECEIPT_DTL_ID);
- var lookupArrivalDetail = ArrivalDetails.ToDictionary(m => m.ARRIVAL_DTL_ID);
- var inBound = new Model.AppModels.Result.ERP.Inbound()
- {
- InboundDate = DateTime.Now,
- InboundNo = Receipt.ARRIVAL_NO,
- InboundType = Model.AppModels.Result.ERP.InboundType.PurchaseIn,
- SourceName = "采购到货单",
- SourceNo = Arrival.ERP_ID,
- WarehouseCode = "2"
- };
- foreach (var item in RecepipRecord)
- {
- int ERPDetailId = -1;
- if (lookupRecepipDetails.TryGetValue(item.RECEIPT_DTL_ID, out var RecepipDetail))
- {
- if (lookupArrivalDetail.TryGetValue(RecepipDetail.ARRIVAL_DTL_ID.Value, out var ArrivalDetail))
- {
- ERPDetailId = ArrivalDetail.ERP_DTL_ID;
- }
- }
- if (ERPDetailId != -1)
- {
- inBound.InboundDetail.Add(new Model.AppModels.Result.ERP.InboundDetail()
- {
- BinCode = item.BIN_CODE,
- Qty = item.RECEIPT_QTY,
- MaterialCode = item.MATERIEL_CODE,
- SourceDtlId = ERPDetailId
- });
- }
- }
- return this._eRPServer.PuStockIn(inBound).Result;
- }
- }
- }
|