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