Merge branch 'master' of http://115.159.85.185:8098/r/HuaYiZhongHeng/BaiBuLiKu
| | |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json |
| | | /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Properties/PublishProfiles/FolderProfile.pubxml |
| | | *.targets |
| | | /Code Management/WCS/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.metadata.v7.bin |
| | | /Code Management/WCS/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.projects.v7.bin |
| | | /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/obj/Debug/net6.0/WIDESEAWCS_BasicInfoRepository.csproj.CopyComplete |
| | | /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/obj/Debug/net6.0/WIDESEAWCS_BasicInfoService.csproj.CopyComplete |
| | | /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/obj/Debug/net6.0/WIDESEAWCS_DTO.csproj.CopyComplete |
| | | /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/obj/Debug/net6.0/WIDESEAWCS_IBasicInfoRepository.csproj.CopyComplete |
| | | /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/Debug/net6.0/WIDESEAWCS_IBasicInfoService.csproj.CopyComplete |
| | | /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/Debug/net6.0/WIDESEAWCS_ISystemRepository.csproj.CopyComplete |
| | | /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/obj/Debug/net6.0/WIDESEAWCS_ISystemServices.csproj.CopyComplete |
| | | /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/obj/Debug/net6.0/WIDESEAWCS_ITaskInfoRepository.csproj.CopyComplete |
| | | /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/obj/Debug/net6.0/WIDESEAWCS_ITaskInfoService.csproj.CopyComplete |
| | | /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfo_HtyRepository/obj/Debug/net6.0/WIDESEAWCS_ITaskInfo_HtyRepository.csproj.CopyComplete |
| | | /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfo_HtyService/obj/Debug/net6.0/WIDESEAWCS_ITaskInfo_HtyService.csproj.CopyComplete |
| | | /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/obj/Debug/net6.0/WIDESEAWCS_Model.csproj.CopyComplete |
| | | /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/obj/Debug/net6.0/WIDESEAWCS_IProcessRepository.csproj.CopyComplete |
| | | /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/Debug/net6.0/WIDESEAWCS_ProcessRepository.csproj.CopyComplete |
| | | /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/WIDESEAWCS_Server.csproj.CopyComplete |
| | | /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/Debug/net6.0/WIDESEAWCS_SystemRepository.csproj.CopyComplete |
| | | /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/Debug/net6.0/WIDESEAWCS_SystemServices.csproj.CopyComplete |
| | | /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/Debug/net6.0/WIDESEAWCS_TaskInfoRepository.csproj.CopyComplete |
| | | /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/Debug/net6.0/WIDESEAWCS_TaskInfoService.csproj.CopyComplete |
| | | /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfo_HtyRepository/obj/Debug/net6.0/WIDESEAWCS_TaskInfo_HtyRepository.csproj.CopyComplete |
| | | /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfo_HtyService/obj/Debug/net6.0/WIDESEAWCS_TaskInfo_HtyService.csproj.CopyComplete |
| | | /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/Debug/net6.0/WIDESEAWCS_Tasks.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSClient/.vs/slnx.sqlite |
| | | /Code Management/WMS/WIDESEA_WMSClient/.vs/WIDESEA_WMSClient/v17/.wsuo |
| | | /Code Management/WMS/WIDESEA_WMSServer/.vs/ProjectEvaluation/widesea_wmsserver.metadata.v7.bin |
| | | /Code Management/WMS/WIDESEA_WMSServer/.vs/ProjectEvaluation/widesea_wmsserver.projects.v7.bin |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_BusinessesRepository/obj/Debug/net6.0/WIDESEA_BusinessesRepository.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_BusinessServices/obj/Debug/net6.0/WIDESEA_BusinessServices.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Common/obj/Debug/net6.0/WIDESEA_Common.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/obj/Debug/net6.0/WIDESEA_DTO.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessesRepository/obj/Debug/net6.0/WIDESEA_IBusinessesRepository.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessServices/obj/Debug/net6.0/WIDESEA_IBusinessServices.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IRepository/obj/Debug/net6.0/WIDESEA_IRepository.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IServices/obj/Debug/net6.0/WIDESEA_IServices.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/obj/Debug/net6.0/WIDESEA_IStorageBasicRepository.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/obj/Debug/net6.0/WIDESEA_IStorageBasicServices.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderRepository/obj/Debug/net6.0/WIDESEA_IStorageOutOrderRepository.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderService/obj/Debug/net6.0/WIDESEA_IStorageOutOrderServices.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskRepository/obj/Debug/net6.0/WIDESEA_IStorageTaskRepository.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/obj/Debug/net6.0/WIDESEA_IStorageTaskServices.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/Debug/net6.0/WIDESEA_IStoragIntegrationServices.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Model/obj/Debug/net6.0/WIDESEA_Model.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Repository/obj/Debug/net6.0/WIDESEA_Repository.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Services/obj/Debug/net6.0/WIDESEA_Services.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/obj/Debug/net6.0/WIDESEA_StorageBasicRepository.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/obj/Debug/net6.0/WIDESEA_StorageBasicServices.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderRepository/obj/Debug/net6.0/WIDESEA_StorageOutOrderRepository.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderServices/obj/Debug/net6.0/WIDESEA_StorageOutOrderServices.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskRepository/obj/Debug/net6.0/WIDESEA_StorageTaskRepository.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/obj/Debug/net6.0/WIDESEA_StorageTaskServices.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/obj/Debug/net6.0/WIDESEA_StoragIntegrationServices.csproj.CopyComplete |
| | | /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/obj/Debug/net6.0/WIDESEA_WMSServer.csproj.CopyComplete |
| | |
| | | let loadingStatus = false; |
| | | if (process.env.NODE_ENV == 'development') { |
| | | axios.defaults.baseURL = 'http://127.0.0.1:9291/'; |
| | | //axios.defaults.baseURL = 'http://192.168.5.251:9291/'; |
| | | // axios.defaults.baseURL = 'http://192.168.20.251:9291/'; |
| | | } |
| | | else if (process.env.NODE_ENV == 'debug') { |
| | | axios.defaults.baseURL = 'http://127.0.0.1:8098/'; |
| | |
| | | <template> |
| | | <el-row> |
| | | <el-col :span="3"> |
| | | |
| | | <device-stacker v-for="stacker in Stackers" :key="stacker.deviceName" :Stacker="stacker"></device-stacker> |
| | | </el-col> |
| | | <el-col :span="21"> |
| | | <device-line v-for="device in devices" :key="device.deviceName" :device="device" /> |
| | | </el-col> |
| | | </el-row> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { onMounted, reactive, toRefs } from "vue"; |
| | | import eventBus from "@/uitils/eventBus"; |
| | | import DeviceLine from "@/components/DeviceLine.vue"; |
| | | import DeviceStacker from "@/components/DeviceStacker.vue"; |
| | | |
| | | // å åæº |
| | | const Stackers = reactive([]); |
| | | |
| | | // 设å¤å表ï¼ä¿®æ¹éå¤è®¾å¤åç§°ï¼ |
| | | const devices = reactive([]); |
| | | |
| | | const intToBitArrayFromBinaryString = (num, numBits) => { |
| | | let binaryString = num.toString(2).padStart(numBits, '0'); |
| | | return Array.from({ length: numBits }, (_, index) => binaryString[index] === '1'); |
| | | }; |
| | | |
| | | // çå¬è®¾å¤æ°æ®åå |
| | | onMounted(() => { |
| | | eventBus.on('locationData', eventData => { |
| | | console.log(eventData) |
| | | if (eventData.deviceName === "éåå
¥åºè¾é线"||eventData.deviceName === "éåå
¥åºè¾é线") { |
| | | |
| | | if (devices.length <= 0) { |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.childDeviceCode }); |
| | | } |
| | | else { |
| | | const device = devices.find(c => c.childDeviceCode == eventData.childDeviceCode) |
| | | if (device) { |
| | | const number = eventData.data.commandWrite.writeInteractiveSignal; |
| | | const writeInteractiveSignal = intToBitArrayFromBinaryString(number, 8) |
| | | eventData.data.writeInteractiveSignal = writeInteractiveSignal; |
| | | device.data = eventData.data |
| | | } |
| | | else { |
| | | const number = eventData.data.commandWrite.writeInteractiveSignal; |
| | | const writeInteractiveSignal = intToBitArrayFromBinaryString(number, 8) |
| | | eventData.data.writeInteractiveSignal = writeInteractiveSignal; |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.childDeviceCode }); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | eventBus.on('stackerData', eventData => { |
| | | if (eventData.deviceName == "éå1å·å åæº"||eventData.deviceName == "éå2å·å åæº") { |
| | | if (Stackers.length == 0) { |
| | | Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); |
| | | } |
| | | else { |
| | | const Stacker = Stackers.find(c => c.deviceName == eventData.deviceName); |
| | | if (Stacker) { |
| | | Stacker.data = eventData.data |
| | | } |
| | | else { |
| | | Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | }); |
| | | </script> |
| | | <style scoped> |
| | | .Stackerbox { |
| | | width: 220px; |
| | | float: left; |
| | | } |
| | | |
| | | .Linebox { |
| | | width: 500px; |
| | | float: left; |
| | | } |
| | | |
| | | .box1 { |
| | | float: left; |
| | | } |
| | | |
| | | .card-body { |
| | | text-align: center; |
| | | border-radius: 6%; |
| | | } |
| | | |
| | | .Stacker { |
| | | background-color: burlywood; |
| | | } |
| | | |
| | | .lis { |
| | | float: left; |
| | | width: 233px; |
| | | } |
| | | </style> |
| | | <el-col :span="3"> |
| | | |
| | | <device-stacker v-for="stacker in Stackers" :key="stacker.deviceName" :Stacker="stacker"></device-stacker> |
| | | </el-col> |
| | | <el-col :span="21"> |
| | | <device-line v-for="device in devices" :key="device.deviceName" :device="device" /> |
| | | </el-col> |
| | | </el-row> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { onMounted, reactive, toRefs } from "vue"; |
| | | import eventBus from "@/uitils/eventBus"; |
| | | import DeviceLine from "@/components/DeviceLine.vue"; |
| | | import DeviceStacker from "@/components/DeviceStacker.vue"; |
| | | |
| | | // å åæº |
| | | const Stackers = reactive([]); |
| | | |
| | | // 设å¤å表ï¼ä¿®æ¹éå¤è®¾å¤åç§°ï¼ |
| | | const devices = reactive([]); |
| | | |
| | | const intToBitArrayFromBinaryString = (num, numBits) => { |
| | | let binaryString = num.toString(2).padStart(numBits, '0'); |
| | | return Array.from({ length: numBits }, (_, index) => binaryString[index] === '1'); |
| | | }; |
| | | |
| | | // çå¬è®¾å¤æ°æ®åå |
| | | onMounted(() => { |
| | | eventBus.on('locationData', eventData => { |
| | | console.log(eventData) |
| | | if (eventData.deviceName === "éåå
¥åºè¾é线" || eventData.deviceName === "éåå
¥åºè¾é线") { |
| | | |
| | | if (devices.length <= 0) { |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.childDeviceCode }); |
| | | } |
| | | else { |
| | | const device = devices.find(c => c.childDeviceCode == eventData.childDeviceCode) |
| | | if (device) { |
| | | const number = eventData.data.commandWrite.writeInteractiveSignal; |
| | | const writeInteractiveSignal = intToBitArrayFromBinaryString(number, 8) |
| | | eventData.data.writeInteractiveSignal = writeInteractiveSignal; |
| | | device.data = eventData.data |
| | | } |
| | | else { |
| | | const number = eventData.data.commandWrite.writeInteractiveSignal; |
| | | const writeInteractiveSignal = intToBitArrayFromBinaryString(number, 8) |
| | | eventData.data.writeInteractiveSignal = writeInteractiveSignal; |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.childDeviceCode }); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | eventBus.on('stackerData', eventData => { |
| | | if (eventData.deviceName.indexOf("éå") != -1) { |
| | | if (Stackers.length == 0) { |
| | | Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); |
| | | } |
| | | else { |
| | | const Stacker = Stackers.find(c => c.deviceName == eventData.deviceName); |
| | | if (Stacker) { |
| | | Stacker.data = eventData.data |
| | | } |
| | | else { |
| | | Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | }); |
| | | </script> |
| | | <style scoped> |
| | | .Stackerbox { |
| | | width: 220px; |
| | | float: left; |
| | | } |
| | | |
| | | .Linebox { |
| | | width: 500px; |
| | | float: left; |
| | | } |
| | | |
| | | .box1 { |
| | | float: left; |
| | | } |
| | | |
| | | .card-body { |
| | | text-align: center; |
| | | border-radius: 6%; |
| | | } |
| | | |
| | | .Stacker { |
| | | background-color: burlywood; |
| | | } |
| | | |
| | | .lis { |
| | | float: left; |
| | | width: 233px; |
| | | } |
| | | </style> |
| | |
| | | } |
| | | }); |
| | | eventBus.on('stackerData', eventData => { |
| | | if (eventData.deviceName == "éç½®1å·å åæº") { |
| | | if (eventData.deviceName.indexOf("éç½®") != -1) { |
| | | if (Stackers.length == 0) { |
| | | Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); |
| | | } |
| | |
| | | import DeviceStacker from "@/components/DeviceStacker.vue"; |
| | | // å åæº |
| | | const Stackers = reactive([]); |
| | | var i=0; |
| | | var i = 0; |
| | | // 设å¤å表ï¼ä¿®æ¹éå¤è®¾å¤åç§°ï¼ |
| | | const devices = reactive([]); |
| | | const num = reactive([]) |
| | | onMounted(() => { |
| | | eventBus.on('stackerData', eventData => { |
| | | if (eventData.deviceName === "å容3线å
¥åºè¾é线"||eventData.deviceName === "å容åºåºè¾é线") { |
| | | if (devices.length <= 0) { |
| | | eventBus.on('locationData', eventData => { |
| | | if (eventData.deviceName.indexOf("å容") != -1) { |
| | | if (devices.length <= 0) { |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode }); |
| | | } |
| | | else { |
| | | const device = devices.find(c => c.childDeviceCode == eventData.data.childDeviceCode) |
| | | if(device){ |
| | | if (device) { |
| | | device.data = eventData.data |
| | | }else{ |
| | | } else { |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode }); |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | eventBus.on('stackerData', eventData => { |
| | | if (eventData.deviceName == "å容3å·å åæº"||eventData.deviceName == "å容2å·å åæº") { |
| | | // if (eventData.deviceName == "å容3å·å åæº"||eventData.deviceName == "å容2å·å åæº") { |
| | | console.log(eventData.deviceName) |
| | | if (eventData.deviceName.indexOf("å容") != -1) { |
| | | if (Stackers.length == 0) { |
| | | Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); |
| | | } |
| | |
| | | }) |
| | | }) |
| | | </script> |
| | | <style scoped> |
| | | |
| | | </style> |
| | | <style scoped></style> |
| | |
| | | import DeviceStacker from "@/components/DeviceStacker.vue"; |
| | | // å åæº |
| | | const Stackers = reactive([]); |
| | | var i=0; |
| | | var i = 0; |
| | | // 设å¤å表ï¼ä¿®æ¹éå¤è®¾å¤åç§°ï¼ |
| | | const devices = reactive([]); |
| | | const num = reactive([]) |
| | | onMounted(() => { |
| | | eventBus.on('stackerData', eventData => { |
| | | eventBus.on('locationData', eventData => { |
| | | // console.log(eventData) |
| | | |
| | | console.log(eventData) |
| | | |
| | | if (eventData.deviceName === "èåå
¥åºè¾é线") { |
| | | if (devices.length <= 0) { |
| | | console.log(eventData) |
| | | |
| | | if (eventData.deviceName.indexOf("èå") != -1) { |
| | | if (devices.length <= 0) { |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode }); |
| | | } |
| | | else { |
| | | const device = devices.find(c => c.childDeviceCode == eventData.data.childDeviceCode) |
| | | if(device){ |
| | | if (device) { |
| | | device.data = eventData.data |
| | | }else{ |
| | | } else { |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode }); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | }) |
| | | eventBus.on('stackerData', eventData => { |
| | | if (eventData.deviceName == "èå1å·å åæº") { |
| | | if (eventData.deviceName.indexOf("èå") != -1) { |
| | | if (Stackers.length == 0) { |
| | | Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); |
| | | } |
| | |
| | | }) |
| | | }) |
| | | </script> |
| | | <style scoped> |
| | | |
| | | </style> |
| | | <style scoped></style> |
| | |
| | | import DeviceStacker from "@/components/DeviceStacker.vue"; |
| | | // å åæº |
| | | const Stackers = reactive([]); |
| | | var i=0; |
| | | var i = 0; |
| | | // 设å¤å表ï¼ä¿®æ¹éå¤è®¾å¤åç§°ï¼ |
| | | const devices = reactive([]); |
| | | const num = reactive([]) |
| | | onMounted(() => { |
| | | eventBus.on('stackerData', eventData => { |
| | | eventBus.on('locationData', eventData => { |
| | | // console.log(eventData) |
| | | |
| | | console.log(eventData) |
| | | |
| | | if (eventData.deviceName === "常温å
¥åºè¾é线") { |
| | | if (devices.length <= 0) { |
| | | |
| | | console.log(eventData) |
| | | |
| | | if (eventData.deviceName.indexOf("常温") != -1) { |
| | | if (devices.length <= 0) { |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode }); |
| | | } |
| | | else { |
| | | const device = devices.find(c => c.childDeviceCode == eventData.data.childDeviceCode) |
| | | if(device){ |
| | | if (device) { |
| | | device.data = eventData.data |
| | | }else{ |
| | | } else { |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode }); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | }) |
| | | eventBus.on('stackerData', eventData => { |
| | | if (eventData.deviceName == "常温1å·å åæº"||eventData.deviceName == "常温2å·å åæº"||eventData.deviceName == "常温3å·å åæº"||eventData.deviceName == "常温4å·å åæº") { |
| | | if (eventData.deviceName.indexOf("常温") != -1) { |
| | | if (Stackers.length == 0) { |
| | | Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); |
| | | } |
| | |
| | | }) |
| | | }) |
| | | </script> |
| | | <style scoped> |
| | | |
| | | </style> |
| | | <style scoped></style> |
| | |
| | | /// IPæ¥å£å°å |
| | | /// </summary> |
| | | public const string CONFIG_SYS_IPAddress = "SYS_IPAddress"; |
| | | |
| | | /// <summary> |
| | | /// å
¥åºç«å° |
| | | /// </summary> |
| | | public const string CONFIG_SYS_InStation = "SYS_InStation"; |
| | | } |
| | | } |
| | |
| | | /// </summary> |
| | | public const string RequestTrayOutTask = "RequestTrayOutTask"; |
| | | |
| | | |
| | | public const string RequestInTask = "RequestInTask"; |
| | | |
| | | |
| | | public const string RequestFlow = "RequestFlow"; |
| | | |
| | |
| | | /// éç½®NGå
¥åº |
| | | /// </summary> |
| | | public const string RequestInBoundTaskNG = "RequestInBoundTaskNG"; |
| | | |
| | | /// <summary> |
| | | /// éç½®NGå
¥åºç«å° |
| | | /// </summary> |
| | | public const string JZNGInBoundStation = "JZNGInBoundStation"; |
| | | } |
| | | } |
| | | } |
| | |
| | | switch (typeCode) |
| | | { |
| | | case TypeCode.Boolean: |
| | | operateResult = Communicator.Wait(devicePro.DeviceProAddress, 500, 10 * 6000, Convert.ToBoolean(deviceProtocolDetail.ProtocalDetailValue)); |
| | | operateResult = Communicator.Wait(devicePro.DeviceProAddress, 1000, 20 * 6000, Convert.ToBoolean(deviceProtocolDetail.ProtocalDetailValue)); |
| | | break; |
| | | case TypeCode.Byte: |
| | | operateResult = Communicator.Wait(devicePro.DeviceProAddress, 500, 10 * 6000, Convert.ToByte(deviceProtocolDetail.ProtocalDetailValue)); |
| | | operateResult = Communicator.Wait(devicePro.DeviceProAddress, 1000, 20 * 6000, Convert.ToByte(deviceProtocolDetail.ProtocalDetailValue)); |
| | | break; |
| | | case TypeCode.Int16: |
| | | operateResult = Communicator.Wait(devicePro.DeviceProAddress, 500, 10 * 6000, Convert.ToInt16(deviceProtocolDetail.ProtocalDetailValue)); |
| | | operateResult = Communicator.Wait(devicePro.DeviceProAddress, 1000, 20 * 6000, Convert.ToInt16(deviceProtocolDetail.ProtocalDetailValue)); |
| | | break; |
| | | case TypeCode.Int32: |
| | | operateResult = Communicator.Wait(devicePro.DeviceProAddress, 500, 10 * 6000, Convert.ToInt32(deviceProtocolDetail.ProtocalDetailValue)); |
| | | operateResult = Communicator.Wait(devicePro.DeviceProAddress, 1000, 20 * 6000, Convert.ToInt32(deviceProtocolDetail.ProtocalDetailValue)); |
| | | break; |
| | | case TypeCode.UInt16: |
| | | operateResult = Communicator.Wait(devicePro.DeviceProAddress, 500, 10 * 6000, Convert.ToUInt16(deviceProtocolDetail.ProtocalDetailValue)); |
| | | operateResult = Communicator.Wait(devicePro.DeviceProAddress, 1000, 20 * 6000, Convert.ToUInt16(deviceProtocolDetail.ProtocalDetailValue)); |
| | | break; |
| | | case TypeCode.UInt32: |
| | | operateResult = Communicator.Wait(devicePro.DeviceProAddress, 500, 10 * 6000, Convert.ToUInt32(deviceProtocolDetail.ProtocalDetailValue)); |
| | | operateResult = Communicator.Wait(devicePro.DeviceProAddress, 1000, 20 * 6000, Convert.ToUInt32(deviceProtocolDetail.ProtocalDetailValue)); |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | using Mapster; |
| | | using Microsoft.AspNetCore.Components.Routing; |
| | | using Newtonsoft.Json; |
| | | using Oracle.ManagedDataAccess.Types; |
| | | using SqlSugar; |
| | | using System.Diagnostics.CodeAnalysis; |
| | | using System.Threading.Tasks; |
| | |
| | | using WIDESEAWCS_QuartzJob.Models; |
| | | using WIDESEAWCS_QuartzJob.Repository; |
| | | using WIDESEAWCS_QuartzJob.Service; |
| | | using WIDESEAWCS_TaskInfo_HtyRepository; |
| | | using WIDESEAWCS_TaskInfoRepository; |
| | | |
| | | namespace WIDESEAWCS_TaskInfoService |
| | |
| | | if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) |
| | | { |
| | | // 夿任å¡ç®æ å°ååè·¯å¾æ¯å¦æ»¡è¶³ç¹å®æ¡ä»¶ |
| | | if (task.TargetAddress == "002-021-001" && task.Roadway.Contains("JZ") && task.TaskType == (int)TaskOutboundTypeEnum.OutTray) |
| | | if ((task.TargetAddress == "002-021-001" || task.TargetAddress == "001-021-001") && task.Roadway.Contains("JZ")) |
| | | { |
| | | // 设置任å¡ç¶æä¸ºåºåºæ°å»º |
| | | task.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | |
| | | // 夿任å¡ç±»åæ¯å¦ä¸ºå
¥åºä»»å¡ |
| | | else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) |
| | | { |
| | | var value = _sys_ConfigService.GetByConfigKey(CateGoryConst.CONFIG_SYS_InStation, SysConfigKeyConst.JZNGInBoundStation).ConfigValue; |
| | | var valueList = value.Split(',').ToList(); |
| | | // 夿æºå°åæ¯å¦ä¸çäº"1359-4" |
| | | if (task.SourceAddress != "1359-4") |
| | | //if (task.SourceAddress != "1359-4" && task.SourceAddress != "1357-4") |
| | | if (!valueList.Contains(task.SourceAddress)) |
| | | { |
| | | // æ¥è¯¢ä»æºå°åå°ç®æ å°åçè·¯ç± |
| | | List<Dt_Router> routers = _routerService.QueryNextRoutes(item.SourceAddress, item.TargetAddress); |
| | |
| | | } |
| | | else |
| | | { |
| | | // 设置å½åå°å为"002-021-001" |
| | | task.CurrentAddress = "002-021-001"; |
| | | task.CurrentAddress = string.Empty; |
| | | if (task.SourceAddress == "1325-6") |
| | | // 设置å½åå°å为"001-021-001" |
| | | task.CurrentAddress = "001-021-001"; |
| | | else |
| | | // 设置å½åå°å为"002-021-001" |
| | | task.CurrentAddress = "002-021-001"; |
| | | // 设置ä¸ä¸ä¸ªå°åä¸ºç®æ å°å |
| | | task.NextAddress = item.TargetAddress; |
| | | } |
| | |
| | | } |
| | | return wcsBasez + address; |
| | | } |
| | | #region éåæ¹æ³ |
| | | |
| | | public override WebResponseContent DeleteData(object[] key) |
| | | { |
| | | foreach (var item in key) |
| | | { |
| | | var task = BaseDal.QueryFirst(x => x.TaskId == Convert.ToInt32(item)); |
| | | var taskHty = task.Adapt<Dt_Task_Hty>(); |
| | | taskHty.Creater = App.User.UserName != null ? App.User.UserName : "System"; |
| | | _taskHtyRepository.AddData(taskHty); |
| | | } |
| | | return base.DeleteData(key); |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | } |
| | |
| | | using WIDESEAWCS_DTO.TaskInfo; |
| | | using WIDESEAWCS_IProcessRepository; |
| | | using WIDESEAWCS_ISystemServices; |
| | | using WIDESEAWCS_ITaskInfo_HtyRepository; |
| | | using WIDESEAWCS_ITaskInfoRepository; |
| | | using WIDESEAWCS_ITaskInfoService; |
| | | using WIDESEAWCS_Model.Models; |
| | |
| | | { |
| | | private readonly ITaskService _taskService; |
| | | private readonly ITaskRepository _taskRepository; |
| | | private readonly ITask_HtyRepository _task_HtyRepository; |
| | | private readonly ITaskExecuteDetailService _taskExecuteDetailService; |
| | | private readonly IRouterService _routerService; |
| | | private readonly IPlatFormRepository _platFormRepository; |
| | |
| | | private static List<string>? userTokenIds; |
| | | private static List<int>? userIds; |
| | | |
| | | |
| | | public CommonConveyorLineJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, IPlatFormRepository platFormRepository, ISys_ConfigService sys_ConfigService, IDt_StationManagerService stationManagerService, IDt_StationManagerRepository stationManagerRepository, ICacheService cacheService, INoticeService noticeService, IDeviceInfoRepository deviceInfoRepository) |
| | | public CommonConveyorLineJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, IPlatFormRepository platFormRepository, ISys_ConfigService sys_ConfigService, IDt_StationManagerService stationManagerService, IDt_StationManagerRepository stationManagerRepository, ICacheService cacheService, INoticeService noticeService, IDeviceInfoRepository deviceInfoRepository, ITask_HtyRepository task_HtyRepository) |
| | | { |
| | | _taskService = taskService; |
| | | _taskExecuteDetailService = taskExecuteDetailService; |
| | |
| | | _cacheService = cacheService; |
| | | _noticeService = noticeService; |
| | | _deviceInfoRepository = deviceInfoRepository; |
| | | _task_HtyRepository = task_HtyRepository; |
| | | } |
| | | |
| | | public async Task Execute(IJobExecutionContext context) |
| | |
| | | // å¹¶è¡å¤çæ¯ä¸ªåè®¾å¤ |
| | | var tasks = childDeviceCodes.Select(childDeviceCode => ProcessDeviceAsync(conveyorLine, childDeviceCode)).ToList(); |
| | | await Task.WhenAll(tasks); |
| | | |
| | | |
| | | // è·åææç«ç¹ç®¡çå¨ |
| | | List<Dt_StationManager> stationManagers = _stationManagerService.GetAllStationByDeviceCode(conveyorLine.DeviceCode); |
| | |
| | | { |
| | | try |
| | | { |
| | | |
| | | // 读åä»»å¡å½ä»¤å设å¤å½ä»¤ |
| | | ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(childDeviceCode); |
| | | ConveyorLineTaskCommandWrite commandWrite = conveyorLine.ReadCustomer<ConveyorLineTaskCommandWrite>(childDeviceCode, "DeviceCommand"); |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | |
| | | { |
| | | try |
| | | { |
| | | |
| | | ConsoleHelper.WriteWarningLine($"ã{conveyorLine._deviceName}ãä»»å¡å·ï¼ã{command.TaskNum}ã,æçæ¡ç ï¼ã{command.Barcode}ãå·²å°è¾¾ã{childDeviceCode}ãè¾é线å
¥åºå®æ"); |
| | | var task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode); |
| | | if (task != null && task.TaskState != (int)TaskInStatusEnum.Line_InFinish) |
| | | { |
| | | if (command.Barcode == task.PalletCode && childDeviceCode == task.NextAddress) |
| | | { |
| | | //conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTargetAddress, "1000", childDeviceCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTargetAddress, "1000", childDeviceCode); |
| | | |
| | | ConsoleHelper.WriteWarningLine($"ã{conveyorLine._deviceName}ãä»»å¡å·ï¼ã{command.TaskNum}ã,æçæ¡ç ï¼ã{command.Barcode}ãå·²å°è¾¾ã{childDeviceCode}ãè¾é线å
¥åºå®æ,ä¸ä¸ç®æ å°åãçå¾
åé
è´§ä½,å¹¶åå
¥1000ã"); |
| | | |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | { |
| | | try |
| | | { |
| | | |
| | | // æ¥è¯¢è¾é线任å¡ï¼æ ¹æ®è¾é线设å¤åå设å¤ä»£ç è·åä»»å¡ä¿¡æ¯ |
| | | var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode); |
| | | |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | { |
| | | try |
| | | { |
| | | |
| | | // æå°æåä¿¡æ¯ï¼è¡¨ç¤ºæçå·²å°è¾¾æå®è¾éçº¿å¹¶å®æåºåº |
| | | ConsoleHelper.WriteSuccessLine($"ã{conveyorLine.DeviceName}ãä»»å¡å·ï¼ã{command.TaskNum}ã,æçæ¡ç ï¼ã{command.Barcode}ãå·²å°è¾¾ã{childDeviceCode}ãè¾é线åºåºå®æ"); |
| | | |
| | |
| | | // æå°æåä¿¡æ¯ï¼è¡¨ç¤ºæçå·²å°è¾¾æå®è¾éçº¿å¹¶å®æåºåºï¼ä¸ä¸ç®æ å°åå·²ç¡®å® |
| | | ConsoleHelper.WriteSuccessLine($"ã{conveyorLine.DeviceName}ãä»»å¡å·ï¼ã{command.TaskNum}ã,æçæ¡ç ï¼ã{command.Barcode}ãå·²å°è¾¾ã{childDeviceCode}ãè¾é线åºåºå®æ,ä¸ä¸ç®æ å°åã{NGAddress}ã"); |
| | | // 设置è¾é线çç®æ å°å为NGå°å |
| | | conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTargetAddress, NGAddress, childDeviceCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTargetAddress, NGAddress, childDeviceCode); |
| | | // 宿è¾é线åé |
| | | ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); |
| | | // æ´æ°ä»»å¡ç¶æå°ä¸ä¸ä¸ªç¶æ |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | EquipmentCode = stationManager.stationEquipMOM, |
| | | SessionId = Guid.NewGuid().ToString(), |
| | | EmployeeNo = "MITest", |
| | | SceneType = "1", |
| | | SceneType = "4", |
| | | RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ") |
| | | }; |
| | | |
| | |
| | | |
| | | if (result1.Success) |
| | | { |
| | | var serialNosError = result1.SerialNos.Where(x => x.SerialNoStatus != 1).ToList(); |
| | | ConsoleHelper.WriteWarningLine("1"); |
| | | var serialNosError = result1.SerialNos.Where(x => x.SerialNoStatus != 1 && x.SerialNoStatus != 4).ToList(); |
| | | if (serialNosError.Count > 0) |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTargetAddress, 100, stationManager.stationChildCode); |
| | | ConveyorLineSendFinish(conveyorLine, stationManager.stationChildCode, ProtocalDetailValue, true); |
| | | return; |
| | | } |
| | | |
| | | if (result1.SerialNos.Count <= 0) |
| | | if (stationManager.remark == "ZYNG") |
| | | { |
| | | |
| | | conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTargetAddress, stationManager.stationLocation, stationManager.stationChildCode); |
| | | |
| | | ConsoleHelper.WriteWarningLine($"ãæ³¨æ¶²NGå
¥åºã"); |
| | | if (result1.SerialNos.Count <= 0) |
| | | { |
| | | ConsoleHelper.WriteWarningLine("1000"); |
| | | conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTaskNum, 5, stationManager.stationChildCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTargetAddress, 1000, stationManager.stationChildCode); |
| | | } |
| | | else |
| | | { |
| | | ConsoleHelper.WriteWarningLine("2"); |
| | | ConsoleHelper.WriteWarningLine(stationManager.stationLocation); |
| | | conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTaskNum, 5, stationManager.stationChildCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTargetAddress, stationManager.stationLocation, stationManager.stationChildCode); |
| | | } |
| | | ConveyorLineSendFinish(conveyorLine, stationManager.stationChildCode, ProtocalDetailValue, true); |
| | | } |
| | | else |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTargetAddress, 1000, stationManager.stationChildCode); |
| | | |
| | | if (result1.SerialNos.Count <= 0) |
| | | { |
| | | ConsoleHelper.WriteWarningLine("2"); |
| | | ConsoleHelper.WriteWarningLine(stationManager.stationLocation); |
| | | conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTaskNum, 5, stationManager.stationChildCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTargetAddress, stationManager.stationLocation, stationManager.stationChildCode); |
| | | } |
| | | else |
| | | { |
| | | ConsoleHelper.WriteWarningLine("1000"); |
| | | conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTaskNum, 5, stationManager.stationChildCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTargetAddress, 1000, stationManager.stationChildCode); |
| | | } |
| | | ConveyorLineSendFinish(conveyorLine, stationManager.stationChildCode, ProtocalDetailValue, true); |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | #endregion åæNGå£å
¥åº |
| | | #endregion 设å¤NGå£å
¥åº |
| | | } |
| | | } |
| | |
| | | using HslCommunication; |
| | | using Mapster; |
| | | using Newtonsoft.Json; |
| | | using System.Text.RegularExpressions; |
| | | using System.Threading.Tasks; |
| | |
| | | var task = _taskService.QueryBarCodeConveyorLineTask(command.Barcode, childDeviceCode); |
| | | if (task != null) |
| | | { |
| | | if (task.SourceAddress == "1059-4") |
| | | var value = _sys_ConfigService.GetByConfigKey(CateGoryConst.CONFIG_SYS_InStation, SysConfigKeyConst.JZNGInBoundStation).ConfigValue; |
| | | var valueList = value.Split(',').ToList(); |
| | | if (valueList.Contains(task.SourceAddress)) |
| | | { |
| | | //conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTargetAddress, "1000", childDeviceCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTargetAddress, "1000", childDeviceCode); |
| | | |
| | | ConsoleHelper.WriteWarningLine($"ã{conveyorLine._deviceName}ãä»»å¡å·ï¼ã{task.TaskNum}ã,æçæ¡ç ï¼ã{task.PalletCode}ãå·²å°è¾¾ã{childDeviceCode}ãè¯·æ±æ«ç å
¥åº(å®ç),ä¸ä¸ç®æ å°åã{1000}ã"); |
| | | ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); |
| | | } |
| | | else if (task.TargetAddress == "1020-1") |
| | | { |
| | | var next = task.NextAddress; |
| | | var taskCommand = MapTaskCommand(task, command); |
| | | task.NextAddress = next; |
| | | ConsoleHelper.WriteWarningLine($"ã{conveyorLine._deviceName}ãä»»å¡å·ï¼ã{command.TaskNum}ã,æçæ¡ç ï¼ã{command.Barcode}ãå·²å°è¾¾ã{childDeviceCode}ãè¯·æ±æ«ç å
¥åº(å®ç),ä¸ä¸ç®æ å°åã{taskCommand.TargetAddress}ã"); |
| | | |
| | | conveyorLine.SendCommand(taskCommand, childDeviceCode); |
| | | ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); |
| | | |
| | | var taskHty = task.Adapt<Dt_Task_Hty>(); |
| | | _task_HtyRepository.AddData(taskHty); |
| | | _taskService.DeleteData(task); |
| | | } |
| | | else |
| | | { |
| | | var next = task.NextAddress; |
| | |
| | | MethodInfo? method = GetType().GetMethod(platform.ExecutionMethod); |
| | | if (method != null) |
| | | { |
| | | int count = string.IsNullOrEmpty(platform.Location) ? 0 + 1 : platform.Location.Split(',').Count() + 1; |
| | | //var strings = platform.Location.Split(',').ToList(); |
| | | int count = 1; |
| | | method.Invoke(this, new object[] { conveyorLine, command, childDeviceCode, count, platform }); |
| | | } |
| | | } |
| | |
| | | childDeviceCode, |
| | | commandAfter = command, |
| | | }; |
| | | _noticeService.StackerData(userIds?.FirstOrDefault(), userTokenIds, new { conveyorLine.DeviceName, data = obj }); |
| | | _noticeService.LineData(userIds?.FirstOrDefault(), userTokenIds, new { conveyorLine.DeviceName, data = obj }); |
| | | |
| | | #endregion è°ç¨äºä»¶æ»çº¿éç¥å端 |
| | | } |
| | |
| | | case 9: |
| | | case 11: |
| | | case 12: |
| | | var task = _taskService.QueryExecutingConveyorLineTask(command.ConveyorLineTaskNum, childDeviceCode); |
| | | var task = _taskService.QueryExecutingTaskByBarcode(command.ConveyorLineBarcode, childDeviceCode); |
| | | if (task != null) |
| | | { |
| | | ExecuteStationAction(stationManager, conveyorLine, command, childDeviceCode); |
| | |
| | | using System.Diagnostics.CodeAnalysis; |
| | | using System.Text; |
| | | using WIDESEAWCS_BasicInfoRepository; |
| | | using WIDESEAWCS_Common; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_Core.Caches; |
| | | using WIDESEAWCS_Core.Helper; |
| | | using WIDESEAWCS_Core.HttpContextUser; |
| | | using WIDESEAWCS_IProcessRepository; |
| | | using WIDESEAWCS_ISystemServices; |
| | | using WIDESEAWCS_ITaskInfo_HtyRepository; |
| | | using WIDESEAWCS_ITaskInfoRepository; |
| | | using WIDESEAWCS_ITaskInfoService; |
| | |
| | | private readonly INoticeService _noticeService; |
| | | private readonly IDt_StationManagerRepository _stationManagerRepository; |
| | | private readonly ITask_HtyRepository _htyRepository; |
| | | private readonly ISys_ConfigService _sys_ConfigService; |
| | | |
| | | public CommonStackerCraneJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IRouterService routerService, IProcessRepository processRepository, ICacheService cacheService, INoticeService noticeService, IDt_StationManagerRepository stationManagerRepository, ITask_HtyRepository htyRepository) |
| | | public CommonStackerCraneJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IRouterService routerService, IProcessRepository processRepository, ICacheService cacheService, INoticeService noticeService, IDt_StationManagerRepository stationManagerRepository, ITask_HtyRepository htyRepository, ISys_ConfigService sys_ConfigService) |
| | | { |
| | | _taskService = taskService; |
| | | _taskExecuteDetailService = taskExecuteDetailService; |
| | |
| | | _noticeService = noticeService; |
| | | _stationManagerRepository = stationManagerRepository; |
| | | _htyRepository = htyRepository; |
| | | _sys_ConfigService = sys_ConfigService; |
| | | } |
| | | |
| | | public Task Execute(IJobExecutionContext context) |
| | |
| | | task = _taskRepository.QueryFirst(x => x.TaskNum == e.TaskNum); |
| | | Dt_Task? newTask = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress); |
| | | } |
| | | if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup && task.TargetAddress == "002-021-001") |
| | | if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup && (task.TargetAddress == "002-021-001" || task.TargetAddress == "001-021-001")) |
| | | { |
| | | var TASKHTY = task.Adapt<Dt_Task_Hty>(); |
| | | _taskRepository.DeleteData(task); |
| | |
| | | stackerCraneTaskCommand.StartCommand = 1; |
| | | if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//夿æ¯å¦æ¯å
¥åºä»»å¡ |
| | | { |
| | | if (task.SourceAddress == "1359-4" && task.Roadway.Contains("JZ")) |
| | | var value = _sys_ConfigService.GetByConfigKey(CateGoryConst.CONFIG_SYS_InStation, SysConfigKeyConst.JZNGInBoundStation).ConfigValue; |
| | | var valueList = value.Split(',').ToList(); |
| | | if ((valueList.Contains(task.SourceAddress)) && task.Roadway.Contains("JZ")) |
| | | { |
| | | string[] souredCodes = task.CurrentAddress.Split("-"); |
| | | if (souredCodes.Length == 3) |
| | |
| | | let loadingStatus = false |
| | | if (process.env.NODE_ENV == 'development') { |
| | | axios.defaults.baseURL = 'http://localhost:5000/'; |
| | | //axios.defaults.baseURL = 'http://192.168.5.251:5000/'; |
| | | // axios.defaults.baseURL = 'http://192.168.5.251:5000/'; |
| | | } |
| | | else if (process.env.NODE_ENV == 'debug') { |
| | | axios.defaults.baseURL = 'http://127.0.0.1:9991/'; |
| | | } |
| | | else if (process.env.NODE_ENV == 'production') { |
| | | // axios.defaults.baseURL = 'http://127.0.0.1:5000/'; |
| | | axios.defaults.baseURL = 'http://192.168.20.251:5000/'; |
| | | axios.defaults.baseURL = 'http://192.168.5.251:5000/'; |
| | | } |
| | | |
| | | //axios.defaults.baseURL = 'http://api.volcore.xyz/'; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /***************************************************************************************** |
| | | ** Author:jxx 2022 |
| | | ** QQ:283591387 |
| | | **宿´ææ¡£è§ï¼http://v2.volcore.xyz/document/api ã代ç çæé¡µé¢ViewGridã |
| | | **常ç¨ç¤ºä¾è§ï¼http://v2.volcore.xyz/document/vueDev |
| | | **åå°æä½è§ï¼http://v2.volcore.xyz/document/netCoreDev |
| | | *****************************************************************************************/ |
| | | //æ¤jsæä»¶æ¯ç¨æ¥èªå®ä¹æ©å±ä¸å¡ä»£ç ï¼å¯ä»¥æ©å±ä¸äºèªå®ä¹é¡µé¢æè
éæ°é
ç½®çæç代ç |
| | | |
| | | let extension = { |
| | | components: { |
| | | //æ¥è¯¢ç颿©å±ç»ä»¶ |
| | | gridHeader: '', |
| | | gridBody: '', |
| | | gridFooter: '', |
| | | //æ°å»ºãç¼è¾å¼¹åºæ¡æ©å±ç»ä»¶ |
| | | modelHeader: '', |
| | | modelBody: '', |
| | | modelFooter: '' |
| | | }, |
| | | tableAction: '', //æå®æå¼ 表çæé(è¿éå¡«å表å,é»è®¤ä¸ç¨å¡«å) |
| | | buttons: { view: [], box: [], detail: [] }, //æ©å±çæé® |
| | | methods: { |
| | | //ä¸é¢è¿äºæ¹æ³å¯ä»¥ä¿çä¹å¯ä»¥å é¤ |
| | | onInit() { //æ¡æ¶åå§åé
ç½®åï¼ |
| | | //示ä¾ï¼å¨æé®çæå颿·»å ä¸ä¸ªæé® |
| | | // this.buttons.unshift({ //ä¹å¯ä»¥ç¨pushæè
spliceæ¹æ³æ¥ä¿®æ¹buttonsæ°ç» |
| | | // name: 'æé®', //æé®åç§° |
| | | // icon: 'el-icon-document', //æé®å¾æ vue2çæ¬è§iviewææ¡£iconï¼vue3çæ¬è§element uiææ¡£icon(注æä¸æ¯element pulsææ¡£) |
| | | // type: 'primary', //æé®æ ·å¼vue2çæ¬è§iviewææ¡£buttonï¼vue3çæ¬è§element uiææ¡£button |
| | | // onClick: function () { |
| | | // this.$Message.success('ç¹å»äºæé®'); |
| | | // } |
| | | // }); |
| | | |
| | | //示ä¾ï¼è®¾ç½®ä¿®æ¹æ°å»ºãç¼è¾å¼¹åºæ¡å段æ ç¾çé¿åº¦ |
| | | this.boxOptions.labelWidth = 150; |
| | | }, |
| | | onInited() { |
| | | //æ¡æ¶åå§åé
ç½®å |
| | | //妿è¦é
ç½®æç»è¡¨,卿¤æ¹æ³æä½ |
| | | //this.detailOptions.columns.forEach(column=>{ }); |
| | | }, |
| | | searchBefore(param) { |
| | | //ç颿¥è¯¢å,å¯ä»¥ç»param.wheresæ·»å æ¥è¯¢åæ° |
| | | //è¿åfalseï¼åä¸ä¼æ§è¡æ¥è¯¢ |
| | | return true; |
| | | }, |
| | | searchAfter(result) { |
| | | //æ¥è¯¢åï¼resultè¿åçæ¥è¯¢æ°æ®,å¯ä»¥å¨æ¾ç¤ºå°è¡¨æ ¼åå¤çè¡¨æ ¼çå¼ |
| | | return true; |
| | | }, |
| | | addBefore(formData) { |
| | | //æ°å»ºä¿ååformData为对象ï¼å
æ¬æç»è¡¨ï¼å¯ä»¥ç»ç»è¡¨å设置å¼ï¼èªå·±è¾åºçformDataçå¼ |
| | | return true; |
| | | }, |
| | | updateBefore(formData) { |
| | | //ç¼è¾ä¿ååformData为对象ï¼å
æ¬æç»è¡¨ãå é¤è¡çId |
| | | return true; |
| | | }, |
| | | rowClick({ row, column, event }) { |
| | | //æ¥è¯¢çé¢ç¹å»è¡äºä»¶ |
| | | // this.$refs.table.$refs.table.toggleRowSelection(row); //åå»è¡æ¶éä¸å½åè¡; |
| | | }, |
| | | modelOpenAfter(row) { |
| | | //ç¹å»ç¼è¾ãæ°å»ºæé®å¼¹åºæ¡åï¼å¯ä»¥å¨æ¤å¤åé»è¾ï¼å¦ï¼ä»åå°è·åæ°æ® |
| | | //(1)夿æ¯ç¼è¾è¿æ¯æ°å»ºæä½ï¼ this.currentAction=='Add'; |
| | | //(2)ç»å¼¹åºæ¡è®¾ç½®é»è®¤å¼ |
| | | //(3)this.editFormFields.åæ®µ='xxx'; |
| | | //妿éè¦ç»ä¸ææ¡è®¾ç½®é»è®¤å¼ï¼è¯·éåthis.editFormOptionsæ¾å°å段é
置对åºdata屿§çkeyå¼ |
| | | //ç䏿就æè¾åºçï¼console.log(this.editFormOptions) |
| | | } |
| | | } |
| | | }; |
| | | export default extension; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /***************************************************************************************** |
| | | ** Author:jxx 2022 |
| | | ** QQ:283591387 |
| | | **宿´ææ¡£è§ï¼http://v2.volcore.xyz/document/api ã代ç çæé¡µé¢ViewGridã |
| | | **常ç¨ç¤ºä¾è§ï¼http://v2.volcore.xyz/document/vueDev |
| | | **åå°æä½è§ï¼http://v2.volcore.xyz/document/netCoreDev |
| | | *****************************************************************************************/ |
| | | //æ¤jsæä»¶æ¯ç¨æ¥èªå®ä¹æ©å±ä¸å¡ä»£ç ï¼å¯ä»¥æ©å±ä¸äºèªå®ä¹é¡µé¢æè
éæ°é
ç½®çæç代ç |
| | | |
| | | let extension = { |
| | | components: { |
| | | //æ¥è¯¢ç颿©å±ç»ä»¶ |
| | | gridHeader: '', |
| | | gridBody: '', |
| | | gridFooter: '', |
| | | //æ°å»ºãç¼è¾å¼¹åºæ¡æ©å±ç»ä»¶ |
| | | modelHeader: '', |
| | | modelBody: '', |
| | | modelFooter: '' |
| | | }, |
| | | tableAction: '', //æå®æå¼ 表çæé(è¿éå¡«å表å,é»è®¤ä¸ç¨å¡«å) |
| | | buttons: { view: [], box: [], detail: [] }, //æ©å±çæé® |
| | | methods: { |
| | | //ä¸é¢è¿äºæ¹æ³å¯ä»¥ä¿çä¹å¯ä»¥å é¤ |
| | | onInit() { //æ¡æ¶åå§åé
ç½®åï¼ |
| | | //示ä¾ï¼å¨æé®çæå颿·»å ä¸ä¸ªæé® |
| | | // this.buttons.unshift({ //ä¹å¯ä»¥ç¨pushæè
spliceæ¹æ³æ¥ä¿®æ¹buttonsæ°ç» |
| | | // name: 'æé®', //æé®åç§° |
| | | // icon: 'el-icon-document', //æé®å¾æ vue2çæ¬è§iviewææ¡£iconï¼vue3çæ¬è§element uiææ¡£icon(注æä¸æ¯element pulsææ¡£) |
| | | // type: 'primary', //æé®æ ·å¼vue2çæ¬è§iviewææ¡£buttonï¼vue3çæ¬è§element uiææ¡£button |
| | | // onClick: function () { |
| | | // this.$Message.success('ç¹å»äºæé®'); |
| | | // } |
| | | // }); |
| | | |
| | | //示ä¾ï¼è®¾ç½®ä¿®æ¹æ°å»ºãç¼è¾å¼¹åºæ¡å段æ ç¾çé¿åº¦ |
| | | this.boxOptions.labelWidth = 150; |
| | | }, |
| | | onInited() { |
| | | //æ¡æ¶åå§åé
ç½®å |
| | | //妿è¦é
ç½®æç»è¡¨,卿¤æ¹æ³æä½ |
| | | //this.detailOptions.columns.forEach(column=>{ }); |
| | | }, |
| | | searchBefore(param) { |
| | | //ç颿¥è¯¢å,å¯ä»¥ç»param.wheresæ·»å æ¥è¯¢åæ° |
| | | //è¿åfalseï¼åä¸ä¼æ§è¡æ¥è¯¢ |
| | | return true; |
| | | }, |
| | | searchAfter(result) { |
| | | //æ¥è¯¢åï¼resultè¿åçæ¥è¯¢æ°æ®,å¯ä»¥å¨æ¾ç¤ºå°è¡¨æ ¼åå¤çè¡¨æ ¼çå¼ |
| | | return true; |
| | | }, |
| | | addBefore(formData) { |
| | | //æ°å»ºä¿ååformData为对象ï¼å
æ¬æç»è¡¨ï¼å¯ä»¥ç»ç»è¡¨å设置å¼ï¼èªå·±è¾åºçformDataçå¼ |
| | | return true; |
| | | }, |
| | | updateBefore(formData) { |
| | | //ç¼è¾ä¿ååformData为对象ï¼å
æ¬æç»è¡¨ãå é¤è¡çId |
| | | return true; |
| | | }, |
| | | rowClick({ row, column, event }) { |
| | | //æ¥è¯¢çé¢ç¹å»è¡äºä»¶ |
| | | // this.$refs.table.$refs.table.toggleRowSelection(row); //åå»è¡æ¶éä¸å½åè¡; |
| | | }, |
| | | modelOpenAfter(row) { |
| | | //ç¹å»ç¼è¾ãæ°å»ºæé®å¼¹åºæ¡åï¼å¯ä»¥å¨æ¤å¤åé»è¾ï¼å¦ï¼ä»åå°è·åæ°æ® |
| | | //(1)夿æ¯ç¼è¾è¿æ¯æ°å»ºæä½ï¼ this.currentAction=='Add'; |
| | | //(2)ç»å¼¹åºæ¡è®¾ç½®é»è®¤å¼ |
| | | //(3)this.editFormFields.åæ®µ='xxx'; |
| | | //妿éè¦ç»ä¸ææ¡è®¾ç½®é»è®¤å¼ï¼è¯·éåthis.editFormOptionsæ¾å°å段é
置对åºdata屿§çkeyå¼ |
| | | //ç䏿就æè¾åºçï¼console.log(this.editFormOptions) |
| | | } |
| | | } |
| | | }; |
| | | export default extension; |
| | |
| | | //ä¸é¢è¿äºæ¹æ³å¯ä»¥ä¿çä¹å¯ä»¥å é¤ |
| | | onInit() { |
| | | //æ¡æ¶åå§åé
ç½®åï¼ |
| | | let OutBoundBtn=this.buttons.find(x=>x.value=='OutBound'); |
| | | if(OutBoundBtn){ |
| | | OutBoundBtn.onClick=function(){ |
| | | this.$Message.success('ç¹å»äºæé®') |
| | | let OutBoundBtn = this.buttons.find((x) => x.value == 'OutBound') |
| | | if (OutBoundBtn) { |
| | | OutBoundBtn.onClick = function () { |
| | | // this.$Message.success('ç¹å»äºæé®') |
| | | let row = this.$refs.table.getSelected() //è·åéä¸çè¡ |
| | | if (row <= 0) { |
| | | //å¦ææ²¡æéä¸è¡ |
| | |
| | | } |
| | | let locationCode = row[0].locationCode |
| | | let palletCode = row[0].palletCode |
| | | this.http.get(`/api/Task/CreateAndSendOutboundTask?locationCode=${locationCode}&palletCode=${palletCode}`, {}, "æ£å¨å建任å¡").then((res) => { |
| | | //示ä¾ï¼è°ç¨åå°æ¥å£ |
| | | if (res.status) { |
| | | this.$Message.success('åå»ºä»»å¡æå') |
| | | } else { |
| | | this.$Message.error(res.message) //é误æç¤º |
| | | } |
| | | }) |
| | | this.http |
| | | .get( |
| | | `/api/Task/CreateAndSendOutboundTask?locationCode=${locationCode}&palletCode=${palletCode}`, |
| | | {}, |
| | | 'æ£å¨å建任å¡' |
| | | ) |
| | | .then((res) => { |
| | | //示ä¾ï¼è°ç¨åå°æ¥å£ |
| | | if (res.status) { |
| | | this.$Message.success('åå»ºä»»å¡æå') |
| | | this.refresh() //å·æ°è¡¨æ ¼ |
| | | } else { |
| | | this.$Message.error(res.message) //é误æç¤º |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | //示ä¾ï¼å¨æé®çæå颿·»å ä¸ä¸ªæé® |
| | |
| | | // ); |
| | | // }, |
| | | // }); |
| | | |
| | | this.columns.forEach((column) => { |
| | | //ä¿®æ¹é¢è² |
| | | if (column.field == 'roadwayNo') { |
| | | column.formatter = (row) => { |
| | | console.log("ð ~ this.columns.forEach ~ row:", row) |
| | | return '<span style="color: #2d8cf0;">' + row?.locationInfo?.roadwayNo + '</span>' |
| | | } |
| | | } |
| | | //æ ¼å¼åæ¥æ |
| | | // æ£æ¥å½ååçåæ®µæ¯å¦ä¸º 'locationStatus' |
| | | if (column.field == 'locationStatus') { |
| | | // 使ç¨å¯¹è±¡åé¢éæ¥æ å° 'locationStatus' çå¼å对åºçææ¬ |
| | | const statusMap = { |
| | | '-1': 'å
¨é¨', |
| | | '0': '空é²', |
| | | '1': 'éå®', |
| | | '2': 'æè´§', |
| | | '3': 'æè´§ç¦ç¨', |
| | | '4': 'æ è´§ç¦ç¨' |
| | | }; |
| | | // å®ä¹ä¸ä¸ªæ ¼å¼å彿°ï¼æ ¹æ® 'locationStatus' çå¼è¿åç¸åºçææ¬ |
| | | column.formatter = (row) => { |
| | | // ä½¿ç¨ statusMap 对象æ¥è·å对åºçææ¬ï¼å¦ææ²¡æå¹é
åè¿å 'æªç¥ç¶æ' |
| | | return statusMap[row?.locationInfo?.locationStatus] || 'æªç¥ç¶æ'; |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | onInited() { |
| | | //æ¡æ¶åå§åé
ç½®å |
| | |
| | | ]); |
| | | const columns = ref( |
| | | [{ field: 'id', title: 'åºåID', type: 'int', width: 110, hidden: true, readonly: true, require: true, align: 'left' }, |
| | | { field: 'locationCode', title: 'åºä½', type: 'string', width: 110, align: 'left', }, |
| | | { field: 'locationCode', title: 'åºä½', type: 'string', width: 100, align: 'left', }, |
| | | { field: 'palletCode', title: 'æçæ¡ç ', type: 'string', width: 110, align: 'left', }, |
| | | { field: 'isFull', title: 'åºåç±»å', type: 'bool', width: 110, align: 'left', bind: { key: "isFull", data: [{ key: false, value: '空ç'},{ key: true, value: 'å®ç'}] }, }, |
| | | { field: 'isFull', title: 'åºåç±»å', type: 'bool', width: 80, align: 'left', bind: { key: "isFull", data: [{ key: false, value: '空ç'},{ key: true, value: 'å®ç'}] }, }, |
| | | { field: 'linedProcessFeedbackTime', title: 'å·¥èºå¼å§æ¶é´', type: 'string', width: 110, align: 'left',}, |
| | | { field: 'specialParameterDuration', title: 'å·¥èºæ¶é¿', type: 'string', width: 110, align: 'left', sort: true }, |
| | | { field: 'roadwayNo', title: 'å··é', type: 'string', width: 60, align: 'left', sort: true }, |
| | | { field: 'locationStatus', title: 'è´§ä½ç¶æ', type: 'int', width: 60, align: 'left', bind: { key: "LocationState", data: [] } }, |
| | | { field: 'specialParameterDuration', title: 'å·¥èºæ¶é¿', type: 'string', width: 60, align: 'left', sort: true }, |
| | | { field: 'outboundTime', title: 'åºåºåºæ¶é´', type: 'string', width: 110, align: 'left', sort: true }, |
| | | { field: 'productionLine', title: 'ç产产线', type: 'string', width: 110, align: 'left', }, |
| | | { field: 'areaCode', title: 'åºåº', type: 'string', width: 110, align: 'left', bind: { key: "AreaType", data: [] } }, |
| | | { field: 'remark', title: 'çµè¯æ°é', type: 'string', width: 120, align: 'left', }, |
| | | { field: 'productionLine', title: 'ç产产线', type: 'string', width: 60, align: 'left', }, |
| | | { field: 'areaCode', title: 'åºåº', type: 'string', width: 60, align: 'left', bind: { key: "AreaType", data: [] } }, |
| | | { field: 'remark', title: 'çµè¯æ°é', type: 'string', width: 60, align: 'left', }, |
| | | { field: 'creater', title: 'å建人', type: 'string', sort: true, width: 110, align: 'left', hidden: true }, |
| | | { field: 'createDate', title: 'å建æ¶é´', type: 'datetime', sort: true, width: 150, align: 'left', }, |
| | | { field: 'modifier', title: 'æåä¿®æ¹äºº', type: 'string', sort: true, width: 100, hidden: true, align: 'left' }, |
| | |
| | | ]); |
| | | const columns = ref([{ field: 'TaskId', title: '主é®', type: 'string', width: 110, hidden: true, readonly: true, require: true, align: 'left' }, |
| | | { field: 'taskNum', title: 'ä»»å¡å·', type: 'int', width: 110, align: 'left', sort: true }, |
| | | { field: 'palletCode', title: 'æçå·', type: 'string', width: 110, align: 'left' }, |
| | | { field: 'palletCode', title: 'æçå·', type: 'string', width: 150, align: 'left' }, |
| | | { field: 'pnboundNo', title: 'åæ®å·', type: 'string', width: 110, align: 'left' }, |
| | | { field: 'groupID', title: 'åºåID', type: 'int', width: 110, hidden: true, align: 'left' }, |
| | | { field: 'groupDetailId', title: 'ç»çæç»ID', type: 'int', width: 110, hidden: true, align: 'left' }, |
| | |
| | | ]); |
| | | const columns = ref([{ field: 'TaskId', title: '主é®', type: 'string', width: 110, hidden: true, readonly: true, require: true, align: 'left' }, |
| | | { field: 'taskNum', title: 'ä»»å¡å·', type: 'int', width: 110, align: 'left', sort: true }, |
| | | { field: 'palletCode', title: 'æçå·', type: 'string', width: 110, align: 'left' }, |
| | | { field: 'pnboundNo', title: 'åæ®å·', type: 'string', width: 110, align: 'left' }, |
| | | { field: 'palletCode', title: 'æçå·', type: 'string', width: 150, align: 'left' }, |
| | | { field: 'pnboundNo', title: 'åæ®å·', type: 'string', width: 110, align: 'left' ,hidden: true}, |
| | | { field: 'groupID', title: 'åºåID', type: 'int', width: 110, hidden: true, align: 'left' }, |
| | | { field: 'groupDetailId', title: 'ç»çæç»ID', type: 'int', width: 110, hidden: true, align: 'left' }, |
| | | { field: 'roadway', title: 'å··é', type: 'string', width: 110, align: 'left' }, |
| | |
| | | { field: 'targetAddress', title: 'ç®æ ä½ç½®', type: 'string', width: 110, align: 'left' }, |
| | | { field: 'grade', title: 'ä¼å
级', type: 'int', width: 110, align: 'left' }, |
| | | { field: 'dispatchertime', title: 'ä»»å¡ä¸åæ¶é´', type: 'datetime', width: 150, align: 'left', sort: true }, |
| | | { field: 'operateType', title: 'æä½ç±»å', type: 'string', width: 110, align: 'left', bind: { key: "operateType", data: [] }}, |
| | | { field: 'remark', title: '夿³¨', type: 'string', width: 110, align: 'left' }, |
| | | { field: 'creater', title: 'å建人', type: 'string', sort: true, width: 110, align: 'left' }, |
| | | { field: 'createDate', title: 'å建æ¶é´', type: 'datetime', sort: true, width: 150, align: 'left', sort: true }, |
| | |
| | | // å°åæ°è½¬æ¢ä¸ºFormUrlEncodedContent |
| | | string content = JsonConvert.SerializeObject(parameters); |
| | | |
| | | //client.Timeout = TimeSpan.from; |
| | | |
| | | var request = new HttpRequestMessage(HttpMethod.Post, url); |
| | | |
| | | request.Content = new StringContent(content, Encoding.UTF8, "application/json"); |
| | |
| | | { |
| | | public const string CurrentDbConnId = "WIDESEA"; |
| | | public const string ConnectionString = "ConnectionString"; |
| | | public const string ConnectionStringWCS = "ConnectionStringWCS"; |
| | | public const string TenantTableName = "Sys_Tenant"; |
| | | public const string TenantStatus = "Status"; |
| | | public const string TenantId = "TenantId"; |
| | |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Core.DB; |
| | | using WIDESEA_Core.Seed; |
| | | |
| | | namespace WIDESEA_Core.Helper |
| | |
| | | //妿æ¯åºå®å¤åºå¯ä»¥ä¼ new SqlSugarScope(List<ConnectionConfig>,db=>{}) ææ¡£ï¼å¤ç§æ· |
| | | //妿æ¯ä¸åºå®å¤åº å¯ä»¥çææ¡£Saasååº |
| | | //ç¨å便¨¡å¼ |
| | | public static SqlSugarScope Db = new SqlSugarScope(new ConnectionConfig() |
| | | public static SqlSugarScope DbWCS = new SqlSugarScope(new ConnectionConfig() |
| | | { |
| | | ConnectionString = DBContext.GetMainConnectionDb().Connection, |
| | | //ConnectionString = DBContext.GetMainConnectionDb().Connection, |
| | | ConnectionString = AppSettings.app(MainDb.ConnectionStringWCS), |
| | | DbType = DbType.SqlServer,//æ°æ®åºç±»å |
| | | IsAutoCloseConnection = true //ä¸è®¾ætrueè¦æå¨close |
| | | }, |
| | | db => |
| | | { |
| | | }); |
| | | |
| | | public static SqlSugarScope DbWMS = new SqlSugarScope(new ConnectionConfig() |
| | | { |
| | | ConnectionString = DBContext.GetMainConnectionDb().Connection, |
| | | //ConnectionString = AppSettings.app(MainDb.ConnectionStringWCS), |
| | | DbType = DbType.SqlServer,//æ°æ®åºç±»å |
| | | IsAutoCloseConnection = true //ä¸è®¾ætrueè¦æå¨close |
| | | }, |
| | | db => |
| | | { |
| | | }); |
| | | } |
| | | } |
| | |
| | | { |
| | | // ä½¿ç¨ myScopedService æ§è¡ä»»å¡ |
| | | |
| | | await DBSeed.SeedAsync(_dbContext, _webRootPath); |
| | | //await DBSeed.SeedAsync(_dbContext, _webRootPath); |
| | | |
| | | //å¤ç§æ· 忥 |
| | | //await DBSeed.TenantSeedAsync(_dbContext); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | #region << ç æ¬ 注 é >> |
| | | |
| | | /*---------------------------------------------------------------- |
| | | * å½å空é´ï¼WIDESEAWCS_QuartzJob |
| | | * å建è
ï¼è¡ç«¥åº |
| | | * å建æ¶é´ï¼2024/8/2 16:13:36 |
| | | * çæ¬ï¼V1.0.0 |
| | | * æè¿°ï¼è®¾å¤ä¿¡æ¯å®ä½ |
| | | * |
| | | * ---------------------------------------------------------------- |
| | | * ä¿®æ¹äººï¼ |
| | | * ä¿®æ¹æ¶é´ï¼ |
| | | * çæ¬ï¼V1.0.1 |
| | | * ä¿®æ¹è¯´æï¼ |
| | | * |
| | | *----------------------------------------------------------------*/ |
| | | |
| | | #endregion << ç æ¬ 注 é >> |
| | | |
| | | using Magicodes.ExporterAndImporter.Core; |
| | | using SqlSugar; |
| | | using WIDESEA_Core.DB.Models; |
| | | |
| | | namespace WIDESEAWCS_QuartzJob.Models |
| | | { |
| | | /// <summary> |
| | | /// 设å¤ä¿¡æ¯ |
| | | /// </summary> |
| | | [SugarTable(nameof(Dt_DeviceInfo), "设å¤ä¿¡æ¯")] |
| | | public class Dt_DeviceInfo : BaseEntity |
| | | { |
| | | /// <summary> |
| | | /// ä¸»é® |
| | | /// </summary> |
| | | [ImporterHeader(IsIgnore = true)] |
| | | [ExporterHeader(DisplayName = "主é®")] |
| | | [SugarColumn(IsIdentity = true, IsPrimaryKey = true, ColumnDescription = "主é®")] |
| | | public int Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 设å¤ç¼å· |
| | | /// </summary> |
| | | [ImporterHeader(Name = "设å¤ç¼å·")] |
| | | [ExporterHeader(DisplayName = "设å¤ç¼å·")] |
| | | [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "设å¤ç¼å·")] |
| | | public string DeviceCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 设å¤åç§° |
| | | /// </summary> |
| | | [ImporterHeader(Name = "设å¤åç§°")] |
| | | [ExporterHeader(DisplayName = "设å¤åç§°")] |
| | | [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "设å¤åç§°")] |
| | | public string DeviceName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 设å¤ç±»å |
| | | /// </summary> |
| | | [ImporterHeader(Name = "设å¤ç±»å")] |
| | | [ExporterHeader(DisplayName = "设å¤ç±»å")] |
| | | [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "设å¤ç±»å")] |
| | | public string DeviceType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 设å¤ç¶æ |
| | | /// </summary> |
| | | [ImporterHeader(Name = "设å¤ç¶æ")] |
| | | [ExporterHeader(DisplayName = "设å¤ç¶æ")] |
| | | [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "设å¤ç¶æ")] |
| | | public string DeviceStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 设å¤IP |
| | | /// </summary> |
| | | [ImporterHeader(Name = "设å¤IP")] |
| | | [ExporterHeader(DisplayName = "设å¤IP")] |
| | | [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "设å¤IP")] |
| | | public string DeviceIp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 设å¤ç«¯å£ |
| | | /// </summary> |
| | | [ImporterHeader(Name = "设å¤ç«¯å£")] |
| | | [ExporterHeader(DisplayName = "设å¤ç«¯å£")] |
| | | [SugarColumn(IsNullable = false, ColumnDescription = "设å¤ç«¯å£")] |
| | | public int DevicePort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// PLCç±»å |
| | | /// </summary> |
| | | [ImporterHeader(Name = "PLCç±»å")] |
| | | [ExporterHeader(DisplayName = "PLCç±»å")] |
| | | [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "PLCç±»å")] |
| | | public string DevicePlcType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | [ImporterHeader(Name = "夿³¨")] |
| | | [ExporterHeader(DisplayName = "夿³¨")] |
| | | [SugarColumn(Length = 200, IsNullable = true, ColumnDescription = "夿³¨")] |
| | | public string DeviceRemark { get; set; } |
| | | } |
| | | } |
| | |
| | | catch (Exception err) |
| | | { |
| | | Console.WriteLine(err.Message.ToString()); |
| | | LogFactory.GetLog("éç½®/éååºåºï¼æ´æçï¼").Error(true, $"\r\r--------------------------------------"); |
| | | LogFactory.GetLog("éç½®/éååºåºï¼æ´æç)").Error(true, err.StackTrace); |
| | | LogFactory.GetLog("éç½®éååºåºï¼æ´æçï¼").Error(true, $"\r\r--------------------------------------"); |
| | | LogFactory.GetLog("éç½®éååºåºï¼æ´æçï¼").Error(true, err.StackTrace); |
| | | content.Error(err.Message); |
| | | } |
| | | return content; |
| | |
| | | var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString()); |
| | | if (result.SerialNos.Count > 0) |
| | | { |
| | | var stockHty = await SqlSugarHelper.Db.Queryable<DtStockInfo>().IncludesAllFirstLayer().FirstAsync(); |
| | | var stockHty = await SqlSugarHelper.DbWMS.Queryable<DtStockInfo>().IncludesAllFirstLayer().FirstAsync(); |
| | | if (stockHty != null) |
| | | { |
| | | var parameterInfo = JsonConvert.DeserializeObject<List<ParameterInfo>>(stockHty.ParameterInfos).FirstOrDefault(y => y.Description.Contains("æ¶é´")); |
| | |
| | | List<DtStockInfoDetail> detail = _stockInfoDetailRepository.QueryData(x => x.StockId == stock.Id).ToList(); |
| | | if (detail != null && detail.Count() > 0) |
| | | { |
| | | List<DtStockInfoDetail_Hty> details = detail.Adapt<List<DtStockInfoDetail_Hty>>(); |
| | | await DeleteStockInfoDetailsAsync(detail); |
| | | AddStockInfoDetailHty(details); |
| | | } |
| | | await AddStockInfoHtyAsync(stockInfo_Hty); |
| | | |
| | | |
| | | location.LocationStatus = (int)LocationEnum.Lock; |
| | | BaseDal.UpdateData(location); |
| | |
| | | |
| | | private async Task AddStockInfoHtyAsync(DtStockInfo_Hty dtStock) |
| | | { |
| | | var isStockAdd = await SqlSugarHelper.Db.InsertNav(dtStock).IncludesAllFirstLayer().ExecuteCommandAsync(); |
| | | var isStockAdd = await SqlSugarHelper.DbWMS.InsertNav(dtStock).IncludesAllFirstLayer().ExecuteCommandAsync(); |
| | | if (!isStockAdd) |
| | | { |
| | | throw new Exception("åºååå²ä¿¡æ¯æ·»å 失败"); |
| | |
| | | throw new Exception("åºå详æ
ä¿¡æ¯æ´æ°å¤±è´¥"); |
| | | } |
| | | } |
| | | private void AddStockInfoDetailHty(List<DtStockInfoDetail_Hty> details) |
| | | { |
| | | |
| | | var isStockAdd = SqlSugarHelper.DbWMS.Insertable(details).ExecuteCommand(); |
| | | if (isStockAdd==0) |
| | | { |
| | | throw new Exception("åºåæç»åå²ä¿¡æ¯æ·»å 失败"); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #endregion å
鍿¹æ³ |
| | |
| | |  |
| | | using Mapster; |
| | | using WIDESEA_Core.HttpContextUser; |
| | | using WIDESEA_Core.Seed; |
| | | |
| | | namespace WIDESEA_StorageBasicService; |
| | | |
| | | public class StockInfoService : ServiceBase<DtStockInfo, IStockInfoRepository>, IStockInfoService |
| | |
| | | } |
| | | return data; |
| | | } |
| | | |
| | | public override WebResponseContent DeleteData(object[] keys) |
| | | { |
| | | List<DtStockInfo_Hty> stockInfos = new List<DtStockInfo_Hty>(); |
| | | foreach (var item in keys) |
| | | { |
| | | var stock = BaseDal.QueryFirstNavAsync(x => x.Id == item.ObjToInt()).Result; |
| | | var stockHty = stock.Adapt<DtStockInfo_Hty>(); |
| | | stockInfos.Add(stockHty); |
| | | } |
| | | var hty = BaseDal.Db.InsertNav(stockInfos) |
| | | .Include(x => x.StockInfoDetails) |
| | | .ExecuteCommand(); |
| | | |
| | | return base.DeleteData(keys); |
| | | } |
| | | } |
| | |
| | | using AngleSharp.Dom; |
| | | using log4net.Core; |
| | | using Mapster; |
| | | using Mapster; |
| | | using Masuit.Tools; |
| | | using SixLabors.Fonts.Tables.AdvancedTypographic; |
| | | using System.Diagnostics; |
| | | using System.Text.RegularExpressions; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Core.Const; |
| | | using WIDESEA_DTO.MOM; |
| | | using WIDESEA_DTO.WMS; |
| | | using WIDESEA_IServices; |
| | | using WIDESEA_IStoragIntegrationServices; |
| | | using WIDESEA_StorageBasicRepository; |
| | | using WIDESEA_StoragIntegrationServices; |
| | | using WIDESEAWCS_BasicInfoRepository; |
| | | using WIDESEAWCS_QuartzJob.Models; |
| | | |
| | | |
| | | namespace WIDESEA_StorageTaskServices; |
| | | |
| | |
| | | var agingOutputDto = MapToAgingOutputDto(stock); |
| | | content = await _agingInOrOutInputService.GetOCVOutputAsync(agingOutputDto); |
| | | |
| | | var result = JsonConvert.DeserializeObject<BasicResult>(content.Data.ToString()); |
| | | task.Remark = result.Success ? null : "NG"; |
| | | |
| | | if (!result.Success && result.MessageCode == "E10001") |
| | | if (content.Status) |
| | | { |
| | | await HandleOutBoundError(stock, task); |
| | | var result = JsonConvert.DeserializeObject<BasicResult>(content.Data.ToString()); |
| | | task.Remark = result.Success ? null : "NG"; |
| | | |
| | | if (!result.Success && result.MessageCode == "E10001") |
| | | { |
| | | await HandleOutBoundError(stock, task); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | task.Remark = "NG"; |
| | | } |
| | | } |
| | | } |
| | |
| | | await DeleteStockInfoAsync(stock.Id); |
| | | await DeleteStockInfoDetailsAsync(stock.StockInfoDetails); |
| | | await AddStockInfoHtyAsync(stockInfo_Hty); |
| | | await UpdateLocationAsync(loc); //è´¨æ£ä»»å¡éè¦æç»éå®åºä½ |
| | | } |
| | | await UpdateLocationAsync(loc); |
| | | await DeleteTaskAsync(task.TaskId); |
| | | await AddTaskHtyAsync(taskHty); |
| | | }); |
| | |
| | | //task.CurrentAddress = task.NextAddress; |
| | | //task.NextAddress = task.TargetAddress; |
| | | |
| | | _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(location, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery,task.TaskNum); |
| | | _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(location, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum); |
| | | |
| | | LogFactory.GetLog("ä»»å¡å®æ").Info(true, "æ´æ°åºåç¶æä¸ä»»å¡ç¶æ"); |
| | | return (location, task); |
| | |
| | | |
| | | private async Task AddStockInfoHtyAsync(DtStockInfo_Hty dtStock) |
| | | { |
| | | var isStockAdd = await SqlSugarHelper.Db.InsertNav(dtStock).IncludesAllFirstLayer().ExecuteCommandAsync(); |
| | | var isStockAdd = await SqlSugarHelper.DbWMS.InsertNav(dtStock).IncludesAllFirstLayer().ExecuteCommandAsync(); |
| | | if (!isStockAdd) |
| | | { |
| | | throw new Exception("åºååå²ä¿¡æ¯æ·»å 失败"); |
| | |
| | | try |
| | | { |
| | | // æ´æ°è´§ä½ååºåä¿¡æ¯ |
| | | (DtStockInfo updateStock, DtLocationInfo locationInForm, DtLocationInfo locationInfoTo) = UpdateStockLocation(stock, task); |
| | | (DtStockInfo updateStock, DtLocationInfo locationInForm, DtLocationInfo locationInfoTo) = UpdateStockLocation(stock, task); |
| | | var taskHty = CreateHistoricalTask(task); |
| | | LogFactory.GetLog("ä»»å¡å®æ").InfoFormat(true, "ç§»åºä»»å¡å®æ", $"è´§ä½å°åï¼{task.TargetAddress},ä¿®æ¹ååºåæ°æ®ï¼{JsonConvert.SerializeObject(updateStock)}ï¼åå
è´§ä½æ°æ®ï¼{locationInForm}"); |
| | | |
| | |
| | | // å建并è·åæ´ççµè¯ç¶æ |
| | | TrayCellsStatusDto trayCells = CreateTrayCellsStatusDto(area, input.PalletCode); |
| | | content = await GetTrayCellStatusAsync(trayCells); |
| | | if (!content.Status) return content; |
| | | if (!content.Status) |
| | | { |
| | | ConsoleHelper.WriteErrorLine($"è·åçµè¯ç¶æå¤±è´¥:{content.Message}"); |
| | | return content; |
| | | } |
| | | |
| | | var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString()); |
| | | |
| | | if (!result.Success) |
| | | { |
| | | ConsoleHelper.WriteErrorLine($"è·åçµè¯ç¶æå¤±è´¥:{result.MOMMessage}"); |
| | | if (result.SerialNos.Count <= 0) |
| | | { |
| | | // 空æçå
¥åºé»è¾ |
| | |
| | | return content.Error(result.MOMMessage); |
| | | } |
| | | |
| | | // å¤çå¼å¸¸çµè¯æ
åµ |
| | | var serialNosError = result.SerialNos.Where(x => x.SerialNoStatus != 1 && x.SerialNoStatus != 4).ToList(); |
| | | if (serialNosError.Count > 0) |
| | | |
| | | if (result.SerialNos.Count <= 0) |
| | | { |
| | | return await HandleErrorCells(input, area, serialNosError); |
| | | return await RequestTrayInTaskAsync(input); |
| | | } |
| | | else |
| | | { |
| | | |
| | | var boxing = CreateBoxingInfo(result, input.PalletCode); |
| | | if (boxing == null) return content.Error("ç»ç失败"); |
| | | |
| | | return await ProcessBasedOnProcessCode(boxing, area, input, result); |
| | | // å¤çå¼å¸¸çµè¯æ
åµ |
| | | var serialNosError = result.SerialNos.Where(x => x.SerialNoStatus != 1 && x.SerialNoStatus != 4).ToList(); |
| | | if (serialNosError.Count > 0) |
| | | { |
| | | return await HandleErrorCells(input, area, serialNosError); |
| | | } |
| | | |
| | | var boxing = CreateBoxingInfo(result, input.PalletCode); |
| | | if (boxing == null) return content.Error("ç»ç失败"); |
| | | |
| | | return await ProcessBasedOnProcessCode(boxing, area, input, result); |
| | | } |
| | | } |
| | | catch (Exception err) |
| | | { |
| | |
| | | /// </summary> |
| | | private async Task<DtStockInfo> QueryStockInfoForRealTrayCWAsync(List<string> areaCodes, string productionLine) |
| | | { |
| | | var area = await _areaInfoRepository.QueryFirstAsync(x => x.AreaCode == "CWSC1"); |
| | | var areaId = (await _areaInfoRepository.QueryDataAsync(x => areaCodes.Contains(x.AreaCode))).Select(x => x.AreaID).ToList(); |
| | | if (areaId.Count == 0) |
| | | { |
| | | ConsoleHelper.WriteErrorLine($"æ¥è¯¢å¸¸æ¸©å®çåºåä¿¡æ¯æ¶,æªæ¾å°åºå代ç 为{JsonConvert.SerializeObject(areaCodes)}çæ°æ®"); |
| | | return null; |
| | | } |
| | | |
| | | var result = await _stockInfoRepository.Db.Queryable<DtStockInfo>() |
| | | .Includes(x => x.LocationInfo) // é¢å è½½LocationInfo |
| | | .Includes(x => x.StockInfoDetails) // é¢å è½½StockInfoDetails |
| | | .Where(x => areaCodes.Contains(x.AreaCode) && x.OutboundTime < DateTime.Now && x.IsFull == true) // è¿æ»¤æ¡ä»¶ |
| | | .WhereIF(!productionLine.IsNullOrEmpty(), x => x.ProductionLine == productionLine) |
| | | .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID && x.LocationInfo.EnalbeStatus == (int)EnableEnum.Enable) // è¿æ»¤æ¡ä»¶ |
| | | .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && areaId.Contains(x.LocationInfo.AreaId) && x.LocationInfo.EnalbeStatus == (int)EnableEnum.Enable) // è¿æ»¤æ¡ä»¶ |
| | | .OrderBy(x => x.OutboundTime) // æåº |
| | | .FirstAsync(); // è·å第ä¸ä¸ªå
ç´ |
| | | |
| | |
| | | { |
| | | return content.Error("æªæ¥è¯¢å°å¯¹åºçåºåä¿¡æ¯"); |
| | | } |
| | | if (stockInfo.LocationInfo.LocationStatus != (int)LocationEnum.InStock) |
| | | { |
| | | return content.Error("该货ä½ç¶æä¸çäºãæè´§ã请æ¥çæ¯å¦å·²ç»æä»»å¡ï¼"); |
| | | } |
| | | |
| | | var task = await BaseDal.QueryFirstAsync(x => x.PalletCode == palletCode); |
| | | if (task != null) |
| | |
| | | } |
| | | else |
| | | { |
| | | if (stockInfo.LocationInfo.RoadwayNo == "JZSC1") |
| | | if (stockInfo.LocationInfo.RoadwayNo.Contains("JZSC")) |
| | | { |
| | | task = CreateTask(stockInfo, "002-021-001", taskType); |
| | | var targetAddress = "002-021-001"; |
| | | if (stockInfo.LocationInfo.RoadwayNo == "JZSC4") |
| | | targetAddress = "001-021-001"; |
| | | task = CreateTask(stockInfo, targetAddress, taskType); |
| | | } |
| | | } |
| | | //var taskId = await BaseDal.AddDataAsync(task); |
| | |
| | | content.OK(data: taskDTO); |
| | | } |
| | | else |
| | | content.Error(result.MOMMessage); |
| | | { |
| | | var location = await GetLocationDistributeAsync(station.Roadway); |
| | | var task = new Dt_Task |
| | | { |
| | | CurrentAddress = station.stationLocation, |
| | | Grade = 1, |
| | | Roadway = station.Roadway, |
| | | TargetAddress = location.LocationCode, |
| | | Dispatchertime = DateTime.Now, |
| | | MaterialNo = "", |
| | | NextAddress = location.LocationCode, |
| | | OrderNo = null, |
| | | PalletCode = palletCode, |
| | | SourceAddress = position, |
| | | TaskState = (int)TaskInStatusEnum.Line_InFinish, |
| | | TaskType = (int)TaskInboundTypeEnum.InTray, |
| | | TaskNum = await BaseDal.GetTaskNo(), |
| | | Creater = "Systeam" |
| | | }; |
| | | // å建WMSä»»å¡ |
| | | WMSTaskDTO taskDTO = CreateWMSTaskDTO(task); |
| | | |
| | | await _unitOfWorkManage.UseTranAsync(async () => |
| | | { |
| | | // æ·»å ä»»å¡å°æ°æ®åº |
| | | await BaseDal.AddDataAsync(task); |
| | | // æ´æ°åºåä½ç½®ç¶æä¸ºä¸å¯ç¨ |
| | | location.LocationStatus = (int)LocationEnum.Lock; |
| | | await _locationRepository.UpdateDataAsync(location); |
| | | }); |
| | | |
| | | content.OK(data: taskDTO); |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | Grade = 1, |
| | | PalletCode = taskOld.PalletCode, |
| | | RoadWay = taskOld.Roadway, |
| | | SourceAddress = taskOld.CurrentAddress, |
| | | SourceAddress = taskOld.SourceAddress, |
| | | TargetAddress = taskOld.TargetAddress, |
| | | TaskState = taskOld.TaskState.Value, |
| | | Id = 0, |
| | |
| | | #endregion éç½®å¼å¸¸å£å
¥åº |
| | | |
| | | #endregion å¤é¨æ¥å£æ¹æ³ |
| | | |
| | | |
| | | |
| | | #region å
é¨è°ç¨æ¹æ³ |
| | | |
| | |
| | | taskHty.TaskId = 0; |
| | | taskHty.OperateType = isHand ? (int)OperateTypeEnum.人工å é¤ : (int)OperateTypeEnum.èªå¨å®æ; |
| | | taskHty.SourceId = task.TaskId; |
| | | if (isHand) |
| | | { |
| | | taskHty.Creater = App.User.UserName != null ? App.User.UserName : "System"; |
| | | } |
| | | taskHty.TaskState = TaskOutStatusEnum.OutFinish.ObjToInt(); |
| | | return taskHty; |
| | | } |
| | |
| | | /// <returns></returns> |
| | | public async Task<string> GetRoadWayAsync(List<string> process) |
| | | { |
| | | var minGroup = _locationRepository.QueryData(x => process.Contains(x.RoadwayNo) && x.LocationStatus == (int)LocationEnum.Free) |
| | | var deviceCode = await SqlSugarHelper.DbWCS.Queryable<Dt_DeviceInfo>() |
| | | .Where(x => x.DeviceStatus == 1.ToString() && process.Contains(x.DeviceCode)) |
| | | .Select(x => x.DeviceCode).ToListAsync(); |
| | | |
| | | var minGroup = _locationRepository.QueryData(x => deviceCode.Contains(x.RoadwayNo) && x.LocationStatus == (int)LocationEnum.Free) |
| | | .GroupBy(x => x.RoadwayNo) |
| | | .OrderByDescending(g => g.Count()) // æ ¹æ®æ¯ä¸ªç»çå
ç´ æ°éæåº |
| | | .ToList(); // ååºæ°éæå¤çç» |
| | |
| | | |
| | | if (stationManager.stationType == 1) |
| | | { |
| | | #region |
| | | // å建ä¸ä¸ªTrayCellsStatusDto对象ï¼å¹¶èµå¼ |
| | | TrayCellsStatusDto trayCells = new TrayCellsStatusDto() |
| | | { |
| | |
| | | ////// è°ç¨GetProcessResponseAsyncæ¹æ³ï¼è·åå·¥èºååº |
| | | ////var processResponse = await GetProcessResponseAsync(process, input.Position); |
| | | var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing); |
| | | #endregion |
| | | } |
| | | |
| | | var task = new Dt_Task |
| | |
| | | if (!content.Status) return content.Error("å·¥èºç³è¯·å¤±è´¥"); |
| | | |
| | | var resultProcessApply = JsonConvert.DeserializeObject<ResultProcessApply>(content.Data.ToString()); |
| | | if (!resultProcessApply.Success) return content.Error("å·¥èºç³è¯·å¤±è´¥"); |
| | | if (!resultProcessApply.Success) |
| | | { |
| | | return await HandleErrorCells(input, area); |
| | | //return content.Error("å·¥èºç³è¯·å¤±è´¥"); |
| | | } |
| | | |
| | | var number = resultProcessApply.ProcessInfo.Where(x => x.ProcessCode.Contains(boxing.ProcessCode)).FirstOrDefault().Number.ToInt32(); |
| | | foreach (var item in resultProcessApply.ProcessInfo) |
| | |
| | | //è¿æ¥å符串 |
| | | //"ConnectionString": "HTI6FB1H05Krd07mNm9yBCNhofW6edA5zLs9TY~MNthRYW3kn0qKbMIsGp~3yyPDF1YZUCPBQx8U0Jfk4PH~ajNFXVIwlH85M3F~v_qKYQ3CeAz3q1mLVDn8O5uWt1~3Ut2V3KRkEwYHvW2oMDN~QIDXPxDgXN0R2oTIhc9dNu7QNaLEknblqmHhjaNSSpERdDVZIgHnMKejU_SL49tralBkZmDNi0hmkbL~837j1NWe37u9fJKmv91QPb~16JsuI9uu0EvNZ06g6PuZfOSAeFH9GMMIZiketdcJG3tHelo=", |
| | | //"ConnectionString": "Data Source=192.168.5.251;Initial Catalog=WIDESEA_WMSDB_BBMain;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | //"ConnectionString": "Data Source=127.0.0.1;Initial Catalog=WIDESEA_WMS2F08;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | "ConnectionString": "Data Source=.\\LIULEI;Initial Catalog=WIDESEA_WMSDB_BBMain;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | "ConnectionString": "Data Source=127.0.0.1;Initial Catalog=WIDESEA_WMS2F08;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | //"ConnectionString": "Data Source=.\\LIULEI;Initial Catalog=WIDESEA_WMSDB_BBMain;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | //"ConnectionString": "Data Source=192.168.20.251;Initial Catalog=WIDESEA_WMSDB;User ID=sa;Password=123456@gy;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | |
| | | //"ConnectionStringWCS": "Data Source=192.168.5.251;Initial Catalog=WIDESEAWCS_TEST;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | "ConnectionStringWCS": "Data Source=127.0.0.1;Initial Catalog=WIDESEA_WCS2F08;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | //è·¨å |
| | | "Cors": { |
| | | "PolicyName": "CorsIpAccess", //çç¥åç§° |