wu
2023-09-11 a120dc6724d90d80cf9adc7b02d11eaedc5ca021
Merge branch 'master' of ssh://10.153.19.150:29418/CanadaMes

# Conflicts:
# springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
# springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java
7个文件已修改
261 ■■■■■ 已修改文件
CanadaMes-ui/src/api/home.js 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/home/index.vue 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/api/home.js
@@ -58,3 +58,27 @@
        data :""
    })
}
export function SelectCageInfo(cage) {
    return request({
        url: '/home/SelectCageInfo?cage='+cage,
        method: 'get',
        data :""
    })
}
export function DeleteByGlassID(glassid) {
    return request({
        url: '/home/DeleteByGlassID?glassid='+glassid,
        method: 'get',
        data :""
    })
}
export function OutByGlassID(glassid) {
    return request({
        url: '/home/OutByGlassID?glassid='+glassid,
        method: 'get',
        data :""
    })
}
CanadaMes-ui/src/views/home/index.vue
@@ -150,7 +150,6 @@
                    </label>
                </div>
            </div>
            <div style="display:flex;justify-content: space-around;width: 95%;margin: 0 auto;">
                <el-input style="width:15%;" placeholder="Enter the glass lD" v-model="glassid"></el-input>
                <el-button type="primary" @click="showform()">Manually feed the glass</el-button>
@@ -197,23 +196,23 @@
        <el-footer>
            <div class="blocks" style="position: relative;">
                <div style="display:flex;position: absolute;float:left;z-index: 999;top:112px;left:328px;">
                    <div :class="getStatusClass(item.state)" v-for="item in cagelist1" :key="item['date']"></div>
                    <div :class="getStatusClass(item.state)" v-for="item in cagelist1" :key="item['date']"
                        @click="showcageinfo(item['cage'])"></div>
                </div>
                <div style="display:flex;position: absolute;float:left;z-index: 999;top:112px;left:885px;">
                    <div :class="getStatusClass(item.state)" v-for="item in cagelist2" :key="item['date']"></div>
                    <div :class="getStatusClass(item.state)" v-for="item in cagelist2" :key="item['date']"
                        @click="showcageinfo(item['cage'])"></div>
                </div>
                <div style="display:flex;position: absolute;float:left;z-index: 999;top:154px;left:328px;">
                    <div :class="getStatusClass(item.state)" v-for="item in cagelist3" :key="item['date']"></div>
                    <div :class="getStatusClass(item.state)" v-for="item in cagelist3" :key="item['date']"
                        @click="showcageinfo(item['cage'])"></div>
                </div>
                <div style="display:flex;position: absolute;float:left;z-index: 999;top:154px;left:885px;">
                    <div :class="getStatusClass(item.state)" v-for="item in cagelist4" :key="item['date']"></div>
                    <div :class="getStatusClass(item.state)" v-for="item in cagelist4" :key="item['date']"
                        @click="showcageinfo(item['cage'])"></div>
                </div>
                <div class="blocks-img" :style="{ left: car1 + 'px', top: '16px' }">
                </div>
                <div class="blocks-img" :style="{ left: car2 + 'px', top: '194px' }">
                </div>
                <div class="blocks-img" :style="{ left: car1 + 'px', top: '16px' }"></div>
                <div class="blocks-img" :style="{ left: car2 + 'px', top: '194px' }"></div>
            </div>
        </el-footer>
        <el-dialog :visible.sync="dialogFormVisible" title="Please confirm the information">
@@ -263,12 +262,31 @@
                <el-table-column prop="endTime" label="endTime"></el-table-column>
            </el-table>
        </el-dialog>
        <el-dialog :visible.sync="dialogFormVisible3" title="Ordering Information">
            <el-table :data="this.cageinfo" border style="width: 100%;height: 700px;overflow: auto;">
                <el-table-column :width="150" prop="cage" label="the grille number"></el-table-column>
                <el-table-column prop="cell" label="cell"></el-table-column>
                <el-table-column prop="tier" label="tier"></el-table-column>
                <el-table-column prop="glassId" label="glassid"></el-table-column>
                <el-table-column :width="130" prop="orderId" label="order number"></el-table-column>
                <el-table-column :width="150" prop="lengthWidth" label="length and width"></el-table-column>
                <el-table-column prop="coating" label="coating"></el-table-column>
                <el-table-column :width="150" label="operate">
                    <template slot-scope='scope'>
                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                            @click="deleteglass(scope.row.glassId, scope.row.state)">delete</el-button>
                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                            @click="outglass(scope.row.glassId,scope.row.state)">out</el-button>
                    </template>
                </el-table-column>
            </el-table>
        </el-dialog>
    </el-container>
