fix: 生箔-烘烤
This commit is contained in:
@@ -12,7 +12,7 @@ import lombok.Getter;
|
|||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public enum TagNameEnum {
|
public enum TagNameEnum {
|
||||||
/**
|
/**
|
||||||
* LMS系统
|
* 手持生箔下料
|
||||||
*/
|
*/
|
||||||
RAW_DOWN("手持生箔下料"),
|
RAW_DOWN("手持生箔下料"),
|
||||||
RAW_EMPTY_HOME("手持生箔空辊回库"),
|
RAW_EMPTY_HOME("手持生箔空辊回库"),
|
||||||
|
|||||||
@@ -44,12 +44,6 @@ public class RawFoilPdaController {
|
|||||||
return new ResponseEntity<>(rawFoilPdaService.necessaryEmptyVehicle(whereJson), HttpStatus.OK);
|
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")
|
@PostMapping("/needEmptyAxis/v2")
|
||||||
@Log("生箔下料")
|
@Log("生箔下料")
|
||||||
public ResponseEntity<Object> needEmptyAxisV2(@RequestBody JSONObject whereJson) {
|
public ResponseEntity<Object> needEmptyAxisV2(@RequestBody JSONObject whereJson) {
|
||||||
|
|||||||
@@ -59,24 +59,26 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService {
|
|||||||
public JSONObject needEmptyVehicle(JSONObject param) {
|
public JSONObject needEmptyVehicle(JSONObject param) {
|
||||||
log.info("手持呼叫空收卷辊: {}", param);
|
log.info("手持呼叫空收卷辊: {}", param);
|
||||||
// param:point_code
|
// param:point_code
|
||||||
String pointCode = param.getString("point_code");
|
TaskUtils.taskLock("rawCall", () -> {
|
||||||
// 判断是否存在任务
|
String pointCode = param.getString("point_code");
|
||||||
List<SchBaseTask> unFinishTasks = taskService.checkHaveTask(pointCode);
|
// 判断是否存在任务
|
||||||
// 判断是否存在对应的桁架任务
|
List<SchBaseTask> unFinishTasks = taskService.checkHaveTask(pointCode);
|
||||||
List<SchBaseTask> unFinishRelatedTasks = taskService.checkHaveRelatedTaskInRequestParam(pointCode);
|
// 判断是否存在对应的桁架任务
|
||||||
if (unFinishTasks.size() > 0 || unFinishRelatedTasks.size() > 0) {
|
List<SchBaseTask> unFinishRelatedTasks = taskService.checkHaveRelatedTaskInRequestParam(pointCode);
|
||||||
log.error("点位 [{}] 已经存在任务!", pointCode);
|
if (unFinishTasks.size() > 0 || unFinishRelatedTasks.size() > 0) {
|
||||||
throw new BadRequestException("点位[" + pointCode + "]已经存在任务!");
|
log.error("点位 [{}] 已经存在任务!", pointCode);
|
||||||
}
|
throw new BadRequestException("点位[" + pointCode + "]已经存在任务!");
|
||||||
StIvtSbpointivt sbPoint = stIvtSbpointivtService.getByPointCode(pointCode, false);
|
}
|
||||||
param.put("config_code", "RawCallRollTrussTask");
|
StIvtSbpointivt sbPoint = stIvtSbpointivtService.getByPointCode(pointCode, false);
|
||||||
param.put("device_code", pointCode);
|
param.put("config_code", "RawCallRollTrussTask");
|
||||||
param.put("ext_code", sbPoint.getExt_code());
|
param.put("device_code", pointCode);
|
||||||
param.put("create_mode", GeneralDefinition.PDA_CREATION);
|
param.put("ext_code", sbPoint.getExt_code());
|
||||||
// 标记一下这里的任务只是单纯送空
|
param.put("create_mode", GeneralDefinition.PDA_CREATION);
|
||||||
param.put("is_flag", "0");
|
// 标记一下这里的任务只是单纯送空
|
||||||
// 调用通用口, 创建空辊桁架任务
|
param.put("is_flag", "0");
|
||||||
rawCallRollTrussTask.apply(param);
|
// 调用通用口, 创建空辊桁架任务
|
||||||
|
rawCallRollTrussTask.apply(param);
|
||||||
|
});
|
||||||
JSONObject result = new JSONObject();
|
JSONObject result = new JSONObject();
|
||||||
result.put("status", HttpStatus.OK.value());
|
result.put("status", HttpStatus.OK.value());
|
||||||
result.put("message", "任务创建成功!");
|
result.put("message", "任务创建成功!");
|
||||||
@@ -192,11 +194,11 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService {
|
|||||||
rawOrder.setStatus("01");
|
rawOrder.setStatus("01");
|
||||||
TaskUtils.setRawOrderCreateByDefault(rawOrder);
|
TaskUtils.setRawOrderCreateByDefault(rawOrder);
|
||||||
rawOrder.setProduct_area(sbPoint.getProduct_area());
|
rawOrder.setProduct_area(sbPoint.getProduct_area());
|
||||||
rawOrder.setIs_baking("1");
|
// rawOrder.setIs_baking("1");
|
||||||
rawOrder.setOrder_type("1");
|
rawOrder.setOrder_type("1");
|
||||||
rawOrder.setBaking_time("80");
|
// rawOrder.setBaking_time("80");
|
||||||
rawOrder.setRoll_type("1");
|
// rawOrder.setRoll_type("1");
|
||||||
rawOrder.setBaking_temperature("80");
|
// rawOrder.setBaking_temperature("80");
|
||||||
rawfoilworkorderService.save(rawOrder);
|
rawfoilworkorderService.save(rawOrder);
|
||||||
// 组织请求任务参数
|
// 组织请求任务参数
|
||||||
// 当前生箔的点位
|
// 当前生箔的点位
|
||||||
@@ -235,7 +237,7 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService {
|
|||||||
SchBaseTask task = taskService.getTaskByPointCodeX(null, pointCode, null, null);
|
SchBaseTask task = taskService.getTaskByPointCodeX(null, pointCode, null, null);
|
||||||
if (ObjectUtil.isEmpty(task)) {
|
if (ObjectUtil.isEmpty(task)) {
|
||||||
// 可能是起点
|
// 可能是起点
|
||||||
task = taskService.getTaskByPointCodeX(pointCode, null, null, null);
|
task = taskService.getTaskByPointCodeX(null, null, pointCode, null);
|
||||||
}
|
}
|
||||||
if (ObjectUtil.isEmpty(task)) {
|
if (ObjectUtil.isEmpty(task)) {
|
||||||
log.error("该点查不到任务!");
|
log.error("该点查不到任务!");
|
||||||
@@ -256,7 +258,7 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService {
|
|||||||
acsParam.put("device_code", pointCode);
|
acsParam.put("device_code", pointCode);
|
||||||
acsParam.put("task_code", task.getTask_code());
|
acsParam.put("task_code", task.getTask_code());
|
||||||
acsParam.put("product_area", task.getProduct_area());
|
acsParam.put("product_area", task.getProduct_area());
|
||||||
acsParam.put("option", "2");
|
acsParam.put("option", "1");
|
||||||
paramArr.add(acsParam);
|
paramArr.add(acsParam);
|
||||||
JSONObject jsonObject = wmsToAcsService.updateTask(paramArr);
|
JSONObject jsonObject = wmsToAcsService.updateTask(paramArr);
|
||||||
log.info("生箔下发ACS,执行AGV动作,请求参数{},返回结果:{}", paramArr, jsonObject);
|
log.info("生箔下发ACS,执行AGV动作,请求参数{},返回结果:{}", paramArr, jsonObject);
|
||||||
|
|||||||
@@ -19,7 +19,9 @@
|
|||||||
AND p.point_type = '3'
|
AND p.point_type = '3'
|
||||||
AND p.point_status = '2'
|
AND p.point_status = '2'
|
||||||
AND p.region_code = 'A1-SJGK'
|
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 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')
|
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
|
ORDER BY p.update_time
|
||||||
|
|||||||
@@ -70,11 +70,15 @@ public class AutoInHotTrussTask extends AbstractTask {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
PdmBiRawfoilworkorder order = rawfoilworkorderService.getById(workOrderId);
|
PdmBiRawfoilworkorder order = rawfoilworkorderService.getById(workOrderId);
|
||||||
|
// 校验工单是否满足
|
||||||
|
if (!verificationOrder(order)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
String bakingTemperature = order.getBaking_temperature();
|
String bakingTemperature = order.getBaking_temperature();
|
||||||
// 如果需要烘烤, 先找对应点
|
// 如果需要烘烤, 先找对应点
|
||||||
List<StIvtHotpointivt> hotList = hotpointivtService.getNotTaskHotOven(order.getRoll_type(), "1");
|
List<StIvtHotpointivt> hotList = hotpointivtService.getNotTaskHotOven(order.getRoll_type(), "1");
|
||||||
if (hotList.size() == 0) {
|
if (hotList.size() == 0) {
|
||||||
log.error("找不到温度为:{} 的可用烘箱位置{}", bakingTemperature);
|
log.error("找不到温度为:{} 的可用烘箱位置", bakingTemperature);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// 查找合适温度的点位
|
// 查找合适温度的点位
|
||||||
@@ -111,6 +115,26 @@ public class AutoInHotTrussTask extends AbstractTask {
|
|||||||
return null;
|
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
|
@Override
|
||||||
public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
|
public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
|
||||||
checkTaskOptionStatus(taskObj);
|
checkTaskOptionStatus(taskObj);
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import cn.hutool.core.util.ObjectUtil;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.exception.BadRequestException;
|
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.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.ISchBasePointService;
|
||||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||||
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||||
@@ -36,6 +36,10 @@ import static org.nl.wms.util.TaskUtils.setUpdateByPC;
|
|||||||
@Component(value = "RawCallRollTrussTask")
|
@Component(value = "RawCallRollTrussTask")
|
||||||
public class RawCallRollTrussTask extends AbstractTask {
|
public class RawCallRollTrussTask extends AbstractTask {
|
||||||
private final String THIS_CLASS = RawCallRollTrussTask.class.getName();
|
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
|
@Autowired
|
||||||
private ISchBasePointService pointService;
|
private ISchBasePointService pointService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -54,9 +58,8 @@ public class RawCallRollTrussTask extends AbstractTask {
|
|||||||
public void createCompletion(SchBaseTask task) {
|
public void createCompletion(SchBaseTask task) {
|
||||||
log.info("生箔手持呼叫空辊任务创建, 参数:{}", task);
|
log.info("生箔手持呼叫空辊任务创建, 参数:{}", task);
|
||||||
// 查找同类型且与生箔机指定的收卷辊的起点, 并且没有任务
|
// 查找同类型且与生箔机指定的收卷辊的起点, 并且没有任务
|
||||||
// 先获取生箔机指定的收卷辊
|
// 先获取收卷辊(不在指定固定的收卷辊)
|
||||||
JSONObject requestObj = JSONObject.parseObject(task.getRequest_param());
|
List<SchBasePoint> startPoints = pointService.getWindRollNotTaskPoints(null);
|
||||||
List<SchBasePoint> startPoints = pointService.getWindRollNotTaskPoints(requestObj.getString("ext_code"));
|
|
||||||
if (startPoints.size() == 0) {
|
if (startPoints.size() == 0) {
|
||||||
throw new BadRequestException("找不到生箔机指定的收卷辊!");
|
throw new BadRequestException("找不到生箔机指定的收卷辊!");
|
||||||
}
|
}
|
||||||
@@ -102,8 +105,8 @@ public class RawCallRollTrussTask extends AbstractTask {
|
|||||||
clearPoint(startPointObj, taskFinishedType);
|
clearPoint(startPointObj, taskFinishedType);
|
||||||
}
|
}
|
||||||
log.info("点位清除完毕,清除后的数据:{}", startPointObj);
|
log.info("点位清除完毕,清除后的数据:{}", startPointObj);
|
||||||
if ("2".equals(flag)) {
|
if (NOT_AGV_TASK_FLAG.equals(flag)) {
|
||||||
// TODO: 此功能留给手持人工需要单独叫收卷辊出来,目前没有做手持功能
|
// 此功能留给手持人工需要单独叫收卷辊出来
|
||||||
log.info("手持单独呼叫收卷辊,不创建AGV任务!");
|
log.info("手持单独呼叫收卷辊,不创建AGV任务!");
|
||||||
} else {
|
} else {
|
||||||
// 2、创建AGV任务
|
// 2、创建AGV任务
|
||||||
@@ -121,7 +124,7 @@ public class RawCallRollTrussTask extends AbstractTask {
|
|||||||
taskParam.put("up_task_code", taskObj.getTask_code());
|
taskParam.put("up_task_code", taskObj.getTask_code());
|
||||||
taskParam.put("create_mode", GeneralDefinition.TASK_CREATION);
|
taskParam.put("create_mode", GeneralDefinition.TASK_CREATION);
|
||||||
// 这里需要判断是否是送轴的任务
|
// 这里需要判断是否是送轴的任务
|
||||||
if ("1".equals(flag)) {
|
if (FOUR_POINT_TASK_FLAG.equals(flag)) {
|
||||||
// 需要的是四点任务
|
// 需要的是四点任务
|
||||||
taskParam.put("config_code", "RawDownAGVTask");
|
taskParam.put("config_code", "RawDownAGVTask");
|
||||||
rawDownAGVTask.apply(taskParam);
|
rawDownAGVTask.apply(taskParam);
|
||||||
|
|||||||
Reference in New Issue
Block a user