From 3d43ffa3152110b7823f9fa6320c08a6ae02358a Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周三, 10 9月 2025 11:15:40 +0800
Subject: [PATCH] 1、增加 堆垛机运行统计 2、增加po单空物料描述

---
 siemenswmssditcode/wmsService/wcftest/wcf/apitest.cs |  259 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 256 insertions(+), 3 deletions(-)

diff --git a/siemenswmssditcode/wmsService/wcftest/wcf/apitest.cs b/siemenswmssditcode/wmsService/wcftest/wcf/apitest.cs
index a8f171b..d13c268 100644
--- a/siemenswmssditcode/wmsService/wcftest/wcf/apitest.cs
+++ b/siemenswmssditcode/wmsService/wcftest/wcf/apitest.cs
@@ -24,6 +24,7 @@
 using wcftest.Model.Output;
 using wcftest.orm_test;
 using wcftest.Utils.AuthFacotry;
+using System.Linq.Expressions;
 
 
 namespace wcftest.wcf
@@ -3270,7 +3271,7 @@
                 data.Add(waitStatus);
 
                 //x杞撮『搴忛噸鏂版帓搴� 銆怑ditby shaocx,2024-12-30銆�
-                xdata = xdata.OrderBy(x=>x).ToList();
+                xdata = xdata.OrderBy(x => x).ToList();
                 string[] legend = { "p璁惧杩愯鏃堕棿", "p璁惧绛夊緟鏃堕棿", "p璁惧寮傚父鏃堕棿" };
                 var workpiece = new
                  {
@@ -3297,6 +3298,237 @@
             }
 
         }