</template>
<script>
import { home, home2, loadtask, InsertOrder, Addglassid, UpdateTask, SelectAlarmmgInfo } from "../../api/home";
import { home, home2, loadtask, InsertOrder, Addglassid, UpdateTask, SelectAlarmmgInfo, SelectCageInfo, DeleteByGlassID, OutByGlassID } from "../../api/home";
import LanguageMixin from '../../lang/LanguageMixin'
let socket;
@@ -280,6 +298,7 @@
            dialogFormVisible: false,
            dialogFormVisible1: false,
            dialogFormVisible2: false,
            dialogFormVisible3: false,
            form: {
                orderno: "NG2210210",
                length: 800,
@@ -306,7 +325,9 @@
            car1: 150,
            car2: 242,
            incell: "",
            outcell: ""
            outcell: "",
            cageinfo: [],
            cage: 0
        };
    },
    created() {
@@ -337,9 +358,11 @@
                    //console.log("收到数据====" + msg.data);
                    let obj = JSON.parse(msg.data);
                    if (obj.params != null) {
                        this.car1 = 150 + 24.6 * obj.params[0][0];
                        this.car2 = 242 + 24.6 * obj.params[0][1];
                    }
                    this.car1 = 150 + 24.6 * obj.params[0][0];
                    this.car2 = 242 + 24.6 * obj.params[0][1];
                    this.tableData = obj.tableData[0];
                    this.cagelist1 = obj.cagelist1[0];
                    this.cagelist2 = obj.cagelist2[0];
@@ -354,16 +377,11 @@
                        this.outcell = this.tasklist2[0]['cell'];
                    }
                    this.alarm = obj.alarmmg[0];
                    // for (let a = 0; a <= this.record.params.length - 1; a++) {
                    //     // this.record.xyData[a] = [this.record.canshu[a], this.record.params[0][a]];
                    //     // this.record.xyData[a] = { name: this.record.canshu[a], value: this.record.params[0][a] };
                    //     // this.record.xyData[a].value = this.record.params[0][a];
                    //     this.car1=this.record.params[0][a];
                    //     console.log(this.record.params[0][a]);
                    SelectCageInfo(this.cage).then(res => {
                        this.cageinfo = res.data.cageinfo;
                    });
                    // }
                    this.$forceUpdate();
                }.bind(this);
@@ -496,17 +514,35 @@
                });
            }
        },
        formatDate(timestamp) {
            const date = new Date(timestamp);
            const year = date.getFullYear();
            const month = date.getMonth() + 1;
            const day = date.getDate();
            const hours = date.getHours();
            const minutes = date.getMinutes();
            const seconds = date.getSeconds();
            return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
        showcageinfo(cage) {
            this.cage = cage;
            SelectCageInfo(cage).then(res => {
                this.cageinfo = res.data.cageinfo;
                this.dialogFormVisible3 = true;
            });
        },
        deleteglass(glassid, state) {
            if (state == 1) {
                DeleteByGlassID(glassid).then(res=>{
                    if (res.data.message3 == 200) {
                        this.$message.success("Operation successful");
                    }
                });
            } else {
                this.$message.success("No out allowed");
            }
        },
        outglass(glassid,state){
            if (state == 1) {
                OutByGlassID(glassid).then(res=>{
                    if (res.data.message3 == 200) {
                        this.$message.success("Operation successful");
                    }
                });
            } else {
                this.$message.success("No out allowed");
            }
        }
    }
springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
@@ -1,11 +1,8 @@
package com.example.springboot.component;
import java.util.ArrayList;
import java.util.List;
import com.example.springboot.controller.SpianController;
import com.example.springboot.service.SpianService;
import com.example.springboot.mapper.AlarmMapper;
import com.example.springboot.mapper.HomeMapper;
public class PlcHold extends Thread {
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -18,7 +18,7 @@
    public void run() {
        while (this != null) {
            try {
                Thread.sleep(10000);
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
@@ -27,84 +27,108 @@
    @Autowired
    SpianService spianService;
    @GetMapping("/load")
    public Result selectAll(){
        List<StorageCage> storageCagelist=homeMapper.selectAll();
    @GetMapping("/load")
    public Result selectAll() {
        List<StorageCage> storageCagelist = homeMapper.selectAll();
        Map<String, Object> map = new HashMap<>();
        map.put("list",storageCagelist);
        map.put("list", storageCagelist);
        return Result.success(map);
    }
    @GetMapping("/loads")
    public Result selectRack(){
        List<StorageCage> storageCagelist1=homeMapper.selectRack1();
        List<StorageCage> storageCagelist2=homeMapper.selectRack2();
        List<StorageCage> storageCagelist3=homeMapper.selectRack3();
        List<StorageCage> storageCagelist4=homeMapper.selectRack4();
    @GetMapping("/loads")
    public Result selectRack() {
        List<StorageCage> storageCagelist1 = homeMapper.selectRack1();
        List<StorageCage> storageCagelist2 = homeMapper.selectRack2();
        List<StorageCage> storageCagelist3 = homeMapper.selectRack3();
        List<StorageCage> storageCagelist4 = homeMapper.selectRack4();
        Map<String, Object> map = new HashMap<>();
        map.put("list1",storageCagelist1);
        map.put("list2",storageCagelist2);
        map.put("list3",storageCagelist3);
        map.put("list4",storageCagelist4);
        map.put("list1", storageCagelist1);
        map.put("list2", storageCagelist2);
        map.put("list3", storageCagelist3);
        map.put("list4", storageCagelist4);
        return Result.success(map);
    }
    @GetMapping("/loadinout")
    public Result selectinout(Integer types){
        List<StorageCage> storageCageinout=homeMapper.selectinout(types);
    @GetMapping("/loadinout")
    public Result selectinout(Integer types) {
        List<StorageCage> storageCageinout = homeMapper.selectinout(types);
        Map<String, Object> map = new HashMap<>();
        map.put("list",storageCageinout);
        map.put("list", storageCageinout);
        return Result.success(map);
    }
    @GetMapping("/InsertOrder")
    public Result InsertOrder(String orderid){
        short result=homeMapper.SelectOrder(orderid);
    public Result InsertOrder(String orderid) {
        short result = homeMapper.SelectOrder(orderid);
        Map<String, Object> map = new HashMap<>();
        if(result>0){
        if (result > 0) {
            homeMapper.updateOrder();
            homeMapper.InsertOrder(orderid);
            map.put("message","200");
        }else{
            map.put("message","500");
            map.put("message", "200");
        } else {
            map.put("message", "500");
        }
        return Result.success(map);
    }
    @GetMapping("/Addglassid")
    public Result Addglassid(short glassid){
    public Result Addglassid(short glassid) {
        Map<String, Object> map = new HashMap<>();
        short taskno=homeMapper.SelectOutTask();
        if(taskno>0){
            map.put("message2","500");
        }else{
            map.put("message2","200");
            //调用伍上片函数
        short taskno = homeMapper.SelectOutTask();
        if (taskno > 0) {
            map.put("message2", "500");
        } else {
            map.put("message2", "200");
            // 调用伍上片函数
            spianService.selectAll(glassid);
        }
        return Result.success(map);
    }
    @GetMapping("/UpdateTask")
    public Result UpdateTask(Integer types,Integer shelfrack){
    public Result UpdateTask(Integer types, Integer shelfrack) {
        Map<String, Object> map = new HashMap<>();
        homeMapper.UpdateTask(types,shelfrack);
        if(types==0){
        homeMapper.UpdateTask(types, shelfrack);
        if (types == 0) {
            homeMapper.UpdateCageTask1(shelfrack);
        }else{
        } else {
            homeMapper.UpdateCageTask2(shelfrack);
        }
        map.put("message3","200");
        map.put("message3", "200");
        return Result.success(map);
    }
    @GetMapping("/SelectAlarmmgInfo")
    public Result SelectAlarmmgInfo(){
        List<alarmmg> alarmmg=homeMapper.SelectAlarmmgInfo();
    @GetMapping("/SelectAlarmmgInfo")
    public Result SelectAlarmmgInfo() {
        List<alarmmg> alarmmg = homeMapper.SelectAlarmmgInfo();
        Map<String, Object> map = new HashMap<>();
        map.put("alarmmg",alarmmg);
        map.put("alarmmg", alarmmg);
        return Result.success(map);
    }
    @GetMapping("/SelectCageInfo")
    public Result SelectCageInfo(short cage) {
        List<StorageCage> cageinfo = homeMapper.SelectCageInfo(cage);
        Map<String, Object> map = new HashMap<>();
        map.put("cageinfo", cageinfo);
        return Result.success(map);
    }
    @GetMapping("/DeleteByGlassID")
    public Result DeleteByGlassID(short glassid) {
        homeMapper.DeleteByGlassID(glassid);
        Map<String, Object> map = new HashMap<>();
        map.put("message3", "200");
        return Result.success(map);
    }
    @GetMapping("/OutByGlassID")
    public Result OutByGlassID(String glassid) {
        spianService.selectout2(glassid);
        Map<String, Object> map = new HashMap<>();
        map.put("message3", "200");
        return Result.success(map);
    }
}
springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
@@ -14,19 +14,19 @@
  List<StorageCage> selectAll();
  // 查询1-5笼内层格子状态
  @Select("SELECT state from storage_cage where cage<=5 and tier=1")
  @Select("SELECT cage,state from storage_cage where cage<=5 and tier=1")
  List<StorageCage> selectRack1();
  // 查询6-10笼内层格子状态
  @Select("SELECT state from storage_cage where cage>5 and tier=1")
  @Select("SELECT cage,state from storage_cage where cage>5 and tier=1")
  List<StorageCage> selectRack2();
  // 查询1-5笼外层格子状态
  @Select("SELECT state from storage_cage where cage<=5 and tier=2")
  @Select("SELECT cage,state from storage_cage where cage<=5 and tier=2")
  List<StorageCage> selectRack3();
  // 查询6-10笼外层格子状态
  @Select("SELECT state from storage_cage where cage>5 and tier=2")
  @Select("SELECT cage,state from storage_cage where cage>5 and tier=2")
  List<StorageCage> selectRack4();
  // 根据任务类型查询当前正在出片,进片的玻璃信息
@@ -64,4 +64,12 @@
  //获取报警信息
  @Select("select id,content,timeon as timeons,endTime from alarmmg where endTime is null")
  List<alarmmg> SelectAlarmmgInfo();
  //获取理片笼内玻璃信息
  @Select("select *,concat(glasswidth,' x ',glassheight) as lengthwidth from storage_cage where cage=#{cage} ")
  List<StorageCage> SelectCageInfo(short cage);
  @Update("update storage_cage set state=0,glass_id=null,order_id=null,glasswidth=null,glassheight=null,coating=null where glass_id=#{glassid}")
  void DeleteByGlassID(short glassid);
}
springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java
@@ -42,7 +42,7 @@
    @Select("select cage,cell,tier,glasswidth,ROUND(id/2)as prcId,id from storage_cage as a where a.order_id=#{orderId} and state=1 order by cage desc,tier desc,cell desc LIMIT 1")
     StorageCage selectOut(String  orderId);
    //按玻璃ID出片任务查询
    @Select("select cage,cell,tier,glasswidth,ROUND(id/2)as prcid,id from storage_cage as a where a.order_id=#{orderId} and state=1 order by cage desc,tier desc,cell desc LIMIT 1")
    @Select("select cage,cell,tier,glasswidth,ROUND(id/2)as prcId,id from storage_cage as a where a.order_id=#{orderId} and state=1 order by cage desc,tier desc,cell desc LIMIT 1")
     StorageCage selectOut2(String  glassid);
    //判断出片为1时,是否可直接出片