hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/controller/LoadGlassController.java
New file @@ -0,0 +1,52 @@ package com.mes.controller; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import com.mes.common.Result; import com.mes.entity.UpWorkstation; import com.mes.service.LoadGlassService; @RestController @RequestMapping("/LoadGlass") // TidyUpGlassModule 钢化模块 public class LoadGlassController { @Autowired private LoadGlassService loadGlassService; @PostMapping("/SelectAll") //查询现在上片机的玻璃信息 @ResponseBody public Result SelectGlassInfo() { List<UpWorkstation> glass = loadGlassService.selectAll(); System.out.println(glass); return Result.seccess(glass); } @PostMapping("/insertGlass") //修改一条工位信息,接收实例类字段为宽高厚膜系数量工位id @ResponseBody public void insertGlassinfo(@RequestBody UpWorkstation upwork) { loadGlassService.insertGlass(upwork); } @PostMapping("/deleteGlass") //修改一条工位的玻璃信息,传输工位id将玻璃信息相关字段更改为null @ResponseBody public void SelectCutTerritory(int upworkid) { loadGlassService.deleteGlass(upworkid); } @PostMapping("/selectPriority") //开始上片任务 @ResponseBody public void selectPriority() { boolean result = loadGlassService.isCanLoadGlass(); if(result==true){ loadGlassService.selectPriority(); } } } hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/mapper/LoadGlassMapper.java
New file @@ -0,0 +1,24 @@ package com.mes.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import java.util.List; import org.apache.ibatis.annotations.*; import com.mes.entity.UpWorkstation; @Mapper public interface LoadGlassMapper extends BaseMapper<UpWorkstation> { //显示目前工位玻璃信息 @Select("SELECT * FROM up_workstation") List<UpWorkstation> selectALL(); //删除工位的玻璃信息 @Update("UPDATE `hangzhoumes`.`up_workstation` SET `pattern_width` =NULL, `pattern_heigth` = NULL, `pattern_thickness` = NULL, `films_id` = NULL, `number` = NULL WHERE `workstation_id`=#{id}") void deleteGlass(int id ); //增加上片信息 @Update ("UPDATE `hangzhoumes`.`up_workstation` SET `pattern_width` = #{upwork.patternwidth}, `pattern_heigth` = #{upwork.patternheigth}, `pattern_thickness` =#{upwork.patternthickness}, `films_id` =#{upwork.filmsid}, `number` = #{upwork.number} WHERE `id` = #{upwork.workstationid}; ") void insertGlass(UpWorkstation upwork); //是否发起吸片 @Select("SELECT * FROM up_workstation where workstation_id=#{id}") UpWorkstation selectAdd(int id); //判断优先工位吸片 @Select("select b.layout_sequence from up_workstation a left join up_patten_usage b on a.pattern_width=b.width and a.pattern_heigth=b.width and a.pattern_thickness=b.thickness where a.workstation_id=#{id}") int selectPriority(int id); } hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/service/LoadGlassService.java
New file @@ -0,0 +1,65 @@ package com.mes.service; import java.util.List; import org.springframework.stereotype.Service; import com.mes.entity.device.PLCAutoMes; import com.mes.common.PlcTools.S7control; import com.mes.entity.device.PlcParameterObject; import com.mes.entity.UpWorkstation; import com.mes.mapper.LoadGlassMapper; @Service public class LoadGlassService { private S7control s7control; private LoadGlassMapper LoadGlassMapper; PlcParameterObject plcmes=PLCAutoMes.PlcMesObject; //显示工位上的玻璃信息 public List<UpWorkstation> selectAll() { List<UpWorkstation> glassInfo= LoadGlassMapper.selectALL(); return glassInfo; } //增加人工输入的工位玻璃信息 public void insertGlass(UpWorkstation upwork) { LoadGlassMapper.insertGlass(upwork); } //删除人工搬走的玻璃信息 public void deleteGlass(int id) { LoadGlassMapper.deleteGlass(id); } //判断是否可以吸片进行任务 public boolean isCanLoadGlass() { String loadstate=plcmes.getPlcParameter("吸片信号").getValue(); if(loadstate.equals("1")) { return true; }else{ return false; } } //判断优先吸片位置后发送出片任务 public void selectPriority() { int loadid1=LoadGlassMapper.selectPriority(1); int loadid2=LoadGlassMapper.selectPriority(2); //判断一二号工位哪边的顺序更先 if(loadid1>loadid2) { s7control.WriteWord("DB100.10", (short)2); }else if(loadid1==loadid2){ //当两个工位上的玻璃数相同时,判断哪个工位上的玻璃数更少,优先清空一个架子 int glassnum1=Integer.parseInt(plcmes.getPlcParameter("玻璃数").getValue()); int glassnum2=Integer.parseInt(plcmes.getPlcParameter("玻璃数").getValue()); if(glassnum1>glassnum2){ s7control.WriteWord("DB100.10", (short)2); }else{ s7control.WriteWord("DB100.10", (short)1); } }else{ s7control.WriteWord("DB100.10", (short)1); } } } hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingController.java
New file @@ -0,0 +1,51 @@ package com.mes.controller; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import com.mes.common.Result; import com.mes.entity.Tempering; import com.mes.service.TemperingOverService; import com.mes.service.TemperingService; @RestController @RequestMapping("/Tempering") // TidyUpGlassModule 钢化模块 public class TemperingController { @Autowired private TemperingService temperingService; @Autowired private TemperingOverService temperingOverService; @GetMapping("/SelectWaitingGlass") // 查询钢化等片中的版图信息,状态为1的为已到,状态为0的为等待中 @ResponseBody public Result SelectWaitingGlass(@RequestParam(name = "ProcessId", required = false) String ProcessId) { List<Tempering> glass = temperingService.SelectWaitingGlass(); System.out.println(glass); return Result.seccess(glass); } @GetMapping("/SelectIntoGlass") // 查询进炉中的钢化等片中的版图信息,状态全为1的为已到。 @ResponseBody public Result SelectIntoGlass(String ProcessId) { List<Tempering> glass = temperingService.SelectIntoGlass(); System.out.println(glass); return Result.seccess(glass); } @GetMapping("/SelectOutGlass") //钢化后显示出炉的版图信息 @ResponseBody public Result SelectOutGlass(String ProcessId) { List<Tempering> glass = temperingOverService.SelectOutGlass(); System.out.println(glass); return Result.seccess(glass); } } hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingMapper.java
New file @@ -0,0 +1,33 @@ package com.mes.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.mes.entity.GlassInfo; import com.mes.entity.Tempering; import java.util.List; import org.apache.ibatis.annotations.*; @Mapper public interface TemperingMapper extends BaseMapper<Tempering> { //查询该玻璃的尺寸和坐标 @Select("select *from glass_info where id=#{glassid};") GlassInfo SelectGlass(String glassid); //是否可以发送进炉信号 @Select("select count(*) from glass_info where id=#{glassid};") int SelectTempering(String glassid); //查询等待中的钢化版图玻璃信息 @Select("select*from tempering_glass_info a left join (select flowcard_id,count(state)state from tempering_glass_info GROUP BY flowcard_id,state)b on a.flowcard_id=b.flowcard_id where b.state=2") List<Tempering> SelectWaitingGlass(); //查询进炉中的钢化版图玻璃信息 @Select("select*from tempering_glass_info a left join (select flowcard_id,min(state)state1 from tempering_glass_info GROUP BY flowcard_id having state1=1)b on a.flowcard_id=b.flowcard_id where b.state1=1") List<Tempering> SelectInGlass(); //查询钢化后的钢化版图信息 @Select("select*from tempering_glass_info a left join (select flowcard_id,min(state)state1 from tempering_glass_info GROUP BY flowcard_id having state1=2)b on a.flowcard_id=b.flowcard_id where b.state1=2") List <Tempering> SelectOutGlass(); } hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingOverService.java
New file @@ -0,0 +1,36 @@ package com.mes.service; import com.baomidou.dynamic.datasource.annotation.DS; import com.mes.common.PlcTools.S7control; import com.mes.entity.Tempering; import com.mes.entity.device.PLCAutoMes; import com.mes.entity.device.PlcParameterObject; import com.mes.mapper.TemperingMapper; import java.util.List; import org.springframework.stereotype.Service; @Service @DS("glass_info") public class TemperingOverService { private final TemperingMapper temperingMapper; //PlcParameterObject plcmes=PLCAutoMes.PlcMesObject; public TemperingOverService(TemperingMapper temperingMapper) { this.temperingMapper = temperingMapper; } //接收出炉信号和炉号 public String SelectOutSignal () { S7control.getinstance().WriteWord("出炉信号", (short)1); return "GlassInfo"; } //发送确认收到信号 public void OverSignal () { S7control.getinstance().WriteWord("确认字", (short)1); } //显示钢化出炉后的版图信息 public List <Tempering> SelectOutGlass () { return temperingMapper.SelectOutGlass(); } } hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingService.java
New file @@ -0,0 +1,58 @@ package com.mes.service; import com.baomidou.dynamic.datasource.annotation.DS; import com.mes.common.PlcTools.S7control; import com.mes.entity.GlassInfo; import com.mes.entity.Tempering; import com.mes.mapper.TemperingMapper; import java.util.List; import org.springframework.stereotype.Service; @Service @DS("glass_info") public class TemperingService { private final TemperingMapper temperingMapper; private S7control s7control; public TemperingService(TemperingMapper temperingMapper) { this.temperingMapper = temperingMapper; } //接收id返回坐标和数据 public GlassInfo SelectOutGlass (String glassid) { GlassInfo GlassInfo = temperingMapper.SelectGlass(glassid); return GlassInfo; } //发送坐标信息 public void SendCoordinate (short glassX,short glassY) { s7control.WriteWord("DB100.10", glassX); s7control.WriteWord("DB100.10", glassY); } //判断是否可以发送进炉信号 public int SelectTempering (String glassid) { int tempering = temperingMapper.SelectTempering(glassid); if (tempering == 1) { return 1; } else { return 0; } } //发送进炉信号 public void SendIntoGlass (short start) { s7control.WriteWord("DB100.10", start); } //接受完成字回复确认字 public void SendIntoGlass () { s7control.WriteWord("DB100.10", (short)1); } //显示等待中的版图 public List <Tempering> SelectWaitingGlass () { List<Tempering> WaitingGlass = temperingMapper.SelectWaitingGlass(); return WaitingGlass; } //显示正在进炉的版图 public List<Tempering> SelectIntoGlass () { List<Tempering> IntoGlass = temperingMapper.SelectInGlass(); return IntoGlass; } }