using Microsoft.AspNetCore.Mvc; using NewPdaSqlServer.Dto.service; using NewPdaSqlServer.entity; using NewPdaSqlServer.service.@base; using NewPdaSqlServer.service.Warehouse; using NewPdaSqlServer.util; using System.Dynamic; using static Microsoft.EntityFrameworkCore.DbLoggerCategory; namespace NewPdaSqlServer.Controllers.Warehouse; /// /// 生产补料相关接口 /// [Route("api/[controller]")] [ApiController] public class MesSttlController : BaseController { private readonly MesSttlManager _manager = new(); private readonly MesPrintMangeer _mCf = new(); #region 基础 /***进入模版管理可以修改模版***/ /// /// 获取所有 /// /// [HttpPost("GetList")] public ResponseResult GetList() { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = _manager.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 = _manager.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 = _manager.DeleteByIds(ids); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } /// /// 添加 /// /// [HttpPost("Insert")] public ResponseResult Add([FromBody] MesItemBl data) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = _manager.Insert(data); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } /// /// 添加返回自增 /// /// [HttpPost("InsertReturnIdentity")] public ResponseResult InsertReturnIdentity([FromBody] MesItemBl data) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = _manager.InsertReturnIdentity(data); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } /// /// 修改 /// /// [HttpPost("Update")] public ResponseResult Update([FromBody] MesItemBl data) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = _manager.Update(data); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } #endregion /// /// 获取受托退料申请列表 /// /// /// 受托退料申请列表 [HttpPost("GetSttlBillNo")] public ResponseResult GetSttlBillNo(WarehouseQuery query) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = _manager.GetSttlBillNo(query,RequestInfo); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } /// /// 根据单号获取受托退料单明细 /// /// 查询参数 /// 受托退料单明细列表 [HttpPost("GetMesItemDetailByBillNo")] public ResponseResult GetMesItemDetailByBillNo( [FromBody] WarehouseQuery query) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = _manager.GetMesItemDetailByBillNo(query, RequestInfo); if (resultInfos.tbBillList.Count < 1) { return new ResponseResult { status = 1, message = "该申请单号不存在或未审核!!!", data = "" }; } return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } /// /// 获取条码信息和物料信息 /// /// [HttpPost("SttlScanBarcode")] public ResponseResult SttlScanBarcode(WarehouseQuery unity) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = _manager.SttlScanBarcode(unity); 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); } } /// /// 受托退料条码拆分 /// /// 查询参数 /// 拆分结果和待处理列表 /// /// 请求示例: /// POST /api/MesItemBl/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(WarehouseQuery query) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = new ExpandoObject(); resultInfos.tbBillList.printInfo = _mCf.getPrintInfo(query); var scanResult = _manager.SplitBarcode(query); resultInfos.tbBillList.cfBarInfo = _mCf.getCfInfo(scanResult); //dynamic resultInfos = new ExpandoObject(); //var (success, pendingList) = _manager.SplitBarcode(query); //resultInfos.success = success; //resultInfos.pendingList = pendingList; return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } }