From 9440c4980e1f2415fdc0d61005b7d245fc16483e Mon Sep 17 00:00:00 2001 From: 南骏 池 <chiffly@163.com> Date: 星期五, 07 三月 2025 09:52:31 +0800 Subject: [PATCH] 1.受托入库,初步完成 --- entity/MesShouTuo.cs | 94 +++++++++ entity/MesShouTuoDetail.cs | 64 ++++++ service/Warehouse/MesStrkManager.cs | 130 +++++++++++++ Controllers/Warehouse/MesStrkController.cs | 255 +++++++++++++++++++++++++ 4 files changed, 543 insertions(+), 0 deletions(-) diff --git a/Controllers/Warehouse/MesStrkController.cs b/Controllers/Warehouse/MesStrkController.cs new file mode 100644 index 0000000..fdb9a09 --- /dev/null +++ b/Controllers/Warehouse/MesStrkController.cs @@ -0,0 +1,255 @@ +锘縰sing System.Dynamic; +using Microsoft.AspNetCore.Mvc; +using NewPdaSqlServer.Dto.service; +using NewPdaSqlServer.entity; +using NewPdaSqlServer.service.Warehouse; +using NewPdaSqlServer.util; + +namespace NewPdaSqlServer.Controllers.Warehouse; + +/// <summary> +/// 鐢熶骇琛ユ枡鐩稿叧鎺ュ彛 +/// </summary> +[Route("api/[controller]")] +[ApiController] +public class MesStrkController : ControllerBase +{ + private readonly MesStrkManager _manager = new(); + + #region 鍩虹 + /***杩涘叆妯$増绠$悊鍙互淇敼妯$増***/ + + /// <summary> + /// 鑾峰彇鎵�鏈� + /// </summary> + /// <returns></returns> + [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); + } + } + + /// <summary> + /// 鏍规嵁涓婚敭鑾峰彇 + /// </summary> + /// <returns></returns> + [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); + } + } + + /// <summary> + /// 鏍规嵁涓婚敭鍒犻櫎 + /// </summary> + /// <returns></returns> + [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); + } + } + + /// <summary> + /// 娣诲姞 + /// </summary> + /// <returns></returns> + [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); + } + } + + /// <summary> + /// 娣诲姞杩斿洖鑷 + /// </summary> + /// <returns></returns> + [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); + } + } + + /// <summary> + /// 淇敼 + /// </summary> + /// <returns></returns> + [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 + + + /// <summary> + /// 鑾峰彇鍙楁墭鍏ュ簱鐢宠鍒楄〃 + /// </summary> + /// <returns>鍙楁墭鍏ュ簱鐢宠鍒楄〃</returns> + [HttpPost("GetStrkBillNo")] + public ResponseResult GetStrkBillNo(WarehouseQuery query) + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = _manager.GetStrkBillNo(query); + return new ResponseResult + { + status = 0, + message = "OK", + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + /// <summary> + /// 鏍规嵁鍗曞彿鑾峰彇鍙楁墭鍏ュ簱鍗曟槑缁� + /// </summary> + /// <param name="query">鏌ヨ鍙傛暟</param> + /// <returns>鍙楁墭鍏ュ簱鍗曟槑缁嗗垪琛�</returns> + [HttpPost("GetMesItemDetailByBillNo")] + public ResponseResult GetMesItemDetailByBillNo( + [FromBody] WarehouseQuery query) + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = _manager.GetMesItemDetailByBillNo(query); + + 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); + } + } + + /// <summary> + /// 鑾峰彇鏉$爜淇℃伅鍜岀墿鏂欎俊鎭� + /// </summary> + /// <returns></returns> + [HttpPost("XsthScanBarcode")] + public ResponseResult XsthScanBarcode(WarehouseQuery unity) + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos.tbBillList = _manager.XsthScanBarcode(unity); + return new ResponseResult + { + status = 0, + message = resultInfos.tbBillList, + data = resultInfos + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + + +} \ No newline at end of file diff --git a/entity/MesShouTuo.cs b/entity/MesShouTuo.cs new file mode 100644 index 0000000..cea7f65 --- /dev/null +++ b/entity/MesShouTuo.cs @@ -0,0 +1,94 @@ +锘縰sing SqlSugar; + +namespace MES.Service.Modes; + +/// <summary> +/// 鍙楁墭鍏ュ簱鐢宠 +/// </summary> +[SugarTable("Mes_SHOU_TUO")] +public class MesShouTuo +{ + /// <summary> + /// 涓婚敭 + /// </summary> + [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)] + public Guid? Guid { get; set; } + + /// <summary> + /// 鍗曟嵁缂栧彿 + /// </summary> + [SugarColumn(ColumnName = "billNo")] + public string? BillNo { get; set; } + + /// <summary> + /// 瀹㈡埛ID + /// </summary> + [SugarColumn(ColumnName = "FCustId")] + public string? FCustId { get; set; } + + /// <summary> + /// 搴撳瓨缁勭粐ID + /// </summary> + [SugarColumn(ColumnName = "FStockOrgId")] + public string? FStockOrgId { get; set; } + + /// <summary> + /// 寤虹珛鏃ユ湡 + /// </summary> + [SugarColumn(ColumnName = "createDate")] + public DateTime? CreateDate { get; set; } + + /// <summary> + /// 寤虹珛鑰� + /// </summary> + [SugarColumn(ColumnName = "createBy")] + public string? CreateBy { get; set; } + + /// <summary> + /// 鏇存柊鑰� + /// </summary> + [SugarColumn(ColumnName = "lastupdateBy")] + public string? LastUpdateBy { get; set; } + + /// <summary> + /// 鏇存柊鏃ユ湡 + /// </summary> + [SugarColumn(ColumnName = "lastupdateDate")] + public DateTime? LastUpdateDate { get; set; } + + /// <summary> + /// 澶囨敞 + /// </summary> + [SugarColumn(ColumnName = "remark")] + public string? Remark { get; set; } + + /// <summary> + /// 鏀惰揣浠撳簱 + /// </summary> + [SugarColumn(ColumnName = "FStockId")] + public string? FStockId { get; set; } + + /// <summary> + /// 瀹℃牳浜� + /// </summary> + [SugarColumn(ColumnName = "checkBy")] + public string? CheckBy { get; set; } + + /// <summary> + /// 瀹℃牳鏃堕棿 + /// </summary> + [SugarColumn(ColumnName = "checkDate")] + public DateTime? CheckDate { get; set; } + + /// <summary> + /// 鏄惁瀹℃牳 + /// </summary> + [SugarColumn(ColumnName = "isCheck")] + public bool? IsCheck { get; set; } + + /// <summary> + /// 鏄惁瀹屾垚 + /// </summary> + [SugarColumn(ColumnName = "isFinish")] + public bool? IsFinish { get; set; } +} \ No newline at end of file diff --git a/entity/MesShouTuoDetail.cs b/entity/MesShouTuoDetail.cs new file mode 100644 index 0000000..278c717 --- /dev/null +++ b/entity/MesShouTuoDetail.cs @@ -0,0 +1,64 @@ +锘縰sing SqlSugar; + +namespace MES.Service.Models; + +/// <summary> +/// 鍙楁墭鍏ュ簱鐢宠鏄庣粏 +/// </summary> +[SugarTable("Mes_SHOU_TUO_DETAIL")] +public class MesShouTuoDetail +{ + /// <summary> + /// 涓婚敭 + /// </summary> + [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)] + public Guid? Guid { get; set; } + + /// <summary> + /// 澶栭敭 + /// </summary> + [SugarColumn(ColumnName = "pGuid")] + public Guid? PGuid { get; set; } + + /// <summary> + /// 鐗╂枡ID + /// </summary> + [SugarColumn(ColumnName = "FMaterialId")] + public string? FMaterialId { get; set; } + + /// <summary> + /// 瀹炴敹鏁伴噺 + /// </summary> + [SugarColumn(ColumnName = "FQty")] + public decimal? FQty { get; set; } + + /// <summary> + /// 搴撳瓨鍗曚綅 + /// </summary> + [SugarColumn(ColumnName = "FUintId")] + public string? FUintId { get; set; } + + /// <summary> + /// 鎵瑰彿 + /// </summary> + [SugarColumn(ColumnName = "FLot")] + public string? FLot { get; set; } + + /// <summary> + /// 澶囨敞 + /// </summary> + [SugarColumn(ColumnName = "Remark")] + public string? Remark { get; set; } + + /// <summary> + /// 鎺掑簭 + /// </summary> + [SugarColumn(ColumnName = "Fidx")] + public int? FIdx { get; set; } + + /// <summary> + /// 宸叉壂鏁伴噺 + /// </summary> + [SugarColumn(ColumnName = "SQty")] + public decimal? SQty { get; set; } +} \ No newline at end of file diff --git a/service/Warehouse/MesStrkManager.cs b/service/Warehouse/MesStrkManager.cs new file mode 100644 index 0000000..e0a12d0 --- /dev/null +++ b/service/Warehouse/MesStrkManager.cs @@ -0,0 +1,130 @@ +锘縰sing Masuit.Tools; +using MES.Service.Models; +using MES.Service.Modes; +using NewPdaSqlServer.DB; +using NewPdaSqlServer.Dto.service; +using NewPdaSqlServer.entity; +using NewPdaSqlServer.util; +using OracleInternal.Sharding; +using SqlSugar; +using SqlSugar.Extensions; +using System.Data; +using System.Data.SqlClient; + +namespace NewPdaSqlServer.service.Warehouse; + +public class MesStrkManager : Repository<MesItemBl> +{ + /// <summary> + /// 鑾峰彇鍙楁墭鍏ュ簱鐢宠鍒楄〃 + /// </summary> + /// <returns>鍙楁墭鍏ュ簱鐢宠鍒楄〃</returns> + public List<string> GetStrkBillNo(WarehouseQuery query) + { + var list = Db.Queryable<MesShouTuo>() + .Where(s => s.IsCheck == true && s.IsFinish == false) + .Select(s => s.BillNo).ToList(); + + return list; + } + + /// <summary> + /// 鏍规嵁鍗曞彿鑾峰彇MES鐗╂枡琛ㄦ槑缁� + /// </summary> + /// <param name="query">浠撳簱鏌ヨ鍙傛暟</param> + /// <returns>鐗╂枡鏄庣粏鍒楄〃</returns> + public List<ItemDetailModel> GetMesItemDetailByBillNo( + WarehouseQuery query) + { + // 鍏宠仈鏌ヨ鐗╂枡琛ㄣ�佺墿鏂欐槑缁嗚〃鍜岀墿鏂欏熀纭�淇℃伅琛� + var mesItemTblDetails = Db + .Queryable<MesShouTuo, MesShouTuoDetail, MesItems>( + (a, b, c) => new JoinQueryInfos( + JoinType.Left, + a.Guid == b.PGuid, + JoinType.Left, + b.FMaterialId == c.Id.ToString()) + ).Where((a, b, c) => a.BillNo == query.billNo && a.IsCheck == true) + .Select<ItemDetailModel>((a, b, c) => new ItemDetailModel + { + ItemNo = c.ItemNo, + ItemName = c.ItemName, + ItemModel = c.ItemModel, + FQty = b.FQty, // 鐢宠鏁伴噺 + SQty = b.SQty, // 宸叉壂鏁伴噺 + Pid = b.PGuid.ToString(), + FMaterialId = b.FMaterialId, + Id = b.Guid.ToString() + }).ToList(); + + // 绛涢�夊嚭寰呴��鏁伴噺澶т簬宸查��鏁伴噺鐨勮褰� + //var itemTblDetails = mesItemTblDetails + // .Where(s => (s.Tld005 ?? 0) - (s.Tld006 ?? 0) > 0).ToList(); + + return mesItemTblDetails; + } + + /// <summary> + /// 鍙楁墭鍏ュ簱鍏ュ簱 + /// </summary> + /// <param name="unity"></param> + /// <returns></returns> + /// <exception cref="Exception"></exception> + public string XsthScanBarcode(WarehouseQuery unity) + { + var _strMsg = ""; + var _intSum = ""; + using (var conn = new SqlConnection(DbHelperSQL.strConn)) + { + if (unity.userName.IsNullOrEmpty()) throw new Exception("鐢ㄦ埛鍚嶄笉鍏佽涓虹┖"); + if (unity.sectionCode.IsNullOrEmpty()) throw new Exception("搴撲綅缂栧彿涓嶅厑璁镐负绌�"); + if (unity.barcode.IsNullOrEmpty()) throw new Exception("鏉$爜涓嶅厑璁镐负绌�"); + if (unity.billNo.IsNullOrEmpty()) throw new Exception("鐢宠鍗曞彿涓嶅厑璁镐负绌�"); + + using (var cmd = new SqlCommand("[prc_pda_inv_strk]", conn)) + { + try + { + conn.Open(); + cmd.CommandType = CommandType.StoredProcedure; + SqlParameter[] parameters = + { + new("@po_outMsg", SqlDbType.NVarChar, 300), + new("@po_outSum", SqlDbType.NVarChar, 300), + //new("@po_womInBarSum", SqlDbType.NVarChar, 300), + new("@pi_user", unity.userName), + new("@pi_barcode", unity.barcode), + new("@pi_sectionCode", unity.sectionCode), + new("@pi_billno", unity.billNo), + + }; + parameters[0].Direction = ParameterDirection.Output; + parameters[1].Direction = ParameterDirection.Output; + // parameters[2].Direction = ParameterDirection.Output; + + foreach (var parameter in parameters) + cmd.Parameters.Add(parameter); + cmd.ExecuteNonQuery(); + _strMsg = parameters[0].Value.ToString(); + _intSum = parameters[1].Value.ToString(); + + var result = Convert.ToInt32(_intSum); + if (result <= 0) throw new Exception(_strMsg); + + return _strMsg; + + //return 0; + + } + catch (Exception ex) + { + throw new Exception(ex.Message); + } + finally + { + conn.Close(); + } + } + } + } +} \ No newline at end of file -- Gitblit v1.9.3