ZengTao
2023-12-21 03ddbc02f5f0f35354489af3badacccd993457f0
修改进出片终止功能
9个文件已修改
210 ■■■■■ 已修改文件
CanadaMes-ui/src/lang/locales/en-US.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/lang/locales/zh-CN.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/home/index.vue 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/OutSliceServive.java 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/lang/locales/en-US.json
@@ -335,6 +335,7 @@
  "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",
  "Complete Task":"Complete Task",
    "ServoManualone": {
      "A01 所在格子": "A01 Current Grid",
      "数量": "Quantity",
CanadaMes-ui/src/lang/locales/zh-CN.json
@@ -1,5 +1,5 @@
{
  "ip": "localhost",
  "ip": "192.168.10.113",
  "systemTitle": "登录系统",
  "usernamePlaceholder": "请输入用户名",
  "passwordPlaceholder": "请输入密码",
@@ -327,6 +327,7 @@
  "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",
  "Complete Task":"完成任务",
  "langparameter": {
    "conveyor Velocity(Auto FAST)": "D01-D06 皮带输送自动快速",
    "conveyor Velocity(Auto SLOW)": "D01-D06 皮带输送自动慢速",
CanadaMes-ui/src/views/home/index.vue
@@ -214,9 +214,11 @@
.hide {
    display: none;
}
.el-table .cell {
    display: flex;
}
/* .el-table td,
.el-table th {
    padding: 0px 0;
@@ -262,7 +264,9 @@
                            <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>
                            <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                                @click="endtask(3, scope.row.glassId, scope.row.cell)">{{ $t('Complete Task')
                                }}</el-button>
                        </template>
                    </el-table-column>
                </el-table>
@@ -663,10 +667,10 @@
                    </template>
                </el-table-column>
                <el-table-column prop="sequence" :label="$t('Sequence')"></el-table-column>
                <el-table-column :min-width="90" prop="barcode" :label="$t('Complete')">Complete
                <el-table-column :min-width="90" prop="barcode" :label="$t('Complete')">
                    <template slot-scope='scope' style="height:100px;height:100px;">
                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                            :disabled="(!isAllowQueue || scope.row.state != 1)"
                            :disabled="!(!isAllowQueue && scope.row.state != 2&&scope.row.state != 4)"
                            @click="CompleteQueue(scope.row.id, scope.row.barcode, scope.row.glassId)">{{ $t('Complete')
                            }}</el-button>
                    </template>
@@ -683,13 +687,13 @@
                </el-table-column>
                <el-table-column prop="position" :label="$t('Flipped')" :min-width="200">
                    <template slot-scope='scope'>
                        {{ scope.row.flip == true ? $t('EXTERIQR OUT AND BYPASS TO THE LEFT') : $t('EXTERIQR OUT AND BYPASS
                                                TO THE RIGHT') }}
                        {{ 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>
                <el-table-column :width="280" :label="$t('Operate')">
                    <template slot-scope='scope'>
                        <el-button type="text" size="small" @click="getTopMove(scope.row, scope.$index)"
@@ -900,7 +904,7 @@
                    this.tasklist1 = obj.tasklist1[0];
                    this.tasklist2 = obj.tasklist2[0];
                    this.alarm = obj.alarmmg[0];
                    if (this.alarm.length > 0) {
                    if (this.alarm.length > 0&&this.alarm!=obj.alarmmg[0]) {
                        this.dialogFormVisible2 = true;
                    } else {
                        this.dialogFormVisible2 = false;
@@ -911,22 +915,22 @@
                    }
                    //复位倒计时
                    if(obj.countdown!=null){
                    if (obj.countdown != null) {
                        if ((obj.countdown[0] == true && this.CountDowns == 0) || this.EmergencyStop == true) {
                        this.CountDown();
                            this.CountDown();
                        }
                    }
                    }
                    //复位完成信号
                    if( obj.reset!=null){
                    if (obj.reset != null) {
                        this.reset = obj.reset[0];
                    }
                    //是否有进片请求
                    if(obj.D01RequestState!=null){
                    if (obj.D01RequestState != null) {
                        this.D01RequestState = obj.D01RequestState[0];
                    }
                    //是否允许出片
                    this.isAllowQueue = obj.isAllowQueue[0];
@@ -1667,10 +1671,9 @@
            // if (columnIndex === 9 && row.flip == 1) {
            //     style = "background-Color:yellow;";
            // }
            if (columnIndex === 6 && row.state == 3) {
                style = "background-Color:gray;";
            }
            style
            // if (columnIndex === 6 && row.state == 3) {
            //     style = "background-Color:gray;";
            // }
            return style;
        }
        ,
@@ -1688,7 +1691,7 @@
            if (rowIndex != 0) {
                barcode2 = arrOutSlice[rowIndex - 1].barcode;
            }
            if (columnIndex === 12 || columnIndex === 9|| columnIndex === 10|| columnIndex === 11) {
            if (columnIndex === 12 || columnIndex === 9 || columnIndex === 10 || columnIndex === 11) {
                if (barcode != barcode2) {
                    // this.FrameNoFlag = barcode;
                    for (let i = rowIndex; i < this.OutSlice.length; i++) {
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -31,7 +31,7 @@
    // 出片队列是否允许出片
    public static Boolean isAllowQueue = true;
    // 铝框id
    public static String FrameNo;
    public static String FrameNo="";
    // 是否需要手动确认玻璃
    public static Boolean isConfirm = false;
@@ -116,20 +116,19 @@
            //     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;
            // String frameno = spianService.queGlassid("DB103.270", 14).toString();
            // // String frameno="X12345611002GV";
            // if (!frameno.equals(Plchome.FrameNo)) {
            //     Plchome.FrameNo = frameno;
            //     try {
            //         north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo);
            //     } catch (SQLException e) {
            //         // TODO Auto-generated catch block
            //         e.printStackTrace();
            //     }
            // }
            // 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);
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
@@ -30,6 +30,7 @@
import com.example.springboot.component.S7control;
import com.example.springboot.entity.CarPosition;
import com.example.springboot.entity.StorageCage;
import com.example.springboot.entity.StorageTask;
import com.example.springboot.entity.User;
import com.example.springboot.entity.alarmmg;
import com.example.springboot.entity.north_glass_buffer1;
@@ -136,27 +137,47 @@
    return Result.success(map);
  }
  // 手动完成进/出片任务
  // 手动完成进/出片任务 终止进片/出片任务
  @GetMapping("/UpdateTask")
  public Result UpdateTask(Integer types, Integer shelfrack, String glassid) {
    Map<String, Object> map = new HashMap<>();
    homeMapper.UpdateTask(types, glassid);
    if (types == 0) {
      // homeMapper.UpdateCageTask1(glassid);
    if (types == 0) {// 完成进片
      spianService.overtask(glassid);
    } else if (types == 1) {
      // homeMapper.DeleteByGlassID(glassid);
    } else if (types == 1) {// 完成出片
      spianService.overtask(glassid);
    } else if (types == 2) {//终止进片任务
      spianService.overtask(glassid);
      StorageCage glassinfor = homeMapper.SelectGlassInfo(glassid);
      spianMapper.UpdataOutCage1(glassinfor.getGlassWidth(), glassinfor.getCage(), glassinfor.getCell());
      homeMapper.DeleteByGlassID(glassid);
    } else if (types == 2) {// 终止进片任务
      outSliceServive.StopTask(glassid, 0);
      // 发送终止进片任务信号
    }else{//终止出片任务
      spianService.overtask(glassid);
      homeMapper.UpdateOutSliceGlass(glassid);
    } else {// 终止出片任务
      outSliceServive.StopTask(glassid, 1);
    }
    map.put("message3", "200");
    return Result.success(map);
  }
  //终止进片/出片任务
  @GetMapping("/EndTask")
  public Result EndTask(int types) {
     if (types == 0) {// 终止进片任务
      List<StorageTask> cageList = homeMapper.SelectTaskByState(types);
      for (StorageTask storageTask : cageList) {
        outSliceServive.StopTask(storageTask.getGlassId(), types);
      }
      // 发送终止进片任务信号
    } else {// 终止出片任务
      List<StorageCage> storageCages =homeMapper.selectinout(types);
      for (StorageCage storageCage : storageCages) {
        List<StorageCage> storageCagess=homeMapper.SelectStoragesGlassById(storageCage.getGlassId());
        for (StorageCage storageCagez : storageCagess) {
          if (storageCagez.getState().equals("2")) {//调拨进片
            outSliceServive.StopTask(storageCagez.getGlassId(), 0);
          }else{//出片
            outSliceServive.StopTask(storageCagez.getGlassId(), types);
          }
        }
      }
    }
    Map<String, Object> map = new HashMap<>();
    map.put("message3", "200");
    return Result.success(map);
  }
@@ -182,9 +203,7 @@
  // 手动删除理片笼玻璃
  @GetMapping("/DeleteByGlassID")
  public Result DeleteByGlassID(String glassid) {
    StorageCage glassinfor = homeMapper.SelectGlassInfo(glassid);
    spianMapper.UpdataOutCage1(glassinfor.getGlassWidth(), glassinfor.getCage(), glassinfor.getCell());
    homeMapper.DeleteByGlassID(glassid);
    outSliceServive.DeleteByGlassID(glassid);
    Map<String, Object> map = new HashMap<>();
    map.put("message3", "200");
    return Result.success(map);
@@ -349,6 +368,7 @@
  @PostMapping("/DeleteProductionQueueGlass")
  public Result DeleteProductionQueueGlass(String FrameNo) {
    homeMapper.CompleteQueueByFrameNo(FrameNo);
    Map<String, Object> map = new HashMap<>();
    map.put("message", "200");
    return Result.success(map);
@@ -390,7 +410,6 @@
  @PostMapping("/CompleteQueue")
  public Result CompleteQueue(String id, String frameid, String glassid) {
    return outSliceServive.CompleteQueue(id, frameid, glassid);
  }
}
springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
@@ -4,6 +4,7 @@
import com.example.springboot.entity.CarPosition;
import com.example.springboot.entity.StorageCage;
import com.example.springboot.entity.StorageTask;
import com.example.springboot.entity.alarmmg;
import com.example.springboot.entity.north_glass_buffer1;
import com.example.springboot.entity.Out_slice;
@@ -139,6 +140,10 @@
  @Select("select * from storage_cage where glass_id=#{glassid}")
  StorageCage SelectStorageGlassById(String glassid);
  //根据玻璃id查询笼内玻璃信息
  @Select("select * from storage_cage where glass_id=#{glassid}")
  List<StorageCage> SelectStoragesGlassById(String glassid);
  // //根据玻璃id删除出片队列玻璃
  // @Update("update out_slice set state=4 where barcode=#{FrameNo} and (state=0 or state=1 or state=2)")
@@ -172,7 +177,7 @@
  void CompleteQueue(String id);
  //查询铝框id对应玻璃完成数量
  @Select("select count(*) from out_slice where barcode=#{frameid} and state<2")
  @Select("select count(*) from out_slice where barcode=#{frameid} and (state=0 or state=1 or state=3)")
  Short SelectCountByFrameNo(String frameid);
  //删除已完成的任务
@@ -182,7 +187,10 @@
  @Select("Select width from storage_cage where cage=#{cage} and cell=#{cell} limit 1")
  Double SelectCageWidth(short cage, short cell);
  @Select("update out_slice set state=3 where glassId=#{glassid}")
  @Select("update out_slice set state=3 where glassId=#{glassid} and state<3")
  void UpdateOutSliceGlass(String glassid);
  @Select("select * from storage_task where task_state=0 and task_type=#{task_type}")
  List<StorageTask> SelectTaskByState(int task_type);
}
springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java
@@ -42,7 +42,7 @@
    StorageCage selectCage1(int cage1, int cell, double width);
    // 判断笼子内玻璃数
    @Select("select COUNT(tier)as tier from storage_cage where  cage=#{cage} and cell=#{cell} and state=1;")
    @Select("select COUNT(tier)as tier from storage_cage where  cage=#{cage} and cell=#{cell} and state!=0 and state!=3;")
    int selectsum(int cage, int cell);
    // 完成进片中的玻璃状态
@@ -53,7 +53,7 @@
    void UpdateCageadd(String glassid, int state);
    // 获取玻璃信息
    @Select("select *,ordernumber ,glasslength_mm as glasslengthmm,glassheight_mm as glassheightmm,barcode,listnumber,boxnumber,glasslength,glassheight from north_glass_buffer1 where barcode=#{glassid}")
    @Select("select *,ordernumber ,glasslength_mm as glasslengthmm,glassheight_mm as glassheightmm,barcode,listnumber,boxnumber,glasslength,glassheight,FrameBarcode from north_glass_buffer1 where barcode=#{glassid}")
    north_glass_buffer1 selectGlass(String glassid);
    // 出片任务查询
@@ -73,11 +73,11 @@
    int selectGlassState(int cage, int cell);
    // 判断该调拨的笼子
    @Select("select glass_id,cage,cell,max(state)as shu,ROUND(id/2)as prcid,id from storage_cage where width>=#{width} and cage>#{cage1} and cage<#{cage2} GROUP BY cage,cell HAVING shu=0 order by abs(#{cage} - cage),cell desc  limit 1;")
    StorageCage selectGlassCage(int cage, double width, int cage1, int cage2);
    @Select("select glass_id,cage,cell,max(state)as shu,ROUND(id/2)as prcid,id,abs(#{cell}-cell)as xuhao from storage_cage where width>=#{width} and cage>#{cage1} and cage<#{cage2} GROUP BY cage,cell HAVING shu=0 order by abs(#{cage} - cage),xuhao desc  limit 1;")
    StorageCage selectGlassCage(int cage, double width, int cage1, int cage2,int cell);
    // 删除笼子信息(出片)
    @Update("update storage_cage as a set state=#{state},glass_id=null,order_id=null,glasswidth=null,a.glassheight=null,a.glasswidthmm=null,a.glassheightmm=null,a.listid=null,a.boxid=null where glass_id=#{glassid} and state=3;")
    @Update("update storage_cage as a set state=#{state},glass_id=null,FrameBarcode=null,order_id=null,glasswidth=null,a.glassheight=null,a.glasswidthmm=null,a.glassheightmm=null,a.listid=null,a.boxid=null where glass_id=#{glassid} and state=3;")
    void UpdataGlassCage(String glassid, int state);
    // 改变玻璃状态为出片中
@@ -88,7 +88,7 @@
    @Update("update storage_cage set state=#{state},glass_id=#{glassid},order_id=#{orderid},glasswidth=#{width} where id=#{id};")
    void UpdataAddCage(String orderid, String glassid, double width, int cage, int cell, int id, int state);
    @Update("update storage_cage set state=#{state},glass_id=#{glassid},order_id=#{glass.ordernumber},glasswidth=#{glass.glasslengthmm},glassheight=#{glass.glassheightmm},glasswidthmm=#{glass.glasslength},glassheightmm=#{glass.glassheight},listid=#{glass.listnumber},boxid=#{glass.boxnumber} where id=#{id};")
    @Update("update storage_cage set state=#{state},glass_id=#{glassid},order_id=#{glass.ordernumber},glasswidth=#{glass.glasslengthmm},glassheight=#{glass.glassheightmm},glasswidthmm=#{glass.glasslength},glassheightmm=#{glass.glassheight},listid=#{glass.listnumber},boxid=#{glass.boxnumber},FrameBarcode=#{glass.FrameBarcode} where id=#{id};")
    void UpdataAddCage2(String orderid, String glassid, north_glass_buffer1 glass, int cage, int cell, int id,
            int state);
@@ -213,7 +213,7 @@
    int SelectOutSliceshu();
    // 更新出片队列的任务状态
    @Update("update out_slice set state=#{state} where glassid=#{glassid}")
    @Update("update out_slice set state=#{state} where glassid=#{glassid} and state=1")
    void OverOutSlice(String glassid, int state);
    // 获取玻璃的铝框id
@@ -221,7 +221,7 @@
    String SelectBarcode(String glassId);
    // 获取出片队列的铝框是否全部完成
    @Select("select MIN(state) from out_slice where barcode=#{barcode};")
    @Select("select count(*) from out_slice where barcode=#{barcode} and (state=1 or state=0 or state=3);")
    int SelectOverState(String barcode);
    // 删除出片队列该铝框的id
@@ -234,4 +234,7 @@
    //新增日志表格
    @Insert("INSERT INTO `canadames`.`log`( `text`,time) VALUES (#{logtxt},now());")
    void insertlog(String logtxt);
    //获取该半区是否有执行的任务
    @Select(" select count(*) from storage_cage where state=#{state} and cage>#{cage1} and cage<#{cage2}")
    int SelectCageTask(int state,int cage1,int cage2);
}
springboot-vue3/src/main/java/com/example/springboot/service/OutSliceServive.java
@@ -23,6 +23,8 @@
  private HomeMapper homeMapper;
  @Autowired
  private SpianMapper spianMapper;
  @Autowired
  SpianService spianService;
  @Autowired
  private JdbcConnections jdbcConnections;
@@ -32,12 +34,13 @@
    // 添加到数据库
    // for (String[] item : AluminumFrames) {
    //   if (item[1] == "true") {
    //     Short state=0;
    //     String position = jdbcConnections.SelectPositionByFrameBarcode(item[3]);
    //     homeMapper.AddOutSliceS(item[0], item[2], item[3], item[4], item[5], sequence, position,state );
    //     sequence += 1;
    //   }
    // if (item[1] == "true") {
    // Short state=0;
    // String position = jdbcConnections.SelectPositionByFrameBarcode(item[3]);
    // homeMapper.AddOutSliceS(item[0], item[2], item[3], item[4], item[5],
    // sequence, position,state );
    // sequence += 1;
    // }
    // }
  }
@@ -45,12 +48,12 @@
  public List<Out_slice> SelectProductionqueue() {
    List<Out_slice> listoutslice = homeMapper.SelectProductionqueue();
    // for (Out_slice out_slice : listoutslice) {
    //   out_slice.setstorageCage(homeMapper.SelectStorageGlassById(out_slice.getGlassId()));
    // out_slice.setstorageCage(homeMapper.SelectStorageGlassById(out_slice.getGlassId()));
    // }
    return listoutslice;
  }
  //完成出片任务
  // 完成出片任务
  public Result CompleteQueue(String id, String frameid, String glassid) {
    homeMapper.CompleteQueue(id);
    Short num = homeMapper.SelectCountByFrameNo(frameid);
@@ -58,14 +61,32 @@
      homeMapper.CompleteQueueByFrameNo(frameid);
    }
    StorageCage storageCage = homeMapper.SelectGlassInfo(glassid);
    if(storageCage!=null){
    if (storageCage != null&&storageCage.getState().equals("3")) {
      spianMapper.UpdataOutCage1(storageCage.getGlassWidth(), storageCage.getCage(), storageCage.getCell());
      homeMapper.DeleteByGlassID(glassid);
    }
    homeMapper.DeleteByGlassID(glassid);
    S7control.getinstance().WriteWord("DB105.12", (short) 0);
    Map<String, Object> map = new HashMap<>();
    map.put("message", "200");
    return Result.success(map);
  }
  //终止进片/出片
  public void StopTask(String glassid, int i) {
    if (i == 0) {// 进片终止
      spianService.overtask(glassid);
      DeleteByGlassID(glassid);
    } else {// 出片终止
      spianMapper.UpdatetaskOut(glassid);//完成出片任务
      spianMapper.UpdataGlassCage(glassid, 0);// 清除出片格子玻璃信息
      spianMapper.UpdateCageOver(glassid, 0);// 更改笼子表出片状态
      homeMapper.UpdateOutSliceGlass(glassid);//修改出片队列此玻璃状态为缺失
    }
  }
  //删除笼内玻璃还原宽度
  public void DeleteByGlassID(String glassid) {
    StorageCage glassinfor = homeMapper.SelectGlassInfo(glassid);
    spianMapper.UpdataOutCage1(glassinfor.getGlassWidth(), glassinfor.getCage(), glassinfor.getCell());
    homeMapper.DeleteByGlassID(glassid);
  }
}
springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java
@@ -55,7 +55,7 @@
            cage1 = storageCage2.getCage();
            // 判断该笼子号相邻最大的空格数
            int cages = spianMapper.selectCage(cage1);
            if(cages==0){
            if (cages == 0) {
                return (400);
            }
            StorageCage cages1;
@@ -239,7 +239,7 @@
                    // spianMapper.Inserttask(1, 0, cageout.getId(), 1000, glassid);// 新增出片任务
                    spianMapper.UpdateDBCage(ids, cage, cell, 2);// 将原格子数据更新到新格子里
                    spianMapper.UpdataAddCage1(glasswidth, cages, cells);// 减少新格子宽度
                    spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 增加原格子宽度
                    spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 增加原格子宽度
                    // 传输mes数据,坐标,数据
                    System.out.println("出片任务|" + datas);
                    S7control.getinstance().WriteWord(adddresslist, datas);// 派发出片车任务
@@ -300,20 +300,19 @@
    // 根据玻璃id完成在进行中的任务
    public void overtask(String glassid) {
        spianMapper.UpdatetaskOut(glassid);// 完成上一次 出片或者进片任务
        spianMapper.OverOutSlice(glassid, 2);// 完成出片队列任务
        spianMapper.UpdataGlassCage(glassid, 0);// 清除出片格子玻璃信息
        spianMapper.UpdateCageOver(glassid, 0);// 更改笼子表出片状态
        spianMapper.UpdateCageadd(glassid,1);// 更改笼子表进片状态
        spianMapper.UpdateCageadd(glassid, 1);// 更改笼子表进片状态
        String barcode = spianMapper.SelectBarcode(glassid);// 获取该玻璃的铝框id
        spianMapper.UpdateAddQueue(glassid);// 把进片的玻璃更新到出片队列中
        if (barcode != null) {
            int barcodeState = spianMapper.SelectOverState(barcode);// 获取该铝框的状态
            if (barcodeState == 2) {// 当该铝框所有的玻璃都是完成状态时删除在出片队列的数据
            if (barcodeState == 0) {// 当该铝框所有的玻璃都是完成状态时删除在出片队列的数据
                spianMapper.DeleteQueue(barcode);
            }
        }
    }
}