add: 取样、lms、acs联调
This commit is contained in:
@@ -61,6 +61,13 @@ public class AcsToWmsController {
|
||||
public ResponseEntity<Object> applyNewPoint(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(acsToWmsService.applyNewPoint(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/getSJGHCPointStatus")
|
||||
@Log(value = "分切上料AGV请求进入获取缓存架状态", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS)
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> getSJGHCPointStatus(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(acsToWmsService.getSJGHCPointStatus(whereJson), HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("/applyRollUpRollerNewPoint")
|
||||
@Log(value = "收卷辊库满入空出申请新点位", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS)
|
||||
@SaIgnore
|
||||
|
||||
@@ -147,6 +147,14 @@ public interface AcsToWmsService {
|
||||
*/
|
||||
JSONObject applyNewPoint(JSONObject param);
|
||||
|
||||
|
||||
/**
|
||||
* 分切上料AGV请求进入获取缓存架状态
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
JSONObject getSJGHCPointStatus(JSONObject param);
|
||||
|
||||
/**
|
||||
* 收卷辊满入空出
|
||||
* @param param
|
||||
|
||||
@@ -208,6 +208,12 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
return otherOperationService.takeUpRollExceptionHandling(param);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public JSONObject getSJGHCPointStatus(JSONObject param) {
|
||||
return otherOperationService.getSJGHCPointStatus(param);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject acsFeedbackTubeInStorageComplete(JSONObject param) {
|
||||
return otherOperationService.acsFeedbackTubeInStorageComplete(param);
|
||||
|
||||
@@ -188,28 +188,39 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService {
|
||||
if (ObjectUtil.isEmpty(sbPoint)) {
|
||||
throw new BadRequestException("生箔位:" + pointCode + " 不存在,请检查是否被锁住!");
|
||||
}
|
||||
// todo: 暂时写死,创建工单
|
||||
PdmBiRawfoilworkorder rawOrder = new PdmBiRawfoilworkorder();
|
||||
rawOrder.setWorkorder_id(IdUtil.getSnowflake(1,1).nextIdStr());
|
||||
rawOrder.setContainer_name(ObjectUtil.isNotEmpty(orderCode) ? orderCode : createVirtualContainer(rollCode, "yyMMddHHmmss", sbPoint.getExt_code()));
|
||||
rawOrder.setResource_name(sbPoint.getExt_code());
|
||||
rawOrder.setMfg_order_name("$$$$");
|
||||
rawOrder.setProduct_name("锂电");
|
||||
rawOrder.setDescription("锂电");
|
||||
rawOrder.setTheory_height(new BigDecimal(theory_height));
|
||||
rawOrder.setProductin_qty(new BigDecimal(productin_qty));
|
||||
rawOrder.setUp_coiler_date(DateUtil.now());
|
||||
rawOrder.setStatus("01");
|
||||
rawOrder.setWind_roll(rollCode);
|
||||
TaskUtils.setRawOrderCreateByDefault(rawOrder);
|
||||
rawOrder.setProduct_area(sbPoint.getProduct_area());
|
||||
rawOrder.setOrder_type("1");
|
||||
rawfoilworkorderService.save(rawOrder);
|
||||
PdmBiRawfoilworkorder order = rawfoilworkorderService.getByContainerName(orderCode);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(order)) {
|
||||
order.setTheory_height(new BigDecimal(theory_height));
|
||||
order.setProductin_qty(new BigDecimal(productin_qty));
|
||||
order.setUp_coiler_date(DateUtil.now());
|
||||
rawfoilworkorderService.updateById(order);
|
||||
param.put("order_code", order.getContainer_name());
|
||||
param.put("workorder_id", order.getWorkorder_id());
|
||||
}else {
|
||||
// todo: 暂时写死,创建工单
|
||||
PdmBiRawfoilworkorder rawOrder = new PdmBiRawfoilworkorder();
|
||||
rawOrder.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextIdStr());
|
||||
rawOrder.setContainer_name(ObjectUtil.isNotEmpty(orderCode) ? orderCode : createVirtualContainer(rollCode, "yyMMddHHmmss", sbPoint.getExt_code()));
|
||||
rawOrder.setResource_name(sbPoint.getExt_code());
|
||||
rawOrder.setMfg_order_name("$$$$");
|
||||
rawOrder.setProduct_name("锂电");
|
||||
rawOrder.setDescription("锂电");
|
||||
rawOrder.setTheory_height(new BigDecimal(theory_height));
|
||||
rawOrder.setProductin_qty(new BigDecimal(productin_qty));
|
||||
rawOrder.setUp_coiler_date(DateUtil.now());
|
||||
rawOrder.setStatus("01");
|
||||
rawOrder.setWind_roll(rollCode);
|
||||
TaskUtils.setRawOrderCreateByDefault(rawOrder);
|
||||
rawOrder.setProduct_area(sbPoint.getProduct_area());
|
||||
rawOrder.setOrder_type("1");
|
||||
rawfoilworkorderService.save(rawOrder);
|
||||
param.put("order_code", rawOrder.getContainer_name());
|
||||
param.put("workorder_id", rawOrder.getWorkorder_id());
|
||||
}
|
||||
// 组织请求任务参数
|
||||
// 当前生箔的点位
|
||||
param.put("device_code", pointCode);
|
||||
param.put("order_code", rawOrder.getContainer_name());
|
||||
param.put("workorder_id", rawOrder.getWorkorder_id());
|
||||
param.put("ext_code", sbPoint.getExt_code());
|
||||
param.put("vehicle_code2", rollCode);
|
||||
param.put("create_mode", GeneralDefinition.PDA_CREATION);
|
||||
|
||||
@@ -114,7 +114,8 @@ public class SlitterPdaServiceImpl implements SlitterPdaService {
|
||||
param.put("create_mode", GeneralDefinition.PDA_CREATION);
|
||||
// 判断空轴位状态
|
||||
// 标记一下, 0: 只做呼叫母卷,1:呼叫母卷还要送空辊
|
||||
param.put("is_flag", "01".equals(cutPoint.getFull_point_status()) ? "0" : "1");
|
||||
// 只做四个点任务
|
||||
// param.put("is_flag", "01".equals(cutPoint.getFull_point_status()) ? "0" : "1");
|
||||
param.put("vehicle_code", cutPoint.getFull_vehicle_code());
|
||||
param.put("vehicle_code2", one.getWind_roll());
|
||||
slitterUpTrussTask.apply(param);
|
||||
|
||||
@@ -238,10 +238,11 @@ public class OtherPdaServiceImpl implements OtherPdaService {
|
||||
log.info("手持呼叫AGV送样品检测 - {}", param);
|
||||
// point_code1, point_code2
|
||||
String pointCode1 = param.getString("point_code1");
|
||||
List<SchBaseTask> schBaseTasks = taskService.checkHaveTask(pointCode1);
|
||||
if (schBaseTasks.size() > 0) {
|
||||
throw new BadRequestException("点位[" + pointCode1 + "]已经存在任务!");
|
||||
}
|
||||
//不判断是否有执行的任务
|
||||
// List<SchBaseTask> schBaseTasks = taskService.checkHaveTask(pointCode1);
|
||||
// if (schBaseTasks.size() > 0) {
|
||||
// throw new BadRequestException("点位[" + pointCode1 + "]已经存在任务!");
|
||||
// }
|
||||
param.put("device_code", pointCode1);
|
||||
param.put("config_code", "CallToSamplingAGVTask");
|
||||
param.put("create_mode", GeneralDefinition.PDA_CREATION);
|
||||
|
||||
@@ -22,6 +22,13 @@ public interface OtherOperationService {
|
||||
*/
|
||||
JSONObject takeUpRollExceptionHandling(JSONObject param);
|
||||
|
||||
/**
|
||||
* 获取缓存点位状态
|
||||
* @param param /
|
||||
* @return /
|
||||
*/
|
||||
JSONObject getSJGHCPointStatus(JSONObject param);
|
||||
|
||||
/**
|
||||
* ACS反馈管芯入库完成
|
||||
* @param param /
|
||||
|
||||
@@ -147,6 +147,20 @@ public class OtherOperationServiceImpl implements OtherOperationService {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public JSONObject getSJGHCPointStatus(JSONObject param) {
|
||||
// 获取收卷辊货位状态
|
||||
log.info("获取收卷辊货位状态:{}", param);
|
||||
String deviceCode = param.getString("device_code");
|
||||
SchBasePoint point = pointService.getById(deviceCode);
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("status", HttpStatus.OK.value());
|
||||
result.put("point_status", point.getPoint_status());
|
||||
result.put("message", "获取收卷辊货位状态成功!");
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject acsFeedbackTubeInStorageComplete(JSONObject param) {
|
||||
MDC.put(GeneralDefinition.MDC_KEY, TagNameEnum.ACS_FEEDBACK_TUBE_COMPLETE.getTag());
|
||||
|
||||
@@ -43,6 +43,8 @@ public class CallToSamplingAGVTask extends AbstractTask {
|
||||
task.setHandle_class(THIS_CLASS);
|
||||
task.setTask_status(TaskStatus.START_AND_POINT.getCode());
|
||||
setUpdateByPC(task);
|
||||
// 设置车号
|
||||
task.setCar_no("3");
|
||||
taskService.save(task);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.nl.wms.sch.task_manage.tasks.slitter;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||
@@ -15,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import static org.nl.wms.util.PointUtils.setUpdateByType;
|
||||
@@ -65,12 +67,25 @@ public class SlitterSendRollTrussTask extends AbstractTask {
|
||||
public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
|
||||
checkTaskOptionStatus(taskObj);
|
||||
// 点位更新需要将载具编码设置到终点
|
||||
// 收卷锟缓存架更新
|
||||
String endPointCode = taskObj.getPoint_code2();
|
||||
SchBasePoint endPoint = pointService.getById(endPointCode);
|
||||
endPoint.setVehicle_code(taskObj.getVehicle_code());
|
||||
endPoint.setPoint_status("2");
|
||||
setUpdateByType(endPoint, taskFinishedType);
|
||||
pointService.updateById(endPoint);
|
||||
String startPointCode = taskObj.getPoint_code1();
|
||||
QueryWrapper<SchBasePoint> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.in("point_code", Arrays.asList(endPointCode, startPointCode)); // 假设这是你要查询的 point_code 列表
|
||||
List<SchBasePoint> points = pointService.list(queryWrapper);
|
||||
for (SchBasePoint point : points) {
|
||||
if (point.getPoint_code().equals(endPointCode)){
|
||||
point.setVehicle_code(taskObj.getVehicle_code());
|
||||
point.setPoint_status("2");
|
||||
setUpdateByType(point, taskFinishedType);
|
||||
}
|
||||
if (point.getPoint_code().equals(startPointCode)){
|
||||
point.setPoint_status("1");
|
||||
setUpdateByType(point, taskFinishedType);
|
||||
}
|
||||
}
|
||||
pointService.updateBatchById(points);
|
||||
|
||||
// 任务更新
|
||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||
taskObj.setFinished_type(taskFinishedType.getCode());
|
||||
|
||||
@@ -24,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import static org.nl.wms.util.TaskUtils.*;
|
||||
@@ -57,30 +58,31 @@ public class SlitterUpAGVTask extends AbstractTask {
|
||||
// 收卷辊不需要校验点位,因此无需加锁
|
||||
String requestParam = task.getRequest_param();
|
||||
JSONObject requestObj = JSONObject.parseObject(requestParam);
|
||||
String isFlag = requestObj.getString("is_flag");
|
||||
// String isFlag = requestObj.getString("is_flag");
|
||||
// 分切上料满料对接位
|
||||
String cutPointCode = requestObj.getString("cut_point");
|
||||
// 烘箱暂存对接位
|
||||
String deviceCode = requestObj.getString("device_code");
|
||||
StIvtCutpointivt cutPoint = cutpointivtService.getByFullCode(cutPointCode, false);
|
||||
if ("0".equals(isFlag)) {
|
||||
// 两点任务
|
||||
task.setPoint_code1(deviceCode);
|
||||
task.setPoint_code2(cutPoint.getFull_point_code());
|
||||
} else {
|
||||
// 收卷辊的入库不做校验
|
||||
List<SchBasePoint> sjgPoints = pointService.getPointByConditions("A1", "A1-SJGK",
|
||||
"1", null, null, false);
|
||||
if (sjgPoints.size() == 0) {
|
||||
throw new BadRequestException("收卷辊库找不到入口!");
|
||||
}
|
||||
SchBasePoint sjgPoint = sjgPoints.get(0);
|
||||
// 四点任务
|
||||
task.setPoint_code1(deviceCode);
|
||||
task.setPoint_code2(cutPoint.getFull_point_code());
|
||||
task.setPoint_code3(cutPoint.getEmpty_point_code());
|
||||
task.setPoint_code4(sjgPoint.getPoint_code());
|
||||
// if ("0".equals(isFlag)) {
|
||||
// // 两点任务
|
||||
// task.setPoint_code1(deviceCode);
|
||||
// task.setPoint_code2(cutPoint.getFull_point_code());
|
||||
// } else {
|
||||
// }
|
||||
// 只做四个点任务
|
||||
// 收卷辊的入库不做校验
|
||||
List<SchBasePoint> sjgPoints = pointService.getPointByConditions("A1", "A1-SJGK",
|
||||
"1", null, null, false);
|
||||
if (sjgPoints.size() == 0) {
|
||||
throw new BadRequestException("收卷辊库找不到入口!");
|
||||
}
|
||||
SchBasePoint sjgPoint = sjgPoints.get(0);
|
||||
// 四点任务
|
||||
task.setPoint_code1(deviceCode);
|
||||
task.setPoint_code2(cutPoint.getFull_point_code());
|
||||
task.setPoint_code3(cutPoint.getEmpty_point_code());
|
||||
task.setPoint_code4(sjgPoint.getPoint_code());
|
||||
// 创建任务
|
||||
task.setHandle_class(THIS_CLASS);
|
||||
task.setTask_status(TaskStatus.START_AND_POINT.getCode());
|
||||
@@ -110,6 +112,11 @@ public class SlitterUpAGVTask extends AbstractTask {
|
||||
cutPoint.setEmpty_point_status("02");
|
||||
setCutUpdateByType(cutPoint, taskFinishedType);
|
||||
cutpointivtService.updateById(cutPoint);
|
||||
//更新收卷锟缓存位库存
|
||||
String pointCode4 = taskObj.getPoint_code4();
|
||||
SchBasePoint point4 = pointService.query().eq("point_code", pointCode4).one();
|
||||
point4.setPoint_status("2");
|
||||
pointService.updateById(point4);
|
||||
if (ObjectUtil.isNotEmpty(taskObj.getPoint_code3())) {
|
||||
// 四点任务,还需要创建收卷辊桁架任务
|
||||
JSONObject taskParam = new JSONObject();
|
||||
|
||||
@@ -85,7 +85,7 @@ public class SlitterUpTrussTask extends AbstractTask {
|
||||
JSONObject requestObj = JSONObject.parseObject(requestParam);
|
||||
|
||||
// 分切机满料位
|
||||
String isFlag = requestObj.getString("is_flag");
|
||||
// String isFlag = requestObj.getString("is_flag");
|
||||
String workorderId = requestObj.getString("workorder_id");
|
||||
String startPointCode = taskObj.getPoint_code1();
|
||||
String endPointCode = taskObj.getPoint_code2();
|
||||
@@ -98,7 +98,7 @@ public class SlitterUpTrussTask extends AbstractTask {
|
||||
taskParam.put("device_code", endPointCode);
|
||||
taskParam.put("cut_point", requestObj.getString("device_code"));
|
||||
// 标记一下, 0: 只做呼叫母卷,1:呼叫母卷还要送空辊
|
||||
taskParam.put("is_flag", isFlag);
|
||||
// taskParam.put("is_flag", isFlag);
|
||||
// 空轴的编码
|
||||
taskParam.put("vehicle_code", taskObj.getVehicle_code());
|
||||
// 满轴的载具号
|
||||
|
||||
Reference in New Issue
Block a user