¶Ô±ÈÐÂÎļþ |
| | |
| | | use WGQ_WB19011_CORE |
| | | go |
| | | |
| | | /*==============================================================*/ |
| | | /* Table: Wms_outInStockRecord_V2_Mes */ |
| | | /* Description: åºå
¥åºè®°å½(为æ¨éMES) */ |
| | | /* Author:shaocx */ |
| | | /* CreateTime:2025-09-17 */ |
| | | /*==============================================================*/ |
| | | IF NOT EXISTS( SELECT 1 FROM SYSOBJECTS WHERE ID = OBJECT_ID('Wms_outInStockRecord_V2_Mes') AND TYPE = 'U') |
| | | create table Wms_outInStockRecord_V2_Mes( |
| | | ID int IDENTITY(1,1) NOT NULL, -- ä¸»é® |
| | | |
| | | OutInFlagName VARCHAR(10) ,--- åºå
¥åºç±»å 1 å
¥åº 2 åºåº |
| | | |
| | | ListNo NVARCHAR(128) NULL , -- åºå
¥åå· |
| | | Code NVARCHAR(128) NULL , -- åæå¯ä¸ç¼ç |
| | | Name NVARCHAR(128) NULL , -- ç©æåç§° |
| | | |
| | | SerialNo NVARCHAR(128) NULL , -- åæ®µå· |
| | | IssueProjectNo NVARCHAR(128) NULL , -- 忾工ç¨å· |
| | | |
| | | PlaceCode VARCHAR(100) NULL , -- åºä½ç¼ç |
| | | OccurrenceTime datetime NULL , -- åçæ¶é´ |
| | | |
| | | |
| | | IsSendToMes int NULL , -- æ¨éç¶æ |
| | | IsSendToMesStr VARCHAR(100) NULL , -- æ¨éç¶æ |
| | | SendToMesCount int NULL , -- æ¨ç»MESæ¬¡æ° |
| | | SendToMesTime datetime null, -- æ¨ç»MESæ¶é´ |
| | | MesRet NVARCHAR(128) NULL , -- MESè¿åç»æ |
| | | |
| | | |
| | | Remark NVARCHAR(128) NULL , -- 夿³¨ |
| | | Creator varchar(128) null,-- å建人 |
| | | CreateTime datetime null, -- å建æ¶é´ |
| | | LastModifier varchar(128) null,-- ä¿®æ¹äºº |
| | | LastModifyTime datetime null -- ä¿®æ¹æ¶é´ |
| | | |
| | | constraint PK_Wms_outInStockRecord_V2_Mes primary key (ID) |
| | | ) |
| | | GO |
| | | |
| | |
| | | using iWareDataCore.BASE.Entity; |
| | | using AutoMapper; |
| | | using iWareCommon.Common.Entity; |
| | | using iWareCommon.Utils; |
| | | using iWareDataCore.BASE.Entity; |
| | | using iWareDataCore.BASE.Service; |
| | | using Newtonsoft.Json; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Threading; |
| | | using System.Web.Mvc; |
| | | using WebWIPAPI.Models; |
| | | using WebWIPAPI.Properties; |
| | | using WebWIPAPI.Utils; |
| | | |
| | | using LogTextHelper = WebWIPAPI.Utils.LogTextHelper; |
| | | |
| | | namespace WebWIPAPI.Controllers |
| | | { |
| | |
| | | { |
| | | |
| | | /// <summary> |
| | | /// 忥ç«åºçç©æä¿¡æ¯ |
| | | /// WCS>>WIP:æ¯å¤©å®æ¶WCSæ¨éç«åºéçç©æä¿¡æ¯ |
| | | /// æä¾åºåä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="sysCode"></param> |
| | | /// <param name="wareHouseInfo"></param> |
| | | /// <param name="processCardNumber"></param> |
| | | /// <param name="wareHouseId"></param> |
| | | /// <param name="timestamp"></param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public ActionResult syncMaterialInfo() |
| | | { |
| | | var msg = ""; |
| | | var datalist = PlaceMaterialViewService.GetInstance().GetPlacePreview(out msg); |
| | | |
| | | var responseMessage = new ApiResponse<List<PlaceMaterialViewEntity>>() |
| | | var responseMessage = new ApiResponse<List<PlaceMaterialViewEntity>>(); |
| | | try |
| | | { |
| | | Code = 200, |
| | | Success = true, |
| | | Message = "æå", |
| | | Data = datalist, |
| | | }; |
| | | |
| | | var msg = ""; |
| | | var datalist = PlaceMaterialViewService.GetInstance().GetPlacePreview(out msg); |
| | | if (!string.IsNullOrEmpty(msg)) |
| | | { |
| | | responseMessage = new ApiResponse<List<PlaceMaterialViewEntity>>() |
| | | { |
| | | Code = 500, |
| | | Success = false, |
| | | Message = "è·åå¼å¸¸:" + msg, |
| | | Data = null, |
| | | }; |
| | | } |
| | | else |
| | | { |
| | | responseMessage = new ApiResponse<List<PlaceMaterialViewEntity>>() |
| | | { |
| | | Code = 200, |
| | | Success = true, |
| | | Message = "æå", |
| | | Data = datalist, |
| | | }; |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | responseMessage = new ApiResponse<List<PlaceMaterialViewEntity>>() |
| | | { |
| | | Code = 500, |
| | | Success = false, |
| | | Message = "å¼å¸¸:" + ex.Message, |
| | | Data = null, |
| | | }; |
| | | } |
| | | //å°å¯¹è±¡è½¬å为jsonæ ¼å¼ |
| | | var responseStr = JsonConvert.SerializeObject(responseMessage); |
| | | LogTextHelper.WriteLine(Resources.LogDir, "WIPAPI:{0},{1}, {2}", "syncMaterialInfo", "请æ±åæ°ï¼" + "", "ååºä¿¡æ¯;" + responseStr); |
| | | return Json(responseMessage, JsonRequestBehavior.DenyGet); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导å
¥å
¥åºå |
| | | /// </summary> |
| | | /// <param name="inputmaterials"></param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public ActionResult importInOrder(List<MaterialViewForMesEntity> importMaterials) |
| | | { |
| | | var responseMessage = new ApiResponse<string>(); |
| | | var msg = ""; |
| | | |
| | | try |
| | | { |
| | | #region éªè¯ |
| | | if (importMaterials?.Count() == 0) |
| | | { |
| | | responseMessage = new ApiResponse<string>() |
| | | { |
| | | Code = 500, |
| | | Success = false, |
| | | Message = "æ°æ®æ¡æ°ä¸º0", |
| | | Data = null, |
| | | }; |
| | | return ApiResponseHelper.ReturnApiResponse(responseMessage, "importInOrder", ""); |
| | | } |
| | | if (importMaterials.Select(x => x.ListNo).Distinct().Count() != 1) |
| | | { |
| | | responseMessage = new ApiResponse<string>() |
| | | { |
| | | Code = 500, |
| | | Success = false, |
| | | Message = "æ¬æ¬¡è¯·æ±åå·å¿
须为åä¸å¼", |
| | | Data = null, |
| | | }; |
| | | return ApiResponseHelper.ReturnApiResponse(responseMessage, "importInOrder", ""); |
| | | } |
| | | #endregion |
| | | |
| | | #region ä¸å¡å¤ç |
| | | |
| | | //ç¬¬ä¸æ¥ï¼å
æ°å¢å°ç©æåºç¡è¡¨ |
| | | List<MaterialViewEntity> materials = new List<MaterialViewEntity>(); |
| | | |
| | | materials = ClassHelper.RotationMapping_Json<List<MaterialViewEntity>, List<MaterialViewForMesEntity>>(importMaterials); |
| | | |
| | | |
| | | MaterialViewService.GetInstance().ImportExcelFromMes(materials, out msg); |
| | | if (!string.IsNullOrEmpty(msg)) |
| | | { |
| | | responseMessage = new ApiResponse<string>() |
| | | { |
| | | Code = 500, |
| | | Success = false, |
| | | Message = "æ°å¢å°ç©æåºç¡è¡¨å¼å¸¸:" + msg, |
| | | Data = null, |
| | | }; |
| | | } |
| | | else |
| | | { |
| | | Thread.Sleep(400);//注æï¼ä¼ç 毫ç§ï¼ç¨äºæ°æ®åºäºå¡æäº¤ |
| | | |
| | | string typeName = "å
¥åº"; |
| | | List<InputMaterialEntity> inputmaterials = new List<InputMaterialEntity>(); |
| | | inputmaterials = ClassHelper.RotationMapping_Json<List<InputMaterialEntity>, List<MaterialViewForMesEntity>>(importMaterials); |
| | | handler_importOutOrder(typeName, inputmaterials, out msg); |
| | | |
| | | #endregion |
| | | |
| | | if (!string.IsNullOrEmpty(msg)) |
| | | { |
| | | responseMessage = new ApiResponse<string>() |
| | | { |
| | | Code = 500, |
| | | Success = false, |
| | | Message = "çæå
¥åºä»»å¡å¼å¸¸:" + msg, |
| | | Data = null, |
| | | }; |
| | | } |
| | | else |
| | | { |
| | | responseMessage = new ApiResponse<string>() |
| | | { |
| | | Code = 200, |
| | | Success = true, |
| | | Message = "æå", |
| | | Data = null, |
| | | }; |
| | | } |
| | | } |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | responseMessage = new ApiResponse<string>() |
| | | { |
| | | Code = 500, |
| | | Success = false, |
| | | Message = "å¼å¸¸:" + ex.Message, |
| | | Data = null, |
| | | }; |
| | | } |
| | | |
| | | return ApiResponseHelper.ReturnApiResponse(responseMessage, "importInOrder", ""); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 导å
¥åºåºå |
| | | /// </summary> |
| | | /// <param name="inputmaterials"></param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public ActionResult importOutOrder(List<InputMaterialEntity> inputmaterials) |
| | | { |
| | | var responseMessage = new ApiResponse<string>(); |
| | | try |
| | | { |
| | | var msg = ""; |
| | | |
| | | #region éªè¯ |
| | | if (inputmaterials?.Count() == 0) |
| | | { |
| | | responseMessage = new ApiResponse<string>() |
| | | { |
| | | Code = 500, |
| | | Success = false, |
| | | Message = "æ°æ®æ¡æ°ä¸º0", |
| | | Data = null, |
| | | }; |
| | | return ApiResponseHelper.ReturnApiResponse(responseMessage, "importOutOrder", ""); |
| | | } |
| | | if (inputmaterials.Select(x => x.ListNo).Distinct().Count() != 1) |
| | | { |
| | | responseMessage = new ApiResponse<string>() |
| | | { |
| | | Code = 500, |
| | | Success = false, |
| | | Message = "æ¬æ¬¡è¯·æ±åå·å¿
须为åä¸å¼", |
| | | Data = null, |
| | | }; |
| | | return ApiResponseHelper.ReturnApiResponse(responseMessage, "importOutOrder", ""); |
| | | } |
| | | #endregion |
| | | |
| | | #region ä¸å¡å¤ç |
| | | |
| | | string typeName = "åºåº"; |
| | | handler_importOutOrder(typeName, inputmaterials, out msg); |
| | | |
| | | #endregion |
| | | |
| | | if (!string.IsNullOrEmpty(msg)) |
| | | { |
| | | responseMessage = new ApiResponse<string>() |
| | | { |
| | | Code = 500, |
| | | Success = false, |
| | | Message = "çæåºåºä»»å¡å¼å¸¸:" + msg, |
| | | Data = null, |
| | | }; |
| | | } |
| | | else |
| | | { |
| | | responseMessage = new ApiResponse<string>() |
| | | { |
| | | Code = 200, |
| | | Success = true, |
| | | Message = "æå", |
| | | Data = null, |
| | | }; |
| | | } |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | responseMessage = new ApiResponse<string>() |
| | | { |
| | | Code = 500, |
| | | Success = false, |
| | | Message = "å¼å¸¸:" + ex.Message, |
| | | Data = null, |
| | | }; |
| | | } |
| | | |
| | | return ApiResponseHelper.ReturnApiResponse(responseMessage, "importOutOrder", ""); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// å
Œ
±å¯¼å
¥ å
¥åºåæåºåºå |
| | | /// </summary> |
| | | /// <param name="typeName"></param> |
| | | /// <param name="inputmaterials"></param> |
| | | /// <param name="msg"></param> |
| | | private void handler_importOutOrder(string typeName, List<InputMaterialEntity> inputmaterials, out string msg) |
| | | { |
| | | try |
| | | { |
| | | #region ä¸å¡å¤ç |
| | | |
| | | msg = ""; |
| | | //var inputmaterials = InputMaterialService.GetInstance().QueryByParam(new QueryParam { Filter = new Dictionary<string, object> { { "Status", "æªçæ" } } }, out msg); |
| | | if (inputmaterials != null && inputmaterials.Count > 0) |
| | | { |
| | | var placeMaterial = PlaceMaterialViewService.GetInstance().QueryByParam(new QueryParam { }, out msg); |
| | | var inoutdetails = InOutListDetailViewService.GetInstance().QueryByParam(new QueryParam { }, out msg); |
| | | List<string> codes = new List<string>(); |
| | | inputmaterials.ForEach(x => codes.Add(x.Code)); |
| | | List<int> ids = new List<int>(); |
| | | var materials = InputMaterialService.GetInstance().GetIds(codes); |
| | | List<InOutListDetailEntity> detail = new List<InOutListDetailEntity>(); |
| | | for (int i = 0; i < materials.Count; i++) |
| | | { |
| | | if (typeName == "å
¥åº") |
| | | { |
| | | |
| | | if (placeMaterial.Select(x => x.MaterialId).Contains(materials[i].id)) |
| | | { |
| | | msg = materials[i].code + "å·²åå¨ç«åºä¸ï¼ä¸è½æ·»å å°å
¥åºåæç»ä¸ï¼"; |
| | | break; |
| | | } |
| | | if (inoutdetails.Select(x => x.MaterialId).Contains(materials[i].id)) |
| | | { |
| | | msg = materials[i].code + "å·²åå¨ä¹åçå
¥åºåæç»ä¸ï¼ä¸è½æ·»å å°å½åå
¥åºåæç»ä¸ï¼"; |
| | | break; |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | if (!placeMaterial.Select(x => x.MaterialId).Contains(materials[i].id)) |
| | | { |
| | | msg = materials[i].code + "ä¸å¨ç«åºä¸ï¼ä¸è½æ·»å å°åºåºåæç»ä¸ï¼"; |
| | | break; |
| | | } |
| | | if (inoutdetails.Select(x => x.MaterialId).Contains(materials[i].id)) |
| | | { |
| | | var inoutdeta = inoutdetails.FirstOrDefault(x => x.MaterialId == materials[i].id); |
| | | if (inoutdeta.TypeName == "åºåº") |
| | | { |
| | | msg = materials[i].name + "å·²åå¨ä¹åçåºåºåæç»ä¸ï¼ä¸è½æ·»å å°å½ååºåºåæç»ä¸ï¼"; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | InOutListDetailEntity inoutdetail = new InOutListDetailEntity() |
| | | { |
| | | MaterialId = materials[i].id, |
| | | IsFinish = 0 |
| | | }; |
| | | detail.Add(inoutdetail); |
| | | } |
| | | if (!string.IsNullOrEmpty(msg)) |
| | | { |
| | | return; |
| | | } |
| | | InOutListService.GetInstance().CreateListAndDetial( |
| | | new InOutListEntity |
| | | { |
| | | ListNo = inputmaterials.First().ListNo, |
| | | CreateTime = DateTime.Now, |
| | | TypeName = typeName, |
| | | Status = 0, |
| | | Remark = "", |
| | | InOutListDetail = detail |
| | | }, out msg); |
| | | } |
| | | else |
| | | { |
| | | msg = ("请å
ç¡®ä¿åºå
¥åºåç©ææç»ä¸ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | |
| | | #endregion |
| | | } |
| | | catch (Exception) |
| | | { |
| | | throw; |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | |
| | | using System; |
| | | using AutoMapper; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Web; |
| | |
| | | WebApiConfig.Register(GlobalConfiguration.Configuration); |
| | | FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); |
| | | RouteConfig.RegisterRoutes(RouteTable.Routes); |
| | | |
| | | |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Newtonsoft.Json; |
| | | using System.Web.Mvc; |
| | | using WebWIPAPI.Models; |
| | | using WebWIPAPI.Properties; |
| | | |
| | | |
| | | namespace WebWIPAPI.Utils |
| | | { |
| | | /// <summary> |
| | | /// APIååºå¸®å©ç±» |
| | | /// </summary> |
| | | public class ApiResponseHelper |
| | | { |
| | | /// <summary> |
| | | /// å°æå®çæ³å API ååºå¯¹è±¡åºåå为 JSON æ ¼å¼æ¥å¿å¹¶è®°å½ï¼ç¶åè¿åä¸ä¸ªç¦æ¢ GET 请æ±ç JSON ç»æã |
| | | /// </summary> |
| | | /// <typeparam name="T">ApiResponse æ³åç±»ååæ°ï¼è¡¨ç¤ºååºæ°æ®çç±»å</typeparam> |
| | | /// <param name="response">è¦è¿åç API ååºå¯¹è±¡ï¼å
å«ç¶æç ãæ¶æ¯åæ°æ®çä¿¡æ¯</param> |
| | | /// <param name="actionName">å½å API 对åºç Action åç§°ï¼ç¨äºæ¥å¿è®°å½ï¼æ è¯è¯·æ±æ¥æº</param> |
| | | /// <param name="requestParams">请æ±åæ°çæè¿°ä¿¡æ¯ï¼å¯ä»¥æ¯åæ°å¯¹è±¡ç JSON å符串æç®è¦æè¿°ï¼é»è®¤ä¸ºç©ºå符串</param> |
| | | /// <returns> |
| | | /// è¿åä¸ä¸ªé
ç½®ä¸ºç¦æ¢ GET 请æ±ç <see cref="JsonResult"/>ï¼ |
| | | /// å
¶ä¸å
å«ä¼ å
¥ç <paramref name="response"/> æ°æ®ï¼ |
| | | /// 并卿¥å¿ä¸è®°å½ Action åç§°ã请æ±åæ°ä¸ååºä¿¡æ¯ã |
| | | /// </returns> |
| | | public static JsonResult ReturnApiResponse<T>(ApiResponse<T> response, string actionName, string requestParams = "") |
| | | { |
| | | var responseStr = JsonConvert.SerializeObject(response); |
| | | LogTextHelper.WriteLine(Resources.LogDir, "WIPAPI:{0},{1}, {2}", actionName, "请æ±åæ°ï¼" + requestParams, "ååºä¿¡æ¯ï¼" + responseStr); |
| | | return new JsonResult |
| | | { |
| | | Data = response, |
| | | JsonRequestBehavior = JsonRequestBehavior.DenyGet |
| | | }; |
| | | } |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Newtonsoft.Json; |
| | | |
| | | namespace WebWIPAPI.Utils |
| | | { |
| | | public class ClassHelper |
| | | { |
| | | ///// <summary> |
| | | ///// å®ä½äºè½¬ |
| | | ///// </summary> |
| | | ///// <typeparam name="T">æ°è½¬æ¢çå®ä½</typeparam> |
| | | ///// <typeparam name="S">è¦è½¬æ¢çå®ä½</typeparam> |
| | | ///// <param name="s"></param> |
| | | ///// <returns></returns> |
| | | //public static T RotationMapping<T, S>(S s) |
| | | //{ |
| | | // T target = Activator.CreateInstance<T>(); |
| | | // var originalObj = s.GetType(); |
| | | // var targetObj = typeof(T); |
| | | // foreach (PropertyInfo original in originalObj.GetProperties()) |
| | | // { |
| | | // foreach (PropertyInfo t in targetObj.GetProperties()) |
| | | // { |
| | | // if (t.Name == original.Name) |
| | | // { |
| | | // t.SetValue(target, original.GetValue(s, null), null); |
| | | // } |
| | | // } |
| | | // } |
| | | // return target; |
| | | //} |
| | | public static T RotationMapping_Json<T, S>(S s) |
| | | { |
| | | var oldStr = JsonConvert.SerializeObject(s); |
| | | return JsonConvert.DeserializeObject<T>(oldStr); |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | <add name="DbModelLog" connectionString="data source=.;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=.;initial catalog=WGQ_WB19011_CORE;user id=sa;password=123abc.com;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" /> |
| | | </connectionStrings> |
| | | <runtime> |
| | | <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> |
| | | <dependentAssembly> |
| | | <assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" /> |
| | | <bindingRedirect oldVersion="0.0.0.0-4.8.1.0" newVersion="4.8.1.0" /> |
| | | </dependentAssembly> |
| | | </assemblyBinding> |
| | | </runtime> |
| | | |
| | | |
| | | </configuration> |
| | |
| | | <WarningLevel>4</WarningLevel> |
| | | </PropertyGroup> |
| | | <ItemGroup> |
| | | <Reference Include="AutoMapper, Version=6.2.0.0, Culture=neutral, PublicKeyToken=be96cd2c38ef1005, processorArchitecture=MSIL"> |
| | | <HintPath>..\packages\AutoMapper.6.2.0\lib\net45\AutoMapper.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> |
| | | <SpecificVersion>False</SpecificVersion> |
| | | <HintPath>..\dll\EntityFramework.dll</HintPath> |
| | |
| | | <HintPath>..\dll\EntityFramework.SqlServer.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Microsoft.CSharp" /> |
| | | <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> |
| | | <SpecificVersion>False</SpecificVersion> |
| | | <HintPath>..\packages\Newtonsoft.Json.4.5.11\lib\net40\Newtonsoft.Json.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="System" /> |
| | | <Reference Include="System.Data" /> |
| | | <Reference Include="System.Drawing" /> |
| | | <Reference Include="System.Runtime.Serialization" /> |
| | | <Reference Include="System.Web.DynamicData" /> |
| | | <Reference Include="System.Web.Entity" /> |
| | | <Reference Include="System.Web.ApplicationServices" /> |
| | |
| | | <Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> |
| | | <Private>True</Private> |
| | | <HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Newtonsoft.Json"> |
| | | <HintPath>..\packages\Newtonsoft.Json.4.5.11\lib\net40\Newtonsoft.Json.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="System.Net.Http"> |
| | | </Reference> |
| | |
| | | <DesignTime>True</DesignTime> |
| | | <DependentUpon>Resources.resx</DependentUpon> |
| | | </Compile> |
| | | <Compile Include="Utils\ApiResponseHelper.cs" /> |
| | | <Compile Include="Utils\ClassHelper.cs" /> |
| | | <Compile Include="Utils\LogTextHelper.cs" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | |
| | | <Name>iWareDataCore</Name> |
| | | </ProjectReference> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <None Include="packages.config" /> |
| | | </ItemGroup> |
| | | <PropertyGroup> |
| | | <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> |
| | | <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> |
| | |
| | | <VisualStudio> |
| | | <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}"> |
| | | <WebProjectProperties> |
| | | <UseIIS>True</UseIIS> |
| | | <UseIIS>False</UseIIS> |
| | | <AutoAssignPort>False</AutoAssignPort> |
| | | <DevelopmentServerPort>47533</DevelopmentServerPort> |
| | | <DevelopmentServerVPath>/</DevelopmentServerVPath> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <packages> |
| | | <package id="AutoMapper" version="6.2.0" targetFramework="net45" /> |
| | | </packages> |
| | |
| | | //ReSendThread.Name = "åWIPéæ°æ¨éæ¥æ"; |
| | | //StartThread(ReSendThread); |
| | | |
| | | //å¼å¯æ¨éç»MESçåºå
¥åºå®æçº¿ç¨ ãEditby shaocx,2025-09-17ã |
| | | new Thread(mesDataTranfficForRealMes.Handler).Start(); |
| | | |
| | | } |
| | | |
| | |
| | | //ç»æçæå
¥åºä¸»ä»»å¡ççº¿ç¨ |
| | | CloseThread(CreatMainTaskInThread); |
| | | |
| | | //ç»æçæåºåºä¸»ä»»å¡ççº¿ç¨ |
| | | //ç»æçæåºåºä¸»ä»»å¡ççº¿ç¨ |
| | | CloseThread(CreatMainTaskOutThread); |
| | | |
| | | //å
³éå解任å¡ççº¿ç¨ |
| | |
| | | |
| | | var s = (StackerEntity)stacker; |
| | | //LogTextHelper.WriteLine(Resources.LogDir, "è·åå åæº{0}ç¶æçº¿ç¨å·²å¼å¯", s.Equipment.EquipName); |
| | | var items = new string[] |
| | | { |
| | | var items = new string[] |
| | | { |
| | | s.OpcReadItems.SrmNo,// 1Srmç¼å· |
| | | s.OpcReadItems.Mode,// 2ä»»å¡å· |
| | | s.OpcReadItems.Alarm,// 3åè¦ |
| | |
| | | { |
| | | gateService.HandleMsgSCReceive(gateService.ReadFromDatagramPoolSCReceive()); |
| | | } |
| | | else |
| | | else |
| | | { |
| | | gateService.HandleMsgReceive(gateService.ReadFromDatagramPoolReceive()); |
| | | gateService.HandleMsgAlarmReceive(gateService.ReadFromDatagramPoolAlarmReceive()); |
| | |
| | | /// </summary> |
| | | private void CreateMainInTask() |
| | | { |
| | | var c = (ConveyorEntity)CacheEntity.Conveyors.Find(x => x.Equipment.EquipName == "conveyor1"); |
| | | var mainTaskContainer = new MainTaskContainer(); |
| | | var çæå
¥åºä¸»ä»»å¡ = new æ ¹æ®æ«ç çæå
¥åºä¸»ä»»å¡(c, mainTaskContainer); |
| | | var ä¿åçæçä»»å¡ = new ä¿åçæçå
¥åºä»»å¡(c, mainTaskContainer); |
| | | çæå
¥åºä¸»ä»»å¡.NextHandler = ä¿åçæçä»»å¡; |
| | | var c = (ConveyorEntity)CacheEntity.Conveyors.Find(x => x.Equipment.EquipName == "conveyor1"); |
| | | var mainTaskContainer = new MainTaskContainer(); |
| | | var çæå
¥åºä¸»ä»»å¡ = new æ ¹æ®æ«ç çæå
¥åºä¸»ä»»å¡(c, mainTaskContainer); |
| | | var ä¿åçæçä»»å¡ = new ä¿åçæçå
¥åºä»»å¡(c, mainTaskContainer); |
| | | çæå
¥åºä¸»ä»»å¡.NextHandler = ä¿åçæçä»»å¡; |
| | | |
| | | while (true) |
| | | while (true) |
| | | { |
| | | if (CacheEntity.IsAutoRun) |
| | | { |
| | | if (CacheEntity.IsAutoRun) |
| | | { |
| | | çæå
¥åºä¸»ä»»å¡.Handle(); |
| | | } |
| | | Thread.Sleep(1000); |
| | | çæå
¥åºä¸»ä»»å¡.Handle(); |
| | | } |
| | | Thread.Sleep(1000); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// çæåºåºä¸»ä»»å¡ |
| | |
| | | { |
| | | try |
| | | { |
| | | // string stackerName = Enum.GetName(typeof(EEquipmentCnName), EEquipmentCnName.stacker1); |
| | | // string stackerName = Enum.GetName(typeof(EEquipmentCnName), EEquipmentCnName.stacker1); |
| | | var reports = dbModel.COUNTStackerReports.Where(x => x.isfinished == (int)EYesOrNo.å¦).ToList(); |
| | | var stacker = CacheEntity.Stackers.FirstOrDefault(x => x.Equipment.EquipName == "stacker1"); |
| | | var unfinishedReport = reports.FirstOrDefault(x => x.name == stacker.Equipment.EquipName); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Newtonsoft.Json; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Net; |
| | | using System.Net.Http; |
| | | using System.Text; |
| | | |
| | | namespace iWareCc |
| | | { |
| | | public class HTTPService |
| | | { |
| | | private string BaseURI = ""; |
| | | public HTTPService(string baseURI) |
| | | { |
| | | this.BaseURI = baseURI; |
| | | } |
| | | |
| | | #region GETè°ç¨webapiå
Œ
±æ¹æ³ |
| | | |
| | | /// <summary> |
| | | /// éè¿GETæ¹æ³è°ç¨HTTPæå¡ |
| | | /// </summary> |
| | | /// <typeparam name="T">å
¥åç±»å</typeparam> |
| | | /// <param name="url">æå¡å°å</param> |
| | | /// <param name="requestId">å起请æ±çè¡ä¸ºæ è¯</param> |
| | | /// <param name="timeout">è¶
æ¶æ¶é´ï¼åä½ï¼ç§ï¼é»è®¤ä¸º30ç§</param> |
| | | /// <returns></returns> |
| | | public T getContent<T>(string url, Guid requestId, int timeout = 30) |
| | | { |
| | | try |
| | | { |
| | | var client = new HttpClient(); |
| | | |
| | | client.BaseAddress = new Uri(this.BaseURI); |
| | | client.DefaultRequestHeaders.Accept.Clear(); |
| | | client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); |
| | | client.DefaultRequestHeaders.Add("RequestId", requestId.ToString()); |
| | | client.Timeout = new TimeSpan(0, 0, timeout); |
| | | |
| | | using (HttpResponseMessage response = client.GetAsync(url).Result) |
| | | { |
| | | if (response.IsSuccessStatusCode) |
| | | { |
| | | var str_result = response.Content.ReadAsStringAsync().Result; |
| | | T result = JsonConvert.DeserializeObject<T>(str_result); |
| | | return result; |
| | | } |
| | | else if (response.StatusCode == HttpStatusCode.InternalServerError) |
| | | { |
| | | throw new Exception("{" + this.BaseURI + "}被è°ç¨çHTTPæå¡æ¥å£{" + url + "}å
é¨åçå¼å¸¸"); |
| | | } |
| | | else |
| | | { |
| | | throw new Exception("{" + this.BaseURI + "}被è°ç¨çHTTPæå¡æ¥å£{" + url + "}å
é¨åçå¼å¸¸{" + response.StatusCode + "}"); |
| | | } |
| | | } |
| | | } |
| | | catch |
| | | { |
| | | throw; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// éè¿GETæ¹æ³è°ç¨HTTPæå¡ |
| | | /// </summary> |
| | | /// <param name="url">æå¡å°å</param> |
| | | /// <param name="requestId">å起请æ±çè¡ä¸ºæ è¯</param> |
| | | /// <param name="timeout">è¶
æ¶æ¶é´ï¼åä½ï¼ç§ï¼é»è®¤ä¸º30ç§</param> |
| | | /// <returns></returns> |
| | | public string getContentForString(string url, Guid requestId, int timeout = 30) |
| | | { |
| | | try |
| | | { |
| | | var client = new HttpClient(); |
| | | |
| | | client.BaseAddress = new Uri(this.BaseURI); |
| | | client.DefaultRequestHeaders.Accept.Clear(); |
| | | client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); |
| | | client.DefaultRequestHeaders.Add("RequestId", requestId.ToString()); |
| | | client.Timeout = new TimeSpan(0, 0, timeout); |
| | | |
| | | using (HttpResponseMessage response = client.GetAsync(url).Result) |
| | | { |
| | | if (response.IsSuccessStatusCode) |
| | | { |
| | | var result = response.Content.ReadAsStringAsync().Result; |
| | | return result; |
| | | } |
| | | else if (response.StatusCode == HttpStatusCode.InternalServerError) |
| | | { |
| | | throw new Exception("{" + this.BaseURI + "}被è°ç¨çHTTPæå¡æ¥å£{" + url + "}å
é¨åçå¼å¸¸,response:" + JsonConvert.SerializeObject(response)); |
| | | } |
| | | else |
| | | { |
| | | throw new Exception("{" + this.BaseURI + "}被è°ç¨çHTTPæå¡æ¥å£{" + url + "}å
é¨åçå¼å¸¸{" + response.StatusCode + "},response:" + JsonConvert.SerializeObject(response)); |
| | | } |
| | | } |
| | | } |
| | | catch |
| | | { |
| | | throw; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region POSTè°ç¨webapiå
Œ
±æ¹æ³ |
| | | |
| | | /// <summary> |
| | | /// éè¿POSTæ¹æ³è°ç¨HTTPæå¡ |
| | | /// </summary> |
| | | /// <typeparam name="T">å
¥åç±»å</typeparam> |
| | | /// <typeparam name="T2">åºåç±»å</typeparam> |
| | | /// <param name="url">æå¡å°å</param> |
| | | /// <param name="parameter">å
¥å</param> |
| | | /// <param name="requestId">å起请æ±çè¡ä¸ºæ è¯</param> |
| | | /// <param name="timeout">è¶
æ¶æ¶é´ï¼åä½ï¼ç§ï¼é»è®¤ä¸º30ç§</param> |
| | | /// <returns></returns> |
| | | public T2 postContent<T, T2>(string url, T parameter, Guid requestId, int timeout = 30) |
| | | { |
| | | try |
| | | { |
| | | var client = new HttpClient(); |
| | | |
| | | client.BaseAddress = new Uri(this.BaseURI); |
| | | client.DefaultRequestHeaders.Accept.Clear(); |
| | | client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); |
| | | client.DefaultRequestHeaders.Add("RequestId", requestId.ToString()); |
| | | client.DefaultRequestHeaders.Add("Authorization", "123456"); |
| | | client.Timeout = new TimeSpan(0, 0, timeout); |
| | | |
| | | string str = JsonConvert.SerializeObject(parameter); |
| | | var httpContent = new StringContent(str, Encoding.UTF8); |
| | | httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json") { CharSet = "utf-8" }; |
| | | using (HttpResponseMessage response = client.PostAsync(url, httpContent).Result) |
| | | { |
| | | if (response.IsSuccessStatusCode) |
| | | { |
| | | var str_result = response.Content.ReadAsStringAsync().Result; |
| | | T2 result = JsonConvert.DeserializeObject<T2>(str_result); |
| | | return result; |
| | | } |
| | | else if (response.StatusCode == HttpStatusCode.InternalServerError) |
| | | { |
| | | throw new Exception("{" + this.BaseURI + "}被è°ç¨çHTTPæå¡æ¥å£{" + url + "}å
é¨åçå¼å¸¸"); |
| | | } |
| | | else |
| | | { |
| | | throw new Exception("{" + this.BaseURI + "}被è°ç¨çHTTPæå¡æ¥å£{" + url + "}å
é¨åçå¼å¸¸{" + response.StatusCode + "}"); |
| | | } |
| | | } |
| | | } |
| | | catch |
| | | { |
| | | throw; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// éè¿POSTæ¹æ³è°ç¨HTTPæå¡ |
| | | /// </summary> |
| | | /// <param name="url">æå¡å°å</param> |
| | | /// <param name="parameter">å
¥å</param> |
| | | /// <param name="requestId">å起请æ±çè¡ä¸ºæ è¯</param> |
| | | /// <param name="timeout">è¶
æ¶æ¶é´ï¼åä½ï¼ç§ï¼é»è®¤ä¸º30ç§</param> |
| | | /// <returns></returns> |
| | | public string postContentForString(string url, IDictionary<string, string> parameter, Guid requestId, int timeout = 30) |
| | | { |
| | | try |
| | | { |
| | | var client = new HttpClient(); |
| | | |
| | | client.BaseAddress = new Uri(this.BaseURI); |
| | | client.DefaultRequestHeaders.Accept.Clear(); |
| | | client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); |
| | | client.DefaultRequestHeaders.Add("RequestId", requestId.ToString()); |
| | | client.Timeout = new TimeSpan(0, 0, timeout); |
| | | |
| | | string str = JsonConvert.SerializeObject(parameter); |
| | | var httpContent = new StringContent(str, Encoding.UTF8); |
| | | httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json") { CharSet = "utf-8" }; |
| | | using (HttpResponseMessage response = client.PostAsync(url, httpContent).Result) |
| | | { |
| | | if (response.IsSuccessStatusCode) |
| | | { |
| | | var result = response.Content.ReadAsStringAsync().Result; |
| | | return result; |
| | | } |
| | | else if (response.StatusCode == HttpStatusCode.InternalServerError) |
| | | { |
| | | return response.StatusCode.ToString(); |
| | | // throw new Exception("{" + this.BaseURI + "}被è°ç¨çHTTPæå¡æ¥å£{" + url + "}å
é¨åçå¼å¸¸"); |
| | | } |
| | | else |
| | | { |
| | | return response.StatusCode.ToString(); |
| | | // throw new Exception("{" + this.BaseURI + "}被è°ç¨çHTTPæå¡æ¥å£{" + url + "}å
é¨åçå¼å¸¸{" + response.StatusCode + "}"); |
| | | } |
| | | } |
| | | } |
| | | catch |
| | | { |
| | | throw; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// éè¿POSTæ¹æ³è°ç¨HTTPæå¡ |
| | | /// </summary> |
| | | /// <param name="url">æå¡å°å</param> |
| | | /// <param name="parameter">å
¥åå符串</param> |
| | | /// <param name="requestId">å起请æ±çè¡ä¸ºæ è¯</param> |
| | | /// <param name="timeout">è¶
æ¶æ¶é´ï¼åä½ï¼ç§ï¼é»è®¤ä¸º30ç§</param> |
| | | /// <returns></returns> |
| | | public string postContentForString(string url, string parameter, Guid requestId, int timeout = 30) |
| | | { |
| | | try |
| | | { |
| | | var client = new HttpClient(); |
| | | |
| | | client.BaseAddress = new Uri(this.BaseURI); |
| | | client.DefaultRequestHeaders.Accept.Clear(); |
| | | client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); |
| | | client.DefaultRequestHeaders.Add("RequestId", requestId.ToString()); |
| | | client.Timeout = new TimeSpan(0, 0, timeout); |
| | | var ee = new { name = parameter }; |
| | | if (parameter=="") |
| | | { |
| | | parameter = ee.ToString(); |
| | | } |
| | | |
| | | var httpContent = new StringContent(parameter, Encoding.UTF8); |
| | | httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json") { CharSet = "utf-8" }; |
| | | using (HttpResponseMessage response = client.PostAsync(url, httpContent).Result) |
| | | { |
| | | if (response.IsSuccessStatusCode) |
| | | { |
| | | var result = response.Content.ReadAsStringAsync().Result; |
| | | return result; |
| | | } |
| | | else if (response.StatusCode == HttpStatusCode.InternalServerError) |
| | | { |
| | | return response.StatusCode.ToString(); |
| | | // throw new Exception("{" + this.BaseURI + "}被è°ç¨çHTTPæå¡æ¥å£{" + url + "}å
é¨åçå¼å¸¸"); |
| | | } |
| | | else |
| | | { |
| | | return response.StatusCode.ToString(); |
| | | // throw new Exception("{" + this.BaseURI + "}被è°ç¨çHTTPæå¡æ¥å£{" + url + "}å
é¨åçå¼å¸¸{" + response.StatusCode + "}"); |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// éè¿POSTæ¹æ³è°ç¨HTTPæå¡(AGVä¸ç¨) |
| | | /// </summary> |
| | | /// <param name="url">æå¡å°å</param> |
| | | /// <param name="parameter">å
¥åå符串</param> |
| | | /// <param name="requestId">å起请æ±çè¡ä¸ºæ è¯</param> |
| | | /// <param name="timeout">è¶
æ¶æ¶é´ï¼åä½ï¼ç§ï¼é»è®¤ä¸º30ç§</param> |
| | | /// <returns></returns> |
| | | public string postContentForStringForAgv(string url, string parameter, Guid requestId, int timeout = 30) |
| | | { |
| | | try |
| | | { |
| | | var client = new HttpClient(); |
| | | |
| | | client.BaseAddress = new Uri(this.BaseURI); |
| | | client.DefaultRequestHeaders.Accept.Clear(); |
| | | client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); |
| | | client.DefaultRequestHeaders.Add("RequestId", requestId.ToString()); |
| | | client.Timeout = new TimeSpan(0, 0, timeout); |
| | | var ee = new { name = parameter }; |
| | | if (parameter == "") |
| | | { |
| | | parameter = ee.ToString(); |
| | | } |
| | | |
| | | var httpContent = new StringContent(parameter, Encoding.UTF8); |
| | | httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json") { CharSet = "utf-8" }; |
| | | using (HttpResponseMessage response = client.PostAsync(url, httpContent).Result) |
| | | { |
| | | var result = response.Content.ReadAsStringAsync().Result; |
| | | return result; |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw; |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// éè¿POSTæ¹æ³è°ç¨HTTPæå¡ |
| | | /// </summary> |
| | | /// <param name="url">æå¡å°å</param> |
| | | /// <param name="parameter">å
¥åå符串</param> |
| | | /// <param name="requestId">å起请æ±çè¡ä¸ºæ è¯</param> |
| | | /// <param name="timeout">è¶
æ¶æ¶é´ï¼åä½ï¼ç§ï¼é»è®¤ä¸º30ç§</param> |
| | | /// <returns></returns> |
| | | public string postContentForStringWithToken(string url, string parameter, |
| | | Guid requestId, string token, int timeout = 30) |
| | | { |
| | | try |
| | | { |
| | | var client = new HttpClient(); |
| | | |
| | | client.BaseAddress = new Uri(this.BaseURI); |
| | | client.DefaultRequestHeaders.Accept.Clear(); |
| | | client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); |
| | | client.DefaultRequestHeaders.Add("RequestId", requestId.ToString()); |
| | | client.DefaultRequestHeaders.Add("Authorization", token.ToString()); |
| | | client.Timeout = new TimeSpan(0, 0, timeout); |
| | | |
| | | var httpContent = new StringContent(parameter, Encoding.UTF8); |
| | | httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json") { CharSet = "utf-8" }; |
| | | using (HttpResponseMessage response = client.PostAsync(url, httpContent).Result) |
| | | { |
| | | if (response.IsSuccessStatusCode) |
| | | { |
| | | var result = response.Content.ReadAsStringAsync().Result; |
| | | return result; |
| | | } |
| | | else if (response.StatusCode == HttpStatusCode.InternalServerError) |
| | | { |
| | | throw new Exception("{" + this.BaseURI + "}被è°ç¨çHTTPæå¡æ¥å£{" + url + "}å
é¨åçå¼å¸¸"); |
| | | } |
| | | else |
| | | { |
| | | throw new Exception("{" + this.BaseURI + "}被è°ç¨çHTTPæå¡æ¥å£{" + url + "}å
é¨åçå¼å¸¸{" + response.StatusCode + "}"); |
| | | } |
| | | } |
| | | } |
| | | catch |
| | | { |
| | | throw; |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region PUTè°ç¨webapiå
Œ
±æ¹æ³ |
| | | |
| | | /// <summary> |
| | | /// éè¿PUTæ¹æ³è°ç¨HTTPæå¡ |
| | | /// </summary> |
| | | /// <typeparam name="T">å
¥åç±»å</typeparam> |
| | | /// <typeparam name="T2">åºåç±»å</typeparam> |
| | | /// <param name="url">æå¡å°å</param> |
| | | /// <param name="parameter">å
¥å</param> |
| | | /// <param name="requestId">å起请æ±çè¡ä¸ºæ è¯</param> |
| | | /// <param name="timeout">è¶
æ¶æ¶é´ï¼åä½ï¼ç§ï¼é»è®¤ä¸º30ç§</param> |
| | | /// <returns></returns> |
| | | public T2 putContent<T, T2>(string url, T parameter, Guid requestId, int timeout = 30) |
| | | { |
| | | try |
| | | { |
| | | var client = new HttpClient(); |
| | | |
| | | client.BaseAddress = new Uri(this.BaseURI); |
| | | client.DefaultRequestHeaders.Accept.Clear(); |
| | | client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); |
| | | client.DefaultRequestHeaders.Add("RequestId", requestId.ToString()); |
| | | client.Timeout = new TimeSpan(0, 0, timeout); |
| | | |
| | | string str = JsonConvert.SerializeObject(parameter); |
| | | var httpContent = new StringContent(str, Encoding.UTF8); |
| | | httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json") { CharSet = "utf-8" }; |
| | | using (HttpResponseMessage response = client.PutAsync(url, httpContent).Result) |
| | | { |
| | | if (response.IsSuccessStatusCode) |
| | | { |
| | | var str_result = response.Content.ReadAsStringAsync().Result; |
| | | T2 result = JsonConvert.DeserializeObject<T2>(str_result); |
| | | return result; |
| | | } |
| | | else if (response.StatusCode == HttpStatusCode.InternalServerError) |
| | | { |
| | | throw new Exception("{" + this.BaseURI + "}被è°ç¨çHTTPæå¡æ¥å£{" + url + "}å
é¨åçå¼å¸¸"); |
| | | } |
| | | else |
| | | { |
| | | throw new Exception("{" + this.BaseURI + "}被è°ç¨çHTTPæå¡æ¥å£{" + url + "}å
é¨åçå¼å¸¸{" + response.StatusCode + "}"); |
| | | } |
| | | } |
| | | } |
| | | catch |
| | | { |
| | | throw; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// éè¿PUTæ¹æ³è°ç¨HTTPæå¡ |
| | | /// </summary> |
| | | /// <param name="url">æå¡å°å</param> |
| | | /// <param name="parameter">å
¥å</param> |
| | | /// <param name="requestId">å起请æ±çè¡ä¸ºæ è¯</param> |
| | | /// <param name="timeout">è¶
æ¶æ¶é´ï¼åä½ï¼ç§ï¼é»è®¤ä¸º30ç§</param> |
| | | /// <returns></returns> |
| | | public string putContentForString(string url, IDictionary<string, string> parameter, |
| | | Guid requestId, int timeout = 30) |
| | | { |
| | | try |
| | | { |
| | | var client = new HttpClient(); |
| | | |
| | | client.BaseAddress = new Uri(this.BaseURI); |
| | | client.DefaultRequestHeaders.Accept.Clear(); |
| | | client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); |
| | | client.DefaultRequestHeaders.Add("RequestId", requestId.ToString()); |
| | | client.Timeout = new TimeSpan(0, 0, timeout); |
| | | |
| | | string str = JsonConvert.SerializeObject(parameter); |
| | | var httpContent = new StringContent(str, Encoding.UTF8); |
| | | httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json") { CharSet = "utf-8" }; |
| | | using (HttpResponseMessage response = client.PutAsync(url, httpContent).Result) |
| | | { |
| | | if (response.IsSuccessStatusCode) |
| | | { |
| | | var result = response.Content.ReadAsStringAsync().Result; |
| | | return result; |
| | | } |
| | | else if (response.StatusCode == HttpStatusCode.InternalServerError) |
| | | { |
| | | throw new Exception("{" + this.BaseURI + "}被è°ç¨çHTTPæå¡æ¥å£{" + url + "}å
é¨åçå¼å¸¸"); |
| | | } |
| | | else |
| | | { |
| | | throw new Exception("{" + this.BaseURI + "}被è°ç¨çHTTPæå¡æ¥å£{" + url + "}å
é¨åçå¼å¸¸{" + response.StatusCode + "}"); |
| | | } |
| | | } |
| | | } |
| | | catch |
| | | { |
| | | throw; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// éè¿POSTæ¹æ³è°ç¨HTTPæå¡ |
| | | /// </summary> |
| | | /// <param name="url">æå¡å°å</param> |
| | | /// <param name="parameter">å
¥åå符串</param> |
| | | /// <param name="requestId">å起请æ±çè¡ä¸ºæ è¯</param> |
| | | /// <param name="timeout">è¶
æ¶æ¶é´ï¼åä½ï¼ç§ï¼é»è®¤ä¸º30ç§</param> |
| | | /// <returns></returns> |
| | | public string putContentForString(string url, string parameter, |
| | | Guid requestId, int timeout = 30) |
| | | { |
| | | try |
| | | { |
| | | var client = new HttpClient(); |
| | | |
| | | client.BaseAddress = new Uri(this.BaseURI); |
| | | client.DefaultRequestHeaders.Accept.Clear(); |
| | | client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); |
| | | client.DefaultRequestHeaders.Add("RequestId", requestId.ToString()); |
| | | client.Timeout = new TimeSpan(0, 0, timeout); |
| | | |
| | | var httpContent = new StringContent(parameter, Encoding.UTF8); |
| | | httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json") { CharSet = "utf-8" }; |
| | | using (HttpResponseMessage response = client.PutAsync(url, httpContent).Result) |
| | | { |
| | | if (response.IsSuccessStatusCode) |
| | | { |
| | | var result = response.Content.ReadAsStringAsync().Result; |
| | | return result; |
| | | } |
| | | else if (response.StatusCode == HttpStatusCode.InternalServerError) |
| | | { |
| | | throw new Exception("{" + this.BaseURI + "}被è°ç¨çHTTPæå¡æ¥å£{" + url + "}å
é¨åçå¼å¸¸"); |
| | | } |
| | | else |
| | | { |
| | | throw new Exception("{" + this.BaseURI + "}被è°ç¨çHTTPæå¡æ¥å£{" + url + "}å
é¨åçå¼å¸¸{" + response.StatusCode + "}"); |
| | | } |
| | | } |
| | | } |
| | | catch |
| | | { |
| | | throw; |
| | | } |
| | | } |
| | | #endregion |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Newtonsoft.Json; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | |
| | | namespace iWareCc |
| | | { |
| | | /// <summary> |
| | | /// MESæ¨éæ¥å£ |
| | | /// </summary> |
| | | public class PushMesHandler |
| | | { |
| | | public static string mes_api_url = "";// ConfigHelper.GetConfigString("MesUrl");//ä¿®æ¹ä¸ºé
ç½®æä»¶ ãEditBy shaocx,2022-01-27ã |
| | | static HTTPService mes_api = new HTTPService(mes_api_url);//mesåºå°å |
| | | |
| | | /// <summary> |
| | | /// ç»MESæ¨éå
¥åºä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="pushData"></param> |
| | | /// <returns></returns> |
| | | public static ApiResponse<string> Mes_InStockSend(List<InboundStockInfoToMes> 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); |
| | | //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); |
| | | } |
| | | |
| | | //Log4NetHelper.WriteInfoLog(_logType, $"{funName},åæ°:{paprm},è¿å:{JsonConvert.SerializeObject(res)}"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | //Log4NetHelper.WriteErrorLog(_logType, $"{funName},å¼å¸¸:" + ex.Message, ex); |
| | | res.Code = 500; |
| | | res.Success = false; |
| | | res.Message = "wmsåéå¼å¸¸:" + ex.Message; |
| | | } |
| | | return res; |
| | | |
| | | } |
| | | |
| | | |
| | | ///// <summary> |
| | | ///// ç»MESæ¨éåºåºä¿¡æ¯ |
| | | ///// </summary> |
| | | ///// <param name="pushData"></param> |
| | | ///// <returns></returns> |
| | | //public static ApiResponse Mes_OutStockSend(List<InboundStockInfoToMes> pushData, LogType _logType) |
| | | //{ |
| | | // ApiResponse<string> res = null; |
| | | // var funName = "Mes_OutStockSend"; |
| | | // try |
| | | // { |
| | | // MesRequest<List<InboundStockInfoToMes>> mesRequest = new MesRequest<List<InboundStockInfoToMes>>(); |
| | | // mesRequest.Datas = pushData; |
| | | // mesRequest.TableName = "T_WMS_Outbound_Record"; |
| | | // mesRequest.PrimaryKeys = "identifier"; |
| | | |
| | | // string paprm = JsonConvert.SerializeObject(mesRequest); |
| | | // //Log4NetHelper.WriteInfoLog(_logType, $"{funName},åå¤åæ°:{paprm}"); |
| | | // Guid guid = System.Guid.NewGuid(); |
| | | // //模æ |
| | | // if (Form1.isvirtual) |
| | | // {//模æç¯å¢ |
| | | // res = new ApiResponse<string>(); |
| | | // res.ErrorCode = 0; |
| | | // res.ErrorMsg = "ç³»ç»æ¨¡æå®æ"; |
| | | // } |
| | | // else |
| | | // { |
| | | // var resStr = mes_api.postContentForString("", paprm, guid); |
| | | // //Log4NetHelper.WriteInfoLog(_logType, $"{funName},ç»æè¿å:{resStr}"); |
| | | // res = JsonConvert.DeserializeObject<ApiResponse<string>>(resStr); |
| | | // } |
| | | |
| | | // //Log4NetHelper.WriteInfoLog(_logType, $"{funName},åæ°:{paprm},è¿å:{JsonConvert.SerializeObject(res)}"); |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | // //Log4NetHelper.WriteErrorLog(_logType, $"{funName},å¼å¸¸:" + ex.Message, ex); |
| | | // res.ErrorCode = 4; |
| | | // res.ErrorMsg = "wmsåéå¼å¸¸:" + ex.Message; |
| | | // } |
| | | // return res; |
| | | |
| | | //} |
| | | |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace iWareCc |
| | | { |
| | | /// <summary> |
| | | /// éç¨æ³åæ¥å£ååºæ¨¡å |
| | | /// </summary> |
| | | /// <typeparam name="T">Data åæ®µçç±»åï¼å¯ä»¥æ¯ä»»æç±»åï¼å¦ stringãintãèªå®ä¹ç±»ç</typeparam> |
| | | public class ApiResponse<T> |
| | | { |
| | | /// <summary> |
| | | /// ç¶æç ï¼ä¾å¦ 200 表示æå |
| | | /// </summary> |
| | | public int Code { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦æåï¼true 表示æåï¼false 表示失败 |
| | | /// </summary> |
| | | public bool Success { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è¿åæ¶æ¯ï¼ä¾å¦ï¼"æå" æéè¯¯ä¿¡æ¯ |
| | | /// </summary> |
| | | public string Message { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è¿åçæ°æ®å
容ï¼ç±»å为æ³å T |
| | | /// </summary> |
| | | public T Data { get; set; } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace iWareCc |
| | | { |
| | | /// <summary> |
| | | /// æ¨éå
¥åºæ¥å£ - 请æ±åæ°ä¸çå个å
¥åºè®°å½é¡¹ |
| | | /// </summary> |
| | | public class InboundStockInfoToMes |
| | | { |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºæ è®° |
| | | /// </summary> |
| | | public string BusinessFlag { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®µå· |
| | | /// </summary> |
| | | public string SerialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è¹å·/忾工ç¨å· |
| | | /// </summary> |
| | | public string IssueProjectNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½å· |
| | | /// </summary> |
| | | public string PlaceCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼ç |
| | | /// </summary> |
| | | public string Code { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// åçæ¶é´ |
| | | /// </summary> |
| | | public string OccurrenceTime { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// æ¶é´æ³(åæ°èªå¨åå§å) |
| | | /// </summary> |
| | | public string Timestamp { get; set; } = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace iWareCc |
| | | { |
| | | /// <summary> |
| | | /// æ¨éä¿¡æ¯ |
| | | /// </summary> |
| | | public class MesRequest<T> |
| | | { |
| | | /// <summary> |
| | | /// æ°æ® |
| | | /// </summary> |
| | | public T Datas { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç³»ç»ç±»å |
| | | /// </summary> |
| | | public string SystemType { get; set; } = "ERP"; |
| | | /// <summary> |
| | | /// Secret |
| | | /// </summary> |
| | | public string Secret { get; set; } = "HJY^*HGYIIY"; |
| | | |
| | | |
| | | /// <summary> |
| | | /// 表å |
| | | /// </summary> |
| | | public string TableName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¸»é® |
| | | /// </summary> |
| | | public string PrimaryKeys { get; set; } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using iWareDataCore.ORM; |
| | | using Newtonsoft.Json; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Threading; |
| | | |
| | | namespace iWareCc |
| | | { |
| | | /// <summary> |
| | | /// MESåºå
¥åºæ°æ®ä¼ è¾(çæ£çMES) |
| | | /// </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); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | <Reference Include="System.Core" /> |
| | | <Reference Include="System.Drawing" /> |
| | | <Reference Include="System.Management" /> |
| | | <Reference Include="System.Net.Http" /> |
| | | <Reference Include="System.Runtime.Serialization" /> |
| | | <Reference Include="System.ServiceModel" /> |
| | | <Reference Include="System.Xml.Linq" /> |
| | |
| | | <Compile Include="Srm\EnumType\ESrmAlarm1.cs" /> |
| | | <Compile Include="Srm\Strategy\æ¨éå åæºåè¦ç¶æ.cs" /> |
| | | <Compile Include="Srm\Strategy\æ¨éå åæºç¶æ.cs" /> |
| | | <Compile Include="SystemInteraction\dto\ApiResponse.cs" /> |
| | | <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\PushMesHandler.cs" /> |
| | | <Compile Include="Task\Service\TaskService.cs" /> |
| | | <Compile Include="Util\OPCHelper.cs" /> |
| | | <Compile Include="Util\SocketClient.cs" /> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using iWareCommon.Common.Entity; |
| | | using iWareCommon.Utils; |
| | | using iWareDataCore.ORM; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | |
| | | namespace iWareDataCore.BASE.Entity |
| | | { |
| | | public class MaterialViewForMesEntity : MaterialViewEntity |
| | | { |
| | | /// 7åºå
¥åºåå· |
| | | /// </summary> |
| | | public string ListNo { get; set; } |
| | | |
| | | } |
| | | } |
| | |
| | | |
| | | namespace iWareDataCore.BASE.Service |
| | | { |
| | | public class InOutListService : CommonService<InOutListEntity, BASEInOutList, DbModelCore> |
| | | public class InOutListService : CommonService<InOutListEntity, BASEInOutList, DbModelCore> |
| | | { |
| | | private static object Lock = new object(); |
| | | |
| | |
| | | { |
| | | List<BASEInOutListDetail> inldlst = new List<BASEInOutListDetail>(); |
| | | msg = ""; |
| | | |
| | | //éªè¯åå·æ¯å¦å·²ç»åå¨ ãEditby shaocx,2025-09-17ã |
| | | var findInOutList = DbModel.BASEInOutLists.FirstOrDefault(x => x.listno == iol.ListNo); |
| | | if (findInOutList != null) |
| | | { |
| | | msg = $"åå·{iol.ListNo}å·²åå¨"; |
| | | return -1; |
| | | } |
| | | |
| | | iol.InOutListDetail.ForEach(x => { inldlst.Add(x.ToOrm()); }); |
| | | BASEInOutList biol = new BASEInOutList(); |
| | | biol = iol.ToOrm(); |
| | |
| | | msg = ""; |
| | | using (var dbModel = new DbModelCore()) |
| | | { |
| | | var cutInOut = dbModel.BASEInOutLists.FirstOrDefault(x=>x.listno== inoutNo); |
| | | var cutInOut = dbModel.BASEInOutLists.FirstOrDefault(x => x.listno == inoutNo); |
| | | if (cutInOut == null) |
| | | { |
| | | msg = "åºå
¥åºåå·ä¸åå¨"; |
| | |
| | | msg = "ç©æä¸åå¨"; |
| | | return false; |
| | | } |
| | | var findInOutDetail = dbModel.BASEInOutListDetails.FirstOrDefault(x => x.inoutlistid == cutInOut.id && x.materialid== cutMarital.id); |
| | | var findInOutDetail = dbModel.BASEInOutListDetails.FirstOrDefault(x => x.inoutlistid == cutInOut.id && x.materialid == cutMarital.id); |
| | | if (findInOutDetail != null) |
| | | { |
| | | msg = "æ¤åå·åç©æå·²åå¨"; |
| | |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | |
| | | public override int Delete(int id, out string msg) |
| | | { |
| | | msg = ""; |
| | |
| | | var codes = new List<string>(); |
| | | List<MaterialEntity> materlst = new List<MaterialEntity>(); |
| | | var materialSaves = new List<MaterialEntity>(); |
| | | var existMaterialcodes = dbModel.BASEMaterials.Select(x =>x.code).ToList(); |
| | | var existMaterialcodes = dbModel.BASEMaterials.Select(x => x.code).ToList(); |
| | | bool b1 = true; |
| | | foreach (MaterialViewEntity m in materials) |
| | | { |
| | |
| | | if (string.IsNullOrEmpty(m.Code)) |
| | | { |
| | | msg = string.Format("å¨ç¬¬{0}è¡ï¼ç©æå·ä¸è½ä¸ºç©ºï¼è¯·ä¿®æ¹å鿰坼å
¥", i + 1); |
| | | b1= false; |
| | | b1 = false; |
| | | break; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(m.Wide)) |
| | | { |
| | | msg = string.Format("å¨ç¬¬{0}è¡ï¼å®½ä¸è½ä¸ºç©ºï¼è¯·ä¿®æ¹å鿰坼å
¥", i + 1); |
| | | b1= false; |
| | | b1 = false; |
| | | break; |
| | | } |
| | | var type = types.FirstOrDefault(x => x.name == m.TypeName); |
| | |
| | | { |
| | | m.MaterialType = 5;//å
¶ä» |
| | | } |
| | | else |
| | | else |
| | | { |
| | | m.MaterialType = type.id; |
| | | } |
| | |
| | | codes.Add(m.Code); |
| | | if (string.IsNullOrEmpty(m.Name)) { m.Name = m.Description; } |
| | | if (string.IsNullOrEmpty(m.Version)) { m.Version = "00"; } |
| | | |
| | | MaterialEntity mt=new MaterialEntity() |
| | | |
| | | MaterialEntity mt = new MaterialEntity() |
| | | { |
| | | ClassificationSociety = m.ClassificationSociety, |
| | | Code = m.Code, |
| | |
| | | VerticalPosition = m.VerticalPosition, |
| | | Wide = m.Wide |
| | | }; |
| | | materialSaves.Add(mt); |
| | | materialSaves.Add(mt); |
| | | |
| | | } |
| | | if (!b1) |
| | | if (!b1) |
| | | { |
| | | return b1; |
| | | } |
| | | var sql = string.Format("INSERT INTO BASEMaterial(status, name, code, materialno, version, typeid, guaranteeperiod, cost, classificationsociety, unit, serialno, description, remark, verticalposition, weight, issueprojectno, procurementprojectno, cuttingtype, pageno, thick, wide, length, markingpen, laneseparation) VALUES"); |
| | | for (var j = 0; j < materialSaves.Count ; j++) |
| | | for (var j = 0; j < materialSaves.Count; j++) |
| | | { |
| | | sql += string.Format("({0}, '{1}', '{2}', '{3}', {4}, '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', '{13}', '{14}', '{15}','{16}' ,'{17}', '{18}', '{19}', '{20}', '{21}','{22}','{23}' ),", |
| | | materialSaves[j].Status, |
| | | StringHelper.RelpaceQuot(materialSaves[j].Name), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Code), |
| | | StringHelper.RelpaceQuot(materialSaves[j].MaterialNo), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Version), |
| | | materialSaves[j].TypeId, |
| | | StringHelper.RelpaceQuot(materialSaves[j].GuaranteePeriod), |
| | | materialSaves[j].Cost, |
| | | StringHelper.RelpaceQuot(materialSaves[j].ClassificationSociety), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Unit), |
| | | StringHelper.RelpaceQuot(materialSaves[j].SerialNo), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Description), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Remark), |
| | | StringHelper.RelpaceQuot(materialSaves[j].VerticalPosition), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Weight), |
| | | StringHelper.RelpaceQuot(materialSaves[j].IssueProjectNo), |
| | | StringHelper.RelpaceQuot(materialSaves[j].ProcurementProjectNo), |
| | | StringHelper.RelpaceQuot(materialSaves[j].CuttingType), |
| | | StringHelper.RelpaceQuot(materialSaves[j].PageNo), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Thick), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Wide), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Length), |
| | | StringHelper.RelpaceQuot(materialSaves[j].MarkingPen), |
| | | StringHelper.RelpaceQuot(materialSaves[j].LaneSeparation)); |
| | | sql += string.Format("({0}, '{1}', '{2}', '{3}', {4}, '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', '{13}', '{14}', '{15}','{16}' ,'{17}', '{18}', '{19}', '{20}', '{21}','{22}','{23}' ),", |
| | | materialSaves[j].Status, |
| | | StringHelper.RelpaceQuot(materialSaves[j].Name), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Code), |
| | | StringHelper.RelpaceQuot(materialSaves[j].MaterialNo), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Version), |
| | | materialSaves[j].TypeId, |
| | | StringHelper.RelpaceQuot(materialSaves[j].GuaranteePeriod), |
| | | materialSaves[j].Cost, |
| | | StringHelper.RelpaceQuot(materialSaves[j].ClassificationSociety), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Unit), |
| | | StringHelper.RelpaceQuot(materialSaves[j].SerialNo), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Description), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Remark), |
| | | StringHelper.RelpaceQuot(materialSaves[j].VerticalPosition), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Weight), |
| | | StringHelper.RelpaceQuot(materialSaves[j].IssueProjectNo), |
| | | StringHelper.RelpaceQuot(materialSaves[j].ProcurementProjectNo), |
| | | StringHelper.RelpaceQuot(materialSaves[j].CuttingType), |
| | | StringHelper.RelpaceQuot(materialSaves[j].PageNo), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Thick), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Wide), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Length), |
| | | StringHelper.RelpaceQuot(materialSaves[j].MarkingPen), |
| | | StringHelper.RelpaceQuot(materialSaves[j].LaneSeparation)); |
| | | } |
| | | if (sql.EndsWith(",")) |
| | | { |
| | |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 导å
¥ç©æåºç¡æ°æ®ï¼æ¥æºMES ãEditby shaocx,2025-09-17ã |
| | | /// </summary> |
| | | /// <param name="materials"></param> |
| | | /// <param name="msg"></param> |
| | | /// <returns></returns> |
| | | public bool ImportExcelFromMes(List<MaterialViewEntity> materials, out string msg) |
| | | { |
| | | using (var dbModel = new DbModelCore()) |
| | | { |
| | | try |
| | | { |
| | | msg = ""; |
| | | if (materials.Count < 1) |
| | | { |
| | | msg = "ç©æè®°å½æ°ä¸º0ï¼è¯·ä¿®æ¹å鿰坼å
¥"; |
| | | return false; |
| | | } |
| | | var types = dbModel.BASEMaterialTypes.Where(x => 1 == 1).ToList(); |
| | | var i = 0; |
| | | var codes = new List<string>(); |
| | | List<MaterialEntity> materlst = new List<MaterialEntity>(); |
| | | var materialSaves = new List<MaterialEntity>(); |
| | | var existMaterialcodes = dbModel.BASEMaterials.Select(x => x.code).ToList(); |
| | | bool b1 = true; |
| | | foreach (MaterialViewEntity m in materials) |
| | | { |
| | | i += 1; |
| | | if (string.IsNullOrEmpty(m.Code)) |
| | | { |
| | | msg = string.Format("å¨ç¬¬{0}è¡ï¼ç©æå·ä¸è½ä¸ºç©ºï¼è¯·ä¿®æ¹å鿰坼å
¥", i + 1); |
| | | b1 = false; |
| | | break; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(m.Wide)) |
| | | { |
| | | msg = string.Format("å¨ç¬¬{0}è¡ï¼å®½ä¸è½ä¸ºç©ºï¼è¯·ä¿®æ¹å鿰坼å
¥", i + 1); |
| | | b1 = false; |
| | | break; |
| | | } |
| | | var type = types.FirstOrDefault(x => x.name == m.TypeName); |
| | | if (type == null) |
| | | { |
| | | m.MaterialType = 5;//å
¶ä» |
| | | } |
| | | else |
| | | { |
| | | m.MaterialType = type.id; |
| | | } |
| | | if (existMaterialcodes.Contains(m.Code)) |
| | | { |
| | | continue; |
| | | } |
| | | codes.Add(m.Code); |
| | | if (string.IsNullOrEmpty(m.Name)) { m.Name = m.Description; } |
| | | if (string.IsNullOrEmpty(m.Version)) { m.Version = "00"; } |
| | | |
| | | MaterialEntity mt = new MaterialEntity() |
| | | { |
| | | ClassificationSociety = m.ClassificationSociety, |
| | | Code = m.Code, |
| | | MaterialNo = m.MaterialNo, |
| | | Cost = m.Cost, |
| | | CuttingType = m.CuttingType, |
| | | Description = m.Description, |
| | | GuaranteePeriod = m.GuaranteePeriod, |
| | | IssueProjectNo = m.IssueProjectNo, |
| | | Length = m.Length, |
| | | SerialNo = m.SerialNo, |
| | | Name = m.Name, |
| | | LaneSeparation = m.Laneseparation, |
| | | MarkingPen = m.MarkingPen, |
| | | PageNo = m.PageNo, |
| | | Status = 1, |
| | | Thick = m.Thick, |
| | | Unit = m.Unit, |
| | | Remark = m.Remark, |
| | | ProcurementProjectNo = m.ProcurementProjectNo, |
| | | TypeId = m.MaterialType, |
| | | Version = m.Version, |
| | | Weight = m.Weight, |
| | | VerticalPosition = m.VerticalPosition, |
| | | Wide = m.Wide |
| | | }; |
| | | materialSaves.Add(mt); |
| | | |
| | | } |
| | | if (!b1) |
| | | { |
| | | return b1; |
| | | } |
| | | if (materialSaves?.Count == 0) |
| | | {//说æè¿äºç©æé½æäºï¼ä¸éè¦å导å
¥äº ãEditby shaocx,2025-09-17ã |
| | | return true; |
| | | } |
| | | var sql = string.Format("INSERT INTO BASEMaterial(status, name, code, materialno, version, typeid, guaranteeperiod, cost, classificationsociety, unit, serialno, description, remark, verticalposition, weight, issueprojectno, procurementprojectno, cuttingtype, pageno, thick, wide, length, markingpen, laneseparation) VALUES"); |
| | | for (var j = 0; j < materialSaves.Count; j++) |
| | | { |
| | | sql += string.Format("({0}, '{1}', '{2}', '{3}', {4}, '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', '{13}', '{14}', '{15}','{16}' ,'{17}', '{18}', '{19}', '{20}', '{21}','{22}','{23}' ),", |
| | | materialSaves[j].Status, |
| | | StringHelper.RelpaceQuot(materialSaves[j].Name), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Code), |
| | | StringHelper.RelpaceQuot(materialSaves[j].MaterialNo), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Version), |
| | | materialSaves[j].TypeId, |
| | | StringHelper.RelpaceQuot(materialSaves[j].GuaranteePeriod), |
| | | materialSaves[j].Cost, |
| | | StringHelper.RelpaceQuot(materialSaves[j].ClassificationSociety), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Unit), |
| | | StringHelper.RelpaceQuot(materialSaves[j].SerialNo), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Description), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Remark), |
| | | StringHelper.RelpaceQuot(materialSaves[j].VerticalPosition), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Weight), |
| | | StringHelper.RelpaceQuot(materialSaves[j].IssueProjectNo), |
| | | StringHelper.RelpaceQuot(materialSaves[j].ProcurementProjectNo), |
| | | StringHelper.RelpaceQuot(materialSaves[j].CuttingType), |
| | | StringHelper.RelpaceQuot(materialSaves[j].PageNo), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Thick), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Wide), |
| | | StringHelper.RelpaceQuot(materialSaves[j].Length), |
| | | StringHelper.RelpaceQuot(materialSaves[j].MarkingPen), |
| | | StringHelper.RelpaceQuot(materialSaves[j].LaneSeparation)); |
| | | } |
| | | if (sql.EndsWith(",")) |
| | | { |
| | | sql = sql.Substring(0, sql.Length - 1); |
| | | } |
| | | var num = dbModel.Database.ExecuteSqlCommand(sql); |
| | | |
| | | return string.IsNullOrEmpty(msg); |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | msg = ex.Message; |
| | | LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "ImportExcel", ex.Message); |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | namespace iWareDataCore.ORM |
| | | { |
| | | using System; |
| | | using System.Data.Entity; |
| | | using System.ComponentModel.DataAnnotations.Schema; |
| | | using System.Linq; |
| | | |
| | | public partial class DbModelCore : DbContext |
| | | { |
| | |
| | | public virtual DbSet<WebOrderDetailView> WebOrderDetailView { get; set; } |
| | | public virtual DbSet<MaterialPlaceView> MaterialPlaceView { get; set; } |
| | | public virtual DbSet<BASEMaterialClass> BASEMaterialClass { get; set; } |
| | | |
| | | public virtual DbSet<Wms_outInStockRecord_V2_Mes> Wms_outInStockRecord_V2_Mes { get; set; } |
| | | |
| | | protected override void OnModelCreating(DbModelBuilder modelBuilder) |
| | | { |
| | | modelBuilder.Entity<Wms_outInStockRecord_V2_Mes>() |
| | | .Property(e => e.OutInFlagName) |
| | | .IsUnicode(false); |
| | | |
| | | modelBuilder.Entity<Wms_outInStockRecord_V2_Mes>() |
| | | .Property(e => e.PlaceCode) |
| | | .IsUnicode(false); |
| | | |
| | | modelBuilder.Entity<Wms_outInStockRecord_V2_Mes>() |
| | | .Property(e => e.IsSendToMesStr) |
| | | .IsUnicode(false); |
| | | |
| | | modelBuilder.Entity<Wms_outInStockRecord_V2_Mes>() |
| | | .Property(e => e.Creator) |
| | | .IsUnicode(false); |
| | | |
| | | modelBuilder.Entity<Wms_outInStockRecord_V2_Mes>() |
| | | .Property(e => e.LastModifier) |
| | | .IsUnicode(false); |
| | | |
| | | modelBuilder.Entity<BASEInOutList>() |
| | | .HasMany(e => e.BASEInOutListDetails) |
| | | .WithRequired(e => e.BASEInOutList) |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace iWareDataCore.ORM |
| | | { |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System.ComponentModel.DataAnnotations.Schema; |
| | | using System.Data.Entity.Spatial; |
| | | |
| | | public partial class Wms_outInStockRecord_V2_Mes |
| | | { |
| | | public int ID { get; set; } |
| | | |
| | | [StringLength(10)] |
| | | public string OutInFlagName { get; set; } |
| | | |
| | | [StringLength(128)] |
| | | public string ListNo { get; set; } |
| | | |
| | | [StringLength(128)] |
| | | public string Code { get; set; } |
| | | |
| | | [StringLength(128)] |
| | | public string Name { get; set; } |
| | | |
| | | [StringLength(128)] |
| | | public string SerialNo { get; set; } |
| | | |
| | | [StringLength(128)] |
| | | public string IssueProjectNo { get; set; } |
| | | |
| | | [StringLength(100)] |
| | | public string PlaceCode { get; set; } |
| | | |
| | | public DateTime? OccurrenceTime { get; set; } |
| | | |
| | | public int? IsSendToMes { get; set; } |
| | | |
| | | [StringLength(100)] |
| | | public string IsSendToMesStr { get; set; } |
| | | |
| | | public int? SendToMesCount { get; set; } |
| | | |
| | | public DateTime? SendToMesTime { get; set; } |
| | | |
| | | [StringLength(128)] |
| | | public string MesRet { get; set; } |
| | | |
| | | [StringLength(128)] |
| | | public string Remark { get; set; } |
| | | |
| | | [StringLength(128)] |
| | | public string Creator { get; set; } |
| | | |
| | | public DateTime? CreateTime { get; set; } |
| | | |
| | | [StringLength(128)] |
| | | public string LastModifier { get; set; } |
| | | |
| | | public DateTime? LastModifyTime { get; set; } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | //using System; |
| | | //using System.ComponentModel.DataAnnotations.Schema; |
| | | //using System.Data.Entity; |
| | | //using System.Linq; |
| | | |
| | | //namespace iWareDataCore.Test_ORM |
| | | //{ |
| | | // public partial class Test_ORM : DbContext |
| | | // { |
| | | // public Test_ORM() |
| | | // : base("name=Test_ORM") |
| | | // { |
| | | // } |
| | | |
| | | // public virtual DbSet<Wms_outInStockRecord_V2_Mes> Wms_outInStockRecord_V2_Mes { get; set; } |
| | | |
| | | // protected override void OnModelCreating(DbModelBuilder modelBuilder) |
| | | // { |
| | | // modelBuilder.Entity<Wms_outInStockRecord_V2_Mes>() |
| | | // .Property(e => e.OutInFlagName) |
| | | // .IsUnicode(false); |
| | | |
| | | // modelBuilder.Entity<Wms_outInStockRecord_V2_Mes>() |
| | | // .Property(e => e.PlaceCode) |
| | | // .IsUnicode(false); |
| | | |
| | | // modelBuilder.Entity<Wms_outInStockRecord_V2_Mes>() |
| | | // .Property(e => e.IsSendToMesStr) |
| | | // .IsUnicode(false); |
| | | |
| | | // modelBuilder.Entity<Wms_outInStockRecord_V2_Mes>() |
| | | // .Property(e => e.Creator) |
| | | // .IsUnicode(false); |
| | | |
| | | // modelBuilder.Entity<Wms_outInStockRecord_V2_Mes>() |
| | | // .Property(e => e.LastModifier) |
| | | // .IsUnicode(false); |
| | | // } |
| | | // } |
| | | //} |
| | |
| | | <Compile Include="BASE\Entity\InOutListEntity.cs" /> |
| | | <Compile Include="BASE\Entity\EmptyPlaceViewEntity.cs" /> |
| | | <Compile Include="BASE\Entity\InputMaterialEntity.cs" /> |
| | | <Compile Include="BASE\Entity\MaterialViewForMesEntity.cs" /> |
| | | <Compile Include="BASE\Entity\WebOrderDetailViewEntity.cs" /> |
| | | <Compile Include="BASE\Entity\WebOrderDetailEntity.cs" /> |
| | | <Compile Include="BASE\Entity\MaterialClassEntity.cs" /> |
| | |
| | | <Compile Include="TASK\Service\MainTaskViewService.cs" /> |
| | | <Compile Include="TASK\Service\PartTaskService.cs" /> |
| | | <Compile Include="TASK\Service\PartTaskViewService.cs" /> |
| | | <Compile Include="Test_ORM\Test_ORM.cs" /> |
| | | <Compile Include="ORM\Wms_outInStockRecord_V2_Mes.cs" /> |
| | | <Compile Include="WebDav\Entity\FileInfo.cs" /> |
| | | <Compile Include="WebDav\Service\FileService.cs" /> |
| | | </ItemGroup> |