hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/EngineeringService.java
@@ -16,13 +16,23 @@ public interface EngineeringService extends IService<Engineering> { /** * 开始/暂停任务 * @return boolean */ boolean changeTask(String projectId, Integer state); /** * 查询钢化信息 * @return List<Engineering> */ List<Engineering> selectEngineering(String engineeringId); void saveEngineering(List<Engineering> engineerings); /** * 保存钢化信息 */ void saveEngineering(List<Engineering> engineering); /** * 查询是否有上片任务 * @return Engineering */ Engineering selectInitiate(Integer state); } hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java
@@ -79,8 +79,8 @@ } @Override public void saveEngineering(List<Engineering> engineerings) { this.saveBatch(engineerings); public void saveEngineering(List<Engineering> engineering) { this.saveBatch(engineering); //保存钢化工程信息 } hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/GlassInfoService.java
@@ -13,9 +13,14 @@ * @since 2024-04-29 */ public interface GlassInfoService extends MPJBaseService<GlassInfo> { /** * 查询小片表 * @return List<GlassInfo> */ List<GlassInfo> selectGlassInfo(String engineeringId); /** * 保存小片表 */ void saveGlassInfo(List<GlassInfo> glassinfo); } hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeProjectService.java
@@ -1,6 +1,5 @@ package com.mes.pp.service; import com.baomidou.mybatisplus.extension.service.IService; import com.github.yulichang.base.MPJBaseService; import com.mes.pp.entity.OptimizeProject; import com.mes.pp.entity.request.OptimizeRequest; @@ -19,17 +18,12 @@ /** * 查询可领取的任务工程信息 * @return * @return List<OptimizeProject> */ List<OptimizeProject> listByState(OptimizeRequest optimizeRequest); /** * 将工程信息保存到原片使用详情表 * @return */ void insetupPattenUsage(List<OptimizeProject> glass); /** * 将工程信息更新状态为已领取 * @return */ void changeTask(String engineeringId, int i); } hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeProjectServiceImpl.java
@@ -9,7 +9,6 @@ import com.mes.pp.entity.request.OptimizeRequest; import com.mes.pp.mapper.OptimizeProjectMapper; import com.mes.pp.service.OptimizeProjectService; import com.mes.uppattenusage.entity.UpPattenUsage; import com.mes.uppattenusage.mapper.UpPattenUsageMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -44,18 +43,6 @@ return this.list(wrapper); } @Override public void insetupPattenUsage(List<OptimizeProject> glass) { log.info("循环查询结果保存到UpPattenUsage表中"); for (OptimizeProject project : glass) { UpPattenUsage upPattenUsage = new UpPattenUsage(); upPattenUsage.setEngineeringId(project.getProjectNo()); upPattenUsage.setFilmsId(project.getGlassType()); upPattenUsage.setState(project.getState()); upPattenUsageMapper.insert(upPattenUsage); } } @Override public void changeTask(String engineeringId, int state) { hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java
@@ -53,7 +53,7 @@ UpPattenUsage upPattenUsage= upPattenUsageService.selectedEngineering(engineeringId); if (upPattenUsage!=null){ log.info("已保存过"); return Result.build(200, "已保存过", 200); return Result.build(200, "已保存的工程", 200); }else { List<UpPattenUsage> upPattenUsages = upPattenUsageService.selectSaveUpPattenUsage(engineeringId); log.info("将查询出的UpPattenUsage数据保存到数据库表里"); @@ -62,8 +62,8 @@ List<GlassInfo> glassinfo=glassInfoService.selectGlassInfo(engineeringId); glassInfoService.saveGlassInfo(glassinfo); log.info("从PP表查询engineering的数据并保存到表里"); List<Engineering> engineerings= engineeringService.selectEngineering(engineeringId); engineeringService.saveEngineering(engineerings); List<Engineering> engineering= engineeringService.selectEngineering(engineeringId); engineeringService.saveEngineering(engineering); log.info("更改pp表状态为已领取"); optimizeProjectService.changeTask(engineeringId, 200); return Result.build(200, "", 200); hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java
@@ -3,7 +3,6 @@ import com.mes.uppattenusage.entity.UpPattenUsage; import java.util.List; import java.util.Map; /** * <p> @@ -14,15 +13,33 @@ * @since 2024-04-18 */ public interface UpPattenUsageService extends MPJBaseService<UpPattenUsage> { /** * 查询工位上的玻璃信息 * @return List<UpPattenUsage> */ List<UpPattenUsage> prioritylist(int state); /** * 查询上片顺序信息 * @return List<UpPattenUsage> */ List<UpPattenUsage> selectSaveUpPattenUsage(String engineeringId); /** * 保存上片顺序信息 */ void saveUpPattenUsage(List<UpPattenUsage> upPattenUsages); void updateupPattenUsageState(UpPattenUsage upPattenUsage, Integer state); /** * 更新上片表状态 */ void updateUpPattenUsageState(UpPattenUsage upPattenUsage, Integer state); /** * 判断此工程是否已保存过 * @return UpPattenUsage */ UpPattenUsage selectedEngineering(String engineeringId); /** * 查询正在执行的上片任务 * @return UpPattenUsage */ UpPattenUsage selectOverTask(); } hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java
@@ -82,7 +82,7 @@ } @Override public void updateupPattenUsageState(UpPattenUsage upPattenUsage, Integer state) { public void updateUpPattenUsageState(UpPattenUsage upPattenUsage, Integer state) { upPattenUsage.setState(state); boolean updateSuccess=this.updateById(upPattenUsage); log.info("更新状态{}",updateSuccess); @@ -97,5 +97,14 @@ return this.getOne(wrapper); } @Override public UpPattenUsage selectOverTask() { QueryWrapper<UpPattenUsage>wrapper = new QueryWrapper<>(); wrapper.gt("state",0) .lt("state",99) .last("limit 1"); return this.getOne(wrapper); } } hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
@@ -1,6 +1,5 @@ package com.mes.job; import cn.hutool.json.JSONObject; import com.mes.common.S7object; import com.mes.device.PlcParameterObject; import com.mes.engineering.entity.Engineering; @@ -24,11 +23,12 @@ @Autowired private UpWorkstationService upWorkstationService; @Autowired private EngineeringService engineeringService; private EngineeringService engineeringService; @Autowired private UpPattenUsageService upPattenUsageService; PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; /** * fixedRate : 上一个调用开始后再次调用的延时(不用等待上一次调用完成) * fixedDelay : 上一个调用结束后再次调用的延时 @@ -37,47 +37,47 @@ @Scheduled(fixedDelay = 300) public void plcLoadGlassTask() throws InterruptedException { try { log.info("开始上片"); //获取是否有上片请求 String loadRequest = plcParameterObject.getPlcParameter("loadRequest").getValue(); //判断开始上片的工程号 Engineering engineering=engineeringService.selectInitiate(1); if("1".equals(loadRequest)&&engineering!=null){ UpPattenUsage upPattenUsage=upWorkstationService.selectPriority(engineering); log.info("当有请求时查询当前上片顺序的玻璃信息{}",upPattenUsage); UpWorkstation upwork=upWorkstationService.selectworkstation(upPattenUsage); log.info("符合的尺寸的工位玻璃:{}",upwork); if(upwork!=null){ int workId=upwork.getWorkstationId();//工位id double width=upwork.getPatternWidth();//宽度 double height=upwork.getPatternHeight();//高度 S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("WorkId").getAddress(),workId); Engineering engineering = engineeringService.selectInitiate(1); if ("1".equals(loadRequest) && engineering != null) { log.info("开始上片任务"); UpPattenUsage upPattenUsage = upWorkstationService.selectPriority(engineering); log.info("当有请求时查询当前上片顺序的玻璃信息{}", upPattenUsage); UpWorkstation upwork = upWorkstationService.selectWorkstation(upPattenUsage); log.info("符合的尺寸的工位玻璃:{}", upwork); if (upwork != null) { int workId = upwork.getWorkstationId();//工位id double width = upwork.getPatternWidth();//宽度 double height = upwork.getPatternHeight();//高度 S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("WorkId").getAddress(), workId); S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("GlassWidth").getAddress(), (long) width); S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("GlassHeight").getAddress(), (long) height); S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlc").getAddress(),1); //减少工位数量 upWorkstationService.reduceWorkstationNumber(upwork); //完成上片表状态 upPattenUsageService.updateupPattenUsageState(upPattenUsage,1); S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlc").getAddress(), 1); //更改上片表状态 upPattenUsageService.updateUpPattenUsageState(upPattenUsage, workId); } } //获取是否有汇报 String loadStatus = plcParameterObject.getPlcParameter("PlcStatus").getValue(); if (loadStatus!=null) { if (loadStatus != null) { log.info(loadStatus); if ("1".equals(loadStatus)) { log.info("收到汇报任务完成"); S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(), 1); } else if ("2".equals(loadStatus)) { log.info("收到汇报未完成任务"); S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(), 1); //减少工位数量,恢复任务状态 overTask(loadStatus,0); } else if ("3".equals(loadStatus)) { log.info("收到汇报玻璃破损"); S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(), 1); } else { log.info("收到汇报清0状态"); S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(), 0); overTask(loadStatus,0); } else if("0".equals(loadStatus)){ log.info("收到汇报清0状态"); //减少工位数量,完成任务状态 overTask(loadStatus,1); } } //执行后休眠300毫秒 @@ -86,28 +86,16 @@ e.printStackTrace(); } } // @Scheduled(fixedDelay = 300) // public void plcLoadGlassOver() throws InterruptedException { // try { // //获取是否有汇报 // String loadStatus = plcParameterObject.getPlcParameter("PlcStatus").getValue(); // if ("1".equals(loadStatus)){ // log.info("收到汇报任务完成"); // S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(),1); // }else if ("2".equals(loadStatus)) { // log.info("收到汇报未完成任务"); // S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(),1); // }else if("3".equals(loadStatus)){ // log.info("收到汇报玻璃破损"); // S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(),1); // }else { // log.info("收到汇报清0状态"); // S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(),0); // } // // } catch (Exception e) { // e.printStackTrace(); // } // } public void overTask(String loadStatus,int state) throws InterruptedException { UpPattenUsage upPattenUsage = upPattenUsageService.selectOverTask(); if (upPattenUsage != null) { log.info("收到汇报清{}状态",loadStatus); //减少工位数量 upWorkstationService.reduceWorkstationNumber(upPattenUsage.getState()); //完成上片表状态 upPattenUsageService.updateUpPattenUsageState(upPattenUsage, 100); S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(), 0); } } } hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java
@@ -3,7 +3,6 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.mes.engineering.entity.Engineering; import com.mes.uppattenusage.entity.UpPattenUsage; import com.mes.workstation.entity.UpWorkSequence; import com.mes.workstation.entity.UpWorkstation; /** @@ -15,24 +14,26 @@ * @since 2024-04-07 */ public interface UpWorkstationService extends IService<UpWorkstation> { //PlcParameterObject plcmes=PLCAutoMes.PlcMesObject; //判断优先吸片玻璃 /** * 判断优先吸片位置 * @return UpPattenUsage */ UpPattenUsage selectPriority(Engineering engineering); //查询正在进行的单片信息 UpWorkstation selectworkstation(UpPattenUsage upPattenUsage); //减少工位数量 void reduceWorkstationNumber(UpWorkstation upwork); /** * 查询正在进行的单片信息 * @return UpWorkstation */ UpWorkstation selectWorkstation(UpPattenUsage upPattenUsage); /** * 减少工位数量 */ void reduceWorkstationNumber(Integer upworkId); /** * 增加人工输入的工位玻璃信息 * * @param upwork */ //修改工位表增加玻璃信息或者删除玻璃信息 void updateGlassMessage(UpWorkstation upwork); hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java
@@ -46,7 +46,7 @@ //判断工位是否有符合条件的玻璃 @Override public UpWorkstation selectworkstation(UpPattenUsage upPattenUsage) { public UpWorkstation selectWorkstation(UpPattenUsage upPattenUsage) { QueryWrapper<UpWorkstation> wrapper = new QueryWrapper<>(); wrapper.eq("pattern_width", upPattenUsage.getWidth()) .eq("pattern_height", upPattenUsage.getHeight()) @@ -59,9 +59,9 @@ } @Override public void reduceWorkstationNumber(UpWorkstation upwork) { public void reduceWorkstationNumber(Integer upworkId) { UpdateWrapper<UpWorkstation> wrapper = new UpdateWrapper<>(); wrapper.eq("id", upwork.getWorkstationId()) wrapper.eq("id", upworkId) .setSql("number = number - 1"); boolean updateResult = upWorkstationMapper.update(null, wrapper) > 0; log.info("减少工位数量{}",updateResult); @@ -79,4 +79,5 @@ } } hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml
@@ -7,5 +7,5 @@ name: loadGlass mybatis-plus: mapper-locations: classpath*:mapper/*.xml configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # configuration: # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 打印sql语句 hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java
@@ -4,7 +4,6 @@ import com.mes.engineering.service.EngineeringService; import com.mes.glassinfo.entity.GlassInfo; import com.mes.glassinfo.service.GlassInfoService; import com.mes.pp.mapper.OptimizeProjectMapper; import com.mes.pp.service.OptimizeProjectService; import com.mes.uppattenusage.entity.UpPattenUsage; import com.mes.uppattenusage.service.impl.UpPattenUsageServiceImpl; @@ -17,7 +16,6 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import javax.annotation.Resource; import java.util.Arrays; import java.util.List; @@ -59,11 +57,11 @@ log.info("开始上片的工程:{}", Arrays.asList(engineering)); UpPattenUsage upPattenUsage = workstationService.selectPriority(engineering); log.info("上片顺序:{}", Arrays.asList(upPattenUsage)); UpWorkstation glass2=workstationService.selectworkstation(upPattenUsage); UpWorkstation glass2=workstationService.selectWorkstation(upPattenUsage); log.info("符合的工位玻璃{}",glass2); workstationService.reduceWorkstationNumber(glass2); workstationService.reduceWorkstationNumber(glass2.getWorkstationId()); //减少数量 upPattenUsageService.updateupPattenUsageState(upPattenUsage,1); upPattenUsageService.updateUpPattenUsageState(upPattenUsage,1); //更新状态 } @@ -87,6 +85,8 @@ @Test public void textengineering3(){ //判断是否已保存过工程号到上片表 upPattenUsageService.selectedEngineering("P24050801"); UpPattenUsage upPattenUsage=upPattenUsageService.selectOverTask(); log.info("上片表任务中的数据{}",upPattenUsage); } }