From 0f83419ea162d10cb3bc9f4a471ab1e65df68dff Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期三, 29 十月 2025 18:45:52 +0800
Subject: [PATCH] 优化

---
 新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/MedicineGoodsServices.cs |  148 ++++++++++++++++++++++++++++++++++--------------
 1 files changed, 104 insertions(+), 44 deletions(-)

diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/MedicineGoodsServices.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/MedicineGoodsServices.cs"
index aa0ab04..7746d1b 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/MedicineGoodsServices.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/MedicineGoodsServices.cs"
@@ -7,6 +7,7 @@
 using System.Security.Policy;
 using System.Text;
 using System.Threading.Tasks;
+using WIDESEA_Common;
 using WIDESEA_Core;
 using WIDESEA_Core.BaseRepository;
 using WIDESEA_Core.BaseServices;
@@ -26,7 +27,7 @@
         }
         public IRepository<Dt_MedicineGoods> Repository => BaseDal;
 
-        static string SearchDate = "";
+        static string SearchDate = "2025-10-1 20:45:16";
 
         /// <summary>
         /// 鑾峰彇鑽搧鍩虹淇℃伅鍚屾鎺ュ彛
@@ -37,27 +38,27 @@
             var responseContent = new WebResponseContent();
             try
             {
-                
-              var url = "http://121.37.118.63:80/GYZ2/95fck/goodsInfo";
+
+                var url = "http://121.37.118.63:80/GYZ2/95fck/goodsInfo";
 
 
-                if (string.IsNullOrEmpty(SearchDate)) SearchDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+                //if (string.IsNullOrEmpty(SearchDate)) SearchDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                 //璇锋眰鍙傛暟
-                var requestData = new
-                {
-                    searchDate = "2009-1-10 20:45:16"  // 姝g‘鐨勬牸寮�
-                };
-                //if (string.IsNullOrEmpty(SearchDate))
-                //{
-                //    // 榛樿鏌ヨ杩囧幓24灏忔椂鐨勬暟鎹�
-                //    SearchDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd HH:mm:ss");
-                //}
-                //// 璇锋眰鍙傛暟
                 //var requestData = new
                 //{
-                //    searchDate = SearchDate
+                //    searchDate = "2009-01-10 20:45:16"  // 姝g‘鐨勬牸寮�
                 //};
-                //SearchDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd HH:mm:ss");
+                if (string.IsNullOrEmpty(SearchDate))
+                {
+                    // 榛樿鏌ヨ杩囧幓24灏忔椂鐨勬暟鎹�
+                    SearchDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd HH:mm:ss");
+                }
+                // 璇锋眰鍙傛暟
+                var requestData = new
+                {
+                    searchDate = SearchDate
+                };
+                SearchDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd HH:mm:ss");
                 // 鍙戣捣璇锋眰
                 var result = HttpHelper.Post(url, requestData.ToJsonString());
 
@@ -67,7 +68,7 @@
                 if (response.resultCode != "0")
                 {
                     // 璋冪敤寮傚父鎺ュ彛
-                    SendErrorToUpstream(5, "", response.resultMsg ?? "涓婃父鎺ュ彛杩斿洖澶辫触", "");
+                    //SendErrorToUpstream(5, "", response.resultMsg ?? "涓婃父鎺ュ彛杩斿洖澶辫触", "");
                     return responseContent.Error(response.resultMsg ?? "涓婃父鎺ュ彛杩斿洖澶辫触");
                 }
                 if (response.data == null || !response.data.Any())
@@ -84,14 +85,17 @@
                 var entityList = response.data.Where(Medicat => !existingGoodsNos.Contains(Medicat.goods_no)).Select(Medicat => new Dt_MaterielInfo
                 {
                     MaterielCode = Medicat.goods_no,
-                    MaterielErpType = Medicat.materialCode,
+                    MaterielErpType = Medicat.goods_type,
                     item = Medicat.goods_tym, //閫氱敤鍚�
                     MaterielName = Medicat.goods_spm,//鐗╂枡鍚嶇О
+                    Dosage_form = GetDosageForm(Medicat.dosage_form),//鑽墏
+                    Barcode = Medicat.barcode,//鏉″舰鍚�
                     MaterielSpec = Medicat.model,
                     Factory = Medicat.factory,
                     MaterielUnit = Medicat.unit,//鍗曚綅
+                    MaterielSourceType=MaterielSourceTypeEnum.PurchasePart,
                     // 浣跨敤 ?? 杩愮畻绗︽彁渚涢粯璁ゅ��
-                    MaterielLength = (float?)Medicat.item_length ,
+                    MaterielLength = (float?)Medicat.item_length,
                     MaterielWide = (float?)Medicat.item_width,
                     MaterielHeight = (float?)Medicat.item_hight,
                     MaterielVolume = (float?)Medicat.item_volumn,
@@ -107,10 +111,10 @@
                 ProductSynchronous();
                 return responseContent.OK("鍚屾鎴愬姛");
             }
-            
+
             catch (Exception ex)
             {
-                SendErrorToUpstream(5, "", ex.Message, "");
+                //SendErrorToUpstream(5, "", ex.Message, "");
                 return responseContent.Error(ex.Message);
             }
         }
@@ -124,9 +128,9 @@
         {
             try
             {
-                //鍏堟壘鍒版墍鏈夋湭涓嬪彂鐨勮嵂鍝�
-                //var list = BaseDal.QueryData(x => x.GoodStatus == "鏈笅鍙�").ToList();
-                var list =BaseDal.Db.Queryable<Dt_MaterielInfo>().Where(x => x.GoodStatusState == "鏈笅鍙�").ToList();
+                //鎶婂皬浠舵湭涓嬪彂鐨勭殑淇℃伅鍜岀瑙勪负0锛屾渶浣庡簱瀛樹负0鐨勮繃婊ゆ帀
+                //var list = BaseDal.Db.Queryable<Dt_MaterielInfo>().Where(x => x.GoodStatusState == "鏈笅鍙�" && x.MaterielSourceType == MaterielSourceTypeEnum.SelfMadePart).ToList();
+                var list = BaseDal.Db.Queryable<Dt_MaterielInfo>().Where(x =>x.MaterielSourceType == MaterielSourceTypeEnum.SelfMadePart&&x.BoxQty!=0&&x.MinQty!=0&& x.GoodStatusState == "鏈笅鍙�").ToList();
                 if (list == null || !list.Any())
                 {
                     return new WebResponseContent().OK("鏃犳湭涓嬪彂鑽搧");
@@ -139,28 +143,31 @@
                         //鐢ㄦ埛code
                         customerCode = "905",
                         //鐗╂枡绫诲瀷
-                        materialCode =item.MaterielErpType,
+                        materialCode = item.MaterielErpType,
                         //浜у搧缂栫爜
-                        productCode= item.MaterielCode,
+                        productCode = item.MaterielCode,
                         //浜у搧鍚�
-                        productName =item.MaterielName,
+                        productName = item.MaterielName,
                         //浜у搧鏉$爜
-                        productBarCode= item.MaterielCode,
+                        productBarCode = item.Barcode,
+
+                        //鑽墏
+                        medicine = item.Dosage_form,//杩欓噷瑕佽皟鐢ㄦ柟娉曪紝杞寲鏂规硶
 
                         //瑙勬牸
-                        productSpecifications=item.MaterielSpec,
+                        productSpecifications = item.MaterielSpec,
                         //鍗曚綅
                         unit = item.MaterielUnit,
                         //闀�
-                        singleProductLongNum = item.MaterielLength.ToString(),
+                        singleProductLongNum = (item.MaterielLength ?? 0).ToString(),
                         //瀹�
-                        singleProductWideNum = item.MaterielWide.ToString(),
+                        singleProductWideNum = (item.MaterielWide ?? 0).ToString(),
                         //楂�
-                        singleProductHighNum = item.MaterielHeight.ToString(),
+                        singleProductHighNum = (item.MaterielHeight ?? 0).ToString(),
                         //閲嶉噺
-                        singleProductWeight = item.MaterielWeight.ToString(),
+                        singleProductWeight = (item.MaterielWeight ?? 0).ToString(),
                         //浣撶Н
-                        singleProductVolume = item.MaterielVolume.ToString(),
+                        singleProductVolume = (item.MaterielVolume ?? 0).ToString(),
                         //鏄惁鍙栨秷 0鏄笉鍒犻櫎锛�1鍒犻櫎
                         isDelete = "0"
                     };
@@ -168,19 +175,19 @@
                     var result = HttpHelper.Post(url, medicineDTO.ToJsonString());
                     var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result);
 
-                    if (resp!=null&&resp.code=="0")
+                    if (resp != null && resp.code == "0")
                     {
                         //鏇存柊鑽搧鐘舵��-宸插畬鎴�
                         BaseDal.Db.Updateable<Dt_MaterielInfo>()
                             .SetColumns(x => x.GoodStatusState == "涓嬪彂瀹屾垚")
-                            .Where(x => x.GoodStatusState == item.MaterielCode)
-                            .ExecuteCommand();  
+                            .Where(x => x.MaterielCode == item.MaterielCode)
+                            .ExecuteCommand();
                     }
                     else
                     {
-                        SendErrorToUpstream(5, medicineDTO.materialCode, resp?.msg ?? "WCS鑽搧淇℃伅鍚屾澶辫触", "");
-                      
-                        return new WebResponseContent { Status = false, Message = "璁㈠崟鎺ㄩ�佸け璐�" };
+                        //SendErrorToUpstream(5, medicineDTO.materialCode, resp?.msg ?? "WCS鑽搧淇℃伅鍚屾澶辫触", "");
+                        //return new WebResponseContent { Status = false, Message = "璁㈠崟鎺ㄩ�佸け璐�" };
+                        continue;
                     }
 
                 }
@@ -203,7 +210,7 @@
         {
             try
             {
-                var goods = BaseDal.Db.Queryable< Dt_MaterielInfo >().Where(x => x.MaterielCode == goodsno).First();
+                var goods = BaseDal.Db.Queryable<Dt_MaterielInfo>().Where(x => x.MaterielCode == goodsno).First();
                 if (goods == null)
                 {
                     return new WebResponseContent
@@ -257,8 +264,7 @@
             }
             catch (Exception ex)
             {
-
-              return new WebResponseContent { Status=false,Message = ex.Message };
+                return WebResponseContent.Instance.Error(ex.Message);
             }
         }
 
@@ -289,7 +295,61 @@
                 Console.WriteLine("寮傚父鎺ュ彛鎺ㄩ�佸け璐ワ細" + e.Message);
             }
         }
