| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913 | 
							- using AutoMapper;
 
- using SqlSugar;
 
- using System;
 
- using System.Collections.Generic;
 
- using System.Linq.Expressions;
 
- using System.Text;
 
- using wms.dto;
 
- using wms.dto.response;
 
- using wms.dto.response.pt;
 
- using wms.service.IService;
 
- using wms.sqlsugar;
 
- using wms.sqlsugar.model;
 
- using wms.sqlsugar.model.pt;
 
- using wms.util.Check;
 
- using wms.util.Ext;
 
- using System.Linq;
 
- using Newtonsoft.Json;
 
- using Microsoft.Extensions.Logging;
 
- using wms.util;
 
- using wms.dto.request.pt;
 
- using wms.dataservice.IDataSetvice;
 
- using wms.dataservice;
 
- using wms.dto.request.pt.dto;
 
- using wms.dto.response.pt.dto;
 
- using wms.util.Http;
 
- using wms.dataservice.DataService;
 
- using NPOI.SS.Formula.Functions;
 
- using wms.dto.request;
 
- using wms.dto.request.share;
 
- using Org.BouncyCastle.Asn1.Ocsp;
 
- using Castle.Core.Internal;
 
- using WCS.Entity;
 
- using wms.dto.request.hj;
 
- namespace wms.service.Service
 
