wuyouming666
2024-04-22 4dac53b907f110d87940b1e06cc691afefe5d55a
Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes

# Conflicts:
# UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
13个文件已修改
7个文件已添加
591 ■■■■ 已修改文件
UI-Project/src/views/Caching/caching.vue 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/Returns/returns.vue 170 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/pom.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageFeedTaskServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/controller/EngineeringController.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/entity/Engineering.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/mapper/EngineeringMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/mapper/xml/EngineeringMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/EngineeringService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/controller/UpWorkstationController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkSequence.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/mapper/UpWorkstationMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/mapper/UpWorkstationMapper.xml 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/Caching/caching.vue
@@ -13,27 +13,39 @@
const tableData = ref([])
// 发送获取表格数据的请求
const fetchTableData = async () => {
  try {
    // 发送获取表格数据的请求,并等待响应
    // const response = await request.post("/loadGlass/optimizeProject/listByState", requestData);
    const response = await request.get("/unLoadGlass/unLoadGlass/downstorage");
// const fetchTableData = async () => {
//   try {
//     // 发送获取表格数据的请求,并等待响应
//     // const response = await request.post("/loadGlass/optimizeProject/listByState", requestData);
//     const response = await request.get("unLoadGlass/downStorage/selectStorageCage");
    // 检查响应状态
    if (response.code === 200) {
      // 更新表格数据
      console.log('成功获取表格数据:', response.data);
      tableData.splice(0, tableData.length, ...response.data);
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.msg);
    }
  } catch (error) {
    // 处理请求失败的情况
    ElMessage.error('获取表格数据失败,请重试');
  }
};
onMounted(fetchTableData);
//     // 检查响应状态
//     if (response.code === 200) {
//       // 更新表格数据
//       console.log('成功获取表格数据:', response.data);
//       tableData.splice(0, tableData.length, ...response.data);
//     } else {
//       // 请求失败,显示错误消息
//       ElMessage.error(response.msg);
//     }
//   } catch (error) {
//     // 处理请求失败的情况
//    ElMessage.error('获取表格数据失败,请重试');
//   }
// };
// onMounted(fetchTableData);
request.get("unLoadGlass/downStorage/selectStorageCage").then((res) => {
          if (res.code == 200) {
          console.log(res.data);
          tableData.value = res.data
          } else {
          ElMessage.warning(res.msg)
          }
          });
