| ¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace MES.Service.Dto.webApi; |
| | | |
| | | /// <summary> |
| | | /// é宿çæç»æç´¢è¯·æ±DTO |
| | | /// </summary> |
| | | public class SalesPalletDetailSearchDto |
| | | { |
| | | /// <summary> |
| | | /// æç´¢æ¡ä»¶å¯¹è±¡ |
| | | /// </summary> |
| | | public SalesPalletDetailSearchConditions? Conditions { get; set; } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// é宿çæç»æç´¢æ¡ä»¶ |
| | | /// </summary> |
| | | public class SalesPalletDetailSearchConditions |
| | | { |
| | | /// <summary> |
| | | /// æ æ¿ç |
| | | /// </summary> |
| | | public string? Stackcode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®ç¼å· |
| | | /// </summary> |
| | | public string? BillNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 主表ID |
| | | /// </summary> |
| | | public decimal? Mid { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼å· |
| | | /// </summary> |
| | | public string? ItemNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string? ItemName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æè§æ ¼ |
| | | /// </summary> |
| | | public string? ItemModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ°é |
| | | /// </summary> |
| | | public decimal? Qty { get; set; } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using MES.Service.Dto.@base; |
| | | |
| | | namespace MES.Service.Dto.webApi; |
| | | |
| | | /// <summary> |
| | | /// é宿çæç´¢è¯·æ±DTO |
| | | /// </summary> |
| | | public class SalesPalletSearchDto: Page |
| | | { |
| | | /// <summary> |
| | | /// åæ®ç¼å· |
| | | /// </summary> |
| | | public string? BillNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å®¡æ ¸ç¶æ |
| | | /// </summary> |
| | | public decimal? Status { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼å· |
| | | /// </summary> |
| | | public string? ItemNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string? ItemName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æè§æ ¼ |
| | | /// </summary> |
| | | public string? ItemModel { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å®¡æ ¸äºº |
| | | /// </summary> |
| | | public string? CheckUser { get; set; } |
| | | |
| | | } |
| | | |
| | |
| | | /// éå®è®¢åå· |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "SALES_ORDER_ID")] |
| | | public string SalesOrderId { get; set; } |
| | | public string? SalesOrderId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼ç |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "MATERIAL_ID")] |
| | | public string MaterialId { get; set; } |
| | | public string? MaterialId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "MATERIAL_NAME")] |
| | | public string MaterialName { get; set; } |
| | | public string? MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æè§æ ¼ |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "MATERIAL_SPECIFICATION")] |
| | | public string MaterialSpecification { get; set; } |
| | | public string? MaterialSpecification { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éå®åä½ |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "SALES_UNIT_ID")] |
| | | public string SalesUnitId { get; set; } |
| | | public string? SalesUnitId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é宿°é |
| | |
| | | /// æ¯å¦èµ å |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "IS_FREE")] |
| | | public string IsFree { get; set; } |
| | | public string? IsFree { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è¦è´§æ¥æ |
| | |
| | | /// åºè´§ä»åº |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "WAREHOUSE")] |
| | | public string Warehouse { get; set; } |
| | | public string? Warehouse { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 计åè·è¸ªå· |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "PLAN_TRACKING_NUMBER")] |
| | | public string PlanTrackingNumber { get; set; } |
| | | public string? PlanTrackingNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¹å· |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "LOT_NUMBER")] |
| | | public string LotNumber { get; set; } |
| | | public string? LotNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æºåç¼å· |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "SRC_BILL_NO")] |
| | | public string SrcBillNo { get; set; } |
| | | public string? SrcBillNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 计价æ°é |
| | |
| | | /// 货主 |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "OWNER_ID")] |
| | | public string OwnerId { get; set; } |
| | | public string? OwnerId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºååä½ |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "INVENTORY_UNIT")] |
| | | public string InventoryUnit { get; set; } |
| | | public string? InventoryUnit { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåæ°é |
| | |
| | | /// ç©æç±»å« |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "MATERIAL_CATEGORY")] |
| | | public string MaterialCategory { get; set; } |
| | | public string? MaterialCategory { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 计ååè´§æ¥æ |
| | |
| | | /// è¶
åæ§å¶åä½ |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "OUT_LMT_UNIT")] |
| | | public string OutLmtUnit { get; set; } |
| | | public string? OutLmtUnit { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºä¸é |
| | |
| | | /// 交货å°ç¹ |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "DELIVERY_LOC")] |
| | | public string DeliveryLoc { get; set; } |
| | | public string? DeliveryLoc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 交货å°å |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "DELIVERYL_ADDRESS")] |
| | | public string DeliverylAddress { get; set; } |
| | | public string? DeliverylAddress { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æºååå· |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "SOURCE_BILL_NO")] |
| | | public string SourceBillNo { get; set; } |
| | | public string? SourceBillNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 订ååå· |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "ORDER_BILL_NO")] |
| | | public string OrderBillNo { get; set; } |
| | | public string? OrderBillNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç»æ¢ç¶æ |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "TERMINATION_STATUS")] |
| | | public string TerminationStatus { get; set; } |
| | | public string? TerminationStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç»æ¢æ¥æ |
| | |
| | | /// ERPè¡ID |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "ERP_LINE_ID")] |
| | | public string ErpLineId { get; set; } |
| | | public string? ErpLineId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ERP头ID |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "ERP_HEAD_ID")] |
| | | public string ErpHeadId { get; set; } |
| | | public string? ErpHeadId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ERP头ID |
| | | ///</summary> |
| | | //[SugarColumn(ColumnName = "f_UNW_Base_GDY")] |
| | | //public string GDY { get; set; } |
| | | //public string? GDY { get; set; } |
| | | ///// <summary> |
| | | ///// 夿³¨ |
| | | /////</summary> |
| | | //[SugarColumn(ColumnName = "FEntrynote")] |
| | | //public string NOTE { get; set; } |
| | | //public string? NOTE { get; set; } |
| | | /// <summary> |
| | | /// è¦è´§æ¥æ |
| | | /// </summary> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using MES.Service.DB; |
| | | using MES.Service.Dto.service; |
| | | using MES.Service.Dto.webApi; |
| | | using MES.Service.Modes; |
| | | using SqlSugar; |
| | | |
| | | namespace MES.Service.service.Warehouse; |
| | | |
| | | /// <summary> |
| | | /// é宿ç管çæå¡ |
| | | /// </summary> |
| | | public class SalesPalletManager : Repository<SalesPallet> |
| | | { |
| | | /// <summary> |
| | | /// è·åé宿çåé¡µæ°æ® |
| | | /// </summary> |
| | | /// <param name="request">æ¥è¯¢è¯·æ±åæ°</param> |
| | | /// <returns></returns> |
| | | public (List<SalesPalletQueryDto> item, int TotalCount) |
| | | GetSalesPalletPage(SalesPalletSearchDto request) |
| | | { |
| | | var query = Db.Queryable<SalesPallet>() |
| | | .LeftJoin<SalesDeliveryNotice>((z, a) => a.BillNo == z.BillNo) |
| | | .LeftJoin<SalesDeliveryNoticeDetail>((z, a, b) => |
| | | a.ErpId == b.ErpHeadId && z.ItemId.ToString() == b.MaterialId) |
| | | .LeftJoin<MesItems>((z, a, b, s) => s.Id.ToString() == b.MaterialId) |
| | | .LeftJoin<MesUnit>((z, a, b, s, u) => |
| | | u.Id.ToString() == b.SalesUnitId) |
| | | .LeftJoin<SysUser>((z, a, b, s, u, su) => su.Fcode == z.CheckUser) |
| | | .LeftJoin<MesDepots>((z, a, b, s, u, su, d) => |
| | | d.DepotId.ToString() == b.Warehouse) |
| | | .WhereIF(!string.IsNullOrEmpty(request.BillNo), |
| | | (z, a, b, s, u, su, d) => z.BillNo.Contains(request.BillNo)) |
| | | .WhereIF(!string.IsNullOrEmpty(request.ItemNo), |
| | | (z, a, b, s, u, su, d) => s.ItemNo.Contains(request.ItemNo)) |
| | | .WhereIF(!string.IsNullOrEmpty(request.ItemName), |
| | | (z, a, b, s, u, su, d) => s.ItemName.Contains(request.ItemName)) |
| | | .WhereIF(request.Status.HasValue, |
| | | (z, a, b, s, u, su, d) => z.Status == request.Status) |
| | | .Select((z, a, b, s, u, su, d) => new SalesPalletQueryDto |
| | | { |
| | | Id = z.Id, |
| | | Status = z.Status, |
| | | CheckDate = z.CheckDate, |
| | | CheckUser = su.Fname, |
| | | BillNo = z.BillNo, |
| | | ItemNo = s.ItemNo, |
| | | ItemName = s.ItemName, |
| | | ItemModel = s.ItemModel, |
| | | UnitName = u.Fname, |
| | | Xsdd = b.SalesQuantity, |
| | | Yb = z.SalesQuantity, |
| | | Wyj = a.BillNo + s.Id.ToString() |
| | | }); |
| | | |
| | | var totalCount = 0; |
| | | var items = query.ToPageList(request.PageIndex, request.Limit, |
| | | ref totalCount); |
| | | |
| | | return (items, totalCount); |
| | | } |
| | | |
| | | public List<SalesPalletDetailQueryDto> |
| | | GetSalesPalletDetail(SalesPalletDetailQueryDto request) |
| | | { |
| | | var subQuery = Db.Queryable<MesPalletBinding1>() |
| | | .LeftJoin<Womdaa>((a, b) => a.TicketNo == b.Daa001) |
| | | .LeftJoin<MesItems>((a, b, it) => it.Id.ToString() == b.Daa002) |
| | | .GroupBy((a, b, it) => new { a.Stackcode, it.Id }) |
| | | .Select((a, b, it) => new |
| | | { |
| | | StackCode = a.Stackcode, |
| | | ItemId = it.Id, |
| | | ItemNo = SqlFunc.AggregateMax(it.ItemNo), |
| | | ItemName = SqlFunc.AggregateMax(it.ItemName), |
| | | ItemModel = SqlFunc.AggregateMax(it.ItemModel) |
| | | }); |
| | | |
| | | var query = Db.Queryable<SalesPalletDetail>() |
| | | .LeftJoin(subQuery, (b, o) => b.Stackcode == o.StackCode) |
| | | .Where((b, o) => b.Mid == request.Mid) |
| | | .Select((b, o) => new SalesPalletDetailQueryDto |
| | | { |
| | | Id = b.Id, |
| | | Mid = b.Mid, |
| | | BillNo = b.BillNo, |
| | | Stackcode = b.Stackcode, |
| | | Qty = b.Qty, |
| | | ItemNo = o.ItemNo, |
| | | ItemName = o.ItemName, |
| | | ItemModel = o.ItemModel |
| | | }); |
| | | |
| | | return query.ToList(); |
| | | } |
| | | } |
| | |
| | | using MES.Service.Dto.webApi; |
| | | using MES.Service.util; |
| | | using MES.Service.service.Warehouse; |
| | | using Microsoft.AspNetCore.Mvc; |
| | |
| | | private readonly SalesPalletManager _manager = new(); |
| | | |
| | | /// <summary> |
| | | /// è·åé宿çä¿¡æ¯ |
| | | /// è·åé宿çåé¡µæ°æ® |
| | | /// </summary> |
| | | /// <returns>é宿çä¿¡æ¯å表</returns> |
| | | [HttpPost("GetSalesPalletInfo")] |
| | | public ResponseResult GetSalesPalletInfo() |
| | | /// <param name="request">æ¥è¯¢è¯·æ±åæ°</param> |
| | | /// <returns>åé¡µç»æ</returns> |
| | | [HttpPost("GetSalesPalletPage")] |
| | | public ResponseResult GetSalesPalletPage( |
| | | [FromBody] SalesPalletSearchDto request) |
| | | { |
| | | try |
| | | { |
| | | var result = _manager.GetSalesPalletInfo(); |
| | | var (items, totalCount) = _manager.GetSalesPalletPage(request); |
| | | |
| | | return new ResponseResult |
| | | { |
| | | status = 0, |
| | | message = "OK", |
| | | data = items, |
| | | TotalCount = totalCount |
| | | }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return ResponseResult.ResponseError(ex); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åé宿çæç»æ°æ® |
| | | /// </summary> |
| | | /// <param name="request">æ¥è¯¢è¯·æ±åæ°</param> |
| | | /// <returns>æç»å表</returns> |
| | | [HttpPost("GetSalesPalletDetail")] |
| | | public ResponseResult GetSalesPalletDetail( |
| | | [FromBody] SalesPalletDetailQueryDto request) |
| | | { |
| | | try |
| | | { |
| | | var result = _manager.GetSalesPalletDetail(request); |
| | | |
| | | return new ResponseResult |
| | | { |
| | | status = 0, |
| | |
| | | return ResponseResult.ResponseError(ex); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®æ¡ä»¶è·åé宿çä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="request">æ¥è¯¢æ¡ä»¶</param> |
| | | /// <returns>é宿çä¿¡æ¯å表</returns> |
| | | [HttpPost("GetSalesPalletInfoByCondition")] |
| | | public ResponseResult GetSalesPalletInfoByCondition([FromBody] SalesPalletQueryRequest request) |
| | | { |
| | | try |
| | | { |
| | | var result = _manager.GetSalesPalletInfo(request.BillNo, request.ItemId, request.Status); |
| | | return new ResponseResult |
| | | { |
| | | status = 0, |
| | | message = "æ¥è¯¢æå", |
| | | data = result |
| | | }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return ResponseResult.ResponseError(ex); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åé宿çæç»ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <returns>é宿çæç»ä¿¡æ¯å表</returns> |
| | | [HttpPost("GetSalesPalletDetailInfo")] |
| | | public ResponseResult GetSalesPalletDetailInfo() |
| | | { |
| | | try |
| | | { |
| | | var result = _manager.GetSalesPalletDetailInfo(); |
| | | return new ResponseResult |
| | | { |
| | | status = 0, |
| | | message = "æ¥è¯¢æå", |
| | | data = result |
| | | }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return ResponseResult.ResponseError(ex); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®æ æ¿ç è·åé宿çæç»ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="request">æ¥è¯¢æ¡ä»¶</param> |
| | | /// <returns>é宿çæç»ä¿¡æ¯å表</returns> |
| | | [HttpPost("GetSalesPalletDetailInfoByStackcode")] |
| | | public ResponseResult GetSalesPalletDetailInfoByStackcode([FromBody] SalesPalletDetailQueryRequest request) |
| | | { |
| | | try |
| | | { |
| | | var result = _manager.GetSalesPalletDetailInfo(request.Stackcode); |
| | | return new ResponseResult |
| | | { |
| | | status = 0, |
| | | message = "æ¥è¯¢æå", |
| | | data = result |
| | | }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return ResponseResult.ResponseError(ex); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// éå®æçæ¥è¯¢è¯·æ± |
| | | /// </summary> |
| | | public class SalesPalletQueryRequest |
| | | { |
| | | /// <summary> |
| | | /// åæ®ç¼å· |
| | | /// </summary> |
| | | public string? BillNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æID |
| | | /// </summary> |
| | | public decimal? ItemId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å®¡æ ¸ç¶æ |
| | | /// </summary> |
| | | public decimal? Status { get; set; } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// é宿çæç»æ¥è¯¢è¯·æ± |
| | | /// </summary> |
| | | public class SalesPalletDetailQueryRequest |
| | | { |
| | | /// <summary> |
| | | /// æ æ¿ç |
| | | /// </summary> |
| | | public string? Stackcode { get; set; } |
| | | } |