package check import ( "context" "muyu-apiserver/gateway/internal/svc" "muyu-apiserver/gateway/internal/types" "muyu-apiserver/rpc/inventory/pb" "github.com/zeromicro/go-zero/core/logx" ) type ListStockCheckLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } func NewListStockCheckLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListStockCheckLogic { return &ListStockCheckLogic{ Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx, } } func (l *ListStockCheckLogic) ListStockCheck(req *types.ListStockCheckReq) (resp *types.ListStockCheckResp, err error) { rpcResp, err := l.svcCtx.InventoryRpc.ListStockCheck(l.ctx, &pb.ListStockCheckReq{ Page: req.Page, PageSize: req.PageSize, CheckNo: req.CheckNo, Status: req.Status, StartDate: req.StartDate, EndDate: req.EndDate, }) if err != nil { return nil, err } list := make([]types.StockCheckInfo, 0, len(rpcResp.List)) for _, c := range rpcResp.List { details := make([]types.StockCheckDetailInfo, 0, len(c.Details)) for _, d := range c.Details { details = append(details, types.StockCheckDetailInfo{ DetailId: d.DetailId, CheckId: d.CheckId, ProductId: d.ProductId, ProductName: d.ProductName, SystemQuantity: d.SystemQuantity, ActualQuantity: d.ActualQuantity, DiffQuantity: d.DiffQuantity, DiffAmount: d.DiffAmount, Remark: d.Remark, }) } list = append(list, types.StockCheckInfo{ CheckId: c.CheckId, CheckNo: c.CheckNo, CheckDate: c.CheckDate, Checker: c.Checker, Status: c.Status, Remark: c.Remark, CreatedAt: c.CreatedAt, UpdatedAt: c.UpdatedAt, Details: details, }) } return &types.ListStockCheckResp{ Total: rpcResp.Total, List: list, }, nil }