Administrator
2024-03-04 0acd18b6bebdcfc24a0d7c27edb0f8ef1fc7f9aa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using Model.ModelDto.BllSoDto;
using SqlSugar;
using WMS.DAL;
using WMS.Entity.BllSoEntity;
using WMS.Entity.Context;
using WMS.Entity.SysEntity;
using WMS.IBLL.IBllSoServer;
 
namespace WMS.BLL.BllSoServer
{
    public class CompleteDetailServer: DbHelper<BllCompleteDetail>,ICompleteDetailServer
    {
        private static readonly SqlSugarScope Db = DataContext.Db;
        public CompleteDetailServer():base(Db)
        {
        }
 
        //查询拣货明细箱码信息(分组后)
        public List<CompleteDetailDto> GetCompleteDetailList(int id, int page, int limit, out int count)
        {
            try
            {
                var total = 0;
                Expression<Func<BllCompleteDetail, bool>> item = Expressionable.Create<BllCompleteDetail>()
                    .And(it => it.ExportAllotId == id)
                    .And(it => it.IsDel == "0")
                    .ToExpression();//注意 这一句 不能少
                var data = GetAllWhereAsync(item)
                    .GroupBy(m=>new
                    {
                        m.SONo,
                        m.SODetailNo,
                        m.StockId,
                        m.ExportAllotId,
 
                        m.BoxNo,
                        m.LotNo,
                        m.LotText,
                        m.SupplierLot,
                        m.SkuNo,
                        m.SkuName,
                        m.Standard,
                        m.PalletNo,
                        m.NowPalletNo
                    })
                    .Select(a => new CompleteDetailDto()
                    {
                        SONo = a.SONo,
                        SODetailNo = a.SODetailNo,
                        StockId = a.StockId,
                        ExportAllotId = a.ExportAllotId,
 
                        BoxNo = a.BoxNo,
                        LotNo = a.LotNo,
                        LotText = a.LotText,
                        SupplierLot = a.SupplierLot,
                        SkuNo = a.SkuNo,
                        SkuName = a.SkuName,
                        Standard = a.Standard,
                        PalletNo = a.PalletNo,
                        CompleteQty = SqlFunc.AggregateSum(a.CompleteQty),
                        NowPalletNo = a.NowPalletNo
                    }).ToOffsetPage(page, limit, ref total);
                count = total;
                return data;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
 
        //查询拣货明细支码详细信息
        public List<CompleteDetailDto> GetCompBoxInfoList(string boxNo, string boxNo3)
        {
            try
            {
                Expression<Func<BllCompleteDetail, bool>> item = Expressionable.Create<BllCompleteDetail>()
                    .AndIF(!string.IsNullOrWhiteSpace(boxNo), it => it.BoxNo == boxNo.Trim())
                    .AndIF(!string.IsNullOrWhiteSpace(boxNo3), it => it.BoxNo3.Contains(boxNo3.Trim()))
                    .ToExpression(); 
                var data = GetAllWhereAsync(item)
                    .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id)
                    .LeftJoin<SysUserInfor>((a, b, c) => a.UpdateUser == c.Id)
                    .Select((a, b, c) => new CompleteDetailDto()
                    {
                        Id = a.Id,
                        SONo = a.SONo,
                        SODetailNo = a.SODetailNo,
                        StockId = a.StockId,
                        ExportAllotId = a.ExportAllotId,
 
                        BoxNo = a.BoxNo,
                        BoxNo3 = a.BoxNo3,
                        LotNo = a.LotNo,
                        LotText = a.LotText,
                        SupplierLot = a.SupplierLot,
                        SkuNo = a.SkuNo,
                        SkuName = a.SkuName,
                        Standard = a.Standard,
                        PalletNo = a.PalletNo,
                        CompleteQty = a.CompleteQty,
                        NowPalletNo = a.NowPalletNo,
 
                        CreateUserName = b.RealName, 
                        UpdateUserName = c.RealName,
                        CreateTime = a.CreateTime,
                        UpdateTime = a.UpdateTime,
                    }).ToList();
                return data;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
 
    }
}