using System.Dynamic; using Microsoft.AspNetCore.Mvc; using NewPdaSqlServer.Dto.service; using NewPdaSqlServer.entity; using NewPdaSqlServer.service.Wom; using NewPdaSqlServer.util; namespace NewPdaSqlServer.Controllers.Wom; [ApiController] [Route("api/[controller]")] public class WwGdController : ControllerBase { private readonly WwGdManager m = new(); /// /// 扫码 /// /// 扫码请求参数 /// ResponseResult对象,包含状态、消息和数据 /// // Demo Request: // POST /api/WwGd/ScanCode // BodyGetItemsByDaa001 // { // "query": { // "Code": "SampleCode", // "Type": 1 // } // } [HttpPost("ScanCode")] public ResponseResult ScanCode(WarehouseQuery query) { try { // 调用WwGdManager的ScanCode方法进行扫码操作 dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = m.ScanCode(query); if (resultInfos.tbBillList.result == "2") { return new ResponseResult { status = Convert.ToInt32(resultInfos.tbBillList.result), message = resultInfos.tbBillList.strMsg, data = resultInfos }; } return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { // 如果发生异常,返回错误信息 return ResponseResult.ResponseError(ex); } } /// /// 扫码确认 /// /// 扫码确认请求参数 /// ResponseResult对象,包含状态、消息和数据 /// // Demo Request: // POST /api/WwGd/ScanCodeCF // Body: // { // "query": { // "Code": "SampleCode", // "Type": 1 // } // } [HttpPost("ScanCodeCF")] public ResponseResult ScanCodeCF(WarehouseQuery query) { try { // 调用WwGdManager的ScanCodeCF方法进行扫码确认操作 dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = m.ScanCodeCF(query); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { // 如果发生异常,返回错误信息 return ResponseResult.ResponseError(ex); } } /// /// 根据工单号获取代领物料明细 /// /// 工单号请求参数 /// ResponseResult对象,包含状态、消息和数据 // Demo Request: // POST /api/WwGd/GetItemsByDaa001 // Body: // { // "query": { // "BillNo": "SampleBillNo" // } // } [HttpPost("GetItemsByDaa001")] public ResponseResult GetItemsByDaa001(WarehouseQuery query) { try { // 调用WwGdManager的GetItemsByDaa001方法获取代领物料明细 dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = m.GetItemsByDaa001(query); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { // 如果发生异常,返回错误信息 return ResponseResult.ResponseError(ex); } } /// /// 委外工单补料扫码 /// /// 条形码号 /// ResponseResult对象,包含状态、消息和数据 // Demo Request: // POST /api/WwGd/WwblScanBarcode // Body: // { // 参数说明: // - billNo: 单据号(必填) // - barcode: 条码(必填) // - userName: 用户名 // - blNo: 补料单号(必填) // } [HttpPost("WwblScanBarcode")] public ResponseResult WwblScanBarcode(WarehouseQuery query) { try { dynamic resultInfos = new ExpandoObject(); var (success, pendingList) = m.WwblScanBarcode(query); resultInfos.success = success; resultInfos.pendingList = pendingList; if (success.status == 2) { return new ResponseResult { status = Convert.ToInt32(success.status), message = success.message, data = resultInfos.success }; } return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { // 如果发生异常,返回错误信息 return ResponseResult.ResponseError(ex); } } /// /// 生产补料单条码拆分 /// /// 查询参数 /// 拆分结果和待处理列表 /// /// 请求示例: /// POST /api/WwGd/SplitBarcode /// { /// "billNo": "WO202401010001", // 工单号(必填) /// "barcode": "BC001", // 条码号(必填) /// "userName": "admin", // 用户名(必填) /// "blNo": "BL202401010001", // 补料单号(必填) /// "Num": 10 // 拆分数量(必填,必须大于0) /// } /// 业务处理: /// - 验证补料单状态 /// - 验证条码库存信息 /// - 验证拆分数量是否合理 /// - 执行条码拆分事务处理 /// - 更新工单和补料单相关数量 /// 返回数据包含: /// - success: 拆分是否成功 /// - pendingList: 待处理明细列表,包含: /// * Bld012: 物料ID /// * Bld002: 物料编号 /// * Bld003: 物料名称 /// * Bld004: 物料规格 /// * Bld007: 计划数量 /// * Bld008: 已补数量 /// /// 拆分成功 /// 拆分失败,返回具体错误信息 [HttpPost("SplitBarcode")] public ResponseResult SplitBarcode([FromBody] WarehouseQuery query) { try { dynamic resultInfos = new ExpandoObject(); var (success, pendingList) = m.SplitBarcode(query); resultInfos.success = success; resultInfos.pendingList = pendingList; return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } /// /// 扫描条码 /// /// 查询对象 /// ResponseResult对象,包含状态、消息和数据 /// /// 请求示例: /// POST /api/WwGd/WwtlScanBarcode /// { /// "barcode": "BC001", // 条码号(必填) /// "userName": "admin", // 用户名(必填) /// } /// 业务处理: /// - 验证条码是否存在 /// - 验证用户是否有权限 /// - 执行条码扫描事务处理 /// - 更新相关记录 /// 返回数据包含: /// - success: 扫描是否成功 /// - message: 扫描结果信息 /// /// 扫描成功 /// 扫描失败,返回具体错误信息 [HttpPost("WwtlScanBarcode")] public ResponseResult WwtlScanBarcode([FromBody] WarehouseQuery query) { try { dynamic resultInfos = new ExpandoObject(); var wwtlScanBarcode = m.WwtlScanBarcode(query); resultInfos.tbBillList = wwtlScanBarcode; return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } /// /// 获取所有 /// /// [HttpPost("GetList")] public ResponseResult GetList() { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = m.GetList(); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } /// /// 根据主键获取 /// /// [HttpPost("GetById")] public ResponseResult GetById(int id) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = m.GetById(id); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } /// /// 根据主键删除 /// /// [HttpPost("DeleteByIds")] public ResponseResult DeleteByIds([FromBody] object[] ids) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = m.DeleteByIds(ids); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } /// /// 添加 /// /// [HttpPost("Insert")] public ResponseResult Add([FromBody] WwGd data) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = m.Insert(data); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } /// /// 添加返回自增 /// /// [HttpPost("InsertReturnIdentity")] public ResponseResult InsertReturnIdentity([FromBody] WwGd data) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = m.InsertReturnIdentity(data); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } /// /// 修改 /// /// [HttpPost("Update")] public ResponseResult Update([FromBody] WwGd data) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = m.Update(data); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } }