From f782248da68c035aae12f902f29d828e9867abb0 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周一, 29 9月 2025 12:45:51 +0800
Subject: [PATCH] 222
---
DEmon/iWareCommon/iWareCommon.csproj | 3
DEmon/iWareDataCore/TASK/EnumType/EIsSendToMes.cs | 16 +
DEmon/iWareCc/App.config | 5
DEmon/iWareLog/Report/Helper/InOutStorageDetailResultForMes.cs | 53 +++++
DEmon/iWareCc/Service1.cs | 2
DEmon/iWareDataCore/BASE/Service/PlaceMaterialViewService.cs | 3
DBScript/01_DDL/02_DDL_TABLE_Edit_WGQ.sql | 6
DEmon/iWareCc/iWareCc.csproj | 2
DEmon/iWareLog/ORM/InOutStorageDetail.cs | 15 +
DEmon/iWareCc/FinishStackerTask/Chain/保存出入库明细信息.cs | 37 ++-
/dev/null | 96 ---------
DEmon/iWareDataCore/iWareDataCore.csproj | 1
DEmon/iWareCommon/Utils/DataCache.cs | 45 ++++
DEmon/iWareLog/Report/Service/InOutService.cs | 44 ++++
DEmon/iWareCommon/Utils/ConfigHelper.cs | 106 ++++++++++
DEmon/iWareLog/iWareLog.csproj | 1
DEmon/iWareCc/SystemInteraction/mesDataTranfficForRealMesThread.cs | 92 +++++++++
DEmon/WebWIPAPI/Controllers/MesIntegrController.cs | 5
DEmon/iWareCc/SystemInteraction/PushMesHandler.cs | 33 +--
19 files changed, 424 insertions(+), 141 deletions(-)
diff --git a/DBScript/01_DDL/02_DDL_TABLE_Edit_WGQ.sql b/DBScript/01_DDL/02_DDL_TABLE_Edit_WGQ.sql
index e69de29..62e26a4 100644
--- a/DBScript/01_DDL/02_DDL_TABLE_Edit_WGQ.sql
+++ b/DBScript/01_DDL/02_DDL_TABLE_Edit_WGQ.sql
@@ -0,0 +1,6 @@
+alter table InOutStorageDetail
+add isSendToMes int NULL , -- 鏄惁鎺ㄧ粰MES ( 1:寰呮帹閫� 2锛氭帹閫佹垚鍔� 3锛氭帹閫佸け璐� 4锛氬己鍒跺畬鎴�)
+ SendToMesCount int NULL , -- 鎺ㄧ粰MES娆℃暟
+ SendToMesTime datetime null, -- 鎺ㄧ粰MES鏃堕棿
+ isSendToMesStr NVARCHAR(128) null, -- 鏄惁鎺ㄧ粰MES 鏂囨湰
+ MesRet NVARCHAR(128) NULL -- MES杩斿洖缁撴灉
\ No newline at end of file
diff --git a/DEmon/WebWIPAPI/Controllers/MesIntegrController.cs b/DEmon/WebWIPAPI/Controllers/MesIntegrController.cs
index 8f71d8e..6ee0b86 100644
--- a/DEmon/WebWIPAPI/Controllers/MesIntegrController.cs
+++ b/DEmon/WebWIPAPI/Controllers/MesIntegrController.cs
@@ -283,6 +283,11 @@
List<int> ids = new List<int>();
var materials = InputMaterialService.GetInstance().GetIds(codes);
List<InOutListDetailEntity> detail = new List<InOutListDetailEntity>();
+ if (materials?.Count == 0)
+ {
+ msg = ("鐗╂枡鏄庣粏鏌ヨ涓虹┖锛�");
+ return;
+ }
for (int i = 0; i < materials.Count; i++)
{
if (typeName == "鍏ュ簱")
diff --git a/DEmon/iWareCc/App.config b/DEmon/iWareCc/App.config
index dd014a3..bf7ed4e 100644
--- a/DEmon/iWareCc/App.config
+++ b/DEmon/iWareCc/App.config
@@ -68,5 +68,8 @@
<add name="DbModelLog" connectionString="data source=192.168.1.200;initial catalog=WGQ_WB19011_LOG;user id=sa;password=123abc.com;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
<add name="DbModelCore" connectionString="data source=192.168.1.200;initial catalog=WGQ_WB19011_CORE;user id=sa;password=123abc.com;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
</connectionStrings>
-
+ <appSettings>
+ <!--MES鍦板潃 銆怑ditBy shaocx,2025-09-25銆�-->
+ <add key="MesUrl" value="http://169.24.7.88:9083/"/>
+ </appSettings>
</configuration>
\ No newline at end of file
diff --git "a/DEmon/iWareCc/FinishStackerTask/Chain/\344\277\235\345\255\230\345\207\272\345\205\245\345\272\223\346\230\216\347\273\206\344\277\241\346\201\257.cs" "b/DEmon/iWareCc/FinishStackerTask/Chain/\344\277\235\345\255\230\345\207\272\345\205\245\345\272\223\346\230\216\347\273\206\344\277\241\346\201\257.cs"
index 197d674..a8cf4f1 100644
--- "a/DEmon/iWareCc/FinishStackerTask/Chain/\344\277\235\345\255\230\345\207\272\345\205\245\345\272\223\346\230\216\347\273\206\344\277\241\346\201\257.cs"
+++ "b/DEmon/iWareCc/FinishStackerTask/Chain/\344\277\235\345\255\230\345\207\272\345\205\245\345\272\223\346\230\216\347\273\206\344\277\241\346\201\257.cs"
@@ -15,7 +15,7 @@
namespace iWareCc.FinishStackerTask.Chain
{
- public class 淇濆瓨鍑哄叆搴撴槑缁嗕俊鎭� : IHandler
+ public class 淇濆瓨鍑哄叆搴撴槑缁嗕俊鎭� : IHandler
{
/// <summary>
/// 璇ヨ妭鐐圭殑涓嬩竴涓妭鐐�
@@ -49,22 +49,26 @@
{
var task = DecompositionTaskContainer.PartTask;
int materid = 0;
- using(var dbModelcore = new DbModelCore())
+ using (var dbModelcore = new DbModelCore())
{
- var mater = dbModelcore.BASEMaterials.FirstOrDefault(x=>x.code==task.MaterialCode);
- if (mater!=null)
+ var mater = dbModelcore.BASEMaterials.FirstOrDefault(x => x.code == task.MaterialCode);
+ if (mater != null)
{
materid = mater.id;
}
- };
- int tp=0;
+ }
+ ;
+ int tp = 0;
+ int? _isSendToMes = null;//鏄惁鍙戦�佺粰MES 銆怑ditby shaocx,2025-09-25銆�
switch (task.MainTaskType)
{
case (int)EMainTaskType.鍏ュ簱浠诲姟:
tp = 0;
+ _isSendToMes = (int)EIsSendToMes.寰呮帹閫�;
break;
case (int)EMainTaskType.鍑哄簱浠诲姟:
tp = 1;
+ _isSendToMes = (int)EIsSendToMes.寰呮帹閫�;
break;
case (int)EMainTaskType.绉诲簱浠诲姟:
tp = 2;
@@ -78,16 +82,17 @@
InOutStorageDetail iosd = new InOutStorageDetail()
{
fromplacecode = task.SourcePlace,
- formplaceid=task.SourcePlaceId,
- toplacecode=task.ToPlace,
- toplaceid=task.ToPlaceId,
- equipid=task.EquipId,
- equipname=task.EquipName,
- updatetime=DateTime.Now,
- createtime=task.CreateTime,
- materialcode=task.MaterialCode,
- materialid=materid,
- type = tp
+ formplaceid = task.SourcePlaceId,
+ toplacecode = task.ToPlace,
+ toplaceid = task.ToPlaceId,
+ equipid = task.EquipId,
+ equipname = task.EquipName,
+ updatetime = DateTime.Now,
+ createtime = task.CreateTime,
+ materialcode = task.MaterialCode,
+ materialid = materid,
+ type = tp,
+ isSendToMes = _isSendToMes //鏄惁鍙戦�佺粰MES 銆怑ditby shaocx,2025-09-25銆�
};
dbModel.InOutStorageDetails.Add(iosd);
dbModel.SaveChanges();
diff --git a/DEmon/iWareCc/Service1.cs b/DEmon/iWareCc/Service1.cs
index c8a4b4c..fe60118 100644
--- a/DEmon/iWareCc/Service1.cs
+++ b/DEmon/iWareCc/Service1.cs
@@ -414,7 +414,7 @@
//StartThread(ReSendThread);
//寮�鍚帹閫佺粰MES鐨勫嚭鍏ュ簱瀹屾垚绾跨▼ 銆怑ditby shaocx,2025-09-17銆�
- new Thread(mesDataTranfficForRealMes.Handler).Start();
+ new Thread(mesDataTranfficForRealMesThread.Handler).Start();
}
diff --git a/DEmon/iWareCc/SystemInteraction/PushMesHandler.cs b/DEmon/iWareCc/SystemInteraction/PushMesHandler.cs
index 59a9d63..994bf28 100644
--- a/DEmon/iWareCc/SystemInteraction/PushMesHandler.cs
+++ b/DEmon/iWareCc/SystemInteraction/PushMesHandler.cs
@@ -1,4 +1,6 @@
-锘縰sing Newtonsoft.Json;
+锘縰sing iWareCommon.Utils;
+using iWareLog.Report.Helper;
+using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -10,7 +12,7 @@
/// </summary>
public class PushMesHandler
{
- public static string mes_api_url = "";// ConfigHelper.GetConfigString("MesUrl");//淇敼涓洪厤缃枃浠� 銆怑ditBy shaocx,2022-01-27銆�
+ public static string mes_api_url = ConfigHelper.GetConfigString("MesUrl");//淇敼涓洪厤缃枃浠� 銆怑ditBy shaocx,2022-01-27銆�
static HTTPService mes_api = new HTTPService(mes_api_url);//mes鍩哄湴鍧�
/// <summary>
@@ -18,35 +20,20 @@
/// </summary>
/// <param name="pushData"></param>
/// <returns></returns>
- public static ApiResponse<string> Mes_InStockSend(List<InboundStockInfoToMes> pushData)
+ public static ApiResponse<string> Mes_InStockSend(InOutStorageDetailResultForMes pushData)
{
ApiResponse<string> res = null;
var funName = "Mes_InStockSend";
try
{
- MesRequest<List<InboundStockInfoToMes>> mesRequest = new MesRequest<List<InboundStockInfoToMes>>();
- mesRequest.Datas = pushData;
- mesRequest.TableName = "T_WMS_Inbound_Record";
- mesRequest.PrimaryKeys = "identifier";
-
- string paprm = JsonConvert.SerializeObject(mesRequest);
+ string paprm = JsonConvert.SerializeObject(pushData);
//Log4NetHelper.WriteInfoLog(_logType, $"{funName},鍑嗗鍙傛暟:{paprm}");
Guid guid = System.Guid.NewGuid();
- //妯℃嫙
- if (1 == 2)
- {//妯℃嫙鐜
- res = new ApiResponse<string>();
- res.Code = 500;
- res.Success = false;
- res.Message = "绯荤粺妯℃嫙瀹屾垚";
- }
- else
- {
- var resStr = mes_api.postContentForString("", paprm, guid);
- //Log4NetHelper.WriteInfoLog(_logType, $"{funName},缁撴灉杩斿洖:{resStr}");
- res = JsonConvert.DeserializeObject<ApiResponse<string>>(resStr);
- }
+ var resStr = mes_api.postContentForString("materialBack", paprm, guid);
+ //Log4NetHelper.WriteInfoLog(_logType, $"{funName},缁撴灉杩斿洖:{resStr}");
+ res = JsonConvert.DeserializeObject<ApiResponse<string>>(resStr);
+
//Log4NetHelper.WriteInfoLog(_logType, $"{funName},鍙傛暟:{paprm},杩斿洖:{JsonConvert.SerializeObject(res)}");
}
diff --git a/DEmon/iWareCc/SystemInteraction/mesDataTranfficForRealMes.cs b/DEmon/iWareCc/SystemInteraction/mesDataTranfficForRealMes.cs
deleted file mode 100644
index 5435a1b..0000000
--- a/DEmon/iWareCc/SystemInteraction/mesDataTranfficForRealMes.cs
+++ /dev/null
@@ -1,96 +0,0 @@
-锘縰sing iWareDataCore.ORM;
-using Newtonsoft.Json;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading;
-
-namespace iWareCc
-{
- /// <summary>
- /// MES鍑哄叆搴撴暟鎹紶杈�(鐪熸鐨凪ES)
- /// </summary>
- public class mesDataTranfficForRealMes
- {
- //public static LogType _logType = LogType.mesDataTranfficForRealMes;
- public static async void Handler()
- {
- while (true)
- {
- try
- {
- Thread.Sleep(5000);
-
- using (DbModelCore mod = new DbModelCore())
- {
- List<Wms_outInStockRecord_V2_Mes> sendMesData = mod.Wms_outInStockRecord_V2_Mes.Where(x => x.IsSendToMes == 0).OrderBy(x => x.ID).ToList();
-
- if (sendMesData.Count > 0)
- {
- //SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},瑕佹帹閫亄sendMesData.Count()}鏉�!";
- foreach (var itemTask in sendMesData)
- {
- try
- {
- ApiResponse<string> ret = null;
-
- //鑾峰彇淇℃伅鏄庣粏
- List<InboundStockInfoToMes> pushData = new List<InboundStockInfoToMes>();
- pushData.Add(new InboundStockInfoToMes()
- {
- BusinessFlag = itemTask.OutInFlagName,
-
- OccurrenceTime鈥� = itemTask.CreateTime?.ToString("yyyy-MM-dd HH:mm:ss"),
- Code = itemTask.Code,
- PlaceCode = itemTask.PlaceCode,
- SerialNo = itemTask.SerialNo,
- IssueProjectNo = itemTask.IssueProjectNo,
-
-
- });
-
-
- //SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},宸叉帹閫佺粨鏉燂紝杩斿洖:{JsonConvert.SerializeObject(ret)}";
- if (ret.Success)
- {
- itemTask.IsSendToMes = 1;//鎺ㄩ�佹垚鍔�
- itemTask.IsSendToMesStr = "鎴愬姛";
- }
- else
- {
- itemTask.IsSendToMes = 0;//鎺ㄩ�佸け璐�
- itemTask.IsSendToMesStr = "澶辫触";
- }
- itemTask.SendToMesTime = DateTime.Now;
- itemTask.MesRet = ret.Message;
- itemTask.SendToMesCount = (itemTask.SendToMesCount ?? 0) + 1;
- if (itemTask.IsSendToMes == 0 && itemTask.SendToMesCount > 100)
- {
- itemTask.IsSendToMes = 3;//琛ㄧず寮哄埗鎺ㄩ�佹垚鍔�
- itemTask.IsSendToMesStr = "寮哄埗鎴愬姛";
- }
- mod.SaveChanges();
-
- }
- catch (Exception ex)
- {
- //SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},鎺ㄩ�佺粰MES鏁版嵁寮傚父:" + JsonConvert.SerializeObject(ex);
- //Log4NetHelper.WriteErrorLog(_logType, //SystemWarningMsg.msg_mesDataTranfficForRealMes, ex);
- }
- }
- }
- else
- {
- //SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},娌℃湁鏁版嵁瑕佹帹閫佺粰MES!";
- }
- }
- }
- catch (Exception ex)
- {
- //SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},鏁版嵁瑕佹帹閫佺粰MES鍑虹幇寮傚父:" + ex.Message;
- //Log4NetHelper.WriteErrorLog(_logType, //SystemWarningMsg.msg_mesDataTranfficForRealMes, ex);
- }
- }
- }
- }
-}
diff --git a/DEmon/iWareCc/SystemInteraction/mesDataTranfficForRealMesThread.cs b/DEmon/iWareCc/SystemInteraction/mesDataTranfficForRealMesThread.cs
new file mode 100644
index 0000000..743fcba
--- /dev/null
+++ b/DEmon/iWareCc/SystemInteraction/mesDataTranfficForRealMesThread.cs
@@ -0,0 +1,92 @@
+锘縰sing iWareCc.Properties;
+using iWareCommon.Utils;
+using iWareDataCore.ORM;
+using iWareDataCore.TASK.EnumType;
+using iWareLog.LOG.EnumType;
+using iWareLog.ORM;
+using iWareLog.Report.Helper;
+using iWareLog.Report.Service;
+using Newtonsoft.Json;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace iWareCc
+{
+ /// <summary>
+ /// MES鍑哄叆搴撴暟鎹紶杈�(鐪熸鐨凪ES)-绾跨▼
+ /// </summary>
+ public class mesDataTranfficForRealMesThread
+ {
+ //public static LogType _logType = LogType.mesDataTranfficForRealMes;
+ public static async void Handler()
+ {
+ while (true)
+ {
+ try
+ {
+ Thread.Sleep(5000);
+
+ List<InOutStorageDetailResultForMes> sendMesData = InOutService.GetInstance().GetInOutStorageDetailListForMes();
+
+ if (sendMesData.Count > 0)
+ {
+ //SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},瑕佹帹閫亄sendMesData.Count()}鏉�!";
+ foreach (var itemTask in sendMesData)
+ {
+ using (DbModelLog mod = new DbModelLog())
+ {
+ try
+ {
+ ApiResponse<string> ret = null;
+ itemTask.Timestamp = DateTime.Now;//鍙戦�佹椂闂存埑瀹炴椂
+ ret = PushMesHandler.Mes_InStockSend(itemTask);
+
+ //鏌ユ壘瀵硅薄
+ var db_itemTask = mod.InOutStorageDetails.Where(x => x.id == itemTask.Id).FirstOrDefault();
+ //SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},宸叉帹閫佺粨鏉燂紝杩斿洖:{JsonConvert.SerializeObject(ret)}";
+ if (ret.Success)
+ {
+ db_itemTask.isSendToMes = (int)EIsSendToMes.鎺ㄩ�佹垚鍔�;//鎺ㄩ�佹垚鍔�
+ db_itemTask.isSendToMesStr = "鎴愬姛";
+ }
+ else
+ {
+ db_itemTask.isSendToMes = (int)EIsSendToMes.寰呮帹閫�;//寰呮帹閫�
+ db_itemTask.isSendToMesStr = "澶辫触";
+ }
+ db_itemTask.SendToMesTime = DateTime.Now;
+ db_itemTask.MesRet = ret.Message;
+ db_itemTask.SendToMesCount = (db_itemTask.SendToMesCount ?? 0) + 1;
+ if (db_itemTask.isSendToMes == (int)EIsSendToMes.寰呮帹閫� && db_itemTask.SendToMesCount > 100)
+ {
+ db_itemTask.isSendToMes = (int)EIsSendToMes.寮哄埗瀹屾垚;//琛ㄧず寮哄埗鎺ㄩ�佹垚鍔�
+ db_itemTask.isSendToMesStr = "寮哄埗鎴愬姛";
+ }
+ mod.SaveChanges();
+
+ }
+ catch (Exception ex)
+ {
+ LogTextHelper.WriteLine(Resources.LogDir + @"/MES鍑哄叆搴撴暟鎹紶杈�/" + "mesDataTranfficForRealMesThread", "MES鍑哄叆搴撴暟鎹紶杈撳紓甯�:{0}", JsonConvert.SerializeObject(ex));
+ //LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "Handle", ex.Message);
+ //SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},鎺ㄩ�佺粰MES鏁版嵁寮傚父:" + JsonConvert.SerializeObject(ex);
+ //Log4NetHelper.WriteErrorLog(_logType, //SystemWarningMsg.msg_mesDataTranfficForRealMes, ex);
+ }
+ }
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ LogTextHelper.WriteLine(Resources.LogDir + @"/MES鍑哄叆搴撴暟鎹紶杈�/" + "mesDataTranfficForRealMesThread", "(澶栭儴)MES鍑哄叆搴撴暟鎹紶杈撳紓甯�:{0}", JsonConvert.SerializeObject(ex));
+ //SystemWarningMsg.msg_mesDataTranfficForRealMes = $"{MyExtend.MsgTimeStr()},鏁版嵁瑕佹帹閫佺粰MES鍑虹幇寮傚父:" + ex.Message;
+ //Log4NetHelper.WriteErrorLog(_logType, //SystemWarningMsg.msg_mesDataTranfficForRealMes, ex);
+ }
+ }
+ }
+ }
+}
diff --git a/DEmon/iWareCc/iWareCc.csproj b/DEmon/iWareCc/iWareCc.csproj
index 62393d7..b44af1a 100644
--- a/DEmon/iWareCc/iWareCc.csproj
+++ b/DEmon/iWareCc/iWareCc.csproj
@@ -200,7 +200,7 @@
<Compile Include="SystemInteraction\dto\InboundStockInfoToMes.cs" />
<Compile Include="SystemInteraction\dto\MesRequest.cs" />
<Compile Include="SystemInteraction\HTTPService.cs" />
- <Compile Include="SystemInteraction\mesDataTranfficForRealMes.cs" />
+ <Compile Include="SystemInteraction\mesDataTranfficForRealMesThread.cs" />
<Compile Include="SystemInteraction\PushMesHandler.cs" />
<Compile Include="Task\Service\TaskService.cs" />
<Compile Include="Util\OPCHelper.cs" />
diff --git a/DEmon/iWareCommon/Utils/ConfigHelper.cs b/DEmon/iWareCommon/Utils/ConfigHelper.cs
new file mode 100644
index 0000000..609a02a
--- /dev/null
+++ b/DEmon/iWareCommon/Utils/ConfigHelper.cs
@@ -0,0 +1,106 @@
+锘縰sing System;
+using System.Configuration;
+
+namespace iWareCommon.Utils
+{
+ /// <summary>
+ /// web.config鎿嶄綔绫�
+ /// Copyright (C) TBEA.WMS
+ /// </summary>
+ public sealed class ConfigHelper
+ {
+ /// <summary>
+ /// 寰楀埌AppSettings涓殑閰嶇疆瀛楃涓蹭俊鎭�
+ /// </summary>
+ /// <param name="key"></param>
+ /// <returns></returns>
+ public static string GetConfigString(string key)
+ {
+ string CacheKey = "AppSettings-" + key;
+ object objModel = DataCache.GetCache(CacheKey);
+ if (objModel == null)
+ {
+ try
+ {
+ objModel = ConfigurationManager.AppSettings[key];
+ if (objModel != null)
+ {
+ DataCache.SetCache(CacheKey, objModel, DateTime.Now.AddMinutes(180), TimeSpan.Zero);
+ }
+ }
+ catch
+ { }
+ }
+ return objModel.ToString();
+ }
+
+ /// <summary>
+ /// 寰楀埌AppSettings涓殑閰嶇疆Bool淇℃伅
+ /// </summary>
+ /// <param name="key"></param>
+ /// <returns></returns>
+ public static bool GetConfigBool(string key)
+ {
+ bool result = false;
+ string cfgVal = GetConfigString(key);
+ if(null != cfgVal && string.Empty != cfgVal)
+ {
+ try
+ {
+ result = bool.Parse(cfgVal);
+ }
+ catch(FormatException)
+ {
+ // Ignore format exceptions.
+ }
+ }
+ return result;
+ }
+ /// <summary>
+ /// 寰楀埌AppSettings涓殑閰嶇疆Decimal淇℃伅
+ /// </summary>
+ /// <param name="key"></param>
+ /// <returns></returns>
+ public static decimal GetConfigDecimal(string key)
+ {
+ decimal result = 0;
+ string cfgVal = GetConfigString(key);
+ if(null != cfgVal && string.Empty != cfgVal)
+ {
+ try
+ {
+ result = decimal.Parse(cfgVal);
+ }
+ catch(FormatException)
+ {
+ // Ignore format exceptions.
+ }
+ }
+
+ return result;
+ }
+ /// <summary>
+ /// 寰楀埌AppSettings涓殑閰嶇疆int淇℃伅
+ /// </summary>
+ /// <param name="key"></param>
+ /// <returns></returns>
+ public static int GetConfigInt(string key)
+ {
+ int result = 0;
+ string cfgVal = GetConfigString(key);
+ if(null != cfgVal && string.Empty != cfgVal)
+ {
+ try
+ {
+ result = int.Parse(cfgVal);
+ }
+ catch(FormatException)
+ {
+ // Ignore format exceptions.
+ }
+ }
+
+ return result;
+ }
+ }
+}
diff --git a/DEmon/iWareCommon/Utils/DataCache.cs b/DEmon/iWareCommon/Utils/DataCache.cs
new file mode 100644
index 0000000..e5a1d92
--- /dev/null
+++ b/DEmon/iWareCommon/Utils/DataCache.cs
@@ -0,0 +1,45 @@
+锘縰sing System;
+using System.Web;
+
+namespace iWareCommon.Utils
+{
+ /// <summary>
+ /// 缂撳瓨鐩稿叧鐨勬搷浣滅被
+ /// Copyright (C) TBEA.WMS
+ /// </summary>
+ public class DataCache
+ {
+ /// <summary>
+ /// 鑾峰彇褰撳墠搴旂敤绋嬪簭鎸囧畾CacheKey鐨凜ache鍊�
+ /// </summary>
+ /// <param name="CacheKey"></param>
+ /// <returns></returns>
+ public static object GetCache(string CacheKey)
+ {
+ System.Web.Caching.Cache objCache = HttpRuntime.Cache;
+ return objCache[CacheKey];
+ }
+
+ /// <summary>
+ /// 璁剧疆褰撳墠搴旂敤绋嬪簭鎸囧畾CacheKey鐨凜ache鍊�
+ /// </summary>
+ /// <param name="CacheKey"></param>
+ /// <param name="objObject"></param>
+ public static void SetCache(string CacheKey, object objObject)
+ {
+ System.Web.Caching.Cache objCache = HttpRuntime.Cache;
+ objCache.Insert(CacheKey, objObject);
+ }
+
+ /// <summary>
+ /// 璁剧疆褰撳墠搴旂敤绋嬪簭鎸囧畾CacheKey鐨凜ache鍊�
+ /// </summary>
+ /// <param name="CacheKey"></param>
+ /// <param name="objObject"></param>
+ public static void SetCache(string CacheKey, object objObject, DateTime absoluteExpiration,TimeSpan slidingExpiration )
+ {
+ System.Web.Caching.Cache objCache = HttpRuntime.Cache;
+ objCache.Insert(CacheKey, objObject,null,absoluteExpiration,slidingExpiration);
+ }
+ }
+}
diff --git a/DEmon/iWareCommon/iWareCommon.csproj b/DEmon/iWareCommon/iWareCommon.csproj
index ac80c0d..d97c0df 100644
--- a/DEmon/iWareCommon/iWareCommon.csproj
+++ b/DEmon/iWareCommon/iWareCommon.csproj
@@ -61,6 +61,7 @@
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.DataAnnotations" />
+ <Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Web" />
@@ -106,6 +107,8 @@
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Utils\Base64Helper.cs" />
+ <Compile Include="Utils\ConfigHelper.cs" />
+ <Compile Include="Utils\DataCache.cs" />
<Compile Include="Utils\DESHelper.cs" />
<Compile Include="Utils\EntityPropHelper.cs" />
<Compile Include="Utils\FileHelper.cs" />
diff --git a/DEmon/iWareDataCore/BASE/Service/PlaceMaterialViewService.cs b/DEmon/iWareDataCore/BASE/Service/PlaceMaterialViewService.cs
index 729152b..5eb4d49 100644
--- a/DEmon/iWareDataCore/BASE/Service/PlaceMaterialViewService.cs
+++ b/DEmon/iWareDataCore/BASE/Service/PlaceMaterialViewService.cs
@@ -87,7 +87,8 @@
{
string sql = @"SELECT A.id, ISNULL(C.createtime,'1990-01-01') as createtime, ISNULL(C.updatetime,'1990-01-01') as updatetime, A.code AS placecode, A.status,
A.islock, A.isexecute, B.name as placetypename, B.remark as placetyperemark, D.name, D.code AS materialcode, D.description, D.typeremark, D.typename,
-ISNULL(D.status,0) AS materialstatus, A.id as placeid, ISNULL(C.materialid,0) as materialid, D.remark, A.layer, A.col, A.row, A.typeid as placetypeid
+ISNULL(D.status,0) AS materialstatus, A.id as placeid, ISNULL(C.materialid,0) as materialid, D.remark, A.layer, A.col, A.row, A.typeid as placetypeid,
+D.thick, D.wide, D.length,D.IssueProjectNo,D.ProcurementProjectNo,D.SerialNo,D.ClassificationSociety,D.CuttingType,D.Version
FROM dbo.BASEPlace AS A LEFT OUTER JOIN
dbo.BASEPlaceType AS B ON A.typeid = B.id LEFT OUTER JOIN
dbo.BASEPlaceMaterial as C on A.id=C.placeid LEFT OUTER JOIN
diff --git a/DEmon/iWareDataCore/TASK/EnumType/EIsSendToMes.cs b/DEmon/iWareDataCore/TASK/EnumType/EIsSendToMes.cs
new file mode 100644
index 0000000..7168a2c
--- /dev/null
+++ b/DEmon/iWareDataCore/TASK/EnumType/EIsSendToMes.cs
@@ -0,0 +1,16 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace iWareDataCore.TASK.EnumType
+{
+ public enum EIsSendToMes
+ {
+ 寰呮帹閫� = 1,
+ 鎺ㄩ�佹垚鍔� = 2,
+ 鎺ㄩ�佸け璐� = 3,
+ 寮哄埗瀹屾垚 = 4
+ }
+}
diff --git a/DEmon/iWareDataCore/iWareDataCore.csproj b/DEmon/iWareDataCore/iWareDataCore.csproj
index a8e0b5b..e49d5c2 100644
--- a/DEmon/iWareDataCore/iWareDataCore.csproj
+++ b/DEmon/iWareDataCore/iWareDataCore.csproj
@@ -248,6 +248,7 @@
<Compile Include="TASK\EnumType\EMainTaskCheck.cs" />
<Compile Include="TASK\EnumType\EMainTaskPriority.cs" />
<Compile Include="TASK\EnumType\EMainTaskStatus.cs" />
+ <Compile Include="TASK\EnumType\EIsSendToMes.cs" />
<Compile Include="TASK\EnumType\EMainTaskType.cs" />
<Compile Include="TASK\EnumType\EInstorgNextNode.cs" />
<Compile Include="TASK\EnumType\EPartTaskStatus.cs" />
diff --git a/DEmon/iWareLog/ORM/InOutStorageDetail.cs b/DEmon/iWareLog/ORM/InOutStorageDetail.cs
index ea93482..0259c66 100644
--- a/DEmon/iWareLog/ORM/InOutStorageDetail.cs
+++ b/DEmon/iWareLog/ORM/InOutStorageDetail.cs
@@ -26,6 +26,9 @@
public DateTime? updatetime { get; set; }
+ /// <summary>
+ /// 任务类型,枚举 EMainTaskType
+ /// </summary>
public int type { get; set; }
public int? equipid { get; set; }
@@ -37,5 +40,17 @@
[StringLength(50)]
public string materialcode { get; set; }
+
+
+ public int? isSendToMes { get; set; }
+
+ public string isSendToMesStr { get; set; }
+
+ public int? SendToMesCount { get; set; }
+
+ public DateTime? SendToMesTime { get; set; }
+
+ public string MesRet { get; set; }
+
}
}
diff --git a/DEmon/iWareLog/Report/Helper/InOutStorageDetailResultForMes.cs b/DEmon/iWareLog/Report/Helper/InOutStorageDetailResultForMes.cs
new file mode 100644
index 0000000..2aab734
--- /dev/null
+++ b/DEmon/iWareLog/Report/Helper/InOutStorageDetailResultForMes.cs
@@ -0,0 +1,53 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace iWareLog.Report.Helper
+{
+ // 寤鸿鏀惧湪 Models 鎴� DTOs 鏂囦欢澶逛笅
+ public class InOutStorageDetailResultForMes
+ {
+
+ /// <summary>
+ /// 琛↖nOutStorageDetail鐨処D
+ /// </summary>
+ public int Id { get; set; }
+
+ /// <summary>
+ /// 鍨嬫潗鍞竴缂栫爜
+ /// </summary>
+ public string Code { get; set; }
+
+ /// <summary>
+ /// 鑸瑰彿/鍙戞斁宸ョ▼鍙�
+ /// </summary>
+ public string IssueProjectNo { get; set; }
+
+ /// <summary>
+ /// 鍒嗘鍙�
+ /// </summary>
+ public string SerialNo { get; set; }
+
+ /// <summary>
+ /// 涓氬姟鏍囪瘑锛堟殏涓� A.type锛�
+ /// </summary>
+ public int? BusinessFlag { get; set; }
+
+ /// <summary>
+ /// 搴撲綅缂栫爜锛堟殏涓� A.toplacecode锛岀洰鏍囧簱浣嶏級
+ /// </summary>
+ public string PlaceCode { get; set; }
+
+ /// <summary>
+ /// 鍙戦�佹椂闂存埑锛堟殏涓� A.createtime锛�
+ /// </summary>
+ public DateTime? Timestamp { get; set; }
+
+ /// <summary>
+ /// 鍙戠敓鏃堕棿锛堟殏涓� Timestamp 涓�鑷达紝鎴栧彲鏇挎崲涓哄叾瀹冨瓧娈碉級
+ /// </summary>
+ public DateTime? OccurrenceTime { get; set; }
+ }
+}
diff --git a/DEmon/iWareLog/Report/Service/InOutService.cs b/DEmon/iWareLog/Report/Service/InOutService.cs
index ee41eb4..36635d0 100644
--- a/DEmon/iWareLog/Report/Service/InOutService.cs
+++ b/DEmon/iWareLog/Report/Service/InOutService.cs
@@ -51,7 +51,7 @@
{
string sql = @"select count(B.typename)quantity,B.typename materialcode from InOutStorageDetail A left join WGQ_WB19011_CORE.[dbo].[BASEMaterialView] B on A.materialid=B.id
where A.type=@p0 and A.updatetime>=@p1 and A.updatetime<@p2 group by B.typename";
- List<InOutHelper> data = context.Database.SqlQuery<InOutHelper>(sql,type, start, end).ToList();
+ List<InOutHelper> data = context.Database.SqlQuery<InOutHelper>(sql, type, start, end).ToList();
return data;
}
catch (Exception ex)
@@ -62,6 +62,46 @@
}
}
-
+
+ /// <summary>
+ /// 鏌ヨ鍑哄叆搴撴槑缁嗗強鐗╂枡淇℃伅锛堣仈鏌� InOutStorageDetail 鍜� BASEMaterialView锛�
+ /// </summary>
+ /// <returns>杩斿洖鍖呭惈鍨嬫潗缂栫爜銆佽埞鍙枫�佸垎娈靛彿銆佷笟鍔℃爣璇嗐�佸簱浣嶃�佹椂闂寸瓑淇℃伅鐨勫垪琛�</returns>
+ public List<InOutStorageDetailResultForMes> GetInOutStorageDetailListForMes()
+ {
+ using (DbModelLog context = new DbModelLog())
+ {
+ try
+ {
+ string sql = @"
+ SELECT
+ A.id AS Id,
+ B.code AS Code,
+ B.issueprojectno AS IssueProjectNo,
+ B.serialno AS SerialNo,
+ A.type AS BusinessFlag,
+ A.toplacecode AS PlaceCode,
+ A.createtime AS Timestamp,
+ A.createtime AS OccurrenceTime
+ FROM
+ InOutStorageDetail A
+ INNER JOIN
+ WGQ_WB19011_CORE.[dbo].[BASEMaterialView] B
+ ON A.materialid = B.id And A.isSendToMes=1 ";
+
+ // 鎵ц SQL 鏌ヨ锛屽苟鏄犲皠鍒拌嚜瀹氫箟绫� InOutStorageDetailResult
+ var data = context.Database.SqlQuery<InOutStorageDetailResultForMes>(sql).ToList();
+
+ return data;
+ }
+ catch (Exception ex)
+ {
+ // 璁板綍寮傚父鏃ュ織锛堝拰浣犲師鏈夋柟娉曚繚鎸佷竴鑷达級
+ LogTextHelper.WriteLine("InOutService", "GetInOutStorageDetailList", ex.ToString());
+ return null; // 鎴栬�呰繑鍥� new List<InOutStorageDetailResult>()锛屾牴鎹綘鐨勪笟鍔¢渶姹�
+ }
+ }
+ }
+
}
}
diff --git a/DEmon/iWareLog/iWareLog.csproj b/DEmon/iWareLog/iWareLog.csproj
index 583399c..24a74c1 100644
--- a/DEmon/iWareLog/iWareLog.csproj
+++ b/DEmon/iWareLog/iWareLog.csproj
@@ -93,6 +93,7 @@
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Report\Helper\AlertHelper.cs" />
+ <Compile Include="Report\Helper\InOutStorageDetailResultForMes.cs" />
<Compile Include="Report\Helper\InOutHelper.cs" />
<Compile Include="Report\Service\AlertService.cs" />
<Compile Include="Report\Service\InOutService.cs" />
--
Gitblit v1.9.3