UI-Project/config.js
@@ -1,10 +1,6 @@ // export default { // serverUrl: "localhost:8083/api/loadGlass", // serverUrl2: "localhost:8085" // //serverUrl:"res.abeim.cn" // } export default { serverUrl: "localhost:88/api", serverUrl2: "localhost:8085" //serverUrl:"res.abeim.cn" } serverUrl: "localhost:88/api/loadGlass", //serverUrl: "localhost:88/api/", serverUrl2: "localhost:8085" //serverUrl:"res.abeim.cn" } UI-Project/src/layout/MainErpView.vue
@@ -2,27 +2,26 @@ import {useRouter} from 'vue-router' import useUserInfoStore from '@/stores/userInfo' import userInfo from '@/stores/userInfo' import request from "@/utils/request"; import {ElMessage} from "element-plus"; import {ref, watch} from "vue" import deepClone from "@/utils/deepClone" import request from '@/utils/request' import {ElMessage} from 'element-plus' import {ref, watch} from 'vue' import deepClone from '@/utils/deepClone' const store = userInfo() const router = useRouter() const userStore = useUserInfoStore() const user = userStore.user.userName // store.createWebSocket(); function quit() { userStore.$patch({ user: null user: null, }) router.push("/login") router.push('/login') } //提取模块列表 //提取菜单模块列表 let menuList = $ref([]) request.get('/loadGlass/menu/sysMenu/list').then((res) => { if (res.code == 200) { @@ -32,61 +31,55 @@ router.push('/login') } }) //获取菜单列表 // let menuItemList = $ref([]) // request.get('/menuItem').then((res) => { // if (res.code == 200) { // menuItemList = deepClone(res.data) // } else { // ElMessage.warning(res.msg) // router.push('/login') // } // }) const menu = ref(null) let indexKey = ref(null) function handleOpen(key) { indexKey.value = key } watch(indexKey, (newVal, oldVal) => { watch( indexKey, (newVal, oldVal) => { if (oldVal !== newVal && oldVal !== null) { menu.value.close(oldVal) } }, {deep:true} }, {deep: true} ) router.beforeEach((to, from) => { //return false }) let openFlag = $ref(null) //原始菜单打开 const openMenu = (menuID) => { if(menuID===openFlag){ openFlag = null }else { openFlag = menuID } if (menuID === openFlag) { openFlag = null } else { openFlag = menuID } } </script> <template> <div id="all"> <el-container> <el-header > <el-header> <div style="height: 100%;width: 100%;display: flex;background-color: #fff;"> <img src="../assets/northGlass.ico" alt="" style="max-width: 100%;max-height: 100%"> <img src="../assets/northGlass.ico" alt="" style="max-width: 100%;max-height: 100%"> <h3 style="margin: 1rem ;font-weight: bold;width: 20vw;"> 欢迎{{ user }}使用北玻MES系统!</h3> <span style="height: 70%;width: 78vw;margin-top: 1rem;"> <el-button class="sys-quit" @click="quit" round> <el-icon size="large"><SwitchButton size=""/></el-icon> <el-button class="sys-quit" @click="quit" round> <el-icon size="large"> <SwitchButton size=""/>退出 </el-icon> </el-button> </span> </div> @@ -107,76 +100,81 @@ </div> <ul class='enter-x-left' v-show="openFlag==items.id"> <li v-for="menuItem in items.children" style="margin-bottom:2px"> <router-link :to="{path:menuItem.url}"> {{ menuItem.menuName }} </router-link> </li> </ul> </div> </div> </el-aside> <el-main> <div id="main"> <router-view></router-view> </div> </el-main> </el-container> </el-container> </div> </template> <style scoped> #all{ #all { background-color: #eee; height: 100%; } .el-container{ .el-container { height: 100vh; width: 99vw width: 99vw; } *{ * { padding: 0; margin: 0; } :deep(.sys-quit){ :deep(.sys-quit) { float: right; margin-right: 1rem; width: 5rem; } /* 横线 */ #line{ float:right; width: 100%; height: 1px; /* margin-top: 0.5em; */ margin-bottom: 0.5em; background:#d4c4c4; position: relative; text-align: center; #line { float: right; width: 100%; height: 1px; /* margin-top: 0.5em; */ margin-bottom: 0.5em; background: #d4c4c4; position: relative; text-align: center; } :deep(span){ :deep(span) { margin-right: 0; } .el-collapse{ .el-collapse { font-size: 16px; font-weight: bold; } #main{ #main { width: 99%; float: right; height: 99%; background-color: #fff; } /*------------*/ /* .menu div div{ width: 138px; @@ -195,34 +193,30 @@ margin-bottom:4px; text-align: left; cursor: pointer; */ /* border-radius:8px; */ /* outline: none; */ /* background-color:#5CADFE; */ /* box-shadow: 0 8px 16px 0 rgba(0,0,0,0), 0 6px 5px 0 rgba(0,0,0,0.19); */ /* border-radius:8px; */ /* outline: none; */ /* background-color:#5CADFE; */ /* box-shadow: 0 8px 16px 0 rgba(0,0,0,0), 0 6px 5px 0 rgba(0,0,0,0.19); */ /* } */ .menu { width: 138px; height: 33px; line-height: 25px; color: #000000; font-size: 16px; padding-left: 15px; padding-right: 2px; } ul { height: auto; margin: 1px auto; text-align: center; } ul li { height: 28px; line-height: 30px; /* background: rgb(128, 128, 128); */ @@ -233,34 +227,34 @@ text-align: left; /* border-radius:8px; */ /* outline: none; */ /* background: #5CADFE; */ /* box-shadow: 0 8px 16px 0 rgba(0,0,0,0), 0 6px 5px 0 rgba(0,0,0,0.19); */ } ul li:hover { /* background:#5CADFE ; */ color: #ffffff; } ul li a { text-decoration: none; color: #000000; font-size: 14px; } ul li a:hover { color: #1087ff; } .item_divider { width: 118px; height: 0px; /* background-color: white; opacity: 0.8; */ margin-bottom:2px; margin-bottom: 2px; } .item a{ .item a { width: 138px; height: 35px; display: block; @@ -270,7 +264,7 @@ font-size: 14px; text-decoration: none; } .menu_title { width: 140px; height: 45px; @@ -284,14 +278,13 @@ position: relative; font-weight: bold; overflow: hidden; } .menu_title:hover { /* background: #dedede; */ color: #3b9af9; } .indicator { display: block; width: 40px; @@ -303,9 +296,7 @@ transition: all 0.3s ease; text-align: center; } /* 动画效果 */ .enter-x-left { z-index: 9; @@ -315,16 +306,20 @@ transform: translateX(-50px); transition: all 0.3s ease; } .enter-x-left:nth-child(1){ .enter-x-left:nth-child(1) { animation-delay: 0.1s; } .enter-x-left:nth-child(2){ .enter-x-left:nth-child(2) { animation-delay: 0.2s; } .enter-x-left:nth-child(3) { animation-delay: 0.3s; } .enter-x-left:nth-child(4){ .enter-x-left:nth-child(4) { animation-delay: 0.4s; } @keyframes enter-x-left { @@ -333,6 +328,4 @@ transform: translateX(0); } } </style> UI-Project/vite.config.js
@@ -22,17 +22,17 @@ https: false, proxy: { '/api': { target: 'http://localhost:8080/mesModuleTools', target: 'http://localhost:88/', changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, '/'), }, '/api2': { target: 'http://localhost:8085/mesModuleTools', changeOrigin: true, pathRewrite: { '^/api2': '', }, }, // '/api2': { // target: 'http://localhost:8085/mesModuleTools', // changeOrigin: true, // pathRewrite: { // '^/api2': '', // }, // }, }, }, configureServer: ({ middlewares }) => { hangzhoumesParent/common/servicebase/pom.xml
@@ -11,6 +11,13 @@ <artifactId>servicebase</artifactId> <dependencies> <dependency> <groupId>com.github.yulichang</groupId> <artifactId>mybatis-plus-join</artifactId> <version>1.1.6</version> </dependency> </dependencies> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/OptimizeProjectController.java
@@ -40,12 +40,15 @@ return Result.build(200, "", glass); } // public Result<List<OptimizeProject>> saveProject(@RequestBody OptimizeRequest optimizeRequest) { // log.info("将请求参数封装在请求类里面"); // List<OptimizeProject> glass = optimizeProjectService.saveProject(optimizeRequest); // log.info("显示工程选择信息:{}", glass); // return Result.build(200, "", glass); // } @ApiOperation("保存工程信息") @PostMapping("/saveProject") //显示工程选择信息 public Result<List<OptimizeProject>> saveProject(@RequestBody OptimizeRequest optimizeRequest) { log.info("获取选择好的工程id进行查询数据后保存"); List<OptimizeProject> glass = optimizeProjectService.saveProject(optimizeRequest); log.info("显示工程选择信息后进行保存:{}", glass); //void insetProject(glass); return Result.build(200, "", glass); } } hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/OptimizeRequest.java
@@ -8,10 +8,13 @@ */ @Data public class OptimizeRequest { @ApiParam("") private String projectNo; @ApiParam("") private Integer state; @ApiParam("") private String projectNo; } hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeProjectMapper.java
@@ -1,8 +1,12 @@ package com.mes.pp.mapper; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.mes.pp.entity.OptimizeProject; import com.mes.pp.entity.request.OptimizeRequest; import org.apache.ibatis.annotations.Mapper; import java.util.List; /** * <p> @@ -13,6 +17,7 @@ * @since 2024-04-16 */ @Mapper @DS("pp") public interface OptimizeProjectMapper extends BaseMapper<OptimizeProject> { List<OptimizeProject> saveProject(OptimizeRequest optimizeRequest); } hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeProjectService.java
@@ -18,7 +18,22 @@ /** * 查询可领取的任务工程信息 * * @return */ List<OptimizeProject> listByState(OptimizeRequest optimizeRequest); /** * 查询保存到原片使用详情表的数据 * * @return */ List<OptimizeProject> saveProject(OptimizeRequest optimizeRequest); /** * 将工程信息保存到原片使用详情表 * * @return */ void insetProject(OptimizeProject glass); } hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeProjectServiceImpl.java
@@ -33,8 +33,24 @@ LambdaQueryWrapper<OptimizeProject> wrapper = new LambdaQueryWrapper<>(); wrapper.eq(OptimizeProject::getState, optimizeRequest.getState()) .like(StringUtils.isNotBlank(optimizeRequest.getProjectNo()), OptimizeProject::getProjectNo, optimizeRequest.getProjectNo()) .groupBy(OptimizeProject::getProjectNo); //.groupBy(OptimizeProject::getProjectNo) ; log.info("返回工程信息"); return this.list(wrapper); } @Override public void insetProject(OptimizeProject glass) { } @Override public List<OptimizeProject> saveProject(OptimizeRequest optimizeRequest) { log.info("将参数传入到查询类里,工程号做非空判断模糊查询"); log.info("返回工程信息"); return this.baseMapper.saveProject(optimizeRequest); } } hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java
@@ -22,7 +22,7 @@ // 2、全局配置 // 全局配置 GlobalConfig gc = new GlobalConfig(); gc.setOutputDir("D:\\workspace\\hangzhoumesParent1\\"); gc.setOutputDir("D:\\Documents\\hangzhoumesParent1\\"); gc.setServiceName("%sService"); //去掉Service接口的首字母I gc.setAuthor("zhoush"); @@ -50,8 +50,7 @@ // 5、策略配置 StrategyConfig strategy = new StrategyConfig(); // strategy.setInclude("activity_info", "activity_rule", "activity_sku", "coupon_info", "coupon_range", // "coupon_use"); strategy.setInclude("up_patten_usage"); strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/EdgStorageCageDetails.java
@@ -25,7 +25,7 @@ * 磨边前理片笼详情表id */ @TableId(value = "id", type = IdType.AUTO) private Integer id; private Long id; /** * 设备id hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/controller/UpWorkstationController.java
@@ -35,16 +35,16 @@ return Result.build(200, "", glass); } //新增工位信息修改一条工位信息,接收实例类字段为宽高厚膜系数量工位id //删除工位信息也用这个,除了工位id玻璃信息传null @ApiOperation("修改工位表增加玻璃信息或者删除玻璃信息") @PostMapping("/updateGlassMessage") @ResponseBody public void updateGlassMessage(@RequestBody UpWorkstation upwork) { upWorkstationService.updateGlassMessage(upwork); } @ApiOperation("开始上片任务") @PostMapping("/selectPriority") //开始上片任务 @ResponseBody public void selectPriority() { hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/GlassInfo.java
@@ -120,7 +120,7 @@ /** * 工程号 */ private Integer engineerId; private Long engineerId; /** * 生产规则id hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/mapper/UpWorkstationMapper.java
@@ -18,4 +18,5 @@ public interface UpWorkstationMapper extends BaseMapper<UpWorkstation> { List<UpWorkSequence> selectPriority(@Param("id") int id); } hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java
@@ -19,11 +19,14 @@ //判断是否可以吸片进行任务 //判断优先吸片位置后发送出片任务 public void selectPriority() ; public void selectPriority(); //查询正在进行的工程 /** * 增加人工输入的工位玻璃信息 * * @param upwork */ void updateGlassMessage(UpWorkstation upwork); hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java
@@ -6,6 +6,7 @@ import com.mes.workstation.entity.UpWorkstation; import com.mes.workstation.mapper.UpWorkstationMapper; import com.mes.workstation.service.UpWorkstationService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; /** @@ -17,16 +18,20 @@ * @since 2024-04-07 */ @Service @Slf4j public class UpWorkstationServiceImpl extends ServiceImpl<UpWorkstationMapper, UpWorkstation> implements UpWorkstationService { public static final String DB_100_10 = "DB_100_10"; //判断是否可以吸片进行任务 public boolean isCanLoadGlass() { String loadstart="吸片信号";//plcmes.getPlcParameter("吸片信号").getValue(); String loadstart = "吸片信号";//plcmes.getPlcParameter("吸片信号").getValue(); return "1".equals(loadstart); } //显示正在进行任务的工程信息 //判断优先吸片位置后发送出片任务 public void selectPriority() { //todo:判断是否可以吸片进行任务 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java
@@ -24,7 +24,7 @@ /** * 下片玻璃信息表id */ private int id; private Long id; /** * 流程卡号 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java
@@ -25,7 +25,7 @@ * id */ @TableId(value = "id", type = IdType.AUTO) private Integer id; private Long id; /** * 起始 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java
@@ -25,7 +25,7 @@ * 下片前理片笼明细表id */ @TableId(value = "id", type = IdType.AUTO) private Integer id; private Long id; /** * 设备id hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java
@@ -25,7 +25,7 @@ * id */ @TableId(value = "id", type = IdType.AUTO) private Integer id; private Long id; /** * 宽