hangzhoumesParent/common/pom.xml
@@ -191,16 +191,26 @@ <version>1.2.33</version> </dependency> <!-- <dependency>--> <!-- <groupId>com.github.yulichang</groupId>--> <!-- <artifactId>mybatis-plus-join</artifactId>--> <!-- <version>1.2.4</version>--> <!-- </dependency>--> <!-- <dependency>--> <!-- <groupId>com.github.yulichang</groupId>--> <!-- <artifactId>mybatis-plus-join</artifactId>--> <!-- <version>1.2.4</version>--> <!-- </dependency>--> <dependency> <groupId>com.github.yulichang</groupId> <artifactId>mybatis-plus-join-boot-starter</artifactId> <version>1.4.12</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> </dependencies> hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/OptimizeGlassinfo.java
@@ -43,6 +43,16 @@ private String glassType; /** * 层数 */ private int layer; /** * 总层数 */ private int totalLayer; /** * 小片宽(加磨量) */ private Double pWidth; hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
@@ -1,6 +1,7 @@ package com.mes.glassinfo.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.github.yulichang.base.MPJBaseServiceImpl; import com.github.yulichang.query.MPJQueryWrapper; import com.mes.glassinfo.entity.GlassInfo; import com.mes.glassinfo.entity.OptimizeGlassinfo; @@ -11,7 +12,6 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.github.yulichang.base.MPJBaseServiceImpl; import java.util.ArrayList; import java.util.List; @@ -35,7 +35,7 @@ List<OptimizeGlassinfo> optimizeGlassinfos=null; if (engineeringId != null) { optimizeGlassinfos = optimizeProjectMapper.selectJoinList(OptimizeGlassinfo.class, new MPJQueryWrapper<OptimizeProject>() .select("b.process_id,t.type,b.width,b.height,t.glass_thickness,t.glass_type,b.p_width,b.p_height,b.stock_id,b.heat_layout_id,b.heat_layout_sort,b.x_axis,b.y_axis,b.project_no,b.glass_id") .select("b.process_id,t.type,b.width,b.height,t.glass_thickness,t.glass_type,b.p_width,b.p_height,b.layer, b.total_layer, b.stock_id,b.heat_layout_id,b.heat_layout_sort,b.x_axis,b.y_axis,b.project_no,b.glass_id") .leftJoin("optimize_detail b on t.project_no=b.project_no") .eq("t.state",100) .eq("t.project_no", engineeringId)); @@ -56,6 +56,8 @@ glassInfo.setWidth(map.getWidth()); glassInfo.setHeight(map.getHeight()); glassInfo.setEdgWidth(map.getPWidth()); glassInfo.setLayer(map.getLayer()); glassInfo.setTotalLayer(map.getTotalLayer()); glassInfo.setEdgHeight(map.getPHeight()); glassInfo.setThickness(map.getGlassThickness()); glassInfo.setPatternSequence(map.getStockId());// hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java
@@ -22,12 +22,6 @@ public static ConfigurableApplicationContext applicationContext; // 解决无法注入mapper问题 //使用方法 // homeMapper=WebSocketServer.applicationContext.getBean(HomeMapper.class); public static void setApplicationContext(ConfigurableApplicationContext configurableApplicationContext) { WebSocketServer.applicationContext = configurableApplicationContext; } private static final Logger log = LoggerFactory.getLogger(WebSocketServer.class); private List<String> messages; /** @@ -111,8 +105,6 @@ JSONObject jsonObject = new JSONObject(); jsonObject.set("message", text); this.messages.add(text); this.sendMessage(jsonObject.toString()); // JSONUtil.toJsonStr(jsonObject) } @OnError hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/EdgStorageCageDetails.java
@@ -31,6 +31,11 @@ /** * 设备id */ private String engineerId; /** * 设备id */ private Integer deviceId; /** hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.yulichang.query.MPJQueryWrapper; import com.mes.common.S7object; import com.mes.common.WebSocketServer; import com.mes.common.config.Const; import com.mes.device.PlcParameterObject; import com.mes.edgglasstask.entity.EdgGlassTaskInfo; @@ -19,6 +18,7 @@ import com.mes.glassinfo.service.GlassInfoService; import com.mes.taskcache.entity.TaskCache; import com.mes.taskcache.service.TaskCacheService; import com.mes.tools.WebSocketServer; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.beans.BeanUtils; @@ -142,37 +142,67 @@ */ private void inTo(String glassId, String confirmationWrodAddress, String currentSlot) { log.info("1、按照玻璃id:{}获取玻璃小片信息,当前格子为:{}", glassId, currentSlot); GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId)); //TODO: 查询玻璃 if (glassInfo == null) { log.info("2、此玻璃编号不存在"); return; } log.info("2、获取到的玻璃信息为{}", glassInfo); //添加进片任务 查找空格 EdgStorageCage nearestEmpty = edgStorageCageService.selectNearestEmpty(Integer.parseInt(currentSlot), Boolean.FALSE); Assert.isTrue(null != nearestEmpty, "格子已满"); log.info("3、查询卧式理片笼里面的空格:{}", nearestEmpty); log.info("2、查询卧式理片笼里面的空格:{}", nearestEmpty); log.info("4、将玻璃信息插入卧式理片笼,当前玻璃信息:{}", glassInfo); //查询玻璃并进行交换 GlassInfo glassInfo = queryAndChangeGlass(glassId); log.info("3、将玻璃信息插入卧式理片笼,当前玻璃信息:{}", glassInfo); EdgStorageCageDetails details = new EdgStorageCageDetails(); BeanUtils.copyProperties(glassInfo, details); details.setState(Const.GLASS_STATE_IN); details.setSlot(nearestEmpty.getSlot()); details.setDeviceId(nearestEmpty.getDeviceId()); edgStorageCageDetailsService.save(details); log.info("5、玻璃信息已存入理片笼详情表,玻璃信息为{}", details); log.info("4、玻璃信息已存入理片笼详情表,玻璃信息为{}", details); //添加进片任务 boolean taskCache = saveTaskCache(details.getGlassId(), 0, nearestEmpty.getSlot(), Const.GLASS_CACHE_TYPE_IN); log.info("6、生成进片任务信息存入任务表是否完成:{}", taskCache); log.info("5、生成进片任务信息存入任务表是否完成:{}", taskCache); S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, (short) 1); log.info("7、发送确认字完成"); log.info("6、发送确认字完成"); } /** * 查询玻璃并进行交换 * * @param glassId * @return */ public GlassInfo queryAndChangeGlass(String glassId) { GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId)); Assert.isFalse(null == glassInfo, "玻璃信息不存在"); //按照玻璃尺寸 LambdaQueryWrapper<GlassInfo> queryWrapper = new LambdaQueryWrapper<GlassInfo>() .eq(GlassInfo::getWidth, glassInfo.getWidth()) .eq(GlassInfo::getHeight, glassInfo.getHeight()) .eq(GlassInfo::getThickness, glassInfo.getThickness()) .eq(GlassInfo::getFilmsid, glassInfo.getFilmsid()) .eq(GlassInfo::getTotalLayer, glassInfo.getTotalLayer()) .eq(GlassInfo::getLayer, glassInfo.getLayer()) .eq(GlassInfo::getEngineerId, glassInfo.getEngineerId()) .notInSql(GlassInfo::getGlassId, "select distinct glass_id from edg_storage_cage_details " + "where engineer_id = '" + glassInfo.getEngineerId() + "' and width = " + glassInfo.getWidth() + " and height = " + glassInfo.getHeight()) .orderByAsc(GlassInfo::getTemperingLayoutId) .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence) .last("Limit 1"); GlassInfo swapGlassInfo = glassInfoService.getOne(queryWrapper); if (swapGlassInfo != null && !glassInfo.getGlassId().equals(swapGlassInfo.getGlassId())) { String swapGlassId = swapGlassInfo.getGlassId(); swapGlassInfo.setGlassId(glassId); glassInfo.setGlassId(swapGlassId); glassInfoService.updateById(swapGlassInfo); glassInfoService.updateById(glassInfo); return swapGlassInfo; } return glassInfo; } /** * 出片任务 * * @param out08Glassstate hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -9,14 +9,13 @@ import com.mes.bigstoragetask.service.BigStorageCageFeedTaskService; import com.mes.bigstoragetask.service.BigStorageCageOutTaskService; import com.mes.common.S7object; import com.mes.common.WebSocketServer; import com.mes.device.PlcParameterObject; import com.mes.edgstoragetask.service.TaskCacheService; import com.mes.glassinfo.entity.GlassInfo; import com.mes.glassinfo.service.GlassInfoService; import com.mes.menu.service.SysMenuService; import com.mes.tools.WebSocketServer; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; hangzhoumesParent/moduleService/UnLoadGlassModule/pom.xml
@@ -30,12 +30,6 @@ <artifactId>sqljdbc4</artifactId> <version>4.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> </dependencies> <properties> hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/UnLoadGlassApplication.java
@@ -1,12 +1,10 @@ package com.mes; import com.mes.tools.WebSocketServer; import lombok.extern.slf4j.Slf4j; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.scheduling.annotation.EnableScheduling; import springfox.documentation.swagger2.annotations.EnableSwagger2; @@ -23,11 +21,8 @@ @EnableScheduling public class UnLoadGlassApplication { public static void main(String[] args) { SpringApplication springApplication = new SpringApplication(UnLoadGlassApplication.class); ConfigurableApplicationContext applicationContext = springApplication.run(args); WebSocketServer.setApplicationContext(applicationContext); SpringApplication.run(UnLoadGlassApplication.class, args); } } hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
@@ -1,23 +1,12 @@ package com.mes.downglassinfo.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mes.downglassinfo.entity.DownGlassInfo; import com.mes.downglassinfo.entity.DownGlassTask; import com.mes.downglassinfo.mapper.DownGlassInfoMapper; import com.mes.downglassinfo.service.DownGlassInfoService; import com.mes.downglassinfo.service.DownGlassTaskService; import com.mes.downworkstation.entity.DownWorkstation; import com.mes.downworkstation.mapper.DownWorkstationMapper; import com.mes.downworkstation.service.DownWorkstationService; import com.mes.downworkstation.service.DownWorkstationTaskService; import com.mes.tools.WebSocketServer; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.util.List; @Service public class DownGlassInfoServiceImpl extends ServiceImpl<DownGlassInfoMapper, DownGlassInfo> implements DownGlassInfoService { hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java
@@ -1,37 +1,23 @@ package com.mes.job; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Assert; import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.mes.common.S7object; import com.mes.common.config.Const; import com.mes.device.PlcParameterObject; import com.mes.downglassinfo.entity.DownGlassInfo; import com.mes.downglassinfo.mapper.DownGlassInfoMapper; import com.mes.downglassinfo.entity.DownGlassTask; import com.mes.downglassinfo.service.DownGlassInfoService; import com.mes.downstorage.entity.DownStorageCage; import com.mes.downglassinfo.service.DownGlassTaskService; import com.mes.downstorage.entity.DownStorageCageDetails; import com.mes.downstorage.service.DownStorageCageDetailsService; import com.mes.downstorage.service.DownStorageCageService; import com.mes.downworkstation.entity.DownWorkstation; import com.mes.downworkstation.entity.DownWorkstationTask; import com.mes.downworkstation.service.DownWorkstationService; import com.mes.downworkstation.service.DownWorkstationTaskService; import com.mes.glassinfo.entity.GlassInfo; import com.mes.glassinfo.service.GlassInfoService; import com.mes.downglassinfo.entity.DownGlassTask; import com.mes.downglassinfo.service.DownGlassTaskService; import com.mes.tools.WebSocketServer; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.Date; import java.util.List; /**