代码更新:
1. 修复bug
This commit is contained in:
parent
f9b41b7ba2
commit
283f2988ba
|
|
@ -14,7 +14,9 @@ public enum TaskInValidationEnum {
|
||||||
ERROR_GOODS_ID("错误的物料编号"),
|
ERROR_GOODS_ID("错误的物料编号"),
|
||||||
ERROR_GOODS_NUM("带料入库数量为空"),
|
ERROR_GOODS_NUM("带料入库数量为空"),
|
||||||
NO_WEIGHT("重量信息为空"),
|
NO_WEIGHT("重量信息为空"),
|
||||||
OVER_WEIGHT("超重");
|
OVER_WEIGHT("超重"),
|
||||||
|
ON_PICKING("当前料箱正在拣选"),
|
||||||
|
OTHER_TASKS("当前料箱存在其他任务");
|
||||||
|
|
||||||
private final String errorMessage;
|
private final String errorMessage;
|
||||||
TaskInValidationEnum(String errorMessage) {
|
TaskInValidationEnum(String errorMessage) {
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,11 @@ import com.wms.entity.app.request.VehicleQuery;
|
||||||
import com.wms.entity.app.ResponseEntity;
|
import com.wms.entity.app.ResponseEntity;
|
||||||
import com.wms.entity.app.vo.LocationVo;
|
import com.wms.entity.app.vo.LocationVo;
|
||||||
import com.wms.entity.app.vo.VehicleVO;
|
import com.wms.entity.app.vo.VehicleVO;
|
||||||
|
import com.wms.entity.table.ELocationConfig;
|
||||||
import com.wms.entity.table.ETagLocation;
|
import com.wms.entity.table.ETagLocation;
|
||||||
import com.wms.entity.table.Location;
|
import com.wms.entity.table.Location;
|
||||||
import com.wms.entity.table.Vehicle;
|
import com.wms.entity.table.Vehicle;
|
||||||
|
import com.wms.service.ELocationConfigService;
|
||||||
import com.wms.service.ETagLocationService;
|
import com.wms.service.ETagLocationService;
|
||||||
import com.wms.service.LocationService;
|
import com.wms.service.LocationService;
|
||||||
import com.wms.service.VehicleService;
|
import com.wms.service.VehicleService;
|
||||||
|
|
@ -62,6 +64,7 @@ public class LocationController {
|
||||||
* 电子标签库位服务
|
* 电子标签库位服务
|
||||||
*/
|
*/
|
||||||
private final ETagLocationService etagLocationService;
|
private final ETagLocationService etagLocationService;
|
||||||
|
private final ELocationConfigService eLocationConfigService;
|
||||||
/**
|
/**
|
||||||
* 请求头部信息
|
* 请求头部信息
|
||||||
*/
|
*/
|
||||||
|
|
@ -394,4 +397,84 @@ public class LocationController {
|
||||||
return JSON.toJSONString(rsp);
|
return JSON.toJSONString(rsp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * 查询电子标签库位信息
|
||||||
|
// * @param eLocationQuery 查询参数
|
||||||
|
// * @return 结果
|
||||||
|
// */
|
||||||
|
// @PostMapping("/getELocationsByPage")
|
||||||
|
// @ResponseBody
|
||||||
|
// @Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
|
||||||
|
// @MyLog(logTitle = "查询电子标签库位信息", logMethod = "getVehiclesByPage")
|
||||||
|
// public String getVehiclesByPage(@RequestBody ELocationQuery eLocationQuery) {
|
||||||
|
// logger.info("接收到查询电子标签库位信息请求:{},请求ip:{}", convertJsonString(eLocationQuery), HttpUtils.getIpAddr(servletRequest));
|
||||||
|
// ResponseEntity response = new ResponseEntity();
|
||||||
|
// try {
|
||||||
|
// Page<ETagLocation> page = eLocationQuery.toMpPage();
|
||||||
|
// Page<Vehicle> vehiclePage = vehicleService.page(page, new LambdaQueryWrapper<Vehicle>()
|
||||||
|
// .like(StringUtils.isNotEmpty(vehicleQuery.getVehicleId()), Vehicle::getVehicleId, vehicleQuery.getVehicleId())
|
||||||
|
// .eq(vehicleQuery.getVehicleStatus() != null, Vehicle::getVehicleStatus, vehicleQuery.getVehicleStatus())
|
||||||
|
// .eq(vehicleQuery.getIsEmpty() != null, Vehicle::getIsEmpty, vehicleQuery.getIsEmpty())
|
||||||
|
// .orderByDesc(Vehicle::getLastInTime));
|
||||||
|
//
|
||||||
|
// PageDto<VehicleVO> pageDto = PageDto.of(vehiclePage, vehicle -> BeanUtil.copyProperties(vehicle, VehicleVO.class));
|
||||||
|
// response.setCode(ResponseCode.OK.getCode());
|
||||||
|
// response.setMessage("查询成功");
|
||||||
|
// response.setReturnData(pageDto);
|
||||||
|
// return convertJsonString(response);
|
||||||
|
// } catch (Exception e) {
|
||||||
|
// // 回滚事务
|
||||||
|
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||||
|
// logger.error("查询载具信息发生异常");
|
||||||
|
// response.setCode(ResponseCode.ERROR.getCode());
|
||||||
|
// response.setMessage("查询载具信息发生异常");
|
||||||
|
// return convertJsonString(response);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 更新料箱信息
|
||||||
|
// *
|
||||||
|
// * @param vehicleQuery 料箱
|
||||||
|
// * @return 结果
|
||||||
|
// */
|
||||||
|
// @PostMapping("/updateVehicleInfo")
|
||||||
|
// @ResponseBody
|
||||||
|
// @Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
|
||||||
|
// @MyLog(logTitle = "更新载具信息", logMethod = "updateVehicleInfo")
|
||||||
|
// public String updateVehicleInfo(@RequestBody VehicleQuery vehicleQuery) {
|
||||||
|
// logger.info("接收到更新载具信息信息请求:{},请求ip:{}", convertJsonString(vehicleQuery), HttpUtils.getIpAddr(servletRequest));
|
||||||
|
// // 创建响应信息
|
||||||
|
// ResponseEntity rsp = new ResponseEntity();
|
||||||
|
// try {
|
||||||
|
// if (StringUtils.isEmpty(vehicleQuery.getVehicleId())) {// 载具号为空
|
||||||
|
// logger.error("缺少载具号");
|
||||||
|
// rsp.setCode(ResponseCode.ERROR.getCode());
|
||||||
|
// rsp.setMessage("缺少载具号");
|
||||||
|
// return convertJsonString(rsp);
|
||||||
|
// }
|
||||||
|
// if (vehicleService.update(vehicleQuery.toVehiclePO(), new LambdaQueryWrapper<Vehicle>().eq(Vehicle::getVehicleId, vehicleQuery.getVehicleId()))) {
|
||||||
|
// // 返回成功
|
||||||
|
// logger.info("更新载具信息成功");
|
||||||
|
// rsp.setCode(ResponseCode.OK.getCode());
|
||||||
|
// rsp.setMessage("更新载具信息成功");
|
||||||
|
// } else {
|
||||||
|
// // 返回失败
|
||||||
|
// logger.error("更新载具信息失败");
|
||||||
|
// rsp.setCode(ResponseCode.ERROR.getCode());
|
||||||
|
// rsp.setMessage("更新载具信息失败");
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// return convertJsonString(rsp);
|
||||||
|
// } catch (Exception e) {
|
||||||
|
// // 回滚事务
|
||||||
|
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||||
|
// logger.info("更新载具信息发生异常:{}", convertJsonString(e));
|
||||||
|
// // 返回其他异常
|
||||||
|
// rsp.setCode(ResponseCode.ERROR.getCode());
|
||||||
|
// rsp.setMessage("更新载具信息发生异常");
|
||||||
|
// return JSON.toJSONString(rsp);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
@ -25,6 +25,7 @@ import com.wms.service.business.IWmsTaskService;
|
||||||
import com.wms.service.business.IWorkService;
|
import com.wms.service.business.IWorkService;
|
||||||
import com.wms.utils.HttpUtils;
|
import com.wms.utils.HttpUtils;
|
||||||
import com.wms.utils.StringUtils;
|
import com.wms.utils.StringUtils;
|
||||||
|
import com.wms.utils.WmsUtils;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
|
@ -146,6 +147,10 @@ public class TaskController {
|
||||||
* 非计划领料服务
|
* 非计划领料服务
|
||||||
*/
|
*/
|
||||||
private final NoPlanRecordService noPlanRecordService;
|
private final NoPlanRecordService noPlanRecordService;
|
||||||
|
/**
|
||||||
|
* 日志服务
|
||||||
|
*/
|
||||||
|
private final LogService logService;
|
||||||
/**
|
/**
|
||||||
* Wcs服务
|
* Wcs服务
|
||||||
*/
|
*/
|
||||||
|
|
@ -171,7 +176,6 @@ public class TaskController {
|
||||||
ResponseEntity response = new ResponseEntity();
|
ResponseEntity response = new ResponseEntity();
|
||||||
try {
|
try {
|
||||||
// 验证入库请求
|
// 验证入库请求
|
||||||
// TODO 这里需要判断这个箱子里面的其他物料是否能和当前物料放在一起
|
|
||||||
String validationInfo = validateService.validateTaskInRequest(taskInRequest);
|
String validationInfo = validateService.validateTaskInRequest(taskInRequest);
|
||||||
if (!Objects.equals(validationInfo, TaskInValidationEnum.OK.getErrorMessage())) {
|
if (!Objects.equals(validationInfo, TaskInValidationEnum.OK.getErrorMessage())) {
|
||||||
logger.error("入库请求验证错误!{}", validationInfo);
|
logger.error("入库请求验证错误!{}", validationInfo);
|
||||||
|
|
@ -977,6 +981,11 @@ public class TaskController {
|
||||||
// 发送信息
|
// 发送信息
|
||||||
logger.info("发送电子标签亮灯请求:{}", convertJsonString(wcsETaskRequest));
|
logger.info("发送电子标签亮灯请求:{}", convertJsonString(wcsETaskRequest));
|
||||||
ResponseEntity result = JSON.parseObject(HttpUtils.sendHttpPostWithoutToken(sendToWcsETaskUrl, convertJsonString(wcsETaskRequest)), ResponseEntity.class);
|
ResponseEntity result = JSON.parseObject(HttpUtils.sendHttpPostWithoutToken(sendToWcsETaskUrl, convertJsonString(wcsETaskRequest)), ResponseEntity.class);
|
||||||
|
try {
|
||||||
|
logService.save(new WmsLog(WmsUtils.generateId("LOG_"), "发送电子标签任务", "eTagTask", convertJsonString(wcsETaskRequest), convertJsonString(result), sendToWcsETaskUrl, LocalDateTime.now(), "WMS"));
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error("插入日志错误");
|
||||||
|
}
|
||||||
if (result == null || !Objects.equals(result.getCode(), ResponseCode.OK.getCode())) {
|
if (result == null || !Objects.equals(result.getCode(), ResponseCode.OK.getCode())) {
|
||||||
logger.error("发送电子标签亮灯任务失败:{}", convertJsonString(result));
|
logger.error("发送电子标签亮灯任务失败:{}", convertJsonString(result));
|
||||||
throw new Exception("发送电子标签亮灯任务失败");
|
throw new Exception("发送电子标签亮灯任务失败");
|
||||||
|
|
@ -1170,12 +1179,14 @@ public class TaskController {
|
||||||
List<PickTask> pickedTasks = pickTaskService.list(new LambdaQueryWrapper<PickTask>()
|
List<PickTask> pickedTasks = pickTaskService.list(new LambdaQueryWrapper<PickTask>()
|
||||||
.eq(PickTask::getStandId, workFlow.getWorkStation())
|
.eq(PickTask::getStandId, workFlow.getWorkStation())
|
||||||
.ne(PickTask::getPickStatus, PickTaskStatusEnum.FINISH.getCode()));
|
.ne(PickTask::getPickStatus, PickTaskStatusEnum.FINISH.getCode()));
|
||||||
List<String> vehicleIds = pickedTasks.stream().map(PickTask::getVehicleId).distinct().toList();
|
if (!pickedTasks.isEmpty()) {
|
||||||
if (outsideVehiclesService.exists(new LambdaQueryWrapper<OutsideVehicles>()
|
List<String> vehicleIds = pickedTasks.stream().map(PickTask::getVehicleId).distinct().toList();
|
||||||
.eq(OutsideVehicles::getGoodsId, workFlow.getGoodsId())
|
if (outsideVehiclesService.exists(new LambdaQueryWrapper<OutsideVehicles>()
|
||||||
.in(OutsideVehicles::getVehicleId, vehicleIds))) {
|
.eq(OutsideVehicles::getGoodsId, workFlow.getGoodsId())
|
||||||
workFlow.setLightStatus(0);// 未亮灯
|
.in(OutsideVehicles::getVehicleId, vehicleIds))) {
|
||||||
workFlow.setWorkStatus(1);// 正在做
|
workFlow.setLightStatus(0);// 未亮灯
|
||||||
|
workFlow.setWorkStatus(1);// 正在做
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
workFlow.setLightStatus(2);// 已拍灯
|
workFlow.setLightStatus(2);// 已拍灯
|
||||||
|
|
@ -2199,6 +2210,11 @@ public class TaskController {
|
||||||
} else {
|
} else {
|
||||||
logger.info("发送电子标签亮灯请求:{}", convertJsonString(wcsETaskRequest));
|
logger.info("发送电子标签亮灯请求:{}", convertJsonString(wcsETaskRequest));
|
||||||
ResponseEntity result = JSON.parseObject(HttpUtils.sendHttpPostWithoutToken(sendToWcsETaskUrl, convertJsonString(wcsETaskRequest)), ResponseEntity.class);
|
ResponseEntity result = JSON.parseObject(HttpUtils.sendHttpPostWithoutToken(sendToWcsETaskUrl, convertJsonString(wcsETaskRequest)), ResponseEntity.class);
|
||||||
|
try {
|
||||||
|
logService.save(new WmsLog(WmsUtils.generateId("LOG_"), "发送电子标签任务", "eTagTask", convertJsonString(wcsETaskRequest), convertJsonString(result), sendToWcsETaskUrl, LocalDateTime.now(), "WMS"));
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error("插入日志错误");
|
||||||
|
}
|
||||||
if (result == null || !Objects.equals(result.getCode(), ResponseCode.OK.getCode())) {
|
if (result == null || !Objects.equals(result.getCode(), ResponseCode.OK.getCode())) {
|
||||||
logger.error("发送电子标签亮灯任务失败:{}", convertJsonString(result));
|
logger.error("发送电子标签亮灯任务失败:{}", convertJsonString(result));
|
||||||
throw new Exception("发送电子标签亮灯任务失败");
|
throw new Exception("发送电子标签亮灯任务失败");
|
||||||
|
|
|
||||||
|
|
@ -33,4 +33,11 @@ public class OutsideVehicles {
|
||||||
*/
|
*/
|
||||||
@TableField("remain_num")
|
@TableField("remain_num")
|
||||||
private BigDecimal remainNum;
|
private BigDecimal remainNum;
|
||||||
|
/**
|
||||||
|
* 状态
|
||||||
|
* 0:未出库完成
|
||||||
|
* 1:已出库完成
|
||||||
|
*/
|
||||||
|
@TableField("out_status")
|
||||||
|
private Integer outStatus;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,6 @@ import org.springframework.stereotype.Service;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
import static com.wms.config.InitLocalConfig.configMap;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 验证服务接口的实现
|
* 验证服务接口的实现
|
||||||
*/
|
*/
|
||||||
|
|
@ -37,6 +35,7 @@ public class ValidateServiceImplements implements IValidateService {
|
||||||
private final GoodsService goodsService;// 物料服务
|
private final GoodsService goodsService;// 物料服务
|
||||||
private final LocationService locationService;// 库位服务
|
private final LocationService locationService;// 库位服务
|
||||||
private final StockService stockService;// 库存服务
|
private final StockService stockService;// 库存服务
|
||||||
|
private final PickTaskService pickTaskService;// 拣选任务
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 验证入库请求
|
* 验证入库请求
|
||||||
|
|
@ -57,7 +56,17 @@ public class ValidateServiceImplements implements IValidateService {
|
||||||
.and(wrapper -> wrapper.eq(Vehicle::getVehicleStatus, VehicleStatus.ON.getCode())))) {
|
.and(wrapper -> wrapper.eq(Vehicle::getVehicleStatus, VehicleStatus.ON.getCode())))) {
|
||||||
return TaskInValidationEnum.DUPLICATE_VEHICLE_ID.getErrorMessage();
|
return TaskInValidationEnum.DUPLICATE_VEHICLE_ID.getErrorMessage();
|
||||||
}
|
}
|
||||||
|
// 如果这个箱子还有拣选任务,不允许操作
|
||||||
|
if (pickTaskService.exists(new LambdaQueryWrapper<PickTask>()
|
||||||
|
.eq(PickTask::getVehicleId, taskInRequest.getVehicleId()))) {
|
||||||
|
return TaskInValidationEnum.ON_PICKING.getErrorMessage();
|
||||||
|
}
|
||||||
|
// 验证当前的箱子是否有其他不是暂存状态的任务
|
||||||
|
if(taskService.exists(new LambdaQueryWrapper<Task>()
|
||||||
|
.eq(Task::getVehicleId, taskInRequest.getVehicleId())
|
||||||
|
.ne(Task::getTaskStatus, WmsTaskStatus.TEMP.getCode()))) {
|
||||||
|
return TaskInValidationEnum.OTHER_TASKS.getErrorMessage();
|
||||||
|
}
|
||||||
// 验证物料信息
|
// 验证物料信息
|
||||||
if (taskInRequest.getGoodsList() != null && !taskInRequest.getGoodsList().isEmpty()) {
|
if (taskInRequest.getGoodsList() != null && !taskInRequest.getGoodsList().isEmpty()) {
|
||||||
for (GoodsInRequest goodsInRequest : taskInRequest.getGoodsList()) {
|
for (GoodsInRequest goodsInRequest : taskInRequest.getGoodsList()) {
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import com.wms.constants.enums.*;
|
||||||
import com.wms.entity.app.ResponseEntity;
|
import com.wms.entity.app.ResponseEntity;
|
||||||
import com.wms.entity.app.wcs.WcsStandTaskRequest;
|
import com.wms.entity.app.wcs.WcsStandTaskRequest;
|
||||||
import com.wms.entity.app.wcs.WcsTaskRequest;
|
import com.wms.entity.app.wcs.WcsTaskRequest;
|
||||||
|
import com.wms.entity.table.OutsideVehicles;
|
||||||
import com.wms.entity.table.PickTask;
|
import com.wms.entity.table.PickTask;
|
||||||
import com.wms.entity.table.Task;
|
import com.wms.entity.table.Task;
|
||||||
import com.wms.entity.table.WmsLog;
|
import com.wms.entity.table.WmsLog;
|
||||||
|
|
@ -55,12 +56,8 @@ public class WmsJobServiceImplements implements IWmsJobService {
|
||||||
int maxVehicleNums = Integer.parseInt(max_vehicle_nums);
|
int maxVehicleNums = Integer.parseInt(max_vehicle_nums);
|
||||||
int maxWcsAcceptNums = Integer.parseInt(max_wcs_accept_nums);
|
int maxWcsAcceptNums = Integer.parseInt(max_wcs_accept_nums);
|
||||||
List<String> outsideVehicles = outsideVehiclesService.selectDistinctVehicles();
|
List<String> outsideVehicles = outsideVehiclesService.selectDistinctVehicles();
|
||||||
if (outsideVehicles == null) {
|
if (outsideVehicles == null || outsideVehicles.isEmpty()) {
|
||||||
outsideVehicles = Collections.emptyList();
|
outsideVehicles = Collections.emptyList();
|
||||||
} else {
|
|
||||||
if (outsideVehicles.size() >= maxVehicleNums) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
int remainVehicleNums = maxVehicleNums - outsideVehicles.size();
|
int remainVehicleNums = maxVehicleNums - outsideVehicles.size();
|
||||||
|
|
||||||
|
|
@ -72,19 +69,34 @@ public class WmsJobServiceImplements implements IWmsJobService {
|
||||||
List<WcsTaskRequest> request = new ArrayList<>();
|
List<WcsTaskRequest> request = new ArrayList<>();
|
||||||
// 已经下发的任务组列表
|
// 已经下发的任务组列表
|
||||||
List<String> taskGroupIds = new ArrayList<>();
|
List<String> taskGroupIds = new ArrayList<>();
|
||||||
|
// 本次生成的环线任务
|
||||||
|
List<String> pickVehicleIds = new ArrayList<>();
|
||||||
if (!allTasks.isEmpty()) {
|
if (!allTasks.isEmpty()) {
|
||||||
for (Task task : allTasks) {
|
for (Task task : allTasks) {
|
||||||
if (taskGroupIds.size() >= remainVehicleNums || taskGroupIds.size() >= maxWcsAcceptNums) {
|
if (taskGroupIds.size() >= maxWcsAcceptNums) {
|
||||||
|
// 每次给wcs下发数量
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
if (taskGroupIds.contains(task.getTaskGroup())) {
|
||||||
|
// 该任务组已经下发
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (StringUtils.isNotEmpty(task.getPreTask())) {// 当前任务具有前置任务
|
if (StringUtils.isNotEmpty(task.getPreTask())) {// 当前任务具有前置任务
|
||||||
// 查询一下前置的任务有没有存在,存在则不下发
|
// 查询一下前置的任务有没有存在,存在则不下发
|
||||||
if (taskService.exists(new LambdaQueryWrapper<Task>().eq(Task::getTaskId, task.getPreTask()))) {
|
if (taskService.exists(new LambdaQueryWrapper<Task>().eq(Task::getTaskId, task.getPreTask()))) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (taskGroupIds.contains(task.getTaskGroup())) {
|
if (Objects.equals(task.getTaskType(), TaskType.OUT.getCode())
|
||||||
continue;
|
&& task.getIsPicking() == 1 && StringUtils.isNotEmpty(task.getPickStand())) {
|
||||||
|
// 去站台的拣选任务
|
||||||
|
if (!pickVehicleIds.contains(task.getVehicleId())) {
|
||||||
|
if (pickVehicleIds.size() >= remainVehicleNums) {
|
||||||
|
continue;
|
||||||
|
} else {
|
||||||
|
pickVehicleIds.add(task.getVehicleId());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 创建发送的任务
|
// 创建发送的任务
|
||||||
WcsTaskRequest tempTask = new WcsTaskRequest();
|
WcsTaskRequest tempTask = new WcsTaskRequest();
|
||||||
|
|
@ -116,23 +128,46 @@ public class WmsJobServiceImplements implements IWmsJobService {
|
||||||
try {
|
try {
|
||||||
logService.save(new WmsLog(WmsUtils.generateId("LOG_"), "向WCS发送任务", "SetStackerTask", JSON.toJSONString(request), JSON.toJSONString(result), url, LocalDateTime.now(), "WMS"));
|
logService.save(new WmsLog(WmsUtils.generateId("LOG_"), "向WCS发送任务", "SetStackerTask", JSON.toJSONString(request), JSON.toJSONString(result), url, LocalDateTime.now(), "WMS"));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("插入日志错误");
|
logger.error("插入日志错误。");
|
||||||
}
|
}
|
||||||
if (result != null && Objects.equals(ResponseCode.OK.getCode(), result.getCode())) {
|
if (result == null) {
|
||||||
taskService.update(new LambdaUpdateWrapper<Task>()
|
logger.error("发送任务异常。");
|
||||||
.set(Task::getTaskStatus, WmsTaskStatus.WAIT.getCode())
|
|
||||||
.in(Task::getTaskGroup, taskGroupIds)
|
|
||||||
.eq(Task::getTaskStatus, WmsTaskStatus.NEW.getCode()));
|
|
||||||
} else {
|
} else {
|
||||||
logger.error("发送任务错误:{}", convertJsonString(result));
|
if (Objects.equals(ResponseCode.OK.getCode(), result.getCode())) {
|
||||||
|
logger.info("发送WCS任务成功。");
|
||||||
|
taskService.update(new LambdaUpdateWrapper<Task>()
|
||||||
|
.set(Task::getTaskStatus, WmsTaskStatus.WAIT.getCode())
|
||||||
|
.in(Task::getTaskGroup, taskGroupIds)
|
||||||
|
.eq(Task::getTaskStatus, WmsTaskStatus.NEW.getCode()));
|
||||||
|
// 流转载具状态变更
|
||||||
|
if (!pickVehicleIds.isEmpty()) {
|
||||||
|
outsideVehiclesService.update(new LambdaUpdateWrapper<OutsideVehicles>()
|
||||||
|
.set(OutsideVehicles::getOutStatus, 1)
|
||||||
|
.in(OutsideVehicles::getVehicleId, pickVehicleIds));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 判断returnData的数据
|
||||||
|
if (result.getReturnData() != null) {
|
||||||
|
List<WcsTaskRequest> errorTasks = JSON.parseArray(result.getReturnData().toString(), WcsTaskRequest.class);
|
||||||
|
if (!errorTasks.isEmpty()) {
|
||||||
|
List<String> failedTaskIds = errorTasks.stream().map(WcsTaskRequest::getTaskId).distinct().toList();
|
||||||
|
// 更新任务状态为异常
|
||||||
|
taskService.update(new LambdaUpdateWrapper<Task>()
|
||||||
|
.set(Task::getTaskStatus, WmsTaskStatus.EXCEPTION.getCode())
|
||||||
|
.in(Task::getTaskGroup, failedTaskIds)
|
||||||
|
.eq(Task::getTaskStatus, WmsTaskStatus.NEW.getCode()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
logger.error("发送任务错误:{}", convertJsonString(result));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
logger.error("WCS发送任务地址为空");
|
logger.error("WCS发送任务地址为空。");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception exception) {
|
} catch (Exception exception) {
|
||||||
logger.error("向WCS发送任务时发生异常:{}", convertJsonString(exception));
|
logger.error("向WCS发送任务时发生异常:{}", convertJsonString(exception));
|
||||||
throw new Exception("向WCS发送任务时发生异常");
|
throw new Exception("向WCS发送任务时发生异常。");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -184,9 +219,10 @@ public class WmsJobServiceImplements implements IWmsJobService {
|
||||||
try {
|
try {
|
||||||
logService.save(new WmsLog(WmsUtils.generateId("LOG_"), "向WCS发送拣选任务", "setConveyTask", convertJsonString(request), convertJsonString(result), url, LocalDateTime.now(), "WMS"));
|
logService.save(new WmsLog(WmsUtils.generateId("LOG_"), "向WCS发送拣选任务", "setConveyTask", convertJsonString(request), convertJsonString(result), url, LocalDateTime.now(), "WMS"));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("插入日志错误");
|
logger.error("插入日志错误。");
|
||||||
}
|
}
|
||||||
if (result != null && Objects.equals(ResponseCode.OK.getCode(), result.getCode())) {
|
if (result != null && Objects.equals(ResponseCode.OK.getCode(), result.getCode())) {
|
||||||
|
logger.info("发送拣选任务成功。");
|
||||||
pickTaskService.update(new LambdaUpdateWrapper<PickTask>()
|
pickTaskService.update(new LambdaUpdateWrapper<PickTask>()
|
||||||
.set(PickTask::getPickStatus, PickTaskStatusEnum.SEND.getCode())
|
.set(PickTask::getPickStatus, PickTaskStatusEnum.SEND.getCode())
|
||||||
.in(PickTask::getVehicleId, vehicleAndStansMap.keySet())
|
.in(PickTask::getVehicleId, vehicleAndStansMap.keySet())
|
||||||
|
|
@ -195,12 +231,12 @@ public class WmsJobServiceImplements implements IWmsJobService {
|
||||||
logger.error("发送拣选任务错误:{}", convertJsonString(result));
|
logger.error("发送拣选任务错误:{}", convertJsonString(result));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
logger.error("WCS发送拣选任务地址为空");
|
logger.error("WCS发送拣选任务地址为空。");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception exception) {
|
} catch (Exception exception) {
|
||||||
logger.error("向WCS发送拣选任务时发生异常:{}", convertJsonString(exception));
|
logger.error("向WCS发送拣选任务时发生异常:{}", convertJsonString(exception));
|
||||||
throw new Exception("向WCS发送拣选任务时发生异常");
|
throw new Exception("向WCS发送拣选任务时发生异常。");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -119,15 +119,19 @@ public class WorkServiceImplements implements IWorkService {
|
||||||
goodsToStationService.saveBatch(goodsToStationList);
|
goodsToStationService.saveBatch(goodsToStationList);
|
||||||
// 更新工单表
|
// 更新工单表
|
||||||
List<String> orderIds = currentStationWorkFlows.stream().map(WorkFlow::getOrderId).distinct().toList();
|
List<String> orderIds = currentStationWorkFlows.stream().map(WorkFlow::getOrderId).distinct().toList();
|
||||||
kateOrdersService.update(new LambdaUpdateWrapper<KateOrders>()
|
if (!orderIds.isEmpty()) {
|
||||||
.set(KateOrders::getOrderStatus, 1)
|
kateOrdersService.update(new LambdaUpdateWrapper<KateOrders>()
|
||||||
.in(KateOrders::getOrderId, orderIds)
|
.set(KateOrders::getOrderStatus, 1)
|
||||||
.eq(KateOrders::getOrderStatus, 0));
|
.in(KateOrders::getOrderId, orderIds)
|
||||||
|
.eq(KateOrders::getOrderStatus, 0));
|
||||||
|
}
|
||||||
// 更新dbs表
|
// 更新dbs表
|
||||||
kateDBSService.update(new LambdaUpdateWrapper<KateDBS>()
|
if (!workOrderList.isEmpty()) {
|
||||||
.set(KateDBS::getDbsStatus, 1)
|
kateDBSService.update(new LambdaUpdateWrapper<KateDBS>()
|
||||||
.in(KateDBS::getWorkOrder, workOrderList)
|
.set(KateDBS::getDbsStatus, 1)
|
||||||
.eq(KateDBS::getDbsStatus, 0));
|
.in(KateDBS::getWorkOrder, workOrderList)
|
||||||
|
.eq(KateDBS::getDbsStatus, 0));
|
||||||
|
}
|
||||||
// 电子标签库位配置
|
// 电子标签库位配置
|
||||||
List<ELocationConfig> eLocationConfigList = new ArrayList<>();
|
List<ELocationConfig> eLocationConfigList = new ArrayList<>();
|
||||||
// 查找到当前站台所有可用的电子标签
|
// 查找到当前站台所有可用的电子标签
|
||||||
|
|
@ -195,12 +199,14 @@ public class WorkServiceImplements implements IWorkService {
|
||||||
// 已经不存在未分配的任务,且没有拣选任务,可视为完成。
|
// 已经不存在未分配的任务,且没有拣选任务,可视为完成。
|
||||||
// 更新工作流状态-->完成
|
// 更新工作流状态-->完成
|
||||||
List<String> workFlowIds = currentWorkFlowList.stream().map(WorkFlow::getWorkFlowId).distinct().toList();
|
List<String> workFlowIds = currentWorkFlowList.stream().map(WorkFlow::getWorkFlowId).distinct().toList();
|
||||||
workFlowService.update(new LambdaUpdateWrapper<WorkFlow>()
|
if (!workFlowIds.isEmpty()) {
|
||||||
.set(WorkFlow::getWorkStatus, 2)
|
workFlowService.update(new LambdaUpdateWrapper<WorkFlow>()
|
||||||
.set(WorkFlow::getFinishTime, LocalDateTime.now())
|
.set(WorkFlow::getWorkStatus, 2)
|
||||||
.set(WorkFlow::getOpUser, "系统自动完成")
|
.set(WorkFlow::getFinishTime, LocalDateTime.now())
|
||||||
.in(WorkFlow::getWorkFlowId, workFlowIds)
|
.set(WorkFlow::getOpUser, "系统自动完成")
|
||||||
.ne(WorkFlow::getWorkStatus, 2));
|
.in(WorkFlow::getWorkFlowId, workFlowIds)
|
||||||
|
.ne(WorkFlow::getWorkStatus, 2));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,20 +8,20 @@ spring:
|
||||||
# 主库
|
# 主库
|
||||||
master:
|
master:
|
||||||
# 卡特数据库服务器
|
# 卡特数据库服务器
|
||||||
# url: jdbc:mysql://10.90.36.71:3306/wms_kate_suzhou?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true
|
url: jdbc:mysql://10.90.36.71:3306/wms_kate_suzhou?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true
|
||||||
# username: developer
|
username: developer
|
||||||
# password: developer
|
password: developer
|
||||||
# driver-class-name: com.mysql.cj.jdbc.Driver
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
# 宝开服务器--内网
|
# 宝开服务器--内网
|
||||||
# url: jdbc:mysql://192.168.3.254:3306/wms_kate_suzhou?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true
|
# url: jdbc:mysql://192.168.3.254:3306/wms_kate_suzhou?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true
|
||||||
# username: coder
|
# username: coder
|
||||||
# password: coder
|
# password: coder
|
||||||
# driver-class-name: com.mysql.cj.jdbc.Driver
|
# driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
# # 本地环境
|
# # 本地环境
|
||||||
url: jdbc:mysql://localhost:3306/wms_kate_suzhou?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true
|
# url: jdbc:mysql://localhost:3306/wms_kate_suzhou?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true
|
||||||
username: developer
|
# username: developer
|
||||||
password: developer
|
# password: developer
|
||||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
# driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
# 从库
|
# 从库
|
||||||
# slave_1:
|
# slave_1:
|
||||||
# url: jdbc:mysql://localhost:3306/wms_aaa?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true
|
# url: jdbc:mysql://localhost:3306/wms_aaa?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,6 @@
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.wms.mapper.OutsideVehiclesMapper">
|
<mapper namespace="com.wms.mapper.OutsideVehiclesMapper">
|
||||||
<select id="selectDistinctVehicles" resultType="string">
|
<select id="selectDistinctVehicles" resultType="string">
|
||||||
select distinct vehicle_id from tbl_app_outside_vehicles;
|
select distinct vehicle_id from tbl_app_outside_vehicles where out_status = 1;
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
Loading…
Reference in New Issue
Block a user