+
+        /// <summary>
+        /// 鍒嗛〉鏌ヨ 鍫嗗灈鏈鸿繍琛岀粺璁�
+        /// </summary>
+        /// <param name="param"></param>
+        /// <returns></returns>
+        public string QueryPageDeviceGeneralInfo(string param)
+        {
+            msgss<deviceGeneralInfo> msg = new msgss<deviceGeneralInfo>();
+            DeviceGeneralInfoInput page = JsonConvert.DeserializeObject<DeviceGeneralInfoInput>(param);
+            try
+            {
+                using (dbModel mod = new dbModel())
+                {
+                    List<deviceGeneralInfo> fiveDayDeviceInfo = null;
+                    if (page.datatime == null)
+                    {
+                        fiveDayDeviceInfo = mod.deviceGeneralInfo
+                           .OrderByDescending(x => x.createTime)
+                           .ToList();
+                    }
+                    else
+                    {
+                        DateTime _startTime = Convert.ToDateTime(page.datatime[0]);
+                        DateTime _endTime = Convert.ToDateTime(page.datatime[1]);
+                        fiveDayDeviceInfo = mod.deviceGeneralInfo
+                           .Where(x => x.createTime >= _startTime && x.createTime <= _endTime)
+                           .OrderByDescending(x => x.createTime)
+                           .ToList();
+                    }
+
+                    if (fiveDayDeviceInfo.Count > 0)
+                    {
+                        foreach (var item in fiveDayDeviceInfo)
+                        {
+                            //閲嶆柊璁$畻绛夊緟鏃堕棿
+                            item.deviceWaitTime = 1440 - ((item.deviceRunTime ?? 0M) + (item.deviceAlarmTime ?? 0M));
+                        }
+                    }
+
+                    List<deviceGeneralInfo> fenyeRerult = new List<deviceGeneralInfo>();
+                    if (fiveDayDeviceInfo.Count > 0)
+                    {
+                        msg.status = 200;
+                        msg.total = fiveDayDeviceInfo.Count;
+                        if (page.IsLoadAllData)
+                        {//鍙湁纭畾鍔犺浇鍏ㄩ儴鏁版嵁鏃舵墠鍔犺浇鍏ㄩ儴鏁版嵁 [EditBy shaocx,2022-03-07]
+                            msg.status = 200;
+                            msg.allDate = fiveDayDeviceInfo.ToList();
+                        }
+                        else
+                        {//涓嶅姞杞藉叏閮紝灏辫繃婊ゅ垎椤典俊鎭�
+                            //鍋囧姣忛〉鏁伴噺 澶т簬鐩樼偣鏁版嵁
+                            if (page.queryInfo.pagesize > fiveDayDeviceInfo.Count)
+                            {
+                                msg.date = fiveDayDeviceInfo;
+                            }
+                            else
+                            {
+                                #region 鍒嗛〉璁$畻
+                                int a = page.queryInfo.pagesize;
+
+                                int b = page.queryInfo.pagenum;
+                                int c = (int)Math.Ceiling((double)fiveDayDeviceInfo.Count / a);
+                                int d = fiveDayDeviceInfo.Count % a;
+                                int e = 0;
+                                int f = a * (b - 1);
+                                if (d != 0 && b == c)
+                                {
+                                    e = d + f;
+
+                                }
+                                else
+                                {
+                                    e = a + f;
+                                }
+
+
+
+                                for (int i = f; i < e; i++)
+                                {
+                                    fenyeRerult.Add(fiveDayDeviceInfo[i]);
+                                }
+                                msg.date = fenyeRerult;
+                                #endregion
+
+                            }
+                        }
+                    }
+                    else
+                    {
+                        msg.status = 400;
+                        msg.total = 1;
+                        msg.date = null;
+                    }
+
+
+                    return JsonConvert.SerializeObject(msg);
+                }
+
+            }
+            catch (Exception ex)
+            {
+                logtxt.txtWrite("鍑洪敊淇℃伅" + ex.Message + "鍑洪敊琛屽彿" + (string)ex.StackTrace, 2);
+                msg.status = 400;
+                msg.total = 1;
+                msg.date = null;
+
+                return JsonConvert.SerializeObject(msg);
+            }
+
+        }
+
+        /// <summary>
+        /// 鍒嗛〉鏌ヨ PO鏄庣粏绌虹墿鏂欏彿淇℃伅
+        /// </summary>
+        /// <param name="param"></param>
+        /// <returns></returns>
+        public string QueryPagePurchaseEmptyMaterialCode(string param)
+        {
+            msgss<Purchase_OrderList_EmptyMaterialCode> msg = new msgss<Purchase_OrderList_EmptyMaterialCode>();
+            Purchase_OrderList_EmptyMaterialCodeInput page = JsonConvert.DeserializeObject<Purchase_OrderList_EmptyMaterialCodeInput>(param);
+            try
+            {
+                using (dbModel mod = new dbModel())
+                {
+                    List<Purchase_OrderList_EmptyMaterialCode> fiveDayDeviceInfo = new List<Purchase_OrderList_EmptyMaterialCode>();
+
+                    Expression<Func<Purchase_OrderList_EmptyMaterialCode, bool>> predicate_datatime = x => 1 == 1;
+                    if (page.datatime != null)
+                    {
+                        DateTime _startTime = Convert.ToDateTime(page.datatime[0]);
+                        DateTime _endTime = Convert.ToDateTime(page.datatime[1]);
+                        predicate_datatime = x => x.CreateTime >= _startTime && x.CreateTime <= _endTime;
+                    }
+                    Expression<Func<Purchase_OrderList_EmptyMaterialCode, bool>> predicate_poCode = x => 1 == 1;
+                    if (!string.IsNullOrEmpty(page.search.PoCode))
+                    {
+                        predicate_poCode = x => x.PoCode == page.search.PoCode;
+                    }
+                    Expression<Func<Purchase_OrderList_EmptyMaterialCode, bool>> predicate_ItemNumber = x => 1 == 1;
+                    if (!string.IsNullOrEmpty(page.search.ItemNumber))
+                    {
+                        predicate_poCode = x => x.ItemNumber == page.search.ItemNumber;
+                    }
+                    Expression<Func<Purchase_OrderList_EmptyMaterialCode, bool>> predicate_ProductName = x => 1 == 1;
+                    if (!string.IsNullOrEmpty(page.search.ProductName))
+                    {
+                        predicate_poCode = x => x.ProductName == page.search.ProductName;
+                    }
+                    fiveDayDeviceInfo = mod.Purchase_OrderList_EmptyMaterialCode
+                        .Where(predicate_datatime)
+                        .Where(predicate_poCode)
+                        .Where(predicate_ItemNumber)
+                        .Where(predicate_ProductName)
+                        .ToList();
+
+
+                    List<Purchase_OrderList_EmptyMaterialCode> fenyeRerult = new List<Purchase_OrderList_EmptyMaterialCode>();
+                    if (fiveDayDeviceInfo.Count > 0)
+                    {
+                        msg.status = 200;
+                        msg.total = fiveDayDeviceInfo.Count;
+                        if (page.IsLoadAllData)
+                        {//鍙湁纭畾鍔犺浇鍏ㄩ儴鏁版嵁鏃舵墠鍔犺浇鍏ㄩ儴鏁版嵁 [EditBy shaocx,2022-03-07]
+                            msg.status = 200;
+                            msg.allDate = fiveDayDeviceInfo.ToList();
+                        }
+                        else
+                        {//涓嶅姞杞藉叏閮紝灏辫繃婊ゅ垎椤典俊鎭�
+                            //鍋囧姣忛〉鏁伴噺 澶т簬鐩樼偣鏁版嵁
+                            if (page.queryInfo.pagesize > fiveDayDeviceInfo.Count)
+                            {
+                                msg.date = fiveDayDeviceInfo;
+                            }
+                            else
+                            {
+                                #region 鍒嗛〉璁$畻
+                                int a = page.queryInfo.pagesize;
+
+                                int b = page.queryInfo.pagenum;
+                                int c = (int)Math.Ceiling((double)fiveDayDeviceInfo.Count / a);
+                                int d = fiveDayDeviceInfo.Count % a;
+                                int e = 0;
+                                int f = a * (b - 1);
+                                if (d != 0 && b == c)
+                                {
+                                    e = d + f;
+
+                                }
+                                else
+                                {
+                                    e = a + f;
+                                }
+
+
+
+                                for (int i = f; i < e; i++)
+                                {
+                                    fenyeRerult.Add(fiveDayDeviceInfo[i]);
+                                }
+                                msg.date = fenyeRerult;
+                                #endregion
+
+                            }
+                        }
+                    }
+                    else
+                    {
+                        msg.status = 400;
+                        msg.total = 1;
+                        msg.date = null;
+                    }
+
+
+                    return JsonConvert.SerializeObject(msg);
+                }
+
+            }
+            catch (Exception ex)
+            {
+                logtxt.txtWrite("鍑洪敊淇℃伅" + ex.Message + "鍑洪敊琛屽彿" + (string)ex.StackTrace, 2);
+                msg.status = 400;
+                msg.total = 1;
+                msg.date = null;
+
+                return JsonConvert.SerializeObject(msg);
+            }
+
+        }
+
 
         /// <summary>2d鍔ㄧ敾鑾峰彇璁惧浣嶇疆
         /// 2d鍔ㄧ敾鑾峰彇璁惧浣嶇疆
