ZengTao
2023-12-20 3eb2e3a7f3f40f48c8a44bf32e7b0baeee065921
添加终止任务功能
6个文件已修改
191 ■■■■■ 已修改文件
CanadaMes-ui/src/lang/locales/en-US.json 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/lang/locales/zh-CN.json 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/home/index.vue 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/North_Glass_Buffer1Service.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/lang/locales/en-US.json
@@ -283,7 +283,7 @@
  "DataBase Connection failed":"DataBase Connection failed",
  "Distribute parameters":"Distribute parameters",
  "The glass size is not within the range":"The glass size is not within the range",
  "Increase":"Increase",
  "Add":"Add",
  "Enable":"Enable",
  "Disable":"Disable",
  "Usage":"Usage",
@@ -308,7 +308,7 @@
  "Frame No":"Frame No",
  "Glass information corresponding to aluminum frame":"Glass information corresponding to aluminum frame",
  "In the cage":"In the cage",
  "Flip":"Flip",
  "Flipped":"Flipped",
  "In the queue":"In the queue",
  "Normal":"Normal",
  "Entering":"Entering",
@@ -333,6 +333,8 @@
  "Glass State":"Glass State",
  "Absent":"Absent",
  "Approximately resettable time":"Approximately resettable time",
  "EXTERIQR OUT AND BYPASS TO THE LEFT":"EXTERIQR OUT AND BYPASS TO THE LEFT",
  "EXTERIQR OUT AND BYPASS TO THE RIGHT":"EXTERIQR OUT AND BYPASS TO THE RIGHT",
    "ServoManualone": {
      "A01 所在格子": "A01 Current Grid",
      "数量": "Quantity",
CanadaMes-ui/src/lang/locales/zh-CN.json
@@ -273,7 +273,7 @@
  "DataBase Connection failed": "数据库连接失败",
  "Distribute parameters": "下发参数",
  "The glass size is not within the range": "玻璃尺寸不在范围内",
  "Increase": "添加",
  "Add": "添加",
  "Enable": "启用",
  "Disable": "禁用",
  "Usage": "使用率",
@@ -298,7 +298,7 @@
  "Frame No":"铝框id",
  "Glass information corresponding to aluminum frame":"铝框对应的玻璃信息",
  "In the cage":"在笼内",
  "Flip":"翻转",
  "Flipped":"翻转",
  "In the queue":"在队列",
  "Enter the Frame No":"请输入铝框id",
  "Manually Infeed Glass":"手动进片",
@@ -325,6 +325,8 @@
  "Glass State":"玻璃状态",
  "Absent":"不存在",
  "Approximately resettable time":"可复位大概时间",
  "EXTERIQR OUT AND BYPASS TO THE LEFT":"EXTERIQR OUT AND BYPASS TO THE LEFT",
  "EXTERIQR OUT AND BYPASS TO THE RIGHT":"EXTERIQR OUT AND BYPASS TO THE RIGHT",
  "langparameter": {
    "conveyor Velocity(Auto FAST)": "D01-D06 皮带输送自动快速",
    "conveyor Velocity(Auto SLOW)": "D01-D06 皮带输送自动慢速",
CanadaMes-ui/src/views/home/index.vue
@@ -211,6 +211,10 @@
    text-align: right;
}
.hide {
    display: none;
}
/* .el-table td,
.el-table th {
    padding: 0px 0;
@@ -230,8 +234,10 @@
                </div>
            </div>
            <div style="display:flex;justify-content: space-around;width: 9zz5%;margin: 0 auto;">
                <el-input style="width:15%;" :placeholder="$t('Enter the glass barcode')" v-model="glassid1"></el-input>
                <el-button type="primary" @click="SelectGlassByGlassIDs(2)" :disabled="ManuallyInfeedGlass">
                <el-input style="width:15%;" :placeholder="$t('Enter the glass barcode')" v-model="glassid1"
                    :class="ManuallyInfeedGlass == true ? 'hide' : ''"></el-input>
                <el-button type="primary" @click="SelectGlassByGlassIDs(2)" :disabled="ManuallyInfeedGlass"
                    :class="ManuallyInfeedGlass == true ? 'hide' : ''">
                    {{ $t('Manually Infeed Glass') }}</el-button>
                <!-- <el-input style="width:15%;" :placeholder="$t('Enter the Order No')" v-model="order"></el-input>
                <el-button type="warning" @click="showform1();">{{ $t('Exit the glass by order number') }}</el-button> -->
@@ -254,6 +260,7 @@
                            <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                                @click="endtask(1, scope.row.glassId, scope.row.cell)">{{ $t('Terminate Task')
                                }}</el-button>
                        </template>
                    </el-table-column>
                </el-table>
@@ -274,6 +281,9 @@
                        <template slot-scope='scope'>
                            <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                                @click="endtask(0, scope.row.glassId, scope.row.cell)">{{ $t('Terminate Task')
                                }}</el-button>
                            <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                                @click="endtask(2, scope.row.glassId, scope.row.cell)">{{ $t('Complete Task')
                                }}</el-button>
                        </template>
                    </el-table-column>
@@ -325,9 +335,11 @@
                <div class="blocks-img" :style="{ left: car2 + 'px', top: '175px' }"></div>
                <div class="blocks-img2"></div>
                <div class="blocks-img3"></div>
                <el-button class="orderbutton1" type="primary" @click="showform2()" :disabled="OrderInfo">{{ $t('OrderInfo')
                }}</el-button>
                <el-button class="orderbutton2" type="primary" @click="showform6()" :disabled="OutingQueue">
                <el-button class="orderbutton1" type="primary" @click="showform2()" :disabled="OrderInfo"
                    :class="OrderInfo == true ? 'hide' : ''">{{ $t('OrderInfo')
                    }}</el-button>
                <el-button class="orderbutton2" type="primary" @click="showform6()" :disabled="OutingQueue"
                    :class="OutingQueue == true ? 'hide' : ''">
                    {{ $t('Outing Queue') }}</el-button>
                <!-- <div style="display:flex;position: absolute;float:left;z-index: 999;top:112px;left:328px;">
@@ -464,7 +476,7 @@
                            {{ scope.row.disabled == 0 ? $t('Enable') : $t('Disable') }}</el-button>
                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                            :disabled="scope.row.glassId != null ? true : false"
                            @click="insertglass(scope.row.cage, scope.row.cell, scope.row.tier)">{{ $t('Increase')
                            @click="insertglass(scope.row.cage, scope.row.cell, scope.row.tier)">{{ $t('Add')
                            }}</el-button>
                    </template>
                </el-table-column>
@@ -636,12 +648,12 @@
            }}</el-button>
            <el-table :data="this.OutSlice" :height="700" :span-method="objectSpanMethod" border :cell-style="cellStyle"
                style="width: 100%;overflow: auto;font-size: 18px;">
                <el-table-column :min-width="100" prop="glassId" :label="$t('Barcode')"></el-table-column>
                <el-table-column prop="storageCage.orderId" :label="$t('Order No')"></el-table-column>
                <el-table-column prop="storageCage.listId" :label="$t('List No')"></el-table-column>
                <el-table-column prop="storageCage.boxId" :label="$t('Box No')"></el-table-column>
                <el-table-column prop="storageCage.glasswidthmm" :label="$t('Length')"></el-table-column>
                <el-table-column prop="storageCage.glassheightmm" :label="$t('Width')"></el-table-column>
                <el-table-column :min-width="175" prop="glassId" :label="$t('Barcode')"></el-table-column>
                <el-table-column :min-width="90" prop="storageCage.orderId" :label="$t('Order No')"></el-table-column>
                <el-table-column :min-width="70" prop="storageCage.listId" :label="$t('List No')"></el-table-column>
                <el-table-column :min-width="70" prop="storageCage.boxId" :label="$t('Box No')"></el-table-column>
                <el-table-column :min-width="100" prop="storageCage.glasswidthmm" :label="$t('Length')"></el-table-column>
                <el-table-column :min-width="100" prop="storageCage.glassheightmm" :label="$t('Width')"></el-table-column>
                <el-table-column :min-width="90" prop="state" :label="$t('Glass State')">
                    <template slot-scope='scope'>
                        {{ scope.row.state == 0 ? $t('Waiting') : scope.row.state == 1 ? $t('Outing') : scope.row.state == 2
@@ -652,15 +664,16 @@
                <el-table-column :min-width="300" prop="position" :label="$t('Position')" style="font-size: 20px;">
                    <template slot-scope='scope'>
                        <!-- {{ scope.row.position == 1 ? "<>▄▄▄" : "▋" }} -->
                        <div :style="'width:'+(scope.row.position==1?'300':'100') +'px;height:'+(scope.row.position==1?'100':'300') +'px;background-Color:gray;'">
                        <div
                            :style="'width:' + (scope.row.position == 1 ? '300' : '100') + 'px;height:' + (scope.row.position == 1 ? '100' : '200') + 'px;background-Color:gray;margin:0 auto;'">
                            <!-- <div :style="'width:100px;height:300px;background-Color:red;'"></div> -->
                        </div>
                        <!-- {{ scope.row.position == 1 ? "<div></div>" : "<div></div>" }} -->
                    </template>
                </el-table-column>
                <el-table-column prop="position" :label="$t('Flip')">
                <el-table-column prop="position" :label="$t('Flipped')" :min-width="200">
                    <template slot-scope='scope'>
                        {{ scope.row.flip == 1 ? $t('Yes') : $t('No') }}
                        {{ scope.row.flip == true ? $t('EXTERIQR OUT AND BYPASS TO THE LEFT') : $t('EXTERIQR OUT AND BYPASS TO THE RIGHT') }}
                    </template>
                </el-table-column>
                <el-table-column prop="barcode" :label="$t('Frame No')"></el-table-column>
@@ -701,7 +714,7 @@
            top="5vh">
            <el-input style="width:15%;" :placeholder="$t('Enter the Frame No')" v-model="framebarcode"></el-input>
            <el-button type="primary" @click="showform7()">{{ $t('Query') }}</el-button>
            <el-button type="primary" @click="addoutslice()">{{ $t('Increase') }}</el-button>
            <el-button type="primary" @click="addoutslice()">{{ $t('Add') }}</el-button>
            <el-table :data="this.AluminumFrame" :height="700" border style="width: 100%;overflow: auto;">
                <el-table-column prop="barcode" :label="$t('Barcode')"></el-table-column>
@@ -714,7 +727,7 @@
                <el-table-column prop="storageCage.cell" :label="$t('Slot No')"></el-table-column>
                <el-table-column prop="storageCage.tier" :label="$t('The Side')"></el-table-column>
                <el-table-column prop="FrameNo" :label="$t('Frame No')"></el-table-column>
                <el-table-column prop="Flip" :label="$t('Flip')"></el-table-column>
                <el-table-column prop="Flip" :label="$t('Flipped')"></el-table-column>
                <el-table-column prop="out_slice.state" :label="$t('In the queue')">
                    <template slot-scope='scope'>
                        {{ scope.row.out_slice != null ? $t('Yes') : $t('No') }}
@@ -834,11 +847,11 @@
            OutingQueue: true,
            OrderInfo: true,
            CageDetails: true,
            CountDowns: "EMERGENCY \r\n STOP",
            CountDowns: "0",
            D01RequestState: false,
            EmergencyStop: false,
            PromptSize: 250,
            reset:false
            reset: false
        };
    },
    created() {
@@ -890,14 +903,14 @@
                    }
                    //是否急停
                    this.EmergencyStop = obj.emergencystop[0];
                    console.log(this.EmergencyStop);
                    //复位倒计时
                    if ((obj.countdown[0] == true && this.CountDowns == 0) || this.EmergencyStop == true) {
                        this.CountDown();
                    }
                    //复位完成信号
                    this.reset=obj.reset[0];
                    console.log(this.reset);
                    this.reset = obj.reset[0];
                    //是否有进片请求
                    this.D01RequestState = obj.D01RequestState[0];
@@ -1020,7 +1033,7 @@
            SelectAlarmmgInfo().then(res => {
                this.alarm = res.data.alarmmg;
            });
            //加载确认密码
            SelectPassword().then(res => {
                this.password = res.data.password;
@@ -1637,9 +1650,9 @@
            if (columnIndex === 8) {
                style = "font-size:200px;text-align: center;height:200px;";
            }
            if (columnIndex === 9 && row.flip == 1) {
                style = "background-Color:yellow;";
            }
            // if (columnIndex === 9 && row.flip == 1) {
            //     style = "background-Color:yellow;";
            // }
            if (columnIndex === 6 && row.state == 3) {
                style = "background-Color:gray;";
            }
@@ -1661,7 +1674,7 @@
            if (rowIndex != 0) {
                barcode2 = arrOutSlice[rowIndex - 1].barcode;
            }
            if (columnIndex === 12) {
            if (columnIndex === 12||columnIndex === 8) {
                if (barcode != barcode2) {
                    // this.FrameNoFlag = barcode;
                    for (let i = rowIndex; i < this.OutSlice.length; i++) {
@@ -1669,7 +1682,6 @@
                            barcode = arrOutSlice[i].barcode;
                            rowspans += 1;
                        } else {
                            break;
                        }
                    }
@@ -1736,9 +1748,9 @@
            let timer = setInterval(
                () => {
                    if (this.EmergencyStop == true) {
                        this.dialogFormCountDown = false;
                        clearInterval(timer);
                        this.PromptSize = 250;
                        this.CountDowns = "EMERGENCY \n STOP";
                        this.CountDowns = "0";
                    } else {
                        if (count > 0) {
                            this.PromptSize = 500;
@@ -1746,9 +1758,9 @@
                            count--;
                        }
                        else {
                            this.PromptSize = 250;
                            this.CountDowns = "Waiting \n for \n reset";
                            if(this.reset==true){
                            this.PromptSize = 200;
                            this.CountDowns = "Waiting for reset";
                            if (this.reset == true) {
                                clearInterval(timer);
                                this.dialogFormCountDown = false;
                            }
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -74,25 +74,7 @@
            // 查询报警信息
            List<alarmmg> alarmmg = homeMapper.SelectAlarmmgInfo();
            jsonObject.append("alarmmg", alarmmg);
            // 读去Plc进片车与出片车位置W
            List<String> addressList = new ArrayList<String>();
            addressList.add("DB106.12");
            addressList.add("DB106.0");
            List<Short> paramlist = S7control.getinstance().ReadWord(addressList);
            if (paramlist != null) {
                jsonObject.append("params", paramlist);
            }
            // 获取进片车状态
            List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8",
                    1);// 获取进片车状态
            boolean exist1 = datas1ListState.contains((short) 0);
            jsonObject.append("zhuangtai", exist1);
            // 获取进片玻璃信息
            List<Short> inglassInfo = S7control.getinstance().ReadWord("DB106.24", 1);
            if (inglassInfo != null) {
                if (inglassInfo.size() > 0)
                    jsonObject.append("loadglassheight", inglassInfo.get(0) * 70);
            }
            // 伍 获取进是否有待确认的玻璃id
            String queid = spianMapper.Selectqueueid();
            int state = spianMapper.Selectqueuestate();
@@ -112,21 +94,43 @@
            jsonObject.append("listoutslice", listoutslice);
            // 获取当前出片队列状态
            jsonObject.append("isAllowQueue", Plchome.isAllowQueue);
            // 获取铝框idDB106.DBW64
            // String frameno=spianService.queGlassid("DB103.270",14).toString();
            // if(frameno!=Plchome.FrameNo&&frameno!=""){
            // Plchome.FrameNo=frameno;
            // }
            // try {
            // north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo);
            // } catch (SQLException e) {
            // // TODO Auto-generated catch block
            // e.printStackTrace();
            // }
            // 是否需要人工确认上片玻璃
            jsonObject.append("isConfirm", isConfirm);
            // 读去Plc进片车与出片车位置W
            List<String> addressList = new ArrayList<String>();
            addressList.add("DB106.12");
            addressList.add("DB106.0");
            List<Short> paramlist = S7control.getinstance().ReadWord(addressList);
            if (paramlist != null) {
                jsonObject.append("params", paramlist);
            }
            // 获取进片车状态
            List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8",
                    1);// 获取进片车状态
            boolean exist1 = datas1ListState.contains((short) 0);
            jsonObject.append("zhuangtai", exist1);
            // 获取进片玻璃信息
            List<Short> inglassInfo = S7control.getinstance().ReadWord("DB106.24", 1);
            if (inglassInfo != null) {
                if (inglassInfo.size() > 0)
                    jsonObject.append("loadglassheight", inglassInfo.get(0) * 70);
            }
            // 获取铝框idDB106.DBW64
            String frameno=spianService.queGlassid("DB103.270",14).toString();
            if(frameno!=Plchome.FrameNo&&frameno!=""){
            Plchome.FrameNo=frameno;
            }
            try {
            north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo);
            } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            }
            // 获取进片请求状态
            List<Short> D01Request = S7control.getinstance().ReadWord("DB106.24", 1);
            boolean D01RequestState = D01Request.contains((short) 1);
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
@@ -141,13 +141,15 @@
  public Result UpdateTask(Integer types, Integer shelfrack, String glassid) {
    Map<String, Object> map = new HashMap<>();
    homeMapper.UpdateTask(types, glassid);
    // StorageCage glass = homeMapper.SelectGlassInfo(glassid);
    if (types == 0) {
      homeMapper.UpdateCageTask1(glassid);
      // S7control.getinstance().WriteWord("DB105.16", (short) 0);
    } else {
      // spianMapper.UpdataOutCage1(glass.getGlassWidth(), glass.getCage(), glass.getCell());
    } else if(types==1) {
      homeMapper.DeleteByGlassID(glassid);
    }else{
      StorageCage glass = homeMapper.SelectGlassInfo(glassid);
      spianMapper.UpdataOutCage1(glass.getGlassWidth(), glass.getCage(), glass.getCell());
      homeMapper.DeleteByGlassID(glassid);
      //发送终止任务信号
      // S7control.getinstance().WriteWord("DB105.18", (short) 0);
    }
    map.put("message3", "200");
springboot-vue3/src/main/java/com/example/springboot/service/North_Glass_Buffer1Service.java
@@ -17,7 +17,7 @@
    @Autowired
    private JdbcConnections jdbcConnections;
    //获取玻璃是否在笼子,是否在出片队列
    // 获取玻璃是否在笼子,是否在出片队列
    public List<north_glass_buffer1> SelectAluminumFrameInfoById(String FrameBarcode) throws SQLException {
        List<north_glass_buffer1> listAluminumFrame = jdbcConnections
                .SelectGlassByGlassIdOrderIdFrameIdss(FrameBarcode);
@@ -28,24 +28,25 @@
        return listAluminumFrame;
    }
    //根据铝框id添加玻璃到出片队列
    public void AddOutSliceS(String FrameBarcode) throws SQLException{
        List<north_glass_buffer1> north_glass_buffer1s=SelectAluminumFrameInfoById(FrameBarcode);
    // 根据铝框id添加玻璃到出片队列
    public void AddOutSliceS(String FrameBarcode) throws SQLException {
        List<north_glass_buffer1> north_glass_buffer1s = SelectAluminumFrameInfoById(FrameBarcode);
        String flip = jdbcConnections.SelectFlipByFrameBarcode(FrameBarcode);
        String position =jdbcConnections.SelectPositionByFrameBarcode(FrameBarcode);
        int sequence=homeMapper.SelectMaxSquence();
        String position = jdbcConnections.SelectPositionByFrameBarcode(FrameBarcode);
        int sequence = homeMapper.SelectMaxSquence();
        for (north_glass_buffer1 north_glass_buffer1 : north_glass_buffer1s) {
            Short state=0;
            if(north_glass_buffer1.getOut_slice()==null){
                if(north_glass_buffer1.getstorageCage()==null){
                    state=3;
            Short state = 0;
            if (north_glass_buffer1.getOut_slice() == null) {
                if (north_glass_buffer1.getstorageCage() == null) {
                    state = 3;
                }
                homeMapper.AddOutSliceS(north_glass_buffer1.getbarcode(), flip, FrameBarcode, north_glass_buffer1.getglasslengthmm().toString(), north_glass_buffer1.getglassheightmm().toString(), sequence, position, state);
                sequence+=1;
                homeMapper.AddOutSliceS(north_glass_buffer1.getbarcode(), flip, FrameBarcode,
                        north_glass_buffer1.getglasslengthmm().toString(),
                        north_glass_buffer1.getglassheightmm().toString(), sequence, position, state);
                sequence += 1;
            }
        }
    }
}