Merge branch 'master' of http://10.153.19.25:10101/r/Albania_Mes
| | |
| | | { |
| | | "java.configuration.updateBuildConfiguration": "interactive", |
| | | "java.debug.settings.onBuildFailureProceed": true, |
| | | "java.compile.nullAnalysis.mode": "automatic" |
| | | "java.compile.nullAnalysis.mode": "automatic", |
| | | "java.jdt.ls.vmargs": "-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx2G -Xms100m -Xlog:disable" |
| | | } |
| | |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | //人工拿走AnewMeasure |
| | | export function ManualTake(data) { |
| | | return request({ |
| | | url: '/home/ManualTake', |
| | | method: 'post', |
| | | data |
| | | |
| | | }) |
| | | } |
| | | //重新测量 |
| | | export function AnewMeasure(data) { |
| | | return request({ |
| | | url: '/home/AnewMeasure', |
| | | method: 'post', |
| | | data |
| | | |
| | | }) |
| | | } |
| | | |
| | | export function importData(data) { |
| | | return request({ |
| | | url: '/home/importData', |
| | | method: 'post', |
| | | data |
| | | |
| | | }) |
| | | } |
| | |
| | | <div id="fileinput" class="container"> |
| | | <div class="header"> |
| | | <div class="btn"> |
| | | <button @click="AllAdd">保存</button> |
| | | <el-button type="primary" @click="importData()">保存</el-button> |
| | | </div> |
| | | <div class="inp"> |
| | | <input type="file" id="uploadExcel" multiple @change="Change" /> |
| | |
| | | <el-button type="primary" @click="ManualMatching()" :disabled="SoftEmergencyStopState" |
| | | style="z-index: 999;">人工匹配</el-button> |
| | | <el-button type="primary" @click="ManualTake()" :disabled="SoftEmergencyStopState" |
| | | style="z-index: 999;">人工匹配</el-button> |
| | | style="z-index: 999;">人工拿走</el-button> |
| | | <el-button type="primary" @click="AnewMeasure()" :disabled="SoftEmergencyStopState" |
| | | style="z-index: 999;">重新测量</el-button> |
| | | </div> |
| | | <!--显示--> |
| | | <div style="width:1000px;height: 720px;border: 2px solid #d1d1d1;margin: auto auto;"> |
| | |
| | | Disabled, SelectPermissionByUserName, currentUsername, CompleteQueue, |
| | | isAllowReorderings, |
| | | |
| | | UpdateStroageCageByCell, FinishTask, SelectGlassInfo, StorageCageAddGlass, ClaimTasks, ModeChange, UpdateQueue |
| | | UpdateStroageCageByCell, FinishTask, SelectGlassInfo, StorageCageAddGlass, ClaimTasks, ModeChange, UpdateQueue,importData,ManualTake,AnewMeasure |
| | | } from "../../api/home"; |
| | | |
| | | |
| | |
| | | }, |
| | | //人工拿走 |
| | | ManualTake() { |
| | | |
| | | let s="123"; |
| | | ManualTake(s).then(res => { |
| | | if (res.data.message == 200) { |
| | | console.log(res.data.message); |
| | | } |
| | | }) |
| | | }, |
| | | //重新测量 |
| | | AnewMeasure() { |
| | | let s="123"; |
| | | AnewMeasure(s).then(res => { |
| | | if (res.data.message == 200) { |
| | | console.log(res.data.message); |
| | | } |
| | | }) |
| | | }, |
| | | Change(event) { |
| | | // 获取到文件夹 |
| | |
| | | Add() { |
| | | |
| | | }, |
| | | Hide() { |
| | | importData() { |
| | | |
| | | }, |
| | | AllAdd() { |
| | | //添加数据进后台 |
| | | console.log(this.dataList); |
| | | //let tbdata=JSON.stringify(this.dataList); |
| | | let tbdata=this.dataList; |
| | | console.log(tbdata); |
| | | importData(tbdata).then(res => { |
| | | if (res.data.message == 200) { |
| | | //this.$message.success(this.$t('Operation successful')); |
| | | } |
| | | }); |
| | | }, |
| | | del() { |
| | | |
| | |
| | | PlcParameterObject plcmes=PLCAutoMes.PlcMesObject; |
| | | |
| | | //String PlcRequest=plcmes.getPlcParameter("GaToMES").getValue();//请求 |
| | | //String MesSend=plcmes.getPlcParameter("MESToGaStatus").getValue();//发送 |
| | | //double width=plcmes.getPlcParameter("Height").getValue();//宽 |
| | | //double height=plcmes.getPlcParameter("width").getValue();//高 |
| | | //获取测量的长,宽 |
| | |
| | | |
| | | |
| | | String PlcRequest = "1"; |
| | | String MesSend = "0"; |
| | | double width = 402; |
| | | double height = 402; |
| | | |
| | | //匹配 |
| | | if ("1".equals(PlcRequest)) { |
| | | if ("1".equals(PlcRequest)&&"0".equals(PlcRequest)) { |
| | | GlassInfo MesureGlassinfo=HomeService.Normal(width, height, "1"); |
| | | |
| | | |
| | | } |
| | | Queue LastQueue= QueueMapper.selectLastQueue(); |
| | | // String E01id = new String( S7controlLK.getinstance().ReadByte("DB17.0",16)); |
| | |
| | | package com.example.springboot.controller; |
| | | |
| | | import java.sql.SQLException; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | import com.example.springboot.service.OutSliceServive; |
| | | import com.example.springboot.service.SpianService; |
| | | import com.example.springboot.service.StorageCageService; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import com.google.gson.JsonArray; |
| | | import com.google.gson.JsonObject; |
| | | |
| | | import cn.hutool.core.lang.Console; |
| | | |
| | | import com.example.springboot.common.Result; |
| | | import com.example.springboot.component.Plchome; |
| | |
| | | public Result ModeChange(String flowcard,Integer method) { |
| | | return storageCageService.ModeChange(flowcard,method); |
| | | } |
| | | |
| | | |
| | | //添加玻璃信息到测量信息 |
| | | @PostMapping("/UpdateQueue") |
| | | public Result UpdateQueue(@RequestBody GlassInfo glassInfo) { |
| | | return storageCageService.UpdateQueue(glassInfo); |
| | | } |
| | | //人工拿走 |
| | | @PostMapping("/ManualTake") |
| | | public Result ManualTake(@RequestBody String glassInfo) { |
| | | return storageCageService.ManualTake(glassInfo); |
| | | } |
| | | //重新测量 |
| | | @PostMapping("/AnewMeasure") |
| | | public Result AnewMeasure(@RequestBody String glassInfo) { |
| | | return storageCageService.AnewMeasure(glassInfo); |
| | | } |
| | | //导入数据 :添加玻璃信息 |
| | | @PostMapping("/importData") |
| | | public Result importData(@RequestBody List<Map> IportDataStr) { |
| | | return storageCageService.AddGlassinfo(IportDataStr); |
| | | } |
| | | } |
| | |
| | | private Double thickness;// 厚 |
| | | private Integer number;// 数量 |
| | | private Integer finishnumber;// 完成数量 |
| | | private Integer sumtier;// 完成数量 |
| | | private Integer measurenumber;// 测量完成数量 |
| | | private Integer cageno;//笼内数量 |
| | | } |
| | |
| | | private Double thickness;// 厚 |
| | | private Integer number;// 数量 |
| | | private Integer finishnumber;// 完成数量 |
| | | private Integer sumtier;// 完成数量 |
| | | private Integer measurenumber;// 测量完成数量 |
| | | private Integer cageno;//笼内数量 |
| | | } |
| | |
| | | import com.example.springboot.entity.RolePermission; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @Mapper |
| | | public interface HomeMapper { |
| | | //查询每个笼子的使用情况 |
| | | // 查询每个笼子的使用情况 |
| | | @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(); |
| | | |
| | |
| | | // 查询5-1笼外层格子状态 |
| | | @Select("SELECT case when tier=1 then cage else 0 end as cage,case when tier=1 then state else 0 end as state,sum(case when tier=1 then glasswidth/2750*2 else 0 end) as glasswidth,sum(case when tier=2 then glasswidth/2750*2 else 0 end) as width from storage_cage where cage<=5 group by cage,cell order by cage desc,cell desc") |
| | | List<StorageCage> selectRack4(); |
| | | |
| | | |
| | | |
| | | // 根据任务类型查询当前正在出片,进片的玻璃信息 |
| | | @Select("select * from storage_cage where state=#{task_type}") |
| | |
| | | |
| | | // 手动完成任务 |
| | | @Update("update storage_task set task_state=1 where task_type=#{task_type} and glass_id=#{glassid}") |
| | | void UpdateTask(@Param("task_type") Integer task_type,String glassid); |
| | | void UpdateTask(@Param("task_type") Integer task_type, String glassid); |
| | | |
| | | // 手动完成进片任务修改笼子数据 |
| | | @Update("update storage_cage set state=1 where glass_id=#{glassid} and state=2") |
| | | void UpdateCageTask1(@Param("glassid") String glassid); |
| | | |
| | | //获取报警信息 |
| | | // 获取报警信息 |
| | | @Select("select id,content,timeon as timeons,endTime from alarmmg where endTime is null") |
| | | List<alarmmg> SelectAlarmmgInfo(); |
| | | |
| | | //获取理片笼内玻璃信息 |
| | | // 获取理片笼内玻璃信息 |
| | | @Select("select * from storage_cage where position(#{cage} in ifnull(glass_id,\"\"))") |
| | | List<StorageCage> SelectCageInfo(String cage); |
| | | |
| | |
| | | @Update("update storage_cage set state=0,glass_id=null,order_id=null,glasswidth=null,glassheight=null,glasswidthmm=null,glassheightmm=null,listid=null,boxid=null,FrameBarcode=null where glass_id=#{glassid}") |
| | | void DeleteByGlassID(String glassid); |
| | | |
| | | //查询小车位置 |
| | | // 查询小车位置 |
| | | @Select("select * from car_position") |
| | | List<CarPosition> Loadcarlist(); |
| | | |
| | | //查询操作密码 |
| | | // 查询操作密码 |
| | | @Select("select dianqimima from user where id=1") |
| | | String SelectPassword(); |
| | | |
| | |
| | | // @Select("select * from storage_cage where glass_id=#{glassid}") |
| | | // StorageCage SelectGlassInfo(String glassid); |
| | | |
| | | //根据玻璃id查询理片笼信息 |
| | | // 根据玻璃id查询理片笼信息 |
| | | @Select("select * from storage_cage where glass_id=#{glassid}") |
| | | List<StorageCage> SelectStorageInfoByGlassId(String glassid); |
| | | |
| | | //查询玻璃信息 |
| | | // @Select("select * from glass where glassid=#{glassid}") |
| | | // 查询玻璃信息 |
| | | // @Select("select * from glass where glassid=#{glassid}") |
| | | @Select("SELECT ordernumber,listnumber,boxnumber,barcode,glasslength,glassheight,glasslength_mm,glassheight_mm FROM north_glass_buffer1 where barcode=#{barcode}") |
| | | north_glass_buffer1 SelectGlassByGlassID(String barcode); |
| | | |
| | | //启用/禁用理片笼格子 |
| | | // 启用/禁用理片笼格子 |
| | | @Update("update storage_cage set disabled=#{disabled} where cage=#{cage} and cell=#{cell}") |
| | | void Disabled(short cage, short cell, short disabled); |
| | | |
| | | //理片笼新增玻璃 |
| | | // 理片笼新增玻璃 |
| | | @Update("update storage_cage set state=1,glass_id=#{glass.glassId},order_id=#{glass.orderId},glasswidth=#{glass.glasswidth},glassheight=#{glass.glassheight},glasswidthmm=#{glass.glasswidthmm},glassheightmm=#{glass.glassheightmm},listid=#{glass.listId},boxid=#{glass.boxId} where cage=#{cage} and cell=#{cell} and tier=#{tier}") |
| | | void Inglassid(Queue glass, short cage, short cell, short tier); |
| | | |
| | | //查询理片笼中是否有此玻璃 |
| | | // 查询理片笼中是否有此玻璃 |
| | | @Select("select count(*) from storage_cage where glass_id=#{glassId}") |
| | | short SelectStorageByGlassId(String glassId); |
| | | |
| | | //根据订单查询玻璃信息 |
| | | // 根据订单查询玻璃信息 |
| | | @Select("select * from north_glass_buffer1 where position(#{orderid} in ordernumber)") |
| | | List<north_glass_buffer1> SelectGlass(String orderid); |
| | | |
| | | //获取上片队列信息 |
| | | // 获取上片队列信息 |
| | | @Select("select * from queue where id=#{id}") |
| | | Queue GetQueueInfo(int id); |
| | | |
| | | //手动添加扫码位玻璃 |
| | | // 手动添加扫码位玻璃 |
| | | @Update("update queue set glassid=#{queue.glassId},orderid=#{queue.orderId},listId=#{queue.listId},boxId=#{queue.boxId},glasswidth=#{queue.glasswidth},glassheight=#{queue.glassheight},glasswidthmm=#{queue.glasswidthmm},glassheightmm=#{queue.glassheightmm},state=1 where id=#{id}") |
| | | void InsertQueueGlassId(Queue queue,Short id); |
| | | void InsertQueueGlassId(Queue queue, Short id); |
| | | |
| | | //确认扫码位玻璃信息 |
| | | // 确认扫码位玻璃信息 |
| | | @Update("update queue set state=1 where id=1") |
| | | void UpdateQueueState(); |
| | | |
| | | //手动添加扫码位玻璃 |
| | | // 手动添加扫码位玻璃 |
| | | @Update("update queue set glassid=null,orderid=null,listid=null,boxid=null,glasswidth=null,glassheight=null,glasswidthmm=null,glassheightmm=null,state=0 where id=#{id}") |
| | | void DeleteQueueGlass(String id); |
| | | |
| | | //查询此订单在理片笼里的玻璃数 |
| | | // 查询此订单在理片笼里的玻璃数 |
| | | @Select("select count(*) from storage_cage where order_id=#{orderid}") |
| | | Short SelectGlassNo(String orderid); |
| | | |
| | | //根据玻璃id从客户表查询数据 |
| | | // 根据玻璃id从客户表查询数据 |
| | | @Select("select * from north_glass_buffer1 where barcode=#{glassid}") |
| | | north_glass_buffer1 SelectBoxNo(String glassid); |
| | | |
| | | //查询出片队列信息 |
| | | // 查询出片队列信息 |
| | | @Select("select * from out_slice order by sequence") |
| | | List<Out_slice> SelectProductionqueue(); |
| | | |
| | | //根据玻璃id查询笼内玻璃信息 |
| | | // 根据玻璃id查询笼内玻璃信息 |
| | | @Select("select * from storage_cage where glass_id=#{glassid}") |
| | | StorageCage SelectStorageGlassById(String glassid); |
| | | |
| | | //根据玻璃id查询笼内玻璃信息 |
| | | // 根据玻璃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)") |
| | | // @Update("update out_slice set state=4 where barcode=#{FrameNo} and (state=0 |
| | | // or state=1 or state=2)") |
| | | // void DeleteProductionQueueGlass(String id); |
| | | |
| | | //根据铝框id查询对应玻璃信息 |
| | | // 根据铝框id查询对应玻璃信息 |
| | | @Select("select * from north_glass_buffer1 where FrameBarcode=#{FrameBarcode}") |
| | | List<north_glass_buffer1> SelectAluminumFrameInfoById(String FrameBarcode); |
| | | |
| | | |
| | | //根据玻璃id查询出片队列信息 |
| | | // 根据玻璃id查询出片队列信息 |
| | | @Select("select * from out_slice where glassid=#{getbarcode}") |
| | | Out_slice SelectQueueByglassid(String getbarcode); |
| | | |
| | | //添加出片队列 |
| | | // 添加出片队列 |
| | | @Insert("INSERT INTO out_slice( `glassId`, `barcode`, `glasswidth`, `glassheight`, `state`, `flip`, `sequence`, `time` ,`position` ,`orderid` ,`listid` ,`boxid` ,`glasswidthmm` ,`glassheightmm` ,`framewidthmm` ,`frameheightmm` ,`framestate` ) VALUES ( #{glassid}, #{FrameNo}, #{glasslengthMm}, #{glassheightMm}, #{state}, #{flip}, #{sequence}, now(), #{position}, #{orderid}, #{listid}, #{boxid}, #{glasswidth}, #{glassheight}, #{framewidthmm}, #{frameheightmm}, 0);") |
| | | void AddOutSliceS(String glassid, String flip, String FrameNo, String glasslengthMm, String glassheightMm, int sequence, String position, Short state,String orderid, String listid, String boxid, String glasswidth, String glassheight,String framewidthmm,String frameheightmm); |
| | | void AddOutSliceS(String glassid, String flip, String FrameNo, String glasslengthMm, String glassheightMm, |
| | | int sequence, String position, Short state, String orderid, String listid, String boxid, String glasswidth, |
| | | String glassheight, String framewidthmm, String frameheightmm); |
| | | |
| | | //出片队列调序 |
| | | // 出片队列调序 |
| | | @Update("update out_slice set sequence=#{sequence} where glassid=#{glassId}") |
| | | void UpdateOutSliceSequence(String glassId,int sequence); |
| | | void UpdateOutSliceSequence(String glassId, int sequence); |
| | | |
| | | //查询出片队列最大顺序 |
| | | // 查询出片队列最大顺序 |
| | | @Select("select ifnull(max(sequence),0)+1 from out_slice ") |
| | | Short SelectMaxSquence(); |
| | | //查询用户权限 |
| | | |
| | | // 查询用户权限 |
| | | @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 or permission_id=36 or permission_id=37 or permission_id=38 or permission_id=39)") |
| | | List<RolePermission> SelectPermissionByUserName(String username); |
| | | |
| | |
| | | // @Update("update out_slice set state=2 where id=#{id}") |
| | | // void CompleteQueue(String id); |
| | | |
| | | //根据玻璃完成出片任务 |
| | | // 根据玻璃完成出片任务 |
| | | @Update("update out_slice set state=2 where glassid=#{glassid}") |
| | | void CompleteQueueByGlassId(String glassid); |
| | | |
| | | //查询铝框id对应玻璃完成数量 |
| | | // 查询铝框id对应玻璃完成数量 |
| | | @Select("select count(*) from out_slice where barcode=#{frameid} and state!=4") |
| | | Short SelectCountByFrameNo(String frameid); |
| | | |
| | | //删除已完成的任务 |
| | | // 删除已完成的任务 |
| | | @Delete("delete from out_slice where Barcode=#{frameid}") |
| | | void CompleteQueueByFrameNo(String frameid); |
| | | |
| | | //查询笼内格子剩余宽度 |
| | | // 查询笼内格子剩余宽度 |
| | | @Select("Select width from storage_cage where cage=#{cage} and cell=#{cell} limit 1") |
| | | Double SelectCageWidth(short cage, short cell); |
| | | |
| | | //修改出片队列玻璃状态为缺失 |
| | | // 修改出片队列玻璃状态为缺失 |
| | | @Update("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); |
| | | |
| | | //修改出片队列铝框状态 |
| | | // 修改出片队列铝框状态 |
| | | @Update("update out_slice set framestate=1 where barcode=#{frameno}") |
| | | void FrameStateUpdate(String frameno); |
| | | |
| | | //查询当前铝框信息 |
| | | // 查询当前铝框信息 |
| | | @Select("select * from out_slice where framestate=0 order by id limit 1") |
| | | Out_slice SelectCurrentFrame(); |
| | | |
| | | //根据玻璃id查询任务信息 |
| | | // 根据玻璃id查询任务信息 |
| | | @Select("select task_type from storage_task where glass_id=#{glassid} and task_state!=1") |
| | | Short SelectTaskByGlassId(String glassid); |
| | | |
| | | //修改格子宽度 |
| | | // 修改格子宽度 |
| | | @Update("update storage_cage set width=width+#{width} where cage=#{cage} and cell=#{cell};") |
| | | void UpdataCageWidth(double width, int cage, int cell); |
| | | |
| | | //获取铝框有没有正在出片的玻璃 |
| | | // 获取铝框有没有正在出片的玻璃 |
| | | @Select("select count(*) from out_slice where barcode=#{frameNo} and state=1") |
| | | Short SelectOutingQueueCount(String frameNo); |
| | | |
| | | |
| | | //查询理片笼内信息 |
| | | // 查询理片笼内信息 |
| | | @Select("select * from storage_cage") |
| | | List<StorageCage> SelectStorageCageInfo(); |
| | | |
| | | //删除格子内玻璃信息 |
| | | // 删除格子内玻璃信息 |
| | | @Update("update storage_cage set width=5000,glasswidth=null,glassheight=null,glasswidthmm=null,glassheightmm=null,thickness=null,glasstype=null,number=null where cell=#{cell}") |
| | | void DeleteStroageCageByCell(Integer cell); |
| | | |
| | | //修改格子玻璃数量 |
| | | |
| | | // 修改格子玻璃数量 |
| | | @Update("update storage_cage set number=ifnull(number,0)+#{num} where cell=#{cell}") |
| | | void updateStroageCageByCell(Integer cell, Integer num); |
| | | |
| | | //计算格子内剩余宽度 |
| | | // 计算格子内剩余宽度 |
| | | @Update("update storage_cage set width=5000-(glasswidth+100)*number where cell=#{cell}") |
| | | void UpdateStroageCageWidthByCell(Integer cell); |
| | | |
| | | //根据任务类型获取任务 |
| | | // 根据任务类型获取任务 |
| | | @Select("select * from storage_task where task_type=#{task_type} and task_state=0") |
| | | List<StorageTask> SelectStorageTask(int task_type); |
| | | |
| | | //根据id任务 |
| | | |
| | | // 根据id任务 |
| | | @Select("select * from storage_task where id=#{id}") |
| | | StorageTask SelectStorageTaskById(int id); |
| | | |
| | | //根据格子查询玻璃信息 |
| | | // 根据格子查询玻璃信息 |
| | | @Select("select * from storage_cage where cell=#{cell}") |
| | | StorageCage SelectStorageByCell(String cell); |
| | | |
| | | //手动完成任务 |
| | | // 手动完成任务 |
| | | @Select("update storage_task set task_state=1 where id=1429") |
| | | void FinishTask(Integer id); |
| | | |
| | | @Select("select gi.* from glassinfo gi inner join flowcard fc on gi.flowcard=fc.flowcard where fc.state!=2 and position(#{width} in gi.width) and position(#{height} in gi.height) and position(#{thickness} in gi.thickness) and position(#{films} in gi.films) group by gi.id") |
| | | List<GlassInfo> SelectGlassInfo(String width,String height,String thickness,String films); |
| | | List<GlassInfo> SelectGlassInfo(String width, String height, String thickness, String films); |
| | | |
| | | @Update("update storage_cage set glasstype=#{glassInfo.glasstype},glasswidth=#{glassInfo.width},glassheight=#{glassInfo.height},thickness=#{glassInfo.thickness},films=#{glassInfo.films},number=0 where cell=#{cell}") |
| | | void StorageCageAddGlass(String cell, GlassInfo glassInfo); |
| | |
| | | void ModeChange(String flowcard, int method); |
| | | |
| | | @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); |
| | | void UpdateQueue(String flowcard, double width, double height, Integer glasstype); |
| | | |
| | | @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); |
| | | |
| | | |
| | | // 添加出片队列 |
| | | @Insert("INSERT INTO glassinfo (`flowcard`, `glasstype`, `mateid`, `glassid`, `tier`, `films`, `width`, `height`, `thickness`, `number`, `finishnumber`, `sumtier`, `measurenumber`)" |
| | | + |
| | | " VALUES (#{flowcard}, #{glasstype}, #{mateid}, #{glassid}, #{tier}, #{films}, #{width}, #{height}, #{thickness}, #{number}, 0, #{sumtier}, 0)") |
| | | void AddGlassinfo(String flowcard, Integer glasstype, Integer mateid, String glassid, Integer tier, String films, |
| | | Double width, Double height, Double thickness, Integer number, Integer sumtier); |
| | | |
| | | // 最大玻璃类型 |
| | | @Select("select max(glasstype)+1 from glassinfo") |
| | | Integer SelectMaxType(); |
| | | |
| | | // 查询全部玻璃类型 |
| | | @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 CONCAT(IFNULL(flowcard,''),'_',IFNULL(mateid,'')),count(*) as tiersum FROM `glassinfo` group by flowcard,mateid") |
| | | List<Map> Selecttiersum(); |
| | | |
| | | // 查询笼内玻璃信息 |
| | | @Select("select * from storage_cage where cage=#{cage} order by id desc") |
| | | List<StorageCage> SelectStorageCageByCage(Integer cage); |
| | | |
| | | } |
| | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.concurrent.TimeUnit; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import com.example.springboot.common.Result; |
| | | import com.example.springboot.component.PLCAutoMes; |
| | | import com.example.springboot.component.Plchome; |
| | | import com.example.springboot.component.S7control; |
| | | import com.example.springboot.entity.FlowCard; |
| | |
| | | import com.example.springboot.entity.Queue; |
| | | import com.example.springboot.entity.StorageCage; |
| | | import com.example.springboot.entity.StorageTask; |
| | | import com.example.springboot.entity.device.PlcParameterObject; |
| | | import com.example.springboot.mapper.HomeMapper; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | |
| | | @Service |
| | | public class StorageCageService { |
| | |
| | | return storageTasks; |
| | | } |
| | | |
| | | //手动完成任务 |
| | | // 手动完成任务 |
| | | public Result FinishTask(Integer id) { |
| | | StorageTask storageTask = homeMapper.SelectStorageTaskById(id);//获取任务信息 |
| | | homeMapper.FinishTask(storageTask.getId());//完成任务 |
| | | if(storageTask.getTaskType().equals("0")){ |
| | | UpdateStroageCageByCell(Integer.parseInt(storageTask.getLoadrack()),1);//玻璃数量+1 |
| | | }else{ |
| | | StorageTask storageTask = homeMapper.SelectStorageTaskById(id);// 获取任务信息 |
| | | homeMapper.FinishTask(storageTask.getId());// 完成任务 |
| | | if (storageTask.getTaskType().equals("0")) { |
| | | UpdateStroageCageByCell(Integer.parseInt(storageTask.getLoadrack()), 1);// 玻璃数量+1 |
| | | } else { |
| | | StorageCage storageCage = homeMapper.SelectStorageByCell(storageTask.getShelfRack()); |
| | | if(storageCage.getNumber()>1){ |
| | | UpdateStroageCageByCell(Integer.parseInt(storageTask.getShelfRack()),-1);//玻璃数量-1 |
| | | }else{ |
| | | UpdateStroageCageByCell(Integer.parseInt(storageTask.getShelfRack()),0);//清除格内信息 |
| | | if (storageCage.getNumber() > 1) { |
| | | UpdateStroageCageByCell(Integer.parseInt(storageTask.getShelfRack()), -1);// 玻璃数量-1 |
| | | } else { |
| | | UpdateStroageCageByCell(Integer.parseInt(storageTask.getShelfRack()), 0);// 清除格内信息 |
| | | } |
| | | homeMapper.AddGlassNo(storageTask.getFlowcard(),storageTask.getMateid(),storageTask.geTier());//添加出片完成数量 |
| | | homeMapper.AddGlassNo(storageTask.getFlowcard(), storageTask.getMateid(), storageTask.geTier());// 添加出片完成数量 |
| | | } |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("message", "200"); |
| | | return Result.success(map); |
| | | } |
| | | |
| | | |
| | | //查询玻璃信息 |
| | | public Result SelectGlassInfo(String width,String height,String thickness,String films) { |
| | | List<GlassInfo> glassInfoList = homeMapper.SelectGlassInfo(width,height,thickness,films); |
| | | // 查询玻璃信息 |
| | | public Result SelectGlassInfo(String width, String height, String thickness, String films) { |
| | | List<GlassInfo> glassInfoList = homeMapper.SelectGlassInfo(width, height, thickness, films); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("StorageCageAddInfo", glassInfoList); |
| | | return Result.success(map); |
| | | } |
| | | |
| | | //添加玻璃到格子内 |
| | | public Result StorageCageAddGlass(String cell,GlassInfo glassInfo) { |
| | | homeMapper.StorageCageAddGlass(cell,glassInfo); |
| | | UpdateStroageCageByCell(Integer.parseInt(cell),1); |
| | | // 添加玻璃到格子内 |
| | | public Result StorageCageAddGlass(String cell, GlassInfo glassInfo) { |
| | | homeMapper.StorageCageAddGlass(cell, glassInfo); |
| | | UpdateStroageCageByCell(Integer.parseInt(cell), 1); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("message", "200"); |
| | | return Result.success(map); |
| | | } |
| | | |
| | | //查询订单任务 |
| | | // 查询订单任务 |
| | | public List<FlowCard> SelectOrderTask() { |
| | | List<FlowCard> OrderTask=homeMapper.SelectOrderTask(); |
| | | List<FlowCard> OrderTask = homeMapper.SelectOrderTask(); |
| | | for (FlowCard flowcard : OrderTask) { |
| | | flowcard.setglassinfo(homeMapper.SelectOrderView(flowcard.getFlowcard())); |
| | | } |
| | | return OrderTask; |
| | | } |
| | | |
| | | //开始任务 |
| | | // 开始任务 |
| | | public Result ClaimTasks(String flowcard, Integer state) { |
| | | if(state==1){ |
| | | homeMapper.ClaimTasks(flowcard,0); |
| | | }else{ |
| | | homeMapper.ClaimTasks(flowcard,1); |
| | | if (state == 1) { |
| | | homeMapper.ClaimTasks(flowcard, 0); |
| | | } else { |
| | | homeMapper.ClaimTasks(flowcard, 1); |
| | | } |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("message", "200"); |
| | | return Result.success(map); |
| | | } |
| | | |
| | | //任务模式修改 |
| | | // 任务模式修改 |
| | | public Result ModeChange(String flowcard, Integer method) { |
| | | if(method==1){ |
| | | homeMapper.ModeChange(flowcard,0); |
| | | }else{ |
| | | homeMapper.ModeChange(flowcard,1); |
| | | if (method == 1) { |
| | | homeMapper.ModeChange(flowcard, 0); |
| | | } else { |
| | | homeMapper.ModeChange(flowcard, 1); |
| | | } |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("message", "200"); |
| | | return Result.success(map); |
| | | } |
| | | |
| | | //修改测量信息 |
| | | // 修改测量信息 |
| | | public Result UpdateQueue(GlassInfo glassInfo) { |
| | | homeMapper.UpdateQueue(glassInfo.getFlowcard(),glassInfo.getWidth(),glassInfo.getHeight(),glassInfo.getGlasstype()); |
| | | homeMapper.UpdateQueue(glassInfo.getFlowcard(), glassInfo.getWidth(), glassInfo.getHeight(), |
| | | glassInfo.getGlasstype()); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("message", "200"); |
| | | return Result.success(map); |
| | |
| | | return homeMapper.SelectStorageCageByCage(cage); |
| | | } |
| | | |
| | | // 人工拿走 |
| | | public Result ManualTake(String glassInfo) { |
| | | // 读取DB105区文件 |
| | | PlcParameterObject plcmes = PLCAutoMes.PlcMesObject; |
| | | // 移除 |
| | | // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), |
| | | // (short) 3); |
| | | // plcmes.getPlcParameter("GaToMES").setValue("3"); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("message", "200"); |
| | | return Result.success(map); |
| | | } |
| | | |
| | | // 重新测量 |
| | | public Result AnewMeasure(String glassInfo) { |
| | | // 读取DB105区文件 |
| | | PlcParameterObject plcmes = PLCAutoMes.PlcMesObject; |
| | | // 重新测量 |
| | | // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), |
| | | // (short) 2); |
| | | // plcmes.getPlcParameter("GaToMES").setValue("2"); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("message", "200"); |
| | | return Result.success(map); |
| | | } |
| | | |
| | | // 添加小片信息 |
| | | public Result AddGlassinfo(List<Map> IportDataStr) { |
| | | |
| | | // 筛选处理数据 1.去除无用数据 2.计算配片ID 3.计算ID 4. 计算总层数 |
| | | List<Map> TypeDatas = homeMapper.SelectType(); |
| | | Map<String, String> TypeData = new HashMap<String, String>();// 得到处理完后所有的类型 |
| | | Map<String, Integer> groupby=new HashMap<String, Integer>(); // 得到处理完后所有总层数; |
| | | |
| | | List<Map> RemoveErrorData = IportDataStr.stream() |
| | | .filter(item -> (item.get("order") != null && item.get("glasstype") != null && item.get("tier") != null |
| | | && |
| | | item.get("films") != null && item.get("base") != null && item.get("height") != null |
| | | && item.get("thickness") != null && item.get("quantity") != null&& item.get("matching") != null)) |
| | | .collect(Collectors.toList()); |
| | | |
| | | TypeDatas.forEach(item -> { |
| | | TypeData.put(item.get("type").toString(), item.get("glasstype").toString()); |
| | | }); |
| | | |
| | | RemoveErrorData.forEach(item -> { |
| | | String key=item.get("order").toString()+"_"+item.get("matching").toString(); |
| | | if (groupby.get(key)!=null) { |
| | | Integer Tiers=groupby.get(key)+1; |
| | | groupby.put(key, Tiers); |
| | | }else{ |
| | | groupby.put(key, 1); |
| | | } |
| | | }); |
| | | |
| | | System.out.println(RemoveErrorData.size()); |
| | | // 处理完成 添加数据库 |
| | | for (Map map : RemoveErrorData) { |
| | | String key = map.get("base").toString() + "_" + map.get("height").toString() + "_" |
| | | + map.get("thickness").toString() + "_" + map.get("films").toString(); |
| | | |
| | | String tierkey = map.get("order").toString() + "_" + map.get("matching").toString(); |
| | | |
| | | String value = TypeData.get(key); |
| | | Integer glasstype; |
| | | 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 |
| | | , glasstype+"" // 需要计算 玻璃ID |
| | | , Integer.parseInt(map.get("tier").toString()), map.get("films").toString(), |
| | | Double.parseDouble(map.get("base").toString()), Double.parseDouble(map.get("height").toString()), |
| | | Double.parseDouble(map.get("thickness").toString()), |
| | | Integer.parseInt(map.get("quantity").toString()),groupby.get(tierkey));// 需要计算总层数 |
| | | } |
| | | Map<String, Object> ResultCode = new HashMap<>(); |
| | | ResultCode.put("message", "200"); |
| | | return Result.success(ResultCode); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |