From b2d45d2c202a351eb8f955777ae84dba82b554be Mon Sep 17 00:00:00 2001 From: ls <1793460677@qq.com> Date: Wed, 27 Aug 2025 09:47:58 +0800 Subject: [PATCH] =?UTF-8?q?add:=20=E7=83=98=E7=AE=B1=E5=A2=9E=E8=A1=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hot/service/IstIvtHotpointivtService.java | 2 +- .../impl/StIvtHotpointivtServiceImpl.java | 1 - .../service/impl/SchBasePointServiceImpl.java | 43 +++++++++++++++ .../core/enums/PointStatusEnum.java | 4 +- .../task_manage/tasks/hot/InHotTrussTask.java | 53 +++++++++++++++---- .../tasks/slitter/SlitterUpAGVTask.java | 7 ++- .../src/main/resources/config/application.yml | 4 +- 7 files changed, 97 insertions(+), 17 deletions(-) diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/hot/service/IstIvtHotpointivtService.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/hot/service/IstIvtHotpointivtService.java index 1059c14f2..22a0e03d0 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/hot/service/IstIvtHotpointivtService.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/hot/service/IstIvtHotpointivtService.java @@ -1,6 +1,6 @@ package org.nl.wms.pdm.ivt.hot.service; -import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.nl.common.domain.query.PageQuery; import org.nl.wms.pdm.ivt.hot.service.dao.StIvtHotpointivt; diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/hot/service/impl/StIvtHotpointivtServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/hot/service/impl/StIvtHotpointivtServiceImpl.java index 027d6bb37..4c6855fcf 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/hot/service/impl/StIvtHotpointivtServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/hot/service/impl/StIvtHotpointivtServiceImpl.java @@ -2,7 +2,6 @@ package org.nl.wms.pdm.ivt.hot.service.impl; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; -import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java index 23c88c627..aeed7de53 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java @@ -2,6 +2,7 @@ package org.nl.wms.sch.point.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -15,6 +16,8 @@ import org.nl.common.domain.query.PageQuery; import org.nl.common.exception.BadRequestException; import org.nl.common.utils.SecurityUtils; import org.nl.config.language.LangProcess; +import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder; +import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService; import org.nl.wms.sch.point.service.ISchBasePointService; import org.nl.wms.sch.point.service.dao.SchBasePoint; import org.nl.wms.sch.point.service.dao.mapper.SchBasePointMapper; @@ -22,13 +25,17 @@ import org.nl.wms.sch.region.service.dao.SchBaseRegion; import org.nl.wms.sch.region.service.dao.mapper.SchBaseRegionMapper; import org.nl.wms.sch.task_manage.core.enums.PointStatusEnum; import org.nl.wms.util.PointUtils; +import org.nl.wms.util.TaskUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; +import static org.nl.wms.util.TaskUtils.createVirtualContainer; + /** * @author lyd * @description 服务实现 @@ -44,6 +51,9 @@ public class SchBasePointServiceImpl extends ServiceImpl queryAll(Map whereJson, PageQuery page) { String blurry = ObjectUtil.isNotEmpty(whereJson.get("blurry")) @@ -156,6 +166,39 @@ public class SchBasePointServiceImpl extends ServiceImpl hotList = hotpointivtService.getNotTaskHotOven(order.getRoll_type(), "1"); if (hotList.size() > 0) { + List hotListFilter = multiFilter(hotList); // 查找合适温度的点位 - for (StIvtHotpointivt hotPoint : hotList) { + for (StIvtHotpointivt hotPoint : hotListFilter) { String pointCode = hotPoint.getPoint_code(); String pointTemperature = (String) redisUtils.hget(pointCode, "temperature"); if (ObjectUtil.isNotEmpty(pointTemperature)) { @@ -122,14 +132,14 @@ public class InHotTrussTask extends AbstractTask { String pointCode = hotPoint.getPoint_code(); String pointTemperature = (String) redisUtils.hget(pointCode, "temperature"); String isOff = (String) redisUtils.hget(pointCode, "is_off"); - if (ObjectUtil.isNotEmpty(pointTemperature) && Integer.valueOf(pointTemperature) < 50 && "0".equals(isOff) ) { - task.setPoint_code2(pointCode); - flag = "1"; - break; + if (ObjectUtil.isNotEmpty(pointTemperature) && Integer.valueOf(pointTemperature) < 50 && "0".equals(isOff)) { + task.setPoint_code2(pointCode); + flag = "1"; + break; } } - if (ObjectUtil.isEmpty(task.getPoint_code2())){ - throw new BadRequestException("暂时没有可用的烘箱暂存位"); + if (ObjectUtil.isEmpty(task.getPoint_code2())) { + throw new BadRequestException("暂时没有可用的烘箱暂存位"); } } else { @@ -164,6 +174,29 @@ public class InHotTrussTask extends AbstractTask { taskService.save(task); } + private List multiFilter(List hotList) { + // 根据烘箱分组 + Map> stIvtHotListMap = hotList.stream().collect(Collectors.groupingBy(StIvtHotpointivt::getGroup_name)); + // 查找每个组有母卷的点位 + List stIvtHotpointivts = stIvtHotpointivtMapper.selectList(new QueryWrapper().lambda().in(StIvtHotpointivt::getGroup_name, stIvtHotListMap.keySet()) + .in(StIvtHotpointivt::getPoint_status, "02", "03", "04")); + List groupNames = stIvtHotpointivts.stream().map(StIvtHotpointivt::getGroup_name).collect(Collectors.toList()); + + //先筛选烘箱没有母卷的点位 + for (String groupName : stIvtHotListMap.keySet()) { + if (!groupNames.contains(groupName)) { + return stIvtHotListMap.get(groupName); + } + } + //再筛选烘箱里母卷少的点位 + return stIvtHotListMap.values().stream() + .filter(Objects::nonNull) + .sorted(Comparator.comparingInt(List::size)) + .limit(1) + .collect(Collectors.toList()).get(0); + + } + @Override @Transactional(rollbackFor = Exception.class) public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterUpAGVTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterUpAGVTask.java index 23b9d9868..5bf2d7e0e 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterUpAGVTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterUpAGVTask.java @@ -119,8 +119,11 @@ public class SlitterUpAGVTask extends AbstractTask { SchBasePoint point1 = pointService.query().eq("point_code", pointCode1).one(); point4.setPoint_status("2"); pointService.updateById(point4); - point1.setPoint_status("1"); - pointService.updateById(point1); + //只有待分切的点位才更新为空 + if ("4".equals(point1.getPoint_status())) { + point1.setPoint_status("1"); + pointService.updateById(point1); + } if (ObjectUtil.isNotEmpty(taskObj.getPoint_code3())) { // 四点任务,还需要创建收卷辊桁架任务 JSONObject taskParam = new JSONObject(); diff --git a/lms2/nladmin-system/nlsso-server/src/main/resources/config/application.yml b/lms2/nladmin-system/nlsso-server/src/main/resources/config/application.yml index 307668f78..7e91ae4ab 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/resources/config/application.yml +++ b/lms2/nladmin-system/nlsso-server/src/main/resources/config/application.yml @@ -7,7 +7,7 @@ lucene: path: D:\lucene\index spring: profiles: - active: dev + active: prod autoconfigure: exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure messages: @@ -250,7 +250,7 @@ sa-token: # token 有效期,单位s 默认30天, -1代表永不过期 timeout: 2592000 # token 临时有效期 (指定时间内无操作就视为token过期) 单位: 秒 - activity-timeout: -1 + activity-timeout: 7200 # 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录) is-concurrent: true # 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)