zhoushihao
2024-07-24 1b4d0d08bec04e5c3af3e52f31535995f4665c81
Merge remote-tracking branch 'origin/master'
10个文件已修改
185 ■■■■■ 已修改文件
UI-Project/src/views/PurchaseReturn/purchaseReturn.vue 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/PurchaseReturn/purchaseStorage.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/mapper/WorkAssignmentMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcScreenTask.java 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
    }
}