| | |
| | | /Code Management/WMS/WIDESEA_WMSServer/LogLibrary/obj/Debug/net6.0/LogLibrary.csproj.CoreCompileInputs.cache |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/Debug/net6.0/WIDESEA_IStoragIntegrationServices.csproj.FileListAbsolute.txt |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/WIDESEA_StoragIntegrationServices.csproj |
| | | *.tmp |
| | | *.txt |
| | | /Code Management/WCS/WIDESEAWCS_Client/package-lock.json |
| | | /Code Management/WMS/WIDESEA_WMSClient/src/api/http.js |
| | | /Code Management/WCS/WIDESEAWCS_Client/yarn.lock |
| | |
| | | public T ReadCustomer<T>(string deviceChildCode) where T : IDataTransfer, new() |
| | | { |
| | | if (!IsConnected) throw new Exception($"éè®¯è¿æ¥é误ï¼è¯·æ£æ¥ç½ç»"); |
| | | DeviceProDTO? devicePro = _deviceProDTOs.Where(x => x.DeviceProParamType == "ReadDeviceCommand" && x.DeviceChildCode == deviceChildCode).OrderBy(x => x.DeviceProOffset).FirstOrDefault(); |
| | | DeviceProDTO? devicePro = _deviceProDTOs.Where(x => x.DeviceProParamType == "DeviceCommand" && x.DeviceChildCode == deviceChildCode).OrderBy(x => x.DeviceProOffset).FirstOrDefault(); |
| | | |
| | | if (devicePro == null) |
| | | { |
| | |
| | | //saveModel.MainData[""] |
| | | return base.AddData(saveModel); |
| | | } |
| | | |
| | | //public WebResponseContent InsertProtocol_Line(int PLCid,string ChildCode,) |
| | | //{ |
| | | |
| | | //} |
| | | } |
| | | } |
| | |
| | | |
| | | _taskService.UpdateTaskStatusToNext(inTask); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | public short Reserved3 { get; set; } |
| | | public byte InteractiveSignal { get; set; } |
| | | public short HasPallet { get; set; } |
| | | public short ConveyorLineAlarm { get; set; } |
| | | public short Reserved4 { get; set; } |
| | | public short Reserved5 { get; set; } |
| | | //public ushort ConveyorLineAlarm { get; set; } |
| | | //public short Reserved4 { get; set; } |
| | | //public short Reserved5 { get; set; } |
| | | } |
| | | |
| | | //public class ConveyorLineTaskCommandWrite : DeviceCommand |
| | |
| | | <template> |
| | | <div class="home-contianer"> |
| | | <div class="h-top"> |
| | | <div class="h-top-left" id="h-chart1">left</div> |
| | | <div class="h-top-center"> |
| | | <div class="n-item"> |
| | | <div |
| | | @click="open(item)" |
| | | class="item" |
| | | :class="'item' + (index + 1)" |
| | | v-for="(item, index) in center" |
| | | :key="index" |
| | | > |
| | | <i |
| | | style="font-size: 30px; padding-bottom: 10px" |
| | | :class="item.icon" |
| | | :size="20" |
| | | ></i> |
| | | <br /> |
| | | {{ item.title }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="h-top-right task-table"> |
| | | <h3 class="h3">#æ¡æ¶Vue3.xçæ¬åæ´è¯´æ</h3> |
| | | <table border="0" cellspacing="0" cellpadding="0"> |
| | | <tr v-for="(row, index) in list" :key="index"> |
| | | <td>{{ index + 1 }}</td> |
| | | <td>{{ row.desc }}</td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | </div> |
| | | <div class="h-chart"> |
| | | <div class="h-left-grid"> |
| | | <div class="item" v-for="(item, index) in grid" :key="index"> |
| | | <div class="icon-text"> |
| | | <i :class="item.icon"></i> |
| | | <span class="name">{{ item.name }}</span> |
| | | </div> |
| | | <div class="desc">{{ item.desc }}</div> |
| | | </div> |
| | | </div> |
| | | <div id="h-chart2"></div> |
| | | <div id="h-chart3"></div> |
| | | </div> |
| | | <div style="display: flex;"> |
| | | <div |
| | | id="h-chart4" |
| | | style="height: 350px; background: white; flex: 1;padding-top:15px;" |
| | | ></div> |
| | | <div |
| | | id="h-chart5" |
| | | style="height: 350px; background: white; flex: 1;padding-top:15px;" |
| | | ></div> |
| | | </div> |
| | | |
| | | </div> |
| | | </template> |
| | | <script> |
| | |
| | | components: {}, |
| | | data() { |
| | | return { |
| | | center: [ |
| | | { |
| | | title: 'GitHub', |
| | | icon: 'el-icon-set-up', |
| | | url: 'https://github.com/cq-panda/Vue.NetCore' |
| | | }, |
| | | { |
| | | title: 'Gitee', |
| | | icon: 'el-icon-turn-off', |
| | | url: 'https://gitee.com/x_discoverer/Vue.NetCore' |
| | | }, |
| | | { |
| | | title: 'æ¡æ¶Vue2çæ¬', |
| | | icon: 'el-icon-reading', |
| | | url: 'http://v2.volcore.xyz' |
| | | }, |
| | | |
| | | { |
| | | title: 'æ¡æ¶è§é¢', |
| | | icon: 'el-icon-document', |
| | | url: 'https://www.cctalk.com/m/group/90268531' |
| | | }, |
| | | |
| | | { |
| | | title: 'å°ç¨åº/app/h5', |
| | | icon: 'el-icon-chat-line-round', |
| | | url: 'http://v2.volcore.xyz/app/guide' |
| | | }, |
| | | { |
| | | title: 'QQ4群ï¼959924606', |
| | | icon: 'el-icon-chat-dot-round', |
| | | url: 'https://qm.qq.com/cgi-bin/qm/qr?k=YRZBbf64qsUeEmh24I65u2aIZFn2C-Ha&jump_from=webapi&qr=1' |
| | | } |
| | | ], |
| | | |
| | | n: 90, |
| | | value1: '1', |
| | | applicants: { |
| | | //æ¥åä¿¡æ¯ |
| | | day: 20, //æ¬æ¥ |
| | | week: 150, //æ¬å¨ |
| | | month: 1200, //æ¬æ |
| | | totalBoy: 800, |
| | | totalGirl: 890, |
| | | taotal: 1690 |
| | | }, //æ¥åä¿¡æ¯ |
| | | list: [ |
| | | { desc: 'æ¡æ¶2.xçæ¬ä¸æ¯æç´æ¥å级Vue3çæ¬(代ç çæå¨å·²ä¿®æ¹)' }, |
| | | { desc: 'æ¡æ¶ä½¿ç¨çElement Plusç»ä»¶ï¼ç§»é¤äºIviewç»ä»¶çä¾èµ' }, |
| | | { desc: 'æ¡æ¶å
é¨ç»ä»¶å
¨é¨éæ°ä¼å,ç¸æ¯2.xçæ¬é¦å±å¤§å°åå°60%' }, |
| | | { desc: 'æ¡æ¶Vue2çæ¬ä¼ç»§ç»ç»´æ¤,å¹¶ä¸Vue3çæ¬åæ¥æ´æ°,请æ¾å¿ä½¿ç¨' }, |
| | | { desc: 'æ¡æ¶Vue2ãVue3çæ¬å¼åææ¡£ä¸è´(å·®å¼é¨åææ¡£ä¼å¤æ³¨è¯´æ)' }, |
| | | //{ desc: "è¥æ£å¨ä½¿ç¨Vue2æ¡æ¶çæ¬ç»§ç»ä½¿ç¨å³å¯;å
¶ä»å»ºè®®ä½¿ç¨Vue3çæ¬" }, |
| | | { |
| | | desc: 'vue2ãvue3ææ¡£ç¸å,å¼ææ¡£å¤§é¨åææ¡£ä»ç¶ä½¿ç¨çvue2è¯æ³' |
| | | }, |
| | | { |
| | | desc: 'èªå®ä¹é¨åæ¢å¯ä»¥ä½¿ç¨vue3è¯æ³ä¸å¯ä»¥ä½¿ç¨vue3è¯æ³' |
| | | } |
| | | //(æ¡æ¶å
é¨ç»ä»¶vue2/3è¯æ³é½å¨ä½¿ç¨),ä½ ä¹å¯ä»¥ä½¿ç¨vue3è¯æ³ |
| | | ], |
| | | grid: [ |
| | | { |
| | | name: 'ç¨æ·ç®¡ç', |
| | | desc: 'ç³»ç»ç¨æ·ç®¡ç,注åç¨æ·3000000人ã', |
| | | icon: 'el-icon-user' |
| | | }, |
| | | { |
| | | name: 'ç«å
æ¶æ¯', |
| | | desc: 'æ¨æä¸æ¡æ°çæ¶æ¯,è¯·åæ¶å¤çã', |
| | | icon: 'el-icon-chat-dot-round' |
| | | }, |
| | | { |
| | | name: 'ç³»ç»ç®¡ç', |
| | | desc: 'è¿éæ¾ç¹ä»ä¹,è¿æ²¡æ³å¥½ã', |
| | | icon: 'el-icon-setting' |
| | | }, |
| | | { |
| | | name: 'è¿æ²¡æ³å¥½', |
| | | desc: 'è¿éä¸ç¥éåºè¯¥æ¾ç¹ä»ä¹æè
åç¹ä»ä¹ã', |
| | | icon: 'el-icon-document' |
| | | }, |
| | | { |
| | | name: 'è¯é³å¯¼èª', |
| | | desc: 'é«å¾·å°å¾æå¿ç²ä¸ºæ¨è¯é³å¯¼èªã', |
| | | icon: 'el-icon-microphone' |
| | | }, |
| | | { |
| | | name: 'åå¾åæ¶', |
| | | desc: 'å é¤è¿çæ°æ®å¨æ¤å¤æ¾åãããã', |
| | | icon: 'el-icon-delete' |
| | | } |
| | | ] |
| | | }; |
| | | }, |
| | | setup() { |
| | |
| | | }; |
| | | let interval; |
| | | onMounted(() => { |
| | | $chart = echarts.init(document.getElementById('h-chart1')); |
| | | $chart.setOption(chart1); |
| | | $chart2 = echarts.init(document.getElementById('h-chart2')); |
| | | $chart2.setOption(chart2); |
| | | |
| | | // interval = setInterval(() => { |
| | | // chart2.xAxis[0].data.splice(0, 1); |
| | |
| | | // chart2.series[1].data.push(~~(Math.random() * 1000)); |
| | | // $chart2.setOption(chart2); |
| | | // }, 2000); |
| | | |
| | | $chart3 = echarts.init(document.getElementById('h-chart3')); |
| | | $chart3.setOption(chart3); |
| | | let $chart4 = echarts.init(document.getElementById('h-chart4')); |
| | | $chart4.setOption(chart4); |
| | | let $chart5 = echarts.init(document.getElementById('h-chart5')); |
| | | $chart5.setOption(chart2); |
| | | }); |
| | | onUnmounted(() => { |
| | | interval && clearInterval(interval); |
| | | if ($chart) { |
| | | $chart.dispose(); |
| | | $chart2.dispose(); |
| | | $chart3.dispose(); |
| | | } |
| | | |
| | | }); |
| | | return { open }; |
| | | }, |
| | | destroyed() { |
| | | $chart2 = null; |
| | | } |
| | | }; |
| | | var $chart, $chart2, $chart3; |
| | | // window.addEventListener("resize", function () { |
| | | // $chart2.setOption(chart2); |
| | | // }); |
| | |
| | | { field: 'row', title: 'è¡', type: 'string', width: 70, align: 'left' }, |
| | | { field: 'column', title: 'å', type: 'string', width: 70, align: 'left' }, |
| | | { field: 'layer', title: 'å±', type: 'string', width: 110, align: 'left' }, |
| | | { field: 'depth', title: '深度', type: 'string', width: 110, align: 'left' }, |
| | | { field: 'depth', title: '深度', type: 'string', width: 110, align: 'left', hidden: true }, |
| | | { field: 'scNo', title: '对åºå åæºå·', type: 'string', width: 110, align: 'left', hidden: true }, |
| | | { field: 'locationType', title: 'è´§ä½ç±»å', type: 'int', width: 110, align: 'left', bind: { key: "locationType", data: [] } }, |
| | | { field: 'locationType', title: 'è´§ä½ç±»å', type: 'int', width: 110, align: 'left',bind: { key: "LocationType", data: [] } }, |
| | | { field: 'locationStatus', title: 'è´§ä½ç¶æ', type: 'int', width: 110, align: 'left', bind: { key: "LocationState", data: [] } }, |
| | | { field: 'isLocked', title: 'æ¯å¦éå®', type: 'bool', width: 110, align: 'left', hidden: true, bind: { key: "IsLocked", data: [] } }, |
| | | { field: 'isLocked', title: 'æ¯å¦éå®', type: 'bool', width: 110, align: 'left', bind: { key: "IsLocked", data: [] } }, |
| | | { field: 'locationDesc', title: 'è´§ä½æè¿°', type: 'string', width: 110, align: 'left', hidden: true }, |
| | | { field: 'remark', title: '夿³¨', type: 'string', width: 110, align: 'left' }, |
| | | { field: 'wareAreaCode', title: 'åºåºç¼å·', type: 'string', width: 110, align: 'left', hidden: true }, |
| | |
| | | { field: 'palletCode', title: 'æçæ¡ç ', type: 'string', width: 110, align: 'left', sort: true }, |
| | | { field: 'isFull', title: 'æ¯å¦æ»¡ç', type: 'bool', width: 110, align: 'left' }, |
| | | // { field: 'state', title: 'åºåç¶æ', type: 'int', width: 110, align: 'left', bind: { key: "StockState", data: [] } }, |
| | | { field: 'LinedProcessFeedbackTime', title: 'å·¥èºå¼å§æ¶é´', type: 'string', width: 110, align: 'left', sort: true }, |
| | | { field: 'SpecialParameterDuration', title: 'å·¥èºæ¶é¿', type: 'string', width: 110, align: 'left', sort: true }, |
| | | { field: 'remark', title: '夿³¨', type: 'string', width: 120, hidden: true, align: 'left' }, |
| | | { field: 'createID', title: 'å建ID', type: 'int', sort: true, width: 100, hidden: true, align: 'left' }, |
| | | { field: 'creater', title: 'å建人', type: 'string', sort: true, width: 110, align: 'left' }, |
| | |
| | | |
| | | public WebResponseContent OK() |
| | | { |
| | | Code = 1; |
| | | Status = true; |
| | | return this; |
| | | } |
| | |
| | | using HttpClient httpClient = new HttpClient(); |
| | | httpClient.Timeout = new TimeSpan(0, 0, 60); |
| | | |
| | | foreach (var header in headers) |
| | | httpClient.DefaultRequestHeaders.Add(header.Key, header.Value); |
| | | |
| | | if (headers != null) |
| | | { |
| | | foreach (var header in headers) |
| | | httpClient.DefaultRequestHeaders.Add(header.Key, header.Value); |
| | | } |
| | | result = httpClient.PostAsync(serviceAddress, httpContent).Result.Content.ReadAsStringAsync().Result; |
| | | } |
| | | return result; |
| | |
| | | |
| | | WebResponseContent ModifyAccessStatus(object json); |
| | | |
| | | WebResponseContent RequsetCellInfo(object json); |
| | | object RequsetCellInfo(object json); |
| | | } |
| | | } |
| | |
| | | public string AreaCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºåºæ¶é´ |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "åºåºåºæ¶é´")] |
| | | public DateTime? OutboundTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåæç» |
| | | /// </summary> |
| | | [SugarColumn(ColumnName = "StockInfoDetails")] |
| | |
| | | PalletCode = result.PalletBarcode, |
| | | RoadWay = location.RoadwayNo, |
| | | SourceAddress = result.LocationID, |
| | | TargetAddress = result.LocationID, |
| | | TargetAddress = "", |
| | | TaskNum = taskNum, //_taskRepository.GetTaskNo().Result, |
| | | TaskState = (int)TaskOutStatusEnum.OutNew, |
| | | TaskType = result.IsNG == 1 ? (int)TaskOutboundTypeEnum.OutNG : (int)TaskOutboundTypeEnum.Outbound, |
| | | }; |
| | | |
| | | var sysConfig = _configService.GetByConfigKey(CateGoryConst.CONFIG_SYS_IPAddress, SysConfigConst.WCSIPAddress); |
| | | var respon = HttpHelper.Post(sysConfig.ConfigValue, JsonConvert.SerializeObject(taskDTO)); |
| | | if (respon != null) |
| | | { |
| | | |
| | | } |
| | | //var respon = HttpHelper.Post("http://localhost:9291/api/Task/ReceiveTask", JsonConvert.SerializeObject(taskDTO)); |
| | | //if (respon != null) |
| | | //{ |
| | | |
| | | //} |
| | | //else |
| | | //{ |
| | | // throw new Exception("WCSå¤ç失败"); |
| | | //} |
| | | |
| | | |
| | | return content.OK(); |
| | |
| | | /// </summary> |
| | | /// <param name="json"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent RequsetCellInfo(object json) |
| | | public object RequsetCellInfo(object json) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | |
| | | |
| | | var result = JsonConvert.DeserializeObject<RequsetCellInfo>(json.ToString()); |
| | | |
| | | //_stockInfoRepository.QueryFirst(x=>x.LocationCode == result.LocationID && x) |
| | | var info = _stockInfoRepository.QueryFirst(x => x.LocationCode == result.LocationID); |
| | | //todo |
| | | if (info != null) |
| | | { |
| | | return new { code = 1, palletBarcode = info.PalletCode }; |
| | | } |
| | | else |
| | | { |
| | | return new { code = 0, palletBarcode = "",message="åºä½æ åºåè®°å½" }; |
| | | } |
| | | |
| | | return content.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return content.Error(ex.Message); |
| | | return new { code = 0, palletBarcode = "", message = ex.Message }; |
| | | } |
| | | } |
| | | } |
| | |
| | | LocationType = locType, |
| | | Remark = "", |
| | | Depth = locType > 1 ? (((line - 1) % 4) + 1) == 2 || (((line - 1) % 4) + 1) == 3 ? 1 : 2 : 1, |
| | | RoadwayNo = locType > 1 ? $"CHSC{((line - 1) / 4) + 1}" : $"CHSC{((line - 1) / 2) + 1}", |
| | | RoadwayNo = locType > 1 ? $"FRSC{((line - 1) / 4) + 1}" : $"FRSC{((line - 1) / 2) + 1}", |
| | | LocationStatus = LocationEnum.Free.ObjToInt(), |
| | | AreaId = areaId, |
| | | Creater = "systeam", |
| | |
| | | var respone = JsonConvert.DeserializeObject<ResponeAgingInputDto>(result.Data.ToString()); |
| | | stock.LinedProcessFeedbackTime = respone.LinedProcessFeedbackTime; |
| | | stock.SpecialParameterDuration = respone.SpecialParameterDuration; |
| | | //2024å¹´11æ16æ¥ï¼æ°å¢å段计ç®åºåºåºæ¶é´ |
| | | stock.OutboundTime = Convert.ToDateTime(respone.LinedProcessFeedbackTime).AddHours(Convert.ToDouble(respone.SpecialParameterDuration)); |
| | | |
| | | // è®°å½æ¥å¿ |
| | | LogFactory.GetLog("ä»»å¡å®æ").InfoFormat(true, "å
¥åºä»»å¡å®æ", $"è´§ä½å°åï¼{task.TargetAddress},ä¿®æ¹åè´§ä½æ°æ®ï¼{locationInf}"); |
| | |
| | | /// <param name="areaId">åºå主é®</param> |
| | | /// <param name="roadWay">å··é</param> |
| | | /// <returns></returns> |
| | | public async Task<DtLocationInfo> GetLocationDistributeAsync(string roadWay) |
| | | public async Task<DtLocationInfo> GetLocationDistributeAsync(string roadWay, bool IsFull = true) |
| | | { |
| | | #region è·åè´§ä½ |
| | | |
| | | try |
| | | { |
| | | var locations = await _locationRepository.QueryDataAsync(x => x.LocationStatus == (int)LocationEnum.Free && x.RoadwayNo == roadWay); |
| | | List<DtLocationInfo> locations; |
| | | if (IsFull) |
| | | { |
| | | locations = await _locationRepository.QueryDataAsync(x => x.LocationStatus == (int)LocationEnum.Free && x.RoadwayNo == roadWay); |
| | | } |
| | | else |
| | | { |
| | | locations = await _locationRepository.QueryDataAsync(x => x.LocationStatus == (int)LocationEnum.Free && x.RoadwayNo == roadWay); |
| | | } |
| | | |
| | | if (locations == null) |
| | | { |
| | | return null; |
| | |
| | | return _MCSService.ModifyAccessStatus(input); |
| | | } |
| | | |
| | | [HttpPost("RequsetCellInfo")] |
| | | public WebResponseContent RequsetCellInfo([FromBody] object input) |
| | | [HttpPost("RequestCellInfo")] |
| | | public object RequsetCellInfo([FromBody] object input) |
| | | { |
| | | return _MCSService.RequsetCellInfo(input); |
| | | } |