fix: 生箔-烘烤
This commit is contained in:
@@ -12,7 +12,7 @@ import lombok.Getter;
|
||||
@AllArgsConstructor
|
||||
public enum TagNameEnum {
|
||||
/**
|
||||
* LMS系统
|
||||
* 手持生箔下料
|
||||
*/
|
||||
RAW_DOWN("手持生箔下料"),
|
||||
RAW_EMPTY_HOME("手持生箔空辊回库"),
|
||||
|
||||
@@ -44,12 +44,6 @@ public class RawFoilPdaController {
|
||||
return new ResponseEntity<>(rawFoilPdaService.necessaryEmptyVehicle(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/needEmptyAxis")
|
||||
@Log("生箔下料")
|
||||
public ResponseEntity<Object> needEmptyAxisBack(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(rawFoilPdaService.needEmptyAxis(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/needEmptyAxis/v2")
|
||||
@Log("生箔下料")
|
||||
public ResponseEntity<Object> needEmptyAxisV2(@RequestBody JSONObject whereJson) {
|
||||
|
||||
@@ -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<SchBaseTask> unFinishTasks = taskService.checkHaveTask(pointCode);
|
||||
// 判断是否存在对应的桁架任务
|
||||
List<SchBaseTask> 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<SchBaseTask> unFinishTasks = taskService.checkHaveTask(pointCode);
|
||||
// 判断是否存在对应的桁架任务
|
||||
List<SchBaseTask> 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);
|
||||
|
||||
@@ -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}
|
||||
<if test="vehicleCode != null">
|
||||
AND p.vehicle_code = #{vehicleCode}
|
||||
</if>
|
||||
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 <![CDATA[<]]> '07')
|
||||
ORDER BY p.update_time
|
||||
|
||||
@@ -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<StIvtHotpointivt> 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);
|
||||
|
||||
@@ -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<SchBasePoint> startPoints = pointService.getWindRollNotTaskPoints(requestObj.getString("ext_code"));
|
||||
// 先获取收卷辊(不在指定固定的收卷辊)
|
||||
List<SchBasePoint> 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);
|
||||
|
||||
Reference in New Issue
Block a user