From 0603ed63da0fdaeb2fb71b3455f184427373a018 Mon Sep 17 00:00:00 2001
From: pengmn <pmn@HanInfo>
Date: 星期二, 20 五月 2025 10:55:37 +0800
Subject: [PATCH] 升降量表

---
 HH.WCS.Mobox3.HangYang/wms/WMSHelper.cs |  216 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 216 insertions(+), 0 deletions(-)

diff --git a/HH.WCS.Mobox3.HangYang/wms/WMSHelper.cs b/HH.WCS.Mobox3.HangYang/wms/WMSHelper.cs
index 099bb7f..e083743 100644
--- a/HH.WCS.Mobox3.HangYang/wms/WMSHelper.cs
+++ b/HH.WCS.Mobox3.HangYang/wms/WMSHelper.cs
@@ -1,5 +1,6 @@
 锘縰sing HH.WCS.HangYang.api;
 using HH.WCS.HangYang.LISTA.models;
+using HH.WCS.HangYang.LISTA.models.wms;
 using HH.WCS.HangYang.models.other;
 using HH.WCS.HangYang.util;
 using Newtonsoft.Json;
@@ -14,6 +15,7 @@
 using System.Linq.Expressions;
 using System.Reflection;
 using System.Runtime.Remoting.Messaging;
+using System.Security.Cryptography;
 using System.Security.Cryptography.X509Certificates;
 using System.Text;
 using System.Threading;
@@ -608,6 +610,7 @@
             }
             return result;
         }
+
         #region 鏉哀WMS甯姪鏂规硶
         /// <summary>
         /// 鏂板鍏ュ簱鍗�@@ -1237,5 +1240,218 @@
             }
         }
         #endregion
