Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes
| | |
| | | }, |
| | | |
| | | /*----------- 用户列表 ----------------*/ |
| | | { |
| | | path: 'User', |
| | | name: 'User', |
| | | component: () => import('../views/User/userlist.vue'), |
| | | children:[ |
| | | { |
| | | path: '/User/userlist', |
| | | name: 'userlist', |
| | | component: () => import('../views/User/userlist.vue') |
| | | }, |
| | | ] |
| | | }, |
| | | // { |
| | | // path: 'User', |
| | | // name: 'User', |
| | | // component: () => import('../views/User/userlist.vue'), |
| | | // children:[ |
| | | // { |
| | | // path: '/User/userlist', |
| | | // name: 'userlist', |
| | | // component: () => import('../views/User/userlist.vue') |
| | | // }, |
| | | // ] |
| | | // }, |
| | | |
| | | /*----------- 权限列表 ----------------*/ |
| | | { |
| | | path: 'Permissions', |
| | | name: 'Permissions', |
| | | component: () => import('../views/Permissions/permissionslist.vue'), |
| | | children:[ |
| | | { |
| | | path: '/Permissions/permissionslist', |
| | | name: 'permissionslist', |
| | | component: () => import('../views/Permissions/permissionslist.vue') |
| | | }, |
| | | ] |
| | | }, |
| | | // { |
| | | // path: 'Permissions', |
| | | // name: 'Permissions', |
| | | // component: () => import('../views/Permissions/permissionslist.vue'), |
| | | // children:[ |
| | | // { |
| | | // path: '/Permissions/permissionslist', |
| | | // name: 'permissionslist', |
| | | // component: () => import('../views/Permissions/permissionslist.vue') |
| | | // }, |
| | | // ] |
| | | // }, |
| | | /*----------- 上片机 ----------------*/ |
| | | { |
| | | path: 'Returns', |
| | |
| | | </div> |
| | | </el-card> |
| | | <div id="parent"> |
| | | <img src="../../assets/shangpianji .png" alt="" style="max-width: 20%;max-height: 20%;margin-top: 20px;margin-left: 500px;"> |
| | | <img src="../../assets/shangpianji.png" alt="" style="max-width: 20%;max-height: 20%;margin-top: 20px;margin-left: 500px;"> |
| | | <!-- <el-button style="margin-top: -830px;margin-left: -40px;" size="mini" id="searchButton" @click="add = true">添加原片</el-button> --> |
| | | <!-- <el-button style="margin-top: -10px;margin-left: -80px;" size="mini" id="searchButton" @click="adda = true">添加原片</el-button> --> |
| | | </div> |
| | |
| | | package com.mes.pp.mapper; |
| | | |
| | | import com.baomidou.dynamic.datasource.annotation.DS; |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.github.yulichang.base.MPJBaseMapper; |
| | | import com.mes.pp.entity.OptimizeDetail; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | |
| | | * @author zhoush |
| | | * @since 2024-04-16 |
| | | */ |
| | | @DS("pp") |
| | | @Mapper |
| | | public interface OptimizeDetailMapper extends BaseMapper<OptimizeDetail> { |
| | | public interface OptimizeDetailMapper extends MPJBaseMapper<OptimizeDetail> { |
| | | |
| | | } |
| | |
| | | package com.mes.pp.service; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.github.yulichang.base.MPJBaseService; |
| | | import com.mes.pp.entity.OptimizeDetail; |
| | | |
| | | /** |
| | |
| | | * @author zhoush |
| | | * @since 2024-04-16 |
| | | */ |
| | | public interface OptimizeDetailService extends IService<OptimizeDetail> { |
| | | public interface OptimizeDetailService extends MPJBaseService<OptimizeDetail> { |
| | | |
| | | } |
| | |
| | | |
| | | import com.baomidou.dynamic.datasource.annotation.DS; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.github.yulichang.base.MPJBaseServiceImpl; |
| | | import com.mes.pp.entity.OptimizeDetail; |
| | | import com.mes.pp.mapper.OptimizeDetailMapper; |
| | | import com.mes.pp.service.OptimizeDetailService; |
| | |
| | | */ |
| | | @Service |
| | | @DS("pp") |
| | | public class OptimizeDetailServiceImpl extends ServiceImpl<OptimizeDetailMapper, OptimizeDetail> implements OptimizeDetailService { |
| | | public class OptimizeDetailServiceImpl extends MPJBaseServiceImpl<OptimizeDetailMapper, OptimizeDetail> implements OptimizeDetailService { |
| | | |
| | | } |
| | |
| | | package com.mes.edgstoragecage.controller; |
| | | |
| | | import com.mes.edgstoragecage.entity.EdgStorageCage; |
| | | import com.mes.edgstoragecage.entity.EdgStorageCageDetails; |
| | | import com.mes.edgstoragecage.service.EdgStorageCageService; |
| | | import com.mes.edgstoragecage.service.impl.EdgStorageCageServiceImpl; |
| | | import com.mes.taskcache.entity.TaskCache; |
| | |
| | | * @author zhoush |
| | | * @since 2024-04-07 |
| | | */ |
| | | @Api("磨边前缓存") |
| | | @Api(tags = "理片笼缓存") |
| | | @RestController |
| | | @RequestMapping("/edgStorageCage") |
| | | public class EdgStorageCageController { |
| | |
| | | @ApiOperation("删除磨边缓存理片笼信息 功能:对笼内栅格玻璃进行【清除】") |
| | | @PostMapping("/deleteEdgStorageCage") |
| | | @ResponseBody |
| | | public Result deleteEdgStorageCage(@RequestBody EdgStorageCage edgStorageCage) { |
| | | public Result deleteEdgStorageCage(@RequestBody EdgStorageCage edgStorageCage, EdgStorageCageDetails edgStorageCageDetails) { |
| | | boolean isSucess=edgStorageCageService.updateEdgStorageCage(edgStorageCage); |
| | | return Result.build(200,"删除成功",1); |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.github.yulichang.base.MPJBaseService; |
| | | import com.mes.edgstoragecage.entity.EdgStorageCageDetails; |
| | | import com.mes.pp.entity.OptimizeDetail; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | |
| | | /** |
| | | * 识别 破损/拿走 |
| | | * @param glassid |
| | | * @param glassId |
| | | * @param ControlsId |
| | | * @return |
| | | */ |
| | | boolean identWorn(String glassid,int ControlsId); |
| | | //获取 切割当前版图 |
| | | List<Map> selectCutTerritory(); |
| | | //获取 工程下的当前版图 |
| | | List<Map> selectCurrentCutTerritory(String current); |
| | | boolean identWorn(String glassId,int ControlsId); |
| | | |
| | | /** |
| | | * 获取 切割当前版图 |
| | | * @return |
| | | */ |
| | | List<OptimizeDetail> selectCutTerritory(); |
| | | |
| | | /** |
| | | * 获取 工程下的当前版图 |
| | | * @param current |
| | | * @return |
| | | */ |
| | | List<OptimizeDetail> selectCurrentCutTerritory(String current); |
| | | |
| | | |
| | | } |
| | |
| | | */ |
| | | public interface EdgStorageCageService extends MPJBaseService<EdgStorageCage> { |
| | | |
| | | //查询笼内空格 |
| | | /** |
| | | * 查询笼内空格 |
| | | * @return |
| | | */ |
| | | List<Map> selectCacheEmpty(); |
| | | |
| | | //查询笼内出片顺序详情 |
| | | /** |
| | | * 查询笼内出片顺序详情 |
| | | * @return |
| | | */ |
| | | List<Map> selectCacheOut(); |
| | | |
| | | //查询笼内详情 |
| | | /** |
| | | * 查询笼内详情 |
| | | * @return |
| | | */ |
| | | List<Map> selectEdgStorageCages(); |
| | | |
| | | //修改理片笼内信息 |
| | | /** |
| | | * 修改理片笼内信息 |
| | | * @param edgStorageCage |
| | | * @return |
| | | */ |
| | | boolean updateEdgStorageCage(EdgStorageCage edgStorageCage); |
| | | } |
| | |
| | | package com.mes.edgstoragecage.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.github.yulichang.base.MPJBaseServiceImpl; |
| | | import com.github.yulichang.query.MPJQueryWrapper; |
| | | import com.github.yulichang.wrapper.interfaces.LambdaJoin; |
| | | import com.mes.edgstoragecage.entity.EdgStorageCage; |
| | | import com.mes.edgstoragecage.entity.EdgStorageCageDetails; |
| | | import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper; |
| | | import com.mes.edgstoragecage.service.EdgStorageCageDetailsService; |
| | | import com.mes.taskcache.mapper.HangzhouMesMapper; |
| | | import com.mes.pp.entity.OptimizeDetail; |
| | | import com.mes.pp.mapper.OptimizeDetailMapper; |
| | | import com.mes.uppattenusage.entity.UpPattenUsage; |
| | | import com.mes.uppattenusage.mapper.UpPattenUsageMapper; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | |
| | | @Autowired |
| | | UpPattenUsageMapper upPattenUsageMapper; |
| | | @Autowired |
| | | OptimizeDetailMapper optimizeDetailMapper; |
| | | |
| | | //识别 破损/拿走 |
| | | public boolean identWorn(String glassid, int ControlsId) { |
| | | List<EdgStorageCageDetails> edgStorageCageDetails = baseMapper.selectList(new QueryWrapper<EdgStorageCageDetails>().eq("glassid", glassid)); |
| | | /** |
| | | * 识别 拿走:200/破损:201 |
| | | * @param glassId |
| | | * @param ControlsId |
| | | * @return |
| | | */ |
| | | public boolean identWorn(String glassId, int ControlsId) { |
| | | List<EdgStorageCageDetails> edgStorageCageDetails = baseMapper.selectList(new QueryWrapper<EdgStorageCageDetails>().eq("glass_id", glassId)); |
| | | if (edgStorageCageDetails.size() == 1) { |
| | | baseMapper.update(edgStorageCageDetails.get(0), new QueryWrapper<EdgStorageCageDetails>().eq("glassid", glassid)); |
| | | EdgStorageCageDetails item=edgStorageCageDetails.get(0); |
| | | item.setState(ControlsId); |
| | | baseMapper.update(edgStorageCageDetails.get(0), new QueryWrapper<EdgStorageCageDetails>().eq("glass_id", glassId)); |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | //获取 切割当前版图 |
| | | /** |
| | | * 获取 切割当前版图 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<Map> selectCutTerritory() { |
| | | List<Map> list = upPattenUsageMapper.selectJoinList( |
| | | Map.class, new MPJQueryWrapper<UpPattenUsage>().selectAll(UpPattenUsage.class) |
| | | .select("escd.glass_id", "escd.flow_card_id", "escd.width", "escd.height") |
| | | .select("gi.x_coordinate","gi.y_coordinate","gi.tempering_feed_sequence") |
| | | .leftJoin("glass_info gi on t.layout_sequence=gi.pattern_sequence and t.engineering_id=gi.engineer_id") |
| | | .leftJoin("edg_storage_cage_details escd on gi.id=escd.glass_id") |
| | | .eq("t.state", 1) |
| | | .orderByAsc("t.layout_sequence") |
| | | ); |
| | | return list; |
| | | public List<OptimizeDetail> selectCutTerritory() { |
| | | List<UpPattenUsage> upPattenUsage=upPattenUsageMapper.selectList(new QueryWrapper<UpPattenUsage>() |
| | | .eq("state", 1)); |
| | | if(!upPattenUsage.isEmpty()){ |
| | | UpPattenUsage upPattenUsage1=upPattenUsage.get(0); |
| | | return optimizeDetailMapper.selectList(new QueryWrapper<OptimizeDetail>() |
| | | .eq("project_no", upPattenUsage1.getEngineeringId()) |
| | | .eq("stock_id",upPattenUsage1.getLayoutSequence()) |
| | | ); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | //获取 工程下的当前版图 |
| | | /** |
| | | * 获取 工程下的当前版图 |
| | | * @param current |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<Map> selectCurrentCutTerritory(String current) { |
| | | List<Map> list = baseMapper.selectJoinList( |
| | | Map.class, new MPJQueryWrapper<EdgStorageCageDetails>().selectAll(EdgStorageCageDetails.class) |
| | | .select("escd.glass_id", "escd.flow_card_id", "escd.width", "escd.height") |
| | | .leftJoin("glass_info gi on t.layout_sequence=gi.pattern_sequence and t.engineering_id=gi.engineer_id") |
| | | .leftJoin("edg_storage_cage_details escd on gi.id=escd.glass_id") |
| | | .eq("t.engineering_id", current) |
| | | .orderByAsc("t.layout_sequence") |
| | | ); |
| | | return list; |
| | | public List<OptimizeDetail> selectCurrentCutTerritory(String current) { |
| | | return optimizeDetailMapper.selectList(new QueryWrapper<OptimizeDetail>().eq("project_no", current)); |
| | | } |
| | | |
| | | ; |
| | |
| | | @Autowired |
| | | UpPattenUsageMapper upPattenUsageMapper; |
| | | |
| | | /** |
| | | * 查询笼内空格 |
| | | * @return |
| | | */ |
| | | @Override |
| | | //查询笼内空格 |
| | | public List<Map> selectCacheEmpty(){ |
| | | List<Map> map=baseMapper.selectJoinList( |
| | | return baseMapper.selectJoinList( |
| | | Map.class,new MPJQueryWrapper<EdgStorageCage>().selectAll(EdgStorageCage.class) |
| | | .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height") |
| | | .leftJoin("edg_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot") |
| | | .isNull("escd.slot") |
| | | ); |
| | | return map; |
| | | } |
| | | |
| | | /** |
| | | * 查询笼内出片任务 按钢化版图号+版图内序号 |
| | | * @return |
| | | */ |
| | | @Override |
| | | //查询笼内出片任务 按钢化版图号+版图内序号 |
| | | public List<Map> selectCacheOut(){ |
| | | List<Map> list= upPattenUsageMapper.selectJoinList( |
| | | return upPattenUsageMapper.selectJoinList( |
| | | Map.class,new MPJQueryWrapper<UpPattenUsage>().selectAll(UpPattenUsage.class) |
| | | .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height") |
| | | .leftJoin("edg_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot") |
| | | .isNotNull("escd.slot") |
| | | .orderByAsc("escd.tempering_layout_id","escd.tempering_feed_sequence") |
| | | ); |
| | | return list; |
| | | } |
| | | |
| | | /** |
| | | * 理片缓存详情 |
| | | * @return |
| | | */ |
| | | @Override |
| | | //理片缓存详情 |
| | | public List<Map> selectEdgStorageCages(){ |
| | | List<Map> map=baseMapper.selectJoinList( |
| | | return baseMapper.selectJoinList( |
| | | Map.class,new MPJQueryWrapper<EdgStorageCage>().selectAll(EdgStorageCage.class) |
| | | .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height") |
| | | .leftJoin("edg_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot") |
| | | ); |
| | | return map; |
| | | } |
| | | |
| | | /** |
| | | * 修改理片笼内信息 功能:对笼内栅格玻璃 【添加/删除/更换】 |
| | | * @param edgStorageCage |
| | | * @return |
| | | */ |
| | | @Override |
| | | //修改理片笼内信息 功能:对笼内栅格玻璃 【添加/删除/更换】 |
| | | public boolean updateEdgStorageCage(EdgStorageCage edgStorageCage){ |
| | | baseMapper.updateById(edgStorageCage); |
| | | return true; |
| | |
| | | import com.mes.glassinfo.entity.GlassInfo; |
| | | import com.mes.glassinfo.service.GlassInfoService; |
| | | import com.mes.utils.Result; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | |
| | | * @author zhoush |
| | | * @since 2024-04-07 |
| | | */ |
| | | @Api(tags = "玻璃信息小片") |
| | | @RestController |
| | | @RequestMapping("/glassInfo") |
| | | public class GlassInfoController { |
| | |
| | | /** |
| | | * 工程号 |
| | | */ |
| | | private Integer engineerId; |
| | | private String engineerId; |
| | | |
| | | /** |
| | | * 生产规则id |
| | | */ |
| | | private Integer ruleId; |
| | | |
| | | /** |
| | | * 玻璃ID |
| | | */ |
| | | private String glassId; |
| | | |
| | | |
| | | } |
| | |
| | | */ |
| | | public interface GlassInfoService extends IService<GlassInfo> { |
| | | |
| | | /** |
| | | * 查询所有玻璃小片信息 |
| | | * @return |
| | | */ |
| | | public List<GlassInfo> selectAll(); |
| | | |
| | | /** |
| | | * 根据玻璃编号查询玻璃小片信息 |
| | | * @param glassId |
| | | * @return |
| | | */ |
| | | public List<GlassInfo> selectId(String glassId); |
| | | |
| | | /** |
| | | * 根据工程号查询玻璃小片信息 |
| | | * @param flowCardId |
| | | * @return |
| | | */ |
| | | public List<GlassInfo> selectFlowCardId(String flowCardId); |
| | | } |
| | |
| | | public class GlassInfoServiceImpl extends ServiceImpl<GlassInfoMapper, GlassInfo> implements GlassInfoService { |
| | | |
| | | |
| | | //根据ID 获取小片数据 |
| | | /** |
| | | * 根据ID 获取小片数据 |
| | | * @param glassId |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<GlassInfo> selectId(String glassId){ |
| | | return baseMapper.selectList(new QueryWrapper<GlassInfo>().eq("id",glassId)); |
| | | return baseMapper.selectList(new QueryWrapper<GlassInfo>().eq("glass_id",glassId)); |
| | | }; |
| | | |
| | | //获取全部小片数据 |
| | | /** |
| | | * 获取全部小片数据 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<GlassInfo> selectAll(){ |
| | | return baseMapper.selectList(null); |
| | | }; |
| | | |
| | | //根据工程 获取小片数据 |
| | | /** |
| | | * 根据工程 获取小片数据 |
| | | * @param flowCardId |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<GlassInfo> selectFlowCardId(String flowCardId){ |
| | | return baseMapper.selectList(new QueryWrapper<GlassInfo>().eq("flowCardId",flowCardId)); |
| | | return baseMapper.selectList(new QueryWrapper<GlassInfo>().eq("flow_card_id",flowCardId)); |
| | | }; |
| | | } |
| | |
| | | |
| | | import com.mes.edgstoragecage.service.EdgStorageCageDetailsService; |
| | | import com.mes.edgstoragecage.service.EdgStorageCageService; |
| | | import com.mes.edgstoragecage.service.impl.EdgStorageCageDetailsServiceImpl; |
| | | import com.mes.edgstoragecage.service.impl.EdgStorageCageServiceImpl; |
| | | import com.mes.taskcache.service.HangzhoumesService; |
| | | import com.mes.taskcache.service.PpService; |
| | | import com.mes.pp.entity.OptimizeDetail; |
| | | import com.mes.taskcache.entity.TaskCache; |
| | | import com.mes.taskcache.service.TaskCacheService; |
| | | import com.mes.utils.Result; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | |
| | | * @author zhoush |
| | | * @since 2024-04-07 |
| | | */ |
| | | @Api(tags = "识别显示") |
| | | @RestController |
| | | @RequestMapping("/taskCache") |
| | | public class TaskCacheController { |
| | |
| | | private EdgStorageCageDetailsService edgStorageCageDetailsService; |
| | | |
| | | @Autowired |
| | | private HangzhoumesService hangzhoumesService; |
| | | private EdgStorageCageService edgStorageCageService; |
| | | @Autowired |
| | | private TaskCacheService taskCacheService; |
| | | |
| | | @ApiOperation("查询切割版图信息-根据 工程号 参数(工程号)") |
| | | @PostMapping("/cutTerritory") |
| | | @ResponseBody |
| | | public Result cutTerritory(String current) { |
| | | List<Map> h = edgStorageCageDetailsService.selectCurrentCutTerritory(current); |
| | | List<OptimizeDetail> h = edgStorageCageDetailsService.selectCurrentCutTerritory(current); |
| | | return Result.build(200,"成功",h); |
| | | } |
| | | @ApiOperation("识别显示 当前版图 参数()") |
| | | @PostMapping("/currentCutTerritory") |
| | | @ResponseBody |
| | | public Result currentCutTerritory() { |
| | | List<Map> h = edgStorageCageDetailsService.selectCutTerritory(); |
| | | List<OptimizeDetail> h = edgStorageCageDetailsService.selectCutTerritory(); |
| | | return Result.build(200,"成功",h); |
| | | } |
| | | @ApiOperation("识别显示 特定版图 参数(版图编号)") |
| | | @PostMapping("/selectCutTerritory") |
| | | @ResponseBody |
| | | public Result selectCutTerritory(String TerritoryId) { |
| | | List<Map> h = edgStorageCageDetailsService.selectCutTerritory(); |
| | | return Result.build(200,"成功",h); |
| | | } |
| | | @ApiOperation("识别操作: 破损/拿走 参数(ID,功能[0:破损,1:拿走])") |
| | | @ApiOperation("识别操作: 破损/拿走 参数(ID,功能[200:拿走,201:破损])") |
| | | @PostMapping("/identControls") |
| | | @ResponseBody |
| | | public Result identControls(@RequestParam(name = "identId", required = false) String identId,@RequestParam(name = "controlsId", required = false) int controlsId) { |
| | |
| | | boolean issucess = edgStorageCageDetailsService.identWorn(identId,controlsId); |
| | | return Result.build(200,"成功",issucess); |
| | | } |
| | | @ApiOperation("查询笼内信息 参数()") |
| | | @PostMapping("/selectCageInfo") |
| | | @ResponseBody |
| | | public Result selectCageInfo() { |
| | | List<Map> h = hangzhoumesService.SelectCageInfo(); |
| | | return Result.build(200,"成功",h); |
| | | } |
| | | |
| | | @ApiOperation("磨边任务 参数()") |
| | | @PostMapping("/selectEdgTask") |
| | | @ResponseBody |
| | | public Result selectEdgTask(String ProcessId) { |
| | | List<Map> EdgTasks = hangzhoumesService.SelectEdgInfo("1"); |
| | | public Result selectEdgTask(String line) { |
| | | List<TaskCache> EdgTasks = taskCacheService.selectEdgInfo(line); |
| | | return Result.build(200,"成功",EdgTasks); |
| | | } |
| | | |
| | |
| | | @TableName("task_cache") |
| | | public class TaskCache { |
| | | private String ID;//任务编号 |
| | | private String startcell;//起始 |
| | | private String endcell;//结束 |
| | | private String tasktype;//任务类型 |
| | | private String taskstauts;//任务状态 |
| | | private String startCell;//起始 |
| | | private String endCell;//结束 |
| | | private String taskType;//任务类型 |
| | | private String taskStatus;//任务状态 |
| | | |
| | | } |
| | |
| | | */ |
| | | public interface TaskCacheService extends IService<TaskCache> { |
| | | |
| | | //添加理片笼任务 |
| | | /** |
| | | * 添加理片笼任务 |
| | | * @param taskCache |
| | | * @return |
| | | */ |
| | | boolean insertTaskCache(TaskCache taskCache); |
| | | |
| | | //查询磨边任务 |
| | | /** |
| | | * 查询磨边任务 |
| | | * @param line |
| | | * @return |
| | | */ |
| | | List<TaskCache> selectEdgInfo(String line); |
| | | |
| | | //查询理片任务 |
| | | /** |
| | | * 查询理片任务 |
| | | * @return |
| | | */ |
| | | List<TaskCache> selectCacheInfo(); |
| | | |
| | | //查询全部任务 |
| | | /** |
| | | * 查询全部任务 |
| | | * @return |
| | | */ |
| | | List<TaskCache> selectAll(); |
| | | |
| | | //查询进片任务 |
| | | /** |
| | | * 查询进片任务 |
| | | * @return |
| | | */ |
| | | List<TaskCache> selectInputTaskCache(); |
| | | |
| | | //查询出片任务 |
| | | /** |
| | | * 查询出片任务 |
| | | * @return |
| | | */ |
| | | List<TaskCache> selectOutTaskCache(); |
| | | |
| | | //查询 A09 或 A10 最新的一片 出片任务 |
| | | /** |
| | | * 查询 A09 或 A10 最新的一片 出片任务 |
| | | * @param line |
| | | * @return |
| | | */ |
| | | List<TaskCache> selectLastOutCacheInfo(String line); |
| | | } |
| | |
| | | @Service |
| | | public class TaskCacheServiceImpl extends ServiceImpl<TaskCacheMapper, TaskCache> implements TaskCacheService { |
| | | |
| | | //添加理片笼任务 |
| | | /** |
| | | * 添加理片笼任务 |
| | | * @param taskCache |
| | | * @return |
| | | */ |
| | | @Override |
| | | public boolean insertTaskCache(TaskCache taskCache){ |
| | | baseMapper.insert(taskCache); |
| | | return true; |
| | | } |
| | | //查询磨边任务 |
| | | |
| | | /** |
| | | * 查询磨边任务 |
| | | * @param line |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<TaskCache> selectEdgInfo(String line) { |
| | | return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("endcell",line)); |
| | | return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("end_cell",line)); |
| | | } |
| | | //查询待理片工作的任务 |
| | | |
| | | /** |
| | | * 查询待理片工作的任务 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<TaskCache> selectCacheInfo(){ |
| | | return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("taskstauts",0)); |
| | | return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("task_status",0)); |
| | | } |
| | | //查询全部任务 |
| | | |
| | | /** |
| | | * 查询全部任务 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<TaskCache> selectAll() { |
| | | return baseMapper.selectList(null); |
| | | } |
| | | //查询待进片任务 |
| | | |
| | | /** |
| | | * 查询待进片任务 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<TaskCache> selectInputTaskCache(){ |
| | | return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("taskstauts",0).eq("tasktype",1)); |
| | | return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("task_status",0).eq("task_type",1)); |
| | | } |
| | | |
| | | //查询待出片任务 |
| | | /** |
| | | * 查询待出片任务 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<TaskCache> selectOutTaskCache(){ |
| | | return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("taskstauts",0).eq("tasktype",2)); |
| | | return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("task_status",0).eq("task_type",2)); |
| | | } |
| | | |
| | | //查询 A09 或 A10 最新的一片 出片任务 |
| | | /** |
| | | * 查询 A09 或 A10 最新的一片 出片任务 |
| | | * @param line |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<TaskCache> selectLastOutCacheInfo(String line){ |
| | | return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("endcell",line).eq("taskstauts",1).orderByDesc("ID")); |
| | | return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("end_xxxxcell",line).eq("task_status",1).orderByDesc("ID")); |
| | | } |
| | | } |
| | |
| | | username: root |
| | | password: beibo.123/ |
| | | driver-class-name: com.mysql.cj.jdbc.Driver |
| | | pp: |
| | | url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8 |
| | | username: root |
| | | password: beibo.123/ |
| | | driver-class-name: com.mysql.cj.jdbc.Driver |
| | | # pp: |
| | | # url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8 |
| | | # username: root |
| | | # password: beibo.123/ |
| | | # driver-class-name: com.mysql.cj.jdbc.Driver |
| | | # salve_hangzhoumes: |
| | | # url: jdbc:sqlserver://10.153.19.150:1433;databasename=hangzhoumes |
| | | # username: sa |
| | | # password: beibo.123/ |
| | | # driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver |
| | | cloud: |
| | | nacos: |
| | | discovery: |
| | |
| | | package com.mes; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.mes.edgstoragecage.service.EdgStorageCageDetailsService; |
| | | import com.mes.edgstoragecage.service.EdgStorageCageService; |
| | | import com.mes.edgstoragecage.service.impl.EdgStorageCageServiceImpl; |
| | | import com.mes.pp.entity.OptimizeDetail; |
| | | import com.mes.pp.mapper.OptimizeDetailMapper; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.junit.Test; |
| | | import org.junit.runner.RunWith; |
| | |
| | | @Autowired |
| | | EdgStorageCageDetailsService edgStorageCageDetailsService; |
| | | |
| | | @Autowired |
| | | OptimizeDetailMapper optimizeDetailMapper; |
| | | |
| | | @Test |
| | | public void testFindPath() { |
| | | log.info("完整路径:{}", Arrays.asList("123")); |
| | |
| | | } |
| | | @Test |
| | | public void testScan() { |
| | | List<Map> map= edgStorageCageDetailsService.selectCutTerritory(); |
| | | List<OptimizeDetail> map= edgStorageCageDetailsService.selectCutTerritory(); |
| | | log.info("切割当前版图信息:{}", Arrays.asList(map)); |
| | | } |
| | | |
| | | @Test |
| | | public void testPpOptimizeDetail() { |
| | | List<OptimizeDetail> optimizeDetail=optimizeDetailMapper.selectList(new QueryWrapper<OptimizeDetail>() |
| | | .eq("project_no", "P24032204") |
| | | .eq("stock_id",5) |
| | | ); |
| | | log.info("切割当前版图信息:{}", Arrays.asList(optimizeDetail)); |
| | | |
| | | } |
| | | |
| | | } |
| | |
| | | private static String PlcMes = PLCAutoMes.class.getResource("/JsonFile/PlcMes.json").getPath(); |
| | | private static String PlcRead = PLCAutoMes.class.getResource("/JsonFile/PlcRead.json").getPath(); |
| | | private static String Plcframe = PLCAutoMes.class.getResource("/JsonFile/Plcframe.json").getPath(); |
| | | // private static String PlcParameter = PLCAutomaticParameterSettingReview2.class |
| | | // .getResource("/JsonFile/PlcParameter.json").getPath(); |
| | | // private static String PlcSign = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcSign.json") |
| | | // .getPath(); |
| | | // private static String PlcState = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcState.json") |
| | | // .getPath(); |
| | | |
| | | private static String PlcAlarm = PLCAutoMes.class.getResource("/JsonFile/PlcAlarm.json").getPath(); |
| | | // private static String PlcTest = PLCAutoMes.class.getResource("/JsonFile/PlcTest.json").getPath(); |
| | | |
| | |
| | | |
| | | // readAndUpdateWordValues(PlcReadObject); |
| | | readAndUpdateWordValues(PlcMesObject); |
| | | // readAndUpdateWordValues(PlcframeObject); |
| | | // readAndUpdateWordValues(PlcframeObject); |
| | | |
| | | // readAndUpdateWordValues(plcStateObject); |
| | | // int index = PlcMesObject.getPlcParameter("AddStart").getAddressIndex(); |
| | | // System.out.println(index); |
| | | // PlcMesObject.getPlcParameter("AddStart").getAddress(index); |
| | | // System.out.println(PlcMesObject.getPlcParameter("AddStart").getAddress(index)); |
| | | List<String> addresses = new ArrayList<>(); |
| | | addresses.add("FeedID"); |
| | | addresses.add("AddStart"); |
| | | // System.out.println(addresses); |
| | | // System.out.println(PlcMesObject.getPlcParameterValues(addresses)); |
| | | |
| | | List<String> addresses2 = new ArrayList<>(); |
| | | addresses2.add("FeedID"); |
| | | addresses2.add("FeedCarStatus"); |
| | |
| | | i++; |
| | | Thread.sleep(100); |
| | | DownGlassLogic plcService = plcServiceSupplier.get(); |
| | | // plcService.performPlcActions(); |
| | | //plcService.unloadpush(); |
| | | |
| | | |
| | | //当下片任务表状态为1时候将数据插入到下片玻璃信息表 |
| | | plcService.insertdownglassinfo(); |
| | |
| | | import java.util.Map; |
| | | @Api(tags = "缓存") |
| | | @RestController |
| | | @RequestMapping("/api/unLoadGlass/downstorage") |
| | | @RequestMapping("/downStorage") |
| | | public class DownStorageCageDetailsController { |
| | | |
| | | @Autowired |
| | |
| | | |
| | | |
| | | //查询磨边缓存理片笼内详情 |
| | | @ApiOperation("查询磨边缓存理片笼内详情") |
| | | @ApiOperation("查询缓存理片笼内详情") |
| | | @GetMapping("/selectStorageCage") |
| | | @ResponseBody |
| | | public Result selectEdgStorageCage () { |
| | |
| | | |
| | | |
| | | |
| | | @ApiOperation("添加缓存理片笼信息 功能:笼内绑定玻璃 参数(DownStorageCageDetails downStorageCageDetails)") |
| | | @PostMapping("/insertEdgStorageCage") |
| | | @ResponseBody |
| | | public Result insertEdgStorageCage(@RequestBody DownStorageCageDetails downStorageCageDetails) { |
| | | boolean isSucess=downStorageCageDetailsService.updatedownStorageCageDetails(downStorageCageDetails); |
| | | return Result.build(200,"添加成功",1); |
| | | } |
| | | @ApiOperation("修改缓存理片笼信息 功能:对笼内栅格进行【启用/禁用】/ 【更换】笼内栅格玻璃信息") |
| | | @PostMapping("/updateEdgStorageCage") |
| | | @ResponseBody |
| | | public Result updateEdgStorageCage(@RequestBody DownStorageCageDetails downStorageCageDetails) { |
| | | boolean isSucess=downStorageCageDetailsService.updatedownStorageCageDetails(downStorageCageDetails); |
| | | return Result.build(200,"更换成功",1); |
| | | } |
| | | @ApiOperation("删除缓存理片笼信息 功能:对笼内栅格玻璃进行【清除】") |
| | | @PostMapping("/deleteEdgStorageCage") |
| | | @ResponseBody |
| | | public Result deleteEdgStorageCage(@RequestBody DownStorageCageDetails downStorageCageDetails) { |
| | | boolean isSucess=downStorageCageDetailsService.updatedownStorageCageDetails(downStorageCageDetails); |
| | | return Result.build(200,"删除成功",1); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | // |
| | | |
| | |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | |
| | | * @author zhoush |
| | | * @since 2024-03-27 |
| | | */ |
| | | @ApiModel(description = "<p> 缓存</p>") |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | | public class DownStorageCage implements Serializable { |
| | | |
| | | @ApiModelProperty(hidden = true) |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 下片前理片笼表id |
| | | */ |
| | | @ApiModelProperty(value = "下片前理片笼表id", position = 2) |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Integer id; |
| | | |
| | | /** |
| | | * 设备id |
| | | */ |
| | | @ApiModelProperty(value = "设备id", position = 3) |
| | | private Integer deviceId; |
| | | |
| | | /** |
| | | * 栅格号 |
| | | */ |
| | | @ApiModelProperty(value = "栅格号", position = 4) |
| | | private Integer slot; |
| | | |
| | | /** |
| | | * 启用状态 |
| | | */ |
| | | @ApiModelProperty(value = "启用状态", position = 5) |
| | | private String enableState; |
| | | |
| | | /** |
| | | * 剩余 |
| | | */ |
| | | @ApiModelProperty(value = "剩余", position = 6) |
| | | private Integer remainWidth; |
| | | |
| | | |
| | |
| | | public static final String RESULT_IN_OUT = "3"; |
| | | @Autowired |
| | | private DownStorageCageDetailsMapper selectInfo; |
| | | private GlassInfoService GlassInfoService; |
| | | @Autowired |
| | | private GlassInfoService glassInfoService; |
| | | @Autowired |
| | | private DownStorageCageService downStorageCageService; |
| | | @Autowired |
| | | private DownGlassTaskService downGlassTaskService; |
| | | |
| | | |
| | |
| | | */ |
| | | |
| | | public boolean processInto(String Number) { |
| | | GlassInfoService = WebSocketServer.applicationContext.getBean(GlassInfoService.class); |
| | | glassInfoService = WebSocketServer.applicationContext.getBean(GlassInfoService.class); |
| | | downStorageCageService = WebSocketServer.applicationContext.getBean(DownStorageCageService.class); |
| | | |
| | | //按id查询玻璃信息表里的玻璃 |
| | | GlassInfo GlassInfo = GlassInfoService.selectGlassId(Number); |
| | | GlassInfo GlassInfo = glassInfoService.selectGlassId(Number); |
| | | PlcParameterObject plcmes = PLCAutoMes.PlcMesObject; |
| | | //存在此玻璃编号 |
| | | if (GlassInfo != null) { |
| | |
| | | selectInfo.insertCacheTask(GlassInfo.getId() + "", "0", item.getSlot() + "", "1", GlassInfo.getWidth(), GlassInfo.getHeight(), GlassInfo.getFilmsid(), GlassInfo.getThickness(), GlassInfo.getFlowcardId()); |
| | | |
| | | S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1); |
| | | |
| | | //完成后插入小片数据到缓存表 |
| | | return true; |
| | | } |
| | |
| | | String G13 = S7control.getinstance().ReadWord("DB14.58", 1).get(0) + ""; |
| | | PlcParameterObject plcmes = PLCAutoMes.PlcMesObject; |
| | | |
| | | |
| | | List<DownStorageCageDetails> list = downStorageCageService.getCacheOut(1, 5); |
| | | List<DownStorageCageDetails> list2 = downStorageCageService.getCacheOut(6, 10); |
| | | List<DownStorageCageDetails> list3 = downStorageCageService.getCacheOut(1, 10); |
| | | GlassInfo Maxglass=glassInfoService.selectGlassId("2");; |
| | | |
| | | // 优先 超出尺寸优先人工出片 人工处理 |
| | | if (!list3.isEmpty()) { |
| | | DownStorageCageDetails item3 = list3.get(0); |
| | |
| | | } |
| | | |
| | | //同时请求 优先后端出片 |
| | | else if (!list3.isEmpty()) { |
| | | else if (!list3.isEmpty()&&Maxglass.equals(list3.get(0))) { |
| | | DownStorageCageDetails item3 = list3.get(0); |
| | | if (G06.equals("0") && G11.equals("0")) { |
| | | |
| | | String endcell = "11"; |
| | | String SendEndcell = "1"; |
| | | |
| | | selectInfo.insertCacheTask(item3.getGlassId() + "", "0", endcell, "2", item3.getWidth(), item3.getHeight(), item3.getFilmsid(), item3.getThickness(), item3.getFlowCardId()); |
| | | S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), SendEndcell); |
| | | S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1"); |
| | | return true; |
| | | } |
| | | } |
| | | // 按照顺序符合前端出片 |
| | | // 按照大小符合前端出片 |
| | | else if (!list.isEmpty()) { |
| | | DownStorageCageDetails item = list.get(0); |
| | | if (G06.equals("0") && G11.equals("1")) { |
| | |
| | | public boolean selectMessageId(String Number) { |
| | | //查询是否存在 |
| | | |
| | | GlassInfo GlassInfo = GlassInfoService.selectGlassId(Number); |
| | | GlassInfo GlassInfo = glassInfoService.selectGlassId(Number); |
| | | if (GlassInfo == null) { |
| | | //返回 不存在 |
| | | return false; |
| | |
| | | |
| | | public boolean deleteMessageId(String Number) { |
| | | //查询是否存在 |
| | | GlassInfo GlassInfo = GlassInfoService.selectGlassId(Number); |
| | | GlassInfo GlassInfo = glassInfoService.selectGlassId(Number); |
| | | if (GlassInfo == null) { |
| | | //返回 不存在 |
| | | return false; |
| | |
| | | */ |
| | | public boolean isExist(String Number) { |
| | | //查询是否存在 |
| | | GlassInfo GlassInfo = GlassInfoService.selectGlassId(Number); |
| | | GlassInfo GlassInfo = glassInfoService.selectGlassId(Number); |
| | | if (GlassInfo == null) { |
| | | //返回 不存在 |
| | | return false; |
| | |
| | | |
| | | void addDownStorageCageDetails(DownStorageCageDetails details); |
| | | |
| | | |
| | | //修改理片笼内信息 |
| | | boolean updatedownStorageCageDetails(DownStorageCageDetails details); |
| | | } |
| | |
| | | List<Map> getCacheInfo(); |
| | | List<DownStorageCageDetails> getIsExistIntoCacheByLayoutAndSequence(Integer tempering_layout_id, Integer tempering_feed_sequence, double width); |
| | | List<DownStorageCageDetails> getIsExistIntoCacheByLayout(Integer tempering_layout_id, double width); |
| | | |
| | | List<DownStorageCageDetails> getIsExistIntoCacheByflowcardid(String flowcardid, double width); |
| | | List<DownStorageCageDetails> IsExistIntoCacheByflowcardid(String flowcardid, double width); |
| | | } |
| | |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | | //修改理片笼内信息 功能:对笼内栅格玻璃 【添加/删除/更换】 |
| | | public boolean updatedownStorageCageDetails(DownStorageCageDetails details){ |
| | | baseMapper.updateById(details); |
| | | return true; |
| | | } |
| | | |
| | | |
| | | |
| | |
| | | @Override |
| | | public List<DownStorageCageDetails> getCacheOut(int start, int end) { |
| | | log.info("根据传入的工位查询符合按照顺序和大小出片的小片"); |
| | | List<DownStorageCageDetails> list = downStorageCageMapper.selectJoinList( |
| | | return downStorageCageMapper.selectJoinList( |
| | | DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>() |
| | | .select("escd.*") |
| | | .leftJoin("down_storage_cage_details escd on t.slot = escd.slot") |
| | |
| | | .orderByDesc("escd.width") |
| | | .orderByDesc("escd.height") |
| | | ); |
| | | return list; |
| | | } |
| | | |
| | | |
| | |
| | | @Override |
| | | public List<Map> getCacheInfo() { |
| | | log.info(" 查询笼子内信息"); |
| | | List<Map> map = downStorageCageMapper.selectJoinList( |
| | | return downStorageCageMapper.selectJoinList( |
| | | Map.class, new MPJQueryWrapper<DownStorageCageDetails>() |
| | | .select("escd.*") |
| | | .leftJoin("down_storage_cage_details escd on t.slot = escd.slot") |
| | | .orderByAsc("t.slot") |
| | | ); |
| | | return map; |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public List<DownStorageCageDetails> getIsExistIntoCacheByLayoutAndSequence(Integer tempering_layout_id, Integer tempering_feed_sequence, double width) { |
| | | log.info(" 查询可进此片玻璃的栅格号 找到相同版图id并且大于前面的顺序的空格"); |
| | | |
| | | List<DownStorageCageDetails> list = downStorageCageMapper.selectJoinList( |
| | | DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>() |
| | | .select("escd.*") |
| | |
| | | return list; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | | public List<DownStorageCageDetails> getIsExistIntoCacheByflowcardid(String flowcardid, double width) { |
| | | log.info(" 查询可进此片玻璃的栅格号 找到相同流程卡号的空格"); |
| | | |
| | | return downStorageCageMapper.selectJoinList( |
| | | DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>() |
| | | .select("escd.*") |
| | | .leftJoin("down_storage_cage_details escd on t.slot = escd.slot") |
| | | .isNotNull("escd.slot") |
| | | .eq("escd.flow_card_id", flowcardid) |
| | | .gt("t.remain_width", width) |
| | | .orderByAsc("escd.tempering_feed_sequence") |
| | | ); |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public List<DownStorageCageDetails> IsExistIntoCacheByflowcardid(String flowcardid, double width) { |
| | | log.info(" 查询可进此片玻璃的栅格号"); |
| | | return downStorageCageMapper.selectJoinList( |
| | | DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>() |
| | | .select("escd.*") |
| | | .leftJoin("down_storage_cage_details escd on t.slot = escd.slot") |
| | | .isNotNull("escd.slot") |
| | | .lt("escd.flow_card_id", flowcardid) |
| | | // 条件 t.remain_width - width > 0 |
| | | .apply("t.remain_width - " + width + " > 0") |
| | | .orderByDesc("escd.tempering_layout_id, escd.tempering_feed_sequence") |
| | | ); |
| | | |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<DownStorageCageDetails> getIsExistIntoCacheByLayout(Integer tempering_layout_id, double width) { |
| | | log.info(" 查询可进此片玻璃的栅格号"); |
| | | List<DownStorageCageDetails> list = downStorageCageMapper.selectJoinList( |
| | | return downStorageCageMapper.selectJoinList( |
| | | DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>() |
| | | .select("escd.*") |
| | | .leftJoin("down_storage_cage_details escd on t.slot = escd.slot") |
| | |
| | | .apply("t.remain_width - " + width + " > 0") |
| | | .orderByDesc("escd.tempering_layout_id, escd.tempering_feed_sequence") |
| | | ); |
| | | return list; |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | @RestController |
| | | @Api(tags = "工位") |
| | | @RequestMapping("/api/unLoadGlass") |
| | | @RequestMapping("/downWorkStation") |
| | | public class DownWorkstationController { |
| | | |
| | | @Autowired |
| | |
| | | List<Map<String, Object>> getFlowCardId(); |
| | | |
| | | GlassInfo selectGlassId(String id); |
| | | // List<GlassInfo> getmaxglass(GlassInfo glassInfo); |
| | | } |
| | |
| | | return baseMapper.selectMaps(new QueryWrapper<GlassInfo>().select("DISTINCT flowcard_id")); |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public GlassInfo selectGlassId(String id) { |
| | | QueryWrapper<GlassInfo> queryWrapper = new QueryWrapper<>(); |