- {
 
-     public class PTService : IPTService
 
-     {
 
-         private readonly IMapper _mapper;
 
-         private readonly ILogger<PTService> _logger;
 
-         private readonly IPTDataService _iptDataService;
 
-         public PTService(IMapper mapper, ILogger<PTService> logger, IPTDataService iptDataService)
 
-         {
 
-             _mapper = mapper;
 
-             _logger = logger;
 
-             _iptDataService = iptDataService;
 
-         }
 
-         Repository<ptBaseContainer> _ptbaseContInfo => new Repository<ptBaseContainer>();
 
-         Repository<ptSysConfig> _sysconfigrepository => new Repository<ptSysConfig>();
 
-         Repository<ptBaseMater> _materrepository => new Repository<ptBaseMater>();
 
-         RepositoryTask<ptWCS_TaskInfo> _ptwcsTaskinfo => new RepositoryTask<ptWCS_TaskInfo>();
 
-         Repository<ptBaseWarehouse> _baseWareHouserepository => new Repository<ptBaseWarehouse>();
 
-         Repository<ptBaseWareLocation> _baseWareLocationrepository => new Repository<ptBaseWareLocation>();
 
-         Repository<ptBillDocsinfo> _docrepository => new Repository<ptBillDocsinfo>();
 
-         Repository<ptBillPushinfo> _ptbillPushinfo => new Repository<ptBillPushinfo>();
 
-         RepositoryTask<ptWCS_TaskOld> _ptwcsTaskold => new RepositoryTask<ptWCS_TaskOld>();
 
-         Repository<ptSysJob> _sysJobrepository => new Repository<ptSysJob>();
 
-         Repository<ptSysJobApiRelation> _sysJobApirepository => new Repository<ptSysJobApiRelation>();
 
-         Repository<ptBillInvFlow> _ptBillInvFlow => new Repository<ptBillInvFlow>();
 
-         Repository<ptBillInvnow> _ptbillInvnow => new Repository<ptBillInvnow>();
 
-         Repository<ptBillInvinit> _ptbillInvinit => new Repository<ptBillInvinit>();
 
-         RepositoryTask<ptWCS_TaskDtl> _ptwcsTaskdtl => new RepositoryTask<ptWCS_TaskDtl>();
 
-         Repository<ptBillMesmiddle> _ptbillmes => new Repository<ptBillMesmiddle>();
 
-         //Repository<ptBillPboxrule> _ptBillLocationMap => new Repository<ptBillPboxrule>();
 
-         ITenant _db => SqlSugarHelper.Db;//处理事务
 
-         /// <summary>
 
-         /// 获取配置内容信息
 
-         /// </summary>
 
-         /// <param name="code">配置表code值</param>
 
-         /// <returns></returns>
 
-         public string GetSysConfigContentByCode(string code)
 
-         {
 
-             //先读缓存
 
-             var cacheContent = RedisHelper.Get("sys_config" + code);
 
-             if (!string.IsNullOrEmpty(cacheContent))
 
-             {
 
-                 return cacheContent;
 
-             }
 
-             var sysconf = _sysconfigrepository.GetSingle(p => p.Code == code);
 
-             if (sysconf == null)
 
-             {
 
-                 throw new Exception("数据表没有配置" + code);
 
-             }
 
-             var content = sysconf.SContent;
 
-             string sysname = sysconf.Default1;//所属系统mes/erp
 
-             RedisHelper.Set("sys_config" + code, content + "|" + sysname);
 
-             return content;
 
-         }
 
-         /// <summary>
 
-         /// 获取配置信息
 
-         /// </summary>
 
-         /// <param name="code"></param>
 
-         /// <returns></returns>
 
-         public ptSysConfig GetSysConfigByCode(string code)
 
-         {
 
-             //Repository<dynamic> _billdtrepository = new Repository<dynamic>();
 
-             return _sysconfigrepository.GetSingle(p => p.Code == code);
 
-         }
 
-         /// <summary>
 
-         /// 获取物料信息
 
-         /// </summary>
 
-         /// <param name="code"></param>
 
-         /// <returns></returns>
 
-         public ptBaseMater GetBaseMaterByExpression(Expression<Func<ptBaseMater, bool>> WhereExpression)
 
-         {
 
-             return _materrepository.GetSingle(WhereExpression);
 
-         }
 
-         /// <summary>
 
-         /// 获取配置信息
 
-         /// </summary>
 
-         /// <param name="code"></param>
 
-         /// <returns></returns>
 
-         public ptSysConfig GetSysConfigByExpression(Expression<Func<ptSysConfig, bool>> WhereExpression)
 
-         {
 
-             return _sysconfigrepository.GetSingle(WhereExpression);
 
-         }
 
-         /// <summary>
 
-         /// 获取反馈信息
 
-         /// </summary>
 
-         /// <param name="code"></param>
 
-         /// <returns></returns>
 
-         public List<ptBillPushinfo> GetBillFeedbackList()
 
-         {
 
-             return _ptbillPushinfo.GetList(p => p.PostResult != 1 && p.PostQty <= 5).OrderBy(p => p.AddTime).Take(1).ToList();
 
-         }
 
-         public bool UpdatePuchinfoModelColumns(UpdateModelColumns<ptBillPushinfo> updateModel)
 
-         {
 
-             return _ptbillPushinfo.Update(updateModel.Columns, updateModel.WhereExpression);
 
-         }
 
-         /// <summary>
 
-         /// 更新SysConfig表字段
 
-         /// </summary>
 
-         /// <param name="updateModel"></param>
 
-         /// <returns></returns>
 
-         public bool UpdateSysConfigModelColumns(UpdateModelColumns<ptSysConfig> updateModel)
 
-         {
 
-             return _sysconfigrepository.Update(updateModel.Columns, updateModel.WhereExpression);
 
-         }
 
-         public bool SyncMaterInfo(List<PTSyncMaterInfoResponseItem> ResData)
 
-         {
 
-             foreach (var item in ResData)
 
-             {
 
-                 if (_materrepository.IsAny(p => p.Code == item.MatCode))
 
-                 {
 
-                     _materrepository.UpdateModelColumns(p => new ptBaseMater() { IsHold = item.IsHold, HoldDuration = item.HoldDuration },
 
-                        p => p.Code == item.MatCode);
 
-                 }
 
-                 else
 
-                 {
 
-                     var model = _mapper.Map<ptBaseMater>(item);
 
-                     _materrepository.Insert(model);
 
-                 }
 
-             }
 
-             return true;
 
-         }
 
-         public SRes PurchaseBillTrans(PurchaseBillTransReqest request)
 
-         {
 
-             var result = new SRes();
 
-             if (string.IsNullOrEmpty(request.BillCode))
 
-             {
 
-                 result.ResCode = ResponseStatusCodeEnum.ErrParamNotNull.GetHashCode();
 
-                 result.ResMsg = "单号" + ResponseStatusCodeEnum.ErrParamNotNull.GetDescription();
 
-                 return result;
 
-             }
 
-             if (!request.ListInfo.Any())
 
-             {
 
-                 result.ResCode = ResponseStatusCodeEnum.DocDetailNotExist.GetHashCode();
 
-                 result.ResMsg = ResponseStatusCodeEnum.DocDetailNotExist.GetDescription();
 
-                 return result;
 
-             }
 
-             var warehouse = _baseWareHouserepository.GetSingle(p => p.Code == request.WareCode);
 
-             if (warehouse == null)
 
-             {
 
-                 result.ResCode = ResponseStatusCodeEnum.WarehouseCodeNotExist.GetHashCode();
 
-                 result.ResMsg = ResponseStatusCodeEnum.WarehouseCodeNotExist.GetDescription();
 
-                 return result;
 
-             }
 
-             //存单据
 
-             var doc = _docrepository.GetSingle(p => p.DocsNo == request.BillCode);
 
-             if (doc == null)
 
-             {
 
-                 var docsinfo = new ptBillDocsinfo()
 
-                 {
 
-                     DocsNo = request.BillCode,
 
-                     WarehouseId = warehouse.Id,
 
-                     ReqNo = request.ReqId,
 
-                     Type = request.BillType,
 
-                     StateNum = DocState.DocState_Create.GetHashCode(),
 
-                     IsStop = 0,
 
-                     JsonContent = JsonConvert.SerializeObject(request.ListInfo),
 
-                     DownQty = request.ListInfo.Count,
 
-                     AddWho = "wms",
 
-                     EditWho = "wms"
 
-                 };
 
-                 var code = InsertBillInvinit(request, warehouse);
 
-                 if (code.ResCode == ResponseStatusCodeEnum.Sucess.GetHashCode())
 
-                 {
 
-                     _docrepository.Insert(docsinfo);
 
-                 }
 
-                 else
 
-                 {
 
-                     result.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
 
-                     result.ResMsg = "明细存储失败";
 
-                     return result;
 
-                 }
 
-             }
 
-             else
 
-             {
 
-                 _docrepository.UpdateModelColumns(p => new ptBillDocsinfo()
 
-                 {
 
-                     JsonContent = JsonConvert.SerializeObject(request.ListInfo),
 
-                     EditTime = DateTime.Now
 
-                 }, p => p.DocsNo == request.BillCode);
 
-             }
 
-             return result;
 
-         }
 
-         private SRes InsertBillInvinit(PurchaseBillTransReqest request, ptBaseWarehouse warehouse)
 
-         {
 
-             var result = new SRes();
 
-             List<ptBillInvinit> invlist = new List<ptBillInvinit>();
 
-             //明细存条码表
 
-             foreach (var item in request.ListInfo)
 
-             {
 
-                 //var mater = _materrepository.GetSingle(p => p.Code == item.MatCode);
 
-                 //if (mater == null)
 
-                 //{
 
-                 //    result.ResCode = ResponseStatusCodeEnum.BaseMaterCodeNotExist.GetHashCode();
 
-                 //    result.ResMsg = item.MatCode + ResponseStatusCodeEnum.BaseMaterCodeNotExist.GetDescription();
 
-                 //    return result;
 
-                 //}
 
-                 var invinit = new ptBillInvinit()
 
-                 {
 
-                     WarehouseId = warehouse.Id,
 
-                     ContGrpBarCode = item.RFID,
 
-                     ContGrpId = GetId(),
 
-                     BoxBarCode = item.RFID,
 
-                     BoilerNo = item.BoilerNo,
 
-                     PackNo = item.PackNo,
 
-                     BatchNo = item.Batch,
 
-                     CLBarCode = item.MatBarCode,
 
-                     CaQty = item.Carbon,
 
-                     ProductTime = item.ProductDate,
 
-                     BrandNo = item.Brand,
 
-                     ExecStd = item.ExecStandard,
 
-                     LicenceCode = item.Licence,
 
-                     TolWQty = item.Weight,
 
-                     HoldDuration = item.HoldDuration,
 
-                     Describe = item.Describe,
 
-                     InvStateCode = InvState.InvEcecState_BuildUp.ToString(),
 
-                     InvBarCode = item.MatBarCode,
 
-                     ExecStateCode = InvLockState.InvState_Lock.ToString(),
 
-                     InDocsNo = request.BillCode,
 
-                     InDocsRowNo = request.BillCode,
 
-                     MatId = 1111,
 
-                     MatCode = item.MatCode,
 
-                     RFIDBarCode = item.RFID,
 
-                     HWTypeCode = "",
 
-                     ExecDocsNo = request.BillCode,
 
-                     ExecDocsRowNo = request.BillCode,
 
-                     ExecDocsTypeCode = request.BillType,
 
-                     HWBarCode = item.RFID,
 
-                     RodBarCode = item.RodBar,
 
-                     InvInOut = 1,
 
-                     ExecWho = "",
 
-                     MatName = "",
 
-                     Size = 1,
 
-                     SuppCode = request.SupCode,
 
-                     SuppName = request.SupName
 
-                 };
 
-                 invlist.Add(_mapper.Map<ptBillInvinit>(invinit));
 
-             }
 
-             _ptbillInvinit.InsertRange(invlist);
 
-             return result;
 
-         }
 
-         public SRes PurchaseBillTransFeedBack(PurchaseBillTransFeedBackRequest reqDto)
 
-         {
 
-             var result = new SRes();
 
-             return result;
 
-         }
 
-         /// <summary>
 
-         /// 放行单传输
 
-         /// </summary>
 
-         /// <param name="reqDto"></param>
 
-         /// <returns></returns>
 
-         public ErpUnlockStockResponse ErpUnlockStock(ErpUnlockStockRequest reqDto)
 
-         {
 
-             var result = new ErpUnlockStockResponse() { ListInfo = new List<ErpUnlockStockResponseItem>()};
 
-             if (!reqDto.ListInfo.Any())
 
-             {
 
-                 result.ResCode = ResponseStatusCodeEnum.DocDetailNotExist.GetHashCode();
 
-                 result.ResMsg = reqDto.BillCode + ResponseStatusCodeEnum.DocDetailNotExist.GetDescription();
 
-                 return result;
 
-             }
 
-             var inv = _ptbillInvnow.GetList(p => p.InDocsNo == reqDto.BillCode && p.ExecStateCode == InvLockState.InvState_Lock.ToString() && p.InvStateCode == InvState.InvEcecState_In.ToString());
 
-             if (!inv.Any())
 
-             {
 
-                 result.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
 
-                 result.ResMsg = reqDto.BillCode + "不存在库存明细";
 
-                 return result;
 
-             }
 
-             foreach (var item in reqDto.ListInfo)
 
-             {
 
-                 if (inv.Where(p => p.ContGrpBarCode == item.RFID && p.CLBarCode == item.MatBarCode).Any())
 
-                 {
 
-                     var stock = inv.Where(p => p.ContGrpBarCode == item.RFID && p.CLBarCode == item.MatBarCode).First();
 
-                     var flow = _mapper.Map<ptBillInvFlow>(stock);
 
-                     flow.Id = GetId();
 
-                     flow.ExecStateCode = item.State == "Normal" ? InvLockState.InvState_Normal.ToString() : InvLockState.InvState_Lock.ToString();
 
-                     flow.EditTime = DateTime.Now;
 
-                     flow.AddTime = DateTime.Now;
 
-                     try
 
-                     {
 
-                         _db.BeginTran();
 
-                         _ptbillInvnow.UpdateSetColumnsTrue(p => new ptBillInvnow()
 
-                         {
 
-                             ExecStateCode = item.State == "Normal" ? InvLockState.InvState_Normal.ToString() : InvLockState.InvState_Lock.ToString(),
 
-                             EditTime = DateTime.Now
 
-                         }, p => p.ContGrpBarCode == item.RFID && p.CLBarCode == item.MatBarCode);
 
-                         _ptBillInvFlow.Insert(flow);
 
-                         _db.CommitTran();
 
-                         var erpUnlockStock = new ErpUnlockStockResponseItem()
 
-                         {
 
-                             RFID = item.RFID,
 
-                             MatBarCode = item.MatBarCode,
 
-                             ResState = "S",
 
-                             ResDesc = ""
 
-                         };
 
-                         result.ListInfo.Add(_mapper.Map<ErpUnlockStockResponseItem>(erpUnlockStock));
 
-                     }
 
-                     catch (Exception ex)
 
-                     {
 
-                         _db.RollbackTran();
 
-                         var erpUnlockStock = new ErpUnlockStockResponseItem()
 
-                         {
 
-                             RFID = item.RFID,
 
-                             MatBarCode = item.MatBarCode,
 
-                             ResState = "E",
 
-                             ResDesc = "放行失败"
 
-                         };
 
-                         result.ListInfo.Add(_mapper.Map<ErpUnlockStockResponseItem>(erpUnlockStock));
 
-                     }
 
-                 }
 
-                 else
 
-                 {
 
-                     var unlockStock = new ErpUnlockStockResponseItem()
 
-                     {
 
-                         RFID = item.RFID,
 
-                         MatBarCode = item.MatBarCode,
 
-                         ResState = "E",
 
-                         ResDesc = "未找到该RFID条码"
 
-                     };
 
-                     result.ListInfo.Add(_mapper.Map<ErpUnlockStockResponseItem>(unlockStock));
 
-                     continue;
 
-                 }
 
-             }
 
-             return result;
 
-         }
 
-         /// <summary>
 
-         /// 车间自动叫料出库
 
-         /// </summary>
 
-         /// <param name="request"></param>
 
-         /// <returns></returns>
 
-         public SRes WcsProductionOutRequest(WcsProductionOutRequest request)
 
-         {
 
-             var result = new SRes();
 
-             var equip = _sysconfigrepository.GetList(p => p.SType == Const.Type);
 
-             var syscom = equip.Where(p => p.Code == request.Endquip).First();
 
-             if (!string.IsNullOrEmpty(syscom.Default1))
 
-             {
 
-                 _sysconfigrepository.UpdateSetColumnsTrue(p => new ptSysConfig()
 
-                 {
 
-                     Default1 = "",
 
-                     EditTime = DateTime.Now
 
-                 }, p => p.Code == request.Endquip);
 
-             }
 
-             var mesRequest = _ptbillmes.GetList();
 
-             foreach (var item in mesRequest)
 
-             {
 
-                
 
-             }
 
-             //添加单据
 
-             //var doc = _docrepository.GetSingle(p => p.DocsNo == mesRequest.BillCode);
 
-             //if (doc == null)
 
-             //{
 
-             //    var docsinfo = new ptBillDocsinfo()
 
-             //    {
 
-             //        DocsNo = mesRequest.BillCode,
 
-             //        WarehouseId = 1685164446336552960,
 
-             //        ReqNo = GetId().ToString(),
 
-             //        TypeNum = PtDocType.DocType_PT_ProductionStockOut.ToString(),
 
-             //        StateNum = DocState.DocState_Create.GetHashCode(),
 
-             //        IsStop = 0,
 
-             //        JsonContent = JsonConvert.SerializeObject(mesRequest),
 
-             //        AddWho = "wms",
 
-             //        EditWho = "wms"
 
-             //    };
 
-             //    _docrepository.Insert(docsinfo);
 
-             //}
 
-             //else
 
-             //{
 
-             //    _docrepository.UpdateModelColumns(p => new ptBillDocsinfo()
 
-             //    {
 
-             //        JsonContent = JsonConvert.SerializeObject(mesRequest),
 
-             //        EditTime = DateTime.Now
 
-             //    }, p => p.DocsNo == mesRequest.BillCode);
 
-             //}
 
-             //申请出库
 
-             //var res = ApplyProductionStockOut(_mapper.Map<ProductionStockOutRequest>(mesRequest));
 
-             return result;
 
-         }
 
-         /// <summary>
 
-         /// 生产领料出库
 
-         /// </summary>
 
-         /// <param name="reqDto"></param>
 
-         /// <returns></returns>
 
-         public SRes ProductionStockOut(ProductionStockOutRequest reqDto)
 
-         {
 
-             var result = new SRes();
 
-             var ware = _baseWareHouserepository.GetSingle(p => p.Code == reqDto.WareCode);
 
-             if (ware == null)
 
-             {
 
-                 result.ResCode = ResponseStatusCodeEnum.WarehouseCodeNotExist.GetHashCode();
 
-                 result.ResMsg = reqDto.WareCode + ResponseStatusCodeEnum.WarehouseCodeNotExist.GetDescription();
 
-                 return result;
 
-             }
 
-             if (string.IsNullOrEmpty(reqDto.BillCode) || string.IsNullOrEmpty(reqDto.MatCode))
 
-             {
 
-                 result.ResCode = ResponseStatusCodeEnum.ErrParamNotNull.GetHashCode();
 
-                 result.ResMsg = "单号与物料编码不可为空";
 
-                 return result;
 
-             }
 
-             var mesRequest = new ptBillMesmiddle()
 
-             {
 
-                 BillCode = reqDto.BillCode,
 
-                 PackNo = reqDto.PackNo,
 
-                 MatCode = reqDto.MatCode,
 
-                 MatBarCode = reqDto.MatBarCode,
 
-                 BoilerNo = reqDto.BoilerNo,
 
-                 WareCode = reqDto.WareCode
 
-             };
 
-             _ptbillmes.Insert(mesRequest);
 
-             //添加单据
 
-             var doc = _docrepository.GetSingle(p => p.DocsNo == reqDto.BillCode);
 
-             if (doc == null)
 
-             {
 
-                 var docsinfo = new ptBillDocsinfo()
 
-                 {
 
-                     DocsNo = reqDto.BillCode,
 
-                     WarehouseId = ware.Id,
 
-                     ReqNo = GetId().ToString(),
 
-                     Type = PtDocType.DocType_PT_ProductionStockOut.ToString(),
 
-                     StateNum = DocState.DocState_Create.GetHashCode(),
 
-                     IsStop = 0,
 
-                     JsonContent = JsonConvert.SerializeObject(reqDto),
 
-                     AddWho = "wms",
 
-                     EditWho = "wms"
 
-                 };
 
-                 _docrepository.Insert(docsinfo);
 
-             }
 
-             else
 
-             {
 
-                 _docrepository.UpdateModelColumns(p => new ptBillDocsinfo()
 
-                 {
 
-                     JsonContent = JsonConvert.SerializeObject(reqDto),
 
-                     EditTime = DateTime.Now
 
-                 }, p => p.DocsNo == reqDto.BillCode);
 
-             }
 
-             //申请出库
 
-             var res = ApplyProductionStockOut(reqDto);
 
-             return result;
 
-         }
 
-         /// <summary>
 
-         /// 申请出库
 
-         /// </summary>
 
-         /// <param name="request"></param>
 
-         /// <returns></returns>
 
-         private SRes ApplyProductionStockOut(ProductionStockOutRequest request)
 
-         {
 
-             var res = new SRes();
 
-             //考虑巷道剩余空轮数量
 
-             var locationlist = from loc in _baseWareLocationrepository.GetList(p => p.IsStop == 0 && p.StateNum == LocationState.LocationState_Full.GetHashCode())
 
-                                join stock in _ptbillInvnow.GetList(p => p.InvStateCode == InvState.InvEcecState_In.ToString() && p.ExecStateCode == InvLockState.InvState_Normal.ToString())
 
-                                on loc.ContGrpBarCode equals stock.ContGrpBarCode
 
-                                orderby stock.ProductTime
 
-                                select new
 
-                                {
 
-                                    stock.MatCode,
 
-                                    stock.InvBarCode,
 
-                                    stock.BoilerNo,
 
-                                    stock.RodBarCode,
 
-                                    stock.Grade,
 
-                                    stock.PackNo,
 
-                                    stock.InvStateCode,
 
-                                    stock.ProductTime,
 
-                                    loc.Col,
 
-                                    loc.Layer,
 
-                                    loc.Shelf,
 
-                                    loc.Depth,
 
-                                    loc.Code,
 
-                                    loc.Tunnel,
 
-                                    loc.WarehouseCode,
 
-                                    loc.ContGrpBarCode,
 
-                                    loc.Id,
 
-                                    loc.StateNum,
 
-                                };
 
-             if (!string.IsNullOrEmpty(request.MatCode))
 
-             {
 
-                 locationlist = locationlist.Where(p => p.MatCode == request.MatCode);
 
-             }
 
-             if (!string.IsNullOrEmpty(request.MatBarCode))
 
-             {
 
-                 locationlist = locationlist.Where(p => p.InvBarCode == request.MatBarCode);
 
-             }
 
-             if (!string.IsNullOrEmpty(request.BoilerNo))
 
-             {
 
-                 locationlist = locationlist.Where(p => p.BoilerNo == request.BoilerNo);
 
-             }
 
-             if (!string.IsNullOrEmpty(request.PackNo))
 
-             {
 
-                 locationlist = locationlist.Where(p => p.PackNo == request.PackNo);
 
-             }
 
-             if (locationlist == null || !locationlist.Any())
 
-             {
 
-                 res.ResCode = ResponseStatusCodeEnum.NotEnoughStock.GetHashCode();
 
-                 res.ResMsg = request.MatCode + "|" + request.BoilerNo + ResponseStatusCodeEnum.NotEnoughStock.GetDescription();
 
-                 return res;
 
-             }
 
-             if (string.IsNullOrEmpty(request.BoilerNo))
 
-             {
 
-                 //多个炉号业务处理
 
-                 if (locationlist.GroupBy(p => p.BoilerNo).Count() > 1)
 
-                 {
 
-                    var loca = locationlist.OrderBy(p => p.ProductTime).GroupBy(p => p.BoilerNo);
 
-                    if (true)
 
-                    {
 
-                        //多个炉号的生产时间在同一天的
 
-                        //locationlist = locationlist.Where(p => p.BoilerNo == loca.Select(it => it.BoilerNo).First()).OrderBy(p => p.PackNo);
 
-                    }
 
-                    else
 
-                    {
 
-                        var locations = locationlist.OrderBy(p => p.ProductTime).GroupBy(p => p.BoilerNo).First();
 
-                        locationlist = locationlist.Where(p => p.BoilerNo == locations.Select(it => it.BoilerNo).First()).OrderBy(p => p.PackNo);
 
-                    }
 
-                    
 
-                 }
 
-             }
 
-             //出库任务
 
-             var temploc = locationlist.First();
 
-             var outstation = "";
 
-             if (temploc.Tunnel == 1 || temploc.Tunnel == 2)
 
-             {
 
-                 outstation = "";
 
-             }
 
-             else if (temploc.Tunnel == 3 || temploc.Tunnel == 4)
 
-             {
 
-                 outstation = "";
 
-             }
 
-             else if (temploc.Tunnel == 5 || temploc.Tunnel == 6)
 
-             {
 
-                 outstation = "";
 
-             }
 
-             else if (temploc.Tunnel == 7 || temploc.Tunnel == 8)
 
-             {
 
-                 outstation = "";
 
-             }
 
-             var sotck = _ptbillInvnow.GetFirst(p => p.ContGrpBarCode == temploc.ContGrpBarCode && p.InvStateCode == InvState.InvEcecState_In.ToString() && p.ExecStateCode == InvLockState.InvState_Normal.ToString());
 
-             try
 
-             {
 
-                 _db.BeginTran();
 
-                 //货位表
 
-                 _baseWareLocationrepository.UpdateModelColumns(p => new ptBaseWareLocation() { StateNum = LocationState.LocationState_StockOut.GetHashCode() }, p => p.Id == temploc.Id);
 
-                 //库存表
 
-                 _ptbillInvnow.UpdateModelColumns(p => new ptBillInvnow() { InvStateCode = InvState.InvEcecState_OutGoing.ToString(), EditTime = DateTime.Now }, p => p.Id == sotck.Id);
 
-                 var invflow = _mapper.Map<ptBillInvFlow>(sotck);
 
-                 invflow.InvStateCode = InvState.InvEcecState_OutGoing.ToString();
 
-                 invflow.AddTime = DateTime.Now;
 
-                 invflow.Id = IdFactory.NewId();
 
-                 _ptBillInvFlow.Insert(invflow);
 
-                 //添加出库任务
 
-                 CreateStockOutTask(new PtCreateStockOutTaskRequest()
 
-                 {
 
-                     ContGrpBarCode = temploc.ContGrpBarCode,
 
-                     CellNo = temploc.Code,
 
-                     EquCode = outstation,
 
-                     Qty = sotck.LengthQty,
 
-                     Tunnel = temploc.Tunnel.ToString(),
 
-                     WarehouseCode = temploc.WarehouseCode,
 
-                     MatCode = request.MatCode,
 
-                     InvBarCode = request.MatBarCode,
 
-                     BusType = PtTaskBusType.TaskBusType_PT_ProductionStockOut.GetDescription(),
 
-                     DocNo = request.BillCode
 
-                 });
 
-                 _db.CommitTran();
 
-             }
 
-             catch (Exception ex)
 
-             {
 
-                 _db.RollbackTran();
 
-                 _logger.LogInformation(ex.ToString());
 
-                 res.ResCode = ResponseStatusCodeEnum.DataSaveErr.GetHashCode();
 
-                 res.ResMsg = ResponseStatusCodeEnum.DataSaveErr.GetDescription();
 
-                 return res;
 
-             }
 
-             return res;
 
-         }
 
-         private SRes<ptWCS_TaskInfo> CreateStockOutTask(PtCreateStockOutTaskRequest reqDto)
 
-         {
 
-             var res = new SRes<ptWCS_TaskInfo>();
 
-             var wcstask = new ptWCS_TaskInfo()
 
-             {
 
-                 Type = TaskType.OutDepot,
 
-                 Status = TaskStatus.NewBuild,
 
-                 Priority = 0,
 
-                 Device = "SRM" + reqDto.Tunnel,
 
-                 SrmStation = reqDto.EquCode,
 
-                 AddrFrom = reqDto.CellNo,
 
-                 AddrTo = reqDto.EquCode,
 
-                 LastInteractionPoint = "",
 
-                 BarCode = reqDto.ContGrpBarCode,
 
-                 Length = reqDto.Qty,
 
-                 AddTime = DateTime.Now,
 
-                 StartTime = DateTime.Now,
 
-                 DocID = int.Parse(reqDto.DocNo),
 
-                 PalletType = 1,
 
-                 ProdLine = 0,
 
-                 AddWho = "wms",
 
-                 WarehouseCode = reqDto.WarehouseCode,
 
-                 Enabled = true,
 
-                 Tunnel = reqDto.Tunnel,
 
-                 BusType = reqDto.BusType,
 
-                 MatCode = reqDto.MatCode,
 
-                 MaterialCode = reqDto.MatCode,
 
-                 InvBarCode = reqDto.InvBarCode
 
-             };
 
-             try
 
-             {
 
-                 _db.BeginTran();
 
-                 var task = _ptwcsTaskinfo.InsertReturnEntity(wcstask);
 
-                 var taskold = _mapper.Map<ptWCS_TaskOld>(task);
 
-                 _ptwcsTaskold.InsertableSplitTable(taskold);
 
-                 var taskdetail = new ptWCS_TaskDtl()
 
-                 {
 
-                     ID = Guid.NewGuid(),
 
-                     CurPoint = reqDto.CellNo,
 
-                     AddTime = DateTime.Now,
 
-                     AddWho = "wms",
 
-                     Enabled = true,
 
-                     ParentTaskCode = task.ID,
 
-                     Desc = reqDto.CellNo + "生产领料出库",
 
-                 };
 
-                 _ptwcsTaskdtl.InsertableSplitTable(taskdetail);
 
-                 _db.CommitTran();
 
-                 res.ResData = task;
 
-             }
 
-             catch (Exception ex)
 
-             {
 
-                 _db.RollbackTran();
 
-                 res.ResCode = ResponseStatusCodeEnum.DataSaveErr.GetHashCode();
 
-                 res.ResMsg = ResponseStatusCodeEnum.DataSaveErr.GetDescription();
 
-                 _logger.LogInformation("保存任务异常:" + ex.ToString());
 
-                 return res;
 
-             }
 
-             return res;
 
-         }
 
-         public SRes ProductionFeedBack(ProductionFeedBackRequest reqDto)
 
-         {
 
-             var result = new SRes();
 
-             return result;
 
-         }
 
-         public SRes StockChange(PtStockChangeRequest reqDto)
 
-         {
 
-             var result = new SRes();
 
-             return result;
 
-         }
 
-         public SRes ProductionBack(ProductionBackRequest reqDto)
 
-         {
 
-             var result = new SRes();
 
-             return result;
 
-         }
 
-         public PTGetCurStockListResponse GetCurStockList(PtGetCurStockListRequest reqDto)
 
-         {
 
-             var result = new PTGetCurStockListResponse() { list = new List<PtResDataItem>() };
 
-             int count = 0;
 
-             var stock = _ptbillInvnow.Context.Queryable<ptBillInvnow, ptBaseMater>((inv, mater) => new object[]
 
-                         {
 
-                             JoinType.Left, inv.MatCode == mater.Code
 
-                         })
 
-                         .Where((inv, mater) => inv.InvStateCode == InvState.InvEcecState_In.ToString())
 
-                         .WhereIF(string.IsNullOrEmpty(reqDto.MatCode), (inv, mater) => inv.MatCode.Contains(reqDto.MatCode))
 
-                         .WhereIF(string.IsNullOrEmpty(reqDto.MatName), (inv, mater) => inv.MatName.Contains(reqDto.MatName))
 
-                         .WhereIF(string.IsNullOrEmpty(reqDto.BoilerNo), (inv, mater) => inv.BoilerNo.Contains(reqDto.BoilerNo))
 
-                         .WhereIF(string.IsNullOrEmpty(reqDto.RFID), (inv, mater) => inv.ContGrpBarCode.Contains(reqDto.RFID))
 
-                         .WhereIF(string.IsNullOrEmpty(reqDto.MatBarCode), (inv, mater) => inv.InvBarCode.Contains(reqDto.MatBarCode))
 
-                         .WhereIF(string.IsNullOrEmpty(reqDto.Batch), (inv, mater) => inv.BatchNo.Contains(reqDto.Batch))
 
-                         .Select((inv, mater) => new PtResDataItem()
 
-                         {
 
-                             RFID = inv.ContGrpBarCode,
 
-                             RodBar = inv.RodBarCode,
 
-                             BoilerNo = inv.BoilerNo,
 
-                             MatBarCode = inv.InvBarCode,
 
-                             PackNo = inv.PackNo,
 
-                             Batch = inv.BatchNo,
 
-                             Carbon = inv.CaQty,
 
-                             ProductDate = inv.ProductTime,
 
-                             Brand = inv.BrandNo,
 
-                             Describe = inv.Describe,
 
-                             ExecStandard = inv.ExecStd,
 
-                             Licence = inv.LicenceCode,
 
-                             PackWeight = inv.TolWQty,
 
-                             FigureNo = mater.FigureNo,
 
-                             ComCode = mater.ComCode,
 
-                             ComName = mater.ComName,
 
-                             CalcUnit = mater.CalcUnit,
 
-                             StockUnit = mater.StockUnit,
 
-                             Weight = mater.Weight,
 
-                             WeightUnit = mater.WeightUnit,
 
-                             IsHold = mater.IsHold,
 
-                             HoldDuration = inv.HoldDuration,
 
-                             LocCell = inv.PutCol.ToString(),
 
-                             LocLayer = inv.PutLayer.ToString(),
 
-                             LocRow = inv.PutRow.ToString(),
 
-                             LocCode = inv.PutRow.ToString() + inv.PutCol.ToString() + inv.PutLayer.ToString(),
 
-                             WareCode = "pthouse"
 
-                         })
 
-                         .ToPageList(reqDto.PageIndex, reqDto.PageSize, ref count);
 
-             result.TotalCount = stock.Count();
 
-             result.list = stock;
 
-             return result;
 
-         }
 
-         /// <summary>
 
-         /// 采购入库任务
 
-         /// </summary>
 
-         /// <param name="request"></param>
 
-         /// <returns></returns>
 
-         public SRes PtPurchaseTask(PtUnboundRequest request)
 
-         {
 
-             var result = new SRes();
 
-             try
 
-             {
 
-                 var stock = new ptBillInvnow()
 
-                 {
 
-                     WarehouseId = 1685164446336552960,
 
-                     ContGrpBarCode = "Test" + DateTime.Now.ToString("hhmmssfff"),
 
-                     ContGrpId = GetId(),
 
-                     InvStateCode = InvState.InvEcecState_BuildUp.ToString(),
 
-                     ExecStateCode = InvLockState.InvState_Lock.ToString()
 
-                 };
 
-                 var task = new ptWCS_TaskInfo()
 
-                 {
 
-                     Status = TaskStatus.NewBuild,
 
-                     Type = TaskType.EnterDepot,
 
-                     Priority = 0,
 
-                     Device = request.Equip,
 
-                     SrmStation = request.Equip,
 
-                     AddrFrom = request.Equip,
 
-                     BarCode = "",
 
-                     StartTime = DateTime.Now,
 
-                     AddTime = DateTime.Now,
 
-                     EditTime = DateTime.Now,
 
-                     AddWho = "wms",
 
-                     EditWho = "wms",
 
-                     WarehouseCode = Const.PtWareHouse,
 
-                     WorkBench = request.Equip,
 
-                     AddrTo = "",
 
-                     Tunnel = "",
 
-                     PalletType = 1,
 
-                     MaterialCode = "",
 
-                     BusType = PtTaskBusType.TaskBusType_PT_PurchaseStockIn.GetDescription()
 
-                 };
 
-                 _db.BeginTran();
 
-                 _ptbillInvnow.Insert(stock);
 
-                 var wcs = _ptwcsTaskinfo.InsertReturnEntity(task);
 
-                 var wcsold = _mapper.Map<ptWCS_TaskOld>(wcs);
 
-                 _ptwcsTaskold.InsertableSplitTable(wcsold);
 
-                 var taskdetail = new ptWCS_TaskDtl()
 
-                 {
 
-                     ID = Guid.NewGuid(),
 
-                     CurPoint = request.Equip,
 
-                     AddTime = DateTime.Now,
 
-                     AddWho = "wms",
 
-                     Enabled = true,
 
-                     ParentTaskCode = wcs.ID,
 
-                     Desc = wcs.BusType
 
-                 };
 
-                 _ptwcsTaskdtl.InsertReturnEntity(taskdetail);
 
-                 _db.CommitTran();
 
-             }
 
-             catch (Exception ex)
 
-             {
 
-                 _db.RollbackTran();
 
-                 result.ResCode = ResponseStatusCodeEnum.DataSaveErr.GetHashCode();
 
-                 result.ResMsg = ResponseStatusCodeEnum.DataSaveErr.GetDescription() + ex.Message;
 
-                 return result;
 
-             }
 
-             return result;
 
-         }
 
-         /// <summary>
 
-         /// 生成库存
 
-         /// </summary>
 
-         /// <param name="request"></param>
 
-         /// <returns></returns>
 
-         public SRes InsertStockInfo(string code)
 
-         {
 
-             var result = new SRes();
 
-             //查询条码表
 
-             var barcode = _ptbillInvinit.GetSingle(p => p.ContGrpBarCode == code);
 
-             if (barcode == null)
 
-             {
 
-                 result.ResCode = ResponseStatusCodeEnum.BaseBarcodeNotExist.GetHashCode();
 
-                 result.ResMsg = code + ResponseStatusCodeEnum.BaseBarcodeNotExist.GetDescription();
 
-                 return result;
 
-             }
 
-             var invlist = _ptbillInvnow.GetList(p => p.ContGrpBarCode.StartsWith("Test"));
 
-             if (!invlist.Any())
 
-             {
 
-                 result.ResCode = ResponseStatusCodeEnum.StockNotExist.GetHashCode();
 
-                 result.ResMsg = code + ResponseStatusCodeEnum.StockNotExist.GetDescription();
 
-                 return result;
 
-             }
 
-             var inv = invlist.First();
 
-             var stock = _mapper.Map<ptBillInvnow>(barcode);
 
-             stock.AddTime = DateTime.Now;
 
-             stock.EditTime = DateTime.Now;
 
-             try
 
-             {
 
-                 _db.BeginTran();
 
-                 _ptbillInvnow.DeleteById(inv.Id);
 
-                 _ptbillInvnow.Insert(stock);
 
-                 _ptBillInvFlow.Insert(_mapper.Map<ptBillInvFlow>(stock));
 
-                 _db.CommitTran();
 
-             }
 
-             catch (Exception ex)
 
-             {
 
-                 _db.RollbackTran();
 
-                 result.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
 
-                 result.ResMsg = ResponseStatusCodeEnum.Fail.GetDescription();
 
-                 return result;
 
-             }
 
-             return result;
 
-         }
 
-         private long GetId()
 
-         {
 
-             return IdFactory.NewId();
 
-         }
 
-         public SRes<int> Unbounding(PtUnboundRequest request)
 
-         {
 
-             var res = new SRes<int>() { ResCode = 500 };
 
-             var task = _ptwcsTaskinfo.GetList(p => p.AddrFrom == request.Equip && p.Status < TaskStatus.Finish);
 
-             if (task.Any())
 
-             {
 
-                 res.ResCode = ResponseStatusCodeEnum.IsTaskNotUnbounding.GetHashCode();
 
-                 res.ResMsg = ResponseStatusCodeEnum.IsTaskNotUnbounding.GetDescription();
 
-                 return res;
 
-             }
 
-             var equip = _baseWareLocationrepository.GetSingle(p => p.Code == request.Equip);
 
-             if (equip == null)
 
-             {
 
-                 res.ResCode = ResponseStatusCodeEnum.EquipInfoNotExist.GetHashCode();
 
-                 res.ResMsg = ResponseStatusCodeEnum.EquipInfoNotExist.GetDescription();
 
-                 return res;
 
-             }
 
-             var stock = _iptDataService.GetStockByEquip(request.Equip);
 
-             if (stock.Any())
 
-             {
 
-                 _baseWareLocationrepository.UpdateSetColumnsTrue(p => new ptBaseWareLocation()
 
-                 {
 
-                     ContGrpId = Const.Zero,
 
-                     ContGrpBarCode = "",
 
-                     EditTime = DateTime.Now
 
-                 }, p => request.Equip == p.Code);
 
-                 _ptbillInvnow.UpdateSetColumnsTrue(p => new ptBillInvnow()
 
-                 {
 
-                     InvStateCode = InvState.InvEcecState_Out.ToString(),
 
-                     EditTime = DateTime.Now
 
-                 }, p => stock.Contains(p.HWBarCode));
 
-                 res.ResCode = ResponseStatusCodeEnum.Sucess.GetHashCode();
 
-             }
 
-             else
 
-             {
 
-                 res.ResMsg = ResponseStatusCodeEnum.StockNotExist.GetDescription();
 
-             }
 
-             return res;
 
-         }
 
-         public SRes<PtDocumentsdetailList> GetDocumentDetailListByDocsNo(PtDocumentsRequest request)
 
-         {
 
-             var res = new SRes<PtDocumentsdetailList>() { ResDataList = new List<PtDocumentsdetailList>() };
 
-             var list = _iptDataService.GetDocumentDetailListByDocsNo(request);
 
-             res.ResDataList = list.Item1;
 
-             res.ToCount = list.Item2;
 
-             res.PageIndex = request.PageIndex;
 
-             res.PageSize = request.PageSize;
 
-             res.PageNumber = Math.Ceiling((decimal)res.ToCount / res.PageSize);
 
-             return res;
 
-         }
 
-         public SRes<PtDocumentsResponse> GetPageDocumentsList(PtDocumentsRequest request)
 
-         {
 
-             var res = new SRes<PtDocumentsResponse>() { ResDataList = new List<PtDocumentsResponse>() };
 
-             if (request.TypeCode == null)
 
-             {
 
-                 res.ResCode = ResponseStatusCodeEnum.ErrParamNotNull.GetHashCode();
 
-                 res.ResMsg = "单据类型" + ResponseStatusCodeEnum.ErrParamNotNull.GetDescription();
 
-                 return res;
 
-             }
 
-             var list = _iptDataService.GetPageDocumentsList(request);
 
-             res.ResDataList = list.Item1;
 
-             res.ToCount = list.Item2;
 
-             res.PageIndex = request.PageIndex;
 
-             res.PageSize = request.PageSize;
 
-             res.PageNumber = Math.Ceiling((decimal)res.ToCount / res.PageSize);
 
-             return res;
 
-         }
 
-         public string ManualTask(PtManualTaskRequest request)
 
-         {
 
-             var res = new SRes();
 
-             if (!request.Location.Any())
 
-             {
 
-                 res.ResCode = ResponseStatusCodeEnum.ErrParamNotNull.GetHashCode();
 
-                 res.ResMsg = "货位" + ResponseStatusCodeEnum.ErrParamNotNull.GetDescription();
 
-                 return res.ToCamelCaseString();
 
-             }
 
-             try
 
-             {
 
-                 foreach (var item in request.Location)
 
-                 {
 
-                     var location = _baseWareLocationrepository.GetSingle(p => p.Code == item);
 
-                     if (location == null)
 
-                     {
 
-                         res.ResCode = ResponseStatusCodeEnum.WareLocationCodeNotExist.GetHashCode();
 
-                         res.ResMsg = item + ResponseStatusCodeEnum.WareLocationCodeNotExist.GetDescription();
 
-                         return res.ToCamelCaseString();
 
-                     }
 
-                     if (location.StateNum != LocationState.LocationState_Full.GetHashCode())
 
-                     {
 
-                         res.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
 
-                         res.ResMsg = item + ResponseStatusCodeEnum.Fail.GetDescription() + "货位状态不满足出库条件";
 
-                         return res.ToCamelCaseString();
 
-                     }
 
-                     if (location.IsStop == Const.One)
 
-                     {
 
-                         res.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
 
-                         res.ResMsg = ResponseStatusCodeEnum.Fail.GetDescription() + item + "被禁用";
 
-                         return res.ToCamelCaseString();
 
-                     }
 
-                     var stock = _ptbillInvnow.GetSingle(p => p.ContGrpBarCode == location.ContGrpBarCode && p.InvStateCode == InvState.InvEcecState_In.ToString());
 
-                     if (stock == null)
 
-                     {
 
-                         res.ResCode = ResponseStatusCodeEnum.StockNotExist.GetHashCode();
 
-                         res.ResMsg = ResponseStatusCodeEnum.StockNotExist.GetDescription();
 
-                         return res.ToCamelCaseString();
 
-                     }
 
-                     if (stock.InvStateCode != InvState.InvEcecState_In.ToString())
 
-                     {
 
-                         res.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
 
-                         res.ResMsg = item + "组盘状态不是已入库";
 
-                         return res.ToCamelCaseString();
 
-                     }
 
-                     ptWCS_TaskInfo ptwcsTask = new ptWCS_TaskInfo();
 
-                     ptwcsTask.Status = TaskStatus.NewBuild;
 
-                     ptwcsTask.Type = TaskType.OutDepot;
 
-                     ptwcsTask.Priority = 0;
 
-                     ptwcsTask.Device = "SRM" + location.Tunnel;
 
-                     ptwcsTask.SrmStation = request.EndPoint;
 
-                     ptwcsTask.AddrFrom = item;
 
-                     ptwcsTask.BarCode = stock.ContGrpBarCode;
 
-                     ptwcsTask.StartTime = DateTime.Now;
 
-                     ptwcsTask.AddTime = DateTime.Now;
 
-                     ptwcsTask.EditTime = DateTime.Now;
 
-                     ptwcsTask.AddWho = "wms";
 
-                     ptwcsTask.WarehouseCode = location.WarehouseCode;
 
-                     ptwcsTask.Enabled = true;
 
-                     ptwcsTask.WorkBench = request.EndPoint;
 
-                     ptwcsTask.AddrTo = request.EndPoint;
 
-                     ptwcsTask.Floor = 2;
 
-                     ptwcsTask.Tunnel = location.Tunnel.ToString();
 
-                     ptwcsTask.PalletType = 1;
 
-                     ptwcsTask.Length = stock.LengthQty;
 
-                     ptwcsTask.MaterialCode = stock.MatCode;
 
-                     ptwcsTask.OutType = OutTypeEnum.全自动手动出库任务;
 
-                     ptwcsTask.BusType = request.BusType;
 
-                     _db.BeginTran();
 
-                     var wcs = _ptwcsTaskinfo.InsertReturnEntity(ptwcsTask);
 
-                     var wcstaskold = _mapper.Map<ptWCS_TaskOld>(wcs);
 
-                     _ptwcsTaskold.InsertableSplitTable(wcstaskold);
 
-                     var taskdtl = new ptWCS_TaskDtl()
 
-                     {
 
-                         ID = Guid.NewGuid(),
 
-                         CurPoint = item,
 
-                         AddTime = DateTime.Now,
 
-                         AddWho = "wms",
 
-                         Enabled = true,
 
-                         ParentTaskCode = wcs.ID,
 
-                         Desc = wcs.OutType.ToString(),
 
-                     };
 
-                     _ptwcsTaskdtl.InsertableSplitTable(taskdtl);
 
-                     _db.CommitTran();
 
-                     _baseWareLocationrepository.UpdateSetColumnsTrue(p => new ptBaseWareLocation()
 
-                     {
 
-                         StateNum = LocationState.LocationState_StockOut.GetHashCode(),
 
-                         EditTime = DateTime.Now
 
-                     }, p => p.Code == item);
 
-                     _ptbillInvnow.UpdateSetColumnsTrue(p => new ptBillInvnow()
 
-                     {
 
-                         InvStateCode = InvState.InvEcecState_OutGoing.ToString(),
 
-                         EditTime = DateTime.Now
 
-                     }, p => p.ContGrpBarCode == stock.ContGrpBarCode);
 
-                     var flow = _mapper.Map<ptBillInvFlow>(stock);
 
-                     flow.Id = IdFactory.NewId();
 
-                     flow.InvStateCode = InvState.InvEcecState_OutGoing.ToString();
 
-                     flow.EditTime = DateTime.Now;
 
-                     _ptBillInvFlow.Insert(flow);
 
-                 }
 
-             }
 
-             catch (Exception ex)
 
-             {
 
-                 _db.RollbackTran();
 
-                 _logger.LogInformation("出库异常:" + ex.Message);
 
-                 res.ResCode = ResponseStatusCodeEnum.DataSaveErr.GetHashCode();
 
-                 res.ResMsg = ResponseStatusCodeEnum.DataSaveErr.GetDescription();
 
-                 return res.ToCamelCaseString();
 
-             }
 
-             return res.ToCamelCaseString();
 
-         }
 
-         public SRes WareCellInit(int row, int col, int deot, int rowcount, int tun)
 
-         {
 
-             var res = new SRes();
 
-             for (int i = 0; i < row; i++)
 
-             {
 
-                 string shlf = "8";
 
-                 if (row == 2)
 
-                 {
 
-                     if (i == 0)
 
-                     {
 
-                         shlf = shlf + "L";
 
-                     }
 
-                     else
 
-                     {
 
-                         shlf = shlf + "R";
 
-                     }
 
-                 }
 
-                 for (int j = 0; j < deot; j++)
 
-                 {
 
-                     for (int k = 0; k < col; k++)
 
-                     {
 
-                         var code = new ptBaseWareLocation()
 
-                         {
 
-                             Code = (rowcount + i).ToString() + "-" + (k + 1).ToString() + "-" + (j + 1).ToString() + "-" + shlf + "-" + "01",
 
-                             Tunnel = tun,
 
-                             IsStop = 0,
 
-                             Name = (rowcount + i).ToString() + "行" + (k + 1).ToString() + "列" + (j + 1).ToString() + "层" + shlf + "货架" + 1 + "深度",
 
-                             WarehouseId = 1685164446336552960,
 
-                             WarehouseCode = "pthouse",
 
-                             WareAreaId = 1685164446352102710,
 
-                             StateNum = 1,
 
-                             TypeNum = 1,
 
-                             Size = 1,
 
-                             Row = (rowcount + i),
 
-                             Col = (k + 1),
 
-                             Layer = (j + 1),
 
-                             Depth = 1,
 
-                             SCRel = "",
 
-                             ContGrpId = 0,
 
-                             ContGrpBarCode = "",
 
-                             AddWho = "wms",
 
-                             EditWho = "wms",
 
-                             Shelf = shlf,
 
-                             Sort = j * col + (k + 1),
 
-                         };
 
-                         _baseWareLocationrepository.Insert(code);
 
-                     }
 
-  
 
-                 }
 
-             }
 
-             return res;
 
-         }
 
-         public string PdaGroupStock(PtGroupInTaskRequest request)
 
-         {
 
-             var res = new SRes();
 
-             if (!request.RFIDBarCode.Any())
 
-             {
 
-                 res.ResCode = ResponseStatusCodeEnum.ErrParamNotNull.GetHashCode();
 
-                 res.ResMsg = "RFID" + ResponseStatusCodeEnum.ErrParamNotNull.GetDescription();
 
-                 return res.ToCamelCaseString();
 
-             }
 
-             foreach (var item in request.RFIDBarCode)
 
-             {
 
-                 var code = _ptbaseContInfo.GetSingle(p => p.ContBarCode == item);
 
-                 if (code == null)
 
-                 {
 
-                     var initbarcode = InsertContInfo(item);
 
-                     if (initbarcode == false)
 
-                     {
 
-                         res.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
 
-                         res.ResMsg = "同步" + ResponseStatusCodeEnum.Fail.GetDescription();
 
-                         return res.ToCamelCaseString();
 
-                     }
 
-                 }
 
-                 var bar = _ptbaseContInfo.GetSingle(p => p.ContBarCode == item);
 
-                 //var mater = _materrepository.GetSingle(p => p.Code == barcode.MatCode);
 
-                 //if (mater == null)
 
-                 //{
 
-                 //    res.ResCode = ResponseStatusCodeEnum.BaseMaterCodeNotExist.GetHashCode();
 
-                 //    res.ResMsg = item + ResponseStatusCodeEnum.BaseMaterCodeNotExist.GetDescription();
 
-                 //    return res.ToCamelCaseString();
 
-                 //}
 
-                 var stock = _ptbillInvnow.GetSingle(p => p.ContGrpBarCode == item);
 
-                 if (stock != null)
 
-                 {
 
-                     res.ResCode = ResponseStatusCodeEnum.GroupStockDetailMaterialBarCodeExist.GetHashCode();
 
-                     res.ResMsg = item + ResponseStatusCodeEnum.GroupStockDetailMaterialBarCodeExist.GetDescription();
 
-                     return res.ToCamelCaseString();
 
-                 }
 
-                 var task = _ptwcsTaskold.AsQueryable().Where(p => p.BarCode == item && p.Status < TaskStatus.Finish).SplitTable(p => p.Take(1)).First();
 
-                 if (task != null)
 
-                 {
 
-                     res.ResCode = ResponseStatusCodeEnum.WcsTaskExist.GetHashCode();
 
-                     res.ResMsg = item + ResponseStatusCodeEnum.WcsTaskExist.GetDescription();
 
-                     return res.ToCamelCaseString();
 
-                 }
 
-                 try
 
-                 {
 
-                     ptBillInvnow container = new ptBillInvnow();
 
-                     container.ContGrpId = GetId();
 
-                     container.ContGrpBarCode = item;
 
-                     container.BoxBarCode = item;
 
-                     container.InvStateCode = InvState.InvEcecState_BuildUp.ToString();
 
-                     container.InvBarCode = item;
 
-                     container.ExecStateCode = InvLockState.InvState_Normal.ToString();
 
-                     container.InDocsNo = "";
 
-                     container.InDocsRowNo = "";
 
-                     container.WarehouseId = bar.WarehouseId;
 
-                     //container.MatId = mater.Id;
 
-                     //container.MatCode = mater.Code;
 
-                     container.TolWQty = bar.WidthQty;
 
-                     container.NetWQty = bar.LengthQty;
 
-                     container.TareWQty = bar.WeightQty;
 
-                     container.LengthQty = bar.LengthQty;
 
-                     container.RFIDBarCode = item;
 
-                     //container.HWTypeCode = mater.SpoolType;
 
-                     container.SolderQty = bar.HighQty;
 
-                     container.ExecDocsNo = "";
 
-                     container.ExecDocsRowNo = "";
 
-                     container.ExecDocsTypeCode = "";
 
-                     container.HWBarCode = item;
 
-                     container.InvInOut = 1;
 
-                     container.ExecWho = "人工组盘";
 
-                     //container.MatName = mater.Name;
 
-                     container.Size = 1;
 
-                     _db.BeginTran();
 
-                     if (_ptbillInvnow.Insert(container))
 
-                     {
 
-                         _ptBillInvFlow.Insert(_mapper.Map<ptBillInvFlow>(container));
 
-                     }
 
-                     _db.CommitTran();
 
-                 }
 
-                 catch (Exception ex)
 
-                 {
 
-                     _db.RollbackTran();
 
-                     _logger.LogInformation("组盘异常:" + item + ex.Message);
 
-                     res.ResCode = ResponseStatusCodeEnum.DataSaveErr.GetHashCode();
 
-                     res.ResMsg = item + ResponseStatusCodeEnum.DataSaveErr.GetDescription();
 
-                     return res.ToCamelCaseString();
 
-                 }
 
-             }
 
-             return res.ToCamelCaseString();
 
-         }
 
-         public string PdaInsterInTask(PtGroupInTaskRequest request)
 
-         {
 
-             var res = new SRes();
 
-             if (!request.RFIDBarCode.Any())
 
-             {
 
-                 res.ResCode = ResponseStatusCodeEnum.ErrParamNotNull.GetHashCode();
 
-                 res.ResMsg = "RFID" + ResponseStatusCodeEnum.ErrParamNotNull.GetDescription();
 
-                 return res.ToCamelCaseString();
 
-             }
 
-             try
 
-             {
 
-                 if (request.BusType == 1)
 
-                 {
 
-                     foreach (var item in request.RFIDBarCode)
 
-                     {
 
-                         var stock = _ptbillInvnow.GetSingle(p => p.RFIDBarCode == item && p.InvStateCode == InvState.InvEcecState_BuildUp.ToString());
 
-                         if (stock == null)
 
-                         {
 
-                             res.ResCode = ResponseStatusCodeEnum.StockNotExist.GetHashCode();
 
-                             res.ResMsg = item + ResponseStatusCodeEnum.StockNotExist.GetDescription();
 
-                             return res.ToCamelCaseString();
 
-                         }
 
-                         var task = _ptwcsTaskold.AsQueryable().Where(p => p.BarCode == item && p.Status < TaskStatus.Finish).SplitTable(p => p.Take(1)).First();
 
-                         if (task != null)
 
-                         {
 
-                             res.ResCode = ResponseStatusCodeEnum.WcsTaskExist.GetHashCode();
 
-                             res.ResMsg = item + ResponseStatusCodeEnum.WcsTaskExist.GetDescription();
 
-                             return res.ToCamelCaseString();
 
-                         }
 
-                         //分解入库任务
 
-                         var it = InsertTaskIn(new PtTaskRsponse() { BusType = TaskBusType.TaskBusType_HJ_QualityStockIn.GetDescription(), ContGrpBarCode = stock.ContGrpBarCode, ContGrpId = stock.ContGrpId, StartPoint = request.Equip, Size = 1, Remark = stock.MatCode });
 
-                         if (!it)
 
-                         {
 
-                             res.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
 
-                             res.ResMsg = ResponseStatusCodeEnum.Fail.GetDescription();
 
-                             return res.ToCamelCaseString();
 
-                         }
 
-                     }
 
-                 }
 
-                 else if (request.BusType == 2)
 
-                 {
 
-                     foreach (var item in request.RFIDBarCode)
 
-                     {
 
-                         var stock = _ptbillInvnow.GetSingle(p => p.RFIDBarCode == item && p.InvStateCode == InvState.InvEcecState_BuildUp.ToString());
 
-                         if (stock == null)
 
-                         {
 
-                             res.ResCode = ResponseStatusCodeEnum.StockNotExist.GetHashCode();
 
-                             res.ResMsg = item + ResponseStatusCodeEnum.StockNotExist.GetDescription();
 
-                             return res.ToCamelCaseString();
 
-                         }
 
-                         var task = _ptwcsTaskold.AsQueryable().Where(p => p.BarCode == item && p.Status < TaskStatus.Finish).SplitTable(p => p.Take(1)).First();
 
-                         if (task != null)
 
-                         {
 
-                             res.ResCode = ResponseStatusCodeEnum.WcsTaskExist.GetHashCode();
 
-                             res.ResMsg = item + ResponseStatusCodeEnum.WcsTaskExist.GetDescription();
 
-                             return res.ToCamelCaseString();
 
-                         }
 
-                         //分解入库任务
 
-                         var it = InsertTaskIn(new PtTaskRsponse() { BusType = TaskBusType.TaskBusType_HJ_AnewStockIn.GetDescription(), ContGrpBarCode = stock.ContGrpBarCode, ContGrpId = stock.ContGrpId, StartPoint = request.Equip, Size = 1, Remark = stock.MatCode });
 
-                         if (!it)
 
-                         {
 
-                             res.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
 
-                             res.ResMsg = ResponseStatusCodeEnum.Fail.GetDescription();
 
-                             return res.ToCamelCaseString();
 
-                         }
 
-                     }
 
-                 }
 
-                 else if (request.BusType == 3)
 
-                 {
 
-                     foreach (var item in request.RFIDBarCode)
 
-                     {
 
-                         var stock = _ptbillInvnow.GetSingle(p => p.RFIDBarCode == item && p.InvStateCode == InvState.InvEcecState_BuildUp.ToString());
 
-                         if (stock == null)
 
-                         {
 
-                             res.ResCode = ResponseStatusCodeEnum.StockNotExist.GetHashCode();
 
-                             res.ResMsg = item + ResponseStatusCodeEnum.StockNotExist.GetDescription();
 
-                             return res.ToCamelCaseString();
 
-                         }
 
-                         var task = _ptwcsTaskold.AsQueryable().Where(p => p.BarCode == item && p.Status < TaskStatus.Finish).SplitTable(p => p.Take(1)).First();
 
-                         if (task != null)
 
-                         {
 
-                             res.ResCode = ResponseStatusCodeEnum.WcsTaskExist.GetHashCode();
 
-                             res.ResMsg = item + ResponseStatusCodeEnum.WcsTaskExist.GetDescription();
 
-                             return res.ToCamelCaseString();
 
-                         }
 
-                         //分解入库任务
 
-                         var it = InsertTaskIn(new PtTaskRsponse() { BusType = TaskBusType.TaskBusType_HJ_OtherStockIn.GetDescription(), ContGrpBarCode = stock.ContGrpBarCode, ContGrpId = stock.ContGrpId, StartPoint = request.Equip, Size = 1, Remark = stock.MatCode });
 
-                         if (!it)
 
-                         {
 
-                             res.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
 
-                             res.ResMsg = ResponseStatusCodeEnum.Fail.GetDescription();
 
-                             return res.ToCamelCaseString();
 
-                         }
 
-                     }
 
-                 }
 
-                 else if (request.BusType == 4)
 
-                 {
 
-                     foreach (var item in request.RFIDBarCode)
 
-                     {
 
-                         var stock = _ptbillInvnow.GetSingle(p => p.RFIDBarCode == item && p.InvStateCode == InvState.InvEcecState_BuildUp.ToString());
 
-                         if (stock == null)
 
-                         {
 
-                             res.ResCode = ResponseStatusCodeEnum.StockNotExist.GetHashCode();
 
-                             res.ResMsg = item + ResponseStatusCodeEnum.StockNotExist.GetDescription();
 
-                             return res.ToCamelCaseString();
 
-                         }
 
-                         var task = _ptwcsTaskold.AsQueryable().Where(p => p.BarCode == item && p.Status < TaskStatus.Finish).SplitTable(p => p.Take(1)).First();
 
-                         if (task != null)
 
-                         {
 
-                             res.ResCode = ResponseStatusCodeEnum.WcsTaskExist.GetHashCode();
 
-                             res.ResMsg = item + ResponseStatusCodeEnum.WcsTaskExist.GetDescription();
 
-                             return res.ToCamelCaseString();
 
-                         }
 
-                         //分解入库任务
 
-                         var it = InsertTaskIn(new PtTaskRsponse() { BusType = TaskBusType.TaskBusType_HJ_PurchaseSpoolStockIn.GetDescription(), ContGrpBarCode = stock.ContGrpBarCode, ContGrpId = stock.ContGrpId, StartPoint = request.Equip, Size = 1, Remark = stock.MatCode });
 
-                         if (!it)
 
-                         {
 
-                             res.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
 
-                             res.ResMsg = ResponseStatusCodeEnum.Fail.GetDescription();
 
-                             return res.ToCamelCaseString();
 
-                         }
 
-                     }
 
-                 }
 
-                 else
 
-                 {
 
-                     res.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
 
-                     res.ResMsg = "RFID:" + string.Join(',', request.RFIDBarCode) + "业务类型错误";
 
-                     return res.ToCamelCaseString();
 
-                 }
 
-             }
 
-             catch (Exception ex)
 
-             {
 
-                 _logger.LogInformation("任务下发失败:" + ex.Message);
 
-                 res.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
 
-                 res.ResMsg = ResponseStatusCodeEnum.Fail.GetDescription();
 
-                 return res.ToCamelCaseString();
 
-             }
 
-             return res.ToCamelCaseString();
 
-         }
 
-         private bool InsertTaskIn(PtTaskRsponse request)
 
-         {
 
-             var bar = _ptbaseContInfo.GetSingle(p => p.ContBarCode == request.ContGrpBarCode);
 
-             if (bar == null)
 
-             {
 
-                 return false;
 
-             }
 
-             var ware = _baseWareHouserepository.GetSingle(p => p.Id == bar.WarehouseId);
 
-             if (ware == null)
 
-             {
 
-                 return false;
 
-             }
 
-             try
 
-             {
 
-                 ptWCS_TaskInfo billTask = new ptWCS_TaskInfo();
 
-                 billTask.Status = TaskStatus.NewBuild;
 
-                 billTask.Type = TaskType.EnterDepot;
 
-                 billTask.Priority = 0;
 
-                 billTask.Device = "srm";
 
-                 billTask.SrmStation = request.StartPoint;
 
-                 billTask.AddrFrom = request.StartPoint;
 
-                 billTask.BarCode = request.ContGrpBarCode;
 
-                 billTask.StartTime = DateTime.Now;
 
-                 billTask.AddWho = "wms";
 
-                 billTask.WarehouseCode = ware.Code;
 
-                 billTask.Enabled = true;
 
-                 billTask.WorkBench = request.StartPoint;
 
-                 billTask.AddrTo = "";
 
-                 //billTask.Floor = 2;
 
-                 billTask.Tunnel = "";
 
-                 billTask.PalletType = 1;
 
-                 billTask.AddTime = DateTime.Now;
 
-                 billTask.EditTime = DateTime.Now;
 
-                 billTask.MaterialCode = request.Remark;
 
-                 billTask.MatCode = request.Remark;
 
-                 billTask.BusType = request.BusType;
 
-                 _db.BeginTran();
 
-                 var wcs = _ptwcsTaskinfo.InsertReturnEntity(billTask);
 
-                 var taskold = _mapper.Map<ptWCS_TaskOld>(wcs);
 
-                 _ptwcsTaskold.InsertableSplitTable(taskold);
 
-                 var taskdetail = new ptWCS_TaskDtl()
 
-                 {
 
-                     ID = Guid.NewGuid(),
 
-                     CurPoint = request.StartPoint,
 
-                     AddTime = DateTime.Now,
 
-                     AddWho = "wms",
 
-                     Enabled = true,
 
-                     ParentTaskCode = wcs.ID,
 
-                     Desc = request.StartPoint + "pda入库",
 
-                 };
 
-                 _ptwcsTaskdtl.InsertableSplitTable(taskdetail);
 
-                 _db.CommitTran();
 
-             }
 
-             catch (Exception ex)
 
-             {
 
-                 _db.RollbackTran();
 
-                 return false;
 
-             }
 
-             return true;
 
-         }
 
-         private bool InsertContInfo(string code)
 
-         {
 
-             try
 
-             {
 
-                 ptBaseContainer barcode = new ptBaseContainer();
 
-                 barcode.ContBarCode = code;
 
-                 barcode.TypeCode = ContainerType.ContainerType_RFID.ToString();
 
-                 barcode.PrintQty = 1;
 
-                 //barcode.WarehouseId = 1668442390064664576;
 
-                 barcode.Name = code;
 
-                // barcode.WeightQty = 158;
 
-                 _ptbaseContInfo.Insert(barcode);
 
-             }
 
-             catch (Exception ex)
 
-             {
 
-                 return false;
 
-             }
 
-             return true;
 
-         }
 
-         /// <summary>
 
-         /// 分配巷道
 
-         /// </summary>
 
-         /// <param name="reqEntity"></param>
 
-         /// <returns></returns>
 
-         public SRes<string> GetPtTunnelPriorityList(GetTunnelPriorityListRequest reqEntity)
 
-         {
 
-             var result = new SRes<string>();
 
-             var wcstask = _ptwcsTaskold.AsQueryable().Where(p => p.ID == reqEntity.TaskNum).SplitTable(p => p.Take(1)).First();
 
-             if (wcstask == null)
 
-             {
 
-                 result.ResCode = ResponseStatusCodeEnum.WcsTaskNotExist.GetHashCode();
 
-                 result.ResMsg = reqEntity.TaskNum + ResponseStatusCodeEnum.WcsTaskNotExist.GetDescription();
 
-                 return result;
 
-             }
 
-             //先处理库存
 
-             var p = InsertStockInfo(reqEntity.Memo1);
 
-             if (p.ResCode != ResponseStatusCodeEnum.Sucess.GetHashCode())
 
-             {
 
-                 result.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
 
-                 result.ResMsg = "库存更新" + ResponseStatusCodeEnum.Fail.GetDescription();
 
-                 return result;
 
-             }
 
-             //获取任务数占用最少的
 
-             var wcstasks = _ptwcsTaskold.AsQueryable().Where(p => p.WarehouseCode == wcstask.WarehouseCode && p.Type == TaskType.EnterDepot && p.Status < TaskStatus.Finish).SplitTable(p => p.Take(1)).ToList();
 
-             var tunnelcountlist = new List<TunnelCountTemp>();
 
-             var runningtasks = wcstasks.Where(p => p.Tunnel != "0" && p.Tunnel != "" && p.Tunnel != null);
 
-             if (runningtasks.Any())
 
-             {
 
-                 tunnelcountlist = (from task in runningtasks.GroupBy(p => p.Tunnel)
 
-                                    select new TunnelCountTemp
 
-                                    {
 
-                                        Tunnel = task.Key,
 
-                                        Count = task.Count()
 
-                                    }).ToList();
 
-             }
 
-             //获取库位所有巷道列表
 
-             var alltunnels = _baseWareLocationrepository.GetList().Select(p => p.Tunnel).Distinct();
 
-             foreach (var item in alltunnels)
 
-             {
 
-                 if (!tunnelcountlist.Where(p => p.Tunnel == item.ToString()).Any())
 
-                 {
 
-                     tunnelcountlist.Add(new TunnelCountTemp()
 
-                     {
 
-                         Tunnel = item.ToString(),
 
-                         Count = 0
 
-                     });
 
-                 }
 
-             }
 
-             var tasktunnelcountlist = tunnelcountlist.OrderBy(p => p.Count).ToList();
 
-             var warehouse = _baseWareHouserepository.GetSingle(p => p.Code == wcstask.WarehouseCode);
 
-             //获取已占用库位最少的货架
 
-             var threshold = 5; //int.Parse(ConfigUtil.GetConfiguration["Threshold"]);//阈值
 
-             //获取所有有货的货位
 
-             var locationsreturn = _baseWareLocationrepository.GetList(p => p.WarehouseId == warehouse.Id && p.Size >= wcstask.Height && p.StateNum == LocationState.LocationState_Full.GetHashCode() && p.IsStop == 0);
 
-             //获取所有可用货位的数量
 
-             var shelflocationcount = _baseWareLocationrepository.GetList(p => p.WarehouseCode == wcstask.WarehouseCode && p.Size >= wcstask.Height && p.TypeNum == LocationType.LocationType_StorageLocation.GetHashCode() && p.IsStop == 0).GroupBy(p => new { p.Tunnel, p.Shelf }).Select(p => new { Tunnel = p.Key.Tunnel, Shelf = p.Key.Shelf, LocationCount = p.Select(q => q.Id).Count() });
 
-             if (locationsreturn == null || !locationsreturn.Any())
 
-             {
 
-                 result.ResData = string.Join(",", tasktunnelcountlist.OrderBy(p => p.Count).Select(p => p.Tunnel));
 
-             }
 
-             else
 
-             {
 
-                 var grouplocationtunnels = (from location in locationsreturn.GroupBy(p => p.Tunnel)
 
-                                             select new TunnelCountTemp
 
-                                             {
 
-                                                 Tunnel = location.Key.ToString(),
 
-                                                 Count = location.Count(),
 
-                                                 Proportion = location.Count() / (shelflocationcount.Where(p => p.Tunnel == location.Key).Any() ? decimal.Parse(shelflocationcount.Where(p => p.Tunnel == location.Key).Sum(p => p.LocationCount).ToString()) : 1)
 
-                                             }).ToList().OrderBy(p => p.Count).ToList();
 
-                 foreach (var item in alltunnels)
 
-                 {
 
-                     if (!grouplocationtunnels.Where(p => p.Tunnel == item.ToString()).Any())
 
-                     {
 
-                         grouplocationtunnels.Add(new TunnelCountTemp()
 
-                         {
 
-                             Tunnel = item.ToString(),
 
-                             Count = 0,
 
-                             Proportion = 0
 
-                         });
 
-                     }
 
-                 }
 
-                 grouplocationtunnels = grouplocationtunnels.OrderBy(p => p.Proportion).ToList();
 
-                 var sorttunnels = grouplocationtunnels.OrderBy(p => p.Proportion).Select(p => p.Tunnel).ToList();
 
-                 for (var i = 0; i < grouplocationtunnels.Count - 1; i++)
 
-                 {
 
-                     if (tasktunnelcountlist.Where(p => p.Tunnel == grouplocationtunnels[i].Tunnel).First().Count - threshold > tasktunnelcountlist.Where(p => p.Tunnel == grouplocationtunnels[i + 1].Tunnel).First().Count)
 
-                     {
 
-                         sorttunnels[i] = grouplocationtunnels[i + 1].Tunnel;
 
-                         sorttunnels[i + 1] = grouplocationtunnels[i].Tunnel;
 
-                         i++;
 
-                     }
 
-                     else
 
-                     {
 
-                         sorttunnels[i] = grouplocationtunnels[i].Tunnel;
 
-                     }
 
-                 }
 
-                 result.ResData = string.Join(",", sorttunnels);
 
-             }
 
-             //删除没有空闲货位的货架
 
-             var arrresultTunnels = result.ResData.Split(',');
 
-             var emptylocationsreturn = _baseWareLocationrepository.GetList(p => p.WarehouseCode == wcstask.WarehouseCode && p.Size >= wcstask.Height && p.StateNum == LocationState.LocationState_Empty.GetHashCode() && p.IsStop == 0);
 
-             var resultTunenls = new List<string>();
 
-             foreach (var sorttunnel in arrresultTunnels)
 
-             {
 
-                 //获取巷道的入库任务数
 
-                 var tunneltaskcount = _ptwcsTaskold.GetList(p => p.WarehouseCode == wcstask.WarehouseCode && p.Type == TaskType.EnterDepot && p.Status < TaskStatus.Finish && p.Height >= wcstask.Height && p.Tunnel == wcstask.Tunnel).Count();
 
-                 int left = 0;
 
-                 if (emptylocationsreturn.Where(p => p.Tunnel == int.Parse(sorttunnel)).Count() - tunneltaskcount > left)
 
-                 {
 
-                     resultTunenls.Add(sorttunnel);
 
-                 }
 
-                 result.ResData = string.Join(",", resultTunenls);
 
-             }
 
-             //根据配置过滤禁用的巷道
 
-             var disabletunnels = _sysconfigrepository.GetList(p => p.SType == "InStop" && !string.IsNullOrEmpty(p.SContent));
 
-             if (disabletunnels != null && disabletunnels.Any())
 
-             {
 
-                 var resultTunenlsNew = new List<string>();
 
-                 var resultTunenlsTemp = result.ResData.Split(',');
 
-                 foreach (var tun in resultTunenlsTemp)
 
-                 {
 
-                     if (!disabletunnels.Select(p => p.Default1).Contains(tun))
 
-                     {
 
-                         resultTunenlsNew.Add(tun);
 
-                     }
 
-                 }
 
-                 result.ResData = string.Join(",", resultTunenlsNew);
 
-             }
 
-             return result;
 
-         }
 
-         public SRes<PtApplyStockInLocResponse> PtApplyStockInLoc(PtApplyStockInLocRequest reqEntity)
 
-         {
 
-             var res = ApplyStockInLocTemp(reqEntity);
 
-             if (string.IsNullOrEmpty(res.ResData.CellNo))
 
-             {
 
-                 return res;
 
-             }
 
-             try
 
-             {
 
-                 _db.BeginTran();
 
-                 //更新货位
 
-                 _baseWareLocationrepository.UpdateModelColumns(p => new ptBaseWareLocation() { StateNum = LocationState.LocationState_StockIn.GetHashCode(), ContGrpBarCode = "", ContGrpId = 0, EditTime = DateTime.Now },
 
-                        p => p.Code == res.ResData.CellNo);
 
-                 _db.CommitTran();
 
-             }
 
-             catch (Exception ex)
 
-             {
 
-                 _db.RollbackTran();
 
-                 _logger.LogInformation(ex.ToString());
 
-             }
 
-             return res;
 
-         }
 
-         private SRes<PtApplyStockInLocResponse> ApplyStockInLocTemp(PtApplyStockInLocRequest reqEntity)
 
-         {
 
-             var res = new SRes<PtApplyStockInLocResponse>()
 
-             {
 
-                 ResCode = ResponseStatusCodeEnum.Sucess.GetHashCode(),
 
-                 ResMsg = ResponseStatusCodeEnum.Sucess.GetDescription(),
 
-                 ResData = new PtApplyStockInLocResponse()
 
-             };
 
-             var wcstask = _ptwcsTaskold.AsQueryable().Where(p => p.ID == reqEntity.TaskNum).SplitTable(tabs => tabs.Take(1)).First(); ;
 
-             if (wcstask == null)
 
-             {
 
-                 res.ResCode = ResponseStatusCodeEnum.WcsTaskNotExist.GetHashCode();
 
-                 res.ResMsg = ResponseStatusCodeEnum.WcsTaskNotExist.GetDescription();
 
-                 return res;
 
-             }
 
-             if (wcstask.Type == TaskType.OutDepot)
 
-             {
 
-                 res.ResCode = ResponseStatusCodeEnum.ErrParam.GetHashCode();
 
-                 res.ResMsg = "该任务是出库任务,不能分配货位;wms任务号" + wcstask.ID;
 
-                 return res;
 
-             }
 
-             if (!string.IsNullOrEmpty(wcstask.AddrTo) && wcstask.AddrTo != "srm")
 
-             {
 
-                 res.ResData.TunnelNum = wcstask.Tunnel;
 
-                 res.ResData.CellNo = wcstask.AddrTo;
 
-                 res.ResData.Row = wcstask.AddrTo.Split('-')[0] != null ? int.Parse(wcstask.AddrTo.Split('-')[0]) : 0;
 
-                 res.ResData.Colomn = wcstask.AddrTo.Split('-')[1] != null ? int.Parse(wcstask.AddrTo.Split('-')[1]) : 0;
 
-                 res.ResData.Layer = wcstask.AddrTo.Split('-')[2] != null ? int.Parse(wcstask.AddrTo.Split('-')[2]) : 0;
 
-                 return res;
 
-             }
 
-             if (reqEntity.TunnelNum <= 0)
 
-             {
 
-                 res.ResCode = ResponseStatusCodeEnum.NotTunnelNum.GetHashCode();
 
-                 res.ResMsg = ResponseStatusCodeEnum.NotTunnelNum.GetDescription();
 
-                 return res;
 
-             }
 
-             var warehouse = _baseWareHouserepository.GetFirst(p => p.Code == wcstask.WarehouseCode);
 
-             if (warehouse == null)
 
-             {
 
-                 res.ResCode = ResponseStatusCodeEnum.WarehouseCodeNotExist.GetHashCode();
 
-                 res.ResMsg = ResponseStatusCodeEnum.WarehouseCodeNotExist.GetDescription();
 
-                 return res;
 
-             }
 
-             //验证库存
 
-             var stock = _ptbillInvnow.GetFirst(p => p.HWBarCode == wcstask.BarCode && p.InvStateCode == InvState.InvEcecState_BuildUp.ToString());
 
-             if (stock == null)
 
-             {
 
-                 res.ResCode = ResponseStatusCodeEnum.StockNotExist.GetHashCode();
 
-                 res.ResMsg = ResponseStatusCodeEnum.StockNotExist.GetDescription();
 
-                 return res;
 
-             }
 
-             var locell = new PtApplyLocRequest()
 
-             {
 
-                 MaterialId = stock.MatId,
 
-                 MaterialCode = stock.MatCode,
 
-                 Size = stock.Size,
 
-                 TunnelNum = reqEntity.TunnelNum,
 
-                 WarehuoseId = warehouse.Id,
 
-                 IsMove = wcstask.Type == TaskType.TransferDepot
 
-             };
 
-             //预留货位数量
 
-             var emptyLoc = _baseWareLocationrepository.GetList(p => p.IsStop == 0
 
-             && p.StateNum == LocationState.LocationState_Empty.GetHashCode()
 
-             && p.TypeNum == LocationType.LocationType_StorageLocation.GetHashCode()
 
-             && p.Tunnel == locell.TunnelNum
 
-             && p.WarehouseId == locell.WarehuoseId
 
-             && p.Size == locell.Size
 
-             );
 
-             //判断是否移库
 
-             if (!locell.IsMove && (emptyLoc == null || emptyLoc.Count < 2))
 
-             {
 
-                 res.ResCode = ResponseStatusCodeEnum.NotEnoughLocation.GetHashCode();
 
-                 res.ResMsg = ResponseStatusCodeEnum.NotEnoughLocation.GetDescription();
 
-                 return res;
 
-             }
 
-             if (!emptyLoc.Any() || emptyLoc == null)
 
-             {
 
-                 res.ResCode = ResponseStatusCodeEnum.NotEnoughLocation.GetHashCode();
 
-                 res.ResMsg = ResponseStatusCodeEnum.NotEnoughLocation.GetDescription();
 
-                 return res;
 
-             }
 
-             var loc = emptyLoc.First();
 
-             res.ResData.TunnelNum = loc.Tunnel.ToString();
 
-             res.ResData.CellNo = loc.Code;
 
-             res.ResData.Row = loc.Row;
 
-             res.ResData.Colomn = loc.Col;
 
-             res.ResData.Layer = loc.Layer;
 
-             return res;
 
-         }
 
-         public SRes<int> PtCompleteTask(CompleteTaskRequest reqDto)
 
-         {
 
-             var result = new SRes<int>()
 
-             {
 
-                 ResCode = ResponseStatusCodeEnum.Sucess.GetHashCode(),
 
-                 ResMsg = ResponseStatusCodeEnum.Sucess.GetDescription(),
 
-                 ResData = reqDto.TaskNum
 
-             };
 
-             var task = _ptwcsTaskold.AsQueryable().Where(p => p.ID == reqDto.TaskNum).SplitTable(tabs => tabs.Take(1)).First();
 
-             if (task == null)
 
-             {
 
-                 result.ResCode = ResponseStatusCodeEnum.WcsTaskNotExist.GetHashCode();
 
-                 result.ResMsg = reqDto.TaskNum + ResponseStatusCodeEnum.WcsTaskNotExist.GetDescription();
 
-                 return result;
 
-             }
 
-             if (task.Type == TaskType.EnterDepot)
 
-             {
 
-                 //库存,货位
 
-                 try
 
-                 {
 
-                     var warehouse = _baseWareHouserepository.GetSingle(p => p.Code == task.WarehouseCode);
 
-                     var stock = _ptbillInvnow.GetFirst(p => p.ContGrpBarCode == task.BarCode && p.InvStateCode == InvState.InvEcecState_BuildUp.ToString());
 
-                     if (stock == null)
 
-                     {
 
-                         result.ResCode = ResponseStatusCodeEnum.StockNotExist.GetHashCode();
 
-                         result.ResMsg = task.BarCode + "没有已组盘的信息";
 
-                         return result;
 
-                     }
 
-                     _db.BeginTran();
 
-                     int row = int.Parse(task.AddrTo.Split('-')[0]);
 
-                     int col = int.Parse(task.AddrTo.Split('-')[1]);
 
-                     int layer = int.Parse(task.AddrTo.Split('-')[2]);
 
-                     //更新库存
 
-                     _ptbillInvnow.UpdateModelColumns(p => new ptBillInvnow() { InvStateCode = InvState.InvEcecState_In.ToString(), PutRow = row, PutCol = col, PutLayer = layer, OneInTime = DateTime.Now, EditTime = DateTime.Now, ExecStateCode = InvLockState.InvState_Lock.ToString() },
 
-                            p => p.ContGrpBarCode == task.BarCode && p.InvStateCode == InvState.InvEcecState_BuildUp.ToString());
 
-                     _ptbillInvinit.Delete(p => p.ContGrpBarCode == stock.ContGrpBarCode);
 
-                     //更新货位
 
-                     _baseWareLocationrepository.UpdateModelColumns(p => new ptBaseWareLocation() { StateNum = LocationState.LocationState_Full.GetHashCode(), ContGrpBarCode = stock.ContGrpBarCode, ContGrpId = stock.ContGrpId, EditTime = DateTime.Now },
 
-                            p => p.Code.Contains(task.AddrTo));
 
-                     var stocklist = _ptbillInvnow.GetList(p => p.ContGrpBarCode == task.BarCode && p.InvStateCode == InvState.InvEcecState_In.ToString());
 
-                     foreach (var item in stocklist)
 
-                     {
 
-                         item.Id = IdFactory.NewId();
 
-                         item.AddTime = DateTime.Now;
 
-                     }
 
-                     _ptBillInvFlow.InsertRange(_mapper.Map<List<ptBillInvFlow>>(stocklist));
 
-                     var list = new List<ptBillPushinfo>();
 
-                     string pushtype = "";
 
-                     if (task.BusType == PtTaskBusType.TaskBusType_PT_PurchaseStockIn.GetDescription())
 
-                     {
 
-                         pushtype = PtFackbeekType.InterfaceType_PT_PurchaseStockIn.ToString();
 
-                     }
 
-                     //回调数据
 
-                     foreach (var item in stocklist)
 
-                     {
 
-                         list.Add(new ptBillPushinfo
 
-                         {
 
-                             DocsNo = stock.InDocsNo,
 
-                             TypeCode = pushtype,
 
-                             RFIDBarCode = stock.ContGrpBarCode,
 
-                             HWBarCode = stock.RodBarCode,
 
-                             CLBarCode = item.CLBarCode,
 
-                             WarehouseId = warehouse.Id,
 
-                             WarehouseCode = warehouse.Code,
 
-                             WareCellId = 0,
 
-                             WareCellCode = task.AddrTo,
 
-                             MatId = item.MatId,
 
-                             MatCode = item.MatCode,
 
-                             MatName = item.MatName,
 
-                             ReqNo = Guid.NewGuid().ToString()
 
-                         });
 
-                     }
 
-                     _ptbillPushinfo.InsertRange(list);
 
-                     _db.CommitTran();
 
-                 }
 
-                 catch (Exception ex)
 
-                 {
 
-                     _db.RollbackTran();
 
-                     result.ResCode = ResponseStatusCodeEnum.InnerServerErr.GetHashCode();
 
-                     result.ResMsg = task.ID + "完成任务异常";
 
-                     _logger.LogInformation("完成任务异常" + ex.ToString());
 
-                 }
 
-             }
 
-             else if (task.Type == TaskType.OutDepot)
 
-             {
 
-                 //库存删除
 
-                 var stocklist = _ptbillInvnow.GetList(p => p.ContGrpBarCode == task.BarCode && p.InvStateCode == InvState.InvEcecState_OutGoing.ToString());
 
-                 if (stocklist == null || !stocklist.Any())
 
-                 {
 
-                     result.ResCode = ResponseStatusCodeEnum.StockNotExist.GetHashCode();
 
-                     result.ResMsg = reqDto.TaskNum + ResponseStatusCodeEnum.StockNotExist.GetDescription();
 
-                     return result;
 
-                 }
 
-                 var flowlist = _mapper.Map<List<ptBillInvFlow>>(stocklist);
 
-                 foreach (var item in flowlist)
 
-                 {
 
-                     item.Id = IdFactory.NewId();
 
-                     item.InvStateCode = InvState.InvEcecState_Out.ToString();
 
-                     item.AddTime = DateTime.Now;
 
-                     item.Memo = "任务完成";
 
-                 }
 
-                 try
 
-                 {
 
-                     _db.BeginTran();
 
-                     _ptbillInvnow.Delete(p => stocklist.Select(p => p.Id).ToList().Contains(p.Id));
 
-                     _ptbillInvinit.Delete(p => p.ContGrpBarCode == task.BarCode);
 
-                     _baseWareLocationrepository.UpdateModelColumns(p => new ptBaseWareLocation() { StateNum = LocationState.LocationState_Empty.GetHashCode(), ContGrpBarCode = "", ContGrpId = 0, EditTime = DateTime.Now },
 
-                         p => p.StateNum == LocationState.LocationState_StockOut.GetHashCode() && p.ContGrpId == flowlist.First().ContGrpId && p.Code.Contains(task.AddrFrom));
 
-                     _ptBillInvFlow.InsertRange(flowlist);
 
-                     _db.CommitTran();
 
-                 }
 
-                 catch (Exception ex)
 
-                 {
 
-                     _db.RollbackTran();
 
-                     _logger.LogInformation(ex.ToString());
 
-                     result.ResCode = ResponseStatusCodeEnum.InnerServerErr.GetHashCode();
 
-                     result.ResMsg = task.ID + "完成任务异常";
 
-                 }
 
-             }
 
-             else if (task.Type == TaskType.TransferDepot)
 
-             {
 
-                 var fromcell = _baseWareLocationrepository.GetFirst(p => p.Code == task.AddrFrom);
 
-                 var grcontid = fromcell.ContGrpId;
 
-                 var grcontcode = fromcell.ContGrpBarCode;
 
-                 var fromcellno = fromcell.Code;
 
-                 var tocellno = task.AddrTo;
 
-                 try
 
-                 {
 
-                     _db.BeginTran();
 
-                     _baseWareLocationrepository.UpdateModelColumns(p => new ptBaseWareLocation() { StateNum = LocationState.LocationState_Empty.GetHashCode(), ContGrpBarCode = "", ContGrpId = 0, EditTime = DateTime.Now }, p => p.Code.Contains(fromcellno));
 
-                     _baseWareLocationrepository.UpdateModelColumns(p => new ptBaseWareLocation() { StateNum = LocationState.LocationState_Full.GetHashCode(), ContGrpBarCode = grcontcode, ContGrpId = grcontid, EditTime = DateTime.Now }, p => p.Code.Contains(tocellno));
 
-                     int row = int.Parse(tocellno.Split('-')[0]);
 
-                     int col = int.Parse(tocellno.Split('-')[1]);
 
-                     int layer = int.Parse(tocellno.Split('-')[2]);
 
-                     _ptbillInvnow.UpdateModelColumns(p => new ptBillInvnow() { PutRow = row, PutCol = col, PutLayer = layer }, p => p.ContGrpId == grcontid && p.InvStateCode == InvState.InvEcecState_In.ToString());
 
-                     var stock = _ptbillInvnow.GetFirst(p => p.ContGrpId == grcontid && p.ContGrpBarCode == grcontcode && p.InvStateCode == InvState.InvEcecState_In.ToString());
 
-                     //流水表
 
-                     var flow = _mapper.Map<ptBillInvFlow>(stock);
 
-                     flow.Id = IdFactory.NewId();
 
-                     flow.AddTime = DateTime.Now;
 
-                     flow.Memo = grcontcode + "移库(" + fromcellno + "至" + tocellno + ")";
 
-                     _ptBillInvFlow.Insert(flow);
 
-                     //推送表
 
-                     _db.CommitTran();
 
-                 }
 
-                 catch (Exception ex)
 
-                 {
 
-                     _db.RollbackTran();
 
-                     result.ResCode = ResponseStatusCodeEnum.InnerServerErr.GetHashCode();
 
-                     result.ResMsg = task.ID + "完成任务异常";
 
-                     _logger.LogInformation("完成任务异常" + ex.ToString());
 
-                 }
 
-             }
 
-             return result;
 
-         }
 
-         public SRes<int> PtSrmPickOutCompleted(PtSrmPickOutCompletedRequest reqDto)
 
-         {
 
-             var result = new SRes<int>()
 
-             {
 
-                 ResCode = ResponseStatusCodeEnum.Sucess.GetHashCode(),
 
-                 ResMsg = ResponseStatusCodeEnum.Sucess.GetDescription(),
 
-                 ResData = reqDto.TaskNum
 
-             };
 
-             var wcstask = _ptwcsTaskold.AsQueryable().Where(p => p.ID == reqDto.TaskNum).SplitTable(tabs => tabs.Take(1)).First(); ;
 
-             if (wcstask == null)
 
-             {
 
-                 result.ResCode = ResponseStatusCodeEnum.WcsTaskNotExist.GetHashCode();
 
-                 result.ResMsg = reqDto.TaskNum + ResponseStatusCodeEnum.WcsTaskNotExist.GetDescription();
 
-                 return result;
 
-             }
 
-             if (wcstask.Type != TaskType.OutDepot)
 
-             {
 
-                 result.ResCode = ResponseStatusCodeEnum.OnlyStockOutAvil.GetHashCode();
 
-                 result.ResMsg = reqDto.TaskNum + ResponseStatusCodeEnum.OnlyStockOutAvil.GetDescription();
 
-                 return result;
 
-             }
 
-             if (wcstask.Status >= TaskStatus.Finish)
 
-             {
 
-                 result.ResCode = ResponseStatusCodeEnum.WcsTaskStateIsComplete.GetHashCode();
 
-                 result.ResMsg = reqDto.TaskNum + ResponseStatusCodeEnum.WcsTaskStateIsComplete.GetDescription();
 
-                 return result;
 
-             }
 
-             try
 
-             {
 
-                 _db.BeginTran();
 
-                 //更新库存
 
-                 _ptbillInvnow.UpdateModelColumns(p => new ptBillInvnow() { PutRow = 0, PutCol = 0, PutLayer = 0 }, p => p.InvStateCode == InvState.InvEcecState_OutGoing.ToString() && p.ContGrpBarCode == wcstask.BarCode);
 
-                 var stocklist = _ptbillInvnow.GetList(p => p.ContGrpBarCode == wcstask.BarCode && p.InvStateCode == InvState.InvEcecState_OutGoing.ToString());
 
-                 if (stocklist == null || !stocklist.Any())
 
-                 {
 
-                     result.ResCode = ResponseStatusCodeEnum.StockNotExist.GetHashCode();
 
-                     result.ResMsg = reqDto.TaskNum + ResponseStatusCodeEnum.StockNotExist.GetDescription();
 
-                     return result;
 
-                 }
 
-                 var flowlist = _mapper.Map<List<ptBillInvFlow>>(stocklist);
 
-                 foreach (var item in flowlist)
 
-                 {
 
-                     item.Id = IdFactory.NewId();
 
-                     item.AddTime = DateTime.Now;
 
-                     item.Memo = "堆垛机出库放货完成";
 
-                 }
 
-                 //货位
 
-                 _baseWareLocationrepository.UpdateModelColumns(p => new ptBaseWareLocation() { StateNum = LocationState.LocationState_Empty.GetHashCode(), ContGrpBarCode = "", ContGrpId = 0, EditTime = DateTime.Now },
 
-                          p => p.ContGrpBarCode == wcstask.BarCode && p.Code.Contains(wcstask.AddrFrom));
 
-                 _ptBillInvFlow.InsertRange(flowlist);
 
-                 _db.CommitTran();
 
-             }
 
-             catch (Exception ex)
 
-             {
 
-                 _db.RollbackTran();
 
-                 _logger.LogInformation(ex.ToString());
 
-                 result.ResCode = ResponseStatusCodeEnum.InnerServerErr.GetHashCode();
 
-                 result.ResMsg = wcstask.ID + "堆垛机出库放货完成异常";
 
-             }
 
-             return result;
 
-         }
 
-         public SRes GetSyncMaterInfo(PtSyncMaterInfoListRequest ResData)
 
-         {
 
-             var res = new SRes();
 
-             if (!string.IsNullOrEmpty(ResData.MatCode))
 
-             {
 
-                 ResData.UpdatedTime = DateTime.Now.ToString();
 
-                 if (_materrepository.IsAny(p => p.Code == ResData.MatCode))
 
-                 {
 
-                     _materrepository.UpdateModelColumns(p => new ptBaseMater() { IsHold = ResData.IsHold, HoldDuration = ResData.HoldDuration, Name = ResData.MatName, EditTime = DateTime.Now, Description = ResData.Describe },
 
-                        p => p.Code == ResData.MatCode);
 
-                 }
 
-                 else
 
-                 {
 
-                     var model = _mapper.Map<ptBaseMater>(ResData);
 
-                     model.AddTime = DateTime.Now;
 
-                     model.WarehouseId = 263682712;
 
-                     _materrepository.Insert(model);
 
-                 }
 
-             }
 
-             return res;
 
-         }
 
-     }
 
- }
 
 
  |