| | |
| | | |
| | | <template> |
| | | <view-grid |
| | | ref="grid" |
| | | @openPalletDialog="handleOpenPalletDialog" |
| | | :columns="columns" |
| | | :detail="detail" |
| | | :editFormFields="editFormFields" |
| | | :editFormOptions="editFormOptions" |
| | | :searchFormFields="searchFormFields" |
| | | :searchFormOptions="searchFormOptions" |
| | | :table="table" |
| | | :extend="extend" |
| | | > |
| | | <view-grid ref="grid" @openPalletDialog="handleOpenPalletDialog" :columns="columns" :detail="detail" |
| | | :editFormFields="editFormFields" :editFormOptions="editFormOptions" :searchFormFields="searchFormFields" |
| | | :searchFormOptions="searchFormOptions" :table="table" :extend="extend"> |
| | | </view-grid> |
| | | <!-- 2. ç»çå¼¹çªï¼ç¡®ä¿propsåäºä»¶ç»å®æ£ç¡® --> |
| | | <PalletDialog |
| | | v-model:visible="palletVisible" |
| | | :docNo="currentPalletDocNo" |
| | | @back-success="handlePalletBackSuccess" |
| | | ></PalletDialog> |
| | | |
| | | <PalletDialog v-model:visible="palletVisible" :docNo="currentPalletDocNo" @back-success="handlePalletBackSuccess"> |
| | | </PalletDialog> |
| | | </template> |
| | | <script> |
| | | import extend from "@/extension/inbound/allocateinboundOrder.js"; |
| | |
| | | required: true, |
| | | }, |
| | | { |
| | | field: "materielCode", |
| | | field: "materielName", |
| | | title: "ç©æåç§°", |
| | | type: "string", |
| | | width: 100, |
| | | align: "left", |
| | | bind: { key: "MaterielNames", data: [] }, |
| | | bind: { key: "materielInfo", data: [] }, |
| | | }, |
| | | { |
| | | field: "batchNo", |
| | |
| | | required: true, |
| | | }, |
| | | { |
| | | field: "materielCode", |
| | | field: "materielName", |
| | | title: "ç©æåç§°", |
| | | type: "string", |
| | | width: 120, |
| | | width: 150, |
| | | align: "left", |
| | | bind: { key: "MaterielNames", data: [] }, |
| | | bind: { key: "materielInfo", data: [] }, |
| | | }, |
| | | { |
| | | field: "batchNo", |
| | |
| | | type: "string", |
| | | width: 150, |
| | | align: "left", |
| | | bind: { key: "materielInfo", data: [] }, |
| | | }, |
| | | { |
| | | field: "orderNo", |
| | |
| | | type: "string", |
| | | width: 150, |
| | | align: "left", |
| | | bind: { key: "materielInfo", data: [] }, |
| | | }, |
| | | { |
| | | field: "batchNo", |
| | |
| | | public readonly IRepository<Dt_AllocateOrder> _allocateOrderRepository; |
| | | public readonly IRepository<Dt_AllocateOrderDetail> _allocateOrderDetailRepository; |
| | | private readonly IMaterielInfoService _materielInfoService; |
| | | private readonly IRepository<Dt_MaterielInfo> _materielInforepository; |
| | | public readonly IRepository<Dt_InboundOrderDetail> _inboundOrderDetailRepository; |
| | | |
| | | private readonly ILogger<AllocateService> _logger; |
| | |
| | | IRepository<Dt_AllocateOrderDetail> allocateOrderDetailRepository, |
| | | IRepository<Dt_InboundOrderDetail> inboundOrderDetailRepository, |
| | | ILogger<AllocateService> logger, |
| | | IMaterielInfoService materielInfoService) : base(BaseDal) |
| | | IMaterielInfoService materielInfoService, |
| | | IRepository<Dt_MaterielInfo> materielInforepository) : base(BaseDal) |
| | | { |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | | _inboundService = inboundService; |
| | |
| | | _logger = logger; |
| | | _inboundOrderDetailRepository = inboundOrderDetailRepository; |
| | | _materielInfoService = materielInfoService; |
| | | _materielInforepository = materielInforepository; |
| | | } |
| | | |
| | | public IRepository<Dt_AllocateOrder> Repository => BaseDal; |
| | |
| | | .Select(g => g.First()) |
| | | .ToList(); |
| | | |
| | | // è·åææç©æä»£ç |
| | | var materielCodes = distinctDetails.Select(d => d.MaterielCode).Distinct().ToList(); |
| | | |
| | | // 仿°æ®åºæ¥è¯¢ç©æä¿¡æ¯ï¼åè®¾ä½¿ç¨ DbContextï¼ |
| | | var materielInfos = _materielInforepository.Db.Queryable<Dt_MaterielInfo>() |
| | | .Where(m => materielCodes.Contains(m.MaterielCode)) |
| | | .Select(m => new { m.MaterielCode, m.MaterielName }) |
| | | .ToDictionary(m => m.MaterielCode, m => m.MaterielName); |
| | | |
| | | return new List<Dt_InboundOrder>() |
| | | { |
| | | new Dt_InboundOrder(){ |
| | |
| | | Remark=allocateOrder.Remark, |
| | | Details=distinctDetails.Select(detail=>new Dt_InboundOrderDetail |
| | | { |
| | | |
| | | OrderId= 0, |
| | | MaterielCode=detail.MaterielCode, |
| | | MaterielName="", |
| | | MaterielName=detail.MaterielName, |
| | | BatchNo=detail.BatchNo, |
| | | OrderQuantity=detail.OrderQuantity, |
| | | ReceiptQuantity=detail.ReceiptQuantity, |
| | |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.Attributes; |
| | | using WIDESEA_Core.BaseController; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_DTO.Allocate; |
| | | using WIDESEA_IAllocateService; |
| | | using WIDESEA_IInboundService; |
| | |
| | | public class AllocateOrderController : ApiBaseController<IAllocateService, Dt_AllocateOrder> |
| | | { |
| | | private readonly ILogger<AllocateOrderController> _logger; |
| | | public AllocateOrderController(IAllocateService service, ILogger<AllocateOrderController> logger) : base(service) |
| | | private readonly IRepository<Dt_MaterielInfo> _materialInfoRepository; |
| | | public AllocateOrderController(IAllocateService service, ILogger<AllocateOrderController> logger,IRepository<Dt_MaterielInfo> materialInfoRepository) : base(service) |
| | | { |
| | | _logger = logger; |
| | | _materialInfoRepository = materialInfoRepository; |
| | | } |
| | | |
| | | [HttpPost, Route("ReceiveAllocateOrder"), MethodParamsValidate, AllowAnonymous] |
| | |
| | | { |
| | | return WebResponseContent.Instance.Error($"æ¡ç ä¸è½ä¸ºç©º"); |
| | | } |
| | | var materialName = _materialInfoRepository.QueryFirst(x => x.MaterielCode == detailDto.materialCode).MaterielName; |
| | | if (detailDto.Barcodes != null && detailDto.Barcodes.Any()) |
| | | { |
| | | foreach (var barcodeDto in detailDto.Barcodes) |
| | |
| | | { |
| | | WarehouseCode = detailDto.WarehouseCode, |
| | | MaterielCode = detailDto.MaterialCode, |
| | | MaterielName = materialName, |
| | | LineNo = detailDto.LineNo, |
| | | OrderQuantity = detailDto.Qty, |
| | | SupplyCode = barcodeDto.SupplyCode, |
| | |
| | | Unit = detailDto.Unit, |
| | | BarcodeUnit =detailDto.Unit, |
| | | BarcodeQty=detailDto.Qty, |
| | | |
| | | MaterielName = materialName |
| | | }; |
| | | allocateOrder.Details.Add(orderDetail); |
| | | } |
| | |
| | | private readonly ILocationInfoService _locationInfoService; |
| | | private readonly IDailySequenceService _dailySequenceService; |
| | | private readonly IMaterialUnitService _materialUnitService; |
| | | private readonly IRepository<Dt_MaterielInfo> _materialInfoRepository; |
| | | private readonly IOutStockLockInfoService _outStockLockInfoService; |
| | | private readonly IOutboundOrderDetailService _outboundOrderDetailService; |
| | | private readonly IRepository<Dt_Task> _taskRepository; |
| | | private readonly ITask_HtyService _task_HtyService; |
| | | private readonly ILogger<InboundOrderController> _logger; |
| | | public InboundOrderController(IInboundOrderService service, WIDESEA_IBasicService.IErpApiService erpApiService, WIDESEA_IBasicService.IInvokeMESService invokeMESService, IESSApiService eSSApiService, IDailySequenceService dailySequenceService, ILocationInfoService locationInfoService, ILogger<InboundOrderController> logger, IMaterialUnitService materialUnitService, IInboundService inboundService, IOutStockLockInfoService outStockLockInfoService, IOutboundOrderDetailService outboundOrderDetailService, IRepository<Dt_Task> taskRepository, ITask_HtyService task_HtyService) : base(service) |
| | | public InboundOrderController(IInboundOrderService service, WIDESEA_IBasicService.IErpApiService erpApiService, WIDESEA_IBasicService.IInvokeMESService invokeMESService, IESSApiService eSSApiService, IDailySequenceService dailySequenceService, ILocationInfoService locationInfoService, ILogger<InboundOrderController> logger, IMaterialUnitService materialUnitService, IInboundService inboundService, IOutStockLockInfoService outStockLockInfoService, IOutboundOrderDetailService outboundOrderDetailService, IRepository<Dt_Task> taskRepository, ITask_HtyService task_HtyService, IRepository<Dt_MaterielInfo> materialInfoRepository) : base(service) |
| | | { |
| | | this.erpApiService = erpApiService; |
| | | _invokeMESService = invokeMESService; |
| | |
| | | _outboundOrderDetailService = outboundOrderDetailService; |
| | | _taskRepository = taskRepository; |
| | | _task_HtyService = task_HtyService; |
| | | _materialInfoRepository = materialInfoRepository; |
| | | } |
| | | |
| | | [HttpPost, Route("Test"), AllowAnonymous, MethodParamsValidate] |
| | |
| | | Dt_InboundOrder dt_InboundOrder = new Dt_InboundOrder() { Details = new List<Dt_InboundOrderDetail>() }; |
| | | foreach (var detailitem in item.details) |
| | | { |
| | | |
| | | var materialName = _materialInfoRepository.QueryFirst(x => x.MaterielCode == detailitem.materialCode).MaterielName; |
| | | if (detailitem.barcodes != null && detailitem.barcodes.Any()) |
| | | { |
| | | foreach (var barcode in detailitem.barcodes) |
| | |
| | | { |
| | | lineNo = detailitem.lineNo, |
| | | MaterielCode = detailitem.materialCode, |
| | | MaterielName = materialName, |
| | | SupplyCode = detailitem.supplyCode, |
| | | BatchNo = detailitem.batchNo, |
| | | Unit = detailitem.unit, |
| | |
| | | OrderQuantity = detailitem.qty, |
| | | BarcodeUnit = detailitem.unit, |
| | | BarcodeQty = detailitem.qty, |
| | | MaterielName = materialName |
| | | }; |
| | | dt_InboundOrder.Details.Add(inboundOrderDetail); |
| | | } |