hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/HollowBigStorageCageBaseInfo.java
@@ -64,7 +64,11 @@ /** * 格子号 */ @ApiModelProperty(value = "玻璃id") @ApiModelProperty(value = "是否配对") private Integer isPair; /** * /*中空顺序 */ @ApiModelProperty(value = "中空顺序") private Integer hollowSequence; } hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/impl/EdgStorageDeviceTaskServiceImpl.java
@@ -1,5 +1,6 @@ package com.mes.opctask.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.mes.common.config.Const; @@ -125,7 +126,9 @@ //获取笼内的详情数据 List<EdgSlotRemainVO> edgSlotRemainVOS = edgStorageCageDetailsService.querySlotRemainWidth(cellLength, glassGap); //按照查询结果对笼内现有玻璃的格子尺寸进行更新 edgStorageCageService.resetSlotRemainWidth(edgSlotRemainVOS); if (CollectionUtil.isNotEmpty(edgSlotRemainVOS)) { edgStorageCageService.resetSlotRemainWidth(edgSlotRemainVOS); } return Boolean.TRUE; } } hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageController.java
@@ -1,6 +1,5 @@ package com.mes.bigstorage.controller; import com.mes.bigstorage.entity.BigStorageCage; import com.mes.bigstorage.entity.dto.BigStorageAndDetailsDTO; import com.mes.bigstorage.entity.vo.BigStorageDetailsQueryVO; import com.mes.bigstorage.service.BigStorageCageService; @@ -40,5 +39,11 @@ public Result<List<BigStorageAndDetailsDTO>> querybigStorageCageDetail(@RequestBody BigStorageDetailsQueryVO query) { return Result.build(200, "查询成功", bigStorageCageService.querybigStorageCageDetail(query)); } @ApiOperation("复位:重置理片笼基础信息1清除笼内状态为0的脏数据、2将空格子的尺寸置为初始尺寸") @PostMapping("/resetCage") public Result<Boolean> resetCage() { return Result.build(200, "查询成功", bigStorageCageService.resetCage()); } } hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java
@@ -44,5 +44,7 @@ List<BigStorageSummaryDTO> selectBigStorageSummary(); Boolean resetCage(); // List<Integer> queryFreeDeviceByNotUsed(double thickness); } hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -311,6 +312,14 @@ return baseMapper.selectBigStorageSummary(); } @Override public Boolean resetCage() { bigStorageCageDetailsMapper.delete(Wrappers.<BigStorageCageDetails>lambdaQuery().eq(BigStorageCageDetails::getState, Const.GLASS_STATE_NEW)); this.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, slotWidth) .notInSql(BigStorageCage::getSlot, "select distinct slot from big_storage_cage_details where state in ( 100, 102, 103, 104)")); return Boolean.TRUE; } // @Override // public List<Integer> queryFreeDeviceByNotUsed(double thickness) { // return baseMapper.queryFreeDeviceByNotUsed(thickness); hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/controller/BigStorageCageHistoryTaskController.java
New file @@ -0,0 +1,35 @@ package com.mes.bigstoragecagetask.controller; import com.mes.bigstoragecagetask.entity.BigStorageCageHistoryTask; import com.mes.bigstoragecagetask.entity.request.BigStorageCageHistoryRequest; import com.mes.bigstoragecagetask.service.BigStorageCageHistoryTaskService; import com.mes.utils.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; /** * @Author : zhoush * @Date: 2025/3/11 8:43 * @Description: */ @Api(tags = "理片笼信息历史任务") @RestController @RequestMapping("/bigStorageCageHistoryTask") public class BigStorageCageHistoryTaskController { @Resource BigStorageCageHistoryTaskService bigStorageCageHistoryTaskService; @ApiOperation("按照查询条件查询理片笼信息历史任务") @PostMapping("/queryBigStorageCageHistoryTask") public Result<List<BigStorageCageHistoryTask>> queryBigStorageCageHistoryTask(@RequestBody BigStorageCageHistoryRequest request) { return Result.build(200, "查询成功", bigStorageCageHistoryTaskService.queryBigStorageCageHistoryTask(request)); } } hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/entity/request/BigStorageCageHistoryRequest.java
New file @@ -0,0 +1,61 @@ package com.mes.bigstoragecagetask.entity.request; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; import java.util.List; /** * @Author : zhoush * @Date: 2025/3/11 8:46 * @Description: */ @Data public class BigStorageCageHistoryRequest { /** * 玻璃id */ @ApiModelProperty(value = "玻璃id", position = 1) private String glassId; /** * 起始格子 */ @ApiModelProperty(value = "起始格子", position = 2) private Integer startSlot; /** * 目标格子 */ @ApiModelProperty(value = "目标格子", position = 3) private Integer targetSlot; /** * 任务状态 */ @ApiModelProperty(value = "任务状态 0 开始 2完成 3破损 4未上车", position = 4) private List<Integer> taskStateList; /** * 任务类型 */ @ApiModelProperty(value = "任务类型 1进片 2出片 3调度", position = 5) private List<Integer> taskTypeList; /** * 开始时间 */ @ApiModelProperty(value = "开始时间", position = 6) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date beginDate; /** * 结束时间 */ @ApiModelProperty(value = "结束时间", position = 7) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date endDate; } hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/BigStorageCageHistoryTaskService.java
@@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.mes.bigstoragecagetask.entity.BigStorageCageHistoryTask; import com.mes.bigstoragecagetask.entity.request.BigStorageCageHistoryRequest; import java.util.List; /** * (BigStorageCageHistoryTask)表服务接口 @@ -12,5 +15,6 @@ */ public interface BigStorageCageHistoryTaskService extends IService<BigStorageCageHistoryTask> { List<BigStorageCageHistoryTask> queryBigStorageCageHistoryTask(BigStorageCageHistoryRequest request); } hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragecagetask/service/impl/BigStorageCageHistoryTaskServiceImpl.java
@@ -1,11 +1,18 @@ package com.mes.bigstoragecagetask.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.smallbun.screw.core.util.StringUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mes.bigstoragecagetask.entity.BigStorageCageHistoryTask; import com.mes.bigstoragecagetask.entity.request.BigStorageCageHistoryRequest; import com.mes.bigstoragecagetask.mapper.BigStorageCageHistoryTaskMapper; import com.mes.bigstoragecagetask.service.BigStorageCageHistoryTaskService; import com.mes.tools.DateUtil; import org.springframework.stereotype.Service; import java.util.List; /** * (BigStorageCageHistoryTask)表服务实现类 @@ -16,5 +23,24 @@ @Service public class BigStorageCageHistoryTaskServiceImpl extends ServiceImpl<BigStorageCageHistoryTaskMapper, BigStorageCageHistoryTask> implements BigStorageCageHistoryTaskService { @Override public List<BigStorageCageHistoryTask> queryBigStorageCageHistoryTask(BigStorageCageHistoryRequest request) { if (null == request) { request = new BigStorageCageHistoryRequest(); } if (null == request.getBeginDate()) { request.setBeginDate(DateUtil.getBeginDate()); request.setEndDate(DateUtil.getEndDate()); } LambdaQueryWrapper<BigStorageCageHistoryTask> wrapper = new LambdaQueryWrapper<BigStorageCageHistoryTask>() .like(StringUtils.isBlank(request.getGlassId()), BigStorageCageHistoryTask::getGlassId, request.getGlassId()) .eq(request.getStartSlot() !=0, BigStorageCageHistoryTask::getStartSlot, request.getStartSlot()) .eq(request.getTargetSlot() !=0, BigStorageCageHistoryTask::getTargetSlot, request.getTargetSlot()) .in(CollectionUtil.isNotEmpty(request.getTaskStateList()) , BigStorageCageHistoryTask::getTaskState, request.getTaskStateList()) .in(CollectionUtil.isNotEmpty(request.getTaskTypeList()) , BigStorageCageHistoryTask::getTaskType, request.getTaskTypeList()) .between(BigStorageCageHistoryTask::getCreateTime, request.getBeginDate(), request.getEndDate()) .orderByDesc(BigStorageCageHistoryTask::getCreateTime); return this.list(wrapper); } } hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/OpcLoadGlassTask.java
@@ -209,7 +209,7 @@ .in(UpPattenUsage::getId, ids) .set(UpPattenUsage::getState, Const.LOAD_RAW_GLASS_SUCCESS)); } //todo:任务表数据情况 //任务表数据情况 task.setTaskRunning(0); task.setTotalCount(0); task.setRawGlassWidth(0); hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
@@ -1,13 +1,18 @@ package com.mes.job; import cn.hutool.json.JSONObject; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.mes.common.S7object; import com.mes.common.config.Const; import com.mes.device.PlcParameterObject; import com.mes.engineering.entity.Engineering; import com.mes.engineering.service.EngineeringService; import com.mes.opctask.entity.LoadGlassDeviceTask; import com.mes.opctask.service.LoadGlassDeviceTaskService; import com.mes.pp.service.OptimizeProjectService; import com.mes.rawglassdetails.entity.RawGlassStorageDetails; import com.mes.rawglassdetails.service.RawGlassStorageDetailsService; import com.mes.rawglassstation.entity.RawGlassStorageStation; import com.mes.tools.DateUtil; import com.mes.tools.WebSocketServer; import com.mes.uppattenusage.entity.UpPattenUsage; @@ -24,6 +29,7 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** * @author SNG-010 @@ -44,6 +50,8 @@ RedisUtil redisUtil; @Resource private LoadGlassDeviceTaskService loadGlassDeviceTaskService; @Resource private RawGlassStorageDetailsService rawGlassStorageDetailsService; PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; @@ -100,7 +108,7 @@ } } // @Scheduled(fixedDelay = 300) // @Scheduled(fixedDelay = 300) public void plcLoadGlassReport() { //获取是否有汇报 String loadStatus = plcParameterObject.getPlcParameter("PlcStatus").getValue(); @@ -134,7 +142,7 @@ JSONObject jsonObject = new JSONObject(); //正在进行的任务 List<UpPattenUsage> upPattenUsages = upPattenUsageService.prioritylist(); if(upPattenUsages!=null){ if (upPattenUsages != null) { jsonObject.append("prioritylist", upPattenUsages); } //查询1号线的任务 @@ -161,9 +169,18 @@ jsonObject.append("LoadTwoervice", LoadTwoState.getInkageState()); //工位信息 List<UpWorkstation> upWorkstations = upWorkstationService.list(); jsonObject.append("list", upWorkstations); MPJLambdaWrapper<RawGlassStorageDetails> wrapper = new MPJLambdaWrapper<>(); wrapper.select(RawGlassStorageStation::getSlot) .select("ifnull(remain_quantity, 0) as remain_quantity") .rightJoin(RawGlassStorageStation.class, on -> on.eq(RawGlassStorageStation::getSlot, RawGlassStorageDetails::getSlot) .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)) .in(RawGlassStorageStation::getDeviceId, 5, 6) .orderByAsc(RawGlassStorageStation::getSlot); List<RawGlassStorageDetails> rawGlassStorageDetailList = rawGlassStorageDetailsService.list(wrapper); List<RawGlassStorageDetails> stationOneList = rawGlassStorageDetailList.stream().filter(item -> item.getDeviceId() == 5).collect(Collectors.toList()); List<RawGlassStorageDetails> stationTwoList = rawGlassStorageDetailList.stream().filter(item -> item.getDeviceId() == 6).collect(Collectors.toList()); jsonObject.append("stationOne", stationOneList); jsonObject.append("stationTwo", stationTwoList); ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("loadGlass"); if (sendwServer != null) { @@ -200,11 +217,11 @@ } } // @Scheduled(fixedDelay = 5000) // @Scheduled(fixedDelay = 5000) public void loadGlassStatus() { JSONObject jsonObject = new JSONObject(); //正在进行的任务 String inkageStatus =plcParameterObject.getPlcParameter("InkageStatus").getValue(); String inkageStatus = plcParameterObject.getPlcParameter("InkageStatus").getValue(); // String inkageStatus ="1"; jsonObject.append("InkageStatus", inkageStatus); ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("loadGlass"); @@ -218,12 +235,13 @@ } } } @Scheduled(fixedDelay = 1000) public void loadGlassIsRun() { JSONObject jsonObject = new JSONObject(); //是否开始工程 Engineering engineering = engineeringService.selectInitiate(1); jsonObject.append("engineering", engineering); jsonObject.append("engineering", engineering); //工位信息 List<UpWorkstation> upWorkstations = upWorkstationService.list(); jsonObject.append("list", upWorkstations); hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/entity/HollowBigStorageCageDetails.java
@@ -60,11 +60,6 @@ private Integer totalLayer; /** * /*层号 */ private Integer hollowSequence; /** * 创建时间 */ private Date createTime; hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/entity/HollowGlassQueueInfo.java
@@ -75,10 +75,6 @@ * /*更新时间 */ private Date updateTime; /** * /*中空顺序 */ private Integer hollowSequence; /** * 路线 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
@@ -805,14 +805,22 @@ if (1 != isForce) { if (taskType == Const.BIG_STORAGE_AFTER_OUT) { if (tempList.size() <= totalLayer) { bigStorageCageTaskList = tempList; int tempSequence = list.get(0).getHollowSequence(); List<BigStorageCageTask> resultList = new ArrayList<>(); for (int i = 0; i < tempList.size(); i++) { if (tempSequence == list.get(i).getHollowSequence()) { resultList.add(tempList.get(i)); } else { break; } } bigStorageCageTaskList = resultList; } else { int remainCount = tempList.size() % totalLayer; bigStorageCageTaskList = tempList.subList(0, tempList.size() - remainCount); } } } List<String> glassIds = bigStorageCageTaskList.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList()); int glassCount = bigStorageCageTaskList.size(); //生成出片任务条数不足6补全