Controllers/Warehouse/MesItemBlController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Controllers/Wom/MesWorkProdController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Dto/service/WarehouseQuery.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
service/Warehouse/MesItemBlManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
service/Warehouse/MesItemTblManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Controllers/Warehouse/MesItemBlController.cs
@@ -371,5 +371,29 @@ } } [HttpPost("PrintBarcodeForOverPicking")] public ResponseResult PrintForOverPicking(WarehouseQuery query) { try { dynamic resultInfos = new ExpandoObject(); var (success, pendingList) = _manager.PrintBarcodeForOverPicking(query); resultInfos.success = success; resultInfos.pendingList = pendingList; return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } #endregion } Controllers/Wom/MesWorkProdController.cs
@@ -1,31 +1,34 @@ 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] /// <summary> /// 生产报工相关接口 /// </summary> [Route("api/[controller]")] [ApiController] public class MesWorkProdController : ControllerBase { private readonly MesWorkProdManager m = new(); private readonly MesWorkProdManager _manager = new(); /***进入模版管理可以修改模版***/ #region 基础CRUD /// <summary> /// 获取所有 /// 获取所有 /// </summary> /// <returns></returns> /// <returns>报工单列表</returns> [HttpPost("GetList")] public ResponseResult GetList() { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = m.GetList(); resultInfos.tbBillList = _manager.GetList(); return new ResponseResult { status = 0, @@ -39,18 +42,17 @@ } } /// <summary> /// 根据主键获取 /// 根据主键获取 /// </summary> /// <returns></returns> /// <returns>报工单信息</returns> [HttpPost("GetById")] public ResponseResult GetById(int id) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = m.GetById(id); resultInfos.tbBillList = _manager.GetById(id); return new ResponseResult { status = 0, @@ -65,16 +67,16 @@ } /// <summary> /// 根据主键删除 /// 根据主键删除 /// </summary> /// <returns></returns> /// <returns>删除结果</returns> [HttpPost("DeleteByIds")] public ResponseResult DeleteByIds([FromBody] object[] ids) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = m.DeleteByIds(ids); resultInfos.tbBillList = _manager.DeleteByIds(ids); return new ResponseResult { status = 0, @@ -89,16 +91,16 @@ } /// <summary> /// 添加 /// 添加 /// </summary> /// <returns></returns> /// <returns>添加结果</returns> [HttpPost("Insert")] public ResponseResult Add([FromBody] MesWorkProd data) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = m.Insert(data); resultInfos.tbBillList = _manager.Insert(data); return new ResponseResult { status = 0, @@ -113,40 +115,16 @@ } /// <summary> /// 添加返回自增 /// 修改 /// </summary> /// <returns></returns> [HttpPost("InsertReturnIdentity")] public ResponseResult InsertReturnIdentity([FromBody] MesWorkProd 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); } } /// <summary> /// 修改 /// </summary> /// <returns></returns> /// <returns>修改结果</returns> [HttpPost("Update")] public ResponseResult Update([FromBody] MesWorkProd data) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = m.Update(data); resultInfos.tbBillList = _manager.Update(data); return new ResponseResult { status = 0, @@ -159,4 +137,84 @@ return ResponseResult.ResponseError(ex); } } #endregion #region 生产报工 /// <summary> /// PDA扫描生产报工 /// </summary> /// <param name="request">报工请求参数</param> /// <returns>报工结果</returns> /// <remarks> /// 请求示例: /// /// POST /api/MesWorkProd/ScanWork /// { /// "staffNo": "ST001", /// "itemBarcode": "BC001", /// "userNo": "admin" /// } /// </remarks> /// <response code="200">扫描成功</response> /// <response code="400">扫描失败,返回具体错误信息</response> [HttpPost("ScanWork")] public ResponseResult ScanWork([FromBody] ScanWorkRequest request) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.result = _manager.ScanWorkAsync(request); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } /// <summary> /// PDA扫描生产报工(带数量) /// </summary> /// <param name="request">报工请求参数</param> /// <returns>报工结果</returns> /// <remarks> /// 请求示例: /// /// POST /api/MesWorkProd/ScanWorkProd /// { /// "itemBarcode": "BC001", /// "quantity": 10, /// "userNo": "admin" /// } /// </remarks> /// <response code="200">扫描成功</response> /// <response code="400">扫描失败,返回具体错误信息</response> [HttpPost("ScanWorkProd")] public ResponseResult ScanWorkProd([FromBody] ScanWorkRequest request) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.success = _manager.ScanWorkProdAsync(request); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } #endregion } Dto/service/WarehouseQuery.cs
@@ -26,4 +26,7 @@ public string? daa001 { get; set; } public decimal? Num { get; set; } public decimal? Fum { get; set; } public string? itemNo { get; set; } } service/Warehouse/MesItemBlManager.cs
@@ -30,8 +30,9 @@ /// </summary> /// <param name="billNo">补料单号</param> /// <returns>补料单明细列表</returns> public List<MesItemBlDetail> GetMesItemBlDetailByBillNo( WarehouseQuery query) public (string bl001, List<MesItemBlDetail> item) GetMesItemBlDetailByBillNo( WarehouseQuery query) { if (string.IsNullOrEmpty(query.billNo)) throw new Exception("请选单据号!"); @@ -63,7 +64,7 @@ }) .ToList(); return blDetails; return (mesItemBl.Bl001, blDetails); } /// <summary> @@ -78,11 +79,10 @@ /// - userName: 用户名 /// - blNo: 补料单号(必填) /// </remarks> public (bool success, List<PendingMaterialDto> pendingList) SctlScanBarcode( WarehouseQuery query) public (WarehouseQuery item, List<MesItemBlDetail> pendingList) SctlScanBarcode( WarehouseQuery query) { #region 参数校验 if (string.IsNullOrEmpty(query.billNo)) throw new Exception("请选取单据号!"); @@ -95,7 +95,6 @@ if (string.IsNullOrEmpty(query.blNo)) throw new Exception("补料单号不能为空!"); #endregion // 检验是否重复扫描 var exists = Db.Queryable<MesInvItemOutCDetails>() @@ -164,17 +163,22 @@ new JoinQueryInfos(JoinType.Left, a.Id == b.Mid)) .Where((a, b) => a.BlNo == query.blNo && (b.Bld007 ?? 0) - (b.Bld008 ?? 0) > 0) .Select((a, b) => new PendingMaterialDto .Select((a, b) => new MesItemBlDetail { SectionCode = b.Bld012.ToString(), ItemNo = b.Bld002, ItemName = b.Bld003, ItemSpec = b.Bld004, PendingQty = (b.Bld007 ?? 0) - (b.Bld008 ?? 0) Bld012 = b.Bld012, Bld002 = b.Bld002, Bld003 = b.Bld003, Bld004 = b.Bld004, Bld007 = b.Bld007, Bld008 = b.Bld008 }) .ToList(); return (false, pendingList); query.Num = stockBarcode.Quantity; query.Fum = quantity; return (query, pendingList); } // 开启事务处理 @@ -235,6 +239,7 @@ .Count(); if (itemCount > 0) { // 更新已存在的物料明细数量 db.Updateable<MesInvItemOutItems>() .SetColumns(i => @@ -242,7 +247,9 @@ .Where(i => i.ItemOutId == outId && i.ItemId == stockBarcode.ItemId) .ExecuteCommand(); } else { // 插入新的物料明细记录 db.Insertable(new MesInvItemOutItems { @@ -268,7 +275,8 @@ // Unit = blDetail.Bld009, // DepotId = (int)stockBarcode.DepotsId }).IgnoreColumns(true).ExecuteCommand(); } // 插入出库单条码明细 db.Insertable(new MesInvItemOutCDetails { @@ -400,17 +408,18 @@ new JoinQueryInfos(JoinType.Left, a.Id == b.Mid)) .Where((a, b) => a.BlNo == query.blNo && (b.Bld007 ?? 0) - (b.Bld008 ?? 0) > 0) .Select((a, b) => new PendingMaterialDto .Select((a, b) => new MesItemBlDetail { SectionCode = b.Bld012.ToString(), ItemNo = b.Bld002, ItemName = b.Bld003, ItemSpec = b.Bld004, PendingQty = (b.Bld007 ?? 0) - (b.Bld008 ?? 0) Bld012 = b.Bld012, Bld002 = b.Bld002, Bld003 = b.Bld003, Bld004 = b.Bld004, Bld007 = b.Bld007, Bld008 = b.Bld008 }) .ToList(); return (true, finalPendingList); return (query, finalPendingList); } /// <summary> @@ -426,11 +435,9 @@ /// - Num: 发料数量(必填,必须大于0) /// - blNo: 补料单号(必填) /// </remarks> public (bool success, List<PendingMaterialDto> pendingList) SplitBarcode( public (bool success, List<MesItemBlDetail> pendingList) SplitBarcode( WarehouseQuery query) { #region 参数校验 if (string.IsNullOrEmpty(query.userName)) throw new Exception("用户名不能为空!"); @@ -446,7 +453,6 @@ if (string.IsNullOrEmpty(query.blNo)) throw new Exception("补料单号不能为空!"); #endregion // 检验是否重复扫描 var exists = Db.Queryable<MesInvItemOutCDetails>() @@ -871,13 +877,14 @@ new JoinQueryInfos(JoinType.Left, a.Id == b.Mid)) .Where((a, b) => a.BlNo == query.blNo && (b.Bld007 ?? 0) - (b.Bld008 ?? 0) > 0) .Select((a, b) => new PendingMaterialDto .Select((a, b) => new MesItemBlDetail { SectionCode = b.Bld012.ToString(), ItemNo = b.Bld002, ItemName = b.Bld003, ItemSpec = b.Bld004, PendingQty = (b.Bld007 ?? 0) - (b.Bld008 ?? 0) Bld012 = b.Bld012, Bld002 = b.Bld002, Bld003 = b.Bld003, Bld004 = b.Bld004, Bld007 = b.Bld007, Bld008 = b.Bld008 }) .ToList(); @@ -904,7 +911,7 @@ /// </summary> /// <param name="query">查询参数</param> /// <returns>生产超领单明细列表</returns> public List<MesItemBlDetail> GetMesItemBlDetailBySccBillNo( public (string bl001,List<MesItemBlDetail> item) GetMesItemBlDetailBySccBillNo( WarehouseQuery query) { if (string.IsNullOrEmpty(query.billNo)) @@ -952,7 +959,7 @@ }) .ToList(); return pendingDetails; return (mesItemBl.Bl001,pendingDetails); } /// <summary> @@ -967,7 +974,7 @@ /// - userName: 用户名(必填) /// - blNo: 超领单号(必填) /// </remarks> public (bool success, List<PendingMaterialDto> pendingList) public (WarehouseQuery item, List<MesItemBlDetail> pendingList) ScanBarcodeForOverPicking( WarehouseQuery query) { @@ -1071,17 +1078,21 @@ new JoinQueryInfos(JoinType.Left, a.Id == b.Mid)) .Where((a, b) => a.BlNo == query.blNo && (b.Bld007 ?? 0) - (b.Bld008 ?? 0) > 0) .Select((a, b) => new PendingMaterialDto .Select((a, b) => new MesItemBlDetail { SectionCode = b.Bld012.ToString(), ItemNo = b.Bld002, ItemName = b.Bld003, ItemSpec = b.Bld004, PendingQty = (b.Bld007 ?? 0) - (b.Bld008 ?? 0) Bld012 = b.Bld012, Bld002 = b.Bld002, Bld003 = b.Bld003, Bld004 = b.Bld004, Bld007 = b.Bld007, Bld008 = b.Bld008 }) .ToList(); return (false, pendingList); query.Num = stockBarcode.Quantity; query.Fum = quantity; return (query, pendingList); } // 执行数据库事务 @@ -1282,17 +1293,18 @@ new JoinQueryInfos(JoinType.Left, a.Id == b.Mid)) .Where((a, b) => a.BlNo == query.blNo && (b.Bld007 ?? 0) - (b.Bld008 ?? 0) > 0) .Select((a, b) => new PendingMaterialDto .Select((a, b) => new MesItemBlDetail { SectionCode = b.Bld012.ToString(), ItemNo = b.Bld002, ItemName = b.Bld003, ItemSpec = b.Bld004, PendingQty = (b.Bld007 ?? 0) - (b.Bld008 ?? 0) Bld012 = b.Bld012, Bld002 = b.Bld002, Bld003 = b.Bld003, Bld004 = b.Bld004, Bld007 = b.Bld007, Bld008 = b.Bld008 }) .ToList(); return (true, finalPendingList); return (query, finalPendingList); } /// <summary> @@ -1300,7 +1312,7 @@ /// </summary> /// <param name="query">查询参数</param> /// <returns>处理结果</returns> public (bool success, List<PendingMaterialDto> pendingList) public (bool success, List<MesItemBlDetail> pendingList) PrintBarcodeForOverPicking(WarehouseQuery query) { UseTransaction(db => @@ -1687,13 +1699,14 @@ new JoinQueryInfos(JoinType.Left, a.Id == b.Mid)) .Where((a, b) => a.BlNo == query.blNo && (b.Bld007 ?? 0) - (b.Bld008 ?? 0) > 0) .Select((a, b) => new PendingMaterialDto .Select((a, b) => new MesItemBlDetail { SectionCode = b.Bld012.ToString(), ItemNo = b.Bld002, ItemName = b.Bld003, ItemSpec = b.Bld004, PendingQty = (b.Bld007 ?? 0) - (b.Bld008 ?? 0) Bld012 = b.Bld012, Bld002 = b.Bld002, Bld003 = b.Bld003, Bld004 = b.Bld004, Bld007 = b.Bld007, Bld008 = b.Bld008 }) .ToList(); service/Warehouse/MesItemTblManager.cs
@@ -35,8 +35,8 @@ BillNo = a.BillNo, Tlid = b.Tlid, Tlmid = b.Tlmid, Tld005 = b.Tld005, Tld006 = b.Tld006, Tld005 = b.Tld005 ?? 0, Tld006 = b.Tld006 ?? 0, Tld009 = b.Tld009, ItemNo = c.ItemNo, ItemName = c.ItemName, @@ -70,7 +70,7 @@ return warehouseQuery; } public bool SctlScanBarcode(WarehouseQuery query) public WarehouseQuery SctlScanBarcode(WarehouseQuery query) { var p_item_barcode = query.barcode; var p_bill_no = query.billNo; @@ -406,10 +406,9 @@ return totalResult; }); // 设置返回结果 // c_result = $"001[,{c_mes_inv_item_barcodes.ItemNo},{c_quantity},扫码成功!,参考库位@物料@待退数量{c_in_field_valT}"; return true; query.itemNo = c_mes_inv_item_barcodes.ItemNo; query.Num = c_quantity.Value; return query; } }