| | |
| | | <Download /> |
| | | </el-icon> |
| | | </div> |
| | | <div class="card-title">仿¥å
¥åºå®ææ°</div> |
| | | <div class="card-title">仿¥å
¥åºå®æç®±æ°</div> |
| | | <div class="card-value">{{ bigscreendata.inboundCount }}</div> |
| | | </div> |
| | | </el-col> |
| | |
| | | <Upload /> |
| | | </el-icon> |
| | | </div> |
| | | <div class="card-title">仿¥åºåºå®ææ°</div> |
| | | <div class="card-title">仿¥åºåºå®æç®±æ°</div> |
| | | <div class="card-value">{{ bigscreendata.outboundCount }}</div> |
| | | </div> |
| | | </el-col> |
| | |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <div class="chart-card"> |
| | | <div class="chart-title">è¿7æ¥åºå
¥åºè¶å¿ï¼å¾ååèµ°å¿ï¼</div> |
| | | <div class="chart-title">è¿7æ¥åºå
¥åºåæ®è¶å¿ï¼å¾ååèµ°å¿ï¼</div> |
| | | <div ref="stockTrendRef" class="chart-container"></div> |
| | | </div> |
| | | </el-col> |
| | |
| | | const uniqueMap = new Map(); |
| | | expirationList.forEach(item => { |
| | | const uniqueKey = [ |
| | | item.materielCode || 'æªç¥ç¼ç ', |
| | | item.batchNo || 'æªç¥æ¹æ¬¡', |
| | | item.palletCode || 'æªç¥æç', |
| | | item.materielCode, |
| | | item.batchNo, |
| | | item.palletCode, |
| | | ].join('|'); |
| | | if (!uniqueMap.has(uniqueKey)) { |
| | | uniqueMap.set(uniqueKey, item); |
| | |
| | | expireLevel = '30天以ä¸'; |
| | | } |
| | | return { |
| | | materielCode: item.materielCode || 'æªç¥ç¼ç ', |
| | | materielName: item.materielName || 'æªç¥åç§°', |
| | | batchNo: item.batchNo || 'æªç¥æ¹æ¬¡', |
| | | validDate: item.validDate || 'æªç¥æææ', |
| | | materielCode: item.materielCode, |
| | | materielName: item.materielName, |
| | | batchNo: item.batchNo, |
| | | validDate: item.validDate, |
| | | daysToExpiration: daysToExpiration, |
| | | expireLevel: expireLevel, |
| | | stockQuantity: item.stockQuantity || 0, |
| | | locationCode: item.locationCode || 'æªç¥åºä½', |
| | | palletCode: item.palletCode || 'æªç¥æç', |
| | | unit: item.unit || 'PCS' |
| | | locationCode: item.locationCode, |
| | | palletCode: item.palletCode, |
| | | unit: item.unit |
| | | }; |
| | | }); |
| | | }); |
| | |
| | | |
| | | // æ ¼å¼åå
¥åºè®¢å |
| | | const formattedInbound = inboundOrders.map(item => ({ |
| | | upperOrderNo: item.upperOrderNo || item.inboundOrderNo || 'æªç¥åå·', |
| | | upperOrderNo: item.upperOrderNo || item.inboundOrderNo, |
| | | taskStatus: item.orderStatus || 0, |
| | | taskType: 'inbound', |
| | | businessType: item.businessType || '', |
| | | returnToMESStatus: item.returnToMESStatus || 0, |
| | | factoryArea: item.factoryArea || 'æªç¥ååº', |
| | | factoryArea: item.factoryArea, |
| | | modifier: item.modifier, |
| | | createDate: item.createDate, |
| | | modifyDate: item.modifyDate |
| | |
| | | |
| | | // æ ¼å¼ååºåºè®¢å |
| | | const formattedOutbound = outboundOrders.map(item => ({ |
| | | upperOrderNo: item.upperOrderNo || item.orderNo || 'æªç¥åå·', |
| | | upperOrderNo: item.upperOrderNo || item.orderNo, |
| | | taskStatus: item.orderStatus || 0, |
| | | taskType: 'outbound', |
| | | businessType: item.businessType || '', |
| | | returnToMESStatus: item.returnToMESStatus || 0, |
| | | factoryArea: item.factoryArea || 'æªç¥ååº', |
| | | modifier: item.modifier || 'æªç¥ä¿®æ¹äºº', |
| | | createDate: item.createDate || 'æªç¥æ¶é´', |
| | | modifyDate: item.modifyDate || 'æªç¥æ¶é´' |
| | | factoryArea: item.factoryArea, |
| | | modifier: item.modifier, |
| | | createDate: item.createDate, |
| | | modifyDate: item.modifyDate |
| | | })); |
| | | |
| | | const merged = [...formattedInbound, ...formattedOutbound]; |
| | |
| | | { name: "white", color: "#fff" }, |
| | | ]); |
| | | const links = ref([ |
| | | { text: "个人ä¸å¿", path: "/UserInfo", id: -1, icon: "el-icon-s-custom" }, |
| | | // { text: "个人ä¸å¿", path: "/UserInfo", id: -1, icon: "el-icon-s-custom" }, |
| | | { |
| | | text: "å®å
¨éåº", |
| | | path: "/login", |
| | |
| | | }); |
| | | const searchFormOptions = ref([ |
| | | [ |
| | | { title: "åå
¸ç¼å·", field: "dicNo" }, |
| | | { title: "åå
¸åç§°", field: "dicName", type: "textarea" }, |
| | | { title: "åå
¸ç¼å·", field: "dicNo" ,type:"like"}, |
| | | { title: "åå
¸åç§°", field: "dicName", type: "like" }, |
| | | { title: "ç¶çº§ID", field: "parentId", type: "number" }, |
| | | ], |
| | | [ |
| | |
| | | using MailKit.Search; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; |
| | | using Org.BouncyCastle.Asn1.X509; |
| | | using Org.BouncyCastle.Bcpg; |
| | | using SixLabors.ImageSharp; |
| | | using SqlSugar; |
| | | using System; |
| | |
| | | private readonly IRepository<Dt_MesReturnRecord> _mesReturnRecord; |
| | | private readonly ILocationInfoService _locationInfoService; |
| | | private readonly IRepository<Dt_TakeStockOrder> _takeStockOrder; |
| | | public InboundService(IUnitOfWorkManage unitOfWorkManage, IInboundOrderDetailService inboundOrderDetailService, IInboundOrderService inbounOrderService, IRepository<Dt_InboundOrder> inboundOrderRepository, IRepository<Dt_WarehouseArea> warehouseAreaRepository, IRepository<Dt_LocationType> locationTypeRepository, IRepository<Dt_StockInfo> stockInfoRepository, IRepository<Dt_InboundOrderDetail> inboundOrderDetailRepository, IStockService stockService, IRepository<Dt_Task> taskRepository,IRepository<Dt_AllocateMaterialInfo> allocateMaterialInfo, HttpClientHelper httpClientHelper, IRepository<Dt_MesReturnRecord> mesReturnRecord,ILocationInfoService locationInfoService,IRepository<Dt_TakeStockOrder> takeStockOrder) |
| | | private readonly IRepository<Dt_StockInfoDetail> _stockInfoDetailRepository; |
| | | public InboundService(IUnitOfWorkManage unitOfWorkManage, IInboundOrderDetailService inboundOrderDetailService, IInboundOrderService inbounOrderService, IRepository<Dt_InboundOrder> inboundOrderRepository, IRepository<Dt_WarehouseArea> warehouseAreaRepository, IRepository<Dt_LocationType> locationTypeRepository, IRepository<Dt_StockInfo> stockInfoRepository, IRepository<Dt_InboundOrderDetail> inboundOrderDetailRepository, IStockService stockService, IRepository<Dt_Task> taskRepository,IRepository<Dt_AllocateMaterialInfo> allocateMaterialInfo, HttpClientHelper httpClientHelper, IRepository<Dt_MesReturnRecord> mesReturnRecord,ILocationInfoService locationInfoService,IRepository<Dt_TakeStockOrder> takeStockOrder,IRepository<Dt_StockInfoDetail> stockInfoDetailRepository) |
| | | { |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | | InboundOrderDetailService = inboundOrderDetailService; |
| | |
| | | _mesReturnRecord = mesReturnRecord; |
| | | _locationInfoService = locationInfoService; |
| | | _takeStockOrder = takeStockOrder; |
| | | _stockInfoDetailRepository = stockInfoDetailRepository; |
| | | } |
| | | |
| | | public async Task<WebResponseContent> GroupPallet(GroupPalletDto palletDto) |
| | |
| | | d.SupplyCode, |
| | | d.WarehouseCode |
| | | }).ToList(); |
| | | return content.Error($"请确认æ¡ç {palletDto.Barcode}æ¯å¦å·²ç»ç»ç",detail); |
| | | var palletId = _stockInfoDetailRepository.QueryFirst(x => x.Barcode == palletDto.Barcode); |
| | | if (palletId == null) |
| | | { |
| | | return content.Error($"æ¡ç æ¡ç {palletDto.Barcode}ä¸åå¨"); |
| | | } |
| | | var pallet =_stockInfoRepository.QueryFirst(x => x.Id == palletId.StockId); |
| | | return content.Error($"æ¡ç {palletDto.Barcode}å·²ç»ç»å°{pallet.PalletCode}",detail); |
| | | } |
| | | inboundOrder = _inboundOrderRepository.Db.Queryable<Dt_InboundOrder>().Includes(x=>x.Details).Where(x => x.Id == details.First().OrderId).First(); |
| | | |