123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628 |
- using AutoMapper;
- using Microsoft.Extensions.Logging;
- using Newtonsoft.Json;
- using SqlSugar;
- using System;
- using System.Collections.Generic;
- using System.Linq.Expressions;
- using System.Text;
- using wms.dataservice.IDataSetvice;
- using wms.dto;
- using wms.dto.request.fj;
- using wms.dto.response;
- using wms.dto.response.fj;
- using wms.service.IService;
- using wms.sqlsugar;
- using wms.sqlsugar.model;
- using wms.sqlsugar.model.fj;
- using wms.util.Ext;
- using System.Linq;
- using WCS.Entity.fj;
- using wms.util.Check;
- namespace wms.service.Service
- {
- public class FJService : IFJService
- {
- private readonly IMapper _mapper;
- private readonly ILogger<FJService> _logger;
- private readonly IFJDataService _IFJDataService;
-
- public FJService(IMapper mapper, ILogger<FJService> logger, IFJDataService IFJDataService)
- {
- _mapper = mapper;
- _logger = logger;
- _IFJDataService = IFJDataService;
- }
- Repository<fjSysConfig> _sysconfigrepository => new Repository<fjSysConfig>();
- ITenant _db => SqlSugarHelper.Db;//处理事务
- Repository<BaseContinfo> _baseContinfo => new Repository<BaseContinfo>();
- RepositoryTask<WCS_TaskInfo> _taskrepository => new RepositoryTask<WCS_TaskInfo>();
- Repository<BillInvnow> _billInvnowrepository => new Repository<BillInvnow>();
- Repository<BillInvinit> _billInvinitrepository => new Repository<BillInvinit>();
- Repository<BaseMatinfo> _basematerrepository => new Repository<BaseMatinfo>();
- Repository<BillSpoolTrans> _billSpoolTransrepository => new Repository<BillSpoolTrans>();
- Repository<BillBominfo> _billBominfoRepository => new Repository<BillBominfo>();
- Repository<BillBomsetinfo> _billBomsetinfoRepository => new Repository<BillBomsetinfo>();
- Repository<BillBomsetgrp> _billBomsetgrpRepository => new Repository<BillBomsetgrp>();
-
- Repository<BillDocsinfo> _billdocrepository => new Repository<BillDocsinfo>();
- RepositoryTask<WCS_TaskOld> _wcstaskoldrepository => new RepositoryTask<WCS_TaskOld>();
- Repository<BillInvflow> _billInvflow => new Repository<BillInvflow>();
- Repository<BillPushinfo> _billPushinforepository => new Repository<BillPushinfo>();
- Repository<BaseWarecell> _basewarecellrepository => new Repository<BaseWarecell>();
- Repository<BaseWarehouse> _basewarehouserepository => new Repository<BaseWarehouse>();
- RepositoryTask<WCS_TaskDtl> _taskdetailrepository => new RepositoryTask<WCS_TaskDtl>();
- Repository<BillMachinfo> _basemachinforepository => new Repository<BillMachinfo>();
- /// <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 fjSysConfig 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 fjSysConfig GetSysConfigByExpression(Expression<Func<fjSysConfig, bool>> WhereExpression)
- {
- return _sysconfigrepository.GetSingle(WhereExpression);
- }
-
- /// <summary>
- /// 获取反馈信息
- /// </summary>
- /// <param name="code"></param>
- /// <returns></returns>
- public List<BillPushinfo> GetBillPushinfoList(Expression<Func<BillPushinfo, bool>> WhereExpression)
- {
- return _billPushinforepository.GetList(WhereExpression);
- }
- ///// <summary>
- ///// 获取单据信息
- ///// </summary>
- ///// <param name="code"></param>
- ///// <returns></returns>
- //public fjBillDocument GetBillDocumentList(Expression<Func<fjBillDocument, bool>> WhereExpression)
- //{
- // return _billdtrepository.Context.Queryable<fjBillDocument, fjSysConfig>((doc, conf) => new object[] {
- // JoinType.Left, doc.BState == conf.Code
- // }).Where((doc, conf) => doc.Status == 0)
- // .Select((bc, bm) => bc).First();
- //}
- /// <summary>
- /// 更新SysConfig表字段
- /// </summary>
- /// <param name="updateModel"></param>
- /// <returns></returns>
- public bool UpdateSysConfigModelColumns(UpdateModelColumns<fjSysConfig> updateModel)
- {
- return _sysconfigrepository.Update(updateModel.Columns, updateModel.WhereExpression);
- }
- /// <summary>
- /// 更新BillPushinfo表字段
- /// </summary>
- /// <param name="updateModel"></param>
- /// <returns></returns>
- public bool UpdateBillPushinfoModelColumns(UpdateModelColumns<BillPushinfo> updateModel)
- {
- return _billPushinforepository.Update(updateModel.Columns, updateModel.WhereExpression);
- }
-
- public bool SyncMaterInfo(List<FJSyncMaterInfoResponseItem> ResData)
- {
- foreach (var item in ResData)
- {
- item.UpdatedTime = DateTime.Now;
- if (_basematerrepository.IsAny(p => p.Code == item.MatCode))
- {
- _basematerrepository.UpdateModelColumns(p => new BaseMatinfo() { IsHold = item.IsHold, HoldDuration = item.HoldDuration, Name = item.MatName, EditTime = DateTime.Now, Description = item.Describe },
- p => p.Code == item.MatCode);
- }
- else
- {
- var model = _mapper.Map<BaseMatinfo>(item);
- model.AddTime = DateTime.Now;
- _basematerrepository.Insert(model);
- }
- }
- return true;
- }
- public bool SyncMachineInfo(List<SyncMachineInfoResponseItem> ResData)
- {
- foreach (var item in ResData)
- {
- if (_basemachinforepository.IsAny(p => p.MachNo == item.MacCode))
- {
- _basemachinforepository.UpdateModelColumns(p => new BillMachinfo() { GrpCode = item.MacGroup, Direction = item.Direction,Station = item.LocCode,EditTime = DateTime.Now },
- p => p.MachNo == item.MacCode);
- }
- else
- {
- var model = _mapper.Map<BillMachinfo>(item);
- _basemachinforepository.Insert(model);
- }
- }
- return true;
- }
- /// <summary>
- /// 投料信息接收
- /// </summary>
- /// <param name="reqDto"></param>
- /// <returns></returns>
- public SRes WetFormulaInfo(WetFormulaInfoRequest reqDto)
- {
- var res = new SRes();
- //保存表Bill_BomInfo
- foreach (var item in reqDto.FeedList)
- {
- if (_billBominfoRepository.IsAny(p => p.Code == reqDto.FeedCode && p.MatCode == item.MatCode))
- {
- var mat = _basematerrepository.GetSingle(p => p.Code == item.MatCode);
- _billBominfoRepository.UpdateModelColumns(p => new BillBominfo() { MatCode = item.MatCode,MatId = mat.Id, Name = item.MatCode, HWCountQty = item.Count, EditTime = DateTime.Now },
- p => p.Code == reqDto.FeedCode && p.MatCode == item.MatCode);
- }
- else
- {
- var mat = _basematerrepository.GetSingle(p => p.Code == item.MatCode);
- if (mat == null)
- {
- res.ResCode = ResponseStatusCodeEnum.ErrParam.GetHashCode();
- res.ResMsg = ResponseStatusCodeEnum.ErrParam.GetDescription();
- return res;
- }
- var model = new BillBominfo() {
- Code = reqDto.FeedCode,
- Name = reqDto.FeedCode,
- MatCode = item.MatCode,
- MatId = mat.Id,
- AddTime = DateTime.Now,
- AddWho = "wms",
- EditTime = DateTime.Now,
- EditWho = "wms",
- IsStop = 0,
- HWCountQty = item.Count,
- ProMatCode = reqDto.MaterialCode
- };
- model.AddTime = DateTime.Now;
- _billBominfoRepository.Insert(model);
- }
- }
- return res;
- }
- /// <summary>
- /// 帘线工单信息传输
- /// </summary>
- /// <param name="reqDto"></param>
- /// <returns></returns>
- public SRes CurtainProductionOrder(CurtainProductionOrderRequest reqDto)
- {
- var res = new SRes();
- var stack = _billBomsetgrpRepository.GetModelByExpression(p => p.ProMaterCode == reqDto.MatCode && p.BomCode == reqDto.FeedCode);
- if (stack == null)
- {
- res.ResCode = ResponseStatusCodeEnum.ErrParam.GetHashCode();
- res.ResMsg = reqDto.BillCode + "该单据配方没有垛型信息,请先配置垛型";
- return res;
- }
- if (reqDto.BillState == CurtainBillState.初始化.ToString() || reqDto.BillState == CurtainBillState.已排产.ToString())
- {
- var doc = _billdocrepository.GetSingle(p => p.DocsNo == reqDto.BillCode);
- if (doc == null)
- {
- doc = new BillDocsinfo();
- doc.WarehouseId = 0;
- doc.ReqNo = reqDto.BillCode;
- doc.DocsNo = reqDto.BillCode;
- doc.TypeNum = DocType.DocType_FJ_CurtainProduction.GetHashCode();
- doc.StateNum = DocState.DocState_Create.GetHashCode();
- doc.JsonContent = JsonConvert.SerializeObject(reqDto);
- doc.DownQty = 1;
- doc.IsStop = 0;
- doc.BomCode = reqDto.FeedCode;
- doc.ProMaterCode = reqDto.MatCode;
- doc.SetGrpCode = stack.Code;
- doc.WorkOrder = reqDto.WorkOrder;
- var docinsert = _billdocrepository.Insert(doc);
- if (!docinsert)
- {
- res.ResCode = ResponseStatusCodeEnum.ErrParam.GetHashCode();
- res.ResMsg = ResponseStatusCodeEnum.ErrParam.GetDescription();
- return res;
- }
- }
- _basemachinforepository.UpdateModelColumns(p => new BillMachinfo() { ProBillCode = reqDto.BillCode, ProWorkOrder = reqDto.WorkOrder, ProSetGrpCode = stack.Code, EditTime = DateTime.Now }, p => reqDto.WbList.Contains(p.MachNo));
- }
- else if (reqDto.BillState == CurtainBillState.生产中.ToString())
- {
- int state = DocState.DocState_Execute.GetHashCode();
- _billdocrepository.UpdateModelColumns(p => new BillDocsinfo() { StateNum = state }, p => p.DocsNo == reqDto.BillCode);
- _basemachinforepository.UpdateModelColumns(p => new BillMachinfo() { BillCode = reqDto.BillCode, WorkOrder = reqDto.WorkOrder, SetGrpCode = stack.Code, EditTime = DateTime.Now }, p => reqDto.WbList.Contains(p.MachNo));
- }
- else if (reqDto.BillState == CurtainBillState.生产结束.ToString()|| reqDto.BillState == CurtainBillState.计划关闭.ToString())
- {
- int state = DocState.DocState_Complete.GetHashCode();
- _billdocrepository.UpdateModelColumns(p => new BillDocsinfo() { StateNum = state }, p => p.DocsNo == reqDto.BillCode);
- }
- return res;
- }
- /// <summary>
- /// 湿拉工单启动验证
- /// </summary>
- /// <param name="reqDto"></param>
- /// <returns></returns>
- public SRes CurtainOrderStartCheck(CurtainOrderStartCheckRequest reqDto)
- {
- var res = new SRes();
- var doc = _billdocrepository.GetList(p => p.WorkOrder == reqDto.BillCode);
- if (doc == null || !doc.Any())
- {
- res.ResCode = 0;
- res.ResMsg = reqDto.BillCode + "工单不存在";
- return res;
- }
- if (doc.Where(p=> string.IsNullOrEmpty(p.BomCode)).Any())
- {
- res.ResCode = 0;
- res.ResMsg = reqDto.BillCode + "帘线工序工单没有配置垛型信息,请先配置垛型";
- return res;
- }
- //foreach (var item in doc)
- //{
- // _basemachinforepository.UpdateModelColumns(p => new BillMachinfo() { BillCode = item.DocsNo, WorkOrder = item.WorkOrder, SetGrpCode = item.SetGrpCode, EditTime = DateTime.Now }, p => p.ProBillCode == item.DocsNo);
- //}
- return res;
- }
-
- /// <summary>
- /// 湿拉工字轮/芯股信息传输接口
- /// </summary>
- /// <param name="reqDto"></param>
- /// <returns></returns>
- public SRes SpoolMaterialInfoTrans(SpoolMaterialInfoTransRequest reqDto)
- {
- var res = new SRes();
- var container = _baseContinfo.GetSingle(p => p.ContBarCode == reqDto.SpoolCode);
- if (container == null)
- {
- var insertcon = new BaseContinfo()
- {
- ContBarCode = reqDto.SpoolCode,
- Name = reqDto.SpoolCode,
- TypeCode = ContainerType.ContainerType_Spool.ToString(),
- PrintQty = 1,
- IsStop = 0,
- WarehouseId = 0,
- WeightQty = 0,
- AddWho = "wms",
- AddTime = DateTime.Now
- };
- //新加载具信息
- if (!_baseContinfo.Insert(insertcon))
- {
- res.ResCode = ResponseStatusCodeEnum.ErrParam.GetHashCode();
- res.ResMsg = "工字轮载具初始化失败";
- return res;
- }
- }
- var mater = _basematerrepository.GetSingle(p => p.Code == reqDto.MatCode);
- if (mater == null)
- {
- res.ResCode = ResponseStatusCodeEnum.MaterInfoNotExist.GetHashCode();
- res.ResMsg = ResponseStatusCodeEnum.MaterInfoNotExist.GetDescription();
- return res;
- }
- BillSpoolTrans billSpoolTrans = new BillSpoolTrans();
- billSpoolTrans.ConBarCode = reqDto.SpoolCode;
- billSpoolTrans.BillCode = reqDto.BillCode;
- billSpoolTrans.WorkOrder = reqDto.WorkOrder;
- billSpoolTrans.AddTime = DateTime.Now;
- var stock = _billInvnowrepository.GetSingle(p => p.ContGrpBarCode == reqDto.SpoolCode);
- if (stock != null && stock.InvStateCode == InvState.InvEcecState_In.ToString())
- {
- billSpoolTrans.ErrType = 1;
- billSpoolTrans.Memo = "该工字轮条码号已在库中,请检查RFID号是否重复";
- }
- if (stock != null && stock.InvStateCode == InvState.InvEcecState_OutGoing.ToString())
- {
- billSpoolTrans.ErrType = 1;
- billSpoolTrans.Memo = "该工字轮条码号存在出库中任务,请检查上一个任务是否已经完成";
- }
- //条码验证
- var barstock = _billInvnowrepository.GetSingle(p => p.InvBarCode == reqDto.MatBarCode);
- if (barstock != null && barstock.InvStateCode == InvState.InvEcecState_In.ToString())
- {
- billSpoolTrans.ErrType = 1;
- billSpoolTrans.Memo = "该材料号已在库中,请检查是否重复";
- }
- if (barstock != null && barstock.ContGrpBarCode != reqDto.SpoolCode)
- {
- billSpoolTrans.ErrType = 1;
- billSpoolTrans.Memo = reqDto.MatBarCode + "该材料号已经绑定" + barstock.ContGrpBarCode + ",请检查是否重复";
- }
- var barinfo = _billInvinitrepository.GetSingle(p => p.InvBarCode == reqDto.MatBarCode);
- if (barinfo == null)
- {
- barinfo = new BillInvinit()
- {
- InvBarCode = reqDto.MatBarCode,
- WarehouseId = 0,
- ContGrpId = IdFactory.NewId(),
- ContGrpBarCode = reqDto.SpoolCode,
- ExecStateCode = InvLockState.InvState_Normal.ToString(),
- ExecDocsNo = reqDto.WorkOrder,
- ExecDocsRowNo = reqDto.MatBarCode,
- ExecDocsTypeCode = DocType.DocType_HJ_CopperProductStockIn.GetHashCode().ToString(),
- InvInOut = InvInOutType.In.GetHashCode(),
- ExecWho = "MES",
- EditTime = DateTime.Now,
- InvStateCode = InvState.InvEcecState_BuildUp.ToString(),
- InDocsNo = reqDto.BillCode,
- InDocsRowNo = reqDto.MatBarCode,
- SuppCode = "",
- MatId = mater.Id,
- MatCode = mater.Code,
- MatName = mater.Name,
- LengthQty = reqDto.Length,
- TareWQty = reqDto.Weight,
- ProductTime = reqDto.ProductDate,
- RFIDBarCode = "",
- ProductLineNo = "",
- Grade = reqDto.Grade,
- HWBarCode = "",
- HWTypeCode = reqDto.SpoolType,//工字轮类型
- IsFast = reqDto.IsFast,
- IsRework = false,
- CLBarCode = reqDto.MatBarCode,
- Size = 1,
- AddTime = DateTime.Now,
- BackReason = "",
- IsBack = reqDto.IsBack,
- SilkTypeCode = reqDto.SilkType,
- IsCore = reqDto.BusType == "2",
-
- };
- _billInvinitrepository.InsertReturnEntity(barinfo);
- //_billSpoolTransrepository.InsertReturnEntity(billSpoolTrans);
- }
- return res;
- }
- /// <summary>
- /// 分配分拣库
- /// </summary>
- /// <returns></returns>
- public bool AllocationWarehouseSort(AllocationWarehouseSortRequest reqDto)
- {
- var list = _billSpoolTransrepository.AsQueryable().Where(p => p.WarehouseSort == 0).Take(reqDto.TaskCount).ToList();
- foreach (var item in list)
- {
- var maclist = _basemachinforepository.AsQueryable().Where(p => p.WorkOrder == item.WorkOrder);
- var warelist = maclist.Select(p => p.WarehouseCode).Distinct();
- if (!warelist.Any())
- {
- _billSpoolTransrepository.UpdateModelColumns(p => new BillSpoolTrans()
- {
- ErrType = 1,
- ErrMsg = "没有配置机台信息",
- EditTime = DateTime.Now
- }, p => p.ConBarCode == item.ConBarCode);
- }
- else if (warelist.Count() == 1)
- {
- int sort = int.Parse(warelist.First().Substring(0, 1));
- _billSpoolTransrepository.UpdateModelColumns(p => new BillSpoolTrans()
- {
- WarehouseSort = sort,
- Direct = warelist.First().Substring(1, 1),
- EditTime = DateTime.Now
- }, p => p.ConBarCode == item.ConBarCode);
- }
- else
- {
- var waretemplist = maclist.Select(p => new { p.WarehouseCode,p.WorkOrder,p.BillCode}).Distinct();
- var warehouselist = _basewarehouserepository.GetList().Select(p => p.Code);
- foreach (var warehouse in warehouselist)
- {
- var stackdetaillist = _billBomsetinfoRepository.AsQueryable();
- getMatProport(item.MatCode, warehouse);
- }
- //根据垛型及库存比例分配
- //找出该物料类型在每个库所要求的所有量
-
- //找出该物料库存在当前库所有
- }
- }
- return true;
- }
- /// <summary>
- /// 二次扫码分配输送地址
- /// </summary>
- /// <param name="reqDto"></param>
- /// <returns></returns>
- public SRes AllocationConveyorSort(AllocationConveyorSortRequest reqDto)
- {
- var res = new SRes();
- var baritem = _billSpoolTransrepository.GetFirst(p => p.ConBarCode == reqDto.BarCode);
- //判断当前库是否有mix垛型
- var mixrow = _billBomsetinfoRepository.AsQueryable().Where(p => p.IsMixRow == 1);
- if (mixrow == null || !mixrow.Any())
- {
- var matcodelist = _billBomsetinfoRepository.AsQueryable();
- var curmatrate = matcodelist.Where(p => p.MatCode == baritem.MatCode).Count() / matcodelist.Count();
- //需要的总量
- }
- else
- {
- }
- var translist = _billSpoolTransrepository.AsQueryable().Where(p => p.WarehouseCode == baritem.WarehouseCode).ToList();
- foreach (var item in translist.GroupBy(p=>p.ConveyorSort))
- {
- }
- return res;
- }
- public decimal getMatProport(string matcode, string warehousecode)
- {
- //计算此仓库所有该物料的量
- //每的单子(每盘的数量)*预计盘数
- var stackdetaillist = _billBomsetinfoRepository.AsQueryable();
- return 0;
- }
- /// <summary>
- /// 帘线领料出库
- /// </summary>
- /// <param name="reqDto"></param>
- /// <returns></returns>
- public SRes CurtainProductionStockOut(CurtainProductionStockOutRequest reqDto)
- {
- var res = new SRes();
-
- var warehosue = _basewarehouserepository.GetSingle(p => p.Code == reqDto.WareCode);
- if (warehosue == null)
- {
- res.ResCode = ResponseStatusCodeEnum.WarehouseCodeNotExist.GetHashCode();
- res.ResMsg = ResponseStatusCodeEnum.WarehouseCodeNotExist.GetDescription();
- return res;
- }
- var doc = _billdocrepository.GetSingle(p => p.DocsNo == reqDto.BillCode);
- if (doc == null)
- {
- doc = new BillDocsinfo();
- doc.WarehouseId = warehosue.Id;
- //保存单据信息
- doc.ReqNo = reqDto.ReqId;
- doc.DocsNo = reqDto.BillCode;
- doc.TypeNum = DocType.DocType_FJ_CurtainProductionStockOut.GetHashCode();
- doc.StateNum = DocState.DocState_Create.GetHashCode();
- doc.JsonContent = JsonConvert.SerializeObject(reqDto);
- doc.DownQty = 1;
- var docinsert = _billdocrepository.Insert(doc);
- if (!docinsert)
- {
- res.ResCode = ResponseStatusCodeEnum.ErrParam.GetHashCode();
- res.ResMsg = ResponseStatusCodeEnum.ErrParam.GetDescription();
- return res;
- }
- }
- return res;
- }
- public SRes ProductionBack(FjProductionBackRequest reqDto)
- {
- var res = new SRes();
- return res;
- }
- public SRes ProductionLeftFeedBack(string doccode)
- {
- var res = new SRes();
- return res;
- }
- public SRes ErrorMaterialStockOut(FjErrorMaterialStockOutRequest reqDto)
- {
- var res = new SRes();
- return res;
- }
- public SRes BGradeMaterialStockOut(BGradeMaterialStockOutRequest reqDto)
- {
- var res = new SRes();
- return res;
- }
- public SRes StockChange(FjStockChangeRequest reqDto)
- {
- var res = new SRes();
- return res;
- }
- public SRes ManualBuildStockTrans(ManualBuildStockTransRequest reqDto)
- {
- var res = new SRes();
- return res;
- }
- public SRes BomInfoTrans(BomInfoTransRequest reqDto)
- {
- var res = new SRes();
- return res;
- }
- /// <summary>
- /// 实时库存查询接口
- /// </summary>
- /// <param name="reqDto"></param>
- /// <returns></returns>
- public GetFJCurStockListResponse GetCurStockList(GetFJCurStockListRequest reqDto)
- {
- var res = new GetFJCurStockListResponse()
- {
- ResData = new List<FJResDataItem>()
- {
- }
- };
- int totalCount = 0;
- var list = _billInvnowrepository.Context.Queryable<BillInvnow>()
- .Where(p => p.InvStateCode == InvState.InvEcecState_In.ToString())
- .WhereIF(!string.IsNullOrEmpty(reqDto.MatCode), p => p.MatCode.Contains(reqDto.MatCode))
- .WhereIF(!string.IsNullOrEmpty(reqDto.MatName), p => p.MatName.Contains(reqDto.MatName))
- .ToPageList(reqDto.PageIndex, reqDto.PageSize, ref totalCount)
- .Select(p => new FJResDataItem
- {
- MatCode = p.MatCode,
- MatName = p.MatName,
- MatBarCode = p.CLBarCode,
- Describe = "",
- LocCell = p.PutCol.ToString(),
- LocLayer = p.PutLayer.ToString(),
- LocRow = p.PutRow.ToString(),
- LocCode = p.PutRow.ToString() + p.PutCol.ToString() + p.PutLayer.ToString(),
- ConBarCode = p.ContGrpBarCode,
- HWBarCode = p.HWBarCode,
- UpdatedTime = p.EditTime,
- }
- );
- res.TotalCount = totalCount;
- res.ResData = list.ToList();
- return res;
- }
- }
- }
|