@@ -5719,12 +5951,27 @@
                         var checkMateria1s = (from p in mod.Base_ProductInfo where (from f in rstPo select f).Contains(p.ProductCode) select p).ToList();
 
                         #region 娣诲姞PO鍗曠墿鏂欐槑缁�
+                        System.Collections.Generic.List<Purchase_OrderList_EmptyMaterialCode> insert_OrderList_EmptyMaterialCodeList = new List<Purchase_OrderList_EmptyMaterialCode>();
                         string lastTracknum = "";
                         foreach (var item in resultPo.Materials)
                         {
-                            if (item.MaterialCode == null)
-                            {
+                            if (string.IsNullOrEmpty(item.MaterialCode))
+                            {//鍐欏叆PO鏄庣粏绌虹墿鏂欏彿琛�		銆怑ditby shaocx,2025-09-09銆�
                                 logtxt.txtWrite("閲囪喘鍗曞彿:" + item.PoNumber + " 鐗╂枡椤瑰彿:" + item.PoItem + "鐗╂枡缂栧彿涓虹┖", 2);
+                                insert_OrderList_EmptyMaterialCodeList.Add(new Purchase_OrderList_EmptyMaterialCode()
+                                {
+                                    ID = Yitter.IdGenerator.YitIdHelper.NextId(),
+                                    PoCode = poInfo.PoCode,
+                                    BatchNumber = "",
+                                    ItemNumber = item.PoItem,
+                                    ProductName = item.MaterialName,
+                                    CreateTime = DateTime.Now,
+                                    Creator = resultPo.CreatedBy,
+                                    Quantity = 0,
+                                    LastModifier = resultPo.CreatedBy,
+                                    LastModifyTime = DateTime.Now,
+                                    Remark = ""
+                                });
                                 continue;//鐗╂枡缂栧彿涓虹┖
                             }
                             string materialCode = item.MaterialCode;
@@ -5860,6 +6107,12 @@
                         #endregion
                         //鍏堜繚瀛樹富琛� 鐒跺悗鑾峰彇涓昏〃ID 鍐嶅啓鍏ユ槑缁嗚〃
                         mod.Purchase_Order.Add(poInfo);
+
+                        if (insert_OrderList_EmptyMaterialCodeList != null && insert_OrderList_EmptyMaterialCodeList.Count > 0)
+                        {//鍐欏叆PO鏄庣粏绌虹墿鏂欏彿琛� 銆怑ditby shaocx,2025-09-09銆�
+                            mod.Purchase_OrderList_EmptyMaterialCode.AddRange(insert_OrderList_EmptyMaterialCodeList);
+                        }
+
                         int results = mod.SaveChanges();
                         for (int h = 0; h < 10; h++)
                         {

--
Gitblit v1.9.3