fix: 收卷辊满入空出异常处理

This commit is contained in:
2024-08-27 16:31:33 +08:00
parent a06218d375
commit efc856bd23
6 changed files with 82 additions and 5 deletions

View File

@@ -59,6 +59,12 @@ public class AcsToWmsController {
public ResponseEntity<Object> applyNewPoint(@RequestBody JSONObject whereJson) { public ResponseEntity<Object> applyNewPoint(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(acsToWmsService.applyNewPoint(whereJson), HttpStatus.OK); return new ResponseEntity<>(acsToWmsService.applyNewPoint(whereJson), HttpStatus.OK);
} }
@PostMapping("/applyRollUpRollerNewPoint")
@Log(value = "收卷辊库满入空出申请新点位", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS)
@SaIgnore
public ResponseEntity<Object> applyRollUpRollerNewPoint(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(acsToWmsService.applyRollUpRollerNewPoint(whereJson), HttpStatus.OK);
}
@PostMapping("/receiveWasteFoilWeight") @PostMapping("/receiveWasteFoilWeight")
@Log(value = "废箔重量反馈", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS) @Log(value = "废箔重量反馈", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS)
@SaIgnore @SaIgnore

View File

@@ -146,4 +146,11 @@ public interface AcsToWmsService {
* @return * @return
*/ */
JSONObject applyNewPoint(JSONObject param); JSONObject applyNewPoint(JSONObject param);
/**
* 收卷辊满入空出
* @param param
* @return
*/
JSONObject applyRollUpRollerNewPoint(JSONObject param);
} }

View File

@@ -188,4 +188,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
public JSONObject applyNewPoint(JSONObject param) { public JSONObject applyNewPoint(JSONObject param) {
return nbjOperationService.tubeExceptionHandling(param); return nbjOperationService.tubeExceptionHandling(param);
} }
@Override
public JSONObject applyRollUpRollerNewPoint(JSONObject param) {
return otherOperationService.takeUpRollExceptionHandling(param);
}
} }

View File

@@ -14,4 +14,11 @@ public interface OtherOperationService {
* @return / * @return /
*/ */
JSONObject acsRequestWasteFoilWeight(JSONObject param); JSONObject acsRequestWasteFoilWeight(JSONObject param);
/**
* 收卷辊异常处理
* @param param /
* @return /
*/
JSONObject takeUpRollExceptionHandling(JSONObject param);
} }

View File

@@ -14,6 +14,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.core.constant.GeneralDefinition;
import org.nl.wms.sch.task_manage.core.enums.TaskFinishedTypeEnum; import org.nl.wms.sch.task_manage.core.enums.TaskFinishedTypeEnum;
import org.nl.wms.sch.task_manage.service.NbjOperationService; import org.nl.wms.sch.task_manage.service.NbjOperationService;
import org.nl.wms.util.PointUtils;
import org.nl.wms.util.TaskUtils; import org.nl.wms.util.TaskUtils;
import org.slf4j.MDC; import org.slf4j.MDC;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -21,11 +22,8 @@ import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import static org.nl.wms.util.PointUtils.clearPoint;
/** /**
* @Author: lyd * @Author: lyd
* @Description: * @Description:
@@ -42,7 +40,7 @@ public class NbjOperationServiceImpl implements NbjOperationService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public JSONObject tubeExceptionHandling(JSONObject param) { public JSONObject tubeExceptionHandling(JSONObject param) {
MDC.put(GeneralDefinition.MDC_KEY, TagNameEnum.ERROR_GX_IN_OUT.getTag()); MDC.put(GeneralDefinition.MDC_KEY, TagNameEnum.ERROR_GX_IN_OUT.getTag());
log.info("ACS请求满入/空出异常处理 - {}", param); log.info("ACS请求管芯满入/空出异常处理 - {}", param);
// type: 1满入2空出、target: 异常点位、barcode条码、task_code: 任务编码 // type: 1满入2空出、target: 异常点位、barcode条码、task_code: 任务编码
String type = param.getString("type"); String type = param.getString("type");
String deviceCode = param.getString("target"); String deviceCode = param.getString("target");
@@ -65,7 +63,9 @@ public class NbjOperationServiceImpl implements NbjOperationService {
if (ObjectUtil.isEmpty(task)) { if (ObjectUtil.isEmpty(task)) {
throw new BadRequestException("任务[ {" + taskCode + "} ]不存在!"); throw new BadRequestException("任务[ {" + taskCode + "} ]不存在!");
} }
// 空出: 根据点位的载具类型查找相同位置: 应该查找没有任务的点位 // 空出: 点位清空
PointUtils.clearPoint(exceptionPoint, TaskFinishedTypeEnum.AUTO_ACS);
// 根据点位的载具类型查找相同位置: 应该查找没有任务的点位
allGxPoints = pointService.getAllBusinessNotTaskPoint("A1", "A1-GXK", allGxPoints = pointService.getAllBusinessNotTaskPoint("A1", "A1-GXK",
"3", "2", null, vehicleCode); "3", "2", null, vehicleCode);
if (allGxPoints.size() > 0) { if (allGxPoints.size() > 0) {

View File

@@ -3,8 +3,10 @@ package org.nl.wms.sch.task_manage.service.impl;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
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.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
import org.nl.wms.md.wastefoilrecord.service.IWastefoilrecordService; import org.nl.wms.md.wastefoilrecord.service.IWastefoilrecordService;
import org.nl.wms.md.wastefoilrecord.service.dao.Wastefoilrecord; import org.nl.wms.md.wastefoilrecord.service.dao.Wastefoilrecord;
@@ -12,13 +14,17 @@ 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;
import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task.service.dao.SchBaseTask;
import org.nl.wms.sch.task_manage.core.enums.TaskFinishedTypeEnum;
import org.nl.wms.sch.task_manage.service.OtherOperationService; import org.nl.wms.sch.task_manage.service.OtherOperationService;
import org.nl.wms.util.PointUtils;
import org.nl.wms.util.TaskUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
/** /**
* @Author: lyd * @Author: lyd
@@ -79,4 +85,50 @@ public class OtherOperationServiceImpl implements OtherOperationService {
result.put("message", "废箔重量反馈成功!"); result.put("message", "废箔重量反馈成功!");
return result; return result;
} }
@Override
public JSONObject takeUpRollExceptionHandling(JSONObject param) {
// 收卷辊异常处理
log.info("ACS请求收卷辊满入/空出异常处理 - {}", param);
// type: 1-满入2-空出、task_code任务编码、target异常点位
String type = param.getString("type");
String deviceCode = param.getString("target");
String taskCode = param.getString("task_code");
SchBaseTask task = taskService.getByCode(taskCode);
if (ObjectUtil.isEmpty(task)) {
throw new BadRequestException("任务[ {" + taskCode + "} ]不存在!");
}
SchBasePoint exceptionPoint = pointService.getById(deviceCode);
JSONObject requestObj = JSONObject.parseObject(task.getRequest_param());
List<SchBasePoint> allSjgPoints;
if ("1".equals(type)) {
// 满入:把对应的点位禁用,并且发起通知,从新获取新点位
exceptionPoint.setIs_used(false);
exceptionPoint.setUpdate_time(DateUtil.now());
log.info("满入禁用点位");
pointService.updateById(exceptionPoint);
// 查找空位终点即可
allSjgPoints = pointService.getAllBusinessNotTaskPoint("A1",
"A1-SJGK", "3", "1", null, null);
} else {
// 空出:点位清空,从新获取新点位
PointUtils.clearPoint(exceptionPoint, TaskFinishedTypeEnum.AUTO_ACS);
allSjgPoints = pointService.getWindRollNotTaskPoints(requestObj.getString("ext_code"));
}
if (allSjgPoints.size() == 0) {
throw new BadRequestException("收卷辊重新分配货位失败!");
}
SchBasePoint point = allSjgPoints.get(0);
task.setPoint_code3(point.getPoint_code());
task.setRemark("重新分配货位");
TaskUtils.setUpdateByDefault(task);
taskService.updateById(task);
JSONObject data = new JSONObject();
data.put("device_code", point.getPoint_code());
JSONObject result = new JSONObject();
result.put("status", HttpStatus.OK.value());
result.put("message", "满入空出异常处理请求成功!");
result.put("data", data);
return result;
}
} }