UI-Project/src/views/UnLoadGlass/Landingindication.vue
@@ -113,7 +113,7 @@ } }; const socketUrl = `ws://${WebSocketHost}:8085/api/talk/unloadglass2`; const socketUrl = `ws://${WebSocketHost}:88/api/unLoadGlass/api/talk/unloadglass2`; // 定义消息处理函数,更新 receivedData 变量 const handleMessage = (data) => { UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
@@ -112,7 +112,7 @@ } }; const socketUrl = `ws://${WebSocketHost}:8085/api/talk/unloadglass3`; const socketUrl = `ws://${WebSocketHost}:88/api/unLoadGlass/api/talk/unloadglass3`; // 定义消息处理函数,更新 receivedData 变量 const handleMessage = (data) => { UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -148,7 +148,7 @@ }; const socketUrl = `ws://${WebSocketHost}:8085/api/talk/unloadglass`; const socketUrl = `ws://${WebSocketHost}:88/api/unLoadGlass/api/talk/unloadglass`; // 定义消息处理函数,更新 receivedData 变量 const handleMessage = (data) => { hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java
@@ -1,6 +1,6 @@ package com.mes; import com.mes.common.S7object; //import com.mes.common.S7object; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java
@@ -46,7 +46,7 @@ * @param end * @return log.info(" 单片情况根据传入的工位查询符合按照大小出片, 并且优先出满架的小片 "); */ List<DownStorageCageDetails> CacheOut(int start, int end); /** * @return 出片 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
@@ -56,24 +56,24 @@ } @Override public List<DownStorageCageDetails> CacheOut(int start, int end) { log.info("单片情况根据传入的工位查询符合按照大小出片,并且优先出满架的小片"); return downStorageCageDetailsMapper.selectJoinList( DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>() .select("t.*") .leftJoin("(SELECT t1.* FROM down_storage_cage_details t1 " + "JOIN (SELECT flow_card_id, MAX(width*height) AS max_width FROM glass_info GROUP BY flow_card_id) t " + "ON t1.flow_card_id = t.flow_card_id WHERE t1.width*t1.height = t.max_width) t3" + " ON t.glass_id = t3.glass_id") .leftJoin("down_workstation t4 ON t3.flow_card_id = t4.flow_card_id") .isNull(Boolean.parseBoolean("t.glass_id"), "SELECT glass_id FROM down_glass_info") .between("t4.workstation_id", start, end) // 根据 racks_number 排序 .orderByDesc("t4.racks_number") ); } // @Override // public List<DownStorageCageDetails> CacheOut(int start, int end) { // log.info("单片情况根据传入的工位查询符合按照大小出片,并且优先出满架的小片"); // return downStorageCageDetailsMapper.selectJoinList( // DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>() // .select("t.*") // .leftJoin("(SELECT t1.* FROM down_storage_cage_details t1 " // + "JOIN (SELECT flow_card_id, MAX(width*height) AS max_width FROM glass_info GROUP BY flow_card_id) t " // + "ON t1.flow_card_id = t.flow_card_id WHERE t1.width*t1.height = t.max_width) t3" // + " ON t.glass_id = t3.glass_id") // .leftJoin("down_workstation t4 ON t3.flow_card_id = t4.flow_card_id") // .isNull(Boolean.parseBoolean("t.glass_id"), "SELECT glass_id FROM down_glass_info") // .between("t4.workstation_id", start, end) // // 根据 racks_number 排序 // .orderByDesc("t4.racks_number") // // ); // } // @Override hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java
@@ -5,7 +5,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.mes.device.PlcParameterObject; //import com.mes.device.PlcParameterObject; import com.mes.downglassinfo.entity.DownGlassTask; import com.mes.downglassinfo.service.DownGlassTaskService; import com.mes.downstorage.entity.DownStorageCage; hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/engineering/controller/EngineeringController.java
New file @@ -0,0 +1,29 @@ package com.mes.engineering.controller; import com.mes.engineering.entity.Engineering; import com.mes.engineering.service.EngineeringService; import com.mes.utils.Result; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; /** * <p> * 前端控制器 * </p> * * @author wu * @since 2024-04-22 */ @RestController @Slf4j @RequestMapping("/engineering/engineering") public class EngineeringController { } hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/engineering/entity/Engineering.java
New file @@ -0,0 +1,100 @@ package com.mes.engineering.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import java.io.Serializable; import lombok.Data; import lombok.EqualsAndHashCode; /** * <p> * * </p> * * @author wu * @since 2024-04-22 */ @Data @EqualsAndHashCode(callSuper = false) public class Engineering implements Serializable { private static final long serialVersionUID = 1L; /** * 工程表id */ @TableId(value = "id", type = IdType.AUTO) private Long id; /** * 工程号 */ private String engineerId; /** * 工程名称 */ private String engineerName; /** * 平均利用率 */ private Double avgAvailability; /** * 有效利用率 */ private Double validAvailability; /** * 尾片利用率 */ private Double lastAvailability; /** * 状态 */ private Integer state; /** * 小片总数 */ private Integer glassTotal; /** * 小片总面积 */ private Double glassTotalArea; /** * 计划原片总数 */ private Integer planPatternTotal; /** * 计划原片总面积 */ private Double planPatternTotalArea; /** * 实际原片总数 */ private Integer realityPatternTotal; /** * 实际原片总面积 */ private Double realityPatternTotalArea; /** * 膜系id */ private String filmsId; /** * 备注 */ private String notes; } hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/engineering/mapper/EngineeringMapper.java
New file @@ -0,0 +1,17 @@ package com.mes.engineering.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.github.yulichang.base.MPJBaseMapper; import com.mes.engineering.entity.Engineering; /** * <p> * Mapper 接口 * </p> * * @author wu * @since 2024-04-22 */ public interface EngineeringMapper extends MPJBaseMapper<Engineering> { } hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/engineering/mapper/xml/EngineeringMapper.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mes.engineering.mapper.EngineeringMapper"> </mapper> hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/engineering/service/EngineeringService.java
New file @@ -0,0 +1,20 @@ package com.mes.engineering.service; import com.baomidou.mybatisplus.extension.service.IService; import com.mes.engineering.entity.Engineering; import java.util.List; /** * <p> * 服务类 * </p> * * @author wu * @since 2024-04-22 */ public interface EngineeringService extends IService<Engineering> { } hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java
New file @@ -0,0 +1,33 @@ package com.mes.engineering.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mes.engineering.entity.Engineering; import com.mes.engineering.mapper.EngineeringMapper; import com.mes.engineering.service.EngineeringService; import com.mes.pp.entity.OptimizeProject; import com.mes.pp.mapper.OptimizeProjectMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; /** * <p> * 服务实现类 * </p> * * @author wu * @since 2024-04-22 */ @Service @Slf4j public class EngineeringServiceImpl extends ServiceImpl<EngineeringMapper, Engineering> implements EngineeringService { } hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java
@@ -1,6 +1,7 @@ package com.mes.glassinfo.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.github.yulichang.base.MPJBaseMapper; import com.mes.glassinfo.entity.GlassInfo; import org.mapstruct.Mapper; @@ -13,7 +14,7 @@ * @since 2024-03-27 */ @Mapper public interface GlassInfoMapper extends BaseMapper<GlassInfo> { public interface GlassInfoMapper extends MPJBaseMapper<GlassInfo> { hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
@@ -1,7 +1,11 @@ package com.mes.glassinfo.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.yulichang.toolkit.JoinWrappers; import com.mes.engineering.entity.Engineering; import com.mes.engineering.mapper.EngineeringMapper; import com.mes.glassinfo.entity.GlassInfo; import com.mes.glassinfo.mapper.GlassInfoMapper; import com.mes.glassinfo.service.GlassInfoService; @@ -22,11 +26,13 @@ @Service public class GlassInfoServiceImpl extends ServiceImpl<GlassInfoMapper, GlassInfo> implements GlassInfoService { private EngineeringMapper engineeringMapper; private GlassInfoMapper glassInfoMapper; @Autowired(required=false) public GlassInfoServiceImpl(GlassInfoMapper glassInfoMapper) { public GlassInfoServiceImpl(GlassInfoMapper glassInfoMapper, EngineeringMapper engineeringMapper) { this.glassInfoMapper = glassInfoMapper; this.engineeringMapper = engineeringMapper; } @Override @@ -36,15 +42,24 @@ } @Override public List<Map<String, Object>> getFlowCardId() { return baseMapper.selectMaps(new QueryWrapper<GlassInfo>().lambda().select(GlassInfo::getFlowCardId).groupBy(GlassInfo::getFlowCardId)); return glassInfoMapper.selectJoinMaps(JoinWrappers.lambda(GlassInfo.class) .select(GlassInfo::getFlowCardId) // 选择需要查询的字段 .eq(GlassInfo::getEngineerId, Engineering::getEngineerId) // 设置关联条件 .eq(Engineering::getState, 0) .distinct() ); } @Override public GlassInfo selectGlassId(String id) { return baseMapper.selectOne(new QueryWrapper<GlassInfo>().lambda() hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/WebSocketConfig.java
@@ -8,9 +8,6 @@ public class WebSocketConfig { @Bean public ServerEndpointExporter serverEndpointExporter() { return new ServerEndpointExporter(); } } hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java
@@ -17,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.web.socket.config.annotation.EnableWebSocket; import java.util.Arrays; import java.util.List; @@ -30,6 +31,7 @@ @Slf4j @RunWith(SpringRunner.class) @SpringBootTest(classes = UnLoadGlassApplication.class) public class UnloadGlassModuleApplicationTest { @Autowired @@ -106,12 +108,12 @@ } @Test public void CacheEmpty() { log.info("测试出片"); downStorageCageDetailsService.CacheOut(1,2); } // @Test // public void CacheEmpty() { // log.info("测试出片"); // downStorageCageDetailsService.CacheOut(1,2); // // } @Test public void CacheEmpty1() { log.info("测试出片"); @@ -152,5 +154,13 @@ downStorageCageServiceImpl.selectCacheEmpty(); } @Test public void getFlowCardId() { glassInfoServiceImpl.getFlowCardId(); } }