+        /// <summary>
+        /// 鍒涘缓鑽墏瀛楀吀
+        /// </summary>
+        private static readonly Dictionary<string, string> _dosageFormMap = new Dictionary<string, string>
+        {
+            {"001", "鐗囧墏"}, {"002", "鐗囧墏"}, {"003", "鐗囧墏"}, {"004", "鐗囧墏"}, {"005", "鐗囧墏"},
+            {"006", "鐗囧墏"}, {"007", "鐗囧墏"}, {"008", "鐗囧墏"}, {"009", "鐗囧墏"}, {"010", "鐗囧墏"},
+            {"011", "鍏跺畠"}, {"012", "鐗囧墏"}, {"013", "鍏跺畠"}, {"014", "鐗囧墏"}, {"015", "鐗囧墏"},
+            {"016", "鐗囧墏"}, {"017", "鐗囧墏"}, {"018", "鍏跺畠"}, {"019", "鍏跺畠"}, {"020", "鍏跺畠"},
+            {"021", "閽堝墏"}, {"022", "閽堝墏"}, {"023", "閽堝墏"}, {"024", "閽堝墏"}, {"025", "涓垚鑽�"},
+            {"026", "涓垚鑽�"}, {"027", "鍏跺畠"}, {"028", "鍏跺畠"}, {"029", "鍏跺畠"}, {"030", "鍏跺畠"},
+            {"031", "鍏跺畠"}, {"032", "鍏跺畠"}, {"033", "鍏跺畠"}, {"034", "涓垚鑽�"}, {"035", "涓垚鑽�"},
+            {"036", "涓垚鑽�"}, {"037", "涓垚鑽�"}, {"038", "鍏跺畠"}, {"039", "鍏跺畠"}, {"040", "鍏跺畠"},
+            {"041", "涓垚鑽�"}, {"042", "涓垚鑽�"}, {"043", "涓垚鑽�"}, {"044", "鍏跺畠"}, {"045", "涓垚鑽�"},
+            {"046", "涓垚鑽�"}, {"047", "涓垚鑽�"}, {"048", "涓垚鑽�"}, {"049", "涓垚鑽�"}, {"050", "涓垚鑽�"},
+            {"051", "涓垚鑽�"}, {"052", "涓垚鑽�"}, {"053", "涓垚鑽�"}, {"054", "涓垚鑽�"}, {"055", "涓垚鑽�"},
+            {"056", "鍏跺畠"}, {"057", "鍏跺畠"}, {"058", "鍏跺畠"}, {"059", "鍏跺畠"}, {"060", "鍏跺畠"},
+            {"061", "鍏跺畠"}, {"062", "鍏跺畠"}, {"063", "鍏跺畠"}, {"064", "鍏跺畠"}, {"065", "鍏跺畠"},
+            {"066", "鍏跺畠"}, {"067", "涓垚鑽�"}, {"068", "涓垚鑽�"}, {"069", "涓垚鑽�"}, {"070", "鍏跺畠"},
+            {"071", "鍏跺畠"}, {"072", "鍏跺畠"}, {"073", "涓垚鑽�"}, {"074", "鍏跺畠"}, {"075", "鍏跺畠"},
+            {"076", "涓垚鑽�"}, {"077", "鍏跺畠"}, {"078", "鍏跺畠"}, {"079", "涓垚鑽�"}, {"080", "涓垚鑽�"},
+            {"081", "涓垚鑽�"}, {"082", "涓垚鑽�"}, {"083", "鍏跺畠"}, {"084", "涓垚鑽�"}, {"085", "鍏跺畠"},
+            {"086", "涓垚鑽�"}, {"087", "鍏跺畠"}, {"088", "鍏跺畠"}, {"089", "涓垚鑽�"}, {"090", "涓垚鑽�"},
+            {"091", "鍏跺畠"}, {"092", "鍏跺畠"}, {"093", "鍏跺畠"}, {"094", "涓垚鑽�"}, {"095", "鍏跺畠"},
+            {"096", "鍏跺畠"}, {"097", "鍏跺畠"}, {"098", "鍏跺畠"}, {"099", "鍏跺畠"}, {"100", "鍏跺畠"},
+            {"101", "鍏跺畠"}, {"102", "鍏跺畠"}, {"103", "鍏跺畠"}, {"104", "鍏跺畠"}, {"105", "鍏跺畠"},
+            {"106", "鍏跺畠"}, {"107", "鍏跺畠"}, {"108", "鍏跺畠"}, {"109", "鍏跺畠"}, {"110", "鍏跺畠"},
+            {"111", "鍏跺畠"}, {"112", "鍏跺畠"}, {"113", "鍏跺畠"}, {"114", "鍏跺畠"}, {"115", "鍏跺畠"},
+            {"116", "鍏跺畠"}, {"117", "鍏朵粬"}
+        };
 
-       
+        /// <summary>
+        /// 鏍规嵁鍓傚瀷缂栧彿鑾峰彇鍓傚瀷鍒嗙被
+        /// </summary>
+        /// <param name="dosageCode">鍓傚瀷缂栧彿(001-117)</param>
+        /// <returns>鍓傚瀷鍒嗙被(鐗囧墏/閽堝墏/涓垚鑽�/鍏跺畠/鍏朵粬)</returns>
+        public static string GetDosageForm(string dosageCode)
+        {
+            if (string.IsNullOrEmpty(dosageCode))
+                return "鏈煡";
+
+            // 澶勭悊缂栧彿鏍煎紡锛岀‘淇濇槸3浣嶆暟瀛�
+            if (dosageCode.Length == 1)
+                dosageCode = "00" + dosageCode;
+            else if (dosageCode.Length == 2)
+                dosageCode = "0" + dosageCode;
+
+            if (_dosageFormMap.TryGetValue(dosageCode, out string form))
+            {
+                return form;
+            }
+
+            return "鏈煡";
+        }
+
+
     }
 }

--
Gitblit v1.9.3