+
+        #region 鏉哀鍗囬檷閲忚〃甯姪鏂规硶
+        /// <summary>
+        /// MD5鍔犲瘑
+        /// </summary>
+        /// <param name="sInput"></param>
+        /// <returns></returns>
+        public static string GetMd5FromString(string sInput)
+        {
+            var lstData = Encoding.GetEncoding("utf-8").GetBytes(sInput);
+            var lstHash = new MD5CryptoServiceProvider().ComputeHash(lstData);
+            var result = new StringBuilder(32);
+            for (int i = 0; i < lstHash.Length; i++)
+            {
+                result.Append(lstHash[i].ToString("x2").ToUpper());
+            }
+            return result.ToString();
+        }
+
+        /// <summary>
+        /// 鏍规嵁浠诲姟鍗囬噺
+        /// </summary>
+        /// <param name="task"></param>
+        internal static void AddChange(WCSTask task)
+        {
+            var db = new SqlHelper<object>().GetInstance();
+            var result = true;
+            try
+            {
+                var itemlist = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE == task.S_CNTR_CODE).ToList();
+                if (itemlist.Count > 0)
+                {
+                    var url = Settings.MoboxSeverUrl + "inventory/AddChange";
+                    //浠撳簱閲忚〃鍗囬噺
+                    var req = new AddChangeModel { op_type = 5 };
+                    //搴撳尯閲忚〃鍗囬噺
+                    var req2 = new AddChangeModel { op_type = 6 };
+                    itemlist.ForEach(a =>
+                    {
+                        LogHelper.Info($"濉厖鏁版嵁");
+                        LogHelper.Info($"娣诲姞浠撳簱閲忚〃鏁版嵁 浠撳簱{task.S_END_WH} 鐗╂枡缂栫爜{a.S_ITEM_CODE} 鐗╂枡鍚嶇О{a.S_ITEM_NAME} 鏁伴噺{a.F_QTY}");
+                        req.item_info.Add(new AddChangeModel.itemModel
+                        {
+                            wh_code = task.S_END_WH,
+                            item_code = a.S_ITEM_CODE,
+                            item_name = a.S_ITEM_NAME,
+                            qty = a.F_QTY
+                        });
+                        LogHelper.Info($"娣诲姞搴撳尯閲忚〃鏁版嵁 搴撳尯{task.S_END_AREA} 鐗╂枡缂栫爜{a.S_ITEM_CODE} 鐗╂枡鍚嶇О{a.S_ITEM_NAME} 鏁伴噺{a.F_QTY}");
+                        req2.item_info.Add(new AddChangeModel.itemModel
+                        {
+                            wh_code = task.S_END_WH,
+                            area_code = task.S_END_AREA,
+                            item_code = a.S_ITEM_CODE,
+                            item_name = a.S_ITEM_NAME,
+                            qty = a.F_QTY
+                        });
+                    });
+                    var reqData = JsonConvert.SerializeObject(req);
+                    var AppKey = Settings.AppKey;
+                    var AppSecret = Settings.AppSecret;
+                    var ReqTime = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString();
+                    //var ReqTime = GetTimeStamp(DateTime.Now.AddHours(-8), 1, 2);
+                    LogHelper.Info($"鍔犲瘑鍓�AppKey={AppKey} AppSecret={AppSecret} ReqTime={ReqTime}");
+                    var ReqVerify = GetMd5FromString(AppKey + AppSecret + ReqTime);
+                    LogHelper.Info($"鍔犲瘑鍚�AppKey={AppKey} AppSecret={AppSecret} ReqTime={ReqTime} ReqVerify={ReqVerify} url={url} req={reqData}");
+                    var res = new HttpHelper().WebPost(url, reqData, "application/json", AppKey, ReqTime, ReqVerify);
+                    if (!string.IsNullOrEmpty(res))
+                    {
+                        LogHelper.Info($"mobox 浠撳簱鍗囬噺鎺ュ彛杩斿洖 {res}");
+                        var moboxres = JsonConvert.DeserializeObject<moboxres>(res);
+                        if (moboxres.err_code != 0)
+                        {
+                            result = false;
+                        }
+                    }
+                    else
+                    {
+                        LogHelper.Info($"mobox 浠撳簱鍗囬噺鎺ュ彛杩斿洖涓虹┖");
+                        result = false;
+                    }
+                    var reqData2 = JsonConvert.SerializeObject(req2);
+                    var ReqTime2 = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString();
+                    //var ReqTime2 = GetTimeStamp(DateTime.Now.AddHours(-8), 1, 2);
+                    LogHelper.Info($"鍔犲瘑鍓�AppKey={AppKey} AppSecret={AppSecret} ReqTime={ReqTime2}");
+                    var ReqVerify2 = GetMd5FromString(AppKey + AppSecret + ReqTime2);
+                    LogHelper.Info($"鍔犲瘑鍚�AppKey={AppKey} AppSecret={AppSecret} ReqTime={ReqTime2} ReqVerify={ReqVerify2} url={url} req={reqData2}");
+                    var res2 = new HttpHelper().WebPost(url, reqData2, "application/json", AppKey, ReqTime2, ReqVerify2);
+                    if (!string.IsNullOrEmpty(res2))
+                    {
+                        LogHelper.Info($"mobox 搴撳尯鍗囬噺鎺ュ彛杩斿洖 {res2}");
+                        var moboxres = JsonConvert.DeserializeObject<moboxres>(res);
+                        if (moboxres.err_code != 0)
+                        {
+                            result = false;
+                        }
+                    }
+                    else
+                    {
+                        LogHelper.Info($"mobox 搴撳尯鍗囬噺鎺ュ彛杩斿洖涓虹┖");
+                        result = false;
+                    }
+
+                }
+                else LogHelper.Info($"鎵樼洏{task.S_CNTR_CODE} 鍦ㄥ鍣ㄨ揣鍝佹槑缁嗕腑鎵句笉鍒版暟鎹�);
+            }
+            catch (Exception ex)
+            {
+                LogHelper.Error($"浠撳簱鍗囬噺寮傚父 寮傚父淇℃伅={ex.Message}", ex);
+            }
+        }
+
+        /// <summary>
+        /// 鏍规嵁浠诲姟闄嶉噺
+        /// </summary>
+        /// <param name="task"></param>
+        internal static void DeleteChange(WCSTask task)
+        {
+            var db = new SqlHelper<object>().GetInstance();
+            var result = true;
+            try
+            {
+                var wmstask = db.Queryable<WMSTask>().Where(a => a.S_CODE == task.S_OP_CODE).First();
+                if (wmstask != null)
+                {
+                    var itemlist = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE == task.S_CNTR_CODE).ToList();
+                    if (itemlist.Count > 0)
+                    {
+                        var url = Settings.MoboxSeverUrl + "inventory/AddChange";
+                        //浠撳簱閲忚〃鍗囬噺
+                        var req = new AddChangeModel { op_type = 4 };
+                        //搴撳尯閲忚〃鍗囬噺
+                        var req2 = new AddChangeModel { op_type = 7 };
+                        itemlist.ForEach(a =>
+                        {
+                            LogHelper.Info($"濉厖鏁版嵁");
+                            LogHelper.Info($"鍑忎粨搴撻噺琛ㄦ暟鎹�浠撳簱{task.S_END_WH} 鐗╂枡缂栫爜{a.S_ITEM_CODE} 鐗╂枡鍚嶇О{a.S_ITEM_NAME} 鏁伴噺{a.F_QTY}");
+                            req.item_info.Add(new AddChangeModel.itemModel
+                            {
+                                wh_code = wmstask.S_START_WH,
+                                item_code = a.S_ITEM_CODE,
+                                item_name = a.S_ITEM_NAME,
+                                qty = a.F_QTY
+                            });
+                            LogHelper.Info($"鍑忓簱鍖洪噺琛ㄦ暟鎹�搴撳尯{task.S_END_AREA} 鐗╂枡缂栫爜{a.S_ITEM_CODE} 鐗╂枡鍚嶇О{a.S_ITEM_NAME} 鏁伴噺{a.F_QTY}");
+                            req2.item_info.Add(new AddChangeModel.itemModel
+                            {
+                                wh_code = wmstask.S_START_WH,
+                                area_code = wmstask.S_START_AREA,
+                                item_code = a.S_ITEM_CODE,
+                                item_name = a.S_ITEM_NAME,
+                                qty = a.F_QTY
+                            });
+                        });
+                        var reqData = JsonConvert.SerializeObject(req);
+                        var AppKey = Settings.AppKey;
+                        var AppSecret = Settings.AppSecret;
+                        var ReqTime = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString();
+                        //var ReqTime = GetTimeStamp(DateTime.Now.AddHours(-8), 1, 2);
+                        LogHelper.Info($"鍔犲瘑鍓�AppKey={AppKey} AppSecret={AppSecret} ReqTime={ReqTime}");
+                        var ReqVerify = GetMd5FromString(AppKey + AppSecret + ReqTime);
+                        LogHelper.Info($"鍔犲瘑鍚�AppKey={AppKey} AppSecret={AppSecret} ReqTime={ReqTime} ReqVerify={ReqVerify} url={url} req={reqData}");
+                        var res = new HttpHelper().WebPost(url, reqData, "application/json", AppKey, ReqTime, ReqVerify);
+                        if (!string.IsNullOrEmpty(res))
+                        {
+                            LogHelper.Info($"mobox 浠撳簱闄嶉噺鎺ュ彛杩斿洖 {res}");
+                            var moboxres = JsonConvert.DeserializeObject<moboxres>(res);
+                            if (moboxres.err_code != 0)
+                            {
+                                result = false;
+                            }
+                        }
+                        else
+                        {
+                            LogHelper.Info($"mobox 浠撳簱闄嶉噺鎺ュ彛杩斿洖涓虹┖");
+                            result = false;
+                        }
+                        var reqData2 = JsonConvert.SerializeObject(req2);
+                        var ReqTime2 = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString();
+                        //var ReqTime2 = GetTimeStamp(DateTime.Now.AddHours(-8), 1, 2);
+                        LogHelper.Info($"鍔犲瘑鍓�AppKey={AppKey} AppSecret={AppSecret} ReqTime={ReqTime2}");
+                        var ReqVerify2 = GetMd5FromString(AppKey + AppSecret + ReqTime2);
+                        LogHelper.Info($"鍔犲瘑鍚�AppKey={AppKey} AppSecret={AppSecret} ReqTime={ReqTime2} ReqVerify={ReqVerify2} url={url} req={reqData2}");
+                        var res2 = new HttpHelper().WebPost(url, reqData2, "application/json", AppKey, ReqTime2, ReqVerify2);
+                        if (!string.IsNullOrEmpty(res2))
+                        {
+                            LogHelper.Info($"mobox 搴撳尯闄嶉噺鎺ュ彛杩斿洖 {res2}");
+                            var moboxres = JsonConvert.DeserializeObject<moboxres>(res);
+                            if (moboxres.err_code != 0)
+                            {
+                                result = false;
+                            }
+                        }
+                        else
+                        {
+                            LogHelper.Info($"mobox 搴撳尯闄嶉噺鎺ュ彛杩斿洖涓虹┖");
+                            result = false;
+                        }
+
+                    }
+                    else LogHelper.Info($"鎵樼洏{task.S_CNTR_CODE} 鍦ㄥ鍣ㄨ揣鍝佹槑缁嗕腑鎵句笉鍒版暟鎹�);
+                }
+                else LogHelper.Info($"鏈壘鍒颁换鍔task.S_CODE} 瀵瑰簲鐨勪綔涓�);
+
+            }
+            catch (Exception ex)
+            {
+                LogHelper.Error($"浠撳簱闄嶉噺寮傚父 寮傚父淇℃伅={ex.Message}", ex);
+            }
+        }
+
+
+        #endregion
     }
 }

--
Gitblit v1.9.1