hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
@@ -90,21 +90,29 @@ * 2 卧转立进片完成 * 3 大车进片完成 * 4 大理片笼进片完成 * 5 大理片笼进片失败 * 6 大理片笼进片破损 */ public static final Integer BIG_STORAGE_IN_NEW = 1; public static final Integer BIG_STORAGE_IN_UP = 2; public static final Integer BIG_STORAGE_IN_CAR = 3; public static final Integer BIG_STORAGE_IN_SLOT = 4; public static final Integer BIG_STORAGE_IN_ERROR = 5; public static final Integer BIG_STORAGE_IN_DAMAGE = 6; public static final List<Integer> BIG_STORAGE_IN_UP_ALL = Arrays.asList(1, 2); /** * 卧转立出片请求 * 1 任务生成 * 2 玻璃进大车完成 * 3 大车出片完成 * 4 大理片笼进片失败 * 5 大理片笼进片破损 */ public static final Integer BIG_STORAGE_OUT_NEW = 1; public static final Integer BIG_STORAGE_OUT_CAR = 2; public static final Integer BIG_STORAGE_OUT_SUCCESS = 3; public static final Integer BIG_STORAGE_OUT_ERROR = 4; public static final Integer BIG_STORAGE_OUT_DAMAGE = 5; /** * 卧转立出片请求 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -92,6 +92,8 @@ String d02State = plcParameterObject.getPlcParameter("D02ID").getValue(); String d03State = plcParameterObject.getPlcParameter("D03State").getValue(); String d05State = plcParameterObject.getPlcParameter("D05State").getValue(); String mesD01Value = plcParameterObject.getPlcParameter("MESToD01").getValue(); String mesD04Value = plcParameterObject.getPlcParameter("MESToD04").getValue(); String mesD01Address = plcParameterObject.getPlcParameter("MESToD01").getAddress(); String mesD04Address = plcParameterObject.getPlcParameter("MESToD04").getAddress(); String d01ToMES = plcParameterObject.getPlcParameter("D01ToMES").getValue(); @@ -106,11 +108,12 @@ log.info("两条线卧转立均在执行任务,结束本次扫描进卧转立任务"); return; } //按照线路及玻璃id获取相邻两块玻璃 卧转立上的玻璃 if (REQUEST_WORD.equals(d01ToMES) && (StringUtils.isBlank(d02State) || !REQUEST_WORD.equals(d03State))) { //按照线路及玻璃id获取相邻两块玻璃 卧转立上的玻璃: 状态为0不操作(D01送片,0不操作,1允许送片),请求字为1, (02玻璃id为空或者卧转立未启动) if (!REQUEST_WORD.equals(mesD01Value) && REQUEST_WORD.equals(d01ToMES) && (StringUtils.isBlank(d02State) || !REQUEST_WORD.equals(d03State))) { judgeGlassTypeStatus(d01Id, Const.A09_OUT_TARGET_POSITION, mesD01Address); } if (REQUEST_WORD.equals(d04ToMES) && !REQUEST_WORD.equals(d05State)) { // 状态为0不操作(D01送片,0不操作,1允许送片),请求字为1, 卧转立未启动 if (!REQUEST_WORD.equals(mesD04Value) && REQUEST_WORD.equals(d04ToMES) && !REQUEST_WORD.equals(d05State)) { judgeGlassTypeStatus(d04Id, Const.A10_OUT_TARGET_POSITION, mesD04Address); } Date endDate = new Date(); @@ -299,6 +302,33 @@ } } /** * 处理破损表任务 */ @Scheduled(fixedDelay = 300) public void dealDamageTask() { Date startDate = new Date(); log.info("大理片笼破损玻璃清除任务开始执行时间:{}", startDate); //获取进片任务表中状态为破损的数据 List<BigStorageCageFeedTask> inDamageTaskInfoList = bigStorageCageFeedTaskService.list(new LambdaQueryWrapper<BigStorageCageFeedTask>() .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_DAMAGE)); if (CollectionUtils.isNotEmpty(inDamageTaskInfoList)) { bigStorageCageFeedTaskService.remove(new LambdaQueryWrapper<BigStorageCageFeedTask>().eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_DAMAGE)); //todo:将破损信息新增入破损表 } //获取出片任务表中状态为破损的数据 List<BigStorageCageOutTask> outDamageTaskInfoList = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>() .eq(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_DAMAGE)); if (CollectionUtils.isNotEmpty(outDamageTaskInfoList)) { bigStorageCageOutTaskService.remove(new LambdaQueryWrapper<BigStorageCageOutTask>().eq(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_IN_DAMAGE)); List<String> glassIdList = outDamageTaskInfoList.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList()); temperingGlassInfoService.remove(new LambdaQueryWrapper<TemperingGlassInfo>().in(TemperingGlassInfo::getGlassId, glassIdList)); //todo:将破损信息新增入破损表 } Date endDate = new Date(); log.info("大理片笼破损玻璃清除任务结束时间:{},共耗时:{}ms,结束扫码任务", endDate, endDate.getTime() - startDate.getTime()); return; } /** * 按照玻璃id判断玻璃状态及卧转立是否可直接启动 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java
@@ -81,7 +81,7 @@ /** * 任务状态 0 未开始 1正在进行 2完成 */ private Integer taskStauts; private Integer taskStatus; /** * 创建时间 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java
@@ -7,16 +7,15 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mes.downglassinfo.entity.DownGlassInfo; import com.mes.downglassinfo.entity.DownGlassTask; import com.mes.downglassinfo.mapper.DownGlassInfoMapper; import com.mes.downglassinfo.mapper.DownGlassTaskMapper; import com.mes.downglassinfo.service.DownGlassInfoService; import com.mes.downglassinfo.service.DownGlassTaskService; import com.mes.downworkstation.entity.DownWorkstation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -36,7 +35,7 @@ @Autowired private DownGlassInfoService downGlassInfoService; // MySQL Mapper @Autowired @Resource private DownGlassTaskMapper downGlassTaskMapper; // SQL Server Mapper @Override @@ -47,7 +46,7 @@ // Step 2: 从 SQL Server 中过滤掉这些玻璃 ID 并查询任务 QueryWrapper<DownGlassTask> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("task_stauts", 1) queryWrapper.eq("task_status", 1) .and(qw -> qw.eq("task_type", 2).or().eq("task_type", 3)); List<DownGlassInfo> excludedGlassIds = downGlassInfoService.list(); @@ -63,7 +62,7 @@ @Override public void updateTaskState(String id) { UpdateWrapper<DownGlassTask> updateWrapper = new UpdateWrapper<>(); updateWrapper.set("task_stauts", 2).eq("id", id); updateWrapper.set("task_status", 2).eq("id", id); baseMapper.update(new DownGlassTask(), updateWrapper); } @@ -99,7 +98,7 @@ // 如果主键值不存在,则进行插入操作 DownGlassTask newDownGlassTask = new DownGlassTask(); BeanUtils.copyProperties(downGlassTask, newDownGlassTask); newDownGlassTask.setTaskStauts(1); // 默认任务状态为1 newDownGlassTask.setTaskStatus(1); // 默认任务状态为1 newDownGlassTask.setCreateTime(new Date()); int rows = baseMapper.insert(newDownGlassTask); return rows > 0 ? rows : null;