From 19a65d3dd71b1f1761ddda876155aeccf908f0e4 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Thu, 6 Jun 2024 13:31:20 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=BA=9F=E7=AE=94AGV=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bound/service/dao/BstIvtScalebound.java | 6 + .../BstIvtStockingivtController.java | 2 + .../pda/controller/SlitterPdaController.java | 7 + .../sch/tasks/slitter/MoveVehicleAgvTask.java | 139 ++++++++++++++++++ .../slitter/controller/SlitterController.java | 1 + .../tasks/slitter/service/SlitterService.java | 2 + .../service/impl/SlitterServiceImpl.java | 37 ++++- 7 files changed, 190 insertions(+), 4 deletions(-) create mode 100644 lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/MoveVehicleAgvTask.java diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/dao/BstIvtScalebound.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/dao/BstIvtScalebound.java index c36f43e27..0c246245d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/dao/BstIvtScalebound.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/dao/BstIvtScalebound.java @@ -31,4 +31,10 @@ public class BstIvtScalebound implements Serializable { /** 称重机编码 */ private String scale_code; + /** 废箔料斗编码 */ + private String vehicle_code; + + /** 生产区域 */ + private String product_area; + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/controller/BstIvtStockingivtController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/controller/BstIvtStockingivtController.java index 306d0bd12..4b1bb439c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/controller/BstIvtStockingivtController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/controller/BstIvtStockingivtController.java @@ -57,4 +57,6 @@ public class BstIvtStockingivtController { bstIvtStockingivtService.deleteAll(ids); return new ResponseEntity<>(HttpStatus.OK); } + + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java index cf28c4613..cfed83a6c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java @@ -39,4 +39,11 @@ public class SlitterPdaController { public ResponseEntity downRolls(@RequestBody JSONObject param) { return new ResponseEntity<>(slitterDevices.downRolls(param), HttpStatus.OK); } + + @PostMapping("/moveVehicle") + @Log("搬运废箔斗") + @SaIgnore + public ResponseEntity moveVehicle(@RequestBody JSONObject param) { + return new ResponseEntity<>(slitterDevices.moveVehicle(param), HttpStatus.OK); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/MoveVehicleAgvTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/MoveVehicleAgvTask.java new file mode 100644 index 000000000..62d70f2b2 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/MoveVehicleAgvTask.java @@ -0,0 +1,139 @@ +package org.nl.b_lms.sch.tasks.slitter; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.bst.ivt.cutpointivt.service.IBstIvtCutpointivtService; +import org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt; +import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService; +import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; +import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.nl.b_lms.sch.task.service.IschBaseTaskService; +import org.nl.b_lms.sch.tasks.slitter.constant.SlitterConstant; +import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; +import org.nl.common.utils.SecurityUtils; +import org.nl.common.utils.TaskUtils; +import org.nl.modules.wql.WQL; +import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.wms.sch.AcsTaskDto; +import org.nl.wms.sch.manage.AbstractAcsTask; +import org.nl.wms.sch.manage.TaskStatusEnum; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * @Author: lyd + * @Description: 送气涨轴AGV任务 + * @Date: 2024/2/1 + */ +@Slf4j +@Service +public class MoveVehicleAgvTask extends AbstractAcsTask { + private final String THIS_CLASS = MoveVehicleAgvTask.class.getName(); + @Autowired + private IschBaseTaskService taskService; + @Autowired + private IPdmBiSlittingproductionplanService slittingproductionplanService; + @Autowired + private IBstIvtCutpointivtService bcutpointivtService; + + @Override + public List addTask() { + /* + * 下发给ACS时需要特殊处理 + */ + List taskList = taskService.getIssueTasks(THIS_CLASS); + + ArrayList resultList = new ArrayList<>(); + String agv_system_type = "2"; + for (SchBaseTask task : taskList) { + AcsTaskDto dto = AcsTaskDto.builder() + .ext_task_id(task.getTask_id()) + .task_code(task.getTask_code()) + .task_type(task.getAcs_task_type()) + .start_device_code(task.getPoint_code1()) + .next_device_code(task.getPoint_code2()) + .vehicle_code(task.getVehicle_code()) + .agv_system_type(agv_system_type) + .priority(task.getPriority()) + .remark(task.getRemark()) + .product_area(task.getProduct_area()) + .build(); + resultList.add(dto); + } + return resultList; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateTaskStatus(JSONObject taskObj, String status) { + SchBaseTask task = taskService.getById(taskObj.getString("task_id")); + if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { + // 更新任务状态为执行中 + task.setTask_status(TaskStatusEnum.EXECUTING.getCode()); + } + + if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + task.setTask_status(TaskStatusEnum.FINISHED.getCode()); + } + + // 取消 + if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { + task.setTask_status(TaskStatusEnum.FINISHED.getCode()); + } + task.setUpdate_time(DateUtil.now()); + taskService.updateById(task); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public String createTask(JSONObject form) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String currentUsername = SecurityUtils.getCurrentUsername(); + + SchBaseTask task = new SchBaseTask(); + task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr()); + task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + task.setPoint_code1(form.getString("point_code1")); + task.setPoint_code2(form.getString("point_code2")); + task.setVehicle_code(form.getString("vehicle_code")); + task.setAcs_task_type("3"); + task.setIs_delete(SlitterConstant.SLITTER_NO); + task.setRequest_param(form.toJSONString()); + task.setTask_type(form.getString("task_type")); + task.setProduct_area(form.getString("product_area")); + task.setCreate_id(currentUserId); + task.setCreate_name(currentUsername); + task.setCreate_time(DateUtil.now()); + task.setHandle_class(THIS_CLASS); + //根据类型获取对应的任务优先级 + task.setPriority("1"); + taskService.save(task); + this.immediateNotifyAcs(null); + return task.getTask_id(); + } + + @Override + public void forceFinish(String task_id) { + JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); + this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode()); + } + + + @Override + public void cancel(String task_id) { + JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); + this.updateTaskStatus(taskObj, "0"); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java index ee47ccdc8..da1bb58d5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java @@ -63,6 +63,7 @@ public class SlitterController { } @PostMapping("/test5") @Log("1111") + @SaIgnore public ResponseEntity create5(@RequestBody JSONObject entity){ return new ResponseEntity<>(slitterService.mesGetWeighingOfWasteFoil(entity), HttpStatus.CREATED); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java index 9dcc685dc..ab9604ffe 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java @@ -96,4 +96,6 @@ public interface SlitterService { * @param param */ JSONObject downRolls(JSONObject param); + + JSONObject moveVehicle(JSONObject param); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index 1a7663592..9d8db014d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -24,10 +24,7 @@ import org.nl.b_lms.sch.point.dao.StIvtCutpointivt; import org.nl.b_lms.sch.point.service.IstIvtCutpointivtService; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; -import org.nl.b_lms.sch.tasks.slitter.SendCopperFoilSubRollTrussTask; -import org.nl.b_lms.sch.tasks.slitter.SlitterDownTrussTask; -import org.nl.b_lms.sch.tasks.slitter.TrussCallShaftCacheTask; -import org.nl.b_lms.sch.tasks.slitter.TrussSendAirShaftTask; +import org.nl.b_lms.sch.tasks.slitter.*; import org.nl.b_lms.sch.tasks.slitter.constant.SlitterConstant; import org.nl.b_lms.sch.tasks.slitter.constant.SlitterEnum; import org.nl.b_lms.sch.tasks.slitter.mapper.SlitterMapper; @@ -86,6 +83,10 @@ public class SlitterServiceImpl implements SlitterService { private IBstIvtScalehistoryService scaleHistoryService; @Autowired private WmsToAcsService wmsToAcsService; + @Autowired + private IBstIvtScaleboundService scaleboundService; + @Autowired + private MoveVehicleAgvTask moveVehicleAgvTask; @Override public JSONObject acsRequestShaftLoadTube(JSONObject param) { @@ -642,4 +643,32 @@ public class SlitterServiceImpl implements SlitterService { result.put("message", "分切机" + device_code + "下卷成功!"); return result; } + + @Override + public JSONObject moveVehicle(JSONObject param) { + String vehicle_code = param.getString("device_code"); + //1-废箔搬运;2-载具送回 + String type = "1"; + BstIvtScalebound scalebound = scaleboundService.getOne(new LambdaQueryWrapper().eq(BstIvtScalebound::getScale_code, vehicle_code)); + if (scalebound == null) { + throw new BadRequestException("未查询到当前废料斗对应的机台编号!"); + } + String device_code = scalebound.getDevice_code(); + JSONObject task_jo = new JSONObject(); + if (type.equals("1")) { + task_jo.put("point_code1", vehicle_code); + task_jo.put("point_code2", "B2_FBQL_01"); + } else { + task_jo.put("point_code2", device_code + "FB"); + task_jo.put("point_code1", "B2_FBQL_01"); + } + + task_jo.put("vehicle_code", vehicle_code); + task_jo.put("product_area", scalebound.getProduct_area()); + task_jo.put("task_type", "010807"); + moveVehicleAgvTask.createTask(task_jo); + JSONObject result = new JSONObject(); + result.put("message", "任务下发成功!"); + return null; + } }