UI-Project/src/views/GlassStorage/rawfilmstorage.vue
@@ -41,14 +41,6 @@ taskType: '', taskState: '', }); // const response = await request.post("/glassStorage/rawGlassStorageTask/setRawGlassTaskRequest", { // beginDate: timeRange.value[0], // endDate: timeRange.value[1], // taskState: stateList, // taskType: celllist // }) // if (response.code === 200) { // // tableDataa.value = response.data; request.post("/glassStorage/rawGlassStorageTask/setRawGlassTaskRequest",{ beginDate: "2022-01-01 00:00:00", endDate: "2025-01-01 00:00:00", @@ -62,13 +54,12 @@ } }); onMounted(() => { // closeWebSocket(); debugger // console.log("--------------webSocket") socket = initializeWebSocket(socketUrl, handleMessage); }); onUnmounted(() => { if (socket) { closeWebSocket(socket); } }); let socket = null; const socketUrl = `ws://${WebSocketHost}:${host}/api/glassStorage/api/talk/rawGlass`; const handleMessage = (data) => { @@ -79,8 +70,28 @@ tableDatab.value = data.rawStationDetailsList[0] } }; // 修改数量 const handleConfirmb = async () => { let slotId = window.localStorage.getItem('slotId') try { const response = await request.post('/glassStorage/rawGlassStorageDetails/updateQuantity', { slotId: slotId, remainQuantity: remainQuantity.value, } ); if (response.code === 200) { ElMessage.success(response.message); dialogFormVisiblec.value = false; tableDatab.value = response.data; } else { ElMessage.error(response.message); } } catch (error) { console.error(error); } }; // 删除 const opena = async(row) => { const deleteWarehousing = async(row) => { try { const confirmResult = await ElMessageBox.confirm( t('film.dedelete'), @@ -92,7 +103,10 @@ } ); if (confirmResult === 'confirm') { const response = await request.post("/loadGlass/sys/user/deleteUser", [row.id]) const response = await request.post("/glassStorage/rawGlassStorageDetails/deleteWarehousing",[row.slotId]) // const response = await request.post("/glassStorage/rawGlassStorageDetails/deleteWarehousing",{ // slotId: row.slotId // }) if (response.code === 200) { ElMessage.success(response.message); } else { @@ -103,30 +117,7 @@ console.error('发生错误:', error); } }; // 禁用 const openb = async(row) => { try { const confirmResult = await ElMessageBox.confirm( t('film.dedisable'), t('productStock.prompt'), { confirmButtonText: t('productStock.yes'), cancelButtonText: t('productStock.cancel'), type: 'warning', } ); if (confirmResult === 'confirm') { const response = await request.post("/loadGlass/sys/user/deleteUser", [row.id]) if (response.code === 200) { ElMessage.success(response.message); } else { ElMessage.error(response.msg); } } } catch (error) { console.error('发生错误:', error); } }; // 出库 const openc = async(row) => { try { @@ -140,12 +131,12 @@ } ); if (confirmResult === 'confirm') { const response = await request.post("/loadGlass/sys/user/deleteUser", [row.id]) const response = await request.post("/glassStorage/rawGlassStorageDetails/outWarehousing",[row.slotId]) if (response.code === 200) { ElMessage.success(response.message); } else { ElMessage.error(response.msg); } } } } catch (error) { console.error('发生错误:', error); @@ -188,7 +179,7 @@ patternThickness: patternThickness.value, filmsId: filmsId.value, remainQuantity: remainQuantity.value, slot: slot.value, slotId: slot.value, }); if (response.code === 200) { ElMessage.success(response.message); @@ -207,26 +198,28 @@ } }; // 是否禁用 const toggleEnableState = async (row: any) => { const toggleEnableState = async (row: any) => { if (!row.deviceId) { ElMessage.error(t('basicData.updatanull')); return; } const newState = row.enableState === 1 ? 0 : 1; try { // 发送请求到后端更新状态 const response = await request.post('/glassStorage/rawGlassStorageDetails/updateEnableState', { deviceId: row.deviceId, enableState: newState }); const newState = row.state === 1 ? 0 : 1; try { var url="/glassStorage/rawGlassStorageStation/updateSlotState?slot="+row.deviceId + "&state=" + newState; const response = await request.post(url) if (response.code === 200) { ElMessage.success(response.message); row.enableState = newState; row.state = newState; } else { ElMessage.error(response.message); } } catch (error) { row.state = newState; } catch (error) { ElMessage.error(t('basicData.glassnull')); } }; const handleEdit = (row) => { window.localStorage.setItem('slotId', row.slotId) dialogFormVisiblec.value = true; }; function getStatusType1(taskType) { @@ -269,6 +262,11 @@ return t('film.finish');//完成 } } // onUnmounted(() => { // if (socket) { // closeWebSocket(socket); // } // }); onBeforeUnmount(() => { closeWebSocket(); }); @@ -349,21 +347,21 @@ align="center" :label="$t('film.enablestate')" min-width="80" prop="enablestate" prop="state" > <template #default="scope"> <el-tag :type="scope.row.enableState == 1 ? 'success' : 'danger'" :type="scope.row.state == 1 ? 'success' : 'danger'" @click="toggleEnableState(scope.row)" > {{ scope.row.enableState == 1 ? $t('film.start') : $t('film.disable')}} {{ scope.row.state == 1 ? $t('film.start') : $t('film.disable')}} </el-tag> </template> </el-table-column> <el-table-column fixed="right" :label="$t('film.operate')" align="center" width="270"> <template #default="scope"> <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">{{ $t('film.exit') }}</el-button> <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('film.delete') }}</el-button> <el-button size="mini" type="text" plain @click="deleteWarehousing(scope.row)">{{ $t('film.delete') }}</el-button> <el-button size="mini" type="text" plain @click="openc(scope.row)">{{ $t('film.outbound') }}</el-button> </template> </el-table-column> @@ -450,7 +448,7 @@ <el-form size="mini" label-width="100px"> <el-form label-width="210px" label-position="right"> <el-form-item :label="$t('film.thickremainquantity')" :required="true" style="width: 25vw"> <el-input v-model="workstationId" autocomplete="off" /> <el-input v-model="remainQuantity" autocomplete="off" /> </el-form-item> </el-form> </el-form> hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassPushMessage.java
@@ -34,15 +34,16 @@ List<RawGlassStorageTask> tasks = rawGlassStorageTaskService.listRawGlassTask(); jsonObject.append("rawStationDetailsList", rawStationDetailsList); jsonObject.append("tasks", tasks); log.info("获取到的工位详情及任务信息为:{}", jsonObject); // log.info("获取到的工位详情及任务信息为:{}", jsonObject); List<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("rawGlass"); if (CollectionUtil.isNotEmpty(sendwServer)) { if (sendwServer.get(0).session.isOpen()) { log.info("已发送"); sendwServer.get(0).sendMessage(String.valueOf(jsonObject)); } sendwServer.stream().forEach(e->{ e.sendMessage(String.valueOf(jsonObject)); }); } } /** todo:入库任务:吊装位有玻璃,先去工位表查询空格子,生成入库任务从吊装位到目标格子 */ hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/controller/RawGlassStorageDetailsController.java
@@ -1,7 +1,9 @@ package com.mes.rawglassdetails.controller; import com.mes.entity.request.GeneralRequest; import com.mes.rawglassdetails.entity.request.RawGlassRequest; import com.mes.rawglassdetails.service.RawGlassStorageDetailsService; import com.mes.userinfo.entity.vo.SysUserVO; import com.mes.utils.Result; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -10,6 +12,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * 前端控制器 @@ -30,4 +34,20 @@ return Result.build( 200, "入库已完成,等待任务执行", rawGlassStorageDetailsService.patternWarehousing(request)); } @ApiOperation("更新剩余数量") @PostMapping("/updateQuantity") public Result<Object> updateQuantity(@Validated @RequestBody RawGlassRequest request) { return Result.success(rawGlassStorageDetailsService.UpdateQuantity(request)); } @ApiOperation("删除原片") @PostMapping("/deleteWarehousing") public Result<Object> deleteWarehousing(@RequestBody Long slotId) { return Result.success(rawGlassStorageDetailsService.deleteWarehousing(slotId)); } @ApiOperation("原片出库") @PostMapping("/outWarehousing") public Result<Object> outWarehousing(@RequestBody Long slotId) { return Result.success(rawGlassStorageDetailsService.outWarehousing(slotId)); } } hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/entity/request/RawGlassRequest.java
@@ -1,5 +1,6 @@ package com.mes.rawglassdetails.entity.request; import com.mes.userinfo.entity.vo.SysUserVO; import lombok.Data; /** @@ -8,7 +9,7 @@ * @Description: */ @Data public class RawGlassRequest { public class RawGlassRequest extends SysUserVO { /** * 原片宽 @@ -38,5 +39,5 @@ /** * 栅格号 */ private Integer slot; private String slotId; } hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/RawGlassStorageDetailsService.java
@@ -1,8 +1,10 @@ package com.mes.rawglassdetails.service; import com.baomidou.mybatisplus.extension.service.IService; import com.mes.entity.request.GeneralRequest; import com.mes.rawglassdetails.entity.RawGlassStorageDetails; import com.mes.rawglassdetails.entity.request.RawGlassRequest; import com.mes.userinfo.entity.vo.SysUserVO; import java.util.List; @@ -22,12 +24,6 @@ */ boolean deleteRawGlassStorageDetails(String device_id); /** * 新增表 * * @return boolean */ boolean insertRawGlassStorageDetails(RawGlassStorageDetails rw); /** @@ -38,4 +34,9 @@ */ String patternWarehousing(RawGlassRequest request); String UpdateQuantity(RawGlassRequest request); String deleteWarehousing(Long slotId); String outWarehousing(Long slotId); } hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
@@ -1,16 +1,20 @@ package com.mes.rawglassdetails.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mes.common.config.Const; import com.mes.rawglassdetails.entity.RawGlassStorageDetails; import com.mes.rawglassdetails.entity.request.RawGlassRequest; import com.mes.rawglassdetails.mapper.RawGlassStorageDetailsMapper; import com.mes.rawglassdetails.service.RawGlassStorageDetailsService; import com.mes.rawglassstation.entity.RawGlassStorageStation; import com.mes.userinfo.entity.vo.SysUserVO; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.util.Date; import java.util.List; /** @@ -36,10 +40,6 @@ return list(); } @Override public boolean insertRawGlassStorageDetails(RawGlassStorageDetails rw) { return this.save(rw); } @Override public String patternWarehousing(RawGlassRequest request) { @@ -47,8 +47,30 @@ RawGlassStorageDetails details = new RawGlassStorageDetails(); BeanUtils.copyProperties(request, details); details.setState(Const.GLASS_STATE_IN); details.setCreateTime(new Date()); save(details); return null; return "success"; } @Override public String UpdateQuantity(RawGlassRequest request) { update( new LambdaUpdateWrapper<RawGlassStorageDetails>() .set(RawGlassStorageDetails::getRemainQuantity, request.getRemainQuantity()) .eq(RawGlassStorageDetails::getSlotId, request.getSlotId())); return "success"; } @Override public String deleteWarehousing(Long slotId) { update(new LambdaUpdateWrapper<RawGlassStorageDetails>().eq(RawGlassStorageDetails::getSlotId, slotId) .set(RawGlassStorageDetails::getState,Const.GLASS_STATE_OUT)); return "success"; } @Override public String outWarehousing(Long slotId) { update(new LambdaUpdateWrapper<RawGlassStorageDetails>().eq(RawGlassStorageDetails::getSlotId, slotId) .set(RawGlassStorageDetails::getState,Const.GLASS_STATE_OUT_ING)); return "success"; } } hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassstation/controller/RawGlassStorageStationController.java
@@ -22,13 +22,16 @@ @ApiOperation("工位状态") @PostMapping("/updateSlotState") @ResponseBody public Result<Boolean> updateSlotState(@RequestBody Integer enableState, Integer slot) { public Result<Boolean> updateSlotState(@RequestParam(value = "state")int enableState, @RequestParam(value = "slot")int slot) { boolean result = rawGlassStorageStationService.updateSlotState(slot, enableState); if (enableState == 1) { return Result.build(1, "启用", result); return Result.build(200, "启用", result); } else { return Result.build(0, "禁用", result); return Result.build(200, "禁用", result); } } } hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/mapper/RawGlassStorageStationMapper.xml
@@ -11,6 +11,7 @@ <result column="films_id" property="filmsId"/> <result column="create_time" property="createTime"/> <result column="remain_quantity" property="remainQuantity"/> <result column="enable_state" property="state"/> </resultMap> @@ -22,7 +23,8 @@ T1.PATTERN_THICKNESS, T1.FILMS_ID, T1.CREATE_TIME, T1.REMAIN_QUANTITY T1.REMAIN_QUANTITY, T.ENABLE_STATE FROM RAW_GLASS_STORAGE_STATION T LEFT JOIN RAW_GLASS_STORAGE_DETAILS T1 ON T.DEVICE_ID = T1.DEVICE_ID AND T.SLOT = T1.SLOT_ID