const dialogForm = () => {
  ElMessageBox.confirm(
@@ -139,9 +151,9 @@
        @selection-change="handleSelectionChange"
        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
          <el-table-column prop="id" align="center" label="玻璃ID" min-width="80" />
          <el-table-column prop="long" align="center" label="位置" min-width="120" />
          <el-table-column prop="wide" align="center" label="宽" min-width="120" />
          <el-table-column prop="type" align="center" label="长" min-width="120" />
          <el-table-column prop="sequence" align="center" label="位置" min-width="120" />
          <el-table-column prop="width" align="center" label="宽" min-width="120" />
          <el-table-column prop="height" align="center" label="长" min-width="120" />
          <el-table-column fixed="right" label="操作" align="center" width="200">
            <template #default>
              <el-button size="mini" type="text" plain  @click="dialogForm">报缺</el-button>
UI-Project/src/views/Returns/returns.vue
@@ -15,6 +15,16 @@
import { ref, onMounted } from "vue";
// import http from "@/http/index";
let ruleForm = ref({
  workstationId: '',
  patternHeigth: '',
  patternWidth: '',
  filmsId: '',
  patternThickness: '',
  number: '',
})
const tableDataa = ref([])
  
 const requestData = {
@@ -54,6 +64,7 @@
          if (res.code == 200) {
          console.log(res.data);
          tableDataa.value = res.data
          // workstationId.value = res.data[0].workstationId
          } else {
          ElMessage.warning(res.msg)
          router.push("/login")
@@ -107,8 +118,63 @@
//   }
// }
const workstationId = ref('');
const patternHeigth = ref('');
const patternWidth = ref('');
const filmsId = ref('');
const patternThickness = ref('');
const number = ref('');
// 添加
    const handleConfirm = async () => {
  try {
    const response = await request.post('/loadGlass/LoadGlass/updateGlassMessage', {
      workstationId: workstationId.value,
      patternHeigth: patternHeigth.value,
      patternWidth: patternWidth.value,
      filmsId: filmsId.value,
      patternThickness: patternThickness.value,
      number: number.value
    });
    if (response.code == 200) {
      // 绑定成功,处理逻辑
      ElMessage.success(response.message);
      add.value = false;
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.msg);
    }
  } catch (error) {
    // 处理错误
    console.error(error);
  }
};
// 删除
const handleConfirma = async () => {
  try {
    const response = await request.post('/loadGlass/LoadGlass/updateGlassMessage', {
      workstationId: workstationId.value,
      patternHeigth: 0,
      patternWidth: 0,
      filmsId: "",
      patternThickness: 0,
      number: 0
    });
    if (response.code == 200) {
      // 绑定成功,处理逻辑
      ElMessage.success(response.message);
      adda.value = false;
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.msg);
    }
  } catch (error) {
    // 处理错误
    console.error(error);
  }
};
onMounted(fetchTableData);
interface User {
  id: string
@@ -169,20 +235,6 @@
      })
    })
}
const getTableRow = (type) =>{
  switch (type) {
    case 'edit' :{
      //alert('我接收到子组件传送的编辑信息')
      // router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
      break
      state: true
    }
    case 'delete':{
      alert('我接收到子组件传送的删除信息')
      break
    }
  }
}
const gridOptions = reactive({
  border:  "full",//表格加边框
@@ -240,13 +292,6 @@
    <el-button style="margin-top: 5px;margin-left: 20px;"  id="searchButton" type="danger" >停止任务</el-button>
    <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;" v-loading="loading">
      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
    <!-- <el-table
    height="150"
     ref="table"
     :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
      :data="tableData"
      :span-method="objectSpanMethod"
    > -->
    <el-table
    height="150"
     ref="table" 
@@ -273,8 +318,6 @@
    </el-card>
      <div id="parent">
        <img src="../../assets/shangpianji.png" alt="" style="max-width: 20%;max-height: 20%;margin-top: 20px;margin-left: 500px;">
        <!-- <el-button style="margin-top: -830px;margin-left: -40px;"  size="mini" id="searchButton" @click="add = true">添加原片</el-button> -->
        <!-- <el-button style="margin-top: -10px;margin-left: -80px;"  size="mini" id="searchButton"  @click="adda = true">添加原片</el-button> -->
      </div>
      <div style="margin-top: -350px;margin-left: 650px;">
        <el-table :data="tableDataa" border style="width: 60%"
@@ -286,8 +329,8 @@
          <el-table-column prop="number" align="center" label="数量" min-width="80" />
          <el-table-column fixed="right" label="操作" align="center" width="150">
            <template #default>
              <el-button size="mini" type="text" plain  @click="add = true">添加</el-button>
              <el-button size="mini" type="text" plain  @click="open">删除</el-button>
              <el-button size="mini" type="text" plain @click="add = true">添加</el-button>
              <el-button size="mini" type="text" plain @click="adda = true">删除</el-button>
            </template>
        </el-table-column>
        </el-table>
@@ -307,19 +350,6 @@
                :value="item.projectNo"
            />
          </el-select>
        <!-- <el-select
          clearable
          placeholder="请选择工程"
          style="width: 300px"
          v-model="form.id"
        >
         <el-option
           v-for="item in billall"
           :key="item.id"
           :label="item.projectNo"
           :value="item.projectNo"
         />
       </el-select> -->
              </el-form-item>
          </div>
    <template #footer>
@@ -340,14 +370,14 @@
              <div id="dt" style="font-size: 15px;">
        <div>
              <el-form-item label="长:" :required="true" style="width: 14vw">
                <el-input  autocomplete="off" />
                <el-input  v-model="patternHeigth" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
              <el-form-item label="宽:" :required="true" style="width: 14vw">
                <el-input autocomplete="off" />
                <el-input v-model="patternWidth" autocomplete="off" />
              </el-form-item></div>
              </div>
          </el-col>
@@ -357,14 +387,14 @@
              <div id="dt" style="font-size: 15px;">
        <div>
              <el-form-item label="膜系:" :required="true" style="width: 14vw;">
                <el-input autocomplete="off" />
                <el-input v-model="filmsId" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
              <el-form-item label="厚度:" :required="true" style="width: 14vw">
                <el-input autocomplete="off" />
                <el-input v-model="patternThickness" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
        </el-row>
@@ -373,7 +403,7 @@
              <div id="dt" style="font-size: 15px;">
        <div>
              <el-form-item label="数量:" :required="true" style="width: 14vw;">
                <el-input autocomplete="off" />
                <el-input  v-model="number" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
        </el-row>
@@ -382,65 +412,17 @@
          </div>
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="getTableRow('edit')">
        <el-button type="primary" @click="handleConfirm">
          确认
        </el-button>
        <el-button @click="add = false">取消</el-button>
      </div>
    </template>
  </el-dialog>
  <el-dialog v-model="adda" top="23vh" width="45%" title="添加原片" >
    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
            <el-form  size="mini" >
      <el-form label-width="70px" label-position="right">
        <el-row style="margin-top: -15px;margin-bottom: -2px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
              <el-form-item label="长:" :required="true" style="width: 14vw">
                <el-input  autocomplete="off" style="width: 180px" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
              <el-form-item label="宽:" :required="true" style="width: 14vw">
                <el-input autocomplete="off" style="width: 180px" />
              </el-form-item></div>
              </div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
              <el-form-item label="膜系:" :required="true" style="width: 14vw;">
                <el-input autocomplete="off" style="width: 180px" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
              <el-form-item label="厚度:" :required="true" style="width: 14vw">
                <el-input autocomplete="off" style="width: 180px" />
              </el-form-item></div></div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
              <el-form-item label="数量:" :required="true" style="width: 14vw;">
                <el-input autocomplete="off" style="width: 180px" />
              </el-form-item></div></div>
          </el-col>
        </el-row>
        </el-form>
            </el-form>
          </div>
  <el-dialog v-model="adda" top="25vh" width="25%" title="是否删除" >
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="adda = false">
        <el-button type="primary" @click="handleConfirma">
          确认
        </el-button>
        <el-button @click="adda = false">取消</el-button>
hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java
@@ -22,10 +22,10 @@
        // 2、全局配置
        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        gc.setOutputDir("D:\\Documents\\hangzhoumesParent1\\");
        gc.setOutputDir("D:\\Documents\\hangzhoumesParent2\\");
        gc.setServiceName("%sService");    //去掉Service接口的首字母I
        gc.setAuthor("zhoush");
        gc.setAuthor("wu");
        gc.setOpen(false);
        mpg.setGlobalConfig(gc);
@@ -41,7 +41,7 @@
        // 4、包配置
        PackageConfig pc = new PackageConfig();
        pc.setParent("com.mes");
        pc.setModuleName("userinfo"); //模块名
        pc.setModuleName("engineering"); //模块名
        pc.setController("controller");
        pc.setService("service");
        pc.setMapper("mapper");
@@ -50,7 +50,7 @@
        // 5、策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setInclude("up_patten_usage");
        strategy.setInclude("engineering");
        strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
hangzhoumesParent/moduleService/CacheVerticalGlassModule/pom.xml
@@ -18,11 +18,16 @@
            <artifactId>mybatis-plus-join</artifactId>
            <version>1.1.6</version>
        </dependency>
                <dependency>
                    <groupId>com.github.yulichang</groupId>
                    <artifactId>mybatis-plus-join</artifactId>
                    <version>1.1.6</version>
                </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>sqljdbc4</artifactId>
            <version>4.0</version>
        </dependency>
    </dependencies>
<properties>
    <maven.compiler.source>8</maven.compiler.source>
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -17,6 +19,7 @@
 * @author zhoush
 * @since 2024-03-27
 */
@ApiModel(description = "<p> 大理片笼 </p>")
@Data
@EqualsAndHashCode(callSuper = false)
public class BigStorageCage implements Serializable {
@@ -26,29 +29,35 @@
    /**
     * 大理片笼表id
     */
      @ApiModelProperty(value = "大理片笼表id", position = 2)
      @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 设备id
     */
    @ApiModelProperty(value = "设备id", position = 3)
    private Integer deviceId;
    /**
     * 栅格号
     */
    @ApiModelProperty(value = "栅格号", position = 4)
    private Integer slot;
    /**
     * 启用状态
     */
    @ApiModelProperty(value = "启用状态", position = 5)
    private String enableState;
    /**
     * 剩余宽度
     */
    @ApiModelProperty(value = "剩余宽度", position = 6)
    private Integer remainWidth;
    @ApiModelProperty(hidden = true)
    @TableField(exist = false)
    private List<BigStorageCageDetails> bigStorageCageDetails;
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java
@@ -3,6 +3,9 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -14,6 +17,7 @@
 * @author zhoush
 * @since 2024-03-27
 */
@ApiModel(description = "<p> 大理片笼详情 </p>")
@Data
@EqualsAndHashCode(callSuper = false)
public class BigStorageCageDetails implements Serializable {
@@ -23,72 +27,86 @@
    /**
     * 大理片笼详情表id
     */
      @ApiModelProperty(value = "大理片笼详情表id", position = 2)
      @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 设备id
     */
    @ApiModelProperty(value = "设备id", position = 3)
    private Integer deviceId;
    /**
     * 栅格号
     */
    @ApiModelProperty(value = "栅格号", position = 4)
    private Integer slot;
    /**
     * 玻璃id
     */
    @ApiModelProperty(value = "玻璃id", position = 5)
    private String glassId;
    /**
     * 小片在格内的顺序
     */
    @ApiModelProperty(value = "小片在格内的顺序", position = 6)
    private Integer sequence;
    /**
     * 流程卡号
     */
    @ApiModelProperty(value = "流程卡号", position = 7)
    private String flowCardId;
    /**
     * 玻璃类型
     */
    @ApiModelProperty(value = "玻璃类型", position = 8)
    private Integer glassType;
    /**
     * 宽
     */
    @ApiModelProperty(value = "宽", position = 9)
    private Double width;
    /**
     * 高
     */
    @ApiModelProperty(value = "高", position = 10)
    private Double height;
    /**
     * 厚度
     */
    @ApiModelProperty(value = "厚度", position = 11)
    private Double thickness;
    /**
     * 钢化版图id
     */
    @ApiModelProperty(value = "钢化版图id", position = 12)
    private Integer temperingLayoutId;
    /**
     * 钢化版图片序
     */
    @ApiModelProperty(value = "钢化版图片序", position = 13)
    private Integer temperingFeedSequence;
    /**
     * 状态
     */
    @ApiModelProperty(value = "状态", position = 14)
    private Integer state;
    /**
     * 玻璃间隙
     */
    @ApiModelProperty(value = "玻璃间隙", position = 15)
    private Integer gap;
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageFeedTaskServiceImpl.java
@@ -38,7 +38,7 @@
    @Override
    public List<BigStorageCageFeedTask> querybigStorageCageFeedTask(int taskState){
        LambdaQueryWrapper<BigStorageCageFeedTask> getFeedTaskWrapper=new LambdaQueryWrapper<>();
        getFeedTaskWrapper.eq(BigStorageCageFeedTask::getTaskState,1);
        getFeedTaskWrapper.eq(BigStorageCageFeedTask::getTaskState,taskState);
        return baseMapper.selectList(getFeedTaskWrapper);
    }
}
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java
New file
@@ -0,0 +1,28 @@
package com.mes;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
 * @Author : zhoush
 * @Date: 2024/3/27 16:37
 * @Description:
 */
@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest(classes = CacheVerticalClassModuleApplication.class)
public class CacheVerticalGlassModuleApplicationTest {
    @Test
    public void testFindPath() {
        log.info("完整路径:{}", Arrays.asList("123"));
    }
}
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/controller/EngineeringController.java
New file
@@ -0,0 +1,37 @@
package com.mes.engineering.controller;
import com.mes.engineering.entity.Engineering;
import com.mes.engineering.service.impl.EngineeringServiceImpl;
import com.mes.utils.Result;
import com.mes.workstation.service.UpWorkstationService;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.mes.engineering.service.EngineeringService;
/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author wu
 * @since 2024-04-22
 */
@RestController
@Slf4j
@RequestMapping("/engineering/engineering")
public class EngineeringController {
    @Autowired
    private EngineeringService engineeringService;
    @ApiOperation("开始/暂停任务/传递工程号和状态,开始是1 暂停是0")
    @PostMapping("/changeTask") //调用上片任务
    @ResponseBody
    public Result <Engineering> changeTask(String projectId , Integer state) {
        boolean work=engineeringService.changeTask(projectId,state);
        log.info("开始任务返回:{}", work);
        return Result.build(200, "",null);
    }
}
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/entity/Engineering.java
New file
@@ -0,0 +1,100 @@
package com.mes.engineering.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * <p>
 *
 * </p>
 *
 * @author wu
 * @since 2024-04-22
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class Engineering implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 工程表id
     */
      @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 工程号
     */
    private String  engineerId;
    /**
     * 工程名称
     */
    private String engineerName;
    /**
     * 平均利用率
     */
    private Double avgAvailability;
    /**
     * 有效利用率
     */
    private Double validAvailability;
    /**
     * 尾片利用率
     */
    private Double lastAvailability;
    /**
     * 状态
     */
    private Integer state;
    /**
     * 小片总数
     */
    private Integer glassTotal;
    /**
     * 小片总面积
     */
    private Double glassTotalArea;
    /**
     * 计划原片总数
     */
    private Integer planPatternTotal;
    /**
     * 计划原片总面积
     */
    private Double planPatternTotalArea;
    /**
     * 实际原片总数
     */
    private Integer realityPatternTotal;
    /**
     * 实际原片总面积
     */
    private Double realityPatternTotalArea;
    /**
     * 膜系id
     */
    private Integer filmsId;
    /**
     * 备注
     */
    private String notes;
}
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/mapper/EngineeringMapper.java
New file
@@ -0,0 +1,16 @@
package com.mes.engineering.mapper;
import com.mes.engineering.entity.Engineering;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author wu
 * @since 2024-04-22
 */
public interface EngineeringMapper extends BaseMapper<Engineering> {
}
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/mapper/xml/EngineeringMapper.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mes.engineering.mapper.EngineeringMapper">
</mapper>
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/EngineeringService.java
New file
@@ -0,0 +1,17 @@
package com.mes.engineering.service;
import com.mes.engineering.entity.Engineering;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 *  服务类
 * </p>
 *
 * @author wu
 * @since 2024-04-22
 */
public interface EngineeringService extends IService<Engineering> {
    boolean  changeTask(String projectId,Integer state);
}
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java
New file
@@ -0,0 +1,29 @@
package com.mes.engineering.service.impl;
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.mes.engineering.entity.Engineering;
import com.mes.engineering.mapper.EngineeringMapper;
import com.mes.engineering.service.EngineeringService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author wu
 * @since 2024-04-22
 */
@Service
public class EngineeringServiceImpl extends ServiceImpl<EngineeringMapper, Engineering> implements EngineeringService {
    //开始/暂停任务
    @Override
    public  boolean  changeTask(String projectId, Integer state) {
        LambdaUpdateChainWrapper<Engineering> wrapper = new LambdaUpdateChainWrapper<>(this.getBaseMapper());
        wrapper.set(Engineering::getState,state);
        wrapper.eq(Engineering::getEngineerId,projectId);
        return  wrapper.update();
    }
}
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/controller/UpWorkstationController.java
@@ -3,6 +3,7 @@
import com.mes.utils.Result;
import com.mes.workstation.entity.GlassInfo;
import com.mes.workstation.entity.UpWorkSequence;
import com.mes.workstation.entity.UpWorkstation;
import com.mes.workstation.service.UpWorkstationService;
import io.swagger.annotations.ApiOperation;
@@ -26,7 +27,6 @@
public class UpWorkstationController {
    @Autowired
    private UpWorkstationService upWorkstationService;
    private GlassInfo glassInfo;
    @ApiOperation("显示工位上的玻璃信息")
    @GetMapping("/list") //查询现在上片机的玻璃信息
    public Result<List<UpWorkstation>> list() {
@@ -40,15 +40,19 @@
    @ApiOperation("修改工位表增加玻璃信息或者删除玻璃信息,传递Upworkstation类,只修改宽高厚数量膜系")
    @PostMapping("/updateGlassMessage")
    @ResponseBody
    public void updateGlassMessage(@RequestBody UpWorkstation upwork) {
    public Result<UpWorkstation> updateGlassMessage(@RequestBody UpWorkstation upwork) {
        upWorkstationService.updateGlassMessage(upwork);
        return Result.build(200, "", upwork);
    }
    @ApiOperation("开始上片任务")
    @PostMapping("/selectPriority") //开始上片任务
    @PostMapping("/selectPriority") //调用上片任务
    @ResponseBody
    public void selectPriority() {
        upWorkstationService.selectPriority();
        UpWorkSequence work=upWorkstationService.selectPriority();
        log.info("显示可上的玻璃信息:{}", work);
    }
}
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkSequence.java
@@ -9,7 +9,7 @@
public class UpWorkSequence {
    private int sequence;
    private int workId;
    private int number;
}
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/mapper/UpWorkstationMapper.java
@@ -16,7 +16,8 @@
 * @since 2024-04-07
 */
public interface UpWorkstationMapper extends BaseMapper<UpWorkstation> {
    //获取工位信息
    UpWorkSequence selectPriority(@Param("id") int id);
    List<UpWorkSequence> selectPriority(@Param("id") int id);
    //获取下一片玻璃信息
}
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java
@@ -1,6 +1,7 @@
package com.mes.workstation.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mes.workstation.entity.UpWorkSequence;
import com.mes.workstation.entity.UpWorkstation;
/**
@@ -14,12 +15,10 @@
public interface UpWorkstationService extends IService<UpWorkstation> {
    //PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
    //删除人工搬走的玻璃信息
//    public void deleteGlass(int id);
    //判断是否可以吸片进行任务
    //判断优先吸片位置后发送出片任务
    public void selectPriority();
    public UpWorkSequence selectPriority();
    //查询正在进行的工程
@@ -29,5 +28,9 @@
     *
     * @param upwork
     */
    //修改工位表增加玻璃信息或者删除玻璃信息
    void updateGlassMessage(UpWorkstation upwork);
}
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java
@@ -33,29 +33,14 @@
    //判断优先吸片位置后发送出片任务
    public void selectPriority() {
        //todo:判断是否可以吸片进行任务
//        String loadstart="吸片信号";//plcmes.getPlcParameter("吸片信号").getValue();
//        if (!"1".equals(loadstart)) {
//            return;
//        }
        UpWorkSequence loadid1 = this.baseMapper.selectPriority(1).get(0);
        UpWorkSequence loadid2 = this.baseMapper.selectPriority(2).get(0);
        //判断一二号工位哪边的顺序更先
//        if(loadid1.getSequence()>loadid2.getSequence()) {
//            S7object.getinstance().plccontrol.WriteWord(DB_100_10, (short)2);
//        }else if(loadid1.getSequence()==loadid2.getSequence()){
//            //当两个工位上的玻璃数相同时,判断哪个工位上的玻璃数更少,优先清空一个架子
//            int glassnum1=loadid1.getNumber();//Integer.parseInt(plcmes.getPlcParameter("玻璃数").getValue());
//            int glassnum2=loadid2.getNumber();//Integer.parseInt(plcmes.getPlcParameter("玻璃数").getValue());
//            if(glassnum1>glassnum2){
//                S7object.getinstance().plccontrol.WriteWord(DB_100_10, (short)2);
//            }else{
//                S7object.getinstance().plccontrol.WriteWord(DB_100_10, (short)1);
//            }
//        }else{
//            S7object.getinstance().plccontrol.WriteWord(DB_100_10, (short)1);
//        }
    public UpWorkSequence selectPriority() {
        UpWorkSequence upwork= this.baseMapper.selectPriority(1);
        String start = "吸片信号";//plcmes.getPlcParameter("吸片信号").getValue();
        if(upwork!=null&&start.equals("1")){
            //发送出片任务
            //plcmes.getPlcParameter("出片信号").setValue("1");
        }
        return upwork;
    }
    /**
@@ -69,4 +54,5 @@
        int update = this.baseMapper.update(upwork, updateWrapper);
    }
}
hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/mapper/UpWorkstationMapper.xml
@@ -3,20 +3,19 @@
<mapper namespace="com.mes.workstation.mapper.UpWorkstationMapper">
    <resultMap id="sequenceMap" type="com.mes.workstation.entity.UpWorkSequence">
        <id property="sequence" column="layout_sequence"/>
        <result property="number" column="number"/>
        <id property="workId" column="workstation_id"/>
<!--        <result property="number" column="number"/>-->
    </resultMap>
    <select id="selectPriority" resultMap="sequenceMap">
        SELECT
            b.layout_sequence,a."number"
            b.workstation_id
        FROM
            up_workstation a
                LEFT JOIN up_patten_usage b ON a.pattern_width = b.width
                AND a.pattern_heigth = b.width
                AND a.pattern_thickness = b.thickness
        WHERE
            a.workstation_id = #{id}
            ( SELECT * FROM up_patten_usage a WHERE state = 1 ORDER BY a.layout_sequence  LIMIT 1 )as a
                LEFT JOIN up_workstation b ON a.width =b.pattern_width
                AND a.height = b.pattern_heigth
                AND a.thickness = b.pattern_thickness
                AND a.films_id = b.films_id
    </select>