fix:废箔AGV任务
This commit is contained in:
@@ -31,4 +31,10 @@ public class BstIvtScalebound implements Serializable {
|
||||
/** 称重机编码 */
|
||||
private String scale_code;
|
||||
|
||||
/** 废箔料斗编码 */
|
||||
private String vehicle_code;
|
||||
|
||||
/** 生产区域 */
|
||||
private String product_area;
|
||||
|
||||
}
|
||||
|
||||
@@ -57,4 +57,6 @@ public class BstIvtStockingivtController {
|
||||
bstIvtStockingivtService.deleteAll(ids);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -39,4 +39,11 @@ public class SlitterPdaController {
|
||||
public ResponseEntity<Object> downRolls(@RequestBody JSONObject param) {
|
||||
return new ResponseEntity<>(slitterDevices.downRolls(param), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/moveVehicle")
|
||||
@Log("搬运废箔斗")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> moveVehicle(@RequestBody JSONObject param) {
|
||||
return new ResponseEntity<>(slitterDevices.moveVehicle(param), HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<AcsTaskDto> addTask() {
|
||||
/*
|
||||
* 下发给ACS时需要特殊处理
|
||||
*/
|
||||
List<SchBaseTask> taskList = taskService.getIssueTasks(THIS_CLASS);
|
||||
|
||||
ArrayList<AcsTaskDto> 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");
|
||||
}
|
||||
}
|
||||
@@ -63,6 +63,7 @@ public class SlitterController {
|
||||
}
|
||||
@PostMapping("/test5")
|
||||
@Log("1111")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> create5(@RequestBody JSONObject entity){
|
||||
return new ResponseEntity<>(slitterService.mesGetWeighingOfWasteFoil(entity), HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@@ -96,4 +96,6 @@ public interface SlitterService {
|
||||
* @param param
|
||||
*/
|
||||
JSONObject downRolls(JSONObject param);
|
||||
|
||||
JSONObject moveVehicle(JSONObject param);
|
||||
}
|
||||
|
||||
@@ -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<BstIvtScalebound>().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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user