hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java
@@ -1,5 +1,6 @@ package com.mes.edgglasstask.entity; import com.baomidou.mybatisplus.annotation.TableLogic; import lombok.Data; import lombok.EqualsAndHashCode; @@ -36,4 +37,7 @@ private Date time; @TableLogic private int deleted; } hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/request/IdentWornRequest.java
New file @@ -0,0 +1,28 @@ package com.mes.edgglasstask.entity.request; import lombok.Data; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** * @Author : zhoush * @Date: 2024/8/10 13:34 * @Description: */ @Data public class IdentWornRequest { @NotBlank(message = "玻璃ID不能为空") private String glassId; @NotNull(message = "状态不能为空") private int state; @NotNull(message = "线路不能为空") private int line; @NotBlank(message = "工序不能为空") private String workingProcedure; } hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java
@@ -1,20 +1,16 @@ package com.mes.edgstoragecage.controller; import com.mes.edgglasstask.entity.request.IdentWornRequest; import com.mes.edgstoragecage.entity.EdgStorageCage; import com.mes.edgstoragecage.entity.EdgStorageCageDetails; import com.mes.edgstoragecage.service.EdgStorageCageDetailsService; import com.mes.edgstoragecage.service.EdgStorageCageService; import com.mes.edgstoragecage.service.impl.EdgStorageCageServiceImpl; import com.mes.taskcache.entity.TaskCache; import com.mes.taskcache.service.impl.TaskCacheServiceImpl; 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.*; import java.awt.image.ImageProducer; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -44,13 +40,7 @@ List<Map<String, Object>> list=edgStorageCageService.selectEdgStorageCages(); return Result.build(200,"成功",list); } // @ApiOperation("添加磨边缓存理片笼信息 功能:笼内绑定玻璃 参数(EdgStorageCage edgStorageCage)") // @PostMapping("/insertEdgStorageCage") // @ResponseBody // public Result insertEdgStorageCage(@RequestBody EdgStorageCage edgStorageCage) { // boolean isSucess=edgStorageCageService.updateEdgStorageCage(edgStorageCage); // return Result.build(200,"添加成功",1); // } @ApiOperation("修改磨边缓存理片笼信息 功能:对笼内栅格进行【启用/禁用】") @PostMapping("/updateEdgStorageCage") @ResponseBody @@ -68,16 +58,11 @@ return Result.build(200,"【清除/更换/绑定】"+isSucess,1); } @ApiOperation("磨边模块汇报玻璃状态 功能:对笼内栅格玻璃进行【破损/拿走】 ") @PostMapping("/edgReportStatus") @ResponseBody public Result edgReportStatus(@RequestBody Map<String, String> arguments) { /*arguments.put("line","1002"); arguments.put("machine","卧式理片");*/ String isSucess=edgStorageCageDetailsService.identWorn(arguments)?"成功":"失败"; return Result.build(200,"【破损/拿走】"+isSucess,1); public Result edgReportStatus(@RequestBody IdentWornRequest request) { return Result.build(200, "【破损/拿走】" + edgStorageCageDetailsService.edgReportStatus(request), 1); } } hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java
@@ -1,6 +1,7 @@ package com.mes.edgstoragecage.service; import com.github.yulichang.base.MPJBaseService; import com.mes.edgglasstask.entity.request.IdentWornRequest; import com.mes.edgstoragecage.entity.EdgStorageCageDetails; import java.util.List; @@ -15,13 +16,6 @@ * @since 2024-04-07 */ public interface EdgStorageCageDetailsService extends MPJBaseService<EdgStorageCageDetails> { /** * 识别 破损/拿走 * @param arguments * @return */ boolean identWorn(Map<String, String> arguments); /** * 获取 切割当前版图 @@ -46,9 +40,26 @@ /** * 获取出片信息数据 * * @param glassId * @param threshold * @return */ EdgStorageCageDetails selectOutGlass(String glassId, int threshold); /** * 识别 拿走:9/破损:8 * * @param request * @return */ String identControls(IdentWornRequest request); /** * 磨边模块汇报玻璃状态 功能:对笼内栅格玻璃进行【破损/拿走】 * * @param request * @return */ String edgReportStatus(IdentWornRequest request); } hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
@@ -2,6 +2,7 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.github.yulichang.base.MPJBaseServiceImpl; import com.github.yulichang.query.MPJLambdaQueryWrapper; @@ -10,12 +11,14 @@ import com.mes.common.config.Const; import com.mes.damage.entity.Damage; import com.mes.damage.service.DamageService; import com.mes.edgglasstask.entity.EdgGlassTaskInfo; import com.mes.edgglasstask.entity.request.IdentWornRequest; import com.mes.edgglasstask.service.EdgGlassTaskInfoService; import com.mes.edgstoragecage.entity.EdgStorageCage; import com.mes.edgstoragecage.entity.EdgStorageCageDetails; import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper; import com.mes.edgstoragecage.mapper.EdgStorageCageMapper; import com.mes.edgstoragecage.service.EdgStorageCageDetailsService; import com.mes.glassinfo.entity.GlassInfo; import com.mes.glassinfo.mapper.GlassInfoMapper; import com.mes.pp.entity.OptimizeDetail; import com.mes.pp.entity.OptimizeLayout; @@ -26,12 +29,11 @@ import com.mes.uppattenusage.mapper.UpPattenUsageMapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.print.attribute.standard.MediaSize; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -65,66 +67,8 @@ @Autowired DamageService damageService; /** * 识别 拿走:200/破损:201 * * @param arguments * @return */ @Override public boolean identWorn(Map<String, String> arguments) { String glassId=arguments.get("glassId"); int controlsId=arguments.get("controlsId").isEmpty()?0:Integer.parseInt(arguments.get("controlsId")); int line=arguments.get("line").isEmpty()?0:Integer.parseInt(arguments.get("line")); String machine=arguments.get("machine"); if(controlsId==0||line==0||machine==null||glassId==null||glassId.isEmpty()){ log.info("前端传递数据不全:{}",arguments); return false; } int state; if(controlsId==200||controlsId==201){ state=controlsId==200?3:2; }else if (controlsId==300||controlsId==301){ state=controlsId==300?3:2; }else{ log.info("前端传递状态不合法:{}",arguments); return false; } List<GlassInfo> GlassInfos = glassInfoMapper.selectList(new MPJLambdaQueryWrapper<GlassInfo>() .selectAll(GlassInfo.class) .eq(GlassInfo::getGlassId, glassId)); if (GlassInfos.size() == 1) { Damage damage =new Damage(); damage.setGlassId(glassId); damage.setLine(line); damage.setWorkingProcedure(machine); damage.setRemark(""); damage.setStatus(state);//201破损,200拿走 =》破损表 2破损 3 拿走 damageService.insertDamage(damage); }else{ return false; } List<EdgStorageCageDetails> edgStorageCageDetails = baseMapper.selectList(new MPJLambdaQueryWrapper<EdgStorageCageDetails>() .selectAll(EdgStorageCageDetails.class) .eq(EdgStorageCageDetails::getGlassId, glassId)); if (edgStorageCageDetails.size() == 1) { EdgStorageCageDetails item = edgStorageCageDetails.get(0); item.setState(controlsId); baseMapper.update(item, new MPJLambdaWrapper<EdgStorageCageDetails>().selectAll(EdgStorageCageDetails.class).eq(EdgStorageCageDetails::getGlassId, glassId)); } // Sql版本 // List<EdgStorageCageDetails> edgStorageCageDetails = baseMapper.selectList(new QueryWrapper<EdgStorageCageDetails>().eq("glass_id", glassId)); // if (edgStorageCageDetails.size() == 1) { // EdgStorageCageDetails item=edgStorageCageDetails.get(0); // item.setState(ControlsId); // baseMapper.update(edgStorageCageDetails.get(0), new QueryWrapper<EdgStorageCageDetails>().eq("glass_id", glassId)); // return true; // } return true; } @Autowired EdgGlassTaskInfoService edgGlassTaskInfoService; /** * 获取 切割当前版图 @@ -331,4 +275,31 @@ } return outEdgStorageCageDetails; } @Override public String identControls(IdentWornRequest request) { //将识别破损的玻璃直接加入破损表 Damage damage = new Damage(); BeanUtils.copyProperties(request, damage); damage.setType(request.getState()); damage.setRemark(""); damage.setStatus(0); damageService.insertDamage(damage); return "success"; } @Override public String edgReportStatus(IdentWornRequest request) { //将磨边队列破损的玻璃直接加入破损表 Damage damage = new Damage(); BeanUtils.copyProperties(request, damage); damage.setType(request.getState()); damage.setRemark(""); damage.setStatus(0); damageService.insertDamage(damage); //修改磨边队列数据状态 edgGlassTaskInfoService.update(new LambdaUpdateWrapper<EdgGlassTaskInfo>() .set(EdgGlassTaskInfo::getStatus, request.getState()).eq(EdgGlassTaskInfo::getGlassId, request.getGlassId())); return "success"; } } hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
@@ -1,8 +1,7 @@ package com.mes.taskcache.controller; import com.mes.edgglasstask.entity.request.IdentWornRequest; import com.mes.edgstoragecage.service.EdgStorageCageDetailsService; import com.mes.edgstoragecage.service.EdgStorageCageService; import com.mes.taskcache.entity.TaskCache; import com.mes.taskcache.service.TaskCacheService; import com.mes.utils.Result; import io.swagger.annotations.Api; @@ -12,8 +11,6 @@ import java.util.List; import java.util.Map; import static com.mes.job.CacheGlassTask.engineerId; /** * <p> @@ -32,8 +29,6 @@ private EdgStorageCageDetailsService edgStorageCageDetailsService; @Autowired private EdgStorageCageService edgStorageCageService; @Autowired private TaskCacheService taskCacheService; @ApiOperation("查询切割版图信息-根据 工程号 参数(工程号)") @@ -44,6 +39,7 @@ List<List<Map<String, Object>>> h = edgStorageCageDetailsService.selectCurrentCutTerritory(current); return Result.build(200,"成功",h); } @ApiOperation("识别显示 当前版图 参数()") @PostMapping("/currentCutTerritory") @ResponseBody @@ -51,16 +47,12 @@ List<Map<String, Object>> h = edgStorageCageDetailsService.selectCutTerritory(); return Result.build(200,"成功",h); } @ApiOperation("识别操作: 破损/拿走 参数(ID,功能[200:拿走,201:破损])") @ApiOperation("识别操作: 破损/拿走 参数(ID,功能[9:拿走,8:破损])") @PostMapping("/identControls") @ResponseBody public Result identControls(@RequestBody Map<String, String> arguments) { /* arguments.put("glassId","玻璃ID"); arguments.put("controlsId","功能号[200拿走/201破损]");*/ /*arguments.put("line","1001"); arguments.put("machine","识别");*/ boolean issucess = edgStorageCageDetailsService.identWorn(arguments); return Result.build(200,"成功",issucess); public Result<String> identControls(@RequestBody IdentWornRequest request) { return Result.build(200, "成功", edgStorageCageDetailsService.identControls(request)); } @ApiOperation("磨边任务 参数()") hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -506,7 +506,7 @@ } //获取出片任务表中状态为破损的数据 List<BigStorageCageOutTask> outDamageTaskInfoList = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>() .eq(BigStorageCageOutTask::getTaskState, Const.GLASS_STATE_DAMAGE_TAKE)); .in(BigStorageCageOutTask::getTaskState, Const.GLASS_STATE_DAMAGE_TAKE)); if (CollectionUtils.isNotEmpty(outDamageTaskInfoList)) { log.info("获取出片任务表中破损的玻璃信息{}", outDamageTaskInfoList); bigStorageCageOutTaskService.remove(new LambdaQueryWrapper<BigStorageCageOutTask>().eq(BigStorageCageOutTask::getTaskState, Const.GLASS_STATE_DAMAGE_TAKE));