diff --git a/lms2/nladmin-system/README.md b/lms2/nladmin-system/README.md index 860e61d6b..7cb3cd1ec 100644 --- a/lms2/nladmin-system/README.md +++ b/lms2/nladmin-system/README.md @@ -1,4 +1,4 @@ -# 诺力开发平台 +# 龙电华鑫铜箔LMS ```shell cd ../ diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/controller/AcsToWmsController.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/controller/AcsToWmsController.java index b940f3099..b34607594 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/controller/AcsToWmsController.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/controller/AcsToWmsController.java @@ -135,6 +135,12 @@ public class AcsToWmsController { public ResponseEntity actionFinishRequest2(@RequestBody JSONObject jo) { return new ResponseEntity<>(acsToWmsService.actionFinishRequest2(jo), HttpStatus.OK); } + + @PostMapping("/releaseComplete") + @SaIgnore + public ResponseEntity releaseComplete(@RequestBody JSONObject jo) { + return new ResponseEntity<>(acsToWmsService.releaseComplete(jo), HttpStatus.OK); + } @PostMapping("/initialize") @Log(value = "仓位初始化", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS) @SaIgnore diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java index a318b4c47..2c1715bc0 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java @@ -160,4 +160,11 @@ public interface AcsToWmsService { * @return / */ JSONObject acsFeedbackTubeInStorageComplete(JSONObject param); + + /** + * agv放货完成 + * @param param + * @return + */ + JSONObject releaseComplete(JSONObject param); } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java index 4769c63dc..10a997956 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java @@ -20,7 +20,7 @@ public interface WmsToAcsService { * @param list: 任务链表 * @return */ - Map issueTaskToAcs(List list); + JSONObject issueTaskToAcs(List list); /** * 更新任务状态 diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index d019f96d2..eff7ef5c0 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -168,9 +168,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Override public JSONObject actionFinishRequest2(JSONObject param) { String taskCode = param.getString("task_code"); + String deviceCode = param.getString("device_code"); Assert.notBlank(taskCode, "任务编码不能为空"); SchBaseTask task = taskService.getByCode(taskCode); AbstractTask factoryTask = taskFactory.getTask(task.getConfig_code()); + JSONObject request = JSONObject.parseObject(task.getRequest_param()); + request.put("pick_point", deviceCode); + task.setRequest_param(request.toString()); factoryTask.agvPickUpCompleted(task); JSONObject result = new JSONObject(); result.put("status", HttpStatus.OK.value()); @@ -208,4 +212,21 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { public JSONObject acsFeedbackTubeInStorageComplete(JSONObject param) { return otherOperationService.acsFeedbackTubeInStorageComplete(param); } + + @Override + public JSONObject releaseComplete(JSONObject param) { + String taskCode = param.getString("task_code"); + String deviceCode = param.getString("device_code"); + Assert.notBlank(taskCode, "任务编码不能为空"); + SchBaseTask task = taskService.getByCode(taskCode); + AbstractTask factoryTask = taskFactory.getTask(task.getConfig_code()); + JSONObject request = JSONObject.parseObject(task.getRequest_param()); + request.put("release_point", deviceCode); + task.setRequest_param(request.toString()); + factoryTask.agvReleaseCompleted(task); + JSONObject result = new JSONObject(); + result.put("status", HttpStatus.OK.value()); + result.put("message", "放货完成请求成功!"); + return result; + } } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java index e8839287d..16af13aac 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java @@ -1,5 +1,6 @@ package org.nl.wms.ext.acs.service.impl; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; @@ -25,11 +26,11 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { private ISysInteractRecordService interactRecordService; @Override - public Map issueTaskToAcs(List list) { + public JSONObject issueTaskToAcs(List list) { String api = "api/wms/task"; JSONArray jsonArray = new JSONArray(); for (AcsTaskDto dto : list) { - jsonArray.add(JSONObject.toJSONString(dto)); + jsonArray.add(JSON.toJSON(dto)); } return AcsUtil.notifyAcs(api, jsonArray); } 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 e2929c021..93a41ed7e 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 @@ -229,7 +229,8 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService { MDC.put(GeneralDefinition.MDC_KEY, TagNameEnum.RAW_READY.getTag()); log.info("手持生箔准备就绪, {}", param); // param: point_code - String pointCode = param.getString("point_code") + "_M"; + String pointCode = param.getString("point_code"); + String option = param.getString("option"); // 将工单设置确认下卷(如果是空轴任务就不用),再写信号给ACS // 1、获取对应的任务 SchBaseTask task = taskService.getTaskByPointCodeX(null, pointCode, null, null); @@ -237,6 +238,11 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService { // 可能是起点 task = taskService.getTaskByPointCodeX(null, null, pointCode, null); } + // 有可能是空 + if (ObjectUtil.isEmpty(task)) { + pointCode = param.getString("point_code"); + task = taskService.getTaskByPointCodeX(null, pointCode, null, null); + } if (ObjectUtil.isEmpty(task)) { log.error("该点查不到任务!"); throw new BadRequestException("该点查不到任务!"); @@ -253,10 +259,10 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService { //下发ACS,执行AGV动作 JSONArray paramArr = new JSONArray(); JSONObject acsParam = new JSONObject(); - acsParam.put("device_code", pointCode); + acsParam.put("device_code", param.getString("point_code")); acsParam.put("task_code", task.getTask_code()); acsParam.put("product_area", task.getProduct_area()); - acsParam.put("option", "1"); + acsParam.put("option", option); paramArr.add(acsParam); JSONObject jsonObject = wmsToAcsService.updateTask(paramArr); log.info("生箔下发ACS,执行AGV动作,请求参数{},返回结果:{}", paramArr, jsonObject); 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 2036bf188..c787616af 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 @@ -22,6 +22,8 @@ import org.nl.wms.pdm.ivt.bcut.service.IBstIvtCutpointivtService; import org.nl.wms.pdm.ivt.bcut.service.dao.BstIvtCutpointivt; import org.nl.wms.pdm.ivt.cut.service.dao.StIvtCutpointivt; import org.nl.wms.pdm.ivt.cut.service.IstIvtCutpointivtService; +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; import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition; @@ -62,6 +64,8 @@ public class SlitterPdaServiceImpl implements SlitterPdaService { @Autowired private WmsToAcsService wmsToAcsService; @Autowired + private ISchBasePointService pointService; + @Autowired private SlitterSendRollAGVTask slitterSendRollAGVTask; @Autowired private IstIvtCutpointivtService cutpointivtService; @@ -98,7 +102,11 @@ public class SlitterPdaServiceImpl implements SlitterPdaService { Stream.of(zcPoint, pointCode).collect(Collectors.toList())); // 判断是否呼叫过任务 if (isTask) { - throw new BadRequestException("点位[" + pointCode + "]已经创建过任务!"); + throw new BadRequestException("点位[" + pointCode + "、" + zcPoint + "]已经创建过任务!"); + } + SchBasePoint zcPointObj = pointService.getById(zcPoint); + if (ObjectUtil.isEmpty(zcPointObj.getMaterial_code())) { + throw new BadRequestException("点位不存在该母卷或者该母卷已搬运"); } StIvtCutpointivt cutPoint = cutpointivtService.getOneByCode(pointCode); param.put("config_code", "SlitterUpTrussTask"); @@ -155,15 +163,14 @@ public class SlitterPdaServiceImpl implements SlitterPdaService { throw new BadRequestException("系统识别到分切上料位[ " + pointCode + " ]无空轴!"); } // 校验是否有任务 - List schBaseTasks = taskService.checkHaveTask(cutPoint.getEmpty_point_code()); + List schBaseTasks = taskService.checkHaveTask(pointCode); if (schBaseTasks.size() > 0) { throw new BadRequestException("点位[" + pointCode + "]已经存在任务!"); } - param.put("device_code", cutPoint.getEmpty_point_code()); + param.put("device_code", pointCode); param.put("config_code", "SlitterSendRollAGVTask"); // 最后一趟送回去的才需要清 param.put("is_flag", "1"); - param.put("vehicle_code", cutPoint.getFull_vehicle_code()); param.put("create_mode", GeneralDefinition.PDA_CREATION); slitterSendRollAGVTask.apply(param); JSONObject result = new JSONObject(); @@ -233,7 +240,6 @@ public class SlitterPdaServiceImpl implements SlitterPdaService { JSONObject taskParam = new JSONObject(); taskParam.put("device_code", pointCode); taskParam.put("config_code", "SlitterInHotAGVTask"); - // todo: 流转单号暂时当作母卷号 taskParam.put("order_code", rawOrder.getContainer_name()); taskParam.put("create_mode", GeneralDefinition.PDA_CREATION); slitterInHotAGVTask.apply(taskParam); @@ -325,7 +331,7 @@ public class SlitterPdaServiceImpl implements SlitterPdaService { if (StrUtil.isEmpty(device_code)) { throw new BadRequestException("输入的设备号不能为空!"); } - StIvtCutpointivt device = cutpointivtService.getOneByCode(device_code); + StIvtCutpointivt device = cutpointivtService.getPintByExtCode(device_code, false); JSONArray jsonArray = new JSONArray(); JSONObject p1 = new JSONObject(); p1.put("text", device.getPoint_code() + "上轴位"); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/impl/NbjPdaServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/impl/NbjPdaServiceImpl.java index a869d021b..049819e2d 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/impl/NbjPdaServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/impl/NbjPdaServiceImpl.java @@ -126,6 +126,11 @@ public class NbjPdaServiceImpl implements NbjPdaService { if (schBaseTasks.size() > 0) { throw new BadRequestException("该点位已经创建过任务!"); } + // 判断子卷是否存在 + PdmBiSlittingproductionplan plan = slittingproductionplanService.getByContainerName(containerName); + if (ObjectUtil.isEmpty(plan)) { + throw new BadRequestException("子卷[" + containerName + "]的分切计划不存在!"); + } SchBasePoint startPoint = pointService.getById(pointCode); startPoint.setPoint_status("3"); // 子卷号 @@ -159,7 +164,7 @@ public class NbjPdaServiceImpl implements NbjPdaService { if (ObjectUtil.isEmpty(plan)) { throw new BadRequestException("子卷号[ " + containerName + " ]分切计划不存在!"); } - log.info("更新子卷:{} - 重量:{} - 纸管重量", containerName, rollWeight, paperWeight); + log.info("更新子卷:{} - 重量:{} - 纸管重量:{}", containerName, rollWeight, paperWeight); if (ObjectUtil.isNotEmpty(rollWeight)) { plan.setWeight(rollWeight); } @@ -193,7 +198,10 @@ public class NbjPdaServiceImpl implements NbjPdaService { // param: point_code,row String pointCode = param.getString("point_code"); BstIvtCutpointivt tzzcPoint = bstIvtCutpointivtService.getPintByTrussCode(pointCode, false); - if (!"1".equals(tzzcPoint.getPoint_status())) { + if (pointCode.equals(tzzcPoint.getTruss_point_code1()) && ObjectUtil.isNotEmpty(tzzcPoint.getQzz_no1())) { + throw new BadRequestException("系统检测到点位[" + pointCode + "]状态不为空, 如实际已经清空,请手持操作点位清除!"); + } + if (pointCode.equals(tzzcPoint.getTruss_point_code2()) && ObjectUtil.isNotEmpty(tzzcPoint.getQzz_no2())) { throw new BadRequestException("系统检测到点位[" + pointCode + "]状态不为空, 如实际已经清空,请手持操作点位清除!"); } JSONArray rows = param.getJSONArray("row"); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/impl/OtherPdaServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/impl/OtherPdaServiceImpl.java index 210953058..08a83bf03 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/impl/OtherPdaServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/impl/OtherPdaServiceImpl.java @@ -139,10 +139,12 @@ public class OtherPdaServiceImpl implements OtherPdaService { JSONArray acs = new JSONArray(); JSONObject acsParam = new JSONObject(); acsParam.put("task_code", task.getTask_code()); - acsParam.put("product_area", task.getProduct_area()); - acs.add(acsParam); + acsParam.put("device_code", pointCode); + acsParam.put("product_area", "A1"); + acsParam.put("option", "3"); log.info("通知ACS完成上一个任务的参数 - {}", acs); - JSONObject jsonObject = wmsToAcsService.canFinishPreviousTask(acs); + acs.add(acsParam); + JSONObject jsonObject = wmsToAcsService.updateTask(acs); log.info("通知ACS完成上一个任务的反馈 - {}", jsonObject); 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/AbstractTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java index a33857065..2ad8b6f8d 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java @@ -47,6 +47,8 @@ public abstract class AbstractTask { private ISchBasePointService pointService; @Autowired private WmsToAcsService wmsToAcsService; + @Autowired + private TaskFactory taskFactory; /** * 不走任务配置的创建任务类, 不会被定时任务扫描自动创建 @@ -112,11 +114,13 @@ public abstract class AbstractTask { taskDto.setNext_device_code2(task.getPoint_code4()); taskDto.setVehicle_code(task.getVehicle_code()); taskDto.setVehicle_code2(task.getVehicle_code2()); - taskDto.setProduct_area(task.getProduct_area()); + taskDto.setProduct_area(ObjectUtil.isNotEmpty(task.getProduct_area()) + ? task.getProduct_area() : taskDto.getProduct_area()); taskDto.setCar_no(task.getCar_no()); // 如果各类方法对返回参数有不同,可以通过调用子类实现的deliveryBeforeProcessing方法来完成赋值, // 也可以是统一封装到参数值中。 - this.deliveryBeforeProcessing(task, taskDto); + AbstractTask t = taskFactory.getTask(task.getConfig_code()); + t.deliveryBeforeProcessing(task, taskDto); list.add(taskDto); } wmsToAcsService.issueTaskToAcs(list); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AutoCreateTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AutoCreateTask.java index b7dff63be..9a42c18a2 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AutoCreateTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AutoCreateTask.java @@ -1,6 +1,7 @@ package org.nl.wms.sch.task_manage; +import cn.hutool.core.util.ObjectUtil; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.velocity.runtime.directive.Break; @@ -30,8 +31,7 @@ import java.util.Set; @Component @Order(value = 1) public class AutoCreateTask { - private static Set> subTypes = null; - private Map, Method> methodCache = new HashMap<>(); + private static Set> subTypes; // 类加载时候执行扫描 static { Reflections reflections = new Reflections("org.nl.wms.sch.task_manage.tasks"); @@ -79,6 +79,10 @@ public class AutoCreateTask { String name = split[split.length - 1]; ISchBaseTaskconfigService bean = SpringContextHolder.getBean(ISchBaseTaskconfigService.class); SchBaseTaskconfig config = bean.getByConfigCode(name); + if (ObjectUtil.isEmpty(config)) { + log.error("找不到对应[{}]的配置...", name); + return false; + } return config.getIs_used(); } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/service/impl/OtherOperationServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/service/impl/OtherOperationServiceImpl.java index ba7c82256..3e8df3d77 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/service/impl/OtherOperationServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/service/impl/OtherOperationServiceImpl.java @@ -51,7 +51,6 @@ public class OtherOperationServiceImpl implements OtherOperationService { log.info("ACS反馈废箔重量: {}", param); // task_code, point_code, weight String taskCode = param.getString("task_code"); - String pointCode = param.getString("point_code"); String weight = param.getString("weight"); Assert.notBlank(taskCode, "任务编码不能为空!"); // 获取当前任务 @@ -72,11 +71,11 @@ public class OtherOperationServiceImpl implements OtherOperationService { BigDecimal netWeight = currentWeight.subtract(upWeight); requestObj.put("netWeight", netWeight); // 记录数据 - SchBasePoint fbPoint = pointService.getById(pointCode); + SchBasePoint fbPoint = pointService.getById(currentTask.getPoint_code1()); Wastefoilrecord wastefoilrecord = new Wastefoilrecord(); wastefoilrecord.setWeight(String.valueOf(netWeight)); wastefoilrecord.setRecord_id(IdUtil.getSnowflake(1,1).nextIdStr()); - wastefoilrecord.setPoint_code(pointCode); + wastefoilrecord.setPoint_code(currentTask.getPoint_code1()); wastefoilrecord.setPoint_name(fbPoint.getPoint_name()); wastefoilrecord.setCreate_id(SecurityUtils.getCurrentUserId()); wastefoilrecord.setCreate_name(SecurityUtils.getCurrentNickName()); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/nbj/GxOutStorageTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/nbj/GxOutStorageTask.java index 0093d4504..1b01ba1d8 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/nbj/GxOutStorageTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/nbj/GxOutStorageTask.java @@ -10,6 +10,7 @@ import org.nl.wms.sch.point.service.dao.SchBasePoint; import org.nl.wms.sch.task.service.ISchBaseTaskService; import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task_manage.AbstractTask; +import org.nl.wms.sch.task_manage.AcsTaskDto; 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.enums.TaskFinishedTypeEnum; @@ -39,6 +40,12 @@ public class GxOutStorageTask extends AbstractTask { } + @Override + public void deliveryBeforeProcessing(SchBaseTask task, AcsTaskDto acsTaskDto) { + acsTaskDto.setVehicle_code(""); + acsTaskDto.setVehicle_code2(""); + } + @Override public String createTask(JSONObject form) { // 创建任务 diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/nbj/SubRollDownAGVTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/nbj/SubRollDownAGVTask.java index 7f12485c8..c23e201aa 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/nbj/SubRollDownAGVTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/nbj/SubRollDownAGVTask.java @@ -1,5 +1,6 @@ package org.nl.wms.sch.task_manage.tasks.nbj; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import lombok.SneakyThrows; @@ -12,6 +13,7 @@ import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task_manage.AbstractTask; 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.RegionConstant; import org.nl.wms.sch.task_manage.core.enums.TaskFinishedTypeEnum; import org.nl.wms.util.PointUtils; import org.nl.wms.util.TaskUtils; @@ -48,8 +50,8 @@ public class SubRollDownAGVTask extends AbstractTask { @Override public void createCompletion(SchBaseTask task) { // update: 查找空位没任务的货梯 -> 查找一楼暂存位空位 - TaskUtils.taskLock("A1-ZXZC", () -> { - List zxPoints = pointService.getAllBusinessNotTaskPoint("A1", "A1-ZXZC", + TaskUtils.taskLock(RegionConstant.REGION_A1_ZXZC, () -> { + List zxPoints = pointService.getAllBusinessNotTaskPoint("A1", RegionConstant.REGION_A1_ZXZC, "1", "1", null, null); if (zxPoints.size() == 0) { throw new BadRequestException("暂无可用的装箱暂存位!"); @@ -57,7 +59,7 @@ public class SubRollDownAGVTask extends AbstractTask { SchBasePoint zxPoint = zxPoints.get(0); task.setPoint_code2(zxPoint.getPoint_code()); // 创建搬运空架子的任务 - List emptyPoint = pointService.getAllBusinessNotTaskPoint("A1", "A1-ZXZC", + List emptyPoint = pointService.getAllBusinessNotTaskPoint("A1", RegionConstant.REGION_A1_ZXZC, "1", "2", null, null); if (emptyPoint.size() > 0) { // 有空架子就是四点任务 @@ -78,20 +80,10 @@ public class SubRollDownAGVTask extends AbstractTask { @Transactional(rollbackFor = Exception.class) public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { checkTaskOptionStatus(taskObj); - JSONObject requestObj = JSONObject.parseObject(taskObj.getRequest_param()); - // 终点赋值 - SchBasePoint endPoint = pointService.getById(taskObj.getPoint_code2()); - endPoint.setPoint_status("3"); - endPoint.setMaterial_code(requestObj.getString("container_name")); - endPoint.setVehicle_code(taskObj.getVehicle_code()); - setUpdateByType(endPoint, taskFinishedType); - pointService.updateById(endPoint); // 判断是否为4点任务 String startPointCode2 = taskObj.getPoint_code3(); if (StrUtil.isNotBlank(startPointCode2)) { // 四点任务 - SchBasePoint startPoint2 = pointService.getById(startPointCode2); - clearPoint(startPoint2, taskFinishedType); SchBasePoint endPoint2 = pointService.getById(taskObj.getPoint_code4()); endPoint2.setPoint_status("2"); endPoint2.setMaterial_code(""); @@ -120,18 +112,40 @@ public class SubRollDownAGVTask extends AbstractTask { @Override public void agvPickUpCompleted(SchBaseTask task) { - if (TaskStatus.PICK_UP_COMPLETED.getCode().equals(task.getTask_status())) { - log.warn("该任务已经执行过取货完成!"); - return; - } + JSONObject request = JSONObject.parseObject(task.getRequest_param()); // 取货完成 - // 起点清空(没有取货完成的业务),终点赋值 - String startPointCode = task.getPoint_code1(); - SchBasePoint startPoint = pointService.getById(startPointCode); - clearPoint(startPoint, TaskFinishedTypeEnum.AUTO_ACS); - // 任务设置071 - task.setTask_status(TaskStatus.PICK_UP_COMPLETED.getCode()); - TaskUtils.setUpdateByType(task, TaskFinishedTypeEnum.AUTO_ACS); - taskService.updateById(task); + if (request.getString("pick_point").equals(task.getPoint_code1())) { + // 起点清空(没有取货完成的业务),终点赋值 + String startPointCode = task.getPoint_code1(); + SchBasePoint startPoint = pointService.getById(startPointCode); + clearPoint(startPoint, TaskFinishedTypeEnum.AUTO_ACS); + } + if (ObjectUtil.isNotEmpty(task.getPoint_code3()) + && request.getString("pick_point").equals(task.getPoint_code3())) { + SchBasePoint startPoint2 = pointService.getById(task.getPoint_code3()); + clearPoint(startPoint2, TaskFinishedTypeEnum.AUTO_ACS); + } + if (!TaskStatus.PICK_UP_COMPLETED.getCode().equals(task.getTask_status())) { + // 任务设置071 + task.setTask_status(TaskStatus.PICK_UP_COMPLETED.getCode()); + TaskUtils.setUpdateByType(task, TaskFinishedTypeEnum.AUTO_ACS); + taskService.updateById(task); + } + + } + + @Override + public void agvReleaseCompleted(SchBaseTask task) { + JSONObject request = JSONObject.parseObject(task.getRequest_param()); + if (request.getString("release_point").equals(task.getPoint_code2())) { + JSONObject requestObj = JSONObject.parseObject(task.getRequest_param()); + // 终点赋值 + SchBasePoint endPoint = pointService.getById(task.getPoint_code2()); + endPoint.setPoint_status("3"); + endPoint.setMaterial_code(requestObj.getString("container_name")); + endPoint.setVehicle_code(task.getVehicle_code()); + setUpdateByType(endPoint, TaskFinishedTypeEnum.AUTO_ACS); + pointService.updateById(endPoint); + } } } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/other/SendWasteFoilAGVTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/other/SendWasteFoilAGVTask.java index ba999611a..c3deeced0 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/other/SendWasteFoilAGVTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/other/SendWasteFoilAGVTask.java @@ -102,12 +102,12 @@ public class SendWasteFoilAGVTask extends AbstractTask { public void updateStatus(JSONObject task, TaskStatus status) { String taskCode = task.getString("task_code"); BigDecimal weight = task.getBigDecimal("weight"); + // 校验任务 + SchBaseTask taskObj = taskService.getByCode(taskCode); if (ObjectUtil.isNotEmpty(weight)) { // 调用更新重量 otherOperationService.acsRequestWasteFoilWeight(task); } - // 校验任务 - SchBaseTask taskObj = taskService.getByCode(taskCode); // 根据传来的类型去对任务进行操作 if (TaskStatus.EXECUTING.equals(status) || ObjectUtil.isNotEmpty(task.getString("car_no"))) { taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawCallRollAGVTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawCallRollAGVTask.java index ffe068210..f31f98218 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawCallRollAGVTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawCallRollAGVTask.java @@ -49,7 +49,7 @@ public class RawCallRollAGVTask extends AbstractTask { String startPointCode = requestObj.getString("start_point_code"); // 创建任务 task.setPoint_code1(startPointCode); - task.setPoint_code2(task.getPoint_code2() + "_K"); + task.setPoint_code2(task.getPoint_code2()); task.setHandle_class(THIS_CLASS); task.setTask_status(TaskStatus.START_AND_POINT.getCode()); setUpdateByPC(task); @@ -61,7 +61,7 @@ public class RawCallRollAGVTask extends AbstractTask { public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { checkTaskOptionStatus(taskObj); String pointCode2 = taskObj.getPoint_code2(); - StIvtSbpointivt sbPoint = sbpointivtService.getByPointCode(pointCode2.substring(0, pointCode2.length() - 2), false); + StIvtSbpointivt sbPoint = sbpointivtService.getByPointCode(pointCode2, false); sbPoint.setVehicle_code(taskObj.getVehicle_code()); setSbUpdateByType(sbPoint, taskFinishedType); sbpointivtService.updateById(sbPoint); 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 84b64bf38..d63d19a4f 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 @@ -78,12 +78,12 @@ public class RawDownAGVTask extends AbstractTask { // 标记一下是哪个生箔机的收卷辊 // task.setVehicle_code2(pointCode.getExt_code()); task.setPoint_code1(startPointCode); - task.setPoint_code2(deviceCode + "_K"); - task.setPoint_code3(deviceCode + "_M"); + task.setPoint_code2(deviceCode); + task.setPoint_code3(deviceCode); task.setPoint_code4(hxPoint.getPoint_code()); } else { // 创建两点任务: 搬运到烘箱位置 - task.setPoint_code1(deviceCode + "_M"); + task.setPoint_code1(deviceCode); task.setPoint_code2(hxPoint.getPoint_code()); } // 保存任务参数 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 35379ad9f..c4812e328 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 @@ -78,7 +78,7 @@ public class SlitterUpAGVTask extends AbstractTask { // 四点任务 task.setPoint_code1(deviceCode); task.setPoint_code2(cutPoint.getFull_point_code()); - task.setPoint_code3(cutPoint.getEmpty_point_code()); + task.setPoint_code3(cutPoint.getFull_point_code()); task.setPoint_code4(sjgPoint.getPoint_code()); } // 创建任务