feat: 备货区出入库手持功能
This commit is contained in:
@@ -135,4 +135,6 @@ public interface IBstIvtStockingivtService extends IService<BstIvtStockingivt> {
|
|||||||
PdmBiOrderbominfo showBom2(Map param);
|
PdmBiOrderbominfo showBom2(Map param);
|
||||||
|
|
||||||
List<BstIvtStockingivt> getMoveTaskPoints();
|
List<BstIvtStockingivt> getMoveTaskPoints();
|
||||||
|
|
||||||
|
List<BstIvtStockingivt> getPointByVehicle(String vehicleCode, String pointCode);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -398,4 +398,12 @@ public class BstIvtStockingivtServiceImpl extends ServiceImpl<BstIvtStockingivtM
|
|||||||
public List<BstIvtStockingivt> getMoveTaskPoints() {
|
public List<BstIvtStockingivt> getMoveTaskPoints() {
|
||||||
return bstIvtStockingivtMapper.getMoveTaskPoints();
|
return bstIvtStockingivtMapper.getMoveTaskPoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<BstIvtStockingivt> getPointByVehicle(String vehicleCode, String pointCode) {
|
||||||
|
LambdaQueryWrapper<BstIvtStockingivt> lam = new LambdaQueryWrapper<>();
|
||||||
|
lam.eq(BstIvtStockingivt::getVehicle_code, vehicleCode)
|
||||||
|
.ne(BstIvtStockingivt::getPoint_code, pointCode);
|
||||||
|
return list(lam);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -273,5 +273,29 @@ public class SlitterPdaController {
|
|||||||
public ResponseEntity<Object> getTubeLength(@RequestBody JSONObject param) {
|
public ResponseEntity<Object> getTubeLength(@RequestBody JSONObject param) {
|
||||||
return new ResponseEntity<>(slitterService.getTubeLength(param), HttpStatus.OK);
|
return new ResponseEntity<>(slitterService.getTubeLength(param), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
@PostMapping("/fullTubeVehicleIn")
|
||||||
|
@Log("托盘搬入")
|
||||||
|
@SaIgnore
|
||||||
|
public ResponseEntity<Object> fullTubeVehicleIn(@RequestBody JSONObject param) {
|
||||||
|
return new ResponseEntity<>(slitterService.fullTubeVehicleIn(param), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
@PostMapping("/emptyTubeVehicleOut")
|
||||||
|
@Log("托盘搬出")
|
||||||
|
@SaIgnore
|
||||||
|
public ResponseEntity<Object> emptyTubeVehicleOut(@RequestBody JSONObject param) {
|
||||||
|
return new ResponseEntity<>(slitterService.emptyTubeVehicleOut(param), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
@PostMapping("/taskTubeVehicle")
|
||||||
|
@Log("任务")
|
||||||
|
@SaIgnore
|
||||||
|
public ResponseEntity<Object> taskTubeVehicle(@RequestBody JSONObject param) {
|
||||||
|
return new ResponseEntity<>(slitterService.taskTubeVehicle(param), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
@PostMapping("/getTubeVehicleInfo")
|
||||||
|
@Log("任务")
|
||||||
|
@SaIgnore
|
||||||
|
public ResponseEntity<Object> getTubeVehicleInfo(@RequestBody JSONObject param) {
|
||||||
|
return new ResponseEntity<>(slitterService.getTubeVehicleInfo(param), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -96,6 +96,8 @@ public interface IschBaseTaskService extends IService<SchBaseTask> {
|
|||||||
List<SchBaseTask> checkHaveStartTask(String pointCode);
|
List<SchBaseTask> checkHaveStartTask(String pointCode);
|
||||||
|
|
||||||
List<SchBaseTask> checkHaveTrussTask(List<String> codes);
|
List<SchBaseTask> checkHaveTrussTask(List<String> codes);
|
||||||
|
|
||||||
|
List<SchBaseTask> checkHaveVehicle(String vehicleCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -181,6 +181,16 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
|||||||
return this.list(lam);
|
return this.list(lam);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SchBaseTask> checkHaveVehicle(String vehicleCode) {
|
||||||
|
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
|
||||||
|
lam.lt(SchBaseTask::getTask_status, "07")
|
||||||
|
.eq(SchBaseTask::getIs_delete, "0")
|
||||||
|
.and(ll -> ll.eq(SchBaseTask::getVehicle_code, vehicleCode).or()
|
||||||
|
.eq(SchBaseTask::getVehicle_code2, vehicleCode));
|
||||||
|
return this.list(lam);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,153 @@
|
|||||||
|
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 lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.b_lms.bst.ivt.stockingivt.service.IBstIvtStockingivtService;
|
||||||
|
import org.nl.b_lms.bst.ivt.stockingivt.service.dao.BstIvtStockingivt;
|
||||||
|
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.SlitterEnum;
|
||||||
|
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||||
|
import org.nl.common.utils.SecurityUtils;
|
||||||
|
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.Component;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备货区进出任务(备货入库进出)
|
||||||
|
* @Author: lyd
|
||||||
|
* @Date: 2025/9/17
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
public class StockAreaInOutTask extends AbstractAcsTask {
|
||||||
|
private final String THIS_CLASS = StockAreaInOutTask.class.getName();
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IschBaseTaskService taskService;
|
||||||
|
@Autowired
|
||||||
|
private IBstIvtStockingivtService stockingivtService;
|
||||||
|
|
||||||
|
|
||||||
|
@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())
|
||||||
|
.start_device_code2(task.getPoint_code3())
|
||||||
|
.next_device_code2(task.getPoint_code4())
|
||||||
|
.vehicle_code(task.getVehicle_code())
|
||||||
|
.interaction_json(JSONObject.parseObject(task.getRequest_param()))
|
||||||
|
.agv_system_type(agv_system_type)
|
||||||
|
.priority(task.getPriority())
|
||||||
|
.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());
|
||||||
|
String startPoint = task.getPoint_code1();
|
||||||
|
String endPoint = task.getPoint_code2();
|
||||||
|
BstIvtStockingivt startPointObj = stockingivtService.getPointByCode(startPoint, false);
|
||||||
|
BstIvtStockingivt endPointObj = stockingivtService.getPointByCode(endPoint, false);
|
||||||
|
if (SlitterEnum.TASK_TYPE.code("备货区托盘入库").equals(task.getTask_type())) {
|
||||||
|
endPointObj.setIvt_status("1");
|
||||||
|
endPointObj.setVehicle_code(task.getVehicle_code());
|
||||||
|
endPointObj.setUpdate_time(DateUtil.now());
|
||||||
|
stockingivtService.updateById(endPointObj);
|
||||||
|
}
|
||||||
|
startPointObj.setIvt_status("0");
|
||||||
|
startPointObj.setVehicle_code("");
|
||||||
|
startPointObj.setUpdate_time(DateUtil.now());
|
||||||
|
stockingivtService.updateById(startPointObj);
|
||||||
|
}
|
||||||
|
// 取消
|
||||||
|
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||||
|
task.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||||
|
}
|
||||||
|
task.setUpdate_time(DateUtil.now());
|
||||||
|
taskService.updateById(task);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
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(ObjectUtil.isNotEmpty(form.getString("task_status"))
|
||||||
|
? form.getString("task_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("0");
|
||||||
|
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);
|
||||||
|
//根据类型获取对应的任务优先级
|
||||||
|
JSONObject priority_jo = WQL.getWO("PDA_COOLIN").addParam("flag", "3").addParam("task_type", task.getTask_type()).process().uniqueResult(0);
|
||||||
|
if (ObjectUtil.isEmpty(priority_jo)) {
|
||||||
|
task.setPriority("1");
|
||||||
|
} else {
|
||||||
|
task.setPriority(priority_jo.getString("value"));
|
||||||
|
}
|
||||||
|
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");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -26,7 +26,8 @@ public enum SlitterEnum {
|
|||||||
, "套轴异常处理AGV任务", "010811", "套轴异常处理桁架任务", "010812", "送气胀轴到分切机任务", "010813"
|
, "套轴异常处理AGV任务", "010811", "套轴异常处理桁架任务", "010812", "送气胀轴到分切机任务", "010813"
|
||||||
, "拔轴完毕出轴", "010814", "穿拔轴缓存<>气胀轴缓存位", "010815", "备货区单独送空载具", "010816"
|
, "拔轴完毕出轴", "010814", "穿拔轴缓存<>气胀轴缓存位", "010815", "备货区单独送空载具", "010816"
|
||||||
, "拼单送轴", "010817", "拆单两点移动任务", "010818", "拆单四点移动任务", "010819"
|
, "拼单送轴", "010817", "拆单两点移动任务", "010818", "拆单四点移动任务", "010819"
|
||||||
, "满轴拼单桁架任务", "010820", "送空轴AGV任务", "010821", "人工叫空轴桁架任务", "010822")
|
, "满轴拼单桁架任务", "010820", "送空轴AGV任务", "010821", "人工叫空轴桁架任务", "010822"
|
||||||
|
, "备货区托盘入库", "010823", "备货区托盘出库", "010824")
|
||||||
),
|
),
|
||||||
/**
|
/**
|
||||||
* 二次请求
|
* 二次请求
|
||||||
|
|||||||
@@ -400,4 +400,12 @@ public interface SlitterService {
|
|||||||
JSONObject getTubeLength(JSONObject param);
|
JSONObject getTubeLength(JSONObject param);
|
||||||
|
|
||||||
JSONObject callShaft(JSONObject entity);
|
JSONObject callShaft(JSONObject entity);
|
||||||
|
|
||||||
|
JSONObject fullTubeVehicleIn(JSONObject param);
|
||||||
|
|
||||||
|
JSONObject emptyTubeVehicleOut(JSONObject param);
|
||||||
|
|
||||||
|
JSONObject taskTubeVehicle(JSONObject param);
|
||||||
|
|
||||||
|
JSONObject getTubeVehicleInfo(JSONObject param);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -150,6 +150,8 @@ public class SlitterServiceImpl implements SlitterService {
|
|||||||
private StockAreaSendVehicleTask stockAreaSendVehicleTask;
|
private StockAreaSendVehicleTask stockAreaSendVehicleTask;
|
||||||
@Autowired
|
@Autowired
|
||||||
private TrussCallShaftManuallyTask trussCallShaftManuallyTask;
|
private TrussCallShaftManuallyTask trussCallShaftManuallyTask;
|
||||||
|
@Autowired
|
||||||
|
private StockAreaInOutTask stockAreaInOutTask;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JSONObject acsRequestShaftLoadTube(JSONObject param) {
|
public JSONObject acsRequestShaftLoadTube(JSONObject param) {
|
||||||
@@ -3118,6 +3120,151 @@ public class SlitterServiceImpl implements SlitterService {
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONObject fullTubeVehicleIn(JSONObject param) {
|
||||||
|
// param:
|
||||||
|
log.info("备货入库:{}", param);
|
||||||
|
JSONObject res = new JSONObject();
|
||||||
|
RLock open = redissonClient.getLock("lockFullTubeVehicleIn");
|
||||||
|
boolean openLock;
|
||||||
|
try {
|
||||||
|
openLock = open.tryLock(0, TimeUnit.SECONDS);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
if (openLock) {
|
||||||
|
String pointCode = param.getString("point_code");
|
||||||
|
String vehicleCode = param.getString("vehicle_code");
|
||||||
|
// List<SchBaseTask> taskList = taskService.checkHaveTask(pointCode);
|
||||||
|
// if (taskList.size() > 0) {
|
||||||
|
// throw new BadRequestException("点位「" + pointCode + "」存在任务!");
|
||||||
|
// }
|
||||||
|
List<SchBaseTask> taskList2 = taskService.checkHaveVehicle(vehicleCode);
|
||||||
|
if (taskList2.size() > 0) {
|
||||||
|
throw new BadRequestException("托盘「" + vehicleCode + "」存在任务!");
|
||||||
|
}
|
||||||
|
List<BstIvtStockingivt> stocks = stockingivtService.getPointByVehicle(vehicleCode, pointCode);
|
||||||
|
if (stocks.size() > 0) {
|
||||||
|
List<String> collect = stocks.stream().map(BstIvtStockingivt::getPoint_code).collect(Collectors.toList());
|
||||||
|
throw new BadRequestException("托盘「" + vehicleCode + "」存在点位" + collect + "上!");
|
||||||
|
}
|
||||||
|
BstIvtStockingivt rkPoint = stockingivtService.getPointByCode(pointCode, false);
|
||||||
|
if (ObjectUtil.isEmpty(rkPoint)) {
|
||||||
|
throw new BadRequestException("点位「" + pointCode + "」不存在!");
|
||||||
|
}
|
||||||
|
// 找一个没任务的空位
|
||||||
|
List<BstIvtStockingivt> list = stockingivtService.getEmptyPointNotTask(rkPoint.getPoint_location(), "0");
|
||||||
|
if (list.size() == 0) {
|
||||||
|
throw new BadRequestException("备货区找不到对应的空点位,请确认是否有任务!");
|
||||||
|
}
|
||||||
|
BstIvtStockingivt moveEmptyPoint = list.get(0);
|
||||||
|
JSONObject moveTaskParam = new JSONObject();
|
||||||
|
moveTaskParam.put("point_code1", pointCode);
|
||||||
|
moveTaskParam.put("point_code2", moveEmptyPoint.getPoint_code());
|
||||||
|
moveTaskParam.put("vehicle_code", vehicleCode);
|
||||||
|
moveTaskParam.put("task_type", SlitterEnum.TASK_TYPE.code("备货区托盘入库"));
|
||||||
|
moveTaskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA);
|
||||||
|
stockAreaInOutTask.createTask(moveTaskParam);
|
||||||
|
} else {
|
||||||
|
throw new BadRequestException("系统繁忙,稍后在试!!");
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
if (open.isLocked() && open.isHeldByCurrentThread()) {
|
||||||
|
open.unlock();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
res.put("status", HttpStatus.HTTP_OK);
|
||||||
|
res.put("message", "请求成功");
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONObject emptyTubeVehicleOut(JSONObject param) {
|
||||||
|
log.info("备货出库:{}", param);
|
||||||
|
JSONObject res = new JSONObject();
|
||||||
|
RLock open = redissonClient.getLock("lockFullTubeVehicleOut");
|
||||||
|
boolean openLock;
|
||||||
|
try {
|
||||||
|
openLock = open.tryLock(0, TimeUnit.SECONDS);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
if (openLock) {
|
||||||
|
String pointCode = param.getString("point_code");
|
||||||
|
String vehicleCode = param.getString("vehicle_code");
|
||||||
|
List<SchBaseTask> taskList = taskService.checkHaveTask(pointCode);
|
||||||
|
if (taskList.size() > 0) {
|
||||||
|
throw new BadRequestException("点位「" + pointCode + "」存在任务!");
|
||||||
|
}
|
||||||
|
BstIvtStockingivt outPoint = stockingivtService.getPointByCode(pointCode, false);
|
||||||
|
if (ObjectUtil.isEmpty(outPoint)) {
|
||||||
|
throw new BadRequestException("点位「" + pointCode + "」不存在!");
|
||||||
|
}
|
||||||
|
if ("0".equals(outPoint.getIvt_status())) {
|
||||||
|
throw new BadRequestException("点位「" + pointCode + "」是空位,请确认!");
|
||||||
|
}
|
||||||
|
if ("2".equals(outPoint.getPoint_type())) {
|
||||||
|
throw new BadRequestException("点位「" + pointCode + "」是出库终点,请扫需要出库的备货点位!");
|
||||||
|
}
|
||||||
|
// 找一个没任务的空位
|
||||||
|
List<BstIvtStockingivt> list = stockingivtService.getEmptyPointNotTask(outPoint.getPoint_location(), "2");
|
||||||
|
if (list.size() == 0) {
|
||||||
|
throw new BadRequestException("备货区找不到出库点,请确认!");
|
||||||
|
}
|
||||||
|
BstIvtStockingivt moveEmptyPoint = list.get(0);
|
||||||
|
JSONObject moveTaskParam = new JSONObject();
|
||||||
|
moveTaskParam.put("point_code1", pointCode);
|
||||||
|
moveTaskParam.put("point_code2", moveEmptyPoint.getPoint_code());
|
||||||
|
moveTaskParam.put("vehicle_code", vehicleCode);
|
||||||
|
moveTaskParam.put("task_type", SlitterEnum.TASK_TYPE.code("备货区托盘出库"));
|
||||||
|
moveTaskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA);
|
||||||
|
stockAreaInOutTask.createTask(moveTaskParam);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
throw new BadRequestException("系统繁忙,稍后在试!!");
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
if (open.isLocked() && open.isHeldByCurrentThread()) {
|
||||||
|
open.unlock();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
res.put("status", HttpStatus.HTTP_OK);
|
||||||
|
res.put("message", "请求成功");
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONObject taskTubeVehicle(JSONObject param) {
|
||||||
|
JSONObject res = new JSONObject();
|
||||||
|
List<SchBaseTask> tasks = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||||
|
.eq(SchBaseTask::getIs_delete, "0")
|
||||||
|
.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
|
||||||
|
.in(SchBaseTask::getTask_type, Arrays.asList(SlitterEnum.TASK_TYPE.code("备货区托盘出库")
|
||||||
|
, SlitterEnum.TASK_TYPE.code("备货区托盘入库"))));
|
||||||
|
res.put("data", tasks);
|
||||||
|
res.put("status", HttpStatus.HTTP_OK);
|
||||||
|
res.put("message", "请求成功");
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONObject getTubeVehicleInfo(JSONObject param) {
|
||||||
|
JSONObject res = new JSONObject();
|
||||||
|
res.put("status", HttpStatus.HTTP_OK);
|
||||||
|
res.put("message", "请求成功");
|
||||||
|
if (ObjectUtil.isEmpty(param.getString("point_code"))) {
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
BstIvtStockingivt one = stockingivtService.getPointByCode(param.getString("point_code"), false);
|
||||||
|
if (ObjectUtil.isEmpty(one)) {
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
res.put("data", one.getVehicle_code());
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
public List<String> getRedisListValue(String key) {
|
public List<String> getRedisListValue(String key) {
|
||||||
List<String> stepTipLogs = (List<String>) redisUtils.get(key);
|
List<String> stepTipLogs = (List<String>) redisUtils.get(key);
|
||||||
if (CollectionUtil.isEmpty(stepTipLogs)) {
|
if (CollectionUtil.isEmpty(stepTipLogs)) {
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.modules.logging.annotation.Log;
|
import org.nl.modules.logging.annotation.Log;
|
||||||
import org.nl.wms.pda.mps.service.BakingService;
|
import org.nl.wms.pda.mps.service.BakingService;
|
||||||
|
import org.redisson.api.RedissonClient;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
@@ -20,6 +21,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
public class BakingController {
|
public class BakingController {
|
||||||
|
|
||||||
private final BakingService bakingService;
|
private final BakingService bakingService;
|
||||||
|
private final RedissonClient redissonClient;
|
||||||
|
|
||||||
@PostMapping("/ovenInAndOut")
|
@PostMapping("/ovenInAndOut")
|
||||||
@Log("烘箱出入")
|
@Log("烘箱出入")
|
||||||
|
|||||||
Reference in New Issue
Block a user