CanadaMes-ui/src/api/home.js
@@ -238,3 +238,10 @@ }) } export function FrameStateUpdate(frameno,framestate) { return request({ url: '/home/FrameStateUpdate?frameno=' + frameno+'&framestate='+framestate, method: 'post', data:"" }) } CanadaMes-ui/src/lang/locales/en-US.json
@@ -341,6 +341,9 @@ "EXTERIQR OUT AND BYPASS TO THE RIGHT":"EXTERIQR OUT AND BYPASS TO THE RIGHT", "Complete Task":"Complete Task", "Outed":"Outed", "Queue State":"Queue State", "Sorting State":"Sorting State", "Confirm State":"Confirm State", "ServoManualone": { "A01 所在格子": "A01 Current Grid", "数量": "Quantity", CanadaMes-ui/src/lang/locales/zh-CN.json
@@ -330,6 +330,9 @@ "EXTERIQR OUT AND BYPASS TO THE RIGHT":"EXTERIQR OUT AND BYPASS TO THE RIGHT", "Complete Task":"完成任务", "Outed":"已出笼", "Queue State":"队列状态", "Sorting State":"排序状态", "Confirm State":"确认状态", "langparameter": { "conveyor Velocity(Auto FAST)": "D01-D06 皮带输送自动快速", "conveyor Velocity(Auto SLOW)": "D01-D06 皮带输送自动慢速", CanadaMes-ui/src/layout/index.vue
@@ -103,19 +103,19 @@ </el-table> </el-dialog> <el-dialog :visible.sync="dialogFormCountDown" :title="$t('Approximately resettable time')" top="5vh"> <div :style="'font-size: ' + PromptSize + 'px;text-align: center;'"> <!-- {{ this.CountDowns }} --> {{ this.CountDowns }} </div> </el-dialog> <el-dialog :visible.sync="dialogFormVisible3"> <div :style="'font-size: ' + PromptSize + 'px;text-align: center;'"> <!-- {{ this.CountDowns }} --> {{ this.CountDowns }} </div> </el-dialog> <!-- <el-dialog :visible.sync="dialogFormVisible3"> <el-button :class="{ 'blue-button': receivedData === 1 }" @click="toggleButtonValue(1)">{{ $t('A01Abort/ResumeTasks') }}</el-button> <el-button :class="{ 'blue-button': receivedData2 === 1 }" @click="toggleButtonValue(2)">{{ $t('A02Abort/ResumeTasks') }}</el-button> </el-dialog> </el-dialog> --> </el-container> </template> @@ -161,7 +161,7 @@ CountDowns: "0", EmergencyStop: false, PromptSize: 250, dialogFormCountDown:false dialogFormCountDown: false } }, @@ -274,7 +274,6 @@ } //复位倒计时 console.log(obj.countdown); if (obj.countdown != null) { if ((obj.countdown[0] == true && this.CountDowns == 0) || this.EmergencyStop == true) { this.CountDown(); @@ -292,13 +291,12 @@ if (obj.Abort) { if (obj.Abort[0].length > 0) { this.receivedData = obj.Abort[0][0]; this.receivedData2 = obj.Abort[0][1]; this.dialogFormVisible3 = true; // this.dialogFormVisible3 = true; } } this.$forceUpdate(); @@ -328,7 +326,6 @@ this.PromptSize = 500; this.CountDowns = count; count--; this.dialogFormCountDown = true; } else { this.PromptSize = 200; @@ -339,10 +336,13 @@ } } } }, 1000 ); if (this.reset == false) { this.dialogFormCountDown = true; } }, logout: function () { removeToken() CanadaMes-ui/src/views/home/index.vue
@@ -245,13 +245,13 @@ </div> <div> <el-table :data="this.tasklist1" border style="width: 100%"> <el-table-column :width="180" prop="glassId" :label="$t('Outfeed glass barcode')"></el-table-column> <el-table-column :width="130" prop="cage" :label="$t('Cage No')"></el-table-column> <el-table-column :width="130" prop="cell" :label="$t('Slot No')"></el-table-column> <el-table-column :width="130" prop="orderId" :label="$t('Order No')"></el-table-column> <el-table-column :min-width="180" prop="glassId" :label="$t('Outfeed glass barcode')"></el-table-column> <el-table-column :min-width="130" prop="cage" :label="$t('Cage No')"></el-table-column> <el-table-column :min-width="130" prop="cell" :label="$t('Slot No')"></el-table-column> <el-table-column :min-width="130" prop="orderId" :label="$t('Order No')"></el-table-column> <el-table-column prop="orderId" :label="$t('List No')"></el-table-column> <el-table-column prop="orderId" :label="$t('Box No')"></el-table-column> <el-table-column :width="130" prop="lengthWidth" :label="$t('Dim')"> <el-table-column :min-width="150" prop="lengthWidth" :label="$t('Dim')"> <template slot-scope='scope'> {{ scope.row.glasswidthmm }}*{{ scope.row.glassheightmm }} </template> @@ -265,13 +265,13 @@ </el-table-column> </el-table> <el-table :data="this.tasklist2" border style="width: 100%"> <el-table-column :width="180" prop="glassId" :label="$t('Infeed glass barcode')"></el-table-column> <el-table-column :width="130" prop="cage" :label="$t('Cage No')"></el-table-column> <el-table-column :width="130" prop="cell" :label="$t('Slot No')"></el-table-column> <el-table-column :width="130" prop="orderId" :label="$t('Order No')"></el-table-column> <el-table-column :min-width="180" prop="glassId" :label="$t('Infeed glass barcode')"></el-table-column> <el-table-column :min-width="130" prop="cage" :label="$t('Cage No')"></el-table-column> <el-table-column :min-width="130" prop="cell" :label="$t('Slot No')"></el-table-column> <el-table-column :min-width="130" prop="orderId" :label="$t('Order No')"></el-table-column> <el-table-column prop="orderId" :label="$t('List No')"></el-table-column> <el-table-column prop="orderId" :label="$t('Box No')"></el-table-column> <el-table-column :width="130" prop="lengthWidth" :label="$t('Dim')"> <el-table-column :min-width="150" prop="lengthWidth" :label="$t('Dim')"> <template slot-scope='scope'> {{ scope.row.glasswidthmm }}*{{ scope.row.glassheightmm }} </template> @@ -444,10 +444,10 @@ <el-table-column :min-width="50" prop="cell" :label="$t('Slot No')"></el-table-column> <el-table-column :min-width="55" prop="tier" :label="$t('The Side')"></el-table-column> <el-table-column :min-width="145" prop="glassId" :label="$t('Barcode')"></el-table-column> <el-table-column :min-width="100" prop="orderId" :label="$t('Order No')"></el-table-column> <el-table-column :min-width="80" prop="orderId" :label="$t('Order No')"></el-table-column> <el-table-column :min-width="80" prop="listId" :label="$t('List No')"></el-table-column> <el-table-column :min-width="100" prop="boxId" :label="$t('Box No')"></el-table-column> <el-table-column :min-width="90" prop="state" :label="$t('Glass State')"> <el-table-column :min-width="50" prop="boxId" :label="$t('Box No')"></el-table-column> <el-table-column :min-width="80" prop="state" :label="$t('Glass State')"> <template slot-scope='scope'> {{ scope.row.state == 1 ? $t('Normal') : scope.row.state == 2 ? $t('Entering') : scope.row.state == 3 ? @@ -460,6 +460,12 @@ {{ scope.row.glassWidthMm }}{{ scope.row.glassWidthMm > 0 ? "*" : "" }}{{ scope.row.glassHeightMm }} </template> </el-table-column> <el-table-column :min-width="80" prop="lengthWidth" :label="$t('State')"> <template slot-scope='scope'> {{ scope.row.disabled == 0 ? $t('Enable') : $t('Disable') }} </template> </el-table-column> <el-table-column :min-width="250" :label="$t('Operate')"> <template slot-scope='scope'> <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" @@ -470,7 +476,7 @@ @click="outglass(scope.row.glassId, scope.row.state)">{{ $t('Out') }}</el-button> <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" @click="UpdateDisabled(scope.row.cage, scope.row.cell, scope.row.disabled == 0 ? 1 : 0)"> {{ scope.row.disabled == 0 ? $t('Enable') : $t('Disable') }}</el-button> {{ scope.row.disabled == 0 ? $t('Disable') : $t('Enable') }}</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('Add') @@ -510,8 +516,11 @@ <el-form :model="form" label-width="100px" style="padding-right: 30px"> <div style="display: flex;justify-content: space-around;"> <label for="">{{ $t('Upper film position') }}</label> <div> {{ $t('Confirm State') }}:{{ this.isConfirm == true ? $t('Not Allow') : $t('Allow') }} <el-button type="primary" @click="isConfirmState()"> {{ this.isConfirm == true ? "Allow" : "Not Allow" }}</el-button> {{ this.isConfirm == true ? $t('Allow') : $t('Not Allow') }}</el-button> </div> <label for="">{{ $t('Scan Code Point') }}</label> </div> <div style="display: flex;justify-content: space-around;height: 40px;"> @@ -637,18 +646,31 @@ </el-dialog> <el-dialog :visible.sync="dialogFormVisible6" :title="$t('Outing Queue')" top="5vh"> <el-button type="primary" @click="isAllowQueueState()" :disabled="!this.isAllowReordering">{{ this.isAllowQueue {{ $t('Queue State') }}: {{ this.isAllowQueue == true ? $t('Start') : $t('Stop') }} <el-button type="primary" @click="isAllowQueueState()" :disabled="!this.isAllowReordering">{{ this.isAllowQueue == true ? $t('Stop') : $t('Start') }}</el-button> <el-button type="primary" @click="isAllowReorderings()" :disabled="this.isAllowQueue">{{ {{ $t('Sorting State') }}: {{ this.isAllowReordering == true ? $t('Not Allow') : $t('Allow') }} <el-button type="primary" @click="isAllowReorderings()" :disabled="this.isAllowQueue">{{ this.isAllowReordering == true ? $t('Allow') : $t('Not Allow') }}</el-button> <el-input style="width:15%;" :placeholder="$t('Enter the Frame No')" v-model="framebarcode"></el-input> <el-button type="primary" @click="AddOutSliceS()">{{ $t('Add') }}</el-button> <label style="background-color:yellow;font-size: 23px;" for="">{{ isQueueWarning== true ? $t('The cage is disabled') : "" }}</label> <!-- <span style="background-color:yellow;"> {{ isQueueWarning== true ? $t('The cage is disabled') : $t('The cage is disabled') }} </span> --> <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="175" prop="glassId" :label="$t('Barcode')"></el-table-column> <el-table-column :min-width="100" prop="orderId" :label="$t('Order No')"></el-table-column> <el-table-column :min-width="70" prop="orderId" :label="$t('Order No')"></el-table-column> <el-table-column :min-width="70" prop="listId" :label="$t('List No')"></el-table-column> <el-table-column :min-width="70" prop="boxId" :label="$t('Box No')"></el-table-column> <el-table-column :min-width="100" prop="glasswidthmm" :label="$t('Length')"></el-table-column> @@ -670,12 +692,10 @@ </el-table-column> <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' : '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('Flipped')" :min-width="200"> @@ -685,9 +705,7 @@ </template> </el-table-column> <el-table-column prop="barcode" :label="$t('Frame No')"></el-table-column> <el-table-column :width="200" :label="$t('Operate')"> <el-table-column :width="240" :label="$t('Operate')"> <template slot-scope='scope'> <el-button type="text" size="small" @click="getTopMove(scope.row, scope.$index)" style="font-size: 15px;" @@ -706,6 +724,10 @@ </el-button> <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" :disabled="isAllowQueue" @click="deleteproductionqueueglass(scope.row.barcode)">{{ $t('Delete') }}</el-button> <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" :disabled="isAllowQueue" @click="FrameStateUpdate(scope.row.barcode,scope.row.framestate)">{{ scope.row.framestate == 0 ? $t('Stop') : $t('Start') }}</el-button> </template> </el-table-column> </el-table> @@ -762,7 +784,7 @@ home, home2, InsertOrder, Addglassid, UpdateTask, SelectAlarmmgInfo, SelectCageInfo, DeleteByGlassID, OutByGlassID, Loadcarlist, SelectPassword, SelectGlassByGlassID, Disabled, Inglassid, SelectGlass, InsertQueueGlassId, UpdateQueueState, DeleteQueueGlass, SelectGlassNo, SelectAluminumFrameInfoById, DeleteProductionQueueGlass, AddOutSliceS, isAllowQueues, isConfirmStates, SelectPermissionByUserName, currentUsername, CompleteQueue, isAllowReorderings isAllowReorderings, FrameStateUpdate } from "../../api/home"; @@ -852,7 +874,8 @@ D01RequestState: false, EmergencyStop: false, PromptSize: 250, reset: false reset: false, isQueueWarning: false }; }, created() { @@ -933,6 +956,8 @@ //是否允许出片 this.isAllowQueue = obj.isAllowQueue[0]; //当前出片格子是否被禁用 this.isQueueWarning = obj.isQueueWarning[0]; //是否允许出片队列调序 this.isAllowReordering = obj.isAllowReordering[0]; //出片队列 @@ -1796,6 +1821,18 @@ 1000 ); }, FrameStateUpdate(frameno,framestate){ if(framestate == 1){ framestate=0; }else{ framestate=1; } FrameStateUpdate(frameno,framestate).then(res=>{ if(res.data.message == 200){ this.$message.success("Operation successful"); } }); } } } springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
@@ -58,8 +58,9 @@ // 判断当前是否有未执行的任务 int outnum = spianMapper.SelectOutSliceshu(); int cageoutsum=spianMapper.Selectcageout(3); // 当没有任务执行并且出片车空闲时 if (outnum == 0 && outstate == true && Plchome.isAllowQueue == true) { if (outnum == 0 && outstate == true && Plchome.isAllowQueue == true&&cageoutsum==0) { // 判断铝框出片队列表是否有待出片的玻璃 String outglassid = spianMapper.SelectOutSlice(); if (outglassid != null) { springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java
@@ -28,7 +28,7 @@ FileInputStream fileInputStream; try { // 从文件中读取字节数据存入 fileInputStream fileInputStream = new FileInputStream("D:/canadames/Alarm.json"); fileInputStream = new FileInputStream("D:/code/canadames/Alarm.json"); // 读取 fileInputStream 中字节并将其解码为字符 InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "utf-8"); // 提高读取效率,在 BufferedReader 内包装 InputStreamReader springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -31,6 +31,8 @@ // 出片队列是否允许出片 public static Boolean isAllowQueue = true; public static Boolean isAllowReordering = true; //出片队列警告 public static Boolean isQueueWarning=false; // 铝框id public static String FrameNo = ""; // 是否需要手动确认玻璃 @@ -104,20 +106,22 @@ jsonObject.append("listoutslice", listoutslice); // 获取当前出片队列出片状态 jsonObject.append("isAllowQueue", Plchome.isAllowQueue); //获取出片队列警告状态 jsonObject.append("isQueueWarning", Plchome.isQueueWarning); // 获取当前出片队列调序状态 jsonObject.append("isAllowReordering", Plchome.isAllowReordering); // 是否需要人工确认上片玻璃 jsonObject.append("isConfirm", isConfirm); String framenos="X21763329601FB"; if (!framenos.equals(Plchome.FrameNo)) { Plchome.FrameNo = framenos; try { north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } // String framenos="X21763329601FB"; // if (!framenos.equals(Plchome.FrameNo)) { // Plchome.FrameNo = framenos; // try { // north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo); // } catch (SQLException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // } if (S7control.getinstance().CheckConnected() == true) { // 读去Plc进片车与出片车位置W List<String> addressList = new ArrayList<String>(); @@ -147,7 +151,7 @@ // 获取铝框idDB106.DBW64,添加到出片队列 String frameno = spianService.queGlassid("DB103.270", 14).toString(); // String frameno="X12345611002GV"; frameno="X21763329601FB"; // frameno="X21763329601FB"; if (!frameno.equals(Plchome.FrameNo)) { Plchome.FrameNo = frameno; try { @@ -180,36 +184,38 @@ // 是否急停 List<Boolean> emergencystops = S7control.getinstance().ReadBits("DB104.5.1", 1); for (Boolean emergencystop : emergencystops) { jsonObject.append("emergencystop", emergencystop); jsonObject. append("emergencystop", emergencystop); } // 终止继续按钮 List<String> niuanaddressList3 = Arrays.asList(config.getProperty("Parameter2.stop").split(",")); List<Boolean> anniuread = S7control.getinstance().readBits(niuanaddressList3); // Boolean[] value4 = { false, false}; // List<Boolean> anniuread = new ArrayList<>(Arrays.asList(value4)); Boolean[] value5 = { true }; List<Boolean> resets = new ArrayList<>(Arrays.asList(value5)); short[] anniuparams = new short[anniuread.size()]; for (int i = 0; i < anniuread.size(); i++) { boolean value = anniuread.get(i); anniuparams[i] = value ? (short) 1 : (short) 0; } // // 终止继续按钮 // List<String> niuanaddressList3 = Arrays.asList(config.getProperty("Parameter2.stop").split(",")); // List<Boolean> anniuread = S7control.getinstance().readBits(niuanaddressList3); // // Boolean[] value4 = { false, false}; // // List<Boolean> anniuread = new ArrayList<>(Arrays.asList(value4)); // Boolean[] value5 = { true }; // List<Boolean> resets = new ArrayList<>(Arrays.asList(value5)); // short[] anniuparams = new short[anniuread.size()]; // for (int i = 0; i < anniuread.size(); i++) { // boolean value = anniuread.get(i); // anniuparams[i] = value ? (short) 1 : (short) 0; // } short[] resets2 = new short[resets.size()]; for (int i = 0; i < resets.size(); i++) { boolean value = resets.get(i); resets2[i] = value ? (short) 1 : (short) 0; } // short[] resets2 = new short[resets.size()]; // for (int i = 0; i < resets.size(); i++) { // boolean value = resets.get(i); // resets2[i] = value ? (short) 1 : (short) 0; // } for (short number : resets2) { // for (short number : resets2) { if (number == 1) { jsonObject.append("Abort", anniuparams); // if (number == 1) { // jsonObject.append("Abort", anniuparams); } // } } // } } // 铝框线交互 @@ -257,11 +263,11 @@ List<String> messages = webserver.getMessages(); if (!messages.isEmpty()) { // 将最后一个消息转换为整数类型的列表 // // 将最后一个消息转换为整数类型的列表 // String lastMessage = messages.get(messages.size() - 1); // System.out.println("lastMessage:" + lastMessage); // JSONArray messageArray = new JSONArray(lastMessage); // // try { // // 检查索引是否有效 // if (messageArray.getJSONArray(0).size() > 0) { springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
@@ -17,25 +17,25 @@ // System.out.println("启动完成"); // new PlcHold().start(); new PlcHold().start(); new Plchome().start(); // new Plcalarm().start(); new Plcalarm().start(); // new Plcsign().start(); new Plcsign().start(); // new Plcstate().start(); // new PlcPositioning1().start(); new Plcstate().start(); new PlcPositioning1().start(); // new PlcParameter2().start(); new PlcParameter2().start(); // new PLCAutomaticParameterSetting().start(); new PLCAutomaticParameterSetting().start(); // new PlcManualonePosition().start(); // new PlcManualonePosition2().start(); // new PlcServoManualone().start(); // new PLCManualJog().start(); // new Plclog().start(); new PlcManualonePosition().start(); new PlcManualonePosition2().start(); new PlcServoManualone().start(); new PLCManualJog().start(); new Plclog().start(); } } springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
@@ -391,4 +391,11 @@ return outSliceServive.CompleteQueue(id, frameid, glassid); } // 手动完成任务 @PostMapping("/FrameStateUpdate") public Result FrameStateUpdate(String frameno, String framestate) { return outSliceServive.FrameStateUpdate(frameno, framestate); } } springboot-vue3/src/main/java/com/example/springboot/entity/Out_slice.java
@@ -16,6 +16,8 @@ private String boxId;//箱子id private double glasswidthmm;//玻璃宽mm private double glassheightmm;//玻璃高mm private String position_x;//x坐标 private int framestate;//y坐标 public String getPosition() { return position; @@ -168,4 +170,12 @@ public void setBoxno(String boxId) { this.boxId = boxId; } public int getFrameState() { return framestate; } public void SetFrameState(int framestate) { this.framestate = framestate; } } springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
@@ -154,7 +154,7 @@ List<north_glass_buffer1> SelectAluminumFrameInfoById(String FrameBarcode); //查询玻璃是否已存在于出片队列 //根据玻璃id查询出片队列信息 @Select("select * from out_slice where glassid=#{getbarcode}") Out_slice SelectQueueByglassid(String getbarcode); @@ -172,9 +172,14 @@ //查询用户权限 @Select("select rp.* from role_permission rp inner join user r on rp.role_id=r.role_id and r.username=#{username} and (permission_id=32 or permission_id=33 or permission_id=34 or permission_id=35)") List<RolePermission> SelectPermissionByUserName(String username); //完成出片任务 //根据玻璃完成出片任务 @Update("update out_slice set state=4 where id=#{id}") void CompleteQueue(String id); //根据玻璃完成出片任务 @Update("update out_slice set state=4 where id=#{id}") void CompleteQueueByGlassId(String glassid); //查询铝框id对应玻璃完成数量 @Select("select count(*) from out_slice where barcode=#{frameid} and state!=4") @@ -196,4 +201,8 @@ @Select("select * from storage_task where task_state=0 and task_type=#{task_type}") List<StorageTask> SelectTaskByState(int task_type); //修改出片队列铝框状态 @Select("update out_slice set framestate=#{framestate} where barcode=#{frameno}") void FrameStateUpdate(String frameno, String framestate); } springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java
@@ -94,7 +94,7 @@ void UpdataOutCage1(double width, int cage, int cell); // 调拨更换笼子信息 @Update("update storage_cage as a,(select*from storage_cage b where b.cage=#{cage} and b.cell=#{cell} and b.tier=#{tier})as b set a.glass_id=b.glass_id,a.order_id=b.order_id,a.state=1,a.glasswidth=b.glasswidth,a.glassheight=b.glassheight,a.glasswidthmm=b.glasswidthmm,a.glassheightmm=b.glassheightmm,a.listid=b.listid,a.boxid=b.boxid where a.id=#{id1}") @Update("update storage_cage as a,(select*from storage_cage b where b.cage=#{cage} and b.cell=#{cell} and b.tier=#{tier})as b set a.glass_id=b.glass_id,a.order_id=b.order_id,a.state=1,a.glasswidth=b.glasswidth,a.glassheight=b.glassheight,a.glasswidthmm=b.glasswidthmm,a.glassheightmm=b.glassheightmm,a.listid=b.listid,a.boxid=b.boxid,a.FrameBarcode=b.FrameBarcode where a.id=#{id1}") void UpdateDBCage(int id1, int cage, int cell, int tier); // @Insert("insert into user(name, date, address, user_no) values (#{name}, @@ -117,11 +117,11 @@ String SelectOrderout(); // 内外片调换 @Update("update storage_cage as a,(select*from storage_cage b where b.cage=#{cage} and b.cell=#{cell} and b.tier=1)as b set a.glass_id=b.glass_id,a.order_id=b.order_id,a.state=1,a.glasswidth=b.glasswidth,a.glassheight=b.glassheight,a.glasswidthmm=b.glasswidthmm,a.glassheightmm=b.glassheightmm,a.listid=b.listid,a.boxid=b.boxid where a.cage=#{cage} and a.cell=#{cell} and a.tier=2") @Update("update storage_cage as a,(select*from storage_cage b where b.cage=#{cage} and b.cell=#{cell} and b.tier=1)as b set a.glass_id=b.glass_id,a.order_id=b.order_id,a.state=1,a.glasswidth=b.glasswidth,a.glassheight=b.glassheight,a.glasswidthmm=b.glasswidthmm,a.glassheightmm=b.glassheightmm,a.listid=b.listid,a.boxid=b.boxid,a.FrameBarcode=b.FrameBarcode where a.cage=#{cage} and a.cell=#{cell} and a.tier=2") void UpdateDBCage1(int cage, int cell); // 清除内片数据 @Update("update storage_cage a set glass_id='',order_id='',state=0,glasswidth=0,glassheight=0,glasswidthmm=0,glassheightmm=0,listid=null,boxid=null where a.cage=#{cage} and a.cell=#{cell} and a.tier=1;") @Update("update storage_cage a set glass_id=null,order_id=null,state=0,glasswidth=null,glassheight=null,glasswidthmm=null,glassheightmm=null,listid=null,boxid=null,FrameBarcode=null where a.cage=#{cage} and a.cell=#{cell} and a.tier=1;") void UpdateDBCage2(int cage, int cell); // 判断是否有调拨完后出片的任务 @@ -196,6 +196,9 @@ // 判断铝框出片表是否有玻璃正在出片中 @Select("SELECT count(*) FROM `out_slice` where state=1;") int SelectOutSliceshu(); //判断是否有调拨任务未完成 @Select("SELECT count(*) FROM `storage_cage` where state=#{state};") int Selectcageout(int state); // 更新出片队列的任务状态 @Update("update out_slice set state=#{state} where glassid=#{glassid} and state=#{state2}") springboot-vue3/src/main/java/com/example/springboot/service/North_Glass_Buffer1Service.java
@@ -26,15 +26,15 @@ public int compare(north_glass_buffer1 n1, north_glass_buffer1 n2) {//对查询到的铝框对应的玻璃数据进行排序,将离出片位置近的,靠近笼子出片侧的玻璃排在前面 if (n1.getstorageCage() != null) { if (n2.getstorageCage() != null) { int cageComparison = n2.getstorageCage().getCage().compareTo(n1.getstorageCage().getCage()); int cageComparison = n2.getstorageCage().getCage().compareTo(n1.getstorageCage().getCage());//靠出片口近的笼子优先 if (cageComparison != 0) { return cageComparison; } else { int cellComparison = n2.getstorageCage().getCell().compareTo(n1.getstorageCage().getCell()); int cellComparison = n2.getstorageCage().getCell().compareTo(n1.getstorageCage().getCell());//靠出片口近的格子优先 if (cellComparison != 0) { return cellComparison; } else { return n2.getstorageCage().getTier().compareTo(n1.getstorageCage().getTier()); return n2.getstorageCage().getTier().compareTo(n1.getstorageCage().getTier());//靠出片口近的格子外层优先 } } } else { springboot-vue3/src/main/java/com/example/springboot/service/OutSliceServive.java
@@ -66,6 +66,16 @@ return Result.success(map); } // 确认后完成修改出片队列状态 public void CompleteQueueByGlassId(String glassid) { homeMapper.CompleteQueueByGlassId(glassid); Out_slice outslice=homeMapper.SelectQueueByglassid(glassid); Short num = homeMapper.SelectCountByFrameNo(outslice.getBarCode()); if (num == 0) { homeMapper.CompleteQueueByFrameNo(outslice.getBarCode()); } } //终止进片/出片 public void StopTask(String glassid, int i) { if (i == 0) {// 进片终止 @@ -88,4 +98,11 @@ homeMapper.DeleteByGlassID(glassid); } public Result FrameStateUpdate(String frameno, String framestate) { homeMapper.FrameStateUpdate(frameno, framestate); Map<String, Object> map = new HashMap<>(); map.put("message", "200"); return Result.success(map); } }