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 cb2b25f8e..efd04ee2f 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 @@ -12,7 +12,7 @@ import lombok.Getter; @AllArgsConstructor public enum TagNameEnum { /** - * LMS系统 + * 手持生箔下料 */ RAW_DOWN("手持生箔下料"), RAW_EMPTY_HOME("手持生箔空辊回库"), diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/controller/RawFoilPdaController.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/controller/RawFoilPdaController.java index dd31ceb26..8fc0e5206 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/controller/RawFoilPdaController.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/controller/RawFoilPdaController.java @@ -44,12 +44,6 @@ public class RawFoilPdaController { return new ResponseEntity<>(rawFoilPdaService.necessaryEmptyVehicle(whereJson), HttpStatus.OK); } - @PostMapping("/needEmptyAxis") - @Log("生箔下料") - public ResponseEntity needEmptyAxisBack(@RequestBody JSONObject whereJson) { - return new ResponseEntity<>(rawFoilPdaService.needEmptyAxis(whereJson), HttpStatus.OK); - } - @PostMapping("/needEmptyAxis/v2") @Log("生箔下料") public ResponseEntity needEmptyAxisV2(@RequestBody JSONObject whereJson) { 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 762dfbc34..4f23e614e 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 @@ -59,24 +59,26 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService { public JSONObject needEmptyVehicle(JSONObject param) { log.info("手持呼叫空收卷辊: {}", param); // param:point_code - String pointCode = param.getString("point_code"); - // 判断是否存在任务 - List unFinishTasks = taskService.checkHaveTask(pointCode); - // 判断是否存在对应的桁架任务 - List unFinishRelatedTasks = taskService.checkHaveRelatedTaskInRequestParam(pointCode); - if (unFinishTasks.size() > 0 || unFinishRelatedTasks.size() > 0) { - log.error("点位 [{}] 已经存在任务!", pointCode); - throw new BadRequestException("点位[" + pointCode + "]已经存在任务!"); - } - StIvtSbpointivt sbPoint = stIvtSbpointivtService.getByPointCode(pointCode, false); - param.put("config_code", "RawCallRollTrussTask"); - param.put("device_code", pointCode); - param.put("ext_code", sbPoint.getExt_code()); - param.put("create_mode", GeneralDefinition.PDA_CREATION); - // 标记一下这里的任务只是单纯送空 - param.put("is_flag", "0"); - // 调用通用口, 创建空辊桁架任务 - rawCallRollTrussTask.apply(param); + TaskUtils.taskLock("rawCall", () -> { + String pointCode = param.getString("point_code"); + // 判断是否存在任务 + List unFinishTasks = taskService.checkHaveTask(pointCode); + // 判断是否存在对应的桁架任务 + List unFinishRelatedTasks = taskService.checkHaveRelatedTaskInRequestParam(pointCode); + if (unFinishTasks.size() > 0 || unFinishRelatedTasks.size() > 0) { + log.error("点位 [{}] 已经存在任务!", pointCode); + throw new BadRequestException("点位[" + pointCode + "]已经存在任务!"); + } + StIvtSbpointivt sbPoint = stIvtSbpointivtService.getByPointCode(pointCode, false); + param.put("config_code", "RawCallRollTrussTask"); + param.put("device_code", pointCode); + param.put("ext_code", sbPoint.getExt_code()); + param.put("create_mode", GeneralDefinition.PDA_CREATION); + // 标记一下这里的任务只是单纯送空 + param.put("is_flag", "0"); + // 调用通用口, 创建空辊桁架任务 + rawCallRollTrussTask.apply(param); + }); JSONObject result = new JSONObject(); result.put("status", HttpStatus.OK.value()); result.put("message", "任务创建成功!"); @@ -192,11 +194,11 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService { rawOrder.setStatus("01"); TaskUtils.setRawOrderCreateByDefault(rawOrder); rawOrder.setProduct_area(sbPoint.getProduct_area()); - rawOrder.setIs_baking("1"); +// rawOrder.setIs_baking("1"); rawOrder.setOrder_type("1"); - rawOrder.setBaking_time("80"); - rawOrder.setRoll_type("1"); - rawOrder.setBaking_temperature("80"); +// rawOrder.setBaking_time("80"); +// rawOrder.setRoll_type("1"); +// rawOrder.setBaking_temperature("80"); rawfoilworkorderService.save(rawOrder); // 组织请求任务参数 // 当前生箔的点位 @@ -235,7 +237,7 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService { SchBaseTask task = taskService.getTaskByPointCodeX(null, pointCode, null, null); if (ObjectUtil.isEmpty(task)) { // 可能是起点 - task = taskService.getTaskByPointCodeX(pointCode, null, null, null); + task = taskService.getTaskByPointCodeX(null, null, pointCode, null); } if (ObjectUtil.isEmpty(task)) { log.error("该点查不到任务!"); @@ -256,7 +258,7 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService { acsParam.put("device_code", pointCode); acsParam.put("task_code", task.getTask_code()); acsParam.put("product_area", task.getProduct_area()); - acsParam.put("option", "2"); + acsParam.put("option", "1"); 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/sch/point/service/dao/mapper/SchBasePointMapper.xml b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.xml index 9f6e27e7d..10ce74d9f 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.xml +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.xml @@ -19,7 +19,9 @@ AND p.point_type = '3' AND p.point_status = '2' AND p.region_code = 'A1-SJGK' - AND p.vehicle_code = #{vehicleCode} + + AND p.vehicle_code = #{vehicleCode} + AND p.is_used = TRUE AND 0 = (SELECT COUNT(*) FROM sch_base_task t WHERE t.point_code1 = p.point_code AND t.task_status '07') ORDER BY p.update_time diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/AutoInHotTrussTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/AutoInHotTrussTask.java index b1c7f946d..96e97c621 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/AutoInHotTrussTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/AutoInHotTrussTask.java @@ -70,11 +70,15 @@ public class AutoInHotTrussTask extends AbstractTask { break; } PdmBiRawfoilworkorder order = rawfoilworkorderService.getById(workOrderId); + // 校验工单是否满足 + if (!verificationOrder(order)) { + break; + } String bakingTemperature = order.getBaking_temperature(); // 如果需要烘烤, 先找对应点 List hotList = hotpointivtService.getNotTaskHotOven(order.getRoll_type(), "1"); if (hotList.size() == 0) { - log.error("找不到温度为:{} 的可用烘箱位置{}", bakingTemperature); + log.error("找不到温度为:{} 的可用烘箱位置", bakingTemperature); break; } // 查找合适温度的点位 @@ -111,6 +115,26 @@ public class AutoInHotTrussTask extends AbstractTask { return null; } + /** + * 校验工单是否满足 + * @param order 工单 + * @return {@code true} or {@code false} + */ + private Boolean verificationOrder(PdmBiRawfoilworkorder order) { + if (ObjectUtil.isEmpty(order)) { + log.error("工单不存在"); + return false; + } + if (ObjectUtil.isEmpty(order.getIs_baking()) + || ObjectUtil.isEmpty(order.getBaking_time()) + || ObjectUtil.isEmpty(order.getRoll_type()) + || ObjectUtil.isEmpty(order.getBaking_temperature())) { + log.error("工单信息[是否烘烤、烘烤时间、烘烤温度、大小卷]都不能为空"); + return false; + } + return true; + } + @Override public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { checkTaskOptionStatus(taskObj); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawCallRollTrussTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawCallRollTrussTask.java index cbe6a6be4..f7ea3931d 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawCallRollTrussTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawCallRollTrussTask.java @@ -4,8 +4,8 @@ import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; -import org.nl.wms.pdm.ivt.raw.service.dao.StIvtSbpointivt; 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; @@ -36,6 +36,10 @@ import static org.nl.wms.util.TaskUtils.setUpdateByPC; @Component(value = "RawCallRollTrussTask") public class RawCallRollTrussTask extends AbstractTask { private final String THIS_CLASS = RawCallRollTrussTask.class.getName(); + /** 标记创建四点任务 */ + private final String FOUR_POINT_TASK_FLAG = "1"; + /** 标记不创建AGV任务 */ + private final String NOT_AGV_TASK_FLAG = "2"; @Autowired private ISchBasePointService pointService; @Autowired @@ -54,9 +58,8 @@ public class RawCallRollTrussTask extends AbstractTask { public void createCompletion(SchBaseTask task) { log.info("生箔手持呼叫空辊任务创建, 参数:{}", task); // 查找同类型且与生箔机指定的收卷辊的起点, 并且没有任务 - // 先获取生箔机指定的收卷辊 - JSONObject requestObj = JSONObject.parseObject(task.getRequest_param()); - List startPoints = pointService.getWindRollNotTaskPoints(requestObj.getString("ext_code")); + // 先获取收卷辊(不在指定固定的收卷辊) + List startPoints = pointService.getWindRollNotTaskPoints(null); if (startPoints.size() == 0) { throw new BadRequestException("找不到生箔机指定的收卷辊!"); } @@ -102,8 +105,8 @@ public class RawCallRollTrussTask extends AbstractTask { clearPoint(startPointObj, taskFinishedType); } log.info("点位清除完毕,清除后的数据:{}", startPointObj); - if ("2".equals(flag)) { - // TODO: 此功能留给手持人工需要单独叫收卷辊出来,目前没有做手持功能 + if (NOT_AGV_TASK_FLAG.equals(flag)) { + // 此功能留给手持人工需要单独叫收卷辊出来 log.info("手持单独呼叫收卷辊,不创建AGV任务!"); } else { // 2、创建AGV任务 @@ -121,7 +124,7 @@ public class RawCallRollTrussTask extends AbstractTask { taskParam.put("up_task_code", taskObj.getTask_code()); taskParam.put("create_mode", GeneralDefinition.TASK_CREATION); // 这里需要判断是否是送轴的任务 - if ("1".equals(flag)) { + if (FOUR_POINT_TASK_FLAG.equals(flag)) { // 需要的是四点任务 taskParam.put("config_code", "RawDownAGVTask"); rawDownAGVTask.apply(taskParam);