wxw
2025-05-12 c7c2f7aa20427204944ba80a2704232b2f281582
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
using System;
using System.Collections.Generic;
using System.Security.Claims;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Model.ModelVm.PdaVm;
using WMS.Entity.DataEntity;
using WMS.IBLL.IPdaServer;
 
namespace WmsApi.Controllers
{
    [Route("api/[controller]/[action]")]
    [ApiController]
    [Authorize]
    public class PdaCrController : ControllerBase
    {
        private readonly IPdaCrServer _pdaCrSvc;
 
        public PdaCrController(IPdaCrServer pdaCrSvc)
        {
            _pdaCrSvc = pdaCrSvc;
        }
 
        #region 盘点
 
        /// <summary>
        /// 获取盘点单据列表
        /// </summary>
        /// <param name="model">PalletNo:托盘号</param> 
        /// <returns></returns>
        [HttpPost]
        public IActionResult GetStockCheckNoList(PdaCrVm model)
        {
            try
            {
                var list = _pdaCrSvc.GetStockCheckNoList(model.PalletNo);
 
                return Ok(new { code = 0, msg = "盘点单信息", data = list });
            }
            catch (Exception e)
            {
                return Ok(new { code = 1, msg = e.Message });
            }
        }
 
        /// <summary>
        /// 获取盘点明细物料批次信息
        /// </summary>
        /// <param name="model">CrNo:盘点单、PalletNo:托盘号</param> 
        /// <returns></returns>
        [HttpPost]
        public IActionResult GetStockCheckDetailList(PdaCrVm model)
        {
            try
            {
                var list = _pdaCrSvc.GetStockCheckDetailList(model.CrNo, model.PalletNo);
 
                return Ok(new { code = 0, msg = "盘点单明细物料批次信息", data = list });
            }
            catch (Exception e)
            {
                return Ok(new { code = 1, msg = e.Message });
            }
        }
 
        /// <summary>
        /// 获取要盘点的箱码信息
        /// </summary>
        /// <param name="model"></param> 
        /// <returns></returns>
        [HttpPost]
        public IActionResult GetStockCheckLogList(PdaCrVm model)
        {
            try
            {
                var list = _pdaCrSvc.GetStockCheckLogList(model.CrNo, model.LotNo, model.PalletNo, model.BoxNo);
 
                return Ok(new { code = 0, msg = "要盘点的箱码信息", data = list });
            }
            catch (Exception e)
            {
                return Ok(new { code = 1, msg = e.Message });
            }
        }
 
        /// <summary>
        /// 盘点库存
        /// </summary>
        /// <param name="model"></param> 
        /// <returns></returns>
        [HttpPost]
        public IActionResult CrSetCheck(PdaCrVm model)
        {
            try
            {
                //获取当前登录的用户ID
                var claimsIdentity = this.User.Identity as ClaimsIdentity;
                if (claimsIdentity == null)
                {
                    return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
                }
                var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
                if (string.IsNullOrWhiteSpace(userId))
                {
                    return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
                }
 
                _pdaCrSvc.CrSetCheck(model.CrNo, model.LotNo, model.PalletNo, model.Qty, model.SQty, int.Parse(userId));
 
                return Ok(new { code = 0, msg = "盘点完成", data = "" });
            }
            catch (Exception e)
            {
                return Ok(new { code = 1, msg = e.Message });
            }
        }
 
        #endregion
 
        #region 库存查询
 
        /// <summary>
        /// pda库存查询
        /// </summary>
        /// <param name="locatNo">储位编号</param>
        /// <param name="palletNo">托盘号</param>
        /// <param name="skuName">物料名称</param>
        /// <returns></returns>
        [HttpGet]
        public IActionResult GetStockQueryList(string locatNo, string palletNo, string skuName)
        {
            List<DataStockDetail> stockList = _pdaCrSvc.GetStockQueryList(locatNo, palletNo, skuName);
            return Ok(new
            {
                data = stockList,
                code = 0,
                msg = "成功"
            });
        }
 
        #endregion
 
 
    }
}