From 6c3bdcaee9104fc4a26d25fd500ba44a48a3e7db Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Mon, 28 Oct 2024 17:18:18 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=94=9F=E7=AE=94=E6=AF=8D=E5=8D=B7?= =?UTF-8?q?=E4=B8=8E=E6=94=B6=E5=8D=B7=E8=BE=8A=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/config/lucene/TagNameEnum.java | 4 +- .../service/impl/BakingPdaServiceImpl.java | 98 +++++++++++++++---- .../service/impl/RawFoilPdaServiceImpl.java | 10 +- .../service/impl/SlitterPdaServiceImpl.java | 3 +- .../nl/wms/quartz/AutoCreateOutHotTask.java | 2 +- .../core/constant/RegionConstant.java | 18 ++-- .../core/constant/hot/HotConstant.java | 20 ++++ .../core/constant/raw/RawConstant.java | 9 ++ .../impl/BakingOperationServiceImpl.java | 9 +- .../tasks/hot/InHotDockingTrussTask.java | 8 +- .../tasks/hot/OutHotToDockingTrussTask.java | 9 +- .../task_manage/tasks/raw/RawDownAGVTask.java | 7 +- .../tasks/slitter/SlitterUpTrussTask.java | 3 +- .../main/java/org/nl/wms/util/TaskUtils.java | 11 +++ .../wms/pdm/order/rawfoilworkorder/index.vue | 3 +- 15 files changed, 164 insertions(+), 50 deletions(-) create mode 100644 lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/constant/hot/HotConstant.java create mode 100644 lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/constant/raw/RawConstant.java diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/TagNameEnum.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/TagNameEnum.java index 4ceae5494..5b2810a1a 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/TagNameEnum.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/TagNameEnum.java @@ -17,6 +17,7 @@ public enum TagNameEnum { RAW_DOWN("手持生箔下料"), RAW_EMPTY_HOME("手持生箔空辊回库"), RAW_READY("手持生箔准备就绪"), + RAW_INFO_UPDATE("手持修改生箔信息"), CUT_UP("手持分切上料"), CUT_UP_CONFIRM("手持分切确认上料"), CUT_EMPTY_BACK("手持空轴送回"), @@ -27,7 +28,8 @@ public enum TagNameEnum { ERROR_GX_IN_OUT("管芯满入空出异常处理"), AUTO_CALL_EMPTY_BY_CZZC("自动称重暂存位叫空"), AUTO_IN_HOT("自动创建入烘箱"), - AUTO_IN_OUT("自动创建出烘箱"), + AUTO_OUT_HOT("自动创建出烘箱"), + ACS_OUT_HOT("ACS请求出烘箱"), ACS_FEEDBACK_TUBE_COMPLETE("ACS反馈管芯入库完成"), /** * 标记符号 diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/BakingPdaServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/BakingPdaServiceImpl.java index 0f05718f5..69f16bce5 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/BakingPdaServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/BakingPdaServiceImpl.java @@ -2,12 +2,14 @@ package org.nl.wms.pda.mps.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.JSONObject; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; import org.nl.common.utils.SecurityUtils; +import org.nl.config.lucene.TagNameEnum; import org.nl.wms.pda.mps.service.BakingPdaService; import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder; import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService; @@ -19,13 +21,19 @@ import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.tasks.hot.InHotCachingTrussTask; import org.nl.wms.sch.task_manage.tasks.hot.InHotTrussTask; import org.nl.wms.util.PointUtils; +import org.nl.wms.util.TaskUtils; +import org.slf4j.MDC; 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.ArrayList; import java.util.List; import java.util.stream.Collectors; +import java.util.stream.Stream; + +import static org.nl.wms.util.TaskUtils.createVirtualContainer; /** * @Author: lyd @@ -64,10 +72,10 @@ public class BakingPdaServiceImpl implements BakingPdaService { throw new BadRequestException("点位 [" + pointCode + "] 对应的生箔工单不存在!"); } if ("0".equals(quality)) { - // 重复烘烤 + // 重复烘烤 - 待烘烤 hotZcPoint.setPoint_status("2"); } else { - // 质检合格 + // 质检合格 - 待分切 hotZcPoint.setPoint_status("4"); } PointUtils.setUpdateByPC(hotZcPoint); @@ -129,35 +137,82 @@ public class BakingPdaServiceImpl implements BakingPdaService { @Override @Transactional(rollbackFor = Exception.class) public JSONObject doModifyRawInfos(JSONObject param) { + MDC.put(GeneralDefinition.MDC_KEY, TagNameEnum.RAW_INFO_UPDATE.getTag()); log.info("手持修改温度/时间 - {}", param); // point_code, order_code, temperature, time String pointCode = param.getString("point_code"); + // 不一定有 String orderCode = param.getString("order_code"); + // 收卷辊编码 + String rollCode = param.getString("roll_code"); String temperature = param.getString("temperature"); String rollType = param.getString("roll_type"); String isBaking = param.getString("is_baking"); String time = param.getString("time"); SchBasePoint hotPoint = pointService.getById(pointCode); - PdmBiRawfoilworkorder order = rawfoilworkorderService.getByContainerName(orderCode); - if (ObjectUtil.isEmpty(order)) { - throw new BadRequestException("生箔工单不存在!"); - } - LambdaUpdateWrapper lam = new LambdaUpdateWrapper<>(); - lam.set(PdmBiRawfoilworkorder::getBaking_temperature, temperature) - .set(PdmBiRawfoilworkorder::getBaking_time, time) - .set(PdmBiRawfoilworkorder::getUpdate_optid, SecurityUtils.getCurrentUserId()) - .set(PdmBiRawfoilworkorder::getUpdate_optname, SecurityUtils.getCurrentNickName()) - .set(PdmBiRawfoilworkorder::getUpdate_time, DateUtil.now()) - .set(PdmBiRawfoilworkorder::getRoll_type, rollType) - .set(PdmBiRawfoilworkorder::getIs_baking, isBaking) - .eq(PdmBiRawfoilworkorder::getContainer_name, orderCode); - rawfoilworkorderService.update(lam); - if (!hotPoint.getMaterial_code().equals(orderCode)) { - // 点位绑定的与扫码的不一样,以扫码的数据为准, 修改点位信息。 - hotPoint.setMaterial_code(order.getContainer_name()); - PointUtils.setUpdateByPC(hotPoint); - pointService.updateById(hotPoint); + if (ObjectUtil.isNotEmpty(orderCode)) { + PdmBiRawfoilworkorder order = rawfoilworkorderService.getByContainerName(orderCode); + if (ObjectUtil.isEmpty(order)) { + throw new BadRequestException("生箔工单不存在!"); + } + LambdaUpdateWrapper lam = new LambdaUpdateWrapper<>(); + lam.set(PdmBiRawfoilworkorder::getBaking_temperature, temperature) + .set(PdmBiRawfoilworkorder::getBaking_time, time) + .set(PdmBiRawfoilworkorder::getUpdate_optid, SecurityUtils.getCurrentUserId()) + .set(PdmBiRawfoilworkorder::getUpdate_optname, SecurityUtils.getCurrentNickName()) + .set(PdmBiRawfoilworkorder::getUpdate_time, DateUtil.now()) + .set(PdmBiRawfoilworkorder::getRoll_type, rollType) + .set(PdmBiRawfoilworkorder::getIs_baking, isBaking) + .eq(PdmBiRawfoilworkorder::getContainer_name, orderCode); + rawfoilworkorderService.update(lam); + if (!hotPoint.getMaterial_code().equals(orderCode)) { + // 点位绑定的与扫码的不一样,以扫码的数据为准, 修改点位信息。 + hotPoint.setMaterial_code(order.getContainer_name()); + PointUtils.setUpdateByPC(hotPoint); + pointService.updateById(hotPoint); + } + } else { + // 如果没有传母卷号,对比收卷辊编码 + if (!hotPoint.getVehicle_code().equals(rollCode)) { + List collect = Stream.of(hotPoint.getVehicle_code(), rollCode).filter(ObjectUtil::isNotEmpty).collect(Collectors.toList()); + // 替换,吧之前绑定这个收卷辊的卷全部结束 + LambdaUpdateWrapper lam = new LambdaUpdateWrapper<>(); + lam.set(PdmBiRawfoilworkorder::getRealend_time, DateUtil.now()) + .set(PdmBiRawfoilworkorder::getUpdate_optid, SecurityUtils.getCurrentUserId()) + .set(PdmBiRawfoilworkorder::getUpdate_optname, SecurityUtils.getCurrentNickName()) + .set(PdmBiRawfoilworkorder::getUpdate_time, DateUtil.now()) + .set(PdmBiRawfoilworkorder::getStatus, "09") + .set(PdmBiRawfoilworkorder::getFinish_type, "02") + .in(PdmBiRawfoilworkorder::getWind_roll, collect); + rawfoilworkorderService.update(lam); + // 创建新的并绑定到点位中 + PdmBiRawfoilworkorder rawOrder = new PdmBiRawfoilworkorder(); + rawOrder.setWorkorder_id(IdUtil.getSnowflake(1,1).nextIdStr()); + rawOrder.setContainer_name(ObjectUtil.isNotEmpty(orderCode) ? orderCode : createVirtualContainer(rollCode, "yyMMddHHmmss", "x")); + rawOrder.setResource_name("x"); + rawOrder.setMfg_order_name("$$$$"); + rawOrder.setProduct_name("锂电"); + rawOrder.setDescription("锂电"); + rawOrder.setTheory_height(BigDecimal.valueOf(2000)); + rawOrder.setUp_coiler_date(DateUtil.now()); + rawOrder.setStatus("04"); + rawOrder.setIs_baking(isBaking); + rawOrder.setRoll_type(rollType); + rawOrder.setWind_roll(rollCode); + rawOrder.setBaking_time(time); + TaskUtils.setRawOrderCreateByDefault(rawOrder); + rawOrder.setProduct_area("A1"); + rawOrder.setOrder_type("1"); + rawfoilworkorderService.save(rawOrder); + // 点位绑定的与扫码的不一样,以扫码的数据为准, 修改点位信息。 + hotPoint.setMaterial_code(rawOrder.getContainer_name()); + hotPoint.setVehicle_code(rollCode); + PointUtils.setUpdateByPC(hotPoint); + pointService.updateById(hotPoint); + orderCode = rawOrder.getContainer_name(); + } } + // 创建入烘箱/入暂存 log.info("开始创建桁架任务入烘箱对接位...."); List schBaseTasks = taskService.checkHaveTask(pointCode); @@ -167,6 +222,7 @@ public class BakingPdaServiceImpl implements BakingPdaService { JSONObject taskParam = new JSONObject(); taskParam.put("order_code", orderCode); taskParam.put("device_code", pointCode); + taskParam.put("vehicle_code", rollCode); taskParam.put("config_code", "InHotTrussTask"); taskParam.put("create_mode", GeneralDefinition.PDA_CREATION); inHotTrussTask.apply(taskParam); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilPdaServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilPdaServiceImpl.java index b081f143c..e89cc3921 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilPdaServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilPdaServiceImpl.java @@ -32,6 +32,8 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.List; +import static org.nl.wms.util.TaskUtils.createVirtualContainer; + /** * @Author: lyd * @Description: @@ -170,6 +172,8 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService { String pointCode = param.getString("point_code"); // 母卷号 String orderCode = param.getString("order_code"); + // 收卷辊编码 + String rollCode = param.getString("roll_code"); String isCallEmpty = param.getString("is_call_empty"); // 判断是否存在任务 List unFinishTasks = taskService.checkHaveTask(pointCode); @@ -185,7 +189,7 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService { // todo: 暂时写死,创建工单 PdmBiRawfoilworkorder rawOrder = new PdmBiRawfoilworkorder(); rawOrder.setWorkorder_id(IdUtil.getSnowflake(1,1).nextIdStr()); - rawOrder.setContainer_name(orderCode); + rawOrder.setContainer_name(ObjectUtil.isNotEmpty(orderCode) ? orderCode : createVirtualContainer(rollCode, "yyMMddHHmmss", sbPoint.getExt_code())); rawOrder.setResource_name(sbPoint.getExt_code()); rawOrder.setMfg_order_name("$$$$"); rawOrder.setProduct_name("锂电"); @@ -193,6 +197,7 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService { rawOrder.setTheory_height(BigDecimal.valueOf(2000)); rawOrder.setUp_coiler_date(DateUtil.now()); rawOrder.setStatus("01"); + rawOrder.setWind_roll(rollCode); TaskUtils.setRawOrderCreateByDefault(rawOrder); rawOrder.setProduct_area(sbPoint.getProduct_area()); rawOrder.setOrder_type("1"); @@ -200,9 +205,10 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService { // 组织请求任务参数 // 当前生箔的点位 param.put("device_code", pointCode); + param.put("order_code", rawOrder.getContainer_name()); param.put("workorder_id", rawOrder.getWorkorder_id()); param.put("ext_code", sbPoint.getExt_code()); -// param.put("vehicle_code2", sbPoint.getExt_code()); + param.put("vehicle_code2", rollCode); param.put("create_mode", GeneralDefinition.PDA_CREATION); // 判断是否呼叫空辊 if (GeneralDefinition.YES.equals(isCallEmpty)) { diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/SlitterPdaServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/SlitterPdaServiceImpl.java index a1f045439..ee692b7bd 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/SlitterPdaServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/SlitterPdaServiceImpl.java @@ -91,6 +91,7 @@ public class SlitterPdaServiceImpl implements SlitterPdaService { log.info("手持呼叫母卷:{}", param); // param: workorder_id, zc_point, point_code, vehicle_code, resource_name String workorderId = param.getString("workorder_id"); + PdmBiRawfoilworkorder one = rawfoilworkorderService.getById(workorderId); // 分切机满料位 String pointCode = param.getString("point_code"); String zcPoint = param.getString("zc_point"); @@ -115,7 +116,7 @@ public class SlitterPdaServiceImpl implements SlitterPdaService { // 标记一下, 0: 只做呼叫母卷,1:呼叫母卷还要送空辊 param.put("is_flag", "01".equals(cutPoint.getFull_point_status()) ? "0" : "1"); param.put("vehicle_code", cutPoint.getFull_vehicle_code()); - param.put("vehicle_code2", param.getString("resource_name")); + param.put("vehicle_code2", one.getWind_roll()); slitterUpTrussTask.apply(param); JSONObject result = new JSONObject(); result.put("message", "操作成功!"); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/AutoCreateOutHotTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/AutoCreateOutHotTask.java index 502b55abd..f1e705962 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/AutoCreateOutHotTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/AutoCreateOutHotTask.java @@ -31,7 +31,7 @@ public class AutoCreateOutHotTask { private OutHotTrussTask outHotTrussTask; @Transactional(rollbackFor = Exception.class) public void run() { - MDC.put(GeneralDefinition.MDC_KEY, TagNameEnum.AUTO_IN_OUT.getTag()); + MDC.put(GeneralDefinition.MDC_KEY, TagNameEnum.AUTO_OUT_HOT.getTag()); log.info("自动创建出烘箱任务开始执行..."); // 获取烘箱内部状态:烘烤完毕暂存中(04)、03但不需要烘烤的点位 List hotPoints = hotpointivtService.getUnionBakedFinishPoint(); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/constant/RegionConstant.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/constant/RegionConstant.java index 7111bde1d..2e1e9aaff 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/constant/RegionConstant.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/constant/RegionConstant.java @@ -6,20 +6,22 @@ package org.nl.wms.sch.task_manage.core.constant; * @Date: 2024/9/2 */ public interface RegionConstant { + /** A1区域 */ + String A1 = "A1"; /** A1成品称重暂存区 */ - public final static String REGION_A1_CZZC = "A1-CZZC"; + String REGION_A1_CZZC = "A1-CZZC"; /** A1废箔区域 */ - public final static String REGION_A1_FB = "A1-FB"; + String REGION_A1_FB = "A1-FB"; /** A1废箔区域 */ - public final static String REGION_A1_GXK = "A1-GXK"; + String REGION_A1_GXK = "A1-GXK"; /** A1烘箱暂存区域 */ - public final static String REGION_A1_HXZC = "A1-HXZC"; + String REGION_A1_HXZC = "A1-HXZC"; /** A1电梯区域 */ - public final static String REGION_A1_LIFT_AREA = "A1-LIFT-AREA"; + String REGION_A1_LIFT_AREA = "A1-LIFT-AREA"; /** A1收卷辊库区 */ - public final static String REGION_A1_SJGK = "A1-SJGK"; + String REGION_A1_SJGK = "A1-SJGK"; /** A1样品检测区域 */ - public final static String REGION_A1_YPJC = "A1-YPJC"; + String REGION_A1_YPJC = "A1-YPJC"; /** A1装箱暂存区 */ - public final static String REGION_A1_ZXZC = "A1-ZXZC"; + String REGION_A1_ZXZC = "A1-ZXZC"; } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/constant/hot/HotConstant.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/constant/hot/HotConstant.java new file mode 100644 index 000000000..fb1aa02d5 --- /dev/null +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/constant/hot/HotConstant.java @@ -0,0 +1,20 @@ +package org.nl.wms.sch.task_manage.core.constant.hot; + +/** + * 烘烤常量 + * @Author: lyd + * @Date: 2024/10/28 + */ +public class HotConstant { + /** 点位类型:点位 */ + public final static String POINT_TYPE_EMPTY = "1"; + /** 点位类型:烘箱对接位 */ + public final static String POINT_TYPE_HOT_DOCKING = "5"; + /** 点位状态:空位 */ + public final static String POINT_STATUS_EMPTY = "1"; + /** 点位状态:待质检 */ + public final static String POINT_STATUS_WAIT_QUALITY = "3"; + + /** 烘箱点位(非对接位)状态 -空位 */ + public final static String HOT_STATUS_EMPTY = "01"; +} diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/constant/raw/RawConstant.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/constant/raw/RawConstant.java new file mode 100644 index 000000000..e9c6e0d1f --- /dev/null +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/core/constant/raw/RawConstant.java @@ -0,0 +1,9 @@ +package org.nl.wms.sch.task_manage.core.constant.raw; + +/** + * 生箔所使用的常量 + * @Author: lyd + * @Date: 2024/10/28 + */ +public class RawConstant { +} diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/service/impl/BakingOperationServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/service/impl/BakingOperationServiceImpl.java index 3115d4006..a97ad295e 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/service/impl/BakingOperationServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/service/impl/BakingOperationServiceImpl.java @@ -6,19 +6,21 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; +import org.nl.config.lucene.TagNameEnum; import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder; import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService; import org.nl.wms.pdm.ivt.hot.service.IstIvtHotpointivtService; import org.nl.wms.pdm.ivt.hot.service.dao.StIvtHotpointivt; import org.nl.wms.sch.task.service.ISchBaseTaskService; import org.nl.wms.sch.task.service.dao.SchBaseTask; -import org.nl.wms.sch.task_manage.TaskStatus; import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition; +import org.nl.wms.sch.task_manage.core.constant.hot.HotConstant; import org.nl.wms.sch.task_manage.service.BakingOperationService; import org.nl.wms.sch.task_manage.tasks.hot.InHotDockingTrussTask; import org.nl.wms.sch.task_manage.tasks.hot.InHotTrussTask; import org.nl.wms.sch.task_manage.tasks.hot.OutHotToDockingTrussTask; import org.nl.wms.sch.task_manage.tasks.hot.OutHotTrussTask; +import org.slf4j.MDC; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; @@ -51,6 +53,7 @@ public class BakingOperationServiceImpl implements BakingOperationService { @Override @Transactional(rollbackFor = Exception.class) public JSONObject acsRequestOutHotTask(JSONObject param) { + MDC.put(GeneralDefinition.MDC_KEY, TagNameEnum.ACS_OUT_HOT.getTag()); log.info("acs请求出烘箱:{}", param); // device_code // 校验任务 @@ -60,7 +63,7 @@ public class BakingOperationServiceImpl implements BakingOperationService { throw new BadRequestException("点位[" + deviceCode + "]已经存在任务!"); } StIvtHotpointivt hotPoint = hotpointivtService.getPointByCode(deviceCode, false); - if ("01".equals(hotPoint.getPoint_status())) { + if (HotConstant.HOT_STATUS_EMPTY.equals(hotPoint.getPoint_status())) { throw new BadRequestException("烘箱「" + deviceCode + "」系统库存为空!"); } param.put("config_code", "OutHotToDockingTrussTask"); @@ -158,7 +161,7 @@ public class BakingOperationServiceImpl implements BakingOperationService { taskParam.put("config_code", "InHotDockingTrussTask"); taskParam.put("create_mode", GeneralDefinition.ACS_CREATION); // 满卷的收卷辊编码放在AGV任务的载具2上 -// taskParam.put("vehicle_code", taskObj.getVehicle_code2()); + taskParam.put("vehicle_code", taskObj.getVehicle_code2()); inHotDockingTrussTask.apply(taskParam); JSONObject result = new JSONObject(); result.put("status", HttpStatus.OK.value()); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/InHotDockingTrussTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/InHotDockingTrussTask.java index a713b6368..65a52732d 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/InHotDockingTrussTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/InHotDockingTrussTask.java @@ -22,9 +22,10 @@ import java.util.List; import static org.nl.wms.util.TaskUtils.checkTaskOptionStatus; import static org.nl.wms.util.TaskUtils.setUpdateByPC; +import static org.nl.wms.sch.task_manage.core.constant.hot.HotConstant.*; /** - * 入烘箱对接位桁架任务类 + * 入烘箱对接位桁架任务类(等待修改信息) * @Author: lyd * @Date: 2024/9/5 */ @@ -49,8 +50,8 @@ public class InHotDockingTrussTask extends AbstractTask { public void createCompletion(SchBaseTask task) { TaskUtils.taskLock(RegionConstant.REGION_A1_HXZC + "5", () -> { // 找个对接位(状态是空的,没有任务的) - List endPoints = pointService.getHotNotTaskPoint("A1", RegionConstant.REGION_A1_HXZC, - "5", "1"); + List endPoints = pointService.getHotNotTaskPoint(RegionConstant.A1, RegionConstant.REGION_A1_HXZC, + POINT_TYPE_HOT_DOCKING, POINT_STATUS_EMPTY); if (endPoints.size() == 0) { throw new BadRequestException("没有可用的烘箱对接位!"); } @@ -75,6 +76,7 @@ public class InHotDockingTrussTask extends AbstractTask { SchBasePoint endPoint = pointService.getById(endPointCode); endPoint.setPoint_status("5"); endPoint.setMaterial_code(orderCode); + endPoint.setVehicle_code(taskObj.getVehicle_code()); PointUtils.setUpdateByType(endPoint, taskFinishedType); pointService.updateById(endPoint); // 完成 diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/OutHotToDockingTrussTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/OutHotToDockingTrussTask.java index d247c9125..7d205dff9 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/OutHotToDockingTrussTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/OutHotToDockingTrussTask.java @@ -1,6 +1,5 @@ package org.nl.wms.sch.task_manage.tasks.hot; -import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; @@ -28,6 +27,7 @@ import java.util.List; import static org.nl.wms.sch.task_manage.core.constant.RegionConstant.REGION_A1_HXZC; import static org.nl.wms.util.PointUtils.hotClearPoint; import static org.nl.wms.util.TaskUtils.*; +import static org.nl.wms.sch.task_manage.core.constant.hot.HotConstant.*; /** * 出烘箱到对接位质检桁架任务 @@ -55,8 +55,8 @@ public class OutHotToDockingTrussTask extends AbstractTask { public void createCompletion(SchBaseTask task) { TaskUtils.taskLock(REGION_A1_HXZC + "5", () -> { // 从烘箱对接位中找一个空位 - List endPoints = pointService.getHotNotTaskPoint("A1", RegionConstant.REGION_A1_HXZC, - "5", "1"); + List endPoints = pointService.getHotNotTaskPoint(RegionConstant.A1, RegionConstant.REGION_A1_HXZC, + POINT_TYPE_HOT_DOCKING, POINT_STATUS_EMPTY); if (endPoints.size() == 0) { throw new BadRequestException("没有可用的烘箱对接位!"); } @@ -91,8 +91,9 @@ public class OutHotToDockingTrussTask extends AbstractTask { SchBasePoint endPoint = pointService.getById(endPointCode); // 终点设置值 endPoint.setMaterial_code(order.getContainer_name()); + endPoint.setVehicle_code(order.getWind_roll()); endPoint.setSource_id(request.getString("workorder_id")); - endPoint.setPoint_status("3"); + endPoint.setPoint_status(POINT_STATUS_WAIT_QUALITY); PointUtils.setUpdateByType(endPoint, taskFinishedType); pointService.updateById(endPoint); taskObj.setTask_status(TaskStatus.FINISHED.getCode()); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawDownAGVTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawDownAGVTask.java index d63d19a4f..14c1891f9 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawDownAGVTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawDownAGVTask.java @@ -8,7 +8,6 @@ import org.nl.common.exception.BadRequestException; import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder; import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService; import org.nl.wms.pdm.ivt.raw.service.IstIvtSbpointivtService; -import org.nl.wms.pdm.ivt.raw.service.dao.StIvtSbpointivt; import org.nl.wms.sch.point.service.ISchBasePointService; import org.nl.wms.sch.point.service.dao.SchBasePoint; import org.nl.wms.sch.task.service.ISchBaseTaskService; @@ -28,6 +27,8 @@ import java.util.List; import static org.nl.wms.util.TaskUtils.checkTaskOptionStatus; import static org.nl.wms.util.TaskUtils.setUpdateByPC; +import static org.nl.wms.sch.task_manage.core.constant.RegionConstant.A1; +import static org.nl.wms.sch.task_manage.core.constant.hot.HotConstant.*; /** * @Author: lyd @@ -66,12 +67,12 @@ public class RawDownAGVTask extends AbstractTask { // 收卷辊库出口 String startPointCode = requestObj.getString("start_point_code"); // 查找烘箱对接位可用的位置(没货、没任务、没禁用) - List hxPoints = pointService.getHotNotTaskPoint("A1", HX_REGION, - "1", "1"); + List hxPoints = pointService.getHotNotTaskPoint(A1, HX_REGION, POINT_TYPE_EMPTY, POINT_STATUS_EMPTY); if (hxPoints.size() == 0) { throw new BadRequestException("烘箱没有可以用的对接位!"); } SchBasePoint hxPoint = hxPoints.get(0); + // flag由上游标记,用来判断创建四点还是两任务 if ("1".equals(flag)) { // 创建四点任务:先去收卷辊出口在到生箔位,在从生箔到烘箱对接位 // StIvtSbpointivt pointCode = sbpointivtService.getByPointCode(deviceCode, false); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterUpTrussTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterUpTrussTask.java index f2026c989..72e2cf97f 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterUpTrussTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterUpTrussTask.java @@ -94,7 +94,6 @@ public class SlitterUpTrussTask extends AbstractTask { // 创建AGV任务 log.info("点位{}更新完毕,创建AGV任务给分切机上料", startPointCode); - PdmBiRawfoilworkorder order = rawfoilworkorderService.getById(workorderId); JSONObject taskParam = new JSONObject(); taskParam.put("device_code", endPointCode); taskParam.put("cut_point", requestObj.getString("device_code")); @@ -103,7 +102,7 @@ public class SlitterUpTrussTask extends AbstractTask { // 空轴的编码 taskParam.put("vehicle_code", taskObj.getVehicle_code()); // 满轴的载具号 - taskParam.put("vehicle_code2", order.getResource_name()); + taskParam.put("vehicle_code2", taskObj.getVehicle_code2()); taskParam.put("workorder_id", workorderId); taskParam.put("config_code", "SlitterUpAGVTask"); taskParam.put("up_task_code", taskObj.getTask_code()); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/TaskUtils.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/TaskUtils.java index 5cf26af32..f1c6b1d2a 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/TaskUtils.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/TaskUtils.java @@ -387,4 +387,15 @@ public class TaskUtils { point.setUpdate_optname(SecurityUtils.getCurrentUsername()); point.setUpdate_time(DateUtil.now()); } + + /** + * 创建虚拟的母卷号 + * @param rollCode 收卷辊编码 + * @param format 时间格式 + * @param pointCode 点位编码 + * @return + */ + public static String createVirtualContainer(String rollCode, String format, String pointCode) { + return "R-" + pointCode + "-" + TaskUtils.getDateTime(format) + "-" + rollCode; + } } diff --git a/lms2/nladmin-ui/src/views/wms/pdm/order/rawfoilworkorder/index.vue b/lms2/nladmin-ui/src/views/wms/pdm/order/rawfoilworkorder/index.vue index c4f77445b..0f934b44e 100644 --- a/lms2/nladmin-ui/src/views/wms/pdm/order/rawfoilworkorder/index.vue +++ b/lms2/nladmin-ui/src/views/wms/pdm/order/rawfoilworkorder/index.vue @@ -244,12 +244,13 @@ + - +