| Controllers/Wom/WomdaaController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| entity/MesSuppSc.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| service/ErpBOMManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| service/Warehouse/MesSuppScManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| service/Wom/WomdaaManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Controllers/Wom/WomdaaController.cs
@@ -559,6 +559,27 @@ } } //新称重页面,暂时不用 [HttpPost("GetWeightByXt_new")] public ResponseResult GetWeightByXt_new(dynamic query) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = m.GetWeightByXt_new(query); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } /// <summary> /// 现场收料获取可选工单信息 entity/MesSuppSc.cs
@@ -22,3 +22,26 @@ } [SugarTable("MES_SUPPSCORE_DETAIL")] public class MesSuppScDetail { [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)] public Guid ID { get; set; } // 外键关联主表 MES_SUPPSCORE.ID [SugarColumn(ColumnName = "PID")] public Guid PID { get; set; } // 项目一级(xm1) [SugarColumn(ColumnName = "XM1")] public string? XM1 { get; set; } // 项目二级(xm2) [SugarColumn(ColumnName = "XM2")] public string? XM2 { get; set; } // 得分(dykhdf) [SugarColumn(ColumnName = "DYKHDF")] public decimal? DYKHDF { get; set; } } service/ErpBOMManager.cs
@@ -61,7 +61,7 @@ //查询字段集合,即返回哪些数据,不能为空,根据不同业务单据填写不同的字段名,以下仅为示例 //string fieldKeys = "FCod,FFileId,FRelevantObject"; //string FilterString = "FID='-2146304'"; string fieldKeys = "FITEMPPROPERTY ,FMATERIALID ,FITEMNAME ,FTreeEntity_FENTRYID ,FCHILDITEMNAME ,FNUMERATOR , FDENOMINATOR"; string fieldKeys = "FITEMPPROPERTY ,FMATERIALID ,FITEMNAME ,FMATERIALIDCHILD ,FCHILDITEMNAME ,FNUMERATOR , FDENOMINATOR"; var filterString = new[] { new service/Warehouse/MesSuppScManager.cs
@@ -1,5 +1,4 @@ using Kingdee.CDP.WebApi.SDK; using Kingdee.CDP.WebApi.SDK; using MES.Service.Models; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; @@ -11,6 +10,7 @@ using Newtonsoft.Json.Linq; using SqlSugar; using System.Text; using System.Net.Http; namespace MES.Service.service.Warehouse; @@ -20,7 +20,7 @@ private const string SourceUrl = "https://qixizhaopin.modaniot.com:8443/wetchat/ToGSMesServlet?password=gsmes"; /// <summary> /// 从指定网址读取 JSON 数据并保存到 MES_SUPPSCORE 表 /// 从指定网址读取 JSON 数据并保存到 MES_SUPPSCORE(主)和 MES_SUPPSCORE_DETAIL(子)表 /// </summary> public bool FetchAndSaveFromUrl() { @@ -28,7 +28,6 @@ try { using var http = new HttpClient(); // 可根据需要设置超时 http.Timeout = TimeSpan.FromSeconds(30); json = http.GetStringAsync(SourceUrl).Result; } @@ -54,35 +53,81 @@ if (data == null || data.Count == 0) throw new Exception("JSON 中未包含 data 或 data 为空"); var list = new List<MesSuppSc>(); var mains = new List<MesSuppSc>(); var details = new List<MesSuppScDetail>(); foreach (var item in data) { var rq = item["rq"]?.ToString(); var gysmc = item["gysmc"]?.ToString(); var zf = item["zf"]?.ToString(); var xmdfStr = item["xmdf"]?.ToString(); decimal? zfDec = null; if (!string.IsNullOrWhiteSpace(zf) && decimal.TryParse(zf, out var tmp)) zfDec = tmp; list.Add(new MesSuppSc var mainId = Guid.NewGuid(); mains.Add(new MesSuppSc { ID = Guid.NewGuid(), SuppDate = rq, ID = mainId, SuppDate = null, // 若 JSON 包含日期字段,可在此填充 SuppName = gysmc, SuppNum = zfDec }); // 解析子表 xmdf 字符串(xmdf 本身是一个 JSON 字符串) if (!string.IsNullOrWhiteSpace(xmdfStr)) { try { var subArr = JArray.Parse(xmdfStr); foreach (var sub in subArr) { var xm1 = sub["xm1"]?.ToString(); var xm2 = sub["xm2"]?.ToString(); var dykhdf = sub["dykhdf"]?.ToString(); decimal? score = null; if (!string.IsNullOrWhiteSpace(dykhdf) && decimal.TryParse(dykhdf, out var s)) score = s; details.Add(new MesSuppScDetail { ID = Guid.NewGuid(), PID = mainId, XM1 = xm1, XM2 = xm2, DYKHDF = score }); } } catch (Exception ex) { // 忽略单条解析错误,但记录异常信息 Console.WriteLine($"解析 xmdf 失败(供应商 {gysmc}): {ex.Message}"); } } } // 写入数据库:先清空表再插入(按原逻辑) // 写入数据库:事务内先删除旧数据再插入新数据 var result = UseTransaction(db => { // 注意:这里使用传入的 db(SqlSugarScope)执行原子操作 // 先清子表,再清主表 db.Deleteable<MesSuppScDetail>().ExecuteCommand(); db.Deleteable<MesSuppSc>().ExecuteCommand(); var inserted = db.Insertable(list).ExecuteCommand(); return inserted > 0 ? 1 : 0; var mainInserted = 0; if (mains.Count > 0) mainInserted = db.Insertable(mains).ExecuteCommand(); var detailInserted = 0; if (details.Count > 0) detailInserted = db.Insertable(details).ExecuteCommand(); return (mainInserted + detailInserted) > 0 ? 1 : 0; }) > 0; return result; } } service/Wom/WomdaaManager.cs
@@ -1002,6 +1002,69 @@ } } //新称重页面,暂时不用 public dynamic GetWeightByXt_new(dynamic query) { if (query == null) throw new ArgumentNullException(nameof(query), "参数对象不能为null"); // 参数校验 if (string.IsNullOrEmpty(query.userName?.ToString())) throw new ArgumentException("用户名不允许为空", nameof(query.userName)); if (string.IsNullOrEmpty(query.LsBar?.ToString())) throw new ArgumentException("卡板条码不允许为空", nameof(query.LsBar)); var _strMsg = ""; var _status = -1; var _weight = "0"; using (var conn = new SqlConnection(DbHelperSQL.strConn)) { using (var cmd = new SqlCommand("prc_pda_Xbar_chenzhong_new", conn)) { try { conn.Open(); cmd.CommandType = CommandType.StoredProcedure; SqlParameter[] parameters = { new("@pi_user", SqlDbType.NVarChar, 100) { Value = query.userName }, new("@pi_ls_barcode", SqlDbType.NVarChar, 100) { Value = query.LsBar }, new("@po_outMsg", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output }, new("@po_outStatus", SqlDbType.Int) { Direction = ParameterDirection.Output }, new("@po_outWeight", SqlDbType.NVarChar, 100) { Direction = ParameterDirection.Output } }; cmd.Parameters.AddRange(parameters); cmd.ExecuteNonQuery(); _strMsg = parameters[2].Value?.ToString() ?? ""; _status = Convert.ToInt32(parameters[3].Value ?? -1); _weight = parameters[4].Value?.ToString() ?? "0"; if (_status <= 0) throw new Exception(_strMsg); return new { message = _strMsg, status = _status, weight = _weight, barCode = query.Bar }; } catch (Exception ex) { throw new Exception($"产品称重失败:{ex.Message}"); } finally { conn.Close(); } } } } public dynamic GetXcslDaa(dynamic unity,dynamic RequestInfo) {