From d34506fc224f8c3132cc29540c65c1528eb61065 Mon Sep 17 00:00:00 2001 From: 南骏 池 <chiffly@163.com> Date: 星期四, 22 五月 2025 09:50:55 +0800 Subject: [PATCH] 1.OA接口字段调整。 2.SRM新增条码未全部打印,无法扫描限制。 3.新增携客云确认到货流程 --- service/Warehouse/MesXkyShdManager.cs | 6 ++ Controllers/Warehouse/MesXkyController.cs | 29 +++++++++ service/QC/OaApi.cs | 19 +++++- service/Warehouse/MesXkyService.cs | 118 ++++++++++++++++++++++++++++++++++++++- 4 files changed, 166 insertions(+), 6 deletions(-) diff --git a/Controllers/Warehouse/MesXkyController.cs b/Controllers/Warehouse/MesXkyController.cs index 5b9a143..b98b049 100644 --- a/Controllers/Warehouse/MesXkyController.cs +++ b/Controllers/Warehouse/MesXkyController.cs @@ -27,6 +27,13 @@ public string? erpCode { get; set; } } + //鍒拌揣鍗曟槑缁唈son 鍜� 鍒拌揣鍗曟潯鐮� + public class XKYGetDhdHwsdRequest + { + public string? dnXkNo { get; set; } + public string? erpCode { get; set; } + } + MesXkyService m = new MesXkyService(); [HttpPost("GetXkyDhd")] @@ -92,4 +99,26 @@ } } + + [HttpPost("GetXkyHwsd")] + public ResponseResult GetXkyHwsd(XKYGetDhdHwsdRequest request) + { + try + { + dynamic resultInfos = new ExpandoObject(); + resultInfos = m.GetXkyHwsd(request); + var tbBillList = resultInfos; + return new ResponseResult + { + status = 0, + message = "OK", + data = "" + }; + } + catch (Exception ex) + { + return ResponseResult.ResponseError(ex); + } + } + } \ No newline at end of file diff --git a/service/QC/OaApi.cs b/service/QC/OaApi.cs index 0d83dd4..98bba9c 100644 --- a/service/QC/OaApi.cs +++ b/service/QC/OaApi.cs @@ -199,11 +199,15 @@ // 瀛楁鏄犲皠閰嶇疆锛堝瓧娈靛悕 -> 鏁版嵁搴撳垪鍚嶏級 var fieldMappings = new Dictionary<string, (string Field, string Default)> { + ["sqr"] = ("sqr", "0"), // 榛樿鍊兼敼涓烘暟瀛� + ["sqrq"] = ("sqrq", ""), // 绌哄瓧绗︿覆鐢ㄤ簬鏃ユ湡鏍煎紡鍖� + ["szbm"] = ("szbm", "0"), // 榛樿鍊兼敼涓烘暟瀛� + ["szdw"] = ("szdw", "0"), // 榛樿鍊兼敼涓烘暟瀛� ["ycczdh"] = ("ycczdh", "N/A"), - ["wlbm"] = ("wlbm", "N/A"), + ["lh"] = ("lh", "N/A"), ["khgys"] = ("khgys", "N/A"), ["jzmcwlmc"] = ("jzmcwlmc", "N/A"), - ["dhdhmes"] = ("dhdhmes", "N/A"), + ["dhdhtxt"] = ("dhdhtxt", "N/A"), ["bhgpqxms"] = ("bhgpqxms", "鏃犵己闄锋弿杩�") }; @@ -211,7 +215,16 @@ var result = new JArray(); foreach (var mapping in fieldMappings) { - var value = GetDynamicValue(firstRecord, mapping.Value.Field, mapping.Value.Default); + var value = mapping.Key switch + { + "sqr" or "szbm" or "szdw" => + int.TryParse(GetDynamicValue(firstRecord, mapping.Value.Field, mapping.Value.Default), out int num) + ? num : 0, + "sqrq" => DateTime.TryParse(GetDynamicValue(firstRecord, mapping.Value.Field, ""), out DateTime date) + ? date.ToString("yyyy-MM-dd") + : DateTime.Now.ToString("yyyy-MM-dd"), + _ => GetDynamicValue(firstRecord, mapping.Value.Field, mapping.Value.Default) + }; result.Add(new JObject { ["fieldName"] = mapping.Key, diff --git a/service/Warehouse/MesXkyService.cs b/service/Warehouse/MesXkyService.cs index ceb40ea..45ad039 100644 --- a/service/Warehouse/MesXkyService.cs +++ b/service/Warehouse/MesXkyService.cs @@ -16,19 +16,24 @@ public class MesXkyService : RepositoryNoEntity { /// <summary> - /// 绯荤粺鑷姩鏃ュ織妯℃澘锛堢敤浜庢惡瀹簯鎺ュ彛璋冪敤璁板綍锛� + /// 閫佽揣鍗曟棩蹇楁ā鏉匡紙鐢ㄤ簬鎼哄浜戞帴鍙h皟鐢ㄨ褰曪級 /// </summary> private string _logMessageDHD = ""; /// <summary> - /// 绯荤粺鑷姩鏃ュ織妯℃澘锛堢敤浜庢惡瀹簯鎺ュ彛璋冪敤璁板綍锛� + /// 閫佽揣鍗曟槑缁嗘棩蹇楁ā鏉匡紙鐢ㄤ簬鎼哄浜戞帴鍙h皟鐢ㄨ褰曪級 /// </summary> private string _logMessageDhdDetail = ""; /// <summary> - /// 绯荤粺鑷姩鏃ュ織妯℃澘锛堢敤浜庢惡瀹簯鎺ュ彛璋冪敤璁板綍锛� + /// 閫佽揣鍗曟潯鐮佹棩蹇楁ā鏉匡紙鐢ㄤ簬鎼哄浜戞帴鍙h皟鐢ㄨ褰曪級 /// </summary> private string _logMessageDhdBar = ""; + + /// <summary> + /// 閫佽揣鍗曡揣鐗╅�佽揪鏃ュ織妯℃澘锛堢敤浜庢惡瀹簯鎺ュ彛璋冪敤璁板綍锛� + /// </summary> + private string _logMessageDhdHwsd = ""; //鑾峰彇鎼哄浜戝埌璐у崟 public dynamic GetXkyDhd(XKYGetDhdRequest entity) @@ -535,4 +540,111 @@ return result; } + + + + public dynamic GetXkyHwsd(XKYGetDhdHwsdRequest entity) + { + _logMessageDhdHwsd = "銆怱ysAuto銆戞惡瀹簯閫佽揣鍗曡揣鐗╅�佽揪銆�"; + /// <summary> + /// 璇锋眰鎶ユ枃缂撳瓨锛堝瓨鍌ㄥ簭鍒楀寲鍚庣殑JSON璇锋眰鍐呭锛� + /// </summary> + string _requestJson = string.Empty; + + /// <summary> + /// 鍔ㄦ�佸搷搴斿璞★紙瀛樺偍鍙嶅簭鍒楀寲鐨勬惡瀹簯鎺ュ彛鍝嶅簲锛� + /// </summary> + dynamic _responseData = new System.Dynamic.ExpandoObject(); + + /// <summary> + /// 鎺ュ彛鎵ц鏃堕棿锛堟牸寮忥細yyyy-MM-dd HH:mm:ss锛� + /// </summary> + string _executeTimestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + + /// <summary> + /// 鎺ュ彛璋冪敤鐘舵�侊紙0-澶辫触 1-鎴愬姛锛� + /// </summary> + int sendStatus = 0; + + try + { + string ErrorMsg = ""; + ApiCommonParam Apiparam = ApiCommonParam.NewApiCommon(); + + _executeTimestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + string sendJson = JsonConvert.SerializeObject(entity); + ArrayList SQLStringList = new ArrayList(); + var url = "https://openapi.xiekeyun.com/delivery/updateDeliveryStatus.json"; + HttpClient httpClient = new HttpClient(); + httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + + _requestJson = "{\"commonParam\":" + JsonConvert.SerializeObject(Apiparam) + ",\"body\":" + sendJson + "}"; + byte[] postData = Encoding.UTF8.GetBytes(_requestJson); + + // 鍒涘缓璇锋眰瀵硅薄 + HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); + request.Method = "POST"; + request.ContentType = "application/json"; + request.ContentLength = postData.Length; + + // 鍙戦�佽姹傛暟鎹� + using (Stream stream = request.GetRequestStream()) + { + stream.Write(postData, 0, postData.Length); + } + + // 鍙戦�佽姹傚苟鑾峰彇鍝嶅簲 + HttpWebResponse response = (HttpWebResponse)request.GetResponse(); + using (Stream stream = response.GetResponseStream()) + using (StreamReader reader = new StreamReader(stream)) + { + string result2 = reader.ReadToEnd(); + + _responseData = JsonConvert.DeserializeObject(result2); + } + + if (_responseData.result != 1) + throw new ApplicationException(_responseData.errorMsg); + + sendStatus = _responseData.result; + + var logService = new LogService(); + logService.CreateLogI( + db: Db, + edtUserGuid: Guid.Parse("11111111-1111-1111-1111-111111111111"), + abtGuid: null, + abtTable: "MES_INV_ITEM_ARN", + detail: _logMessageDhdBar, + orderNo: "", + sendJson: _requestJson, + rtnJson: JsonConvert.SerializeObject(_responseData), + xkyBeginTime: "", + xkyEndTime: "", + sendStatus: sendStatus, + executeTime: _executeTimestamp + ); + + return _responseData; + } + catch (Exception e) + { + var logService = new LogService(); + logService.CreateLogI( + db: Db, + edtUserGuid: Guid.Parse("11111111-1111-1111-1111-111111111111"), + abtGuid: null, + abtTable: "MES_INV_ITEM_ARN", + detail: _logMessageDhdBar + $"绯荤粺寮傚父閿欒锛歿e.Message}\n璺熻釜锛歿e.StackTrace}", + orderNo: "", + sendJson: _requestJson, + rtnJson: JsonConvert.SerializeObject(_responseData), + xkyBeginTime: "", + xkyEndTime: "", + sendStatus: 0, + executeTime: _executeTimestamp + ); + throw new Exception(e.Message); + } + + } } diff --git a/service/Warehouse/MesXkyShdManager.cs b/service/Warehouse/MesXkyShdManager.cs index f86518d..3ab65b1 100644 --- a/service/Warehouse/MesXkyShdManager.cs +++ b/service/Warehouse/MesXkyShdManager.cs @@ -23,7 +23,13 @@ if (shdh.Count < 1) throw new Exception($"閫佽揣鍗曞彿銆恵unity.shdh}銆戜笉瀛樺湪鎴栨湭鍚屾!"); + // var sql3 = @"SELECT ISNULL((SELECT SUM(delivery_qty) FROM DELIVERY_NOTICE_DETAIL WHERE delivery_no = @shdh), 0) - + //ISNULL((SELECT SUM(include_qty) FROM TBL_BARCODE_INFORMATION WHERE delivery_no = @shdh), 0) AS Diffnum "; + // var diffNum = Db.Ado.SqlQuery<dynamic>(sql3, sqlParams).First(); + + // if (diffNum.Diffnum != 0) + // throw new Exception($"閫佽揣鍗曞彿銆恵unity.shdh}銆戞潯鐮佹湭鍏ㄩ儴鎵撳嵃鎴栨湭鍚屾锛屾棤娉曟敹璐э紒"); var sql2 = @"select D.item_no, D.item_name, -- Gitblit v1.9.3