modified: 生箔呼叫空辊

add: 空辊回库
This commit is contained in:
2024-08-23 16:30:10 +08:00
parent 4347ec4f02
commit 63f7d58bcb
6 changed files with 63 additions and 19 deletions

View File

@@ -15,6 +15,7 @@ public enum TagNameEnum {
* LMS系统
*/
RAW_DOWN("手持生箔下料"),
RAW_EMPTY_HOME("手持生箔空辊回库"),
RAW_READY("手持生箔准备就绪"),
GX_IN("手持管芯入库"),
GX_OUT("手持管芯出库"),

View File

@@ -38,6 +38,11 @@ public class RawFoilPdaController {
public ResponseEntity<Object> needEmptyVehicle(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(rawFoilPdaService.needEmptyVehicle(whereJson), HttpStatus.OK);
}
@PostMapping("/necessaryEmptyVehicle")
@Log("生箔空辊回库")
public ResponseEntity<Object> necessaryEmptyVehicle(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(rawFoilPdaService.necessaryEmptyVehicle(whereJson), HttpStatus.OK);
}
@PostMapping("/needEmptyAxis")
@Log("生箔下料")

View File

@@ -11,6 +11,9 @@ public interface RawFoilPdaService {
/**
* 呼叫空辊
* <p>先创建桁架出辊在创建AGV搬运空辊</p>
* @see org.nl.wms.sch.task_manage.tasks.raw.RawCallRollTrussTask
* @see org.nl.wms.sch.task_manage.tasks.raw.RawCallRollAGVTask
* @param param /
* @return /
*/
@@ -43,4 +46,13 @@ public interface RawFoilPdaService {
* @return /
*/
JSONObject confirmBlanking(JSONObject param);
/**
* 空辊回库
* @see org.nl.wms.sch.task_manage.tasks.slitter.SlitterSendRollAGVTask
* @see org.nl.wms.sch.task_manage.tasks.slitter.SlitterSendRollTrussTask
* @param param /
* @return /
*/
JSONObject necessaryEmptyVehicle(JSONObject param);
}

View File

@@ -22,6 +22,7 @@ import org.nl.wms.sch.task.service.dao.SchBaseTask;
import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition;
import org.nl.wms.sch.task_manage.tasks.raw.RawCallRollTrussTask;
import org.nl.wms.sch.task_manage.tasks.raw.RawDownAGVTask;
import org.nl.wms.sch.task_manage.tasks.slitter.SlitterSendRollAGVTask;
import org.nl.wms.util.TaskUtils;
import org.slf4j.MDC;
import org.springframework.beans.factory.annotation.Autowired;
@@ -45,25 +46,21 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService {
@Autowired
private RawDownAGVTask rawDownAGVTask;
@Autowired
private ISchBasePointService pointService;
@Autowired
private IpdmBiRawfoilworkorderService rawfoilworkorderService;
@Autowired
private ISchBaseTaskService taskService;
@Autowired
private WmsToAcsService wmsToAcsService;
@Autowired
IstIvtSbpointivtService stIvtSbpointivtService;
private IstIvtSbpointivtService stIvtSbpointivtService;
@Autowired
private SlitterSendRollAGVTask slitterSendRollAGVTask;
@Override
@Transactional(rollbackFor = Exception.class)
public JSONObject needEmptyVehicle(JSONObject param) {
log.info("手持呼叫空收卷辊: {}", param);
// param point_code, vehicle_type
// parampoint_code
String pointCode = param.getString("point_code");
String vehicleType = param.getString("vehicle_type");
if (ObjectUtil.isEmpty(vehicleType)) {
throw new BadRequestException("收卷辊的类型不能为空!");
}
// 判断是否存在任务
List<SchBaseTask> unFinishTasks = taskService.checkHaveTask(pointCode);
// 判断是否存在对应的桁架任务
@@ -72,12 +69,13 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService {
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");
param.put("requestNo", "LMS" + IdUtil.getSnowflake(1,1).nextIdStr());
// 调用通用口, 创建空辊桁架任务
rawCallRollTrussTask.apply(param);
JSONObject result = new JSONObject();
@@ -266,4 +264,31 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService {
result.put("data", new JSONObject());
return result;
}
@Override
public JSONObject necessaryEmptyVehicle(JSONObject param) {
MDC.put(GeneralDefinition.MDC_KEY, TagNameEnum.RAW_EMPTY_HOME.getTag());
log.info("手持生箔空辊回库, {}", param);
// param: point_code
String pointCode = param.getString("point_code");
// 判断是否存在任务
List<SchBaseTask> unFinishTasks = taskService.checkHaveTask(pointCode);
// 判断是否存在对应的桁架任务
// List<SchBaseTask> unFinishRelatedTasks = taskService.checkHaveRelatedTaskInRequestParam(pointCode);
if (unFinishTasks.size() > 0 ) {
log.error("点位 [{}] 已经存在任务!", pointCode);
throw new BadRequestException("点位[" + pointCode + "]已经存在任务!");
}
StIvtSbpointivt sbPoint = stIvtSbpointivtService.getByPointCode(pointCode, false);
param.put("device_code", pointCode);
param.put("vehicle_code", sbPoint.getExt_code());
param.put("create_mode", GeneralDefinition.PDA_CREATION);
param.put("config_code", "SlitterSendRollAGVTask");
slitterSendRollAGVTask.apply(param);
JSONObject result = new JSONObject();
result.put("status", HttpStatus.OK.value());
result.put("message", "请求成功!");
result.put("data", new JSONObject());
return result;
}
}

View File

@@ -1,5 +1,6 @@
package org.nl.wms.sch.task_manage.tasks.slitter;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
@@ -72,20 +73,22 @@ public class SlitterSendRollAGVTask extends AbstractTask {
// 起点清除
String startPointCode = taskObj.getPoint_code1();
StIvtCutpointivt startPoint = cutpointivtService.getOneByCode(startPointCode);
startPoint.setContainer_name("");
startPoint.setFull_point_status("01");
startPoint.setFull_vehicle_code("");
startPoint.setEmpty_vehicle_code("");
startPoint.setEmpty_point_status("01");
PointUtils.setCutUpdateByType(startPoint, taskFinishedType);
cutpointivtService.updateById(startPoint);
if (ObjectUtil.isEmpty(startPoint)) {
// 如果是生箔就不做操作,只有分切上料位才需要清空数据
startPoint.setContainer_name("");
startPoint.setFull_point_status("01");
startPoint.setFull_vehicle_code("");
startPoint.setEmpty_vehicle_code("");
startPoint.setEmpty_point_status("01");
PointUtils.setCutUpdateByType(startPoint, taskFinishedType);
cutpointivtService.updateById(startPoint);
}
// 创建桁架任务
JSONObject taskParam = new JSONObject();
taskParam.put("config_code", "SlitterSendRollTrussTask");
taskParam.put("up_task_code", taskObj.getTask_code());
taskParam.put("create_mode", GeneralDefinition.TASK_CREATION);
taskParam.put("vehicle_code", taskObj.getVehicle_code());
taskParam.put("vehicle_type", taskObj.getVehicle_type());
taskParam.put("device_code", taskObj.getPoint_code2());
slitterSendRollTrussTask.apply(taskParam);
// 任务更新

View File

@@ -67,8 +67,6 @@ public class SlitterSendRollTrussTask extends AbstractTask {
SchBasePoint endPoint = pointService.getById(endPointCode);
endPoint.setVehicle_code(taskObj.getVehicle_code());
endPoint.setPoint_status("2");
// 载具类型是否一开始从工单获取,还是根据编码从物料表查询?
endPoint.setVehicle_type(taskObj.getVehicle_type());
setUpdateByType(endPoint, taskFinishedType);
pointService.updateById(endPoint);
// 任务更新