Merge branch 'master' of http://10.153.19.25:10101/r/Albania_Mes
# Conflicts:
# Albania_Mes-ui/src/views/home/index.vue
# springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
# springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
| | |
| | | } |
| | | |
| | | .occupy { |
| | | height: 100%; |
| | | width: 20%; |
| | | height: 50%; |
| | | width: 45%; |
| | | background-color: white; |
| | | margin: 0px 8px 0px 8px; |
| | | border: 1px #EBEEF5 solid; |
| | |
| | | max-width: 57%; |
| | | background-size: 1050px 1400px; |
| | | margin-top: -280px; |
| | | overflow: hidden; |
| | | /* width: 1660px; |
| | | max-width: 100vw; |
| | | background-size: 1660px 560px; */ |
| | |
| | | } |
| | | |
| | | .blocks-img { |
| | | height: 88px; |
| | | line-height: 90px; |
| | | color: white; |
| | | height: 900px; |
| | | max-width: 100vw; |
| | | background-repeat: no-repeat; |
| | | background-attachment: local; |
| | | width: 32px; |
| | | width: 1200px; |
| | | position: absolute; |
| | | background-image: url('../../img/bigcar01.png'); |
| | | background-size: 40px 87px; |
| | | /* background-size: 46px 94px; */ |
| | | background-image: url(/img/car.c2f92670.png); |
| | | background-size: 800px 1200px; |
| | | } |
| | | |
| | | .blocks-img2 { |
| | |
| | | height: 15px; |
| | | position: absolute; |
| | | } |
| | | |
| | | /* |
| | | |
| | | */ |
| | | #fileinput .container { |
| | | width: 800px; |
| | | margin: 0 auto; |
| | | width: 800px; |
| | | margin: 0 auto; |
| | | } |
| | | |
| | | #fileinput .header { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-bottom: 10px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | #fileinput table { |
| | | width: 100%; |
| | | border-collapse: collapse; |
| | | border: 1px solid; |
| | | width: 100%; |
| | | border-collapse: collapse; |
| | | border: 1px solid; |
| | | } |
| | | |
| | | #fileinput tr, |
| | | #fileinput th, |
| | | #fileinput td { |
| | | border: 1px solid #000; |
| | | padding: 5px; |
| | | border: 1px solid #000; |
| | | padding: 5px; |
| | | } |
| | | |
| | | #fileinput button { |
| | | border: none; |
| | | padding: 5px; |
| | | background-color: #00a297; |
| | | color: #fff; |
| | | border-radius: 5px; |
| | | cursor: pointer; |
| | | margin: 0 5px; |
| | | border: none; |
| | | padding: 5px; |
| | | background-color: #00a297; |
| | | color: #fff; |
| | | border-radius: 5px; |
| | | cursor: pointer; |
| | | margin: 0 5px; |
| | | } |
| | | |
| | | #fileinput tr:nth-child(2n) { |
| | | background-color: #dcdcdc; |
| | | background-color: #dcdcdc; |
| | | } |
| | | |
| | | #fileinput .hide { |
| | | display: none; |
| | | display: none; |
| | | } |
| | | |
| | | #fileinput .c1 { |
| | | position: fixed; |
| | | top: 0; |
| | | bottom: 0; |
| | | left: 0; |
| | | right: 0; |
| | | background: rgba(0, 0, 0, .5); |
| | | z-index: 2; |
| | | position: fixed; |
| | | top: 0; |
| | | bottom: 0; |
| | | left: 0; |
| | | right: 0; |
| | | background: rgba(0, 0, 0, .5); |
| | | z-index: 2; |
| | | } |
| | | |
| | | #fileinput .c2 { |
| | | background-color: white; |
| | | position: fixed; |
| | | width: 400px; |
| | | height: 300px; |
| | | top: 50%; |
| | | left: 50%; |
| | | z-index: 3; |
| | | margin-top: -150px; |
| | | margin-left: -200px; |
| | | background-color: white; |
| | | position: fixed; |
| | | width: 400px; |
| | | height: 300px; |
| | | top: 50%; |
| | | left: 50%; |
| | | z-index: 3; |
| | | margin-top: -150px; |
| | | margin-left: -200px; |
| | | } |
| | | |
| | | |
| | | </style> |
| | | <template> |
| | | <el-container> |
| | |
| | | </div> |
| | | <div style="display: flex;align-items: center;"> |
| | | <div class="blocks" style="position: relative;width: 100%;"> |
| | | <div class="blocks-img" :style="'z-index:999;left:150px;top:555px;'"> |
| | | |
| | | </div> |
| | | <div |
| | | :style="'position: absolute;z-index:999;left:271px;top:987px;width:210px;height:38px;background-color:' + ShowDeviceList(0) + ';;'"> |
| | | </div> |
| | | <div |
| | | :style="'position: absolute;z-index:999;left:553px;top:956px;width:110px;height:74px;background-color:' + ShowDeviceList(0) + ';;'"> |
| | | </div> |
| | | <div |
| | | :style="'position: absolute;z-index:999;left:800px;top:450px;width:115px;height:30px;background-color:' + ShowDeviceList(0) + ';;'"> |
| | | </div> |
| | | <div |
| | | :style="'position: absolute;z-index:999;left:800px;top:675px;width:115px;height:30px;background-color:' + ShowDeviceList(0) + ';;'"> |
| | | </div> |
| | | <div |
| | | :style="'position: absolute;z-index:999;left:740px;top:930px;width:230px;height:90px;background-color:' + ShowDeviceList(0) + ';;'"> |
| | | <div v-for="item in cagelist1" :key="item['number']"> |
| | | <div v-for="(num) in item['number']" :key="num"> |
| | | 1 |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <div style="padding: 10px;display: flex;height:100px;"> |
| | | <div style="padding: 10px;display: flex;height: 300px;flex-wrap: wrap;"> |
| | | <div v-for="item in tableData" :key="item['cageno']" class="occupy"> |
| | | <el-col style="text-align:left;font-weight: bold;">#{{ item['cage'] }}</el-col> |
| | | <el-col |
| | | style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span class="biao">{{ $t('Usage') }}</span><span class="zhi">{{ item['cell'] }}%</span> |
| | | style="text-align:left;display:flex;justify-content: space-between;align-items: center;height: 70px;"> |
| | | <span class="biao">{{ $t('Usage') }}</span><span class="zhi">{{ item['width'] }}%</span> |
| | | </el-col> |
| | | <hr style="width:80%;margin: 0 auto;" /> |
| | | <el-col |
| | | style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span class="biao">{{ $t('Space (Pieces)') }}</span><span class="zhi">{{ item['state'] |
| | | <span class="biao">{{ $t('Space (Pieces)') }}</span><span class="zhi">{{ item['cell'] |
| | | }}</span> |
| | | </el-col> |
| | | </div> |
| | |
| | | <td>{{ item.films }}</td> |
| | | <td>{{ item.quantity }}</td> |
| | | <td>{{ item.tier }}</td> |
| | | <td>{{ item.matching}}</td> |
| | | <td>{{ item.matching }}</td> |
| | | <td>{{ item.glasstype }}</td> |
| | | <td>{{ item.productname }}</td> |
| | | </tr> |
| | |
| | | <script> |
| | | |
| | | import { |
| | | home, home2, SelectCageInfo, |
| | | home, SelectCageInfo, |
| | | Disabled, SelectPermissionByUserName, currentUsername, CompleteQueue, |
| | | isAllowReorderings, |
| | | |
| | |
| | | reset: false, |
| | | isQueueWarning: false, |
| | | CurrentFrame: [], |
| | | DeviceList: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], |
| | | DeviceList: [1, 1, 1, 1], |
| | | GlassIdList: [], |
| | | Scanningmethod: true, |
| | | CurrrentGlassId: "", |
| | |
| | | // this.car1 = 210 + 11.25 * (obj.params[0][1]-this.carlist[1]['start'])/(this.carlist[1]['end']-this.carlist[1]['start'])*100; |
| | | // this.car2 = 300 + 11.25 * (obj.params[0][1]-this.carlist[1]['start'])/(this.carlist[1]['end']-this.carlist[1]['start'])*100; |
| | | } |
| | | |
| | | // 获取设备状态 |
| | | if (obj.DeviceList != null) { |
| | | this.DeviceList = obj.DeviceList[0]; |
| | | } |
| | | this.tableData = obj.tableData[0]; |
| | | this.cagelist1 = obj.cagelist1[0]; |
| | | this.cagelist2 = obj.cagelist2[0]; |
| | |
| | | SelectCageInfo("").then(res => { |
| | | this.cageinfo = res.data.cageinfo; |
| | | this.currentPages = 1; |
| | | }); |
| | | //加载理片笼玻璃数据 |
| | | home2().then(res => { |
| | | this.cagelist1 = res.data.list1; |
| | | this.cagelist2 = res.data.list2; |
| | | this.cagelist3 = res.data.list3; |
| | | this.cagelist4 = res.data.list4; |
| | | }); |
| | | }, |
| | | //添加理片笼玻璃 |
| | |
| | | let _this = this //把data里的数据赋值给新的变量 |
| | | // wb:wordbook 工作表 |
| | | reader.addEventListener("load", function (e) { |
| | | |
| | | |
| | | var data = e.target.result; //读取成功后result中的数据 |
| | | var wb = XLSX.read(data, { type: "binary" }); |
| | | var wb = XLSX.read(data, { type: "binary" }); |
| | | let sheetName = wb.SheetNames[0]; //是获取Sheets中第一个Sheet的名字 |
| | | let sheets = wb.Sheets[sheetName]; |
| | | let dataList2 = JSON.stringify(XLSX.utils.sheet_to_json(sheets)); |
| | |
| | | } |
| | | }, |
| | | Add() { |
| | | |
| | | |
| | | }, |
| | | importData() { |
| | | |
| | | |
| | | //let tbdata=JSON.stringify(this.dataList); |
| | | let tbdata=this.dataList; |
| | | console.log(tbdata); |
| | |
| | | }); |
| | | }, |
| | | del() { |
| | | |
| | | |
| | | this.StorageCageAdd = true; |
| | | } |
| | | |
| | |
| | | // List<Short> E0sss1id = S7control.getinstance().ReadWord("DB14.0",1); |
| | | // String E01id = S7control.getinstance().readStrings("DB14.38"); |
| | | // System.out.println(E01id); |
| | | // if (S7control.getinstance().CheckConnected() == false) { |
| | | byte[] E0sss1id = S7control.getinstance().ReadByte("DB14.208",1); |
| | | // if (S7control.getinstance().CheckCsonnected() == false) { |
| | | List<Short> E0sss1id = S7control.getinstance().ReadWord("DB14.206",1); |
| | | List<String> st= S7control.getinstance().readStrings("DB14.206"); |
| | | byte[] E0sss1ids = S7control.getinstance().ReadByte("DB14.206",2); |
| | | byte[] E0sss1idss = S7control.getinstance().ReadByte("DB14.0",210); |
| | | spianService = WebSocketServer.applicationContext.getBean(SpianServiceNew.class); |
| | | albaniaMapper = WebSocketServer.applicationContext.getBean(AlbaniaMapper.class); |
| | | //spianService.selectAll(albaniaMapper.SelectGlass()); |
| | | //读取DB14区文件 |
| | | PlcParameterObject plcmes=PLCAutoMes.PlcMesObject; |
| | | |
| | | |
| | | |
| | | String ExportTOMES1=plcmes.getPlcParameter("ExportTOMES1").getValue();//出片请求一线 |
| | | String ExportToMES2=plcmes.getPlcParameter("ExportToMES2").getValue();//出片请求二线 |
| | |
| | | storageCageService = WebSocketServer.applicationContext.getBean(StorageCageService.class); |
| | | |
| | | // 笼子使用情况 |
| | | List<StorageCage> tableData = homeMapper.selectAll(); |
| | | List<StorageCage> tableData = homeMapper.selectAlls(); |
| | | jsonObject.append("tableData", tableData); |
| | | // 格理片笼格子状态 |
| | | List<StorageCage> cagelist1 = homeMapper.selectRack1(); |
| | | List<StorageCage> cagelist2 = homeMapper.selectRack2(); |
| | | List<StorageCage> cagelist3 = homeMapper.selectRack3(); |
| | | List<StorageCage> cagelist4 = homeMapper.selectRack4(); |
| | | List<StorageCage> cagelist1=storageCageService.SelectStorageCageByCage(1); |
| | | List<StorageCage> cagelist2=storageCageService.SelectStorageCageByCage(2); |
| | | List<StorageCage> cagelist3=storageCageService.SelectStorageCageByCage(3); |
| | | List<StorageCage> cagelist4=storageCageService.SelectStorageCageByCage(4); |
| | | jsonObject.append("cagelist1", cagelist1); |
| | | jsonObject.append("cagelist2", cagelist2); |
| | | jsonObject.append("cagelist3", cagelist3); |
| | |
| | | public List<Short> ReadWord(String address, int count) { |
| | | if (s7PLC == null) |
| | | return null; |
| | | |
| | | List<String> addresslist = GetAddressList(address, count, 16); |
| | | try { |
| | | return s7PLC.readInt16(addresslist); |
| | |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | public byte[] Readbyte(String address, int count) { |
| | | byte[] byt=new byte[count]; |
| | | int wordcount=((count%2==0)?count/2:count+1); |
| | | List<Short> word=ReadWord(address,wordcount); |
| | | |
| | | return byt; |
| | | } |
| | | /** |
| | | * 按指定的地址 读取byte结果集 |
| | | * |
| | |
| | | // |
| | | System.out.println("启动完成"); |
| | | // new PLCAutoMes().start(); |
| | | // new PlcHold().start(); |
| | | // new PlcHoldNew().start(); |
| | | |
| | | // new PlcHold().start(); |
| | | // new PlcHoldNew().start(); |
| | | |
| | | new Plchome().start(); |
| | | // new PlcLayout().start(); |
| | | // new Plcalarm().start(); |
| | | // new Plcsign().start(); |
| | | // new Plcstate().start(); |
| | | // new PlcPositioning1().start(); |
| | | // new PlcParameter2().start(); |
| | | // new PLCAutomaticParameterSetting().start(); |
| | | new Plchome().start(); |
| | | // new PlcLayout().start(); |
| | | // new Plcalarm().start(); |
| | | // new Plcsign().start(); |
| | | // new Plcstate().start(); |
| | | // new PlcPositioning1().start(); |
| | | // new PlcParameter2().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(); |
| | | |
| | | // new PlcInteractionState().start(); |
| | | //new PlcParameter1Review().start(); |
| | | //new PLCAutomaticParameterSettingReview2().start(); |
| | | // new PlcInteractionState().start(); |
| | | // new PlcParameter1Review().start(); |
| | | // new PLCAutomaticParameterSettingReview2().start(); |
| | | |
| | | // new PLCManualJogReview().start(); |
| | | // new PLCManualJogReview().start(); |
| | | } |
| | | } |
| | |
| | | @Select("select cage,round(100-(21-sum(if(state>0,1,state)))/21*100) as cell,21-sum(if(state>0,1,state)) as state from (select cage,cell,max(state) as state from storage_cage group by cage,cell) as cages group by cage") |
| | | List<StorageCage> selectAll(); |
| | | |
| | | @Select("Select cage,sum(case when number=0 or number is null then 1 else 0 end) as cell,100-sum(case when number=0 or number is null then 1 else 0 end)/count(id)*100 as width from storage_cage group by cage") |
| | | List<StorageCage> selectAlls(); |
| | | |
| | | // 查询10-6笼内层格子状态 |
| | | @Select("SELECT cage,state,ifnull(glasswidth/2750*2,0) as glasswidth from storage_cage where cage>5 and tier=2 order by cage desc,cell desc") |
| | | List<StorageCage> selectRack1(); |
| | |
| | | @Update("update queue set flowcard=#{flowcard},glasswidth=#{width},glassheight=#{height},glasstype=#{glasstype},state=1 where state<=0") |
| | | void UpdateQueue(String flowcard,double width,double height,Integer glasstype); |
| | | |
| | | @Update("update glassinfo set finishnumber=finishnumber+1 where flowcard=#{flowcard} and mateid=#{mateid} and tier=#{geTier}") |
| | | @Update("update glassinfo set finishnumber=ifnull(finishnumber,0)+1 where flowcard=#{flowcard} and mateid=#{mateid} and tier=#{geTier}") |
| | | void AddGlassNo(String flowcard, Integer mateid, Integer geTier); |
| | | |
| | | //添加出片队列 |
| | |
| | | //查询全部玻璃类型 |
| | | @Select("select CONCAT(IFNULL(width,''),'_',IFNULL(height,''),'_',IFNULL(thickness,''),'_',IFNULL(films,'')) as type,glasstype from glassinfo GROUP BY width,height,thickness,films") |
| | | List<Map> SelectType(); |
| | | // 查询笼内玻璃信息 |
| | | @Select("select * from storage_cage where cage=#{cage} order by id desc") |
| | | List<StorageCage> SelectStorageCageByCage(Integer cage); |
| | | } |
| | |
| | | return Result.success(map); |
| | | } |
| | | |
| | | public List<StorageCage> SelectStorageCageByCage(int cage) { |
| | | return homeMapper.SelectStorageCageByCage(cage); |
| | | } |
| | | |
| | | // 人工拿走 |
| | | public Result ManualTake(String glassInfo) { |
| | | // 读取DB105区文件 |
| | |
| | | // 处理完成 添加数据库 |
| | | for (Map map : RemoveErrorData) { |
| | | // GlassInfo glassInfo = mapper.convertValue(map, GlassInfo.class); |
| | | |
| | | String key=map.get("base").toString()+"_"+map.get("height").toString()+"_"+map.get("thickness").toString()+"_"+map.get("films").toString(); |
| | | String value=TypeData.get(key); |
| | | |
| | | String key = map.get("base").toString() + "_" + map.get("height").toString() + "_" |
| | | + map.get("thickness").toString() + "_" + map.get("films").toString(); |
| | | String value = TypeData.get(key); |
| | | Integer glasstype; |
| | | if (TypeData.get(key)==null) { |
| | | glasstype=homeMapper.SelectMaxType(); |
| | | }else{ |
| | | glasstype=Integer.valueOf(value); |
| | | if (TypeData.get(key) == null) { |
| | | glasstype = homeMapper.SelectMaxType(); |
| | | } else { |
| | | glasstype = Integer.valueOf(value); |
| | | } |
| | | homeMapper.AddGlassinfo(map.get("order").toString(), glasstype, |
| | | Integer.parseInt(map.get("glasstype").toString()) // 需要计算 配片ID |
| | |
| | | return Result.success(ResultCode); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm/S" |
| | | } |
| | | },{ |
| | | "codeId": "MainControl", |
| | | "addressIndex":"208", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm/S" |
| | | } |
| | | ] |
| | | } |