UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -25,20 +25,23 @@ if(data.intoGlass!=null){ adjustedRects.value = data.intoGlass[0].map(rect => { let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta; if (rect.angle === 0) { adjustedWidth = rect.height * 0.13; let newX = rect.yCoordinate; if (rect.angle === 0) { adjustedWidth = rect.height * 0.12; adjustedHeight = rect.width * 0.1; adjustedWidtha = rect.height; adjustedHeighta = rect.width; newX = 5087 - (rect.xCoordinate + rect.height); } else { adjustedWidth = rect.width * 0.13; adjustedWidth = rect.width * 0.12; adjustedHeight = rect.height * 0.1; adjustedWidtha = rect.width; adjustedHeighta = rect.height; newX = 5087 - (rect.xCoordinate + rect.width); } return { ...rect, xcoordinate: rect.xCoordinate * 0.13, xcoordinate: newX * 0.12, ycoordinate: rect.yCoordinate * 0.1, width: adjustedWidth, height: adjustedHeight, @@ -50,20 +53,23 @@ if(data.intoGlass2!=null){ adjustedRects2.value = data.intoGlass2[0].map(rect => { let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta; if (rect.angle === 0) { adjustedWidth = rect.height * 0.13; let newX = rect.yCoordinate; if (rect.angle === 0) { adjustedWidth = rect.height * 0.12; adjustedHeight = rect.width * 0.1; adjustedWidtha = rect.height; adjustedHeighta = rect.width; } else { adjustedWidth = rect.width * 0.13; newX = 5087 - (rect.xCoordinate + rect.height); } else { adjustedWidth = rect.width * 0.12; adjustedHeight = rect.height * 0.1; adjustedWidtha = rect.width; adjustedHeighta = rect.height; } newX = 5087 - (rect.xCoordinate + rect.width); } return { ...rect, xcoordinate: rect.xCoordinate * 0.13, xcoordinate: newX * 0.12, ycoordinate: rect.yCoordinate * 0.1, width: adjustedWidth, height: adjustedHeight, @@ -75,21 +81,24 @@ // 进炉前 if(data.waitingGlass!=null){ adjustedRectsa.value = data.waitingGlass[0].map(rect => { let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta; let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta; let newX = rect.yCoordinate; if (rect.angle === 0) { adjustedWidth = rect.width * 0.25; adjustedWidth = rect.width * 0.24; adjustedHeight = rect.height * 0.16; adjustedWidtha = rect.width; adjustedHeighta = rect.height; } else { adjustedWidth = rect.height * 0.25; newX = 5190 - (rect.yCoordinate + rect.width); } else { adjustedWidth = rect.height * 0.24; adjustedHeight = rect.width * 0.16; adjustedWidtha = rect.height; adjustedHeighta = rect.width; newX = 5190 - (rect.yCoordinate + rect.height); } return { ...rect, x: rect.yCoordinate * 0.25, x: newX * 0.24, y: rect.xCoordinate * 0.16, width: adjustedWidth, height: adjustedHeight, @@ -102,20 +111,23 @@ if(data.outGlass!=null){ adjustedRectsb.value = data.outGlass[0].map(rect => { let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta; let newX = rect.yCoordinate; if (rect.angle === 0) { adjustedWidth = rect.width * 0.25; adjustedWidth = rect.width * 0.24; adjustedHeight = rect.height * 0.16; adjustedWidtha = rect.width; adjustedHeighta = rect.height; newX = 5190 - (rect.yCoordinate + rect.width); } else { adjustedWidth = rect.height * 0.25; adjustedWidth = rect.height * 0.24; adjustedHeight = rect.width * 0.16; adjustedWidtha = rect.height; adjustedHeighta = rect.width; newX = 5190 - (rect.yCoordinate + rect.height); } return { ...rect, // 复制原始对象的其他属性 x: rect.yCoordinate * 0.25, x: newX * 0.24, y: rect.xCoordinate * 0.16, width: adjustedWidth, height: adjustedHeight, @@ -155,8 +167,8 @@ <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 600px;" v-loading="loading"> <div style="width: 49%;float: left;background-color: #f4f4f5;height: 550px;"> <div v-if="adjustedRects.length > 0"> <div style="text-align: center;">流程卡: {{ adjustedRects[0].flowCardId }}</div> <el-scrollbar height="630px"> <div style="text-align: center;">炉号:{{ adjustedRects[0].engineerId }}-{{ adjustedRects[0].temperingLayoutId }}</div> <el-scrollbar height="550px" style="background-color: #e9e9eb;"> <div style="position: relative;max-width: 1400px;"> <div v-for="(rect, index) in adjustedRects" @@ -166,6 +178,7 @@ > <div class="centered-text"> <div >{{ rect.glassId }}</div> <div >{{ rect.flowCardId }}</div> <div>{{ rect.widtha }}*{{ rect.heighta }}</div> </div> </div> @@ -175,8 +188,8 @@ </div> <div style="width: 49%;float: right;background-color: #f4f4f5;height: 550px;"> <div v-if="adjustedRects2.length > 0"> <div style="text-align: center;">流程卡: {{ adjustedRects2[0].flowCardId }}</div> <el-scrollbar height="550px"> <div style="text-align: center;">炉号:{{ adjustedRects[0].engineerId }}-{{ adjustedRects[0].temperingLayoutId }}</div> <el-scrollbar height="550px" style="background-color: #e9e9eb;"> <div style="position: relative;max-width: 1400px;"> <div v-for="(rect, index) in adjustedRects2" @@ -186,6 +199,7 @@ > <div class="centered-text"> <div >{{ rect.glassId }}</div> <div >{{ rect.flowCardId }}</div> <div>{{ rect.widtha }}*{{ rect.heighta }}</div> </div> </div> @@ -199,8 +213,9 @@ <!-- 进炉前 --> <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 600px;" v-loading="loading"> <div v-if="adjustedRectsa.length > 0"> <div style="text-align: center;">流程卡: {{ adjustedRectsa[0].flowCardId }}</div> <el-scrollbar height="550px"> <div style="text-align: center;">炉号:{{ adjustedRects[0].engineerId }}-{{ adjustedRects[0].temperingLayoutId }}</div> <!-- <div style="text-align: center;">流程卡: {{ adjustedRectsa[0].flowCardId }}</div> --> <el-scrollbar height="550px" style="background-color: #e9e9eb;"> <div style="position: relative;max-width: 1400px;"> <div v-for="(rect, index) in adjustedRectsa" @@ -212,6 +227,7 @@ backgroundColor: getRectColor(rect.state) }"> <div class="centered-text"> <div>{{ rect.glassId }}</div> <div >{{ rect.flowCardId }}</div> <div>{{ rect.widtha }}*{{ rect.heighta }}</div> </div> </div> @@ -224,8 +240,8 @@ <!-- 已出炉 --> <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 600px;" v-loading="loading"> <div v-if="adjustedRectsb.length > 0"> <div style="text-align: center;">流程卡: {{ adjustedRectsb[0].flowCardId }}</div> <el-scrollbar height="550px"> <div style="text-align: center;">炉号:{{ adjustedRects[0].engineerId }}-{{ adjustedRects[0].temperingLayoutId }}</div> <el-scrollbar height="550px" style="background-color: #e9e9eb;"> <div style="position: relative;max-width: 1400px;"> <div v-for="(rect, index) in adjustedRectsb" @@ -236,6 +252,7 @@ backgroundColor: rect.state === 4 ? '#911005' : '#f8e3c5' }"> <div class="centered-text"> <div >{{ rect.glassId }}</div> <div >{{ rect.flowCardId }}</div> <div>{{ rect.widtha }}*{{ rect.heighta }}</div> </div> </div> UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
@@ -25,27 +25,30 @@ } } const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/temperingGlass`; const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/temperingGlass`; // 定义消息处理函数,更新 receivedData 变量 const handleMessage = (data) => { // 更新 tableData 的数据 if(data.overGlass!=null){ adjustedRects.value = data.overGlass[0].map(rect => { let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta; if (rect.angle === 0) { adjustedWidth = rect.width * 0.25; let newX = rect.yCoordinate; if (rect.angle === 0) { adjustedWidth = rect.width * 0.24; adjustedHeight = rect.height * 0.16; adjustedWidtha = rect.width; adjustedHeighta = rect.height; newX = 5190 - (rect.yCoordinate + rect.width); } else { adjustedWidth = rect.height * 0.25; adjustedWidth = rect.height * 0.24; adjustedHeight = rect.width * 0.16; adjustedWidtha = rect.height; adjustedHeighta = rect.width; newX = 5190 - (rect.yCoordinate + rect.height); } return { ...rect, // 复制原始对象的其他属性 xcoordinate: rect.yCoordinate * 0.25, ...rect, xcoordinate: newX * 0.24, ycoordinate: rect.xCoordinate * 0.16, width: adjustedWidth, height: adjustedHeight, @@ -73,9 +76,9 @@ <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 600px;" v-loading="loading"> <!-- <el-card style="margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading"> --> <div v-if="adjustedRects.length > 0"> <div style="text-align: center;">流程卡: {{ adjustedRects[0].flowCardId }}</div> <el-scrollbar height="550px"> <div style="position: relative;max-width: 1400px;"> <div style="text-align: center;">炉号:{{ adjustedRects[0].engineerId }}-{{ adjustedRects[0].temperingLayoutId }}</div> <el-scrollbar height="550px" width="1200px" style="background-color: #e9e9eb;"> <div style="position: relative;"> <div v-for="(rect, index) in adjustedRects" :key="index" @@ -85,6 +88,7 @@ backgroundColor: rect.state === 4 ? '#d1edc4' : '#f8e3c5' }"> <div class="centered-text"> <div >{{ rect.glassId }}</div> <div >{{ rect.flowCardId }}</div> <div>{{ rect.widtha }}*{{ rect.heighta }}</div> <!-- <div style="margin-top: 25px;margin-left: -60px;">{{ rect.widtha }}*{{ rect.heighta }}</div> --> </div> hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java
@@ -1,5 +1,6 @@ package com.mes.damage.mapper; import com.baomidou.dynamic.datasource.annotation.DS; import com.mes.damage.entity.Damage; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -11,6 +12,7 @@ * @author wu * @since 2024-06-13 */ @DS("hangzhoumes") public interface DamageMapper extends BaseMapper<Damage> { } hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java
@@ -1,5 +1,6 @@ package com.mes.glassinfo.mapper; import com.baomidou.dynamic.datasource.annotation.DS; import com.github.yulichang.base.MPJBaseMapper; import com.mes.glassinfo.entity.GlassInfo; @@ -11,6 +12,7 @@ * @author wu * @since 2024-04-29 */ @DS("hangzhoumes") public interface GlassInfoMapper extends MPJBaseMapper<GlassInfo> { } hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java
@@ -24,4 +24,7 @@ List<TemperingGlassInfo> selectLayoutId(); List<TemperingGlassInfo> selectTaskType(); Integer updateTemperingState(TemperingGlassInfo temperingGlassInfo); } hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
@@ -86,4 +86,16 @@ .groupBy("state"); return temperingMapper.selectList(wrapper); } @Override public Integer updateTemperingState(TemperingGlassInfo temperingGlassInfo) { QueryWrapper<TemperingGlassInfo> wrapper = new QueryWrapper<>(); wrapper.eq("glass_id",temperingGlassInfo.getGlassId()) .lt("state",5); if (temperingMapper.update(temperingGlassInfo,wrapper) > 0) { return 200; }else { return 100; } } } hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/mapper/WorkAssignmentMapper.java
@@ -1,5 +1,6 @@ package com.mes.work_assignment.mapper; import com.baomidou.dynamic.datasource.annotation.DS; import com.mes.work_assignment.entity.WorkAssignment; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -11,6 +12,7 @@ * @author wu * @since 2024-07-01 */ @DS("hangzhoumes") public interface WorkAssignmentMapper extends BaseMapper<WorkAssignment> { } hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java
@@ -121,8 +121,8 @@ @Test public void testSelectCacheEmpty() { List<EdgStorageCage> map = edgStorageCageService.selectCacheEmpty(); log.info("笼内空格:{}", Arrays.asList(map)); // List<EdgStorageCage> map = edgStorageCageService.selectCacheEmpty(); // log.info("笼内空格:{}", Arrays.asList(map)); } @Test hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcScreenTask.java
@@ -25,7 +25,7 @@ @Autowired private ReportingWorkService reportingWorkService; @Autowired private OptimizeProjectService optimizeProjectService; private OptimizeProjectService optimizeProjectService; @Autowired private OrdersService ordersService; /** @@ -34,45 +34,26 @@ */ @Scheduled(fixedDelay = 2000) public void screenHome(){ public void screenHome() { JSONObject jsonObject = new JSONObject(); //正在等待进片的玻璃 Reportingdamage reportingdamage = new Reportingdamage(); reportingdamage.setReportingWorkTime("2024-05-11"); //获取切割信息 reportingdamage.setThisProcess("切割"); List<Reportingdamage> cutting = reportingWorkService.selectDamage(reportingdamage); jsonObject.append("cutting", cutting); //获取磨边信息 reportingdamage.setThisProcess("磨边"); List<Reportingdamage> edging = reportingWorkService.selectDamage(reportingdamage); jsonObject.append("edging", edging); //获取钢化信息 reportingdamage.setThisProcess("钢化"); List<Reportingdamage> tempering = reportingWorkService.selectDamage(reportingdamage); jsonObject.append("tempering", tempering); //获取夹胶信息 reportingdamage.setThisProcess("夹胶"); List<Reportingdamage> doubling = reportingWorkService.selectDamage(reportingdamage); jsonObject.append("doubling", doubling); //获取中空信息 reportingdamage.setThisProcess("中空"); List<Reportingdamage> hollow = reportingWorkService.selectDamage(reportingdamage); jsonObject.append("hollow", hollow); //获取包装信息 reportingdamage.setThisProcess("包装"); List<Reportingdamage> packaging = reportingWorkService.selectDamage(reportingdamage); jsonObject.append("packaging", packaging); //扇形图各设备的加工破损数量 List<Reportingdamage> device = reportingWorkService.selectDamage(reportingdamage); jsonObject.append("device", device); //获取次破未补信息 List<AwaitingRepair>awaitingRepairs = reportingWorkService.selectAwaitingRepair(); List<AwaitingRepair> awaitingRepairs = reportingWorkService.selectAwaitingRepair(); jsonObject.append("awaitingRepairs", awaitingRepairs); //获取正在进行的工程 List<OptimizeProject>optimizeProjects= optimizeProjectService.getDoingTask(); List<OptimizeProject> optimizeProjects = optimizeProjectService.getDoingTask(); jsonObject.append("DoingTask", optimizeProjects); //获取当前订单 List<Orders>orders=ordersService.selectOrders(); List<Orders> orders = ordersService.selectOrders(); jsonObject.append("orders", orders); /*现场规划图显示*/ ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("screen"); if (sendwServer != null) { for (WebSocketServer webserver : sendwServer) { hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
@@ -1,13 +1,13 @@ package com.mes.temperingglass.controller; import com.mes.damage.entity.Damage; import com.mes.damage.service.DamageService; import com.mes.temperingglass.service.TemperingGlassInfoService; import com.mes.temperingglass.entity.TemperingGlassInfo; import com.mes.utils.Result; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -22,12 +22,14 @@ public class TemperingGlassInfoController { @Autowired private TemperingGlassInfoService temperingAgoService; private TemperingGlassInfoService temperingGlassInfoService; @Autowired private DamageService damageService; @ApiOperation("查询钢化等片中的版图信息,状态为1的为已到,状态为0的为等待中") @GetMapping("/selectWaitingGlass") // 查询钢化等片中的版图信息,状态为1的为已到,状态为0的为等待中 public Result <List<TemperingGlassInfo>> selectWaitingGlass() { List<TemperingGlassInfo> glass = temperingAgoService.selectWaitingGlass(); List<TemperingGlassInfo> glass = temperingGlassInfoService.selectWaitingGlass(); log.info("等待中的玻璃信息{}",glass); return Result.build(200, "", glass); } @@ -41,10 +43,24 @@ @ApiOperation("//钢化后显示出炉的版图信息。") @GetMapping("/selectOutGlass") //钢化后显示出炉的版图信息 public Result <List<TemperingGlassInfo>> selectOutGlass() { List<TemperingGlassInfo> glass = temperingAgoService.selectOutGlass(); List<TemperingGlassInfo> glass = temperingGlassInfoService.selectOutGlass(); log.info("钢化出炉后的玻璃信息{}",glass); return Result.build(200, "", glass); } @ApiOperation("//钢化破损") @PostMapping("/updateTemperingState") //钢化后显示出炉的版图信息 public Result <Integer> updateTemperingState(@RequestBody Damage damage) { damageService.insertDamage(damage); TemperingGlassInfo temperingGlassInfo=new TemperingGlassInfo(); if(damage.getStatus()==2){ temperingGlassInfo.setState(5); } temperingGlassInfo.setGlassId(damage.getGlassId()); int result=temperingGlassInfoService.updateTemperingState(temperingGlassInfo); return Result.build(200, "破损成功", result); } }