添加日志功能,更新SignalR接口,优化前端日志展示逻辑
| | |
| | | /Code Management/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.12.31.40377/SemanticSymbols.db-shm |
| | | /Code Management/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.12.31.40377/SemanticSymbols.db-wal |
| | | /Code Management/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.12.31.40377/SemanticSymbols.db |
| | | /Code Management/.vs/Code Management/CopilotIndices/17.12.31.40377/CodeChunks.db |
| | | /Code Management/.vs/Code Management/CopilotIndices/17.12.31.40377/CodeChunks.db-shm |
| | | /Code Management/.vs/Code Management/CopilotIndices/17.12.31.40377/CodeChunks.db-wal |
| | | /Code Management/.vs/Code Management/CopilotIndices/17.12.31.40377/SemanticSymbols.db |
| | | /Code Management/.vs/Code Management/CopilotIndices/17.12.31.40377/SemanticSymbols.db-shm |
| | | /Code Management/.vs/Code Management/CopilotIndices/17.12.31.40377/CodeChunks.db-wal |
| | | /Code Management/.vs/Code Management/CopilotIndices/17.12.31.40377/SemanticSymbols.db-wal |
| | | /Code Management/.vs/slnx.sqlite |
| | |
| | | let loadingInstance; |
| | | let loadingStatus = false; |
| | | if (process.env.NODE_ENV == 'development') { |
| | | // axios.defaults.baseURL = 'http://127.0.0.1:9291/'; |
| | | axios.defaults.baseURL = 'http://192.168.5.251:9291/'; |
| | | axios.defaults.baseURL = 'http://127.0.0.1:9291/'; |
| | | // axios.defaults.baseURL = 'http://192.168.5.251:9291/'; |
| | | } |
| | | else if (process.env.NODE_ENV == 'debug') { |
| | | axios.defaults.baseURL = 'http://127.0.0.1:8098/'; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | //æ¤jsæä»¶æ¯ç¨æ¥èªå®ä¹æ©å±ä¸å¡ä»£ç ï¼å¯ä»¥æ©å±ä¸äºèªå®ä¹é¡µé¢æè
éæ°é
ç½®çæç代ç |
| | | import gridBody from './extend/routerview.vue'; |
| | | import gridHeader from './extend/addrouters.vue'; |
| | | let extension = { |
| | | components: { |
| | | //æ¥è¯¢ç颿©å±ç»ä»¶ |
| | | gridHeader: gridHeader, |
| | | gridBody: gridBody, |
| | | gridFooter: '', |
| | | //æ°å»ºãç¼è¾å¼¹åºæ¡æ©å±ç»ä»¶ |
| | | modelHeader: '', |
| | | modelBody: '', |
| | | modelFooter: '' |
| | | }, |
| | | tableAction: '', //æå®æå¼ 表çæé(è¿éå¡«å表å,é»è®¤ä¸ç¨å¡«å) |
| | | buttons: { view: [], box: [], detail: [] }, //æ©å±çæé® |
| | | methods: { |
| | | //ä¸é¢è¿äºæ¹æ³å¯ä»¥ä¿çä¹å¯ä»¥å é¤ |
| | | onInit() { |
| | | |
| | | }, |
| | | onInited() { |
| | | //æ¡æ¶åå§åé
ç½®å |
| | | //妿è¦é
ç½®æç»è¡¨,卿¤æ¹æ³æä½ |
| | | //this.detailOptions.columns.forEach(column=>{ }); |
| | | }, |
| | | searchBefore(param) { |
| | | //ç颿¥è¯¢å,å¯ä»¥ç»param.wheresæ·»å æ¥è¯¢åæ° |
| | | //è¿åfalseï¼åä¸ä¼æ§è¡æ¥è¯¢ |
| | | return true; |
| | | }, |
| | | searchAfter(result) { |
| | | //æ¥è¯¢åï¼resultè¿åçæ¥è¯¢æ°æ®,å¯ä»¥å¨æ¾ç¤ºå°è¡¨æ ¼åå¤çè¡¨æ ¼çå¼ |
| | | return true; |
| | | }, |
| | | addBefore(formData) { |
| | | //æ°å»ºä¿ååformData为对象ï¼å
æ¬æç»è¡¨ï¼å¯ä»¥ç»ç»è¡¨å设置å¼ï¼èªå·±è¾åºçformDataçå¼ |
| | | return true; |
| | | }, |
| | | updateBefore(formData) { |
| | | //ç¼è¾ä¿ååformData为对象ï¼å
æ¬æç»è¡¨ãå é¤è¡çId |
| | | return true; |
| | | }, |
| | | rowClick({ row, column, event }) { |
| | | //æ¥è¯¢çé¢ç¹å»è¡äºä»¶ |
| | | // this.$refs.table.$refs.table.toggleRowSelection(row); //åå»è¡æ¶éä¸å½åè¡; |
| | | }, |
| | | modelOpenAfter(row) { |
| | | //ç¹å»ç¼è¾ãæ°å»ºæé®å¼¹åºæ¡åï¼å¯ä»¥å¨æ¤å¤åé»è¾ï¼å¦ï¼ä»åå°è·åæ°æ® |
| | | //(1)夿æ¯ç¼è¾è¿æ¯æ°å»ºæä½ï¼ this.currentAction=='Add'; |
| | | //(2)ç»å¼¹åºæ¡è®¾ç½®é»è®¤å¼ |
| | | //(3)this.editFormFields.åæ®µ='xxx'; |
| | | //妿éè¦ç»ä¸ææ¡è®¾ç½®é»è®¤å¼ï¼è¯·éåthis.editFormOptionsæ¾å°å段é
置对åºdata屿§çkeyå¼ |
| | | //ç䏿就æè¾åºçï¼console.log(this.editFormOptions) |
| | | } |
| | | } |
| | | }; |
| | | export default extension; |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | //æ¤jsæä»¶æ¯ç¨æ¥èªå®ä¹æ©å±ä¸å¡ä»£ç ï¼å¯ä»¥æ©å±ä¸äºèªå®ä¹é¡µé¢æè
éæ°é
ç½®çæç代ç |
| | | import gridBody from './extend/taskExecuteDetail.vue' |
| | | let extension = { |
| | | components: { |
| | | //æ¥è¯¢ç颿©å±ç»ä»¶ |
| | | gridHeader: '', |
| | | gridBody: gridBody, |
| | | gridFooter: '', |
| | | //æ°å»ºãç¼è¾å¼¹åºæ¡æ©å±ç»ä»¶ |
| | | modelHeader: '', |
| | | modelBody: '', |
| | | modelFooter: '' |
| | | }, |
| | | tableAction: '', //æå®æå¼ 表çæé(è¿éå¡«å表å,é»è®¤ä¸ç¨å¡«å) |
| | | buttons: { view: [], box: [], detail: [] }, //æ©å±çæé® |
| | | methods: { |
| | | //ä¸é¢è¿äºæ¹æ³å¯ä»¥ä¿çä¹å¯ä»¥å é¤ |
| | | onInit() { |
| | | // this.$Notice.success({ title: this.detailOptions.cnName + ',æ¥è¯¢ç»æ', desc: 'è¿åç对象ï¼' + JSON.stringify(data) }); |
| | | |
| | | // var previousButton = this.buttons.find((x) => x.value == "Previous"); |
| | | // if (previousButton) previousButton.hidden = true; |
| | | // var nextButton = this.buttons.find((x) => x.value == "Next"); |
| | | // if (nextButton) nextButton.hidden = true; |
| | | // var recoveryButton = this.buttons.find((x) => x.value == "TaskRecovery"); |
| | | // if (recoveryButton) recoveryButton.hidden = true; |
| | | |
| | | //æ©å±é¡µé¢åå§åæä½ |
| | | this.columns.push({ |
| | | field: 'æä½', |
| | | title: 'æä½', |
| | | width: 70, |
| | | fixed: 'right', |
| | | align: 'center', |
| | | formatter: (row) => { |
| | | return ( |
| | | '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-view">æ¥ç</i>' |
| | | ); |
| | | }, |
| | | click: (row) => { |
| | | this.$refs.gridBody.open(row); |
| | | } |
| | | }); |
| | | }, |
| | | onInited() { |
| | | //æ¡æ¶åå§åé
ç½®å |
| | | //妿è¦é
ç½®æç»è¡¨,卿¤æ¹æ³æä½ |
| | | //this.detailOptions.columns.forEach(column=>{ }); |
| | | }, |
| | | searchBefore(param) { |
| | | //ç颿¥è¯¢å,å¯ä»¥ç»param.wheresæ·»å æ¥è¯¢åæ° |
| | | //è¿åfalseï¼åä¸ä¼æ§è¡æ¥è¯¢ |
| | | return true; |
| | | }, |
| | | searchAfter(result) { |
| | | //æ¥è¯¢åï¼resultè¿åçæ¥è¯¢æ°æ®,å¯ä»¥å¨æ¾ç¤ºå°è¡¨æ ¼åå¤çè¡¨æ ¼çå¼ |
| | | return true; |
| | | }, |
| | | addBefore(formData) { |
| | | //æ°å»ºä¿ååformData为对象ï¼å
æ¬æç»è¡¨ï¼å¯ä»¥ç»ç»è¡¨å设置å¼ï¼èªå·±è¾åºçformDataçå¼ |
| | | return true; |
| | | }, |
| | | updateBefore(formData) { |
| | | //ç¼è¾ä¿ååformData为对象ï¼å
æ¬æç»è¡¨ãå é¤è¡çId |
| | | return true; |
| | | }, |
| | | rowClick({ row, column, event }) { |
| | | //æ¥è¯¢çé¢ç¹å»è¡äºä»¶ |
| | | // this.$refs.table.$refs.table.toggleRowSelection(row); //åå»è¡æ¶éä¸å½åè¡; |
| | | }, |
| | | modelOpenAfter(row) { |
| | | //ç¹å»ç¼è¾ãæ°å»ºæé®å¼¹åºæ¡åï¼å¯ä»¥å¨æ¤å¤åé»è¾ï¼å¦ï¼ä»åå°è·åæ°æ® |
| | | //(1)夿æ¯ç¼è¾è¿æ¯æ°å»ºæä½ï¼ this.currentAction=='Add'; |
| | | //(2)ç»å¼¹åºæ¡è®¾ç½®é»è®¤å¼ |
| | | //(3)this.editFormFields.åæ®µ='xxx'; |
| | | //妿éè¦ç»ä¸ææ¡è®¾ç½®é»è®¤å¼ï¼è¯·éåthis.editFormOptionsæ¾å°å段é
置对åºdata屿§çkeyå¼ |
| | | //ç䏿就æè¾åºçï¼console.log(this.editFormOptions) |
| | | } |
| | | } |
| | | }; |
| | | export default extension; |
| | |
| | | connection.on("LineData", (data) => { |
| | | eventBus.emit("locationData", data); |
| | | }); |
| | | connection.on("Logs", (data) => { |
| | | eventBus.emit("Logs", data); |
| | | }); |
| | | }; |
| | | |
| | | //页é¢éæ¯ |
| | |
| | | <template> |
| | | <div class="title"></div> |
| | | <el-container> |
| | | <el-header>æ¥å¿</el-header> |
| | | <el-main> |
| | | <el-card v-for="(log, index) in logs" :key="index" class="log-card" :style="{ color: log.color }"> |
| | | <div :style="{ color: log.color }">{{ log.logEntry }}</div> |
| | | <div :style="{ color: log.color }">{{ log.time }}</div> |
| | | </el-card> |
| | | </el-main> |
| | | </el-container> |
| | | </template> |
| | | |
| | | <script> |
| | | import { ref, reactive } from 'vue' |
| | | import eventBus from "../uitils/eventBus"; |
| | | import { ref, onMounted } from 'vue' |
| | | import eventBus from "@/uitils/eventBus"; |
| | | |
| | | export default { |
| | | setup() { |
| | | const logs = ref([]); |
| | | onMounted(() => { |
| | | eventBus.on('Logs', eventData => { |
| | | if (logs.value.length > 500) { |
| | | logs.value = []; |
| | | } |
| | | const logEntry = "æ¥å¿ä¿¡æ¯ï¼" + eventData.log |
| | | const time = "æ¶é´ï¼" + eventData.time |
| | | logs.value.unshift({ logEntry: logEntry, time: time, color: eventData.color }); |
| | | |
| | | // logs.value.unshift(logEntry); |
| | | }); |
| | | }); |
| | | return { |
| | | logs |
| | | } |
| | | |
| | | eventBus.on('stackerData', eventData => { |
| | | console.log(eventData); |
| | | }) |
| | | eventBus.on('locationData', eventData => { |
| | | console.log(eventData); |
| | | }) |
| | | } |
| | | } |
| | | </script> |
| | |
| | | font-size: 28px; |
| | | color: orange; |
| | | } |
| | | |
| | | .log-card { |
| | | margin-bottom: 10px; |
| | | } |
| | | </style> |
| | |
| | | "MainDB": "DB_WIDESEA", //å½å项ç®ç主åºï¼æå¯¹åºçè¿æ¥å符串çEnabledå¿
须为true |
| | | //è¿æ¥å符串 |
| | | //"ConnectionString": "HTI6FB1H05Krd07mNm9yBCNhofW6edA5zLs9TY~MNthRYW3kn0qKbMIsGp~3yyPDF1YZUCPBQx8U0Jfk4PH~ajNFXVIwlH85M3F~v_qKYQ3CeAz3q1mLVDn8O5uWt1~3Ut2V3KRkEwYHvW2oMDN~QIDXPxDgXN0R2oTIhc9dNu7QNaLEknblqmHhjaNSSpERdDVZIgHnMKejU_SL49tralBkZmDNi0hmkbL~837j1NWe37u9fJKmv91QPb~16JsuI9uu0EvNZ06g6PuZfOSAeFH9GMMIZiketdcJG3tHelo=", |
| | | //"ConnectionString": "Data Source=127.0.0.1;Initial Catalog=WIDESEA_WCS2F08;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=True", |
| | | "ConnectionString": "Data Source=127.0.0.1;Initial Catalog=WIDESEA_WCS2F08;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=True", |
| | | //"ConnectionString": "Data Source=192.168.20.251;Initial Catalog=WIDESEA_WCSDB;User ID=sa;Password=123456@gy;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | "ConnectionString": "Data Source=192.168.5.251;Initial Catalog=WIDESEAWCS_TEST;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | //"ConnectionString": "Data Source=192.168.5.251;Initial Catalog=WIDESEAWCS_TEST;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | //è·¨å |
| | | "Cors": { |
| | | "PolicyName": "CorsIpAccess", //çç¥åç§° |
| | |
| | | /// <param name="context"></param> |
| | | /// <returns></returns> |
| | | Task LineData(object context); |
| | | |
| | | /// <summary> |
| | | /// çº¿ä½æ°æ® |
| | | /// </summary> |
| | | /// <param name="context"></param> |
| | | /// <returns></returns> |
| | | Task Logs(object context); |
| | | } |
| | |
| | | /// <param name="message">éç¥å
容</param> |
| | | /// <returns></returns> |
| | | Task LineData(int? userId, List<string> clientIds, object message); |
| | | |
| | | /// <summary> |
| | | /// æ¥å¿æµç¨æ°æ® |
| | | /// </summary> |
| | | /// <param name="userId">ç¨æ·ID</param> |
| | | /// <param name="clientIds">clientIdå表</param> |
| | | /// <param name="message">éç¥å
容</param> |
| | | /// <returns></returns> |
| | | Task Logs(List<string> clientIds, object message); |
| | | } |
| | |
| | | await GetHubContext().Clients.Users(clientIds).LineData(message); |
| | | } |
| | | |
| | | /// <inheritdoc/> |
| | | public async Task Logs(List<string> clientIds, object message) |
| | | { |
| | | //åéæ¶æ¯ç»ç¨æ· |
| | | await GetHubContext().Clients.Users(clientIds).Logs(message); |
| | | } |
| | | |
| | | #endregion MyRegion |
| | | } |
| | |
| | | _Task.TaskState = (int)TaskInStatusEnum.InNew; |
| | | _Task.CurrentAddress = task.SourceAddress; |
| | | _Task.NextAddress = station.stationNGChildCode; |
| | | _Task.TargetAddress = station.stationNGLocation; |
| | | _Task.Roadway = station.Roadway; |
| | | _Task.TargetAddress = task.TargetAddress; |
| | | |
| | | BaseDal.AddData(_Task); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(_Task.TaskNum, "æ¥æ¶WMSä»»å¡"); |
| | |
| | | using AutoMapper; |
| | | using HslCommunication; |
| | | using NetTaste; |
| | | using Newtonsoft.Json; |
| | | using Quartz; |
| | | using SqlSugar; |
| | |
| | | private readonly IDt_StationManagerRepository _stationManagerRepository; |
| | | private readonly ICacheService _cacheService; |
| | | private readonly INoticeService _noticeService; |
| | | |
| | | private static List<string>? userTokenIds; |
| | | private static List<int>? userIds; |
| | | |
| | | |
| | | public CommonConveyorLineJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, IPlatFormRepository platFormRepository, ISys_ConfigService sys_ConfigService, IDt_StationManagerService stationManagerService, IDt_StationManagerRepository stationManagerRepository, ICacheService cacheService, INoticeService noticeService) |
| | | { |
| | |
| | | ConveyorLineTaskCommandWrite commandWrite = conveyorLine.ReadCustomer<ConveyorLineTaskCommandWrite>(childDeviceCode, "DeviceCommand"); |
| | | if (command != null && commandWrite != null) |
| | | { |
| | | |
| | | #region è°ç¨äºä»¶æ»çº¿éç¥å端 |
| | | |
| | | // è·åç¼åä¸çç¨æ·ä¿¡æ¯ |
| | | var tokenInfos = _cacheService.Get<List<UserInfo>>("Cache_UserToken"); |
| | | if (tokenInfos != null && tokenInfos.Any()) |
| | | if (userTokenIds == null && userIds == null) |
| | | { |
| | | var userTokenIds = tokenInfos.Select(x => x.Token_ID).ToList(); |
| | | var userIds = tokenInfos.Select(x => x.UserId).ToList(); |
| | | var tokenInfos = _cacheService.Get<List<UserInfo>>("Cache_UserToken"); |
| | | if (tokenInfos != null && tokenInfos.Any()) |
| | | { |
| | | userTokenIds = tokenInfos.Select(x => x.Token_ID).ToList(); |
| | | userIds = tokenInfos.Select(x => x.UserId).ToList(); |
| | | |
| | | // æé éç¥æ°æ® |
| | | object obj = new |
| | | { |
| | | command, |
| | | commandWrite |
| | | }; |
| | | // åééç¥ |
| | | _noticeService.LineData(userIds.FirstOrDefault(), userTokenIds, new { conveyorLine.DeviceName, childDeviceCode, data = obj }); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | // æé éç¥æ°æ® |
| | | object obj = new |
| | | { |
| | |
| | | int itemValue = item.ProtocalDetailValue.ObjToInt(); |
| | | if (structs[itemValue] == true) |
| | | { |
| | | var numRead = itemValue; |
| | | var numWrite = itemValue + 1; |
| | | // è¾åºè¦åä¿¡æ¯ |
| | | ConsoleHelper.WriteWarningLine($"ã{conveyorLine.DeviceName}ãã{childDeviceCode}ãã{numRead.ToString()}ãä½è¾é线读åä¿¡å·ï¼ã{structs[itemValue]}ã ã{numWrite}ãä½WCSåå
¥ä¿¡å·ï¼ã{structs[itemValue + 1]}ã"); |
| | | if (structs[itemValue + 1] != structs[itemValue]) |
| | | // è·åå¤çæ¹æ³ |
| | | MethodInfo? method = GetType().GetMethod(item.ProtocolDetailType); |
| | | if (method != null) |
| | | { |
| | | // è·åå¤çæ¹æ³ |
| | | MethodInfo? method = GetType().GetMethod(item.ProtocolDetailType); |
| | | if (method != null) |
| | | { |
| | | command.InteractiveSignal = writeInteractiveSignal; |
| | | // è°ç¨å¤çæ¹æ³ |
| | | method.Invoke(this, new object[] { conveyorLine, command, childDeviceCode, itemValue }); |
| | | } |
| | | command.InteractiveSignal = writeInteractiveSignal; |
| | | // è°ç¨å¤çæ¹æ³ |
| | | method.Invoke(this, new object[] { conveyorLine, command, childDeviceCode, itemValue }); |
| | | } |
| | | } |
| | | else |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | |
| | | /// <param name="command">读åç请æ±ä¿¡æ¯</param> |
| | | /// <param name="childDeviceCode">å设å¤ç¼å·</param> |
| | | /// <param name="ProtocalDetailValue">线ä½å½åbool读ååç§»å°å</param> |
| | | public async Task RequestInboundAsync(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue) |
| | | public async Task RequestInbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue) |
| | | { |
| | | try |
| | | { |
| | | // è¾åºè¦åä¿¡æ¯ï¼è¡¨ç¤ºä»»å¡å·²å°è¾¾å设å¤å¹¶è¯·æ±æ«ç å
¥åº |
| | | ConsoleHelper.WriteWarningLine($"ã{conveyorLine._deviceName}ãä»»å¡å·ï¼ã{command.TaskNum}ã,æçæ¡ç ï¼ã{command.Barcode}ãå·²å°è¾¾ã{childDeviceCode}ãè¯·æ±æ«ç å
¥åº"); |
| | | var log = $"ã{conveyorLine._deviceName}ãä»»å¡å·ï¼ã{command.TaskNum}ã,æçæ¡ç ï¼ã{command.Barcode}ãå·²å°è¾¾ã{childDeviceCode}ãè¯·æ±æ«ç å
¥åº"; |
| | | ConsoleHelper.WriteWarningLine(log); |
| | | // åééç¥ |
| | | await _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" }); |
| | | WriteInfo(conveyorLine.DeviceName, log); |
| | | |
| | | // æ¥è¯¢æ¡ç 对åºçä»»å¡ |
| | | var task = _taskService.QueryBarCodeConveyorLineTask(command.Barcode, childDeviceCode); |
| | |
| | | |
| | | #endregion æ£æµç©ºçå®çä»»å¡ |
| | | |
| | | #region åæNGå£å
¥åº |
| | | #region 设å¤NGå£å
¥åº |
| | | |
| | | public void NGRequestTaskInbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue, string TargetAddress) |
| | | { |
| | |
| | | WriteInfo("å
¥ç«æ ¡éª", $"ã{childDeviceCode}ãå
¥ç«æ ¡éªè¿ååæ°ã{result}ã"); |
| | | ResultTrayCellsStatus result1 = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(result); |
| | | |
| | | var serialNosError = result1.SerialNos.Where(x => x.SerialNoStatus != 1).ToList(); |
| | | if (serialNosError.Count > 0) |
| | | if (result1.Success) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | if (result1.SerialNos.Count <= 0) |
| | | { |
| | | // 空æçå
¥åºé»è¾ |
| | | Dt_Task dt_Task = new Dt_Task() |
| | | var serialNosError = result1.SerialNos.Where(x => x.SerialNoStatus != 1).ToList(); |
| | | if (serialNosError.Count > 0) |
| | | { |
| | | TargetAddress = TargetAddress, |
| | | PalletCode = command.Barcode, |
| | | NextAddress = TargetAddress, |
| | | TaskNum = 0 |
| | | }; |
| | | return; |
| | | } |
| | | |
| | | var next = dt_Task.NextAddress; |
| | | var taskCommand = MapTaskCommand(dt_Task, command); |
| | | dt_Task.NextAddress = next; |
| | | if (result1.SerialNos.Count <= 0) |
| | | { |
| | | // 空æçå
¥åºé»è¾ |
| | | Dt_Task dt_Task = new Dt_Task() |
| | | { |
| | | TargetAddress = TargetAddress, |
| | | PalletCode = command.Barcode, |
| | | NextAddress = TargetAddress, |
| | | TaskNum = 0 |
| | | }; |
| | | |
| | | conveyorLine.SendCommand(taskCommand, childDeviceCode); |
| | | var next = dt_Task.NextAddress; |
| | | var taskCommand = MapTaskCommand(dt_Task, command); |
| | | dt_Task.NextAddress = next; |
| | | |
| | | ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); |
| | | conveyorLine.SendCommand(taskCommand, childDeviceCode); |
| | | |
| | | ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); |
| | | } |
| | | else |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTargetAddress, 1000, childDeviceCode); |
| | | |
| | | ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTargetAddress, 1000, childDeviceCode); |
| | | |
| | | ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); |
| | | } |
| | | } |
| | | |
| | |
| | | /// </summary> |
| | | private async Task RequestWmsTask(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue) |
| | | { |
| | | |
| | | var content = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode); |
| | | if (content.Status) |
| | | { |
| | |
| | | { |
| | | if (task.SourceAddress == "1059-4") |
| | | { |
| | | |
| | | //conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTargetAddress, "1000", childDeviceCode); |
| | | |
| | | ConsoleHelper.WriteWarningLine($"ã{conveyorLine._deviceName}ãä»»å¡å·ï¼ã{task.TaskNum}ã,æçæ¡ç ï¼ã{task.PalletCode}ãå·²å°è¾¾ã{childDeviceCode}ãè¯·æ±æ«ç å
¥åº(å®ç),ä¸ä¸ç®æ å°åã{1000}ã"); |
| | |
| | | let loadingInstance |
| | | let loadingStatus = false |
| | | if (process.env.NODE_ENV == 'development') { |
| | | axios.defaults.baseURL = 'http://localhost:5000/'; |
| | | // axios.defaults.baseURL = 'http://192.168.20.251:5000/'; |
| | | // axios.defaults.baseURL = 'http://localhost:5000/'; |
| | | axios.defaults.baseURL = 'http://192.168.5.251:5000/'; |
| | | } |
| | | else if (process.env.NODE_ENV == 'debug') { |
| | | axios.defaults.baseURL = 'http://127.0.0.1:9991/'; |
| | |
| | | [{ field: 'id', title: 'åºåID', type: 'int', width: 110, hidden: true, readonly: true, require: true, align: 'left' }, |
| | | { field: 'locationCode', title: 'åºä½', type: 'string', width: 110, align: 'left', }, |
| | | { field: 'palletCode', title: 'æçæ¡ç ', type: 'string', width: 110, align: 'left', }, |
| | | { field: 'isFull', title: 'åºåç±»å', type: 'bool', width: 110, align: 'left', bind: { key: "isFull", data: [] }, }, |
| | | { field: 'isFull', title: 'åºåç±»å', type: 'bool', width: 110, align: 'left', bind: { key: "isFull", data: [{ key: false, value: '空ç'},{ key: true, value: 'å®ç'}] }, }, |
| | | { field: 'linedProcessFeedbackTime', title: 'å·¥èºå¼å§æ¶é´', type: 'string', width: 110, align: 'left',}, |
| | | { field: 'specialParameterDuration', title: 'å·¥èºæ¶é¿', type: 'string', width: 110, align: 'left', sort: true }, |
| | | { field: 'outboundTime', title: 'åºåºåºæ¶é´', type: 'string', width: 110, align: 'left', sort: true }, |
| | |
| | | if (expressionType == LinqExpressionType.Equal) |
| | | { |
| | | if (string.IsNullOrEmpty(where)) |
| | | { |
| | | // é对å符串类åçåæ®µä½¿ç¨æ¨¡ç³æ¥è¯¢ |
| | | where += $"{searchParametersList[i].Name} like '%{searchParametersList[i].Value}%'"; |
| | | } |
| | | else |
| | | where += $" and {searchParametersList[i].Name} = '{searchParametersList[i].Value}'"; |
| | | { |
| | | // é对å¸å°ç±»ååæ®µè¿è¡ç²¾ç¡®æ¥è¯¢ |
| | | if (searchParametersList[i].Value.ToLower() == "true" || searchParametersList[i].Value.ToLower() == "false") |
| | | { |
| | | where += $" and {searchParametersList[i].Name} = {searchParametersList[i].Value.ToLower()}"; |
| | | } |
| | | else |
| | | { |
| | | where += $" and {searchParametersList[i].Name} like '%{searchParametersList[i].Value}%'"; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |