修复图片导入;重构路由和堆垛机命令
替换多个Vue组件中CommonJS require图片/echarts的使用为ES模块导入,并集中错误图片来源。更新图表选项,改用import * as echarts。在WMS服务器中添加HTTP助手和DTO文件。重构RouterService中的路由器逻辑,通过GetAllPaths/BuildReversePaths生成所有完整路径,并将RouterController的路由调整为"api/Router"。更改堆垛机命令模型和处理方式:添加WorkAction,移除旧的TrayType/Barcode字段,更新命令创建和发送逻辑(ConvertToStackerCraneTaskCommand的返回类型和SendStackerCraneCommand辅助方法)。更新.gitignore以忽略CopilotIndices,并包含更新的Visual Studio布局/元数据变更。
| | |
| | | /Code/WMS/WIDESEA_WMSServer/.vs/CopilotSnapshots |
| | | /Code/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/copilot-chat |
| | | /Code/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v18 |
| | | /Code/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices |
| | | /Code/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.988.22099 |
| | |
| | | //表åéªè¯æ³¨æï¼æ¯æ¬¡éªè¯é½å¿
é¡»æ§è¡callback,å¦åéªè¯ä¸æ§è¡åè°æ¹æ³ |
| | | const colPow = Math.pow(10, 3); |
| | | import FormExpand from './VolForm/VolFormRender'; |
| | | import errorImgSrc from '@/assets/imgs/error-img.png'; |
| | | import { |
| | | defineAsyncComponent, |
| | | defineComponent, |
| | |
| | | data() { |
| | | return { |
| | | // remoteCall: true, |
| | | errorImg: 'this.src="' + require('@/assets/imgs/error-img.png') + '"' |
| | | errorImg: 'this.src="' + errorImgSrc + '"' |
| | | // span: 1, |
| | | // rangeFields: [], |
| | | }; |
| | |
| | | </template> |
| | | <script> |
| | | import VolTableRender from "./VolTable/VolTableRender"; |
| | | import errorImgSrc from "@/assets/imgs/error.png"; |
| | | let _errMsg; |
| | | import { defineComponent, defineAsyncComponent } from "vue"; |
| | | export default defineComponent({ |
| | |
| | | realMaxHeight: 0, |
| | | enableEdit: false, // æ¯å¦å¯è¡¨æ ¼ç¨ç¼è¾åè½ |
| | | empty: this.allowEmpty ? "" : "--", |
| | | defaultImg: 'this.src="' + require("@/assets/imgs/error.png") + '"', |
| | | defaultImg: 'this.src="' + errorImgSrc + '"', |
| | | loading: false, |
| | | footer: {}, |
| | | total: 0, |
| | |
| | | </div> |
| | | </template> |
| | | <script> |
| | | let OSS = require('ali-oss'); |
| | | import OSS from 'ali-oss'; |
| | | import errorImgSrc from '@/assets/imgs/error-img.png'; |
| | | export default { |
| | | components: {}, |
| | | props: { |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | errorImg: 'this.src="' + require('@/assets/imgs/error-img.png') + '"', |
| | | errorImg: 'this.src="' + errorImgSrc + '"', |
| | | changed: false, //æå¨ä¸ä¼ æååç¦æ¢éå¤ä¸ä¼ ï¼å¿
须鿰鿩 |
| | | model: true, |
| | | files: [], |
| | |
| | | import VolMenu from "@/components/basic/VolElementMenu.vue"; |
| | | import Message from "./index/Message.vue"; |
| | | import MessageConfig from "./index/MessageConfig.js"; |
| | | var imgUrl = require("@/assets/imgs/wcs_x.png"); |
| | | import imgUrl from "@/assets/imgs/wcs_x.png"; |
| | | import errorImgSrc from "@/assets/imgs/error-img.png"; |
| | | var $this; |
| | | var $interval; |
| | | var $indexDate; |
| | |
| | | }, |
| | | ]); |
| | | const errorImg = ref( |
| | | 'this.src="' + require("@/assets/imgs/error-img.png") + '"' |
| | | 'this.src="' + errorImgSrc + '"' |
| | | ); |
| | | const selectId = ref("1"); |
| | | // ãé¦é¡µãæ ç¾åºå·(å½åå³é®éä¸çèå) |
| | |
| | | var echarts = require("echarts"); |
| | | import * as echarts from "echarts"; |
| | | let chartLeft1 = { |
| | | tooltip: { |
| | | trigger: "axis", |
| | |
| | | <script> |
| | | import VolForm from "@/components/basic/VolForm.vue"; |
| | | import VolBox from "@/components/basic/VolBox.vue"; |
| | | import errorImgSrc from "@/assets/imgs/error-img.png"; |
| | | export default { |
| | | components: { |
| | | VolForm, |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | errorImg: 'this.src="' + require("@/assets/imgs/error-img.png") + '"', |
| | | errorImg: 'this.src="' + errorImgSrc + '"', |
| | | modifyOptions: { |
| | | model: false, |
| | | fields: { oldPwd: "", newPwd: "", newPwd1: "" }, |
| | |
| | | "WorkspaceRootPath": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\", |
| | | "Documents": [ |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\stackercranetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\stackercranetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\routerservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\routerservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\basicinfo\\routercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\basicinfo\\routercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinenewjob\\commonconveyorlinenewjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinenewjob\\commonconveyorlinenewjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\stackercrane-command-config.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\stackercrane-command-config.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_tasks\\formationstackercranejob\\formationstackercranetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\formationstackercranejob\\formationstackercranetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\common\\commonstackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\common\\commonstackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_tasks\\robotjob\\robotjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\robotjob\\robotjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinenewjob\\conveyorlinedispatchhandler.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_tasks\\robotjob\\robotjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\robotjob\\robotjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_core\\http\\httprequesthelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | |
| | | "DocumentGroups": [ |
| | | { |
| | | "DockedWidth": 200, |
| | | "SelectedChildIndex": 9, |
| | | "SelectedChildIndex": 3, |
| | | "Children": [ |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 2, |
| | | "Title": "stackercrane-command-config.json", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\stackercrane-command-config.json", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\stackercrane-command-config.json", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\stackercrane-command-config.json", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\stackercrane-command-config.json", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|", |
| | | "WhenOpened": "2026-02-11T09:00:04.156Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 3, |
| | | "Title": "FormationStackerCraneTaskCommand.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\FormationStackerCraneJob\\FormationStackerCraneTaskCommand.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\FormationStackerCraneJob\\FormationStackerCraneTaskCommand.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\FormationStackerCraneJob\\FormationStackerCraneTaskCommand.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\FormationStackerCraneJob\\FormationStackerCraneTaskCommand.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAABcAAAAxAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-11T08:10:49.516Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 4, |
| | | "Title": "CommonStackerCrane.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs", |
| | | "ViewState": "AgIAAFMBAAAAAAAAAAAhwGABAAAUAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-11T08:04:32.94Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 6, |
| | | "Title": "ConveyorLineDispatchHandler.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineNewJob\\ConveyorLineDispatchHandler.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineNewJob\\ConveyorLineDispatchHandler.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineNewJob\\ConveyorLineDispatchHandler.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineNewJob\\ConveyorLineDispatchHandler.cs", |
| | | "ViewState": "AgIAAC0AAAAAAAAAAAAAwN8AAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-11T07:30:22.279Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 8, |
| | | "Title": "HttpRequestHelper.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Http\\HttpRequestHelper.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Http\\HttpRequestHelper.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Http\\HttpRequestHelper.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Core\\Http\\HttpRequestHelper.cs", |
| | | "ViewState": "AgIAAKMAAAAAAAAAAAAAAL8AAAArAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-11T03:19:21.556Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Bookmark", |
| | | "Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" |
| | |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 1, |
| | | "DocumentIndex": 0, |
| | | "Title": "StackerCraneTaskCommand.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneTaskCommand.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneTaskCommand.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneTaskCommand.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneTaskCommand.cs", |
| | | "ViewState": "AgIAAB0AAAAAAAAAAADwvy8AAAAVAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-26T03:17:06.278Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 2, |
| | | "Title": "RouterService.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\RouterService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\RouterService.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\RouterService.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\RouterService.cs", |
| | | "ViewState": "AgIAAJgBAAAAAAAAAAAYwK8BAAA6AAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-26T02:17:43.536Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 3, |
| | | "Title": "RouterController.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs", |
| | | "ViewState": "AgIAACQAAAAAAAAAAAAywDUAAAA5AAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-26T02:17:32.741Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 5, |
| | | "Title": "ConveyorLineDispatchHandler.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineNewJob\\ConveyorLineDispatchHandler.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineNewJob\\ConveyorLineDispatchHandler.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineNewJob\\ConveyorLineDispatchHandler.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineNewJob\\ConveyorLineDispatchHandler.cs", |
| | | "ViewState": "AgIAAN8AAAAAAAAAAAAuwN8AAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-11T07:30:22.279Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 8, |
| | | "Title": "HttpRequestHelper.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Http\\HttpRequestHelper.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Http\\HttpRequestHelper.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Http\\HttpRequestHelper.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Core\\Http\\HttpRequestHelper.cs", |
| | | "ViewState": "AgIAAKMAAAAAAAAAAAAAAL8AAAArAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-11T03:19:21.556Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 4, |
| | | "Title": "CommonConveyorLineNewJob.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineNewJob\\CommonConveyorLineNewJob.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineNewJob\\CommonConveyorLineNewJob.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineNewJob\\CommonConveyorLineNewJob.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineNewJob\\CommonConveyorLineNewJob.cs", |
| | | "ViewState": "AgIAAEMAAAAAAAAAAAAlwFUAAAAdAAAAAAAAAA==", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAFUAAAAdAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-11T03:12:22.118Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 0, |
| | | "DocumentIndex": 1, |
| | | "Title": "CommonStackerCraneJob.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs", |
| | | "ViewState": "AgIAACIAAAAAAAAAAAAAADYAAACLAAAAAAAAAA==", |
| | | "ViewState": "AgIAAEcAAAAAAAAAAAAewFwAAAAcAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-11T01:01:05.138Z", |
| | | "EditorCaption": "" |
| | |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 7, |
| | | "DocumentIndex": 6, |
| | | "Title": "TaskService.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "ViewState": "AgIAAEEBAAAAAAAAAAAhwE4BAAAiAAAAAAAAAA==", |
| | | "ViewState": "AgIAAMUAAAAAAAAAAAAjwNUAAAA8AAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-10T06:11:48.071Z", |
| | | "EditorCaption": "" |
| | | "WhenOpened": "2026-02-10T06:11:48.071Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | |
| | | "RelativeToolTip": "WIDESEAWCS_Common\\HttpEnum\\ConfigKey.cs", |
| | | "ViewState": "AgIAAA4AAAAAAAAAAADwvy8AAAAYAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-09T01:45:04.7Z", |
| | | "EditorCaption": "" |
| | | "WhenOpened": "2026-02-09T01:45:04.7Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 5, |
| | | "DocumentIndex": 7, |
| | | "Title": "RobotJob.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\RobotJob\\RobotJob.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\RobotJob\\RobotJob.cs", |
| | |
| | | // éåææç»æçè·¯ç± |
| | | foreach (var item in dt_Routers) |
| | | { |
| | | // è·åå½åè·¯ç±çåè·¯ç± |
| | | string routes = $"{item.NextPosi},"; |
| | | // è·åå½åè·¯ç±çç¶è·¯ç± |
| | | string str = GetPreviousRoutes(item.StartPosi, allRouters, item.InOutType); |
| | | // 妿ç¶è·¯ç±ä¸ä¸ºç©º |
| | | if (!string.IsNullOrEmpty(str)) |
| | | // è·åææå¯è½ç宿´è·¯å¾ |
| | | List<List<string>> allPaths = GetAllPaths(item.StartPosi, item.NextPosi, allRouters, item.InOutType); |
| | | |
| | | // ä¸ºæ¯æ¡ç¬ç«è·¯å¾çæç»æ |
| | | foreach (var path in allPaths) |
| | | { |
| | | // 廿æåä¸ä¸ªéå· |
| | | if (str.EndsWith(",")) |
| | | str = str.Substring(0, str.Length - 1); |
| | | // å°ç¶è·¯ç±æ·»å å°åè·¯ç±ä¸ |
| | | routes += str; |
| | | } |
| | | // 妿å½åè·¯ç±æ¯å
¥å£ |
| | | if (item.InOutType == RouterInOutType.In.ObjToInt()) |
| | | { |
| | | // å°åè·¯ç±å转并添å å°dataä¸ |
| | | List<string> itemRouters = routes.Split(",").Reverse().ToList(); |
| | | object obj = new { type = RouterInOutType.In, routes = itemRouters }; |
| | | data.Add(obj); |
| | | } |
| | | // 妿å½åè·¯ç±æ¯åºå£ |
| | | else |
| | | { |
| | | // å°åè·¯ç±å转并添å å°dataä¸ |
| | | List<string> itemRouters = routes.Split(",").Reverse().ToList(); |
| | | object obj = new { type = RouterInOutType.Out, routes = itemRouters }; |
| | | data.Add(obj); |
| | | // 妿å½åè·¯ç±æ¯å
¥å£ |
| | | if (item.InOutType == RouterInOutType.In.ObjToInt()) |
| | | { |
| | | object obj = new { type = RouterInOutType.In, routes = path }; |
| | | data.Add(obj); |
| | | } |
| | | // 妿å½åè·¯ç±æ¯åºå£ |
| | | else |
| | | { |
| | | object obj = new { type = RouterInOutType.Out, routes = path }; |
| | | data.Add(obj); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | return data; |
| | | } |
| | | |
| | | private string GetPreviousRoutes(string startPosi, List<Dt_Router> allRouters, int routerType) |
| | | /// <summary> |
| | | /// è·åä»èµ·ç¹å°ç»ç¹çææå®æ´è·¯å¾ |
| | | /// </summary> |
| | | /// <param name="startPosi">å½åèµ·å§ä½ç½®</param> |
| | | /// <param name="endPosi">ç»ç¹ä½ç½®</param> |
| | | /// <param name="allRouters">ææè·¯ç±æ°æ®</param> |
| | | /// <param name="routerType">è·¯ç±ç±»å</param> |
| | | /// <returns>ææå®æ´è·¯å¾åè¡¨ï¼æ¯æ¡è·¯å¾æ¯ä»èµ·ç¹å°ç»ç¹çä½ç½®å表</returns> |
| | | private List<List<string>> GetAllPaths(string startPosi, string endPosi, List<Dt_Router> allRouters, int routerType) |
| | | { |
| | | // å®ä¹ä¸ä¸ªç©ºå符串routers |
| | | string routers = string.Empty; |
| | | // 夿startPosiæ¯å¦ä¸ºç©º |
| | | if (!string.IsNullOrEmpty(startPosi)) |
| | | List<List<string>> result = new List<List<string>>(); |
| | | |
| | | // ä»ç»ç¹å¼å§ååæ¥æ¾ææè·¯å¾ |
| | | List<List<string>> reversePaths = new List<List<string>>(); |
| | | BuildReversePaths(startPosi, new List<string> { endPosi, startPosi }, allRouters, routerType, reversePaths); |
| | | |
| | | // å°ååè·¯å¾è½¬ä¸ºæ£åï¼ä»èµ·ç¹å°ç»ç¹ï¼ |
| | | foreach (var reversePath in reversePaths) |
| | | { |
| | | // 夿routersæ¯å¦ä»¥éå·ç»å°¾ |
| | | if (!routers.EndsWith(",")) |
| | | // 妿䏿¯ï¼åå°startPosiæ·»å å°routersä¸ï¼å¹¶å¨åé¢å ä¸éå· |
| | | routers += $"{startPosi},"; |
| | | else |
| | | // 妿æ¯ï¼åå°startPosiæ·»å å°routersä¸ |
| | | routers += $"{startPosi}"; |
| | | result.Add(reversePath.AsEnumerable().Reverse().ToList()); |
| | | } |
| | | // ä»allRoutersä¸çéåºNextPosiçäºstartPosiä¸InOutTypeçäºrouterTypeçå
ç´ ï¼å¹¶è½¬æ¢ä¸ºList |
| | | List<Dt_Router> preRouters = allRouters.Where(x => x.NextPosi == startPosi && x.InOutType == routerType).ToList(); |
| | | // éåpreRoutersä¸çæ¯ä¸ªå
ç´ |
| | | foreach (var item in preRouters) |
| | | |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// éå½æå»ºååè·¯å¾ï¼ä»ç»ç¹åèµ·ç¹æ¥æ¾ï¼ |
| | | /// </summary> |
| | | /// <param name="currentStartPosi">å½åèç¹çèµ·å§ä½ç½®</param> |
| | | /// <param name="currentPath">å½åå·²æå»ºçè·¯å¾ï¼ååï¼ä»ç»ç¹å¼å§ï¼</param> |
| | | /// <param name="allRouters">ææè·¯ç±æ°æ®</param> |
| | | /// <param name="routerType">è·¯ç±ç±»å</param> |
| | | /// <param name="result">æ¶éææå®æ´è·¯å¾</param> |
| | | private void BuildReversePaths(string currentStartPosi, List<string> currentPath, List<Dt_Router> allRouters, int routerType, List<List<string>> result) |
| | | { |
| | | // æ¥æ¾å½åèç¹çåç½®èç¹ï¼NextPosiçäºå½åStartPosiçè·¯ç±ï¼ |
| | | List<Dt_Router> preRouters = allRouters.Where(x => x.NextPosi == currentStartPosi && x.InOutType == routerType).ToList(); |
| | | |
| | | // å¦ææ²¡æåç½®èç¹ï¼è¯´æå·²ç»å°è¾¾è·¯å¾èµ·ç¹ï¼ä¿åå½åè·¯å¾ |
| | | if (preRouters.Count == 0) |
| | | { |
| | | // è°ç¨GetPreviousRoutesæ¹æ³ï¼ä¼ å
¥item.StartPosiãallRoutersårouterTypeï¼å¹¶å°è¿åå¼èµç»str |
| | | string str = GetPreviousRoutes(item.StartPosi, allRouters, routerType); |
| | | // 夿stræ¯å¦ä¸ºç©º |
| | | if (!string.IsNullOrEmpty(str)) |
| | | { |
| | | // 夿routersæ¯å¦ä»¥éå·ç»å°¾ |
| | | if (routers.EndsWith(",")) |
| | | // 妿æ¯ï¼åå°stræ·»å å°routersä¸ |
| | | routers += $"{str}"; |
| | | else |
| | | // 妿䏿¯ï¼åå°stræ·»å å°routersä¸ï¼å¹¶å¨åé¢å ä¸éå· |
| | | routers += $"{str},"; |
| | | } |
| | | result.Add(new List<string>(currentPath)); |
| | | return; |
| | | } |
| | | // è¿årouters |
| | | return routers; |
| | | |
| | | // 对æ¯ä¸ªåç½®èç¹ï¼å建æ°çè·¯å¾åæ¯ |
| | | foreach (var preRouter in preRouters) |
| | | { |
| | | // å建æ°çè·¯å¾å¯æ¬ |
| | | List<string> newPath = new List<string>(currentPath); |
| | | newPath.Add(preRouter.StartPosi); |
| | | |
| | | // é彿¥æ¾åç½®èç¹ |
| | | BuildReversePaths(preRouter.StartPosi, newPath, allRouters, routerType, result); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | |
| | | namespace WIDESEAWCS_Server.Controllers.BasicInfo |
| | | { |
| | | [Route("Router")] |
| | | [Route("api/Router")] |
| | | [ApiController] |
| | | public class RouterController : ApiBaseController<IRouterService, Dt_Router> |
| | | { |
| | |
| | | Dt_Task? task = GetTask(commonStackerCrane); |
| | | if (task != null) |
| | | { |
| | | var stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task); |
| | | object? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task); |
| | | if (stackerCraneTaskCommand != null) |
| | | { |
| | | bool sendFlag = commonStackerCrane.SendCommand(stackerCraneTaskCommand); |
| | | bool sendFlag = SendStackerCraneCommand(commonStackerCrane, stackerCraneTaskCommand); |
| | | if (sendFlag) |
| | | { |
| | | commonStackerCrane.LastTaskType = task.TaskType; |
| | |
| | | |
| | | if (task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) |
| | | { |
| | | if (IsOutTaskStationAvailable(task)) |
| | | { |
| | | //if (IsOutTaskStationAvailable(task)) |
| | | //{ |
| | | return task; |
| | | } |
| | | //} |
| | | |
| | | List<string> otherOutStationCodes = _routerService.QueryNextRoutes(commonStackerCrane.DeviceCode, task.NextAddress, task.TaskType) |
| | | .Select(x => x.ChildPosi).ToList(); |
| | |
| | | /// <summary> |
| | | /// ä»»å¡å®ä½è½¬æ¢æå½ä»¤Model |
| | | /// </summary> |
| | | public dynamic? ConvertToStackerCraneTaskCommand([NotNull] Dt_Task task) |
| | | public object? ConvertToStackerCraneTaskCommand([NotNull] Dt_Task task) |
| | | { |
| | | // æ ¹æ®é
ç½®å¤æå½ä»¤ç±»å |
| | | string commandType = GetCommandType(task.Roadway); |
| | |
| | | { |
| | | "Formation" => BuildCommand(task, CreateFormationCommand(task)), |
| | | _ => BuildCommand(task, CreateStandardCommand(task)) |
| | | }; |
| | | } |
| | | |
| | | private static bool SendStackerCraneCommand(IStackerCrane commonStackerCrane, object command) |
| | | { |
| | | return command switch |
| | | { |
| | | FormationStackerCraneTaskCommand formationCommand => commonStackerCrane.SendCommand(formationCommand), |
| | | StackerCraneTaskCommand standardCommand => commonStackerCrane.SendCommand(standardCommand), |
| | | _ => false |
| | | }; |
| | | } |
| | | |
| | |
| | | { |
| | | return new StackerCraneTaskCommand |
| | | { |
| | | Barcode = task.PalletCode, |
| | | //Barcode = task.PalletCode, |
| | | TaskNum = task.TaskNum, |
| | | WorkType = 1, |
| | | TrayType = 0 |
| | | WorkAction = 1 |
| | | }; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å建ç»çå åæºå½ä»¤ |
| | | /// å建å容å åæºå½ä»¤ |
| | | /// </summary> |
| | | private static FormationStackerCraneTaskCommand CreateFormationCommand(Dt_Task task) |
| | | { |
| | |
| | | { |
| | | #region <Public Menber> |
| | | /// <summary> |
| | | /// ä½ä¸å½ä»¤ |
| | | /// </summary> |
| | | public short WorkAction { get; set; } |
| | | /// <summary> |
| | | /// ä»»å¡å· |
| | | /// </summary> |
| | | public int TaskNum { get; set; } |
| | |
| | | public short WorkType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç±»å |
| | | /// æ æåæ®µ |
| | | /// </summary> |
| | | public short TrayType { get; set; } |
| | | [DataLength(6)] |
| | | public string FieldName { get; set; } = ""; |
| | | |
| | | /// <summary> |
| | | /// èµ·å§è¡ |
| | |
| | | /// </summary> |
| | | public short EndLayer { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçå· |
| | | /// </summary> |
| | | [DataLength(25)] |
| | | public string Barcode { get; set; } |
| | | #endregion <Public Menber> |
| | | } |
| | | } |
| | |
| | | "WorkspaceRootPath": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\", |
| | | "Documents": [ |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|solutionrelative:widesea_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_stockservice\\stockserivce.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|solutionrelative:widesea_stockservice\\stockserivce.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_model\\models\\stock\\dt_stockinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|solutionrelative:widesea_model\\models\\stock\\dt_stockinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_dto\\task\\createtaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\task\\createtaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\taskinfo\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\taskinfo\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|solutionrelative:widesea_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{CE0DB91F-5A68-448E-A419-4C26B5039F51}|WIDESEA_ITaskInfoService\\WIDESEA_ITaskInfoService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{CE0DB91F-5A68-448E-A419-4C26B5039F51}|WIDESEA_ITaskInfoService\\WIDESEA_ITaskInfoService.csproj|solutionrelative:widesea_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{49716D78-720D-475D-948C-0FC6C5F079E5}|WIDESEA_IStockService\\WIDESEA_IStockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_istockservice\\istockservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{49716D78-720D-475D-948C-0FC6C5F079E5}|WIDESEA_IStockService\\WIDESEA_IStockService.csproj|solutionrelative:widesea_istockservice\\istockservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_dto\\stock\\stockdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\stock\\stockdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_core\\helper\\http\\httpclienthelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\helper\\http\\httpclienthelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_wmsserver\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_core\\helper\\http\\httprequestconfig.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\helper\\http\\httprequestconfig.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_core\\helper\\http\\httpresponseresult.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\helper\\http\\httpresponseresult.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_dto\\task\\createtaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\task\\createtaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{5F260E03-095A-4870-8419-5B72CB62929E}|WIDESEA_IBasicService\\WIDESEA_IBasicService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_ibasicservice\\ilocationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{5F260E03-095A-4870-8419-5B72CB62929E}|WIDESEA_IBasicService\\WIDESEA_IBasicService.csproj|solutionrelative:widesea_ibasicservice\\ilocationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_model\\models\\stock\\dt_stockinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|solutionrelative:widesea_model\\models\\stock\\dt_stockinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_basicservice\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|solutionrelative:widesea_basicservice\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_stockservice\\stockviewservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|solutionrelative:widesea_stockservice\\stockviewservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_core\\baserepository\\irepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\baserepository\\irepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_dto\\gradingmachine\\inputdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\gradingmachine\\inputdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_dto\\gradingmachine\\outputdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\gradingmachine\\outputdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{49716D78-720D-475D-948C-0FC6C5F079E5}|WIDESEA_IStockService\\WIDESEA_IStockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_istockservice\\istockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{49716D78-720D-475D-948C-0FC6C5F079E5}|WIDESEA_IStockService\\WIDESEA_IStockService.csproj|solutionrelative:widesea_istockservice\\istockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_stockservice\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|solutionrelative:widesea_stockservice\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_stockservice\\stockserivce.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|solutionrelative:widesea_stockservice\\stockserivce.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_core\\baserepository\\repositorybase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\baserepository\\repositorybase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | } |
| | | ], |
| | | "DocumentGroupContainers": [ |
| | |
| | | "DocumentGroups": [ |
| | | { |
| | | "DockedWidth": 200, |
| | | "SelectedChildIndex": 6, |
| | | "SelectedChildIndex": 16, |
| | | "Children": [ |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 2, |
| | | "Title": "Dt_StockInfo.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Stock\\Dt_StockInfo.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Model\\Models\\Stock\\Dt_StockInfo.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Stock\\Dt_StockInfo.cs", |
| | | "RelativeToolTip": "WIDESEA_Model\\Models\\Stock\\Dt_StockInfo.cs", |
| | | "ViewState": "AgIAACYAAAAAAAAAAAAQwDIAAAAeAAAAAAAAAA==", |
| | | "DocumentIndex": 5, |
| | | "Title": "Program.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Program.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Program.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Program.cs", |
| | | "RelativeToolTip": "WIDESEA_WMSServer\\Program.cs", |
| | | "ViewState": "AgIAADsAAAAAAAAAAAAqwEIAAAAvAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-11T01:12:04.794Z", |
| | | "WhenOpened": "2026-02-25T02:24:12.114Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 7, |
| | | "Title": "HttpResponseResult.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\HTTP\\HttpResponseResult.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Core\\Helper\\HTTP\\HttpResponseResult.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\HTTP\\HttpResponseResult.cs", |
| | | "RelativeToolTip": "WIDESEA_Core\\Helper\\HTTP\\HttpResponseResult.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAASAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-25T01:56:34.362Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 6, |
| | | "Title": "HttpRequestConfig.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\HTTP\\HttpRequestConfig.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Core\\Helper\\HTTP\\HttpRequestConfig.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\HTTP\\HttpRequestConfig.cs", |
| | | "RelativeToolTip": "WIDESEA_Core\\Helper\\HTTP\\HttpRequestConfig.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAYAAAAWAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-25T01:56:26.626Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 4, |
| | | "Title": "HttpClientHelper.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\HTTP\\HttpClientHelper.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Core\\Helper\\HTTP\\HttpClientHelper.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\HTTP\\HttpClientHelper.cs", |
| | | "RelativeToolTip": "WIDESEA_Core\\Helper\\HTTP\\HttpClientHelper.cs", |
| | | "ViewState": "AgIAADEAAAAAAAAAAAAewEQAAAAtAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-25T01:55:24.973Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 4, |
| | | "DocumentIndex": 15, |
| | | "Title": "OutPutDto.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\GradingMachine\\OutPutDto.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_DTO\\GradingMachine\\OutPutDto.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\GradingMachine\\OutPutDto.cs", |
| | | "RelativeToolTip": "WIDESEA_DTO\\GradingMachine\\OutPutDto.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAAQAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-16T04:20:27.945Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 14, |
| | | "Title": "InputDto.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\GradingMachine\\InputDto.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_DTO\\GradingMachine\\InputDto.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\GradingMachine\\InputDto.cs", |
| | | "RelativeToolTip": "WIDESEA_DTO\\GradingMachine\\InputDto.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAABgAAAAQAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-16T03:59:05.513Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 19, |
| | | "Title": "RepositoryBase.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseRepository\\RepositoryBase.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Core\\BaseRepository\\RepositoryBase.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseRepository\\RepositoryBase.cs", |
| | | "RelativeToolTip": "WIDESEA_Core\\BaseRepository\\RepositoryBase.cs", |
| | | "ViewState": "AgIAALgDAAAAAAAAAAAhwMsDAAAZAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-14T08:55:16.1Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 13, |
| | | "Title": "IRepository.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseRepository\\IRepository.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Core\\BaseRepository\\IRepository.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseRepository\\IRepository.cs", |
| | | "RelativeToolTip": "WIDESEA_Core\\BaseRepository\\IRepository.cs", |
| | | "ViewState": "AgIAAIIBAAAAAAAAAAAWwLMBAAASAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-14T08:53:36.522Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 12, |
| | | "Title": "StockViewService.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\StockViewService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_StockService\\StockViewService.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\StockViewService.cs", |
| | | "RelativeToolTip": "WIDESEA_StockService\\StockViewService.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAEwAAAA/AAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-11T07:14:32.478Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 9, |
| | | "Title": "ILocationInfoService.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_IBasicService\\ILocationInfoService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_IBasicService\\ILocationInfoService.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_IBasicService\\ILocationInfoService.cs", |
| | | "RelativeToolTip": "WIDESEA_IBasicService\\ILocationInfoService.cs", |
| | | "ViewState": "AgIAADsAAAAAAAAAAAA2wEIAAAAxAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-11T02:33:03.398Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 11, |
| | | "Title": "LocationInfoService.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicService\\LocationInfoService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_BasicService\\LocationInfoService.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicService\\LocationInfoService.cs", |
| | | "RelativeToolTip": "WIDESEA_BasicService\\LocationInfoService.cs", |
| | | "ViewState": "AgIAAJIAAAAAAAAAAADgv6gAAAAjAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-11T02:22:42.847Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 10, |
| | | "Title": "Dt_StockInfo.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Stock\\Dt_StockInfo.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Model\\Models\\Stock\\Dt_StockInfo.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Stock\\Dt_StockInfo.cs", |
| | | "RelativeToolTip": "WIDESEA_Model\\Models\\Stock\\Dt_StockInfo.cs", |
| | | "ViewState": "AgIAAEAAAAAAAAAAAAAkwFIAAAAeAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-11T01:38:37.887Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 17, |
| | | "Title": "StockInfoService.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\StockInfoService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_StockService\\StockInfoService.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\StockInfoService.cs", |
| | | "RelativeToolTip": "WIDESEA_StockService\\StockInfoService.cs", |
| | | "ViewState": "AgIAACIAAAAAAAAAAAAIwDwAAAA5AAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-11T01:23:56.94Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 16, |
| | | "Title": "IStockInfoService.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStockService\\IStockInfoService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_IStockService\\IStockInfoService.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStockService\\IStockInfoService.cs", |
| | | "RelativeToolTip": "WIDESEA_IStockService\\IStockInfoService.cs", |
| | | "ViewState": "AgIAABIAAAAAAAAAAAAIwCsAAAAzAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-11T01:21:54.522Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 0, |
| | | "Title": "TaskController.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\TaskInfo\\TaskController.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\TaskInfo\\TaskController.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\TaskInfo\\TaskController.cs", |
| | | "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\TaskInfo\\TaskController.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAABwAAAAfAAAAAAAAAA==", |
| | | "ViewState": "AgIAABgAAAAAAAAAAAAgwEgAAAAeAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-09T01:23:19.844Z" |
| | | "WhenOpened": "2026-02-09T01:23:19.844Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 3, |
| | | "DocumentIndex": 8, |
| | | "Title": "CreateTaskDto.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Task\\CreateTaskDto.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_DTO\\Task\\CreateTaskDto.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Task\\CreateTaskDto.cs", |
| | | "RelativeToolTip": "WIDESEA_DTO\\Task\\CreateTaskDto.cs", |
| | | "ViewState": "AgIAABUAAAAAAAAAAAAAAA4AAAARAAAAAAAAAA==", |
| | | "ViewState": "AgIAABEAAAAAAAAAAADwvw4AAAARAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-06T07:58:13.932Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 5, |
| | | "DocumentIndex": 2, |
| | | "Title": "ITaskService.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_ITaskInfoService\\ITaskService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_ITaskInfoService\\ITaskService.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_ITaskInfoService\\ITaskService.cs", |
| | | "RelativeToolTip": "WIDESEA_ITaskInfoService\\ITaskService.cs", |
| | | "ViewState": "AgIAACsAAAAAAAAAAIBHwCkAAAAXAAAAAAAAAA==", |
| | | "ViewState": "AgIAAE0AAAAAAAAAAAAlwGMAAAA+AAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-06T07:00:19.697Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 0, |
| | | "DocumentIndex": 1, |
| | | "Title": "TaskService.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\TaskService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_TaskInfoService\\TaskService.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\TaskService.cs", |
| | | "RelativeToolTip": "WIDESEA_TaskInfoService\\TaskService.cs", |
| | | "ViewState": "AgIAAGQAAAAAAAAAAAApwIsAAAAAAAAAAAAAAA==", |
| | | "ViewState": "AgIAANcAAAAAAAAAAAAkwC8BAAAfAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-06T06:34:59.734Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 7, |
| | | "DocumentIndex": 3, |
| | | "Title": "StockDTO.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Stock\\StockDTO.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_DTO\\Stock\\StockDTO.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Stock\\StockDTO.cs", |
| | | "RelativeToolTip": "WIDESEA_DTO\\Stock\\StockDTO.cs", |
| | | "ViewState": "AgIAABsAAAAAAAAAAAA1wBYAAABBAAAAAAAAAA==", |
| | | "ViewState": "AgIAABwAAAAAAAAAAAAUwBYAAABBAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-06T02:56:51.397Z" |
| | | "WhenOpened": "2026-02-06T02:56:51.397Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 6, |
| | | "Title": "IStockService.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStockService\\IStockService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_IStockService\\IStockService.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStockService\\IStockService.cs", |
| | | "RelativeToolTip": "WIDESEA_IStockService\\IStockService.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAABsAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-06T02:13:53.794Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 1, |
| | | "DocumentIndex": 18, |
| | | "Title": "StockSerivce.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\StockSerivce.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_StockService\\StockSerivce.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\StockSerivce.cs", |
| | | "RelativeToolTip": "WIDESEA_StockService\\StockSerivce.cs", |
| | | "ViewState": "AgIAAAkAAAAAAAAAAAAkwI8AAAAzAAAAAAAAAA==", |
| | | "ViewState": "AgIAAHsAAAAAAAAAAAA5wJEAAAAJAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-06T01:53:49.077Z", |
| | | "EditorCaption": "" |
| | | "WhenOpened": "2026-02-06T01:53:49.077Z" |
| | | } |
| | | ] |
| | | } |
| | |
| | | "WorkspaceRootPath": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\", |
| | | "Documents": [ |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\taskinfo\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\taskinfo\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|solutionrelative:widesea_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | |
| | | "RelativeMoniker": "D:0:0:{CE0DB91F-5A68-448E-A419-4C26B5039F51}|WIDESEA_ITaskInfoService\\WIDESEA_ITaskInfoService.csproj|solutionrelative:widesea_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_stockservice\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|solutionrelative:widesea_stockservice\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_dto\\stock\\stockdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\stock\\stockdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_basicservice\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|solutionrelative:widesea_basicservice\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_core\\helper\\http\\httpclienthelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\helper\\http\\httpclienthelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_stockservice\\stockserivce.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|solutionrelative:widesea_stockservice\\stockserivce.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_wmsserver\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_stockservice\\stockviewservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|solutionrelative:widesea_stockservice\\stockviewservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_core\\helper\\http\\httprequestconfig.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\helper\\http\\httprequestconfig.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{5F260E03-095A-4870-8419-5B72CB62929E}|WIDESEA_IBasicService\\WIDESEA_IBasicService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_ibasicservice\\ilocationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{5F260E03-095A-4870-8419-5B72CB62929E}|WIDESEA_IBasicService\\WIDESEA_IBasicService.csproj|solutionrelative:widesea_ibasicservice\\ilocationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{49716D78-720D-475D-948C-0FC6C5F079E5}|WIDESEA_IStockService\\WIDESEA_IStockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_istockservice\\istockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{49716D78-720D-475D-948C-0FC6C5F079E5}|WIDESEA_IStockService\\WIDESEA_IStockService.csproj|solutionrelative:widesea_istockservice\\istockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_core\\helper\\http\\httpresponseresult.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\helper\\http\\httpresponseresult.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_dto\\task\\createtaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\task\\createtaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\taskinfo\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\taskinfo\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{5F260E03-095A-4870-8419-5B72CB62929E}|WIDESEA_IBasicService\\WIDESEA_IBasicService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_ibasicservice\\ilocationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{5F260E03-095A-4870-8419-5B72CB62929E}|WIDESEA_IBasicService\\WIDESEA_IBasicService.csproj|solutionrelative:widesea_ibasicservice\\ilocationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_model\\models\\stock\\dt_stockinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|solutionrelative:widesea_model\\models\\stock\\dt_stockinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_dto\\stock\\stockdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\stock\\stockdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_basicservice\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|solutionrelative:widesea_basicservice\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_stockservice\\stockviewservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|solutionrelative:widesea_stockservice\\stockviewservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_core\\baserepository\\irepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\baserepository\\irepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_dto\\gradingmachine\\inputdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\gradingmachine\\inputdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_dto\\gradingmachine\\outputdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\gradingmachine\\outputdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{49716D78-720D-475D-948C-0FC6C5F079E5}|WIDESEA_IStockService\\WIDESEA_IStockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_istockservice\\istockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{49716D78-720D-475D-948C-0FC6C5F079E5}|WIDESEA_IStockService\\WIDESEA_IStockService.csproj|solutionrelative:widesea_istockservice\\istockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_stockservice\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|solutionrelative:widesea_stockservice\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_stockservice\\stockserivce.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|solutionrelative:widesea_stockservice\\stockserivce.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_core\\baserepository\\repositorybase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\baserepository\\repositorybase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | } |
| | | ], |
| | | "DocumentGroupContainers": [ |
| | |
| | | "DocumentGroups": [ |
| | | { |
| | | "DockedWidth": 200, |
| | | "SelectedChildIndex": 11, |
| | | "SelectedChildIndex": 16, |
| | | "Children": [ |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 5, |
| | | "Title": "Program.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Program.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Program.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Program.cs", |
| | | "RelativeToolTip": "WIDESEA_WMSServer\\Program.cs", |
| | | "ViewState": "AgIAADsAAAAAAAAAAAAqwEIAAAAvAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-25T02:24:12.114Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 7, |
| | | "Title": "HttpResponseResult.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\HTTP\\HttpResponseResult.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Core\\Helper\\HTTP\\HttpResponseResult.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\HTTP\\HttpResponseResult.cs", |
| | | "RelativeToolTip": "WIDESEA_Core\\Helper\\HTTP\\HttpResponseResult.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAASAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-25T01:56:34.362Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 6, |
| | | "Title": "HttpRequestConfig.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\HTTP\\HttpRequestConfig.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Core\\Helper\\HTTP\\HttpRequestConfig.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\HTTP\\HttpRequestConfig.cs", |
| | | "RelativeToolTip": "WIDESEA_Core\\Helper\\HTTP\\HttpRequestConfig.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAYAAAAWAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-25T01:56:26.626Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 4, |
| | | "Title": "HttpClientHelper.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\HTTP\\HttpClientHelper.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Core\\Helper\\HTTP\\HttpClientHelper.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\HTTP\\HttpClientHelper.cs", |
| | | "RelativeToolTip": "WIDESEA_Core\\Helper\\HTTP\\HttpClientHelper.cs", |
| | | "ViewState": "AgIAADEAAAAAAAAAAAAewEQAAAAtAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-25T01:55:24.973Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Bookmark", |
| | | "Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" |
| | | }, |
| | | { |
| | | "$type": "Bookmark", |
| | | "Name": "ST:0:0:{40ea2e6b-2121-4bb8-a43e-c83c04b51041}" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 15, |
| | | "Title": "OutPutDto.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\GradingMachine\\OutPutDto.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_DTO\\GradingMachine\\OutPutDto.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\GradingMachine\\OutPutDto.cs", |
| | | "RelativeToolTip": "WIDESEA_DTO\\GradingMachine\\OutPutDto.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAAQAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-16T04:20:27.945Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 14, |
| | | "Title": "InputDto.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\GradingMachine\\InputDto.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_DTO\\GradingMachine\\InputDto.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\GradingMachine\\InputDto.cs", |
| | | "RelativeToolTip": "WIDESEA_DTO\\GradingMachine\\InputDto.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAABgAAAAQAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-16T03:59:05.513Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 19, |
| | | "Title": "RepositoryBase.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseRepository\\RepositoryBase.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Core\\BaseRepository\\RepositoryBase.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseRepository\\RepositoryBase.cs", |
| | | "RelativeToolTip": "WIDESEA_Core\\BaseRepository\\RepositoryBase.cs", |
| | | "ViewState": "AgIAALgDAAAAAAAAAAAhwMsDAAAZAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-14T08:55:16.1Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 13, |
| | | "Title": "IRepository.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseRepository\\IRepository.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Core\\BaseRepository\\IRepository.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseRepository\\IRepository.cs", |
| | | "RelativeToolTip": "WIDESEA_Core\\BaseRepository\\IRepository.cs", |
| | | "ViewState": "AgIAAIIBAAAAAAAAAAAWwLMBAAASAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-14T08:53:36.522Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 12, |
| | | "Title": "StockViewService.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\StockViewService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_StockService\\StockViewService.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\StockViewService.cs", |
| | | "RelativeToolTip": "WIDESEA_StockService\\StockViewService.cs", |
| | | "ViewState": "AgIAADYAAAAAAAAAAAAAAEwAAAA/AAAAAAAAAA==", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAEwAAAA/AAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-11T07:14:32.478Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 6, |
| | | "DocumentIndex": 9, |
| | | "Title": "ILocationInfoService.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_IBasicService\\ILocationInfoService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_IBasicService\\ILocationInfoService.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_IBasicService\\ILocationInfoService.cs", |
| | | "RelativeToolTip": "WIDESEA_IBasicService\\ILocationInfoService.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAEIAAAAaAAAAAAAAAA==", |
| | | "ViewState": "AgIAADsAAAAAAAAAAAA2wEIAAAAxAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-11T02:33:03.398Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 3, |
| | | "DocumentIndex": 11, |
| | | "Title": "LocationInfoService.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicService\\LocationInfoService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_BasicService\\LocationInfoService.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicService\\LocationInfoService.cs", |
| | | "RelativeToolTip": "WIDESEA_BasicService\\LocationInfoService.cs", |
| | | "ViewState": "AgIAAHkAAAAAAAAAAAApwIsAAAAsAAAAAAAAAA==", |
| | | "ViewState": "AgIAAJIAAAAAAAAAAADgv6gAAAAjAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-11T02:22:42.847Z", |
| | | "EditorCaption": "" |
| | |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 2, |
| | | "DocumentIndex": 17, |
| | | "Title": "StockInfoService.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\StockInfoService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_StockService\\StockInfoService.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\StockInfoService.cs", |
| | | "RelativeToolTip": "WIDESEA_StockService\\StockInfoService.cs", |
| | | "ViewState": "AgIAAB4AAAAAAAAAAAAjwDAAAAAgAAAAAAAAAA==", |
| | | "ViewState": "AgIAACIAAAAAAAAAAAAIwDwAAAA5AAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-11T01:23:56.94Z", |
| | | "EditorCaption": "" |
| | | "WhenOpened": "2026-02-11T01:23:56.94Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 7, |
| | | "DocumentIndex": 16, |
| | | "Title": "IStockInfoService.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStockService\\IStockInfoService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_IStockService\\IStockInfoService.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStockService\\IStockInfoService.cs", |
| | | "RelativeToolTip": "WIDESEA_IStockService\\IStockInfoService.cs", |
| | | "ViewState": "AgIAAAMAAAAAAAAAAAAuwCEAAAAsAAAAAAAAAA==", |
| | | "ViewState": "AgIAABIAAAAAAAAAAAAIwCsAAAAzAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-11T01:21:54.522Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Bookmark", |
| | | "Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" |
| | | }, |
| | | { |
| | | "$type": "Bookmark", |
| | | "Name": "ST:0:0:{40ea2e6b-2121-4bb8-a43e-c83c04b51041}" |
| | | "WhenOpened": "2026-02-11T01:21:54.522Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 9, |
| | | "DocumentIndex": 0, |
| | | "Title": "TaskController.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\TaskInfo\\TaskController.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\TaskInfo\\TaskController.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\TaskInfo\\TaskController.cs", |
| | | "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\TaskInfo\\TaskController.cs", |
| | | "ViewState": "AgIAAA8AAAAAAAAAAAAAAAIAAAAfAAAAAAAAAA==", |
| | | "ViewState": "AgIAABgAAAAAAAAAAAAgwEgAAAAeAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-09T01:23:19.844Z", |
| | | "EditorCaption": "" |
| | |
| | | "RelativeDocumentMoniker": "WIDESEA_DTO\\Task\\CreateTaskDto.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Task\\CreateTaskDto.cs", |
| | | "RelativeToolTip": "WIDESEA_DTO\\Task\\CreateTaskDto.cs", |
| | | "ViewState": "AgIAACEAAAAAAAAAAAAywA4AAAARAAAAAAAAAA==", |
| | | "ViewState": "AgIAABEAAAAAAAAAAADwvw4AAAARAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-06T07:58:13.932Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 1, |
| | | "DocumentIndex": 2, |
| | | "Title": "ITaskService.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_ITaskInfoService\\ITaskService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_ITaskInfoService\\ITaskService.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_ITaskInfoService\\ITaskService.cs", |
| | | "RelativeToolTip": "WIDESEA_ITaskInfoService\\ITaskService.cs", |
| | | "ViewState": "AgIAACcAAAAAAAAAAIA+wEcAAABXAAAAAAAAAA==", |
| | | "ViewState": "AgIAAE0AAAAAAAAAAAAlwGMAAAA+AAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-06T07:00:19.697Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 0, |
| | | "DocumentIndex": 1, |
| | | "Title": "TaskService.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\TaskService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_TaskInfoService\\TaskService.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\TaskService.cs", |
| | | "RelativeToolTip": "WIDESEA_TaskInfoService\\TaskService.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAB0AAABOAAAAAAAAAA==", |
| | | "ViewState": "AgIAANcAAAAAAAAAAAAkwC8BAAAfAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-06T06:34:59.734Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 11, |
| | | "DocumentIndex": 3, |
| | | "Title": "StockDTO.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Stock\\StockDTO.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_DTO\\Stock\\StockDTO.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Stock\\StockDTO.cs", |
| | | "RelativeToolTip": "WIDESEA_DTO\\Stock\\StockDTO.cs", |
| | | "ViewState": "AgIAABsAAAAAAAAAAAA1wBYAAABBAAAAAAAAAA==", |
| | | "ViewState": "AgIAABwAAAAAAAAAAAAUwBYAAABBAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-06T02:56:51.397Z" |
| | | "WhenOpened": "2026-02-06T02:56:51.397Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 4, |
| | | "DocumentIndex": 18, |
| | | "Title": "StockSerivce.cs", |
| | | "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\StockSerivce.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_StockService\\StockSerivce.cs", |
| | | "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\StockSerivce.cs", |
| | | "RelativeToolTip": "WIDESEA_StockService\\StockSerivce.cs", |
| | | "ViewState": "AgIAAEQAAAAAAAAAAAAswB0AAAAVAAAAAAAAAA==", |
| | | "ViewState": "AgIAAHsAAAAAAAAAAAA5wJEAAAAJAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2026-02-06T01:53:49.077Z", |
| | | "EditorCaption": "" |
| | | "WhenOpened": "2026-02-06T01:53:49.077Z" |
| | | } |
| | | ] |
| | | } |
| | |
| | | using SqlSugar; |
| | | using WIDESEA_Common.CommonEnum; |
| | | using WIDESEA_Common.LocationEnum; |
| | | using WIDESEA_Common.TaskEnum; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_Core.BaseServices; |
| | |
| | | public partial class LocationInfoService : ServiceBase<Dt_LocationInfo, IRepository<Dt_LocationInfo>>, ILocationInfoService |
| | | { |
| | | public IRepository<Dt_LocationInfo> Repository => BaseDal; |
| | | public IRepository<Dt_Task> _taskRepository { get; } |
| | | |
| | | public LocationInfoService(IRepository<Dt_LocationInfo> BaseDal) : base(BaseDal) |
| | | public IRepository<Dt_StockInfo> _stockInfoRepository { get; set; } |
| | | |
| | | public LocationInfoService(IRepository<Dt_LocationInfo> BaseDal, IRepository<Dt_Task> taskRepository, IRepository<Dt_StockInfo> stockInfoRepository) : base(BaseDal) |
| | | { |
| | | _taskRepository = taskRepository; |
| | | _stockInfoRepository = stockInfoRepository; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | return await BaseDal.QueryFirstAsync(x => x.RoadwayNo == roadwayNo && x.LocationCode == locationCode); |
| | | } |
| | | |
| | | public async Task<Dt_LocationInfo> GetLocationInfoAsync( string locationCode) |
| | | { |
| | | return await BaseDal.QueryFirstAsync(x=>x.LocationCode == locationCode); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°è´§ä½ä¿¡æ¯ |
| | | /// </summary> |
| | |
| | | { |
| | | return await BaseDal.UpdateDataAsync(locationInfo); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// æ£æ¥å¹¶çæç§»åºä»»å¡æè¿ååºåºä»»å¡ |
| | | /// </summary> |
| | | /// <param name="locationID">ä»»å¡å·</param> |
| | | /// <returns>ä»»å¡å¯¹è±¡</returns> |
| | | public async Task<Dt_Task> TransferCheckAsync(int taskNum) |
| | | { |
| | | try |
| | | { |
| | | // æ ¹æ®ä»»å¡å·è·åä»»å¡ |
| | | var outboundTask = await _taskRepository.QueryFirstAsync(x => x.TaskNum == taskNum); |
| | | if (outboundTask == null) |
| | | return null; |
| | | |
| | | var location = await BaseDal.QueryFirstAsync(x => x.LocationCode == outboundTask.SourceAddress); |
| | | |
| | | // æ£æ¥æ¯å¦éè¦è¿è¡ç§»åº |
| | | if (CheckForInternalTransfer(location)) |
| | | { |
| | | // 计ç®å¯¹åºä½ç½®çç¸å¯¹åºä½ ï¼å¥æ°è¡çä¸ä¸è¡æè
å¶æ°è¡çä¸ä¸è¡ï¼ |
| | | var newLocationID = GetRelativeLocationID(location); |
| | | |
| | | // è·åæ°çåºä½çä»»å¡ |
| | | var internalTransferTask = await _taskRepository.QueryFirstAsync(x => x.SourceAddress == newLocationID && x.Roadway == outboundTask.Roadway); |
| | | |
| | | // 妿æ°çåºä½æ²¡ææ¾å°å¯¹åºçä»»å¡ |
| | | if (internalTransferTask == null) |
| | | { |
| | | return await HandleNoTaskAtLocation(outboundTask.SourceAddress, newLocationID, outboundTask); |
| | | } |
| | | |
| | | // ç´æ¥è¿å䏿·±ä½åºåºä»»å¡ |
| | | return internalTransferTask; |
| | | } |
| | | |
| | | // è¿åå½ååºä½çåºåºä»»å¡ |
| | | return outboundTask; |
| | | } |
| | | catch (Exception) |
| | | { |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | |
| | | #region ç§»åºæ¹æ³ |
| | | |
| | | /// <summary> |
| | | /// 计ç®ç¸å¯¹çåºä½ID |
| | | /// </summary> |
| | | /// <param name="locationID">å½ååºä½ID</param> |
| | | /// <returns>ç¸å¯¹çåºä½ID</returns> |
| | | private string GetRelativeLocationID(Dt_LocationInfo locationInfo) |
| | | { |
| | | int line = locationInfo.Row; |
| | | |
| | | // 计ç®ç¸å¯¹çè´§ä½è¡å¼ï¼å¥æ°è¡çä¸ä¸è¡æè
å¶æ°è¡çä¸ä¸è¡ |
| | | int relativeLine = line % 2 == 1 ? line + 1 : line - 1; |
| | | |
| | | // æå»ºæ°çåºä½ID |
| | | string[] newLocationParts = new string[] { relativeLine.ToString().PadLeft(3, '0'), locationInfo.Column.ToString(), locationInfo.Layer.ToString() }; |
| | | return string.Join("-", newLocationParts); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å¤ç没æä»»å¡çåºä½æ
åµ |
| | | /// </summary> |
| | | /// <param name="originalLocationID">åå§åºä½ID</param> |
| | | /// <param name="newLocationID">æ°çåºä½ID</param> |
| | | /// <param name="outboundTask">åºåºä»»å¡</param> |
| | | /// <returns>çæçç§»åºä»»å¡æåå§åºåºä»»å¡</returns> |
| | | private async Task<Dt_Task> HandleNoTaskAtLocation(string originalLocationID, string newLocationID, Dt_Task outboundTask) |
| | | { |
| | | // å¤æè¯¥ä½ç½®æ¯å¦æåºå |
| | | var stockInfo = await _stockInfoRepository.QueryFirstAsync(x => x.LocationCode == newLocationID); |
| | | |
| | | if (stockInfo == null) |
| | | { |
| | | // å¦ææ²¡æåºåï¼ç´æ¥è¿åå½ååºåºä»»å¡ |
| | | return outboundTask; |
| | | } |
| | | else |
| | | { |
| | | // 妿æåºåï¼çæç§»åºä»»å¡ |
| | | var emptyLocation = await GetTransferLocationEmptyAsync(outboundTask.Roadway); |
| | | var taskNo = await _taskRepository.GetTaskNo(); |
| | | Dt_Task newTransferTask = new Dt_Task() |
| | | { |
| | | CreateDate = DateTime.Now, |
| | | Creater = App.User.UserName, |
| | | CurrentAddress = originalLocationID, |
| | | Grade = 99, |
| | | NextAddress = emptyLocation.LocationCode, |
| | | PalletCode = stockInfo.PalletCode, |
| | | Remark = "ç§»åº", |
| | | Roadway = stockInfo.LocationDetails.RoadwayNo, |
| | | SourceAddress = originalLocationID, |
| | | TaskNum = taskNo, |
| | | TargetAddress = emptyLocation.LocationCode, |
| | | TaskType = TaskTypeEnum.Relocation.GetHashCode(), |
| | | }; |
| | | |
| | | return await _taskRepository.Db.Insertable(newTransferTask).ExecuteReturnEntityAsync(); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®è´§ä½æ¯å¦éè¦ç§»åº |
| | | /// </summary> |
| | | /// <param name="locationID">è´§ä½ID</param> |
| | | /// <returns>æ¯å¦éè¦ç§»åº</returns> |
| | | private bool CheckForInternalTransfer(Dt_LocationInfo location) |
| | | { |
| | | return location.Depth == 2 ? true : false; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®å··éè·åäºæ·±ä½ç空åºä½ |
| | | /// </summary> |
| | | /// <param name="roadway">å··é</param> |
| | | /// <returns>è´§ä½å¯¹è±¡</returns> |
| | | private async Task<Dt_LocationInfo> GetTransferLocationEmptyAsync(string roadway) |
| | | { |
| | | return await BaseDal.QueryFirstAsync(x => x.Depth == 2 && x.LocationStatus == (LocationStatusEnum.Free.GetHashCode()) && x.RoadwayNo == roadway); |
| | | |
| | | //Db.Queryable<Dt_LocationInfo>() |
| | | //.Where(x => x.Status == LocationEnum.Free.ObjToInt()) |
| | | //.Where(x => x.Depth == 2.ToString()) |
| | | //.Where(x => x.Roadway == roadway) |
| | | //.First(); |
| | | } |
| | | |
| | | #endregion ç§»åºæ¹æ³ |
| | | |
| | | } |
| | | } |
| | |
| | | // Expression<Func<T, T2, T3, TResult>> selectExpression, |
| | | // Expression<Func<T, T2, T3, bool>> whereLambda = null) where T : class, new(); |
| | | //Task<PageModel<TEntity>> QueryPage(PaginationModel pagination); |
| | | |
| | | /// <summary> |
| | | /// è·åä»»å¡ç¼å· |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | Task<int> GetTaskNo(); |
| | | } |
| | | } |
| | |
| | | } |
| | | return DeleteData(entities); |
| | | } |
| | | |
| | | public Task<int> GetTaskNo() |
| | | { |
| | | string sql = "select next value for dbo.GetTaskNum"; |
| | | return Db.Ado.SqlQuerySingleAsync<int>(sql); |
| | | } |
| | | //List<TResult> QueryMuch<T, T2, T3, TResult>( |
| | | // Expression<Func<T, T2, T3, object[]>> joinExpression, |
| | | // Expression<Func<T, T2, T3, TResult>> selectExpression, |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Net.Http; |
| | | using System.Net.Http.Headers; |
| | | using System.Reflection.Metadata; |
| | | using System.Text; |
| | | using System.Text.Json; |
| | | using System.Threading.Tasks; |
| | | using Microsoft.Extensions.Configuration; |
| | | using Microsoft.Extensions.Logging; |
| | | using Newtonsoft.Json; |
| | | using WIDESEA_Core.Helper; |
| | | |
| | | namespace WIDESEA_Core |
| | | { |
| | | public class HttpClientHelper |
| | | { |
| | | private readonly IHttpClientFactory _httpClientFactory; |
| | | |
| | | public HttpClientHelper(IHttpClientFactory httpClientFactory, IConfiguration configuration = null) |
| | | { |
| | | _httpClientFactory = httpClientFactory ?? throw new ArgumentNullException(nameof(httpClientFactory)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// POSTè¯·æ± |
| | | /// </summary> |
| | | /// <param name="url">请æ±URL</param> |
| | | /// <param name="content">请æ±å
容</param> |
| | | /// <param name="mediaType">åªä½ç±»å</param> |
| | | /// <param name="config">请æ±é
ç½®</param> |
| | | /// <returns></returns> |
| | | public HttpResponseResult Post(string url, string content, string contentType = "application/json", HttpRequestConfig? config = null) |
| | | { |
| | | HttpResponseResult httpResponseResult = ExecuteAsync(async (client) => |
| | | { |
| | | var request = new HttpRequestMessage(HttpMethod.Post, url); |
| | | request.Content = new StringContent(content ?? string.Empty, Encoding.UTF8, contentType); |
| | | SetRequestHeaders(request, config?.Headers); |
| | | return await client.SendAsync(request); |
| | | }, config, $"POST {url}").Result; |
| | | httpResponseResult.ApiUrl = url; |
| | | return httpResponseResult; |
| | | } |
| | | |
| | | public HttpResponseResult Get(string url, HttpRequestConfig? config = null) |
| | | { |
| | | HttpResponseResult httpResponseResult = ExecuteAsync(async (client) => |
| | | { |
| | | var request = new HttpRequestMessage(HttpMethod.Get, url); |
| | | SetRequestHeaders(request, config?.Headers); |
| | | return await client.SendAsync(request); |
| | | }, config, $"GET {url}").Result; |
| | | |
| | | httpResponseResult.ApiUrl = url; |
| | | return httpResponseResult; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// POSTè¯·æ± |
| | | /// </summary> |
| | | /// <param name="url">请æ±URL</param> |
| | | /// <param name="content">请æ±å
容</param> |
| | | /// <param name="mediaType">åªä½ç±»å</param> |
| | | /// <param name="config">请æ±é
ç½®</param> |
| | | /// <returns></returns> |
| | | public HttpResponseResult<TResponse> Post<TResponse>(string url, string content, string contentType = "application/json", HttpRequestConfig? config = null) |
| | | { |
| | | |
| | | HttpResponseResult httpResponseResult = Post(url, content, contentType, config); |
| | | |
| | | HttpResponseResult<TResponse> result = new HttpResponseResult<TResponse> |
| | | { |
| | | IsSuccess = httpResponseResult.IsSuccess, |
| | | StatusCode = httpResponseResult.StatusCode, |
| | | Content = httpResponseResult.Content, |
| | | Headers = httpResponseResult.Headers, |
| | | Duration = httpResponseResult.Duration, |
| | | ErrorMessage = httpResponseResult.ErrorMessage, |
| | | Exception = httpResponseResult.Exception |
| | | }; |
| | | |
| | | if (result.IsSuccess && !string.IsNullOrEmpty(result.Content)) |
| | | { |
| | | try |
| | | { |
| | | TResponse? response = JsonConvert.DeserializeObject<TResponse>(result.Content); |
| | | if (response != null) |
| | | { |
| | | result.Data = response; |
| | | } |
| | | else |
| | | { |
| | | result.IsSuccess = false; |
| | | result.ErrorMessage = "ååºååç»æä¸ºnull"; |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | result.IsSuccess = false; |
| | | result.ErrorMessage = $"ååºåå失败: {ex.Message}"; |
| | | result.Exception = ex; |
| | | } |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | |
| | | public HttpResponseResult<TResponse> Get<TResponse>(string url, HttpRequestConfig? config = null) |
| | | { |
| | | HttpResponseResult httpResponseResult = Get(url, config); |
| | | |
| | | HttpResponseResult<TResponse> result = new HttpResponseResult<TResponse> |
| | | { |
| | | IsSuccess = httpResponseResult.IsSuccess, |
| | | StatusCode = httpResponseResult.StatusCode, |
| | | Content = httpResponseResult.Content, |
| | | Headers = httpResponseResult.Headers, |
| | | Duration = httpResponseResult.Duration, |
| | | ErrorMessage = httpResponseResult.ErrorMessage, |
| | | Exception = httpResponseResult.Exception |
| | | }; |
| | | |
| | | if (result.IsSuccess && !string.IsNullOrEmpty(result.Content)) |
| | | { |
| | | try |
| | | { |
| | | TResponse? response = JsonConvert.DeserializeObject<TResponse>(result.Content); |
| | | if (response != null) |
| | | { |
| | | result.Data = response; |
| | | } |
| | | else |
| | | { |
| | | result.IsSuccess = false; |
| | | result.ErrorMessage = "ååºååç»æä¸ºnull"; |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | result.IsSuccess = false; |
| | | result.ErrorMessage = $"ååºåå失败: {ex.Message}"; |
| | | result.Exception = ex; |
| | | } |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ§è¡HTTPè¯·æ± |
| | | /// </summary> |
| | | private async Task<HttpResponseResult> ExecuteAsync(Func<HttpClient, Task<HttpResponseMessage>> requestFunc, HttpRequestConfig? config, string requestInfo) |
| | | { |
| | | var result = new HttpResponseResult(); |
| | | var stopwatch = System.Diagnostics.Stopwatch.StartNew(); |
| | | config ??= new HttpRequestConfig(); |
| | | |
| | | try |
| | | { |
| | | using var client = CreateHttpClient(config); |
| | | HttpResponseMessage? response = null; |
| | | Exception? lastException = null; |
| | | |
| | | // éè¯æºå¶ |
| | | for (int retry = 0; retry <= config.MaxRetryCount; retry++) |
| | | { |
| | | try |
| | | { |
| | | response = await requestFunc(client); |
| | | if (response.StatusCode == System.Net.HttpStatusCode.OK) |
| | | break; |
| | | } |
| | | catch (Exception ex) when (retry < config.MaxRetryCount) |
| | | { |
| | | lastException = ex; |
| | | if (config.EnableLogging) |
| | | { |
| | | // TODOï¼æ¥å¿è®°å½ |
| | | } |
| | | await Task.Delay(config.RetryIntervalMs, default); |
| | | } |
| | | } |
| | | |
| | | if (response == null) |
| | | { |
| | | throw lastException ?? new HttpRequestException("请æ±å¤±è´¥"); |
| | | } |
| | | |
| | | result.StatusCode = response.StatusCode; |
| | | result.IsSuccess = response.IsSuccessStatusCode; |
| | | |
| | | // 读åååºå
容 |
| | | result.Content = await response.Content.ReadAsStringAsync(); |
| | | |
| | | // è·åååºå¤´ |
| | | result.Headers = new Dictionary<string, IEnumerable<string>>(); |
| | | foreach (var header in response.Headers) |
| | | { |
| | | result.Headers[header.Key] = header.Value; |
| | | } |
| | | foreach (var header in response.Content.Headers) |
| | | { |
| | | result.Headers[header.Key] = header.Value; |
| | | } |
| | | |
| | | if (config.EnableLogging) |
| | | { |
| | | // TODOï¼æ¥å¿è®°å½ |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | result.IsSuccess = false; |
| | | result.ErrorMessage = ex.Message; |
| | | result.Exception = ex; |
| | | |
| | | if (config.EnableLogging) |
| | | { |
| | | // TODOï¼æ¥å¿è®°å½ |
| | | } |
| | | } |
| | | finally |
| | | { |
| | | stopwatch.Stop(); |
| | | result.Duration = stopwatch.ElapsedMilliseconds; |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å建HttpClient |
| | | /// </summary> |
| | | private HttpClient CreateHttpClient(HttpRequestConfig config) |
| | | { |
| | | var client = _httpClientFactory.CreateClient(); |
| | | client.Timeout = TimeSpan.FromMilliseconds(config.TimeoutMs); |
| | | |
| | | // 设置é»è®¤è¯·æ±å¤´ |
| | | client.DefaultRequestHeaders.Clear(); |
| | | client.DefaultRequestHeaders.Accept.Clear(); |
| | | client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); |
| | | |
| | | return client; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 设置请æ±å¤´ |
| | | /// </summary> |
| | | private void SetRequestHeaders(HttpRequestMessage request, Dictionary<string, string>? headers) |
| | | { |
| | | if (headers != null) |
| | | { |
| | | foreach (var header in headers) |
| | | { |
| | | if (!request.Headers.Contains(header.Key)) |
| | | { |
| | | request.Headers.Add(header.Key, header.Value); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEA_Core |
| | | { |
| | | /// <summary> |
| | | /// HTTP请æ±é
ç½® |
| | | /// </summary> |
| | | public class HttpRequestConfig |
| | | { |
| | | /// <summary> |
| | | /// è¶
æ¶æ¶é´ï¼æ¯«ç§ï¼ |
| | | /// </summary> |
| | | public int TimeoutMs { get; set; } = 300000; |
| | | |
| | | /// <summary> |
| | | /// æå¤§éè¯æ¬¡æ° |
| | | /// </summary> |
| | | public int MaxRetryCount { get; set; } = 3; |
| | | |
| | | /// <summary> |
| | | /// éè¯é´éï¼æ¯«ç§ï¼ |
| | | /// </summary> |
| | | public int RetryIntervalMs { get; set; } = 1000; |
| | | |
| | | /// <summary> |
| | | /// 请æ±å¤´ |
| | | /// </summary> |
| | | public Dictionary<string, string> Headers { get; set; } = new Dictionary<string, string>(); |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦å¯ç¨æ¥å¿ |
| | | /// </summary> |
| | | public bool EnableLogging { get; set; } = true; |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Net; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEA_Core |
| | | { |
| | | /// <summary> |
| | | /// HTTPååºç»æ |
| | | /// </summary> |
| | | public class HttpResponseResult |
| | | { |
| | | /// <summary> |
| | | /// æ¯å¦æå |
| | | /// </summary> |
| | | public bool IsSuccess { get; set; } |
| | | |
| | | /// <summary> |
| | | /// HTTPç¶æç |
| | | /// </summary> |
| | | public HttpStatusCode StatusCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ååºå
容 |
| | | /// </summary> |
| | | public string Content { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ååºå¤´ |
| | | /// </summary> |
| | | public Dictionary<string, IEnumerable<string>> Headers { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 请æ±èæ¶ï¼æ¯«ç§ï¼ |
| | | /// </summary> |
| | | public long Duration { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éè¯¯ä¿¡æ¯ |
| | | /// </summary> |
| | | public string ErrorMessage { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¼å¸¸ä¿¡æ¯ |
| | | /// </summary> |
| | | public Exception Exception { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string ApiUrl { get; set; } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// HTTPååºç»æï¼æ³åï¼ |
| | | /// </summary> |
| | | public class HttpResponseResult<T> : HttpResponseResult |
| | | { |
| | | /// <summary> |
| | | /// ååºåååçæ°æ® |
| | | /// </summary> |
| | | public T Data { get; set; } |
| | | } |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEA_DTO |
| | | { |
| | | /// <summary> |
| | | /// å容æè¾å
¥Dto |
| | | /// </summary> |
| | | public class InputDto |
| | | { |
| | | /// <summary> |
| | | /// æçå· |
| | | /// </summary> |
| | | public string PalletCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è´§ä½å· |
| | | /// </summary> |
| | | public string LocationCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è´§ä½ç¶æ |
| | | /// </summary> |
| | | public int LocationStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦æ£å¸¸NGæµç¨ |
| | | /// </summary> |
| | | public int IsNG { get; set; } |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEA_DTO |
| | | { |
| | | /// <summary> |
| | | /// å容æè¾åºDto |
| | | /// </summary> |
| | | public class OutPutDto |
| | | { |
| | | /// <summary> |
| | | /// è´§ä½å· |
| | | /// </summary> |
| | | public string LocationCode { get;set; } |
| | | |
| | | /// <summary> |
| | | /// æçå· |
| | | /// </summary> |
| | | public string PalletCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è´§ä½ç¶æ |
| | | /// </summary> |
| | | public int LocationStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦æ£å¸¸æµç¨ |
| | | /// </summary> |
| | | public int IsNormalProcedure { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ééå· |
| | | /// </summary> |
| | | public string Channel { get;set; } |
| | | |
| | | /// <summary> |
| | | /// çµè¯æ¡ç |
| | | /// </summary> |
| | | public string CellCode { get; set; } |
| | | } |
| | | } |
| | |
| | | /// </summary> |
| | | public string CellBarcode { get; set; } |
| | | } |
| | | |
| | | |
| | | public class StockInfoDTO |
| | | { |
| | | /// <summary> |
| | | /// æçç |
| | | /// </summary> |
| | | public string PalletCode { get; set; } |
| | | /// <summary> |
| | | /// ä»»å¡å· |
| | | /// </summary> |
| | | public string TaskNum { get; set; } |
| | | } |
| | | } |
| | |
| | | /// <param name="RoadwayNo">å··é</param> |
| | | /// <returns></returns> |
| | | public Task<Dt_LocationInfo?> GetLocationInfo(string RoadwayNo, string locationCode); |
| | | |
| | | /// <summary> |
| | | /// è·åè´§ä½ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="locationCode"></param> |
| | | /// <returns></returns> |
| | | public Task<Dt_LocationInfo> GetLocationInfoAsync(string locationCode); |
| | | |
| | | /// <summary> |
| | | /// æ£æ¥å¹¶çæç§»åºä»»å¡æè¿ååºåºä»»å¡ |
| | | /// </summary> |
| | | /// <param name="locationID">ä»»å¡å·</param> |
| | | /// <returns>ä»»å¡å¯¹è±¡</returns> |
| | | public Task<Dt_Task> TransferCheckAsync(int taskNum); |
| | | } |
| | | } |
| | |
| | | /// <param name="stockInfo"></param> |
| | | /// <returns></returns> |
| | | public Task<bool> UpdateStockAsync(Dt_StockInfo stockInfo); |
| | | |
| | | /// <summary> |
| | | /// æ£ç´¢æå®æçå¨ç»å®ä½ç½®çåºå详ç»ä¿¡æ¯ã |
| | | /// </summary> |
| | | /// <param name="palletCode">请æ±åºåä¿¡æ¯çæçå¯ä¸æ è¯ç¬¦ãä¸è½ä¸º null æç©ºã</param> |
| | | /// <param name="locationCode">表示æçåå¨ä½ç½®ç代ç ãä¸è½ä¸º null æç©ºã</param> |
| | | /// <returns>è¡¨ç¤ºå¼æ¥æä½çä»»å¡ãä»»å¡ç»æå
å«ä¸ä¸ª <see cref="Dt_StockInfo"/> 对象ï¼è¯¥å¯¹è±¡å
嫿宿çåä½ç½®çåºå详ç»ä¿¡æ¯ãå¦ææªæ¾å°å¹é
çåºåä¿¡æ¯ï¼åè¿å nullã</returns> |
| | | public Task<Dt_StockInfo> GetStockInfoAsync(string palletCode, string locationCode); |
| | | } |
| | | } |
| | |
| | | Task<bool> ChangePallet(StockDTO stock); |
| | | |
| | | Task<bool> SplitPallet(StockDTO stock); |
| | | |
| | | Task<bool> UpdateStockInfo(StockInfoDTO stock); |
| | | } |
| | | } |
| | |
| | | /// åºåºä»»å¡å®æ ï¼ä¿®æ¹åºåï¼ä¿®æ¹è´§ä½ç¶æï¼å é¤ä»»å¡æ°æ®ï¼æ·»å åå²ä»»å¡æ°æ® |
| | | /// </summary> |
| | | public Task<WebResponseContent> OutboundFinishTaskAsync(CreateTaskDto taskDto); |
| | | |
| | | /// <summary> |
| | | /// å åæºåæ¾è´§å®æåç©æµéç¥åæå容æå®æä¿¡å· |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public Task<WebResponseContent> InOrOutCompletedAsync(InputDto input); |
| | | |
| | | /// <summary> |
| | | /// åæå容æå®æ¶åç©æµæ´æ°å容æç¶æä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public Task<WebResponseContent> SendLocationStatusAsync(InputDto input); |
| | | |
| | | /// <summary> |
| | | /// å容æå·¥ä½å®æåè°ç¨æ¤æ¥å£éç¥ç©æµåºåº |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public Task<WebResponseContent> RequestOutboundAsync(InputDto input); |
| | | |
| | | /// <summary> |
| | | /// å
¥åºå®æå容è°ç¨è·åæç䏿¯ä¸ªééçµè¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public Task<WebResponseContent> GetPalletCodeCellAsync(InputDto input); |
| | | } |
| | | } |
| | |
| | | { |
| | | return await BaseDal.UpdateDataAsync(stockInfo); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// æ£ç´¢æå®æçå¨ç»å®ä½ç½®çåºå详ç»ä¿¡æ¯ã |
| | | /// </summary> |
| | | /// <param name="palletCode">请æ±åºåä¿¡æ¯çæçå¯ä¸æ è¯ç¬¦ãä¸è½ä¸º null æç©ºã</param> |
| | | /// <param name="locationCode">表示æçåå¨ä½ç½®ç代ç ãä¸è½ä¸º null æç©ºã</param> |
| | | /// <returns>è¡¨ç¤ºå¼æ¥æä½çä»»å¡ãä»»å¡ç»æå
å«ä¸ä¸ª <see cref="Dt_StockInfo"/> 对象ï¼è¯¥å¯¹è±¡å
嫿宿çåä½ç½®çåºå详ç»ä¿¡æ¯ãå¦ææªæ¾å°å¹é
çåºåä¿¡æ¯ï¼åè¿å nullã</returns> |
| | | public async Task<Dt_StockInfo> GetStockInfoAsync(string palletCode, string locationCode) |
| | | { |
| | | return await BaseDal.QueryFirstAsync(x => x.PalletCode == palletCode && x.LocationCode == locationCode); |
| | | } |
| | | } |
| | | } |
| | |
| | | return await StockInfoDetailService.Repository.DeleteDataAsync(detailEntities); |
| | | } |
| | | |
| | | public async Task<bool> UpdateStockInfo(StockInfoDTO stock) |
| | | { |
| | | if (stock == null) return false; |
| | | |
| | | var existingStock = StockInfoService.Repository.QueryFirst(s => s.PalletCode == stock.PalletCode); |
| | | if (existingStock == null) return false; |
| | | |
| | | existingStock.LocationCode = ""; |
| | | existingStock.LocationId = 0; |
| | | |
| | | return await StockInfoService.Repository.UpdateDataAsync(existingStock); |
| | | } |
| | | |
| | | |
| | | private static List<Dt_StockInfoDetail_Hty> CreateDetailHistory(IEnumerable<Dt_StockInfoDetail> details, string operateType) |
| | | { |
| | | var now = DateTime.Now; |
| | |
| | | using AutoMapper; |
| | | using Microsoft.AspNetCore.Components.Forms; |
| | | using SqlSugar; |
| | | using System.Text.Json; |
| | | using WIDESEA_Common.LocationEnum; |
| | | using WIDESEA_Common.TaskEnum; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_Core.BaseServices; |
| | | using WIDESEA_Core.Helper; |
| | | using WIDESEA_DTO; |
| | | using WIDESEA_DTO.Task; |
| | | using WIDESEA_IBasicService; |
| | | using WIDESEA_IStockService; |
| | |
| | | private readonly IMapper _mapper; |
| | | private readonly IStockInfoService _stockInfoService; |
| | | private readonly ILocationInfoService _locationInfoService; |
| | | private readonly HttpClientHelper _httpClientHelper; |
| | | |
| | | public IRepository<Dt_Task> Repository => BaseDal; |
| | | |
| | |
| | | IRepository<Dt_Task> BaseDal, |
| | | IMapper mapper, |
| | | IStockInfoService stockInfoService, |
| | | ILocationInfoService locationInfoService) : base(BaseDal) |
| | | ILocationInfoService locationInfoService, |
| | | HttpClientHelper httpClientHelper) : base(BaseDal) |
| | | { |
| | | _mapper = mapper; |
| | | _stockInfoService = stockInfoService; |
| | | _locationInfoService = locationInfoService; |
| | | _httpClientHelper = httpClientHelper; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | return WebResponseContent.Instance.Error($"宿任å¡å¤±è´¥: {ex.Message}"); |
| | | } |
| | | } |
| | | |
| | | #region åå®¹ææ¥å£ |
| | | |
| | | /// <summary> |
| | | /// å åæºåæ¾è´§å®æåç©æµéç¥åæå容æå®æä¿¡å· |
| | | /// </summary> |
| | | public async Task<WebResponseContent> InOrOutCompletedAsync(InputDto input) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | if (string.IsNullOrWhiteSpace(input.PalletCode) || string.IsNullOrWhiteSpace(input.LocationCode)) |
| | | { |
| | | return content.Error($"æçå·æè
è´§ä½ç¼å·ä¸è½ä¸ºç©º"); |
| | | } |
| | | |
| | | try |
| | | { |
| | | var stockInfo = await _stockInfoService.GetStockInfoAsync(input.PalletCode, input.LocationCode); |
| | | if (stockInfo == null) |
| | | { |
| | | var location = await _locationInfoService.GetLocationInfoAsync(input.LocationCode); |
| | | |
| | | OutPutDto outPutDto = new OutPutDto() |
| | | { |
| | | LocationCode = input.LocationCode, |
| | | PalletCode = input.PalletCode, |
| | | IsNormalProcedure = 1, |
| | | LocationStatus = location.LocationStatus |
| | | }; |
| | | content.OK(data: outPutDto); |
| | | } |
| | | else |
| | | { |
| | | OutPutDto outPutDto = new OutPutDto() |
| | | { |
| | | LocationCode = input.LocationCode, |
| | | PalletCode = input.PalletCode, |
| | | IsNormalProcedure = 1, |
| | | LocationStatus = stockInfo.LocationDetails.LocationStatus |
| | | }; |
| | | content.OK(data: outPutDto); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content.Error(ex.Message); |
| | | } |
| | | |
| | | return content; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åæå容æå®æ¶åç©æµæ´æ°å容æç¶æä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public async Task<WebResponseContent> SendLocationStatusAsync(InputDto input) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | if (string.IsNullOrWhiteSpace(input.LocationCode)) |
| | | { |
| | | return content.Error($"è´§ä½ç¼å·ä¸è½ä¸ºç©º"); |
| | | } |
| | | |
| | | try |
| | | { |
| | | var result = await _locationInfoService.Db.Updateable<Dt_LocationInfo>() |
| | | .SetColumns(s => new Dt_LocationInfo |
| | | { |
| | | LocationStatus = input.LocationStatus |
| | | }).Where(s => s.LocationCode == input.LocationCode).ExecuteCommandAsync() > 0; |
| | | |
| | | if (result) |
| | | { |
| | | content.OK("æ´æ°æå"); |
| | | } |
| | | else |
| | | { |
| | | content.Error("æ´æ°å¤±è´¥"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å容æå·¥ä½å®æåè°ç¨æ¤æ¥å£éç¥ç©æµåºåº |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public async Task<WebResponseContent> RequestOutboundAsync(InputDto input) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | if (string.IsNullOrWhiteSpace(input.LocationCode) || string.IsNullOrWhiteSpace(input.PalletCode)) |
| | | { |
| | | return content.Error($"æçå·æè
è´§ä½ç¼å·ä¸è½ä¸ºç©º"); |
| | | } |
| | | try |
| | | { |
| | | var stock = await _stockInfoService.GetStockInfoAsync(input.PalletCode, input.LocationCode); |
| | | if (stock == null) |
| | | { |
| | | content.Error("æªæ¾å°å¯¹åºçæç"); |
| | | } |
| | | else |
| | | { |
| | | var taskList = new Dt_Task |
| | | { |
| | | WarehouseId = stock.WarehouseId, |
| | | PalletCode = stock.PalletCode, |
| | | PalletType = stock.PalletType, |
| | | SourceAddress = stock.LocationCode, |
| | | CurrentAddress = stock.LocationCode, |
| | | NextAddress = "10080", |
| | | TargetAddress = "10081", |
| | | Roadway = stock.LocationDetails.RoadwayNo, |
| | | TaskType = TaskTypeEnum.Outbound.GetHashCode(), |
| | | TaskStatus = TaskStatusEnum.New.GetHashCode(), |
| | | Grade = 1, |
| | | TaskNum = await BaseDal.GetTaskNo(), |
| | | Creater = "system", |
| | | }; |
| | | |
| | | var result = await BaseDal.AddDataAsync(taskList) > 0; |
| | | var wmstaskDto = result ? _mapper.Map<WMSTaskDTO>(taskList) : null; |
| | | |
| | | |
| | | var httpResponse = _httpClientHelper.Post<WebResponseContent>("http://logistics-service/api/logistics/notifyoutbound", JsonSerializer.Serialize(wmstaskDto)).Data; |
| | | if (result && httpResponse != null) |
| | | { |
| | | content.OK("åºåºè¯·æ±æå"); |
| | | } |
| | | else |
| | | { |
| | | content.Error("åºåºè¯·æ±å¤±è´¥"); |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å
¥åºå®æå容è°ç¨è·åæç䏿¯ä¸ªééçµè¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public async Task<WebResponseContent> GetPalletCodeCellAsync(InputDto input) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | if (string.IsNullOrWhiteSpace(input.PalletCode) || string.IsNullOrWhiteSpace(input.LocationCode)) |
| | | { |
| | | return content.Error($"æçå·æè
è´§ä½ç¼å·ä¸è½ä¸ºç©º"); |
| | | } |
| | | try |
| | | { |
| | | var stockInfo = await _stockInfoService.GetStockInfoAsync(input.PalletCode, input.LocationCode); |
| | | if (stockInfo == null) |
| | | { |
| | | return content.Error("æªæ¾å°å¯¹åºçæç"); |
| | | } |
| | | var outPutDtos = stockInfo.Details.Select(x => new OutPutDto() |
| | | { |
| | | LocationCode = input.LocationCode, |
| | | PalletCode = input.PalletCode, |
| | | IsNormalProcedure = 1, |
| | | LocationStatus = stockInfo.LocationDetails.LocationStatus, |
| | | CellCode = x.SerialNumber, |
| | | Channel = x.InboundOrderRowNo.ToString() |
| | | }).ToList(); |
| | | return content.OK(data: outPutDtos); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return content.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | } |
| | |
| | | { |
| | | return await Service.SplitPallet(stock); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°åºåä¿¡æ¯ï¼ç»çãæ¢çãæçåè°ç¨æ¤æ¥å£æ´æ°åºåä¿¡æ¯ï¼ |
| | | /// </summary> |
| | | /// <param name="stock"></param> |
| | | /// <returns></returns> |
| | | [HttpGet, HttpPost, Route("UpdateStockInfoAsync"), AllowAnonymous] |
| | | public async Task<bool> UpdateStockInfo([FromBody] StockInfoDTO stock) |
| | | { |
| | | return await Service.UpdateStockInfo(stock); |
| | | } |
| | | } |
| | | } |
| | |
| | | using WIDESEA_Common.CommonEnum; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.BaseController; |
| | | using WIDESEA_DTO; |
| | | using WIDESEA_DTO.Stock; |
| | | using WIDESEA_DTO.Task; |
| | | using WIDESEA_ITaskInfoService; |
| | |
| | | /// </summary> |
| | | /// <param name="taskDto"></param> |
| | | /// <returns></returns> |
| | | public async Task<WebResponseContent?> CreateTaskInboundAsync(CreateTaskDto taskDto) |
| | | [HttpPost("CreateTaskInbound"),AllowAnonymous] |
| | | public async Task<WebResponseContent?> CreateTaskInboundAsync([FromBody] CreateTaskDto taskDto) |
| | | { |
| | | return await Service.CreateTaskInboundAsync(taskDto); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å åæºåæ¾è´§å®æåç©æµéç¥åæå容æå®æä¿¡å· |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("InOrOutCompleted"), AllowAnonymous] |
| | | public async Task<WebResponseContent?> InOrOutCompletedAsync([FromBody] InputDto input) |
| | | { |
| | | return await Service.InOrOutCompletedAsync(input); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åæå容æå®æ¶åç©æµæ´æ°å容æç¶æä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("SendLocationStatus"), AllowAnonymous] |
| | | public async Task<WebResponseContent?> SendLocationStatusAsync([FromBody] InputDto input) |
| | | { |
| | | return await Service.SendLocationStatusAsync(input); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å容æå·¥ä½å®æåè°ç¨æ¤æ¥å£éç¥ç©æµåºåº |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("RequestOutbound"), AllowAnonymous] |
| | | public async Task<WebResponseContent?> RequestOutboundAsync([FromBody] InputDto input) |
| | | { |
| | | return await Service.RequestOutboundAsync(input); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å
¥åºå®æå容è°ç¨è·åæç䏿¯ä¸ªééçµè¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("GetPalletCodeCell"), AllowAnonymous] |
| | | public async Task<WebResponseContent?> GetPalletCodeCellAsync([FromBody] InputDto input) |
| | | { |
| | | return await Service.GetPalletCodeCellAsync(input); |
| | | } |
| | | } |
| | | } |
| | |
| | | options.Filters.Add(typeof(ActionExecuteFilter)); |
| | | }); |
| | | |
| | | builder.Services.AddScoped<HttpClientHelper>(); |
| | | |
| | | builder.Services.AddAuthorizationSetup(); |
| | | |
| | | builder.Services.AddIpPolicyRateLimitSetup(builder.Configuration);//IPLimitéæµ å¯å¨æå¡ |
| | |
| | | //todo |
| | | //app.UseRecordAccessLogsMiddle(); |
| | | |
| | | app.UseCors(AppSettings.Get(new string[] { "Cors", "PolicyName" })); |
| | | |
| | | DefaultFilesOptions defaultFilesOptions = new DefaultFilesOptions(); |
| | | defaultFilesOptions.DefaultFileNames.Clear(); |
| | |
| | | |
| | | app.UseRouting(); |
| | | |
| | | app.UseCors(AppSettings.Get(new string[] { "Cors", "PolicyName" })); |
| | | |
| | | app.UseAuthentication(); |
| | | app.UseAuthorization(); |
| | | |